diff --git a/.github/workflows/angular_build.yml b/.github/workflows/angular_build.yml index 5d86ccedd97..3c618189ea8 100644 --- a/.github/workflows/angular_build.yml +++ b/.github/workflows/angular_build.yml @@ -26,7 +26,7 @@ jobs: uses: actions/setup-node@v5 with: # https://github.com/actions/setup-node - node-version: 20 + node-version: 24 cache: npm cache-dependency-path: matchbox-frontend/package-lock.json diff --git a/.github/workflows/deploy-server-template.yml b/.github/workflows/deploy-server-template.yml index 8c024c2092c..b1af3b5fd06 100644 --- a/.github/workflows/deploy-server-template.yml +++ b/.github/workflows/deploy-server-template.yml @@ -94,13 +94,13 @@ jobs: - name: Upload Dockerrun.aws.json uses: actions/upload-artifact@v4 with: - name: matchbox-server-artifact + name: matchbox-server-artifact.zip path: Dockerrun.aws.json - name: Zip deployment bundle run: | cat Dockerrun.aws.json - zip -r "${{ env.ZIP_FILE }}" Dockerrun.aws.json + zip -r "${{ env.ZIP_FILE }}" Dockerrun.aws.json .platform/ - name: Cache Maven packages uses: actions/cache@v4 diff --git a/.platform/nginx/conf.d/elasticbeanstalk/001_custom.conf b/.platform/nginx/conf.d/elasticbeanstalk/001_custom.conf new file mode 100644 index 00000000000..272db21dd0a --- /dev/null +++ b/.platform/nginx/conf.d/elasticbeanstalk/001_custom.conf @@ -0,0 +1,8 @@ +# Nginx Configuration + +# Global directive for upload size +client_max_body_size 100M; +client_body_timeout 300s; # allow up to 2 minutes for upload +proxy_connect_timeout 60s; +proxy_send_timeout 240s; +proxy_read_timeout 240s; diff --git a/.vscode/launch.json b/.vscode/launch.json index 1f086d8564a..449c0d6f269 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -105,6 +105,15 @@ "vmArgs": "-Dspring.config.additional-location=file:with-ch/application.yaml", "cwd": "${workspaceFolder}/matchbox-server" }, + { + "type": "java", + "name": "Launch Matchbox-Server (ans)", + "request": "launch", + "mainClass": "ca.uhn.fhir.jpa.starter.Application", + "projectName": "matchbox-server", + "vmArgs": "-Dspring.config.additional-location=file:with-ans/application.yaml", + "cwd": "${workspaceFolder}/matchbox-server" + }, { "type": "java", "name": "Launch Matchbox-Server (gazelle)", diff --git a/Claude.md b/Claude.md new file mode 100644 index 00000000000..e3ae7c2e94d --- /dev/null +++ b/Claude.md @@ -0,0 +1,560 @@ +# Matchbox Project Overview + +## What is Matchbox? + +Matchbox validation and mapping platform that provides: +- **FHIR validation** against profiles and implementation guides +- **FHIR mapping language** transformations (StructureMap) +- **CDA to FHIR** transformation support +- **Questionnaire** form filling capabilities +- **Terminology services** integration +- **AI-powered validation** assistance + +## Project Structure + +The project consists of three main components: + +``` +matchbox/ +├── matchbox-engine/ # Core FHIR validation and transformation library +├── matchbox-server/ # Full FHIR server with REST API +├── matchbox-frontend/ # Angular web UI +└── docs/ # MkDocs documentation +``` + +## Component Details + +### 1. matchbox-engine (Core Library) + +**Purpose**: Reusable Java library for FHIR validation and transformation + +**Technology Stack**: +- Java 21 +- Spring Framework 6.1 +- HAPI FHIR 8.0.0 +- HL7 FHIR Core 6.7.10 (official FHIR validator) + +**Key Capabilities**: +- FHIR resource validation (R4, R5, R4B) +- StructureMap-based transformations +- CDA to FHIR conversion +- FHIR package loading and management + + +**Key Classes**: +``` +ch.ahdis.matchbox.engine/ +└── MatchboxEngine # Core engine class +``` + +**Testing**: +- JUnit 5 for unit tests +- XMLUnit for XML comparisons +- Comprehensive validation test suites for R4/R5 + +**Build**: +```bash +cd matchbox-engine +mvn clean install +``` + +### 2. matchbox-server (FHIR Server) + +**Purpose**: Production-ready FHIR API support + +**Technology Stack**: +- Java 21 +- Spring Boot 3.3.11 +- HAPI FHIR JPA Server 8.0.0 +- Embedded Tomcat 10.1.48 +- H2 (default) / PostgreSQL (production) + +**Key Features**: +- Full FHIR REST API (R4, R5, R4B) +- `$validate` operation with detailed outcomes +- `$transform` operation for StructureMap transformations +- `$convert` operation for CDA conversion +- `$snapshot` operation for profile expansion +- AI-powered validation (LangChain4j integration) +- Model Context Protocol (MCP) server support + +**Configuration**: +- Context path: `/matchbox` or `/matchboxv3` +- Default port: 8080 +- Config file: `application.yaml` +- Environment variables supported +- Static files: `/static/` (Angular frontend) + +**Main Entry Point**: +- `ca.uhn.fhir.jpa.starter.Application` + +**Key Packages**: +``` +ch.ahdis.matchbox/ +├── config/ # Spring Boot configuration +├── providers/ # FHIR operation providers +│ ├── ValidationProvider # $validate operation +│ ├── StructureMapProvider # $transform operation +│ └── ConvertProvider # $convert operation +├── interceptors/ # Request/response processing +│ ├── MatchboxValidationInterceptor +│ ├── MappingLanguageInterceptor +│ └── HttpReadOnlyInterceptor +├── terminology/ # Terminology services +├── packages/ # FHIR package management +├── mcp/ # Model Context Protocol +└── util/ # Utilities +``` + +**Database Configuration**: + +*H2 (Default - Development)*: +```yaml +spring: + datasource: + url: jdbc:h2:file:./database/h2 +``` + +*PostgreSQL (Production)*: +```yaml +spring: + datasource: + url: jdbc:postgresql://localhost:5432/matchbox + username: matchbox + password: matchbox + driverClassName: org.postgresql.Driver + jpa: + properties: + hibernate.dialect: ca.uhn.fhir.jpa.model.dialect.HapiFhirPostgres94Dialect +``` + +**Build & Run**: +```bash +# Build with frontend +cd matchbox-frontend +npm install +npm run build + +cd ../matchbox-server +mvn clean install + +# Run +java -jar target/matchbox.jar + +# Or with Maven +mvn spring-boot:run +``` + +**Docker Deployment**: +```bash +# Basic deployment +docker run -p 8080:8080 ghcr.io/ahdis/matchbox:latest + +# With PostgreSQL +cd matchbox-server/with-postgres +docker-compose up + +# With pre-loaded implementation guides +cd matchbox-server/with-preload +docker-compose up +``` + +**Available Docker Configurations**: +- `with-postgres/` - PostgreSQL database +- `with-preload/` - Pre-loaded Swiss IGs +- `with-ch/` - Swiss EPR configuration +- `with-ca/` - Canadian configuration +- `with-ips/` - International Patient Summary +- `with-cda/` - CDA transformation support +- `with-gazelle/` - IHE Gazelle integration + +### 3. matchbox-frontend (Angular Web UI) + +**Purpose**: Modern web interface for FHIR validation and transformation + +**Technology Stack**: +- Angular 19.0.0 +- TypeScript 5.6.3 +- Angular Material 19.0.0 +- fhir-kit-client 1.9.2 +- FHIRPath.js 3.15.2 +- Ace Editor 1.36.5 (code editing) +- NGX-Translate 16.0.3 (i18n) + +**Key Features**: +- Interactive FHIR validation with real-time feedback +- StructureMap editor and transformation testing +- Implementation guide browser +- Resource upload and management +- Questionnaire form filling +- FHIRPath expression evaluation +- Multi-language support (i18n) + +**Module Structure**: +``` +src/app/ +├── validate/ # Validation UI +├── transform/ # Transformation UI +├── mapping-language/ # StructureMap editor +├── igs/ # Implementation guides browser +├── upload/ # Resource upload +├── settings/ # Server settings +├── capability-statement/ # Capability statement viewer +├── shared/ # Shared components +└── util/ # Utility services +``` + +**Development Server**: +```bash +cd matchbox-frontend +npm install +npm start +# Opens on http://localhost:4200 +# Proxies API calls to http://localhost:8080 +``` + +**Build for Production**: +```bash +npm run build +# Output: ../matchbox-server/src/main/resources/static +``` + +**Testing**: +```bash +# Unit tests +npm test + +# E2E tests +npm run e2e + +# Linting +npm run lint +``` + +**Configuration**: +- `angular.json` - Angular CLI configuration +- `src/proxy.conf.json` - Dev server proxy +- `src/environments/` - Environment-specific settings +- `tsconfig.json` - TypeScript compiler options + +## Development Workflow + +### Initial Setup + +```bash +# Clone repository +git clone https://github.com/ahdis/matchbox.git +cd matchbox + +# Build engine +cd matchbox-engine +mvn clean install + +# Build and run server +cd ../matchbox-server +mvn spring-boot:run +``` + +### Frontend Development + +```bash +# Terminal 1: Run backend +cd matchbox-server +mvn spring-boot:run + +# Terminal 2: Run frontend dev server +cd matchbox-frontend +npm install +npm start +# Visit http://localhost:4200 +``` + +### Full Build (Backend + Frontend) + +```bash +# Build frontend and copy to server resources +cd matchbox-frontend +npm install +npm run build + +# Build server with embedded frontend +cd ../matchbox-server +mvn clean install + +# Run +java -jar target/matchbox.jar +# Visit http://localhost:8080/matchboxv3 +``` + +## Testing + +### Backend Tests + +```bash +# All tests +cd matchbox-server +mvn clean test + +# Specific test class +mvn -Dtest=MatchboxApiR4Test test + +# Integration tests +mvn verify +``` + +**Key Test Classes**: +- `MatchboxApiR4Test` - R4 API tests +- `MatchboxApiR5Test` - R5 API tests +- `ValidationClient` - Validation testing utilities +- `TransformTest` - StructureMap transformation tests +- `GazelleApiR4Test` - IHE Gazelle integration tests + +## Configuration + +### Key Application Properties + +**application.yaml** (located in `matchbox-server/src/main/resources/`): + +```yaml +server: + servlet: + context-path: /matchboxv3 + port: 8080 + +spring: + datasource: + url: jdbc:h2:file:./database/h2 + username: sa + password: null + driverClassName: org.h2.Driver + +hapi: + fhir: + fhir_version: R4 + server_address: http://localhost:8080/matchboxv3/fhir + allow_external_references: true + delete_expunge_enabled: true + openapi_enabled: true + +matchbox: + fhir: + context: + txServer: http://tx.fhir.org + igsPreloaded: + - hl7.fhir.r4.core#4.0.1 +``` + +### Environment Variables + +```bash +# Override server port +SERVER_PORT=8888 + +# PostgreSQL configuration +SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/matchbox +SPRING_DATASOURCE_USERNAME=matchbox +SPRING_DATASOURCE_PASSWORD=matchbox + +# Terminology server +MATCHBOX_FHIR_CONTEXT_TXSERVER=http://tx.fhir.org + +# AI/LLM configuration +MATCHBOX_FHIR_CONTEXT_LLM_PROVIDER=openai +MATCHBOX_FHIR_CONTEXT_LLM_MODELNAME=gpt-4 +MATCHBOX_FHIR_CONTEXT_LLM_APIKEY=sk-... +``` + +### Docker Volume Mounts + +```bash +docker run -d \ + -p 8080:8080 \ + -v $(pwd)/config:/config \ + -v $(pwd)/database:/database \ + ghcr.io/ahdis/matchbox:latest +``` + +## API Endpoints + +### FHIR Operations + +- `POST /matchboxv3/fhir/StructureDefinition/$validate` + - Validate FHIR resources against profiles + +- `POST /matchboxv3/fhir/StructureMap/$transform` + - Transform resources using StructureMap + +- `POST /matchboxv3/fhir/StructureDefinition/$convert` + - Convert CDA documents to FHIR + +- `GET /matchboxv3/fhir/StructureDefinition/{id}/$snapshot` + - Generate snapshot from differential + +- `GET /matchboxv3/fhir/metadata` + - Server capability statement + +### OpenAPI Documentation + +- Swagger UI: `http://localhost:8080/matchboxv3/swagger-ui.html` +- OpenAPI spec: `http://localhost:8080/matchboxv3/v3/api-docs` + +### Actuator Endpoints + +- Health: `/matchboxv3/actuator/health` +- Metrics: `/matchboxv3/actuator/metrics` +- Info: `/matchboxv3/actuator/info` + +## Important Files & Locations + +### Backend + +| File/Directory | Purpose | +|----------------|---------| +| `pom.xml` | Parent Maven configuration | +| `matchbox-engine/pom.xml` | Engine build configuration | +| `matchbox-server/pom.xml` | Server build configuration | +| `matchbox-server/src/main/resources/application.yaml` | Main configuration | +| `matchbox-server/src/main/resources/logback.xml` | Logging configuration | +| `matchbox-server/src/main/java/ca/uhn/fhir/jpa/starter/Application.java` | Main entry point | +| `matchbox-server/Dockerfile` | Docker image definition | +| `matchbox-server/with-*/` | Docker Compose examples | + +### Frontend + +| File/Directory | Purpose | +|----------------|---------| +| `matchbox-frontend/package.json` | npm dependencies | +| `matchbox-frontend/angular.json` | Angular CLI configuration | +| `matchbox-frontend/tsconfig.json` | TypeScript configuration | +| `matchbox-frontend/src/main.ts` | Frontend entry point | +| `matchbox-frontend/src/app/app.module.ts` | Root Angular module | +| `matchbox-frontend/src/proxy.conf.json` | Dev server proxy | +| `matchbox-frontend/src/assets/` | Static assets, i18n | + +### Documentation + +| File/Directory | Purpose | +|----------------|---------| +| `README.md` | Project overview | +| `docs/` | MkDocs documentation | +| `mkdocs.yml` | Documentation configuration | +| `docs/validation-tutorial.md` | Validation guide | +| `docs/api.md` | API documentation | + +## CI/CD Pipeline + +GitHub Actions workflows (`.github/workflows/`): + +- **maven.yml** - Maven build and test +- **integration_tests.yml** - Integration tests +- **angular_build.yml** - Frontend build +- **angular_test.yml** - Frontend tests +- **documentation.yml** - Docs deployment +- **googleregistry.yml** - Docker image publishing +- **central_repository.yml** - Maven Central publishing + +## Release Process + +1. Update versions in `pom.xml`, `package.json`, and documentation +2. Create PR and wait for tests to pass +3. Merge PR to main +4. Wait for Angular build workflow to complete +5. Create GitHub release with tag (e.g., `v4.0.16`) +6. Automated workflows publish: + - Docker image to Google Artifact Registry + - Maven artifacts to Maven Central + +## Dependencies Management + +### Major Dependencies + +**Backend**: +- HAPI FHIR 8.0.0 - FHIR server framework +- HL7 FHIR Core 6.7.10 - Official validator +- Spring Boot 3.3.11 - Application framework +- Jackson 2.17.1 - JSON processing +- Hibernate - JPA/ORM +- LangChain4j 1.0.0-beta1 - AI/LLM integration + +**Frontend**: +- Angular 19.0.0 - Web framework +- Angular Material 19.0.0 - UI components +- fhir-kit-client 1.9.2 - FHIR client +- FHIRPath.js 3.15.2 - FHIRPath evaluation +- Ace Editor 1.36.5 - Code editor + +### Update Dependencies + +```bash +# Backend +mvn versions:display-dependency-updates + +# Frontend +npm outdated +``` + +## Troubleshooting + +### Common Issues + +**Issue**: Port 8080 already in use +```bash +# Solution: Change port +SERVER_PORT=8888 java -jar matchbox.jar +``` + +**Issue**: Out of memory errors +```bash +# Solution: Increase heap size +java -Xmx4096M -jar matchbox.jar +``` + +**Issue**: Frontend build fails +```bash +# Solution: Clear node_modules and reinstall +cd matchbox-frontend +rm -rf node_modules package-lock.json +npm install +npm run build +``` + +**Issue**: Database connection errors +```bash +# Solution: Check database is running and config is correct +# For H2, ensure database directory exists and is writable +mkdir -p database +``` + +### Logging + +Enable debug logging: +```yaml +logging: + level: + ch.ahdis.matchbox: DEBUG + ca.uhn.fhir: DEBUG +``` + +Or via environment variable: +```bash +LOGGING_LEVEL_CH_AHDIS_MATCHBOX=DEBUG +``` + +## Resources + +- **GitHub Repository**: https://github.com/ahdis/matchbox +- **Documentation**: https://ahdis.github.io/matchbox/ +- **Docker Images**: https://github.com/ahdis/matchbox/pkgs/container/matchbox +- **Maven Central**: https://central.sonatype.com/artifact/ch.ahdis/matchbox-engine +- **FHIR Specification**: https://hl7.org/fhir/ +- **HAPI FHIR**: https://hapifhir.io/ + +## Support & Contributing + +- **Issues**: https://github.com/ahdis/matchbox/issues +- **Discussions**: https://github.com/ahdis/matchbox/discussions +- **Contributing Guide**: See `matchbox-frontend/CONTRIBUTING.md` + +## License + +Apache License 2.0 diff --git a/docs/changelog.md b/docs/changelog.md index d3281530576..4b3ddc6e433 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,3 +1,15 @@ +2026/01/08 Release 4.0.16 + +- adapt test and map for (#440) +- update org.hl7.fhir.core 6.7.10 (#448) +- support validating CodeableConcept in internal tx (#448) +- FHIR R4 validation error with R5 extension (#424) +- Fix THO loading: Unknown code '26' in the CodeSystem 'http://terminology.hl7.org/CodeSystem/object-role' version '4.0.1' (#452) +- Remove auto install ig's (did not handle -ballot versions) +- Use hl7.terminology#7.0.1 as FHIR Java validator 6.7.10 is doing (#452) + +NOTE: Remove in your installation existing classpath entries for hl7.terminology#x.x.x in application.yaml + 2025/11/03 Release 4.0.15 - Upgrade Tomcat to fix [CVE-2025-55752](https://github.com/advisories/GHSA-wmwf-9ccg-fff5) diff --git a/jmeter/test.http b/jmeter/test.http index 8af39482ac0..194d2ae925e 100644 --- a/jmeter/test.http +++ b/jmeter/test.http @@ -22,7 +22,7 @@ Content-Type: application/fhir+json { "attachment" : { "language" : "de-CH" -^ } + } } ] } diff --git a/matchbox-engine/pom.xml b/matchbox-engine/pom.xml index 2e9d55f235f..e7486ead98d 100644 --- a/matchbox-engine/pom.xml +++ b/matchbox-engine/pom.xml @@ -6,7 +6,7 @@ matchbox health.matchbox - 4.0.15-Infoway + 4.0.16-Infoway matchbox-engine diff --git a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/MatchboxEngine.java b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/MatchboxEngine.java index 73430036d27..f3df0d49072 100644 --- a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/MatchboxEngine.java +++ b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/MatchboxEngine.java @@ -99,8 +99,10 @@ public class MatchboxEngine extends ValidationEngine { // Current packages that are provided with Matchbox Engine - public static final String PACKAGE_R4_TERMINOLOGY = "hl7.terminology.r4#6.3.0"; - public static final String PACKAGE_R5_TERMINOLOGY = "hl7.terminology.r5#6.3.0"; + public static final String PACKAGE_R4_TERMINOLOGY = "hl7.terminology.r4#7.0.1"; + public static final String PACKAGE_R5_TERMINOLOGY = "hl7.terminology.r5#7.0.1"; + public static final String PACKAGE_R4_TERMINOLOGY63 = "hl7.terminology.r4#6.3.0"; + public static final String PACKAGE_R5_TERMINOLOGY63 = "hl7.terminology.r5#6.3.0"; public static final String PACKAGE_R4_TERMINOLOGY65 = "hl7.terminology.r4#6.5.0"; public static final String PACKAGE_R5_TERMINOLOGY65 = "hl7.terminology.r5#6.5.0"; public static final String PACKAGE_R4_UV_EXTENSIONS = "hl7.fhir.uv.extensions.r4#5.2.0"; @@ -308,7 +310,7 @@ public MatchboxEngine getEngineR4() throws MatchboxEngineCreationException { } engine.getContext().setPackageTracker(engine); engine.setPcm(this.getFilesystemPackageCacheManager()); - engine.setPolicyAdvisor(new ValidationPolicyAdvisor(ReferenceValidationPolicy.CHECK_VALID)); + engine.setPolicyAdvisor(new ValidationPolicyAdvisor(ReferenceValidationPolicy.CHECK_VALID, null)); engine.setAllowExampleUrls(true); log.info("engine R4 initialized"); return engine; @@ -353,7 +355,7 @@ public MatchboxEngine getEngineR4B() throws MatchboxEngineCreationException { } engine.getContext().setPackageTracker(engine); engine.setPcm(this.getFilesystemPackageCacheManager()); - engine.setPolicyAdvisor(new ValidationPolicyAdvisor(ReferenceValidationPolicy.CHECK_VALID)); + engine.setPolicyAdvisor(new ValidationPolicyAdvisor(ReferenceValidationPolicy.CHECK_VALID, null)); engine.setAllowExampleUrls(true); log.info("engine R4B initialized"); return engine; @@ -396,8 +398,7 @@ public MatchboxEngine getEngineR5() throws MatchboxEngineCreationException { throw new TerminologyServerException(e); } } - - engine.setPolicyAdvisor(new ValidationPolicyAdvisor(ReferenceValidationPolicy.CHECK_VALID)); + engine.setPolicyAdvisor(new ValidationPolicyAdvisor(ReferenceValidationPolicy.CHECK_VALID, null)); engine.setAllowExampleUrls(true); engine.getContext().setPackageTracker(engine); @@ -434,7 +435,7 @@ public MatchboxEngine getEngine() throws MatchboxEngineCreationException { } engine.getContext().setPackageTracker(engine); engine.setPcm(this.getFilesystemPackageCacheManager()); - engine.setPolicyAdvisor(new ValidationPolicyAdvisor(ReferenceValidationPolicy.CHECK_VALID)); + engine.setPolicyAdvisor(new ValidationPolicyAdvisor(ReferenceValidationPolicy.CHECK_VALID, null)); engine.setAllowExampleUrls(true); return engine; } diff --git a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/ValidationPolicyAdvisor.java b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/ValidationPolicyAdvisor.java index b55e6c1041b..288400440b7 100644 --- a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/ValidationPolicyAdvisor.java +++ b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/ValidationPolicyAdvisor.java @@ -22,8 +22,8 @@ public class ValidationPolicyAdvisor extends BasePolicyAdvisorForFullValidation // This is a map of messageId to a list of regex paths that should be ignored private final Map> messagesToIgnore = new HashMap<>(); - public ValidationPolicyAdvisor(ReferenceValidationPolicy refpol) { - super(refpol); + public ValidationPolicyAdvisor(ReferenceValidationPolicy refpol, Set referencesTo) { + super(refpol, referencesTo); } @Override diff --git a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/cli/MatchboxCli.java b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/cli/MatchboxCli.java deleted file mode 100644 index 8ca4d53a605..00000000000 --- a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/cli/MatchboxCli.java +++ /dev/null @@ -1,220 +0,0 @@ -package ch.ahdis.matchbox.engine.cli; - -import java.net.Authenticator; -import java.net.PasswordAuthentication; -import java.util.Locale; - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - */ - -import org.hl7.fhir.r5.model.ImplementationGuide; -import org.hl7.fhir.r5.model.StructureDefinition; -import org.hl7.fhir.r5.terminologies.JurisdictionUtilities; -import org.hl7.fhir.utilities.FileFormat; -import org.hl7.fhir.utilities.TimeTracker; -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.utilities.VersionUtilities; -import org.hl7.fhir.validation.Scanner; -import org.hl7.fhir.validation.service.model.ValidationContext; -import org.hl7.fhir.validation.service.utils.EngineMode; -import org.hl7.fhir.validation.cli.Display; -import org.hl7.fhir.validation.cli.param.Params; -import org.hl7.fhir.validation.testexecutor.TestExecutor; -import org.hl7.fhir.validation.testexecutor.TestExecutorParams; - -import ch.ahdis.matchbox.engine.MatchboxEngine; -import lombok.extern.slf4j.Slf4j; - - -/** - * A executable class - * - * adapted from https://github.com/hapifhir/org.hl7.fhir.core/blob/master/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/ValidatorCli.java - * - * @author Oliver Egger - */ -@Slf4j -public class MatchboxCli { - - public static final String HTTP_PROXY_HOST = "http.proxyHost"; - public static final String HTTP_PROXY_PORT = "http.proxyPort"; - public static final String HTTP_PROXY_USER = "http.proxyUser"; - public static final String HTTP_PROXY_PASS = "http.proxyPassword"; - public static final String JAVA_DISABLED_TUNNELING_SCHEMES = "jdk.http.auth.tunneling.disabledSchemes"; - public static final String JAVA_DISABLED_PROXY_SCHEMES = "jdk.http.auth.proxying.disabledSchemes"; - public static final String JAVA_USE_SYSTEM_PROXIES = "java.net.useSystemProxies"; - - private static MatchboxService matchboxService = new MatchboxService(); - - public static void main(String[] args) throws Exception { - TimeTracker tt = new TimeTracker(); - TimeTracker.Session tts = tt.start("Loading"); - - System.out.println(VersionUtil.getPoweredBy()); - Display.displaySystemInfo(log); - - if (Params.hasParam(args, Params.PROXY)) { - assert Params.getParam(args, Params.PROXY) != null : "PROXY arg passed in was NULL"; - String[] p = Params.getParam(args, Params.PROXY).split(":"); - System.setProperty(HTTP_PROXY_HOST, p[0]); - System.setProperty(HTTP_PROXY_PORT, p[1]); - } - - if (Params.hasParam(args, Params.PROXY_AUTH)) { - assert Params.getParam(args, Params.PROXY) != null : "Cannot set PROXY_AUTH without setting PROXY..."; - assert Params.getParam(args, Params.PROXY_AUTH) != null : "PROXY_AUTH arg passed in was NULL..."; - String[] p = Params.getParam(args, Params.PROXY_AUTH).split(":"); - String authUser = p[0]; - String authPass = p[1]; - - /* - * For authentication, use java.net.Authenticator to set proxy's configuration and set the system properties - * http.proxyUser and http.proxyPassword - */ - Authenticator.setDefault( - new Authenticator() { - @Override - public PasswordAuthentication getPasswordAuthentication() { - return new PasswordAuthentication(authUser, authPass.toCharArray()); - } - } - ); - - System.setProperty(HTTP_PROXY_USER, authUser); - System.setProperty(HTTP_PROXY_PASS, authPass); - System.setProperty(JAVA_USE_SYSTEM_PROXIES, "true"); - - /* - * For Java 1.8 and higher you must set - * -Djdk.http.auth.tunneling.disabledSchemes= - * to make proxies with Basic Authorization working with https along with Authenticator - */ - System.setProperty(JAVA_DISABLED_TUNNELING_SCHEMES, ""); - System.setProperty(JAVA_DISABLED_PROXY_SCHEMES, ""); - } - - ValidationContext validationContext = Params.loadValidationContext(args); - - FileFormat.checkCharsetAndWarnIfNotUTF8(System.out); - - if (shouldDisplayHelpToUser(args)) { - Display.displayHelpDetails(log, "help/help.txt"); - } else if (Params.hasParam(args, Params.TEST)) { - parseTestParamsAndExecute(args); - } - else { - Display.printCliParamsAndInfo(log,args); - doValidation(tt, tts, validationContext); - } - } - - protected static void parseTestParamsAndExecute(String[] args) { - final String testModuleParam = Params.getParam(args, Params.TEST_MODULES); - final String testClassnameFilter = Params.getParam(args, Params.TEST_NAME_FILTER); - final String testCasesDirectory = Params.getParam(args, Params.TEST); - final String txCacheDirectory = Params.getParam(args, Params.TERMINOLOGY_CACHE); - assert TestExecutorParams.isValidModuleParam(testModuleParam) : "Invalid test module param: " + testModuleParam; - final String[] moduleNamesArg = TestExecutorParams.parseModuleParam(testModuleParam); - - assert TestExecutorParams.isValidClassnameFilterParam(testClassnameFilter) : "Invalid regex for test classname filter: " + testClassnameFilter; - - new TestExecutor(moduleNamesArg).executeTests(testClassnameFilter, txCacheDirectory, testCasesDirectory); - - System.exit(0); - } - - private static boolean shouldDisplayHelpToUser(String[] args) { - return (args.length == 0 - || Params.hasParam(args, Params.HELP) - || Params.hasParam(args, "?") - || Params.hasParam(args, "-?") - || Params.hasParam(args, "/?")); - } - - private static void doValidation(TimeTracker tt, TimeTracker.Session tts, ValidationContext cliContext) throws Exception { - if (cliContext.getSv() == null) { - cliContext.setSv(matchboxService.determineVersion(cliContext)); - } - if (cliContext.getJurisdiction() == null) { - System.out.println(" Jurisdiction: None specified (locale = "+Locale.getDefault().getCountry()+")"); - System.out.println(" Note that exceptions and validation failures may happen in the absense of a locale"); - } else { - System.out.println(" Jurisdiction: "+JurisdictionUtilities.displayJurisdiction(cliContext.getJurisdiction())); - } - - System.out.println("Loading"); - // Comment this out because definitions filename doesn't necessarily contain version (and many not even be 14 characters long). - // Version gets spit out a couple of lines later after we've loaded the context - String definitions = "dev".equals(cliContext.getSv()) ? "hl7.fhir.r5.core#current" : VersionUtilities.packageForVersion(cliContext.getSv()) + "#" + VersionUtilities.getCurrentVersion(cliContext.getSv()); - - MatchboxEngine validator = matchboxService.initializeValidator(cliContext, definitions, tt); - tts.end(); - switch (cliContext.getMode()) { - case TRANSFORM: - matchboxService.transform(cliContext, validator); - break; - case COMPILE: - matchboxService.compile(cliContext, validator); - break; - case NARRATIVE: - matchboxService.generateNarrative(cliContext, validator); - break; - case SNAPSHOT: - matchboxService.generateSnapshot(cliContext, validator); - break; - case CONVERT: - matchboxService.convertSources(cliContext, validator); - break; - case FHIRPATH: - matchboxService.evaluateFhirpath(cliContext, validator); - break; - case VERSION: - matchboxService.transformVersion(cliContext, validator); - break; - case VALIDATION: - case SCAN: - default: - for (String s : cliContext.getProfiles()) { - if (!validator.getContext().hasResource(StructureDefinition.class, s) && !validator.getContext().hasResource(ImplementationGuide.class, s)) { - System.out.println(" Fetch Profile from " + s); - validator.loadProfile(cliContext.getLocations().getOrDefault(s, s)); - } - } - System.out.println("Validating"); - if (cliContext.getMode() == EngineMode.SCAN) { - Scanner validationScanner = new Scanner(validator.getContext(), validator.getValidator(null), validator.getIgLoader(), validator.getFhirPathEngine()); - validationScanner.validateScan(cliContext.getOutput(), cliContext.getSources()); - } else { - matchboxService.validateSources(cliContext, validator); - } - break; - } - System.out.println("Done. " + tt.report()+". Max Memory = "+Utilities.describeSize(Runtime.getRuntime().maxMemory())); - } -} diff --git a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/cli/MatchboxService.java b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/cli/MatchboxService.java index 9f9768618b0..a1cb6a0438f 100644 --- a/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/cli/MatchboxService.java +++ b/matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/cli/MatchboxService.java @@ -436,13 +436,14 @@ public String initializeValidator(ValidationContext validationContext, String de } else { fetcher.setReferencePolicy(ReferenceValidationPolicy.IGNORE); } + fetcher.getCheckReferencesTo().addAll(validationContext.getCheckReferencesTo()); fetcher.setResolutionContext(validationContext.getResolutionContext()); } else { DisabledValidationPolicyAdvisor fetcher = new DisabledValidationPolicyAdvisor(); validator.setPolicyAdvisor(fetcher); refpol = ReferenceValidationPolicy.CHECK_TYPE_IF_EXISTS; } - validator.getPolicyAdvisor().setPolicyAdvisor(new ValidationPolicyAdvisor(validator.getPolicyAdvisor() == null ? refpol : validator.getPolicyAdvisor().getReferencePolicy())); + validator.getPolicyAdvisor().setPolicyAdvisor(new ValidationPolicyAdvisor(validator.getPolicyAdvisor() == null ? refpol : validator.getPolicyAdvisor().getReferencePolicy(), validationContext.getCheckReferencesTo())); validator.getBundleValidationRules().addAll(validationContext.getBundleValidationRules()); validator.setJurisdiction(CodeSystemUtilities.readCoding(validationContext.getJurisdiction())); diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java b/matchbox-engine/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java new file mode 100644 index 00000000000..28b71beb470 --- /dev/null +++ b/matchbox-engine/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java @@ -0,0 +1,5014 @@ +package org.hl7.fhir.r5.conformance.profile; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + */ + + +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import lombok.Getter; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; +import org.hl7.fhir.exceptions.DefinitionException; +import org.hl7.fhir.exceptions.FHIRException; +import org.hl7.fhir.exceptions.FHIRFormatError; +import org.hl7.fhir.r5.conformance.ElementRedirection; +import org.hl7.fhir.r5.conformance.profile.MappingAssistant.MappingMergeModeOption; +import org.hl7.fhir.r5.context.IWorkerContext; +import org.hl7.fhir.r5.elementmodel.ObjectConverter; +import org.hl7.fhir.r5.elementmodel.Property; +import org.hl7.fhir.r5.extensions.ExtensionDefinitions; +import org.hl7.fhir.r5.extensions.ExtensionUtilities; +import org.hl7.fhir.r5.fhirpath.ExpressionNode; +import org.hl7.fhir.r5.fhirpath.ExpressionNode.Kind; +import org.hl7.fhir.r5.fhirpath.ExpressionNode.Operation; +import org.hl7.fhir.r5.fhirpath.FHIRPathEngine; +import org.hl7.fhir.r5.model.*; +import org.hl7.fhir.r5.model.ElementDefinition.DiscriminatorType; +import org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionBaseComponent; +import org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionBindingAdditionalComponent; +import org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionBindingComponent; +import org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionConstraintComponent; +import org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionExampleComponent; +import org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionMappingComponent; +import org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingComponent; +import org.hl7.fhir.r5.model.ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent; +import org.hl7.fhir.r5.model.ElementDefinition.SlicingRules; +import org.hl7.fhir.r5.model.ElementDefinition.TypeRefComponent; +import org.hl7.fhir.r5.model.Enumerations.BindingStrength; +import org.hl7.fhir.r5.model.Enumerations.FHIRVersion; +import org.hl7.fhir.r5.model.Enumerations.PublicationStatus; +import org.hl7.fhir.r5.model.StructureDefinition.ExtensionContextType; +import org.hl7.fhir.r5.model.StructureDefinition.StructureDefinitionContextComponent; +import org.hl7.fhir.r5.model.StructureDefinition.StructureDefinitionDifferentialComponent; +import org.hl7.fhir.r5.model.StructureDefinition.StructureDefinitionKind; +import org.hl7.fhir.r5.model.StructureDefinition.StructureDefinitionSnapshotComponent; +import org.hl7.fhir.r5.model.StructureDefinition.TypeDerivationRule; +import org.hl7.fhir.r5.model.ValueSet.ValueSetExpansionComponent; +import org.hl7.fhir.r5.model.ValueSet.ValueSetExpansionContainsComponent; +import org.hl7.fhir.r5.terminologies.expansion.ValueSetExpansionOutcome; +import org.hl7.fhir.r5.terminologies.utilities.ValidationResult; + +import org.hl7.fhir.r5.utils.UserDataNames; +import org.hl7.fhir.r5.utils.xver.XVerExtensionManager; +import org.hl7.fhir.r5.utils.xver.XVerExtensionManager.XVerExtensionStatus; +import org.hl7.fhir.r5.utils.formats.CSVWriter; +import org.hl7.fhir.r5.utils.xver.XVerExtensionManagerFactory; +import org.hl7.fhir.utilities.*; +import org.hl7.fhir.utilities.i18n.I18nConstants; +import org.hl7.fhir.utilities.validation.ValidationMessage; +import org.hl7.fhir.utilities.validation.ValidationMessage.IssueSeverity; +import org.hl7.fhir.utilities.validation.ValidationMessage.IssueType; +import org.hl7.fhir.utilities.validation.ValidationMessage.Source; +import org.hl7.fhir.utilities.validation.ValidationOptions; +import org.hl7.fhir.utilities.xhtml.HierarchicalTableGenerator.Row; +import org.hl7.fhir.utilities.xml.SchematronWriter; +import org.hl7.fhir.utilities.xml.SchematronWriter.Rule; +import org.hl7.fhir.utilities.xml.SchematronWriter.SchematronType; +import org.hl7.fhir.utilities.xml.SchematronWriter.Section; + + +/** + * This class provides a set of utility operations for working with Profiles. + * Key functionality: + * * getChildMap --? + * * getChildList + * * generateSnapshot: Given a base (snapshot) profile structure, and a differential profile, generate a new snapshot profile + * * closeDifferential: fill out a differential by excluding anything not mentioned + * * generateExtensionsTable: generate the HTML for a hierarchical table presentation of the extensions + * * generateTable: generate the HTML for a hierarchical table presentation of a structure + * * generateSpanningTable: generate the HTML for a table presentation of a network of structures, starting at a nominated point + * * summarize: describe the contents of a profile + * + * note to maintainers: Do not make modifications to the snapshot generation without first changing the snapshot generation test cases to demonstrate the grounds for your change + * + * @author Grahame + * + */ +@MarkedToMoveToAdjunctPackage +@Slf4j +public class ProfileUtilities { + + private static boolean suppressIgnorableExceptions; + + + public class ElementDefinitionCounter { + int countMin = 0; + int countMax = 0; + int index = 0; + ElementDefinition focus; + Set names = new HashSet<>(); + + public ElementDefinitionCounter(ElementDefinition ed, int i) { + focus = ed; + index = i; + } + + public int checkMin() { + if (countMin > focus.getMin()) { + return countMin; + } else { + return -1; + } + } + + public int checkMax() { + if (countMax > max(focus.getMax())) { + return countMax; + } else { + return -1; + } + } + + private int max(String max) { + if ("*".equals(max)) { + return Integer.MAX_VALUE; + } else { + return Integer.parseInt(max); + } + } + + public boolean count(ElementDefinition ed, String name) { + countMin = countMin + ed.getMin(); + if (countMax < Integer.MAX_VALUE) { + int m = max(ed.getMax()); + if (m == Integer.MAX_VALUE) { + countMax = m; + } else { + countMax = countMax + m; + } + } + boolean ok = !names.contains(name); + names.add(name); + return ok; + } + + public ElementDefinition getFocus() { + return focus; + } + + public boolean checkMinMax() { + return countMin <= countMax; + } + + public int getIndex() { + return index; + } + + } + + public enum AllowUnknownProfile { + NONE, // exception if there's any unknown profiles (the default) + NON_EXTNEIONS, // don't raise an exception except on Extension (because more is going on there + ALL_TYPES // allow any unknow profile + } + + /** + * These extensions are stripped in inherited profiles (and may be replaced by + */ + + public static final List NON_INHERITED_ED_URLS = Arrays.asList( + "http://hl7.org/fhir/tools/StructureDefinition/binding-definition", + "http://hl7.org/fhir/tools/StructureDefinition/no-binding", + "http://hl7.org/fhir/StructureDefinition/elementdefinition-isCommonBinding", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-category", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-implements", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-security-category", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version", + "http://hl7.org/fhir/tools/StructureDefinition/obligation-profile", + "http://hl7.org/fhir/StructureDefinition/obligation-profile", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status-reason", + ExtensionDefinitions.EXT_SUMMARY/*, + ExtensionDefinitions.EXT_OBLIGATION_CORE, + ExtensionDefinitions.EXT_OBLIGATION_TOOLS*/); + + public static final List DEFAULT_INHERITED_ED_URLS = Arrays.asList( + "http://hl7.org/fhir/StructureDefinition/questionnaire-optionRestriction", + "http://hl7.org/fhir/StructureDefinition/questionnaire-referenceProfile", + "http://hl7.org/fhir/StructureDefinition/questionnaire-referenceResource", + "http://hl7.org/fhir/StructureDefinition/questionnaire-unitOption", + + "http://hl7.org/fhir/StructureDefinition/mimeType"); + + /** + * These extensions are ignored when found in differentials + */ + public static final List NON_OVERRIDING_ED_URLS = Arrays.asList( + "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable", + ExtensionDefinitions.EXT_JSON_NAME, ExtensionDefinitions.EXT_JSON_NAME_DEPRECATED, + "http://hl7.org/fhir/tools/StructureDefinition/implied-string-prefix", + "http://hl7.org/fhir/tools/StructureDefinition/json-empty-behavior", + "http://hl7.org/fhir/tools/StructureDefinition/json-nullable", + "http://hl7.org/fhir/tools/StructureDefinition/json-primitive-choice", + "http://hl7.org/fhir/tools/StructureDefinition/json-property-key", + "http://hl7.org/fhir/tools/StructureDefinition/type-specifier", + "http://hl7.org/fhir/tools/StructureDefinition/xml-choice-group", + ExtensionDefinitions.EXT_XML_NAMESPACE, ExtensionDefinitions.EXT_XML_NAMESPACE_DEPRECATED, + ExtensionDefinitions.EXT_XML_NAME, ExtensionDefinitions.EXT_XML_NAME_DEPRECATED, + "http://hl7.org/fhir/StructureDefinition/elementdefinition-defaulttype" + ); + + /** + * When these extensions are found, they override whatever is set on the ancestor element + */ + public static final List OVERRIDING_ED_URLS = Arrays.asList( + "http://hl7.org/fhir/tools/StructureDefinition/elementdefinition-date-format", + ExtensionDefinitions.EXT_DATE_RULES, + "http://hl7.org/fhir/StructureDefinition/designNote", + "http://hl7.org/fhir/StructureDefinition/elementdefinition-allowedUnits", + "http://hl7.org/fhir/StructureDefinition/elementdefinition-question", + "http://hl7.org/fhir/StructureDefinition/entryFormat", + "http://hl7.org/fhir/StructureDefinition/maxDecimalPlaces", + "http://hl7.org/fhir/StructureDefinition/maxSize", + "http://hl7.org/fhir/StructureDefinition/minLength", + "http://hl7.org/fhir/StructureDefinition/questionnaire-choiceOrientation", + "http://hl7.org/fhir/StructureDefinition/questionnaire-displayCategory", + "http://hl7.org/fhir/StructureDefinition/questionnaire-hidden", + "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl", + "http://hl7.org/fhir/StructureDefinition/questionnaire-signatureRequired", + "http://hl7.org/fhir/StructureDefinition/questionnaire-sliderStepValue", + "http://hl7.org/fhir/StructureDefinition/questionnaire-supportLink", + "http://hl7.org/fhir/StructureDefinition/questionnaire-unit", + "http://hl7.org/fhir/StructureDefinition/questionnaire-unitValueSet", + "http://hl7.org/fhir/StructureDefinition/questionnaire-usageMode", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-display-hint", + "http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name" + ); + + public IWorkerContext getContext() { + return this.context; + } + + public static class SourcedChildDefinitions { + private StructureDefinition source; + private List list; + private String path; + public SourcedChildDefinitions(StructureDefinition source, List list) { + super(); + this.source = source; + this.list = list; + } + public SourcedChildDefinitions(StructureDefinition source, List list, String path) { + super(); + this.source = source; + this.list = list; + this.path = path; + } + public StructureDefinition getSource() { + return source; + } + public List getList() { + return list; + } + public String getPath() { + return path; + } + + } + + public class ElementDefinitionResolution { + + private StructureDefinition source; + private ElementDefinition element; + + public ElementDefinitionResolution(StructureDefinition source, ElementDefinition element) { + this.source = source; + this.element = element; + } + + public StructureDefinition getSource() { + return source; + } + + public ElementDefinition getElement() { + return element; + } + + } + + public static class ElementChoiceGroup { + private Row row; + private String name; + private boolean mandatory; + private List elements = new ArrayList<>(); + + public ElementChoiceGroup(String name, boolean mandatory) { + super(); + this.name = name; + this.mandatory = mandatory; + } + public Row getRow() { + return row; + } + public List getElements() { + return elements; + } + public void setRow(Row row) { + this.row = row; + } + public String getName() { + return name; + } + public boolean isMandatory() { + return mandatory; + } + public void setMandatory(boolean mandatory) { + this.mandatory = mandatory; + } + + } + + private static final int MAX_RECURSION_LIMIT = 10; + + public static class ExtensionContext { + + private ElementDefinition element; + private StructureDefinition defn; + + public ExtensionContext(StructureDefinition ext, ElementDefinition ed) { + this.defn = ext; + this.element = ed; + } + + public ElementDefinition getElement() { + return element; + } + + public StructureDefinition getDefn() { + return defn; + } + + public String getUrl() { + if (element == defn.getSnapshot().getElement().get(0)) + return defn.getUrl(); + else + return element.getSliceName(); + } + + public ElementDefinition getExtensionValueDefinition() { + int i = defn.getSnapshot().getElement().indexOf(element)+1; + while (i < defn.getSnapshot().getElement().size()) { + ElementDefinition ed = defn.getSnapshot().getElement().get(i); + if (ed.getPath().equals(element.getPath())) + return null; + if (ed.getPath().startsWith(element.getPath()+".value") && !ed.hasSlicing()) + return ed; + i++; + } + return null; + } + } + + private static final boolean COPY_BINDING_EXTENSIONS = false; + private static final boolean DONT_DO_THIS = false; + + private boolean debug; + // note that ProfileUtilities are used re-entrantly internally, so nothing with process state can be here + private final IWorkerContext context; + private FHIRPathEngine fpe; + private List messages = new ArrayList(); + private List snapshotStack = new ArrayList(); + private ProfileKnowledgeProvider pkp; +// private boolean igmode; + private ValidationOptions terminologyServiceOptions = new ValidationOptions(FhirPublication.R5); + private boolean newSlicingProcessing; + private String defWebRoot; + private boolean autoFixSliceNames; + private XVerExtensionManager xver; + private boolean wantFixDifferentialFirstElementType; + private Set masterSourceFileNames; + private Set localFileNames; + private Map childMapCache = new HashMap<>(); + private AllowUnknownProfile allowUnknownProfile = AllowUnknownProfile.ALL_TYPES; + private MappingMergeModeOption mappingMergeMode = MappingMergeModeOption.APPEND; + private boolean forPublication; + private List obligationProfiles = new ArrayList<>(); + private boolean wantThrowExceptions; + private List suppressedMappings= new ArrayList<>(); + @Getter @Setter private Parameters parameters; + + public ProfileUtilities(IWorkerContext context, List messages, ProfileKnowledgeProvider pkp, FHIRPathEngine fpe) { + super(); + this.context = context; + if (messages != null) { + this.messages = messages; + } else { + wantThrowExceptions = true; + } + this.pkp = pkp; + + this.fpe = fpe; + if (context != null && this.fpe == null) { + this.fpe = new FHIRPathEngine(context, this); + } + if (context != null) { + parameters = context.getExpansionParameters(); + } + } + + public ProfileUtilities(IWorkerContext context, List messages, ProfileKnowledgeProvider pkp) { + super(); + this.context = context; + if (messages != null) { + this.messages = messages; + } else { + wantThrowExceptions = true; + } + this.pkp = pkp; + if (context != null) { + this.fpe = new FHIRPathEngine(context, this); + } + + if (context != null) { + parameters = context.getExpansionParameters(); + } + } + + public boolean isWantFixDifferentialFirstElementType() { + return wantFixDifferentialFirstElementType; + } + + public void setWantFixDifferentialFirstElementType(boolean wantFixDifferentialFirstElementType) { + this.wantFixDifferentialFirstElementType = wantFixDifferentialFirstElementType; + } + + public boolean isAutoFixSliceNames() { + return autoFixSliceNames; + } + + public ProfileUtilities setAutoFixSliceNames(boolean autoFixSliceNames) { + this.autoFixSliceNames = autoFixSliceNames; + return this; + } + + public SourcedChildDefinitions getChildMap(StructureDefinition profile, ElementDefinition element, boolean chaseTypes) throws DefinitionException { + return getChildMap(profile, element, chaseTypes, null); + } + public SourcedChildDefinitions getChildMap(StructureDefinition profile, ElementDefinition element, boolean chaseTypes, String type) throws DefinitionException { + String cacheKey = "cm."+profile.getVersionedUrl()+"#"+(element.hasId() ? element.getId() : element.getPath())+"."+chaseTypes; + if (childMapCache.containsKey(cacheKey)) { + return childMapCache.get(cacheKey); + } + StructureDefinition src = profile; + List res = new ArrayList(); + List elements = profile.getSnapshot().getElement(); + int iOffs = elements.indexOf(element) + 1; + boolean walksIntoElement = elements.size() > iOffs && elements.get(iOffs).getPath().startsWith(element.getPath()); + if (element.getContentReference() != null && !walksIntoElement) { + List list = null; + String id = null; + if (element.getContentReference().startsWith("#")) { + // internal reference + id = element.getContentReference().substring(1); + list = profile.getSnapshot().getElement(); + } else if (element.getContentReference().contains("#")) { + // external reference + String ref = element.getContentReference(); + StructureDefinition sd = findProfile(ref.substring(0, ref.indexOf("#")), profile); + if (sd == null) { + throw new DefinitionException("unable to process contentReference '"+element.getContentReference()+"' on element '"+element.getId()+"'"); + } + src = sd; + list = sd.getSnapshot().getElement(); + id = ref.substring(ref.indexOf("#")+1); + } else { + throw new DefinitionException("unable to process contentReference '"+element.getContentReference()+"' on element '"+element.getId()+"'"); + } + + for (ElementDefinition e : list) { + if (id.equals(e.getId())) + return getChildMap(src, e, true); + } + throw new DefinitionException(context.formatMessage(I18nConstants.UNABLE_TO_RESOLVE_NAME_REFERENCE__AT_PATH_, element.getContentReference(), element.getPath())); + + } else { + String path = element.getPath(); + for (int index = elements.indexOf(element) + 1; index < elements.size(); index++) { + ElementDefinition e = elements.get(index); + if (e.getPath().startsWith(path + ".")) { + // We only want direct children, not all descendants + if (!e.getPath().substring(path.length()+1).contains(".")) + res.add(e); + } else + break; + } + if (res.isEmpty() && chaseTypes) { + // we've got no in-line children. Some consumers of this routine will figure this out for themselves but most just want to walk into + // the type children. + src = null; + if (type != null) { + src = context.fetchTypeDefinition(type); + } else if (element.getType().isEmpty()) { + throw new DefinitionException("No defined children and no type information on element '"+element.getId()+"'"); + } else if (element.getType().size() > 1) { + // this is a problem. There's two separate but related issues + // the first is what's going on here - the profile has walked into an element without fixing the type + // this might be ok - maybe it's just going to constrain extensions for all types, though this is generally a bad idea + // but if that's all it's doing, we'll just pretend we have an element. Only, it's not really an element so that might + // blow up on us later in mystifying ways. We'll have to wear it though, because there's profiles out there that do this + // the second problem is whether this should be some common descendent of Element - I'm not clear about that + // left as a problem for the future. + // + // this is what the code was prior to 2025-08-27: + // throw new DefinitionException("No defined children and multiple possible types '"+element.typeSummary()+"' on element '"+element.getId()+"'"); + src = context.fetchTypeDefinition("Element"); + } else if (element.getType().get(0).getProfile().size() > 1) { + throw new DefinitionException("No defined children and multiple possible type profiles '"+element.typeSummary()+"' on element '"+element.getId()+"'"); + } else if (element.getType().get(0).hasProfile()) { + src = findProfile(element.getType().get(0).getProfile().get(0).getValue(), profile); + if (src == null) { + throw new DefinitionException("No defined children and unknown type profile '"+element.typeSummary()+"' on element '"+element.getId()+"'"); + } + } else { + src = context.fetchTypeDefinition(element.getType().get(0).getWorkingCode()); + if (src == null) { + throw new DefinitionException("No defined children and unknown type '"+element.typeSummary()+"' on element '"+element.getId()+"'"); + } + } + SourcedChildDefinitions scd = getChildMap(src, src.getSnapshot().getElementFirstRep(), false); + res = scd.list; + } + SourcedChildDefinitions result = new SourcedChildDefinitions(src, res); + childMapCache.put(cacheKey, result); + return result; + } + } + + + public List getSliceList(StructureDefinition profile, ElementDefinition element) throws DefinitionException { + if (!element.hasSlicing()) + throw new Error(context.formatMessage(I18nConstants.GETSLICELIST_SHOULD_ONLY_BE_CALLED_WHEN_THE_ELEMENT_HAS_SLICING)); + + List res = new ArrayList(); + List elements = profile.getSnapshot().getElement(); + String path = element.getPath(); + int start = findElementIndex(elements, element); + for (int index = start + 1; index < elements.size(); index++) { + ElementDefinition e = elements.get(index); + if (e.getPath().startsWith(path + ".") || e.getPath().equals(path)) { + // We want elements with the same path (until we hit an element that doesn't start with the same path) + if (e.getPath().equals(element.getPath())) + res.add(e); + } else + break; + } + return res; + } + + + private int findElementIndex(List elements, ElementDefinition element) { + int res = elements.indexOf(element); + if (res == -1) { + for (int i = 0; i < elements.size(); i++) { + Element t = elements.get(i); + if (t.getId().equals(element.getId())) { + res = i; + } + } + } + return res; + } + + /** + * Given a Structure, navigate to the element given by the path and return the direct children of that element + * + * @param profile The structure to navigate into + * @param path The path of the element within the structure to get the children for + * @return A List containing the element children (all of them are Elements) + */ + public List getChildList(StructureDefinition profile, String path, String id) { + return getChildList(profile, path, id, false); + } + + public List getChildList(StructureDefinition profile, String path, String id, boolean diff) { + return getChildList(profile, path, id, diff, false); + } + + public List getChildList(StructureDefinition profile, String path, String id, boolean diff, boolean refs) { + List res = new ArrayList(); + + boolean capturing = id==null; + if (id==null && !path.contains(".")) + capturing = true; + + List list = diff ? profile.getDifferential().getElement() : profile.getSnapshot().getElement(); + for (ElementDefinition e : list) { + if (e == null) + throw new Error(context.formatMessage(I18nConstants.ELEMENT__NULL_, profile.getUrl())); +// if (e.getId() == null) // this is sort of true, but in some corner cases it's not, and in those cases, we don't care +// throw new Error(context.formatMessage(I18nConstants.ELEMENT_ID__NULL__ON_, e.toString(), profile.getUrl())); + + if (!capturing && id!=null && e.getId().equals(id)) { + capturing = true; + } + + // If our element is a slice, stop capturing children as soon as we see the next slice + if (capturing && e.hasId() && id!= null && !e.getId().equals(id) && e.getPath().equals(path)) + break; + + if (capturing) { + String p = e.getPath(); + + if (refs && !Utilities.noString(e.getContentReference()) && path.startsWith(p)) { + if (path.length() > p.length()) { + return getChildList(profile, e.getContentReference()+"."+path.substring(p.length()+1), null, diff); + } else if (e.getContentReference().startsWith("#")) { + return getChildList(profile, e.getContentReference().substring(1), null, diff); + } else if (e.getContentReference().contains("#")) { + String url = e.getContentReference().substring(0, e.getContentReference().indexOf("#")); + StructureDefinition sd = findProfile(url, profile); + if (sd == null) { + throw new DefinitionException("Unable to find Structure "+url); + } + return getChildList(sd, e.getContentReference().substring(e.getContentReference().indexOf("#")+1), null, diff); + } else { + return getChildList(profile, e.getContentReference(), null, diff); + } + + } else if (p.startsWith(path+".") && !p.equals(path)) { + String tail = p.substring(path.length()+1); + if (!tail.contains(".")) { + res.add(e); + } + } + } + } + + return res; + } + + public List getChildList(StructureDefinition structure, ElementDefinition element, boolean diff, boolean refs) { + return getChildList(structure, element.getPath(), element.getId(), diff, refs); + } + + public List getChildList(StructureDefinition structure, ElementDefinition element, boolean diff) { + return getChildList(structure, element.getPath(), element.getId(), diff); + } + + public List getChildList(StructureDefinition structure, ElementDefinition element) { + if (element.hasContentReference()) { + ElementDefinition target = element; + for (ElementDefinition t : structure.getSnapshot().getElement()) { + if (t.getId().equals(element.getContentReference().substring(1))) { + target = t; + } + } + return getChildList(structure, target.getPath(), target.getId(), false); + } else { + return getChildList(structure, element.getPath(), element.getId(), false); + } + } + + /** + * Given a base (snapshot) profile structure, and a differential profile, generate a new snapshot profile + * + * @param base - the base structure on which the differential will be applied + * @param derived - the differential to apply to the base + * @param url - where the base has relative urls for profile references, these need to be converted to absolutes by prepending this URL (e.g. the canonical URL) + * @param webUrl - where the base has relative urls in markdown, these need to be converted to absolutes by prepending this URL (this is not the same as the canonical URL) + * @return + * @throws FHIRException + * @throws DefinitionException + * @throws Exception + */ + public void generateSnapshot(StructureDefinition base, StructureDefinition derived, String url, String webUrl, String profileName) throws DefinitionException, FHIRException { + if (base == null) { + throw new DefinitionException(context.formatMessage(I18nConstants.NO_BASE_PROFILE_PROVIDED)); + } + if (derived == null) { + throw new DefinitionException(context.formatMessage(I18nConstants.NO_DERIVED_STRUCTURE_PROVIDED)); + } + checkNotGenerating(base, "Base for generating a snapshot for the profile "+derived.getUrl()); + checkNotGenerating(derived, "Focus for generating a snapshot"); + + if (!base.hasType()) { + throw new DefinitionException(context.formatMessage(I18nConstants.BASE_PROFILE__HAS_NO_TYPE, base.getUrl())); + } + if (!derived.hasType()) { + throw new DefinitionException(context.formatMessage(I18nConstants.DERIVED_PROFILE__HAS_NO_TYPE, derived.getUrl())); + } + if (!derived.hasDerivation()) { + throw new DefinitionException(context.formatMessage(I18nConstants.DERIVED_PROFILE__HAS_NO_DERIVATION_VALUE_AND_SO_CANT_BE_PROCESSED, derived.getUrl())); + } + if (!base.getType().equals(derived.getType()) && derived.getDerivation() == TypeDerivationRule.CONSTRAINT) { + throw new DefinitionException(context.formatMessage(I18nConstants.BASE__DERIVED_PROFILES_HAVE_DIFFERENT_TYPES____VS___, base.getUrl(), base.getType(), derived.getUrl(), derived.getType())); + } + if (!base.hasSnapshot()) { + StructureDefinition sdb = findProfile(base.getBaseDefinition(), base); + if (sdb == null) + throw new DefinitionException(context.formatMessage(I18nConstants.UNABLE_TO_FIND_BASE__FOR_, base.getBaseDefinition(), base.getUrl())); + checkNotGenerating(sdb, "an extension base"); + generateSnapshot(sdb, base, base.getUrl(), (sdb.hasWebPath()) ? Utilities.extractBaseUrl(sdb.getWebPath()) : webUrl, base.getName()); + } + fixTypeOfResourceId(base); + if (base.hasExtension(ExtensionDefinitions.EXT_TYPE_PARAMETER)) { + checkTypeParameters(base, derived); + } + + if (snapshotStack.contains(derived.getUrl())) { + throw new DefinitionException(context.formatMessage(I18nConstants.CIRCULAR_SNAPSHOT_REFERENCES_DETECTED_CANNOT_GENERATE_SNAPSHOT_STACK__, snapshotStack.toString())); + } + derived.setGeneratingSnapshot(true); + snapshotStack.add(derived.getUrl()); + boolean oldCopyUserData = Base.isCopyUserData(); + Base.setCopyUserData(true); + try { + + if (!Utilities.noString(webUrl) && !webUrl.endsWith("/")) + webUrl = webUrl + '/'; + + if (defWebRoot == null) + defWebRoot = webUrl; + derived.setSnapshot(new StructureDefinitionSnapshotComponent()); + + try { + checkDifferential(derived.getDifferential().getElement(), derived.getTypeName(), derived.getUrl()); + checkDifferentialBaseType(derived); + + log.debug("Differential: "); + int debugPadding = 0; + for (ElementDefinition ed : derived.getDifferential().getElement()) { + log.debug(" "+Utilities.padLeft(Integer.toString(debugPadding), ' ', 3)+" "+ed.getId()+" : "+typeSummaryWithProfile(ed)+"["+ed.getMin()+".."+ed.getMax()+"]"+sliceSummary(ed)+" "+constraintSummary(ed)); + debugPadding++; + } + log.debug("Snapshot: "); + debugPadding = 0; + for (ElementDefinition ed : base.getSnapshot().getElement()) { + log.debug(" "+Utilities.padLeft(Integer.toString(debugPadding), ' ', 3)+" "+ed.getId()+" : "+typeSummaryWithProfile(ed)+"["+ed.getMin()+".."+ed.getMax()+"]"+sliceSummary(ed)+" "+constraintSummary(ed)); + debugPadding++; + } + + + copyInheritedExtensions(base, derived, webUrl); + + findInheritedObligationProfiles(derived); + // so we have two lists - the base list, and the differential list + // the differential list is only allowed to include things that are in the base list, but + // is allowed to include them multiple times - thereby slicing them + + // our approach is to walk through the base list, and see whether the differential + // says anything about them. + // we need a diff cursor because we can only look ahead, in the bound scoped by longer paths + + + for (ElementDefinition e : derived.getDifferential().getElement()) + e.clearUserData(UserDataNames.SNAPSHOT_GENERATED_IN_SNAPSHOT); + + // we actually delegate the work to a subroutine so we can re-enter it with a different cursors + StructureDefinitionDifferentialComponent diff = cloneDiff(derived.getDifferential()); // we make a copy here because we're sometimes going to hack the differential while processing it. Have to migrate user data back afterwards + new SnapshotGenerationPreProcessor(this).process(diff, derived); + + StructureDefinitionSnapshotComponent baseSnapshot = base.getSnapshot(); + if (derived.getDerivation() == TypeDerivationRule.SPECIALIZATION) { + String derivedType = derived.getTypeName(); + + baseSnapshot = cloneSnapshot(baseSnapshot, base.getTypeName(), derivedType); + } + // if (derived.getId().equals("2.16.840.1.113883.10.20.22.2.1.1")) { + // debug = true; + // } + + MappingAssistant mappingDetails = new MappingAssistant(mappingMergeMode, base, derived, context.getVersion(), suppressedMappings); + + ProfilePathProcessor.processPaths(this, base, derived, url, webUrl, diff, baseSnapshot, mappingDetails); + + checkGroupConstraints(derived); + if (derived.getDerivation() == TypeDerivationRule.SPECIALIZATION) { + int i = 0; + for (ElementDefinition e : diff.getElement()) { + if (!e.hasUserData(UserDataNames.SNAPSHOT_GENERATED_IN_SNAPSHOT) && e.getPath().contains(".")) { + ElementDefinition existing = getElementInCurrentContext(e.getPath(), derived.getSnapshot().getElement()); + if (existing != null) { + updateFromDefinition(existing, e, profileName, false, url, base, derived, "StructureDefinition.differential.element["+i+"]", mappingDetails, false); + } else { + ElementDefinition outcome = updateURLs(url, webUrl, e.copy(), true); + e.setUserData(UserDataNames.SNAPSHOT_GENERATED_IN_SNAPSHOT, outcome); + markExtensions(outcome, true, derived); + derived.getSnapshot().addElement(outcome); + if (walksInto(diff.getElement(), e)) { + if (e.getType().size() > 1) { + throw new DefinitionException("Unsupported scenario: specialization walks into multiple types at "+e.getId()); + } else { + addInheritedElementsForSpecialization(derived.getSnapshot(), outcome, outcome.getTypeFirstRep().getWorkingCode(), outcome.getPath(), url, webUrl); + } + } + } + } + i++; + } + } + + for (int i = 0; i < derived.getSnapshot().getElement().size(); i++) { + ElementDefinition ed = derived.getSnapshot().getElement().get(i); + if (ed.getType().size() > 1) { + List toRemove = new ArrayList(); + for (TypeRefComponent tr : ed.getType()) { + ElementDefinition typeSlice = findTypeSlice(derived.getSnapshot().getElement(), i, ed.getPath(), tr.getWorkingCode()); + if (typeSlice != null && typeSlice.prohibited()) { + toRemove.add(tr); + } + } + ed.getType().removeAll(toRemove); + } + } + if (derived.getKind() != StructureDefinitionKind.LOGICAL && !derived.getSnapshot().getElementFirstRep().getType().isEmpty()) + throw new Error(context.formatMessage(I18nConstants.TYPE_ON_FIRST_SNAPSHOT_ELEMENT_FOR__IN__FROM_, derived.getSnapshot().getElementFirstRep().getPath(), derived.getUrl(), base.getUrl())); + mappingDetails.update(); + + setIds(derived, false); + + log.debug("Differential: "); + int debugPad = 0; + for (ElementDefinition ed : derived.getDifferential().getElement()) { + log.debug(" "+Utilities.padLeft(Integer.toString(debugPad), ' ', 3)+" "+ed.getId()+" : "+typeSummaryWithProfile(ed)+"["+ed.getMin()+".."+ed.getMax()+"]"+sliceSummary(ed)); + debugPad++; + } + log.debug("Diff (processed): "); + debugPad = 0; + for (ElementDefinition ed : diff.getElement()) { + log.debug(" "+Utilities.padLeft(Integer.toString(debugPad), ' ', 3)+" "+ed.getId()+" : "+typeSummaryWithProfile(ed)+"["+ed.getMin()+".."+ed.getMax()+"]"+sliceSummary(ed)+ + " -> "+(destInfo(ed, derived.getSnapshot().getElement()))); + debugPad++; + } + log.debug("Snapshot: "); + debugPad = 0; + for (ElementDefinition ed : derived.getSnapshot().getElement()) { + log.debug(" "+Utilities.padLeft(Integer.toString(debugPad), ' ', 3)+" "+ed.getId()+" : "+typeSummaryWithProfile(ed)+"["+ed.getMin()+".."+ed.getMax()+"]"+sliceSummary(ed)+" "+constraintSummary(ed)); + debugPad++; + } + + CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder(); + //Check that all differential elements have a corresponding snapshot element + int ce = 0; + int i = 0; + for (ElementDefinition e : diff.getElement()) { + if (!e.hasUserData(UserDataNames.SNAPSHOT_diff_source)) { + // was injected during preprocessing - this is ok + } else { + if (e.hasUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS)) + ((Base) e.getUserData(UserDataNames.SNAPSHOT_diff_source)).setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, e.getUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS)); + if (e.hasUserData(UserDataNames.SNAPSHOT_DERIVATION_POINTER)) + ((Base) e.getUserData(UserDataNames.SNAPSHOT_diff_source)).setUserData(UserDataNames.SNAPSHOT_DERIVATION_POINTER, e.getUserData(UserDataNames.SNAPSHOT_DERIVATION_POINTER)); + } + if (!e.hasUserData(UserDataNames.SNAPSHOT_GENERATED_IN_SNAPSHOT)) { + b.append(e.hasId() ? "id: "+e.getId() : "path: "+e.getPath()); + ce++; + if (e.hasId()) { + String msg = "No match found for "+e.getId()+" in the generated snapshot: check that the path and definitions are legal in the differential (including order)"; + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.VALUE, "StructureDefinition.differential.element["+i+"]", msg, ValidationMessage.IssueSeverity.ERROR)); + } + } else { + ElementDefinition sed = (ElementDefinition) e.getUserData(UserDataNames.SNAPSHOT_GENERATED_IN_SNAPSHOT); + sed.setUserData(UserDataNames.SNAPSHOT_DERIVATION_DIFF, e); // note: this means diff/snapshot are cross-linked + } + i++; + } + if (!Utilities.noString(b.toString())) { + String msg = "The profile "+derived.getUrl()+" has "+ce+" "+Utilities.pluralize("element", ce)+" in the differential ("+b.toString()+") that don't have a matching element in the snapshot: check that the path and definitions are legal in the differential (including order)"; + + log.debug("Error in snapshot generation: "+msg); + + log.debug("Differential: "); + for (ElementDefinition ed : derived.getDifferential().getElement()) + log.debug(" "+ed.getId()+" = "+ed.getPath()+" : "+typeSummaryWithProfile(ed)+"["+ed.getMin()+".."+ed.getMax()+"]"+sliceSummary(ed)+" "+constraintSummary(ed)); + log.debug("Snapshot: "); + for (ElementDefinition ed : derived.getSnapshot().getElement()) + log.debug(" "+ed.getId()+" = "+ed.getPath()+" : "+typeSummaryWithProfile(ed)+"["+ed.getMin()+".."+ed.getMax()+"]"+sliceSummary(ed)+" "+constraintSummary(ed)); + + + handleError(url, msg); + } + // hack around a problem in R4 definitions (somewhere?) + for (ElementDefinition ed : derived.getSnapshot().getElement()) { + for (ElementDefinitionMappingComponent mm : ed.getMapping()) { + if (mm.hasMap()) { + mm.setMap(mm.getMap().trim()); + } + } + for (ElementDefinitionConstraintComponent s : ed.getConstraint()) { + if (s.hasSource()) { + String ref = s.getSource(); + if (!Utilities.isAbsoluteUrl(ref)) { + if (ref.contains(".")) { + s.setSource("http://hl7.org/fhir/StructureDefinition/"+ref.substring(0, ref.indexOf("."))+"#"+ref); + } else { + s.setSource("http://hl7.org/fhir/StructureDefinition/"+ref); + } + } + } + } + } + if (derived.getDerivation() == TypeDerivationRule.SPECIALIZATION) { + for (ElementDefinition ed : derived.getSnapshot().getElement()) { + if (!ed.hasBase()) { + ed.getBase().setPath(ed.getPath()).setMin(ed.getMin()).setMax(ed.getMax()); + } + } + } + // check slicing is ok while we're at it. and while we're doing this. update the minimum count if we need to + String tn = derived.getType(); + if (tn.contains("/")) { + tn = tn.substring(tn.lastIndexOf("/")+1); + } + Map slices = new HashMap<>(); + i = 0; + for (ElementDefinition ed : derived.getSnapshot().getElement()) { + if (ed.hasSlicing()) { + slices.put(ed.getPath(), new ElementDefinitionCounter(ed, i)); + } else { + Set toRemove = new HashSet<>(); + for (String s : slices.keySet()) { + if (Utilities.charCount(s, '.') >= Utilities.charCount(ed.getPath(), '.') && !s.equals(ed.getPath())) { + toRemove.add(s); + } + } + for (String s : toRemove) { + ElementDefinitionCounter slice = slices.get(s); + int count = slice.checkMin(); + boolean repeats = !"1".equals(slice.getFocus().getBase().getMax()); // type slicing if repeats = 1 + if (count > -1 && repeats) { + if (slice.getFocus().hasUserData(UserDataNames.SNAPSHOT_auto_added_slicing)) { + slice.getFocus().setMin(count); + } else { + String msg = "The slice definition for "+slice.getFocus().getId()+" has a minimum of "+slice.getFocus().getMin()+" but the slices add up to a minimum of "+count; + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.VALUE, + "StructureDefinition.snapshot.element["+slice.getIndex()+"]", msg, forPublication ? ValidationMessage.IssueSeverity.ERROR : ValidationMessage.IssueSeverity.INFORMATION).setIgnorableError(true)); + } + } + count = slice.checkMax(); + if (count > -1 && repeats) { + String msg = "The slice definition for "+slice.getFocus().getId()+" has a maximum of "+slice.getFocus().getMax()+" but the slices add up to a maximum of "+count+". Check that this is what is intended"; + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.VALUE, + "StructureDefinition.snapshot.element["+slice.getIndex()+"]", msg, ValidationMessage.IssueSeverity.INFORMATION)); + } + if (!slice.checkMinMax()) { + String msg = "The slice definition for "+slice.getFocus().getId()+" has a maximum of "+slice.getFocus().getMax()+" which is less than the minimum of "+slice.getFocus().getMin(); + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.VALUE, + "StructureDefinition.snapshot.element["+slice.getIndex()+"]", msg, ValidationMessage.IssueSeverity.WARNING)); + } + slices.remove(s); + } + } + if (ed.getPath().contains(".") && !ed.getPath().startsWith(tn+".")) { + throw new Error("The element "+ed.getId()+" in the profile '"+derived.getVersionedUrl()+" doesn't have the right path (should start with "+tn+"."); + } + if (ed.hasSliceName() && !slices.containsKey(ed.getPath())) { + String msg = "The element "+ed.getId()+" launches straight into slicing without the slicing being set up properly first"; + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.VALUE, + "StructureDefinition.snapshot.element["+i+"]", msg, ValidationMessage.IssueSeverity.ERROR).setIgnorableError(true)); + } + if (ed.hasSliceName() && slices.containsKey(ed.getPath())) { + if (!slices.get(ed.getPath()).count(ed, ed.getSliceName())) { + String msg = "Duplicate slice name "+ed.getSliceName()+" on "+ed.getId()+" (["+i+"])"; + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.VALUE, + "StructureDefinition.snapshot.element["+i+"]", msg, ValidationMessage.IssueSeverity.ERROR).setIgnorableError(true)); + } + } + i++; + } + + i = 0; + // last, check for wrong profiles or target profiles, or unlabeled extensions + for (ElementDefinition ed : derived.getSnapshot().getElement()) { + for (TypeRefComponent t : ed.getType()) { + for (UriType u : t.getProfile()) { + StructureDefinition sd = findProfile(u.getValue(), derived); + if (sd == null) { + if (makeXVer().matchingUrl(u.getValue()) && xver.status(u.getValue()) == XVerExtensionStatus.Valid) { + sd = xver.getDefinition(u.getValue()); + } + } + if (sd == null) { + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.VALUE, + "StructureDefinition.snapshot.element["+i+"]", "The type of profile "+u.getValue()+" cannot be checked as the profile is not known", IssueSeverity.WARNING)); + } else { + String wt = t.getWorkingCode(); + if (ed.getPath().equals("Bundle.entry.response.outcome")) { + wt = "OperationOutcome"; + } + String tt = sd.getType(); + boolean elementProfile = u.hasExtension(ExtensionDefinitions.EXT_PROFILE_ELEMENT); + if (elementProfile) { + ElementDefinition edt = sd.getSnapshot().getElementById(u.getExtensionString(ExtensionDefinitions.EXT_PROFILE_ELEMENT)); + if (edt == null) { + handleError(url, "The profile "+u.getValue()+" has type "+sd.getType()+" which is not consistent with the stated type "+wt); + } else { + tt = edt.typeSummary(); + } + } + if (!tt.equals(wt)) { + boolean ok = !elementProfile && isCompatibleType(wt, sd); + if (!ok) { + handleError(url, "The profile "+u.getValue()+" has type "+sd.getType()+" which is not consistent with the stated type "+wt); + } + } + } + } + } + i++; + } + } catch (Exception e) { + log.error("Exception generating snapshot for "+derived.getVersionedUrl()+": " +e.getMessage()); + log.debug(e.getMessage(), e); + // if we had an exception generating the snapshot, make sure we don't leave any half generated snapshot behind + derived.setSnapshot(null); + derived.setGeneratingSnapshot(false); + throw e; + } + } finally { + Base.setCopyUserData(oldCopyUserData); + derived.setGeneratingSnapshot(false); + snapshotStack.remove(derived.getUrl()); + } + if (base.getVersion() != null) { + derived.getSnapshot().addExtension(ExtensionDefinitions.EXT_VERSION_BASE, new StringType(base.getVersion())); + } + derived.setGeneratedSnapshot(true); + //derived.setUserData(UserDataNames.SNAPSHOT_GENERATED, true); // used by the publisher + derived.setUserData(UserDataNames.SNAPSHOT_GENERATED_MESSAGES, messages); // used by the publisher + } + + + private String destInfo(ElementDefinition ed, List snapshot) { + ElementDefinition sed = (ElementDefinition) ed.getUserData(UserDataNames.SNAPSHOT_GENERATED_IN_SNAPSHOT); + if (sed == null) { + return "(null)"; + } else { + int index = snapshot.indexOf(sed); + return ""+index+" "+sed.getId(); + } + } + + private ElementDefinition findTypeSlice(List list, int i, String path, String typeCode) { + for (int j = i+1; j < list.size(); j++) { + ElementDefinition ed = list.get(j); + if (pathMatches(path, ed) && typeMatches(ed, typeCode)) { + return ed; + } + } + return null; + } + + private boolean pathMatches(String path, ElementDefinition ed) { + String p = ed.getPath(); + if (path.equals(p)) { + return true; + } + if (path.endsWith("[x]")) { // it should + path = path.substring(0, path.length()-3); + if (p.startsWith(path) && p.length() > path.length() && !p.substring(path.length()).contains(".")) { + return true; + } + } + return false; + } + + private boolean typeMatches(ElementDefinition ed, String typeCode) { + return ed.getType().size() == 1 && typeCode.equals(ed.getTypeFirstRep().getWorkingCode()); + } + + private void checkTypeParameters(StructureDefinition base, StructureDefinition derived) { + String bt = ExtensionUtilities.readStringSubExtension(base, ExtensionDefinitions.EXT_TYPE_PARAMETER, "type"); + if (!derived.hasExtension(ExtensionDefinitions.EXT_TYPE_PARAMETER)) { + throw new DefinitionException(context.formatMessage(I18nConstants.SD_TYPE_PARAMETER_MISSING, base.getVersionedUrl(), bt, derived.getVersionedUrl())); + } + String dt = ExtensionUtilities.readStringSubExtension(derived, ExtensionDefinitions.EXT_TYPE_PARAMETER, "type"); + StructureDefinition bsd = context.fetchTypeDefinition(bt); + StructureDefinition dsd = context.fetchTypeDefinition(dt); + if (bsd == null) { + throw new DefinitionException(context.formatMessage(I18nConstants.SD_TYPE_PARAMETER_UNKNOWN, base.getVersionedUrl(), bt)); + } + if (dsd == null) { + throw new DefinitionException(context.formatMessage(I18nConstants.SD_TYPE_PARAMETER_UNKNOWN, derived.getVersionedUrl(), dt)); + } + StructureDefinition t = dsd; + while (t != bsd && t != null) { + t = findProfile(t.getBaseDefinition(), t); + } + if (t == null) { + throw new DefinitionException(context.formatMessage(I18nConstants.SD_TYPE_PARAMETER_INVALID, base.getVersionedUrl(), bt, derived.getVersionedUrl(), dt)); + } + } + + private XVerExtensionManager makeXVer() { + if (xver == null) { + xver = XVerExtensionManagerFactory.createExtensionManager(context); + } + return xver; + } + + private ElementDefinition getElementInCurrentContext(String path, List list) { + for (int i = list.size() -1; i >= 0; i--) { + ElementDefinition t = list.get(i); + if (t.getPath().equals(path)) { + return t; + } else if (!path.startsWith(head(t.getPath()))) { + return null; + } + } + return null; + } + + private String head(String path) { + return path.contains(".") ? path.substring(0, path.lastIndexOf(".")+1) : path; + } + + private void findInheritedObligationProfiles(StructureDefinition derived) { + List list = derived.getExtensionsByUrl(ExtensionDefinitions.EXT_OBLIGATION_INHERITS_NEW, ExtensionDefinitions.EXT_OBLIGATION_INHERITS_OLD); + for (Extension ext : list) { + StructureDefinition op = findProfile(ext.getValueCanonicalType().primitiveValue(), derived); + if (op != null && ExtensionUtilities.readBoolExtension(op, ExtensionDefinitions.EXT_OBLIGATION_PROFILE_FLAG_NEW, ExtensionDefinitions.EXT_OBLIGATION_PROFILE_FLAG_OLD)) { + if (derived.getBaseDefinitionNoVersion().equals(op.getBaseDefinitionNoVersion())) { + obligationProfiles.add(op); + } + } + } + } + + private void handleError(String url, String msg) { + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.VALUE, url, msg, ValidationMessage.IssueSeverity.ERROR)); + } + + private void addMessage(ValidationMessage msg) { + messages.add(msg); + if (msg.getLevel() == IssueSeverity.ERROR && wantThrowExceptions) { + throw new DefinitionException(msg.getMessage()); + } + } + + private void copyInheritedExtensions(StructureDefinition base, StructureDefinition derived, String webUrl) { + for (Extension ext : base.getExtension()) { + if (!Utilities.existsInList(ext.getUrl(), NON_INHERITED_ED_URLS)) { + String action = getExtensionAction(ext.getUrl()); + if (!"ignore".equals(action)) { + boolean exists = derived.hasExtension(ext.getUrl()); + if ("add".equals(action) || !exists) { + Extension next = ext.copy(); + if (next.hasValueMarkdownType()) { + MarkdownType md = next.getValueMarkdownType(); + md.setValue(processRelativeUrls(md.getValue(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, localFileNames, false)); + } + derived.getExtension().add(next); + } else if ("overwrite".equals(action)) { + Extension oext = derived.getExtensionByUrl(ext.getUrl()); + Extension next = ext.copy(); + if (next.hasValueMarkdownType()) { + MarkdownType md = next.getValueMarkdownType(); + md.setValue(processRelativeUrls(md.getValue(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, localFileNames, false)); + } + oext.setValue(next.getValue()); + } + } + } + } + } + + private String getExtensionAction(String url) { + StructureDefinition sd = context.fetchResourceRaw(StructureDefinition.class, url); + if (sd != null && sd.hasExtension(ExtensionDefinitions.EXT_SNAPSHOT_BEHAVIOR)) { + return ExtensionUtilities.readStringExtension(sd, ExtensionDefinitions.EXT_SNAPSHOT_BEHAVIOR); + } + return "defer"; + } + + private void addInheritedElementsForSpecialization(StructureDefinitionSnapshotComponent snapshot, ElementDefinition focus, String type, String path, String url, String weburl) { + StructureDefinition sd = context.fetchTypeDefinition(type); + if (sd != null) { + // don't do this. should already be in snapshot ... addInheritedElementsForSpecialization(snapshot, focus, sd.getBaseDefinition(), path, url, weburl); + for (ElementDefinition ed : sd.getSnapshot().getElement()) { + if (ed.getPath().contains(".")) { + ElementDefinition outcome = updateURLs(url, weburl, ed.copy(), true); + outcome.setPath(outcome.getPath().replace(sd.getTypeName(), path)); + markExtensions(outcome, false, sd); + snapshot.getElement().add(outcome); + } else { + focus.getConstraint().addAll(ed.getConstraint()); + for (Extension ext : ed.getExtension()) { + if (!Utilities.existsInList(ext.getUrl(), NON_INHERITED_ED_URLS) && !focus.hasExtension(ext.getUrl())) { + focus.getExtension().add(markExtensionSource(ext.copy(), false, sd)); + } + } + } + } + } + } + + private boolean walksInto(List list, ElementDefinition ed) { + int i = list.indexOf(ed); + return (i < list.size() - 1) && list.get(i + 1).getPath().startsWith(ed.getPath()+"."); + } + + private void fixTypeOfResourceId(StructureDefinition base) { + if (base.getKind() == StructureDefinitionKind.RESOURCE && (base.getFhirVersion() == null || VersionUtilities.isR4Plus(base.getFhirVersion().toCode()))) { + fixTypeOfResourceId(base.getSnapshot().getElement()); + fixTypeOfResourceId(base.getDifferential().getElement()); + } + } + + private void fixTypeOfResourceId(List list) { + for (ElementDefinition ed : list) { + if (ed.hasBase() && ed.getBase().getPath().equals("Resource.id")) { + for (TypeRefComponent tr : ed.getType()) { + tr.setCode("http://hl7.org/fhirpath/System.String"); + tr.removeExtension(ExtensionDefinitions.EXT_FHIR_TYPE); + ExtensionUtilities.addUrlExtension(tr, ExtensionDefinitions.EXT_FHIR_TYPE, "id"); + } + } + } + } + + /** + * Check if derived has the correct base type + * + * Clear first element of differential under certain conditions. + * + * @param derived + * @throws Error + */ + private void checkDifferentialBaseType(StructureDefinition derived) throws Error { + if (derived.hasDifferential() && !derived.getDifferential().getElementFirstRep().getPath().contains(".") && !derived.getDifferential().getElementFirstRep().getType().isEmpty()) { + if (wantFixDifferentialFirstElementType && typeMatchesAncestor(derived.getDifferential().getElementFirstRep().getType(), derived.getBaseDefinitionNoVersion(), derived)) { + derived.getDifferential().getElementFirstRep().getType().clear(); + } else if (derived.getKind() != StructureDefinitionKind.LOGICAL) { + throw new Error(context.formatMessage(I18nConstants.TYPE_ON_FIRST_DIFFERENTIAL_ELEMENT)); + } + } + } + + private boolean typeMatchesAncestor(List type, String baseDefinition, StructureDefinition src) { + StructureDefinition sd = findProfile(baseDefinition, src); + return sd != null && type.size() == 1 && sd.getType().equals(type.get(0).getCode()); + } + + + private void checkGroupConstraints(StructureDefinition derived) { + List toRemove = new ArrayList<>(); +// List processed = new ArrayList<>(); + for (ElementDefinition element : derived.getSnapshot().getElement()) { + if (!toRemove.contains(element) && !element.hasSlicing() && !"0".equals(element.getMax())) { + checkForChildrenInGroup(derived, toRemove, element); + } + } + derived.getSnapshot().getElement().removeAll(toRemove); + } + + private void checkForChildrenInGroup(StructureDefinition derived, List toRemove, ElementDefinition element) throws Error { + List children = getChildren(derived, element); + List groups = readChoices(element, children); + for (ElementChoiceGroup group : groups) { + String mandated = null; + Set names = new HashSet<>(); + for (ElementDefinition ed : children) { + String name = tail(ed.getPath()); + if (names.contains(name)) { + throw new Error("huh?"); + } else { + names.add(name); + } + if (group.getElements().contains(name)) { + if (ed.getMin() == 1) { + if (mandated == null) { + mandated = name; + } else { + throw new Error("Error: there are two mandatory elements in "+derived.getUrl()+" when there can only be one: "+mandated+" and "+name); + } + } + } + } + if (mandated != null) { + for (ElementDefinition ed : children) { + String name = tail(ed.getPath()); + if (group.getElements().contains(name) && !mandated.equals(name)) { + ed.setMax("0"); + addAllChildren(derived, ed, toRemove); + } + } + } + } + } + + private List getChildren(StructureDefinition derived, ElementDefinition element) { + List elements = derived.getSnapshot().getElement(); + int index = elements.indexOf(element) + 1; + String path = element.getPath()+"."; + List list = new ArrayList<>(); + while (index < elements.size()) { + ElementDefinition e = elements.get(index); + String p = e.getPath(); + if (p.startsWith(path) && !e.hasSliceName()) { + if (!p.substring(path.length()).contains(".")) { + list.add(e); + } + index++; + } else { + break; + } + } + return list; + } + + private void addAllChildren(StructureDefinition derived, ElementDefinition element, List toRemove) { + List children = getChildList(derived, element); + for (ElementDefinition child : children) { + toRemove.add(child); + addAllChildren(derived, child, toRemove); + } + } + + /** + * Check that a differential is valid. + * @param elements + * @param type + * @param url + */ + private void checkDifferential(List elements, String type, String url) { + boolean first = true; + String t = urlTail(type); + for (ElementDefinition ed : elements) { + if (!ed.hasPath()) { + throw new FHIRException(context.formatMessage(I18nConstants.NO_PATH_ON_ELEMENT_IN_DIFFERENTIAL_IN_, url)); + } + String p = ed.getPath(); + if (p == null) { + throw new FHIRException(context.formatMessage(I18nConstants.NO_PATH_VALUE_ON_ELEMENT_IN_DIFFERENTIAL_IN_, url)); + } + if (!((first && t.equals(p)) || p.startsWith(t+"."))) { + throw new FHIRException(context.formatMessage(I18nConstants.ILLEGAL_PATH__IN_DIFFERENTIAL_IN__MUST_START_WITH_, p, url, t, (first ? " (or be '"+t+"')" : ""))); + } + if (p.contains(".")) { + // Element names (the parts of a path delineated by the '.' character) SHALL NOT contain whitespace (i.e. Unicode characters marked as whitespace) + // Element names SHALL NOT contain the characters ,:;'"/|?!@#$%^&*()[]{} + // Element names SHOULD not contain non-ASCII characters + // Element names SHALL NOT exceed 64 characters in length + String[] pl = p.split("\\."); + for (String pp : pl) { + if (pp.length() < 1) { + throw new FHIRException(context.formatMessage(I18nConstants.ILLEGAL_PATH__IN_DIFFERENTIAL_IN__NAME_PORTION_MISING_, p, url)); + } + if (pp.length() > 64) { + throw new FHIRException(context.formatMessage(I18nConstants.ILLEGAL_PATH__IN_DIFFERENTIAL_IN__NAME_PORTION_EXCEEDS_64_CHARS_IN_LENGTH, p, url)); + } + for (char ch : pp.toCharArray()) { + if (Utilities.isWhitespace(ch)) { + throw new FHIRException(context.formatMessage(I18nConstants.ILLEGAL_PATH__IN_DIFFERENTIAL_IN__NO_UNICODE_WHITESPACE, p, url)); + } + if (Utilities.existsInList(ch, ',', ':', ';', '\'', '"', '/', '|', '?', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '{', '}')) { + throw new FHIRException(context.formatMessage(I18nConstants.ILLEGAL_PATH__IN_DIFFERENTIAL_IN__ILLEGAL_CHARACTER_, p, url, ch)); + } + if (ch < ' ' || ch > 'z') { + throw new FHIRException(context.formatMessage(I18nConstants.ILLEGAL_PATH__IN_DIFFERENTIAL_IN__ILLEGAL_CHARACTER_, p, url, ch)); + } + } + if (pp.contains("[") || pp.contains("]")) { + if (!pp.endsWith("[x]") || (pp.substring(0, pp.length()-3).contains("[") || (pp.substring(0, pp.length()-3).contains("]")))) { + throw new FHIRException(context.formatMessage(I18nConstants.ILLEGAL_PATH__IN_DIFFERENTIAL_IN__ILLEGAL_CHARACTERS_, p, url)); + } + } + } + } + } + } + + + private boolean isCompatibleType(String base, StructureDefinition sdt) { + StructureDefinition sdb = context.fetchTypeDefinition(base); + if (sdb.getType().equals(sdt.getType())) { + return true; + } + StructureDefinition sd = context.fetchTypeDefinition(sdt.getType()); + while (sd != null) { + if (sd.getType().equals(sdb.getType())) { + return true; + } + if (sd.getUrl().equals(sdb.getUrl())) { + return true; + } + sd = findProfile(sd.getBaseDefinition(), sd); + } + return false; + } + + + private StructureDefinitionDifferentialComponent cloneDiff(StructureDefinitionDifferentialComponent source) { + StructureDefinitionDifferentialComponent diff = new StructureDefinitionDifferentialComponent(); + for (ElementDefinition sed : source.getElement()) { + ElementDefinition ted = sed.copy(); + diff.getElement().add(ted); + ted.setUserData(UserDataNames.SNAPSHOT_diff_source, sed); + } + return diff; + } + + private StructureDefinitionSnapshotComponent cloneSnapshot(StructureDefinitionSnapshotComponent source, String baseType, String derivedType) { + StructureDefinitionSnapshotComponent diff = new StructureDefinitionSnapshotComponent(); + for (ElementDefinition sed : source.getElement()) { + ElementDefinition ted = sed.copy(); + ted.setId(ted.getId().replaceFirst(baseType,derivedType)); + ted.setPath(ted.getPath().replaceFirst(baseType,derivedType)); + diff.getElement().add(ted); + } + return diff; + } + + private String constraintSummary(ElementDefinition ed) { + CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder(); + if (ed.hasPattern()) + b.append("pattern="+ed.getPattern().fhirType()); + if (ed.hasFixed()) + b.append("fixed="+ed.getFixed().fhirType()); + if (ed.hasConstraint()) + b.append("constraints="+ed.getConstraint().size()); + return b.toString(); + } + + + private String sliceSummary(ElementDefinition ed) { + if (!ed.hasSlicing() && !ed.hasSliceName()) + return ""; + if (ed.hasSliceName()) + return " (slicename = "+ed.getSliceName()+")"; + + StringBuilder b = new StringBuilder(); + boolean first = true; + for (ElementDefinitionSlicingDiscriminatorComponent d : ed.getSlicing().getDiscriminator()) { + if (first) + first = false; + else + b.append("|"); + b.append(d.getPath()); + } + return " (slicing by "+b.toString()+")"; + } + + +// private String typeSummary(ElementDefinition ed) { +// StringBuilder b = new StringBuilder(); +// boolean first = true; +// for (TypeRefComponent tr : ed.getType()) { +// if (first) +// first = false; +// else +// b.append("|"); +// b.append(tr.getWorkingCode()); +// } +// return b.toString(); +// } + + private String typeSummaryWithProfile(ElementDefinition ed) { + StringBuilder b = new StringBuilder(); + boolean first = true; + for (TypeRefComponent tr : ed.getType()) { + if (first) + first = false; + else + b.append("|"); + b.append(tr.getWorkingCode()); + if (tr.hasProfile()) { + b.append("("); + b.append(tr.getProfile()); + b.append(")"); + + } + } + return b.toString(); + } + + +// private boolean findMatchingElement(String id, List list) { +// for (ElementDefinition ed : list) { +// if (ed.getId().equals(id)) +// return true; +// if (id.endsWith("[x]")) { +// if (ed.getId().startsWith(id.substring(0, id.length()-3)) && !ed.getId().substring(id.length()-3).contains(".")) +// return true; +// } +// } +// return false; +// } + + protected ElementDefinition getById(List list, String baseId) { + for (ElementDefinition t : list) { + if (baseId.equals(t.getId())) { + return t; + } + } + return null; + } + + protected void updateConstraintSources(ElementDefinition ed, String url) { + for (ElementDefinitionConstraintComponent c : ed.getConstraint()) { + if (!c.hasSource()) { + c.setSource(url); + } + } + + } + + protected Set getListOfTypes(ElementDefinition e) { + Set result = new HashSet<>(); + for (TypeRefComponent t : e.getType()) { + result.add(t.getCode()); + } + return result; + } + + StructureDefinition getTypeForElement(StructureDefinitionDifferentialComponent differential, int diffCursor, String profileName, + List diffMatches, ElementDefinition outcome, String webUrl, StructureDefinition srcSD) { + if (outcome.getType().size() == 0) { + if (outcome.hasContentReference()) { + throw new Error(context.formatMessage(I18nConstants.UNABLE_TO_RESOLVE_CONTENT_REFERENCE_IN_THIS_CONTEXT, outcome.getContentReference(), outcome.getId(), outcome.getPath())); + } else { + throw new DefinitionException(context.formatMessage(I18nConstants._HAS_NO_CHILDREN__AND_NO_TYPES_IN_PROFILE_, diffMatches.get(0).getPath(), differential.getElement().get(diffCursor).getPath(), profileName)); + } + } + if (outcome.getType().size() > 1) { + for (TypeRefComponent t : outcome.getType()) { + if (!t.getWorkingCode().equals("Reference")) + throw new DefinitionException(context.formatMessage(I18nConstants._HAS_CHILDREN__AND_MULTIPLE_TYPES__IN_PROFILE_, diffMatches.get(0).getPath(), differential.getElement().get(diffCursor).getPath(), typeCode(outcome.getType()), profileName)); + } + } + StructureDefinition dt = getProfileForDataType(outcome.getType().get(0), webUrl, srcSD); + if (dt == null) + throw new DefinitionException(context.formatMessage(I18nConstants.UNKNOWN_TYPE__AT_, outcome.getType().get(0), diffMatches.get(0).getPath())); + return dt; + } + + protected String sliceNames(List diffMatches) { + CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder(); + for (ElementDefinition ed : diffMatches) { + if (ed.hasSliceName()) { + b.append(ed.getSliceName()); + } + } + return b.toString(); + } + + protected boolean isMatchingType(StructureDefinition sd, List types, String inner) { + StructureDefinition tsd = sd; + while (tsd != null) { + for (TypeRefComponent tr : types) { + if (tsd.getUrl().startsWith("http://hl7.org/fhir/StructureDefinition") && tsd.getType().equals(tr.getCode())) { + return true; + } + if (inner == null && tsd.getUrl().equals(tr.getCode())) { + return true; + } + if (inner != null) { + ElementDefinition ed = null; + for (ElementDefinition t : tsd.getSnapshot().getElement()) { + if (inner.equals(t.getId())) { + ed = t; + } + } + if (ed != null) { + return isMatchingType(ed.getType(), types); + } + } + } + tsd = findProfile(tsd.getBaseDefinition(), tsd); + } + return false; + } + + private boolean isMatchingType(List test, List desired) { + for (TypeRefComponent t : test) { + for (TypeRefComponent d : desired) { + if (t.getCode().equals(d.getCode())) { + return true; + } + } + } + return false; + } + + protected boolean isValidType(TypeRefComponent t, ElementDefinition base) { + for (TypeRefComponent tr : base.getType()) { + if (tr.getCode().equals(t.getCode())) { + return true; + } + if (tr.getWorkingCode().equals(t.getCode())) { + log.error("Type error: use of a simple type \""+t.getCode()+"\" wrongly constraining "+base.getPath()); + return true; + } + } + return false; + } + + protected void checkNotGenerating(StructureDefinition sd, String role) { + if (sd.isGeneratingSnapshot()) { + throw new FHIRException(context.formatMessage(I18nConstants.ATTEMPT_TO_USE_A_SNAPSHOT_ON_PROFILE__AS__BEFORE_IT_IS_GENERATED, sd.getUrl(), role)); + } + } + + protected boolean isBaseResource(List types) { + if (types.isEmpty()) + return false; + for (TypeRefComponent type : types) { + String t = type.getWorkingCode(); + if ("Resource".equals(t)) + return false; + } + return true; + + } + + String determineFixedType(List diffMatches, String fixedType, int i) { + if (diffMatches.get(i).getType().size() == 0 && diffMatches.get(i).hasSliceName()) { + String n = tail(diffMatches.get(i).getPath()).replace("[x]", ""); + String t = diffMatches.get(i).getSliceName().substring(n.length()); + if (isDataType(t)) { + fixedType = t; + } else if (isPrimitive(Utilities.uncapitalize(t))) { + fixedType = Utilities.uncapitalize(t); + } else { + throw new FHIRException(context.formatMessage(I18nConstants.UNEXPECTED_CONDITION_IN_DIFFERENTIAL_TYPESLICETYPELISTSIZE__10_AND_IMPLICIT_SLICE_NAME_DOES_NOT_CONTAIN_A_VALID_TYPE__AT_, t, diffMatches.get(i).getPath(), diffMatches.get(i).getSliceName())); + } + } else if (diffMatches.get(i).getType().size() == 1) { + fixedType = diffMatches.get(i).getType().get(0).getCode(); + } else { + throw new FHIRException(context.formatMessage(I18nConstants.UNEXPECTED_CONDITION_IN_DIFFERENTIAL_TYPESLICETYPELISTSIZE__1_AT_, diffMatches.get(i).getPath(), diffMatches.get(i).getSliceName())); + } + return fixedType; + } + + + protected BaseTypeSlice chooseMatchingBaseSlice(List baseSlices, String type) { + for (BaseTypeSlice bs : baseSlices) { + if (bs.getType().equals(type)) { + return bs; + } + } + return null; + } + + + protected List findBaseSlices(StructureDefinitionSnapshotComponent list, int start) { + List res = new ArrayList<>(); + ElementDefinition base = list.getElement().get(start); + int i = start + 1; + while (i < list.getElement().size() && list.getElement().get(i).getPath().startsWith(base.getPath()+".")) { + i++; + }; + while (i < list.getElement().size() && list.getElement().get(i).getPath().equals(base.getPath()) && list.getElement().get(i).hasSliceName()) { + int s = i; + i++; + while (i < list.getElement().size() && list.getElement().get(i).getPath().startsWith(base.getPath()+".")) { + i++; + }; + res.add(new BaseTypeSlice(list.getElement().get(s), list.getElement().get(s).getTypeFirstRep().getCode(), s, i-1)); + } + return res; + } + + + protected String getWebUrl(StructureDefinition dt, String webUrl) { + if (dt.hasWebPath()) { + // this is a hack, but it works for now, since we don't have deep folders + String url = dt.getWebPath(); + int i = url.lastIndexOf("/"); + if (i < 1) { + return defWebRoot; + } else { + return url.substring(0, i+1); + } + } else { + return webUrl; + } + } + + protected String descED(List list, int index) { + return index >=0 && index < list.size() ? list.get(index).present() : "X"; + } + + + + protected String rootName(String cpath) { + String t = tail(cpath); + return t.replace("[x]", ""); + } + + + protected String determineTypeSlicePath(String path, String cpath) { + String headP = path.substring(0, path.lastIndexOf(".")); +// String tailP = path.substring(path.lastIndexOf(".")+1); + String tailC = cpath.substring(cpath.lastIndexOf(".")+1); + return headP+"."+tailC; + } + + + protected boolean isImplicitSlicing(ElementDefinition ed, String path) { + if (ed == null || ed.getPath() == null || path == null) + return false; + if (path.equals(ed.getPath())) + return false; + boolean ok = path.endsWith("[x]") && ed.getPath().startsWith(path.substring(0, path.length()-3)); + return ok; + } + + + protected boolean diffsConstrainTypes(List diffMatches, String cPath, List typeList) { +// if (diffMatches.size() < 2) + // return false; + String p = diffMatches.get(0).getPath(); + if (!p.endsWith("[x]") && !cPath.endsWith("[x]")) + return false; + typeList.clear(); + String rn = tail(cPath); + rn = rn.substring(0, rn.length()-3); + for (int i = 0; i < diffMatches.size(); i++) { + ElementDefinition ed = diffMatches.get(i); + String n = tail(ed.getPath()); + if (!n.startsWith(rn)) + return false; + String s = n.substring(rn.length()); + if (!s.contains(".")) { + if (ed.hasSliceName() && ed.getType().size() == 1) { + typeList.add(new TypeSlice(ed, ed.getTypeFirstRep().getWorkingCode())); + } else if (ed.hasSliceName() && ed.getType().size() == 0) { + if (isDataType(s)) { + typeList.add(new TypeSlice(ed, s)); + } else if (isPrimitive(Utilities.uncapitalize(s))) { + typeList.add(new TypeSlice(ed, Utilities.uncapitalize(s))); + } else { + String tn = ed.getSliceName().substring(n.length()); + if (isDataType(tn)) { + typeList.add(new TypeSlice(ed, tn)); + } else if (isPrimitive(Utilities.uncapitalize(tn))) { + typeList.add(new TypeSlice(ed, Utilities.uncapitalize(tn))); + } + } + } else if (!ed.hasSliceName() && !s.equals("[x]")) { + if (isDataType(s)) + typeList.add(new TypeSlice(ed, s)); + else if (isConstrainedDataType(s)) + typeList.add(new TypeSlice(ed, baseType(s))); + else if (isPrimitive(Utilities.uncapitalize(s))) + typeList.add(new TypeSlice(ed, Utilities.uncapitalize(s))); + } else if (!ed.hasSliceName() && s.equals("[x]")) + typeList.add(new TypeSlice(ed, null)); + } + } + return true; + } + + + protected List redirectorStack(List redirector, ElementDefinition outcome, String path) { + List result = new ArrayList(); + result.addAll(redirector); + result.add(new ElementRedirection(outcome, path)); + return result; + } + + + protected List getByTypeName(List type, String t) { + List res = new ArrayList(); + for (TypeRefComponent tr : type) { + if (t.equals(tr.getWorkingCode())) + res.add(tr); + } + return res; + } + + + protected void replaceFromContentReference(ElementDefinition outcome, ElementDefinition tgt) { + outcome.setContentReference(null); + outcome.getType().clear(); // though it should be clear anyway + outcome.getType().addAll(tgt.getType()); + } + + + protected boolean baseWalksInto(List elements, int cursor) { + if (cursor >= elements.size()) + return false; + String path = elements.get(cursor).getPath(); + String prevPath = elements.get(cursor - 1).getPath(); + return path.startsWith(prevPath + "."); + } + + + protected ElementDefinition fillOutFromBase(ElementDefinition profile, ElementDefinition usage) throws FHIRFormatError { + ElementDefinition res = profile.copy(); + if (!res.hasSliceName()) + res.setSliceName(usage.getSliceName()); + if (!res.hasLabel()) + res.setLabel(usage.getLabel()); + for (Coding c : usage.getCode()) + if (!res.hasCode(c)) + res.addCode(c); + + if (!res.hasDefinition()) + res.setDefinition(usage.getDefinition()); + if (!res.hasShort() && usage.hasShort()) + res.setShort(usage.getShort()); + if (!res.hasComment() && usage.hasComment()) + res.setComment(usage.getComment()); + if (!res.hasRequirements() && usage.hasRequirements()) + res.setRequirements(usage.getRequirements()); + for (StringType c : usage.getAlias()) + if (!res.hasAlias(c.getValue())) + res.addAlias(c.getValue()); + if (!res.hasMin() && usage.hasMin()) + res.setMin(usage.getMin()); + if (!res.hasMax() && usage.hasMax()) + res.setMax(usage.getMax()); + + if (!res.hasFixed() && usage.hasFixed()) + res.setFixed(usage.getFixed()); + if (!res.hasPattern() && usage.hasPattern()) + res.setPattern(usage.getPattern()); + if (!res.hasExample() && usage.hasExample()) + res.setExample(usage.getExample()); + if (!res.hasMinValue() && usage.hasMinValue()) + res.setMinValue(usage.getMinValue()); + if (!res.hasMaxValue() && usage.hasMaxValue()) + res.setMaxValue(usage.getMaxValue()); + if (!res.hasMaxLength() && usage.hasMaxLength()) + res.setMaxLength(usage.getMaxLength()); + if (!res.hasMustSupport() && usage.hasMustSupport()) + res.setMustSupport(usage.getMustSupport()); + if (!res.hasIsSummary() && usage.hasIsSummary()) + res.setIsSummary(usage.getIsSummary()); + if (!res.hasIsModifier() && usage.hasIsModifier()) + res.setIsModifier(usage.getIsModifier()); + if (!res.hasIsModifierReason() && usage.hasIsModifierReason()) + res.setIsModifierReason(usage.getIsModifierReason()); + if (!res.hasMustHaveValue() && usage.hasMustHaveValue()) + res.setMustHaveValue(usage.getMustHaveValue()); + if (!res.hasBinding() && usage.hasBinding()) + res.setBinding(usage.getBinding().copy()); + for (ElementDefinitionConstraintComponent c : usage.getConstraint()) + if (!res.hasConstraint(c.getKey())) + res.addConstraint(c); + for (Extension e : usage.getExtension()) { + if (!res.hasExtension(e.getUrl())) + res.addExtension(e.copy()); + } + + return res; + } + + + protected boolean checkExtensionDoco(ElementDefinition base) { + // see task 3970. For an extension, there's no point copying across all the underlying definitional stuff + boolean isExtension = (base.getPath().equals("Extension") || base.getPath().endsWith(".extension") || base.getPath().endsWith(".modifierExtension")) && + (!base.hasBase() || !"II.extension".equals(base.getBase().getPath())); + if (isExtension) { + base.setDefinition("An Extension"); + base.setShort("Extension"); + base.setCommentElement(null); + base.setRequirementsElement(null); + base.getAlias().clear(); + base.getMapping().clear(); + } + return isExtension; + } + + + protected String pathTail(List diffMatches, int i) { + + ElementDefinition d = diffMatches.get(i); + String s = d.getPath().contains(".") ? d.getPath().substring(d.getPath().lastIndexOf(".")+1) : d.getPath(); + return "."+s + (d.hasType() && d.getType().get(0).hasProfile() ? "["+d.getType().get(0).getProfile()+"]" : ""); + } + + + protected void markDerived(ElementDefinition outcome) { + for (ElementDefinitionConstraintComponent inv : outcome.getConstraint()) + inv.setUserData(UserDataNames.SNAPSHOT_IS_DERIVED, true); + } + + + static String summarizeSlicing(ElementDefinitionSlicingComponent slice) { + StringBuilder b = new StringBuilder(); + boolean first = true; + for (ElementDefinitionSlicingDiscriminatorComponent d : slice.getDiscriminator()) { + if (first) + first = false; + else + b.append(", "); + b.append(d.getType().toCode()+":"+d.getPath()); + } + b.append(" ("); + if (slice.hasOrdered()) + b.append(slice.getOrdered() ? "ordered" : "unordered"); + b.append("/"); + if (slice.hasRules()) + b.append(slice.getRules().toCode()); + b.append(")"); + if (slice.hasDescription()) { + b.append(" \""); + b.append(slice.getDescription()); + b.append("\""); + } + return b.toString(); + } + + + protected void updateFromBase(ElementDefinition derived, ElementDefinition base, String baseProfileUrl) { + derived.setUserData(UserDataNames.SNAPSHOT_BASE_MODEL, baseProfileUrl); + derived.setUserData(UserDataNames.SNAPSHOT_BASE_PATH, base.getPath()); + if (base.hasBase()) { + if (!derived.hasBase()) + derived.setBase(new ElementDefinitionBaseComponent()); + derived.getBase().setPath(base.getBase().getPath()); + derived.getBase().setMin(base.getBase().getMin()); + derived.getBase().setMax(base.getBase().getMax()); + } else { + if (!derived.hasBase()) + derived.setBase(new ElementDefinitionBaseComponent()); + derived.getBase().setPath(base.getPath()); + derived.getBase().setMin(base.getMin()); + derived.getBase().setMax(base.getMax()); + } + } + + + protected boolean pathStartsWith(String p1, String p2) { + return p1.startsWith(p2) || (p2.endsWith("[x].") && p1.startsWith(p2.substring(0, p2.length()-4))); + } + + private boolean pathMatches(String p1, String p2) { + return p1.equals(p2) || (p2.endsWith("[x]") && p1.startsWith(p2.substring(0, p2.length()-3)) && !p1.substring(p2.length()-3).contains(".")); + } + + + protected String fixedPathSource(String contextPath, String pathSimple, List redirector) { + if (contextPath == null) + return pathSimple; +// String ptail = pathSimple.substring(contextPath.length() + 1); + if (redirector != null && redirector.size() > 0) { + String ptail = null; + if (contextPath.length() >= pathSimple.length()) { + ptail = pathSimple.substring(pathSimple.indexOf(".")+1); + } else { + ptail = pathSimple.substring(contextPath.length()+1); + } + return redirector.get(redirector.size()-1).getPath()+"."+ptail; +// return contextPath+"."+tail(redirector.getPath())+"."+ptail.substring(ptail.indexOf(".")+1); + } else { + String ptail = pathSimple.substring(pathSimple.indexOf(".")+1); + return contextPath+"."+ptail; + } + } + + protected String fixedPathDest(String contextPath, String pathSimple, List redirector, String redirectSource) { + String s; + if (contextPath == null) + s = pathSimple; + else { + if (redirector != null && redirector.size() > 0) { + String ptail = null; + if (redirectSource.length() >= pathSimple.length()) { + ptail = pathSimple.substring(pathSimple.indexOf(".")+1); + } else { + ptail = pathSimple.substring(redirectSource.length()+1); + } + // ptail = ptail.substring(ptail.indexOf(".")+1); + s = contextPath+"."+/*tail(redirector.getPath())+"."+*/ptail; + } else { + String ptail = pathSimple.substring(pathSimple.indexOf(".")+1); + s = contextPath+"."+ptail; + } + } + return s; + } + + protected StructureDefinition getProfileForDataType(TypeRefComponent type, String webUrl, StructureDefinition src) { + StructureDefinition sd = null; + if (type.hasProfile()) { + sd = findProfile(type.getProfile().get(0).getValue(), src); + if (sd == null) { + if (makeXVer().matchingUrl(type.getProfile().get(0).getValue()) && xver.status(type.getProfile().get(0).getValue()) == XVerExtensionStatus.Valid) { + sd = xver.getDefinition(type.getProfile().get(0).getValue()); + generateSnapshot(context.fetchTypeDefinition("Extension"), sd, sd.getUrl(), webUrl, sd.getName()); + } + } + if (sd == null) { + log.debug("Failed to find referenced profile: " + type.getProfile()); + } + + } + if (sd == null) + sd = context.fetchTypeDefinition(type.getWorkingCode()); + if (sd == null) + log.warn("XX: failed to find profle for type: " + type.getWorkingCode()); // debug GJM + return sd; + } + + protected StructureDefinition getProfileForDataType(String type) { + StructureDefinition sd = context.fetchTypeDefinition(type); + if (sd == null) + log.warn("XX: failed to find profle for type: " + type); // debug GJM + return sd; + } + + static String typeCode(List types) { + StringBuilder b = new StringBuilder(); + boolean first = true; + for (TypeRefComponent type : types) { + if (first) first = false; else b.append(", "); + b.append(type.getWorkingCode()); + if (type.hasTargetProfile()) + b.append("{"+type.getTargetProfile()+"}"); + else if (type.hasProfile()) + b.append("{"+type.getProfile()+"}"); + } + return b.toString(); + } + + + protected boolean isDataType(List types) { + if (types.isEmpty()) + return false; + for (TypeRefComponent type : types) { + String t = type.getWorkingCode(); + if (!isDataType(t) && !isPrimitive(t)) + return false; + } + return true; + } + + + /** + * Finds internal references in an Element's Binding and StructureDefinition references (in TypeRef) and bases them on the given url + * @param url - the base url to use to turn internal references into absolute references + * @param element - the Element to update + * @return - the updated Element + */ + public ElementDefinition updateURLs(String url, String webUrl, ElementDefinition element, boolean processRelatives) { + if (element != null) { + ElementDefinition defn = element; + if (defn.hasBinding() && defn.getBinding().hasValueSet() && defn.getBinding().getValueSet().startsWith("#")) + defn.getBinding().setValueSet(url+defn.getBinding().getValueSet()); + for (TypeRefComponent t : defn.getType()) { + for (UriType u : t.getProfile()) { + if (u.getValue().startsWith("#")) + u.setValue(url+t.getProfile()); + } + for (UriType u : t.getTargetProfile()) { + if (u.getValue().startsWith("#")) + u.setValue(url+t.getTargetProfile()); + } + } + if (webUrl != null) { + // also, must touch up the markdown + if (element.hasDefinition()) { + element.setDefinition(processRelativeUrls(element.getDefinition(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, localFileNames, processRelatives)); + } + if (element.hasComment()) { + element.setComment(processRelativeUrls(element.getComment(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, localFileNames, processRelatives)); + } + if (element.hasRequirements()) { + element.setRequirements(processRelativeUrls(element.getRequirements(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, localFileNames, processRelatives)); + } + if (element.hasMeaningWhenMissing()) { + element.setMeaningWhenMissing(processRelativeUrls(element.getMeaningWhenMissing(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, localFileNames, processRelatives)); + } + if (element.hasBinding() && element.getBinding().hasDescription()) { + element.getBinding().setDescription(processRelativeUrls(element.getBinding().getDescription(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, localFileNames, processRelatives)); + } + for (Extension ext : element.getExtension()) { + if (ext.hasValueMarkdownType()) { + MarkdownType md = ext.getValueMarkdownType(); + md.setValue(processRelativeUrls(md.getValue(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, localFileNames, processRelatives)); + } + } + } + } + return element; + } + + + public static String processRelativeUrls(String markdown, String webUrl, String basePath, List resourceNames, Set baseFilenames, Set localFilenames, boolean processRelatives) { + if (markdown == null) { + return ""; + } + Set anchorRefs = new HashSet<>(); + markdown = markdown+" "; + + StringBuilder b = new StringBuilder(); + int i = 0; + int left = -1; + boolean processingLink = false; + int linkLeft = -1; + while (i < markdown.length()) { + if (markdown.charAt(i) == '[') { + if (left == -1) { + left = i; + } else { + left = Integer.MAX_VALUE; + } + } + if (markdown.charAt(i) == ']') { + if (left != -1 && left != Integer.MAX_VALUE && markdown.length() > i && markdown.charAt(i+1) != '(') { + String n = markdown.substring(left+1, i); + if (anchorRefs.contains(n) && markdown.length() > i && markdown.charAt(i+1) == ':') { + processingLink = true; + } else { + anchorRefs.add(n); + } + } + left = -1; + } + if (processingLink) { + char ch = markdown.charAt(i); + if (linkLeft == -1) { + if (ch != ']' && ch != ':' && !Character.isWhitespace(ch)) { + linkLeft = i; + } else { + b.append(ch); + } + } else { + if (Character.isWhitespace(ch)) { + // found the end of the processible link: + String url = markdown.substring(linkLeft, i); + if (isLikelySourceURLReference(url, resourceNames, baseFilenames, localFilenames, webUrl)) { + b.append(basePath); + if (!Utilities.noString(basePath) && !basePath.endsWith("/")) { + b.append("/"); + } + } + b.append(url); + b.append(ch); + linkLeft = -1; + } + } + } else { + if (i < markdown.length()-3 && markdown.substring(i, i+2).equals("](")) { + + int j = i + 2; + while (j < markdown.length() && markdown.charAt(j) != ')') + j++; + if (j < markdown.length()) { + String url = markdown.substring(i+2, j); + if (!Utilities.isAbsoluteUrl(url) && !url.startsWith("..")) { + // + // In principle, relative URLs are supposed to be converted to absolute URLs in snapshots. + // that's what this code is doing. + // + // But that hasn't always happened and there's packages out there where the snapshots + // contain relative references that actually are references to the main specification + // + // This code is trying to guess which relative references are actually to the + // base specification. + // + if (isLikelySourceURLReference(url, resourceNames, baseFilenames, localFilenames, webUrl)) { + b.append("]("); + b.append(basePath); + if (!Utilities.noString(basePath) && !basePath.endsWith("/")) { + b.append("/"); + } + i = i + 1; + } else { + b.append("]("); + // disabled 7-Dec 2021 GDG - we don't want to fool with relative URLs at all? + // re-enabled 11-Feb 2022 GDG - we do want to do this. At least, $assemble in davinci-dtr, where the markdown comes from the SDC IG, and an SDC local reference must be changed to point to SDC. in this case, it's called when generating snapshots + // added processRelatives parameter to deal with this (well, to try) + if (processRelatives && webUrl != null && !issLocalFileName(url, localFilenames)) { + + b.append(webUrl); + if (!Utilities.noString(webUrl) && !webUrl.endsWith("/")) { + b.append("/"); + } + } else { + //DO NOTHING + } + i = i + 1; + } + } else + b.append(markdown.charAt(i)); + } else + b.append(markdown.charAt(i)); + } else { + b.append(markdown.charAt(i)); + } + } + i++; + } + String s = b.toString(); + return Utilities.rightTrim(s); + } + + private static boolean issLocalFileName(String url, Set localFilenames) { + if (localFilenames != null) { + for (String n : localFilenames) { + if (url.startsWith(n.toLowerCase())) { + return true; + } + } + } + return false; + } + + + private static boolean isLikelySourceURLReference(String url, List resourceNames, Set baseFilenames, Set localFilenames, String baseUrl) { + if (url == null) { + return false; + } + if (baseUrl != null && !baseUrl.startsWith("http://hl7.org/fhir/R")) { + if (resourceNames != null) { + for (String n : resourceNames) { + if (n != null && url.startsWith(n.toLowerCase()+".html")) { + return true; + } + if (n != null && url.startsWith(n.toLowerCase()+"-definitions.html")) { + return true; + } + } + } + if (localFilenames != null) { + for (String n : localFilenames) { + if (n != null && url.startsWith(n.toLowerCase())) { + return false; + } + } + } + if (baseFilenames != null) { + for (String n : baseFilenames) { + if (n != null && url.startsWith(n.toLowerCase())) { + return true; + } + } + } + } + return + url.startsWith("extensibility.html") || + url.startsWith("terminologies.html") || + url.startsWith("observation.html") || + url.startsWith("codesystem.html") || + url.startsWith("fhirpath.html") || + url.startsWith("datatypes.html") || + url.startsWith("operations.html") || + url.startsWith("resource.html") || + url.startsWith("elementdefinition.html") || + url.startsWith("element-definitions.html") || + url.startsWith("snomedct.html") || + url.startsWith("loinc.html") || + url.startsWith("http.html") || + url.startsWith("references") || + url.startsWith("license.html") || + url.startsWith("narrative.html") || + url.startsWith("search.html") || + url.startsWith("security.html") || + url.startsWith("versions.html") || + url.startsWith("patient-operation-match.html") || + (url.startsWith("extension-") && url.contains(".html")) || + url.startsWith("resource-definitions.html"); + } + + protected List getSiblings(List list, ElementDefinition current) { + List result = new ArrayList(); + String path = current.getPath(); + int cursor = list.indexOf(current)+1; + while (cursor < list.size() && list.get(cursor).getPath().length() >= path.length()) { + if (pathMatches(list.get(cursor).getPath(), path)) + result.add(list.get(cursor)); + cursor++; + } + return result; + } + + protected void updateFromSlicing(ElementDefinitionSlicingComponent dst, ElementDefinitionSlicingComponent src) { + if (src.hasOrderedElement()) + dst.setOrderedElement(src.getOrderedElement().copy()); + if (src.hasDiscriminator()) { + // dst.getDiscriminator().addAll(src.getDiscriminator()); Can't use addAll because it uses object equality, not string equality + for (ElementDefinitionSlicingDiscriminatorComponent s : src.getDiscriminator()) { + boolean found = false; + for (ElementDefinitionSlicingDiscriminatorComponent d : dst.getDiscriminator()) { + if (matches(d, s)) { + found = true; + break; + } + } + if (!found) + dst.getDiscriminator().add(s); + } + } + if (src.hasRulesElement()) + dst.setRulesElement(src.getRulesElement().copy()); + } + + protected boolean orderMatches(BooleanType diff, BooleanType base) { + return (diff == null) || (base == null) || (diff.getValue() == base.getValue()); + } + + protected boolean discriminatorMatches(List diff, List base) { + if (diff.isEmpty() || base.isEmpty()) + return true; + if (diff.size() < base.size()) + return false; + for (int i = 0; i < base.size(); i++) + if (!matches(diff.get(i), base.get(i))) + return false; + return true; + } + + private boolean matches(ElementDefinitionSlicingDiscriminatorComponent c1, ElementDefinitionSlicingDiscriminatorComponent c2) { + return c1.getType().equals(c2.getType()) && c1.getPath().equals(c2.getPath()); + } + + + protected boolean ruleMatches(SlicingRules diff, SlicingRules base) { + return (diff == null) || (base == null) || (diff == base) || (base == SlicingRules.OPEN) || + ((diff == SlicingRules.OPENATEND && base == SlicingRules.CLOSED)); + } + + protected boolean isSlicedToOneOnly(ElementDefinition e) { + return (e.hasSlicing() && e.hasMaxElement() && e.getMax().equals("1")); + } + + protected boolean isTypeSlicing(ElementDefinition e) { + return (e.hasSlicing() && e.getSlicing().getDiscriminator().size() == 1 && + e.getSlicing().getDiscriminatorFirstRep().getType() == DiscriminatorType.TYPE && + "$this".equals(e.getSlicing().getDiscriminatorFirstRep().getPath())); + } + + + protected ElementDefinitionSlicingComponent makeExtensionSlicing() { + ElementDefinitionSlicingComponent slice = new ElementDefinitionSlicingComponent(); + slice.addDiscriminator().setPath("url").setType(DiscriminatorType.VALUE); + slice.setOrdered(false); + slice.setRules(SlicingRules.OPEN); + return slice; + } + + protected boolean isExtension(ElementDefinition currentBase) { + return currentBase.getPath().endsWith(".extension") || currentBase.getPath().endsWith(".modifierExtension"); + } + + boolean hasInnerDiffMatches(StructureDefinitionDifferentialComponent context, String path, int start, int end, List base, boolean allowSlices) throws DefinitionException { + end = Math.min(context.getElement().size(), end); + start = Math.max(0, start); + + for (int i = start; i <= end; i++) { + ElementDefinition ed = context.getElement().get(i); + String statedPath = ed.getPath(); + if (!allowSlices && statedPath.equals(path) && ed.hasSliceName()) { + return false; + } else if (statedPath.startsWith(path+".")) { + return true; + } else if (path.endsWith("[x]") && statedPath.startsWith(path.substring(0, path.length() -3))) { + return true; + } else if (i != start && !allowSlices && !statedPath.startsWith(path+".")) { + return false; + } else if (i != start && allowSlices && !statedPath.startsWith(path)) { + return false; + } else { + // not sure why we get here, but returning false at this point makes a bunch of tests fail + } + } + return false; + } + + protected List getDiffMatches(StructureDefinitionDifferentialComponent context, String path, int start, int end, String profileName) throws DefinitionException { + List result = new ArrayList(); + String[] p = path.split("\\."); + for (int i = start; i <= end; i++) { + String statedPath = context.getElement().get(i).getPath(); + String[] sp = statedPath.split("\\."); + boolean ok = sp.length == p.length; + for (int j = 0; j < p.length; j++) { + ok = ok && sp.length > j && (p[j].equals(sp[j]) || isSameBase(p[j], sp[j])); + } +// don't need this debug check - everything is ok +// if (ok != (statedPath.equals(path) || (path.endsWith("[x]") && statedPath.length() > path.length() - 2 && +// statedPath.substring(0, path.length()-3).equals(path.substring(0, path.length()-3)) && +// (statedPath.length() < path.length() || !statedPath.substring(path.length()).contains("."))))) { +// +// } + if (ok) { + /* + * Commenting this out because it raises warnings when profiling inherited elements. For example, + * Error: unknown element 'Bundle.meta.profile' (or it is out of order) in profile ... (looking for 'Bundle.entry') + * Not sure we have enough information here to do the check properly. Might be better done when we're sorting the profile? + + if (i != start && result.isEmpty() && !path.startsWith(context.getElement().get(start).getPath())) + addMessage(new ValidationMessage(Source.ProfileValidator, IssueType.VALUE, "StructureDefinition.differential.element["+Integer.toString(start)+"]", "Error: unknown element '"+context.getElement().get(start).getPath()+"' (or it is out of order) in profile '"+url+"' (looking for '"+path+"')", IssueSeverity.WARNING)); + + */ + result.add(context.getElement().get(i)); + } + } + if (debug) { + Set ids = new HashSet<>(); + for (ElementDefinition ed : result) { + ids.add(ed.getIdOrPath()); + } + } + return result; + } + + + private boolean isSameBase(String p, String sp) { + return (p.endsWith("[x]") && sp.startsWith(p.substring(0, p.length()-3))) || (sp.endsWith("[x]") && p.startsWith(sp.substring(0, sp.length()-3))) ; + } + + protected int findEndOfElement(StructureDefinitionDifferentialComponent context, int cursor) { + int result = cursor; + if (cursor >= context.getElement().size()) + return result; + String path = context.getElement().get(cursor).getPath()+"."; + while (result < context.getElement().size()- 1 && context.getElement().get(result+1).getPath().startsWith(path)) + result++; + return result; + } + + protected int findEndOfElement(StructureDefinitionSnapshotComponent context, int cursor) { + int result = cursor; + String path = context.getElement().get(cursor).getPath()+"."; + while (result < context.getElement().size()- 1 && context.getElement().get(result+1).getPath().startsWith(path)) + result++; + return result; + } + + protected int findEndOfElementNoSlices(StructureDefinitionSnapshotComponent context, int cursor) { + int result = cursor; + String path = context.getElement().get(cursor).getPath()+"."; + while (result < context.getElement().size()- 1 && context.getElement().get(result+1).getPath().startsWith(path) && !context.getElement().get(result+1).hasSliceName()) + result++; + return result; + } + + protected boolean unbounded(ElementDefinition definition) { + StringType max = definition.getMaxElement(); + if (max == null) + return false; // this is not valid + if (max.getValue().equals("1")) + return false; + if (max.getValue().equals("0")) + return false; + return true; + } + + + public void updateFromObligationProfiles(ElementDefinition base) { + List obligationProfileElements = new ArrayList<>(); + for (StructureDefinition sd : obligationProfiles) { + ElementDefinition ed = sd.getSnapshot().getElementById(base.getId()); + if (ed != null) { + obligationProfileElements.add(ed); + } + } + for (ElementDefinition ed : obligationProfileElements) { + for (Extension ext : ed.getExtension()) { + if (Utilities.existsInList(ext.getUrl(), ExtensionDefinitions.EXT_OBLIGATION_CORE, ExtensionDefinitions.EXT_OBLIGATION_TOOLS)) { + base.getExtension().add(ext.copy()); + } + } + } + boolean hasMustSupport = false; + for (ElementDefinition ed : obligationProfileElements) { + hasMustSupport = hasMustSupport || ed.hasMustSupportElement(); + } + if (hasMustSupport) { + for (ElementDefinition ed : obligationProfileElements) { + mergeExtensions(base.getMustSupportElement(), ed.getMustSupportElement()); + if (ed.getMustSupport()) { + base.setMustSupport(true); + } + } + } + boolean hasBinding = false; + for (ElementDefinition ed : obligationProfileElements) { + hasBinding = hasBinding || ed.hasBinding(); + } + if (hasBinding) { + ElementDefinitionBindingComponent binding = base.getBinding(); + for (ElementDefinition ed : obligationProfileElements) { + for (Extension ext : ed.getBinding().getExtension()) { + if (ExtensionDefinitions.EXT_BINDING_ADDITIONAL.equals(ext.getUrl())) { + String p = ext.getExtensionString("purpose"); + if (!Utilities.existsInList(p, "maximum", "required", "extensible")) { + if (!binding.hasExtension(ext)) { + binding.getExtension().add(ext.copy()); + } + } + } + } + for (ElementDefinitionBindingAdditionalComponent ab : ed.getBinding().getAdditional()) { + if (!Utilities.existsInList(ab.getPurpose().toCode(), "maximum", "required", "extensible")) { + if (!binding.hasAdditional(ab)) { + binding.getAdditional().add(ab.copy()); + } + } + } + } + } + } + + + protected void updateFromDefinition(ElementDefinition dest, ElementDefinition source, String pn, boolean trimDifferential, String purl, StructureDefinition srcSD, StructureDefinition derivedSrc, String path, MappingAssistant mappings, boolean fromSlicer) throws DefinitionException, FHIRException { + source.setUserData(UserDataNames.SNAPSHOT_GENERATED_IN_SNAPSHOT, dest); + // we start with a clone of the base profile ('dest') and we copy from the profile ('source') + // over the top for anything the source has + ElementDefinition base = dest; + ElementDefinition derived = source; + derived.setUserData(UserDataNames.SNAPSHOT_DERIVATION_POINTER, base); + boolean isExtension = checkExtensionDoco(base); + List obligationProfileElements = new ArrayList<>(); + for (StructureDefinition sd : obligationProfiles) { + ElementDefinition ed = sd.getSnapshot().getElementById(base.getId()); + if (ed != null) { + obligationProfileElements.add(ed); + } + } + + // hack workaround for problem in R5 snapshots + List elist = dest.getExtensionsByUrl(ExtensionDefinitions.EXT_TRANSLATABLE); + if (elist.size() == 2) { + dest.getExtension().remove(elist.get(1)); + } + updateExtensionsFromDefinition(dest, source, derivedSrc, srcSD); + + for (ElementDefinition ed : obligationProfileElements) { + for (Extension ext : ed.getExtension()) { + if (Utilities.existsInList(ext.getUrl(), ExtensionDefinitions.EXT_OBLIGATION_CORE, ExtensionDefinitions.EXT_OBLIGATION_TOOLS)) { + dest.getExtension().add(new Extension(ExtensionDefinitions.EXT_OBLIGATION_CORE, ext.getValue().copy())); + } + } + } + + // Before applying changes, apply them to what's in the profile + // but only if it's an extension or a resource + + StructureDefinition profile = null; + boolean msg = true; + if (base.hasSliceName()) { + profile = base.getType().size() == 1 && base.getTypeFirstRep().hasProfile() ? findProfile(base.getTypeFirstRep().getProfile().get(0).getValue(), srcSD) : null; + } + if (profile == null && source.getTypeFirstRep().hasProfile()) { + String pu = source.getTypeFirstRep().getProfile().get(0).getValue(); + profile = findProfile(pu, derivedSrc); + if (profile == null) { + if (makeXVer().matchingUrl(pu)) { + switch (xver.status(pu)) { + case BadVersion: + throw new FHIRException("Reference to invalid version in extension url " + pu); + case Invalid: + throw new FHIRException("Reference to invalid extension " + pu); + case Unknown: + throw new FHIRException("Reference to unknown extension " + pu); + case Valid: + profile = xver.getDefinition(pu); + generateSnapshot(context.fetchTypeDefinition("Extension"), profile, profile.getUrl(), context.getSpecUrl(), profile.getName()); + } + } + + } + if (profile != null && !"Extension".equals(profile.getType()) && profile.getKind() != StructureDefinitionKind.RESOURCE && profile.getKind() != StructureDefinitionKind.LOGICAL) { + // this is a problem - we're kind of hacking things here. The problem is that we sometimes want the details from the profile to override the + // inherited attributes, and sometimes not + profile = null; + msg = false; + } + } + if (profile != null && (profile.getKind() == StructureDefinitionKind.RESOURCE || "Extension".equals(profile.getType()))) { + if (profile.getSnapshot().getElement().isEmpty()) { + throw new DefinitionException(context.formatMessage(I18nConstants.SNAPSHOT_IS_EMPTY, profile.getVersionedUrl())); + } + ElementDefinition e = profile.getSnapshot().getElement().get(0); + String webroot = profile.getUserString(UserDataNames.render_webroot); + + if (e.hasDefinition()) { + base.setDefinition(processRelativeUrls(e.getDefinition(), webroot, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, localFileNames, true)); + } + if (e.getBinding().hasDescription()) { + base.getBinding().setDescription(processRelativeUrls(e.getBinding().getDescription(), webroot, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, localFileNames, true)); + } + base.setShort(e.getShort()); + if (e.hasCommentElement()) + base.setCommentElement(e.getCommentElement()); + if (e.hasRequirementsElement()) + base.setRequirementsElement(e.getRequirementsElement()); + base.getAlias().clear(); + base.getAlias().addAll(e.getAlias()); + base.getMapping().clear(); + base.getMapping().addAll(e.getMapping()); + } else if (source.getType().size() == 1 && source.getTypeFirstRep().hasProfile() && !source.getTypeFirstRep().getProfile().get(0).hasExtension(ExtensionDefinitions.EXT_PROFILE_ELEMENT)) { + // todo: should we change down the profile_element if there's one? + String type = source.getTypeFirstRep().getWorkingCode(); + if (msg) { + if ("Extension".equals(type)) { + log.warn("Can't find Extension definition for "+source.getTypeFirstRep().getProfile().get(0).asStringValue()+" but trying to go on"); + if (allowUnknownProfile != AllowUnknownProfile.ALL_TYPES) { + throw new DefinitionException("Unable to find Extension definition for "+source.getTypeFirstRep().getProfile().get(0).asStringValue()); + } + } else { + log.warn("Can't find "+type+" profile "+source.getTypeFirstRep().getProfile().get(0).asStringValue()+" but trying to go on"); + if (allowUnknownProfile == AllowUnknownProfile.NONE) { + throw new DefinitionException("Unable to find "+type+" profile "+source.getTypeFirstRep().getProfile().get(0).asStringValue()); + } + } + } + } + if (derived != null) { + if (derived.hasSliceName()) { + base.setSliceName(derived.getSliceName()); + } + + if (derived.hasShortElement()) { + if (!Base.compareDeep(derived.getShortElement(), base.getShortElement(), false)) + base.setShortElement(derived.getShortElement().copy()); + else if (trimDifferential) + derived.setShortElement(null); + else if (derived.hasShortElement()) + derived.getShortElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasDefinitionElement()) { + if (!Base.compareDeep(derived.getDefinitionElement(), base.getDefinitionElement(), false)) { + base.setDefinitionElement(mergeMarkdown(derived.getDefinitionElement(), base.getDefinitionElement())); + } else if (trimDifferential) + derived.setDefinitionElement(null); + else if (derived.hasDefinitionElement()) + derived.getDefinitionElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasCommentElement()) { + if (!Base.compareDeep(derived.getCommentElement(), base.getCommentElement(), false)) + base.setCommentElement(mergeMarkdown(derived.getCommentElement(), base.getCommentElement())); + else if (trimDifferential) + base.setCommentElement(derived.getCommentElement().copy()); + else if (derived.hasCommentElement()) + derived.getCommentElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasLabelElement()) { + if (!base.hasLabelElement() || !Base.compareDeep(derived.getLabelElement(), base.getLabelElement(), false)) + base.setLabelElement(mergeStrings(derived.getLabelElement(), base.getLabelElement())); + else if (trimDifferential) + base.setLabelElement(derived.getLabelElement().copy()); + else if (derived.hasLabelElement()) + derived.getLabelElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasRequirementsElement()) { + if (!base.hasRequirementsElement() || !Base.compareDeep(derived.getRequirementsElement(), base.getRequirementsElement(), false)) + base.setRequirementsElement(mergeMarkdown(derived.getRequirementsElement(), base.getRequirementsElement())); + else if (trimDifferential) + base.setRequirementsElement(derived.getRequirementsElement().copy()); + else if (derived.hasRequirementsElement()) + derived.getRequirementsElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + // sdf-9 + if (derived.hasRequirements() && !base.getPath().contains(".")) + derived.setRequirements(null); + if (base.hasRequirements() && !base.getPath().contains(".")) + base.setRequirements(null); + + if (derived.hasAlias()) { + if (!Base.compareDeep(derived.getAlias(), base.getAlias(), false)) + for (StringType s : derived.getAlias()) { + if (!base.hasAlias(s.getValue())) + base.getAlias().add(s.copy()); + } + else if (trimDifferential) + derived.getAlias().clear(); + else + for (StringType t : derived.getAlias()) + t.setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasMinElement()) { + if (!Base.compareDeep(derived.getMinElement(), base.getMinElement(), false)) { + if (derived.getMin() < base.getMin() && !derived.hasSliceName()) // in a slice, minimum cardinality rules do not apply + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+source.getPath(), "Element "+base.getPath()+": derived min ("+Integer.toString(derived.getMin())+") cannot be less than the base min ("+Integer.toString(base.getMin())+") in "+srcSD.getVersionedUrl(), ValidationMessage.IssueSeverity.ERROR)); + base.setMinElement(derived.getMinElement().copy()); + } else if (trimDifferential) + derived.setMinElement(null); + else + derived.getMinElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasMaxElement()) { + if (!Base.compareDeep(derived.getMaxElement(), base.getMaxElement(), false)) { + if (isLargerMax(derived.getMax(), base.getMax())) + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+source.getPath(), "Element "+base.getPath()+": derived max ("+derived.getMax()+") cannot be greater than the base max ("+base.getMax()+")", ValidationMessage.IssueSeverity.ERROR)); + base.setMaxElement(derived.getMaxElement().copy()); + } else if (trimDifferential) + derived.setMaxElement(null); + else + derived.getMaxElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasFixed()) { + if (!Base.compareDeep(derived.getFixed(), base.getFixed(), true)) { + base.setFixed(derived.getFixed().copy()); + } else if (trimDifferential) + derived.setFixed(null); + else + derived.getFixed().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasPattern()) { + if (!Base.compareDeep(derived.getPattern(), base.getPattern(), false)) { + base.setPattern(derived.getPattern().copy()); + } else + if (trimDifferential) + derived.setPattern(null); + else + derived.getPattern().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + List toDelB = new ArrayList<>(); + List toDelD = new ArrayList<>(); + for (ElementDefinitionExampleComponent ex : derived.getExample()) { + boolean delete = ex.hasExtension(ExtensionDefinitions.EXT_ED_SUPPRESS); + if (delete && "$all".equals(ex.getLabel())) { + toDelB.addAll(base.getExample()); + } else { + boolean found = false; + for (ElementDefinitionExampleComponent exS : base.getExample()) { + if (Base.compareDeep(ex.getLabel(), exS.getLabel(), false) && Base.compareDeep(ex.getValue(), exS.getValue(), false)) { + if (delete) { + toDelB.add(exS); + } else { + found = true; + } + } + } + if (delete) { + toDelD.add(ex); + } else if (!found) { + base.addExample(ex.copy()); + } else if (trimDifferential) { + derived.getExample().remove(ex); + } else { + ex.setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + } + } + base.getExample().removeAll(toDelB); + derived.getExample().removeAll(toDelD); + + if (derived.hasMaxLengthElement()) { + if (!Base.compareDeep(derived.getMaxLengthElement(), base.getMaxLengthElement(), false)) + base.setMaxLengthElement(derived.getMaxLengthElement().copy()); + else if (trimDifferential) + derived.setMaxLengthElement(null); + else + derived.getMaxLengthElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasMaxValue()) { + if (!Base.compareDeep(derived.getMaxValue(), base.getMaxValue(), false)) + base.setMaxValue(derived.getMaxValue().copy()); + else if (trimDifferential) + derived.setMaxValue(null); + else + derived.getMaxValue().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasMinValue()) { + if (!Base.compareDeep(derived.getMinValue(), base.getMinValue(), false)) + base.setMinValue(derived.getMinValue().copy()); + else if (trimDifferential) + derived.setMinValue(null); + else + derived.getMinValue().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + // todo: what to do about conditions? + // condition : id 0..* + + boolean hasMustSupport = derived.hasMustSupportElement(); + for (ElementDefinition ed : obligationProfileElements) { + hasMustSupport = hasMustSupport || ed.hasMustSupportElement(); + } + if (hasMustSupport) { + BooleanType mse = derived.getMustSupportElement().copy(); + for (ElementDefinition ed : obligationProfileElements) { + mergeExtensions(mse, ed.getMustSupportElement()); + if (ed.getMustSupport()) { + mse.setValue(true); + } + } + if (!(base.hasMustSupportElement() && Base.compareDeep(base.getMustSupportElement(), mse, false))) { + if (base.hasMustSupport() && base.getMustSupport() && !derived.getMustSupport() && !fromSlicer) { + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+derived.getPath(), "Illegal constraint [must-support = false] when [must-support = true] in the base profile", ValidationMessage.IssueSeverity.ERROR)); + } + base.setMustSupportElement(mse); + } else if (trimDifferential) + derived.setMustSupportElement(null); + else + derived.getMustSupportElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + if (derived.hasMustHaveValueElement()) { + if (!(base.hasMustHaveValueElement() && Base.compareDeep(derived.getMustHaveValueElement(), base.getMustHaveValueElement(), false))) { + if (base.hasMustHaveValue() && base.getMustHaveValue() && !derived.getMustHaveValue() && !fromSlicer) { + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+derived.getPath(), "Illegal constraint [must-have-value = false] when [must-have-value = true] in the base profile", ValidationMessage.IssueSeverity.ERROR)); + } + base.setMustHaveValueElement(derived.getMustHaveValueElement().copy()); + } else if (trimDifferential) + derived.setMustHaveValueElement(null); + else + derived.getMustHaveValueElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + if (derived.hasValueAlternatives()) { + if (!Base.compareDeep(derived.getValueAlternatives(), base.getValueAlternatives(), false)) + for (CanonicalType s : derived.getValueAlternatives()) { + if (!base.hasValueAlternatives(s.getValue())) + base.getValueAlternatives().add(s.copy()); + } + else if (trimDifferential) + derived.getValueAlternatives().clear(); + else + for (CanonicalType t : derived.getValueAlternatives()) + t.setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + // profiles cannot change : isModifier, defaultValue, meaningWhenMissing + // but extensions can change isModifier + if (isExtension) { + if (derived.hasIsModifierElement() && !(base.hasIsModifierElement() && Base.compareDeep(derived.getIsModifierElement(), base.getIsModifierElement(), false))) { + base.setIsModifierElement(derived.getIsModifierElement().copy()); + } else if (trimDifferential) { + derived.setIsModifierElement(null); + } else if (derived.hasIsModifierElement()) { + derived.getIsModifierElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + if (derived.hasIsModifierReasonElement() && !(base.hasIsModifierReasonElement() && Base.compareDeep(derived.getIsModifierReasonElement(), base.getIsModifierReasonElement(), false))) { + base.setIsModifierReasonElement(derived.getIsModifierReasonElement().copy()); + } else if (trimDifferential) { + derived.setIsModifierReasonElement(null); + } else if (derived.hasIsModifierReasonElement()) { + derived.getIsModifierReasonElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + if (base.getIsModifier() && !base.hasIsModifierReason()) { + // we get here because modifier extensions don't get a modifier reason from the type + base.setIsModifierReason("Modifier extensions are labelled as such because they modify the meaning or interpretation of the resource or element that contains them"); + } + } + + boolean hasBinding = derived.hasBinding(); + for (ElementDefinition ed : obligationProfileElements) { + hasBinding = hasBinding || ed.hasBinding(); + } + if (hasBinding) { + updateExtensionsFromDefinition(dest.getBinding(), source.getBinding(), derivedSrc, srcSD); + ElementDefinitionBindingComponent binding = derived.getBinding(); + for (ElementDefinition ed : obligationProfileElements) { + for (Extension ext : ed.getBinding().getExtension()) { + if (ExtensionDefinitions.EXT_BINDING_ADDITIONAL.equals(ext.getUrl())) { + String p = ext.getExtensionString("purpose"); + if (!Utilities.existsInList(p, "maximum", "required", "extensible")) { + if (!binding.hasExtension(ext)) { + binding.getExtension().add(ext.copy()); + } + } + } + } + for (ElementDefinitionBindingAdditionalComponent ab : ed.getBinding().getAdditional()) { + if (!Utilities.existsInList(ab.getPurpose().toCode(), "maximum", "required", "extensible")) { + if (binding.hasAdditional(ab)) { + binding.getAdditional().add(ab.copy()); + } + } + } + } + + if (!base.hasBinding() || !Base.compareDeep(derived.getBinding(), base.getBinding(), false)) { + if (base.hasBinding() && base.getBinding().getStrength() == BindingStrength.REQUIRED && derived.getBinding().getStrength() != BindingStrength.REQUIRED) + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+derived.getPath(), "illegal attempt to change the binding on "+derived.getPath()+" from "+base.getBinding().getStrength().toCode()+" to "+derived.getBinding().getStrength().toCode(), ValidationMessage.IssueSeverity.ERROR)); +// throw new DefinitionException("StructureDefinition "+pn+" at "+derived.getPath()+": illegal attempt to change a binding from "+base.getBinding().getStrength().toCode()+" to "+derived.getBinding().getStrength().toCode()); + else if (base.hasBinding() && derived.hasBinding() && base.getBinding().getStrength() == BindingStrength.REQUIRED && base.getBinding().hasValueSet() && derived.getBinding().hasValueSet()) { + ValueSet baseVs = context.findTxResource(ValueSet.class, base.getBinding().getValueSet(), null, srcSD); + ValueSet contextVs = context.findTxResource(ValueSet.class, derived.getBinding().getValueSet(), null, derivedSrc); + if (baseVs == null) { + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+base.getPath(), "Binding "+base.getBinding().getValueSet()+" could not be located", ValidationMessage.IssueSeverity.WARNING)); + } else if (contextVs == null) { + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+derived.getPath(), "Binding "+derived.getBinding().getValueSet()+" could not be located", ValidationMessage.IssueSeverity.WARNING)); + } else { + ValueSetExpansionOutcome expBase = context.expandVS(baseVs, true, false); + ValueSetExpansionOutcome expDerived = context.expandVS(contextVs, true, false); + if (expBase.getValueset() == null) + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+base.getPath(), "Binding "+base.getBinding().getValueSet()+" could not be expanded", ValidationMessage.IssueSeverity.WARNING)); + else if (expDerived.getValueset() == null) + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+derived.getPath(), "Binding "+derived.getBinding().getValueSet()+" could not be expanded", ValidationMessage.IssueSeverity.WARNING)); + else if (ExtensionUtilities.hasExtension(expBase.getValueset().getExpansion(), ExtensionDefinitions.EXT_EXP_TOOCOSTLY)) { + if (ExtensionUtilities.hasExtension(expDerived.getValueset().getExpansion(), ExtensionDefinitions.EXT_EXP_TOOCOSTLY) || expDerived.getValueset().getExpansion().getContains().size() > 100) { + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+derived.getPath(), "Unable to check if "+derived.getBinding().getValueSet()+" is a proper subset of " +base.getBinding().getValueSet()+" - base value set is too large to check", ValidationMessage.IssueSeverity.WARNING)); + } else { + boolean ok = true; + for (ValueSetExpansionContainsComponent cc : expDerived.getValueset().getExpansion().getContains()) { + ValidationResult vr = context.validateCode(new ValidationOptions(), cc.getSystem(), cc.getVersion(), cc.getCode(), null, baseVs); + if (!vr.isOk()) { + ok = false; + break; + } + } + if (!ok) { + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+derived.getPath(), "Binding "+derived.getBinding().getValueSet()+" is not a subset of binding "+base.getBinding().getValueSet(), ValidationMessage.IssueSeverity.ERROR)); + } + } + } else if (expBase.getValueset().getExpansion().getContains().size() == 1000 || + expDerived.getValueset().getExpansion().getContains().size() == 1000) { + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+derived.getPath(), "Unable to check if "+derived.getBinding().getValueSet()+" is a proper subset of " +base.getBinding().getValueSet()+" - value set is too large to check", ValidationMessage.IssueSeverity.WARNING)); + } else { + String msgs = checkSubset(expBase.getValueset(), expDerived.getValueset()); + if (msgs != null) { + addMessage(new ValidationMessage(Source.ProfileValidator, ValidationMessage.IssueType.BUSINESSRULE, pn+"."+derived.getPath(), "Binding "+derived.getBinding().getValueSet()+" is not a subset of binding "+base.getBinding().getValueSet()+" because "+msgs, ValidationMessage.IssueSeverity.ERROR)); + } + } + } + } + ElementDefinitionBindingComponent d = derived.getBinding(); + ElementDefinitionBindingComponent nb = base.getBinding().copy(); + if (!COPY_BINDING_EXTENSIONS) { + nb.getExtension().clear(); + } + nb.setDescription(null); + for (Extension dex : d.getExtension()) { + nb.getExtension().add(markExtensionSource(dex.copy(), false, srcSD)); + } + if (d.hasStrength()) { + nb.setStrength(d.getStrength()); + } + if (d.hasDescription()) { + nb.setDescription(d.getDescription()); + } + if (d.hasValueSet()) { + nb.setValueSet(d.getValueSet()); + } + for (ElementDefinitionBindingAdditionalComponent ab : d.getAdditional()) { + ElementDefinitionBindingAdditionalComponent eab = getMatchingAdditionalBinding(nb, ab); + if (eab != null) { + mergeAdditionalBinding(eab, ab); + } else { + nb.getAdditional().add(ab); + } + } + base.setBinding(nb); + } else if (trimDifferential) + derived.setBinding(null); + else + derived.getBinding().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } else if (base.hasBinding()) { + base.getBinding().getExtension().removeIf(ext -> Utilities.existsInList(ext.getUrl(), ProfileUtilities.NON_INHERITED_ED_URLS)); + for (Extension ex : base.getBinding().getExtension()) { + markExtensionSource(ex, false, srcSD); + } + } + + if (derived.hasIsSummaryElement()) { + if (!Base.compareDeep(derived.getIsSummaryElement(), base.getIsSummaryElement(), false)) { + if (base.hasIsSummary() && !context.getVersion().equals("1.4.0")) // work around a known issue with some 1.4.0 cosntraints + throw new Error(context.formatMessage(I18nConstants.ERROR_IN_PROFILE__AT__BASE_ISSUMMARY___DERIVED_ISSUMMARY__, purl, derived.getPath(), base.getIsSummaryElement().asStringValue(), derived.getIsSummaryElement().asStringValue())); + base.setIsSummaryElement(derived.getIsSummaryElement().copy()); + } else if (trimDifferential) + derived.setIsSummaryElement(null); + else + derived.getIsSummaryElement().setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + } + + // this would make sense but blows up the process later, so we let it happen anyway, and sort out the business rule elsewhere + //if (!derived.hasContentReference() && !base.hasContentReference()) { + + if (derived.hasType()) { + if (!Base.compareDeep(derived.getType(), base.getType(), false)) { + if (base.hasType()) { + for (TypeRefComponent ts : derived.getType()) { + checkTypeDerivation(purl, srcSD, base, derived, ts, path, derivedSrc.getDerivation() == TypeDerivationRule.SPECIALIZATION); + } + } + base.getType().clear(); + for (TypeRefComponent t : derived.getType()) { + TypeRefComponent tt = t.copy(); + // tt.setUserData(DERIVATION_EQUALS, true); + base.getType().add(tt); + for (Extension ex : tt.getExtension()) { + markExtensionSource(ex, false, srcSD); + } + } + } + else if (trimDifferential) + derived.getType().clear(); + else { + for (TypeRefComponent t : derived.getType()) { + t.setUserData(UserDataNames.SNAPSHOT_DERIVATION_EQUALS, true); + for (Extension ex : t.getExtension()) { + markExtensionSource(ex, true, derivedSrc); + } + } + } + } + + mappings.merge(derived, base); // note reversal of names to be correct in .merge() + + // todo: constraints are cumulative. there is no replacing + for (ElementDefinitionConstraintComponent s : base.getConstraint()) { + s.setUserData(UserDataNames.SNAPSHOT_IS_DERIVED, true); + if (!s.hasSource()) { + s.setSource(srcSD.getUrl()); + } + } + if (derived.hasConstraint()) { + for (ElementDefinitionConstraintComponent s : derived.getConstraint()) { + if (!base.hasConstraint(s.getKey())) { + ElementDefinitionConstraintComponent inv = s.copy(); + base.getConstraint().add(inv); + } + } + } + for (IdType id : derived.getCondition()) { + if (!base.hasCondition(id)) { + base.getCondition().add(id); + } + } + + // now, check that we still have a bindable type; if not, delete the binding - see task 8477 + if (dest.hasBinding() && !hasBindableType(dest)) { + dest.setBinding(null); + } + +// // finally, we copy any extensions from source to dest + //no, we already did. +// for (Extension ex : derived.getExtension()) { +// ! +// StructureDefinition sd = findProfile(ex.getUrl(), derivedSrc); +// if (sd == null || sd.getSnapshot() == null || sd.getSnapshot().getElementFirstRep().getMax().equals("1")) { +// ToolingExtensions.removeExtension(dest, ex.getUrl()); +// } +// dest.addExtension(ex.copy()); +// } + } + if (dest.hasFixed()) { + checkTypeOk(dest, dest.getFixed().fhirType(), srcSD, "fixed"); + } + if (dest.hasPattern()) { + checkTypeOk(dest, dest.getPattern().fhirType(), srcSD, "pattern"); + } + //updateURLs(url, webUrl, dest); + } + + private MarkdownType mergeMarkdown(MarkdownType dest, MarkdownType source) { + MarkdownType mergedMarkdown = dest.copy(); + if (!mergedMarkdown.hasValue() && source.hasValue()) { + mergedMarkdown.setValue(source.getValue()); + } else if (mergedMarkdown.hasValue() && source.hasValue() && mergedMarkdown.getValue().startsWith("...")) { + mergedMarkdown.setValue(Utilities.appendDerivedTextToBase(source.getValue(), mergedMarkdown.getValue())); + } + for (Extension sourceExtension : source.getExtension()) { + Extension matchingExtension = findMatchingExtension(mergedMarkdown, sourceExtension); + if (matchingExtension == null) { + mergedMarkdown.addExtension(sourceExtension.copy()); + } else { + matchingExtension.setValue(sourceExtension.getValue()); + } + } + return mergedMarkdown; + } + + private StringType mergeStrings(StringType dest, StringType source) { + StringType res = dest.copy(); + if (!res.hasValue() && source.hasValue()) { + res.setValue(source.getValue()); + } else if (res.hasValue() && source.hasValue() && res.getValue().startsWith("...")) { + res.setValue(Utilities.appendDerivedTextToBase(res.getValue(), source.getValue())); + } + for (Extension sourceExtension : source.getExtension()) { + Extension matchingExtension = findMatchingExtension(res, sourceExtension); + if (matchingExtension == null) { + res.addExtension(sourceExtension.copy()); + } else { + matchingExtension.setValue(sourceExtension.getValue()); + } + } + return res; + } + + private Extension findMatchingExtension(Element res, Extension extensionToMatch) { + for (Extension elementExtension : res.getExtensionsByUrl(extensionToMatch.getUrl())) { + if (ExtensionDefinitions.EXT_TRANSLATION.equals(elementExtension.getUrl())) { + String slang = extensionToMatch.getExtensionString("lang"); + String dlang = elementExtension.getExtensionString("lang"); + if (Utilities.stringsEqual(slang, dlang)) { + return elementExtension; + } + } else { + return elementExtension; + } + + } + return null; + } + + private static Extension markExtensionSource(Extension extension, boolean overrideSource, StructureDefinition srcSD) { + if (overrideSource || !extension.hasUserData(UserDataNames.SNAPSHOT_EXTENSION_SOURCE)) { + extension.setUserData(UserDataNames.SNAPSHOT_EXTENSION_SOURCE, srcSD); + } + if (Utilities.existsInList(extension.getUrl(), ExtensionDefinitions.EXT_OBLIGATION_CORE, ExtensionDefinitions.EXT_OBLIGATION_TOOLS)) { + Extension sub = extension.getExtensionByUrl(ExtensionDefinitions.EXT_OBLIGATION_SOURCE, ExtensionDefinitions.EXT_OBLIGATION_SOURCE_SHORT); + if (sub == null || overrideSource) { + ExtensionUtilities.setCanonicalExtension(extension, ExtensionDefinitions.EXT_OBLIGATION_SOURCE, srcSD.getVersionedUrl()); + } + } + return extension; + } + + private void updateExtensionsFromDefinition(Element dest, Element source, StructureDefinition destSD, StructureDefinition srcSD) { + dest.getExtension().removeIf(ext -> Utilities.existsInList(ext.getUrl(), NON_INHERITED_ED_URLS) || (Utilities.existsInList(ext.getUrl(), DEFAULT_INHERITED_ED_URLS) && source.hasExtension(ext.getUrl()))); + + for (Extension ext : source.getExtension()) { + if (!dest.hasExtension(ext.getUrl())) { + dest.getExtension().add(markExtensionSource(ext.copy(), false, srcSD)); + } else if (Utilities.existsInList(ext.getUrl(), NON_OVERRIDING_ED_URLS)) { + // do nothing + for (Extension ex2 : dest.getExtensionsByUrl(ext.getUrl())) { + markExtensionSource(ex2, true, destSD); + } + } else if (Utilities.existsInList(ext.getUrl(), OVERRIDING_ED_URLS)) { + dest.getExtensionByUrl(ext.getUrl()).setValue(ext.getValue()); + markExtensionSource(dest.getExtensionByUrl(ext.getUrl()), false, srcSD); + } else { + dest.getExtension().add(markExtensionSource(ext.copy(), false, srcSD)); + } + } + } + + private void mergeAdditionalBinding(ElementDefinitionBindingAdditionalComponent dest, ElementDefinitionBindingAdditionalComponent source) { + for (UsageContext t : source.getUsage()) { + if (!hasUsage(dest, t)) { + dest.addUsage(t); + } + } + if (source.getAny()) { + source.setAny(true); + } + if (source.hasShortDoco()) { + dest.setShortDoco(source.getShortDoco()); + } + if (source.hasDocumentation()) { + dest.setDocumentation(source.getDocumentation()); + } + + } + + private boolean hasUsage(ElementDefinitionBindingAdditionalComponent dest, UsageContext tgt) { + for (UsageContext t : dest.getUsage()) { + if (t.getCode() != null && t.getCode().matches(tgt.getCode()) && t.getValue() != null && t.getValue().equals(tgt.getValue())) { + return true; + } + } + return false; + } + + private ElementDefinitionBindingAdditionalComponent getMatchingAdditionalBinding(ElementDefinitionBindingComponent nb,ElementDefinitionBindingAdditionalComponent ab) { + for (ElementDefinitionBindingAdditionalComponent t : nb.getAdditional()) { + if (t.getValueSet() != null && t.getValueSet().equals(ab.getValueSet()) && t.getPurpose() == ab.getPurpose() && !ab.hasUsage()) { + return t; + } + } + return null; + } + + private void mergeExtensions(Element tgt, Element src) { + tgt.getExtension().addAll(src.getExtension()); + } + + private void checkTypeDerivation(String purl, StructureDefinition srcSD, ElementDefinition base, ElementDefinition derived, TypeRefComponent ts, String path, boolean specialising) { + boolean ok = false; + CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder(); + String t = ts.getWorkingCode(); + String tDesc = ts.toString(); + for (TypeRefComponent td : base.getType()) {; + boolean matchType = false; + String tt = td.getWorkingCode(); + b.append(td.toString()); + if (td.hasCode() && (tt.equals(t))) { + matchType = true; + } + if (!matchType) { + StructureDefinition sdt = context.fetchTypeDefinition(tt); + if (sdt != null && (sdt.getAbstract() || sdt.getKind() == StructureDefinitionKind.LOGICAL)) { + StructureDefinition sdb = context.fetchTypeDefinition(t); + while (sdb != null && !matchType) { + matchType = sdb.getType().equals(sdt.getType()); + sdb = findProfile(sdb.getBaseDefinition(), sdb); + } + } + } + // work around for old badly generated SDs +// if (DONT_DO_THIS && Utilities.existsInList(tt, "Extension", "uri", "string", "Element")) { +// matchType = true; +// } +// if (DONT_DO_THIS && Utilities.existsInList(tt, "Resource","DomainResource") && pkp.isResource(t)) { +// matchType = true; +// } + if (matchType) { + ts.copyNewExtensions(td, "http://hl7.org/fhir/StructureDefinition/elementdefinition-type-must-support"); + ts.copyExtensions(td, "http://hl7.org/fhir/StructureDefinition/elementdefinition-pattern", "http://hl7.org/fhir/StructureDefinition/obligation", "http://hl7.org/fhir/tools/StructureDefinition/obligation"); + if (ts.hasTargetProfile()) { + // check that any derived target has a reference chain back to one of the base target profiles + for (UriType u : ts.getTargetProfile()) { + String url = u.getValue(); + boolean tgtOk = !td.hasTargetProfile() || sdConformsToTargets(path, derived.getPath(), url, td); + if (tgtOk) { + ok = true; + } else if (specialising) { + ok = true; + } else { + addMessage(new ValidationMessage(Source.InstanceValidator, IssueType.BUSINESSRULE, derived.getPath(), context.formatMessage(I18nConstants.ERROR_AT__THE_TARGET_PROFILE__IS_NOT__VALID_CONSTRAINT_ON_THE_BASE_, purl, derived.getPath(), url, td.getTargetProfile()), IssueSeverity.ERROR)); + } + } + } else { + ok = true; + } + } + } + if (!ok && !isSuppressIgnorableExceptions()) { + throw new DefinitionException(context.formatMessage(I18nConstants.STRUCTUREDEFINITION__AT__ILLEGAL_CONSTRAINED_TYPE__FROM__IN_, purl, derived.getPath(), tDesc, b.toString(), srcSD.getUrl())); + } + } + + + private boolean sdConformsToTargets(String path, String dPath, String url, TypeRefComponent td) { + if (td.hasTargetProfile(url)) { + return true; + } + if (url != null && url.contains("|") && td.hasTargetProfile(url.substring(0, url.indexOf("|")))) { + return true; + } + StructureDefinition sd = context.fetchResourceRaw(StructureDefinition.class, url); + if (sd == null) { + addMessage(new ValidationMessage(Source.InstanceValidator, IssueType.BUSINESSRULE, path, "Cannot check whether the target profile " + url + " on "+dPath+" is valid constraint on the base because it is not known", IssueSeverity.WARNING)); + return true; + } else { + if (sd.hasBaseDefinition() && sdConformsToTargets(path, dPath, sd.getBaseDefinition(), td)) { + return true; + } + for (Extension ext : sd.getExtensionsByUrl(ExtensionDefinitions.EXT_SD_IMPOSE_PROFILE)) { + if (sdConformsToTargets(path, dPath, ext.getValueCanonicalType().asStringValue(), td)) { + return true; + } + } + } + return false; + } + + private void checkTypeOk(ElementDefinition dest, String ft, StructureDefinition sd, String fieldName) { + boolean ok = false; + Set types = new HashSet<>(); + if (dest.getPath().contains(".")) { + for (TypeRefComponent t : dest.getType()) { + if (t.hasCode()) { + types.add(t.getWorkingCode()); + } + ok = ok || ft.equals(t.getWorkingCode()); + } + } else { + types.add(sd.getType()); + ok = ok || ft.equals(sd.getType()); + + } + if (!ok) { + addMessage(new ValidationMessage(Source.InstanceValidator, IssueType.CONFLICT, dest.getId(), "The "+fieldName+" value has type '"+ft+"' which is not valid (valid "+Utilities.pluralize("type", dest.getType().size())+": "+types.toString()+")", IssueSeverity.ERROR)); + } + } + + private boolean hasBindableType(ElementDefinition ed) { + for (TypeRefComponent tr : ed.getType()) { + if (Utilities.existsInList(tr.getWorkingCode(), "Coding", "CodeableConcept", "Quantity", "uri", "string", "code", "CodeableReference")) { + return true; + } + StructureDefinition sd = context.fetchTypeDefinition(tr.getCode()); + if (sd != null && sd.hasExtension(ExtensionDefinitions.EXT_BINDING_STYLE)) { + return true; + } + if (sd != null && sd.hasExtension(ExtensionDefinitions.EXT_TYPE_CHARACTERISTICS) && + "can-bind".equals(ExtensionUtilities.readStringExtension(sd, ExtensionDefinitions.EXT_TYPE_CHARACTERISTICS))) { + return true; + } + } + return false; + } + + + private boolean isLargerMax(String derived, String base) { + if ("*".equals(base)) { + return false; + } + if ("*".equals(derived)) { + return true; + } + return Integer.parseInt(derived) > Integer.parseInt(base); + } + + + private String checkSubset(ValueSet expBase, ValueSet expDerived) { + Set codes = new HashSet<>(); + checkCodesInExpansion(codes, expDerived.getExpansion().getContains(), expBase.getExpansion()); + if (codes.isEmpty()) { + return null; + } else { + return "The codes '"+CommaSeparatedStringBuilder.join(",", codes)+"' are not in the base valueset"; + } + } + + + private void checkCodesInExpansion(Set codes, List contains, ValueSetExpansionComponent expansion) { + for (ValueSetExpansionContainsComponent cc : contains) { + if (!inExpansion(cc, expansion.getContains())) { + codes.add(cc.getCode()); + } + checkCodesInExpansion(codes, cc.getContains(), expansion); + } + } + + + private boolean inExpansion(ValueSetExpansionContainsComponent cc, List contains) { + for (ValueSetExpansionContainsComponent cc1 : contains) { + if (cc.getSystem().equals(cc1.getSystem()) && cc.getCode().equals(cc1.getCode())) { + return true; + } + if (inExpansion(cc, cc1.getContains())) { + return true; + } + } + return false; + } + + public void closeDifferential(StructureDefinition base, StructureDefinition derived) throws FHIRException { + for (ElementDefinition edb : base.getSnapshot().getElement()) { + if (isImmediateChild(edb) && !edb.getPath().endsWith(".id")) { + ElementDefinition edm = getMatchInDerived(edb, derived.getDifferential().getElement()); + if (edm == null) { + ElementDefinition edd = derived.getDifferential().addElement(); + edd.setPath(edb.getPath()); + edd.setMax("0"); + } else if (edb.hasSlicing()) { + closeChildren(base, edb, derived, edm); + } + } + } + sortDifferential(base, derived, derived.getName(), new ArrayList(), false); + } + + private void closeChildren(StructureDefinition base, ElementDefinition edb, StructureDefinition derived, ElementDefinition edm) { +// String path = edb.getPath()+"."; + int baseStart = base.getSnapshot().getElement().indexOf(edb); + int baseEnd = findEnd(base.getSnapshot().getElement(), edb, baseStart+1); + int diffStart = derived.getDifferential().getElement().indexOf(edm); + int diffEnd = findEnd(derived.getDifferential().getElement(), edm, diffStart+1); + + for (int cBase = baseStart; cBase < baseEnd; cBase++) { + ElementDefinition edBase = base.getSnapshot().getElement().get(cBase); + if (isImmediateChild(edBase, edb)) { + ElementDefinition edMatch = getMatchInDerived(edBase, derived.getDifferential().getElement(), diffStart, diffEnd); + if (edMatch == null) { + ElementDefinition edd = derived.getDifferential().addElement(); + edd.setPath(edBase.getPath()); + edd.setMax("0"); + } else { + closeChildren(base, edBase, derived, edMatch); + } + } + } + } + + private int findEnd(List list, ElementDefinition ed, int cursor) { + String path = ed.getPath()+"."; + while (cursor < list.size() && list.get(cursor).getPath().startsWith(path)) { + cursor++; + } + return cursor; + } + + + private ElementDefinition getMatchInDerived(ElementDefinition ed, List list) { + for (ElementDefinition t : list) { + if (t.getPath().equals(ed.getPath())) { + return t; + } + } + return null; + } + + private ElementDefinition getMatchInDerived(ElementDefinition ed, List list, int start, int end) { + for (int i = start; i < end; i++) { + ElementDefinition t = list.get(i); + if (t.getPath().equals(ed.getPath())) { + return t; + } + } + return null; + } + + + private boolean isImmediateChild(ElementDefinition ed) { + String p = ed.getPath(); + if (!p.contains(".")) { + return false; + } + p = p.substring(p.indexOf(".")+1); + return !p.contains("."); + } + + private boolean isImmediateChild(ElementDefinition candidate, ElementDefinition base) { + String p = candidate.getPath(); + if (!p.contains(".")) + return false; + if (!p.startsWith(base.getPath()+".")) + return false; + p = p.substring(base.getPath().length()+1); + return !p.contains("."); + } + + + + private ElementDefinition getUrlFor(StructureDefinition ed, ElementDefinition c) { + int i = ed.getSnapshot().getElement().indexOf(c) + 1; + while (i < ed.getSnapshot().getElement().size() && ed.getSnapshot().getElement().get(i).getPath().startsWith(c.getPath()+".")) { + if (ed.getSnapshot().getElement().get(i).getPath().equals(c.getPath()+".url")) + return ed.getSnapshot().getElement().get(i); + i++; + } + return null; + } + + + + protected ElementDefinitionResolution getElementById(StructureDefinition source, List elements, String contentReference) { + if (!contentReference.startsWith("#") && contentReference.contains("#")) { + String url = contentReference.substring(0, contentReference.indexOf("#")); + contentReference = contentReference.substring(contentReference.indexOf("#")); + if (!url.equals(source.getUrl())){ + source = findProfile(url, source); + if (source == null) { + return null; + } + elements = source.getSnapshot().getElement(); + } + } + for (ElementDefinition ed : elements) + if (ed.hasId() && ("#"+ed.getId()).equals(contentReference)) + return new ElementDefinitionResolution(source, ed); + return null; + } + + + public static String describeExtensionContext(StructureDefinition ext) { + StringBuilder b = new StringBuilder(); + b.append("Use on "); + for (int i = 0; i < ext.getContext().size(); i++) { + StructureDefinitionContextComponent ec = ext.getContext().get(i); + if (i > 0) + b.append(i < ext.getContext().size() - 1 ? ", " : " or "); + b.append(ec.getType().getDisplay()); + b.append(" "); + b.append(ec.getExpression()); + } + if (ext.hasContextInvariant()) { + b.append(", with Context Invariant = "); + boolean first = true; + for (StringType s : ext.getContextInvariant()) { + if (first) + first = false; + else + b.append(", "); + b.append(""+s.getValue()+""); + } + } + return b.toString(); + } + + + + +// public XhtmlNode generateTable(String defFile, StructureDefinition profile, boolean diff, String imageFolder, boolean inlineGraphics, String profileBaseFileName, boolean snapshot, String corePath, String imagePath, +// boolean logicalModel, boolean allInvariants, Set outputTracker, boolean mustSupport, RenderingContext rc) throws IOException, FHIRException { +// return generateTable(defFile, profile, diff, imageFolder, inlineGraphics, profileBaseFileName, snapshot, corePath, imagePath, logicalModel, allInvariants, outputTracker, mustSupport, rc, ""); +// } + + + + + + protected String tail(String path) { + if (path == null) { + return ""; + } else if (path.contains(".")) + return path.substring(path.lastIndexOf('.')+1); + else + return path; + } + + private boolean isDataType(String value) { + StructureDefinition sd = context.fetchTypeDefinition(value); + if (sd == null) // might be running before all SDs are available + return Utilities.existsInList(value, "Address", "Age", "Annotation", "Attachment", "CodeableConcept", "Coding", "ContactPoint", "Count", "Distance", "Duration", "HumanName", "Identifier", "Money", "Period", "Quantity", "Range", "Ratio", "Reference", "SampledData", "Signature", "Timing", + "ContactDetail", "Contributor", "DataRequirement", "Expression", "ParameterDefinition", "RelatedArtifact", "TriggerDefinition", "UsageContext"); + else + return sd.getKind() == StructureDefinitionKind.COMPLEXTYPE && sd.getDerivation() == TypeDerivationRule.SPECIALIZATION; + } + + private boolean isConstrainedDataType(String value) { + StructureDefinition sd = context.fetchTypeDefinition(value); + if (sd == null) // might be running before all SDs are available + return Utilities.existsInList(value, "SimpleQuantity", "MoneyQuantity"); + else + return sd.getKind() == StructureDefinitionKind.COMPLEXTYPE && sd.getDerivation() == TypeDerivationRule.CONSTRAINT; + } + + private String baseType(String value) { + StructureDefinition sd = context.fetchTypeDefinition(value); + if (sd != null) // might be running before all SDs are available + return sd.getTypeName(); + if (Utilities.existsInList(value, "SimpleQuantity", "MoneyQuantity")) + return "Quantity"; + throw new Error(context.formatMessage(I18nConstants.INTERNAL_ERROR___TYPE_NOT_KNOWN_, value)); + } + + + protected boolean isPrimitive(String value) { + StructureDefinition sd = context.fetchTypeDefinition(value); + if (sd == null) // might be running before all SDs are available + return Utilities.existsInList(value, "base64Binary", "boolean", "canonical", "code", "date", "dateTime", "decimal", "id", "instant", "integer", "integer64", "markdown", "oid", "positiveInt", "string", "time", "unsignedInt", "uri", "url", "uuid"); + else + return sd.getKind() == StructureDefinitionKind.PRIMITIVETYPE; + } + +// private static String listStructures(StructureDefinition p) { +// StringBuilder b = new StringBuilder(); +// boolean first = true; +// for (ProfileStructureComponent s : p.getStructure()) { +// if (first) +// first = false; +// else +// b.append(", "); +// if (pkp != null && pkp.hasLinkFor(s.getType())) +// b.append(""+s.getType()+""); +// else +// b.append(s.getType()); +// } +// return b.toString(); +// } + + + public StructureDefinition getProfile(StructureDefinition source, String url) { + StructureDefinition profile = null; + String code = null; + if (url.startsWith("#")) { + profile = source; + code = url.substring(1); + } else if (context != null) { + String[] parts = url.split("\\#"); + profile = findProfile(parts[0], source); + code = parts.length == 1 ? null : parts[1]; + } + if (profile == null) + return null; + if (code == null) + return profile; + for (Resource r : profile.getContained()) { + if (r instanceof StructureDefinition && r.getId().equals(code)) + return (StructureDefinition) r; + } + return null; + } + + + + private static class ElementDefinitionHolder { + private String name; + private ElementDefinition self; + private int baseIndex = 0; + private List children; + private boolean placeHolder = false; + + public ElementDefinitionHolder(ElementDefinition self, boolean isPlaceholder) { + super(); + this.self = self; + this.name = self.getPath(); + this.placeHolder = isPlaceholder; + children = new ArrayList(); + } + + public ElementDefinitionHolder(ElementDefinition self) { + this(self, false); + } + + public ElementDefinition getSelf() { + return self; + } + + public List getChildren() { + return children; + } + + public int getBaseIndex() { + return baseIndex; + } + + public void setBaseIndex(int baseIndex) { + this.baseIndex = baseIndex; + } + + public boolean isPlaceHolder() { + return this.placeHolder; + } + + @Override + public String toString() { + if (self.hasSliceName()) + return self.getPath()+"("+self.getSliceName()+")"; + else + return self.getPath(); + } + } + + private static class ElementDefinitionComparer implements Comparator { + + private boolean inExtension; + private StructureDefinition src; + private List snapshot; + private int prefixLength; + private String base; + private String name; + private String baseName; + private Set errors = new HashSet(); + + public ElementDefinitionComparer(boolean inExtension, StructureDefinition src, List snapshot, String base, int prefixLength, String name, String baseName) { + this.inExtension = inExtension; + this.src = src; + this.snapshot = snapshot; + this.prefixLength = prefixLength; + this.base = base; + if (Utilities.isAbsoluteUrl(base)) { + this.base = urlTail(base); + } + this.name = name; + this.baseName = baseName; + } + + @Override + public int compare(ElementDefinitionHolder o1, ElementDefinitionHolder o2) { + if (o1.getBaseIndex() == 0) { + o1.setBaseIndex(find(o1.getSelf().getPath(), true)); + } + if (o2.getBaseIndex() == 0) { + o2.setBaseIndex(find(o2.getSelf().getPath(), true)); + } + return o1.getBaseIndex() - o2.getBaseIndex(); + } + + private int find(String path, boolean mandatory) { + String op = path; + int lc = 0; + String actual = base+path.substring(prefixLength); + for (int i = 0; i < snapshot.size(); i++) { + String p = snapshot.get(i).getPath(); + if (p.equals(actual)) { + return i; + } + if (p.endsWith("[x]") && actual.startsWith(p.substring(0, p.length()-3)) && !(actual.endsWith("[x]")) && !actual.substring(p.length()-3).contains(".")) { + return i; + } + if (actual.endsWith("[x]") && p.startsWith(actual.substring(0, actual.length()-3)) && !p.substring(actual.length()-3).contains(".")) { + return i; + } + if (path.startsWith(p+".") && snapshot.get(i).hasContentReference()) { + String ref = snapshot.get(i).getContentReference(); + if (ref.substring(1, 2).toUpperCase().equals(ref.substring(1,2))) { + actual = base+(ref.substring(1)+"."+path.substring(p.length()+1)).substring(prefixLength); + path = actual; + } else if (ref.startsWith("http:")) { + actual = base+(ref.substring(ref.indexOf("#")+1)+"."+path.substring(p.length()+1)).substring(prefixLength); + path = actual; + } else { + // Older versions of FHIR (e.g. 2016May) had reference of the style #parameter instead of #Parameters.parameter, so we have to handle that + actual = base+(path.substring(0, path.indexOf(".")+1) + ref.substring(1)+"."+path.substring(p.length()+1)).substring(prefixLength); + path = actual; + } + + i = 0; + lc++; + if (lc > MAX_RECURSION_LIMIT) + throw new Error("Internal recursion detection: find() loop path recursion > "+MAX_RECURSION_LIMIT+" - check paths are valid (for path "+path+"/"+op+")"); + } + } + if (mandatory) { + if (prefixLength == 0) + errors.add("Differential contains path "+path+" which is not found in the base "+baseName); + else + errors.add("Differential contains path "+path+" which is actually "+actual+", which is not found in the in base "+ baseName); + } + return 0; + } + + public void checkForErrors(List errorList) { + if (errors.size() > 0) { +// CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder(); +// for (String s : errors) +// b.append("StructureDefinition "+name+": "+s); +// throw new DefinitionException(b.toString()); + for (String s : errors) + if (s.startsWith("!")) + errorList.add("!StructureDefinition "+name+": "+s.substring(1)); + else + errorList.add("StructureDefinition "+name+": "+s); + } + } + } + + + public void sortDifferential(StructureDefinition base, StructureDefinition diff, String name, List errors, boolean errorIfChanges) throws FHIRException { + int index = 0; + for (ElementDefinition ed : diff.getDifferential().getElement()) { + ed.setUserData(UserDataNames.SNAPSHOT_SORT_ed_index, Integer.toString(index)); + index++; + } + List original = new ArrayList<>(); + original.addAll(diff.getDifferential().getElement()); + final List diffList = diff.getDifferential().getElement(); + int lastCount = diffList.size(); + // first, we move the differential elements into a tree + if (diffList.isEmpty()) + return; + + ElementDefinitionHolder edh = null; + int i = 0; + if (diffList.get(0).getPath().contains(".")) { + String newPath = diffList.get(0).getPath().split("\\.")[0]; + ElementDefinition e = new ElementDefinition(newPath); + edh = new ElementDefinitionHolder(e, true); + } else { + edh = new ElementDefinitionHolder(diffList.get(0)); + i = 1; + } + + boolean hasSlicing = false; + List paths = new ArrayList(); // in a differential, slicing may not be stated explicitly + for(ElementDefinition elt : diffList) { + if (elt.hasSlicing() || paths.contains(elt.getPath())) { + hasSlicing = true; + break; + } + paths.add(elt.getPath()); + } + + processElementsIntoTree(edh, i, diff.getDifferential().getElement()); + + // now, we sort the siblings throughout the tree + ElementDefinitionComparer cmp = new ElementDefinitionComparer(true, base, base.getSnapshot().getElement(), "", 0, name, base.getType()); + sortElements(edh, cmp, errors); + + // now, we serialise them back to a list + List newDiff = new ArrayList<>(); + writeElements(edh, newDiff); + if (errorIfChanges) { + compareDiffs(original, newDiff, errors); + } + diffList.clear(); + diffList.addAll(newDiff); + + if (lastCount != diffList.size()) + errors.add("Sort failed: counts differ; at least one of the paths in the differential is illegal"); + } + + private void compareDiffs(List diffList, List newDiff, List errors) { + if (diffList.size() != newDiff.size()) { + errors.add("The diff list size changed when sorting - was "+diffList.size()+" is now "+newDiff.size()+ + " ["+CommaSeparatedStringBuilder.buildObjects(diffList)+"]/["+CommaSeparatedStringBuilder.buildObjects(newDiff)+"]"); + } else { + for (int i = 0; i < Integer.min(diffList.size(), newDiff.size()); i++) { + ElementDefinition e = diffList.get(i); + ElementDefinition n = newDiff.get(i); + if (!n.getPath().equals(e.getPath())) { + errors.add("The element "+(e.hasId() ? e.getId() : e.getPath())+" @diff["+e.getUserString(UserDataNames.SNAPSHOT_SORT_ed_index)+"] is out of order (and maybe others after it)"); + return; + } + } + } + } + + + private int processElementsIntoTree(ElementDefinitionHolder edh, int i, List list) { + String path = edh.getSelf().getPath(); + final String prefix = path + "."; + while (i < list.size() && list.get(i).getPath().startsWith(prefix)) { + if (list.get(i).getPath().substring(prefix.length()+1).contains(".")) { + String newPath = prefix + list.get(i).getPath().substring(prefix.length()).split("\\.")[0]; + ElementDefinition e = new ElementDefinition(newPath); + ElementDefinitionHolder child = new ElementDefinitionHolder(e, true); + edh.getChildren().add(child); + i = processElementsIntoTree(child, i, list); + + } else { + ElementDefinitionHolder child = new ElementDefinitionHolder(list.get(i)); + edh.getChildren().add(child); + i = processElementsIntoTree(child, i+1, list); + } + } + return i; + } + + private void sortElements(ElementDefinitionHolder edh, ElementDefinitionComparer cmp, List errors) throws FHIRException { + if (edh.getChildren().size() == 1) + // special case - sort needsto allocate base numbers, but there'll be no sort if there's only 1 child. So in that case, we just go ahead and allocated base number directly + edh.getChildren().get(0).baseIndex = cmp.find(edh.getChildren().get(0).getSelf().getPath(), false); + else + Collections.sort(edh.getChildren(), cmp); + if (debug) { + cmp.checkForErrors(errors); + } + + for (ElementDefinitionHolder child : edh.getChildren()) { + if (child.getChildren().size() > 0) { + ElementDefinitionComparer ccmp = getComparer(cmp, child); + if (ccmp != null) { + sortElements(child, ccmp, errors); + } + } + } + } + + public ElementDefinitionComparer getComparer(ElementDefinitionComparer cmp, ElementDefinitionHolder child) throws FHIRException, Error { + // what we have to check for here is running off the base profile into a data type profile + ElementDefinition ed = cmp.snapshot.get(child.getBaseIndex()); + ElementDefinitionComparer ccmp; + if (ed.getType().isEmpty() || isAbstract(ed.getType().get(0).getWorkingCode()) || ed.getType().get(0).getWorkingCode().equals(ed.getPath())) { + if (ed.hasType() && "Resource".equals(ed.getType().get(0).getWorkingCode()) && (child.getSelf().hasType() && child.getSelf().getType().get(0).hasProfile())) { + if (child.getSelf().getType().get(0).getProfile().size() > 1) { + throw new FHIRException(context.formatMessage(I18nConstants.UNHANDLED_SITUATION_RESOURCE_IS_PROFILED_TO_MORE_THAN_ONE_OPTION__CANNOT_SORT_PROFILE)); + } + StructureDefinition profile = findProfile(child.getSelf().getType().get(0).getProfile().get(0).getValue(), cmp.src); + while (profile != null && profile.getDerivation() == TypeDerivationRule.CONSTRAINT) { + profile = findProfile(profile.getBaseDefinition(), profile); + } + if (profile==null) { + ccmp = null; // this might happen before everything is loaded. And we don't so much care about sot order in this case + } else { + ccmp = new ElementDefinitionComparer(true, profile, profile.getSnapshot().getElement(), profile.getType(), child.getSelf().getPath().length(), cmp.name, profile.present()); + } + } else { + ccmp = new ElementDefinitionComparer(true, cmp.src, cmp.snapshot, cmp.base, cmp.prefixLength, cmp.name, cmp.name); + } + } else if (ed.getType().get(0).getWorkingCode().equals("Extension") && child.getSelf().getType().size() == 1 && child.getSelf().getType().get(0).hasProfile()) { + StructureDefinition profile = findProfile(child.getSelf().getType().get(0).getProfile().get(0).getValue(), cmp.src); + if (profile==null) + ccmp = null; // this might happen before everything is loaded. And we don't so much care about sot order in this case + else + ccmp = new ElementDefinitionComparer(true, profile, profile.getSnapshot().getElement(), resolveType(ed.getType().get(0).getWorkingCode(), cmp.src), child.getSelf().getPath().length(), cmp.name, profile.present()); + } else if (ed.getType().size() == 1 && !ed.getType().get(0).getWorkingCode().equals("*")) { + StructureDefinition profile = findProfile(sdNs(ed.getType().get(0).getWorkingCode()), cmp.src); + if (profile==null) + throw new FHIRException(context.formatMessage(I18nConstants.UNABLE_TO_RESOLVE_PROFILE__IN_ELEMENT_, sdNs(ed.getType().get(0).getWorkingCode()), ed.getPath())); + ccmp = new ElementDefinitionComparer(false, profile, profile.getSnapshot().getElement(), resolveType(ed.getType().get(0).getWorkingCode(), cmp.src), child.getSelf().getPath().length(), cmp.name, profile.present()); + } else if (child.getSelf().getType().size() == 1) { + StructureDefinition profile = findProfile(sdNs(child.getSelf().getType().get(0).getWorkingCode()), cmp.src); + if (profile==null) + throw new FHIRException(context.formatMessage(I18nConstants.UNABLE_TO_RESOLVE_PROFILE__IN_ELEMENT_, sdNs(ed.getType().get(0).getWorkingCode()), ed.getPath())); + ccmp = new ElementDefinitionComparer(false, profile, profile.getSnapshot().getElement(), child.getSelf().getType().get(0).getWorkingCode(), child.getSelf().getPath().length(), cmp.name, profile.present()); + } else if (ed.getPath().endsWith("[x]") && !child.getSelf().getPath().endsWith("[x]")) { + String edLastNode = ed.getPath().replaceAll("(.*\\.)*(.*)", "$2"); + String childLastNode = child.getSelf().getPath().replaceAll("(.*\\.)*(.*)", "$2"); + String p = childLastNode.substring(edLastNode.length()-3); + if (isPrimitive(Utilities.uncapitalize(p))) + p = Utilities.uncapitalize(p); + StructureDefinition sd = findProfile(sdNs(p), cmp.src); + if (sd == null) + throw new Error(context.formatMessage(I18nConstants.UNABLE_TO_FIND_PROFILE__AT_, p, ed.getId())); + ccmp = new ElementDefinitionComparer(false, sd, sd.getSnapshot().getElement(), p, child.getSelf().getPath().length(), cmp.name, sd.present()); + } else if (child.getSelf().hasType() && child.getSelf().getType().get(0).getWorkingCode().equals("Reference")) { + for (TypeRefComponent t: child.getSelf().getType()) { + if (!t.getWorkingCode().equals("Reference")) { + throw new Error(context.formatMessage(I18nConstants.CANT_HAVE_CHILDREN_ON_AN_ELEMENT_WITH_A_POLYMORPHIC_TYPE__YOU_MUST_SLICE_AND_CONSTRAIN_THE_TYPES_FIRST_SORTELEMENTS_, ed.getPath(), typeCode(ed.getType()))); + } + } + StructureDefinition profile = findProfile(sdNs(ed.getType().get(0).getWorkingCode()), cmp.src); + ccmp = new ElementDefinitionComparer(false, profile, profile.getSnapshot().getElement(), ed.getType().get(0).getWorkingCode(), child.getSelf().getPath().length(), cmp.name, profile.present()); + } else if (!child.getSelf().hasType() && ed.getType().get(0).getWorkingCode().equals("Reference")) { + for (TypeRefComponent t: ed.getType()) { + if (!t.getWorkingCode().equals("Reference")) { + throw new Error(context.formatMessage(I18nConstants.NOT_HANDLED_YET_SORTELEMENTS_, ed.getPath(), typeCode(ed.getType()))); + } + } + StructureDefinition profile = findProfile(sdNs(ed.getType().get(0).getWorkingCode()), cmp.src); + ccmp = new ElementDefinitionComparer(false, profile, profile.getSnapshot().getElement(), ed.getType().get(0).getWorkingCode(), child.getSelf().getPath().length(), cmp.name, profile.present()); + } else { + // this is allowed if we only profile the extensions + StructureDefinition profile = findProfile(sdNs("Element"), cmp.src); + if (profile==null) + throw new FHIRException(context.formatMessage(I18nConstants.UNABLE_TO_RESOLVE_PROFILE__IN_ELEMENT_, sdNs(ed.getType().get(0).getWorkingCode()), ed.getPath())); + ccmp = new ElementDefinitionComparer(false, profile, profile.getSnapshot().getElement(), "Element", child.getSelf().getPath().length(), cmp.name, profile.present()); +// throw new Error("Not handled yet (sortElements: "+ed.getPath()+":"+typeCode(ed.getType())+")"); + } + return ccmp; + } + + private String resolveType(String code, StructureDefinition src) { + if (Utilities.isAbsoluteUrl(code)) { + StructureDefinition sd = findProfile(code, src); + if (sd != null) { + return sd.getType(); + } + } + return code; + } + + private static String sdNs(String type) { + return sdNs(type, null); + } + + public static String sdNs(String type, String overrideVersionNs) { + if (Utilities.isAbsoluteUrl(type)) + return type; + else if (overrideVersionNs != null) + return Utilities.pathURL(overrideVersionNs, type); + else + return "http://hl7.org/fhir/StructureDefinition/"+type; + } + + + private boolean isAbstract(String code) { + return code.equals("Element") || code.equals("BackboneElement") || code.equals("Resource") || code.equals("DomainResource"); + } + + + private void writeElements(ElementDefinitionHolder edh, List list) { + if (!edh.isPlaceHolder()) + list.add(edh.getSelf()); + for (ElementDefinitionHolder child : edh.getChildren()) { + writeElements(child, list); + } + } + + /** + * First compare element by path then by name if same + */ + private static class ElementNameCompare implements Comparator { + + @Override + public int compare(ElementDefinition o1, ElementDefinition o2) { + String path1 = normalizePath(o1); + String path2 = normalizePath(o2); + int cmp = path1.compareTo(path2); + if (cmp == 0) { + String name1 = o1.hasSliceName() ? o1.getSliceName() : ""; + String name2 = o2.hasSliceName() ? o2.getSliceName() : ""; + cmp = name1.compareTo(name2); + } + return cmp; + } + + private static String normalizePath(ElementDefinition e) { + if (!e.hasPath()) return ""; + String path = e.getPath(); + // if sorting element names make sure onset[x] appears before onsetAge, onsetDate, etc. + // so strip off the [x] suffix when comparing the path names. + if (path.endsWith("[x]")) { + path = path.substring(0, path.length()-3); + } + return path; + } + + } + + + // generate schematrons for the rules in a structure definition + public void generateSchematrons(OutputStream dest, StructureDefinition structure) throws IOException, DefinitionException { + if (structure.getDerivation() != TypeDerivationRule.CONSTRAINT) + throw new DefinitionException(context.formatMessage(I18nConstants.NOT_THE_RIGHT_KIND_OF_STRUCTURE_TO_GENERATE_SCHEMATRONS_FOR)); + if (!structure.hasSnapshot()) + throw new DefinitionException(context.formatMessage(I18nConstants.NEEDS_A_SNAPSHOT)); + + StructureDefinition base = findProfile(structure.getBaseDefinition(), structure); + + if (base != null) { + SchematronWriter sch = new SchematronWriter(dest, SchematronType.PROFILE, base.getName()); + + ElementDefinition ed = structure.getSnapshot().getElement().get(0); + generateForChildren(sch, "f:"+ed.getPath(), ed, structure, base); + sch.dump(); + } + } + + public StructureDefinition findProfile(String url, Resource source) { + if (url == null) { + return null; + } + String u = url; + String v = null; + if (url.contains("|")) { + v = url.substring(u.indexOf("|")+1); + u = u.substring(0, u.indexOf("|")); + } + if (parameters != null) { + if (v == null) { + for (Parameters.ParametersParameterComponent p : parameters.getParameter()) { + if ("default-profile-version".equals(p.getName())) { + String s = p.getValue().primitiveValue(); + if (s.startsWith(u + "|")) { + v = s.substring(s.indexOf("|") + 1); + } + } + } + } + for (Parameters.ParametersParameterComponent p : parameters.getParameter()) { + if ("force-profile-version".equals(p.getName())) { + String s = p.getValue().primitiveValue(); + if (s.startsWith(u + "|")) { + v = s.substring(s.indexOf("|") + 1); + } + } + } + for (Parameters.ParametersParameterComponent p : parameters.getParameter()) { + if ("check-profile-version".equals(p.getName())) { + String s = p.getValue().primitiveValue(); + if (s.startsWith(u + "|")) { + String vc = s.substring(s.indexOf("|") + 1); + if (!vc.equals(v)) { + throw new FHIRException("Profile resolves to " + v + " which does not match required profile version v" + vc); + } + } + } + } + } + // switch the extension pack in + if (source != null && source.getSourcePackage() != null && source.getSourcePackage().isCore()) { + source = null; + } + // matchbox patch #424 findProfile gets called by FHIRPathEngine + StructureDefinition sd = context.fetchResource(StructureDefinition.class, u, v, source); + if (sd == null) { + if (makeXVer().matchingUrl(u) && xver.status(u) == XVerExtensionStatus.Valid) { + sd = xver.getDefinition(u); + if (sd!=null) { + generateSnapshot(context.fetchTypeDefinition("Extension"), sd, sd.getUrl(), context.getSpecUrl(), sd.getName()); + } + } + } + return sd; + } + + // generate a CSV representation of the structure definition + public void generateCsv(OutputStream dest, StructureDefinition structure, boolean asXml) throws IOException, DefinitionException, Exception { + if (!structure.hasSnapshot()) + throw new DefinitionException(context.formatMessage(I18nConstants.NEEDS_A_SNAPSHOT)); + + CSVWriter csv = new CSVWriter(dest, structure, asXml); + + for (ElementDefinition child : structure.getSnapshot().getElement()) { + csv.processElement(null, child); + } + csv.dump(); + } + + // generate a CSV representation of the structure definition + public void addToCSV(CSVWriter csv, StructureDefinition structure) throws IOException, DefinitionException, Exception { + if (!structure.hasSnapshot()) + throw new DefinitionException(context.formatMessage(I18nConstants.NEEDS_A_SNAPSHOT)); + + for (ElementDefinition child : structure.getSnapshot().getElement()) { + csv.processElement(structure, child); + } + } + + + private class Slicer extends ElementDefinitionSlicingComponent { + String criteria = ""; + String name = ""; + boolean check; + public Slicer(boolean cantCheck) { + super(); + this.check = cantCheck; + } + } + + private Slicer generateSlicer(ElementDefinition child, ElementDefinitionSlicingComponent slicing, StructureDefinition structure) { + // given a child in a structure, it's sliced. figure out the slicing xpath + if (child.getPath().endsWith(".extension")) { + ElementDefinition ued = getUrlFor(structure, child); + if ((ued == null || !ued.hasFixed()) && !(child.hasType() && (child.getType().get(0).hasProfile()))) + return new Slicer(false); + else { + Slicer s = new Slicer(true); + String url = (ued == null || !ued.hasFixed()) ? child.getType().get(0).getProfile().get(0).getValue() : ((UriType) ued.getFixed()).asStringValue(); + s.name = " with URL = '"+url+"'"; + s.criteria = "[@url = '"+url+"']"; + return s; + } + } else + return new Slicer(false); + } + + private void generateForChildren(SchematronWriter sch, String xpath, ElementDefinition ed, StructureDefinition structure, StructureDefinition base) throws IOException { + // generateForChild(txt, structure, child); + List children = getChildList(structure, ed); + String sliceName = null; + ElementDefinitionSlicingComponent slicing = null; + for (ElementDefinition child : children) { + String name = tail(child.getPath()); + if (child.hasSlicing()) { + sliceName = name; + slicing = child.getSlicing(); + } else if (!name.equals(sliceName)) + slicing = null; + + ElementDefinition based = getByPath(base, child.getPath()); + boolean doMin = (child.getMin() > 0) && (based == null || (child.getMin() != based.getMin())); + boolean doMax = child.hasMax() && !child.getMax().equals("*") && (based == null || (!child.getMax().equals(based.getMax()))); + Slicer slicer = slicing == null ? new Slicer(true) : generateSlicer(child, slicing, structure); + if (slicer.check) { + if (doMin || doMax) { + Section s = sch.section(xpath); + Rule r = s.rule(xpath); + if (doMin) + r.assrt("count(f:"+name+slicer.criteria+") >= "+Integer.toString(child.getMin()), name+slicer.name+": minimum cardinality of '"+name+"' is "+Integer.toString(child.getMin())); + if (doMax) + r.assrt("count(f:"+name+slicer.criteria+") <= "+child.getMax(), name+slicer.name+": maximum cardinality of '"+name+"' is "+child.getMax()); + } + } + } +/// xpath has been removed +// for (ElementDefinitionConstraintComponent inv : ed.getConstraint()) { +// if (inv.hasXpath()) { +// Section s = sch.section(ed.getPath()); +// Rule r = s.rule(xpath); +// r.assrt(inv.getXpath(), (inv.hasId() ? inv.getId()+": " : "")+inv.getHuman()+(inv.hasUserData(IS_DERIVED) ? " (inherited)" : "")); +// } +// } + if (!ed.hasContentReference()) { + for (ElementDefinition child : children) { + String name = tail(child.getPath()); + generateForChildren(sch, xpath+"/f:"+name, child, structure, base); + } + } + } + + + + + private ElementDefinition getByPath(StructureDefinition base, String path) { + for (ElementDefinition ed : base.getSnapshot().getElement()) { + if (ed.getPath().equals(path)) + return ed; + if (ed.getPath().endsWith("[x]") && ed.getPath().length() <= path.length()-3 && ed.getPath().substring(0, ed.getPath().length()-3).equals(path.substring(0, ed.getPath().length()-3))) + return ed; + } + return null; + } + + + public void setIds(StructureDefinition sd, boolean checkFirst) throws DefinitionException { + if (!checkFirst || !sd.hasDifferential() || hasMissingIds(sd.getDifferential().getElement())) { + if (!sd.hasDifferential()) + sd.setDifferential(new StructureDefinitionDifferentialComponent()); + generateIds(sd.getDifferential().getElement(), sd.getUrl(), sd.getType(), sd); + } + if (!checkFirst || !sd.hasSnapshot() || hasMissingIds(sd.getSnapshot().getElement())) { + if (!sd.hasSnapshot()) + sd.setSnapshot(new StructureDefinitionSnapshotComponent()); + generateIds(sd.getSnapshot().getElement(), sd.getUrl(), sd.getType(), sd); + } + } + + + private boolean hasMissingIds(List list) { + for (ElementDefinition ed : list) { + if (!ed.hasId()) + return true; + } + return false; + } + + private class SliceList { + + private Map slices = new HashMap<>(); + + public void seeElement(ElementDefinition ed) { + Iterator> iter = slices.entrySet().iterator(); + while (iter.hasNext()) { + Map.Entry entry = iter.next(); + if (entry.getKey().length() > ed.getPath().length() || entry.getKey().equals(ed.getPath())) + iter.remove(); + } + + if (ed.hasSliceName()) + slices.put(ed.getPath(), ed.getSliceName()); + } + + public String[] analyse(List paths) { + String s = paths.get(0); + String[] res = new String[paths.size()]; + res[0] = null; + for (int i = 1; i < paths.size(); i++) { + s = s + "."+paths.get(i); + if (slices.containsKey(s)) + res[i] = slices.get(s); + else + res[i] = null; + } + return res; + } + + } + + protected void generateIds(List list, String name, String type, StructureDefinition srcSD) throws DefinitionException { + if (list.isEmpty()) + return; + + Map idList = new HashMap(); + Map replacedIds = new HashMap(); + + SliceList sliceInfo = new SliceList(); + // first pass, update the element ids + for (ElementDefinition ed : list) { + generateIdForElement(list, name, type, srcSD, ed, sliceInfo, replacedIds, idList); + } + // second path - fix up any broken path based id references + + } + + private void generateIdForElement(List list, String name, String type, StructureDefinition srcSD, ElementDefinition ed, SliceList sliceInfo, Map replacedIds, Map idList) { + List paths = new ArrayList(); + if (!ed.hasPath()) + throw new DefinitionException(context.formatMessage(I18nConstants.NO_PATH_ON_ELEMENT_DEFINITION__IN_, Integer.toString(list.indexOf(ed)), name)); + sliceInfo.seeElement(ed); + String[] pl = ed.getPath().split("\\."); + for (int i = paths.size(); i < pl.length; i++) // -1 because the last path is in focus + paths.add(pl[i]); + String slices[] = sliceInfo.analyse(paths); + + StringBuilder b = new StringBuilder(); + b.append(paths.get(0)); + for (int i = 1; i < paths.size(); i++) { + b.append("."); + String s = paths.get(i); + String p = slices[i]; + b.append(fixChars(s)); + if (p != null) { + b.append(":"); + b.append(p); + } + } + String bs = b.toString(); + if (ed.hasId()) { + replacedIds.put(ed.getId(), ed.getPath()); + } + ed.setId(bs); + if (idList.containsKey(bs)) { + addMessage(new ValidationMessage(Source.ProfileValidator, IssueType.BUSINESSRULE, name +"."+bs, context.formatMessage(I18nConstants.SAME_ID_ON_MULTIPLE_ELEMENTS__IN_, bs, idList.get(bs), ed.getPath(), name), IssueSeverity.ERROR)); + } + idList.put(bs, ed.getPath()); + if (ed.hasContentReference() && ed.getContentReference().startsWith("#")) { + String s = ed.getContentReference(); + String typeURL = getUrlForSource(type, srcSD); + if (replacedIds.containsKey(s.substring(1))) { + ed.setContentReference(typeURL+"#"+ replacedIds.get(s.substring(1))); + } else { + ed.setContentReference(typeURL+s); + } + } + } + + + private String getUrlForSource(String type, StructureDefinition srcSD) { + if (srcSD.getKind() == StructureDefinitionKind.LOGICAL) { + return srcSD.getUrl(); + } else { + return "http://hl7.org/fhir/StructureDefinition/"+type; + } + } + + private Object fixChars(String s) { + return s.replace("_", "-"); + } + + +// private String describeExtension(ElementDefinition ed) { +// if (!ed.hasType() || !ed.getTypeFirstRep().hasProfile()) +// return ""; +// return "$"+urlTail(ed.getTypeFirstRep().getProfile()); +// } +// + + private static String urlTail(String profile) { + return profile.contains("/") ? profile.substring(profile.lastIndexOf("/")+1) : profile; + } +// +// +// private String checkName(String name) { +//// if (name.contains(".")) +////// throw new Exception("Illegal name "+name+": no '.'"); +//// if (name.contains(" ")) +//// throw new Exception("Illegal name "+name+": no spaces"); +// StringBuilder b = new StringBuilder(); +// for (char c : name.toCharArray()) { +// if (!Utilities.existsInList(c, '.', ' ', ':', '"', '\'', '(', ')', '&', '[', ']')) +// b.append(c); +// } +// return b.toString().toLowerCase(); +// } +// +// +// private int charCount(String path, char t) { +// int res = 0; +// for (char ch : path.toCharArray()) { +// if (ch == t) +// res++; +// } +// return res; +// } + +// +//private void generateForChild(TextStreamWriter txt, +// StructureDefinition structure, ElementDefinition child) { +// // TODO Auto-generated method stub +// +//} + + private interface ExampleValueAccessor { + DataType getExampleValue(ElementDefinition ed); + String getId(); + } + + private class BaseExampleValueAccessor implements ExampleValueAccessor { + @Override + public DataType getExampleValue(ElementDefinition ed) { + if (ed.hasFixed()) + return ed.getFixed(); + if (ed.hasExample()) + return ed.getExample().get(0).getValue(); + else + return null; + } + + @Override + public String getId() { + return "-genexample"; + } + } + + private class ExtendedExampleValueAccessor implements ExampleValueAccessor { + private String index; + + public ExtendedExampleValueAccessor(String index) { + this.index = index; + } + @Override + public DataType getExampleValue(ElementDefinition ed) { + if (ed.hasFixed()) + return ed.getFixed(); + for (Extension ex : ed.getExtension()) { + String ndx = ExtensionUtilities.readStringExtension(ex, "index"); + DataType value = ExtensionUtilities.getExtension(ex, "exValue").getValue(); + if (index.equals(ndx) && value != null) + return value; + } + return null; + } + @Override + public String getId() { + return "-genexample-"+index; + } + } + + public List generateExamples(StructureDefinition sd, boolean evenWhenNoExamples) throws FHIRException { + List examples = new ArrayList(); + if (sd.hasSnapshot()) { + if (evenWhenNoExamples || hasAnyExampleValues(sd)) + examples.add(generateExample(sd, new BaseExampleValueAccessor())); + for (int i = 1; i <= 50; i++) { + if (hasAnyExampleValues(sd, Integer.toString(i))) + examples.add(generateExample(sd, new ExtendedExampleValueAccessor(Integer.toString(i)))); + } + } + return examples; + } + + private org.hl7.fhir.r5.elementmodel.Element generateExample(StructureDefinition profile, ExampleValueAccessor accessor) throws FHIRException { + ElementDefinition ed = profile.getSnapshot().getElementFirstRep(); + org.hl7.fhir.r5.elementmodel.Element r = new org.hl7.fhir.r5.elementmodel.Element(ed.getPath(), new Property(context, ed, profile)); + SourcedChildDefinitions children = getChildMap(profile, ed, true); + for (ElementDefinition child : children.getList()) { + if (child.getPath().endsWith(".id")) { + org.hl7.fhir.r5.elementmodel.Element id = new org.hl7.fhir.r5.elementmodel.Element("id", new Property(context, child, profile)); + id.setValue(profile.getId()+accessor.getId()); + r.getChildren().add(id); + } else { + org.hl7.fhir.r5.elementmodel.Element e = createExampleElement(profile, child, accessor); + if (e != null) + r.getChildren().add(e); + } + } + return r; + } + + private org.hl7.fhir.r5.elementmodel.Element createExampleElement(StructureDefinition profile, ElementDefinition ed, ExampleValueAccessor accessor) throws FHIRException { + DataType v = accessor.getExampleValue(ed); + if (v != null) { + return new ObjectConverter(context).convert(new Property(context, ed, profile), v); + } else { + org.hl7.fhir.r5.elementmodel.Element res = new org.hl7.fhir.r5.elementmodel.Element(tail(ed.getPath()), new Property(context, ed, profile)); + boolean hasValue = false; + SourcedChildDefinitions children = getChildMap(profile, ed, true); + for (ElementDefinition child : children.getList()) { + if (!child.hasContentReference()) { + org.hl7.fhir.r5.elementmodel.Element e = createExampleElement(profile, child, accessor); + if (e != null) { + hasValue = true; + res.getChildren().add(e); + } + } + } + if (hasValue) + return res; + else + return null; + } + } + + private boolean hasAnyExampleValues(StructureDefinition sd, String index) { + for (ElementDefinition ed : sd.getSnapshot().getElement()) + for (Extension ex : ed.getExtension()) { + String ndx = ExtensionUtilities.readStringExtension(ex, "index"); + Extension exv = ExtensionUtilities.getExtension(ex, "exValue"); + if (exv != null) { + DataType value = exv.getValue(); + if (index.equals(ndx) && value != null) + return true; + } + } + return false; + } + + + private boolean hasAnyExampleValues(StructureDefinition sd) { + for (ElementDefinition ed : sd.getSnapshot().getElement()) + if (ed.hasExample()) + return true; + return false; + } + + + public void populateLogicalSnapshot(StructureDefinition sd) throws FHIRException { + sd.getSnapshot().getElement().add(sd.getDifferential().getElementFirstRep().copy()); + + if (sd.hasBaseDefinition()) { + StructureDefinition base = findProfile(sd.getBaseDefinition(), sd); + if (base == null) + throw new FHIRException(context.formatMessage(I18nConstants.UNABLE_TO_FIND_BASE_DEFINITION_FOR_LOGICAL_MODEL__FROM_, sd.getBaseDefinition(), sd.getUrl())); + copyElements(sd, base.getSnapshot().getElement()); + } + copyElements(sd, sd.getDifferential().getElement()); + } + + + private void copyElements(StructureDefinition sd, List list) { + for (ElementDefinition ed : list) { + if (ed.getPath().contains(".")) { + ElementDefinition n = ed.copy(); + n.setPath(sd.getSnapshot().getElementFirstRep().getPath()+"."+ed.getPath().substring(ed.getPath().indexOf(".")+1)); + sd.getSnapshot().addElement(n); + } + } + } + + + public void cleanUpDifferential(StructureDefinition sd) { + if (sd.getDifferential().getElement().size() > 1) + cleanUpDifferential(sd, 1); + } + + private void cleanUpDifferential(StructureDefinition sd, int start) { + int level = Utilities.charCount(sd.getDifferential().getElement().get(start).getPath(), '.'); + int c = start; + int len = sd.getDifferential().getElement().size(); + HashSet paths = new HashSet(); + while (c < len && Utilities.charCount(sd.getDifferential().getElement().get(c).getPath(), '.') == level) { + ElementDefinition ed = sd.getDifferential().getElement().get(c); + if (!paths.contains(ed.getPath())) { + paths.add(ed.getPath()); + int ic = c+1; + while (ic < len && Utilities.charCount(sd.getDifferential().getElement().get(ic).getPath(), '.') > level) + ic++; + ElementDefinition slicer = null; + List slices = new ArrayList(); + slices.add(ed); + while (ic < len && Utilities.charCount(sd.getDifferential().getElement().get(ic).getPath(), '.') == level) { + ElementDefinition edi = sd.getDifferential().getElement().get(ic); + if (ed.getPath().equals(edi.getPath())) { + if (slicer == null) { + slicer = new ElementDefinition(); + slicer.setPath(edi.getPath()); + slicer.getSlicing().setRules(SlicingRules.OPEN); + sd.getDifferential().getElement().add(c, slicer); + c++; + ic++; + } + slices.add(edi); + } + ic++; + while (ic < len && Utilities.charCount(sd.getDifferential().getElement().get(ic).getPath(), '.') > level) + ic++; + } + // now we're at the end, we're going to figure out the slicing discriminator + if (slicer != null) + determineSlicing(slicer, slices); + } + c++; + if (c < len && Utilities.charCount(sd.getDifferential().getElement().get(c).getPath(), '.') > level) { + cleanUpDifferential(sd, c); + c++; + while (c < len && Utilities.charCount(sd.getDifferential().getElement().get(c).getPath(), '.') > level) + c++; + } + } + } + + + private void determineSlicing(ElementDefinition slicer, List slices) { + // first, name them + int i = 0; + for (ElementDefinition ed : slices) { + if (ed.hasUserData(UserDataNames.SNAPSHOT_slice_name)) { + ed.setSliceName(ed.getUserString(UserDataNames.SNAPSHOT_slice_name)); + } else { + i++; + ed.setSliceName("slice-"+Integer.toString(i)); + } + } + // now, the hard bit, how are they differentiated? + // right now, we hard code this... + if (slicer.getPath().endsWith(".extension") || slicer.getPath().endsWith(".modifierExtension")) + slicer.getSlicing().addDiscriminator().setType(DiscriminatorType.VALUE).setPath("url"); + else if (slicer.getPath().equals("DiagnosticReport.result")) + slicer.getSlicing().addDiscriminator().setType(DiscriminatorType.VALUE).setPath("reference.code"); + else if (slicer.getPath().equals("Observation.related")) + slicer.getSlicing().addDiscriminator().setType(DiscriminatorType.VALUE).setPath("target.reference.code"); + else if (slicer.getPath().equals("Bundle.entry")) + slicer.getSlicing().addDiscriminator().setType(DiscriminatorType.VALUE).setPath("resource.@profile"); + else + throw new Error("No slicing for "+slicer.getPath()); + } + + + public static ElementDefinitionSlicingDiscriminatorComponent interpretR2Discriminator(String discriminator, boolean isExists) { + if (discriminator.endsWith("@pattern")) + return makeDiscriminator(DiscriminatorType.PATTERN, discriminator.length() == 8 ? "" : discriminator.substring(0,discriminator.length()-9)); + if (discriminator.endsWith("@profile")) + return makeDiscriminator(DiscriminatorType.PROFILE, discriminator.length() == 8 ? "" : discriminator.substring(0,discriminator.length()-9)); + if (discriminator.endsWith("@type")) + return makeDiscriminator(DiscriminatorType.TYPE, discriminator.length() == 5 ? "" : discriminator.substring(0,discriminator.length()-6)); + if (discriminator.endsWith("@exists")) + return makeDiscriminator(DiscriminatorType.EXISTS, discriminator.length() == 7 ? "" : discriminator.substring(0,discriminator.length()-8)); + if (isExists) + return makeDiscriminator(DiscriminatorType.EXISTS, discriminator); + return new ElementDefinitionSlicingDiscriminatorComponent().setType(DiscriminatorType.VALUE).setPath(discriminator); + } + + + private static ElementDefinitionSlicingDiscriminatorComponent makeDiscriminator(DiscriminatorType dType, String str) { + return new ElementDefinitionSlicingDiscriminatorComponent().setType(dType).setPath(Utilities.noString(str)? "$this" : str); + } + + + public static String buildR2Discriminator(ElementDefinitionSlicingDiscriminatorComponent t) throws FHIRException { + switch (t.getType()) { + case PROFILE: return t.getPath()+"/@profile"; + case PATTERN: return t.getPath()+"/@pattern"; + case TYPE: return t.getPath()+"/@type"; + case VALUE: return t.getPath(); + case EXISTS: return t.getPath(); // determination of value vs. exists is based on whether there's only 2 slices - one with minOccurs=1 and other with maxOccur=0 + default: throw new FHIRException("Unable to represent "+t.getType().toCode()+":"+t.getPath()+" in R2"); + } + } + + + public static StructureDefinition makeExtensionForVersionedURL(IWorkerContext context, String url) { + String epath = url.substring(54); + if (!epath.contains(".")) + return null; + String type = epath.substring(0, epath.indexOf(".")); + StructureDefinition sd = context.fetchTypeDefinition(type); + if (sd == null) + return null; + ElementDefinition ed = null; + for (ElementDefinition t : sd.getSnapshot().getElement()) { + if (t.getPath().equals(epath)) { + ed = t; + break; + } + } + if (ed == null) + return null; + if ("Element".equals(ed.typeSummary()) || "BackboneElement".equals(ed.typeSummary())) { + return null; + } else { + StructureDefinition template = context.fetchResource(StructureDefinition.class, "http://fhir-registry.smarthealthit.org/StructureDefinition/capabilities"); + StructureDefinition ext = template.copy(); + ext.setUrl(url); + ext.setId("extension-"+epath); + ext.setName("Extension-"+epath); + ext.setTitle("Extension for r4 "+epath); + ext.setStatus(sd.getStatus()); + ext.setDate(sd.getDate()); + ext.getContact().clear(); + ext.getContact().addAll(sd.getContact()); + ext.setFhirVersion(sd.getFhirVersion()); + ext.setDescription(ed.getDefinition()); + ext.getContext().clear(); + ext.addContext().setType(ExtensionContextType.ELEMENT).setExpression(epath.substring(0, epath.lastIndexOf("."))); + ext.getDifferential().getElement().clear(); + ext.getSnapshot().getElement().get(3).setFixed(new UriType(url)); + ext.getSnapshot().getElement().set(4, ed.copy()); + ext.getSnapshot().getElement().get(4).setPath("Extension.value"+Utilities.capitalize(ed.typeSummary())); + return ext; + } + + } + + + public boolean isThrowException() { + return wantThrowExceptions; + } + + + public void setThrowException(boolean exception) { + this.wantThrowExceptions = exception; + } + + + public ValidationOptions getTerminologyServiceOptions() { + return terminologyServiceOptions; + } + + + public void setTerminologyServiceOptions(ValidationOptions terminologyServiceOptions) { + this.terminologyServiceOptions = terminologyServiceOptions; + } + + + public boolean isNewSlicingProcessing() { + return newSlicingProcessing; + } + + + public ProfileUtilities setNewSlicingProcessing(boolean newSlicingProcessing) { + this.newSlicingProcessing = newSlicingProcessing; + return this; + } + + + public boolean isDebug() { + return debug; + } + + + public void setDebug(boolean debug) { + this.debug = debug; + } + + + public String getDefWebRoot() { + return defWebRoot; + } + + + public void setDefWebRoot(String defWebRoot) { + this.defWebRoot = defWebRoot; + if (!this.defWebRoot.endsWith("/")) + this.defWebRoot = this.defWebRoot + '/'; + } + + + public static StructureDefinition makeBaseDefinition(FHIRVersion fhirVersion) { + return makeBaseDefinition(fhirVersion.toCode()); + } + public static StructureDefinition makeBaseDefinition(String fhirVersion) { + StructureDefinition base = new StructureDefinition(); + base.setId("Base"); + base.setUrl("http://hl7.org/fhir/StructureDefinition/Base"); + base.setVersion(fhirVersion); + base.setName("Base"); + base.setStatus(PublicationStatus.ACTIVE); + base.setDate(new Date()); + base.setFhirVersion(FHIRVersion.fromCode(fhirVersion)); + base.setKind(StructureDefinitionKind.COMPLEXTYPE); + base.setAbstract(true); + base.setType("Base"); + base.setWebPath("http://build.fhir.org/types.html#Base"); + ElementDefinition e = base.getSnapshot().getElementFirstRep(); + e.setId("Base"); + e.setPath("Base"); + e.setMin(0); + e.setMax("*"); + e.getBase().setPath("Base"); + e.getBase().setMin(0); + e.getBase().setMax("*"); + e.setIsModifier(false); + e = base.getDifferential().getElementFirstRep(); + e.setId("Base"); + e.setPath("Base"); + e.setMin(0); + e.setMax("*"); + return base; + } + + public XVerExtensionManager getXver() { + return xver; + } + + public ProfileUtilities setXver(XVerExtensionManager xver) { + this.xver = xver; + return this; + } + + + private List readChoices(ElementDefinition ed, List children) { + List result = new ArrayList<>(); + for (ElementDefinitionConstraintComponent c : ed.getConstraint()) { + ElementChoiceGroup grp = processConstraint(children, c); + if (grp != null) { + result.add(grp); + } + } + return result; + } + + public ElementChoiceGroup processConstraint(List children, ElementDefinitionConstraintComponent c) { + if (!c.hasExpression()) { + return null; + } + ExpressionNode expr = null; + try { + expr = fpe.parse(c.getExpression()); + } catch (Exception e) { + return null; + } + if (expr.getKind() != Kind.Group || expr.getOpNext() == null || !(expr.getOperation() == Operation.Equals || expr.getOperation() == Operation.LessOrEqual)) { + return null; + } + ExpressionNode n1 = expr.getGroup(); + ExpressionNode n2 = expr.getOpNext(); + if (n2.getKind() != Kind.Constant || n2.getInner() != null || n2.getOpNext() != null || !"1".equals(n2.getConstant().primitiveValue())) { + return null; + } + ElementChoiceGroup grp = new ElementChoiceGroup(c.getKey(), expr.getOperation() == Operation.Equals); + while (n1 != null) { + if (n1.getKind() != Kind.Name || n1.getInner() != null) { + return null; + } + grp.elements.add(n1.getName()); + if (n1.getOperation() == null || n1.getOperation() == Operation.Union) { + n1 = n1.getOpNext(); + } else { + return null; + } + } + int total = 0; + for (String n : grp.elements) { + boolean found = false; + for (ElementDefinition child : children) { + String name = tail(child.getPath()); + if (n.equals(name)) { + found = true; + if (!"0".equals(child.getMax())) { + total++; + } + } + } + if (!found) { + return null; + } + } + if (total <= 1) { + return null; + } + return grp; + } + + public Set getMasterSourceFileNames() { + return masterSourceFileNames; + } + + public void setMasterSourceFileNames(Set masterSourceFileNames) { + this.masterSourceFileNames = masterSourceFileNames; + } + + + public Set getLocalFileNames() { + return localFileNames; + } + + public void setLocalFileNames(Set localFileNames) { + this.localFileNames = localFileNames; + } + + public ProfileKnowledgeProvider getPkp() { + return pkp; + } + + + public static final String UD_ERROR_STATUS = "error-status"; + public static final int STATUS_OK = 0; + public static final int STATUS_HINT = 1; + public static final int STATUS_WARNING = 2; + public static final int STATUS_ERROR = 3; + public static final int STATUS_FATAL = 4; + private static final String ROW_COLOR_ERROR = "#ffcccc"; + private static final String ROW_COLOR_FATAL = "#ff9999"; + private static final String ROW_COLOR_WARNING = "#ffebcc"; + private static final String ROW_COLOR_HINT = "#ebf5ff"; + private static final String ROW_COLOR_NOT_MUST_SUPPORT = "#d6eaf8"; + + public String getRowColor(ElementDefinition element, boolean isConstraintMode) { + switch (element.getUserInt(UD_ERROR_STATUS)) { + case STATUS_HINT: return ROW_COLOR_HINT; + case STATUS_WARNING: return ROW_COLOR_WARNING; + case STATUS_ERROR: return ROW_COLOR_ERROR; + case STATUS_FATAL: return ROW_COLOR_FATAL; + } + if (isConstraintMode && !element.getMustSupport() && !element.getIsModifier() && element.getPath().contains(".")) + return null; // ROW_COLOR_NOT_MUST_SUPPORT; + else + return null; + } + + public static boolean isExtensionDefinition(StructureDefinition sd) { + return sd.getDerivation() == TypeDerivationRule.CONSTRAINT && sd.getType().equals("Extension"); + } + + public AllowUnknownProfile getAllowUnknownProfile() { + return allowUnknownProfile; + } + + public void setAllowUnknownProfile(AllowUnknownProfile allowUnknownProfile) { + this.allowUnknownProfile = allowUnknownProfile; + } + + public static boolean isSimpleExtension(StructureDefinition sd) { + if (!isExtensionDefinition(sd)) { + return false; + } + ElementDefinition value = sd.getSnapshot().getElementByPath("Extension.value"); + return value != null && !value.isProhibited(); + } + + public static boolean isComplexExtension(StructureDefinition sd) { + if (!isExtensionDefinition(sd)) { + return false; + } + ElementDefinition value = sd.getSnapshot().getElementByPath("Extension.value"); + return value == null || value.isProhibited(); + } + + public static boolean isModifierExtension(StructureDefinition sd) { + ElementDefinition defn = sd.getSnapshot().hasElement() ? sd.getSnapshot().getElementByPath("Extension") : sd.getDifferential().getElementByPath("Extension"); + return defn != null && defn.getIsModifier(); + } + + public boolean isForPublication() { + return forPublication; + } + + public void setForPublication(boolean forPublication) { + this.forPublication = forPublication; + } + + public List getMessages() { + return messages; + } + + public static boolean isResourceBoundary(ElementDefinition ed) { + return ed.getType().size() == 1 && "Resource".equals(ed.getTypeFirstRep().getCode()); + } + + public static boolean isSuppressIgnorableExceptions() { + return suppressIgnorableExceptions; + } + + public static void setSuppressIgnorableExceptions(boolean suppressIgnorableExceptions) { + ProfileUtilities.suppressIgnorableExceptions = suppressIgnorableExceptions; + } + + public void setMessages(List messages) { + if (messages != null) { + this.messages = messages; + wantThrowExceptions = false; + } + } + + private Map> propertyCache = new HashMap<>(); + + public Map> getCachedPropertyList() { + return propertyCache; + } + + public void checkExtensions(ElementDefinition outcome) { + outcome.getExtension().removeIf(ext -> Utilities.existsInList(ext.getUrl(), ProfileUtilities.NON_INHERITED_ED_URLS)); + if (outcome.hasBinding()) { + outcome.getBinding().getExtension().removeIf(ext -> Utilities.existsInList(ext.getUrl(), ProfileUtilities.NON_INHERITED_ED_URLS)); + } + + } + + public static void markExtensions(ElementDefinition ed, boolean overrideSource, StructureDefinition src) { + for (Extension ex : ed.getExtension()) { + markExtensionSource(ex, overrideSource, src); + } + for (Extension ex : ed.getBinding().getExtension()) { + markExtensionSource(ex, overrideSource, src); + } + for (TypeRefComponent t : ed.getType()) { + for (Extension ex : t.getExtension()) { + markExtensionSource(ex, overrideSource, src); + } + } + } + + public static boolean hasObligations(StructureDefinition sd) { + if (sd.hasExtension(ExtensionDefinitions.EXT_OBLIGATION_CORE)) { + return true; + } + for (ElementDefinition ed : sd.getSnapshot().getElement()) { + if (ed.hasExtension(ExtensionDefinitions.EXT_OBLIGATION_CORE)) { + return true; + } + for (TypeRefComponent tr : ed.getType()) { + if (tr.hasExtension(ExtensionDefinitions.EXT_OBLIGATION_CORE)) { + return true; + } + } + } + return false; + } + + public List getSuppressedMappings() { + return suppressedMappings; + } + + public void setSuppressedMappings(List suppressedMappings) { + this.suppressedMappings = suppressedMappings; + } + + public static String getCSUrl(StructureDefinition profile) { + if (profile.hasExtension(ExtensionDefinitions.EXT_SD_CS_URL)) { + return ExtensionUtilities.readStringExtension(profile, ExtensionDefinitions.EXT_SD_CS_URL); + } else { + return profile.getUrl()+"?codesystem"; + } + } + + public static String getUrlFromCSUrl(String url) { + if (url == null) { + return null; + } + if (url.endsWith("?codesystem")) { + return url.replace("?codesystem", ""); + } else { + return null; + } + } + + public FHIRPathEngine getFpe() { + return fpe; + } + +} diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/r5/context/BaseWorkerContext.java b/matchbox-engine/src/main/java/org/hl7/fhir/r5/context/BaseWorkerContext.java index 7cab0666ab8..8d21903c403 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/r5/context/BaseWorkerContext.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/r5/context/BaseWorkerContext.java @@ -48,8 +48,10 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS import java.util.Map; import java.util.Set; import java.util.UUID; +import java.util.concurrent.atomic.AtomicReference; import lombok.Getter; +import lombok.Setter; import lombok.extern.slf4j.Slf4j; import javax.annotation.Nonnull; @@ -124,15 +126,11 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS import org.hl7.fhir.r5.terminologies.client.TerminologyClientR5; import org.hl7.fhir.r5.terminologies.expansion.ValueSetExpander; import org.hl7.fhir.r5.terminologies.expansion.ValueSetExpansionOutcome; -import org.hl7.fhir.r5.terminologies.utilities.CodingValidationRequest; -import org.hl7.fhir.r5.terminologies.utilities.TerminologyCache; +import org.hl7.fhir.r5.terminologies.utilities.*; import org.hl7.fhir.r5.terminologies.utilities.TerminologyCache.CacheToken; import org.hl7.fhir.r5.terminologies.utilities.TerminologyCache.SourcedCodeSystem; import org.hl7.fhir.r5.terminologies.utilities.TerminologyCache.SourcedValueSet; -import org.hl7.fhir.r5.terminologies.utilities.TerminologyOperationContext; import org.hl7.fhir.r5.terminologies.utilities.TerminologyOperationContext.TerminologyServiceProtectionException; -import org.hl7.fhir.r5.terminologies.utilities.TerminologyServiceErrorClass; -import org.hl7.fhir.r5.terminologies.utilities.ValidationResult; import org.hl7.fhir.r5.terminologies.validation.VSCheckerException; import org.hl7.fhir.r5.terminologies.validation.ValueSetValidator; import org.hl7.fhir.r5.utils.PackageHackerR5; @@ -156,9 +154,10 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS @Slf4j @MarkedToMoveToAdjunctPackage -public abstract class BaseWorkerContext extends I18nBase implements IWorkerContext { +public abstract class BaseWorkerContext extends I18nBase implements IWorkerContext, IWorkerContextManager, IOIDServices { private static boolean allowedToIterateTerminologyResources; + public interface IByteProvider { byte[] bytes() throws IOException; } @@ -288,7 +287,7 @@ public int compare(T arg1, T arg2) { } } - private Object lock = new Object(); // used as a lock for the data that follows + private final Object lock = new Object(); // used as a lock for the data that follows protected String version; // although the internal resources are all R5, the version of FHIR they describe may not be private boolean minimalMemory = false; @@ -322,11 +321,13 @@ public int compare(T arg1, T arg2) { private UcumService ucumService; protected Map binaries = new HashMap(); - protected Map> oidCacheManual = new HashMap<>(); + protected Map> oidCacheManual = new HashMap<>(); protected List oidSources = new ArrayList<>(); protected Map> validationCache = new HashMap>(); protected String name; + @Setter + @Getter private boolean allowLoadingDuplicates; private final Set codeSystemsUsed = new HashSet<>(); @@ -336,7 +337,7 @@ public int compare(T arg1, T arg2) { private int expandCodesLimit = 1000; protected org.hl7.fhir.r5.context.ILoggingService logger = new Slf4JLoggingService(log); protected final TerminologyClientManager terminologyClientManager = new TerminologyClientManager(new TerminologyClientR5.TerminologyClientR5Factory(), UUID.randomUUID().toString(), logger); - protected Parameters expParameters; + protected AtomicReference expansionParameters = new AtomicReference<>(null); private Map packages = new HashMap<>(); @Getter @@ -347,8 +348,8 @@ public int compare(T arg1, T arg2) { protected String userAgent; protected ContextUtilities cutils; private List suppressedMappings; - - // matchbox patch https://github.com/ahdis/matchbox/issues/425 + + // matchbox patch https://github.com/ahdis/matchbox/issues/425 private Locale locale; protected BaseWorkerContext() throws FileNotFoundException, IOException, FHIRException { @@ -422,7 +423,7 @@ protected void copy(BaseWorkerContext other) { txCache = other.txCache; // no copy. for now? expandCodesLimit = other.expandCodesLimit; logger = other.logger; - expParameters = other.expParameters != null ? other.expParameters.copy() : null; + expansionParameters = other.expansionParameters != null ? new AtomicReference<>(other.copyExpansionParametersWithUserData()) : null; version = other.version; supportedCodeSystems.putAll(other.supportedCodeSystems); unsupportedCodeSystems.addAll(other.unsupportedCodeSystems); @@ -439,8 +440,8 @@ protected void copy(BaseWorkerContext other) { cachingAllowed = other.cachingAllowed; suppressedMappings = other.suppressedMappings; cutils.setSuppressedMappings(other.suppressedMappings); - locale = other.locale; - } + locale = other.locale; // matchbox patch https://github.com/ahdis/matchbox/issues/425 + } } @@ -543,7 +544,7 @@ public void registerResourceFromPackage(CanonicalResourceProxy r, PackageInforma } public void cacheResourceFromPackage(Resource r, PackageInformation packageInfo) throws FHIRException { - + synchronized (lock) { if (packageInfo != null) { packages.put(packageInfo.getVID(), packageInfo); @@ -603,7 +604,7 @@ public void cacheResourceFromPackage(Resource r, PackageInformation packageInfo) if (!oidCacheManual.containsKey(s)) { oidCacheManual.put(s, new HashSet<>()); } - oidCacheManual.get(s).add(new OIDDefinition(r.fhirType(), s, url, ((CanonicalResource) r).getVersion(), null, null)); + oidCacheManual.get(s).add(new IOIDServices.OIDDefinition(r.fhirType(), s, url, ((CanonicalResource) r).getVersion(), null, null)); } } } @@ -616,18 +617,21 @@ public void cacheResourceFromPackage(Resource r, PackageInformation packageInfo) if (Utilities.existsInList(url, "http://hl7.org/fhir/SearchParameter/example")) { return; } - // matchbox patch for duplicate resources, see https://github.com/ahdis/matchbox/issues/227 - // org.hl7.fhir.r5.conformance.R5ExtensionsLoader.loadR5SpecialTypes(R5ExtensionsLoader.java:141) + // matchbox patch for duplicate resources, see https://github.com/ahdis/matchbox/issues/227 and issues/452 CanonicalResource ex = fetchResourceWithException(m.fhirType(), url); - if (ex.getVersion() != null && m.getVersion() != null && laterVersion(m.getVersion(), ex.getVersion())) { + boolean forceDrop = false; + if (url.startsWith("http://terminology.hl7.org/") && ex.getVersion()!=null && ex.getSourcePackage()!=null && ex.getVersion().equals(ex.getSourcePackage().getVersion()) ) { + forceDrop = true; + } + if (forceDrop || (ex.getVersion() != null && m.getVersion() != null && laterVersion(m.getVersion(), ex.getVersion()))) { logger.logDebugMessage(LogCategory.INIT, - "Note replacing old version: " + "Note replacing existing version (is older): " + formatMessage(I18nConstants.DUPLICATE_RESOURCE_, url, - m.getVersion(), ex.getVersion(), ex.fhirType())); + m.getVersion(), ex.getVersion(), ex.fhirType()) + (forceDrop ? "forced" : "")); dropResource(ex); } else { logger.logDebugMessage(LogCategory.INIT, - "Note keeping newer version: " + "Note keeping existing version (is newer): " + formatMessage(I18nConstants.DUPLICATE_RESOURCE_, url, m.getVersion(), @@ -802,11 +806,6 @@ protected void seeMetadataResource(T r, Map supplements = codeSystems.getSupplements(cs); if (supplements.size() > 0) { @@ -886,16 +876,12 @@ public CodeSystem fetchSupplementedCodeSystem(String system, String version) { return cs; } - @Override - public SystemSupportInformation getTxSupportInfo(String system) throws TerminologyServiceException { - return getTxSupportInfo(system, null); - } @Override public SystemSupportInformation getTxSupportInfo(String system, String version) throws TerminologyServiceException { synchronized (lock) { String vurl = CanonicalType.urlWithVersion(system, version); if (codeSystems.has(vurl) && codeSystems.get(vurl).getContent() != CodeSystemContentMode.NOTPRESENT) { - return new SystemSupportInformation(true, "internal", TerminologyClientContext.LATEST_VERSION); + return new SystemSupportInformation(true, "internal", TerminologyClientContext.LATEST_VERSION, null); } else if (supportedCodeSystems.containsKey(vurl)) { return supportedCodeSystems.get(vurl); } else if (system.startsWith("http://example.org") || system.startsWith("http://acme.com") || system.startsWith("http://hl7.org/fhir/valueset-") || system.startsWith("urn:oid:")) { @@ -907,7 +893,7 @@ public SystemSupportInformation getTxSupportInfo(String system, String version) if (terminologyClientManager != null) { try { TerminologyClientContext client = terminologyClientManager.chooseServer(null, Set.of(vurl), false); - supportedCodeSystems.put(vurl, new SystemSupportInformation(client.supportsSystem(vurl), client.getAddress(), client.getTxTestVersion())); + supportedCodeSystems.put(vurl, new SystemSupportInformation(client.supportsSystem(vurl), client.getAddress(), client.getTxTestVersion(), client.supportsSystem(vurl) ? null : "The server does not support this code system")); } catch (Exception e) { if (canRunWithoutTerminology) { noTerminologyServer = true; @@ -932,24 +918,6 @@ public SystemSupportInformation getTxSupportInfo(String system, String version) } } - @Override - public boolean supportsSystem(String system) throws TerminologyServiceException { - SystemSupportInformation si = getTxSupportInfo(system); - return si.isSupported(); - } - - @Override - public boolean supportsSystem(String system, FhirPublication fhirVersion) throws TerminologyServiceException { - SystemSupportInformation si = getTxSupportInfo(system); - return si.isSupported(); - } - - public boolean isServerSideSystem(String url) { - boolean check = supportsSystem(url); - return check && supportedCodeSystems.containsKey(url); - } - - protected void txLog(String msg) { if (tlogging ) { logger.logDebugMessage(LogCategory.TX, msg); @@ -969,22 +937,20 @@ public void setExpandCodesLimit(int expandCodesLimit) { @Override public ValueSetExpansionOutcome expandVS(Resource src, ElementDefinitionBindingComponent binding, boolean cacheOk, boolean heirarchical) throws FHIRException { ValueSet vs = null; - vs = fetchResource(ValueSet.class, binding.getValueSet(), src); + vs = fetchResource(ValueSet.class, binding.getValueSet(), null, src); if (vs == null) { throw new FHIRException(formatMessage(I18nConstants.UNABLE_TO_RESOLVE_VALUE_SET_, binding.getValueSet())); } return expandVS(vs, cacheOk, heirarchical); } - - @Override - public ValueSetExpansionOutcome expandVS(ITerminologyOperationDetails opCtxt, ConceptSetComponent inc, boolean hierarchical, boolean noInactive) throws TerminologyServiceException { + public ValueSetExpansionOutcome expandVS(ValueSetProcessBase.TerminologyOperationDetails opCtxt, ConceptSetComponent inc, boolean hierarchical, boolean noInactive) throws TerminologyServiceException { ValueSet vs = new ValueSet(); vs.setStatus(PublicationStatus.ACTIVE); vs.setCompose(new ValueSetComposeComponent()); vs.getCompose().setInactive(!noInactive); vs.getCompose().getInclude().add(inc); - CacheToken cacheToken = txCache.generateExpandToken(vs, hierarchical); + CacheToken cacheToken = txCache.generateExpandToken(vs, new ExpansionOptions().withHierarchical(hierarchical)); ValueSetExpansionOutcome res; res = txCache.getExpansion(cacheToken); if (res != null) { @@ -1031,44 +997,43 @@ public ValueSetExpansionOutcome expandVS(ITerminologyOperationDetails opCtxt, Co @Override public ValueSetExpansionOutcome expandVS(ValueSet vs, boolean cacheOk, boolean heirarchical) { - if (expParameters == null) + if (expansionParameters.get() == null) throw new Error(formatMessage(I18nConstants.NO_EXPANSION_PARAMETERS_PROVIDED)); - Parameters p = expParameters.copy(); - return expandVS(vs, cacheOk, heirarchical, false, p); + return expandVS(vs, cacheOk, heirarchical, false, getExpansionParameters()); } @Override public ValueSetExpansionOutcome expandVS(ValueSet vs, boolean cacheOk, boolean heirarchical, int count) { - if (expParameters == null) + if (expansionParameters.get() == null) throw new Error(formatMessage(I18nConstants.NO_EXPANSION_PARAMETERS_PROVIDED)); - Parameters p = expParameters.copy(); + Parameters p = getExpansionParameters(); p.addParameter("count", count); return expandVS(vs, cacheOk, heirarchical, false, p); } @Override - public ValueSetExpansionOutcome expandVS(String url, boolean cacheOk, boolean hierarchical, int count) { - if (expParameters == null) + public ValueSetExpansionOutcome expandVS(ExpansionOptions options, String url) { + if (expansionParameters.get() == null) throw new Error(formatMessage(I18nConstants.NO_EXPANSION_PARAMETERS_PROVIDED)); if (noTerminologyServer) { return new ValueSetExpansionOutcome(formatMessage(I18nConstants.ERROR_EXPANDING_VALUESET_RUNNING_WITHOUT_TERMINOLOGY_SERVICES), TerminologyServiceErrorClass.NOSERVICE, null, false); } - Parameters p = expParameters.copy(); - p.addParameter("count", count); + Parameters p = getExpansionParameters(); + p.addParameter("count", options.getMaxCount()); p.addParameter("url", new UriType(url)); p.setParameter("_limit",new IntegerType("10000")); p.setParameter("_incomplete", new BooleanType("true")); - CacheToken cacheToken = txCache.generateExpandToken(url, hierarchical); + CacheToken cacheToken = txCache.generateExpandToken(url, options); ValueSetExpansionOutcome res; - if (cacheOk) { + if (options.isCacheOk()) { res = txCache.getExpansion(cacheToken); if (res != null) { return res; } } - p.setParameter("excludeNested", !hierarchical); + p.setParameter("excludeNested", !options.isHierarchical()); List allErrors = new ArrayList<>(); p.addParameter().setName("cache-id").setValue(new IdType(terminologyClientManager.getCacheId())); @@ -1099,19 +1064,15 @@ public ValueSetExpansionOutcome expandVS(String url, boolean cacheOk, boolean hi return res; } - @Override - public ValueSetExpansionOutcome expandVS(ValueSet vs, boolean cacheOk, boolean heirarchical, boolean incompleteOk) { - if (expParameters == null) - throw new Error(formatMessage(I18nConstants.NO_EXPANSION_PARAMETERS_PROVIDED)); - Parameters p = expParameters.copy(); - return expandVS(vs, cacheOk, heirarchical, incompleteOk, p); + public ValueSetExpansionOutcome expandVS(ValueSet vs, boolean cacheOk, boolean hierarchical, boolean incompleteOk, Parameters pIn) { + return expandVS(new ExpansionOptions(cacheOk, hierarchical, 0, incompleteOk, null), vs, pIn, false); } - public ValueSetExpansionOutcome expandVS(ValueSet vs, boolean cacheOk, boolean hierarchical, boolean incompleteOk, Parameters pIn) { - return expandVS(vs, cacheOk, hierarchical, incompleteOk, pIn, false); + public ValueSetExpansionOutcome expandVS(ExpansionOptions options, ValueSet vs) { + return expandVS(options, vs, getExpansionParameters(), false); } - - public ValueSetExpansionOutcome expandVS(ValueSet vs, boolean cacheOk, boolean hierarchical, boolean incompleteOk, Parameters pIn, boolean noLimits) { + + public ValueSetExpansionOutcome expandVS(ExpansionOptions options, ValueSet vs, Parameters pIn, boolean noLimits) { if (pIn == null) { throw new Error(formatMessage(I18nConstants.NO_PARAMETERS_PROVIDED_TO_EXPANDVS)); } @@ -1119,9 +1080,43 @@ public ValueSetExpansionOutcome expandVS(ValueSet vs, boolean cacheOk, boolean h return new ValueSetExpansionOutcome("This value set is not expanded correctly at this time (will be fixed in a future version)", TerminologyServiceErrorClass.VALUESET_UNSUPPORTED, false); } - Parameters p = pIn.copy(); + Parameters p = getExpansionParameters(); // it's already a copy + if (p == null) { + p = new Parameters(); + } + for (ParametersParameterComponent pp : pIn.getParameter()) { + if (Utilities.existsInList(pp.getName(), "designation", "filterProperty", "useSupplement", "property", "tx-resource")) { + // these parameters are additive + p.getParameter().add(pp.copy()); + } else { + ParametersParameterComponent existing = null; + if (Utilities.existsInList(pp.getName(), "system-version", "check-system-version", "force-system-version", + "default-valueset-version", "check-valueset-version", "force-valueset-version") && pp.hasValue() && pp.getValue().isPrimitive()) { + String url = pp.getValue().primitiveValue(); + if (url.contains("|")) { + url = url.substring(0, url.indexOf("|") + 1); + } + for (ParametersParameterComponent t : p.getParameter()) { + if (pp.getName().equals(t.getName()) && t.hasValue() && t.getValue().isPrimitive() && t.getValue().primitiveValue().startsWith(url)) { + existing = t; + break; + } + } + } else { + existing = p.getParameter(pp.getName()); + } + if (existing != null) { + existing.setValue(pp.getValue()); + } else { + p.getParameter().add(pp.copy()); + } + } + } p.setParameter("_limit",new IntegerType("10000")); p.setParameter("_incomplete", new BooleanType("true")); + if (options.hasLanguage()) { + p.setParameter("displayLanguage", new CodeType(options.getLanguage())); + } if (vs.hasExpansion()) { return new ValueSetExpansionOutcome(vs.copy()); } @@ -1139,28 +1134,29 @@ public ValueSetExpansionOutcome expandVS(ValueSet vs, boolean cacheOk, boolean h } } - CacheToken cacheToken = txCache.generateExpandToken(vs, hierarchical); + if (!noLimits && !p.hasParameter("count")) { + p.addParameter("count", expandCodesLimit); + p.addParameter("offset", 0); + } + p.setParameter("excludeNested", !options.isHierarchical()); + if (options.isIncompleteOk()) { + p.setParameter("incomplete-ok", true); + } + + CacheToken cacheToken = txCache.generateExpandToken(vs, options); ValueSetExpansionOutcome res; - if (cacheOk) { + if (options.isCacheOk()) { res = txCache.getExpansion(cacheToken); if (res != null) { return res; } } - if (!noLimits && !p.hasParameter("count")) { - p.addParameter("count", expandCodesLimit); - p.addParameter("offset", 0); - } - p.setParameter("excludeNested", !hierarchical); - if (incompleteOk) { - p.setParameter("incomplete-ok", true); - } - List allErrors = new ArrayList<>(); // ok, first we try to expand locally ValueSetExpander vse = constructValueSetExpanderSimple(new ValidationOptions(vs.getFHIRPublicationVersion())); + vse.setNoTerminologyServer(noTerminologyServer); res = null; try { res = vse.expand(vs, p); @@ -1261,7 +1257,7 @@ public void validateCodeBatch(ValidationOptions options, List set, ConceptSetComponent inc) { ValueSet vs = fetchResource(ValueSet.class, u.getValue()); if (vs != null) { findRelevantSystems(set, vs); + } else if (u.getValue() != null && u.getValue().startsWith("http://snomed.info/sct")) { + set.add("http://snomed.info/sct"); + } else if (u.getValue() != null && u.getValue().startsWith("http://loinc.org")) { + set.add("http://loinc.org"); } else { set.add(TerminologyClientManager.UNRESOLVED_VALUESET); } @@ -1944,11 +1944,11 @@ protected ValidationResult validateOnServer2(TerminologyClientContext tc, ValueS return processValidationResult(pOut, vs == null ? null : vs.getUrl(), tc.getClient().getAddress()); } - protected void addServerValidationParameters(ITerminologyOperationDetails opCtxt, TerminologyClientContext terminologyClientContext, ValueSet vs, Parameters pin, ValidationOptions options) { + protected void addServerValidationParameters(ValueSetProcessBase.TerminologyOperationDetails opCtxt, TerminologyClientContext terminologyClientContext, ValueSet vs, Parameters pin, ValidationOptions options) { addServerValidationParameters(opCtxt, terminologyClientContext, vs, pin, options, null); } - protected void addServerValidationParameters(ITerminologyOperationDetails opCtxt, TerminologyClientContext terminologyClientContext, ValueSet vs, Parameters pin, ValidationOptions options, Set systems) { + protected void addServerValidationParameters(ValueSetProcessBase.TerminologyOperationDetails opCtxt, TerminologyClientContext terminologyClientContext, ValueSet vs, Parameters pin, ValidationOptions options, Set systems) { boolean cache = false; if (vs != null) { if (terminologyClientContext != null && terminologyClientContext.isTxCaching() && terminologyClientContext.getCacheId() != null && vs.getUrl() != null && terminologyClientContext.getCached().contains(vs.getUrl()+"|"+ vs.getVersion())) { @@ -1982,11 +1982,11 @@ protected void addServerValidationParameters(ITerminologyOperationDetails opCtxt throw new Error(formatMessage(I18nConstants.CAN_ONLY_SPECIFY_PROFILE_IN_THE_CONTEXT)); } } - if (expParameters == null) { + if (expansionParameters.get() == null) { throw new Error(formatMessage(I18nConstants.NO_EXPANSIONPROFILE_PROVIDED)); } String defLang = null; - for (ParametersParameterComponent pp : expParameters.getParameter()) { + for (ParametersParameterComponent pp : expansionParameters.get().getParameter()) { if ("defaultDisplayLanguage".equals(pp.getName())) { defLang = pp.getValue().primitiveValue(); } else if (!pin.hasParameter(pp.getName())) { @@ -2005,7 +2005,7 @@ protected void addServerValidationParameters(ITerminologyOperationDetails opCtxt pin.addParameter("diagnostics", true); } - private boolean addDependentResources(ITerminologyOperationDetails opCtxt, TerminologyClientContext tc, Parameters pin, ValueSet vs) { + private boolean addDependentResources(ValueSetProcessBase.TerminologyOperationDetails opCtxt, TerminologyClientContext tc, Parameters pin, ValueSet vs) { boolean cache = false; for (ConceptSetComponent inc : vs.getCompose().getInclude()) { cache = addDependentResources(opCtxt, tc, pin, inc, vs) || cache; @@ -2016,10 +2016,10 @@ private boolean addDependentResources(ITerminologyOperationDetails opCtxt, Termi return cache; } - private boolean addDependentResources(ITerminologyOperationDetails opCtxt, TerminologyClientContext tc, Parameters pin, ConceptSetComponent inc, Resource src) { + private boolean addDependentResources(ValueSetProcessBase.TerminologyOperationDetails opCtxt, TerminologyClientContext tc, Parameters pin, ConceptSetComponent inc, Resource src) { boolean cache = false; for (CanonicalType c : inc.getValueSet()) { - ValueSet vs = fetchResource(ValueSet.class, c.getValue(), src); + ValueSet vs = fetchResource(ValueSet.class, c.getValue(), null, src); if (vs != null && !hasCanonicalResource(pin, "tx-resource", vs.getVUrl())) { cache = checkAddToParams(tc, pin, vs) || cache; addDependentResources(opCtxt, tc, pin, vs); @@ -2042,9 +2042,9 @@ private boolean addDependentResources(ITerminologyOperationDetails opCtxt, Termi return cache; } - public boolean addDependentCodeSystem(ITerminologyOperationDetails opCtxt, TerminologyClientContext tc, Parameters pin, String sys, Resource src) { + public boolean addDependentCodeSystem(ValueSetProcessBase.TerminologyOperationDetails opCtxt, TerminologyClientContext tc, Parameters pin, String sys, Resource src) { boolean cache = false; - CodeSystem cs = fetchResource(CodeSystem.class, sys, src); + CodeSystem cs = fetchResource(CodeSystem.class, sys, null, src); if (cs != null && !hasCanonicalResource(pin, "tx-resource", cs.getVUrl()) && (cs.getContent() == CodeSystemContentMode.COMPLETE || cs.getContent() == CodeSystemContentMode.FRAGMENT)) { cache = checkAddToParams(tc, pin, cs) || cache; } @@ -2137,6 +2137,7 @@ public ValidationResult processValidationResult(Parameters pOut, String vs, Stri String version = null; boolean inactive = false; String status = null; + String diagnostics = null; List issues = new ArrayList<>(); Set unknownSystems = new HashSet<>(); @@ -2155,6 +2156,8 @@ public ValidationResult processValidationResult(Parameters pOut, String vs, Stri version = ((PrimitiveType) p.getValue()).asStringValue(); } else if (p.getName().equals("code")) { code = ((PrimitiveType) p.getValue()).asStringValue(); + } else if (p.getName().equals("diagnostics")) { + diagnostics = ((PrimitiveType) p.getValue()).asStringValue(); } else if (p.getName().equals("inactive")) { inactive = "true".equals(((PrimitiveType) p.getValue()).asStringValue()); } else if (p.getName().equals("status")) { @@ -2248,6 +2251,7 @@ public ValidationResult processValidationResult(Parameters pOut, String vs, Stri res.setUnknownSystems(unknownSystems); res.setServer(server); res.setParameters(pOut); + res.setDiagnostics(diagnostics); return res; } @@ -2292,13 +2296,22 @@ public void setLogger(@Nonnull org.hl7.fhir.r5.context.ILoggingService logger) { getTxClientManager().setLogger(logger); } + /** + * Returns a copy of the expansion parameters used by this context. Note that because the return value is a copy, any + * changes done to it will not be reflected in the context and any changes to the context will likewise not be + * reflected in the return value after it is returned. If you need to change the expansion parameters, use + * {@link #setExpansionParameters(Parameters)}. + * + * @return a copy of the expansion parameters + */ public Parameters getExpansionParameters() { - return expParameters; + final Parameters parameters = expansionParameters.get(); + return parameters == null ? null : parameters.copy(); } - public void setExpansionParameters(Parameters expParameters) { - this.expParameters = expParameters; - this.terminologyClientManager.setExpansionParameters(expParameters); + public void setExpansionParameters(Parameters expansionParameters) { + this.expansionParameters.set(expansionParameters); + this.terminologyClientManager.setExpansionParameters(expansionParameters); } @Override @@ -2334,17 +2347,9 @@ public Set getResourceNamesAsSet() { return res; } - public boolean isAllowLoadingDuplicates() { - return allowLoadingDuplicates; - } - - public void setAllowLoadingDuplicates(boolean allowLoadingDuplicates) { - this.allowLoadingDuplicates = allowLoadingDuplicates; - } - @Override public T fetchResourceWithException(Class class_, String uri) throws FHIRException { - return fetchResourceWithException(class_, uri, null); + return fetchResourceWithException(class_, uri, null, null); } public T fetchResourceWithException(String cls, String uri) throws FHIRException { @@ -2355,8 +2360,8 @@ public T fetchResourceByVersionWithException(Class class return fetchResourceWithExceptionByVersion(class_, uri, version, null); } - public T fetchResourceWithException(Class class_, String uri, Resource sourceForReference) throws FHIRException { - return fetchResourceWithExceptionByVersion(class_, uri, null, sourceForReference); + public T fetchResourceWithException(Class class_, String uri, String version, Resource sourceForReference) throws FHIRException { + return fetchResourceWithExceptionByVersion(class_, uri, version, sourceForReference); } @SuppressWarnings("unchecked") @@ -2943,29 +2948,23 @@ public Resource fetchResourceById(String type, String uri) { } } - public T fetchResource(Class class_, String uri, Resource sourceForReference) { + public T fetchResource(Class class_, String uri, String version, Resource sourceForReference) { try { - return fetchResourceWithException(class_, uri, sourceForReference); + return fetchResourceWithException(class_, uri, version, sourceForReference); } catch (FHIRException e) { throw new Error(e); } } - public T fetchResource(Class class_, String uri, FhirPublication fhirVersion) { - return fetchResource(class_, uri); - } - + public T fetchResource(Class class_, String uri) { try { - return fetchResourceWithException(class_, uri, null); + return fetchResourceWithException(class_, uri, null, null); } catch (FHIRException e) { throw new Error(e); } } - public T fetchResource(Class class_, String uri, String version, FhirPublication fhirVersion) { - return fetchResource(class_, uri, version); - } public T fetchResource(Class class_, String uri, String version) { try { return fetchResourceWithExceptionByVersion(class_, uri, version, null); @@ -3007,26 +3006,9 @@ public boolean hasResourceVersion(String cls, String uri, S } } - @Override - public boolean hasResource(Class class_, String uri, String fhirVersion) { + public boolean hasResource(Class class_, String uri, String version, Resource sourceForReference) { try { - return fetchResourceByVersionWithException(class_, uri, fhirVersion) != null; - } catch (Exception e) { - return false; - } - } - - public boolean hasResource(String cls, String uri, FhirPublication fhirVersion) { - try { - return fetchResourceWithException(cls, uri) != null; - } catch (Exception e) { - return false; - } - } - - public boolean hasResourceVersion(Class class_, String uri, String version, FhirPublication fhirVersion) { - try { - return fetchResourceWithExceptionByVersion(class_, uri, version, null) != null; + return fetchResourceWithExceptionByVersion(class_, uri, version, sourceForReference) != null; } catch (Exception e) { return false; } @@ -3156,11 +3138,27 @@ public List listMaps() { } return m; } - + public List listStructures() { List m = new ArrayList(); synchronized (lock) { - structures.listAll(m); + structures.listAll(m); + } + return m; + } + + public List listValueSets() { + List m = new ArrayList(); + synchronized (lock) { + valueSets.listAll(m); + } + return m; + } + + public List listCodeSystems() { + List m = new ArrayList(); + synchronized (lock) { + codeSystems.listAll(m); } return m; } @@ -3252,12 +3250,6 @@ public List fetchTypeDefinitions(String typeName) { return typeManager.getDefinitions(typeName); } - @Override - public List fetchTypeDefinitions(String typeName, FhirPublication fhirVersion) { - return typeManager.getDefinitions(typeName); - } - - public boolean isPrimitiveType(String type) { return typeManager.isPrimitive(type); } @@ -3387,6 +3379,7 @@ public void finishLoading(boolean genSnapshots) { if (!hasResource(StructureDefinition.class, "http://hl7.org/fhir/StructureDefinition/Base")) { cacheResource(ProfileUtilities.makeBaseDefinition(version)); } + new CoreVersionPinner(this).pinCoreVersions(listCodeSystems(), listValueSets(), listStructures()); if(genSnapshots) { for (StructureDefinition sd : listStructures()) { try { @@ -3512,16 +3505,16 @@ public void setCachingAllowed(boolean cachingAllowed) { } @Override - public OIDSummary urlsForOid(String oid, String resourceType) { - OIDSummary set = urlsForOid(oid, resourceType, true); + public IOIDServices.OIDSummary urlsForOid(String oid, String resourceType) { + IOIDServices.OIDSummary set = urlsForOid(oid, resourceType, true); if (set.getDefinitions().size() > 1) { set = urlsForOid(oid, resourceType, false); } return set; } - public OIDSummary urlsForOid(String oid, String resourceType, boolean retired) { - OIDSummary summary = new OIDSummary(); + public IOIDServices.OIDSummary urlsForOid(String oid, String resourceType, boolean retired) { + IOIDServices.OIDSummary summary = new IOIDServices.OIDSummary(); if (oid != null) { if (oidCacheManual.containsKey(oid)) { summary.addOIDs(oidCacheManual.get(oid)); @@ -3543,7 +3536,7 @@ public OIDSummary urlsForOid(String oid, String resourceType, boolean retired) { String url = rs.getString(2); String version = rs.getString(3); String status = rs.getString(4); - summary.addOID(new OIDDefinition(rt, oid, url, version, os.pid, status)); + summary.addOID(new IOIDServices.OIDDefinition(rt, oid, url, version, os.pid, status)); } } } catch (Exception e) { @@ -3555,13 +3548,13 @@ public OIDSummary urlsForOid(String oid, String resourceType, boolean retired) { switch (oid) { case "2.16.840.1.113883.6.1" : - summary.addOID(new OIDDefinition("CodeSystem", "2.16.840.1.113883.6.1", "http://loinc.org", null, null, null)); + summary.addOID(new IOIDServices.OIDDefinition("CodeSystem", "2.16.840.1.113883.6.1", "http://loinc.org", null, null, null)); break; case "2.16.840.1.113883.6.8" : - summary.addOID(new OIDDefinition("CodeSystem", "2.16.840.1.113883.6.8", "http://unitsofmeasure.org", null, null, null)); + summary.addOID(new IOIDServices.OIDDefinition("CodeSystem", "2.16.840.1.113883.6.8", "http://unitsofmeasure.org", null, null, null)); break; case "2.16.840.1.113883.6.96" : - summary.addOID(new OIDDefinition("CodeSystem", "2.16.840.1.113883.6.96", "http://snomed.info/sct", null, null, null)); + summary.addOID(new IOIDServices.OIDDefinition("CodeSystem", "2.16.840.1.113883.6.96", "http://snomed.info/sct", null, null, null)); break; default: } @@ -3665,11 +3658,11 @@ private T doFindTxResource(Class class_, String canonica } } - public T findTxResource(Class class_, String canonical, Resource sourceOfReference) { + public T findTxResource(Class class_, String canonical, String version, Resource sourceOfReference) { if (canonical == null) { return null; } - T result = fetchResource(class_, canonical, sourceOfReference); + T result = fetchResource(class_, canonical, version, sourceOfReference); if (result == null) { result = doFindTxResource(class_, canonical); } @@ -3699,14 +3692,14 @@ public T findTxResource(Class class_, String canonical, } @Override - public List fetchResourcesByUrl(Class class_, String uri) { + public List fetchResourceVersions(Class class_, String uri) { List res = new ArrayList<>(); if (uri != null && !uri.startsWith("#")) { if (class_ == StructureDefinition.class) { uri = ProfileUtilities.sdNs(uri, null); } if (uri.contains("|")) { - throw new Error("at fetchResourcesByUrl, but a version is found in the uri - should not happen ('"+uri+"')"); + throw new Error("at fetchResourceVersions, but a version is found in the uri - should not happen ('"+uri+"')"); } if (uri.contains("#")) { uri = uri.substring(0, uri.indexOf("#")); @@ -3791,7 +3784,7 @@ public List fetchResourcesByUrl(Class class_, String } return res; } - + public void setLocale(Locale locale) { // matchbox patch https://github.com/ahdis/matchbox/issues/425 if (this.locale == null) { @@ -3808,37 +3801,84 @@ public void setLocale(Locale locale) { } } } - if (locale != null) { - String lt = locale.toLanguageTag(); - if ("und".equals(lt)) { - throw new FHIRException("The locale " + locale.toString() + " is not valid"); - } - if (expParameters != null) { - for (ParametersParameterComponent p : expParameters.getParameter()) { - // matchbox patch https://github.com/ahdis/matchbox/issues/425 change from - // displayLanguage to defaultDisplayLanguage - if ("defaultDisplayLanguage".equals(p.getName())) { - if (p.hasUserData(UserDataNames.auto_added_parameter)) { - if (p.getValueCodeType() != null && !p.getValueCodeType().getCode().equals(lt)) { - log.error("should this acutally happenen that the defaultDisplayLanguage is overerwritten from " - + p.getValueCodeType().getCode() + " to " + lt); - p.setValue(new CodeType(lt)); - } - return; - } else { - // user supplied, we leave it alone - return; - } - } + // END matchbox patch + + if (locale == null) { + return; + } + final String languageTag = locale.toLanguageTag(); + if ("und".equals(languageTag)) { + throw new FHIRException("The locale " + locale.toString() + " is not valid"); + } + + if (expansionParameters.get() == null) { + return; + } + + /* + If displayLanguage is an existing parameter, we check to see if it was added automatically or explicitly set by + the user + + * If it was added automatically, we update it to the new locale + * If it was set by the user, we do not update it. + + In both cases, we are done. + */ + + Parameters newExpansionParameters = copyExpansionParametersWithUserData(); + + int displayLanguageCount = 0; + for (ParametersParameterComponent expParameter : newExpansionParameters.getParameter()) { + if ("displayLanguage".equals(expParameter.getName())) { + if (expParameter.hasUserData(UserDataNames.auto_added_parameter)) { + expParameter.setValue(new CodeType(languageTag)); } - ParametersParameterComponent p = expParameters.addParameter(); - p.setName("defaultDisplayLanguage"); - p.setValue(new CodeType(lt)); - p.setUserData(UserDataNames.auto_added_parameter, true); + displayLanguageCount++; } } + if (displayLanguageCount > 1) { + throw new FHIRException("Multiple displayLanguage parameters found"); + } + if (displayLanguageCount == 1) { + this.expansionParameters.set(newExpansionParameters); + return; + } + + // There is no displayLanguage parameter so we are free to add a "defaultDisplayLanguage" instead. + + int defaultDisplayLanguageCount = 0; + for (ParametersParameterComponent expansionParameter : newExpansionParameters.getParameter()) { + if ("defaultDisplayLanguage".equals(expansionParameter.getName())) { + expansionParameter.setValue(new CodeType(languageTag)); + expansionParameter.setUserData(UserDataNames.auto_added_parameter, true); + defaultDisplayLanguageCount++; + } + } + if (defaultDisplayLanguageCount > 1) { + throw new FHIRException("Multiple defaultDisplayLanguage parameters found"); + } + if (defaultDisplayLanguageCount == 0) { + ParametersParameterComponent p = newExpansionParameters.addParameter(); + p.setName("defaultDisplayLanguage"); + p.setValue(new CodeType(languageTag)); + p.setUserData(UserDataNames.auto_added_parameter, true); + } + this.expansionParameters.set(newExpansionParameters); } - + + private Parameters copyExpansionParametersWithUserData() { + Parameters newExpansionParameters = new Parameters(); + // Copy all existing parameters include userData (not usually included in copyies) + if (this.expansionParameters.get() != null && this.expansionParameters.get().hasParameter()) { + for (ParametersParameterComponent expParameter : this.expansionParameters.get().getParameter()) { + ParametersParameterComponent copy = newExpansionParameters.addParameter(); + expParameter.copyValues(copy); + copy.copyUserData(expParameter); + } + } + return newExpansionParameters; + } + @Override public OperationOutcome validateTxResource(ValidationOptions options, Resource resource) { if (resource instanceof ValueSet) { @@ -3891,4 +3931,12 @@ public static boolean isAllowedToIterateTerminologyResources() { public static void setAllowedToIterateTerminologyResources(boolean allowedToIterateTerminologyResources) { BaseWorkerContext.allowedToIterateTerminologyResources = allowedToIterateTerminologyResources; } + + public IOIDServices oidServices() { + return this; + } + + public IWorkerContextManager getManager() { + return this; + } } diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/r5/elementmodel/XmlParser.java b/matchbox-engine/src/main/java/org/hl7/fhir/r5/elementmodel/XmlParser.java index d625dda361b..e8520f62921 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/r5/elementmodel/XmlParser.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/r5/elementmodel/XmlParser.java @@ -227,12 +227,18 @@ public Element parse(List errors, org.w3c.dom.Element element String ns = element.getNamespaceURI(); String name = element.getLocalName(); String path = "/"+pathPrefix(ns)+name; + String rd = element.getAttribute("resourceDefinition"); StructureDefinition sd = getDefinition(errors, line(element, false), col(element, false), (ns == null ? "noNamespace" : ns), name); - if (sd == null) + if (sd == null && rd != null) { + sd = context.fetchResource(StructureDefinition.class, rd); + } + if (sd == null) { return null; + } Element result = new Element(element.getLocalName(), new Property(context, sd.getSnapshot().getElement().get(0), sd, getProfileUtilities(), getContextUtilities())).setFormat(FhirFormat.XML); + result.setResourceDefinition(rd); result.setPath(element.getLocalName()); checkElement(errors, element, result, path, result.getProperty(), false); result.markLocation(line(element, false), col(element, false)); @@ -330,9 +336,23 @@ private StructureDefinition findLegalConstraint(String xsiType, String actualTyp return null; } - public Element parse(List errors, org.w3c.dom.Element base, String type) throws Exception { + public Element parse(List errors, org.w3c.dom.Element base, String typeName) throws Exception { + String typeTail = null; + String type = typeName; + if (typeName.contains(".")) { + typeTail = typeName.substring(typeName.indexOf('.') + 1); + type = typeName.substring(0, typeName.indexOf('.')); + } + StructureDefinition sd = getDefinition(errors, 0, 0, FormatUtilities.FHIR_NS, type); - Element result = new Element(base.getLocalName(), new Property(context, sd.getSnapshot().getElement().get(0), sd, getProfileUtilities(), getContextUtilities())).setFormat(FhirFormat.XML).setNativeObject(base); + if (sd == null) { + throw new FHIRException("Unable to find definition for type "+type); + } + ElementDefinition ed = sd.getSnapshot().getElement().get(0); + if (typeTail != null) { + ed = sd.getSnapshot().getElementByPath(typeName); + } + Element result = new Element(base.getLocalName(), new Property(context, ed, sd, getProfileUtilities(), getContextUtilities())).setFormat(FhirFormat.XML).setNativeObject(base); result.setPath(base.getLocalName()); String path = "/"+pathPrefix(base.getNamespaceURI())+base.getLocalName(); checkElement(errors, base, result, path, result.getProperty(), false); @@ -441,10 +461,11 @@ private void parseChildren(List errors, String path, org.w3c. if (attr.getLocalName().equals("schemaLocation") && FormatUtilities.NS_XSI.equals(attr.getNamespaceURI())) { ok = ok || allowXsiLocation; } - } else + } else { ok = ok || (attr.getLocalName().equals("schemaLocation")); // xsi:schemalocation allowed for non FHIR content + } ok = ok || (hasTypeAttr(element) && attr.getLocalName().equals("type") && FormatUtilities.NS_XSI.equals(attr.getNamespaceURI())); // xsi:type allowed if element says so - if (!ok) { + if (!ok && !Utilities.existsInList(attr.getLocalName(), "resourceDefinition")) { logError(errors, ValidationMessage.NO_RULE_DATE, line(node, false), col(node, false), path, IssueType.STRUCTURE, context.formatMessage(I18nConstants.UNDEFINED_ATTRIBUTE__ON__FOR_TYPE__PROPERTIES__, attr.getNodeName(), node.getNodeName(), element.fhirType(), properties), IssueSeverity.ERROR); } } @@ -777,6 +798,11 @@ public void compose(Element e, OutputStream stream, OutputStyle style, String ba if (Utilities.isAbsoluteUrl(e.getType())) { xml.namespace(urlRoot(e.getType()), "et"); } + + if (ExtensionUtilities.readBoolExtension(e.getProperty().getStructure(), ExtensionDefinitions.EXT_ADDITIONAL_RESOURCE)) { + xml.attribute("resourceDefinition", e.getProperty().getStructure().getVersionedUrl()); + } + addNamespaces(xml, e); composeElement(xml, e, e.getType(), true); xml.end(); @@ -850,6 +876,9 @@ private void composeElement(IXMLWriter xml, Element element, String elementName, if (canonicalFilter.contains(element.getPath())) { return; } + if (element.getProperty().getDefinition().hasExtension(ExtensionDefinitions.EXT_XML_NAME)) { + elementName = element.getProperty().getDefinition().getExtensionString(ExtensionDefinitions.EXT_XML_NAME); + } if (!(isElideElements() && element.isElided())) { if (showDecorations) { @SuppressWarnings("unchecked") @@ -900,6 +929,10 @@ private void composeElement(IXMLWriter xml, Element element, String elementName, if (isElideElements() && element.isElided() && xml.canElide()) xml.elide(); else { + if ((element.getXhtml()==null) && (element.getValue() != null)) { + XhtmlParser xhtml = new XhtmlParser(); + element.setXhtml(xhtml.setXmlMode(true).parse(element.getValue(), null).getDocumentElement()); + } if (isCdaText(element.getProperty())) { new CDANarrativeFormat().convert(xml, element.getXhtml()); } else { diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/r5/terminologies/utilities/TerminologyCache.java b/matchbox-engine/src/main/java/org/hl7/fhir/r5/terminologies/utilities/TerminologyCache.java index 27cc483bd2d..5b2734c9d60 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/r5/terminologies/utilities/TerminologyCache.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/r5/terminologies/utilities/TerminologyCache.java @@ -1,5 +1,36 @@ package org.hl7.fhir.r5.terminologies.utilities; +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + */ + + + import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; @@ -12,6 +43,7 @@ import lombok.experimental.Accessors; import lombok.extern.slf4j.Slf4j; import org.hl7.fhir.exceptions.FHIRException; +import org.hl7.fhir.r5.context.ExpansionOptions; import org.hl7.fhir.r5.formats.IParser.OutputStyle; import org.hl7.fhir.r5.formats.JsonParser; import org.hl7.fhir.r5.model.*; @@ -32,1013 +64,1004 @@ import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; +/** + * This implements a two level cache. + * - a temporary cache for remembering previous local operations + * - a persistent cache for remembering tx server operations + * + * the cache is a series of pairs: a map, and a list. the map is the loaded cache, the list is the persistent cache, carefully maintained in order for version control consistency + * + * @author graha + * + */ @MarkedToMoveToAdjunctPackage @Slf4j public class TerminologyCache { - public static class SourcedCodeSystem { - private String server; - private CodeSystem cs; - - public SourcedCodeSystem(String server, CodeSystem cs) { - super(); - this.server = server; - this.cs = cs; - } - public String getServer() { - return server; - } - public CodeSystem getCs() { - return cs; - } - } - - - public static class SourcedCodeSystemEntry { - private String server; - private String filename; - - public SourcedCodeSystemEntry(String server, String filename) { - super(); - this.server = server; - this.filename = filename; - } - public String getServer() { - return server; - } - public String getFilename() { - return filename; - } - } - - - public static class SourcedValueSet { - private String server; - private ValueSet vs; - - public SourcedValueSet(String server, ValueSet vs) { - super(); - this.server = server; - this.vs = vs; - } - public String getServer() { - return server; - } - public ValueSet getVs() { - return vs; - } - } - - public static class SourcedValueSetEntry { - private String server; - private String filename; - - public SourcedValueSetEntry(String server, String filename) { - super(); - this.server = server; - this.filename = filename; - } - public String getServer() { - return server; - } - public String getFilename() { - return filename; - } - } - - public static final boolean TRANSIENT = false; - public static final boolean PERMANENT = true; - private static final String NAME_FOR_NO_SYSTEM = "all-systems"; - private static final String ENTRY_MARKER = "-------------------------------------------------------------------------------------"; - private static final String BREAK = "####"; - private static final String CACHE_FILE_EXTENSION = ".cache"; - private static final String CAPABILITY_STATEMENT_TITLE = ".capabilityStatement"; - private static final String TERMINOLOGY_CAPABILITIES_TITLE = ".terminologyCapabilities"; - private static final String FIXED_CACHE_VERSION = "4"; // last change: change the way tx.fhir.org handles expansions - - - private SystemNameKeyGenerator systemNameKeyGenerator = new SystemNameKeyGenerator(); - - public class CacheToken { - @Getter - private String name; - private String key; - @Getter - private String request; - @Accessors(fluent = true) - @Getter - private boolean hasVersion; - - public void setName(String n) { - String systemName = getSystemNameKeyGenerator().getNameForSystem(n); - if (name == null) - name = systemName; - else if (!systemName.equals(name)) - name = NAME_FOR_NO_SYSTEM; - } - } - - public static class SubsumesResult { - - private Boolean result; - - protected SubsumesResult(Boolean result) { - super(); - this.result = result; - } - - public Boolean getResult() { - return result; - } - - } - - protected SystemNameKeyGenerator getSystemNameKeyGenerator() { - return systemNameKeyGenerator; - } - public class SystemNameKeyGenerator { - public static final String SNOMED_SCT_CODESYSTEM_URL = "http://snomed.info/sct"; - public static final String RXNORM_CODESYSTEM_URL = "http://www.nlm.nih.gov/research/umls/rxnorm"; - public static final String LOINC_CODESYSTEM_URL = "http://loinc.org"; - public static final String UCUM_CODESYSTEM_URL = "http://unitsofmeasure.org"; - - public static final String HL7_TERMINOLOGY_CODESYSTEM_BASE_URL = "http://terminology.hl7.org/CodeSystem/"; - public static final String HL7_SID_CODESYSTEM_BASE_URL = "http://hl7.org/fhir/sid/"; - public static final String HL7_FHIR_CODESYSTEM_BASE_URL = "http://hl7.org/fhir/"; - - public static final String ISO_CODESYSTEM_URN = "urn:iso:std:iso:"; - public static final String LANG_CODESYSTEM_URN = "urn:ietf:bcp:47"; - public static final String MIMETYPES_CODESYSTEM_URN = "urn:ietf:bcp:13"; - - public static final String _11073_CODESYSTEM_URN = "urn:iso:std:iso:11073:10101"; - public static final String DICOM_CODESYSTEM_URL = "http://dicom.nema.org/resources/ontology/DCM"; - - public String getNameForSystem(String system) { - final int lastPipe = system.lastIndexOf('|'); - final String systemBaseName = lastPipe == -1 ? system : system.substring(0,lastPipe); - String systemVersion = lastPipe == -1 ? null : system.substring(lastPipe + 1); - - if (systemVersion != null) { - if (systemVersion.startsWith("http://snomed.info/sct/")) { - systemVersion = systemVersion.substring(23); - } - systemVersion = systemVersion.replace(":", "").replace("/", "").replace("\\", "").replace("?", "").replace("$", "").replace("*", "").replace("#", "").replace("%", ""); - } - if (systemBaseName.equals(SNOMED_SCT_CODESYSTEM_URL)) - return getVersionedSystem("snomed", systemVersion); - if (systemBaseName.equals(RXNORM_CODESYSTEM_URL)) - return getVersionedSystem("rxnorm", systemVersion); - if (systemBaseName.equals(LOINC_CODESYSTEM_URL)) - return getVersionedSystem("loinc", systemVersion); - if (systemBaseName.equals(UCUM_CODESYSTEM_URL)) - return getVersionedSystem("ucum", systemVersion); - if (systemBaseName.startsWith(HL7_SID_CODESYSTEM_BASE_URL)) - return getVersionedSystem(normalizeBaseURL(HL7_SID_CODESYSTEM_BASE_URL, systemBaseName), systemVersion); - if (systemBaseName.equals(_11073_CODESYSTEM_URN)) - return getVersionedSystem("11073", systemVersion); - if (systemBaseName.startsWith(ISO_CODESYSTEM_URN)) - return getVersionedSystem("iso"+systemBaseName.substring(ISO_CODESYSTEM_URN.length()).replace(":", ""), systemVersion); - if (systemBaseName.startsWith(HL7_TERMINOLOGY_CODESYSTEM_BASE_URL)) - return getVersionedSystem(normalizeBaseURL(HL7_TERMINOLOGY_CODESYSTEM_BASE_URL, systemBaseName), systemVersion); - if (systemBaseName.startsWith(HL7_FHIR_CODESYSTEM_BASE_URL)) - return getVersionedSystem(normalizeBaseURL(HL7_FHIR_CODESYSTEM_BASE_URL, systemBaseName), systemVersion); - if (systemBaseName.equals(LANG_CODESYSTEM_URN)) - return getVersionedSystem("lang", systemVersion); - if (systemBaseName.equals(MIMETYPES_CODESYSTEM_URN)) - return getVersionedSystem("mimetypes", systemVersion); - if (systemBaseName.equals(DICOM_CODESYSTEM_URL)) - return getVersionedSystem("dicom", systemVersion); - return getVersionedSystem(systemBaseName.replace("/", "_").replace(":", "_").replace("?", "X").replace("#", "X"), systemVersion); - } - - public String normalizeBaseURL(String baseUrl, String fullUrl) { - return fullUrl.substring(baseUrl.length()).replace("/", ""); - } - - public String getVersionedSystem(String baseSystem, String version) { - if (version != null) { - return baseSystem + "_" + version; - } - return baseSystem; - } - } - - - private class CacheEntry { - private String request; - private boolean persistent; - private ValidationResult v; - private ValueSetExpansionOutcome e; - private SubsumesResult s; - } - - private class NamedCache { - private String name; - private List list = new ArrayList(); // persistent entries - private Map map = new HashMap(); - } - - - private Object lock; - private String folder; - @Getter private int requestCount; - @Getter private int hitCount; - @Getter private int networkCount; - - private final static long CAPABILITY_CACHE_EXPIRATION_HOURS = 24; - private final static long CAPABILITY_CACHE_EXPIRATION_MILLISECONDS = CAPABILITY_CACHE_EXPIRATION_HOURS * 60 * 60 * 1000; - private final long capabilityCacheExpirationMilliseconds; - private final TerminologyCapabilitiesCache capabilityStatementCache; - private final TerminologyCapabilitiesCache terminologyCapabilitiesCache; - private Map caches = new HashMap(); - private Map vsCache = new HashMap<>(); - private Map csCache = new HashMap<>(); - private Map serverMap = new HashMap<>(); - - @Getter @Setter private static boolean noCaching; - @Getter @Setter private static boolean cacheErrors; - - protected TerminologyCache(Object lock, String folder, Long capabilityCacheExpirationMilliseconds) throws FileNotFoundException, IOException, FHIRException { - super(); - log.trace("QLDBG folder = {}", folder); - this.lock = lock; - this.capabilityCacheExpirationMilliseconds = capabilityCacheExpirationMilliseconds; - capabilityStatementCache = new CommonsTerminologyCapabilitiesCache<>(capabilityCacheExpirationMilliseconds, TimeUnit.MILLISECONDS); - terminologyCapabilitiesCache = new CommonsTerminologyCapabilitiesCache<>(capabilityCacheExpirationMilliseconds, TimeUnit.MILLISECONDS); - if (folder == null) { - folder = Utilities.path("[tmp]", "default-tx-cache"); - } else if ("n/a".equals(folder)) { - // this is a weird way to do things but it maintains the legacy interface - folder = null; - } - this.folder = folder; - requestCount = 0; - hitCount = 0; - networkCount = 0; - - if (folder != null) { - File f = ManagedFileAccess.file(folder); - if (!f.exists()) { - FileUtilities.createDirectory(folder); - } - if (!f.exists()) { - throw new IOException("Unable to create terminology cache at "+folder); - } - checkVersion(); - load(); - } - } - - // use lock from the context - public TerminologyCache(Object lock, String folder) throws IOException, FHIRException { - this(lock, folder, CAPABILITY_CACHE_EXPIRATION_MILLISECONDS); - } - - private void checkVersion() throws IOException { - File verFile = ManagedFileAccess.file(Utilities.path(folder, "version.ctl")); - if (verFile.exists()) { - String ver = FileUtilities.fileToString(verFile); - if (!ver.equals(FIXED_CACHE_VERSION)) { - log.info("Terminology Cache Version has changed from 1 to "+FIXED_CACHE_VERSION+", so clearing txCache"); - clear(); - } - FileUtilities.stringToFile(FIXED_CACHE_VERSION, verFile); - } else { - FileUtilities.stringToFile(FIXED_CACHE_VERSION, verFile); - } - } - - public String getServerId(String address) throws IOException { - if (serverMap.containsKey(address)) { - return serverMap.get(address); - } - String id = address.replace("http://", "").replace("https://", "").replace("/", "."); - int i = 1; - while (serverMap.containsValue(id)) { - i++; - id = address.replace("https:", "").replace("https:", "").replace("/", ".")+i; - } - serverMap.put(address, id); - if (folder != null) { - IniFile ini = new IniFile(Utilities.path(folder, "servers.ini")); - ini.setStringProperty("servers", id, address, null); - ini.save(); - } - return id; - } - - public void unload() { - // not useable after this is called - caches.clear(); - vsCache.clear(); - csCache.clear(); - } - - public void clear() throws IOException { - if (folder != null) { - FileUtilities.clearDirectory(folder); - } - caches.clear(); - vsCache.clear(); - csCache.clear(); - } - - public boolean hasCapabilityStatement(String address) { - log.trace("QLDBG hasCapabilityStatement "+address+" : "+capabilityStatementCache.containsKey(address)); - return capabilityStatementCache.containsKey(address); - } - - public CapabilityStatement getCapabilityStatement(String address) { - return capabilityStatementCache.get(address); - } - - public void cacheCapabilityStatement(String address, CapabilityStatement capabilityStatement) throws IOException { - log.trace("QLDBG cacheCapabilityStatement "+address); - if (noCaching) { - return; - } - this.capabilityStatementCache.put(address, capabilityStatement); - save(capabilityStatement, CAPABILITY_STATEMENT_TITLE+"."+getServerId(address)); - } - - - public boolean hasTerminologyCapabilities(String address) { - log.trace("QLDBG hasTerminologyCapabilities "+address+" : "+terminologyCapabilitiesCache.containsKey(address)); - return terminologyCapabilitiesCache.containsKey(address); - } - - public TerminologyCapabilities getTerminologyCapabilities(String address) { - return terminologyCapabilitiesCache.get(address); - } - - public void cacheTerminologyCapabilities(String address, TerminologyCapabilities terminologyCapabilities) throws IOException { - log.trace("QLDBG cacheTerminologyCapabilities "+address); - if (noCaching) { - return; - } - this.terminologyCapabilitiesCache.put(address, terminologyCapabilities); - save(terminologyCapabilities, TERMINOLOGY_CAPABILITIES_TITLE+"."+getServerId(address)); - } - - - public CacheToken generateValidationToken(ValidationOptions options, Coding code, ValueSet vs, Parameters expParameters) { - log.trace("QLDBG generateValidationToken code {} in vs {}", code.getCode(), vs == null ? "null" : vs.getUrl()); - try { - CacheToken ct = new CacheToken(); - if (code.hasSystem()) { - ct.setName(code.getSystem()); - ct.hasVersion = code.hasVersion(); - } - else - ct.name = NAME_FOR_NO_SYSTEM; - nameCacheToken(vs, ct); - JsonParser json = new JsonParser(); - json.setOutputStyle(OutputStyle.PRETTY); - // PATCH MATCHBOX: need to copy expParameters to avoid multithreading issues, see https://github.com/ahdis/matchbox/issues/425 - String expJS = expParameters == null ? "" : json.composeString(expParameters.copy()); - // END PATCH MATCHBOX - - if (vs != null && vs.hasUrl() && vs.hasVersion()) { - ct.request = "{\"code\" : "+json.composeString(code, "codeableConcept")+", \"url\": \""+Utilities.escapeJson(vs.getUrl()) - +"\", \"version\": \""+Utilities.escapeJson(vs.getVersion())+"\""+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}\r\n"; - } else if (options.getVsAsUrl()) { - ct.request = "{\"code\" : "+json.composeString(code, "code")+", \"valueSet\" :"+extracted(json, vs)+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; - } else { - ValueSet vsc = getVSEssense(vs); - ct.request = "{\"code\" : "+json.composeString(code, "code")+", \"valueSet\" :"+(vsc == null ? "null" : extracted(json, vsc))+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; - } - ct.key = String.valueOf(hashJson(ct.request)); - return ct; - } catch (IOException e) { - throw new Error(e); - } - } - - public CacheToken generateValidationToken(ValidationOptions options, Coding code, String vsUrl, Parameters expParameters) { - log.trace("QLDBG generateValidationToken code {} in vs {}", code.getCode(), vsUrl == null ? "null" : vsUrl); - try { - CacheToken ct = new CacheToken(); - if (code.hasSystem()) { - ct.setName(code.getSystem()); - ct.hasVersion = code.hasVersion(); - } else { - ct.name = NAME_FOR_NO_SYSTEM; - } - ct.setName(vsUrl); - JsonParser json = new JsonParser(); - json.setOutputStyle(OutputStyle.PRETTY); - // PATCH MATCHBOX: need to copy expParameters to avoid multithreading issues, see https://github.com/ahdis/matchbox/issues/425 - String expJS = expParameters == null ? "" : json.composeString(expParameters.copy()); - // END PATCH MATCHBOX - - ct.request = "{\"code\" : "+json.composeString(code, "code")+", \"valueSet\" :"+(vsUrl == null ? "null" : vsUrl)+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; - ct.key = String.valueOf(hashJson(ct.request)); - return ct; - } catch (IOException e) { - throw new Error(e); - } - } - - public String extracted(JsonParser json, ValueSet vsc) throws IOException { - String s = null; - if (vsc.getExpansion().getContains().size() > 1000 || vsc.getCompose().getIncludeFirstRep().getConcept().size() > 1000) { - s = vsc.getUrl(); - } else { - s = json.composeString(vsc); - } - return s; - } - - public CacheToken generateValidationToken(ValidationOptions options, CodeableConcept code, ValueSet vs, Parameters expParameters) { - log.trace("QLDBG generateValidationToken code {} in vs {}", code.hasText() ? code.getText() : "(no text)", vs == null ? "null" : vs.getUrl()); - try { - CacheToken ct = new CacheToken(); - for (Coding c : code.getCoding()) { - if (c.hasSystem()) { - ct.setName(c.getSystem()); - ct.hasVersion = c.hasVersion(); - } - } - nameCacheToken(vs, ct); - JsonParser json = new JsonParser(); - json.setOutputStyle(OutputStyle.PRETTY); - // PATCH MATCHBOX: need to copy expParameters to avoid multithreading issues, see https://github.com/ahdis/matchbox/issues/425 - String expJS = expParameters == null ? "" : json.composeString(expParameters.copy()); - // END PATCH MATCHBOX - if (vs != null && vs.hasUrl() && vs.hasVersion()) { - ct.request = "{\"code\" : "+json.composeString(code, "codeableConcept")+", \"url\": \""+Utilities.escapeJson(vs.getUrl())+ - "\", \"version\": \""+Utilities.escapeJson(vs.getVersion())+"\""+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}\r\n"; - } else if (vs == null) { - ct.request = "{\"code\" : "+json.composeString(code, "codeableConcept")+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; - } else { - ValueSet vsc = getVSEssense(vs); - ct.request = "{\"code\" : "+json.composeString(code, "codeableConcept")+", \"valueSet\" :"+extracted(json, vsc)+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; - } - ct.key = String.valueOf(hashJson(ct.request)); - return ct; - } catch (IOException e) { - throw new Error(e); - } - } - - public ValueSet getVSEssense(ValueSet vs) { - if (vs == null) - return null; - ValueSet vsc = new ValueSet(); - vsc.setCompose(vs.getCompose()); - if (vs.hasExpansion()) { - vsc.getExpansion().getParameter().addAll(vs.getExpansion().getParameter()); - vsc.getExpansion().getContains().addAll(vs.getExpansion().getContains()); - } - return vsc; - } - - public CacheToken generateExpandToken(ValueSet vs, boolean hierarchical) { - log.trace("QLDBG generateExpandToken vs {}", vs == null ? "null" : vs.getUrl()); - CacheToken ct = new CacheToken(); - nameCacheToken(vs, ct); - if (vs.hasUrl() && vs.hasVersion()) { - ct.request = "{\"hierarchical\" : "+(hierarchical ? "true" : "false")+", \"url\": \""+Utilities.escapeJson(vs.getUrl())+"\", \"version\": \""+Utilities.escapeJson(vs.getVersion())+"\"}\r\n"; - } else { - ValueSet vsc = getVSEssense(vs); - JsonParser json = new JsonParser(); - json.setOutputStyle(OutputStyle.PRETTY); - try { - ct.request = "{\"hierarchical\" : "+(hierarchical ? "true" : "false")+", \"valueSet\" :"+extracted(json, vsc)+"}\r\n"; - } catch (IOException e) { - throw new Error(e); - } - } - ct.key = String.valueOf(hashJson(ct.request)); - return ct; - } - - public CacheToken generateExpandToken(String url, boolean hierarchical) { - log.trace("QLDBG generateExpandToken url {}", url == null ? "null" : url); - CacheToken ct = new CacheToken(); - ct.request = "{\"hierarchical\" : "+(hierarchical ? "true" : "false")+", \"url\": \""+Utilities.escapeJson(url)+"\"}\r\n"; - ct.key = String.valueOf(hashJson(ct.request)); - return ct; - } - - public void nameCacheToken(ValueSet vs, CacheToken ct) { - log.trace("QLDBG nameCacheToken vs {}", vs == null ? "null" : vs.getUrl()); - if (vs != null) { - for (ConceptSetComponent inc : vs.getCompose().getInclude()) { - if (inc.hasSystem()) { - ct.setName(inc.getSystem()); - ct.hasVersion = inc.hasVersion(); - } - } - for (ConceptSetComponent inc : vs.getCompose().getExclude()) { - if (inc.hasSystem()) { - ct.setName(inc.getSystem()); - ct.hasVersion = inc.hasVersion(); - } - } - for (ValueSetExpansionContainsComponent inc : vs.getExpansion().getContains()) { - if (inc.hasSystem()) { - ct.setName(inc.getSystem()); - ct.hasVersion = inc.hasVersion(); - } - } - } - } - - private String normalizeSystemPath(String path) { - return path.replace("/", "").replace('|','X'); - } - - - - public NamedCache getNamedCache(CacheToken cacheToken) { - - final String cacheName = cacheToken.name == null ? "null" : cacheToken.name; - - NamedCache nc = caches.get(cacheName); - - if (nc == null) { - nc = new NamedCache(); - nc.name = cacheName; - caches.put(nc.name, nc); - } - return nc; - } - - public ValueSetExpansionOutcome getExpansion(CacheToken cacheToken) { - synchronized (lock) { - NamedCache nc = getNamedCache(cacheToken); - CacheEntry e = nc.map.get(cacheToken.key); - if (e == null) - return null; - else - return e.e; - } - } - - public void cacheExpansion(CacheToken cacheToken, ValueSetExpansionOutcome res, boolean persistent) { - synchronized (lock) { - NamedCache nc = getNamedCache(cacheToken); - CacheEntry e = new CacheEntry(); - e.request = cacheToken.request; - e.persistent = persistent; - e.e = res; - store(cacheToken, persistent, nc, e); - } - } - - public void store(CacheToken cacheToken, boolean persistent, NamedCache nc, CacheEntry e) { - log.trace("QLDBG store NamedCache.name={}, CacheToken.name={}, CacheToken.key={}", nc.name, cacheToken.name, cacheToken.key); - if (noCaching) { - return; - } - - if ( !cacheErrors && - ( e.v!= null - && e.v.getErrorClass() == TerminologyServiceErrorClass.CODESYSTEM_UNSUPPORTED - && !cacheToken.hasVersion)) { - return; - } - - boolean n = nc.map.containsKey(cacheToken.key); - nc.map.put(cacheToken.key, e); - if (persistent) { - if (n) { - for (int i = nc.list.size()- 1; i>= 0; i--) { - if (nc.list.get(i).request.equals(e.request)) { - nc.list.remove(i); - } - } - } - nc.list.add(e); - save(nc); - } - } - - public ValidationResult getValidation(CacheToken cacheToken) { - log.trace("QLDBG getValidation CacheToken.name={}, CacheToken.key={}", cacheToken.name, cacheToken.key); - if (cacheToken.key == null) { - return null; - } - synchronized (lock) { - requestCount++; - NamedCache nc = getNamedCache(cacheToken); - CacheEntry e = nc.map.get(cacheToken.key); - if (e == null) { - networkCount++; - return null; - } else { - hitCount++; - return new ValidationResult(e.v); - } - } - } - - public void cacheValidation(CacheToken cacheToken, ValidationResult res, boolean persistent) { - log.trace("QLDBG cacheValidation CacheToken.name={}, CacheToken.key={}", cacheToken.name, cacheToken.key); - if (cacheToken.key != null) { - synchronized (lock) { - NamedCache nc = getNamedCache(cacheToken); - CacheEntry e = new CacheEntry(); - e.request = cacheToken.request; - e.persistent = persistent; - e.v = new ValidationResult(res); - store(cacheToken, persistent, nc, e); - } - } - } - - - // persistence - - public void save() { - - } - - private void save(K resource, String title) { - if (folder == null) - return; - - try { - OutputStreamWriter sw = new OutputStreamWriter(ManagedFileAccess.outStream(Utilities.path(folder, title + CACHE_FILE_EXTENSION)), "UTF-8"); - - JsonParser json = new JsonParser(); - json.setOutputStyle(OutputStyle.PRETTY); - - sw.write(json.composeString(resource).trim()); - sw.close(); - } catch (Exception e) { - log.error("error saving capability statement "+e.getMessage(), e); - } - } - - private void save(NamedCache nc) { - log.trace("QLDBG cacheValidation NamedCache.name={}", nc.name); - if (folder == null) - return; - - try { - OutputStreamWriter sw = new OutputStreamWriter(ManagedFileAccess.outStream(Utilities.path(folder, nc.name+CACHE_FILE_EXTENSION)), "UTF-8"); - sw.write(ENTRY_MARKER+"\r\n"); - JsonParser json = new JsonParser(); - json.setOutputStyle(OutputStyle.PRETTY); - for (CacheEntry ce : nc.list) { - sw.write(ce.request.trim()); - sw.write(BREAK+"\r\n"); - if (ce.e != null) { - sw.write("e: {\r\n"); - if (ce.e.isFromServer()) - sw.write(" \"from-server\" : true,\r\n"); - if (ce.e.getValueset() != null) { - if (ce.e.getValueset().hasUserData(UserDataNames.VS_EXPANSION_SOURCE)) { - sw.write(" \"source\" : "+Utilities.escapeJson(ce.e.getValueset().getUserString(UserDataNames.VS_EXPANSION_SOURCE)).trim()+",\r\n"); - } - sw.write(" \"valueSet\" : "+json.composeString(ce.e.getValueset()).trim()+",\r\n"); - } - sw.write(" \"error\" : \""+Utilities.escapeJson(ce.e.getError()).trim()+"\"\r\n}\r\n"); - } else if (ce.s != null) { - sw.write("s: {\r\n"); - sw.write(" \"result\" : "+ce.s.result+"\r\n}\r\n"); - } else { - sw.write("v: {\r\n"); - boolean first = true; - if (ce.v.getDisplay() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"display\" : \""+Utilities.escapeJson(ce.v.getDisplay()).trim()+"\""); - } - if (ce.v.getCode() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"code\" : \""+Utilities.escapeJson(ce.v.getCode()).trim()+"\""); - } - if (ce.v.getSystem() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"system\" : \""+Utilities.escapeJson(ce.v.getSystem()).trim()+"\""); - } - if (ce.v.getVersion() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"version\" : \""+Utilities.escapeJson(ce.v.getVersion()).trim()+"\""); - } - if (ce.v.getSeverity() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"severity\" : "+"\""+ce.v.getSeverity().toCode().trim()+"\""+""); - } - if (ce.v.getMessage() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"error\" : \""+Utilities.escapeJson(ce.v.getMessage()).trim()+"\""); - } - if (ce.v.getErrorClass() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"class\" : \""+Utilities.escapeJson(ce.v.getErrorClass().toString())+"\""); - } - if (ce.v.getDefinition() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"definition\" : \""+Utilities.escapeJson(ce.v.getDefinition()).trim()+"\""); - } - if (ce.v.getStatus() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"status\" : \""+Utilities.escapeJson(ce.v.getStatus()).trim()+"\""); - } - if (ce.v.getServer() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"server\" : \""+Utilities.escapeJson(ce.v.getServer()).trim()+"\""); - } - if (ce.v.isInactive()) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"inactive\" : true"); - } - if (ce.v.getUnknownSystems() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"unknown-systems\" : \""+Utilities.escapeJson(CommaSeparatedStringBuilder.join(",", ce.v.getUnknownSystems())).trim()+"\""); - } - if (ce.v.getParameters() != null) { - if (first) first = false; else sw.write(",\r\n"); - sw.write(" \"parameters\" : "+json.composeString(ce.v.getParameters()).trim()+"\r\n"); - } - if (ce.v.getIssues() != null) { - if (first) first = false; else sw.write(",\r\n"); - OperationOutcome oo = new OperationOutcome(); - oo.setIssue(ce.v.getIssues()); - sw.write(" \"issues\" : "+json.composeString(oo).trim()+"\r\n"); - } - sw.write("\r\n}\r\n"); - } - sw.write(ENTRY_MARKER+"\r\n"); - } - sw.close(); - } catch (Exception e) { - log.error("error saving "+nc.name+": "+e.getMessage(), e); - } - } - - private boolean isCapabilityCache(String fn) { - log.trace("QLDBG isCapabilityCache {}", fn); - if (fn == null) { - return false; - } - return fn.startsWith(CAPABILITY_STATEMENT_TITLE) || fn.startsWith(TERMINOLOGY_CAPABILITIES_TITLE); - } - - private void loadCapabilityCache(String fn) throws IOException { - log.trace("QLDBG loadCapabilityCache {}", fn); - if (TerminologyCapabilitiesCache.cacheFileHasExpired(Utilities.path(folder, fn), capabilityCacheExpirationMilliseconds)) { - return; - } - try { - String src = FileUtilities.fileToString(Utilities.path(folder, fn)); - String serverId = Utilities.getFileNameForName(fn).replace(CACHE_FILE_EXTENSION, ""); - serverId = serverId.substring(serverId.indexOf(".")+1); - serverId = serverId.substring(serverId.indexOf(".")+1); - String address = getServerForId(serverId); - if (address != null) { - JsonObject o = (JsonObject) new com.google.gson.JsonParser().parse(src); - Resource resource = new JsonParser().parse(o); - - if (fn.startsWith(CAPABILITY_STATEMENT_TITLE)) { - this.capabilityStatementCache.put(address, (CapabilityStatement) resource); - } else if (fn.startsWith(TERMINOLOGY_CAPABILITIES_TITLE)) { - this.terminologyCapabilitiesCache.put(address, (TerminologyCapabilities) resource); - } - } - } catch (Exception e) { - e.printStackTrace(); - throw new FHIRException("Error loading " + fn + ": " + e.getMessage(), e); - } - } - - private String getServerForId(String serverId) { - for (String n : serverMap.keySet()) { - if (serverMap.get(n).equals(serverId)) { - return n; - } - } - return null; - } - - private CacheEntry getCacheEntry(String request, String resultString) throws IOException { - CacheEntry ce = new CacheEntry(); - ce.persistent = true; - ce.request = request; - char e = resultString.charAt(0); - resultString = resultString.substring(3); - JsonObject o = (JsonObject) new com.google.gson.JsonParser().parse(resultString); - String error = loadJS(o.get("error")); - if (e == 'e') { - if (o.has("valueSet")) { - ce.e = new ValueSetExpansionOutcome((ValueSet) new JsonParser().parse(o.getAsJsonObject("valueSet")), error, TerminologyServiceErrorClass.UNKNOWN, o.has("from-server")); - if (o.has("source")) { - ce.e.getValueset().setUserData(UserDataNames.VS_EXPANSION_SOURCE, o.get("source").getAsString()); - } - } else { - ce.e = new ValueSetExpansionOutcome(error, TerminologyServiceErrorClass.UNKNOWN, o.has("from-server")); - } - } else if (e == 's') { - ce.s = new SubsumesResult(o.get("result").getAsBoolean()); - } else { - String t = loadJS(o.get("severity")); - IssueSeverity severity = t == null ? null : IssueSeverity.fromCode(t); - String display = loadJS(o.get("display")); - String code = loadJS(o.get("code")); - String system = loadJS(o.get("system")); - String version = loadJS(o.get("version")); - String definition = loadJS(o.get("definition")); - String server = loadJS(o.get("server")); - String status = loadJS(o.get("status")); - boolean inactive = "true".equals(loadJS(o.get("inactive"))); - String unknownSystems = loadJS(o.get("unknown-systems")); - OperationOutcome oo = o.has("issues") ? (OperationOutcome) new JsonParser().parse(o.getAsJsonObject("issues")) : null; - Parameters p = o.has("parameters") ? (Parameters) new JsonParser().parse(o.getAsJsonObject("parameters")) : null; - t = loadJS(o.get("class")); - TerminologyServiceErrorClass errorClass = t == null ? null : TerminologyServiceErrorClass.valueOf(t) ; - ce.v = new ValidationResult(severity, error, system, version, new ConceptDefinitionComponent().setDisplay(display).setDefinition(definition).setCode(code), display, null).setErrorClass(errorClass); - ce.v.setUnknownSystems(CommaSeparatedStringBuilder.toSet(unknownSystems)); - ce.v.setServer(server); - ce.v.setStatus(inactive, status); - if (oo != null) { - ce.v.setIssues(oo.getIssue()); - } - if (p != null) { - ce.v.setParameters(p); - } - } - return ce; - } - - private void loadNamedCache(String fn) throws IOException { - log.trace("QLDBG loadNamedCache {}", fn); - int c = 0; - try { - String src = FileUtilities.fileToString(Utilities.path(folder, fn)); - String title = fn.substring(0, fn.lastIndexOf(".")); - - NamedCache nc = new NamedCache(); - nc.name = title; - - if (src.startsWith("?")) - src = src.substring(1); - int i = src.indexOf(ENTRY_MARKER); - while (i > -1) { - c++; - String s = src.substring(0, i); - src = src.substring(i + ENTRY_MARKER.length() + 1); - i = src.indexOf(ENTRY_MARKER); - if (!Utilities.noString(s)) { - int j = s.indexOf(BREAK); - String request = s.substring(0, j); - String p = s.substring(j + BREAK.length() + 1).trim(); - - CacheEntry cacheEntry = getCacheEntry(request, p); - - nc.map.put(String.valueOf(hashJson(cacheEntry.request)), cacheEntry); - nc.list.add(cacheEntry); - } - caches.put(nc.name, nc); - } - } catch (Exception e) { - log.error("Error loading "+fn+": "+e.getMessage()+" entry "+c+" - ignoring it", e); - } - } - - private void load() throws FHIRException, IOException { - IniFile ini = new IniFile(Utilities.path(folder, "servers.ini")); - if (ini.hasSection("servers")) { - for (String n : ini.getPropertyNames("servers")) { - serverMap.put(ini.getStringProperty("servers", n), n); - } - } - - for (String fn : ManagedFileAccess.file(folder).list()) { - if (fn.endsWith(CACHE_FILE_EXTENSION) && !fn.equals("validation" + CACHE_FILE_EXTENSION)) { - try { - if (isCapabilityCache(fn)) { - loadCapabilityCache(fn); - } else { - loadNamedCache(fn); - } - } catch (FHIRException e) { - throw e; - } - } - } - try { - File f = ManagedFileAccess.file(Utilities.path(folder, "vs-externals.json")); - if (f.exists()) { - org.hl7.fhir.utilities.json.model.JsonObject json = org.hl7.fhir.utilities.json.parser.JsonParser.parseObject(f); - for (JsonProperty p : json.getProperties()) { - if (p.getValue().isJsonNull()) { - vsCache.put(p.getName(), null); - } else { - org.hl7.fhir.utilities.json.model.JsonObject j = p.getValue().asJsonObject(); - vsCache.put(p.getName(), new SourcedValueSetEntry(j.asString("server"), j.asString("filename"))); - } - } - } - } catch (Exception e) { - log.error("Error loading vs external cache: "+e.getMessage(), e); - } - try { - File f = ManagedFileAccess.file(Utilities.path(folder, "cs-externals.json")); - if (f.exists()) { - org.hl7.fhir.utilities.json.model.JsonObject json = org.hl7.fhir.utilities.json.parser.JsonParser.parseObject(f); - for (JsonProperty p : json.getProperties()) { - if (p.getValue().isJsonNull()) { - csCache.put(p.getName(), null); - } else { - org.hl7.fhir.utilities.json.model.JsonObject j = p.getValue().asJsonObject(); - csCache.put(p.getName(), new SourcedCodeSystemEntry(j.asString("server"), j.asString("filename"))); - } - } - } - } catch (Exception e) { - log.error("Error loading vs external cache: "+e.getMessage(), e); - } - } - - private String loadJS(JsonElement e) { - if (e == null) - return null; - if (!(e instanceof JsonPrimitive)) - return null; - String s = e.getAsString(); - if ("".equals(s)) - return null; - return s; - } - - public String hashJson(String s) { - return String.valueOf(s - .trim() - .replaceAll("\\r\\n?", "\n") - .hashCode()); - } - - // management - - public String summary(ValueSet vs) { - if (vs == null) - return "null"; - - CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder(); - for (ConceptSetComponent cc : vs.getCompose().getInclude()) - b.append("Include "+getIncSummary(cc)); - for (ConceptSetComponent cc : vs.getCompose().getExclude()) - b.append("Exclude "+getIncSummary(cc)); - return b.toString(); - } - - private String getIncSummary(ConceptSetComponent cc) { - CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder(); - for (UriType vs : cc.getValueSet()) - b.append(vs.asStringValue()); - String vsd = b.length() > 0 ? " where the codes are in the value sets ("+b.toString()+")" : ""; - String system = cc.getSystem(); - if (cc.hasConcept()) - return Integer.toString(cc.getConcept().size())+" codes from "+system+vsd; - if (cc.hasFilter()) { - String s = ""; - for (ConceptSetFilterComponent f : cc.getFilter()) { - if (!Utilities.noString(s)) - s = s + " & "; - s = s + f.getProperty()+" "+(f.hasOp() ? f.getOp().toCode() : "?")+" "+f.getValue(); - } - return "from "+system+" where "+s+vsd; - } - return "All codes from "+system+vsd; - } - - public String summary(Coding code) { - return code.getSystem()+"#"+code.getCode()+(code.hasDisplay() ? ": \""+code.getDisplay()+"\"" : ""); - } - - public String summary(CodeableConcept code) { - StringBuilder b = new StringBuilder(); - b.append("{"); - boolean first = true; - for (Coding c : code.getCoding()) { - if (first) first = false; else b.append(","); - b.append(summary(c)); - } - b.append("}: \""); - b.append(code.getText()); - b.append("\""); - return b.toString(); - } - - public void removeCS(String url) { - synchronized (lock) { - String name = getSystemNameKeyGenerator().getNameForSystem(url); - if (caches.containsKey(name)) { - caches.remove(name); - } - } - } - - public String getFolder() { - return folder; - } - - public Map servers() { - Map servers = new HashMap<>(); + public static class SourcedCodeSystem { + private String server; + private CodeSystem cs; + + public SourcedCodeSystem(String server, CodeSystem cs) { + super(); + this.server = server; + this.cs = cs; + } + public String getServer() { + return server; + } + public CodeSystem getCs() { + return cs; + } + } + + + public static class SourcedCodeSystemEntry { + private String server; + private String filename; + + public SourcedCodeSystemEntry(String server, String filename) { + super(); + this.server = server; + this.filename = filename; + } + public String getServer() { + return server; + } + public String getFilename() { + return filename; + } + } + + + public static class SourcedValueSet { + private String server; + private ValueSet vs; + + public SourcedValueSet(String server, ValueSet vs) { + super(); + this.server = server; + this.vs = vs; + } + public String getServer() { + return server; + } + public ValueSet getVs() { + return vs; + } + } + + public static class SourcedValueSetEntry { + private String server; + private String filename; + + public SourcedValueSetEntry(String server, String filename) { + super(); + this.server = server; + this.filename = filename; + } + public String getServer() { + return server; + } + public String getFilename() { + return filename; + } + } + + public static final boolean TRANSIENT = false; + public static final boolean PERMANENT = true; + private static final String NAME_FOR_NO_SYSTEM = "all-systems"; + private static final String ENTRY_MARKER = "-------------------------------------------------------------------------------------"; + private static final String BREAK = "####"; + private static final String CACHE_FILE_EXTENSION = ".cache"; + private static final String CAPABILITY_STATEMENT_TITLE = ".capabilityStatement"; + private static final String TERMINOLOGY_CAPABILITIES_TITLE = ".terminologyCapabilities"; + private static final String FIXED_CACHE_VERSION = "4"; // last change: change the way tx.fhir.org handles expansions + + + private SystemNameKeyGenerator systemNameKeyGenerator = new SystemNameKeyGenerator(); + + public class CacheToken { + @Getter + private String name; + private String key; + @Getter + private String request; + @Accessors(fluent = true) + @Getter + private boolean hasVersion; + + public void setName(String n) { + String systemName = getSystemNameKeyGenerator().getNameForSystem(n); + if (name == null) + name = systemName; + else if (!systemName.equals(name)) + name = NAME_FOR_NO_SYSTEM; + } + } + + public static class SubsumesResult { + + private Boolean result; + + protected SubsumesResult(Boolean result) { + super(); + this.result = result; + } + + public Boolean getResult() { + return result; + } + + } + + protected SystemNameKeyGenerator getSystemNameKeyGenerator() { + return systemNameKeyGenerator; + } + public class SystemNameKeyGenerator { + public static final String SNOMED_SCT_CODESYSTEM_URL = "http://snomed.info/sct"; + public static final String RXNORM_CODESYSTEM_URL = "http://www.nlm.nih.gov/research/umls/rxnorm"; + public static final String LOINC_CODESYSTEM_URL = "http://loinc.org"; + public static final String UCUM_CODESYSTEM_URL = "http://unitsofmeasure.org"; + + public static final String HL7_TERMINOLOGY_CODESYSTEM_BASE_URL = "http://terminology.hl7.org/CodeSystem/"; + public static final String HL7_SID_CODESYSTEM_BASE_URL = "http://hl7.org/fhir/sid/"; + public static final String HL7_FHIR_CODESYSTEM_BASE_URL = "http://hl7.org/fhir/"; + + public static final String ISO_CODESYSTEM_URN = "urn:iso:std:iso:"; + public static final String LANG_CODESYSTEM_URN = "urn:ietf:bcp:47"; + public static final String MIMETYPES_CODESYSTEM_URN = "urn:ietf:bcp:13"; + + public static final String _11073_CODESYSTEM_URN = "urn:iso:std:iso:11073:10101"; + public static final String DICOM_CODESYSTEM_URL = "http://dicom.nema.org/resources/ontology/DCM"; + + public String getNameForSystem(String system) { + final int lastPipe = system.lastIndexOf('|'); + final String systemBaseName = lastPipe == -1 ? system : system.substring(0,lastPipe); + String systemVersion = lastPipe == -1 ? null : system.substring(lastPipe + 1); + + if (systemVersion != null) { + if (systemVersion.startsWith("http://snomed.info/sct/")) { + systemVersion = systemVersion.substring(23); + } + systemVersion = systemVersion.replace(":", "").replace("/", "").replace("\\", "").replace("?", "").replace("$", "").replace("*", "").replace("#", "").replace("%", ""); + } + if (systemBaseName.equals(SNOMED_SCT_CODESYSTEM_URL)) + return getVersionedSystem("snomed", systemVersion); + if (systemBaseName.equals(RXNORM_CODESYSTEM_URL)) + return getVersionedSystem("rxnorm", systemVersion); + if (systemBaseName.equals(LOINC_CODESYSTEM_URL)) + return getVersionedSystem("loinc", systemVersion); + if (systemBaseName.equals(UCUM_CODESYSTEM_URL)) + return getVersionedSystem("ucum", systemVersion); + if (systemBaseName.startsWith(HL7_SID_CODESYSTEM_BASE_URL)) + return getVersionedSystem(normalizeBaseURL(HL7_SID_CODESYSTEM_BASE_URL, systemBaseName), systemVersion); + if (systemBaseName.equals(_11073_CODESYSTEM_URN)) + return getVersionedSystem("11073", systemVersion); + if (systemBaseName.startsWith(ISO_CODESYSTEM_URN)) + return getVersionedSystem("iso"+systemBaseName.substring(ISO_CODESYSTEM_URN.length()).replace(":", ""), systemVersion); + if (systemBaseName.startsWith(HL7_TERMINOLOGY_CODESYSTEM_BASE_URL)) + return getVersionedSystem(normalizeBaseURL(HL7_TERMINOLOGY_CODESYSTEM_BASE_URL, systemBaseName), systemVersion); + if (systemBaseName.startsWith(HL7_FHIR_CODESYSTEM_BASE_URL)) + return getVersionedSystem(normalizeBaseURL(HL7_FHIR_CODESYSTEM_BASE_URL, systemBaseName), systemVersion); + if (systemBaseName.equals(LANG_CODESYSTEM_URN)) + return getVersionedSystem("lang", systemVersion); + if (systemBaseName.equals(MIMETYPES_CODESYSTEM_URN)) + return getVersionedSystem("mimetypes", systemVersion); + if (systemBaseName.equals(DICOM_CODESYSTEM_URL)) + return getVersionedSystem("dicom", systemVersion); + return getVersionedSystem(systemBaseName.replace("/", "_").replace(":", "_").replace("?", "X").replace("#", "X"), systemVersion); + } + + public String normalizeBaseURL(String baseUrl, String fullUrl) { + return fullUrl.substring(baseUrl.length()).replace("/", ""); + } + + public String getVersionedSystem(String baseSystem, String version) { + if (version != null) { + return baseSystem + "_" + version; + } + return baseSystem; + } + } + + + private class CacheEntry { + private String request; + private boolean persistent; + private ValidationResult v; + private ValueSetExpansionOutcome e; + private SubsumesResult s; + } + + private class NamedCache { + private String name; + private List list = new ArrayList(); // persistent entries + private Map map = new HashMap(); + } + + + private Object lock; + private String folder; + @Getter private int requestCount; + @Getter private int hitCount; + @Getter private int networkCount; + + private final static long CAPABILITY_CACHE_EXPIRATION_HOURS = 24; + private final static long CAPABILITY_CACHE_EXPIRATION_MILLISECONDS = CAPABILITY_CACHE_EXPIRATION_HOURS * 60 * 60 * 1000; + private final long capabilityCacheExpirationMilliseconds; + private final TerminologyCapabilitiesCache capabilityStatementCache; + private final TerminologyCapabilitiesCache terminologyCapabilitiesCache; + private Map caches = new HashMap(); + private Map vsCache = new HashMap<>(); + private Map csCache = new HashMap<>(); + private Map serverMap = new HashMap<>(); + + @Getter @Setter private static boolean noCaching; + @Getter @Setter private static boolean cacheErrors; + + protected TerminologyCache(Object lock, String folder, Long capabilityCacheExpirationMilliseconds) throws FileNotFoundException, IOException, FHIRException { + super(); + this.lock = lock; + this.capabilityCacheExpirationMilliseconds = capabilityCacheExpirationMilliseconds; + capabilityStatementCache = new CommonsTerminologyCapabilitiesCache<>(capabilityCacheExpirationMilliseconds, TimeUnit.MILLISECONDS); + terminologyCapabilitiesCache = new CommonsTerminologyCapabilitiesCache<>(capabilityCacheExpirationMilliseconds, TimeUnit.MILLISECONDS); + if (folder == null) { + folder = Utilities.path("[tmp]", "default-tx-cache"); + } else if ("n/a".equals(folder)) { + // this is a weird way to do things but it maintains the legacy interface + folder = null; + } + this.folder = folder; + requestCount = 0; + hitCount = 0; + networkCount = 0; + + if (folder != null) { + File f = ManagedFileAccess.file(folder); + if (!f.exists()) { + FileUtilities.createDirectory(folder); + } + if (!f.exists()) { + throw new IOException("Unable to create terminology cache at "+folder); + } + checkVersion(); + load(); + } + } + + // use lock from the context + public TerminologyCache(Object lock, String folder) throws IOException, FHIRException { + this(lock, folder, CAPABILITY_CACHE_EXPIRATION_MILLISECONDS); + } + + private void checkVersion() throws IOException { + File verFile = ManagedFileAccess.file(Utilities.path(folder, "version.ctl")); + if (verFile.exists()) { + String ver = FileUtilities.fileToString(verFile); + if (!ver.equals(FIXED_CACHE_VERSION)) { + log.info("Terminology Cache Version has changed from 1 to "+FIXED_CACHE_VERSION+", so clearing txCache"); + clear(); + } + FileUtilities.stringToFile(FIXED_CACHE_VERSION, verFile); + } else { + FileUtilities.stringToFile(FIXED_CACHE_VERSION, verFile); + } + } + + public String getServerId(String address) throws IOException { + if (serverMap.containsKey(address)) { + return serverMap.get(address); + } + String id = address.replace("http://", "").replace("https://", "").replace("/", "."); + int i = 1; + while (serverMap.containsValue(id)) { + i++; + id = address.replace("https:", "").replace("https:", "").replace("/", ".")+i; + } + serverMap.put(address, id); + if (folder != null) { + IniFile ini = new IniFile(Utilities.path(folder, "servers.ini")); + ini.setStringProperty("servers", id, address, null); + ini.save(); + } + return id; + } + + public void unload() { + // not useable after this is called + caches.clear(); + vsCache.clear(); + csCache.clear(); + } + + public void clear() throws IOException { + if (folder != null) { + FileUtilities.clearDirectory(folder); + } + caches.clear(); + vsCache.clear(); + csCache.clear(); + } + + public boolean hasCapabilityStatement(String address) { + return capabilityStatementCache.containsKey(address); + } + + public CapabilityStatement getCapabilityStatement(String address) { + return capabilityStatementCache.get(address); + } + + public void cacheCapabilityStatement(String address, CapabilityStatement capabilityStatement) throws IOException { + if (noCaching) { + return; + } + this.capabilityStatementCache.put(address, capabilityStatement); + save(capabilityStatement, CAPABILITY_STATEMENT_TITLE+"."+getServerId(address)); + } + + + public boolean hasTerminologyCapabilities(String address) { + return terminologyCapabilitiesCache.containsKey(address); + } + + public TerminologyCapabilities getTerminologyCapabilities(String address) { + return terminologyCapabilitiesCache.get(address); + } + + public void cacheTerminologyCapabilities(String address, TerminologyCapabilities terminologyCapabilities) throws IOException { + if (noCaching) { + return; + } + this.terminologyCapabilitiesCache.put(address, terminologyCapabilities); + save(terminologyCapabilities, TERMINOLOGY_CAPABILITIES_TITLE+"."+getServerId(address)); + } + + + public CacheToken generateValidationToken(ValidationOptions options, Coding code, ValueSet vs, Parameters expParameters) { + try { + CacheToken ct = new CacheToken(); + if (code.hasSystem()) { + ct.setName(code.getSystem()); + ct.hasVersion = code.hasVersion(); + } + else + ct.name = NAME_FOR_NO_SYSTEM; + nameCacheToken(vs, ct); + JsonParser json = new JsonParser(); + json.setOutputStyle(OutputStyle.PRETTY); + String expJS = expParameters == null ? "" : json.composeString(expParameters); + + if (vs != null && vs.hasUrl() && vs.hasVersion()) { + ct.request = "{\"code\" : "+json.composeString(code, "codeableConcept")+", \"url\": \""+Utilities.escapeJson(vs.getUrl()) + +"\", \"version\": \""+Utilities.escapeJson(vs.getVersion())+"\""+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}\r\n"; + } else if (options.getVsAsUrl()) { + ct.request = "{\"code\" : "+json.composeString(code, "code")+", \"valueSet\" :"+extracted(json, vs)+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; + } else { + ValueSet vsc = getVSEssense(vs); + ct.request = "{\"code\" : "+json.composeString(code, "code")+", \"valueSet\" :"+(vsc == null ? "null" : extracted(json, vsc))+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; + } + ct.key = String.valueOf(hashJson(ct.request)); + return ct; + } catch (IOException e) { + throw new Error(e); + } + } + + public CacheToken generateValidationToken(ValidationOptions options, Coding code, String vsUrl, Parameters expParameters) { + try { + CacheToken ct = new CacheToken(); + if (code.hasSystem()) { + ct.setName(code.getSystem()); + ct.hasVersion = code.hasVersion(); + } else { + ct.name = NAME_FOR_NO_SYSTEM; + } + ct.setName(vsUrl); + JsonParser json = new JsonParser(); + json.setOutputStyle(OutputStyle.PRETTY); + String expJS = json.composeString(expParameters); + + ct.request = "{\"code\" : "+json.composeString(code, "code")+", \"valueSet\" :"+(vsUrl == null ? "null" : vsUrl)+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; + ct.key = String.valueOf(hashJson(ct.request)); + return ct; + } catch (IOException e) { + throw new Error(e); + } + } + + public String extracted(JsonParser json, ValueSet vsc) throws IOException { + String s = null; + if (vsc.getExpansion().getContains().size() > 1000 || vsc.getCompose().getIncludeFirstRep().getConcept().size() > 1000) { + s = vsc.getUrl(); + } else { + s = json.composeString(vsc); + } + return s; + } + + public CacheToken generateValidationToken(ValidationOptions options, CodeableConcept code, ValueSet vs, Parameters expParameters) { + try { + CacheToken ct = new CacheToken(); + for (Coding c : code.getCoding()) { + if (c.hasSystem()) { + ct.setName(c.getSystem()); + ct.hasVersion = c.hasVersion(); + } + } + nameCacheToken(vs, ct); + JsonParser json = new JsonParser(); + json.setOutputStyle(OutputStyle.PRETTY); + String expJS = json.composeString(expParameters); + if (vs != null && vs.hasUrl() && vs.hasVersion()) { + ct.request = "{\"code\" : "+json.composeString(code, "codeableConcept")+", \"url\": \""+Utilities.escapeJson(vs.getUrl())+ + "\", \"version\": \""+Utilities.escapeJson(vs.getVersion())+"\""+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}\r\n"; + } else if (vs == null) { + ct.request = "{\"code\" : "+json.composeString(code, "codeableConcept")+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; + } else { + ValueSet vsc = getVSEssense(vs); + ct.request = "{\"code\" : "+json.composeString(code, "codeableConcept")+", \"valueSet\" :"+extracted(json, vsc)+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; + } + ct.key = String.valueOf(hashJson(ct.request)); + return ct; + } catch (IOException e) { + throw new Error(e); + } + } + + public ValueSet getVSEssense(ValueSet vs) { + if (vs == null) + return null; + ValueSet vsc = new ValueSet(); + vsc.setCompose(vs.getCompose()); + if (vs.hasExpansion()) { + vsc.getExpansion().getParameter().addAll(vs.getExpansion().getParameter()); + vsc.getExpansion().getContains().addAll(vs.getExpansion().getContains()); + } + return vsc; + } + + public CacheToken generateExpandToken(ValueSet vs, ExpansionOptions options) { + CacheToken ct = new CacheToken(); + nameCacheToken(vs, ct); + if (vs.hasUrl() && vs.hasVersion()) { + ct.request = "{\"hierarchical\" : "+(options.isHierarchical() ? "true" : "false")+(options.hasLanguage() ? ", \"language\": \""+options.getLanguage()+"\"" : "")+", \"url\": \""+Utilities.escapeJson(vs.getUrl())+"\", \"version\": \""+Utilities.escapeJson(vs.getVersion())+"\"}\r\n"; + } else { + ValueSet vsc = getVSEssense(vs); + JsonParser json = new JsonParser(); + json.setOutputStyle(OutputStyle.PRETTY); + try { + ct.request = "{\"hierarchical\" : "+(options.isHierarchical() ? "true" : "false")+(options.hasLanguage() ? ", \"language\": \""+options.getLanguage()+"\"" : "")+", \"valueSet\" :"+extracted(json, vsc)+"}\r\n"; + } catch (IOException e) { + throw new Error(e); + } + } + ct.key = String.valueOf(hashJson(ct.request)); + return ct; + } + + public CacheToken generateExpandToken(String url, ExpansionOptions options) { + CacheToken ct = new CacheToken(); + ct.request = "{\"hierarchical\" : "+(options.isHierarchical() ? "true" : "false")+(options.hasLanguage() ? ", \"language\": \""+options.getLanguage()+"\"" : "")+", \"url\": \""+Utilities.escapeJson(url)+"\"}\r\n"; + ct.key = String.valueOf(hashJson(ct.request)); + return ct; + } + + public void nameCacheToken(ValueSet vs, CacheToken ct) { + if (vs != null) { + for (ConceptSetComponent inc : vs.getCompose().getInclude()) { + if (inc.hasSystem()) { + ct.setName(inc.getSystem()); + ct.hasVersion = inc.hasVersion(); + } + } + for (ConceptSetComponent inc : vs.getCompose().getExclude()) { + if (inc.hasSystem()) { + ct.setName(inc.getSystem()); + ct.hasVersion = inc.hasVersion(); + } + } + for (ValueSetExpansionContainsComponent inc : vs.getExpansion().getContains()) { + if (inc.hasSystem()) { + ct.setName(inc.getSystem()); + ct.hasVersion = inc.hasVersion(); + } + } + } + } + + private String normalizeSystemPath(String path) { + return path.replace("/", "").replace('|','X'); + } + + + + public NamedCache getNamedCache(CacheToken cacheToken) { + + final String cacheName = cacheToken.name == null ? "null" : cacheToken.name; + + NamedCache nc = caches.get(cacheName); + + if (nc == null) { + nc = new NamedCache(); + nc.name = cacheName; + caches.put(nc.name, nc); + } + return nc; + } + + public ValueSetExpansionOutcome getExpansion(CacheToken cacheToken) { + synchronized (lock) { + NamedCache nc = getNamedCache(cacheToken); + CacheEntry e = nc.map.get(cacheToken.key); + if (e == null) + return null; + else + return e.e; + } + } + + public void cacheExpansion(CacheToken cacheToken, ValueSetExpansionOutcome res, boolean persistent) { + synchronized (lock) { + NamedCache nc = getNamedCache(cacheToken); + CacheEntry e = new CacheEntry(); + e.request = cacheToken.request; + e.persistent = persistent; + e.e = res; + store(cacheToken, persistent, nc, e); + } + } + + public void store(CacheToken cacheToken, boolean persistent, NamedCache nc, CacheEntry e) { + if (noCaching) { + return; + } + + if ( !cacheErrors && + ( e.v!= null + && e.v.getErrorClass() == TerminologyServiceErrorClass.CODESYSTEM_UNSUPPORTED + && !cacheToken.hasVersion)) { + return; + } + + boolean n = nc.map.containsKey(cacheToken.key); + nc.map.put(cacheToken.key, e); + if (persistent) { + if (n) { + for (int i = nc.list.size()- 1; i>= 0; i--) { + if (nc.list.get(i).request.equals(e.request)) { + nc.list.remove(i); + } + } + } + nc.list.add(e); + save(nc); + } + } + + public ValidationResult getValidation(CacheToken cacheToken) { + if (cacheToken.key == null) { + return null; + } + synchronized (lock) { + requestCount++; + NamedCache nc = getNamedCache(cacheToken); + CacheEntry e = nc.map.get(cacheToken.key); + if (e == null) { + networkCount++; + return null; + } else { + hitCount++; + return new ValidationResult(e.v); + } + } + } + + public void cacheValidation(CacheToken cacheToken, ValidationResult res, boolean persistent) { + if (cacheToken.key != null) { + synchronized (lock) { + NamedCache nc = getNamedCache(cacheToken); + CacheEntry e = new CacheEntry(); + e.request = cacheToken.request; + e.persistent = persistent; + e.v = new ValidationResult(res); + store(cacheToken, persistent, nc, e); + } + } + } + + + // persistence + + public void save() { + + } + + private void save(K resource, String title) { + if (folder == null) + return; + + try { + OutputStreamWriter sw = new OutputStreamWriter(ManagedFileAccess.outStream(Utilities.path(folder, title + CACHE_FILE_EXTENSION)), "UTF-8"); + + JsonParser json = new JsonParser(); + json.setOutputStyle(OutputStyle.PRETTY); + + sw.write(json.composeString(resource).trim()); + sw.close(); + } catch (Exception e) { + log.error("error saving capability statement "+e.getMessage(), e); + } + } + + private void save(NamedCache nc) { + if (folder == null) + return; + + try { + OutputStreamWriter sw = new OutputStreamWriter(ManagedFileAccess.outStream(Utilities.path(folder, nc.name+CACHE_FILE_EXTENSION)), "UTF-8"); + sw.write(ENTRY_MARKER+"\r\n"); + JsonParser json = new JsonParser(); + json.setOutputStyle(OutputStyle.PRETTY); + for (CacheEntry ce : nc.list) { + sw.write(ce.request.trim()); + sw.write(BREAK+"\r\n"); + if (ce.e != null) { + sw.write("e: {\r\n"); + if (ce.e.isFromServer()) + sw.write(" \"from-server\" : true,\r\n"); + if (ce.e.getValueset() != null) { + if (ce.e.getValueset().hasUserData(UserDataNames.VS_EXPANSION_SOURCE)) { + sw.write(" \"source\" : "+Utilities.escapeJson(ce.e.getValueset().getUserString(UserDataNames.VS_EXPANSION_SOURCE)).trim()+",\r\n"); + } + sw.write(" \"valueSet\" : "+json.composeString(ce.e.getValueset()).trim()+",\r\n"); + } + sw.write(" \"error\" : \""+Utilities.escapeJson(ce.e.getError()).trim()+"\"\r\n}\r\n"); + } else if (ce.s != null) { + sw.write("s: {\r\n"); + sw.write(" \"result\" : "+ce.s.result+"\r\n}\r\n"); + } else { + sw.write("v: {\r\n"); + boolean first = true; + if (ce.v.getDisplay() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"display\" : \""+Utilities.escapeJson(ce.v.getDisplay()).trim()+"\""); + } + if (ce.v.getCode() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"code\" : \""+Utilities.escapeJson(ce.v.getCode()).trim()+"\""); + } + if (ce.v.getSystem() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"system\" : \""+Utilities.escapeJson(ce.v.getSystem()).trim()+"\""); + } + if (ce.v.getVersion() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"version\" : \""+Utilities.escapeJson(ce.v.getVersion()).trim()+"\""); + } + if (ce.v.getSeverity() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"severity\" : "+"\""+ce.v.getSeverity().toCode().trim()+"\""+""); + } + if (ce.v.getMessage() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"error\" : \""+Utilities.escapeJson(ce.v.getMessage()).trim()+"\""); + } + if (ce.v.getErrorClass() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"class\" : \""+Utilities.escapeJson(ce.v.getErrorClass().toString())+"\""); + } + if (ce.v.getDefinition() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"definition\" : \""+Utilities.escapeJson(ce.v.getDefinition()).trim()+"\""); + } + if (ce.v.getStatus() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"status\" : \""+Utilities.escapeJson(ce.v.getStatus()).trim()+"\""); + } + if (ce.v.getServer() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"server\" : \""+Utilities.escapeJson(ce.v.getServer()).trim()+"\""); + } + if (ce.v.isInactive()) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"inactive\" : true"); + } + if (ce.v.getDiagnostics() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"diagnostics\" : \""+Utilities.escapeJson(ce.v.getDiagnostics()).trim()+"\""); + } + if (ce.v.getUnknownSystems() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"unknown-systems\" : \""+Utilities.escapeJson(CommaSeparatedStringBuilder.join(",", ce.v.getUnknownSystems())).trim()+"\""); + } + if (ce.v.getParameters() != null) { + if (first) first = false; else sw.write(",\r\n"); + sw.write(" \"parameters\" : "+json.composeString(ce.v.getParameters()).trim()+"\r\n"); + } + if (ce.v.getIssues() != null) { + if (first) first = false; else sw.write(",\r\n"); + OperationOutcome oo = new OperationOutcome(); + oo.setIssue(ce.v.getIssues()); + sw.write(" \"issues\" : "+json.composeString(oo).trim()+"\r\n"); + } + sw.write("\r\n}\r\n"); + } + sw.write(ENTRY_MARKER+"\r\n"); + } + sw.close(); + } catch (Exception e) { + log.error("error saving "+nc.name+": "+e.getMessage(), e); + } + } + + private boolean isCapabilityCache(String fn) { + if (fn == null) { + return false; + } + return fn.startsWith(CAPABILITY_STATEMENT_TITLE) || fn.startsWith(TERMINOLOGY_CAPABILITIES_TITLE); + } + + private void loadCapabilityCache(String fn) throws IOException { + if (TerminologyCapabilitiesCache.cacheFileHasExpired(Utilities.path(folder, fn), capabilityCacheExpirationMilliseconds)) { + return; + } + try { + String src = FileUtilities.fileToString(Utilities.path(folder, fn)); + String serverId = Utilities.getFileNameForName(fn).replace(CACHE_FILE_EXTENSION, ""); + serverId = serverId.substring(serverId.indexOf(".")+1); + serverId = serverId.substring(serverId.indexOf(".")+1); + String address = getServerForId(serverId); + if (address != null) { + JsonObject o = (JsonObject) new com.google.gson.JsonParser().parse(src); + Resource resource = new JsonParser().parse(o); + + if (fn.startsWith(CAPABILITY_STATEMENT_TITLE)) { + this.capabilityStatementCache.put(address, (CapabilityStatement) resource); + } else if (fn.startsWith(TERMINOLOGY_CAPABILITIES_TITLE)) { + this.terminologyCapabilitiesCache.put(address, (TerminologyCapabilities) resource); + } + } + } catch (Exception e) { + e.printStackTrace(); + throw new FHIRException("Error loading " + fn + ": " + e.getMessage(), e); + } + } + + private String getServerForId(String serverId) { + for (String n : serverMap.keySet()) { + if (serverMap.get(n).equals(serverId)) { + return n; + } + } + return null; + } + + private CacheEntry getCacheEntry(String request, String resultString) throws IOException { + CacheEntry ce = new CacheEntry(); + ce.persistent = true; + ce.request = request; + char e = resultString.charAt(0); + resultString = resultString.substring(3); + JsonObject o = (JsonObject) new com.google.gson.JsonParser().parse(resultString); + String error = loadJS(o.get("error")); + if (e == 'e') { + if (o.has("valueSet")) { + ce.e = new ValueSetExpansionOutcome((ValueSet) new JsonParser().parse(o.getAsJsonObject("valueSet")), error, TerminologyServiceErrorClass.UNKNOWN, o.has("from-server")); + if (o.has("source")) { + ce.e.getValueset().setUserData(UserDataNames.VS_EXPANSION_SOURCE, o.get("source").getAsString()); + } + } else { + ce.e = new ValueSetExpansionOutcome(error, TerminologyServiceErrorClass.UNKNOWN, o.has("from-server")); + } + } else if (e == 's') { + ce.s = new SubsumesResult(o.get("result").getAsBoolean()); + } else { + String t = loadJS(o.get("severity")); + IssueSeverity severity = t == null ? null : IssueSeverity.fromCode(t); + String display = loadJS(o.get("display")); + String code = loadJS(o.get("code")); + String system = loadJS(o.get("system")); + String version = loadJS(o.get("version")); + String definition = loadJS(o.get("definition")); + String server = loadJS(o.get("server")); + String status = loadJS(o.get("status")); + boolean inactive = "true".equals(loadJS(o.get("inactive"))); + String unknownSystems = loadJS(o.get("unknown-systems")); + OperationOutcome oo = o.has("issues") ? (OperationOutcome) new JsonParser().parse(o.getAsJsonObject("issues")) : null; + Parameters p = o.has("parameters") ? (Parameters) new JsonParser().parse(o.getAsJsonObject("parameters")) : null; + t = loadJS(o.get("class")); + TerminologyServiceErrorClass errorClass = t == null ? null : TerminologyServiceErrorClass.valueOf(t) ; + ce.v = new ValidationResult(severity, error, system, version, new ConceptDefinitionComponent().setDisplay(display).setDefinition(definition).setCode(code), display, null).setErrorClass(errorClass); + ce.v.setUnknownSystems(CommaSeparatedStringBuilder.toSet(unknownSystems)); + ce.v.setServer(server); + ce.v.setStatus(inactive, status); + ce.v.setDiagnostics(loadJS(o.get("diagnostics"))); + if (oo != null) { + ce.v.setIssues(oo.getIssue()); + } + if (p != null) { + ce.v.setParameters(p); + } + } + return ce; + } + + private void loadNamedCache(String fn) throws IOException { + int c = 0; + try { + String src = FileUtilities.fileToString(Utilities.path(folder, fn)); + String title = fn.substring(0, fn.lastIndexOf(".")); + + NamedCache nc = new NamedCache(); + nc.name = title; + + if (src.startsWith("?")) + src = src.substring(1); + int i = src.indexOf(ENTRY_MARKER); + while (i > -1) { + c++; + String s = src.substring(0, i); + src = src.substring(i + ENTRY_MARKER.length() + 1); + i = src.indexOf(ENTRY_MARKER); + if (!Utilities.noString(s)) { + int j = s.indexOf(BREAK); + String request = s.substring(0, j); + String p = s.substring(j + BREAK.length() + 1).trim(); + + CacheEntry cacheEntry = getCacheEntry(request, p); + + nc.map.put(String.valueOf(hashJson(cacheEntry.request)), cacheEntry); + nc.list.add(cacheEntry); + } + caches.put(nc.name, nc); + } + } catch (Exception e) { + log.error("Error loading "+fn+": "+e.getMessage()+" entry "+c+" - ignoring it", e); + } + } + + private void load() throws FHIRException, IOException { + IniFile ini = new IniFile(Utilities.path(folder, "servers.ini")); + if (ini.hasSection("servers")) { + for (String n : ini.getPropertyNames("servers")) { + serverMap.put(ini.getStringProperty("servers", n), n); + } + } + + for (String fn : ManagedFileAccess.file(folder).list()) { + if (fn.endsWith(CACHE_FILE_EXTENSION) && !fn.equals("validation" + CACHE_FILE_EXTENSION)) { + try { + if (isCapabilityCache(fn)) { + loadCapabilityCache(fn); + } else { + loadNamedCache(fn); + } + } catch (FHIRException e) { + throw e; + } + } + } + try { + File f = ManagedFileAccess.file(Utilities.path(folder, "vs-externals.json")); + if (f.exists()) { + org.hl7.fhir.utilities.json.model.JsonObject json = org.hl7.fhir.utilities.json.parser.JsonParser.parseObject(f); + for (JsonProperty p : json.getProperties()) { + if (p.getValue().isJsonNull()) { + vsCache.put(p.getName(), null); + } else { + org.hl7.fhir.utilities.json.model.JsonObject j = p.getValue().asJsonObject(); + vsCache.put(p.getName(), new SourcedValueSetEntry(j.asString("server"), j.asString("filename"))); + } + } + } + } catch (Exception e) { + log.error("Error loading vs external cache: "+e.getMessage(), e); + } + try { + File f = ManagedFileAccess.file(Utilities.path(folder, "cs-externals.json")); + if (f.exists()) { + org.hl7.fhir.utilities.json.model.JsonObject json = org.hl7.fhir.utilities.json.parser.JsonParser.parseObject(f); + for (JsonProperty p : json.getProperties()) { + if (p.getValue().isJsonNull()) { + csCache.put(p.getName(), null); + } else { + org.hl7.fhir.utilities.json.model.JsonObject j = p.getValue().asJsonObject(); + csCache.put(p.getName(), new SourcedCodeSystemEntry(j.asString("server"), j.asString("filename"))); + } + } + } + } catch (Exception e) { + log.error("Error loading vs external cache: "+e.getMessage(), e); + } + } + + private String loadJS(JsonElement e) { + if (e == null) + return null; + if (!(e instanceof JsonPrimitive)) + return null; + String s = e.getAsString(); + if ("".equals(s)) + return null; + return s; + } + + public String hashJson(String s) { + return String.valueOf(s + .trim() + .replaceAll("\\r\\n?", "\n") + .hashCode()); + } + + // management + + public String summary(ValueSet vs) { + if (vs == null) + return "null"; + + CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder(); + for (ConceptSetComponent cc : vs.getCompose().getInclude()) + b.append("Include "+getIncSummary(cc)); + for (ConceptSetComponent cc : vs.getCompose().getExclude()) + b.append("Exclude "+getIncSummary(cc)); + return b.toString(); + } + + private String getIncSummary(ConceptSetComponent cc) { + CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder(); + for (UriType vs : cc.getValueSet()) + b.append(vs.asStringValue()); + String vsd = b.length() > 0 ? " where the codes are in the value sets ("+b.toString()+")" : ""; + String system = cc.getSystem(); + if (cc.hasConcept()) + return Integer.toString(cc.getConcept().size())+" codes from "+system+vsd; + if (cc.hasFilter()) { + String s = ""; + for (ConceptSetFilterComponent f : cc.getFilter()) { + if (!Utilities.noString(s)) + s = s + " & "; + s = s + f.getProperty()+" "+(f.hasOp() ? f.getOp().toCode() : "?")+" "+f.getValue(); + } + return "from "+system+" where "+s+vsd; + } + return "All codes from "+system+vsd; + } + + public String summary(Coding code) { + return code.getSystem()+"#"+code.getCode()+(code.hasDisplay() ? ": \""+code.getDisplay()+"\"" : ""); + } + + public String summary(CodeableConcept code) { + StringBuilder b = new StringBuilder(); + b.append("{"); + boolean first = true; + for (Coding c : code.getCoding()) { + if (first) first = false; else b.append(","); + b.append(summary(c)); + } + b.append("}: \""); + b.append(code.getText()); + b.append("\""); + return b.toString(); + } + + public void removeCS(String url) { + synchronized (lock) { + String name = getSystemNameKeyGenerator().getNameForSystem(url); + if (caches.containsKey(name)) { + caches.remove(name); + } + } + } + + public String getFolder() { + return folder; + } + + public Map servers() { + Map servers = new HashMap<>(); // servers.put("http://local.fhir.org/r2", "tx.fhir.org"); // servers.put("http://local.fhir.org/r3", "tx.fhir.org"); // servers.put("http://local.fhir.org/r4", "tx.fhir.org"); @@ -1049,188 +1072,182 @@ public Map servers() { // servers.put("http://tx-dev.fhir.org/r4", "tx.fhir.org"); // servers.put("http://tx-dev.fhir.org/r5", "tx.fhir.org"); - servers.put("http://tx.fhir.org/r2", "tx.fhir.org"); - servers.put("http://tx.fhir.org/r3", "tx.fhir.org"); - servers.put("http://tx.fhir.org/r4", "tx.fhir.org"); - servers.put("http://tx.fhir.org/r5", "tx.fhir.org"); - - return servers; - } - - public boolean hasValueSet(String canonical) { - return vsCache.containsKey(canonical); - } - - public boolean hasCodeSystem(String canonical) { - return csCache.containsKey(canonical); - } - - public SourcedValueSet getValueSet(String canonical) { - log.trace("QLDBG getValueSet {}", canonical); - SourcedValueSetEntry sp = vsCache.get(canonical); - if (sp == null || folder == null) { - return null; - } else { - try { - return new SourcedValueSet(sp.getServer(), sp.getFilename() == null ? null : (ValueSet) new JsonParser().parse(ManagedFileAccess.inStream(Utilities.path(folder, sp.getFilename())))); - } catch (Exception e) { - return null; - } - } - } - - public SourcedCodeSystem getCodeSystem(String canonical) { - log.trace("QLDBG getCodeSystem {}", canonical); - SourcedCodeSystemEntry sp = csCache.get(canonical); - if (sp == null || folder == null) { - return null; - } else { - try { - return new SourcedCodeSystem(sp.getServer(), sp.getFilename() == null ? null : (CodeSystem) new JsonParser().parse(ManagedFileAccess.inStream(Utilities.path(folder, sp.getFilename())))); - } catch (Exception e) { - return null; - } - } - } - - public void cacheValueSet(String canonical, SourcedValueSet svs) { - log.trace("QLDBG cacheValueSet {}", canonical); - if (canonical == null) { - return; - } - try { - if (svs == null) { - vsCache.put(canonical, null); - } else { - String uuid = UUIDUtilities.makeUuidLC(); - String fn = "vs-"+uuid+".json"; - if (folder != null) { - new JsonParser().compose(ManagedFileAccess.outStream(Utilities.path(folder, fn)), svs.getVs()); - } - vsCache.put(canonical, new SourcedValueSetEntry(svs.getServer(), fn)); - } - org.hl7.fhir.utilities.json.model.JsonObject j = new org.hl7.fhir.utilities.json.model.JsonObject(); - for (String k : vsCache.keySet()) { - SourcedValueSetEntry sve = vsCache.get(k); - if (sve == null) { - j.add(k, new JsonNull()); - } else { - org.hl7.fhir.utilities.json.model.JsonObject e = new org.hl7.fhir.utilities.json.model.JsonObject(); - e.set("server", sve.getServer()); - if (sve.getFilename() != null) { - e.set("filename", sve.getFilename()); - } - j.add(k, e); - } - } - if (folder != null) { - org.hl7.fhir.utilities.json.parser.JsonParser.compose(j, ManagedFileAccess.file(Utilities.path(folder, "vs-externals.json")), true); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - public void cacheCodeSystem(String canonical, SourcedCodeSystem scs) { - log.trace("QLDBG cacheCodeSystem {}", canonical); - if (canonical == null) { - return; - } - try { - if (scs == null) { - csCache.put(canonical, null); - } else { - String uuid = UUIDUtilities.makeUuidLC(); - String fn = "cs-"+uuid+".json"; - if (folder != null) { - new JsonParser().compose(ManagedFileAccess.outStream(Utilities.path(folder, fn)), scs.getCs()); - } - csCache.put(canonical, new SourcedCodeSystemEntry(scs.getServer(), fn)); - } - org.hl7.fhir.utilities.json.model.JsonObject j = new org.hl7.fhir.utilities.json.model.JsonObject(); - for (String k : csCache.keySet()) { - SourcedCodeSystemEntry sve = csCache.get(k); - if (sve == null) { - j.add(k, new JsonNull()); - } else { - org.hl7.fhir.utilities.json.model.JsonObject e = new org.hl7.fhir.utilities.json.model.JsonObject(); - e.set("server", sve.getServer()); - if (sve.getFilename() != null) { - e.set("filename", sve.getFilename()); - } - j.add(k, e); - } - } - if (folder != null) { - org.hl7.fhir.utilities.json.parser.JsonParser.compose(j, ManagedFileAccess.file(Utilities.path(folder, "cs-externals.json")), true); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - public CacheToken generateSubsumesToken(ValidationOptions options, Coding parent, Coding child, Parameters expParameters) { - try { - CacheToken ct = new CacheToken(); - if (parent.hasSystem()) { - ct.setName(parent.getSystem()); - } - if (child.hasSystem()) { - ct.setName(child.getSystem()); - } - ct.hasVersion = parent.hasVersion() || child.hasVersion(); - JsonParser json = new JsonParser(); - json.setOutputStyle(OutputStyle.PRETTY); - // PATCH MATCHBOX: need to copy expParameters to avoid multithreading issues, see https://github.com/ahdis/matchbox/issues/425 - String expJS = expParameters == null ? "" : json.composeString(expParameters.copy()); - // END PATCH MATCHBOX - ct.request = "{\"op\": \"subsumes\", \"parent\" : "+json.composeString(parent, "code")+", \"child\" :"+json.composeString(child, "code")+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; - ct.key = String.valueOf(hashJson(ct.request)); - return ct; - } catch (IOException e) { - throw new Error(e); - } - } - - public Boolean getSubsumes(CacheToken cacheToken) { - if (cacheToken.key == null) { - return null; - } - synchronized (lock) { - requestCount++; - NamedCache nc = getNamedCache(cacheToken); - CacheEntry e = nc.map.get(cacheToken.key); - if (e == null) { - networkCount++; - return null; - } else { - hitCount++; - return e.s.result; - } - } - - } - - public void cacheSubsumes(CacheToken cacheToken, Boolean b, boolean persistent) { - if (cacheToken.key != null) { - synchronized (lock) { - NamedCache nc = getNamedCache(cacheToken); - CacheEntry e = new CacheEntry(); - e.request = cacheToken.request; - e.persistent = persistent; - e.s = new SubsumesResult(b); - store(cacheToken, persistent, nc, e); - } - } - } - - - public String getReport() { - int c = 0; - for (NamedCache nc : caches.values()) { - c += nc.list.size(); - } - return "txCache report: "+ - c+" entries in "+caches.size()+" buckets + "+vsCache.size()+" VS, "+csCache.size()+" CS & "+serverMap.size()+" SM. Hitcount = "+hitCount+"/"+requestCount+", "+networkCount; - } + servers.put("http://tx.fhir.org/r2", "tx.fhir.org"); + servers.put("http://tx.fhir.org/r3", "tx.fhir.org"); + servers.put("http://tx.fhir.org/r4", "tx.fhir.org"); + servers.put("http://tx.fhir.org/r5", "tx.fhir.org"); + + return servers; + } + + public boolean hasValueSet(String canonical) { + return vsCache.containsKey(canonical); + } + + public boolean hasCodeSystem(String canonical) { + return csCache.containsKey(canonical); + } + + public SourcedValueSet getValueSet(String canonical) { + SourcedValueSetEntry sp = vsCache.get(canonical); + if (sp == null || folder == null) { + return null; + } else { + try { + return new SourcedValueSet(sp.getServer(), sp.getFilename() == null ? null : (ValueSet) new JsonParser().parse(ManagedFileAccess.inStream(Utilities.path(folder, sp.getFilename())))); + } catch (Exception e) { + return null; + } + } + } + + public SourcedCodeSystem getCodeSystem(String canonical) { + SourcedCodeSystemEntry sp = csCache.get(canonical); + if (sp == null || folder == null) { + return null; + } else { + try { + return new SourcedCodeSystem(sp.getServer(), sp.getFilename() == null ? null : (CodeSystem) new JsonParser().parse(ManagedFileAccess.inStream(Utilities.path(folder, sp.getFilename())))); + } catch (Exception e) { + return null; + } + } + } + + public void cacheValueSet(String canonical, SourcedValueSet svs) { + if (canonical == null) { + return; + } + try { + if (svs == null) { + vsCache.put(canonical, null); + } else { + String uuid = UUIDUtilities.makeUuidLC(); + String fn = "vs-"+uuid+".json"; + if (folder != null) { + new JsonParser().compose(ManagedFileAccess.outStream(Utilities.path(folder, fn)), svs.getVs()); + } + vsCache.put(canonical, new SourcedValueSetEntry(svs.getServer(), fn)); + } + org.hl7.fhir.utilities.json.model.JsonObject j = new org.hl7.fhir.utilities.json.model.JsonObject(); + for (String k : vsCache.keySet()) { + SourcedValueSetEntry sve = vsCache.get(k); + if (sve == null) { + j.add(k, new JsonNull()); + } else { + org.hl7.fhir.utilities.json.model.JsonObject e = new org.hl7.fhir.utilities.json.model.JsonObject(); + e.set("server", sve.getServer()); + if (sve.getFilename() != null) { + e.set("filename", sve.getFilename()); + } + j.add(k, e); + } + } + if (folder != null) { + org.hl7.fhir.utilities.json.parser.JsonParser.compose(j, ManagedFileAccess.file(Utilities.path(folder, "vs-externals.json")), true); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + public void cacheCodeSystem(String canonical, SourcedCodeSystem scs) { + if (canonical == null) { + return; + } + try { + if (scs == null) { + csCache.put(canonical, null); + } else { + String uuid = UUIDUtilities.makeUuidLC(); + String fn = "cs-"+uuid+".json"; + if (folder != null) { + new JsonParser().compose(ManagedFileAccess.outStream(Utilities.path(folder, fn)), scs.getCs()); + } + csCache.put(canonical, new SourcedCodeSystemEntry(scs.getServer(), fn)); + } + org.hl7.fhir.utilities.json.model.JsonObject j = new org.hl7.fhir.utilities.json.model.JsonObject(); + for (String k : csCache.keySet()) { + SourcedCodeSystemEntry sve = csCache.get(k); + if (sve == null) { + j.add(k, new JsonNull()); + } else { + org.hl7.fhir.utilities.json.model.JsonObject e = new org.hl7.fhir.utilities.json.model.JsonObject(); + e.set("server", sve.getServer()); + if (sve.getFilename() != null) { + e.set("filename", sve.getFilename()); + } + j.add(k, e); + } + } + if (folder != null) { + org.hl7.fhir.utilities.json.parser.JsonParser.compose(j, ManagedFileAccess.file(Utilities.path(folder, "cs-externals.json")), true); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + public CacheToken generateSubsumesToken(ValidationOptions options, Coding parent, Coding child, Parameters expParameters) { + try { + CacheToken ct = new CacheToken(); + if (parent.hasSystem()) { + ct.setName(parent.getSystem()); + } + if (child.hasSystem()) { + ct.setName(child.getSystem()); + } + ct.hasVersion = parent.hasVersion() || child.hasVersion(); + JsonParser json = new JsonParser(); + json.setOutputStyle(OutputStyle.PRETTY); + String expJS = json.composeString(expParameters); + ct.request = "{\"op\": \"subsumes\", \"parent\" : "+json.composeString(parent, "code")+", \"child\" :"+json.composeString(child, "code")+(options == null ? "" : ", "+options.toJson())+", \"profile\": "+expJS+"}"; + ct.key = String.valueOf(hashJson(ct.request)); + return ct; + } catch (IOException e) { + throw new Error(e); + } + } + + public Boolean getSubsumes(CacheToken cacheToken) { + if (cacheToken.key == null) { + return null; + } + synchronized (lock) { + requestCount++; + NamedCache nc = getNamedCache(cacheToken); + CacheEntry e = nc.map.get(cacheToken.key); + if (e == null) { + networkCount++; + return null; + } else { + hitCount++; + return e.s.result; + } + } + + } + + public void cacheSubsumes(CacheToken cacheToken, Boolean b, boolean persistent) { + if (cacheToken.key != null) { + synchronized (lock) { + NamedCache nc = getNamedCache(cacheToken); + CacheEntry e = new CacheEntry(); + e.request = cacheToken.request; + e.persistent = persistent; + e.s = new SubsumesResult(b); + store(cacheToken, persistent, nc, e); + } + } + } + + + public String getReport() { + int c = 0; + for (NamedCache nc : caches.values()) { + c += nc.list.size(); + } + return "txCache report: "+ + c+" entries in "+caches.size()+" buckets + "+vsCache.size()+" VS, "+csCache.size()+" CS & "+serverMap.size()+" SM. Hitcount = "+hitCount+"/"+requestCount+", "+networkCount; + } } \ No newline at end of file diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/r5/utils/structuremap/FHIRPathHostServices.java b/matchbox-engine/src/main/java/org/hl7/fhir/r5/utils/structuremap/FHIRPathHostServices.java index 9a64381f30a..5fc17c2b40e 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/r5/utils/structuremap/FHIRPathHostServices.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/r5/utils/structuremap/FHIRPathHostServices.java @@ -149,4 +149,23 @@ public ValueSet resolveValueSet(FHIRPathEngine engine, Object appContext, String public boolean paramIsType(String name, int index) { return false; } + + @Override + public Base findContainingResource(Object appContext, Base item) { + if (item instanceof Element) { + Element element = (Element) item; + while (element != null && !(element.isResource() && element.getSpecial() != Element.SpecialElement.CONTAINED)) { + element = element.getParentForValidator(); + } + if (element != null) { + return element; + } + } + if (item instanceof Resource) { + return item; + } + // now it gets hard + return null; // for now + } + } diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/utilities/npm/FilesystemPackageCacheManager.java b/matchbox-engine/src/main/java/org/hl7/fhir/utilities/npm/FilesystemPackageCacheManager.java index 879c322df2b..6b9a9295c04 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/utilities/npm/FilesystemPackageCacheManager.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/utilities/npm/FilesystemPackageCacheManager.java @@ -91,7 +91,7 @@ public interface IPackageProvider { public static final String PACKAGE_VERSION_REGEX = "^[A-Za-z][A-Za-z0-9\\_\\-]*(\\.[A-Za-z0-9\\_\\-]+)+\\#[A-Za-z0-9\\-\\_\\$]+(\\.[A-Za-z0-9\\-\\_\\$]+)*$"; public static final String PACKAGE_VERSION_REGEX_OPT = "^[A-Za-z][A-Za-z0-9\\_\\-]*(\\.[A-Za-z0-9\\_\\-]+)+(\\#[A-Za-z0-9\\-\\_]+(\\.[A-Za-z0-9\\-\\_]+)*)?$"; private static final Logger ourLog = LoggerFactory.getLogger(FilesystemPackageCacheManager.class); - private static final String CACHE_VERSION = "3"; // second version - see wiki page + private static final String CACHE_VERSION = "4"; // second version - see wiki page @Getter private final CIBuildClient ciBuildClient; @@ -247,7 +247,7 @@ protected void prepareCacheFolder() throws IOException { */ protected void cleanUpCorruptPackages() throws IOException { for (File file : Objects.requireNonNull(cacheFolder.listFiles())) { - if (file.getName().endsWith(".lock")) { + if (FilesystemPackageCacheManagerLocks.isLockFile(file.getName())) { if (locks.getCacheLock().canLockFileBeHeldByThisProcess(file)) { String packageDirectoryName = file.getName().substring(0, file.getName().length() - 5); log.info("Detected potential incomplete package installed in cache: " + packageDirectoryName + ". Attempting to delete"); @@ -298,9 +298,14 @@ private void clearCache() throws IOException { for (File f : Objects.requireNonNull(cacheFolder.listFiles())) { if (f.isDirectory()) { FileUtilities.atomicDeleteDirectory(f.getAbsolutePath()); - - } else if (!f.getName().equals("packages.ini")) { - FileUtils.forceDelete(f); + } else if (!f.getName().equals("packages.ini") + // These files are package locks. They could interfere with running processes. + ) { + if (FilesystemPackageCacheManagerLocks.isLockFile(f.getName())) { + log.warn("Encountered package lock while clearing cache: {} It is possible that another process is modifying this cache. Lock-file deletion was not attempted.", f.getAbsolutePath()); + } else { + FileUtils.forceDelete(f); + } } } @@ -355,9 +360,7 @@ protected InputStreamWithSrc loadFromPackageServer(String id, String version) { String packageName = id + "#" + version; switch (packageName) { case MatchboxEngine.PACKAGE_R4_TERMINOLOGY: - case MatchboxEngine.PACKAGE_R4_TERMINOLOGY65: case MatchboxEngine.PACKAGE_R5_TERMINOLOGY: - case MatchboxEngine.PACKAGE_R5_TERMINOLOGY65: case MatchboxEngine.PACKAGE_R4_UV_EXTENSIONS: case MatchboxEngine.PACKAGE_R5_UV_EXTENSIONS: ourLog.info("loading from classpath "+id); @@ -410,6 +413,33 @@ public String getLatestVersion(String id, boolean milestonesOnly) throws IOExcep throw new FHIRException("Unable to find the last version for package " + id + ": no local copy, and no network access"); } + public String getLatestVersion(String id, String versionFilter) throws IOException { + id = stripAlias(id); + for (PackageServer nextPackageServer : getPackageServers()) { + // special case: + if (!(Utilities.existsInList(id, CommonPackages.ID_PUBPACK, "hl7.terminology.r5") && PackageServer.SECONDARY_SERVER.equals(nextPackageServer.getUrl()))) { + PackageClient pc = new PackageClient(nextPackageServer); + try { + return pc.getLatestVersion(id, versionFilter); + } catch (IOException e) { + ourLog.info("Failed to determine latest version of package {} from server: {}", id, nextPackageServer.toString()); + } + } + } + try { + return fetchVersionTheOldWay(id, versionFilter); + } catch (Exception e) { + ourLog.info("Failed to determine latest version of package {} from server: {}", id, "build.fhir.org"); + } + // still here? use the latest version we previously found or at least, is in the cache + + String version = getLatestVersionFromCache(id, versionFilter); + if (version != null) { + return version; + } + throw new FHIRException("Unable to find the last version for package " + id + ": no local copy, and no network access"); + } + public String getLatestVersionFromCache(String id) throws IOException { id = stripAlias(id); for (String f : Utilities.reverseSorted(cacheFolder.list())) { @@ -425,6 +455,23 @@ public String getLatestVersionFromCache(String id) throws IOException { return null; } + public String getLatestVersionFromCache(String id, String versionFilter) throws IOException { + id = stripAlias(id); + for (String f : Utilities.reverseSorted(cacheFolder.list())) { + File cf = ManagedFileAccess.file(Utilities.path(cacheFolder, f)); + if (cf.isDirectory()) { + if (f.startsWith(id + "#")) { + String ver = f.substring(f.indexOf("#") + 1); + if (VersionUtilities.versionMatches(versionFilter, ver)) { + ourLog.info("Latest version of package {} found locally is {} - using that", id, ver); + return ver; + } + } + } + } + return null; + } + private NpmPackage loadPackageFromFile(String id, String folder) throws IOException { File f = ManagedFileAccess.file(Utilities.path(folder, id)); if (!f.exists()) { @@ -621,9 +668,7 @@ public NpmPackage addPackageToCache(String id, final String version, final Input } final NpmPackage tempPackage = loadPackageInfo(tempDir); - if (tempPackage != null && !tempPackage.isIndexed()) { - tempPackage.checkIndexed(packageRoot); - } + tempPackage.buildIndexes(packageRoot); if (!ManagedFileAccess.file(packageRoot).exists() || Utilities.existsInList(version, "current", "dev")) { FileUtilities.createDirectory(packageRoot); @@ -906,6 +951,30 @@ private String fetchVersionTheOldWay(String id) throws IOException { return null; } + private String fetchVersionTheOldWay(String id, String versionSpec) throws IOException { + String url = getUrlForPackage(id); + if (url == null) { + try { + url = ciBuildClient.getPackageUrl(id); + } catch (Exception e) { + url = null; + } + } + if (url == null) { + throw new FHIRException("Unable to resolve package id " + id); + } + PackageList pl = PackageList.fromUrl(Utilities.pathURL(url, "package-list.json")); + if (!id.equals(pl.pid())) + throw new FHIRException("Package ids do not match in " + pl.source() + ": " + id + " vs " + pl.pid()); + for (PackageListEntry vo : pl.versions()) { + if (VersionUtilities.versionMatches(versionSpec, vo.version())) { + return vo.version(); + } + } + + return null; + } + private String getUrlForPackage(String id) { if (CommonPackages.ID_XVER.equals(id)) { return "https://fhir.org/packages/hl7.fhir.xver-extensions"; diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/utilities/npm/NpmPackage.java b/matchbox-engine/src/main/java/org/hl7/fhir/utilities/npm/NpmPackage.java index 326f300f534..87e23083724 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/utilities/npm/NpmPackage.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/utilities/npm/NpmPackage.java @@ -61,6 +61,7 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS import javax.annotation.Nonnull; +import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.apache.commons.compress.archivers.tar.TarArchiveEntry; import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; @@ -177,24 +178,22 @@ public int compare(JsonObject o0, JsonObject o1) { } public static class PackagedResourceFile { + @Getter private final String folder; + @Getter private final String filename; + @Getter private final String resourceType; - protected PackagedResourceFile(String folder, String filename, String resourceType) { + @Getter + private final boolean example; + protected PackagedResourceFile(String folder, String filename, String resourceType, boolean example) { super(); this.folder = folder; this.filename = filename; this.resourceType = resourceType; + this.example = example; } - public String getFolder() { - return folder; - } - public String getFilename() { - return filename; - } - public String getResourceType() { - return resourceType; - } + public static class Sorter implements Comparator { @Override @@ -686,7 +685,7 @@ public void loadFile(String n, byte[] data) throws IOException { public boolean isIndexed() throws IOException { for (NpmPackageFolder folder : folders.values()) { JsonObject index = folder.index(); - if (folder.index() == null || index.forceArray("files").size() == 0) { + if (folder.index() == null) { return false; } } @@ -697,12 +696,17 @@ public boolean isIndexed() throws IOException { public void checkIndexed(String path) throws IOException { for (NpmPackageFolder folder : folders.values()) { JsonObject index = folder.index(); - if (index == null || index.forceArray("files").size() == 0) { + if (index == null) { indexFolder(path, folder); } } } + public void buildIndexes(String path) throws IOException { + for (NpmPackageFolder folder : folders.values()) { + indexFolder(path, folder); + } + } /** * Create a package .index.json file for a package folder. @@ -715,7 +719,7 @@ public void checkIndexed(String path) throws IOException { * @throws FileNotFoundException * @throws IOException */ - public void indexFolder(String path, NpmPackageFolder folder) throws FileNotFoundException, IOException { + public void indexFolder(String path, NpmPackageFolder folder) throws IOException { List remove = new ArrayList<>(); NpmPackageIndexBuilder indexer = new NpmPackageIndexBuilder(); indexer.start(folder.folder != null ? Utilities.path(folder.folder.getAbsolutePath(), ".index.db") : null); @@ -839,19 +843,38 @@ public List listResourcesInFolder(String folderName, Set types) public List listAllResources(Collection types) throws IOException { List res = new ArrayList(); for (NpmPackageFolder folder : folders.values()) { - if (types.size() == 0) { - for (String s : folder.types.keySet()) { - if (folder.types.containsKey(s)) { - for (String n : folder.types.get(s)) { - res.add(new PackagedResourceFile(folder.folderName, n, s)); + if (!folder.getFolderName().startsWith("tests")) { + if (types.size() == 0) { + for (String s : folder.types.keySet()) { + if (folder.types.containsKey(s)) { + for (String n : folder.types.get(s)) { + res.add(new PackagedResourceFile(folder.folderName, n, s, folder.getFolderName().equals("example"))); + } + } + } + } else { + for (String s : types) { + if (folder.types.containsKey(s)) { + for (String n : folder.types.get(s)) { + res.add(new PackagedResourceFile(folder.folderName, n, s, folder.getFolderName().equals("example"))); + } } } } - } else { - for (String s : types) { + } + } + Collections.sort(res, new PackagedResourceFile.Sorter()); + return res; + } + + public List listAllResources() throws IOException { + List res = new ArrayList(); + for (NpmPackageFolder folder : folders.values()) { + if (!folder.getFolderName().startsWith("tests") && !folder.getFolderName().startsWith("data")) { + for (String s : folder.types.keySet()) { if (folder.types.containsKey(s)) { for (String n : folder.types.get(s)) { - res.add(new PackagedResourceFile(folder.folderName, n, s)); + res.add(new PackagedResourceFile(folder.folderName, n, s, folder.getFolderName().equals("example"))); } } } diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/validation/BaseValidator.java b/matchbox-engine/src/main/java/org/hl7/fhir/validation/BaseValidator.java index 00a4b07d59d..a4e7f701abe 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/validation/BaseValidator.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/validation/BaseValidator.java @@ -71,14 +71,15 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS import org.hl7.fhir.r5.model.OperationOutcome.OperationOutcomeIssueComponent; import org.hl7.fhir.r5.terminologies.ImplicitValueSets; import org.hl7.fhir.r5.utils.UserDataNames; -import org.hl7.fhir.r5.utils.XVerExtensionManager; -import org.hl7.fhir.r5.utils.XVerExtensionManager.XVerExtensionStatus; +import org.hl7.fhir.r5.utils.xver.XVerExtensionManager; +import org.hl7.fhir.r5.utils.xver.XVerExtensionManager.XVerExtensionStatus; import org.hl7.fhir.r5.utils.validation.IMessagingServices; import org.hl7.fhir.r5.utils.validation.IValidationPolicyAdvisor; import org.hl7.fhir.r5.utils.validation.IValidatorResourceFetcher; import org.hl7.fhir.r5.utils.validation.ValidatorSession; import org.hl7.fhir.r5.utils.validation.ValidationContextCarrier.IValidationContextResourceLoader; import org.hl7.fhir.r5.utils.validation.constants.ReferenceValidationPolicy; +import org.hl7.fhir.r5.utils.xver.XVerExtensionManagerFactory; import org.hl7.fhir.utilities.*; import org.hl7.fhir.utilities.i18n.I18nConstants; import org.hl7.fhir.utilities.validation.ValidationMessage; @@ -208,10 +209,10 @@ public BaseValidator(IWorkerContext context, @Nonnull ValidatorSettings settings } this.xverManager = xverManager; if (this.xverManager == null) { - this.xverManager = new XVerExtensionManager(context); + this.xverManager = XVerExtensionManagerFactory.createExtensionManager(context); } this.settings = settings; - policyAdvisor = new BasePolicyAdvisorForFullValidation(ReferenceValidationPolicy.CHECK_VALID); + policyAdvisor = new BasePolicyAdvisorForFullValidation(ReferenceValidationPolicy.CHECK_VALID, null); urlRegex = Constants.URI_REGEX_XVER.replace("$$", CommaSeparatedStringBuilder.join("|", context.getResourceNames())); } @@ -380,10 +381,10 @@ public ValidationMessage signpost(List errors, String ruleDat return addValidationMessage(errors, ruleDate, type, line, col, path, message, IssueSeverity.INFORMATION, theMessage).setSignpost(true); } - protected boolean txHint(List errors, String ruleDate, String txLink, IssueType type, int line, int col, String path, boolean thePass, String theMessage, Object... theMessageArguments) { + protected boolean txHint(List errors, String ruleDate, String txLink, String diagnostics, IssueType type, int line, int col, String path, boolean thePass, String theMessage, Object... theMessageArguments) { if (!thePass && doingHints() && !isSuppressedValidationMessage(path, theMessage)) { String message = context.formatMessage(theMessage, theMessageArguments); - addValidationMessage(errors, ruleDate, type, line, col, path, message, IssueSeverity.INFORMATION, Source.TerminologyEngine, theMessage).setTxLink(txLink); + addValidationMessage(errors, ruleDate, type, line, col, path, message, IssueSeverity.INFORMATION, Source.TerminologyEngine, theMessage).setTxLink(txLink).setDiagnostics(diagnostics); } return thePass; } @@ -463,13 +464,13 @@ protected boolean rulePlural(List errors, String ruleDate, Is return thePass; } - protected boolean txRule(List errors, String ruleDate, String txLink, IssueType type, int line, int col, String path, boolean thePass, String theMessage, Object... theMessageArguments) { + protected boolean txRule(List errors, String ruleDate, String txLink, String diagnostics, IssueType type, int line, int col, String path, boolean thePass, String theMessage, Object... theMessageArguments) { if (!thePass && doingErrors() && !isSuppressedValidationMessage(path, theMessage)) { String message = context.formatMessage(theMessage, theMessageArguments); ValidationMessage vm = new ValidationMessage(Source.TerminologyEngine, type, line, col, path, message, IssueSeverity.ERROR).setMessageId(idForMessage(theMessage, message)); vm.setRuleDate(ruleDate); if (checkMsgId(theMessage, vm)) { - errors.add(vm.setTxLink(txLink)); + errors.add(vm.setTxLink(txLink).setDiagnostics(diagnostics)); } } return thePass; @@ -658,12 +659,21 @@ protected ValidationMessage addValidationMessage(List errors, protected ValidationMessage addValidationMessage(List errors, String ruleDate, IssueType type, int line, int col, String path, String msg, IssueSeverity theSeverity, Source theSource, String id) { ValidationMessage validationMessage = new ValidationMessage(theSource, type, line, col, path, msg, theSeverity).setMessageId(id); validationMessage.setRuleDate(ruleDate); - if (doingLevel(theSeverity) && checkMsgId(id, validationMessage)) { + if (doingLevel(theSeverity) && !hasMessage(errors, validationMessage) && checkMsgId(id, validationMessage)) { errors.add(validationMessage); } return validationMessage; } + protected boolean hasMessage(List errors, ValidationMessage newMsg) { + for (ValidationMessage m : errors) { + if (m.preciseMatch(newMsg)) { + return true; + } + } + return false; + } + public boolean checkMsgId(String id, ValidationMessage vm) { if (id != null && validationControl.containsKey(id)) { ValidationControl control = validationControl.get(id); @@ -682,10 +692,10 @@ public boolean checkMsgId(String id, ValidationMessage vm) { * Set this parameter to false if the validation does not pass * @return Returns thePass (in other words, returns true if the rule did not fail validation) */ - protected boolean txWarning(List errors, String ruleDate, String txLink, IssueType type, int line, int col, String path, boolean thePass, String msg, Object... theMessageArguments) { + protected boolean txWarning(List errors, String ruleDate, String txLink, String diagnostics, IssueType type, int line, int col, String path, boolean thePass, String msg, Object... theMessageArguments) { if (!thePass && doingWarnings() && !isSuppressedValidationMessage(path, msg)) { String nmsg = context.formatMessage(msg, theMessageArguments); - ValidationMessage vmsg = new ValidationMessage(Source.TerminologyEngine, type, line, col, path, nmsg, IssueSeverity.WARNING).setTxLink(txLink).setMessageId(idForMessage(msg, nmsg)); + ValidationMessage vmsg = new ValidationMessage(Source.TerminologyEngine, type, line, col, path, nmsg, IssueSeverity.WARNING).setTxLink(txLink).setMessageId(idForMessage(msg, nmsg)).setDiagnostics(diagnostics); vmsg.setRuleDate(ruleDate); if (checkMsgId(msg, vmsg)) { errors.add(vmsg); @@ -699,19 +709,22 @@ protected boolean txWarning(List errors, String ruleDate, Str * @param thePass Set this parameter to false if the validation does not pass * @return Returns thePass (in other words, returns true if the rule did not fail validation) */ - protected ValidationMessage buildValidationMessage(String txLink, int line, int col, String path, OperationOutcomeIssueComponent issue) { + protected ValidationMessage buildValidationMessage(String txLink, String diagnostics, int line, int col, String path, OperationOutcomeIssueComponent issue) { if (issue.hasLocation() && issue.getExpressionOrLocation().get(0).getValue().contains(".")) { path = path + dropHead(issue.getExpressionOrLocation().get(0).getValue()); } IssueType code = IssueType.fromCode(issue.getCode().toCode()); IssueSeverity severity = IssueSeverity.fromCode(issue.getSeverity().toCode()); - ValidationMessage validationMessage = new ValidationMessage(Source.TerminologyEngine, code, line, col, path, issue.getDetails().getText(), severity).setTxLink(txLink); + ValidationMessage validationMessage = new ValidationMessage(Source.TerminologyEngine, code, line, col, path, issue.getDetails().getText(), severity).setTxLink(txLink).setDiagnostics(diagnostics); if (issue.getExtensionString(ExtensionDefinitions.EXT_ISSUE_SERVER) != null) { - validationMessage.setServer(issue.getExtensionString(ExtensionDefinitions.EXT_ISSUE_SERVER).replace("local.fhir.org", "tx-dev.fhir.org")); + validationMessage.setServer(issue.getExtensionString(ExtensionDefinitions.EXT_ISSUE_SERVER).replace("http://local.fhir.org", "https://tx-dev.fhir.org")); } if (issue.getExtensionString(ExtensionDefinitions.EXT_ISSUE_MSG_ID) != null) { validationMessage.setMessageId(issue.getExtensionString(ExtensionDefinitions.EXT_ISSUE_MSG_ID)); } + if (issue.hasDiagnostics()) { + validationMessage.setDiagnostics(issue.getDiagnostics()); + } return validationMessage; } @@ -726,10 +739,10 @@ private String dropHead(String value) { * Set this parameter to false if the validation does not pass * @return Returns thePass (in other words, returns true if the rule did not fail validation) */ - protected boolean txWarningForLaterRemoval(Object location, List errors, String ruleDate, String txLink, IssueType type, int line, int col, String path, boolean thePass, String msg, Object... theMessageArguments) { + protected boolean txWarningForLaterRemoval(Object location, List errors, String ruleDate, String txLink, String diagnostics, IssueType type, int line, int col, String path, boolean thePass, String msg, Object... theMessageArguments) { if (!thePass && doingWarnings() && !isSuppressedValidationMessage(path, msg)) { String nmsg = context.formatMessage(msg, theMessageArguments); - ValidationMessage vmsg = new ValidationMessage(Source.TerminologyEngine, type, line, col, path, nmsg, IssueSeverity.WARNING).setTxLink(txLink).setMessageId(msg); + ValidationMessage vmsg = new ValidationMessage(Source.TerminologyEngine, type, line, col, path, nmsg, IssueSeverity.WARNING).setTxLink(txLink).setDiagnostics(diagnostics).setMessageId(msg); vmsg.setRuleDate(ruleDate); if (checkMsgId(msg, vmsg)) { errors.add(vmsg); @@ -971,11 +984,11 @@ protected ValueSet resolveBindingReference(DomainResource ctxt, String reference } else { reference = cu.pinValueSet(reference); long t = System.nanoTime(); - ValueSet fr = context.findTxResource(ValueSet.class, reference, src); + ValueSet fr = context.findTxResource(ValueSet.class, reference, null, src); if (fr == null) { if (!Utilities.isAbsoluteUrl(reference)) { reference = resolve(uri, reference); - fr = context.findTxResource(ValueSet.class, reference, src); + fr = context.findTxResource(ValueSet.class, reference, null, src); } } if (fr == null) { @@ -1484,7 +1497,7 @@ public boolean isXverUrl(String url) { } public StructureDefinition xverDefn(String url) { - return xverManager.makeDefinition(url); + return xverManager.getDefinition(url); } public String xverVersion(String url) { @@ -1507,10 +1520,13 @@ public StructureDefinition getXverExt(StructureDefinition profile, List errors, String path, Element element, String url) { + public StructureDefinition getXverExt(List errors, String path, Element element, String url, BooleanHolder errored) { if (isXverUrl(url)) { switch (xverStatus(url)) { case BadVersion: rule(errors, NO_RULE_DATE, IssueType.INVALID, element.line(), element.col(), path + "[url='" + url + "']", false, I18nConstants.EXTENSION_EXT_VERSION_INVALID, url, xverVersion(url)); + errored.set(true); break; case Unknown: rule(errors, NO_RULE_DATE, IssueType.INVALID, element.line(), element.col(), path + "[url='" + url + "']", false, I18nConstants.EXTENSION_EXT_VERSION_INVALIDID, url, xverElementId(url)); + errored.set(true); break; case Invalid: rule(errors, NO_RULE_DATE, IssueType.INVALID, element.line(), element.col(), path + "[url='" + url + "']", false, I18nConstants.EXTENSION_EXT_VERSION_NOCHANGE, url, xverElementId(url)); + errored.set(true); + break; + case NotAllowed: + rule(errors, NO_RULE_DATE, IssueType.INVALID, element.line(), element.col(), path + "[url='" + url + "']", false, I18nConstants.EXTENSION_EXT_VERSION_NOTALLOWED, url, xverElementId(url)); + errored.set(true); break; case Valid: StructureDefinition ex = xverDefn(url); new ContextUtilities(context).generateSnapshot(ex); - context.cacheResource(ex); + context.getManager().cacheResource(ex); return ex; default: rule(errors, NO_RULE_DATE, IssueType.INVALID, element.line(), element.col(), path + "[url='" + url + "']", false, I18nConstants.EXTENSION_EXT_VERSION_INTERNAL, url); + errored.set(true); break; } } @@ -1767,4 +1791,10 @@ public ValidatorSettings getSettings() { return settings; } + // testing only, and transient + public void setXverManager(XVerExtensionManager value) { + xverManager = value; + } + + } \ No newline at end of file diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/validation/cli/param/Params.java b/matchbox-engine/src/main/java/org/hl7/fhir/validation/cli/param/Params.java index 7a7ec9953df..e755de22726 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/validation/cli/param/Params.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/validation/cli/param/Params.java @@ -1,156 +1,12 @@ package org.hl7.fhir.validation.cli.param; -import java.io.File; -import java.io.IOException; -import java.util.Arrays; -import java.util.Locale; +import java.util.*; import lombok.extern.slf4j.Slf4j; -import org.hl7.fhir.exceptions.FHIRException; -import org.hl7.fhir.r5.elementmodel.Manager.FhirFormat; -import org.hl7.fhir.r5.terminologies.JurisdictionUtilities; -import org.hl7.fhir.r5.utils.validation.BundleValidationRule; -import org.hl7.fhir.r5.utils.validation.constants.BestPracticeWarningLevel; -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.utilities.VersionUtilities; -import org.hl7.fhir.utilities.filesystem.ManagedFileAccess; -import org.hl7.fhir.utilities.validation.ValidationOptions.R5BundleRelativeReferencePolicy; -import org.hl7.fhir.validation.service.model.ValidationContext; -import org.hl7.fhir.validation.service.model.HtmlInMarkdownCheck; -import org.hl7.fhir.validation.service.ValidatorWatchMode; -import org.hl7.fhir.validation.service.utils.EngineMode; -import org.hl7.fhir.validation.service.utils.QuestionnaireMode; -import org.hl7.fhir.validation.service.utils.ValidationLevel; @Slf4j public class Params { - public static final String VERSION = "-version"; - public static final String ALT_VERSION = "-alt-version"; - public static final String OUTPUT = "-output"; - - public static final String OUTPUT_SUFFIX = "-outputSuffix"; - public static final String LEVEL = "-level"; - public static final String HTML_OUTPUT = "-html-output"; - public static final String PROXY = "-proxy"; - - public static final String HTTPS_PROXY = "-https-proxy"; - public static final String PROXY_AUTH = "-auth"; - public static final String PROFILE = "-profile"; - public static final String PROFILES = "-profiles"; - public static final String CONFIG = "-config"; - public static final String OPTION = "-option"; - public static final String OPTIONS = "-options"; - public static final String BUNDLE = "-bundle"; - public static final String QUESTIONNAIRE = "-questionnaire"; - public static final String NATIVE = "-native"; - public static final String ASSUME_VALID_REST_REF = "-assumeValidRestReferences"; - public static final String CHECK_REFERENCES = "-check-references"; - public static final String RESOLUTION_CONTEXT = "-resolution-context"; - public static final String DEBUG = "-debug"; - public static final String DEBUG_LOG = "-debug-log"; - public static final String TRACE_LOG = "-trace-log"; - public static final String SCT = "-sct"; - public static final String RECURSE = "-recurse"; - public static final String SHOW_MESSAGES_FROM_REFERENCES = "-showReferenceMessages"; - public static final String LOCALE = "-locale"; - public static final String EXTENSION = "-extension"; - public static final String HINT_ABOUT_NON_MUST_SUPPORT = "-hintAboutNonMustSupport"; - public static final String TO_VERSION = "-to-version"; - public static final String TX_PACK = "-tx-pack"; - public static final String RE_PACK = "-re-package"; - public static final String PACKAGE_NAME = "-package-name"; - public static final String PIN = "-pin"; - public static final String EXPAND = "-expand"; - public static final String DO_NATIVE = "-do-native"; - public static final String NO_NATIVE = "-no-native"; - public static final String COMPILE = "-compile"; - public static final String CODEGEN = "-codegen"; - public static final String FACTORY = "-factory"; - public static final String TRANSFORM = "-transform"; - public static final String FORMAT = "-format"; - public static final String LANG_TRANSFORM = "-lang-transform"; - public static final String LANG_REGEN = "-lang-regen"; - public static final String EXP_PARAMS = "-expansion-parameters"; - public static final String NARRATIVE = "-narrative"; - public static final String SNAPSHOT = "-snapshot"; - public static final String INSTALL = "-install"; - public static final String SCAN = "-scan"; - public static final String TERMINOLOGY = "-tx"; - public static final String TERMINOLOGY_LOG = "-txLog"; - public static final String TERMINOLOGY_CACHE = "-txCache"; - public static final String TERMINOLOGY_ROUTING = "-tx-routing"; - public static final String TERMINOLOGY_CACHE_CLEAR = "-clear-tx-cache"; - public static final String LOG = "-log"; - public static final String LANGUAGE = "-language"; - public static final String IMPLEMENTATION_GUIDE = "-ig"; - public static final String DEFINITION = "-defn"; - public static final String MAP = "-map"; - public static final String X = "-x"; - public static final String CONVERT = "-convert"; - public static final String FHIRPATH = "-fhirpath"; - public static final String TEST = "-tests"; - public static final String TX_TESTS = "-txTests"; - public static final String AI_TESTS = "-aiTests"; - public static final String HELP = "help"; - public static final String COMPARE = "-compare"; - public static final String SERVER = "-server"; - public static final String SPREADSHEET = "-spreadsheet"; - public static final String DESTINATION = "-dest"; - public static final String LEFT = "-left"; - public static final String RIGHT = "-right"; - public static final String NO_INTERNAL_CACHING = "-no-internal-caching"; - - public static final String PRELOAD_CACHE = "-preload-cache"; - public static final String NO_EXTENSIBLE_BINDING_WARNINGS = "-no-extensible-binding-warnings"; - public static final String NO_UNICODE_BIDI_CONTROL_CHARS = "-no_unicode_bidi_control_chars"; - public static final String NO_INVARIANTS = "-no-invariants"; - public static final String DISPLAY_WARNINGS = "-display-issues-are-warnings"; - public static final String WANT_INVARIANTS_IN_MESSAGES = "-want-invariants-in-messages"; - public static final String SECURITY_CHECKS = "-security-checks"; - public static final String CRUMB_TRAIL = "-crumb-trails"; - public static final String SHOW_MESSAGE_IDS = "-show-message-ids"; - public static final String FOR_PUBLICATION = "-forPublication"; - public static final String AI_SERVICE = "-ai-service"; - public static final String VERBOSE = "-verbose"; - public static final String SHOW_TIMES = "-show-times"; - public static final String ALLOW_EXAMPLE_URLS = "-allow-example-urls"; - public static final String OUTPUT_STYLE = "-output-style"; - public static final String ADVSIOR_FILE = "-advisor-file"; - public static final String DO_IMPLICIT_FHIRPATH_STRING_CONVERSION = "-implicit-fhirpath-string-conversions"; - public static final String JURISDICTION = "-jurisdiction"; - public static final String HTML_IN_MARKDOWN = "-html-in-markdown"; - public static final String SRC_LANG = "-src-lang"; - public static final String TGT_LANG = "-tgt-lang"; - public static final String ALLOW_DOUBLE_QUOTES = "-allow-double-quotes-in-fhirpath"; - public static final String DISABLE_DEFAULT_RESOURCE_FETCHER = "-disable-default-resource-fetcher"; - public static final String CHECK_IPS_CODES = "-check-ips-codes"; - public static final String BEST_PRACTICE = "-best-practice"; - public static final String UNKNOWN_CODESYSTEMS_CAUSE_ERROR = "-unknown-codesystems-cause-errors"; - public static final String NO_EXPERIMENTAL_CONTENT = "-no-experimental-content"; - - public static final String RUN_TESTS = "-run-tests"; - - public static final String TEST_MODULES = "-test-modules"; - - public static final String TEST_NAME_FILTER = "-test-classname-filter"; - public static final String CERT = "-cert"; - public static final String SPECIAL = "-special"; - public static final String TARGET = "-target"; - public static final String SOURCE = "-source"; - public static final String INPUT = "-input"; - public static final String FILTER = "-filter"; - public static final String EXTERNALS = "-externals"; - public static final String MODE = "-mode"; - private static final String FHIR_SETTINGS_PARAM = "-fhir-settings"; - public static final String WATCH_MODE_PARAM = "-watch-mode"; - public static final String WATCH_SCAN_DELAY = "-watch-scan-delay"; - public static final String WATCH_SETTLE_TIME = "-watch-settle-time"; - public static final String NO_HTTP_ACCESS = "-no-http-access"; - public static final String AUTH_NONCONFORMANT_SERVERS = "-authorise-non-conformant-tx-servers"; - public static final String R5_REF_POLICY = "r5-bundle-relative-reference-policy"; - public static final String MATCHETYPE = "-matchetype"; - /** * Checks the list of passed in params to see if it contains the passed in param. * @@ -162,12 +18,30 @@ public static boolean hasParam(String[] args, String param) { return Arrays.asList(args).contains(param); } + public static boolean hasParamAndValue(String[] args, String param) { + int paramIndex = Arrays.asList(args).indexOf(param); + if (paramIndex == -1) { + return false; + } + checkIfParamValueInBounds(args, param, paramIndex); + return true; + } + + /** + * Check if the value for the param is in bounds in the args array. + */ + private static void checkIfParamValueInBounds(String[] args, String param, int paramIndex) { + if (paramIndex + 1 >= args.length) { + throw new Error("Used '"+ param +"' without providing a value"); + } + } + /** - * Fetches the value for the passed in param from the provided list of params. + * Fetches the value for the passed in param from the provided list of params. * * @param args Array of params to search. * @param param {@link String} param keyword to search for. - * @return {@link String} value for the provided param. + * @return {@link String} value for the provided param, or null if param is out of bounds */ public static String getParam(String[] args, String param) { for (int i = 0; i < args.length - 1; i++) { @@ -176,595 +50,15 @@ public static String getParam(String[] args, String param) { return null; } - /** - * TODO Don't do this all in one for loop. Use the above methods. - */ - public static ValidationContext loadValidationContext(String[] args) throws Exception { - ValidationContext validationContext = new ValidationContext(); - - // load the parameters - so order doesn't matter - for (int i = 0; i < args.length; i++) { - if (args[i].equals(VERSION)) { - validationContext.setSv(VersionUtilities.getCurrentPackageVersion(args[++i])); - } else if (args[i].equals(FHIR_SETTINGS_PARAM)) { - final String fhirSettingsFilePath = args[++i]; - if (! ManagedFileAccess.file(fhirSettingsFilePath).exists()) { - throw new Error("Cannot find fhir-settings file: " + fhirSettingsFilePath); - } - validationContext.setFhirSettingsFile(fhirSettingsFilePath); - } else if (args[i].equals(OUTPUT)) { - if (i + 1 == args.length) - throw new Error("Specified -output without indicating output file"); - else - validationContext.setOutput(args[++i]); - } else if (args[i].equals(OUTPUT_SUFFIX)) { - if (i + 1 == args.length) - throw new Error("Specified -outputSuffix without indicating output suffix"); - else - validationContext.setOutputSuffix(args[++i]); - } - else if (args[i].equals(HTML_OUTPUT)) { - if (i + 1 == args.length) - throw new Error("Specified -html-output without indicating output file"); - else - validationContext.setHtmlOutput(args[++i]); - } else if (args[i].equals(DEBUG_LOG)) { - i++; - } else if (args[i].equals(TRACE_LOG)) { - i++; - } else if (args[i].equals(PROXY)) { - i++; // ignore next parameter - } else if (args[i].equals(PROXY_AUTH)) { - i++; - } else if (args[i].equals(HTTPS_PROXY)) { - i++; - } else if (args[i].equals(PROFILE)) { - String p = null; - if (i + 1 == args.length) { - throw new Error("Specified -profile without indicating profile url"); - } else { - p = args[++i]; - validationContext.addProfile(p); - } - } else if (args[i].equals(PROFILES)) { - String p = null; - if (i + 1 == args.length) { - throw new Error("Specified -profiles without indicating profile urls"); - } else { - p = args[++i]; - for (String s : p.split("\\,")) { - validationContext.addProfile(s); - } - } - } else if (args[i].equals(OPTION)) { - String p = null; - if (i + 1 == args.length) { - throw new Error("Specified -option without indicating option value"); - } else { - p = args[++i]; - validationContext.addOption(p); - } - } else if (args[i].equals(OPTIONS)) { - String p = null; - if (i + 1 == args.length) { - throw new Error("Specified -options without indicating option values"); - } else { - p = args[++i]; - for (String s : p.split("\\,")) { - validationContext.addOption(s); - } - } - } else if (args[i].equals(BUNDLE)) { - String profile = null; - String rule = null; - if (i + 1 == args.length) { - throw new Error("Specified -profile without indicating bundle rule "); - } else { - rule = args[++i]; - } - if (i + 1 == args.length) { - throw new Error("Specified -profile without indicating profile source"); - } else { - profile = args[++i]; - } - validationContext.getBundleValidationRules().add(new BundleValidationRule().setRule(rule).setProfile(profile)); - } else if (args[i].equals(QUESTIONNAIRE)) { - if (i + 1 == args.length) - throw new Error("Specified -questionnaire without indicating questionnaire mode"); - else { - String questionnaireMode = args[++i]; - validationContext.setQuestionnaireMode(QuestionnaireMode.fromCode(questionnaireMode)); - } - } else if (args[i].equals(LEVEL)) { - if (i + 1 == args.length) - throw new Error("Specified -level without indicating level mode"); - else { - String q = args[++i]; - validationContext.setLevel(ValidationLevel.fromCode(q)); - } - } else if (args[i].equals(MODE)) { - if (i + 1 == args.length) - throw new Error("Specified -mode without indicating mode"); - else { - String q = args[++i]; - validationContext.getModeParams().add(q); - } - } else if (args[i].equals(INPUT)) { - if (i + 1 == args.length) - throw new Error("Specified -input without providing value"); - else { - String inp = args[++i]; - validationContext.getInputs().add(inp); - } - } else if (args[i].equals(NATIVE)) { - validationContext.setDoNative(true); - } else if (args[i].equals(ASSUME_VALID_REST_REF)) { - validationContext.setAssumeValidRestReferences(true); - } else if (args[i].equals(CHECK_REFERENCES)) { - validationContext.setCheckReferences(true); - } else if (args[i].equals(RESOLUTION_CONTEXT)) { - validationContext.setResolutionContext(args[++i]); - } else if (args[i].equals(DEBUG)) { - //FIXME warm that debug now outputs to the log file - //validationContext.setDoDebug(true); - } else if (args[i].equals(SCT)) { - validationContext.setSnomedCT(args[++i]); - } else if (args[i].equals(RECURSE)) { - validationContext.setRecursive(true); - } else if (args[i].equals(SHOW_MESSAGES_FROM_REFERENCES)) { - validationContext.setShowMessagesFromReferences(true); - } else if (args[i].equals(DO_IMPLICIT_FHIRPATH_STRING_CONVERSION)) { - validationContext.setDoImplicitFHIRPathStringConversion(true); - } else if (args[i].equals(HTML_IN_MARKDOWN)) { - if (i + 1 == args.length) - throw new Error("Specified "+HTML_IN_MARKDOWN+" without indicating mode"); - else { - String q = args[++i]; - if (!HtmlInMarkdownCheck.isValidCode(q)) { - throw new Error("Specified "+HTML_IN_MARKDOWN+" with na invalid code - must be ignore, warning, or error"); - } else { - validationContext.setHtmlInMarkdownCheck(HtmlInMarkdownCheck.fromCode(q)); - } - } - } else if (args[i].equals(BEST_PRACTICE)) { - if (i + 1 == args.length) - throw new Error("Specified "+BEST_PRACTICE+" without indicating mode"); - else { - String q = args[++i]; - validationContext.setBestPracticeLevel(readBestPractice(q)); - } - } else if (args[i].equals(LOCALE)) { - if (i + 1 == args.length) { - throw new Error("Specified -locale without indicating locale"); - } else { - validationContext.setLocale(Locale.forLanguageTag(args[++i])); - } - } else if (args[i].equals(EXTENSION)) { - validationContext.getExtensions().add(args[++i]); - } else if (args[i].equals(NO_INTERNAL_CACHING)) { - validationContext.setNoInternalCaching(true); - } else if (args[i].equals(NO_EXTENSIBLE_BINDING_WARNINGS)) { - validationContext.setNoExtensibleBindingMessages(true); - } else if (args[i].equals(ALLOW_DOUBLE_QUOTES)) { - validationContext.setAllowDoubleQuotesInFHIRPath(true); - } else if (args[i].equals(DISABLE_DEFAULT_RESOURCE_FETCHER)) { - validationContext.setDisableDefaultResourceFetcher(true); - } else if (args[i].equals(CHECK_IPS_CODES)) { - validationContext.setCheckIPSCodes(true); - } else if (args[i].equals(NO_UNICODE_BIDI_CONTROL_CHARS)) { - validationContext.setNoUnicodeBiDiControlChars(true); - } else if (args[i].equals(NO_INVARIANTS)) { - validationContext.setNoInvariants(true); - } else if (args[i].equals(DISPLAY_WARNINGS)) { - validationContext.setDisplayWarnings(true); - } else if (args[i].equals(WANT_INVARIANTS_IN_MESSAGES)) { - validationContext.setWantInvariantsInMessages(true); - } else if (args[i].equals(HINT_ABOUT_NON_MUST_SUPPORT)) { - validationContext.setHintAboutNonMustSupport(true); - } else if (args[i].equals(TO_VERSION)) { - validationContext.setTargetVer(args[++i]); - validationContext.setMode(EngineMode.VERSION); - } else if (args[i].equals(PACKAGE_NAME)) { - validationContext.setPackageName(args[++i]); - if (!hasParam(args, "-re-package")) { - validationContext.setMode(EngineMode.CODEGEN); - } - } else if (args[i].equals(TX_PACK)) { - validationContext.setMode(EngineMode.RE_PACKAGE); - String pn = args[++i]; - if (pn != null) { - if (pn.contains(",")) { - for (String s : pn.split("\\,")) { - validationContext.getIgs().add(s); - } - } else { - validationContext.getIgs().add(pn); - } - } - validationContext.getModeParams().add("tx"); - validationContext.getModeParams().add("expansions"); - } else if (args[i].equals(RE_PACK)) { - validationContext.setMode(EngineMode.RE_PACKAGE); - String pn = args[++i]; - if (pn != null) { - if (pn.contains(",")) { - for (String s : pn.split("\\,")) { - validationContext.getIgs().add(s); - } - } else { - validationContext.getIgs().add(pn); - } - } - validationContext.getModeParams().add("tx"); - validationContext.getModeParams().add("cnt"); - validationContext.getModeParams().add("api"); - } else if (args[i].equals(PIN)) { - validationContext.getModeParams().add("pin"); - } else if (args[i].equals(EXPAND)) { - validationContext.getModeParams().add("expand"); - } else if (args[i].equals(DO_NATIVE)) { - validationContext.setCanDoNative(true); - } else if (args[i].equals(NO_NATIVE)) { - validationContext.setCanDoNative(false); - } else if (args[i].equals(TRANSFORM)) { - validationContext.setMap(args[++i]); - validationContext.setMode(EngineMode.TRANSFORM); - } else if (args[i].equals(FORMAT)) { - validationContext.setFormat(FhirFormat.fromCode(args[++i])); - } else if (args[i].equals(LANG_TRANSFORM)) { - validationContext.setLangTransform(args[++i]); - validationContext.setMode(EngineMode.LANG_TRANSFORM); - } else if (args[i].equals(LANG_REGEN)) { - validationContext.addLangRegenParam(args[++i]); - validationContext.addLangRegenParam(args[++i]); - validationContext.addLangRegenParam(args[++i]); - validationContext.setMode(EngineMode.LANG_REGEN); - } else if (args[i].equals(EXP_PARAMS)) { - validationContext.setExpansionParameters(args[++i]); - } else if (args[i].equals(COMPILE)) { - validationContext.setMap(args[++i]); - validationContext.setMode(EngineMode.COMPILE); - } else if (args[i].equals(CODEGEN)) { - validationContext.setMode(EngineMode.CODEGEN); - } else if (args[i].equals(FACTORY)) { - validationContext.setMode(EngineMode.FACTORY); - validationContext.setSource(args[++i]); - } else if (args[i].equals(NARRATIVE)) { - validationContext.setMode(EngineMode.NARRATIVE); - } else if (args[i].equals(SPREADSHEET)) { - validationContext.setMode(EngineMode.SPREADSHEET); - } else if (args[i].equals(SNAPSHOT)) { - validationContext.setMode(EngineMode.SNAPSHOT); - } else if (args[i].equals(INSTALL)) { - validationContext.setMode(EngineMode.INSTALL); - } else if (args[i].equals(RUN_TESTS)) { - // TODO setBaseTestingUtils test directory - validationContext.setMode(EngineMode.RUN_TESTS); - } else if (args[i].equals(SECURITY_CHECKS)) { - validationContext.setSecurityChecks(true); - } else if (args[i].equals(CRUMB_TRAIL)) { - validationContext.setCrumbTrails(true); - } else if (args[i].equals(SHOW_MESSAGE_IDS)) { - validationContext.setShowMessageIds(true); - } else if (args[i].equals(FOR_PUBLICATION)) { - validationContext.setForPublication(true); - } else if (args[i].equals(AI_SERVICE)) { - validationContext.setAIService(args[++i]); - } else if (args[i].equals(R5_REF_POLICY)) { - validationContext.setR5BundleRelativeReferencePolicy(R5BundleRelativeReferencePolicy.fromCode(args[++i])); - } else if (args[i].equals(UNKNOWN_CODESYSTEMS_CAUSE_ERROR)) { - validationContext.setUnknownCodeSystemsCauseErrors(true); - } else if (args[i].equals(NO_EXPERIMENTAL_CONTENT)) { - validationContext.setNoExperimentalContent(true); - } else if (args[i].equals(VERBOSE)) { - validationContext.setCrumbTrails(true); - validationContext.setShowMessageIds(true); - } else if (args[i].equals(ALLOW_EXAMPLE_URLS)) { - String bl = args[++i]; - if ("true".equals(bl)) { - validationContext.setAllowExampleUrls(true); - } else if ("false".equals(bl)) { - validationContext.setAllowExampleUrls(false); - } else { - throw new Error("Value for "+ALLOW_EXAMPLE_URLS+" not understood: "+bl); - } - } else if (args[i].equals(TERMINOLOGY_ROUTING)) { - validationContext.setShowTerminologyRouting(true); - } else if (args[i].equals(TERMINOLOGY_CACHE_CLEAR)) { - validationContext.setClearTxCache(true); - } else if (args[i].equals(SHOW_TIMES)) { - validationContext.setShowTimes(true); - } else if (args[i].equals(OUTPUT_STYLE)) { - validationContext.setOutputStyle(args[++i]); - } else if (args[i].equals(ADVSIOR_FILE)) { - validationContext.setAdvisorFile(args[++i]); - File f = ManagedFileAccess.file(validationContext.getAdvisorFile()); - if (!f.exists()) { - throw new Error("Cannot find advisor file "+ validationContext.getAdvisorFile()); - } else if (!Utilities.existsInList(Utilities.getFileExtension(f.getName()), "json", "txt")) { - throw new Error("Advisor file "+ validationContext.getAdvisorFile()+" must be a .json or a .txt file"); - } - } else if (args[i].equals(SCAN)) { - validationContext.setMode(EngineMode.SCAN); - } else if (args[i].equals(TERMINOLOGY)) { - if (i + 1 == args.length) - throw new Error("Specified -tx without indicating terminology server"); - else { - validationContext.setTxServer("n/a".equals(args[++i]) ? null : args[i]); - validationContext.setNoEcosystem(true); - } - } else if (args[i].equals(TERMINOLOGY_LOG)) { - if (i + 1 == args.length) - throw new Error("Specified -txLog without indicating file"); - else - validationContext.setTxLog(args[++i]); - } else if (args[i].equals(TERMINOLOGY_CACHE)) { - if (i + 1 == args.length) - throw new Error("Specified -txCache without indicating file"); - else - validationContext.setTxCache(args[++i]); - } else if (args[i].equals(CERT)) { - if (i + 1 == args.length) - throw new Error("Specified -txCache without indicating file"); - else { - String s = args[++i]; - if (!(new File(s).exists())) { - throw new Error("Certificate source '"+s+"' not found"); - } else { - validationContext.getCertSources().add(s); - } - } - } else if (args[i].equals(MATCHETYPE)) { - if (i + 1 == args.length) - throw new Error("Specified -matchetype without indicating file"); - else { - String s = args[++i]; - if (!(new File(s).exists())) { - throw new Error("-matchetype source '"+s+"' not found"); - } else { - validationContext.getMatchetypes().add(s); - } - }} else if (args[i].equals(LOG)) { - if (i + 1 == args.length) - throw new Error("Specified -log without indicating file"); - else - validationContext.setMapLog(args[++i]); - } else if (args[i].equals(LANGUAGE)) { - if (i + 1 == args.length) - throw new Error("Specified -language without indicating language"); - else - validationContext.setLang(args[++i]); - } else if (args[i].equals(SRC_LANG)) { - if (i + 1 == args.length) - throw new Error("Specified -src-lang without indicating file"); - else - validationContext.setSrcLang(args[++i]); - } else if (args[i].equals(TGT_LANG)) { - if (i + 1 == args.length) - throw new Error("Specified -tgt-lang without indicating file"); - else - validationContext.setTgtLang(args[++i]); - } else if (args[i].equals(JURISDICTION)) { - if (i + 1 == args.length) - throw new Error("Specified -jurisdiction without indicating jurisdiction"); - else - validationContext.setJurisdiction(processJurisdiction(args[++i])); - } else if (args[i].equals(IMPLEMENTATION_GUIDE) || args[i].equals(DEFINITION)) { - if (i + 1 == args.length) - throw new Error("Specified " + args[i] + " without indicating ig file"); - else { - String s = args[++i]; - String version = getVersionFromIGName(null, s); - if (version == null) { - validationContext.addIg(s); - } else { - String v = getParam(args, VERSION); - if (v != null && !v.equals(version)) { - throw new Error("Parameters are inconsistent: specified version is "+v+" but -ig parameter "+s+" implies a different version"); - } else if (validationContext.getSv() != null && !version.equals(validationContext.getSv())) { - throw new Error("Parameters are inconsistent: multiple -ig parameters implying differetion versions ("+ validationContext.getSv()+","+version+")"); - } else { - validationContext.setSv(version); - } - } - } - } else if (args[i].equals(ALT_VERSION)) { - if (i + 1 == args.length) - throw new Error("Specified " + args[i] + " without indicating version"); - else { - String s = args[++i]; - String v = VersionUtilities.getMajMin(s); - if (v == null) { - throw new Error("Unsupported FHIR Version "+s); - } - String pid = VersionUtilities.packageForVersion(v); - pid = pid + "#"+VersionUtilities.getCurrentPackageVersion(v); - validationContext.addIg(pid); - } - } else if (args[i].equals(MAP)) { - if (validationContext.getMap() == null) { - if (i + 1 == args.length) - throw new Error("Specified -map without indicating map file"); - else - validationContext.setMap(args[++i]); - } else { - throw new Exception("Can only nominate a single -map parameter"); - } - } else if (args[i].equals(WATCH_MODE_PARAM)) { - if (i + 1 == args.length) { - throw new Error("Specified -watch-mode without indicating mode value"); - } else { - validationContext.setWatchMode(readWatchMode(args[++i])); - } - } else if (args[i].equals(WATCH_SCAN_DELAY)) { - if (i + 1 == args.length) { - throw new Error("Specified -watch-scan-delay without indicating mode value"); - } else { - validationContext.setWatchScanDelay(readInteger(WATCH_SCAN_DELAY, args[++i])); - } - } else if (args[i].equals(WATCH_SETTLE_TIME)) { - if (i + 1 == args.length) { - throw new Error("Specified -watch-mode without indicating mode value"); - } else { - validationContext.setWatchSettleTime(readInteger(WATCH_SETTLE_TIME, args[++i])); - } } else if (args[i].startsWith(X)) { - i++; - } else if (args[i].equals(CONVERT)) { - validationContext.setMode(EngineMode.CONVERT); - } else if (args[i].equals(SERVER)) { - i++; - } else if (args[i].equals(FHIRPATH)) { - validationContext.setMode(EngineMode.FHIRPATH); - if (validationContext.getFhirpath() == null) - if (i + 1 == args.length) - throw new Error("Specified -fhirpath without indicating a FHIRPath expression"); - else - validationContext.setFhirpath(args[++i]); - else - throw new Exception("Can only nominate a single -fhirpath parameter"); - } else if (!Utilities.existsInList(args[i], AUTH_NONCONFORMANT_SERVERS)) { - validationContext.addSource(args[i]); - } - } - - return validationContext; - } - - private static BestPracticeWarningLevel readBestPractice(String s) { - if (s == null) { - return BestPracticeWarningLevel.Warning; - } - switch (s.toLowerCase()) { - case "warning" : return BestPracticeWarningLevel.Warning; - case "error" : return BestPracticeWarningLevel.Error; - case "hint" : return BestPracticeWarningLevel.Hint; - case "ignore" : return BestPracticeWarningLevel.Ignore; - case "w" : return BestPracticeWarningLevel.Warning; - case "e" : return BestPracticeWarningLevel.Error; - case "h" : return BestPracticeWarningLevel.Hint; - case "i" : return BestPracticeWarningLevel.Ignore; - } - throw new Error("The best-practice level ''"+s+"'' is not valid"); - } - - private static int readInteger(String name, String value) { - if (!Utilities.isInteger(value)) { - throw new Error("Unable to read "+value+" provided for '"+name+"' - must be an integer"); - } - return Integer.parseInt(value); - } - - private static ValidatorWatchMode readWatchMode(String s) { - if (s == null) { - return ValidatorWatchMode.NONE; - } - switch (s.toLowerCase()) { - case "all" : return ValidatorWatchMode.ALL; - case "none" : return ValidatorWatchMode.NONE; - case "single" : return ValidatorWatchMode.SINGLE; - case "a" : return ValidatorWatchMode.ALL; - case "n" : return ValidatorWatchMode.NONE; - case "s" : return ValidatorWatchMode.SINGLE; - } - throw new Error("The watch mode ''"+s+"'' is not valid"); - } - - private static String processJurisdiction(String s) { - if (s.startsWith("urn:iso:std:iso:3166#") || s.startsWith("urn:iso:std:iso:3166:-2#") || s.startsWith("http://unstats.un.org/unsd/methods/m49/m49.htm#")) { - return s; - } else { - String v = JurisdictionUtilities.getJurisdictionFromLocale(s); - if (v != null) { - return v; - } else { - throw new FHIRException("Unable to understand Jurisdiction '"+s+"'"); - } - } - } - - public static String getTerminologyServerLog(String[] args) throws IOException { - String txLog = null; - if (hasParam(args, "-txLog")) { - txLog = getParam(args, "-txLog"); - ManagedFileAccess.file(txLog).delete(); - } - return txLog; - } - - public static void checkIGFileReferences(String[] args) { - for (int i = 0; i < args.length; i++) { - if (IMPLEMENTATION_GUIDE.equals(args[i])) { - if (i + 1 == args.length) - throw new Error("Specified -ig without indicating ig file"); - else { - String s = args[++i]; - if (!s.startsWith("hl7.fhir.core-")) { - log.info("Load Package: " + s); - } - } - } - } - } - - public static String getVersion(String[] args) { - String v = Params.getParam(args, "-version"); - if (v == null) { - v = "5.0"; - for (int i = 0; i < args.length; i++) { - if ("-ig".equals(args[i])) { - if (i + 1 == args.length) - throw new Error("Specified -ig without indicating ig file"); - else { - String n = args[i + 1]; - v = getVersionFromIGName(v, n); - } - } + public static Collection getMultiValueParam(String[] args, String param) { + final List output = new LinkedList<>(); + for (int i = 0; i < args.length - 1; i++) { + if (args[i].equals(param)) { + checkIfParamValueInBounds(args, param, i); + output.add(args[i + 1]); } - } else if (VersionUtilities.isR2Ver(v)) { - v = "1.0"; - } else if (VersionUtilities.isR2BVer(v)) { - v = "1.4"; - } else if (VersionUtilities.isR3Ver(v)) { - v = "3.0"; - } else if (VersionUtilities.isR4Ver(v)) { - v = "4.0"; - } else if (VersionUtilities.isR4BVer(v)) { - v = "4.3"; - } else if (VersionUtilities.isR5Ver(v)) { - v = "5.0"; - } else if (VersionUtilities.isR6Ver(v)) { - v = "6.0"; } - return v; + return Collections.unmodifiableList(output); } - /** - * Evaluates the current implementation guide file name and sets the current version accordingly. - *

- * If igFileName is not one of the known patterns, will return whatever value is passed in as default. - * - * @param defaultValue Version to return if no associated version can be determined from passed in igFileName - * @param igFileName Name of the implementation guide - * @return - */ - public static String getVersionFromIGName(String defaultValue, String igFileName) { - if (igFileName.equals("hl7.fhir.core")) { - defaultValue = "5.0"; - } else if (igFileName.startsWith("hl7.fhir.core#")) { - defaultValue = VersionUtilities.getCurrentPackageVersion(igFileName.substring(14)); - } else if (igFileName.startsWith("hl7.fhir.r2.core#") || igFileName.equals("hl7.fhir.r2.core")) { - defaultValue = "1.0"; - } else if (igFileName.startsWith("hl7.fhir.r2b.core#") || igFileName.equals("hl7.fhir.r2b.core")) { - defaultValue = "1.4"; - } else if (igFileName.startsWith("hl7.fhir.r3.core#") || igFileName.equals("hl7.fhir.r3.core")) { - defaultValue = "3.0"; - } else if (igFileName.startsWith("hl7.fhir.r4.core#") || igFileName.equals("hl7.fhir.r4.core")) { - defaultValue = "4.0"; - } else if (igFileName.startsWith("hl7.fhir.r5.core#") || igFileName.equals("hl7.fhir.r5.core")) { - defaultValue = "5.0"; - } else if (igFileName.startsWith("hl7.fhir.r6.core#") || igFileName.equals("hl7.fhir.r6.core")) { - defaultValue = "6.0"; - } - return defaultValue; - } } diff --git a/matchbox-engine/src/main/java/org/hl7/fhir/validation/instance/InstanceValidator.java b/matchbox-engine/src/main/java/org/hl7/fhir/validation/instance/InstanceValidator.java index 259a5dabd3e..d00627a865f 100644 --- a/matchbox-engine/src/main/java/org/hl7/fhir/validation/instance/InstanceValidator.java +++ b/matchbox-engine/src/main/java/org/hl7/fhir/validation/instance/InstanceValidator.java @@ -61,8 +61,8 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS import org.hl7.fhir.r5.conformance.profile.ProfileUtilities; import org.hl7.fhir.r5.conformance.profile.ProfileUtilities.SourcedChildDefinitions; import org.hl7.fhir.r5.context.ContextUtilities; +import org.hl7.fhir.r5.context.IOIDServices; import org.hl7.fhir.r5.context.IWorkerContext; -import org.hl7.fhir.r5.context.IWorkerContext.OIDSummary; import org.hl7.fhir.r5.elementmodel.Element; import org.hl7.fhir.r5.elementmodel.Element.SpecialElement; import org.hl7.fhir.r5.elementmodel.JsonParser; @@ -115,13 +115,15 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS import org.hl7.fhir.r5.model.StructureDefinition.StructureDefinitionSnapshotComponent; import org.hl7.fhir.r5.model.StructureDefinition.TypeDerivationRule; import org.hl7.fhir.r5.model.ValueSet.ValueSetExpansionContainsComponent; +import org.hl7.fhir.r5.terminologies.CodeSystemUtilities; +import org.hl7.fhir.r5.terminologies.ValueSetUtilities; import org.hl7.fhir.r5.terminologies.utilities.TerminologyServiceErrorClass; import org.hl7.fhir.r5.terminologies.utilities.ValidationResult; import org.hl7.fhir.r5.utils.BuildExtensions; import org.hl7.fhir.r5.utils.ResourceUtilities; import org.hl7.fhir.r5.utils.UserDataNames; -import org.hl7.fhir.r5.utils.XVerExtensionManager; -import org.hl7.fhir.r5.utils.XVerExtensionManager.XVerExtensionStatus; +import org.hl7.fhir.r5.utils.xver.XVerExtensionManager; +import org.hl7.fhir.r5.utils.xver.XVerExtensionManager.XVerExtensionStatus; import org.hl7.fhir.r5.utils.sql.Validator; import org.hl7.fhir.r5.utils.sql.Validator.TrueFalseOrUnknown; import org.hl7.fhir.r5.utils.validation.BundleValidationRule; @@ -145,7 +147,6 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS import org.hl7.fhir.utilities.fhirpath.FHIRPathConstantEvaluationMode; import org.hl7.fhir.utilities.filesystem.ManagedFileAccess; import org.hl7.fhir.utilities.http.HTTPResultException; -import org.hl7.fhir.utilities.http.ManagedWebAccess; import org.hl7.fhir.utilities.i18n.I18nConstants; import org.hl7.fhir.utilities.json.model.JsonObject; import org.hl7.fhir.utilities.validation.IDigitalSignatureServices; @@ -162,6 +163,7 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS import org.hl7.fhir.validation.ai.CodeAndTextValidationResult; import org.hl7.fhir.validation.ai.CodeAndTextValidator; import org.hl7.fhir.validation.service.model.HtmlInMarkdownCheck; +import org.hl7.fhir.validation.service.model.InstanceValidatorParameters; import org.hl7.fhir.validation.service.utils.QuestionnaireMode; import org.hl7.fhir.validation.codesystem.CodingsObserver; import org.hl7.fhir.validation.instance.type.BundleValidator; @@ -222,7 +224,7 @@ public enum BindingContext { private static final String EXECUTED_CONSTRAINT_LIST = "validator.executed.invariant.list"; private static final String EXECUTION_ID = "validator.execution.id"; private static final String HTML_FRAGMENT_REGEX = "[a-zA-Z]\\w*(((\\s+)(\\S)*)*)"; - private static final boolean STACK_TRACE = true; + private static final boolean STACK_TRACE = false; private static final boolean DEBUG_ELEMENT = false; private static final boolean SAVE_INTERMEDIARIES = false; // set this to true to get the intermediary formats while we are waiting for a UI around this z(SHC/SHL) @@ -374,7 +376,7 @@ private List executeSlice(FHIRPathEngine engine, Object appContext, List errors, String p StructureDefinition sd = profiles.get(i); if (sd.hasExtension(ExtensionDefinitions.EXT_SD_IMPOSE_PROFILE)) { for (Extension ext : sd.getExtensionsByUrl(ExtensionDefinitions.EXT_SD_IMPOSE_PROFILE)) { - StructureDefinition dep = context.fetchResource( StructureDefinition.class, ext.getValue().primitiveValue(), sd); + StructureDefinition dep = context.fetchResource( StructureDefinition.class, ext.getValue().primitiveValue(), null, sd); if (dep == null) { warning(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, element.line(), element.col(), stack.getLiteralPath(), false, I18nConstants.VALIDATION_VAL_PROFILE_DEPENDS_NOT_RESOLVED, ext.getValue().primitiveValue(), sd.getVersionedUrl()); } else if (!profiles.contains(dep)) { @@ -1134,35 +1192,36 @@ private boolean checkAttachment(List errors, String path, Ele private boolean checkCode(List errors, Element element, String path, String code, String system, String version, String display, boolean checkDisplay, NodeStack stack) throws TerminologyServiceException { boolean ok = true; long t = System.nanoTime(); - boolean ss = context.supportsSystem(system); - timeTracker.tx(t, "ss "+system); + IWorkerContext.SystemSupportInformation txSupportInfo = context.getTxSupportInfo(system, version); + boolean ss = txSupportInfo.isSupported(); + timeTracker.tx(t, "ss " + system); if (ss) { t = System.nanoTime(); ValidationResult s = checkCodeOnServer(stack, code, system, version, display, checkDisplay); - timeTracker.tx(t, "vc "+system+"#"+code+" '"+display+"'"); + timeTracker.tx(t, "vc " + system + "#" + code + " '" + display + "'"); if (s == null) return true; ok = calculateSeverityForTxIssuesAndUpdateErrors(errors, s, element, path, false, null, null) & ok; if (s.isOk()) { if (s.getMessage() != null && !s.messageIsInIssues()) { - txWarning(errors, NO_RULE_DATE, s.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, s == null, I18nConstants.TERMINOLOGY_PASSTHROUGH_TX_MESSAGE, s.getMessage(), system, code); + txWarning(errors, NO_RULE_DATE, s.getTxLink(), s.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, s == null, I18nConstants.TERMINOLOGY_PASSTHROUGH_TX_MESSAGE, s.getMessage(), system, code); } return ok; } if (!s.messageIsInIssues()) { if (s.getErrorClass() != null && s.getErrorClass().isInfrastructure()) - txWarning(errors, NO_RULE_DATE, s.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, s == null, s.getMessage()); + txWarning(errors, NO_RULE_DATE, s.getTxLink(), s.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, s == null, s.getMessage()); else if (s.getSeverity() == IssueSeverity.INFORMATION) - txHint(errors, NO_RULE_DATE, s.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, s == null, s.getMessage()); + txHint(errors, NO_RULE_DATE, s.getTxLink(), s.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, s == null, s.getMessage()); else if (s.getSeverity() == IssueSeverity.WARNING) - txWarning(errors, NO_RULE_DATE, s.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, s == null, s.getMessage()); - else - return txRule(errors, NO_RULE_DATE, s.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, s == null, I18nConstants.TERMINOLOGY_PASSTHROUGH_TX_MESSAGE, s.getMessage(), system, code) && ok; + txWarning(errors, NO_RULE_DATE, s.getTxLink(), s.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, s == null, s.getMessage()); + else + return txRule(errors, NO_RULE_DATE, s.getTxLink(), s.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, s == null, I18nConstants.TERMINOLOGY_PASSTHROUGH_TX_MESSAGE, s.getMessage(), system, code) && ok; } return ok; } else if (system.startsWith("http://build.fhir.org") || system.startsWith("https://build.fhir.org")) { - rule(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_SYSTEM_WRONG_BUILD, system, suggestSystemForBuild(system)); + rule(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_SYSTEM_WRONG_BUILD, system, suggestSystemForBuild(system)); return false; } else if (system.startsWith("http://hl7.org/fhir") || system.startsWith("https://hl7.org/fhir") || system.startsWith("http://www.hl7.org/fhir") || system.startsWith("https://www.hl7.org/fhir")) { if (SIDUtilities.isknownCodeSystem(system)) { @@ -1170,45 +1229,48 @@ else if (s.getSeverity() == IssueSeverity.WARNING) } else if (system.startsWith("http://hl7.org/fhir/test")) { return ok; // we don't validate these } else if (system.endsWith(".html")) { - rule(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_SYSTEM_WRONG_HTML, system, suggestSystemForPage(system)); + rule(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_SYSTEM_WRONG_HTML, system, suggestSystemForPage(system)); return false; } else { CodeSystem cs = getCodeSystem(system); if (rule(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, cs != null, I18nConstants.TERMINOLOGY_TX_SYSTEM_UNKNOWN, system)) { ConceptDefinitionComponent def = getCodeDefinition(cs, code); - if (warning(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, def != null, I18nConstants.UNKNOWN_CODESYSTEM, system, code)) + if (warning(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path+".system", def != null, I18nConstants.UNKNOWN_CODESYSTEM, system, code)) return warning(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, display == null || display.equals(def.getDisplay()), I18nConstants.TERMINOLOGY_TX_DISPLAY_WRONG, def.getDisplay()) && ok; } return false; } } else if (context.isNoTerminologyServer() && NO_TX_SYSTEM_EXEMPT.contains(system)) { - txWarning(errors, NO_RULE_DATE, null, IssueType.BUSINESSRULE, element.line(), element.col(), path, false, I18nConstants.ERROR_VALIDATING_CODE_RUNNING_WITHOUT_TERMINOLOGY_SERVICES, code, system); + txWarning(errors, NO_RULE_DATE, null, null, IssueType.BUSINESSRULE, element.line(), element.col(), path, false, I18nConstants.ERROR_VALIDATING_CODE_RUNNING_WITHOUT_TERMINOLOGY_SERVICES, code, system); return ok; // no checks in this case } else if (startsWithButIsNot(system, "http://snomed.info/sct", "http://loinc.org", "http://unitsofmeasure.org", "http://www.nlm.nih.gov/research/umls/rxnorm")) { rule(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_SYSTEM_INVALID, system); return false; + } else if (ValueSetUtilities.isServerSide(system)) { + warning(errors, "2025-11-28", IssueType.BUSINESSRULE, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_SYSTEM_UNSUPPORTED, system, version, txSupportInfo.reason()); + return ok; } else { try { - if (context.fetchResourceWithException(ValueSet.class, system, element.getProperty().getStructure()) != null) { + if (context.fetchResourceWithException(ValueSet.class, system, null, element.getProperty().getStructure()) != null) { ok = rule(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_SYSTEM_VALUESET, system) && ok; // Lloyd: This error used to prohibit checking for downstream issues, but there are some cases where that checking needs to occur. Please talk to me before changing the code back. } boolean done = false; if (system.startsWith("https:") && system.length() > 7) { - String ns = "http:"+system.substring(6); + String ns = "http:" + system.substring(6); CodeSystem cs = getCodeSystem(ns); if (cs != null || NO_HTTPS_LIST.contains(system)) { rule(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_SYSTEM_HTTPS, system); done = true; - } - } + } + } if (!isAllowExamples() || !Utilities.startsWithInList(system, "http://example.org", "https://example.org")) { CodeSystem cs = context.fetchCodeSystem(system); if (cs == null) { - hint(errors, NO_RULE_DATE, IssueType.UNKNOWN, element.line(), element.col(), path, done, I18nConstants.UNKNOWN_CODESYSTEM, system); + hint(errors, NO_RULE_DATE, IssueType.UNKNOWN, element.line(), element.col(), path+".system", done, I18nConstants.UNKNOWN_CODESYSTEM, system); } else { if (hint(errors, NO_RULE_DATE, IssueType.UNKNOWN, element.line(), element.col(), path, cs.getContent() != CodeSystemContentMode.NOTPRESENT, I18nConstants.TERMINOLOGY_TX_SYSTEM_NOT_USABLE, system)) { - ok = rule(errors, NO_RULE_DATE, IssueType.UNKNOWN, element.line(), element.col(), path, false, "Error - this should not happen? (Consult GG)") && ok; + ok = rule(errors, NO_RULE_DATE, IssueType.UNKNOWN, element.line(), element.col(), path, false, "Unexpected internal condition - unsupported code system could be supported? (url = {0})", cs.getVersionedUrl()) && ok; } } } @@ -1380,7 +1442,7 @@ private boolean checkCodeableConcept(List errors, String path // } else if (binding.hasValueSet()) { // hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_CANTCHECK); } else if (!noBindingMsgSuppressed) { - hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSOURCE, path); + hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSOURCE, path, profile); } for (ElementDefinitionBindingAdditionalComponent ab : binding.getAdditional()) { StringBuilder b = new StringBuilder(); @@ -1653,7 +1715,7 @@ else if (!noExtensibleWarnings) { boolean atLeastOneSystemIsSupported = false; for (Coding nextCoding : cc.getCoding()) { String nextSystem = nextCoding.getSystem(); - if (isNotBlank(nextSystem) && context.supportsSystem(nextSystem)) { + if (isNotBlank(nextSystem) && context.getTxSupportInfo(nextSystem, nextCoding.getVersion()).isSupported()) { atLeastOneSystemIsSupported = true; break; } @@ -1669,46 +1731,46 @@ else if (!noExtensibleWarnings) { bindingsOk = false; if (vr.getErrorClass() != null && vr.getErrorClass() == TerminologyServiceErrorClass.NOSERVICE) { if (strength == BindingStrength.REQUIRED || (strength == BindingStrength.EXTENSIBLE && maxVS != null)) { - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOSVC_BOUND_REQ, describeReference(vsRef)); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOSVC_BOUND_REQ, describeReference(vsRef)); } else if (strength == BindingStrength.EXTENSIBLE) { - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOSVC_BOUND_EXT, describeReference(vsRef)); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOSVC_BOUND_EXT, describeReference(vsRef)); } } else if (vr.getErrorClass() != null && vr.getErrorClass().isInfrastructure()) { if (strength == BindingStrength.REQUIRED) - txWarning(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_1_CC, describeReference(vsRef), vr.getErrorClass().toString()); + txWarning(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_1_CC, describeReference(vsRef), vr.getErrorClass().toString()); else if (strength == BindingStrength.EXTENSIBLE) { if (maxVS != null) bh.see(checkMaxValueSet(errors, path, element, profile, ExtensionUtilities.readStringFromExtension(maxVS), cc, stack)); else if (!noExtensibleWarnings) - txWarningForLaterRemoval(element, errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_2_CC, describeReference(vsRef), vr.getErrorClass().toString()); + txWarningForLaterRemoval(element, errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_2_CC, describeReference(vsRef), vr.getErrorClass().toString()); } else if (strength == BindingStrength.PREFERRED) { if (baseOnly) { - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_3_CC, describeReference(vsRef), vr.getErrorClass().toString()); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_3_CC, describeReference(vsRef), vr.getErrorClass().toString()); } } } else if (vr.getErrorClass() != null && vr.getErrorClass() == TerminologyServiceErrorClass.CODESYSTEM_UNSUPPORTED) { // we've already handled the warnings / errors about this, and set the status correctly. We don't need to do anything more? } else if (vr.getErrorClass() != TerminologyServiceErrorClass.SERVER_ERROR) { // (should have?) already handled server error if (strength == BindingStrength.REQUIRED) { - bh.see(txRule(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_1_CC, describeReference(vsRef, valueset, bc, usageNote), ccSummary(cc))); + bh.see(txRule(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_1_CC, describeReference(vsRef, valueset, bc, usageNote), ccSummary(cc))); } else if (strength == BindingStrength.EXTENSIBLE) { if (maxVS != null) bh.see(checkMaxValueSet(errors, path, element, profile, ExtensionUtilities.readStringFromExtension(maxVS), cc, stack)); if (!noExtensibleWarnings) - txWarningForLaterRemoval(element, errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_2_CC, describeReference(vsRef, valueset, bc, usageNote), ccSummary(cc)); + txWarningForLaterRemoval(element, errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_2_CC, describeReference(vsRef, valueset, bc, usageNote), ccSummary(cc)); } else if (strength == BindingStrength.PREFERRED) { if (baseOnly) { - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_3_CC, describeReference(vsRef, valueset, bc, usageNote), ccSummary(cc)); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_3_CC, describeReference(vsRef, valueset, bc, usageNote), ccSummary(cc)); } } } } else if (vr.getMessage() != null) { if (vr.getTrimmedMessage() != null) { if (vr.getSeverity() == IssueSeverity.INFORMATION) { - txHint(errors, "2023-07-03", vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()); + txHint(errors, "2023-07-03", vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()); } else { checkDisp = false; - txWarning(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getTrimmedMessage()); + txWarning(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getTrimmedMessage()); } } } else { @@ -1780,8 +1842,8 @@ private boolean calculateSeverityForTxIssuesAndUpdateErrors(List errors, String path, Element element, NodeStack stack, ValueSet valueset, Coding nextCoding) { boolean ok = true; - if (isNotBlank(nextCoding.getCode()) && isNotBlank(nextCoding.getSystem()) && context.supportsSystem(nextCoding.getSystem())) { + if (isNotBlank(nextCoding.getCode()) && isNotBlank(nextCoding.getSystem()) && context.getTxSupportInfo(nextCoding.getSystem(), nextCoding.getVersion()).isSupported()) { ValidationResult vr = checkCodeOnServer(stack, valueset, nextCoding); ok = calculateSeverityForTxIssuesAndUpdateErrors(errors, vr, element, path, false, null, null) && ok; if (vr.getSeverity() != null && !vr.messageIsInIssues()) { if (vr.getSeverity() == IssueSeverity.INFORMATION) { - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()); } else if (vr.getSeverity() == IssueSeverity.WARNING) { - txWarning(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()); + txWarning(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()); } else { - ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()) && ok; + ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()) && ok; } } } @@ -1925,7 +1987,7 @@ private boolean checkCDACodeableConcept(List errors, String p // } else if (binding.hasValueSet()) { // hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_CANTCHECK); } else if (!noBindingMsgSuppressed) { - hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSOURCE, path); + hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSOURCE, path, profile); } for (ElementDefinitionBindingAdditionalComponent ab : binding.getAdditional()) { StringBuilder b = new StringBuilder(); @@ -1971,7 +2033,7 @@ private boolean checkTerminologyCoding(List errors, String pa } else if (binding.hasValueSet()) { hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_CANTCHECK); } else if (!inCodeableConcept && !noBindingMsgSuppressed) { - hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSOURCE, path); + hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSOURCE, path, profile); } for (ElementDefinitionBindingAdditionalComponent ab : binding.getAdditional()) { StringBuilder b = new StringBuilder(); @@ -2021,37 +2083,37 @@ private boolean validateBindingTerminologyCoding(List errors, timeTracker.tx(t, "vc "+system+"#"+code+" '"+display+"'"); if (vr != null && !vr.isOk()) { if (vr.IsNoService()) - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSERVER, system+"#"+code); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSERVER, system+"#"+code); else if (vr.getErrorClass() != null && vr.getErrorClass().isInfrastructure()) { if (strength == BindingStrength.REQUIRED) - txWarning(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_4a, describeReference(vsRef, valueset, bc, usageNote), vr.getMessage(), system+"#"+code); + txWarning(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_4a, describeReference(vsRef, valueset, bc, usageNote), vr.getMessage(), system+"#"+code); else if (strength == BindingStrength.EXTENSIBLE) { if (vsMax != null) checkMaxValueSet(errors, path, element, profile, ExtensionUtilities.readStringFromExtension(vsMax), c, stack); else if (!noExtensibleWarnings) - txWarningForLaterRemoval(element, errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_5, describeReference(vsRef, valueset, bc, usageNote)); + txWarningForLaterRemoval(element, errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_5, describeReference(vsRef, valueset, bc, usageNote)); } else if (strength == BindingStrength.PREFERRED) { if (baseOnly) { - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_6, describeReference(vsRef, valueset, bc, usageNote)); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_6, describeReference(vsRef, valueset, bc, usageNote)); } } } else if (strength == BindingStrength.REQUIRED) - ok= txRule(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_4, describeReference(vsRef, valueset, bc, usageNote), (vr.getMessage() != null ? " (error message = " + vr.getMessage() + ")" : ""), system+"#"+code) && ok; + ok= txRule(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_4, describeReference(vsRef, valueset, bc, usageNote), (vr.getMessage() != null ? " (error message = " + vr.getMessage() + ")" : ""), system+"#"+code) && ok; else if (strength == BindingStrength.EXTENSIBLE) { if (vsMax != null) ok = checkMaxValueSet(errors, path, element, profile, ExtensionUtilities.readStringFromExtension(vsMax), c, stack) && ok; else - txWarning(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_5, describeReference(vsRef, valueset, bc, usageNote), (vr.getMessage() != null ? " (error message = " + vr.getMessage() + ")" : ""), system+"#"+code); + txWarning(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_5, describeReference(vsRef, valueset, bc, usageNote), (vr.getMessage() != null ? " (error message = " + vr.getMessage() + ")" : ""), system+"#"+code); } else if (strength == BindingStrength.PREFERRED) { if (baseOnly) { - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_6, describeReference(vsRef, valueset, bc, usageNote), (vr.getMessage() != null ? " (error message = " + vr.getMessage() + ")" : ""), system+"#"+code); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_6, describeReference(vsRef, valueset, bc, usageNote), (vr.getMessage() != null ? " (error message = " + vr.getMessage() + ")" : ""), system+"#"+code); } } } else if (vr != null && vr.getMessage() != null){ if (vr.getSeverity() == IssueSeverity.INFORMATION) { - txHint(errors, "2023-07-04", vr.getTxLink(), IssueType.INFORMATIONAL, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_HINT, code, vr.getMessage()); + txHint(errors, "2023-07-04", vr.getTxLink(), vr.getDiagnostics(), IssueType.INFORMATIONAL, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_HINT, code, vr.getMessage()); } else { - txWarning(errors, "2023-07-04", vr.getTxLink(), IssueType.INFORMATIONAL, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_WARNING, code, vr.getMessage()); + txWarning(errors, "2023-07-04", vr.getTxLink(), vr.getDiagnostics(), IssueType.INFORMATIONAL, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_WARNING, code, vr.getMessage()); } } } catch (Exception e) { @@ -2074,19 +2136,22 @@ private boolean convertCDACodeToCodeableConcept(List errors, String oid = element.getNamedChildValue("codeSystem", false); if (oid != null) { c.setSystem("urn:oid:"+oid); - OIDSummary urls = context.urlsForOid(oid, "CodeSystem"); - if (urls.urlCount() == 1) { - c.setSystem(urls.getUrl()); - } else if (urls.urlCount() == 0) { - warning(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_UNKNOWN_OID, oid); - } else { - String prefUrl = urls.chooseBestUrl(); - if (prefUrl == null) { - rule(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_OID_MULTIPLE_MATCHES, oid, urls.describe()); - ok = false; + IOIDServices oidservices = context.oidServices(); + if (hint(errors, "2025-09-28", IssueType.CODEINVALID, element.line(), element.col(), path, context.oidServices() != null, I18nConstants.TERMINOLOGY_TX_NO_OID_SERVICES, oid)) { + IOIDServices.OIDSummary urls = context.oidServices().urlsForOid(oid, "CodeSystem"); + if (urls.urlCount() == 1) { + c.setSystem(urls.getUrl()); + } else if (urls.urlCount() == 0) { + warning(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_UNKNOWN_OID, oid); } else { - c.setSystem(prefUrl); - warning(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_OID_MULTIPLE_MATCHES_CHOSEN, oid, prefUrl, urls.describe()); + String prefUrl = urls.chooseBestUrl(); + if (prefUrl == null) { + rule(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_OID_MULTIPLE_MATCHES, oid, urls.describe()); + ok = false; + } else { + c.setSystem(prefUrl); + warning(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_OID_MULTIPLE_MATCHES_CHOSEN, oid, prefUrl, urls.describe()); + } } } } else { @@ -2151,9 +2216,9 @@ private boolean checkMaxValueSet(List errors, String path, El timeTracker.tx(t, "vc "+cc.toString()); if (!vr.isOk()) { if (vr.getErrorClass() != null && vr.getErrorClass().isInfrastructure()) - txWarning(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_7, describeReference(maxVSUrl, valueset, BindingContext.MAXVS, null), vr.getMessage()); + txWarning(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_7, describeReference(maxVSUrl, valueset, BindingContext.MAXVS, null), vr.getMessage()); else - ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_8, describeReference(maxVSUrl, valueset, BindingContext.MAXVS, null), ccSummary(cc)) && ok; + ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_8, describeReference(maxVSUrl, valueset, BindingContext.MAXVS, null), ccSummary(cc)) && ok; } } catch (CheckCodeOnServerException e) { if (STACK_TRACE) e.getCause().printStackTrace(); @@ -2191,9 +2256,9 @@ private boolean checkMaxValueSet(List errors, String path, El timeTracker.tx(t, "vc "+c.getSystem()+"#"+c.getCode()+" '"+c.getDisplay()+"'"); if (!vr.isOk()) { if (vr.getErrorClass() != null && vr.getErrorClass().isInfrastructure()) - txWarning(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_9, describeReference(maxVSUrl, valueset, BindingContext.MAXVS, null), vr.getMessage(), c.getSystem()+"#"+c.getCode()); + txWarning(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_9, describeReference(maxVSUrl, valueset, BindingContext.MAXVS, null), vr.getMessage(), c.getSystem()+"#"+c.getCode()); else - ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_10, describeReference(maxVSUrl, valueset, BindingContext.MAXVS, null), c.getSystem(), c.getCode()) && ok; + ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_10, describeReference(maxVSUrl, valueset, BindingContext.MAXVS, null), c.getSystem(), c.getCode()) && ok; } } catch (Exception e) { if (STACK_TRACE) e.printStackTrace(); @@ -2221,9 +2286,9 @@ private boolean checkMaxValueSet(List errors, String path, El timeTracker.tx(t, "vc "+value); if (!vr.isOk()) { if (vr.getErrorClass() != null && vr.getErrorClass().isInfrastructure()) - txWarning(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_9, describeReference(maxVSUrl, valueset, BindingContext.BASE, null), vr.getMessage(), value); + txWarning(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_9, describeReference(maxVSUrl, valueset, BindingContext.BASE, null), vr.getMessage(), value); else { - ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_11, describeReference(maxVSUrl, valueset, BindingContext.BASE, null), vr.getMessage()) && ok; + ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_11, describeReference(maxVSUrl, valueset, BindingContext.BASE, null), vr.getMessage()) && ok; } } } catch (Exception e) { @@ -2289,7 +2354,7 @@ private boolean checkCodedElement(List errors, String path, E // hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_CANTCHECK); } else if (!inCodeableConcept && !noBindingMsgSuppressed) { - hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSOURCE, path); + hint(errors, NO_RULE_DATE, IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSOURCE, path, profile); } for (ElementDefinitionBindingAdditionalComponent ab : binding.getAdditional()) { @@ -2361,38 +2426,38 @@ private boolean validateBindingCodedElement(List errors, Stri if (vr != null && !vr.isOk()) { if (vr.IsNoService()) - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSERVER, theSystem+"#"+theCode); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_BINDING_NOSERVER, theSystem+"#"+theCode); else if (vr.getErrorClass() != null && !vr.getErrorClass().isInfrastructure()) { if (strength == BindingStrength.REQUIRED) - ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_4a, describeReference(vsRef, valueset, bc, usageNote), vr.getMessage(), theSystem+"#"+theCode) && ok; + ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_4a, describeReference(vsRef, valueset, bc, usageNote), vr.getMessage(), theSystem+"#"+theCode) && ok; else if (strength == BindingStrength.EXTENSIBLE) { if (vsMax != null) checkMaxValueSet(errors, path, element, profile, ExtensionUtilities.readStringFromExtension(vsMax), c, stack); else if (!noExtensibleWarnings) - txWarningForLaterRemoval(element, errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_5, describeReference(vsRef, valueset, bc, usageNote), theSystem+"#"+theCode); + txWarningForLaterRemoval(element, errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_5, describeReference(vsRef, valueset, bc, usageNote), theSystem+"#"+theCode); } else if (strength == BindingStrength.PREFERRED) { if (baseOnly) { - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_6, describeReference(vsRef, valueset, bc, usageNote), theSystem+"#"+theCode); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_CONFIRM_6, describeReference(vsRef, valueset, bc, usageNote), theSystem+"#"+theCode); } } } else if (strength == BindingStrength.REQUIRED) - ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_12, describeReference(vsRef, valueset, bc, usageNote), getErrorMessage(vr.getMessage()), theSystem+"#"+theCode) && ok; + ok = txRule(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_12, describeReference(vsRef, valueset, bc, usageNote), getErrorMessage(vr.getMessage()), theSystem+"#"+theCode) && ok; else if (strength == BindingStrength.EXTENSIBLE) { if (vsMax != null) ok = checkMaxValueSet(errors, path, element, profile, ExtensionUtilities.readStringFromExtension(vsMax), c, stack) && ok; else if (!noExtensibleWarnings) { - txWarningForLaterRemoval(element, errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_13, describeReference(vsRef, valueset, bc, usageNote), getErrorMessage(vr.getMessage()), c.getSystem()+"#"+c.getCode()); + txWarningForLaterRemoval(element, errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_13, describeReference(vsRef, valueset, bc, usageNote), getErrorMessage(vr.getMessage()), c.getSystem()+"#"+c.getCode()); } } else if (strength == BindingStrength.PREFERRED) { if (baseOnly) { - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_14, describeReference(vsRef, valueset, bc, usageNote), getErrorMessage(vr.getMessage()), theSystem+"#"+theCode); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_NOVALID_14, describeReference(vsRef, valueset, bc, usageNote), getErrorMessage(vr.getMessage()), theSystem+"#"+theCode); } } } else if (vr != null && vr.getMessage() != null) { if (vr.getSeverity() == IssueSeverity.INFORMATION) { - txHint(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()); + txHint(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()); } else { - txWarning(errors, NO_RULE_DATE, vr.getTxLink(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()); + txWarning(errors, NO_RULE_DATE, vr.getTxLink(), vr.getDiagnostics(), IssueType.CODEINVALID, element.line(), element.col(), path, false, vr.getMessage()); } } } @@ -2420,23 +2485,26 @@ private boolean checkContactPoint(List errors, String path, E private boolean checkExtension(ValidationContext valContext, List errors, String path, Element resource, Element container, Element element, ElementDefinition def, StructureDefinition profile, NodeStack stack, NodeStack containerStack, String extensionUrl, ResourcePercentageLogger pct, ValidationMode mode) throws FHIRException { boolean ok = true; String url = element.getNamedChildValue("url", false); + String vurl = url; String u = url.contains("|") ? url.substring(0, url.indexOf("|")) : url; boolean isModifier = element.getName().equals("modifierExtension"); assert def.getIsModifier() == isModifier; - + BooleanHolder errored = new BooleanHolder(false); ok = rule(errors, "2025-01-28", IssueType.INVALID, element.line(), element.col(), path + "[url='" + url + "']", valContext.isMatchetype() || !Utilities.existsInList(url, "http://hl7.org/fhir/tools/StructureDefinition/matchetype-optional", "http://hl7.org/fhir/tools/StructureDefinition/matchetype-count", "http://hl7.org/fhir/tools/StructureDefinition/matchetype-value"), I18nConstants.RESOURCE_NOT_MATCHETYPE_EXTENSION, url) && ok; long t = System.nanoTime(); - StructureDefinition ex = Utilities.isAbsoluteUrl(u) ? context.fetchResource(StructureDefinition.class, u) : null; + StructureDefinition ex = Utilities.isAbsoluteUrl(u) ?profileUtilities.findProfile(u, profile) : null; if (ex == null) { - ex = getXverExt(errors, path, element, url); + ex = getXverExt(errors, path, element, url, errored); + } else { + vurl = ex.getVersionedUrl(); } if (url.contains("|")) { if (ex == null) { - ex = Utilities.isAbsoluteUrl(url) ? context.fetchResource(StructureDefinition.class, url) : null; + ex = Utilities.isAbsoluteUrl(url) ?profileUtilities.findProfile(url, profile) : null; if (ex == null) { warning(errors, "2022-12-17", IssueType.INVALID, element.line(), element.col(), path + "[url='" + url + "']", false, I18nConstants.EXT_VER_URL_NO_MATCH); } else { @@ -2454,7 +2522,7 @@ private boolean checkExtension(ValidationContext valContext, List allowedTypes = listExtensionTypes(ex); + ElementDefinition ved = getExtensionValueDefinition(ex); + Set allowedTypes = listExtensionTypes(ex, ved); String actualType = getExtensionType(element); if (actualType != null) ok = rule(errors, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), path, allowedTypes.contains(actualType), I18nConstants.EXTENSION_EXT_TYPE, url, allowedTypes.toString(), actualType) && ok; - else if (element.hasChildren("extension")) - ok = rule(errors, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), path, allowedTypes.isEmpty(), I18nConstants.EXTENSION_EXT_SIMPLE_WRONG, url) && ok; - else + else if (element.hasChildren("extension")) { + // just because a value is allowed doesn't mean that it's required. + if (ved.getMin() > 0) { + ok = rule(errors, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), path, allowedTypes.isEmpty(), I18nConstants.EXTENSION_EXT_SIMPLE_WRONG, url) && ok; + } else { + // nothing? +// ok = rule(errors, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), path, allowedTypes.isEmpty(), I18nConstants.EXTENSION_EXT_SIMPLE_WRONG, url) && ok; + } + } else ok = rule(errors, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), path, allowedTypes.isEmpty(), I18nConstants.EXTENSION_EXT_SIMPLE_ABSENT, url) && ok; // 3. is the content of the extension valid? @@ -2527,7 +2602,7 @@ private String getExtensionType(Element element) { return null; } - private Set listExtensionTypes(StructureDefinition ex) { + private ElementDefinition getExtensionValueDefinition(StructureDefinition ex) { ElementDefinition vd = null; for (ElementDefinition ed : ex.getSnapshot().getElement()) { if (ed.getPath().startsWith("Extension.value")) { @@ -2535,6 +2610,9 @@ private Set listExtensionTypes(StructureDefinition ex) { break; } } + return vd; + } + private Set listExtensionTypes(StructureDefinition ex, ElementDefinition vd) { Set res = new HashSet(); if (vd != null && !"0".equals(vd.getMax())) { for (TypeRefComponent tr : vd.getType()) { @@ -2623,7 +2701,7 @@ private boolean checkExtensionContext(Object appContext, List } if (!ok) { - if (checkConformsToProfile(appContext, errors, resource, container, stack, extUrl, ctxt.getExpression(), pu)) { + if (checkConformsToProfile(appContext, errors, resource, container, stack, extUrl, ctxt.getExpression(), pu, definition)) { for (String p : plist) { if (ok) { break; @@ -2644,7 +2722,7 @@ private boolean checkExtensionContext(Object appContext, List break; } if (sd.getBaseDefinition() != null) { - sd = context.fetchResource(StructureDefinition.class, sd.getBaseDefinition(), sd); + sd =profileUtilities.findProfile(sd.getBaseDefinition(), sd); } else { sd = null; } @@ -2765,14 +2843,14 @@ private boolean hasElementName(List plist, String en) { return false; } - private boolean checkConformsToProfile(Object appContext, List errors, Element resource, Element container, NodeStack stack, String extUrl, String expression, String pu) { + private boolean checkConformsToProfile(Object appContext, List errors, Element resource, Element container, NodeStack stack, String extUrl, String expression, String pu, StructureDefinition sdT) { if (pu == null) { return true; } if (pu.equals("http://hl7.org/fhir/StructureDefinition/"+resource.fhirType())) { return true; } - StructureDefinition sd = context.fetchResource(StructureDefinition.class, pu); + StructureDefinition sd =profileUtilities.findProfile(pu, sdT); if (!rule(errors, "2023-07-03", IssueType.UNKNOWN, container.line(), container.col(), stack.getLiteralPath(), sd != null,I18nConstants.EXTENSION_CONTEXT_UNABLE_TO_FIND_PROFILE, extUrl, expression)) { return false; } else if (sd.getType().equals(resource.fhirType())) { @@ -3187,7 +3265,7 @@ else if (Utilities.isAllWhitespace(e.primitiveValue())) ok = rule(errors, NO_RULE_DATE, IssueType.INVALID, e.line(), e.col(), path, Utilities.isAbsoluteUrl(url), node.isContained() ? I18nConstants.TYPE_SPECIFIC_CHECKS_CANONICAL_CONTAINED : I18nConstants.TYPE_SPECIFIC_CHECKS_CANONICAL_ABSOLUTE, url) && ok; } else if (!e.getProperty().getDefinition().getPath().equals("Bundle.entry.fullUrl")) { // we don't check fullUrl here; it's not a reference, it's a definition. It'll get checked as part of checking the bundle - ok = validateReference(valContext, errors, path, type, context, e, parentNode == null ? null : parentNode.getElement(), url) && ok; + ok = validateReference(valContext, errors, path, type, context, e, parentNode == null ? null : parentNode.getElement(), url, profile) && ok; } } if (type.equals(ID) && !"Resource.id".equals(context.getBase().getPath())) { @@ -3485,6 +3563,10 @@ private boolean checkTypeValue(List errors, String path, Elem for (StructureDefinition t : context.fetchResourcesByType(StructureDefinition.class)) { if (t.hasSourcePackage() && t.getSourcePackage().getId().startsWith("hl7.fhir.r") && v.equals(t.getType())) { tok = true; + } else if (v.equals(t.getType())) { + if (t.hasUserData(UserDataNames.loader_custom_resource)) { + tok = true; + } } } if (tok) { @@ -3510,7 +3592,7 @@ private Object prepWSPresentation(String s) { return Utilities.escapeJson(s); } - public boolean validateReference(ValidationContext valContext, List errors, String path, String type, ElementDefinition context, Element e, Element parent, String url) { + public boolean validateReference(ValidationContext valContext, List errors, String path, String type, ElementDefinition context, Element e, Element parent, String url, StructureDefinition sd) { boolean ok = true; boolean internal = false; String eurl = parent != null && parent.fhirType().equals("Extension") ? parent.getNamedChildValue("url") : null; @@ -3523,20 +3605,21 @@ public boolean validateReference(ValidationContext valContext, List refs = new ArrayList<>(); - int count = countTargetMatches(valContext.getRootResource(), url.substring(1), true, "$", refs); - found = count > 0; - } else { - found = isDefinitionURL(url) || (settings.isAllowExamples() && isExampleUrl(url)) /* || (url.startsWith("http://hl7.org/fhir/tools")) */ || isCommunicationsUrl(url) || - SpecialExtensions.isKnownExtension(url) || isXverUrl(url) || SIDUtilities.isKnownSID(url) || isKnownNamespaceUri(url) || isRfcRef(url) || isKnownMappingUri(url) || oids.isKnownOID(url); - if (!found) { - found = fetcher.resolveURL(this, valContext, context.getBase().getPath(), url, type, type.equals("canonical"), context.getByType(type) != null ? context.getByType(type).getTargetProfile() : null); - } + if (url.startsWith("#")) { + List refs = new ArrayList<>(); + int count = countTargetMatches(valContext.getRootResource(), url.substring(1), true, "$", refs); + found = count > 0; + } else { + found = resolveUrl(valContext, type, context, url); + if (found && SIDUtilities.isIncorrectSID(url)) { + warning(errors, "2025-08-29", IssueType.INFORMATIONAL, e.line(), e.col(), path, false, I18nConstants.TYPE_SPECIFIC_CHECKS_DT_SID_INCORRECT, url); + } + } + if (!found && url.startsWith("https:")) { // check to see whether + String insecureURL = url.replace("https://", "http://"); + if (resolveUrl(valContext, type, context, insecureURL)) { + hint(errors, NO_RULE_DATE, IssueType.INFORMATIONAL, e.line(), e.col(), path, false, I18nConstants.TYPE_SPECIFIC_CHECKS_DT_URL_WRONG_HTTPS, url, insecureURL); } - } catch (IOException e1) { - found = false; } if (!found) { if (internal) { @@ -3602,17 +3685,19 @@ public boolean validateReference(ValidationContext valContext, List possibleVersions = fetcher.fetchCanonicalResourceVersions(this, valContext.getAppContext(), url); + Set possibleVersions = fetcher.fetchCanonicalResourceVersions(this, valContext.getAppContext(), url); warning(errors, NO_RULE_DATE, IssueType.INVALID, e.line(), e.col(), path, possibleVersions.size() <= 1, I18nConstants.TYPE_SPECIFIC_CHECKS_DT_CANONICAL_MULTIPLE_POSSIBLE_VERSIONS, - url, ((CanonicalResource) r).getVersion(), CommaSeparatedStringBuilder.join(", ", Utilities.sorted(possibleVersions))); + url, ((CanonicalResource) r).getVersion(), CommaSeparatedStringBuilder.join(", ", Utilities.sorted(IValidatorResourceFetcher.ResourceVersionInformation.toStrings(possibleVersions)))); } } } else { @@ -3628,11 +3713,33 @@ public boolean validateReference(ValidationContext valContext, List listExpectedCanonicalTypes(ElementDefinition context) { + private Set listExpectedCanonicalTypes(ElementDefinition context, StructureDefinition source) { Set res = new HashSet<>(); TypeRefComponent tr = context.getType("canonical"); if (tr != null) { for (CanonicalType p : tr.getTargetProfile()) { String url = p.getValue(); - StructureDefinition sd = this.context.fetchResource(StructureDefinition.class, url); + StructureDefinition sd = this.profileUtilities.findProfile(url, source); if (sd != null) { res.add(sd.getType()); } else { @@ -3771,11 +3879,11 @@ private Set listExpectedCanonicalTypes(ElementDefinition context) { return res; } - private boolean isCorrectCanonicalType(Resource r, ElementDefinition context) { + private boolean isCorrectCanonicalType(Resource r, ElementDefinition context, StructureDefinition sd) { TypeRefComponent tr = context.getType("canonical"); if (tr != null) { for (CanonicalType p : tr.getTargetProfile()) { - if (isCorrectCanonicalType(r, p)) { + if (isCorrectCanonicalType(r, p, sd)) { return true; } } @@ -3786,10 +3894,10 @@ private boolean isCorrectCanonicalType(Resource r, ElementDefinition context) { return false; } - private boolean isCorrectCanonicalType(Resource r, CanonicalType p) { + private boolean isCorrectCanonicalType(Resource r, CanonicalType p, StructureDefinition sdT) { String url = p.getValue(); String t = null; - StructureDefinition sd = context.fetchResource(StructureDefinition.class, url); + StructureDefinition sd = profileUtilities.findProfile(url, sdT); if (sd != null) { t = sd.getType(); } else if (url.startsWith("http://hl7.org/fhir/StructureDefinition/")) { @@ -3828,7 +3936,9 @@ private boolean isCanonicalURLElement(Element e, NodeStack parent) { if (!"url".equals(p[1])) { return false; } - return VersionUtilities.getCanonicalResourceNames(context.getVersion()).contains((p[0])); + return + Utilities.existsInList(p[0], "CanonicalResource", "MetadataResource") || + VersionUtilities.getCanonicalResourceNames(context.getVersion()).contains((p[0])); } private boolean containsHtmlTags(String cnt) { @@ -4079,32 +4189,32 @@ private boolean checkPrimitiveBinding(ValidationContext valContext, List types = new HashSet<>(); - StructureDefinition sdFT = context.fetchResource(StructureDefinition.class, "http://hl7.org/fhir/StructureDefinition/"+ft); + StructureDefinition sdFT = profileUtilities.findProfile("http://hl7.org/fhir/StructureDefinition/"+ft, profile); boolean rok = false; for (CanonicalType tp : type.getTargetProfile()) { - StructureDefinition sd = context.fetchResource(StructureDefinition.class, tp.getValue(), profile); + StructureDefinition sd =profileUtilities.findProfile(tp.getValue(), profile); if (sd != null) { types.add(sd.getType()); StructureDefinition sdF = sdFT; @@ -4833,7 +4943,7 @@ else if (mode.getValue().equals(AggregationMode.REFERENCED) && (refType != Refer rok = true; break; } - sdF = sdF.hasBaseDefinition() ? context.fetchResource(StructureDefinition.class, sdF.getBaseDefinition(), sdF) : null; + sdF = sdF.hasBaseDefinition() ?profileUtilities.findProfile(sdF.getBaseDefinition(), sdF) : null; } } } @@ -5136,10 +5246,11 @@ private List getCriteriaForDiscriminator(String path, Element for (TypeRefComponent type : element.getType()) { for (CanonicalType p : type.getProfile()) { String id = p.hasExtension(ExtensionDefinitions.EXT_PROFILE_ELEMENT) ? p.getExtensionString(ExtensionDefinitions.EXT_PROFILE_ELEMENT) : null; - StructureDefinition sd = context.fetchResource(StructureDefinition.class, p.getValue(), profile); + StructureDefinition sd =profileUtilities.findProfile(p.getValue(), profile); // PATCH: https://github.com/ahdis/matchbox/issues/138 try to check if it is a cross version extension + BooleanHolder errored = new BooleanHolder(false); if (sd == null) { - sd = getXverExt(new ArrayList(), path, new Element("profile"), p.getValue()); + sd = getXverExt(new ArrayList(), path, new Element("profile"), p.getValue(), errored); } if (sd == null) throw new DefinitionException(context.formatMessage(I18nConstants.SD_ED_TYPE_PROFILE_UNKNOWN, p)); @@ -5183,13 +5294,13 @@ public List getImplementationGuides() { return igs; } - private StructureDefinition getProfileForType(String type, List list, Resource src) { + private StructureDefinition getProfileForType(String type, List list, StructureDefinition src) { for (TypeRefComponent tr : list) { String url = tr.getWorkingCode(); if (!Utilities.isAbsoluteUrl(url)) url = "http://hl7.org/fhir/StructureDefinition/" + url; long t = System.nanoTime(); - StructureDefinition sd = context.fetchResource(StructureDefinition.class, url, src); + StructureDefinition sd =profileUtilities.findProfile(url, src); timeTracker.sd(t); if (sd != null && (sd.getTypeTail().equals(type) || sd.getUrl().equals(type)) && sd.hasSnapshot()) { return sd; @@ -5198,10 +5309,10 @@ private StructureDefinition getProfileForType(String type, List list) { + private ElementDefinition resolveType(String type, List list, StructureDefinition sdT) { for (TypeRefComponent tr : list) { String url = tr.getWorkingCode(); if (!Utilities.isAbsoluteUrl(url)) url = "http://hl7.org/fhir/StructureDefinition/" + url; long t = System.nanoTime(); - StructureDefinition sd = context.fetchResource(StructureDefinition.class, url); + StructureDefinition sd = profileUtilities.findProfile(url, sdT); timeTracker.sd(t); if (sd != null && (sd.getType().equals(type) || sd.getUrl().equals(type)) && sd.hasSnapshot()) return sd.getSnapshot().getElement().get(0); @@ -5630,7 +5741,7 @@ private boolean inheritsFrom(StructureDefinition sdt, StructureDefinition sd) { if (sdt == sd) { return true; } - sdt = context.fetchResource(StructureDefinition.class, sdt.getBaseDefinition()); + sdt =profileUtilities.findProfile(sdt.getBaseDefinition(), sd); } return false; } @@ -5803,27 +5914,18 @@ private boolean sliceMatches(ValidationContext valContext, Element element, Stri throw new FHIRException(context.formatMessage(I18nConstants.PROBLEM_PROCESSING_EXPRESSION__IN_PROFILE__PATH__, expression, profile.getVersionedUrl(), path, e.getMessage())); } timeTracker.fpe(t); + log.trace("slice "+ed.getSliceName()+" rules = "+n.toString()); ed.setUserData(UserDataNames.validator_slice_expression_cache, n); } else { } ValidationContext shc = valContext.forSlicing(); boolean pass = evaluateSlicingExpression(shc, element, path, profile, n); + log.trace(" element "+element.getPath()+(pass ? "matches" : "does not match")); if (!pass) { - String msg = null; - for(int i=0; msg!= null && i<10; ++i) { - try { - msg = context.formatMessage(I18nConstants.DOES_NOT_MATCH_SLICE_, ed.getSliceName(), n.toString().substring(8).trim()); - } catch(NullPointerException e) { - try { - Thread.sleep(500); - } catch (InterruptedException e1) { - } - } - } slicingHint(sliceInfo, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), path, false, isProfile(slicer), (context.formatMessage(I18nConstants.DOES_NOT_MATCH_SLICE_, ed.getSliceName(), n.toString().substring(8).trim())), "discriminator = " + Utilities.escapeXml(n.toString()), null); for (String url : shc.getSliceRecords().keySet()) { - StructureDefinition sdt = context.fetchResource(StructureDefinition.class, url); + StructureDefinition sdt =profileUtilities.findProfile(url, profile); slicingHint(sliceInfo, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), path, false, isProfile(slicer), context.formatMessage(I18nConstants.DETAILS_FOR__MATCHING_AGAINST_PROFILE_, stack.getLiteralPath(), sdt == null ? url : sdt.getVersionedUrl()), context.formatMessage(I18nConstants.PROFILE__DOES_NOT_MATCH_FOR__BECAUSE_OF_THE_FOLLOWING_PROFILE_ISSUES__, @@ -5866,8 +5968,8 @@ private boolean isBaseDefinition(String url) { return b; } - private String descSD(String url) { - StructureDefinition sd = context.fetchResource(StructureDefinition.class, url); + private String descSD(String url, StructureDefinition src) { + StructureDefinition sd =profileUtilities.findProfile(url, src); return sd == null ? url : sd.present(); } @@ -6180,7 +6282,23 @@ private void buildFixedExpression(ElementDefinition ed, StringBuilder expression // checkSpecials = we're only going to run these tests if we are actually validating this content (as opposed to we looked it up) private boolean start(ValidationContext valContext, List errors, Element resource, Element element, StructureDefinition defn, NodeStack stack, ResourcePercentageLogger pct, ValidationMode mode, boolean fromContained) throws FHIRException { boolean ok = !hasErrors(errors); - + + if (ExtensionUtilities.readBoolExtension(defn, ExtensionDefinitions.EXT_ADDITIONAL_RESOURCE) && defn.getDerivation() == TypeDerivationRule.SPECIALIZATION) { + if (Utilities.noString(element.getResourceDefinition())) { + rule(errors, "2025-09-30", IssueType.INVALID, element.line(), element.col(), stack.getLiteralPath(), false, I18nConstants.VALIDATION_ADDITIONAL_RESOURCE_ABSENT, defn.getVersionedUrl()); + ok = false; + } else if (!element.getResourceDefinition().equals(defn.getVersionedUrl())) { + rule(errors, "2025-09-30", IssueType.INVALID, element.line(), element.col(), stack.getLiteralPath(), element.getResourceDefinition() == null, I18nConstants.VALIDATION_ADDITIONAL_RESOURCE_WRONG, element.getResourceDefinition(), defn.getVersionedUrl()); + ok = false; + } + } else { + if (!Utilities.noString(element.getResourceDefinition()) && !element.getResourceDefinition().equals(defn.getVersionedUrl())) { + rule(errors, "2025-09-30", IssueType.INVALID, element.line(), element.col(), stack.getLiteralPath(), element.getResourceDefinition() == null, I18nConstants.VALIDATION_ADDITIONAL_RESOURCE_NO_WRONG, element.getResourceDefinition(), defn.getVersionedUrl()); + ok = false; + } else { + warning(errors, "2025-09-30", IssueType.INVALID, element.line(), element.col(), stack.getLiteralPath(), Utilities.noString(element.getResourceDefinition()), I18nConstants.VALIDATION_ADDITIONAL_RESOURCE_NO, element.getResourceDefinition()); + } + } checkLang(resource, stack); if (crumbTrails) { element.addMessage(signpost(errors, NO_RULE_DATE, IssueType.INFORMATIONAL, element.line(), element.col(), stack.getLiteralPath(), I18nConstants.VALIDATION_VAL_PROFILE_SIGNPOST, defn.getVersionedUrl())); @@ -6203,7 +6321,7 @@ private boolean start(ValidationContext valContext, List erro if (defn.hasExtension(ExtensionDefinitions.EXT_SD_IMPOSE_PROFILE)) { for (Extension ext : defn.getExtensionsByUrl(ExtensionDefinitions.EXT_SD_IMPOSE_PROFILE)) { - StructureDefinition sdi = context.fetchResource(StructureDefinition.class, ext.getValue().primitiveValue()); + StructureDefinition sdi =profileUtilities.findProfile(ext.getValue().primitiveValue(), defn); if (sdi == null) { warning(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, element.line(), element.col(), stack.getLiteralPath(), false, I18nConstants.VALIDATION_VAL_PROFILE_DEPENDS_NOT_RESOLVED, ext.getValue().primitiveValue(), defn.getVersionedUrl()); } else { @@ -6230,7 +6348,7 @@ private boolean start(ValidationContext valContext, List erro meta.getNamedChildren("profile", profiles); int i = 0; for (Element profile : profiles) { - StructureDefinition sd = context.fetchResource(StructureDefinition.class, profile.primitiveValue()); + StructureDefinition sd = profileUtilities.findProfile(profile.primitiveValue(), defn); if (!defn.getUrl().equals(profile.primitiveValue())) { // is this a version specific reference? VersionURLInfo vu = VersionUtilities.parseVersionUrl(profile.primitiveValue()); @@ -6240,7 +6358,7 @@ private boolean start(ValidationContext valContext, List erro } else if (vu.getUrl().equals(defn.getUrl())) { hint(errors, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), stack.getLiteralPath() + ".meta.profile[" + i + "]", false, I18nConstants.VALIDATION_VAL_PROFILE_THIS_VERSION_OK); } else { - StructureDefinition sdt = context.fetchResource(StructureDefinition.class, vu.getUrl()); + StructureDefinition sdt = profileUtilities.findProfile(vu.getUrl(), defn); ok = rule(errors, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), stack.getLiteralPath() + ".meta.profile[" + i + "]", false, I18nConstants.VALIDATION_VAL_PROFILE_THIS_VERSION_OTHER, sdt == null ? "null" : sdt.getType()) && ok; } } else { @@ -6268,7 +6386,7 @@ private boolean start(ValidationContext valContext, List erro } if (sd.hasExtension(ExtensionDefinitions.EXT_SD_IMPOSE_PROFILE)) { for (Extension ext : sd.getExtensionsByUrl(ExtensionDefinitions.EXT_SD_IMPOSE_PROFILE)) { - StructureDefinition sdi = context.fetchResource(StructureDefinition.class, ext.getValue().primitiveValue()); + StructureDefinition sdi =profileUtilities.findProfile(ext.getValue().primitiveValue(), sd); if (sdi == null) { warning(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, element.line(), element.col(), stack.getLiteralPath() + ".meta.profile[" + i + "]", false, I18nConstants.VALIDATION_VAL_PROFILE_DEPENDS_NOT_RESOLVED, ext.getValue().primitiveValue(), sd.getVersionedUrl()); } else { @@ -6297,7 +6415,7 @@ private boolean start(ValidationContext valContext, List erro for (ImplementationGuide ig : igs) { for (ImplementationGuideGlobalComponent gl : ig.getGlobal()) { if (rt.equals(gl.getType())) { - StructureDefinition sd = context.fetchResource(StructureDefinition.class, gl.getProfile(), ig); + StructureDefinition sd = profileUtilities.findProfile(gl.getProfile(), ig); if (warning(errors, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), stack.getLiteralPath(), sd != null, I18nConstants.VALIDATION_VAL_GLOBAL_PROFILE_UNKNOWN, gl.getProfile(), ig.getVersionedUrl())) { if (crumbTrails) { element.addMessage(signpost(errors, NO_RULE_DATE, IssueType.INFORMATIONAL, element.line(), element.col(), stack.getLiteralPath(), I18nConstants.VALIDATION_VAL_PROFILE_SIGNPOST_GLOBAL, sd.getVersionedUrl(), ig.getVersionedUrl())); @@ -6345,7 +6463,7 @@ private StructureDefinition lookupProfileReference(ValidationContext valContext, } } if (sd != null) { - context.cacheResource(sd); + context.getManager().cacheResource(sd); } } return sd; @@ -6416,7 +6534,7 @@ private static int indexOfMatchingMessageAndLocation(List mes for (int i = 0; i < messages.size(); i++) { ValidationMessage iMessage = messages.get(i); if (message.getMessage() != null && message.getMessage().equals(iMessage.getMessage()) - && message.getLocation() != null && message.getLocation().equals(iMessage.getLocation())) { + && message.getLocation() != null && message.getStrippedLocation().equals(iMessage.getStrippedLocation())) { return i; } } @@ -6424,8 +6542,6 @@ private static int indexOfMatchingMessageAndLocation(List mes } public boolean startInner(ValidationContext valContext, List errors, Element resource, Element element, StructureDefinition defn, NodeStack stack, boolean checkSpecials, ResourcePercentageLogger pct, ValidationMode mode, boolean fromContained) { - - // the first piece of business is to see if we've validated this resource against this profile before. // if we have (*or if we still are*), then we'll just return our existing errors boolean ok = true; @@ -6787,7 +6903,7 @@ private boolean validateContains(ValidationContext valContext, List types = new ArrayList<>(); for (UriType u : typeForResource.getProfile()) { - StructureDefinition sd = this.context.fetchResource(StructureDefinition.class, u.getValue(), parentProfile); + StructureDefinition sd = this.profileUtilities.findProfile(u.getValue(), parentProfile); if (sd != null && !types.contains(sd.getType())) { types.add(sd.getType()); } @@ -6936,7 +7051,7 @@ private String summariseErrors(List list) { return b.toString(); } - private boolean isValidResourceType(String type, TypeRefComponent def) { + private boolean isValidResourceType(String type, TypeRefComponent def, StructureDefinition sdSrc) { if (!def.hasProfile() && def.getCode().equals("Resource")) { return true; } @@ -6945,7 +7060,7 @@ private boolean isValidResourceType(String type, TypeRefComponent def) { } List list = new ArrayList<>(); for (UriType u : def.getProfile()) { - StructureDefinition sdt = context.fetchResource(StructureDefinition.class, u.getValue()); + StructureDefinition sdt = profileUtilities.findProfile(u.getValue(), sdSrc); if (sdt != null) { list.add(sdt); } @@ -6963,7 +7078,7 @@ private boolean isValidResourceType(String type, TypeRefComponent def) { } } } - sdt = context.fetchResource(StructureDefinition.class, sdt.getBaseDefinition(), sdt); + sdt = profileUtilities.findProfile(sdt.getBaseDefinition(), sdt); } return false; } @@ -7004,14 +7119,14 @@ private boolean validateElement(ValidationContext valContext, List 1) { // this only happens when the profile constrains the abstract children but leaves the choice open. if (actualType == null) { vi.setValid(false); return false; // there'll be an error elsewhere in this case, and we're going to stop. } - SourcedChildDefinitions typeChildDefinitions = getActualTypeChildren(valContext, element, actualType); + SourcedChildDefinitions typeChildDefinitions = getActualTypeChildren(valContext, element, actualType, profile); // what were going to do is merge them - the type is not allowed to constrain things that the child definitions already do (well, if it does, it'll be ignored) childDefinitions = mergeChildLists(childDefinitions, typeChildDefinitions, definition.getPath(), actualType); } @@ -7076,13 +7191,13 @@ private SourcedChildDefinitions mergeChildLists(SourcedChildDefinitions source, } // todo: the element definition in context might assign a constrained profile for the type? - public SourcedChildDefinitions getActualTypeChildren(ValidationContext valContext, Element element, String actualType) { + public SourcedChildDefinitions getActualTypeChildren(ValidationContext valContext, Element element, String actualType, StructureDefinition src) { SourcedChildDefinitions childDefinitions; StructureDefinition dt = null; if (isAbsolute(actualType)) - dt = this.context.fetchResource(StructureDefinition.class, actualType); + dt = this.profileUtilities.findProfile(actualType, src); else - dt = this.context.fetchResource(StructureDefinition.class, "http://hl7.org/fhir/StructureDefinition/" + actualType); + dt = this.profileUtilities.findProfile("http://hl7.org/fhir/StructureDefinition/" + actualType, src); if (dt == null) throw new DefinitionException(context.formatMessage(I18nConstants.UNABLE_TO_RESOLVE_ACTUAL_TYPE_, actualType)); trackUsage(dt, valContext, element); @@ -7130,6 +7245,8 @@ public boolean checkChildByDefinition(ValidationContext valContext, List 0; boolean isAbstract = hasType && Utilities.existsInList(checkDefn.getType().get(0).getWorkingCode(), "Element", "BackboneElement"); boolean isChoice = checkDefn.getType().size() > 1 || (hasType && "*".equals(checkDefn.getType().get(0).getWorkingCode())); @@ -7242,7 +7359,7 @@ public boolean checkChildByDefinition(ValidationContext valContext, List profileErrors = new ArrayList(); validateElement(valContext, profileErrors, p, getElementByTail(p, tail), profile, checkDefn, resource, ei.getElement(), type, localStack, thisIsCodeableConcept, checkDisplay, thisExtension, pct, mode); // we don't track ok here if (hasErrors(profileErrors)) @@ -7398,7 +7516,7 @@ public boolean checkChildByDefinition(ValidationContext valContext, List errors, String path, bool String code = element.getNamedChildValue(isPQ ? "unit" : "code", false); String oid = isPQ ? "2.16.840.1.113883.6.8" : element.getNamedChildValue("codeSystem", false); if (oid != null) { - OIDSummary urls = context.urlsForOid(oid, "CodeSystem"); - system = "urn:oid:"+oid; - if (urls.urlCount() == 1) { - system = urls.getUrl(); - } else if (urls.urlCount() == 0) { - warning(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_UNKNOWN_OID, oid); - } else { - String prefUrl = urls.chooseBestUrl(); - if (prefUrl == null) { - rule(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_OID_MULTIPLE_MATCHES, oid, urls.describe()); - ok = false; + if (hint(errors, "2025-09-28", IssueType.CODEINVALID, element.line(), element.col(), path, context.oidServices() != null, I18nConstants.TERMINOLOGY_TX_NO_OID_SERVICES, oid)) { + IOIDServices.OIDSummary urls = context.oidServices().urlsForOid(oid, "CodeSystem"); + system = "urn:oid:" + oid; + if (urls.urlCount() == 1) { + system = urls.getUrl(); + } else if (urls.urlCount() == 0) { + warning(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_UNKNOWN_OID, oid); } else { - system = prefUrl; - warning(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_OID_MULTIPLE_MATCHES_CHOSEN, oid, prefUrl, urls.describe()); + String prefUrl = urls.chooseBestUrl(); + if (prefUrl == null) { + rule(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_OID_MULTIPLE_MATCHES, oid, urls.describe()); + ok = false; + } else { + system = prefUrl; + warning(errors, "2023-10-11", IssueType.CODEINVALID, element.line(), element.col(), path, false, I18nConstants.TERMINOLOGY_TX_OID_MULTIPLE_MATCHES_CHOSEN, oid, prefUrl, urls.describe()); + } } } } else { @@ -7608,7 +7733,7 @@ public boolean checkCardinalities(List errors, StructureDefin ok = rulePlural(errors, NO_RULE_DATE, IssueType.STRUCTURE, element.line(), element.col(), stack.getLiteralPath(), false, count, I18nConstants.VALIDATION_VAL_PROFILE_MINIMUM, profile.getVersionedUrl(), ed.getPath(), ed.getId(), ed.getSliceName(),ed.getLabel(), stack.getLiteralPath(), ed.getMin()) && ok; } else if (ed.isProfiledExtension()) { String url = ed.getTypeFirstRep().getProfile().get(0).getValue(); - StructureDefinition sd = context.fetchResource(StructureDefinition.class, url); + StructureDefinition sd =profileUtilities.findProfile(url, profile); if (sd != null) { url = sd.getSnapshot().getElementByPath("Extension.url").getFixed().primitiveValue(); } @@ -7846,7 +7971,7 @@ private boolean namedExtensionTypeIsOk(org.hl7.fhir.r5.elementmodel.Property pro return true; } } - sd = context.fetchResource(StructureDefinition.class, sd.getBaseDefinition()); + sd =profileUtilities.findProfile(sd.getBaseDefinition(), sd); } // special case: Base for (TypeRefComponent tr : ed.getType()) { @@ -7902,17 +8027,6 @@ public boolean matchSlice(ValidationContext valContext, List ei.setAdditionalSlice(true); } } catch (FHIRException e) { - log.error("FHIRException caught!", e); - log.error("Current thread: " + Thread.currentThread().getName()); - log.error("Active threads:"); - - // Print all active threads - Thread.getAllStackTraces().forEach((thread, stackTrace) -> { - log.error("Thread: " + thread.getName() + " (State: " + thread.getState() + ")"); - for (StackTraceElement element : stackTrace) { - log.error(" at " + element); - } - }); rule(errors, NO_RULE_DATE, IssueType.PROCESSING, ei.line(), ei.col(), ei.getPath(), false, I18nConstants.SLICING_CANNOT_BE_EVALUATED, e.getMessage()); bh.fail(); unsupportedSlicing = true; @@ -7971,7 +8085,7 @@ private String slicingSummary(ElementDefinitionSlicingComponent slicing) { } private ElementDefinition getElementByTail(StructureDefinition p, String tail) throws DefinitionException { - if (tail == null) + if (tail == null && !p.getSnapshot().getElement().isEmpty()) return p.getSnapshot().getElement().get(0); for (ElementDefinition t : p.getSnapshot().getElement()) { if (tail.equals(t.getId())) @@ -8052,7 +8166,7 @@ private boolean checkInvariants(ValidationContext valContext, List> invMap = executionId.equals(element.getUserString(EXECUTION_ID)) ? (Map>) element.getUserData(EXECUTED_CONSTRAINT_LIST) : null; if (invMap == null) { @@ -8078,10 +8192,10 @@ private boolean checkInvariants(ValidationContext valContext, List types, String source) { + private boolean isInheritedProfile(List types, String source, StructureDefinition sdT) { for (TypeRefComponent type : types) { for (CanonicalType c : type.getProfile()) { - StructureDefinition sd = context.fetchResource(StructureDefinition.class, c.asStringValue()); + StructureDefinition sd =profileUtilities.findProfile(c.asStringValue(), sdT); if (sd != null) { if (sd.getUrl().equals(source)) { return true; @@ -8100,7 +8214,7 @@ private boolean isInheritedProfile(StructureDefinition profile, String source) { return false; } while (profile != null) { - profile = context.fetchResource(StructureDefinition.class, profile.getBaseDefinition(), profile); + profile =profileUtilities.findProfile(profile.getBaseDefinition(), profile); if (profile != null) { if (source.equals(profile.getUrl())) { return true; @@ -8135,7 +8249,7 @@ public boolean checkInvariant(ValidationContext valContext, List errors, Element bundle d = new String(data); } JsonObject j = JsonParser.parseObject(d); - if (j.has("alg")) { + if (j.has(DigitalSignatureSupport.JWT_HEADER_ALG)) { sigFormat = "application/jose"; } hint(errors, "2025-06-13", IssueType.NOTSUPPORTED, stack, !signature.hasChild("data"), @@ -1104,13 +1103,13 @@ private boolean validateSignatureJose(List errors, Element bu // 1. Signature time Element when = signature.getNamedChild("when"); - String sigT = header.asString("sigT"); // JAdes signature time + String sigT = header.asString(DigitalSignatureSupport.JWT_HEADER_SIGT); // JAdes signature time if (sigT != null && Utilities.isInteger(sigT)) { warning(errors, "2025-06-13", IssueType.INVALID, stack, false, I18nConstants.BUNDLE_SIGNATURE_HEADER_SIG_TIME_WRONG_FORMAT, sigT); sigT = DateTimeFormatter.ISO_INSTANT.format(Instant.ofEpochSecond(Long.valueOf(sigT))); } - if (sigT == null && header.has("iat")) { - sigT = DateTimeFormatter.ISO_INSTANT.format(Instant.ofEpochSecond(Long.valueOf(header.asString("iat")))); + if (sigT == null && header.has(DigitalSignatureSupport.JWT_HEADER_IAT)) { + sigT = DateTimeFormatter.ISO_INSTANT.format(Instant.ofEpochSecond(Long.valueOf(header.asString(DigitalSignatureSupport.JWT_HEADER_IAT)))); } if (sigT == null) { warning(errors, "2025-06-13", IssueType.NOTFOUND, stack, false, I18nConstants.BUNDLE_SIGNATURE_HEADER_NO_SIG_TIME); @@ -1187,9 +1186,9 @@ private boolean validateSignatureJose(List errors, Element bu // first, we try to extract the certificate from the signature X509Certificate cert = null; JWK jwk = null; - if (header.has("x5c")) { + if (header.has(DigitalSignatureSupport.JWT_HEADER_X5C)) { try { - String c = header.getJsonArray("x5c").get(0).asString(); + String c = header.getJsonArray(DigitalSignatureSupport.JWT_HEADER_X5C).get(0).asString(); byte[] b = Base64.decodeBase64(c);// der format CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509"); cert = (X509Certificate) certificateFactory.generateCertificate(new ByteArrayInputStream(b)); @@ -1356,22 +1355,22 @@ public String certificateToPEMSingleLine(X509Certificate cert) throws Exception } private String getPurpose(JsonObject header) { - if (header.has("srCms")) { - JsonArray srCms = header.getJsonArray("srCms"); + if (header.has(DigitalSignatureSupport.JWT_HEADER_SRCMS)) { + JsonArray srCms = header.getJsonArray(DigitalSignatureSupport.JWT_HEADER_SRCMS); if (srCms.size() > 0 && srCms.get(0).isJsonObject()) { - JsonObject commId = srCms.get(0).asJsonObject().getJsonObject("commId"); - return commId.asString("id"); + JsonObject commId = srCms.get(0).asJsonObject().getJsonObject(DigitalSignatureSupport.JWT_HEADER_COMM_ID); + return commId.asString(DigitalSignatureSupport.JWT_HEADER_ID); } } return null; } private String getPurposeDesc(JsonObject header) { - if (header.has("srCms")) { - JsonArray srCms = header.getJsonArray("srCms"); + if (header.has(DigitalSignatureSupport.JWT_HEADER_SRCMS)) { + JsonArray srCms = header.getJsonArray(DigitalSignatureSupport.JWT_HEADER_SRCMS); if (srCms.size() > 0 && srCms.get(0).isJsonObject()) { - JsonObject commId = srCms.get(0).asJsonObject().getJsonObject("commId"); - return commId.asString("desc"); + JsonObject commId = srCms.get(0).asJsonObject().getJsonObject(DigitalSignatureSupport.JWT_HEADER_COMM_ID); + return commId.asString(DigitalSignatureSupport.JWT_HEADER_DESC); } } return null; @@ -1421,10 +1420,10 @@ public boolean verifyJWT(String jwtString, JWK key) throws ParseException, JOSEE switch (keyType) { case "RSA": - verifier = new RSASSAVerifier(key.toRSAKey()); + verifier = new RSASSAVerifier(key.toRSAKey().toRSAPublicKey(), settings.getJwtHeaderList()); break; case "EC": - verifier = new ECDSAVerifier(key.toECKey()); + verifier = new ECDSAVerifier(key.toECKey().toECPublicKey(), settings.getJwtHeaderList()); break; case "oct": verifier = new MACVerifier(key.toOctetSequenceKey()); diff --git a/matchbox-engine/src/main/resources/hl7.terminology.r4#6.3.0.tgz b/matchbox-engine/src/main/resources/hl7.terminology.r4#6.3.0.tgz deleted file mode 100644 index 33b186924e1..00000000000 Binary files a/matchbox-engine/src/main/resources/hl7.terminology.r4#6.3.0.tgz and /dev/null differ diff --git a/matchbox-engine/src/main/resources/hl7.terminology.r4#6.5.0.tgz b/matchbox-engine/src/main/resources/hl7.terminology.r4#6.5.0.tgz deleted file mode 100644 index fa3894e8180..00000000000 Binary files a/matchbox-engine/src/main/resources/hl7.terminology.r4#6.5.0.tgz and /dev/null differ diff --git a/matchbox-engine/src/main/resources/hl7.terminology.r4#7.0.1.tgz b/matchbox-engine/src/main/resources/hl7.terminology.r4#7.0.1.tgz new file mode 100644 index 00000000000..1baec6c905b Binary files /dev/null and b/matchbox-engine/src/main/resources/hl7.terminology.r4#7.0.1.tgz differ diff --git a/matchbox-engine/src/main/resources/hl7.terminology.r5#6.3.0.tgz b/matchbox-engine/src/main/resources/hl7.terminology.r5#6.3.0.tgz deleted file mode 100644 index c4604d1a1fe..00000000000 Binary files a/matchbox-engine/src/main/resources/hl7.terminology.r5#6.3.0.tgz and /dev/null differ diff --git a/matchbox-engine/src/main/resources/hl7.terminology.r5#6.5.0.tgz b/matchbox-engine/src/main/resources/hl7.terminology.r5#6.5.0.tgz deleted file mode 100644 index 02f92aacd5f..00000000000 Binary files a/matchbox-engine/src/main/resources/hl7.terminology.r5#6.5.0.tgz and /dev/null differ diff --git a/matchbox-engine/src/main/resources/hl7.terminology.r5#7.0.1.tgz b/matchbox-engine/src/main/resources/hl7.terminology.r5#7.0.1.tgz new file mode 100644 index 00000000000..52f254b28c5 Binary files /dev/null and b/matchbox-engine/src/main/resources/hl7.terminology.r5#7.0.1.tgz differ diff --git a/matchbox-engine/src/test/java/ch/ahdis/matchbox/engine/tests/CdaToFhirTransformTests.java b/matchbox-engine/src/test/java/ch/ahdis/matchbox/engine/tests/CdaToFhirTransformTests.java index af8667c0634..98cc4190953 100644 --- a/matchbox-engine/src/test/java/ch/ahdis/matchbox/engine/tests/CdaToFhirTransformTests.java +++ b/matchbox-engine/src/test/java/ch/ahdis/matchbox/engine/tests/CdaToFhirTransformTests.java @@ -31,27 +31,23 @@ import org.hl7.fhir.r4.model.OperationOutcome; import org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity; import org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent; +import org.hl7.fhir.r4.model.Patient; import org.hl7.fhir.r4.model.Resource; import org.hl7.fhir.r4.model.StructureMap; -import org.hl7.fhir.r5.elementmodel.Manager.FhirFormat; import org.hl7.fhir.r5.utils.EOperationOutcome; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import ca.uhn.fhir.context.FhirContext; -import ca.uhn.fhir.context.FhirVersionEnum; import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.io.InputStream; -import java.math.BigDecimal; import java.net.URISyntaxException; import java.nio.charset.StandardCharsets; import java.util.Calendar; -import java.util.spi.CalendarNameProvider; class CdaToFhirTransformTests { @@ -173,6 +169,12 @@ void TestInitial() throws FHIRException, IOException { Composition composition = (Composition) resource.getEntryFirstRep().getResource(); assertNotNull(composition); assertEquals("2022-03-30T11:24:26+01:00", composition.getDateElement().getValueAsString()); + Patient patient = (Patient) resource.getEntry().stream() + .filter(e -> e.getResource() instanceof Patient) + .map(e -> e.getResource()) + .findFirst() + .orElse(null); + assertEquals("058091", patient.getAddressFirstRep().getLine().getFirst().getExtension().getFirst().getValue().toString()); } @Test diff --git a/matchbox-engine/src/test/resources/cda/datatypes.map b/matchbox-engine/src/test/resources/cda/datatypes.map index 8f3a19886b1..c2470d39022 100644 --- a/matchbox-engine/src/test/resources/cda/datatypes.map +++ b/matchbox-engine/src/test/resources/cda/datatypes.map @@ -198,18 +198,11 @@ group ADAddress(source src : AD, target tgt : Address) extends Any <> { item.county as v -> tgt.district = (v.xmlText); item.city as v -> tgt.city = (v.xmlText); item.postalCode as v -> tgt.postalCode = (v.xmlText); - item.streetAddressLine as v -> tgt.line=(v.xmlText); - - item -> tgt.line as line then { - item where src.censusTract.exists() then { - item.censusTract as v -> line.extension as ext1 then CensusTract(v, ext1) "line"; - }"sfgfdsg"; - } "CensusTract"; - - //share firstline "streetAddress"; - //as streetAddress then{ - //src.censusTract as v->tgt.line as line, line.extension as ext1 then CensusTract(v, ext1) "line"; - //src.censusTract as v ->tgt.line as line, line.extension as ext1 then CensusTract(v, ext1) "line"; + item.streetAddressLine as v -> tgt.line=(v.xmlText) as line then { + src.item as item2 then { + item2.censusTract as v -> line.extension as ext1 then CensusTract(v, ext1) "line"; + } "innercensus"; + } "item2"; item.streetName as v -> tgt.line = (v.xmlText); item.houseNumber as v -> tgt.line = (v.xmlText); } "item"; diff --git a/matchbox-engine/src/test/resources/r4-samples/encounter-withr5ext.json b/matchbox-engine/src/test/resources/r4-samples/encounter-withr5ext.json new file mode 100644 index 00000000000..6ef1f468914 --- /dev/null +++ b/matchbox-engine/src/test/resources/r4-samples/encounter-withr5ext.json @@ -0,0 +1,18 @@ +{ + "resourceType": "Encounter", + "extension": [ + { + "url": "http://hl7.org/fhir/5.0/StructureDefinition/extension-Encounter.plannedStartDate", + "valueDateTime": "2023-04-11" + }, + { + "url": "http://hl7.org/fhir/5.0/StructureDefinition/extension-Encounter.plannedEndDate", + "valueDateTime": "2023-05-05" + } + ], + "status": "in-progress", + "class": { + "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode", + "code": "HH" + } +} \ No newline at end of file diff --git a/matchbox-frontend/package-lock.json b/matchbox-frontend/package-lock.json index 405da6c5760..abb166e1bbe 100644 --- a/matchbox-frontend/package-lock.json +++ b/matchbox-frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "matchbox", - "version": "3.9.14", + "version": "4.0.16", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "matchbox", - "version": "3.9.14", + "version": "4.0.16", "license": "MIT", "dependencies": { "@ngx-translate/core": "^16.0.3", @@ -73,20 +73,12 @@ "typescript": "^5.6.3" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -96,13 +88,13 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1900.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1900.1.tgz", - "integrity": "sha512-4SONLz5lzuNINz5DAaZlQLhBasLqEiDKMH+YHYgYE2N3ImfuYj9urgfdRnfarPInQslCE9OzahOQslVzoQxJhg==", + "version": "0.1902.19", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1902.19.tgz", + "integrity": "sha512-iexYDIYpGAeAU7T60bGcfrGwtq1bxpZixYxWuHYiaD1b5baQgNSfd1isGEOh37GgDNsf4In9i2LOLPm0wBdtgQ==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.0.1", + "@angular-devkit/core": "19.2.19", "rxjs": "7.8.1" }, "engines": { @@ -111,123 +103,53 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular-devkit/architect/node_modules/@angular-devkit/core": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.1.tgz", - "integrity": "sha512-oXIAV3hXqUW3Pmm95pvEmb+24n1cKQG62FzhQSjOIrMeHiCbGLNuc8zHosIi2oMrcCJJxR6KzWjThvbuzDwWlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "8.17.1", - "ajv-formats": "3.0.1", - "jsonc-parser": "3.3.1", - "picomatch": "4.0.2", - "rxjs": "7.8.1", - "source-map": "0.7.4" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^4.0.0" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/architect/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/architect/node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "node_modules/@angular-devkit/architect/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true, + "license": "Apache-2.0", "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@angular-devkit/architect/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "tslib": "^2.1.0" } }, "node_modules/@angular-devkit/build-angular": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-19.0.1.tgz", - "integrity": "sha512-XF/jkBFchpwQzSS0efVk1MNvcTYI4FCBsRmneLkprfftoi9e9A2IqUk8GJncNj3MIa/wZ1bNnzp+Z0uGGqrb6A==", + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-19.2.19.tgz", + "integrity": "sha512-uIxi6Vzss6+ycljVhkyPUPWa20w8qxJL9lEn0h6+sX/fhM8Djt0FHIuTQjoX58EoMaQ/1jrXaRaGimkbaFcG9A==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1900.1", - "@angular-devkit/build-webpack": "0.1900.1", - "@angular-devkit/core": "19.0.1", - "@angular/build": "19.0.1", - "@babel/core": "7.26.0", - "@babel/generator": "7.26.2", + "@angular-devkit/architect": "0.1902.19", + "@angular-devkit/build-webpack": "0.1902.19", + "@angular-devkit/core": "19.2.19", + "@angular/build": "19.2.19", + "@babel/core": "7.26.10", + "@babel/generator": "7.26.10", "@babel/helper-annotate-as-pure": "7.25.9", "@babel/helper-split-export-declaration": "7.24.7", - "@babel/plugin-transform-async-generator-functions": "7.25.9", + "@babel/plugin-transform-async-generator-functions": "7.26.8", "@babel/plugin-transform-async-to-generator": "7.25.9", - "@babel/plugin-transform-runtime": "7.25.9", - "@babel/preset-env": "7.26.0", - "@babel/runtime": "7.26.0", + "@babel/plugin-transform-runtime": "7.26.10", + "@babel/preset-env": "7.26.9", + "@babel/runtime": "7.26.10", "@discoveryjs/json-ext": "0.6.3", - "@ngtools/webpack": "19.0.1", - "@vitejs/plugin-basic-ssl": "1.1.0", + "@ngtools/webpack": "19.2.19", + "@vitejs/plugin-basic-ssl": "1.2.0", "ansi-colors": "4.1.3", "autoprefixer": "10.4.20", "babel-loader": "9.2.1", "browserslist": "^4.21.5", "copy-webpack-plugin": "12.0.2", "css-loader": "7.1.2", - "esbuild-wasm": "0.24.0", - "fast-glob": "3.3.2", - "http-proxy-middleware": "3.0.3", + "esbuild-wasm": "0.25.4", + "fast-glob": "3.3.3", + "http-proxy-middleware": "3.0.5", "istanbul-lib-instrument": "6.0.3", "jsonc-parser": "3.3.1", "karma-source-map-support": "1.4.0", - "less": "4.2.0", + "less": "4.2.2", "less-loader": "12.2.0", "license-webpack-plugin": "4.0.2", "loader-utils": "3.3.1", @@ -235,22 +157,22 @@ "open": "10.1.0", "ora": "5.4.1", "picomatch": "4.0.2", - "piscina": "4.7.0", - "postcss": "8.4.49", + "piscina": "4.8.0", + "postcss": "8.5.2", "postcss-loader": "8.1.1", "resolve-url-loader": "5.0.0", "rxjs": "7.8.1", - "sass": "1.80.7", - "sass-loader": "16.0.3", - "semver": "7.6.3", + "sass": "1.85.0", + "sass-loader": "16.0.5", + "semver": "7.7.1", "source-map-loader": "5.0.0", "source-map-support": "0.5.21", - "terser": "5.36.0", + "terser": "5.39.0", "tree-kill": "1.2.2", "tslib": "2.8.1", - "webpack": "5.96.1", + "webpack": "5.98.0", "webpack-dev-middleware": "7.4.2", - "webpack-dev-server": "5.1.0", + "webpack-dev-server": "5.2.2", "webpack-merge": "6.0.1", "webpack-subresource-integrity": "5.1.0" }, @@ -260,23 +182,23 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.24.0" + "esbuild": "0.25.4" }, "peerDependencies": { - "@angular/compiler-cli": "^19.0.0", - "@angular/localize": "^19.0.0", - "@angular/platform-server": "^19.0.0", - "@angular/service-worker": "^19.0.0", - "@angular/ssr": "^19.0.1", - "@web/test-runner": "^0.19.0", + "@angular/compiler-cli": "^19.0.0 || ^19.2.0-next.0", + "@angular/localize": "^19.0.0 || ^19.2.0-next.0", + "@angular/platform-server": "^19.0.0 || ^19.2.0-next.0", + "@angular/service-worker": "^19.0.0 || ^19.2.0-next.0", + "@angular/ssr": "^19.2.19", + "@web/test-runner": "^0.20.0", "browser-sync": "^3.0.2", "jest": "^29.5.0", "jest-environment-jsdom": "^29.5.0", "karma": "^6.3.0", - "ng-packagr": "^19.0.0", + "ng-packagr": "^19.0.0 || ^19.2.0-next.0", "protractor": "^7.0.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.5 <5.7" + "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "typescript": ">=5.5 <5.9" }, "peerDependenciesMeta": { "@angular/localize": { @@ -317,10 +239,50 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/core": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.1.tgz", - "integrity": "sha512-oXIAV3hXqUW3Pmm95pvEmb+24n1cKQG62FzhQSjOIrMeHiCbGLNuc8zHosIi2oMrcCJJxR6KzWjThvbuzDwWlw==", + "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1902.19", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1902.19.tgz", + "integrity": "sha512-x2tlGg5CsUveFzuRuqeHknSbGirSAoRynEh+KqPRGK0G3WpMViW/M8SuVurecasegfIrDWtYZ4FnVxKqNbKwXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/architect": "0.1902.19", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^5.0.2" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.2.19.tgz", + "integrity": "sha512-JbLL+4IMLMBgjLZlnPG4lYDfz4zGrJ/s6Aoon321NJKuw1Kb1k5KpFu9dUY0BqLIe8xPQ2UJBpI+xXdK5MXMHQ==", "dev": true, "license": "MIT", "dependencies": { @@ -345,84 +307,174 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "node_modules/@angular-devkit/core/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "18.2.21", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.21.tgz", + "integrity": "sha512-yuC2vN4VL48JhnsaOa9J/o0Jl+cxOklRNQp5J2/ypMuRROaVCrZAPiX+ChSHh++kHYMpj8+ggNrrUwRNfMKACQ==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "^8.0.0" + "@angular-devkit/core": "18.2.21", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.11", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": { + "version": "18.2.21", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.21.tgz", + "integrity": "sha512-Lno6GNbJME85wpc/uqn+wamBxvfZJZFYSH8+oAkkyjU/hk8r5+X8DuyqsKAa0m8t46zSTUsonHsQhVe5vgrZeQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" }, "peerDependencies": { - "ajv": "^8.0.0" + "chokidar": "^3.5.2" }, "peerDependenciesMeta": { - "ajv": { + "chokidar": { "optional": true } } }, - "node_modules/@angular-devkit/build-angular/node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", - "dev": true, + "node_modules/@angular-devkit/schematics/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "extraneous": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { - "readdirp": "^4.0.1" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">= 14.16.0" + "node": ">= 8.10.0" }, "funding": { "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/@angular-devkit/build-angular/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", - "dev": true, + "node_modules/@angular-devkit/schematics/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "extraneous": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "extraneous": true, "license": "MIT", - "optional": true, - "peer": true, + "dependencies": { + "picomatch": "^2.2.1" + }, "engines": { - "node": ">= 14.16.0" + "node": ">=8.10.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "extraneous": true, + "license": "MIT", + "engines": { + "node": ">=8.6" }, "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.1900.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1900.1.tgz", - "integrity": "sha512-WTlSE5tWJCTD22GQO8LFPYFL4eEFStHubo7zJpjFnf5gJPwcKMcV323LeEviHyudQz5eQ2SiVpDOqsC13IP6rQ==", + "node_modules/@angular-devkit/schematics/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-eslint/builder": { + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-18.4.3.tgz", + "integrity": "sha512-NzmrXlr7GFE+cjwipY/CxBscZXNqnuK0us1mO6Z2T6MeH6m+rRcdlY/rZyKoRniyNNvuzl6vpEsfMIMmnfebrA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1900.1", + "@angular-devkit/architect": ">= 0.1800.0 < 0.1900.0", + "@angular-devkit/core": ">= 18.0.0 < 19.0.0" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/builder/node_modules/@angular-devkit/architect": { + "version": "0.1802.21", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.21.tgz", + "integrity": "sha512-+Ll+xtpKwZ3iLWN/YypvnCZV/F0MVbP+/7ZpMR+Xv/uB0OmribhBVj9WGaCd9I/bGgoYBw8wBV/NFNCKkf0k3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "18.2.21", "rxjs": "7.8.1" }, "engines": { "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "webpack": "^5.30.0", - "webpack-dev-server": "^5.0.2" } }, - "node_modules/@angular-devkit/core": { - "version": "18.2.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.11.tgz", - "integrity": "sha512-H9P1shRGigORWJHUY2BRa2YurT+DVminrhuaYHsbhXBRsPmgB2Dx/30YLTnC1s5XmR9QIRUCsg/d3kyT1wd5Zg==", + "node_modules/@angular-eslint/builder/node_modules/@angular-devkit/core": { + "version": "18.2.21", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.21.tgz", + "integrity": "sha512-Lno6GNbJME85wpc/uqn+wamBxvfZJZFYSH8+oAkkyjU/hk8r5+X8DuyqsKAa0m8t46zSTUsonHsQhVe5vgrZeQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { "ajv": "8.17.1", "ajv-formats": "3.0.1", @@ -445,70 +497,96 @@ } } }, - "node_modules/@angular-devkit/core/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "dev": true, - "peer": true, + "node_modules/@angular-eslint/builder/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "extraneous": true, + "license": "MIT", "dependencies": { - "ajv": "^8.0.0" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, - "peerDependencies": { - "ajv": "^8.0.0" + "engines": { + "node": ">= 8.10.0" }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/@angular-devkit/schematics": { - "version": "18.2.11", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.11.tgz", - "integrity": "sha512-efRK3FotTFp4KD5u42jWfXpHUALXB9kJNsWiB4wEImKFH6CN+vjBspJQuLqk2oeBFh/7D2qRMc5P+2tZHM5hdw==", - "dev": true, - "peer": true, + "node_modules/@angular-eslint/builder/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "extraneous": true, + "license": "ISC", "dependencies": { - "@angular-devkit/core": "18.2.11", - "jsonc-parser": "3.3.1", - "magic-string": "0.30.11", - "ora": "5.4.1", - "rxjs": "7.8.1" + "is-glob": "^4.0.1" }, "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" + "node": ">= 6" } }, - "node_modules/@angular-eslint/builder": { - "version": "18.4.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-18.4.1.tgz", - "integrity": "sha512-Ofkwd9Rg52K+AgvnV1RXYXVBGJvl5jD7+4dqwoprqXG7YKNTdHy5vqNZ5XDSMb26qjoZF7JC+IKruKFaON/ZaA==", - "dev": true, + "node_modules/@angular-eslint/builder/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "extraneous": true, "license": "MIT", - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": "*" + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/@angular-eslint/builder/node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "extraneous": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@angular-eslint/builder/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" } }, "node_modules/@angular-eslint/bundled-angular-compiler": { - "version": "18.4.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-18.4.1.tgz", - "integrity": "sha512-gCQC0mgBO1bwHDXL9CUgHW+Rf1XGZCLAopoXnggwxGkBCx+oww507t+jrSOxdh+4OTKU4ZfmbtWd7Y8AeXns8w==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-18.4.3.tgz", + "integrity": "sha512-zdrA8mR98X+U4YgHzUKmivRU+PxzwOL/j8G7eTOvBuq8GPzsP+hvak+tyxlgeGm9HsvpFj9ERHLtJ0xDUPs8fg==", "dev": true, "license": "MIT" }, "node_modules/@angular-eslint/eslint-plugin": { - "version": "18.4.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-18.4.1.tgz", - "integrity": "sha512-FoHwj+AFo8ONKb8wEK5qpo6uefuyklZlDqErJxeC3fpNIJzDe8PWBcJsuZt7Wwm/HeggWgt0Au6h+3IEa0V3BQ==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-18.4.3.tgz", + "integrity": "sha512-AyJbupiwTBR81P6T59v+aULEnPpZBCBxL2S5QFWfAhNCwWhcof4GihvdK2Z87yhvzDGeAzUFSWl/beJfeFa+PA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.4.1", - "@angular-eslint/utils": "18.4.1" + "@angular-eslint/bundled-angular-compiler": "18.4.3", + "@angular-eslint/utils": "18.4.3" }, "peerDependencies": { "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", @@ -517,14 +595,14 @@ } }, "node_modules/@angular-eslint/eslint-plugin-template": { - "version": "18.4.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-18.4.1.tgz", - "integrity": "sha512-sofnKpi6wOZ6avVfYYqB7sCgGgWF2HgCZfW+IAp1MtVD2FBa1zTSbbfIZ1I8Akpd22UXa4LKJd0TLwm5XHHkiQ==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-18.4.3.tgz", + "integrity": "sha512-ijGlX2N01ayMXTpeQivOA31AszO8OEbu9ZQUCxnu9AyMMhxyi2q50bujRChAvN9YXQfdQtbxuajxV6+aiWb5BQ==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.4.1", - "@angular-eslint/utils": "18.4.1", + "@angular-eslint/bundled-angular-compiler": "18.4.3", + "@angular-eslint/utils": "18.4.3", "aria-query": "5.3.2", "axobject-query": "4.1.0" }, @@ -536,41 +614,144 @@ } }, "node_modules/@angular-eslint/schematics": { - "version": "18.4.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-18.4.1.tgz", - "integrity": "sha512-1+gGodwh+UevtEx9mzZbzP1uY/9NAGEbsn8jisG1TEPDby2wKScQj6U6JwGxoW/Dd/4SIeSdilruZPALkqha7g==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-18.4.3.tgz", + "integrity": "sha512-D5maKn5e6n58+8n7jLFLD4g+RGPOPeDSsvPc1sqial5tEKLxAJQJS9WZ28oef3bhkob6C60D+1H0mMmEEVvyVA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/eslint-plugin": "18.4.1", - "@angular-eslint/eslint-plugin-template": "18.4.1", + "@angular-devkit/core": ">= 18.0.0 < 19.0.0", + "@angular-devkit/schematics": ">= 18.0.0 < 19.0.0", + "@angular-eslint/eslint-plugin": "18.4.3", + "@angular-eslint/eslint-plugin-template": "18.4.3", "ignore": "6.0.2", "semver": "7.6.3", "strip-json-comments": "3.1.1" + } + }, + "node_modules/@angular-eslint/schematics/node_modules/@angular-devkit/core": { + "version": "18.2.21", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.21.tgz", + "integrity": "sha512-Lno6GNbJME85wpc/uqn+wamBxvfZJZFYSH8+oAkkyjU/hk8r5+X8DuyqsKAa0m8t46zSTUsonHsQhVe5vgrZeQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" }, "peerDependencies": { - "@angular-devkit/core": ">= 18.0.0 < 19.0.0", - "@angular-devkit/schematics": ">= 18.0.0 < 19.0.0" + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } } }, - "node_modules/@angular-eslint/schematics/node_modules/ignore": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz", - "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", - "dev": true, + "node_modules/@angular-eslint/schematics/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "extraneous": true, "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, "engines": { - "node": ">= 4" + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/@angular-eslint/schematics/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "extraneous": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@angular-eslint/schematics/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "extraneous": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/@angular-eslint/schematics/node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "extraneous": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@angular-eslint/schematics/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-eslint/schematics/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/@angular-eslint/template-parser": { - "version": "18.4.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-18.4.1.tgz", - "integrity": "sha512-LsStXVyso/89gQU5eiJebB/b1j+wrRtTLjk+ODVUTa7NGCCT7B7xI6ToTchkBEpSTHLT9pEQXHsHer3FymsQRQ==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-18.4.3.tgz", + "integrity": "sha512-JZMPtEB8yNip3kg4WDEWQyObSo2Hwf+opq2ElYuwe85GQkGhfJSJ2CQYo4FSwd+c5MUQAqESNRg9QqGYauDsiw==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.4.1", + "@angular-eslint/bundled-angular-compiler": "18.4.3", "eslint-scope": "^8.0.2" }, "peerDependencies": { @@ -579,13 +760,13 @@ } }, "node_modules/@angular-eslint/utils": { - "version": "18.4.1", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-18.4.1.tgz", - "integrity": "sha512-F5UGE1J/CRmTbl8vjexQRwRglNqnJwdXCUejaG+qlGssSHoWcRB+ubbR/na3PdnzeJdBE6DkLYElXnOQZ6YKfg==", + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-18.4.3.tgz", + "integrity": "sha512-w0bJ9+ELAEiPBSTPPm9bvDngfu1d8JbzUhvs2vU+z7sIz/HMwUZT5S4naypj2kNN0gZYGYrW0lt+HIbW87zTAQ==", "dev": true, "license": "MIT", "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.4.1" + "@angular-eslint/bundled-angular-compiler": "18.4.3" }, "peerDependencies": { "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", @@ -594,9 +775,10 @@ } }, "node_modules/@angular/animations": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-19.0.0.tgz", - "integrity": "sha512-+uZTvEXjYh8PZKB4ijk8uuH1K+Tz/A67mUlltFv9pYKtnmbZAeS/PI66g/7pigRYDvEgid1fvlAANeBShAiPZQ==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-19.2.17.tgz", + "integrity": "sha512-6VTet2fzTpSHEjxcVVzL8ZIyNGo/qsUs4XF/3wh9Iwu6qfWx711qXKlqGD/IHWzMTumzvQXbTV4hzvnO7fJvIQ==", + "devOptional": true, "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -605,40 +787,42 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "19.0.0" + "@angular/common": "19.2.17", + "@angular/core": "19.2.17" } }, "node_modules/@angular/build": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-19.0.1.tgz", - "integrity": "sha512-Aodt+EsGQyM8LVG/GjeMAC7BQ4z14SmtUbu6S54mAjGn9uiiYixszAi3fM4SsaQZRK9m0Lwv3a151rw2yZUJow==", + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-19.2.19.tgz", + "integrity": "sha512-SFzQ1bRkNFiOVu+aaz+9INmts7tDUrsHLEr9HmARXr9qk5UmR8prlw39p2u+Bvi6/lCiJ18TZMQQl9mGyr63lg==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1900.1", - "@babel/core": "7.26.0", + "@angular-devkit/architect": "0.1902.19", + "@babel/core": "7.26.10", "@babel/helper-annotate-as-pure": "7.25.9", "@babel/helper-split-export-declaration": "7.24.7", "@babel/plugin-syntax-import-attributes": "7.26.0", - "@inquirer/confirm": "5.0.2", - "@vitejs/plugin-basic-ssl": "1.1.0", - "beasties": "0.1.0", + "@inquirer/confirm": "5.1.6", + "@vitejs/plugin-basic-ssl": "1.2.0", + "beasties": "0.3.2", "browserslist": "^4.23.0", - "esbuild": "0.24.0", - "fast-glob": "3.3.2", - "https-proxy-agent": "7.0.5", + "esbuild": "0.25.4", + "fast-glob": "3.3.3", + "https-proxy-agent": "7.0.6", "istanbul-lib-instrument": "6.0.3", "listr2": "8.2.5", - "magic-string": "0.30.12", - "mrmime": "2.0.0", + "magic-string": "0.30.17", + "mrmime": "2.0.1", "parse5-html-rewriting-stream": "7.0.0", "picomatch": "4.0.2", - "piscina": "4.7.0", - "rollup": "4.26.0", - "sass": "1.80.7", - "semver": "7.6.3", - "vite": "5.4.12", + "piscina": "4.8.0", + "rollup": "4.34.8", + "sass": "1.85.0", + "semver": "7.7.1", + "source-map-support": "0.5.21", + "vite": "6.4.1", "watchpack": "2.4.2" }, "engines": { @@ -647,19 +831,21 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "lmdb": "3.1.5" + "lmdb": "3.2.6" }, "peerDependencies": { - "@angular/compiler": "^19.0.0", - "@angular/compiler-cli": "^19.0.0", - "@angular/localize": "^19.0.0", - "@angular/platform-server": "^19.0.0", - "@angular/service-worker": "^19.0.0", - "@angular/ssr": "^19.0.1", + "@angular/compiler": "^19.0.0 || ^19.2.0-next.0", + "@angular/compiler-cli": "^19.0.0 || ^19.2.0-next.0", + "@angular/localize": "^19.0.0 || ^19.2.0-next.0", + "@angular/platform-server": "^19.0.0 || ^19.2.0-next.0", + "@angular/service-worker": "^19.0.0 || ^19.2.0-next.0", + "@angular/ssr": "^19.2.19", + "karma": "^6.4.0", "less": "^4.2.0", + "ng-packagr": "^19.0.0 || ^19.2.0-next.0", "postcss": "^8.4.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.5 <5.7" + "tailwindcss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "typescript": ">=5.5 <5.9" }, "peerDependenciesMeta": { "@angular/localize": { @@ -674,9 +860,15 @@ "@angular/ssr": { "optional": true }, + "karma": { + "optional": true + }, "less": { "optional": true }, + "ng-packagr": { + "optional": true + }, "postcss": { "optional": true }, @@ -686,9 +878,9 @@ } }, "node_modules/@angular/build/node_modules/magic-string": { - "version": "0.30.12", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", - "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, "license": "MIT", "dependencies": { @@ -696,16 +888,14 @@ } }, "node_modules/@angular/cdk": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-19.0.0.tgz", - "integrity": "sha512-KcOYhCwN4Bw3L4+W4ymTfPGqRjrkwD8M5jX8GM7YsZ5DsX9OEd/gNrwRvjn+8JItzimXLXdGrcqXrMTxkq7QPA==", + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-19.2.19.tgz", + "integrity": "sha512-PCpJagurPBqciqcq4Z8+3OtKLb7rSl4w/qBJoIMua8CgnrjvA1i+SWawhdtfI1zlY8FSwhzLwXV0CmWWfFzQPg==", "license": "MIT", "dependencies": { + "parse5": "^7.1.2", "tslib": "^2.3.0" }, - "optionalDependencies": { - "parse5": "^7.1.2" - }, "peerDependencies": { "@angular/common": "^19.0.0 || ^20.0.0", "@angular/core": "^19.0.0 || ^20.0.0", @@ -713,77 +903,49 @@ } }, "node_modules/@angular/cli": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-19.0.1.tgz", - "integrity": "sha512-vn+assDJoTQyHKSiWorduJ4JDlPyLSJ8M4EHod9Kdn8XT26dEwubTh6o70GkFNEiZ7TSSqQbrAEYuGVJwMRQjQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/architect": "0.1900.1", - "@angular-devkit/core": "19.0.1", - "@angular-devkit/schematics": "19.0.1", - "@inquirer/prompts": "7.1.0", - "@listr2/prompt-adapter-inquirer": "2.0.18", - "@schematics/angular": "19.0.1", - "@yarnpkg/lockfile": "1.1.0", - "ini": "5.0.0", - "jsonc-parser": "3.3.1", - "listr2": "8.2.5", - "npm-package-arg": "12.0.0", - "npm-pick-manifest": "10.0.0", - "pacote": "20.0.0", - "resolve": "1.22.8", - "semver": "7.6.3", - "symbol-observable": "4.0.0", - "yargs": "17.7.2" - }, - "bin": { - "ng": "bin/ng.js" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular/cli/node_modules/@angular-devkit/core": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.1.tgz", - "integrity": "sha512-oXIAV3hXqUW3Pmm95pvEmb+24n1cKQG62FzhQSjOIrMeHiCbGLNuc8zHosIi2oMrcCJJxR6KzWjThvbuzDwWlw==", + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-19.2.19.tgz", + "integrity": "sha512-e9tAzFNOL4mMWfMnpC9Up83OCTOp2siIj8W41FCp8jfoEnw79AXDDLh3d70kOayiObchksTJVShslTogLUyhMw==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "8.17.1", - "ajv-formats": "3.0.1", + "@angular-devkit/architect": "0.1902.19", + "@angular-devkit/core": "19.2.19", + "@angular-devkit/schematics": "19.2.19", + "@inquirer/prompts": "7.3.2", + "@listr2/prompt-adapter-inquirer": "2.0.18", + "@schematics/angular": "19.2.19", + "@yarnpkg/lockfile": "1.1.0", + "ini": "5.0.0", "jsonc-parser": "3.3.1", - "picomatch": "4.0.2", - "rxjs": "7.8.1", - "source-map": "0.7.4" + "listr2": "8.2.5", + "npm-package-arg": "12.0.2", + "npm-pick-manifest": "10.0.0", + "pacote": "20.0.0", + "resolve": "1.22.10", + "semver": "7.7.1", + "symbol-observable": "4.0.0", + "yargs": "17.7.2" + }, + "bin": { + "ng": "bin/ng.js" }, "engines": { "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^4.0.0" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } } }, "node_modules/@angular/cli/node_modules/@angular-devkit/schematics": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.0.1.tgz", - "integrity": "sha512-N9dV8WpNRULykNj8fSxQrta85gPKxb315J3xugLS2uwiFWhz7wo5EY1YeYhoVKoVcNB2ng9imJgC5aO52AHZwg==", + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.2.19.tgz", + "integrity": "sha512-J4Jarr0SohdrHcb40gTL4wGPCQ952IMWF1G/MSAQfBAPvA9ZKApYhpxcY7PmehVePve+ujpus1dGsJ7dPxz8Kg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.0.1", + "@angular-devkit/core": "19.2.19", "jsonc-parser": "3.3.1", - "magic-string": "0.30.12", + "magic-string": "0.30.17", "ora": "5.4.1", "rxjs": "7.8.1" }, @@ -793,72 +955,30 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular/cli/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/@angular/cli/node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/@angular/cli/node_modules/magic-string": { - "version": "0.30.12", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", - "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "node_modules/@angular/cli/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "node_modules/@angular/cli/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" } }, "node_modules/@angular/common": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-19.0.0.tgz", - "integrity": "sha512-kb2iS26GZS0vyR3emAQbIiQifnK5M5vnbclEHni+pApDEU5V9FufbdRP3vCxs28UHZvAZKB0LrxkTrnT6T+z5g==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-19.2.17.tgz", + "integrity": "sha512-yFUXAdpvOFirGD/EGDwp1WHravHzI4sdyRE2iH7i8im9l8IE2VZ6D1KDJp8VVpMJt38LNlRAWYek3s+z6OcAkg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -867,14 +987,14 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "19.0.0", + "@angular/core": "19.2.17", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-19.0.0.tgz", - "integrity": "sha512-Uw2Yy25pdqfzKsS9WofnIq1zvknlVYyy03LYO7NMKHlFWiy8q8SIXN7WKPFhiHlOfyACXipp4eZb9m3+IbOfSA==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-19.2.17.tgz", + "integrity": "sha512-qo8psYASAlDiQ8fAL8i/E2JfWH2nPTpZDKKZxSWvgBVA8o+zUEjYAJu6/k6btnu+4Qcb425T0rmM/zao6EU9Aw==", "dev": true, "license": "MIT", "dependencies": { @@ -882,24 +1002,16 @@ }, "engines": { "node": "^18.19.1 || ^20.11.1 || >=22.0.0" - }, - "peerDependencies": { - "@angular/core": "19.0.0" - }, - "peerDependenciesMeta": { - "@angular/core": { - "optional": true - } } }, "node_modules/@angular/compiler-cli": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-19.0.0.tgz", - "integrity": "sha512-2PxpsIeppoDLAx7A6i0GE10WjC+Fkz8tTQioa7r4y/+eYnniEjJFIQM/8lbkOnRVcuYoeXoNyYWr3fEQAyO4LA==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-19.2.17.tgz", + "integrity": "sha512-KG82fh2A0odttc6+FxlQmFfHY/Giq8rYeV1qtdafafJ8hdWIiMr4r37xwhZOl8uk2/XSLM66bxUMFHYm+zt87Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "7.26.0", + "@babel/core": "7.26.9", "@jridgewell/sourcemap-codec": "^1.4.14", "chokidar": "^4.0.0", "convert-source-map": "^1.5.1", @@ -917,44 +1029,62 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "19.0.0", - "typescript": ">=5.5 <5.7" + "@angular/compiler": "19.2.17", + "typescript": ">=5.5 <5.9" } }, - "node_modules/@angular/compiler-cli/node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "node_modules/@angular/compiler-cli/node_modules/@babel/core": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.9.tgz", + "integrity": "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==", "dev": true, "license": "MIT", "dependencies": { - "readdirp": "^4.0.1" + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.9", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.9", + "@babel/parser": "^7.26.9", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.9", + "@babel/types": "^7.26.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { - "node": ">= 14.16.0" + "node": ">=6.9.0" }, "funding": { - "url": "https://paulmillr.com/funding/" + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@angular/compiler-cli/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/convert-source-map": { + "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==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "license": "MIT" + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, "node_modules/@angular/core": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-19.0.0.tgz", - "integrity": "sha512-aNG2kd30BOM/zf0jC+aEVG8OA27IwqCki9EkmyRNYnaP2O5Mj1n7JpCyZGI+0LrWTJ2UUCfRNZiZdZwmNThr1Q==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-19.2.17.tgz", + "integrity": "sha512-nVu0ryxfiXUZ9M+NV21TY+rJZkPXTYo9U0aJb19hvByPpG+EvuujXUOgpulz6vxIzGy7pz/znRa+K9kxuuC+yQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -968,9 +1098,9 @@ } }, "node_modules/@angular/forms": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-19.0.0.tgz", - "integrity": "sha512-gM4bUdlIJ0uRYNwoVMbXiZt4+bZzPXzyQ7ByNIOVKEAI0PN9Jz1dR1pSeQgIoUvKQbhwsVKVUoa7Tn1hoqwvTg==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-19.2.17.tgz", + "integrity": "sha512-INgGGmMbwXuT+niAjMiCsJrZVEGWKZOep1vCRHoKlVnGUQSRKc3UW8ztmKDKMua/io/Opi03pRMpwbYQcTBr5A==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -979,16 +1109,16 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "19.0.0", - "@angular/core": "19.0.0", - "@angular/platform-browser": "19.0.0", + "@angular/common": "19.2.17", + "@angular/core": "19.2.17", + "@angular/platform-browser": "19.2.17", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-service": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-19.0.0.tgz", - "integrity": "sha512-oXDZ+gOTVFhpGg+Cp/3Mo0aa214eCF13dEboRYTIM/m1jnsTHcIlfhRpkw+FLUSEN9MTVK5xVfx5gUudI7T0rg==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-19.2.17.tgz", + "integrity": "sha512-Jv9D3WUIVRj+PW3HdUFcyPySR1y7TbHdaWBXabe53XTChq+t38BDTEt6tcyBJs/6GgjlrFhP1D7O/9LmCSelJA==", "dev": true, "license": "MIT", "engines": { @@ -996,16 +1126,15 @@ } }, "node_modules/@angular/material": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-19.0.0.tgz", - "integrity": "sha512-j7dDFUh8dqiysuWu32biukDTHScajUYHFR9Srhn98kBwnXMob5y1paMoOx5RQO5DU4KCxKaKx8HcHJBJeTKHjw==", + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-19.2.19.tgz", + "integrity": "sha512-auIE6JUzTIA3LyYklh9J/T7u64crmphxUBgAa0zcOMDog6SYfwbNe9YeLQqua5ek4OUAOdK/BHHfVl5W5iaUoQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/animations": "^19.0.0 || ^20.0.0", - "@angular/cdk": "19.0.0", + "@angular/cdk": "19.2.19", "@angular/common": "^19.0.0 || ^20.0.0", "@angular/core": "^19.0.0 || ^20.0.0", "@angular/forms": "^19.0.0 || ^20.0.0", @@ -1014,9 +1143,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-19.0.0.tgz", - "integrity": "sha512-g9Qkv+KgEmXLVeg+dw1edmWsRBspUGeJMOBf2UX1kUCw6txeco+pzCMimouB5LQYHfs6cD6oC+FwINm0HNwrhg==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-19.2.17.tgz", + "integrity": "sha512-Rn23nIQwYMSeGXWFHI/X8bGHAkdahRxH9UIGUlJKxW61MSkK6AW4kCHG/Ev1TvDq9HjijsMjcqcsd6/Sb8aBXg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1025,9 +1154,9 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/animations": "19.0.0", - "@angular/common": "19.0.0", - "@angular/core": "19.0.0" + "@angular/animations": "19.2.17", + "@angular/common": "19.2.17", + "@angular/core": "19.2.17" }, "peerDependenciesMeta": { "@angular/animations": { @@ -1036,9 +1165,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-19.0.0.tgz", - "integrity": "sha512-ljvycDe0etmTBDzbCFakpsItywddpKEyCZGMKRvz5TdND1N1qqXydxAF1kLzP5H7F/QOMdP4/T/T1HS+6AUpkw==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-19.2.17.tgz", + "integrity": "sha512-jrps9QKhuPrHBZwLv+43z+WldT4aVKZu8v7LPpRHb7/pVLvqccXtIxt3Ttm7sa4tc2SwlKazdE8/ezaNWIRnAg==", "dev": true, "license": "MIT", "dependencies": { @@ -1048,16 +1177,16 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "19.0.0", - "@angular/compiler": "19.0.0", - "@angular/core": "19.0.0", - "@angular/platform-browser": "19.0.0" + "@angular/common": "19.2.17", + "@angular/compiler": "19.2.17", + "@angular/core": "19.2.17", + "@angular/platform-browser": "19.2.17" } }, "node_modules/@angular/router": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-19.0.0.tgz", - "integrity": "sha512-uFyT8DWVLGY8k0AZjpK7iyMO/WwT4/+b09Ax0uUEbdcRxTXSOg8/U/AVzQWtxzxI80/vJE2WZMmhIJFUTYwhKA==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-19.2.17.tgz", + "integrity": "sha512-B3Vk+E8UHQwg06WEjGuvYaKNiIXxjHN9pN8S+hDE8xwRgIS5ojEwS94blEvsGQ4QsIja6WjZMOfDUBUPlgUSuA==", "dev": true, "license": "MIT", "dependencies": { @@ -1067,55 +1196,45 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "19.0.0", - "@angular/core": "19.0.0", - "@angular/platform-browser": "19.0.0", + "@angular/common": "19.2.17", + "@angular/core": "19.2.17", + "@angular/platform-browser": "19.2.17", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@antfu/install-pkg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.0.0.tgz", - "integrity": "sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz", + "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==", "license": "MIT", "optional": true, "dependencies": { - "package-manager-detector": "^0.2.8", - "tinyexec": "^0.3.2" + "package-manager-detector": "^1.3.0", + "tinyexec": "^1.0.1" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, - "node_modules/@antfu/utils": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-8.1.1.tgz", - "integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==", - "license": "MIT", - "optional": true, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", + "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", - "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", "dev": true, "license": "MIT", "engines": { @@ -1123,22 +1242,22 @@ } }, "node_modules/@babel/core": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", - "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", + "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.0", - "@babel/generator": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.10", + "@babel/helper-compilation-targets": "^7.26.5", "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.0", - "@babel/parser": "^7.26.0", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.26.0", + "@babel/helpers": "^7.26.10", + "@babel/parser": "^7.26.10", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.10", + "@babel/types": "^7.26.10", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -1157,26 +1276,28 @@ "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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", - "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.10.tgz", + "integrity": "sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.26.2", - "@babel/types": "^7.26.0", + "@babel/parser": "^7.26.10", + "@babel/types": "^7.26.10", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -1198,29 +1319,15 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", - "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -1240,18 +1347,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", - "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", + "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/traverse": "^7.25.9", + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.5", "semver": "^6.3.1" }, "engines": { @@ -1261,6 +1368,19 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -1272,14 +1392,14 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", - "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", + "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "regexpu-core": "^6.1.1", + "@babel/helper-annotate-as-pure": "^7.27.3", + "regexpu-core": "^6.3.1", "semver": "^6.3.1" }, "engines": { @@ -1289,6 +1409,19 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -1300,60 +1433,70 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", - "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "resolve": "^1.22.10" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", - "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -1363,22 +1506,22 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", - "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.9" + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "dev": true, "license": "MIT", "engines": { @@ -1386,15 +1529,15 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", - "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-wrap-function": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1403,47 +1546,46 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", - "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/types": "^7.27.3" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", - "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", - "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1463,9 +1605,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, "license": "MIT", "engines": { @@ -1473,9 +1615,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "dev": true, "license": "MIT", "engines": { @@ -1483,9 +1625,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, "license": "MIT", "engines": { @@ -1493,42 +1635,42 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", - "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", + "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz", - "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.0", - "@babel/types": "^7.27.0" + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", - "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.27.0" + "@babel/types": "^7.28.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -1538,14 +1680,14 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", - "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", + "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -1555,13 +1697,13 @@ } }, "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", - "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1571,13 +1713,13 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.9", - "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.25.9.tgz", - "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", + "version": "7.27.1", + "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.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1587,15 +1729,15 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1605,14 +1747,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", - "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz", + "integrity": "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -1635,13 +1777,13 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", - "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1684,13 +1826,13 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", - "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1700,15 +1842,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", - "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz", + "integrity": "sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", "@babel/helper-remap-async-to-generator": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/traverse": "^7.26.8" }, "engines": { "node": ">=6.9.0" @@ -1736,13 +1878,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", - "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1752,13 +1894,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", - "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz", + "integrity": "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1768,14 +1910,14 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", - "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1785,14 +1927,14 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", - "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", + "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1802,18 +1944,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", - "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", + "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/traverse": "^7.25.9", - "globals": "^11.1.0" + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.28.4" }, "engines": { "node": ">=6.9.0" @@ -1822,15 +1964,28 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-classes/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", - "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/template": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1840,13 +1995,14 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", - "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -1856,14 +2012,14 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", - "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1873,13 +2029,13 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", - "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1889,14 +2045,14 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1906,13 +2062,13 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", - "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1922,14 +2078,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", - "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.5.tgz", + "integrity": "sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1939,13 +2094,13 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", - "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1955,14 +2110,14 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", - "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1972,15 +2127,15 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", - "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1990,13 +2145,13 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", - "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2006,13 +2161,13 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", - "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2022,13 +2177,13 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", - "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz", + "integrity": "sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2038,13 +2193,13 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", - "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2054,14 +2209,14 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", - "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2071,15 +2226,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", - "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-simple-access": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2089,16 +2243,16 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", - "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz", + "integrity": "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -2108,14 +2262,14 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", - "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2125,14 +2279,14 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2142,13 +2296,13 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", - "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2158,13 +2312,13 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", - "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2174,13 +2328,13 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", - "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2190,15 +2344,17 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", - "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", + "integrity": "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9" + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.4" }, "engines": { "node": ">=6.9.0" @@ -2208,14 +2364,14 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", - "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2225,13 +2381,13 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", - "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2241,14 +2397,14 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz", + "integrity": "sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2258,13 +2414,13 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", - "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2274,14 +2430,14 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", - "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2291,15 +2447,15 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", - "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2308,14 +2464,27 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-private-property-in-object/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", - "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2325,14 +2494,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", - "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz", + "integrity": "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "regenerator-transform": "^0.15.2" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2342,14 +2510,14 @@ } }, "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", - "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2359,13 +2527,13 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", - "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2375,16 +2543,16 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", - "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.26.10.tgz", + "integrity": "sha512-NWaL2qG6HRpONTnj4JvDU6th4jYeZOJgu3QhmFTCihib0ermtOJqktA5BduGm3suhhVe9EMP9c9+mfJ/I9slqw==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-corejs3": "^0.11.0", "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, @@ -2406,13 +2574,13 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", - "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2422,14 +2590,14 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", - "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2439,13 +2607,13 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", - "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2455,13 +2623,13 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", - "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2471,13 +2639,13 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", - "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2487,13 +2655,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", - "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2503,14 +2671,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", - "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2520,14 +2688,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", - "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2537,14 +2705,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", - "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2554,15 +2722,15 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", - "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.9.tgz", + "integrity": "sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", + "@babel/compat-data": "^7.26.8", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-plugin-utils": "^7.26.5", "@babel/helper-validator-option": "^7.25.9", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", @@ -2574,9 +2742,9 @@ "@babel/plugin-syntax-import-attributes": "^7.26.0", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.25.9", - "@babel/plugin-transform-async-generator-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.26.8", "@babel/plugin-transform-async-to-generator": "^7.25.9", - "@babel/plugin-transform-block-scoped-functions": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.26.5", "@babel/plugin-transform-block-scoping": "^7.25.9", "@babel/plugin-transform-class-properties": "^7.25.9", "@babel/plugin-transform-class-static-block": "^7.26.0", @@ -2587,21 +2755,21 @@ "@babel/plugin-transform-duplicate-keys": "^7.25.9", "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", "@babel/plugin-transform-dynamic-import": "^7.25.9", - "@babel/plugin-transform-exponentiation-operator": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.26.3", "@babel/plugin-transform-export-namespace-from": "^7.25.9", - "@babel/plugin-transform-for-of": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.26.9", "@babel/plugin-transform-function-name": "^7.25.9", "@babel/plugin-transform-json-strings": "^7.25.9", "@babel/plugin-transform-literals": "^7.25.9", "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", "@babel/plugin-transform-member-expression-literals": "^7.25.9", "@babel/plugin-transform-modules-amd": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.26.3", "@babel/plugin-transform-modules-systemjs": "^7.25.9", "@babel/plugin-transform-modules-umd": "^7.25.9", "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", "@babel/plugin-transform-new-target": "^7.25.9", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.26.6", "@babel/plugin-transform-numeric-separator": "^7.25.9", "@babel/plugin-transform-object-rest-spread": "^7.25.9", "@babel/plugin-transform-object-super": "^7.25.9", @@ -2617,17 +2785,17 @@ "@babel/plugin-transform-shorthand-properties": "^7.25.9", "@babel/plugin-transform-spread": "^7.25.9", "@babel/plugin-transform-sticky-regex": "^7.25.9", - "@babel/plugin-transform-template-literals": "^7.25.9", - "@babel/plugin-transform-typeof-symbol": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.26.8", + "@babel/plugin-transform-typeof-symbol": "^7.26.7", "@babel/plugin-transform-unicode-escapes": "^7.25.9", "@babel/plugin-transform-unicode-property-regex": "^7.25.9", "@babel/plugin-transform-unicode-regex": "^7.25.9", "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-corejs3": "^0.11.0", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.38.1", + "core-js-compat": "^3.40.0", "semver": "^6.3.1" }, "engines": { @@ -2663,9 +2831,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", - "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", + "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", "dev": true, "license": "MIT", "dependencies": { @@ -2676,48 +2844,65 @@ } }, "node_modules/@babel/template": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", - "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/parser": "^7.27.0", - "@babel/types": "^7.27.0" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", - "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", - "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -2742,6 +2927,13 @@ "lodash-es": "4.17.21" } }, + "node_modules/@chevrotain/cst-dts-gen/node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT", + "optional": true + }, "node_modules/@chevrotain/gast": { "version": "11.0.3", "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz", @@ -2753,6 +2945,13 @@ "lodash-es": "4.17.21" } }, + "node_modules/@chevrotain/gast/node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT", + "optional": true + }, "node_modules/@chevrotain/regexp-to-ast": { "version": "11.0.3", "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz", @@ -2779,6 +2978,7 @@ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.1.90" } @@ -2788,6 +2988,7 @@ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -2800,6 +3001,7 @@ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -2816,9 +3018,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", - "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", + "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", "cpu": [ "ppc64" ], @@ -2833,9 +3035,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", - "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", + "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", "cpu": [ "arm" ], @@ -2850,9 +3052,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", - "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", + "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", "cpu": [ "arm64" ], @@ -2867,9 +3069,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", - "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", + "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", "cpu": [ "x64" ], @@ -2884,9 +3086,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", - "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", + "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", "cpu": [ "arm64" ], @@ -2901,9 +3103,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", - "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", + "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", "cpu": [ "x64" ], @@ -2918,9 +3120,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", - "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", + "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", "cpu": [ "arm64" ], @@ -2935,9 +3137,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", - "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", + "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", "cpu": [ "x64" ], @@ -2952,9 +3154,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", - "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", + "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", "cpu": [ "arm" ], @@ -2969,9 +3171,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", - "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", + "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", "cpu": [ "arm64" ], @@ -2986,9 +3188,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", - "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", + "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", "cpu": [ "ia32" ], @@ -3003,9 +3205,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", - "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", + "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", "cpu": [ "loong64" ], @@ -3020,9 +3222,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", - "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", + "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", "cpu": [ "mips64el" ], @@ -3037,9 +3239,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", - "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", + "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", "cpu": [ "ppc64" ], @@ -3054,9 +3256,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", - "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", + "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", "cpu": [ "riscv64" ], @@ -3071,9 +3273,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", - "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", + "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", "cpu": [ "s390x" ], @@ -3088,9 +3290,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", - "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", + "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", "cpu": [ "x64" ], @@ -3104,10 +3306,27 @@ "node": ">=18" } }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", + "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", - "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", + "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", "cpu": [ "x64" ], @@ -3122,9 +3341,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", - "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", + "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", "cpu": [ "arm64" ], @@ -3139,9 +3358,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", - "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", + "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", "cpu": [ "x64" ], @@ -3156,9 +3375,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", - "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", + "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", "cpu": [ "x64" ], @@ -3173,9 +3392,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", - "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", + "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", "cpu": [ "arm64" ], @@ -3190,9 +3409,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", - "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", + "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", "cpu": [ "ia32" ], @@ -3207,9 +3426,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", - "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", + "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", "cpu": [ "x64" ], @@ -3224,37 +3443,42 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/config-array": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz", - "integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^2.1.4", + "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.2" }, @@ -3263,9 +3487,9 @@ } }, "node_modules/@eslint/config-array/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==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -3286,20 +3510,36 @@ "node": "*" } }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/core": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.0.tgz", - "integrity": "sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/eslintrc": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", - "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", + "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3309,7 +3549,7 @@ "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", + "js-yaml": "^4.1.1", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, @@ -3337,17 +3577,10 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@eslint/eslintrc/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==", - "dev": true, - "license": "Python-2.0" - }, "node_modules/@eslint/eslintrc/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==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -3355,30 +3588,14 @@ "concat-map": "0.0.1" } }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "node": ">= 4" } }, "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { @@ -3402,19 +3619,22 @@ } }, "node_modules/@eslint/js": { - "version": "9.15.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.15.0.tgz", - "integrity": "sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", + "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", "dev": true, "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" } }, "node_modules/@eslint/object-schema": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", - "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -3422,11 +3642,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", - "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", "dev": true, + "license": "Apache-2.0", "dependencies": { + "@eslint/core": "^0.17.0", "levn": "^0.4.1" }, "engines": { @@ -3438,41 +3660,31 @@ "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=18.18.0" } }, "node_modules/@humanfs/node": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" + "@humanwhocodes/retry": "^0.4.0" }, "engines": { "node": ">=18.18.0" } }, - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", - "dev": true, - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -3482,10 +3694,11 @@ } }, "node_modules/@humanwhocodes/retry": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", - "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=18.18" }, @@ -3502,151 +3715,174 @@ "optional": true }, "node_modules/@iconify/utils": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.3.0.tgz", - "integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-3.1.0.tgz", + "integrity": "sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw==", "license": "MIT", "optional": true, "dependencies": { - "@antfu/install-pkg": "^1.0.0", - "@antfu/utils": "^8.1.0", + "@antfu/install-pkg": "^1.1.0", "@iconify/types": "^2.0.0", - "debug": "^4.4.0", - "globals": "^15.14.0", - "kolorist": "^1.8.0", - "local-pkg": "^1.0.0", - "mlly": "^1.7.4" - } - }, - "node_modules/@iconify/utils/node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "license": "MIT", - "optional": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "mlly": "^1.8.0" } }, - "node_modules/@iconify/utils/node_modules/globals": { - "version": "15.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", - "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "node_modules/@inquirer/ansi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz", + "integrity": "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==", + "dev": true, "license": "MIT", - "optional": true, "engines": { "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@inquirer/checkbox": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.0.2.tgz", - "integrity": "sha512-+gznPl8ip8P8HYHYecDtUtdsh1t2jvb+sWCD72GAiZ9m45RqwrLmReDaqdC0umQfamtFXVRoMVJ2/qINKGm9Tg==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.3.2.tgz", + "integrity": "sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/figures": "^1.0.8", - "@inquirer/type": "^3.0.1", - "ansi-escapes": "^4.3.2", - "yoctocolors-cjs": "^2.1.2" + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/confirm": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.0.2.tgz", - "integrity": "sha512-KJLUHOaKnNCYzwVbryj3TNBxyZIrr56fR5N45v6K9IPrbT6B7DcudBMfylkV1A8PUdJE15mybkEQyp2/ZUpxUA==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.6.tgz", + "integrity": "sha512-6ZXYK3M1XmaVBZX6FCfChgtponnL0R6I7k8Nu+kaoNkT828FVZTcca1MqmWQipaW2oNREQl5AaPCUOOCVNdRMw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/type": "^3.0.1" + "@inquirer/core": "^10.1.7", + "@inquirer/type": "^3.0.4" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/core": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.0.tgz", - "integrity": "sha512-I+ETk2AL+yAVbvuKx5AJpQmoaWhpiTFOg/UJb7ZkMAK4blmtG8ATh5ct+T/8xNld0CZG/2UhtkdMwpgvld92XQ==", + "version": "10.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.3.2.tgz", + "integrity": "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/figures": "^1.0.8", - "@inquirer/type": "^3.0.1", - "ansi-escapes": "^4.3.2", + "@inquirer/ansi": "^1.0.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", "cli-width": "^4.1.0", "mute-stream": "^2.0.0", "signal-exit": "^4.1.0", - "strip-ansi": "^6.0.1", "wrap-ansi": "^6.2.0", - "yoctocolors-cjs": "^2.1.2" + "yoctocolors-cjs": "^2.1.3" }, "engines": { "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/editor": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.1.0.tgz", - "integrity": "sha512-K1gGWsxEqO23tVdp5MT3H799OZ4ER1za7Dlc8F4um0W7lwSv0KGR/YyrUEyimj0g7dXZd8XknM/5QA2/Uy+TbA==", + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.23.tgz", + "integrity": "sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/type": "^3.0.1", - "external-editor": "^3.1.0" + "@inquirer/core": "^10.3.2", + "@inquirer/external-editor": "^1.0.3", + "@inquirer/type": "^3.0.10" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/expand": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.2.tgz", - "integrity": "sha512-WdgCX1cUtinz+syKyZdJomovULYlKUWZbVYZzhf+ZeeYf4htAQ3jLymoNs3koIAKfZZl3HUBb819ClCBfyznaw==", + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.23.tgz", + "integrity": "sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/external-editor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", + "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/type": "^3.0.1", - "yoctocolors-cjs": "^2.1.2" + "chardet": "^2.1.1", + "iconv-lite": "^0.7.0" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/figures": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.8.tgz", - "integrity": "sha512-tKd+jsmhq21AP1LhexC0pPwsCxEhGgAkg28byjJAd+xhmIs8LUX8JbUc3vBf3PhLxWiB5EvyBE5X7JSPAqMAqg==", + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz", + "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==", "dev": true, "license": "MIT", "engines": { @@ -3654,143 +3890,178 @@ } }, "node_modules/@inquirer/input": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.0.2.tgz", - "integrity": "sha512-yCLCraigU085EcdpIVEDgyfGv4vBiE4I+k1qRkc9C5dMjWF42ADMGy1RFU94+eZlz4YlkmFsiyHZy0W1wdhaNg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.3.1.tgz", + "integrity": "sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/type": "^3.0.1" + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/number": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.2.tgz", - "integrity": "sha512-MKQhYofdUNk7eqJtz52KvM1dH6R93OMrqHduXCvuefKrsiMjHiMwjc3NZw5Imm2nqY7gWd9xdhYrtcHMJQZUxA==", + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.23.tgz", + "integrity": "sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/type": "^3.0.1" + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/password": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.2.tgz", - "integrity": "sha512-tQXGSu7IO07gsYlGy3VgXRVsbOWqFBMbqAUrJSc1PDTQQ5Qdm+QVwkP0OC0jnUZ62D19iPgXOMO+tnWG+HhjNQ==", + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.23.tgz", + "integrity": "sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/type": "^3.0.1", - "ansi-escapes": "^4.3.2" + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/prompts": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.1.0.tgz", - "integrity": "sha512-5U/XiVRH2pp1X6gpNAjWOglMf38/Ys522ncEHIKT1voRUvSj/DQnR22OVxHnwu5S+rCFaUiPQ57JOtMFQayqYA==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.3.2.tgz", + "integrity": "sha512-G1ytyOoHh5BphmEBxSwALin3n1KGNYB6yImbICcRQdzXfOGbuJ9Jske/Of5Sebk339NSGGNfUshnzK8YWkTPsQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^4.0.2", - "@inquirer/confirm": "^5.0.2", - "@inquirer/editor": "^4.1.0", - "@inquirer/expand": "^4.0.2", - "@inquirer/input": "^4.0.2", - "@inquirer/number": "^3.0.2", - "@inquirer/password": "^4.0.2", - "@inquirer/rawlist": "^4.0.2", - "@inquirer/search": "^3.0.2", - "@inquirer/select": "^4.0.2" + "@inquirer/checkbox": "^4.1.2", + "@inquirer/confirm": "^5.1.6", + "@inquirer/editor": "^4.2.7", + "@inquirer/expand": "^4.0.9", + "@inquirer/input": "^4.1.6", + "@inquirer/number": "^3.0.9", + "@inquirer/password": "^4.0.9", + "@inquirer/rawlist": "^4.0.9", + "@inquirer/search": "^3.0.9", + "@inquirer/select": "^4.0.9" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/rawlist": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.0.2.tgz", - "integrity": "sha512-3XGcskMoVF8H0Dl1S5TSZ3rMPPBWXRcM0VeNVsS4ByWeWjSeb0lPqfnBg6N7T0608I1B2bSVnbi2cwCrmOD1Yw==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.11.tgz", + "integrity": "sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/type": "^3.0.1", - "yoctocolors-cjs": "^2.1.2" + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/search": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.2.tgz", - "integrity": "sha512-Zv4FC7w4dJ13BOJfKRQCICQfShinGjb1bCEIHxTSnjj2telu3+3RHwHubPG9HyD4aix5s+lyAMEK/wSFD75HLA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.2.2.tgz", + "integrity": "sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/figures": "^1.0.8", - "@inquirer/type": "^3.0.1", - "yoctocolors-cjs": "^2.1.2" + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/select": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.0.2.tgz", - "integrity": "sha512-uSWUzaSYAEj0hlzxa1mUB6VqrKaYx0QxGBLZzU4xWFxaSyGaXxsSE4OSOwdU24j0xl8OajgayqFXW0l2bkl2kg==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.4.2.tgz", + "integrity": "sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/figures": "^1.0.8", - "@inquirer/type": "^3.0.1", - "ansi-escapes": "^4.3.2", - "yoctocolors-cjs": "^2.1.2" + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" }, "engines": { "node": ">=18" }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/type": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.1.tgz", - "integrity": "sha512-+ksJMIy92sOAiAccGpcKZUc3bYO07cADnscIxHBknEm3uNts3movSmBofc1908BNy5edKscxYeAdaX1NXkHS6A==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.10.tgz", + "integrity": "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==", "dev": true, "license": "MIT", "engines": { @@ -3798,6 +4069,11 @@ }, "peerDependencies": { "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@isaacs/cliui": { @@ -3805,6 +4081,7 @@ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -3817,23 +4094,12 @@ "node": ">=12" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -3841,49 +4107,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -3914,22 +4143,20 @@ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { @@ -3937,40 +4164,35 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -3993,17 +4215,76 @@ "tslib": "2" } }, + "node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/codegen": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz", + "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/@jsonjoy.com/json-pack": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", - "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz", + "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/base64": "^1.1.1", - "@jsonjoy.com/util": "^1.1.2", + "@jsonjoy.com/base64": "^1.1.2", + "@jsonjoy.com/buffers": "^1.2.0", + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/json-pointer": "^1.0.2", + "@jsonjoy.com/util": "^1.9.0", "hyperdyperid": "^1.2.0", - "thingies": "^1.20.0" + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pointer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz", + "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/util": "^1.9.0" }, "engines": { "node": ">=10.0" @@ -4017,11 +4298,15 @@ } }, "node_modules/@jsonjoy.com/util": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.5.0.tgz", - "integrity": "sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz", + "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/buffers": "^1.0.0", + "@jsonjoy.com/codegen": "^1.0.0" + }, "engines": { "node": ">=10.0" }, @@ -4041,9 +4326,10 @@ "license": "MIT" }, "node_modules/@lhncbc/ucum-lhc": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@lhncbc/ucum-lhc/-/ucum-lhc-5.0.3.tgz", - "integrity": "sha512-FlWyCOE6+Oc73zwRiFaiNSYQD8xpMYe9f4Qzy/tvnM3j5tXUwM3U5W/aXh/znJmHZr+lu3Hx697Sefp/3efOog==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@lhncbc/ucum-lhc/-/ucum-lhc-5.0.4.tgz", + "integrity": "sha512-khuV9GV51DF80b0wJmhZTR5Bf23fhS6SSIWnyGT9X+Uvn0FsHFl2LKViQ2TTOuvwagUOUSq8/0SyoE2ZDGwrAA==", + "license": "SEE LICENSE IN LICENSE.md", "dependencies": { "coffeescript": "^2.7.0", "csv-parse": "^4.4.6", @@ -4097,9 +4383,9 @@ } }, "node_modules/@lmdb/lmdb-darwin-arm64": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.1.5.tgz", - "integrity": "sha512-ue5PSOzHMCIYrfvPP/MRS6hsKKLzqqhcdAvJCO8uFlDdj598EhgnacuOTuqA6uBK5rgiZXfDWyb7DVZSiBKxBA==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.2.6.tgz", + "integrity": "sha512-yF/ih9EJJZc72psFQbwnn8mExIWfTnzWJg+N02hnpXtDPETYLmQswIMBn7+V88lfCaFrMozJsUvcEQIkEPU0Gg==", "cpu": [ "arm64" ], @@ -4111,9 +4397,9 @@ ] }, "node_modules/@lmdb/lmdb-darwin-x64": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.1.5.tgz", - "integrity": "sha512-CGhsb0R5vE6mMNCoSfxHFD8QTvBHM51gs4DBeigTYHWnYv2V5YpJkC4rMo5qAAFifuUcc0+a8a3SIU0c9NrfNw==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.2.6.tgz", + "integrity": "sha512-5BbCumsFLbCi586Bb1lTWQFkekdQUw8/t8cy++Uq251cl3hbDIGEwD9HAwh8H6IS2F6QA9KdKmO136LmipRNkg==", "cpu": [ "x64" ], @@ -4125,9 +4411,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-arm": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.1.5.tgz", - "integrity": "sha512-3WeW328DN+xB5PZdhSWmqE+t3+44xWXEbqQ+caWJEZfOFdLp9yklBZEbVqVdqzznkoaXJYxTCp996KD6HmANeg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.2.6.tgz", + "integrity": "sha512-+6XgLpMb7HBoWxXj+bLbiiB4s0mRRcDPElnRS3LpWRzdYSe+gFk5MT/4RrVNqd2MESUDmb53NUXw1+BP69bjiQ==", "cpu": [ "arm" ], @@ -4139,9 +4425,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-arm64": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.1.5.tgz", - "integrity": "sha512-LAjaoOcBHGj6fiYB8ureiqPoph4eygbXu4vcOF+hsxiY74n8ilA7rJMmGUT0K0JOB5lmRQHSmor3mytRjS4qeQ==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.2.6.tgz", + "integrity": "sha512-l5VmJamJ3nyMmeD1ANBQCQqy7do1ESaJQfKPSm2IG9/ADZryptTyCj8N6QaYgIWewqNUrcbdMkJajRQAt5Qjfg==", "cpu": [ "arm64" ], @@ -4153,9 +4439,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-x64": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.1.5.tgz", - "integrity": "sha512-k/IklElP70qdCXOQixclSl2GPLFiopynGoKX1FqDd1/H0E3Fo1oPwjY2rEVu+0nS3AOw1sryStdXk8CW3cVIsw==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.2.6.tgz", + "integrity": "sha512-nDYT8qN9si5+onHYYaI4DiauDMx24OAiuZAUsEqrDy+ja/3EbpXPX/VAkMV8AEaQhy3xc4dRC+KcYIvOFefJ4Q==", "cpu": [ "x64" ], @@ -4167,9 +4453,9 @@ ] }, "node_modules/@lmdb/lmdb-win32-x64": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.1.5.tgz", - "integrity": "sha512-KYar6W8nraZfSJspcK7Kp7hdj238X/FNauYbZyrqPBrtsXI1hvI4/KcRcRGP50aQoV7fkKDyJERlrQGMGTZUsA==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.2.6.tgz", + "integrity": "sha512-XlqVtILonQnG+9fH2N3Aytria7P/1fwDgDhl29rde96uH2sLB8CHORIf2PfuLVzFQJ7Uqp8py9AYwr3ZUCFfWg==", "cpu": [ "x64" ], @@ -4181,13 +4467,13 @@ ] }, "node_modules/@mermaid-js/parser": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.3.0.tgz", - "integrity": "sha512-HsvL6zgE5sUPGgkIDlmAWR1HTNHz2Iy11BAWPTa4Jjabkpguy4Ze2gzfLrg6pdRuBvFwgUYyxiaNqZwrEEXepA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.6.3.tgz", + "integrity": "sha512-lnjOhe7zyHjc+If7yT4zoedx2vo4sHaTmtkl1+or8BRTnCtDmcTpAjpzDSfCZrshM5bCoz0GyidzadJAH1xobA==", "license": "MIT", "optional": true, "dependencies": { - "langium": "3.0.0" + "langium": "3.3.1" } }, "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { @@ -4275,9 +4561,9 @@ ] }, "node_modules/@napi-rs/nice": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice/-/nice-1.0.1.tgz", - "integrity": "sha512-zM0mVWSXE0a0h9aKACLwKmD6nHcRiKrPpCfvaKqG1CqDEyjEawId0ocXxVzPMCAm6kkWr2P025msfxXEnt8UGQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice/-/nice-1.1.1.tgz", + "integrity": "sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==", "dev": true, "license": "MIT", "optional": true, @@ -4289,28 +4575,29 @@ "url": "https://github.com/sponsors/Brooooooklyn" }, "optionalDependencies": { - "@napi-rs/nice-android-arm-eabi": "1.0.1", - "@napi-rs/nice-android-arm64": "1.0.1", - "@napi-rs/nice-darwin-arm64": "1.0.1", - "@napi-rs/nice-darwin-x64": "1.0.1", - "@napi-rs/nice-freebsd-x64": "1.0.1", - "@napi-rs/nice-linux-arm-gnueabihf": "1.0.1", - "@napi-rs/nice-linux-arm64-gnu": "1.0.1", - "@napi-rs/nice-linux-arm64-musl": "1.0.1", - "@napi-rs/nice-linux-ppc64-gnu": "1.0.1", - "@napi-rs/nice-linux-riscv64-gnu": "1.0.1", - "@napi-rs/nice-linux-s390x-gnu": "1.0.1", - "@napi-rs/nice-linux-x64-gnu": "1.0.1", - "@napi-rs/nice-linux-x64-musl": "1.0.1", - "@napi-rs/nice-win32-arm64-msvc": "1.0.1", - "@napi-rs/nice-win32-ia32-msvc": "1.0.1", - "@napi-rs/nice-win32-x64-msvc": "1.0.1" + "@napi-rs/nice-android-arm-eabi": "1.1.1", + "@napi-rs/nice-android-arm64": "1.1.1", + "@napi-rs/nice-darwin-arm64": "1.1.1", + "@napi-rs/nice-darwin-x64": "1.1.1", + "@napi-rs/nice-freebsd-x64": "1.1.1", + "@napi-rs/nice-linux-arm-gnueabihf": "1.1.1", + "@napi-rs/nice-linux-arm64-gnu": "1.1.1", + "@napi-rs/nice-linux-arm64-musl": "1.1.1", + "@napi-rs/nice-linux-ppc64-gnu": "1.1.1", + "@napi-rs/nice-linux-riscv64-gnu": "1.1.1", + "@napi-rs/nice-linux-s390x-gnu": "1.1.1", + "@napi-rs/nice-linux-x64-gnu": "1.1.1", + "@napi-rs/nice-linux-x64-musl": "1.1.1", + "@napi-rs/nice-openharmony-arm64": "1.1.1", + "@napi-rs/nice-win32-arm64-msvc": "1.1.1", + "@napi-rs/nice-win32-ia32-msvc": "1.1.1", + "@napi-rs/nice-win32-x64-msvc": "1.1.1" } }, "node_modules/@napi-rs/nice-android-arm-eabi": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.0.1.tgz", - "integrity": "sha512-5qpvOu5IGwDo7MEKVqqyAxF90I6aLj4n07OzpARdgDRfz8UbBztTByBp0RC59r3J1Ij8uzYi6jI7r5Lws7nn6w==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.1.1.tgz", + "integrity": "sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==", "cpu": [ "arm" ], @@ -4325,9 +4612,9 @@ } }, "node_modules/@napi-rs/nice-android-arm64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.0.1.tgz", - "integrity": "sha512-GqvXL0P8fZ+mQqG1g0o4AO9hJjQaeYG84FRfZaYjyJtZZZcMjXW5TwkL8Y8UApheJgyE13TQ4YNUssQaTgTyvA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.1.1.tgz", + "integrity": "sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw==", "cpu": [ "arm64" ], @@ -4342,9 +4629,9 @@ } }, "node_modules/@napi-rs/nice-darwin-arm64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.0.1.tgz", - "integrity": "sha512-91k3HEqUl2fsrz/sKkuEkscj6EAj3/eZNCLqzD2AA0TtVbkQi8nqxZCZDMkfklULmxLkMxuUdKe7RvG/T6s2AA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.1.1.tgz", + "integrity": "sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A==", "cpu": [ "arm64" ], @@ -4359,9 +4646,9 @@ } }, "node_modules/@napi-rs/nice-darwin-x64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.0.1.tgz", - "integrity": "sha512-jXnMleYSIR/+TAN/p5u+NkCA7yidgswx5ftqzXdD5wgy/hNR92oerTXHc0jrlBisbd7DpzoaGY4cFD7Sm5GlgQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.1.1.tgz", + "integrity": "sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ==", "cpu": [ "x64" ], @@ -4376,9 +4663,9 @@ } }, "node_modules/@napi-rs/nice-freebsd-x64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.0.1.tgz", - "integrity": "sha512-j+iJ/ezONXRQsVIB/FJfwjeQXX7A2tf3gEXs4WUGFrJjpe/z2KB7sOv6zpkm08PofF36C9S7wTNuzHZ/Iiccfw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.1.1.tgz", + "integrity": "sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ==", "cpu": [ "x64" ], @@ -4393,9 +4680,9 @@ } }, "node_modules/@napi-rs/nice-linux-arm-gnueabihf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.0.1.tgz", - "integrity": "sha512-G8RgJ8FYXYkkSGQwywAUh84m946UTn6l03/vmEXBYNJxQJcD+I3B3k5jmjFG/OPiU8DfvxutOP8bi+F89MCV7Q==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.1.1.tgz", + "integrity": "sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg==", "cpu": [ "arm" ], @@ -4410,9 +4697,9 @@ } }, "node_modules/@napi-rs/nice-linux-arm64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.0.1.tgz", - "integrity": "sha512-IMDak59/W5JSab1oZvmNbrms3mHqcreaCeClUjwlwDr0m3BoR09ZiN8cKFBzuSlXgRdZ4PNqCYNeGQv7YMTjuA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.1.1.tgz", + "integrity": "sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ==", "cpu": [ "arm64" ], @@ -4427,9 +4714,9 @@ } }, "node_modules/@napi-rs/nice-linux-arm64-musl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.0.1.tgz", - "integrity": "sha512-wG8fa2VKuWM4CfjOjjRX9YLIbysSVV1S3Kgm2Fnc67ap/soHBeYZa6AGMeR5BJAylYRjnoVOzV19Cmkco3QEPw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.1.1.tgz", + "integrity": "sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==", "cpu": [ "arm64" ], @@ -4444,9 +4731,9 @@ } }, "node_modules/@napi-rs/nice-linux-ppc64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.0.1.tgz", - "integrity": "sha512-lxQ9WrBf0IlNTCA9oS2jg/iAjQyTI6JHzABV664LLrLA/SIdD+I1i3Mjf7TsnoUbgopBcCuDztVLfJ0q9ubf6Q==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.1.1.tgz", + "integrity": "sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==", "cpu": [ "ppc64" ], @@ -4461,9 +4748,9 @@ } }, "node_modules/@napi-rs/nice-linux-riscv64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.0.1.tgz", - "integrity": "sha512-3xs69dO8WSWBb13KBVex+yvxmUeEsdWexxibqskzoKaWx9AIqkMbWmE2npkazJoopPKX2ULKd8Fm9veEn0g4Ig==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.1.1.tgz", + "integrity": "sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==", "cpu": [ "riscv64" ], @@ -4478,9 +4765,9 @@ } }, "node_modules/@napi-rs/nice-linux-s390x-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.0.1.tgz", - "integrity": "sha512-lMFI3i9rlW7hgToyAzTaEybQYGbQHDrpRkg+1gJWEpH0PLAQoZ8jiY0IzakLfNWnVda1eTYYlxxFYzW8Rqczkg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.1.1.tgz", + "integrity": "sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==", "cpu": [ "s390x" ], @@ -4495,9 +4782,9 @@ } }, "node_modules/@napi-rs/nice-linux-x64-gnu": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.0.1.tgz", - "integrity": "sha512-XQAJs7DRN2GpLN6Fb+ZdGFeYZDdGl2Fn3TmFlqEL5JorgWKrQGRUrpGKbgZ25UeZPILuTKJ+OowG2avN8mThBA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.1.1.tgz", + "integrity": "sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==", "cpu": [ "x64" ], @@ -4512,9 +4799,9 @@ } }, "node_modules/@napi-rs/nice-linux-x64-musl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.0.1.tgz", - "integrity": "sha512-/rodHpRSgiI9o1faq9SZOp/o2QkKQg7T+DK0R5AkbnI/YxvAIEHf2cngjYzLMQSQgUhxym+LFr+UGZx4vK4QdQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.1.1.tgz", + "integrity": "sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==", "cpu": [ "x64" ], @@ -4528,10 +4815,27 @@ "node": ">= 10" } }, + "node_modules/@napi-rs/nice-openharmony-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-openharmony-arm64/-/nice-openharmony-arm64-1.1.1.tgz", + "integrity": "sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@napi-rs/nice-win32-arm64-msvc": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.0.1.tgz", - "integrity": "sha512-rEcz9vZymaCB3OqEXoHnp9YViLct8ugF+6uO5McifTedjq4QMQs3DHz35xBEGhH3gJWEsXMUbzazkz5KNM5YUg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.1.1.tgz", + "integrity": "sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA==", "cpu": [ "arm64" ], @@ -4546,9 +4850,9 @@ } }, "node_modules/@napi-rs/nice-win32-ia32-msvc": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.0.1.tgz", - "integrity": "sha512-t7eBAyPUrWL8su3gDxw9xxxqNwZzAqKo0Szv3IjVQd1GpXXVkb6vBBQUuxfIYaXMzZLwlxRQ7uzM2vdUE9ULGw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.1.1.tgz", + "integrity": "sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug==", "cpu": [ "ia32" ], @@ -4563,9 +4867,9 @@ } }, "node_modules/@napi-rs/nice-win32-x64-msvc": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.0.1.tgz", - "integrity": "sha512-JlF+uDcatt3St2ntBG8H02F1mM45i5SF9W+bIKiReVE6wiy3o16oBP/yxt+RZ+N6LbCImJXJ6bXNO2kn9AXicg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.1.1.tgz", + "integrity": "sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ==", "cpu": [ "x64" ], @@ -4580,9 +4884,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-19.0.1.tgz", - "integrity": "sha512-qi274Ge8TS//IUyhaUiqcu/GCIL4uybFgm+uCCzu0Bvmww1X+vFZvd6bPaMNNMY1wf0IWbG6aZyt04noYH8Xzw==", + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-19.2.19.tgz", + "integrity": "sha512-R9aeTrOBiRVl8I698JWPniUAAEpSvzc8SUGWSM5UXWMcHnWqd92cOnJJ1aXDGJZKXrbhMhCBx9Dglmcks5IDpg==", "dev": true, "license": "MIT", "engines": { @@ -4591,15 +4895,15 @@ "yarn": ">= 1.13.0" }, "peerDependencies": { - "@angular/compiler-cli": "^19.0.0", - "typescript": ">=5.5 <5.7", + "@angular/compiler-cli": "^19.0.0 || ^19.2.0-next.0", + "typescript": ">=5.5 <5.9", "webpack": "^5.54.0" } }, "node_modules/@ngx-translate/core": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-16.0.3.tgz", - "integrity": "sha512-UPse66z9tRUmIpeorYodXBQY6O4foUmj9jy9cCuuja7lqdOwRBWPzCWqc+qYIXv5L2QoqZdxgHtqoUz+Q9weSA==", + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-16.0.4.tgz", + "integrity": "sha512-s8llTL2SJvROhqttxvEs7Cg+6qSf4kvZPFYO+cTOY1d8DWTjlutRkWAleZcPPoeX927Dm7ALfL07G7oYDJ7z6w==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -4610,9 +4914,9 @@ } }, "node_modules/@ngx-translate/http-loader": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@ngx-translate/http-loader/-/http-loader-16.0.0.tgz", - "integrity": "sha512-l3okOHGVxZ1Bm55OpakSfXvI2yYmVmhYqgwGU4aIQIRUqpkBCrSDZnmrHTcZfsGJzXKB5E2D2rko9i28gBijmA==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@ngx-translate/http-loader/-/http-loader-16.0.1.tgz", + "integrity": "sha512-xJEOUpvs6Zfc8G4cmQmegFOEpfYSoplTHHoisPNrATXjRBjpaKsBaPOXlZsuFUW2XV00s16gIyI4+9z1XkO5bw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -4627,6 +4931,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -4640,6 +4945,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -4649,6 +4955,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -4658,9 +4965,9 @@ } }, "node_modules/@npmcli/agent": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", - "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", + "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==", "dev": true, "license": "ISC", "dependencies": { @@ -4671,7 +4978,7 @@ "socks-proxy-agent": "^8.0.3" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/agent/node_modules/lru-cache": { @@ -4695,9 +5002,9 @@ } }, "node_modules/@npmcli/git": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-6.0.1.tgz", - "integrity": "sha512-BBWMMxeQzalmKadyimwb2/VVQyJB01PH0HhVSNLHNBDZN/M/h/02P6f8fxedIiFhpMj11SO9Ep5tKTBE7zL2nw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-6.0.3.tgz", + "integrity": "sha512-GUYESQlxZRAdhs3UhbB6pVRNUELQOHXwK9ruDkwmCv2aZ5y0SApQzUJCg02p3A7Ue2J5hxvlk1YI53c00NmRyQ==", "dev": true, "license": "ISC", "dependencies": { @@ -4706,7 +5013,6 @@ "lru-cache": "^10.0.1", "npm-pick-manifest": "^10.0.0", "proc-log": "^5.0.0", - "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", "which": "^5.0.0" @@ -4776,9 +5082,9 @@ } }, "node_modules/@npmcli/package-json": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-6.0.1.tgz", - "integrity": "sha512-YW6PZ99sc1Q4DINEY2td5z9Z3rwbbsx7CyCnOc7UXUUdePXh5gPi1UeaoQVmKQMVbIU7aOwX2l1OG5ZfjgGi5g==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-6.2.0.tgz", + "integrity": "sha512-rCNLSB/JzNvot0SEyXqWZ7tX2B5dD2a1br2Dp0vSYVo5jh8Z0EZ7lS9TsZ1UtziddB1UfNUaMCc538/HztnJGA==", "dev": true, "license": "ISC", "dependencies": { @@ -4786,18 +5092,18 @@ "glob": "^10.2.2", "hosted-git-info": "^8.0.0", "json-parse-even-better-errors": "^4.0.0", - "normalize-package-data": "^7.0.0", "proc-log": "^5.0.0", - "semver": "^7.5.3" + "semver": "^7.5.3", + "validate-npm-package-license": "^3.0.4" }, "engines": { "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@npmcli/promise-spawn": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-8.0.2.tgz", - "integrity": "sha512-/bNJhjc+o6qL+Dwz/bqfTQClkEO5nTQ1ZEcdCkAQjhkZMHIh22LPG7fNh1enJP1NKWDqYiiABnjFCY7E0zHYtQ==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-8.0.3.tgz", + "integrity": "sha512-Yb00SWaL4F8w+K8YGhQ55+xE4RUNdMHV43WZGsiTM92gS+lC0mGsn7I4hLug7pbao035S6bj3Y3w0cUNGLfmkg==", "dev": true, "license": "ISC", "dependencies": { @@ -4834,9 +5140,9 @@ } }, "node_modules/@npmcli/redact": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-3.0.0.tgz", - "integrity": "sha512-/1uFzjVcfzqrgCeGW7+SZ4hv0qLWmKXVzFahZGJ6QuJBj6Myt9s17+JL86i76NV9YSnJRcGXJYQbAU0rn1YTCQ==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-3.2.2.tgz", + "integrity": "sha512-7VmYAmk4csGv08QzrDKScdzn11jHPFGyqJW39FyPgPuAp3zIaUmuCo1yxw9aGs+NEJuTGQ9Gwqpt93vtJubucg==", "dev": true, "license": "ISC", "engines": { @@ -4844,16 +5150,16 @@ } }, "node_modules/@npmcli/run-script": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-9.0.1.tgz", - "integrity": "sha512-q9C0uHrb6B6cm3qXVM32UmpqTKuFGbtP23O2K5sLvPMz2hilKd0ptqGXSpuunOuOmPQb/aT5F/kCXFc1P2gO/A==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-9.1.0.tgz", + "integrity": "sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==", "dev": true, "license": "ISC", "dependencies": { "@npmcli/node-gyp": "^4.0.0", "@npmcli/package-json": "^6.0.0", "@npmcli/promise-spawn": "^8.0.0", - "node-gyp": "^10.0.0", + "node-gyp": "^11.0.0", "proc-log": "^5.0.0", "which": "^5.0.0" }, @@ -4888,9 +5194,9 @@ } }, "node_modules/@parcel/watcher": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", - "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -4909,25 +5215,25 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.5.0", - "@parcel/watcher-darwin-arm64": "2.5.0", - "@parcel/watcher-darwin-x64": "2.5.0", - "@parcel/watcher-freebsd-x64": "2.5.0", - "@parcel/watcher-linux-arm-glibc": "2.5.0", - "@parcel/watcher-linux-arm-musl": "2.5.0", - "@parcel/watcher-linux-arm64-glibc": "2.5.0", - "@parcel/watcher-linux-arm64-musl": "2.5.0", - "@parcel/watcher-linux-x64-glibc": "2.5.0", - "@parcel/watcher-linux-x64-musl": "2.5.0", - "@parcel/watcher-win32-arm64": "2.5.0", - "@parcel/watcher-win32-ia32": "2.5.0", - "@parcel/watcher-win32-x64": "2.5.0" + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" } }, "node_modules/@parcel/watcher-android-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz", - "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", "cpu": [ "arm64" ], @@ -4946,9 +5252,9 @@ } }, "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", - "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", "cpu": [ "arm64" ], @@ -4967,9 +5273,9 @@ } }, "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz", - "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", "cpu": [ "x64" ], @@ -4988,9 +5294,9 @@ } }, "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz", - "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", "cpu": [ "x64" ], @@ -5009,9 +5315,9 @@ } }, "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz", - "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", "cpu": [ "arm" ], @@ -5030,9 +5336,9 @@ } }, "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz", - "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", "cpu": [ "arm" ], @@ -5051,9 +5357,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz", - "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", "cpu": [ "arm64" ], @@ -5072,9 +5378,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz", - "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", "cpu": [ "arm64" ], @@ -5093,9 +5399,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz", - "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", "cpu": [ "x64" ], @@ -5114,9 +5420,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz", - "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", "cpu": [ "x64" ], @@ -5135,9 +5441,9 @@ } }, "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz", - "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", "cpu": [ "arm64" ], @@ -5156,9 +5462,9 @@ } }, "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", - "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", "cpu": [ "ia32" ], @@ -5177,9 +5483,9 @@ } }, "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", - "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", "cpu": [ "x64" ], @@ -5224,15 +5530,29 @@ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", "optional": true, "engines": { - "node": ">=14" + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.26.0.tgz", - "integrity": "sha512-gJNwtPDGEaOEgejbaseY6xMFu+CPltsc8/T+diUTTbOQLqD+bnrJq9ulH6WD69TqwqWmrfRAtUv30cCFZlbGTQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.8.tgz", + "integrity": "sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==", "cpu": [ "arm" ], @@ -5244,9 +5564,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.26.0.tgz", - "integrity": "sha512-YJa5Gy8mEZgz5JquFruhJODMq3lTHWLm1fOy+HIANquLzfIOzE9RA5ie3JjCdVb9r46qfAQY/l947V0zfGJ0OQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.8.tgz", + "integrity": "sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==", "cpu": [ "arm64" ], @@ -5258,9 +5578,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.26.0.tgz", - "integrity": "sha512-ErTASs8YKbqTBoPLp/kA1B1Um5YSom8QAc4rKhg7b9tyyVqDBlQxy7Bf2wW7yIlPGPg2UODDQcbkTlruPzDosw==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.8.tgz", + "integrity": "sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==", "cpu": [ "arm64" ], @@ -5272,9 +5592,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.26.0.tgz", - "integrity": "sha512-wbgkYDHcdWW+NqP2mnf2NOuEbOLzDblalrOWcPyY6+BRbVhliavon15UploG7PpBRQ2bZJnbmh8o3yLoBvDIHA==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.8.tgz", + "integrity": "sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==", "cpu": [ "x64" ], @@ -5286,9 +5606,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.26.0.tgz", - "integrity": "sha512-Y9vpjfp9CDkAG4q/uwuhZk96LP11fBz/bYdyg9oaHYhtGZp7NrbkQrj/66DYMMP2Yo/QPAsVHkV891KyO52fhg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.8.tgz", + "integrity": "sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==", "cpu": [ "arm64" ], @@ -5300,9 +5620,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.26.0.tgz", - "integrity": "sha512-A/jvfCZ55EYPsqeaAt/yDAG4q5tt1ZboWMHEvKAH9Zl92DWvMIbnZe/f/eOXze65aJaaKbL+YeM0Hz4kLQvdwg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.8.tgz", + "integrity": "sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==", "cpu": [ "x64" ], @@ -5314,9 +5634,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.26.0.tgz", - "integrity": "sha512-paHF1bMXKDuizaMODm2bBTjRiHxESWiIyIdMugKeLnjuS1TCS54MF5+Y5Dx8Ui/1RBPVRE09i5OUlaLnv8OGnA==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.8.tgz", + "integrity": "sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==", "cpu": [ "arm" ], @@ -5328,9 +5648,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.26.0.tgz", - "integrity": "sha512-cwxiHZU1GAs+TMxvgPfUDtVZjdBdTsQwVnNlzRXC5QzIJ6nhfB4I1ahKoe9yPmoaA/Vhf7m9dB1chGPpDRdGXg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.8.tgz", + "integrity": "sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==", "cpu": [ "arm" ], @@ -5342,9 +5662,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.26.0.tgz", - "integrity": "sha512-4daeEUQutGRCW/9zEo8JtdAgtJ1q2g5oHaoQaZbMSKaIWKDQwQ3Yx0/3jJNmpzrsScIPtx/V+1AfibLisb3AMQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.8.tgz", + "integrity": "sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==", "cpu": [ "arm64" ], @@ -5356,9 +5676,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.26.0.tgz", - "integrity": "sha512-eGkX7zzkNxvvS05ROzJ/cO/AKqNvR/7t1jA3VZDi2vRniLKwAWxUr85fH3NsvtxU5vnUUKFHKh8flIBdlo2b3Q==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.8.tgz", + "integrity": "sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==", "cpu": [ "arm64" ], @@ -5369,10 +5689,80 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz", + "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz", + "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.8.tgz", + "integrity": "sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.26.0.tgz", - "integrity": "sha512-Odp/lgHbW/mAqw/pU21goo5ruWsytP7/HCC/liOt0zcGG0llYWKrd10k9Fj0pdj3prQ63N5yQLCLiE7HTX+MYw==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.8.tgz", + "integrity": "sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz", + "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz", + "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==", "cpu": [ "ppc64" ], @@ -5384,9 +5774,23 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.26.0.tgz", - "integrity": "sha512-MBR2ZhCTzUgVD0OJdTzNeF4+zsVogIR1U/FsyuFerwcqjZGvg2nYe24SAHp8O5sN8ZkRVbHwlYeHqcSQ8tcYew==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.8.tgz", + "integrity": "sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz", + "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==", "cpu": [ "riscv64" ], @@ -5398,9 +5802,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.26.0.tgz", - "integrity": "sha512-YYcg8MkbN17fMbRMZuxwmxWqsmQufh3ZJFxFGoHjrE7bv0X+T6l3glcdzd7IKLiwhT+PZOJCblpnNlz1/C3kGQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.8.tgz", + "integrity": "sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==", "cpu": [ "s390x" ], @@ -5412,9 +5816,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.26.0.tgz", - "integrity": "sha512-ZuwpfjCwjPkAOxpjAEjabg6LRSfL7cAJb6gSQGZYjGhadlzKKywDkCUnJ+KEfrNY1jH5EEoSIKLCb572jSiglA==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.8.tgz", + "integrity": "sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==", "cpu": [ "x64" ], @@ -5426,9 +5830,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.26.0.tgz", - "integrity": "sha512-+HJD2lFS86qkeF8kNu0kALtifMpPCZU80HvwztIKnYwym3KnA1os6nsX4BGSTLtS2QVAGG1P3guRgsYyMA0Yhg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.8.tgz", + "integrity": "sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==", "cpu": [ "x64" ], @@ -5439,10 +5843,38 @@ "linux" ] }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz", + "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz", + "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.26.0.tgz", - "integrity": "sha512-WUQzVFWPSw2uJzX4j6YEbMAiLbs0BUysgysh8s817doAYhR5ybqTI1wtKARQKo6cGop3pHnrUJPFCsXdoFaimQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.8.tgz", + "integrity": "sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==", "cpu": [ "arm64" ], @@ -5454,9 +5886,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.26.0.tgz", - "integrity": "sha512-D4CxkazFKBfN1akAIY6ieyOqzoOoBV1OICxgUblWxff/pSjCA2khXlASUx7mK6W1oP4McqhgcCsu6QaLj3WMWg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.8.tgz", + "integrity": "sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==", "cpu": [ "ia32" ], @@ -5467,10 +5899,10 @@ "win32" ] }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.26.0.tgz", - "integrity": "sha512-2x8MO1rm4PGEP0xWbubJW5RtbNLk3puzAMaLQd3B3JHVw4KcHlmXcO+Wewx9zCoo7EUFiMlu/aZbCJ7VjMzAag==", + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz", + "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==", "cpu": [ "x64" ], @@ -5481,61 +5913,47 @@ "win32" ] }, - "node_modules/@schematics/angular": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-19.0.1.tgz", - "integrity": "sha512-zjUv+D8j21dmWgJrNCgav3njb06509Mwy7/ZIC5TMyzWfRsrNlrHLEam/tasi4dt171d5mj9A+IlXeEPnWoNCA==", + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.8.tgz", + "integrity": "sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@angular-devkit/core": "19.0.1", - "@angular-devkit/schematics": "19.0.1", - "jsonc-parser": "3.3.1" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.1.tgz", - "integrity": "sha512-oXIAV3hXqUW3Pmm95pvEmb+24n1cKQG62FzhQSjOIrMeHiCbGLNuc8zHosIi2oMrcCJJxR6KzWjThvbuzDwWlw==", + "node_modules/@schematics/angular": { + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-19.2.19.tgz", + "integrity": "sha512-6/0pvbPCY4UHeB4lnM/5r250QX5gcLgOYbR5FdhFu+22mOPHfWpRc5tNuY9kCephDHzAHjo6fTW1vefOOmA4jw==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "8.17.1", - "ajv-formats": "3.0.1", - "jsonc-parser": "3.3.1", - "picomatch": "4.0.2", - "rxjs": "7.8.1", - "source-map": "0.7.4" + "@angular-devkit/core": "19.2.19", + "@angular-devkit/schematics": "19.2.19", + "jsonc-parser": "3.3.1" }, "engines": { "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^4.0.0" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } } }, "node_modules/@schematics/angular/node_modules/@angular-devkit/schematics": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.0.1.tgz", - "integrity": "sha512-N9dV8WpNRULykNj8fSxQrta85gPKxb315J3xugLS2uwiFWhz7wo5EY1YeYhoVKoVcNB2ng9imJgC5aO52AHZwg==", + "version": "19.2.19", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.2.19.tgz", + "integrity": "sha512-J4Jarr0SohdrHcb40gTL4wGPCQ952IMWF1G/MSAQfBAPvA9ZKApYhpxcY7PmehVePve+ujpus1dGsJ7dPxz8Kg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.0.1", + "@angular-devkit/core": "19.2.19", "jsonc-parser": "3.3.1", - "magic-string": "0.30.12", + "magic-string": "0.30.17", "ora": "5.4.1", "rxjs": "7.8.1" }, @@ -5545,76 +5963,34 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@schematics/angular/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/@schematics/angular/node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/@schematics/angular/node_modules/magic-string": { - "version": "0.30.12", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", - "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "node_modules/@schematics/angular/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "node_modules/@schematics/angular/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" } }, "node_modules/@sigstore/bundle": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-3.0.0.tgz", - "integrity": "sha512-XDUYX56iMPAn/cdgh/DTJxz5RWmqKV4pwvUAEKEWJl+HzKdCd/24wUa9JYNMlDSCb7SUHAdtksxYX779Nne/Zg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-3.1.0.tgz", + "integrity": "sha512-Mm1E3/CmDDCz3nDhFKTuYdB47EdRFRQMOE/EAbiG1MJW77/w1b3P7Qx7JSrVJs8PfwOLOVcKQCHErIwCTyPbag==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2" + "@sigstore/protobuf-specs": "^0.4.0" }, "engines": { "node": "^18.17.0 || >=20.5.0" @@ -5630,147 +6006,42 @@ "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/@sigstore/protobuf-specs": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", - "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/sign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-3.0.0.tgz", - "integrity": "sha512-UjhDMQOkyDoktpXoc5YPJpJK6IooF2gayAr5LvXI4EL7O0vd58okgfRcxuaH+YTdhvb5aa1Q9f+WJ0c2sVuYIw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^3.0.0", - "@sigstore/core": "^2.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "make-fetch-happen": "^14.0.1", - "proc-log": "^5.0.0", - "promise-retry": "^2.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/@sigstore/sign/node_modules/@npmcli/agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", - "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.3" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/@sigstore/sign/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/@sigstore/sign/node_modules/make-fetch-happen": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", - "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/agent": "^3.0.0", - "cacache": "^19.0.1", - "http-cache-semantics": "^4.1.1", - "minipass": "^7.0.2", - "minipass-fetch": "^4.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^1.0.0", - "proc-log": "^5.0.0", - "promise-retry": "^2.0.1", - "ssri": "^12.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/@sigstore/sign/node_modules/minipass-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.0.tgz", - "integrity": "sha512-2v6aXUXwLP1Epd/gc32HAMIWoczx+fZwEPRHm/VwtrJzRGwR1qGZXEYV3Zp8ZjjbwaZhMrM6uHV4KVkk+XCc2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^3.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/@sigstore/sign/node_modules/minizlib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", - "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@sigstore/sign/node_modules/negotiator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "node_modules/@sigstore/protobuf-specs": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.4.3.tgz", + "integrity": "sha512-fk2zjD9117RL9BjqEwF7fwv7Q/P9yGsMV4MUJZ/DocaQJ6+3pKr+syBq1owU5Q5qGw5CUbXzm+4yJ2JVRDQeSA==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "engines": { - "node": ">= 0.6" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/@sigstore/sign/node_modules/rimraf": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", - "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "node_modules/@sigstore/sign": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-3.1.0.tgz", + "integrity": "sha512-knzjmaOHOov1Ur7N/z4B1oPqZ0QX5geUfhrVaqVlu+hl0EAoL4o+l0MSULINcD5GCWe3Z0+YJO8ues6vFlW0Yw==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" + "@sigstore/bundle": "^3.1.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.4.0", + "make-fetch-happen": "^14.0.2", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sigstore/tuf": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-3.0.0.tgz", - "integrity": "sha512-9Xxy/8U5OFJu7s+OsHzI96IX/OzjF/zj0BSSaWhgJgTqtlBhQIV2xdrQI5qxLD7+CWWDepadnXAxzaZ3u9cvRw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-3.1.1.tgz", + "integrity": "sha512-eFFvlcBIoGwVkkwmTi/vEQFSva3xs5Ot3WmBcjgjVdiaoelBLQaQ/ZBfhlG0MnG0cmTYScPpk7eDdGDWUcFUmg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/protobuf-specs": "^0.4.1", "tuf-js": "^3.0.1" }, "engines": { @@ -5778,15 +6049,15 @@ } }, "node_modules/@sigstore/verify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-2.0.0.tgz", - "integrity": "sha512-Ggtq2GsJuxFNUvQzLoXqRwS4ceRfLAJnrIHUDrzAD0GgnOhwujJkKkxM/s5Bako07c3WtAs/sZo5PJq7VHjeDg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-2.1.1.tgz", + "integrity": "sha512-hVJD77oT67aowHxwT4+M6PGOp+E2LtLdTK3+FC0lBO9T7sYwItDMXZ7Z07IDCvR1M717a4axbIWckrW67KMP/w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^3.0.0", + "@sigstore/bundle": "^3.1.0", "@sigstore/core": "^2.0.0", - "@sigstore/protobuf-specs": "^0.3.2" + "@sigstore/protobuf-specs": "^0.4.1" }, "engines": { "node": "^18.17.0 || >=20.5.0" @@ -5797,6 +6068,7 @@ "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -5805,34 +6077,39 @@ } }, "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", - "dev": true + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.12.tgz", + "integrity": "sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==", + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node12": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node14": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node16": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tufjs/canonical-json": { "version": "2.0.0", @@ -5866,9 +6143,9 @@ "license": "MIT" }, "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", "dev": true, "license": "MIT", "dependencies": { @@ -5907,17 +6184,10 @@ "@types/node": "*" } }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/cors": { - "version": "2.8.17", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", - "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "version": "2.8.19", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz", + "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==", "dev": true, "license": "MIT", "dependencies": { @@ -5964,9 +6234,9 @@ } }, "node_modules/@types/d3-array": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", - "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", "license": "MIT", "optional": true }, @@ -6023,9 +6293,9 @@ "optional": true }, "node_modules/@types/d3-dispatch": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz", - "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz", + "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==", "license": "MIT", "optional": true }, @@ -6213,6 +6483,7 @@ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/ms": "*" } @@ -6240,42 +6511,29 @@ } }, "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, "license": "MIT" }, "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", "dev": true, "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", - "@types/serve-static": "*" + "@types/serve-static": "^1" } }, "node_modules/@types/express-serve-static-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.1.tgz", - "integrity": "sha512-CRICJIl0N5cXDONAdlTv5ShATZ4HEwk6kDDIW2/w9qOWKg+NU/5F8wYRWCrONad0/UKkloNSmmyN/wX4rtpbVA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/express/node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "version": "4.19.7", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz", + "integrity": "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==", "dev": true, "license": "MIT", "dependencies": { @@ -6293,32 +6551,35 @@ "optional": true }, "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", "dev": true, "license": "MIT" }, "node_modules/@types/http-proxy": { - "version": "1.17.15", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz", - "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", + "version": "1.17.17", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", + "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/jasmine": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.4.tgz", - "integrity": "sha512-px7OMFO/ncXxixDe1zR13V1iycqWae0MxTaw62RpFlksUi5QuNWgQJFkTQjIOvrmutJbI7Fp2Y2N1F6D2R4G6w==", - "dev": true + "version": "5.1.13", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.13.tgz", + "integrity": "sha512-MYCcDkruFc92LeYZux5BC0dmqo2jk+M5UIZ4/oFnAPCXN9mCcQhLyj7F3/Za7rocVyt5YRr1MmqJqFlvQ9LVcg==", + "dev": true, + "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/mime": { "version": "1.3.5", @@ -6328,25 +6589,26 @@ "license": "MIT" }, "node_modules/@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", - "dev": true + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { - "version": "22.9.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.1.tgz", - "integrity": "sha512-p8Yy/8sw1caA8CdRIQBG5tiLHmxtQKObCijiAa9Ez+d4+PRffM4054xbju0msf+cvhJpnFEeNjxmVT/0ipktrg==", + "version": "22.19.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.3.tgz", + "integrity": "sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.19.8" + "undici-types": "~6.21.0" } }, "node_modules/@types/node-forge": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "version": "1.3.14", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.14.tgz", + "integrity": "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==", "dev": true, "license": "MIT", "dependencies": { @@ -6354,15 +6616,16 @@ } }, "node_modules/@types/pako": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/pako/-/pako-2.0.3.tgz", - "integrity": "sha512-bq0hMV9opAcrmE0Byyo0fY3Ew4tgOevJmQ9grUhpXQhYfyLJ1Kqg3P33JT5fdbT2AjeAjR51zqqVjAL/HMkx7Q==", - "dev": true + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/pako/-/pako-2.0.4.tgz", + "integrity": "sha512-VWDCbrLeVXJM9fihYodcLiIv0ku+AlOa/TQ1SvYOaBuyrSKgEcro95LJyIsJ4vSo6BXIxOKxiJAat04CmST9Fw==", + "dev": true, + "license": "MIT" }, "node_modules/@types/qs": { - "version": "6.9.17", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", - "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", "dev": true, "license": "MIT" }, @@ -6381,13 +6644,12 @@ "license": "MIT" }, "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/mime": "^1", "@types/node": "*" } }, @@ -6402,15 +6664,26 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "version": "1.15.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", "dev": true, "license": "MIT", "dependencies": { "@types/http-errors": "*", "@types/node": "*", - "@types/send": "*" + "@types/send": "<1" + } + }, + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" } }, "node_modules/@types/sockjs": { @@ -6431,9 +6704,9 @@ "optional": true }, "node_modules/@types/ws": { - "version": "8.5.13", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", - "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", "dev": true, "license": "MIT", "dependencies": { @@ -6441,21 +6714,20 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.15.0.tgz", - "integrity": "sha512-+zkm9AR1Ds9uLWN3fkoeXgFppaQ+uEVtfOV62dDmsy9QCNqlRHWNEck4yarvRNrvRcHQLGfqBNui3cimoz8XAg==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.51.0.tgz", + "integrity": "sha512-XtssGWJvypyM2ytBnSnKtHYOGT+4ZwTnBVl36TA4nRO2f4PRNGz5/1OszHzcZCvcBMh+qb7I06uoCmLTRdR9og==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.15.0", - "@typescript-eslint/type-utils": "8.15.0", - "@typescript-eslint/utils": "8.15.0", - "@typescript-eslint/visitor-keys": "8.15.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", + "@typescript-eslint/scope-manager": "8.51.0", + "@typescript-eslint/type-utils": "8.51.0", + "@typescript-eslint/utils": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0", + "ignore": "^7.0.0", "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6465,26 +6737,32 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@typescript-eslint/parser": "^8.51.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.15.0.tgz", - "integrity": "sha512-7n59qFpghG4uazrF9qtGKBZXn7Oz4sOMm8dwNWDQY96Xlm2oX67eipqcblDj+oY1lLCbf1oltMZFpUso66Kl1A==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.51.0.tgz", + "integrity": "sha512-3xP4XzzDNQOIqBMWogftkwxhg5oMKApqY0BAflmLZiFYHqyhSOxv/cd/zPQLTcCXr4AkaKb25joocY0BD1WC6A==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.15.0", - "@typescript-eslint/types": "8.15.0", - "@typescript-eslint/typescript-estree": "8.15.0", - "@typescript-eslint/visitor-keys": "8.15.0", + "@typescript-eslint/scope-manager": "8.51.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0", "debug": "^4.3.4" }, "engines": { @@ -6495,43 +6773,79 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.51.0.tgz", + "integrity": "sha512-Luv/GafO07Z7HpiI7qeEW5NW8HUtZI/fo/kE0YbtQEFpJRUuR0ajcWfCE5bnMvL7QQFrmT/odMe8QZww8X2nfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.51.0", + "@typescript-eslint/types": "^8.51.0", + "debug": "^4.3.4" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.15.0.tgz", - "integrity": "sha512-QRGy8ADi4J7ii95xz4UoiymmmMd/zuy9azCaamnZ3FM8T5fZcex8UfJcjkiEZjJSztKfEBe3dZ5T/5RHAmw2mA==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.51.0.tgz", + "integrity": "sha512-JhhJDVwsSx4hiOEQPeajGhCWgBMBwVkxC/Pet53EpBVs7zHHtayKefw1jtPaNRXpI9RA2uocdmpdfE7T+NrizA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.15.0", - "@typescript-eslint/visitor-keys": "8.15.0" + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.51.0.tgz", + "integrity": "sha512-Qi5bSy/vuHeWyir2C8u/uqGMIlIDu8fuiYWv48ZGlZ/k+PRPHtaAu7erpc7p5bzw2WNNSniuxoMSO4Ar6V9OXw==", + "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.15.0.tgz", - "integrity": "sha512-UU6uwXDoI3JGSXmcdnP5d8Fffa2KayOhUUqr/AiBnG1Gl7+7ut/oyagVeSkh7bxQ0zSXV9ptRh/4N15nkCqnpw==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.51.0.tgz", + "integrity": "sha512-0XVtYzxnobc9K0VU7wRWg1yiUrw4oQzexCG2V2IDxxCxhqBMSMbjB+6o91A+Uc0GWtgjCa3Y8bi7hwI0Tu4n5Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.15.0", - "@typescript-eslint/utils": "8.15.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0", + "@typescript-eslint/utils": "8.51.0", "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6541,18 +6855,14 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.15.0.tgz", - "integrity": "sha512-n3Gt8Y/KyJNe0S3yDCD2RVKrHBC4gTUcLTebVBXacPy091E6tNspFLKRXlk3hwT4G55nfr1n2AdFqi/XMxzmPQ==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.51.0.tgz", + "integrity": "sha512-TizAvWYFM6sSscmEakjY3sPqGwxZRSywSsPEiuZF6d5GmGD9Gvlsv0f6N8FvAAA0CD06l3rIcWNbsN1e5F/9Ag==", "dev": true, "license": "MIT", "engines": { @@ -6564,20 +6874,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.15.0.tgz", - "integrity": "sha512-1eMp2JgNec/niZsR7ioFBlsh/Fk0oJbhaqO0jRyQBMgkz7RrFfkqF9lYYmBoGBaSiLnu8TAPQTwoTUiSTUW9dg==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.51.0.tgz", + "integrity": "sha512-1qNjGqFRmlq0VW5iVlcyHBbCjPB7y6SxpBkrbhNWMy/65ZoncXCEPJxkRZL8McrseNH6lFhaxCIaX+vBuFnRng==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.15.0", - "@typescript-eslint/visitor-keys": "8.15.0", + "@typescript-eslint/project-service": "8.51.0", + "@typescript-eslint/tsconfig-utils": "8.51.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0", "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6586,23 +6897,21 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/utils": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.15.0.tgz", - "integrity": "sha512-k82RI9yGhr0QM3Dnq+egEpz9qB6Un+WLYhmoNcvl8ltMEededhh7otBVVIDDsEEttauwdY/hQoSsOv13lxrFzQ==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.51.0.tgz", + "integrity": "sha512-11rZYxSe0zabiKaCP2QAwRf/dnmgFgvTmeDTtZvUvXG3UuAdg/GU02NExmmIXzz3vLGgMdtrIosI84jITQOxUA==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.15.0", - "@typescript-eslint/types": "8.15.0", - "@typescript-eslint/typescript-estree": "8.15.0" + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.51.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6612,23 +6921,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.15.0.tgz", - "integrity": "sha512-h8vYOulWec9LhpwfAdZf2bjr8xIp0KNKnpgqSz0qqYYKAW/QZKw3ktRndbiAtUz4acH4QLQavwZBYCc0wulA/Q==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.51.0.tgz", + "integrity": "sha512-mM/JRQOzhVN1ykejrvwnBRV3+7yTKK8tVANVN3o1O0t0v7o+jqdVu9crPy5Y9dov15TJk/FTIgoUGHrTOVL3Zg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.15.0", - "eslint-visitor-keys": "^4.2.0" + "@typescript-eslint/types": "8.51.0", + "eslint-visitor-keys": "^4.2.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6639,9 +6944,9 @@ } }, "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -6652,161 +6957,176 @@ } }, "node_modules/@vitejs/plugin-basic-ssl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", - "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.2.0.tgz", + "integrity": "sha512-mkQnxTkcldAzIsomk1UuLfAu9n+kpQ3JbHcpCp7d2Oo6ITtji8pHS3QToOWjhPFvNQSnhlkAjmGbhv2QvwO/7Q==", "dev": true, "license": "MIT", "engines": { - "node": ">=14.6.0" + "node": ">=14.21.3" }, "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" } }, "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", - "dev": true + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, @@ -6814,28 +7134,31 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/abbrev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", - "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.1.tgz", + "integrity": "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==", "dev": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/accepts": { @@ -6843,6 +7166,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, + "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -6851,17 +7175,28 @@ "node": ">= 0.6" } }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/ace-builds": { - "version": "1.36.5", - "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.36.5.tgz", - "integrity": "sha512-mZ5KVanRT6nLRDLqtG/1YQQLX/gZVC/v526cm1Ru/MTSlrbweSmqv2ZT0d2GaHpJq035MwCMIrj+LgDAUnDXrg==", + "version": "1.43.5", + "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.43.5.tgz", + "integrity": "sha512-iH5FLBKdB7SVn9GR37UgA/tpQS8OTWIxWAuq3Ofaw+Qbc69FfPXsXd9jeW7KRG2xKpKMqBDnu0tHBrCWY5QI7A==", "license": "BSD-3-Clause" }, "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "devOptional": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -6880,10 +7215,14 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } @@ -6893,6 +7232,7 @@ "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", "dev": true, + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "regex-parser": "^2.2.11" @@ -6906,6 +7246,7 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -6916,22 +7257,20 @@ } }, "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "dev": true, "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, "engines": { "node": ">= 14" } }, "node_modules/agentkeepalive": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", + "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", + "license": "MIT", "dependencies": { "humanize-ms": "^1.2.1" }, @@ -6939,25 +7278,12 @@ "node": ">= 8.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==", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "8.17.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -6970,10 +7296,11 @@ } }, "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -6991,6 +7318,7 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -7002,6 +7330,7 @@ "version": "17.0.2", "resolved": "https://registry.npmjs.org/angular-oauth2-oidc/-/angular-oauth2-oidc-17.0.2.tgz", "integrity": "sha512-zYgeLmAnu1g8XAYZK+csAsCQBDhgp9ffBv/eArEnujGxNPTeK00bREHWObtehflpQdSn+k9rY2D15ChCSydyVw==", + "license": "MIT", "dependencies": { "tslib": "^2.5.2" }, @@ -7015,21 +7344,22 @@ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.2.0.tgz", + "integrity": "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==", "dev": true, "license": "MIT", "dependencies": { - "type-fest": "^0.21.3" + "environment": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7049,18 +7379,39 @@ } }, "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "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==", "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/antlr4": { "version": "4.9.3", "resolved": "https://registry.npmjs.org/antlr4/-/antlr4-4.9.3.tgz", "integrity": "sha512-qNy2odgsa0skmNMCuxzXhM4M8J1YDaPv3TI+vCdnOAanu0N982wBrSqziDKRDctEZLZy9VffqIZXc0UGjjSP/g==", + "license": "BSD-3-Clause", "engines": { "node": ">=14" } @@ -7070,6 +7421,7 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -7083,6 +7435,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -7094,21 +7447,22 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" }, "node_modules/aria-query": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">= 0.4" } @@ -7139,6 +7493,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "browserslist": "^4.23.3", "caniuse-lite": "^1.0.30001646", @@ -7162,6 +7517,7 @@ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">= 0.4" } @@ -7185,14 +7541,14 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", - "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.3", + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", "semver": "^6.3.1" }, "peerDependencies": { @@ -7210,27 +7566,27 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", - "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", + "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2", - "core-js-compat": "^3.38.0" + "@babel/helper-define-polyfill-provider": "^0.6.3", + "core-js-compat": "^3.40.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", - "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3" + "@babel/helper-define-polyfill-provider": "^0.6.5" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -7240,7 +7596,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", @@ -7260,7 +7617,8 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/base64id": { "version": "2.0.0", @@ -7272,6 +7630,16 @@ "node": "^4.5.0 || >= 5.9" } }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.11", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.11.tgz", + "integrity": "sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -7280,9 +7648,9 @@ "license": "MIT" }, "node_modules/beasties": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.1.0.tgz", - "integrity": "sha512-+Ssscd2gVG24qRNC+E2g88D+xsQW4xwakWtKAiGEQ3Pw54/FGdyo9RrfxhGhEv6ilFVbB7r3Lgx+QnAxnSpECw==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.3.2.tgz", + "integrity": "sha512-p4AF8uYzm9Fwu8m/hSVTCPXrRBPmB34hQpHsec2KOaR9CZmgoU8IOv4Cvwq4hgz2p4hLMNbsdNl5XeA6XbAQwA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -7290,10 +7658,13 @@ "css-what": "^6.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", - "htmlparser2": "^9.0.0", + "htmlparser2": "^10.0.0", "picocolors": "^1.1.1", - "postcss": "^8.4.47", + "postcss": "^8.4.49", "postcss-media-query-parser": "^0.2.3" + }, + "engines": { + "node": ">=14.0.0" } }, "node_modules/big.js": { @@ -7301,6 +7672,7 @@ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } @@ -7310,6 +7682,7 @@ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -7322,6 +7695,7 @@ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -7329,23 +7703,24 @@ } }, "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", + "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", "dev": true, + "license": "MIT", "dependencies": { - "bytes": "3.1.2", + "bytes": "~3.1.2", "content-type": "~1.0.5", "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.13.0", - "raw-body": "2.5.2", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.14.0", + "raw-body": "~2.5.3", "type-is": "~1.6.18", - "unpipe": "1.0.0" + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8", @@ -7357,15 +7732,30 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/bonjour-service": { "version": "1.3.0", @@ -7386,10 +7776,11 @@ "license": "ISC" }, "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -7399,6 +7790,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -7410,6 +7802,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "license": "MIT", "dependencies": { "pako": "~1.0.5" } @@ -7417,12 +7810,13 @@ "node_modules/browserify-zlib/node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" }, "node_modules/browserslist": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", - "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", "dev": true, "funding": [ { @@ -7440,10 +7834,11 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001669", - "electron-to-chromium": "^1.5.41", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.1" + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" }, "bin": { "browserslist": "cli.js" @@ -7471,6 +7866,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -7480,7 +7876,8 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/bundle-name": { "version": "4.1.0", @@ -7503,6 +7900,7 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -7548,64 +7946,17 @@ "dev": true, "license": "ISC" }, - "node_modules/cacache/node_modules/minizlib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", - "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/cacache/node_modules/mkdirp": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", - "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/rimraf": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", - "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/cacache/node_modules/tar": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", - "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.2.tgz", + "integrity": "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", - "minizlib": "^3.0.1", - "mkdirp": "^3.0.1", + "minizlib": "^3.1.0", "yallist": "^5.0.0" }, "engines": { @@ -7622,17 +7973,29 @@ "node": ">=18" } }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "dev": true, + "license": "MIT", "dependencies": { - "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" + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -7646,14 +8009,15 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001683", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001683.tgz", - "integrity": "sha512-iqmNnThZ0n70mNwvxpEC2nBJ037ZHZUoBI5Gorh1Mw6IlEAZujEoU1tXA628iZfzm7R9FvFzxbfdgml82a3k8Q==", + "version": "1.0.30001762", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001762.tgz", + "integrity": "sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==", "dev": true, "funding": [ { @@ -7671,10 +8035,27 @@ ], "license": "CC-BY-4.0" }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "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/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz", + "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", "dev": true, "license": "MIT" }, @@ -7706,28 +8087,27 @@ "chevrotain": "^11.0.0" } }, + "node_modules/chevrotain/node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT", + "optional": true + }, "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, + "license": "MIT", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "readdirp": "^4.0.1" }, "engines": { - "node": ">= 8.10.0" + "node": ">= 14.16.0" }, "funding": { "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" } }, "node_modules/chownr": { @@ -7741,34 +8121,29 @@ } }, "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "engines": { - "node": ">=6.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==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=6.0" } }, "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, + "license": "MIT", "dependencies": { - "restore-cursor": "^3.1.0" + "restore-cursor": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-spinners": { @@ -7776,6 +8151,7 @@ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -7800,23 +8176,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "dev": true, "license": "MIT" }, @@ -7838,22 +8201,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/cli-width": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", @@ -7881,6 +8228,7 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -7890,44 +8238,67 @@ "node": ">=12" } }, - "node_modules/cliui/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==", + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/cliui/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==", + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/cliui/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==", - "dev": true - }, "node_modules/cliui/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7945,6 +8316,7 @@ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } @@ -7954,6 +8326,7 @@ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -7963,10 +8336,24 @@ "node": ">=6" } }, + "node_modules/clone-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==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/coffeescript": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-2.7.0.tgz", "integrity": "sha512-hzWp6TUE2d/jCcN67LrW1eh5b/rSDKQK6oD6VMLlggYVUUFexgTH9z3dNYihzX4RMhze5FTUsUmOXViJKFQR/A==", + "license": "MIT", "bin": { "cake": "bin/cake", "coffee": "bin/coffee" @@ -7975,6 +8362,26 @@ "node": ">=6" } }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", @@ -7987,6 +8394,7 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.1.90" } @@ -7994,7 +8402,8 @@ "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, "node_modules/common-path-prefix": { "version": "3.0.0", @@ -8017,9 +8426,9 @@ } }, "node_modules/compression": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", - "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", "dev": true, "license": "MIT", "dependencies": { @@ -8027,7 +8436,7 @@ "compressible": "~2.0.18", "debug": "2.6.9", "negotiator": "~0.6.4", - "on-headers": "~1.0.2", + "on-headers": "~1.1.0", "safe-buffer": "5.2.1", "vary": "~1.1.2" }, @@ -8066,7 +8475,8 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/confbox": { "version": "0.1.8", @@ -8080,6 +8490,7 @@ "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "finalhandler": "1.1.2", @@ -8105,6 +8516,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -8113,7 +8525,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/content-disposition": { "version": "0.5.4", @@ -8133,6 +8546,7 @@ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -8141,7 +8555,8 @@ "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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cookie": { "version": "0.7.2", @@ -8154,9 +8569,9 @@ } }, "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": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", "dev": true, "license": "MIT" }, @@ -8165,6 +8580,7 @@ "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", "dev": true, + "license": "MIT", "dependencies": { "is-what": "^3.14.1" }, @@ -8177,6 +8593,7 @@ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==", "dev": true, + "license": "MIT", "dependencies": { "fast-glob": "^3.3.2", "glob-parent": "^6.0.1", @@ -8196,70 +8613,14 @@ "webpack": "^5.1.0" } }, - "node_modules/copy-webpack-plugin/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", - "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", - "dev": true, - "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/node_modules/slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/core-js-compat": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", - "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.47.0.tgz", + "integrity": "sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.24.2" + "browserslist": "^4.28.0" }, "funding": { "type": "opencollective", @@ -8269,7 +8630,8 @@ "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" }, "node_modules/cors": { "version": "2.8.5", @@ -8300,6 +8662,7 @@ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, + "license": "MIT", "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", @@ -8321,36 +8684,20 @@ } } }, - "node_modules/cosmiconfig/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==", - "dev": true - }, - "node_modules/cosmiconfig/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==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "license": "MIT", "dependencies": { - "node-fetch": "^2.6.12" + "node-fetch": "^2.7.0" } }, "node_modules/cross-spawn": { @@ -8358,6 +8705,7 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -8372,6 +8720,7 @@ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", "dev": true, + "license": "MIT", "dependencies": { "icss-utils": "^5.1.0", "postcss": "^8.4.33", @@ -8403,9 +8752,9 @@ } }, "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -8420,9 +8769,9 @@ } }, "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -8437,6 +8786,7 @@ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -8447,12 +8797,14 @@ "node_modules/csv-parse": { "version": "4.16.3", "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.16.3.tgz", - "integrity": "sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==" + "integrity": "sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==", + "license": "MIT" }, "node_modules/csv-stringify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-1.1.2.tgz", "integrity": "sha512-3NmNhhd+AkYs5YtM1GEh01VR6PKj6qch2ayfQaltx5xpcAdThjnbbI5eT8CzRVpXfGKAxnmrSYLsNl/4f3eWiw==", + "license": "BSD-3-Clause", "dependencies": { "lodash.get": "~4.4.2" } @@ -8461,12 +8813,13 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cytoscape": { - "version": "3.31.0", - "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.31.0.tgz", - "integrity": "sha512-zDGn1K/tfZwEnoGOcHc0H4XazqAAXAuDpcYw9mUnUjATjqljyCNGJv8uEvbvxGaGHaVshxMecyl6oc6uKzRfbw==", + "version": "3.33.1", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.1.tgz", + "integrity": "sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==", "license": "MIT", "optional": true, "engines": { @@ -9017,9 +9370,9 @@ } }, "node_modules/dagre-d3-es": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.11.tgz", - "integrity": "sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==", + "version": "7.0.13", + "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.13.tgz", + "integrity": "sha512-efEhnxpSuwpYOKRm/L5KbqoZmNNukHa/Flty4Wp62JRvgH2ojwVgPgdYyr4twpieZnyRDdIH7PY2mopX26+j2Q==", "license": "MIT", "optional": true, "dependencies": { @@ -9030,28 +9383,31 @@ "node_modules/date-fns": { "version": "1.30.1", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", - "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==" + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", + "license": "MIT" }, "node_modules/date-format": { "version": "4.0.14", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0" } }, "node_modules/dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "version": "1.11.19", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", + "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", "license": "MIT", "optional": true }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -9068,6 +9424,7 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "license": "MIT", "engines": { "node": ">=0.10" } @@ -9076,12 +9433,13 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/default-browser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", - "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.4.0.tgz", + "integrity": "sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==", "dev": true, "license": "MIT", "dependencies": { @@ -9096,9 +9454,9 @@ } }, "node_modules/default-browser-id": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", - "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", "dev": true, "license": "MIT", "engines": { @@ -9113,6 +9471,7 @@ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, + "license": "MIT", "dependencies": { "clone": "^1.0.2" }, @@ -9120,23 +9479,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", - "dev": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/define-lazy-prop": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", @@ -9172,6 +9514,7 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -9181,15 +9524,16 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" } }, "node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "dev": true, "license": "Apache-2.0", "optional": true, @@ -9208,13 +9552,15 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } @@ -9237,6 +9583,7 @@ "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", "dev": true, + "license": "MIT", "dependencies": { "custom-event": "~1.0.0", "ent": "~2.2.0", @@ -9289,9 +9636,9 @@ } }, "node_modules/dompurify": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", - "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz", + "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==", "license": "(MPL-2.0 OR Apache-2.0)", "optional": true, "optionalDependencies": { @@ -9299,9 +9646,9 @@ } }, "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -9313,22 +9660,39 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.64", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.64.tgz", - "integrity": "sha512-IXEuxU+5ClW2IGEYFC2T7szbyVgehupCWQe5GNh+H065CD6U6IFN0s4KeAMFGNmQolRU4IV7zGBWSYMmZ8uuqQ==", + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", "dev": true, "license": "ISC" }, @@ -9341,10 +9705,11 @@ } }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" }, "node_modules/emoji-toolkit": { "version": "9.0.1", @@ -9358,6 +9723,7 @@ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -9367,6 +9733,7 @@ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -9375,6 +9742,7 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "license": "MIT", "optional": true, "dependencies": { "iconv-lite": "^0.6.2" @@ -9384,6 +9752,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -9393,22 +9762,21 @@ } }, "node_modules/engine.io": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.2.tgz", - "integrity": "sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==", + "version": "6.6.5", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.5.tgz", + "integrity": "sha512-2RZdgEbXmp5+dVbRm0P7HQUImZpICccJy7rN7Tv+SFa55pH+lxnuw6/K1ZxxBfHoYpSkHLAO92oa8O4SwFXA2A==", "dev": true, "license": "MIT", "dependencies": { - "@types/cookie": "^0.4.1", "@types/cors": "^2.8.12", "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "2.0.0", "cookie": "~0.7.2", "cors": "~2.8.5", - "debug": "~4.3.1", + "debug": "~4.4.1", "engine.io-parser": "~5.2.1", - "ws": "~8.17.1" + "ws": "~8.18.3" }, "engines": { "node": ">=10.2.0" @@ -9425,10 +9793,11 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "version": "5.18.4", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", + "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -9438,16 +9807,27 @@ } }, "node_modules/ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", - "dev": true + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.2.tgz", + "integrity": "sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "punycode": "^1.4.1", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "devOptional": true, + "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -9460,6 +9840,7 @@ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -9489,6 +9870,7 @@ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "prr": "~1.0.1" @@ -9498,22 +9880,21 @@ } }, "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "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==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.4" - }, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -9523,25 +9904,41 @@ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/es-module-lexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", - "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==", - "dev": true + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "license": "MIT" }, "node_modules/esbuild": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", - "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", + "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -9552,36 +9949,37 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.0", - "@esbuild/android-arm": "0.24.0", - "@esbuild/android-arm64": "0.24.0", - "@esbuild/android-x64": "0.24.0", - "@esbuild/darwin-arm64": "0.24.0", - "@esbuild/darwin-x64": "0.24.0", - "@esbuild/freebsd-arm64": "0.24.0", - "@esbuild/freebsd-x64": "0.24.0", - "@esbuild/linux-arm": "0.24.0", - "@esbuild/linux-arm64": "0.24.0", - "@esbuild/linux-ia32": "0.24.0", - "@esbuild/linux-loong64": "0.24.0", - "@esbuild/linux-mips64el": "0.24.0", - "@esbuild/linux-ppc64": "0.24.0", - "@esbuild/linux-riscv64": "0.24.0", - "@esbuild/linux-s390x": "0.24.0", - "@esbuild/linux-x64": "0.24.0", - "@esbuild/netbsd-x64": "0.24.0", - "@esbuild/openbsd-arm64": "0.24.0", - "@esbuild/openbsd-x64": "0.24.0", - "@esbuild/sunos-x64": "0.24.0", - "@esbuild/win32-arm64": "0.24.0", - "@esbuild/win32-ia32": "0.24.0", - "@esbuild/win32-x64": "0.24.0" + "@esbuild/aix-ppc64": "0.25.4", + "@esbuild/android-arm": "0.25.4", + "@esbuild/android-arm64": "0.25.4", + "@esbuild/android-x64": "0.25.4", + "@esbuild/darwin-arm64": "0.25.4", + "@esbuild/darwin-x64": "0.25.4", + "@esbuild/freebsd-arm64": "0.25.4", + "@esbuild/freebsd-x64": "0.25.4", + "@esbuild/linux-arm": "0.25.4", + "@esbuild/linux-arm64": "0.25.4", + "@esbuild/linux-ia32": "0.25.4", + "@esbuild/linux-loong64": "0.25.4", + "@esbuild/linux-mips64el": "0.25.4", + "@esbuild/linux-ppc64": "0.25.4", + "@esbuild/linux-riscv64": "0.25.4", + "@esbuild/linux-s390x": "0.25.4", + "@esbuild/linux-x64": "0.25.4", + "@esbuild/netbsd-arm64": "0.25.4", + "@esbuild/netbsd-x64": "0.25.4", + "@esbuild/openbsd-arm64": "0.25.4", + "@esbuild/openbsd-x64": "0.25.4", + "@esbuild/sunos-x64": "0.25.4", + "@esbuild/win32-arm64": "0.25.4", + "@esbuild/win32-ia32": "0.25.4", + "@esbuild/win32-x64": "0.25.4" } }, "node_modules/esbuild-wasm": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.24.0.tgz", - "integrity": "sha512-xhNn5tL1AhkPg4ft59yXT6FkwKXiPSYyz1IeinJHUJpjvOHOIPvdmFQc0pGdjxlKSbzZc2mNmtVOWAR1EF/JAg==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.25.4.tgz", + "integrity": "sha512-2HlCS6rNvKWaSKhWaG/YIyRsTsL3gUrMP2ToZMBIjw9LM7vVcIs+rz8kE2vExvTJgvM8OKPqNpcHawY/BQc/qQ==", "dev": true, "license": "MIT", "bin": { @@ -9601,38 +9999,52 @@ "node": ">=6" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint": { - "version": "9.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.15.0.tgz", - "integrity": "sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", + "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.9.0", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.15.0", - "@eslint/plugin-kit": "^0.2.3", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.39.2", + "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.1", + "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.5", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.2.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -9667,10 +10079,11 @@ } }, "node_modules/eslint-scope": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -9687,6 +10100,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -9699,6 +10113,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -9710,82 +10125,23 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/eslint/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==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/eslint/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==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/eslint/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/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==", - "dev": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -9793,69 +10149,29 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/eslint/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==", + "node_modules/eslint/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 4" } }, "node_modules/eslint/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, "node_modules/eslint/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -9863,58 +10179,16 @@ "node": "*" } }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.14.0", + "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" + "eslint-visitor-keys": "^4.2.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -9924,9 +10198,9 @@ } }, "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -9940,6 +10214,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -9949,10 +10224,11 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -9965,6 +10241,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -9977,6 +10254,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -9986,6 +10264,7 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -10004,88 +10283,61 @@ "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.x" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/execa/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, "node_modules/exponential-backoff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", + "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", "dev": true, "license": "Apache-2.0" }, "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", + "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", "dev": true, "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", + "body-parser": "~1.20.3", + "content-disposition": "~0.5.4", "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", "debug": "2.6.9", "depd": "2.0.0", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", "merge-descriptors": "1.0.3", "methods": "~1.1.2", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", + "path-to-regexp": "~0.1.12", "proxy-addr": "~2.0.7", - "qs": "6.13.0", + "qs": "~6.14.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", + "send": "~0.19.0", + "serve-static": "~1.16.2", "setprototypeof": "1.2.0", - "statuses": "2.0.1", + "statuses": "~2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -10098,16 +10350,6 @@ "url": "https://opencollective.com/express" } }, - "node_modules/express/node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -10129,18 +10371,18 @@ } }, "node_modules/express/node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", "dev": true, "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "parseurl": "~1.3.3", - "statuses": "2.0.1", + "statuses": "~2.0.2", "unpipe": "~1.0.0" }, "engines": { @@ -10155,9 +10397,9 @@ "license": "MIT" }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "dev": true, "license": "MIT", "engines": { @@ -10168,81 +10410,83 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "license": "MIT", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/external-editor/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, - "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } + "license": "MIT" }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" } }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "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", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", - "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", - "dev": true + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -10260,10 +10504,29 @@ "node": ">=0.8.0" } }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, "node_modules/fhir-kit-client": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/fhir-kit-client/-/fhir-kit-client-1.9.2.tgz", "integrity": "sha512-JInH86BcHR9kUxqmdhhmvEMu7HvUP4ECjolyX1XGhfULnWACrvWA7yX6aB8dI3gODHgqWdshpMY+CT2GTWxzVg==", + "license": "MIT", "dependencies": { "agentkeepalive": "^4.2.1", "cross-fetch": "^3.1.5", @@ -10278,10 +10541,11 @@ } }, "node_modules/fhirpath": { - "version": "3.15.2", - "resolved": "https://registry.npmjs.org/fhirpath/-/fhirpath-3.15.2.tgz", - "integrity": "sha512-X02E5p+1onWpw/pDjr22pptpWw5sP4/Se526O7WotYqqPA5/I0fhi7eDhUrrRaUDNx0SnLPzLkZ1njq60YlETw==", + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/fhirpath/-/fhirpath-3.18.0.tgz", + "integrity": "sha512-iZ876rFWhozQLO/hTgFoEH9t9r1WHJqd4tRH6Gg/FiB6zliyK+bL7xKO5CzgkWBpvvBWe4sqe60tC+8opR0d0Q==", "hasInstallScript": true, + "license": "SEE LICENSE in LICENSE.md", "dependencies": { "@lhncbc/ucum-lhc": "^5.0.0", "antlr4": "~4.9.3", @@ -10296,11 +10560,34 @@ "node": ">=8.9.0" } }, + "node_modules/fhirpath/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/fhirpath/node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^4.0.0" }, @@ -10313,6 +10600,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -10324,6 +10612,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -10333,6 +10622,7 @@ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -10351,6 +10641,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -10359,13 +10650,15 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/finalhandler/node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "dev": true, + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -10391,37 +10684,28 @@ } }, "node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-up/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, "node_modules/flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } @@ -10431,6 +10715,7 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" @@ -10440,15 +10725,16 @@ } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", "dev": true, "funding": [ { @@ -10456,6 +10742,7 @@ "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -10466,12 +10753,13 @@ } }, "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dev": true, + "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.0", + "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" }, "engines": { @@ -10496,6 +10784,7 @@ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "dev": true, + "license": "MIT", "engines": { "node": "*" }, @@ -10514,6 +10803,31 @@ "node": ">= 0.6" } }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-extra/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/fs-minipass": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", @@ -10531,7 +10845,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", @@ -10539,6 +10854,7 @@ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -10552,6 +10868,7 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -10561,6 +10878,7 @@ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -10570,14 +10888,15 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-east-asian-width": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", - "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", + "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", "dev": true, "license": "MIT", "engines": { @@ -10588,16 +10907,22 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dev": true, + "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -10606,66 +10931,120 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "dev": true, - "engines": { - "node": ">=10" + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 0.4" } }, "node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regex.js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz", + "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, "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==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", + "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.3", + "path-type": "^6.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" } }, "node_modules/good-listener": { @@ -10679,12 +11058,13 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" + "license": "MIT", + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10694,13 +11074,8 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "devOptional": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "devOptional": true, + "license": "ISC" }, "node_modules/hachure-fill": { "version": "0.5.2", @@ -10716,23 +11091,22 @@ "dev": true, "license": "MIT" }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "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==", "dev": true, - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -10740,11 +11114,15 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, "engines": { "node": ">= 0.4" }, @@ -10757,6 +11135,7 @@ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -10765,17 +11144,18 @@ } }, "node_modules/highlight.js": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.9.0.tgz", - "integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==", + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz", + "integrity": "sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==", + "license": "BSD-3-Clause", "engines": { "node": ">=12.0.0" } }, "node_modules/hosted-git-info": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.0.2.tgz", - "integrity": "sha512-sYKnA7eGln5ov8T8gnYlkSOxFJvywzEx9BueN6xo/GKO8PGiI6uK6xx+DIGe45T3bdVjLAQDQW1aicT8z8JwQg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.1.0.tgz", + "integrity": "sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==", "dev": true, "license": "ISC", "dependencies": { @@ -10838,33 +11218,17 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/html-entities": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", - "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], - "license": "MIT" - }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/htmlparser2": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", - "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", + "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", @@ -10877,14 +11241,27 @@ "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.1.0", - "entities": "^4.5.0" + "domutils": "^3.2.1", + "entities": "^6.0.0" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", "dev": true, "license": "BSD-2-Clause" }, @@ -10896,34 +11273,40 @@ "license": "MIT" }, "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": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", "dev": true, + "license": "MIT", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" }, "engines": { "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/http-errors/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", "dev": true, "license": "MIT" }, @@ -10932,6 +11315,7 @@ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -10956,58 +11340,42 @@ } }, "node_modules/http-proxy-middleware": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.3.tgz", - "integrity": "sha512-usY0HG5nyDUwtqpiZdETNbmKtw3QQ1jwYFZ9wi5iHzX2BcILwQKtYDJPo7XHTsu5Z0B2Hj3W9NNnbd+AjFWjqg==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.5.tgz", + "integrity": "sha512-GLZZm1X38BPY4lkXA01jhwxvDoOkkXqjgVyUzVxiEK4iuRu03PZoYHhHRwxnfhQMDuaxi3vVri0YgSro/1oWqg==", "dev": true, + "license": "MIT", "dependencies": { "@types/http-proxy": "^1.17.15", "debug": "^4.3.6", "http-proxy": "^1.18.1", "is-glob": "^4.0.3", - "is-plain-object": "^5.0.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/http-proxy-middleware/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==", - "dev": true, + "is-plain-object": "^5.0.0", + "micromatch": "^4.0.8" + }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { "node": ">= 14" } }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, "node_modules/humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "license": "MIT", "dependencies": { "ms": "^2.0.0" } @@ -11023,15 +11391,20 @@ } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.1.tgz", + "integrity": "sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==", "dev": true, + "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/icss-utils": { @@ -11039,6 +11412,7 @@ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -11064,13 +11438,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz", + "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -11093,6 +11469,7 @@ "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", "dev": true, + "license": "MIT", "optional": true, "bin": { "image-size": "bin/image-size.js" @@ -11102,17 +11479,18 @@ } }, "node_modules/immutable": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", - "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.4.tgz", + "integrity": "sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==", "dev": true, "license": "MIT" }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -11124,39 +11502,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.8.19" } }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -11165,7 +11527,8 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" }, "node_modules/ini": { "version": "5.0.0", @@ -11188,30 +11551,19 @@ } }, "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", "dev": true, "license": "MIT", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, "engines": { "node": ">= 12" } }, - "node_modules/ip-address/node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.3.0.tgz", + "integrity": "sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==", "dev": true, "license": "MIT", "engines": { @@ -11222,13 +11574,15 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -11237,12 +11591,16 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11269,6 +11627,7 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -11277,6 +11636,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "license": "MIT", "engines": { "node": ">=0.10.0" }, @@ -11285,12 +11645,16 @@ } }, "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-glob": { @@ -11298,6 +11662,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -11328,6 +11693,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.7.tgz", "integrity": "sha512-RPQc/s9yBHSvpi+hs9dYiJ2cuFeU6x3TyyIp8O2H6SKEltIvJOzRj9ToyvcStDvPR/pS4rxgr1oBFajQjZ2Szg==", + "license": "WTFPL OR ISC", "dependencies": { "is-finite": "^1.0.0" } @@ -11337,21 +11703,15 @@ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true, - "license": "MIT" - }, "node_modules/is-network-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", - "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.0.tgz", + "integrity": "sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==", "dev": true, "license": "MIT", "engines": { @@ -11366,6 +11726,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -11384,27 +11745,32 @@ } }, "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": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, + "license": "MIT", "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", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-unicode-supported": { @@ -11412,6 +11778,7 @@ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -11423,7 +11790,8 @@ "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-wsl": { "version": "3.1.0", @@ -11444,13 +11812,15 @@ "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/isbinaryfile": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8.0.0" }, @@ -11462,13 +11832,15 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -11478,6 +11850,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } @@ -11487,6 +11860,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.23.9", "@babel/parser": "^7.23.9", @@ -11503,6 +11877,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -11512,32 +11887,12 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-report/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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/istanbul-lib-source-maps": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^2.0.5", @@ -11550,10 +11905,11 @@ } }, "node_modules/istanbul-lib-source-maps/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==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -11563,7 +11919,9 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -11584,6 +11942,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=6" } @@ -11593,6 +11952,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, + "license": "MIT", "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -11606,6 +11966,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -11617,7 +11978,9 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -11630,6 +11993,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -11639,15 +12003,17 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -11657,16 +12023,14 @@ } }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -11675,29 +12039,32 @@ } }, "node_modules/jasmine": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-5.4.0.tgz", - "integrity": "sha512-E2u4ylX5tgGYvbynImU6EUBKKrSVB1L72FEPjGh4M55ov1VsxR26RA2JU91L9YSPFgcjo4mCLyKn/QXvEYGBkA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-5.13.0.tgz", + "integrity": "sha512-oLCXIhEb5e0zzjn9GyuvcuisvLBwUjmgz7a0RNGWKwQtJCDld4m+vwKUpAIJVLB5vbmQFdtKhT86/tIZlJ5gYw==", "dev": true, + "license": "MIT", "dependencies": { "glob": "^10.2.2", - "jasmine-core": "~5.4.0" + "jasmine-core": "~5.13.0" }, "bin": { "jasmine": "bin/jasmine.js" } }, "node_modules/jasmine-core": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.4.0.tgz", - "integrity": "sha512-T4fio3W++llLd7LGSGsioriDHgWyhoL6YTu4k37uwJLF7DzOzspz7mNxRoM3cQdLWtL/ebazQpIf/yZGJx/gzg==", - "dev": true + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.13.0.tgz", + "integrity": "sha512-vsYjfh7lyqvZX5QgqKc4YH8phs7g96Z8bsdIFNEU3VqXhlHaq+vov/Fgn/sr6MiUczdZkyXRC3TX369Ll4Nzbw==", + "dev": true, + "license": "MIT" }, "node_modules/jasmine-spec-reporter": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-7.0.0.tgz", "integrity": "sha512-OtC7JRasiTcjsaCBPtMO0Tl8glCejM4J4/dNuOJdA8lBjz4PmWjYQ6pzb0uzpBNAWJMDudYuj9OdXJWqM2QTJg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "colors": "1.4.0" } @@ -11707,6 +12074,7 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -11716,20 +12084,12 @@ "node": ">= 10.13.0" } }, - "node_modules/jest-worker/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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -11741,18 +12101,19 @@ } }, "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "dev": true, + "license": "MIT", "bin": { "jiti": "bin/jiti.js" } }, "node_modules/js-base64": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz", - "integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==", + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.8.tgz", + "integrity": "sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==", "license": "BSD-3-Clause" }, "node_modules/js-tokens": { @@ -11765,31 +12126,26 @@ "node_modules/js-untar": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/js-untar/-/js-untar-2.0.0.tgz", - "integrity": "sha512-7CsDLrYQMbLxDt2zl9uKaPZSdmJMvGGQ7wo9hoB3J+z/VcO2w63bXFgHVnjF1+S9wD3zAu8FBVj7EYWjTQ3Z7g==" + "integrity": "sha512-7CsDLrYQMbLxDt2zl9uKaPZSdmJMvGGQ7wo9hoB3J+z/VcO2w63bXFgHVnjF1+S9wD3zAu8FBVj7EYWjTQ3Z7g==", + "license": "MIT" }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "dev": true, - "license": "MIT" - }, "node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, "license": "MIT", "bin": { @@ -11803,7 +12159,8 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "4.0.0", @@ -11819,30 +12176,35 @@ "version": "0.7.0", "resolved": "https://registry.npmjs.org/json-patch/-/json-patch-0.7.0.tgz", "integrity": "sha512-9zaGTzsV6Hal5HVMC8kb4niXYQOOcq3tUp0P/GTw6HHZFPVwtCU2+mXE9q59MelL9uknALWnoKrUxnDpUX728g==", - "dev": true + "dev": true, + "license": "BSD" }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC" }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -11854,12 +12216,14 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jsonfile": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -11879,6 +12243,7 @@ "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.4.tgz", "integrity": "sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==", "dev": true, + "license": "MIT", "dependencies": { "@colors/colors": "1.5.0", "body-parser": "^1.19.0", @@ -11917,6 +12282,7 @@ "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", "dev": true, + "license": "MIT", "dependencies": { "which": "^1.2.1" } @@ -11926,6 +12292,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -11938,6 +12305,7 @@ "resolved": "https://registry.npmjs.org/karma-cli/-/karma-cli-2.0.0.tgz", "integrity": "sha512-1Kb28UILg1ZsfqQmeELbPzuEb5C6GZJfVIk0qOr8LNYQuYWmAaqP16WpbpKEjhejDrDYyYOwwJXSZO6u7q5Pvw==", "dev": true, + "license": "MIT", "dependencies": { "resolve": "^1.3.3" }, @@ -11953,6 +12321,7 @@ "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", "dev": true, + "license": "MIT", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-report": "^3.0.0", @@ -11965,10 +12334,11 @@ } }, "node_modules/karma-coverage-istanbul-reporter/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==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -11979,6 +12349,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -11991,6 +12362,7 @@ "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", "dev": true, + "license": "MIT", "dependencies": { "jasmine-core": "^4.1.0" }, @@ -12006,6 +12378,7 @@ "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.1.0.tgz", "integrity": "sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ==", "dev": true, + "license": "MIT", "peerDependencies": { "jasmine-core": "^4.0.0 || ^5.0.0", "karma": "^6.0.0", @@ -12013,79 +12386,94 @@ } }, "node_modules/karma-jasmine/node_modules/jasmine-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", - "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", - "dev": true + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.1.tgz", + "integrity": "sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ==", + "dev": true, + "license": "MIT" }, "node_modules/karma-source-map-support": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", "dev": true, + "license": "MIT", "dependencies": { "source-map-support": "^0.5.5" } }, - "node_modules/karma/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==", + "node_modules/karma/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, + "license": "MIT", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/karma/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==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, + "node_modules/karma/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/karma/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, - "node_modules/karma/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==", + "node_modules/karma/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/karma/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==", - "dev": true + "license": "MIT" }, "node_modules/karma/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -12101,11 +12489,35 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/karma/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/karma/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/karma/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -12113,20 +12525,76 @@ "node": "*" } }, + "node_modules/karma/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/karma/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/karma/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, + "node_modules/karma/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/karma/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -12144,6 +12612,7 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -12162,14 +12631,15 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/katex": { - "version": "0.16.21", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz", - "integrity": "sha512-XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A==", + "version": "0.16.27", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.27.tgz", + "integrity": "sha512-aeQoDkuRWSqQN6nSvVCEFvfXdqo1OQiCmmW1kc9xSdjutPv7BGO7pqY9sQRJpMOGrEdfDgF2TfRXe5eUAD2Waw==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" @@ -12198,6 +12668,7 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -12213,21 +12684,15 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/kolorist": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", - "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", - "license": "MIT", - "optional": true - }, "node_modules/langium": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/langium/-/langium-3.0.0.tgz", - "integrity": "sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/langium/-/langium-3.3.1.tgz", + "integrity": "sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==", "license": "MIT", "optional": true, "dependencies": { @@ -12242,14 +12707,14 @@ } }, "node_modules/launch-editor": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", - "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.12.0.tgz", + "integrity": "sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg==", "dev": true, "license": "MIT", "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" + "picocolors": "^1.1.1", + "shell-quote": "^1.8.3" } }, "node_modules/layout-base": { @@ -12260,10 +12725,11 @@ "optional": true }, "node_modules/less": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", - "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.2.tgz", + "integrity": "sha512-tkuLHQlvWUTeQ3doAqnHbNn8T6WX1KA8yvbKG9x4VtKtIjHsVKQZCH11zRgAfbDAXC2UNIg/K9BYAAcEzUIrNg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "copy-anything": "^2.0.1", "parse-node-version": "^1.0.1", @@ -12290,6 +12756,7 @@ "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.2.0.tgz", "integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 18.12.0" }, @@ -12316,6 +12783,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "pify": "^4.0.1", @@ -12330,6 +12798,7 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, + "license": "MIT", "optional": true, "bin": { "mime": "cli.js" @@ -12343,6 +12812,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "optional": true, "bin": { "semver": "bin/semver" @@ -12353,6 +12823,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "optional": true, "engines": { "node": ">=0.10.0" @@ -12363,6 +12834,7 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -12376,6 +12848,7 @@ "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", "dev": true, + "license": "ISC", "dependencies": { "webpack-sources": "^3.0.0" }, @@ -12388,6 +12861,13 @@ } } }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, "node_modules/listr2": { "version": "8.2.5", "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz", @@ -12406,23 +12886,10 @@ "node": ">=18.0.0" } }, - "node_modules/listr2/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/listr2/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", "engines": { @@ -12433,9 +12900,9 @@ } }, "node_modules/listr2/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "dev": true, "license": "MIT" }, @@ -12464,26 +12931,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/listr2/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/listr2/node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "dev": true, "license": "MIT", "dependencies": { @@ -12499,9 +12950,9 @@ } }, "node_modules/lmdb": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.1.5.tgz", - "integrity": "sha512-46Mch5Drq+A93Ss3gtbg+Xuvf5BOgIuvhKDWoGa3HcPHI6BL2NCOkRdSx1D4VfzwrxhnsjbyIVsLRlQHu6URvw==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.2.6.tgz", + "integrity": "sha512-SuHqzPl7mYStna8WRotY8XX/EUZBjjv3QyKIByeCLFfC9uXT/OIHByEcA07PzbMfQAM0KYJtLgtpMRlIe5dErQ==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -12517,21 +12968,26 @@ "download-lmdb-prebuilds": "bin/download-prebuilds.js" }, "optionalDependencies": { - "@lmdb/lmdb-darwin-arm64": "3.1.5", - "@lmdb/lmdb-darwin-x64": "3.1.5", - "@lmdb/lmdb-linux-arm": "3.1.5", - "@lmdb/lmdb-linux-arm64": "3.1.5", - "@lmdb/lmdb-linux-x64": "3.1.5", - "@lmdb/lmdb-win32-x64": "3.1.5" + "@lmdb/lmdb-darwin-arm64": "3.2.6", + "@lmdb/lmdb-darwin-x64": "3.2.6", + "@lmdb/lmdb-linux-arm": "3.2.6", + "@lmdb/lmdb-linux-arm64": "3.2.6", + "@lmdb/lmdb-linux-x64": "3.2.6", + "@lmdb/lmdb-win32-x64": "3.2.6" } }, "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/loader-utils": { @@ -12539,38 +12995,22 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", "dev": true, - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/local-pkg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.0.0.tgz", - "integrity": "sha512-bbgPw/wmroJsil/GgL4qjDzs5YLTBMQ99weRsok1XCDccQeehbHA/I1oRvk2NPtr7KGZgT/Y5tPRnAtMqeG2Kg==", "license": "MIT", - "optional": true, - "dependencies": { - "mlly": "^1.7.3", - "pkg-types": "^1.3.0" - }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" + "node": ">= 12.13.0" } }, "node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "license": "MIT", "dependencies": { - "p-locate": "^6.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -12580,12 +13020,13 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "version": "4.17.22", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.22.tgz", + "integrity": "sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==", "license": "MIT", "optional": true }, @@ -12599,98 +13040,32 @@ "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.", + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/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==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/log-symbols/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/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==", - "dev": true - }, - "node_modules/log-symbols/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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/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==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log-update": { @@ -12713,39 +13088,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/ansi-escapes": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", - "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "environment": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/log-update/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", "engines": { @@ -12755,70 +13101,21 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/log-update/node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/log-update/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "dev": true, "license": "MIT" }, "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", - "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-function": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/restore-cursor": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", + "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", "dev": true, "license": "MIT", "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" + "get-east-asian-width": "^1.3.1" }, "engines": { "node": ">=18" @@ -12828,9 +13125,9 @@ } }, "node_modules/log-update/node_modules/slice-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", - "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", + "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", "dev": true, "license": "MIT", "dependencies": { @@ -12862,26 +13159,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/log-update/node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "dev": true, "license": "MIT", "dependencies": { @@ -12901,6 +13182,7 @@ "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", "dev": true, + "license": "Apache-2.0", "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", @@ -12927,7 +13209,7 @@ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } @@ -12937,6 +13219,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -12951,151 +13234,52 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/make-fetch-happen": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", - "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", + "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", "dev": true, "license": "ISC", "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", + "@npmcli/agent": "^3.0.0", + "cacache": "^19.0.1", "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", + "minipass-fetch": "^4.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "proc-log": "^4.2.0", + "negotiator": "^1.0.0", + "proc-log": "^5.0.0", "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", - "dev": true, - "license": "ISC", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/cacache": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", - "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "ssri": "^12.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/make-fetch-happen/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==", - "dev": true, + "node_modules/marked": { + "version": "15.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.12.tgz", + "integrity": "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==", "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-fetch-happen/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "dev": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^4.0.0" + "bin": { + "marked": "bin/marked.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 18" } }, - "node_modules/make-fetch-happen/node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/marked": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.0.tgz", - "integrity": "sha512-0mouKmBROJv/WSHJBPZZyYofUgawMChnD5je/g+aOBXsHDjb/IsnTQj7mnhQZu+qPJmRQ0ecX3mLGEUm3BgwYA==", "license": "MIT", - "bin": { - "marked": "bin/marked.js" - }, "engines": { - "node": ">= 18" + "node": ">= 0.4" } }, "node_modules/media-typer": { @@ -13103,25 +13287,25 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/memfs": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.14.0.tgz", - "integrity": "sha512-JUeY0F/fQZgIod31Ja1eJgiSxLn7BfQlCnqhwXFBzFHEw63OdLK7VJUJ7bnzNsWgCyoUP5tEp1VRY8rDaYzqOA==", + "version": "4.51.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.51.1.tgz", + "integrity": "sha512-Eyt3XrufitN2ZL9c/uIRMyDwXanLI88h/L3MoWqNY747ha3dMR9dWqp8cRT5ntjZ0U1TNuq4U91ZXK0sMBjYOQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/json-pack": "^1.0.3", - "@jsonjoy.com/util": "^1.3.0", - "tree-dump": "^1.0.1", + "@jsonjoy.com/json-pack": "^1.11.0", + "@jsonjoy.com/util": "^1.9.0", + "glob-to-regex.js": "^1.0.1", + "thingies": "^2.5.0", + "tree-dump": "^1.0.3", "tslib": "^2.0.0" }, - "engines": { - "node": ">= 4.0.0" - }, "funding": { "type": "github", "url": "https://github.com/sponsors/streamich" @@ -13141,71 +13325,59 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/mermaid": { - "version": "11.4.1", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.4.1.tgz", - "integrity": "sha512-Mb01JT/x6CKDWaxigwfZYuYmDZ6xtrNwNlidKZwkSrDaY9n90tdrJTV5Umk+wP1fZscGptmKFXHsXMDEVZ+Q6A==", + "version": "11.12.2", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.12.2.tgz", + "integrity": "sha512-n34QPDPEKmaeCG4WDMGy0OT6PSyxKCfy2pJgShP+Qow2KLrvWjclwbc3yXfSIf4BanqWEhQEpngWwNp/XhZt6w==", "license": "MIT", "optional": true, "dependencies": { - "@braintree/sanitize-url": "^7.0.1", - "@iconify/utils": "^2.1.32", - "@mermaid-js/parser": "^0.3.0", + "@braintree/sanitize-url": "^7.1.1", + "@iconify/utils": "^3.0.1", + "@mermaid-js/parser": "^0.6.3", "@types/d3": "^7.4.3", - "cytoscape": "^3.29.2", + "cytoscape": "^3.29.3", "cytoscape-cose-bilkent": "^4.1.0", "cytoscape-fcose": "^2.2.0", "d3": "^7.9.0", "d3-sankey": "^0.12.3", - "dagre-d3-es": "7.0.11", - "dayjs": "^1.11.10", - "dompurify": "^3.2.1", - "katex": "^0.16.9", + "dagre-d3-es": "7.0.13", + "dayjs": "^1.11.18", + "dompurify": "^3.2.5", + "katex": "^0.16.22", "khroma": "^2.1.0", "lodash-es": "^4.17.21", - "marked": "^13.0.2", + "marked": "^16.2.1", "roughjs": "^4.6.6", - "stylis": "^4.3.1", + "stylis": "^4.3.6", "ts-dedent": "^2.2.0", - "uuid": "^9.0.1" + "uuid": "^11.1.0" } }, "node_modules/mermaid/node_modules/marked": { - "version": "13.0.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-13.0.3.tgz", - "integrity": "sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA==", + "version": "16.4.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-16.4.2.tgz", + "integrity": "sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==", "license": "MIT", "optional": true, "bin": { "marked": "bin/marked.js" }, "engines": { - "node": ">= 18" - } - }, - "node_modules/mermaid/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" + "node": ">= 20" } }, "node_modules/methods": { @@ -13223,6 +13395,7 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -13236,6 +13409,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -13248,6 +13422,7 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -13260,6 +13435,7 @@ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -13269,6 +13445,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -13281,6 +13458,7 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -13347,6 +13525,7 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -13375,18 +13554,18 @@ } }, "node_modules/minipass-fetch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.1.tgz", + "integrity": "sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==", "dev": true, "license": "MIT", "dependencies": { "minipass": "^7.0.3", "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" + "minizlib": "^3.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" }, "optionalDependencies": { "encoding": "^0.1.13" @@ -13492,44 +13671,24 @@ "license": "ISC" }, "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", "dev": true, "license": "MIT", "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" + "minipass": "^7.1.2" }, "engines": { - "node": ">=8" + "node": ">= 18" } }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -13538,16 +13697,16 @@ } }, "node_modules/mlly": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", - "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz", + "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", "license": "MIT", "optional": true, "dependencies": { - "acorn": "^8.14.0", - "pathe": "^2.0.1", - "pkg-types": "^1.3.0", - "ufo": "^1.5.4" + "acorn": "^8.15.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.1" } }, "node_modules/mri": { @@ -13555,14 +13714,15 @@ "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/mrmime": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", - "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", "dev": true, "license": "MIT", "engines": { @@ -13572,12 +13732,13 @@ "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==" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, "node_modules/msgpackr": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.2.tgz", - "integrity": "sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==", + "version": "1.11.8", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.8.tgz", + "integrity": "sha512-bC4UGzHhVvgDNS7kn9tV8fAucIYUBuGojcaLiz7v+P63Lmtm0Xeji8B/8tYKddALXxJLpwIeBmUN3u64C4YkRA==", "dev": true, "license": "MIT", "optional": true, @@ -13633,9 +13794,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "dev": true, "funding": [ { @@ -13655,13 +13816,15 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/needle": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "iconv-lite": "^0.6.3", @@ -13679,6 +13842,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -13688,10 +13852,11 @@ } }, "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -13700,12 +13865,14 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ngx-highlightjs": { "version": "12.0.0", "resolved": "https://registry.npmjs.org/ngx-highlightjs/-/ngx-highlightjs-12.0.0.tgz", "integrity": "sha512-1lSUv3hNpriHewwe8zz8eMX6q/Tcq1ZCsJ1GitBsr86y39e+q4U/s8LKE7rvK6SVAbQlUuopdbbKWR0zjihjLg==", + "license": "MIT", "dependencies": { "highlight.js": "^11.9.0", "tslib": "^2.3.0" @@ -13716,9 +13883,9 @@ } }, "node_modules/ngx-markdown": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/ngx-markdown/-/ngx-markdown-19.1.0.tgz", - "integrity": "sha512-Zl9M6DzM1DOX54Nj8+okx9v6GVsQVE/D7jtkjlYYWLqMaW78ZThwQ9XlCbn3OpK0UOOpJnminRRlZERAeWXcCA==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/ngx-markdown/-/ngx-markdown-19.1.1.tgz", + "integrity": "sha512-R0SGsSa8QMLS4mXMWjB7EoK7Vab30QeGA+Y4zeeb4yb+YdAqg0hU/XFkBiQefJx/JxrtxTWJAu1b97LEGscluQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -13728,7 +13895,7 @@ "emoji-toolkit": ">= 8.0.0 < 10.0.0", "katex": "^0.16.0", "mermaid": ">= 10.6.0 < 12.0.0", - "prismjs": "^1.28.0" + "prismjs": "^1.30.0" }, "peerDependencies": { "@angular/common": "^19.0.0", @@ -13740,9 +13907,10 @@ } }, "node_modules/ngx-mat-select-search": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/ngx-mat-select-search/-/ngx-mat-select-search-7.0.8.tgz", - "integrity": "sha512-WyVA98Q2v03pPsH81C/yQaYa57sp7psBblZr4TFC+K6/zc9ZOkIvzab3PTjwiI1FwyeI1pQpvHRag6YeoAyjDg==", + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/ngx-mat-select-search/-/ngx-mat-select-search-7.0.10.tgz", + "integrity": "sha512-aygVGuOVJKfY8cQuOinz36sROEMaj2KU0IXB1f8VvKjbRAet5y5RAojo3ElnHR2FPaMQ6IMbp563kNyv2I4XrQ==", + "license": "MIT", "dependencies": { "tslib": "^2.4.0" }, @@ -13751,9 +13919,10 @@ } }, "node_modules/ngx-toastr": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-19.0.0.tgz", - "integrity": "sha512-6pTnktwwWD+kx342wuMOWB4+bkyX9221pAgGz3SHOJH0/MI9erLucS8PeeJDFwbUYyh75nQ6AzVtolgHxi52dQ==", + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-19.1.0.tgz", + "integrity": "sha512-Qa7Kg7QzGKNtp1v04hu3poPKKx8BGBD/Onkhm6CdH5F0vSMdq+BdR/f8DTpZnGFksW891tAFufpiWb9UZX+3vg==", + "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, @@ -13766,7 +13935,8 @@ "node_modules/node-abort-controller": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", - "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==" + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", + "license": "MIT" }, "node_modules/node-addon-api": { "version": "6.1.0", @@ -13780,6 +13950,7 @@ "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==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -13796,9 +13967,9 @@ } }, "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.3.tgz", + "integrity": "sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==", "dev": true, "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { @@ -13806,28 +13977,28 @@ } }, "node_modules/node-gyp": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.2.0.tgz", - "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==", + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-11.5.0.tgz", + "integrity": "sha512-ra7Kvlhxn5V9Slyus0ygMa2h+UqExPqUIkfk7Pc8QTLT956JLSy51uWFwHtIYy0vI8cB4BDhc/S03+880My/LQ==", "dev": true, "license": "MIT", "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", - "glob": "^10.3.10", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^13.0.0", - "nopt": "^7.0.0", - "proc-log": "^4.1.0", + "make-fetch-happen": "^14.0.3", + "nopt": "^8.0.0", + "proc-log": "^5.0.0", "semver": "^7.3.5", - "tar": "^6.2.1", - "which": "^4.0.0" + "tar": "^7.4.3", + "tinyglobby": "^0.2.12", + "which": "^5.0.0" }, "bin": { "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/node-gyp-build-optional-packages": { @@ -13846,6 +14017,16 @@ "node-gyp-build-optional-packages-test": "build-test.js" } }, + "node_modules/node-gyp/node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, "node_modules/node-gyp/node_modules/isexe": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", @@ -13856,20 +14037,27 @@ "node": ">=16" } }, - "node_modules/node-gyp/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "node_modules/node-gyp/node_modules/tar": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.2.tgz", + "integrity": "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18" } }, "node_modules/node-gyp/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", "dev": true, "license": "ISC", "dependencies": { @@ -13879,42 +14067,38 @@ "node-which": "bin/which.js" }, "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/node-gyp/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" } }, "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", - "dev": true + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" }, "node_modules/nopt": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", - "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz", + "integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==", "dev": true, "license": "ISC", "dependencies": { - "abbrev": "^2.0.0" + "abbrev": "^3.0.0" }, "bin": { "nopt": "bin/nopt.js" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/normalize-package-data": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-7.0.0.tgz", - "integrity": "sha512-k6U0gKRIuNCTkwHGZqblCfLfBRh+w1vI6tBo+IeJwq2M8FUiOqhX7GH+GArQGScA7azd1WfyRCvxoXDO3hQDIA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^8.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, "engines": { "node": "^18.17.0 || >=20.5.0" } @@ -13924,6 +14108,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -13933,6 +14118,7 @@ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -13951,9 +14137,9 @@ } }, "node_modules/npm-install-checks": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-7.1.1.tgz", - "integrity": "sha512-u6DCwbow5ynAX5BdiHQ9qvexme4U3qHW3MWe5NqH+NeBm0LbiH6zvGjNNew1fY+AZZUtVHbOPF3j7mJxbUzpXg==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-7.1.2.tgz", + "integrity": "sha512-z9HJBCYw9Zr8BqXcllKIs5nI+QggAImbBdHphOzVYrz2CB4iQ6FzWyKmlqDZua+51nAu7FcemlbTc9VgQN5XDQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -13974,9 +14160,9 @@ } }, "node_modules/npm-package-arg": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.0.tgz", - "integrity": "sha512-ZTE0hbwSdTNL+Stx2zxSqdu2KZfNDcrtrLdIk7XGnQFYBWYDho/ORvXtn5XEePcL3tFpGjHCV3X3xrtDh7eZ+A==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.2.tgz", + "integrity": "sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==", "dev": true, "license": "ISC", "dependencies": { @@ -14038,123 +14224,6 @@ "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm-registry-fetch/node_modules/@npmcli/agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", - "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.3" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", - "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/agent": "^3.0.0", - "cacache": "^19.0.1", - "http-cache-semantics": "^4.1.1", - "minipass": "^7.0.2", - "minipass-fetch": "^4.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^1.0.0", - "proc-log": "^5.0.0", - "promise-retry": "^2.0.1", - "ssri": "^12.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/minipass-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.0.tgz", - "integrity": "sha512-2v6aXUXwLP1Epd/gc32HAMIWoczx+fZwEPRHm/VwtrJzRGwR1qGZXEYV3Zp8ZjjbwaZhMrM6uHV4KVkk+XCc2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^3.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/npm-registry-fetch/node_modules/minizlib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", - "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/npm-registry-fetch/node_modules/negotiator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/npm-registry-fetch/node_modules/rimraf": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", - "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -14179,10 +14248,14 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -14199,6 +14272,7 @@ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -14207,9 +14281,9 @@ } }, "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", "dev": true, "license": "MIT", "engines": { @@ -14221,20 +14295,22 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "dev": true, + "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "mimic-function": "^5.0.0" }, "engines": { - "node": ">=6" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -14260,17 +14336,18 @@ } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -14281,6 +14358,7 @@ "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, + "license": "MIT", "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", @@ -14299,143 +14377,123 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/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==", + "node_modules/ora/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, + "license": "MIT", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/ora/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "restore-cursor": "^3.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=8" } }, - "node_modules/ora/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==", + "node_modules/ora/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/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==", - "dev": true - }, - "node_modules/ora/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==", + "node_modules/ora/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, "engines": { "node": ">=8" } }, - "node_modules/ora/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==", + "node_modules/ora/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, + "license": "ISC" + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/ordered-binary": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.3.tgz", - "integrity": "sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.6.1.tgz", + "integrity": "sha512-QkCdPooczexPLiXIrbVOPYkR3VO3T6v2OyKRkR1Xbhpy7/LAVXwahnRCgRp78Oe/Ehf0C/HATAxfSr6eA1oX+w==", "dev": true, "license": "MIT", "optional": true }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "license": "MIT", "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "yocto-queue": "^0.1.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-limit/node_modules/yocto-queue": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", - "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", - "dev": true, - "license": "MIT", "engines": { - "node": ">=12.20" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "license": "MIT", "dependencies": { - "p-limit": "^4.0.0" + "p-limit": "^3.0.2" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-map": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.2.tgz", - "integrity": "sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz", + "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==", "dev": true, "license": "MIT", "engines": { @@ -14473,10 +14531,17 @@ "node": ">= 4" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/package-manager-detector": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.9.tgz", - "integrity": "sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz", + "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==", "license": "MIT", "optional": true }, @@ -14515,13 +14580,15 @@ "node_modules/pako": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "license": "(MIT AND Zlib)" }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -14534,6 +14601,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -14551,30 +14619,26 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/parse-json/node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/parse-node-version": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "devOptional": true, + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", "dependencies": { - "entities": "^4.4.0" + "entities": "^6.0.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" @@ -14608,11 +14672,24 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -14629,6 +14706,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -14638,6 +14716,7 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -14647,6 +14726,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -14655,32 +14735,32 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-scurry": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", - "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "engines": { - "node": "14 || >=16.14" - } + "license": "ISC" }, "node_modules/path-to-regexp": { "version": "0.1.12", @@ -14689,6 +14769,19 @@ "dev": true, "license": "MIT" }, + "node_modules/path-type": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/pathe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", @@ -14700,13 +14793,15 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -14719,14 +14814,15 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/piscina": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.7.0.tgz", - "integrity": "sha512-b8hvkpp9zS0zsfa939b/jXbe64Z2gZv0Ha7FYPNUiDIB1y2AtxcOZdfP8xN8HFjUaqQiT9gRlfjAsoL8vdJ1Iw==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.8.0.tgz", + "integrity": "sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA==", "dev": true, "license": "MIT", "optionalDependencies": { @@ -14749,6 +14845,94 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/pkg-dir/node_modules/yocto-queue": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/pkg-types": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", @@ -14780,9 +14964,9 @@ } }, "node_modules/postcss": { - "version": "8.4.49", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", - "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", + "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", "dev": true, "funding": [ { @@ -14800,7 +14984,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", + "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -14813,6 +14997,7 @@ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.1.tgz", "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", "dev": true, + "license": "MIT", "dependencies": { "cosmiconfig": "^9.0.0", "jiti": "^1.20.0", @@ -14851,6 +15036,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", "dev": true, + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -14859,13 +15045,14 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", - "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", "dev": true, + "license": "MIT", "dependencies": { "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", + "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.1.0" }, "engines": { @@ -14876,12 +15063,13 @@ } }, "node_modules/postcss-modules-scope": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", - "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", "dev": true, + "license": "ISC", "dependencies": { - "postcss-selector-parser": "^6.0.4" + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": "^10 || ^12 || >= 14" @@ -14895,6 +15083,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, + "license": "ISC", "dependencies": { "icss-utils": "^5.0.0" }, @@ -14906,10 +15095,11 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "dev": true, + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -14921,130 +15111,81 @@ "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", - "dev": true, - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/pretty-quick": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-4.0.0.tgz", - "integrity": "sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ==", - "dev": true, - "dependencies": { - "execa": "^5.1.1", - "find-up": "^5.0.0", - "ignore": "^5.3.0", - "mri": "^1.2.0", - "picocolors": "^1.0.0", - "picomatch": "^3.0.1", - "tslib": "^2.6.2" - }, - "bin": { - "pretty-quick": "lib/cli.mjs" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "prettier": "^3.0.0" - } - }, - "node_modules/pretty-quick/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" }, - "node_modules/pretty-quick/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.8.0" } }, - "node_modules/pretty-quick/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/prettier": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", + "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/pretty-quick/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/pretty-quick": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-4.2.2.tgz", + "integrity": "sha512-uAh96tBW1SsD34VhhDmWuEmqbpfYc/B3j++5MC/6b3Cb8Ow7NJsvKFhg0eoGu2xXX+o9RkahkTK6sUdd8E7g5w==", "dev": true, + "license": "MIT", "dependencies": { - "p-limit": "^3.0.2" + "@pkgr/core": "^0.2.7", + "ignore": "^7.0.5", + "mri": "^1.2.0", + "picocolors": "^1.1.1", + "picomatch": "^4.0.2", + "tinyexec": "^0.3.2", + "tslib": "^2.8.1" + }, + "bin": { + "pretty-quick": "lib/cli.mjs" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/pretty-quick" + }, + "peerDependencies": { + "prettier": "^3.0.0" } }, - "node_modules/pretty-quick/node_modules/picomatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", - "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "node_modules/pretty-quick/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "node": ">= 4" } }, + "node_modules/pretty-quick/node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, "node_modules/prismjs": { "version": "1.30.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", @@ -15068,14 +15209,8 @@ "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true, - "license": "ISC" + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" }, "node_modules/promise-retry": { "version": "2.0.1", @@ -15120,33 +15255,34 @@ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true, + "license": "MIT", "optional": true }, "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true, - "engines": { - "node": ">=6" - } + "license": "MIT" }, "node_modules/qjobs": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.9" } }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", + "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.6" + "side-channel": "^1.1.0" }, "engines": { "node": ">=0.6" @@ -15159,6 +15295,7 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "license": "MIT", "dependencies": { "decode-uri-component": "^0.2.2", "filter-obj": "^1.1.0", @@ -15190,13 +15327,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } @@ -15206,30 +15345,46 @@ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", "dev": true, + "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8" } }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "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==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -15240,27 +15395,17 @@ } }, "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/readdirp/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">= 14.18.0" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, "node_modules/reflect-metadata": { @@ -15278,9 +15423,9 @@ "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", "dev": true, "license": "MIT", "dependencies": { @@ -15297,35 +15442,26 @@ "dev": true, "license": "MIT" }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, "node_modules/regex-parser": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", - "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", - "dev": true + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.1.tgz", + "integrity": "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==", + "dev": true, + "license": "MIT" }, "node_modules/regexpu-core": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", - "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", "dev": true, "license": "MIT", "dependencies": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", + "regenerate-unicode-properties": "^10.2.2", "regjsgen": "^0.8.0", - "regjsparser": "^0.12.0", + "regjsparser": "^0.13.0", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" + "unicode-match-property-value-ecmascript": "^2.2.1" }, "engines": { "node": ">=4" @@ -15339,13 +15475,13 @@ "license": "MIT" }, "node_modules/regjsparser": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", - "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~3.0.2" + "jsesc": "~3.1.0" }, "bin": { "regjsparser": "bin/parser" @@ -15356,6 +15492,7 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -15365,6 +15502,7 @@ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -15373,30 +15511,46 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, + "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/resolve-url-loader": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", "dev": true, + "license": "MIT", "dependencies": { "adjust-sourcemap-loader": "^4.0.0", "convert-source-map": "^1.7.0", @@ -15413,6 +15567,7 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -15427,29 +15582,28 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, + "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/restore-cursor/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, "node_modules/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", @@ -15461,10 +15615,11 @@ } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -15474,13 +15629,16 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -15492,10 +15650,11 @@ } }, "node_modules/rimraf/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==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -15505,7 +15664,9 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -15526,6 +15687,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -15541,9 +15703,9 @@ "optional": true }, "node_modules/rollup": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.26.0.tgz", - "integrity": "sha512-ilcl12hnWonG8f+NxU6BlgysVA0gvY2l8N0R84S1HcINbW20bvwuCngJkkInV6LXhwRpucsW5k1ovDwEdBVrNg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.8.tgz", + "integrity": "sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==", "dev": true, "license": "MIT", "dependencies": { @@ -15557,27 +15719,35 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.26.0", - "@rollup/rollup-android-arm64": "4.26.0", - "@rollup/rollup-darwin-arm64": "4.26.0", - "@rollup/rollup-darwin-x64": "4.26.0", - "@rollup/rollup-freebsd-arm64": "4.26.0", - "@rollup/rollup-freebsd-x64": "4.26.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.26.0", - "@rollup/rollup-linux-arm-musleabihf": "4.26.0", - "@rollup/rollup-linux-arm64-gnu": "4.26.0", - "@rollup/rollup-linux-arm64-musl": "4.26.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.26.0", - "@rollup/rollup-linux-riscv64-gnu": "4.26.0", - "@rollup/rollup-linux-s390x-gnu": "4.26.0", - "@rollup/rollup-linux-x64-gnu": "4.26.0", - "@rollup/rollup-linux-x64-musl": "4.26.0", - "@rollup/rollup-win32-arm64-msvc": "4.26.0", - "@rollup/rollup-win32-ia32-msvc": "4.26.0", - "@rollup/rollup-win32-x64-msvc": "4.26.0", + "@rollup/rollup-android-arm-eabi": "4.34.8", + "@rollup/rollup-android-arm64": "4.34.8", + "@rollup/rollup-darwin-arm64": "4.34.8", + "@rollup/rollup-darwin-x64": "4.34.8", + "@rollup/rollup-freebsd-arm64": "4.34.8", + "@rollup/rollup-freebsd-x64": "4.34.8", + "@rollup/rollup-linux-arm-gnueabihf": "4.34.8", + "@rollup/rollup-linux-arm-musleabihf": "4.34.8", + "@rollup/rollup-linux-arm64-gnu": "4.34.8", + "@rollup/rollup-linux-arm64-musl": "4.34.8", + "@rollup/rollup-linux-loongarch64-gnu": "4.34.8", + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.8", + "@rollup/rollup-linux-riscv64-gnu": "4.34.8", + "@rollup/rollup-linux-s390x-gnu": "4.34.8", + "@rollup/rollup-linux-x64-gnu": "4.34.8", + "@rollup/rollup-linux-x64-musl": "4.34.8", + "@rollup/rollup-win32-arm64-msvc": "4.34.8", + "@rollup/rollup-win32-ia32-msvc": "4.34.8", + "@rollup/rollup-win32-x64-msvc": "4.34.8", "fsevents": "~2.3.2" } }, + "node_modules/rollup/node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, "node_modules/roughjs": { "version": "4.6.6", "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz", @@ -15592,9 +15762,9 @@ } }, "node_modules/run-applescript": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", - "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", "dev": true, "license": "MIT", "engines": { @@ -15623,6 +15793,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -15635,9 +15806,10 @@ "optional": true }, "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } @@ -15660,18 +15832,38 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/sass": { - "version": "1.80.7", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.80.7.tgz", - "integrity": "sha512-MVWvN0u5meytrSjsU7AWsbhoXi1sc58zADXFllfZzbsBT1GHjjar6JwBINYPRrkx/zqnQ6uqbQuHgE95O+C+eQ==", + "version": "1.85.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.85.0.tgz", + "integrity": "sha512-3ToiC1xZ1Y8aU7+CkgCI/tqyuPXEmYGJXO7H4uqp0xkLXUqp88rQQ4j1HmP37xSJLbCJPaIiv+cT1y+grssrww==", "dev": true, "license": "MIT", "dependencies": { @@ -15690,9 +15882,9 @@ } }, "node_modules/sass-loader": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.3.tgz", - "integrity": "sha512-gosNorT1RCkuCMyihv6FBRR7BMV06oKRAs+l4UMp1mlcVg9rWN6KMmUj3igjQwmYys4mDP3etEYJgiHRbgHCHA==", + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.5.tgz", + "integrity": "sha512-oL+CMBXrj6BZ/zOq4os+UECPL+bWqt6OAC6DWS8Ln8GZRcMDjlJ4JC3FBDuHJdYaFWIdKNIBYmtZtK2MaMkNIw==", "dev": true, "license": "MIT", "dependencies": { @@ -15730,48 +15922,20 @@ } } }, - "node_modules/sass/node_modules/chokidar": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", - "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/sass/node_modules/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.3.tgz", + "integrity": "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==", "dev": true, + "license": "BlueOak-1.0.0", "optional": true }, "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -15779,11 +15943,29 @@ "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, "node_modules/select": { @@ -15815,9 +15997,9 @@ } }, "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, "license": "ISC", "bin": { @@ -15828,25 +16010,25 @@ } }, "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", "dev": true, "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "range-parser": "~1.2.1", - "statuses": "2.0.1" + "statuses": "~2.0.2" }, "engines": { "node": ">= 0.8.0" @@ -15869,6 +16051,16 @@ "dev": true, "license": "MIT" }, + "node_modules/send/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -15883,9 +16075,9 @@ } }, "node_modules/send/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "dev": true, "license": "MIT", "engines": { @@ -15897,6 +16089,7 @@ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -15978,16 +16171,16 @@ "license": "ISC" }, "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", "dev": true, "license": "MIT", "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.19.0" + "send": "~0.19.1" }, "engines": { "node": ">= 0.8.0" @@ -16003,34 +16196,19 @@ "node": ">= 0.8" } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -16043,6 +16221,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -16055,30 +16234,92 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", "dev": true, "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -16092,6 +16333,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -16100,23 +16342,36 @@ } }, "node_modules/sigstore": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-3.0.0.tgz", - "integrity": "sha512-PHMifhh3EN4loMcHCz6l3v/luzgT3za+9f8subGgeMNjbJjzH4Ij/YoX3Gvu+kaouJRIlVdTHHCREADYf+ZteA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-3.1.0.tgz", + "integrity": "sha512-ZpzWAFHIFqyFE56dXqgX/DkDRZdz+rRcjoIk/RQU4IX0wiCv1l8S7ZrXDHcCc+uaf+6o7w3h2l3g6GYG5TKN9Q==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^3.0.0", + "@sigstore/bundle": "^3.1.0", "@sigstore/core": "^2.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "@sigstore/sign": "^3.0.0", - "@sigstore/tuf": "^3.0.0", - "@sigstore/verify": "^2.0.0" + "@sigstore/protobuf-specs": "^0.4.0", + "@sigstore/sign": "^3.1.0", + "@sigstore/tuf": "^3.1.0", + "@sigstore/verify": "^2.1.0" }, "engines": { "node": "^18.17.0 || >=20.5.0" } }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/slice-ansi": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", @@ -16135,9 +16390,9 @@ } }, "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", "engines": { @@ -16147,19 +16402,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -16172,16 +16414,16 @@ } }, "node_modules/socket.io": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.0.tgz", - "integrity": "sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==", + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.3.tgz", + "integrity": "sha512-2Dd78bqzzjE6KPkD5fHZmDAKRNe3J15q+YHDrIsy9WEkqttc7GY+kT9OBLSMaPbQaEd0x1BjcmtMtXkfpc+T5A==", "dev": true, "license": "MIT", "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", "cors": "~2.8.5", - "debug": "~4.3.2", + "debug": "~4.4.1", "engine.io": "~6.6.0", "socket.io-adapter": "~2.5.2", "socket.io-parser": "~4.2.4" @@ -16191,23 +16433,25 @@ } }, "node_modules/socket.io-adapter": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", - "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.6.tgz", + "integrity": "sha512-DkkO/dz7MGln0dHn5bmN3pPy+JmywNICWrJqVWiVOyvXjWQFIv9c2h24JrQLLFJ2aQVQf/Cvl1vblnd4r2apLQ==", "dev": true, + "license": "MIT", "dependencies": { - "debug": "~4.3.4", - "ws": "~8.17.1" + "debug": "~4.4.1", + "ws": "~8.18.3" } }, "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.5.tgz", + "integrity": "sha512-bPMmpy/5WWKHea5Y/jYAP6k74A+hvmRCQaJuJB6I/ML5JZq/KfNieUVo/3Mh7SAqn7TyFdIo6wqYHInG1MU1bQ==", "dev": true, + "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" + "debug": "~4.4.1" }, "engines": { "node": ">=10.0.0" @@ -16225,14 +16469,24 @@ "websocket-driver": "^0.7.4" } }, + "node_modules/sockjs/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", "dev": true, "license": "MIT", "dependencies": { - "ip-address": "^9.0.5", + "ip-address": "^10.0.1", "smart-buffer": "^4.2.0" }, "engines": { @@ -16241,13 +16495,13 @@ } }, "node_modules/socks-proxy-agent": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", - "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^7.1.1", + "agent-base": "^7.1.2", "debug": "^4.3.4", "socks": "^2.8.3" }, @@ -16260,6 +16514,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">= 8" } @@ -16279,6 +16534,7 @@ "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", "dev": true, + "license": "MIT", "dependencies": { "iconv-lite": "^0.6.3", "source-map-js": "^1.0.2" @@ -16299,6 +16555,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -16311,6 +16568,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -16321,6 +16579,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -16355,9 +16614,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.20", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", - "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", + "version": "3.0.22", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", + "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", "dev": true, "license": "CC0-1.0" }, @@ -16397,6 +16656,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "license": "MIT", "engines": { "node": ">=6" } @@ -16404,7 +16664,8 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" }, "node_modules/ssri": { "version": "12.0.0", @@ -16424,6 +16685,7 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -16432,6 +16694,7 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/stream/-/stream-0.0.2.tgz", "integrity": "sha512-gCq3NDI2P35B2n6t76YJuOp7d6cN/C7Rt0577l91wllh0sY9ZBuw9KaSGqH/b0hzn3CWWJbpbW0W0WvQ1H/Q7g==", + "license": "MIT", "dependencies": { "emitter-component": "^1.1.1" } @@ -16439,13 +16702,15 @@ "node_modules/stream-transform": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-0.1.2.tgz", - "integrity": "sha512-3HXId/0W8sktQnQM6rOZf2LuDDMbakMgAjpViLk758/h0br+iGqZFFfUxxJSqEvGvT742PyFr4v/TBXUtowdCg==" + "integrity": "sha512-3HXId/0W8sktQnQM6rOZf2LuDDMbakMgAjpViLk758/h0br+iGqZFFfUxxJSqEvGvT742PyFr4v/TBXUtowdCg==", + "license": "BSD-3-Clause" }, "node_modules/streamroller": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", "dev": true, + "license": "MIT", "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", @@ -16455,42 +16720,11 @@ "node": ">=8.0" } }, - "node_modules/streamroller/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/streamroller/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/streamroller/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/strict-uri-encode": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "license": "MIT", "engines": { "node": ">=4" } @@ -16500,6 +16734,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } @@ -16508,6 +16743,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string-to-stream/-/string-to-stream-1.1.1.tgz", "integrity": "sha512-QySF2+3Rwq0SdO3s7BAp4x+c3qsClpPQ6abAmb0DGViiSBAkT5kL6JT2iyzEVP+T1SmzHrQD1TwlP9QAHCc+Sw==", + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.1.0" @@ -16517,6 +16753,7 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -16530,28 +16767,34 @@ "node_modules/string-to-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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/string-to-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==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/string-width-cjs": { @@ -16560,6 +16803,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -16569,11 +16813,39 @@ "node": ">=8" } }, - "node_modules/strip-ansi": { + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -16581,12 +16853,29 @@ "node": ">=8" } }, + "node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -16594,13 +16883,14 @@ "node": ">=8" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/strip-json-comments": { @@ -16608,6 +16898,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -16622,11 +16913,25 @@ "license": "MIT", "optional": true }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -16639,17 +16944,23 @@ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } }, "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/tar": { @@ -16706,6 +17017,33 @@ "node": ">=8" } }, + "node_modules/tar/node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/tar/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -16727,9 +17065,9 @@ "license": "ISC" }, "node_modules/terser": { - "version": "5.36.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", - "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", + "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -16746,16 +17084,17 @@ } }, "node_modules/terser-webpack-plugin": { - "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==", + "version": "5.3.16", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", + "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", + "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" }, "engines": { "node": ">= 10.13.0" @@ -16779,64 +17118,19 @@ } } }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/thingies": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", - "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.5.0.tgz", + "integrity": "sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==", "dev": true, - "license": "Unlicense", + "license": "MIT", "engines": { "node": ">=10.18" }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, "peerDependencies": { "tslib": "^2" } @@ -16856,17 +17150,51 @@ "optional": true }, "node_modules/tinyexec": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", "license": "MIT", - "optional": true + "optional": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, "node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", + "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.14" } @@ -16876,6 +17204,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -16888,6 +17217,7 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6" } @@ -16895,12 +17225,13 @@ "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" }, "node_modules/tree-dump": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", - "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz", + "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -16919,20 +17250,22 @@ "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, + "license": "MIT", "bin": { "tree-kill": "cli.js" } }, "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", + "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=4.2.0" + "typescript": ">=4.8.4" } }, "node_modules/ts-dedent": { @@ -16950,6 +17283,7 @@ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, + "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -16991,126 +17325,22 @@ "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/tuf-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-3.0.1.tgz", - "integrity": "sha512-+68OP1ZzSF84rTckf3FA95vJ1Zlx/uaXyiiKyPd1pA4rZNkpEvDAKmsu1xUSmbF/chCRYgZ6UZkDwC7PmzmAyA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-3.1.0.tgz", + "integrity": "sha512-3T3T04WzowbwV2FDiGXBbr81t64g1MUGGJRgT4x5o97N+8ArdhVCAF9IxFrxuSJmM3E5Asn7nKHkao0ibcZXAg==", "dev": true, "license": "MIT", "dependencies": { "@tufjs/models": "3.0.1", - "debug": "^4.3.6", - "make-fetch-happen": "^14.0.1" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/tuf-js/node_modules/@npmcli/agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", - "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.3" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/tuf-js/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/tuf-js/node_modules/make-fetch-happen": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", - "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/agent": "^3.0.0", - "cacache": "^19.0.1", - "http-cache-semantics": "^4.1.1", - "minipass": "^7.0.2", - "minipass-fetch": "^4.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^1.0.0", - "proc-log": "^5.0.0", - "promise-retry": "^2.0.1", - "ssri": "^12.0.0" - }, - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/tuf-js/node_modules/minipass-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.0.tgz", - "integrity": "sha512-2v6aXUXwLP1Epd/gc32HAMIWoczx+fZwEPRHm/VwtrJzRGwR1qGZXEYV3Zp8ZjjbwaZhMrM6uHV4KVkk+XCc2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^3.0.1" + "debug": "^4.4.1", + "make-fetch-happen": "^14.0.3" }, "engines": { "node": "^18.17.0 || >=20.5.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/tuf-js/node_modules/minizlib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", - "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/tuf-js/node_modules/negotiator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/tuf-js/node_modules/rimraf": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", - "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, "node_modules/type-check": { @@ -17118,6 +17348,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -17125,24 +17356,12 @@ "node": ">= 0.8.0" } }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "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==", "dev": true, + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -17155,12 +17374,13 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -17172,9 +17392,9 @@ } }, "node_modules/ua-parser-js": { - "version": "0.7.37", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz", - "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", + "version": "0.7.41", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.41.tgz", + "integrity": "sha512-O3oYyCMPYgNNHuO7Jjk3uacJWZF8loBgwrfd/5LE/HyZ3lUIOdniQ7DNXJcIgZbwioZxk0fLfI4EVnetdiX5jg==", "dev": true, "funding": [ { @@ -17190,22 +17410,27 @@ "url": "https://github.com/sponsors/faisalman" } ], + "license": "MIT", + "bin": { + "ua-parser-js": "script/cli.js" + }, "engines": { "node": "*" } }, "node_modules/ufo": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", - "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", + "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", "license": "MIT", "optional": true }, "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "dev": true + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.1", @@ -17232,9 +17457,9 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", "dev": true, "license": "MIT", "engines": { @@ -17242,9 +17467,9 @@ } }, "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", "dev": true, "license": "MIT", "engines": { @@ -17252,10 +17477,11 @@ } }, "node_modules/unicorn-magic": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -17289,19 +17515,30 @@ "node": "^18.17.0 || >=20.5.0" } }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "dev": true, "funding": [ { @@ -17320,7 +17557,7 @@ "license": "MIT", "dependencies": { "escalade": "^3.2.0", - "picocolors": "^1.1.0" + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -17334,39 +17571,57 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "license": "MIT", + "optional": true, "bin": { - "uuid": "dist/bin/uuid" + "uuid": "dist/esm/bin/uuid" } }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/validate-npm-package-license": { "version": "3.0.4", @@ -17380,9 +17635,9 @@ } }, "node_modules/validate-npm-package-name": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.0.tgz", - "integrity": "sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.2.tgz", + "integrity": "sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ==", "dev": true, "license": "ISC", "engines": { @@ -17394,26 +17649,30 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/vite": { - "version": "5.4.12", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.12.tgz", - "integrity": "sha512-KwUaKB27TvWwDJr1GjjWthLMATbGEbeWYZIbGZ5qFIsgPP3vWzLu4cVooqhm5/Z2SPDUMjyPVjTztm5tYKwQxA==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", + "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -17422,19 +17681,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", - "terser": "^5.4.0" + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -17455,30 +17720,19 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, - "node_modules/vite/node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "node_modules/vite/node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz", + "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==", "cpu": [ "arm" ], @@ -17487,15 +17741,12 @@ "optional": true, "os": [ "android" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "node_modules/vite/node_modules/@rollup/rollup-android-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz", + "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==", "cpu": [ "arm64" ], @@ -17504,32 +17755,12 @@ "optional": true, "os": [ "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "node_modules/vite/node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz", + "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==", "cpu": [ "arm64" ], @@ -17538,15 +17769,12 @@ "optional": true, "os": [ "darwin" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "node_modules/vite/node_modules/@rollup/rollup-darwin-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz", + "integrity": "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==", "cpu": [ "x64" ], @@ -17555,15 +17783,12 @@ "optional": true, "os": [ "darwin" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "node_modules/vite/node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz", + "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==", "cpu": [ "arm64" ], @@ -17572,15 +17797,12 @@ "optional": true, "os": [ "freebsd" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "node_modules/vite/node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz", + "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==", "cpu": [ "x64" ], @@ -17589,15 +17811,12 @@ "optional": true, "os": [ "freebsd" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "node_modules/vite/node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz", + "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==", "cpu": [ "arm" ], @@ -17606,100 +17825,54 @@ "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "node_modules/vite/node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz", + "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==", "cpu": [ - "loong64" + "arm" ], "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "node_modules/vite/node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz", + "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==", "cpu": [ - "mips64el" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "node_modules/vite/node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz", + "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==", "cpu": [ - "ppc64" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "node_modules/vite/node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz", + "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==", "cpu": [ "riscv64" ], @@ -17708,15 +17881,12 @@ "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "node_modules/vite/node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz", + "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==", "cpu": [ "s390x" ], @@ -17725,15 +17895,12 @@ "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "node_modules/vite/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz", + "integrity": "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==", "cpu": [ "x64" ], @@ -17742,49 +17909,12 @@ "optional": true, "os": [ "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "node_modules/vite/node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz", + "integrity": "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==", "cpu": [ "x64" ], @@ -17792,16 +17922,13 @@ "license": "MIT", "optional": true, "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } + "linux" + ] }, - "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "node_modules/vite/node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz", + "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==", "cpu": [ "arm64" ], @@ -17810,15 +17937,12 @@ "optional": true, "os": [ "win32" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "node_modules/vite/node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz", + "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==", "cpu": [ "ia32" ], @@ -17827,15 +17951,12 @@ "optional": true, "os": [ "win32" - ], - "engines": { - "node": ">=12" - } + ] }, - "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "node_modules/vite/node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz", + "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==", "cpu": [ "x64" ], @@ -17844,48 +17965,80 @@ "optional": true, "os": [ "win32" + ] + }, + "node_modules/vite/node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, "engines": { - "node": ">=12" + "node": "^10 || ^12 || >=14" } }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "node_modules/vite/node_modules/rollup": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz", + "integrity": "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==", "dev": true, - "hasInstallScript": true, "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, "bin": { - "esbuild": "bin/esbuild" + "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=12" + "node": ">=18.0.0", + "npm": ">=8.0.0" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@rollup/rollup-android-arm-eabi": "4.55.1", + "@rollup/rollup-android-arm64": "4.55.1", + "@rollup/rollup-darwin-arm64": "4.55.1", + "@rollup/rollup-darwin-x64": "4.55.1", + "@rollup/rollup-freebsd-arm64": "4.55.1", + "@rollup/rollup-freebsd-x64": "4.55.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.55.1", + "@rollup/rollup-linux-arm-musleabihf": "4.55.1", + "@rollup/rollup-linux-arm64-gnu": "4.55.1", + "@rollup/rollup-linux-arm64-musl": "4.55.1", + "@rollup/rollup-linux-loong64-gnu": "4.55.1", + "@rollup/rollup-linux-loong64-musl": "4.55.1", + "@rollup/rollup-linux-ppc64-gnu": "4.55.1", + "@rollup/rollup-linux-ppc64-musl": "4.55.1", + "@rollup/rollup-linux-riscv64-gnu": "4.55.1", + "@rollup/rollup-linux-riscv64-musl": "4.55.1", + "@rollup/rollup-linux-s390x-gnu": "4.55.1", + "@rollup/rollup-linux-x64-gnu": "4.55.1", + "@rollup/rollup-linux-x64-musl": "4.55.1", + "@rollup/rollup-openbsd-x64": "4.55.1", + "@rollup/rollup-openharmony-arm64": "4.55.1", + "@rollup/rollup-win32-arm64-msvc": "4.55.1", + "@rollup/rollup-win32-ia32-msvc": "4.55.1", + "@rollup/rollup-win32-x64-gnu": "4.55.1", + "@rollup/rollup-win32-x64-msvc": "4.55.1", + "fsevents": "~2.3.2" } }, "node_modules/void-elements": { @@ -17893,6 +18046,7 @@ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -17981,6 +18135,7 @@ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, + "license": "MIT", "dependencies": { "defaults": "^1.0.3" } @@ -17996,20 +18151,21 @@ "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==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" }, "node_modules/webpack": { - "version": "5.96.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz", - "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", + "version": "5.98.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.98.0.tgz", + "integrity": "sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==", "dev": true, "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.6", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", "acorn": "^8.14.0", "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", @@ -18023,9 +18179,9 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", + "schema-utils": "^4.3.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", + "terser-webpack-plugin": "^5.3.11", "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, @@ -18076,15 +18232,16 @@ } }, "node_modules/webpack-dev-server": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.1.0.tgz", - "integrity": "sha512-aQpaN81X6tXie1FoOB7xlMfCsN19pSvRAeYUHOdFWOlhpQ/LlbfTqYwwmEDFV0h8GGuqmCmKmT+pxcUV/Nt2gQ==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.2.tgz", + "integrity": "sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==", "dev": true, "license": "MIT", "dependencies": { "@types/bonjour": "^3.5.13", "@types/connect-history-api-fallback": "^1.5.4", "@types/express": "^4.17.21", + "@types/express-serve-static-core": "^4.17.21", "@types/serve-index": "^1.9.4", "@types/serve-static": "^1.15.5", "@types/sockjs": "^0.3.36", @@ -18095,10 +18252,9 @@ "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^2.0.0", - "express": "^4.19.2", + "express": "^4.21.2", "graceful-fs": "^4.2.6", - "html-entities": "^2.4.0", - "http-proxy-middleware": "^2.0.3", + "http-proxy-middleware": "^2.0.9", "ipaddr.js": "^2.1.0", "launch-editor": "^2.6.1", "open": "^10.0.3", @@ -18133,10 +18289,48 @@ } } }, + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", - "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", + "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", "dev": true, "license": "MIT", "dependencies": { @@ -18158,26 +18352,30 @@ } } }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "node_modules/webpack-dev-server/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": ">=8.6" }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/webpack-dev-server/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "engines": { + "node": ">=8.10.0" } }, "node_modules/webpack-merge": { @@ -18185,6 +18383,7 @@ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", "dev": true, + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", @@ -18195,10 +18394,11 @@ } }, "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.13.0" } @@ -18208,6 +18408,7 @@ "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", "dev": true, + "license": "MIT", "dependencies": { "typed-assert": "^1.0.8" }, @@ -18224,36 +18425,12 @@ } } }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, "node_modules/webpack/node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -18267,6 +18444,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -18275,31 +18453,8 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } + "license": "MIT" }, "node_modules/websocket-driver": { "version": "0.7.4", @@ -18330,6 +18485,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -18340,6 +18496,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -18354,7 +18511,18 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, "node_modules/wrap-ansi": { "version": "6.2.0", @@ -18377,6 +18545,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -18389,86 +18558,129 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/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==", + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/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==", + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/wrap-ansi-cjs/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==", - "dev": true + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/wrap-ansi/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==", + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/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==", + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/wrap-ansi/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/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -18489,6 +18701,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-0.4.0.tgz", "integrity": "sha512-rJ/+/UzYCSlFNuAzGuRyYgkH2G5agdX1UQn4+5siYw9pkNC3Hu/grYNDx/dqYLreeSjnY5oKg74CMBKxJHSg6Q==", + "license": "MIT", "dependencies": { "sax": "~1.1.1" } @@ -18496,13 +18709,15 @@ "node_modules/xmldoc/node_modules/sax": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.6.tgz", - "integrity": "sha512-8zci48uUQyfqynGDSkUMD7FCJB96hwLnlZOXlgs1l3TX+LW27t3psSWKUxC0fxVgA86i8tL4NwGcY1h/6t3ESg==" + "integrity": "sha512-8zci48uUQyfqynGDSkUMD7FCJB96hwLnlZOXlgs1l3TX+LW27t3psSWKUxC0fxVgA86i8tL4NwGcY1h/6t3ESg==", + "license": "ISC" }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -18519,6 +18734,7 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -18537,15 +18753,72 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -18555,6 +18828,7 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -18563,9 +18837,9 @@ } }, "node_modules/yoctocolors-cjs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", - "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", + "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", "dev": true, "license": "MIT", "engines": { @@ -18576,9 +18850,9 @@ } }, "node_modules/zone.js": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.15.0.tgz", - "integrity": "sha512-9oxn0IIjbCZkJ67L+LkhYWRyAy7axphb3VgE2MBDlOqnmHMPWGYMxJxBYFueFq/JGY2GMwS0rU+UCLunEmy5UA==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.15.1.tgz", + "integrity": "sha512-XE96n56IQpJM7NAoXswY3XRLcWFW83xe0BiAOeMD7K5k5xecOeul3Qcpx6GqEeeHNkW5DWL5zOyTbEfB4eti8w==", "license": "MIT" } } diff --git a/matchbox-frontend/package.json b/matchbox-frontend/package.json index 44ca854cd4d..ef3d3e07e24 100644 --- a/matchbox-frontend/package.json +++ b/matchbox-frontend/package.json @@ -1,6 +1,6 @@ { "name": "matchbox", - "version": "3.9.14", + "version": "4.0.16", "license": "MIT", "scripts": { "ng": "ng", diff --git a/matchbox-server/Dockerfile b/matchbox-server/Dockerfile index e047792bf32..4a9ccb78c69 100644 --- a/matchbox-server/Dockerfile +++ b/matchbox-server/Dockerfile @@ -22,5 +22,5 @@ COPY with-ca/ca.on.oh-ereferral-econsult-0.12.0-alpha1.0.7-snapshots.tgz igs USER matchbox -ENTRYPOINT ["java", "-Xmx3072M", "-Dfhir.settings.path=config/fhir-settings.json", "-Dspring.config.additional-location=file:config/application.yaml", "-jar", "matchbox.jar"] +ENTRYPOINT ["java", "-Xmx8192M", "-Dfhir.settings.path=config/fhir-settings.json", "-Dspring.config.additional-location=file:config/application.yaml", "-jar", "matchbox.jar"] diff --git a/matchbox-server/pom.xml b/matchbox-server/pom.xml index ac8b311c586..960409a98ea 100644 --- a/matchbox-server/pom.xml +++ b/matchbox-server/pom.xml @@ -5,7 +5,7 @@ matchbox health.matchbox - 4.0.15-Infoway + 4.0.16-Infoway matchbox-server @@ -22,7 +22,6 @@ ${project.version} - org.postgresql postgresql diff --git a/matchbox-server/src/main/java/ca/uhn/fhir/jpa/validation/ValidatorResourceFetcher.java b/matchbox-server/src/main/java/ca/uhn/fhir/jpa/validation/ValidatorResourceFetcher.java index 0251b086aed..b7120b01023 100644 --- a/matchbox-server/src/main/java/ca/uhn/fhir/jpa/validation/ValidatorResourceFetcher.java +++ b/matchbox-server/src/main/java/ca/uhn/fhir/jpa/validation/ValidatorResourceFetcher.java @@ -96,7 +96,7 @@ public boolean fetchesCanonicalResource(IResourceValidator iResourceValidator, S } @Override - public Set fetchCanonicalResourceVersions(IResourceValidator validator, Object appContext, String url) { + public Set fetchCanonicalResourceVersions(IResourceValidator validator, Object appContext, String url) { return Collections.emptySet(); } } \ No newline at end of file diff --git a/matchbox-server/src/main/java/ch/ahdis/matchbox/CliContext.java b/matchbox-server/src/main/java/ch/ahdis/matchbox/CliContext.java index e77e73bce94..5537f8195ea 100644 --- a/matchbox-server/src/main/java/ch/ahdis/matchbox/CliContext.java +++ b/matchbox-server/src/main/java/ch/ahdis/matchbox/CliContext.java @@ -41,45 +41,37 @@ public class CliContext { @JsonProperty("doNative") private boolean doNative = false; - @JsonProperty("extensions") public String[] getExtensions() { return extensions; } - @JsonProperty("extensions") public CliContext setExtensions(String[] extensions) { this.extensions = extensions; return this; } - @JsonProperty("suppressWarnInfos") public String[] getSuppressWarnInfos() { return this.suppressWarnInfos; } - @JsonProperty("suppressWarnInfos") public CliContext setSuppressWarnInfos(String[] suppressWarnInfos) { this.suppressWarnInfos = suppressWarnInfos; return this; } - @JsonProperty("suppressErrors") public String[] getSuppressErrors() { return this.suppressErrors; } - @JsonProperty("suppressErrors") public CliContext setSuppressErrors(String[] suppressErrors) { this.suppressErrors = suppressErrors; return this; } - @JsonProperty("igs") public String[] getIgs() { return this.igs; } - @JsonProperty("igs") public CliContext setIgs(String[] igs) { this.igs = igs; return this; @@ -246,12 +238,10 @@ public boolean getXVersion() { @JsonProperty("llmProvider") private String llmProvider; - @JsonProperty("llmProvider") public String getLlmProvider() { return llmProvider; } - @JsonProperty("llmProvider") public void setLlmProvider(String llmProvider) { this.llmProvider = llmProvider; } @@ -259,12 +249,10 @@ public void setLlmProvider(String llmProvider) { @JsonProperty("llmModelName") private String llmModelName; - @JsonProperty("llmModelName") public String getLlmModelName() { return llmModelName; } - @JsonProperty("llmModelName") public void setLlmModelName(String llmModelName) { this.llmModelName = llmModelName; } @@ -272,12 +260,10 @@ public void setLlmModelName(String llmModelName) { @JsonProperty("llmApiKey") private String llmApiKey; - @JsonProperty("llmApiKey") public void setLlmApiKey(String llmApiKey) { this.llmApiKey = llmApiKey; } - @JsonProperty("llmApiKey") public String getLlmApiKey() { return this.llmApiKey; } @@ -285,6 +271,18 @@ public String getLlmApiKey() { @JsonProperty("check-references") private boolean checkReferences = false; + @JsonProperty("check-references-to") + private String[] checkReferencesTo = null; + + public String[] getCheckReferencesTo() { + return this.checkReferencesTo; + } + + public CliContext setCheckReferencesTo(String[] checkReferencesTo) { + this.checkReferencesTo = checkReferencesTo; + return this; + } + @JsonProperty("r5-bundle-relative-reference-policy") private String r5BundleRelativeReferencePolicy = "default"; @@ -366,172 +364,138 @@ public CliContext(CliContext other) { this.igs = other.igs; } - @JsonProperty("ig") public String getIg() { return ig; } - @JsonProperty("ig") public void setIg(String ig) { this.ig = ig; } - @JsonProperty("questionnaire") public QuestionnaireMode getQuestionnaireMode() { return questionnaireMode; } - @JsonProperty("questionnaire") public void setQuestionnaireMode(QuestionnaireMode questionnaireMode) { this.questionnaireMode = questionnaireMode; } - @JsonProperty("level") public ValidationLevel getLevel() { return level; } - @JsonProperty("level") public void setLevel(ValidationLevel level) { this.level = level; } - @JsonProperty("txServer") public String getTxServer() { return txServer; } - @JsonProperty("txServer") public void setTxServer(String txServer) { this.txServer = txServer; } - @JsonProperty("txServerCache") public boolean getTxServerCache() { return txServerCache; } - @JsonProperty("txServerCache") public void setTxServerCache(boolean txServerCache) { this.txServerCache = txServerCache; } - @JsonProperty("txLog") public String getTxLog() { return txLog; } - @JsonProperty("txLog") public void setTxLog(String txLog) { this.txLog = txLog; } - @JsonProperty("txUseEcosystem") public void setTxUseEcosystem(boolean txUseEcosystem) { this.txUseEcosystem = txUseEcosystem; } - @JsonProperty("txUseEcosystem") public boolean isTxUseEcosystem() { return txUseEcosystem; } - @JsonProperty("doNative") public boolean isDoNative() { return doNative; } - @JsonProperty("doNative") public void setDoNative(boolean doNative) { this.doNative = doNative; } - @JsonProperty("hintAboutNonMustSupport") public boolean isHintAboutNonMustSupport() { return hintAboutNonMustSupport; } - @JsonProperty("hintAboutNonMustSupport") public void setHintAboutNonMustSupport(boolean hintAboutNonMustSupport) { this.hintAboutNonMustSupport = hintAboutNonMustSupport; } - @JsonProperty("recursive") public boolean isRecursive() { return recursive; } - @JsonProperty("recursive") public void setRecursive(boolean recursive) { this.recursive = recursive; } - @JsonProperty("showMessagesFromReferences") public boolean isShowMessagesFromReferences() { return showMessagesFromReferences; } - @JsonProperty("showMessagesFromReferences") public void setShowMessagesFromReferences(boolean showMessagesFromReferences) { this.showMessagesFromReferences = showMessagesFromReferences; } - @JsonProperty("doImplicitFHIRPathStringConversion") public boolean isDoImplicitFHIRPathStringConversion() { return doImplicitFHIRPathStringConversion; } - @JsonProperty("doImplicitFHIRPathStringConversion") public void setDoImplicitFHIRPathStringConversion(boolean doImplicitFHIRPathStringConversion) { this.doImplicitFHIRPathStringConversion = doImplicitFHIRPathStringConversion; } - @JsonProperty("htmlInMarkdownCheck") public HtmlInMarkdownCheck getHtmlInMarkdownCheck() { return htmlInMarkdownCheck; } - @JsonProperty("htmlInMarkdownCheck") public void setHtmlInMarkdownCheck(HtmlInMarkdownCheck htmlInMarkdownCheck) { this.htmlInMarkdownCheck = htmlInMarkdownCheck; } - @JsonProperty("locale") public String getLocale() { return locale; } - @JsonProperty("locale") public void setLocale(String locale) { this.locale = locale; } - @JsonProperty("mode") public EngineMode getMode() { return mode; } - @JsonProperty("mode") public void setMode(EngineMode mode) { this.mode = mode; } - @JsonProperty("canDoNative") public boolean getCanDoNative() { return canDoNative; } - @JsonProperty("canDoNative") public void setCanDoNative(boolean canDoNative) { this.canDoNative = canDoNative; } - @JsonProperty("locations") public Map getLocations() { return locations; } - @JsonProperty("locations") public void setLocations(Map locations) { this.locations = locations; } @@ -541,17 +505,14 @@ public CliContext addLocation(String profile, String location) { return this; } - @JsonProperty("lang") public String getLang() { return lang; } - @JsonProperty("lang") public void setLang(String lang) { this.lang = lang; } - @JsonProperty("snomedCT") public String getSnomedCT() { if ("intl".equals(snomedCT)) return "900000000000207008"; @@ -576,37 +537,30 @@ public String getSnomedCT() { return snomedCT; } - @JsonProperty("snomedCT") public void setSnomedCT(String snomedCT) { this.snomedCT = snomedCT; } - @JsonProperty("fhirVersion") public String getFhirVersion() { return fhirVersion; } - @JsonProperty("fhirVersion") public void setFhirVersion(String targetVer) { this.fhirVersion = targetVer; } - @JsonProperty("doDebug") public boolean isDoDebug() { return doDebug; } - @JsonProperty("doDebug") public void setDoDebug(boolean doDebug) { this.doDebug = doDebug; } - @JsonProperty("assumeValidRestReferences") public boolean isAssumeValidRestReferences() { return assumeValidRestReferences; } - @JsonProperty("assumeValidRestReferences") public void setAssumeValidRestReferences(boolean assumeValidRestReferences) { this.assumeValidRestReferences = assumeValidRestReferences; } @@ -621,52 +575,42 @@ public void setAssumeValidRestReferences(boolean assumeValidRestReferences) { // this.noInternalCaching = noInternalCaching; // } - @JsonProperty("noExtensibleBindingMessages") public boolean isNoExtensibleBindingMessages() { return noExtensibleBindingMessages; } - @JsonProperty("noExtensibleBindingMessages") public void setNoExtensibleBindingMessages(boolean noExtensibleBindingMessages) { this.noExtensibleBindingMessages = noExtensibleBindingMessages; } - @JsonProperty("noInvariants") public boolean isNoInvariants() { return noInvariants; } - @JsonProperty("noInvariants") public void setNoInvariants(boolean noInvariants) { this.noInvariants = noInvariants; } - @JsonProperty("displayIssuesAreWarnings") public boolean isDisplayIssuesAreWarnings() { return displayIssuesAreWarnings; } - @JsonProperty("displayIssuesAreWarnings") public void setDisplayIssuesAreWarnings(boolean displayIssuesAreWarnings) { this.displayIssuesAreWarnings = displayIssuesAreWarnings; } - @JsonProperty("wantInvariantsInMessages") public boolean isWantInvariantsInMessages() { return wantInvariantsInMessages; } - @JsonProperty("wantInvariantsInMessages") public void setWantInvariantsInMessages(boolean wantInvariantsInMessages) { this.wantInvariantsInMessages = wantInvariantsInMessages; } - @JsonProperty("securityChecks") public boolean isSecurityChecks() { return securityChecks; } - @JsonProperty("securityChecks") public void setSecurityChecks(boolean securityChecks) { this.securityChecks = securityChecks; } @@ -675,7 +619,6 @@ public boolean isCrumbTrails() { return crumbTrails; } - @JsonProperty("crumbTrails") public void setCrumbTrails(boolean crumbTrails) { this.crumbTrails = crumbTrails; } @@ -684,7 +627,6 @@ public boolean isForPublication() { return forPublication; } - @JsonProperty("forPublication") public void setForPublication(boolean forPublication) { this.forPublication = forPublication; } @@ -717,7 +659,6 @@ public boolean isAllowExampleUrls() { return allowExampleUrls; } - @JsonProperty("allowExampleUrls") public void setAllowExampleUrls(boolean allowExampleUrls) { this.allowExampleUrls = allowExampleUrls; } @@ -726,7 +667,6 @@ public boolean isNoUnicodeBiDiControlChars() { return noUnicodeBiDiControlChars; } - @JsonProperty("noUnicodeBiDiControlChars") public void setNoUnicodeBiDiControlChars(boolean noUnicodeBiDiControlChars) { this.noUnicodeBiDiControlChars = noUnicodeBiDiControlChars; } @@ -735,7 +675,6 @@ public String getJurisdiction() { return jurisdiction; } - @JsonProperty("jurisdiction") public void setJurisdiction(String jurisdiction) { this.jurisdiction = jurisdiction; } @@ -744,7 +683,6 @@ public boolean isCheckReferences() { return this.checkReferences; } - @JsonProperty("check-references") public void setCheckReferences(boolean checkReferences) { this.checkReferences = checkReferences; } @@ -753,7 +691,6 @@ public String getResolutionContext() { return this.resolutionContext; } - @JsonProperty("resolution-context") public void setResolutionContext(String resolutionContext) { this.resolutionContext = resolutionContext; } @@ -762,7 +699,6 @@ public boolean isDisableDefaultResourceFetcher() { return this.disableDefaultResourceFetcher; } - @JsonProperty("disableDefaultResourceFetcher") public void setDisableDefaultResourceFetcher(boolean disableDefaultResourceFetcher) { this.disableDefaultResourceFetcher = disableDefaultResourceFetcher; } @@ -771,7 +707,6 @@ public boolean isCheckIpsCodes() { return this.checkIpsCodes; } - @JsonProperty("check-ips-codes") public void setCheckIpsCodes(boolean checkIpsCodes) { this.checkIpsCodes = checkIpsCodes; } @@ -780,37 +715,30 @@ public String getBundle() { return this.bundle; } - @JsonProperty("bundle") public void setBundle(String bundle) { this.bundle = bundle; } - @JsonProperty("analyzeOutcomeWithAI") public Boolean getAnalyzeOutcomeWithAI() { return analyzeOutcomeWithAI; } - @JsonProperty("analyzeOutcomeWithAI") public void setAnalyzeOutcomeWithAI(Boolean analyzeOutcomeWithAI) { this.analyzeOutcomeWithAI = analyzeOutcomeWithAI; } - @JsonProperty("analyzeOutcomeWithAIOnError") public Boolean getAnalyzeOutcomeWithAIOnError() { return analyzeOutcomeWithAIOnError; } - @JsonProperty("analyzeOutcomeWithAIOnError") public void setAnalyzeOutcomeWithAIOnError(Boolean analyzeOutcomeWithAIOnError) { this.analyzeOutcomeWithAIOnError = analyzeOutcomeWithAIOnError; } - @JsonProperty("r5-bundle-relative-reference-policy") public String getR5BundleRelativeReferencePolicy() { return r5BundleRelativeReferencePolicy; } - @JsonProperty("r5-bundle-relative-reference-policy") public void setR5BundleRelativeReferencePolicy(String r5BundleRelativeReferencePolicy) { this.r5BundleRelativeReferencePolicy = r5BundleRelativeReferencePolicy; } @@ -864,6 +792,7 @@ public boolean equals(final Object o) { && Objects.equals(jurisdiction, that.jurisdiction) && Arrays.equals(igsPreloaded, that.igsPreloaded) && checkReferences == that.checkReferences + && Arrays.equals(checkReferencesTo, that.checkReferencesTo) && Objects.equals(resolutionContext, that.resolutionContext) && disableDefaultResourceFetcher == that.disableDefaultResourceFetcher && Objects.equals(llmProvider, that.llmProvider) @@ -918,6 +847,7 @@ public int hashCode() { onlyOneEngine, xVersion, checkReferences, + checkReferencesTo, resolutionContext, disableDefaultResourceFetcher, llmProvider, @@ -1043,6 +973,11 @@ public void addContextToExtension(final Extension ext) { // addExtension(ext, "locations", new StringType(this.locations)); addExtension(ext, "jurisdiction", new StringType(this.jurisdiction)); addExtension(ext, "check-references", new BooleanType(this.checkReferences)); + if (this.checkReferencesTo != null && this.checkReferencesTo.length > 0) { + for( var checkReferenceTo : this.checkReferencesTo) { + addExtension(ext, "check-references-to", new StringType(checkReferenceTo)); + } + } addExtension(ext, "resolution-context", new StringType(this.resolutionContext)); addExtension(ext, "r5-bundle-relative-reference-policy", new StringType(this.r5BundleRelativeReferencePolicy)); addExtension(ext, "disableDefaultResourceFetcher", new BooleanType(this.disableDefaultResourceFetcher)); diff --git a/matchbox-server/src/main/java/ch/ahdis/matchbox/packages/IgLoaderFromJpaPackageCache.java b/matchbox-server/src/main/java/ch/ahdis/matchbox/packages/IgLoaderFromJpaPackageCache.java index bdab43ad100..37a53351c7c 100644 --- a/matchbox-server/src/main/java/ch/ahdis/matchbox/packages/IgLoaderFromJpaPackageCache.java +++ b/matchbox-server/src/main/java/ch/ahdis/matchbox/packages/IgLoaderFromJpaPackageCache.java @@ -36,10 +36,13 @@ import org.hl7.fhir.convertors.factory.VersionConvertorFactory_40_50; import org.hl7.fhir.convertors.factory.VersionConvertorFactory_43_50; import org.hl7.fhir.r4.model.ConceptMap.ConceptMapGroupComponent; +import org.hl7.fhir.r5.context.CanonicalResourceManager.CanonicalResourceProxy; import org.hl7.fhir.exceptions.FHIRException; +import org.hl7.fhir.r5.context.BaseWorkerContext.ResourceProxy; import org.hl7.fhir.r5.context.SimpleWorkerContext; import org.hl7.fhir.r5.model.CanonicalResource; import org.hl7.fhir.r5.model.ImplementationGuide; +import org.hl7.fhir.r5.model.PackageInformation; import org.hl7.fhir.r5.model.Resource; import org.hl7.fhir.utilities.ByteProvider; import org.hl7.fhir.utilities.FileUtilities; @@ -176,14 +179,19 @@ public void loadIg(List igs, Map bina switch (FhirVersionEnum.forVersionString(this.getVersion())) { case R4, R4B -> { - if (src.startsWith("hl7.terminology#6.5.0")) { + if (src.startsWith("hl7.terminology#7.0.1")) { log.info("Requesting to load '{}', loading '{}' instead'", src, PACKAGE_R4_TERMINOLOGY); + loadIg(igs, binaries, PACKAGE_R4_TERMINOLOGY, recursive); + return; + } + if (src.startsWith("hl7.terminology#6.5.0")) { + log.info("Requesting to load '{}', loading '{}' instead'", src, PACKAGE_R4_TERMINOLOGY65); loadIg(igs, binaries, PACKAGE_R4_TERMINOLOGY65, recursive); return; } if (src.startsWith("hl7.terminology#6.3.0")) { - log.info("Requesting to load '{}', loading '{}' instead'", src, PACKAGE_R4_TERMINOLOGY); - loadIg(igs, binaries, PACKAGE_R4_TERMINOLOGY, recursive); + log.info("Requesting to load '{}', loading '{}' instead'", src, PACKAGE_R4_TERMINOLOGY63); + loadIg(igs, binaries, PACKAGE_R4_TERMINOLOGY63, recursive); return; } if (src.startsWith("hl7.fhir.uv.extensions#5.2.0")) { @@ -193,14 +201,19 @@ public void loadIg(List igs, Map bina } } case R5 -> { + if (src.startsWith("hl7.terminology#7.0.1")) { + log.info("Requesting to load '{}', loading '{}' instead'", src, PACKAGE_R5_TERMINOLOGY); + loadIg(igs, binaries, PACKAGE_R5_TERMINOLOGY, recursive); + return; + } if (src.startsWith("hl7.terminology#6.5.0")) { - log.info("Requesting to load '{}', loading from classpath '{}' instead'", src, PACKAGE_R5_TERMINOLOGY); + log.info("Requesting to load '{}', loading from classpath '{}' instead'", src, PACKAGE_R5_TERMINOLOGY65); loadIg(igs, binaries, PACKAGE_R5_TERMINOLOGY65, recursive); return; } if (src.startsWith("hl7.terminology#6.3.0")) { - log.info("Requesting to load '{}', loading from classpath '{}' instead'", src, PACKAGE_R5_TERMINOLOGY); - loadIg(igs, binaries, PACKAGE_R5_TERMINOLOGY, recursive); + log.info("Requesting to load '{}', loading from classpath '{}' instead'", src, PACKAGE_R5_TERMINOLOGY63); + loadIg(igs, binaries, PACKAGE_R5_TERMINOLOGY63, recursive); return; } if (src.startsWith("hl7.fhir.uv.extensions#5.2.0")) { @@ -266,7 +279,9 @@ public void loadIg(List igs, Map bina // this way we have 0.5 seconds per 100 resources (eg hl7.fhir.r4.core has 15 seconds for 3128 resources) NpmPackage pi = this.loadPackage(npmPackage.get()); + PackageInformation packageInfo = new PackageInformation(pi); getContext().getLoadedPackages().add(pi.name() + "#" + pi.version()); + try { for (String s : pi.listResources("NamingSystem", "CapabilityStatement", "CodeSystem", "ValueSet", "StructureDefinition", "Measure", "Library", "ConceptMap", "SearchParameter", "StructureMap", "Questionnaire", "OperationDefinition","ActorDefinition","Requirements")) { @@ -282,13 +297,8 @@ public void loadIg(List igs, Map bina cleanModifierExtensions((org.hl7.fhir.r5.model.ConceptMap) r); } if (r instanceof CanonicalResource) { - CanonicalResource m = (CanonicalResource) r; - String url = m.getUrl(); - if (this.getContext().hasResource(r.getClass(), url)) { - log.debug("Duplicate canonical resource: " + r.getClass().getName() + " from package " +pi.name() + "#" + pi.version() + " with url " + url); - } else { - this.getContext().cacheResource(r); - } + // go through context to replace to newer version if needed (see ahdis/matchbox#447) + this.getContext().cacheResourceFromPackage(r, packageInfo); } else { log.error("Resource is not a CanonicalResource: " + r.getClass().getName() + " from package " +pi.name() + "#" + pi.version()); } diff --git a/matchbox-server/src/main/java/ch/ahdis/matchbox/terminology/TerminologyUtils.java b/matchbox-server/src/main/java/ch/ahdis/matchbox/terminology/TerminologyUtils.java index 30747a1e8ae..9e3aca90209 100644 --- a/matchbox-server/src/main/java/ch/ahdis/matchbox/terminology/TerminologyUtils.java +++ b/matchbox-server/src/main/java/ch/ahdis/matchbox/terminology/TerminologyUtils.java @@ -47,6 +47,13 @@ public static Parameters createSuccessfulResponseParameters(final Coding coding) return parameters; } + public static Parameters createSuccessfulResponseParameters(final CodeableConcept codeableConcept) { + final var parameters = new Parameters(); + parameters.setParameter("result", true); + parameters.setParameter("codeableConcept", codeableConcept); + return parameters; + } + public static Parameters createErrorResponseParameters(final String message, @Nullable final Coding coding, @Nullable final CodeableConcept codeableConcept) { diff --git a/matchbox-server/src/main/java/ch/ahdis/matchbox/terminology/providers/CodeSystemProvider.java b/matchbox-server/src/main/java/ch/ahdis/matchbox/terminology/providers/CodeSystemProvider.java index e89497478ec..83bcba03da1 100644 --- a/matchbox-server/src/main/java/ch/ahdis/matchbox/terminology/providers/CodeSystemProvider.java +++ b/matchbox-server/src/main/java/ch/ahdis/matchbox/terminology/providers/CodeSystemProvider.java @@ -14,8 +14,9 @@ import org.hl7.fhir.instance.model.api.IBaseParameters; import org.hl7.fhir.instance.model.api.IBaseResource; import org.hl7.fhir.instance.model.api.IIdType; -import org.hl7.fhir.r4.model.CodeSystem; +import org.hl7.fhir.r5.model.CodeSystem; import org.hl7.fhir.r5.model.Coding; +import org.hl7.fhir.r5.model.CodeableConcept; import org.hl7.fhir.r5.model.Parameters; import org.hl7.fhir.r5.model.Resource; import org.slf4j.Logger; @@ -92,6 +93,11 @@ private Resource doValidateR5Code(final Parameters request, return TerminologyUtils.createSuccessfulResponseParameters(coding); } + if (request.hasParameter("codeableConcept") && request.getParameterValue("codeableConcept") instanceof final CodeableConcept codeableConcept) { + log.debug("Validating code in CS: {}|{}", codeableConcept.getCodingFirstRep().getCode(), codeableConcept.getCodingFirstRep().getSystem()); + return TerminologyUtils.createSuccessfulResponseParameters(codeableConcept); + } + servletResponse.setStatus(422); // The original error message is: // Unable to find code to validate (looked for coding | codeableConcept | code) diff --git a/matchbox-server/src/main/java/ch/ahdis/matchbox/util/MatchboxEngineSupport.java b/matchbox-server/src/main/java/ch/ahdis/matchbox/util/MatchboxEngineSupport.java index 12ba2e1fcd1..296b25dabaa 100644 --- a/matchbox-server/src/main/java/ch/ahdis/matchbox/util/MatchboxEngineSupport.java +++ b/matchbox-server/src/main/java/ch/ahdis/matchbox/util/MatchboxEngineSupport.java @@ -612,15 +612,18 @@ private void configureValidationEngine(final MatchboxEngine validator, } else { fetcher.setReferencePolicy(ReferenceValidationPolicy.IGNORE); } + fetcher.getCheckReferencesTo().addAll(cli.getCheckReferencesTo() != null ? new HashSet<>(Arrays.asList(cli.getCheckReferencesTo())) : Collections.emptySet()); fetcher.setResolutionContext(cli.getResolutionContext()); } else { DisabledValidationPolicyAdvisor fetcher = new DisabledValidationPolicyAdvisor(); validator.setPolicyAdvisor(fetcher); refpol = ReferenceValidationPolicy.CHECK_TYPE_IF_EXISTS; } - validator.getPolicyAdvisor().setPolicyAdvisor(new ValidationPolicyAdvisor(validator.getPolicyAdvisor() == null ? refpol : validator.getPolicyAdvisor().getReferencePolicy())); + validator.getPolicyAdvisor().setPolicyAdvisor(new ValidationPolicyAdvisor(validator.getPolicyAdvisor() == null ? refpol : validator.getPolicyAdvisor().getReferencePolicy(), cli.getCheckReferencesTo() != null ? new HashSet<>(Arrays.asList(cli.getCheckReferencesTo())) : Collections.emptySet())); - validator.setJurisdiction(CodeSystemUtilities.readCoding(cli.getJurisdiction())); + if (cli.getJurisdiction() != null) { + validator.setJurisdiction(CodeSystemUtilities.readCoding(cli.getJurisdiction())); + } // TerminologyCache.setNoCaching(cliContext.isNoInternalCaching()); // Configure which warnings will be suppressed in the validation results diff --git a/matchbox-server/src/main/java/ch/ahdis/matchbox/validation/ValidationProvider.java b/matchbox-server/src/main/java/ch/ahdis/matchbox/validation/ValidationProvider.java index fa6ada35e7a..ae84be359ab 100644 --- a/matchbox-server/src/main/java/ch/ahdis/matchbox/validation/ValidationProvider.java +++ b/matchbox-server/src/main/java/ch/ahdis/matchbox/validation/ValidationProvider.java @@ -166,11 +166,6 @@ public IBaseResource validate(final HttpServletRequest theRequest) { } } - // Check if the IG should be auto-installed - if (!cliContext.isHttpReadOnly()) { - this.ensureIgIsInstalled(theRequest.getParameter("ig"), theRequest.getParameter("profile")); - } - if (theRequest.getParameter("profile") == null) { return this.getOoForError("The 'profile' parameter must be provided"); } @@ -389,89 +384,6 @@ private IBaseResource getOoForError(final @NonNull String message) { return VersionConvertorFactory_40_50.convertResource(oo); } - private void ensureIgIsInstalled(@Nullable final String ig, - final String profile) { - if (ig != null) { - // Easy case, the IG is known - final var parts = ig.split("#"); - if (!this.igProvider.has(parts[0], parts[1])) { - log.debug("Auto-installing the IG '{}' version '{}'", parts[0], parts[1]); - this.igProvider.installFromInternetRegistry(parts[0], parts[1]); - } - return; - } - - if (profile.startsWith("http://hl7.org/fhir/")) { - log.debug("Profile '{}' is a core FHIR profile, no need to install an IG", profile); - return; - } - - // Harder case, only the profile is known - final var parts = profile.split("\\|"); - final String canonical; - final String version; - if (parts.length == 2) { - final Boolean found = new TransactionTemplate(this.myTxManager) - .execute(tx -> this.myPackageVersionResourceDao.getPackageVersionByCanonicalAndVersion(parts[0], parts[1]).isPresent()); - if (found != null && found) { - // The profile was found in the database, the IG is installed - return; - } - canonical = parts[0]; - version = parts[1]; - } else { - canonical = profile; - version = null; - } - - // The profile was not found in the database, we need to search for the IG that contains it - final var gson = new Gson(); - final var igSearchUrl = - "https://packages.simplifier.net/catalog?canonical=%s&prerelease=false".formatted(URLEncoder.encode(canonical, StandardCharsets.UTF_8)); - final SimplifierPackage[] packages; - try (final CloseableHttpClient httpclient = HttpClients.createDefault()) { - final var httpget = new HttpGet(igSearchUrl); - packages = httpclient.execute(httpget, response -> - gson.fromJson(new InputStreamReader(response.getEntity().getContent()), SimplifierPackage[].class)); - } catch (final Exception e) { - log.error("Error while searching for IGs", e); - return; - } - - if (packages == null || packages.length == 0) { - return; - } - log.debug("Found {} IGs for profile '{}', checking the first one ('{}')", packages.length, profile, - packages[0].getName()); - if (version != null) { - // This might not be always true, but it's a good heuristic: let's use the profile version as the IG version - this.igProvider.installFromInternetRegistry(packages[0].getName(), version); - return; - } - // We have to search for the latest profile version - final var versionSearchUrl = "https://packages.simplifier.net/" + packages[0].getName(); - final SimplifierPackageVersionsObject versionsObject; - try (final CloseableHttpClient httpclient = HttpClients.createDefault()) { - final var httpget = new HttpGet(versionSearchUrl); - versionsObject = httpclient.execute(httpget, response -> - gson.fromJson(new InputStreamReader(response.getEntity().getContent()), SimplifierPackageVersionsObject.class)); - } catch (final Exception e) { - log.error("Error while searching for IG versions", e); - return; - } - - if (versionsObject == null || versionsObject.getVersions() == null || versionsObject.getVersions().isEmpty()) { - return; - } - - final var latestVersion = versionsObject.getVersions().keySet().toArray()[ versionsObject.getVersions().size()-1].toString(); - try { - this.igProvider.installFromInternetRegistry(packages[0].getName(), latestVersion); - } catch (final Exception e) { - log.error("Error while installing IG version", e); - } - } - public static List doValidate(final MatchboxEngine engine, String content, final EncodingEnum encoding, diff --git a/matchbox-server/src/main/resources/application.yaml b/matchbox-server/src/main/resources/application.yaml index befbf90cd69..ccb1363d9bc 100644 --- a/matchbox-server/src/main/resources/application.yaml +++ b/matchbox-server/src/main/resources/application.yaml @@ -73,14 +73,6 @@ hapi: # name: hl7.fhir.r4.core # version: 4.0.1 # url: classpath:/hl7.fhir.r4.core.tgz - # fhir_extensions: - # name: hl7.fhir.uv.extensions.r4 - # version: 5.2.0 - # url: classpath:/hl7.fhir.uv.extensions.r4#5.2.0.tgz - # fhir_terminology: - # name: hl7.terminology.r4 - # version: 6.3.0 - # url: classpath:/hl7.terminology.r4#6.3.0.tgz # ch-core: # name: ch.fhir.ig.ch-core # version: 4.0.0-ballot diff --git a/matchbox-server/src/main/resources/static/browser/chunk-JS5THRTJ.js b/matchbox-server/src/main/resources/static/browser/chunk-DEDHGZJT.js similarity index 53% rename from matchbox-server/src/main/resources/static/browser/chunk-JS5THRTJ.js rename to matchbox-server/src/main/resources/static/browser/chunk-DEDHGZJT.js index 9ea495f01cc..3a8ce4edf22 100644 --- a/matchbox-server/src/main/resources/static/browser/chunk-JS5THRTJ.js +++ b/matchbox-server/src/main/resources/static/browser/chunk-DEDHGZJT.js @@ -1 +1 @@ -import{Sc as a,Tc as b}from"./chunk-OHNOGIP5.js";import"./chunk-TSRGIXR5.js";export{b as HighlightLineNumbers,a as activateLineNumbers}; +import{Tc as a,Uc as b}from"./chunk-JL4BMBRH.js";import"./chunk-TSRGIXR5.js";export{b as HighlightLineNumbers,a as activateLineNumbers}; diff --git a/matchbox-server/src/main/resources/static/browser/chunk-DOW4KWQY.js b/matchbox-server/src/main/resources/static/browser/chunk-DOW4KWQY.js new file mode 100644 index 00000000000..2b300efaa94 --- /dev/null +++ b/matchbox-server/src/main/resources/static/browser/chunk-DOW4KWQY.js @@ -0,0 +1,3 @@ +import{e as et}from"./chunk-TSRGIXR5.js";var zt=et((Ft,Le)=>{function ye(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{let i=e[t],u=typeof i;(u==="object"||u==="function")&&!Object.isFrozen(i)&&ye(i)}),e}var X=class{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function Re(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function B(e,...t){let i=Object.create(null);for(let u in e)i[u]=e[u];return t.forEach(function(u){for(let b in u)i[b]=u[b]}),i}var tt="",be=e=>!!e.scope,nt=(e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){let i=e.split(".");return[`${t}${i.shift()}`,...i.map((u,b)=>`${u}${"_".repeat(b+1)}`)].join(" ")}return`${t}${e}`},ne=class{constructor(t,i){this.buffer="",this.classPrefix=i.classPrefix,t.walk(this)}addText(t){this.buffer+=Re(t)}openNode(t){if(!be(t))return;let i=nt(t.scope,{prefix:this.classPrefix});this.span(i)}closeNode(t){be(t)&&(this.buffer+=tt)}value(){return this.buffer}span(t){this.buffer+=``}},_e=(e={})=>{let t={children:[]};return Object.assign(t,e),t},ie=class e{constructor(){this.rootNode=_e(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){let i=_e({scope:t});this.add(i),this.stack.push(i)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,i){return typeof i=="string"?t.addText(i):i.children&&(t.openNode(i),i.children.forEach(u=>this._walk(t,u)),t.closeNode(i)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(i=>typeof i=="string")?t.children=[t.children.join("")]:t.children.forEach(i=>{e._collapse(i)}))}},se=class extends ie{constructor(t){super(),this.options=t}addText(t){t!==""&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,i){let u=t.root;i&&(u.scope=`language:${i}`),this.add(u)}toHTML(){return new ne(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}};function H(e){return e?typeof e=="string"?e:e.source:null}function Se(e){return C("(?=",e,")")}function it(e){return C("(?:",e,")*")}function st(e){return C("(?:",e,")?")}function C(...e){return e.map(i=>H(i)).join("")}function rt(e){let t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function ce(...e){return"("+(rt(e).capture?"":"?:")+e.map(u=>H(u)).join("|")+")"}function Ne(e){return new RegExp(e.toString()+"|").exec("").length-1}function ct(e,t){let i=e&&e.exec(t);return i&&i.index===0}var ot=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function oe(e,{joinWith:t}){let i=0;return e.map(u=>{i+=1;let b=i,_=H(u),c="";for(;_.length>0;){let r=ot.exec(_);if(!r){c+=_;break}c+=_.substring(0,r.index),_=_.substring(r.index+r[0].length),r[0][0]==="\\"&&r[1]?c+="\\"+String(Number(r[1])+b):(c+=r[0],r[0]==="("&&i++)}return c}).map(u=>`(${u})`).join(t)}var at=/\b\B/,Ae="[a-zA-Z]\\w*",ae="[a-zA-Z_]\\w*",ke="\\b\\d+(\\.\\d+)?",Ie="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Te="\\b(0b[01]+)",lt="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",ut=(e={})=>{let t=/^#![ ]*\//;return e.binary&&(e.begin=C(t,/.*\b/,e.binary,/\b.*/)),B({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(i,u)=>{i.index!==0&&u.ignoreMatch()}},e)},U={begin:"\\\\[\\s\\S]",relevance:0},ft={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[U]},gt={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[U]},ht={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Z=function(e,t,i={}){let u=B({scope:"comment",begin:e,end:t,contains:[]},i);u.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let b=ce("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return u.contains.push({begin:C(/[ ]+/,"(",b,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),u},pt=Z("//","$"),dt=Z("/\\*","\\*/"),Et=Z("#","$"),bt={scope:"number",begin:ke,relevance:0},_t={scope:"number",begin:Ie,relevance:0},Mt={scope:"number",begin:Te,relevance:0},wt={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[U,{begin:/\[/,end:/\]/,relevance:0,contains:[U]}]},xt={scope:"title",begin:Ae,relevance:0},Ot={scope:"title",begin:ae,relevance:0},yt={begin:"\\.\\s*"+ae,relevance:0},Rt=function(e){return Object.assign(e,{"on:begin":(t,i)=>{i.data._beginMatch=t[1]},"on:end":(t,i)=>{i.data._beginMatch!==t[1]&&i.ignoreMatch()}})},F=Object.freeze({__proto__:null,APOS_STRING_MODE:ft,BACKSLASH_ESCAPE:U,BINARY_NUMBER_MODE:Mt,BINARY_NUMBER_RE:Te,COMMENT:Z,C_BLOCK_COMMENT_MODE:dt,C_LINE_COMMENT_MODE:pt,C_NUMBER_MODE:_t,C_NUMBER_RE:Ie,END_SAME_AS_BEGIN:Rt,HASH_COMMENT_MODE:Et,IDENT_RE:Ae,MATCH_NOTHING_RE:at,METHOD_GUARD:yt,NUMBER_MODE:bt,NUMBER_RE:ke,PHRASAL_WORDS_MODE:ht,QUOTE_STRING_MODE:gt,REGEXP_MODE:wt,RE_STARTERS_RE:lt,SHEBANG:ut,TITLE_MODE:xt,UNDERSCORE_IDENT_RE:ae,UNDERSCORE_TITLE_MODE:Ot});function St(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function Nt(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function At(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=St,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function kt(e,t){Array.isArray(e.illegal)&&(e.illegal=ce(...e.illegal))}function It(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function Tt(e,t){e.relevance===void 0&&(e.relevance=1)}var Bt=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");let i=Object.assign({},e);Object.keys(e).forEach(u=>{delete e[u]}),e.keywords=i.keywords,e.begin=C(i.beforeMatch,Se(i.begin)),e.starts={relevance:0,contains:[Object.assign(i,{endsParent:!0})]},e.relevance=0,delete i.beforeMatch},Dt=["of","and","for","in","not","or","if","then","parent","list","value"],vt="keyword";function Be(e,t,i=vt){let u=Object.create(null);return typeof e=="string"?b(i,e.split(" ")):Array.isArray(e)?b(i,e):Object.keys(e).forEach(function(_){Object.assign(u,Be(e[_],t,_))}),u;function b(_,c){t&&(c=c.map(r=>r.toLowerCase())),c.forEach(function(r){let l=r.split("|");u[l[0]]=[_,Ct(l[0],l[1])]})}}function Ct(e,t){return t?Number(t):Lt(e)?0:1}function Lt(e){return Dt.includes(e.toLowerCase())}var Me={},v=e=>{console.error(e)},we=(e,...t)=>{console.log(`WARN: ${e}`,...t)},L=(e,t)=>{Me[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),Me[`${e}/${t}`]=!0)},Y=new Error;function De(e,t,{key:i}){let u=0,b=e[i],_={},c={};for(let r=1;r<=t.length;r++)c[r+u]=b[r],_[r+u]=!0,u+=Ne(t[r-1]);e[i]=c,e[i]._emit=_,e[i]._multi=!0}function Pt(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw v("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Y;if(typeof e.beginScope!="object"||e.beginScope===null)throw v("beginScope must be object"),Y;De(e,e.begin,{key:"beginScope"}),e.begin=oe(e.begin,{joinWith:""})}}function jt(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw v("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Y;if(typeof e.endScope!="object"||e.endScope===null)throw v("endScope must be object"),Y;De(e,e.end,{key:"endScope"}),e.end=oe(e.end,{joinWith:""})}}function Ht(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function Ut(e){Ht(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),Pt(e),jt(e)}function $t(e){function t(c,r){return new RegExp(H(c),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(r?"g":""))}class i{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(r,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,r]),this.matchAt+=Ne(r)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);let r=this.regexes.map(l=>l[1]);this.matcherRe=t(oe(r,{joinWith:"|"}),!0),this.lastIndex=0}exec(r){this.matcherRe.lastIndex=this.lastIndex;let l=this.matcherRe.exec(r);if(!l)return null;let x=l.findIndex((j,J)=>J>0&&j!==void 0),M=this.matchIndexes[x];return l.splice(0,x),Object.assign(l,M)}}class u{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(r){if(this.multiRegexes[r])return this.multiRegexes[r];let l=new i;return this.rules.slice(r).forEach(([x,M])=>l.addRule(x,M)),l.compile(),this.multiRegexes[r]=l,l}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(r,l){this.rules.push([r,l]),l.type==="begin"&&this.count++}exec(r){let l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let x=l.exec(r);if(this.resumingScanAtSamePosition()&&!(x&&x.index===this.lastIndex)){let M=this.getMatcher(0);M.lastIndex=this.lastIndex+1,x=M.exec(r)}return x&&(this.regexIndex+=x.position+1,this.regexIndex===this.count&&this.considerAll()),x}}function b(c){let r=new u;return c.contains.forEach(l=>r.addRule(l.begin,{rule:l,type:"begin"})),c.terminatorEnd&&r.addRule(c.terminatorEnd,{type:"end"}),c.illegal&&r.addRule(c.illegal,{type:"illegal"}),r}function _(c,r){let l=c;if(c.isCompiled)return l;[Nt,It,Ut,Bt].forEach(M=>M(c,r)),e.compilerExtensions.forEach(M=>M(c,r)),c.__beforeBegin=null,[At,kt,Tt].forEach(M=>M(c,r)),c.isCompiled=!0;let x=null;return typeof c.keywords=="object"&&c.keywords.$pattern&&(c.keywords=Object.assign({},c.keywords),x=c.keywords.$pattern,delete c.keywords.$pattern),x=x||/\w+/,c.keywords&&(c.keywords=Be(c.keywords,e.case_insensitive)),l.keywordPatternRe=t(x,!0),r&&(c.begin||(c.begin=/\B|\b/),l.beginRe=t(l.begin),!c.end&&!c.endsWithParent&&(c.end=/\B|\b/),c.end&&(l.endRe=t(l.end)),l.terminatorEnd=H(l.end)||"",c.endsWithParent&&r.terminatorEnd&&(l.terminatorEnd+=(c.end?"|":"")+r.terminatorEnd)),c.illegal&&(l.illegalRe=t(c.illegal)),c.contains||(c.contains=[]),c.contains=[].concat(...c.contains.map(function(M){return Gt(M==="self"?c:M)})),c.contains.forEach(function(M){_(M,l)}),c.starts&&_(c.starts,r),l.matcher=b(l),l}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=B(e.classNameAliases||{}),_(e)}function ve(e){return e?e.endsWithParent||ve(e.starts):!1}function Gt(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return B(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:ve(e)?B(e,{starts:e.starts?B(e.starts):null}):Object.isFrozen(e)?B(e):e}var Wt="11.11.1",re=class extends Error{constructor(t,i){super(t),this.name="HTMLInjectionError",this.html=i}},te=Re,xe=B,Oe=Symbol("nomatch"),Kt=7,Ce=function(e){let t=Object.create(null),i=Object.create(null),u=[],b=!0,_="Could not find the language '{}', did you forget to load/include a language module?",c={disableAutodetect:!0,name:"Plain text",contains:[]},r={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:se};function l(n){return r.noHighlightRe.test(n)}function x(n){let a=n.className+" ";a+=n.parentNode?n.parentNode.className:"";let h=r.languageDetectRe.exec(a);if(h){let d=I(h[1]);return d||(we(_.replace("{}",h[1])),we("Falling back to no-highlight mode for this block.",n)),d?h[1]:"no-highlight"}return a.split(/\s+/).find(d=>l(d)||I(d))}function M(n,a,h){let d="",w="";typeof a=="object"?(d=n,h=a.ignoreIllegals,w=a.language):(L("10.7.0","highlight(lang, code, ...args) has been deprecated."),L("10.7.0",`Please use highlight(code, options) instead. +https://github.com/highlightjs/highlight.js/issues/2277`),w=n,d=a),h===void 0&&(h=!0);let S={code:d,language:w};G("before:highlight",S);let T=S.result?S.result:j(S.language,S.code,h);return T.code=S.code,G("after:highlight",T),T}function j(n,a,h,d){let w=Object.create(null);function S(s,o){return s.keywords[o]}function T(){if(!f.keywords){O.addText(E);return}let s=0;f.keywordPatternRe.lastIndex=0;let o=f.keywordPatternRe.exec(E),g="";for(;o;){g+=E.substring(s,o.index);let p=A.case_insensitive?o[0].toLowerCase():o[0],y=S(f,p);if(y){let[k,Qe]=y;if(O.addText(g),g="",w[p]=(w[p]||0)+1,w[p]<=Kt&&(z+=Qe),k.startsWith("_"))g+=o[0];else{let me=A.classNameAliases[k]||k;N(o[0],me)}}else g+=o[0];s=f.keywordPatternRe.lastIndex,o=f.keywordPatternRe.exec(E)}g+=E.substring(s),O.addText(g)}function W(){if(E==="")return;let s=null;if(typeof f.subLanguage=="string"){if(!t[f.subLanguage]){O.addText(E);return}s=j(f.subLanguage,E,!0,Ee[f.subLanguage]),Ee[f.subLanguage]=s._top}else s=V(E,f.subLanguage.length?f.subLanguage:null);f.relevance>0&&(z+=s.relevance),O.__addSublanguage(s._emitter,s.language)}function R(){f.subLanguage!=null?W():T(),E=""}function N(s,o){s!==""&&(O.startScope(o),O.addText(s),O.endScope())}function ge(s,o){let g=1,p=o.length-1;for(;g<=p;){if(!s._emit[g]){g++;continue}let y=A.classNameAliases[s[g]]||s[g],k=o[g];y?N(k,y):(E=k,T(),E=""),g++}}function he(s,o){return s.scope&&typeof s.scope=="string"&&O.openNode(A.classNameAliases[s.scope]||s.scope),s.beginScope&&(s.beginScope._wrap?(N(E,A.classNameAliases[s.beginScope._wrap]||s.beginScope._wrap),E=""):s.beginScope._multi&&(ge(s.beginScope,o),E="")),f=Object.create(s,{parent:{value:f}}),f}function pe(s,o,g){let p=ct(s.endRe,g);if(p){if(s["on:end"]){let y=new X(s);s["on:end"](o,y),y.isMatchIgnored&&(p=!1)}if(p){for(;s.endsParent&&s.parent;)s=s.parent;return s}}if(s.endsWithParent)return pe(s.parent,o,g)}function Ye(s){return f.matcher.regexIndex===0?(E+=s[0],1):(ee=!0,0)}function Ze(s){let o=s[0],g=s.rule,p=new X(g),y=[g.__beforeBegin,g["on:begin"]];for(let k of y)if(k&&(k(s,p),p.isMatchIgnored))return Ye(o);return g.skip?E+=o:(g.excludeBegin&&(E+=o),R(),!g.returnBegin&&!g.excludeBegin&&(E=o)),he(g,s),g.returnBegin?0:o.length}function Je(s){let o=s[0],g=a.substring(s.index),p=pe(f,s,g);if(!p)return Oe;let y=f;f.endScope&&f.endScope._wrap?(R(),N(o,f.endScope._wrap)):f.endScope&&f.endScope._multi?(R(),ge(f.endScope,s)):y.skip?E+=o:(y.returnEnd||y.excludeEnd||(E+=o),R(),y.excludeEnd&&(E=o));do f.scope&&O.closeNode(),!f.skip&&!f.subLanguage&&(z+=f.relevance),f=f.parent;while(f!==p.parent);return p.starts&&he(p.starts,s),y.returnEnd?0:o.length}function Ve(){let s=[];for(let o=f;o!==A;o=o.parent)o.scope&&s.unshift(o.scope);s.forEach(o=>O.openNode(o))}let K={};function de(s,o){let g=o&&o[0];if(E+=s,g==null)return R(),0;if(K.type==="begin"&&o.type==="end"&&K.index===o.index&&g===""){if(E+=a.slice(o.index,o.index+1),!b){let p=new Error(`0 width match regex (${n})`);throw p.languageName=n,p.badRule=K.rule,p}return 1}if(K=o,o.type==="begin")return Ze(o);if(o.type==="illegal"&&!h){let p=new Error('Illegal lexeme "'+g+'" for mode "'+(f.scope||"")+'"');throw p.mode=f,p}else if(o.type==="end"){let p=Je(o);if(p!==Oe)return p}if(o.type==="illegal"&&g==="")return E+=` +`,1;if(m>1e5&&m>o.index*3)throw new Error("potential infinite loop, way more iterations than matches");return E+=g,g.length}let A=I(n);if(!A)throw v(_.replace("{}",n)),new Error('Unknown language: "'+n+'"');let qe=$t(A),Q="",f=d||qe,Ee={},O=new r.__emitter(r);Ve();let E="",z=0,D=0,m=0,ee=!1;try{if(A.__emitTokens)A.__emitTokens(a,O);else{for(f.matcher.considerAll();;){m++,ee?ee=!1:f.matcher.considerAll(),f.matcher.lastIndex=D;let s=f.matcher.exec(a);if(!s)break;let o=a.substring(D,s.index),g=de(o,s);D=s.index+g}de(a.substring(D))}return O.finalize(),Q=O.toHTML(),{language:n,value:Q,relevance:z,illegal:!1,_emitter:O,_top:f}}catch(s){if(s.message&&s.message.includes("Illegal"))return{language:n,value:te(a),illegal:!0,relevance:0,_illegalBy:{message:s.message,index:D,context:a.slice(D-100,D+100),mode:s.mode,resultSoFar:Q},_emitter:O};if(b)return{language:n,value:te(a),illegal:!1,relevance:0,errorRaised:s,_emitter:O,_top:f};throw s}}function J(n){let a={value:te(n),illegal:!1,relevance:0,_top:c,_emitter:new r.__emitter(r)};return a._emitter.addText(n),a}function V(n,a){a=a||r.languages||Object.keys(t);let h=J(n),d=a.filter(I).filter(fe).map(R=>j(R,n,!1));d.unshift(h);let w=d.sort((R,N)=>{if(R.relevance!==N.relevance)return N.relevance-R.relevance;if(R.language&&N.language){if(I(R.language).supersetOf===N.language)return 1;if(I(N.language).supersetOf===R.language)return-1}return 0}),[S,T]=w,W=S;return W.secondBest=T,W}function Pe(n,a,h){let d=a&&i[a]||h;n.classList.add("hljs"),n.classList.add(`language-${d}`)}function q(n){let a=null,h=x(n);if(l(h))return;if(G("before:highlightElement",{el:n,language:h}),n.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",n);return}if(n.children.length>0&&(r.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(n)),r.throwUnescapedHTML))throw new re("One of your code blocks includes unescaped HTML.",n.innerHTML);a=n;let d=a.textContent,w=h?M(d,{language:h,ignoreIllegals:!0}):V(d);n.innerHTML=w.value,n.dataset.highlighted="yes",Pe(n,h,w.language),n.result={language:w.language,re:w.relevance,relevance:w.relevance},w.secondBest&&(n.secondBest={language:w.secondBest.language,relevance:w.secondBest.relevance}),G("after:highlightElement",{el:n,result:w,text:d})}function je(n){r=xe(r,n)}let He=()=>{$(),L("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function Ue(){$(),L("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let le=!1;function $(){function n(){$()}if(document.readyState==="loading"){le||window.addEventListener("DOMContentLoaded",n,!1),le=!0;return}document.querySelectorAll(r.cssSelector).forEach(q)}function $e(n,a){let h=null;try{h=a(e)}catch(d){if(v("Language definition for '{}' could not be registered.".replace("{}",n)),b)v(d);else throw d;h=c}h.name||(h.name=n),t[n]=h,h.rawDefinition=a.bind(null,e),h.aliases&&ue(h.aliases,{languageName:n})}function Ge(n){delete t[n];for(let a of Object.keys(i))i[a]===n&&delete i[a]}function We(){return Object.keys(t)}function I(n){return n=(n||"").toLowerCase(),t[n]||t[i[n]]}function ue(n,{languageName:a}){typeof n=="string"&&(n=[n]),n.forEach(h=>{i[h.toLowerCase()]=a})}function fe(n){let a=I(n);return a&&!a.disableAutodetect}function Ke(n){n["before:highlightBlock"]&&!n["before:highlightElement"]&&(n["before:highlightElement"]=a=>{n["before:highlightBlock"](Object.assign({block:a.el},a))}),n["after:highlightBlock"]&&!n["after:highlightElement"]&&(n["after:highlightElement"]=a=>{n["after:highlightBlock"](Object.assign({block:a.el},a))})}function ze(n){Ke(n),u.push(n)}function Fe(n){let a=u.indexOf(n);a!==-1&&u.splice(a,1)}function G(n,a){let h=n;u.forEach(function(d){d[h]&&d[h](a)})}function Xe(n){return L("10.7.0","highlightBlock will be removed entirely in v12.0"),L("10.7.0","Please use highlightElement now."),q(n)}Object.assign(e,{highlight:M,highlightAuto:V,highlightAll:$,highlightElement:q,highlightBlock:Xe,configure:je,initHighlighting:He,initHighlightingOnLoad:Ue,registerLanguage:$e,unregisterLanguage:Ge,listLanguages:We,getLanguage:I,registerAliases:ue,autoDetection:fe,inherit:xe,addPlugin:ze,removePlugin:Fe}),e.debugMode=function(){b=!1},e.safeMode=function(){b=!0},e.versionString=Wt,e.regex={concat:C,lookahead:Se,either:ce,optional:st,anyNumberOfTimes:it};for(let n in F)typeof F[n]=="object"&&ye(F[n]);return Object.assign(e,F),e},P=Ce({});P.newInstance=()=>Ce({});Le.exports=P;P.HighlightJS=P;P.default=P});export default zt(); diff --git a/matchbox-server/src/main/resources/static/browser/chunk-I6QVUCPC.js b/matchbox-server/src/main/resources/static/browser/chunk-I6QVUCPC.js deleted file mode 100644 index 7ab455f2f7c..00000000000 --- a/matchbox-server/src/main/resources/static/browser/chunk-I6QVUCPC.js +++ /dev/null @@ -1,2 +0,0 @@ -import{e as tt}from"./chunk-TSRGIXR5.js";var Ft=tt((Xt,Le)=>{function ye(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{let i=e[t],u=typeof i;(u==="object"||u==="function")&&!Object.isFrozen(i)&&ye(i)}),e}var X=class{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function Re(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function B(e,...t){let i=Object.create(null);for(let u in e)i[u]=e[u];return t.forEach(function(u){for(let b in u)i[b]=u[b]}),i}var nt="",be=e=>!!e.scope,it=(e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){let i=e.split(".");return[`${t}${i.shift()}`,...i.map((u,b)=>`${u}${"_".repeat(b+1)}`)].join(" ")}return`${t}${e}`},ne=class{constructor(t,i){this.buffer="",this.classPrefix=i.classPrefix,t.walk(this)}addText(t){this.buffer+=Re(t)}openNode(t){if(!be(t))return;let i=it(t.scope,{prefix:this.classPrefix});this.span(i)}closeNode(t){be(t)&&(this.buffer+=nt)}value(){return this.buffer}span(t){this.buffer+=``}},_e=(e={})=>{let t={children:[]};return Object.assign(t,e),t},ie=class e{constructor(){this.rootNode=_e(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){let i=_e({scope:t});this.add(i),this.stack.push(i)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,i){return typeof i=="string"?t.addText(i):i.children&&(t.openNode(i),i.children.forEach(u=>this._walk(t,u)),t.closeNode(i)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(i=>typeof i=="string")?t.children=[t.children.join("")]:t.children.forEach(i=>{e._collapse(i)}))}},se=class extends ie{constructor(t){super(),this.options=t}addText(t){t!==""&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,i){let u=t.root;i&&(u.scope=`language:${i}`),this.add(u)}toHTML(){return new ne(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}};function H(e){return e?typeof e=="string"?e:e.source:null}function Se(e){return C("(?=",e,")")}function st(e){return C("(?:",e,")*")}function rt(e){return C("(?:",e,")?")}function C(...e){return e.map(i=>H(i)).join("")}function ct(e){let t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function ce(...e){return"("+(ct(e).capture?"":"?:")+e.map(u=>H(u)).join("|")+")"}function Ne(e){return new RegExp(e.toString()+"|").exec("").length-1}function ot(e,t){let i=e&&e.exec(t);return i&&i.index===0}var at=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function oe(e,{joinWith:t}){let i=0;return e.map(u=>{i+=1;let b=i,_=H(u),c="";for(;_.length>0;){let r=at.exec(_);if(!r){c+=_;break}c+=_.substring(0,r.index),_=_.substring(r.index+r[0].length),r[0][0]==="\\"&&r[1]?c+="\\"+String(Number(r[1])+b):(c+=r[0],r[0]==="("&&i++)}return c}).map(u=>`(${u})`).join(t)}var lt=/\b\B/,Ae="[a-zA-Z]\\w*",ae="[a-zA-Z_]\\w*",ke="\\b\\d+(\\.\\d+)?",Ie="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Te="\\b(0b[01]+)",ut="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",ft=(e={})=>{let t=/^#![ ]*\//;return e.binary&&(e.begin=C(t,/.*\b/,e.binary,/\b.*/)),B({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(i,u)=>{i.index!==0&&u.ignoreMatch()}},e)},U={begin:"\\\\[\\s\\S]",relevance:0},gt={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[U]},ht={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[U]},dt={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Z=function(e,t,i={}){let u=B({scope:"comment",begin:e,end:t,contains:[]},i);u.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let b=ce("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return u.contains.push({begin:C(/[ ]+/,"(",b,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),u},pt=Z("//","$"),Et=Z("/\\*","\\*/"),bt=Z("#","$"),_t={scope:"number",begin:ke,relevance:0},wt={scope:"number",begin:Ie,relevance:0},Mt={scope:"number",begin:Te,relevance:0},xt={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[U,{begin:/\[/,end:/\]/,relevance:0,contains:[U]}]},Ot={scope:"title",begin:Ae,relevance:0},yt={scope:"title",begin:ae,relevance:0},Rt={begin:"\\.\\s*"+ae,relevance:0},St=function(e){return Object.assign(e,{"on:begin":(t,i)=>{i.data._beginMatch=t[1]},"on:end":(t,i)=>{i.data._beginMatch!==t[1]&&i.ignoreMatch()}})},F=Object.freeze({__proto__:null,APOS_STRING_MODE:gt,BACKSLASH_ESCAPE:U,BINARY_NUMBER_MODE:Mt,BINARY_NUMBER_RE:Te,COMMENT:Z,C_BLOCK_COMMENT_MODE:Et,C_LINE_COMMENT_MODE:pt,C_NUMBER_MODE:wt,C_NUMBER_RE:Ie,END_SAME_AS_BEGIN:St,HASH_COMMENT_MODE:bt,IDENT_RE:Ae,MATCH_NOTHING_RE:lt,METHOD_GUARD:Rt,NUMBER_MODE:_t,NUMBER_RE:ke,PHRASAL_WORDS_MODE:dt,QUOTE_STRING_MODE:ht,REGEXP_MODE:xt,RE_STARTERS_RE:ut,SHEBANG:ft,TITLE_MODE:Ot,UNDERSCORE_IDENT_RE:ae,UNDERSCORE_TITLE_MODE:yt});function Nt(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function At(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function kt(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=Nt,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function It(e,t){Array.isArray(e.illegal)&&(e.illegal=ce(...e.illegal))}function Tt(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function Bt(e,t){e.relevance===void 0&&(e.relevance=1)}var Dt=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");let i=Object.assign({},e);Object.keys(e).forEach(u=>{delete e[u]}),e.keywords=i.keywords,e.begin=C(i.beforeMatch,Se(i.begin)),e.starts={relevance:0,contains:[Object.assign(i,{endsParent:!0})]},e.relevance=0,delete i.beforeMatch},vt=["of","and","for","in","not","or","if","then","parent","list","value"],Ct="keyword";function Be(e,t,i=Ct){let u=Object.create(null);return typeof e=="string"?b(i,e.split(" ")):Array.isArray(e)?b(i,e):Object.keys(e).forEach(function(_){Object.assign(u,Be(e[_],t,_))}),u;function b(_,c){t&&(c=c.map(r=>r.toLowerCase())),c.forEach(function(r){let l=r.split("|");u[l[0]]=[_,Lt(l[0],l[1])]})}}function Lt(e,t){return t?Number(t):Pt(e)?0:1}function Pt(e){return vt.includes(e.toLowerCase())}var we={},v=e=>{console.error(e)},Me=(e,...t)=>{console.log(`WARN: ${e}`,...t)},L=(e,t)=>{we[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),we[`${e}/${t}`]=!0)},Y=new Error;function De(e,t,{key:i}){let u=0,b=e[i],_={},c={};for(let r=1;r<=t.length;r++)c[r+u]=b[r],_[r+u]=!0,u+=Ne(t[r-1]);e[i]=c,e[i]._emit=_,e[i]._multi=!0}function jt(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw v("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Y;if(typeof e.beginScope!="object"||e.beginScope===null)throw v("beginScope must be object"),Y;De(e,e.begin,{key:"beginScope"}),e.begin=oe(e.begin,{joinWith:""})}}function Ht(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw v("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Y;if(typeof e.endScope!="object"||e.endScope===null)throw v("endScope must be object"),Y;De(e,e.end,{key:"endScope"}),e.end=oe(e.end,{joinWith:""})}}function Ut(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function $t(e){Ut(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),jt(e),Ht(e)}function Gt(e){function t(c,r){return new RegExp(H(c),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(r?"g":""))}class i{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(r,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,r]),this.matchAt+=Ne(r)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);let r=this.regexes.map(l=>l[1]);this.matcherRe=t(oe(r,{joinWith:"|"}),!0),this.lastIndex=0}exec(r){this.matcherRe.lastIndex=this.lastIndex;let l=this.matcherRe.exec(r);if(!l)return null;let x=l.findIndex((j,J)=>J>0&&j!==void 0),w=this.matchIndexes[x];return l.splice(0,x),Object.assign(l,w)}}class u{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(r){if(this.multiRegexes[r])return this.multiRegexes[r];let l=new i;return this.rules.slice(r).forEach(([x,w])=>l.addRule(x,w)),l.compile(),this.multiRegexes[r]=l,l}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(r,l){this.rules.push([r,l]),l.type==="begin"&&this.count++}exec(r){let l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let x=l.exec(r);if(this.resumingScanAtSamePosition()&&!(x&&x.index===this.lastIndex)){let w=this.getMatcher(0);w.lastIndex=this.lastIndex+1,x=w.exec(r)}return x&&(this.regexIndex+=x.position+1,this.regexIndex===this.count&&this.considerAll()),x}}function b(c){let r=new u;return c.contains.forEach(l=>r.addRule(l.begin,{rule:l,type:"begin"})),c.terminatorEnd&&r.addRule(c.terminatorEnd,{type:"end"}),c.illegal&&r.addRule(c.illegal,{type:"illegal"}),r}function _(c,r){let l=c;if(c.isCompiled)return l;[At,Tt,$t,Dt].forEach(w=>w(c,r)),e.compilerExtensions.forEach(w=>w(c,r)),c.__beforeBegin=null,[kt,It,Bt].forEach(w=>w(c,r)),c.isCompiled=!0;let x=null;return typeof c.keywords=="object"&&c.keywords.$pattern&&(c.keywords=Object.assign({},c.keywords),x=c.keywords.$pattern,delete c.keywords.$pattern),x=x||/\w+/,c.keywords&&(c.keywords=Be(c.keywords,e.case_insensitive)),l.keywordPatternRe=t(x,!0),r&&(c.begin||(c.begin=/\B|\b/),l.beginRe=t(l.begin),!c.end&&!c.endsWithParent&&(c.end=/\B|\b/),c.end&&(l.endRe=t(l.end)),l.terminatorEnd=H(l.end)||"",c.endsWithParent&&r.terminatorEnd&&(l.terminatorEnd+=(c.end?"|":"")+r.terminatorEnd)),c.illegal&&(l.illegalRe=t(c.illegal)),c.contains||(c.contains=[]),c.contains=[].concat(...c.contains.map(function(w){return Wt(w==="self"?c:w)})),c.contains.forEach(function(w){_(w,l)}),c.starts&&_(c.starts,r),l.matcher=b(l),l}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=B(e.classNameAliases||{}),_(e)}function ve(e){return e?e.endsWithParent||ve(e.starts):!1}function Wt(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return B(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:ve(e)?B(e,{starts:e.starts?B(e.starts):null}):Object.isFrozen(e)?B(e):e}var Kt="11.9.0",re=class extends Error{constructor(t,i){super(t),this.name="HTMLInjectionError",this.html=i}},te=Re,xe=B,Oe=Symbol("nomatch"),zt=7,Ce=function(e){let t=Object.create(null),i=Object.create(null),u=[],b=!0,_="Could not find the language '{}', did you forget to load/include a language module?",c={disableAutodetect:!0,name:"Plain text",contains:[]},r={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:se};function l(n){return r.noHighlightRe.test(n)}function x(n){let a=n.className+" ";a+=n.parentNode?n.parentNode.className:"";let h=r.languageDetectRe.exec(a);if(h){let p=I(h[1]);return p||(Me(_.replace("{}",h[1])),Me("Falling back to no-highlight mode for this block.",n)),p?h[1]:"no-highlight"}return a.split(/\s+/).find(p=>l(p)||I(p))}function w(n,a,h){let p="",M="";typeof a=="object"?(p=n,h=a.ignoreIllegals,M=a.language):(L("10.7.0","highlight(lang, code, ...args) has been deprecated."),L("10.7.0",`Please use highlight(code, options) instead. -https://github.com/highlightjs/highlight.js/issues/2277`),M=n,p=a),h===void 0&&(h=!0);let S={code:p,language:M};G("before:highlight",S);let T=S.result?S.result:j(S.language,S.code,h);return T.code=S.code,G("after:highlight",T),T}function j(n,a,h,p){let M=Object.create(null);function S(s,o){return s.keywords[o]}function T(){if(!f.keywords){O.addText(E);return}let s=0;f.keywordPatternRe.lastIndex=0;let o=f.keywordPatternRe.exec(E),g="";for(;o;){g+=E.substring(s,o.index);let d=A.case_insensitive?o[0].toLowerCase():o[0],y=S(f,d);if(y){let[k,me]=y;if(O.addText(g),g="",M[d]=(M[d]||0)+1,M[d]<=zt&&(z+=me),k.startsWith("_"))g+=o[0];else{let et=A.classNameAliases[k]||k;N(o[0],et)}}else g+=o[0];s=f.keywordPatternRe.lastIndex,o=f.keywordPatternRe.exec(E)}g+=E.substring(s),O.addText(g)}function W(){if(E==="")return;let s=null;if(typeof f.subLanguage=="string"){if(!t[f.subLanguage]){O.addText(E);return}s=j(f.subLanguage,E,!0,Ee[f.subLanguage]),Ee[f.subLanguage]=s._top}else s=V(E,f.subLanguage.length?f.subLanguage:null);f.relevance>0&&(z+=s.relevance),O.__addSublanguage(s._emitter,s.language)}function R(){f.subLanguage!=null?W():T(),E=""}function N(s,o){s!==""&&(O.startScope(o),O.addText(s),O.endScope())}function ge(s,o){let g=1,d=o.length-1;for(;g<=d;){if(!s._emit[g]){g++;continue}let y=A.classNameAliases[s[g]]||s[g],k=o[g];y?N(k,y):(E=k,T(),E=""),g++}}function he(s,o){return s.scope&&typeof s.scope=="string"&&O.openNode(A.classNameAliases[s.scope]||s.scope),s.beginScope&&(s.beginScope._wrap?(N(E,A.classNameAliases[s.beginScope._wrap]||s.beginScope._wrap),E=""):s.beginScope._multi&&(ge(s.beginScope,o),E="")),f=Object.create(s,{parent:{value:f}}),f}function de(s,o,g){let d=ot(s.endRe,g);if(d){if(s["on:end"]){let y=new X(s);s["on:end"](o,y),y.isMatchIgnored&&(d=!1)}if(d){for(;s.endsParent&&s.parent;)s=s.parent;return s}}if(s.endsWithParent)return de(s.parent,o,g)}function Ze(s){return f.matcher.regexIndex===0?(E+=s[0],1):(ee=!0,0)}function Je(s){let o=s[0],g=s.rule,d=new X(g),y=[g.__beforeBegin,g["on:begin"]];for(let k of y)if(k&&(k(s,d),d.isMatchIgnored))return Ze(o);return g.skip?E+=o:(g.excludeBegin&&(E+=o),R(),!g.returnBegin&&!g.excludeBegin&&(E=o)),he(g,s),g.returnBegin?0:o.length}function Ve(s){let o=s[0],g=a.substring(s.index),d=de(f,s,g);if(!d)return Oe;let y=f;f.endScope&&f.endScope._wrap?(R(),N(o,f.endScope._wrap)):f.endScope&&f.endScope._multi?(R(),ge(f.endScope,s)):y.skip?E+=o:(y.returnEnd||y.excludeEnd||(E+=o),R(),y.excludeEnd&&(E=o));do f.scope&&O.closeNode(),!f.skip&&!f.subLanguage&&(z+=f.relevance),f=f.parent;while(f!==d.parent);return d.starts&&he(d.starts,s),y.returnEnd?0:o.length}function qe(){let s=[];for(let o=f;o!==A;o=o.parent)o.scope&&s.unshift(o.scope);s.forEach(o=>O.openNode(o))}let K={};function pe(s,o){let g=o&&o[0];if(E+=s,g==null)return R(),0;if(K.type==="begin"&&o.type==="end"&&K.index===o.index&&g===""){if(E+=a.slice(o.index,o.index+1),!b){let d=new Error(`0 width match regex (${n})`);throw d.languageName=n,d.badRule=K.rule,d}return 1}if(K=o,o.type==="begin")return Je(o);if(o.type==="illegal"&&!h){let d=new Error('Illegal lexeme "'+g+'" for mode "'+(f.scope||"")+'"');throw d.mode=f,d}else if(o.type==="end"){let d=Ve(o);if(d!==Oe)return d}if(o.type==="illegal"&&g==="")return 1;if(m>1e5&&m>o.index*3)throw new Error("potential infinite loop, way more iterations than matches");return E+=g,g.length}let A=I(n);if(!A)throw v(_.replace("{}",n)),new Error('Unknown language: "'+n+'"');let Qe=Gt(A),Q="",f=p||Qe,Ee={},O=new r.__emitter(r);qe();let E="",z=0,D=0,m=0,ee=!1;try{if(A.__emitTokens)A.__emitTokens(a,O);else{for(f.matcher.considerAll();;){m++,ee?ee=!1:f.matcher.considerAll(),f.matcher.lastIndex=D;let s=f.matcher.exec(a);if(!s)break;let o=a.substring(D,s.index),g=pe(o,s);D=s.index+g}pe(a.substring(D))}return O.finalize(),Q=O.toHTML(),{language:n,value:Q,relevance:z,illegal:!1,_emitter:O,_top:f}}catch(s){if(s.message&&s.message.includes("Illegal"))return{language:n,value:te(a),illegal:!0,relevance:0,_illegalBy:{message:s.message,index:D,context:a.slice(D-100,D+100),mode:s.mode,resultSoFar:Q},_emitter:O};if(b)return{language:n,value:te(a),illegal:!1,relevance:0,errorRaised:s,_emitter:O,_top:f};throw s}}function J(n){let a={value:te(n),illegal:!1,relevance:0,_top:c,_emitter:new r.__emitter(r)};return a._emitter.addText(n),a}function V(n,a){a=a||r.languages||Object.keys(t);let h=J(n),p=a.filter(I).filter(fe).map(R=>j(R,n,!1));p.unshift(h);let M=p.sort((R,N)=>{if(R.relevance!==N.relevance)return N.relevance-R.relevance;if(R.language&&N.language){if(I(R.language).supersetOf===N.language)return 1;if(I(N.language).supersetOf===R.language)return-1}return 0}),[S,T]=M,W=S;return W.secondBest=T,W}function Pe(n,a,h){let p=a&&i[a]||h;n.classList.add("hljs"),n.classList.add(`language-${p}`)}function q(n){let a=null,h=x(n);if(l(h))return;if(G("before:highlightElement",{el:n,language:h}),n.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",n);return}if(n.children.length>0&&(r.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(n)),r.throwUnescapedHTML))throw new re("One of your code blocks includes unescaped HTML.",n.innerHTML);a=n;let p=a.textContent,M=h?w(p,{language:h,ignoreIllegals:!0}):V(p);n.innerHTML=M.value,n.dataset.highlighted="yes",Pe(n,h,M.language),n.result={language:M.language,re:M.relevance,relevance:M.relevance},M.secondBest&&(n.secondBest={language:M.secondBest.language,relevance:M.secondBest.relevance}),G("after:highlightElement",{el:n,result:M,text:p})}function je(n){r=xe(r,n)}let He=()=>{$(),L("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function Ue(){$(),L("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let le=!1;function $(){if(document.readyState==="loading"){le=!0;return}document.querySelectorAll(r.cssSelector).forEach(q)}function $e(){le&&$()}typeof window<"u"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",$e,!1);function Ge(n,a){let h=null;try{h=a(e)}catch(p){if(v("Language definition for '{}' could not be registered.".replace("{}",n)),b)v(p);else throw p;h=c}h.name||(h.name=n),t[n]=h,h.rawDefinition=a.bind(null,e),h.aliases&&ue(h.aliases,{languageName:n})}function We(n){delete t[n];for(let a of Object.keys(i))i[a]===n&&delete i[a]}function Ke(){return Object.keys(t)}function I(n){return n=(n||"").toLowerCase(),t[n]||t[i[n]]}function ue(n,{languageName:a}){typeof n=="string"&&(n=[n]),n.forEach(h=>{i[h.toLowerCase()]=a})}function fe(n){let a=I(n);return a&&!a.disableAutodetect}function ze(n){n["before:highlightBlock"]&&!n["before:highlightElement"]&&(n["before:highlightElement"]=a=>{n["before:highlightBlock"](Object.assign({block:a.el},a))}),n["after:highlightBlock"]&&!n["after:highlightElement"]&&(n["after:highlightElement"]=a=>{n["after:highlightBlock"](Object.assign({block:a.el},a))})}function Fe(n){ze(n),u.push(n)}function Xe(n){let a=u.indexOf(n);a!==-1&&u.splice(a,1)}function G(n,a){let h=n;u.forEach(function(p){p[h]&&p[h](a)})}function Ye(n){return L("10.7.0","highlightBlock will be removed entirely in v12.0"),L("10.7.0","Please use highlightElement now."),q(n)}Object.assign(e,{highlight:w,highlightAuto:V,highlightAll:$,highlightElement:q,highlightBlock:Ye,configure:je,initHighlighting:He,initHighlightingOnLoad:Ue,registerLanguage:Ge,unregisterLanguage:We,listLanguages:Ke,getLanguage:I,registerAliases:ue,autoDetection:fe,inherit:xe,addPlugin:Fe,removePlugin:Xe}),e.debugMode=function(){b=!1},e.safeMode=function(){b=!0},e.versionString=Kt,e.regex={concat:C,lookahead:Se,either:ce,optional:rt,anyNumberOfTimes:st};for(let n in F)typeof F[n]=="object"&&ye(F[n]);return Object.assign(e,F),e},P=Ce({});P.newInstance=()=>Ce({});Le.exports=P;P.HighlightJS=P;P.default=P});export default Ft(); diff --git a/matchbox-server/src/main/resources/static/browser/chunk-JL4BMBRH.js b/matchbox-server/src/main/resources/static/browser/chunk-JL4BMBRH.js new file mode 100644 index 00000000000..6e6ac9d8229 --- /dev/null +++ b/matchbox-server/src/main/resources/static/browser/chunk-JL4BMBRH.js @@ -0,0 +1,11 @@ +import{a as G,b as oe,g as Z}from"./chunk-TSRGIXR5.js";function Cs(e,t){return Object.is(e,t)}var ee=null,qr=!1,_s=1,me=Symbol("SIGNAL");function O(e){let t=ee;return ee=e,t}function Ms(){return ee}var an={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:"unknown",producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function Kn(e){if(qr)throw new Error("");if(ee===null)return;ee.consumerOnSignalRead(e);let t=ee.nextProducerIndex++;if(Jr(ee),te.nextProducerIndex;)e.producerNode.pop(),e.producerLastReadVersion.pop(),e.producerIndexOfThis.pop()}}function Qr(e){Jr(e);for(let t=0;t0}function Jr(e){e.producerNode??=[],e.producerIndexOfThis??=[],e.producerLastReadVersion??=[]}function dl(e){e.liveConsumerNode??=[],e.liveConsumerIndexOfThis??=[]}function fl(e){return e.producerNode!==void 0}function Xr(e,t){let n=Object.create(zg);n.computation=e,t!==void 0&&(n.equal=t);let r=()=>{if(Ts(n),Kn(n),n.value===Zr)throw n.error;return n.value};return r[me]=n,r}var ws=Symbol("UNSET"),Is=Symbol("COMPUTING"),Zr=Symbol("ERRORED"),zg=oe(G({},an),{value:ws,dirty:!0,error:null,equal:Cs,kind:"computed",producerMustRecompute(e){return e.value===ws||e.value===Is},producerRecomputeValue(e){if(e.value===Is)throw new Error("Detected cycle in computations.");let t=e.value;e.value=Is;let n=Jn(e),r,o=!1;try{r=e.computation(),O(null),o=t!==ws&&t!==Zr&&r!==Zr&&e.equal(t,r)}catch(i){r=Zr,e.error=i}finally{Yr(e,n)}if(o){e.value=t;return}e.value=r,e.version++}});function Gg(){throw new Error}var pl=Gg;function hl(e){pl(e)}function xs(e){pl=e}var Wg=null;function As(e,t){let n=Object.create(eo);n.value=e,t!==void 0&&(n.equal=t);let r=()=>(Kn(n),n.value);return r[me]=n,r}function er(e,t){Ns()||hl(e),e.equal(e.value,t)||(e.value=t,qg(e))}function Rs(e,t){Ns()||hl(e),er(e,t(e.value))}var eo=oe(G({},an),{equal:Cs,value:void 0,kind:"signal"});function qg(e){e.version++,ul(),Ss(e),Wg?.()}function Os(e){let t=O(null);try{return e()}finally{O(t)}}var ks;function tr(){return ks}function rt(e){let t=ks;return ks=e,t}var to=Symbol("NotFound");function S(e){return typeof e=="function"}function Dt(e){let n=e(r=>{Error.call(r),r.stack=new Error().stack});return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var no=Dt(e=>function(n){e(this),this.message=n?`${n.length} errors occurred during unsubscription: +${n.map((r,o)=>`${o+1}) ${r.toString()}`).join(` + `)}`:"",this.name="UnsubscriptionError",this.errors=n});function Nt(e,t){if(e){let n=e.indexOf(t);0<=n&&e.splice(n,1)}}var Y=class e{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;let{_parentage:n}=this;if(n)if(this._parentage=null,Array.isArray(n))for(let i of n)i.remove(this);else n.remove(this);let{initialTeardown:r}=this;if(S(r))try{r()}catch(i){t=i instanceof no?i.errors:[i]}let{_finalizers:o}=this;if(o){this._finalizers=null;for(let i of o)try{gl(i)}catch(s){t=t??[],s instanceof no?t=[...t,...s.errors]:t.push(s)}}if(t)throw new no(t)}}add(t){var n;if(t&&t!==this)if(this.closed)gl(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(n=this._finalizers)!==null&&n!==void 0?n:[]).push(t)}}_hasParent(t){let{_parentage:n}=this;return n===t||Array.isArray(n)&&n.includes(t)}_addParent(t){let{_parentage:n}=this;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t}_removeParent(t){let{_parentage:n}=this;n===t?this._parentage=null:Array.isArray(n)&&Nt(n,t)}remove(t){let{_finalizers:n}=this;n&&Nt(n,t),t instanceof e&&t._removeParent(this)}};Y.EMPTY=(()=>{let e=new Y;return e.closed=!0,e})();var Fs=Y.EMPTY;function ro(e){return e instanceof Y||e&&"closed"in e&&S(e.remove)&&S(e.add)&&S(e.unsubscribe)}function gl(e){S(e)?e():e.unsubscribe()}var Oe={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var cn={setTimeout(e,t,...n){let{delegate:r}=cn;return r?.setTimeout?r.setTimeout(e,t,...n):setTimeout(e,t,...n)},clearTimeout(e){let{delegate:t}=cn;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function oo(e){cn.setTimeout(()=>{let{onUnhandledError:t}=Oe;if(t)t(e);else throw e})}function xt(){}var ml=Ps("C",void 0,void 0);function yl(e){return Ps("E",void 0,e)}function vl(e){return Ps("N",e,void 0)}function Ps(e,t,n){return{kind:e,value:t,error:n}}var At=null;function un(e){if(Oe.useDeprecatedSynchronousErrorHandling){let t=!At;if(t&&(At={errorThrown:!1,error:null}),e(),t){let{errorThrown:n,error:r}=At;if(At=null,n)throw r}}else e()}function Dl(e){Oe.useDeprecatedSynchronousErrorHandling&&At&&(At.errorThrown=!0,At.error=e)}var Rt=class extends Y{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,ro(t)&&t.add(this)):this.destination=Xg}static create(t,n,r){return new ke(t,n,r)}next(t){this.isStopped?js(vl(t),this):this._next(t)}error(t){this.isStopped?js(yl(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?js(ml,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}},Kg=Function.prototype.bind;function Ls(e,t){return Kg.call(e,t)}var Vs=class{constructor(t){this.partialObserver=t}next(t){let{partialObserver:n}=this;if(n.next)try{n.next(t)}catch(r){io(r)}}error(t){let{partialObserver:n}=this;if(n.error)try{n.error(t)}catch(r){io(r)}else io(t)}complete(){let{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(n){io(n)}}},ke=class extends Rt{constructor(t,n,r){super();let o;if(S(t)||!t)o={next:t??void 0,error:n??void 0,complete:r??void 0};else{let i;this&&Oe.useDeprecatedNextContext?(i=Object.create(t),i.unsubscribe=()=>this.unsubscribe(),o={next:t.next&&Ls(t.next,i),error:t.error&&Ls(t.error,i),complete:t.complete&&Ls(t.complete,i)}):o=t}this.destination=new Vs(o)}};function io(e){Oe.useDeprecatedSynchronousErrorHandling?Dl(e):oo(e)}function Jg(e){throw e}function js(e,t){let{onStoppedNotification:n}=Oe;n&&cn.setTimeout(()=>n(e,t))}var Xg={closed:!0,next:xt,error:Jg,complete:xt};var ln=typeof Symbol=="function"&&Symbol.observable||"@@observable";function fe(e){return e}function em(...e){return Bs(e)}function Bs(e){return e.length===0?fe:e.length===1?e[0]:function(n){return e.reduce((r,o)=>o(r),n)}}var F=(()=>{class e{constructor(n){n&&(this._subscribe=n)}lift(n){let r=new e;return r.source=this,r.operator=n,r}subscribe(n,r,o){let i=nm(n)?n:new ke(n,r,o);return un(()=>{let{operator:s,source:a}=this;i.add(s?s.call(i,a):a?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(n){try{return this._subscribe(n)}catch(r){n.error(r)}}forEach(n,r){return r=El(r),new r((o,i)=>{let s=new ke({next:a=>{try{n(a)}catch(c){i(c),s.unsubscribe()}},error:i,complete:o});this.subscribe(s)})}_subscribe(n){var r;return(r=this.source)===null||r===void 0?void 0:r.subscribe(n)}[ln](){return this}pipe(...n){return Bs(n)(this)}toPromise(n){return n=El(n),new n((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=t=>new e(t),e})();function El(e){var t;return(t=e??Oe.Promise)!==null&&t!==void 0?t:Promise}function tm(e){return e&&S(e.next)&&S(e.error)&&S(e.complete)}function nm(e){return e&&e instanceof Rt||tm(e)&&ro(e)}function Hs(e){return S(e?.lift)}function C(e){return t=>{if(Hs(t))return t.lift(function(n){try{return e(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function I(e,t,n,r,o){return new Us(e,t,n,r,o)}var Us=class extends Rt{constructor(t,n,r,o,i,s){super(t),this.onFinalize=i,this.shouldUnsubscribe=s,this._next=n?function(a){try{n(a)}catch(c){t.error(c)}}:super._next,this._error=o?function(a){try{o(a)}catch(c){t.error(c)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(a){t.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){let{closed:n}=this;super.unsubscribe(),!n&&((t=this.onFinalize)===null||t===void 0||t.call(this))}}};function $s(){return C((e,t)=>{let n=null;e._refCount++;let r=I(t,void 0,void 0,void 0,()=>{if(!e||e._refCount<=0||0<--e._refCount){n=null;return}let o=e._connection,i=n;n=null,o&&(!i||o===i)&&o.unsubscribe(),t.unsubscribe()});e.subscribe(r),r.closed||(n=e.connect())})}var zs=class extends F{constructor(t,n){super(),this.source=t,this.subjectFactory=n,this._subject=null,this._refCount=0,this._connection=null,Hs(t)&&(this.lift=t.lift)}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){let t=this._subject;return(!t||t.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;let{_connection:t}=this;this._subject=this._connection=null,t?.unsubscribe()}connect(){let t=this._connection;if(!t){t=this._connection=new Y;let n=this.getSubject();t.add(this.source.subscribe(I(n,void 0,()=>{this._teardown(),n.complete()},r=>{this._teardown(),n.error(r)},()=>this._teardown()))),t.closed&&(this._connection=null,t=Y.EMPTY)}return t}refCount(){return $s()(this)}};var wl=Dt(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var ye=(()=>{class e extends F{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(n){let r=new so(this,this);return r.operator=n,r}_throwIfClosed(){if(this.closed)throw new wl}next(n){un(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let r of this.currentObservers)r.next(n)}})}error(n){un(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=n;let{observers:r}=this;for(;r.length;)r.shift().error(n)}})}complete(){un(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:n}=this;for(;n.length;)n.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var n;return((n=this.observers)===null||n===void 0?void 0:n.length)>0}_trySubscribe(n){return this._throwIfClosed(),super._trySubscribe(n)}_subscribe(n){return this._throwIfClosed(),this._checkFinalizedStatuses(n),this._innerSubscribe(n)}_innerSubscribe(n){let{hasError:r,isStopped:o,observers:i}=this;return r||o?Fs:(this.currentObservers=null,i.push(n),new Y(()=>{this.currentObservers=null,Nt(i,n)}))}_checkFinalizedStatuses(n){let{hasError:r,thrownError:o,isStopped:i}=this;r?n.error(o):i&&n.complete()}asObservable(){let n=new F;return n.source=this,n}}return e.create=(t,n)=>new so(t,n),e})(),so=class extends ye{constructor(t,n){super(),this.destination=t,this.source=n}next(t){var n,r;(r=(n=this.destination)===null||n===void 0?void 0:n.next)===null||r===void 0||r.call(n,t)}error(t){var n,r;(r=(n=this.destination)===null||n===void 0?void 0:n.error)===null||r===void 0||r.call(n,t)}complete(){var t,n;(n=(t=this.destination)===null||t===void 0?void 0:t.complete)===null||n===void 0||n.call(t)}_subscribe(t){var n,r;return(r=(n=this.source)===null||n===void 0?void 0:n.subscribe(t))!==null&&r!==void 0?r:Fs}};var Ot=class extends ye{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){let n=super._subscribe(t);return!n.closed&&t.next(this._value),n}getValue(){let{hasError:t,thrownError:n,_value:r}=this;if(t)throw n;return this._throwIfClosed(),r}next(t){super.next(this._value=t)}};var nr={now(){return(nr.delegate||Date).now()},delegate:void 0};var rr=class extends ye{constructor(t=1/0,n=1/0,r=nr){super(),this._bufferSize=t,this._windowTime=n,this._timestampProvider=r,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=n===1/0,this._bufferSize=Math.max(1,t),this._windowTime=Math.max(1,n)}next(t){let{isStopped:n,_buffer:r,_infiniteTimeWindow:o,_timestampProvider:i,_windowTime:s}=this;n||(r.push(t),!o&&r.push(i.now()+s)),this._trimBuffer(),super.next(t)}_subscribe(t){this._throwIfClosed(),this._trimBuffer();let n=this._innerSubscribe(t),{_infiniteTimeWindow:r,_buffer:o}=this,i=o.slice();for(let s=0;se.complete());function lo(e){return e&&S(e.schedule)}function Gs(e){return e[e.length-1]}function fo(e){return S(Gs(e))?e.pop():void 0}function ze(e){return lo(Gs(e))?e.pop():void 0}function bl(e,t){return typeof Gs(e)=="number"?e.pop():t}function _l(e,t,n,r){function o(i){return i instanceof n?i:new n(function(s){s(i)})}return new(n||(n=Promise))(function(i,s){function a(l){try{u(r.next(l))}catch(f){s(f)}}function c(l){try{u(r.throw(l))}catch(f){s(f)}}function u(l){l.done?i(l.value):o(l.value).then(a,c)}u((r=r.apply(e,t||[])).next())})}function Cl(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function kt(e){return this instanceof kt?(this.v=e,this):new kt(e)}function Ml(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),o,i=[];return o=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(d){return function(h){return Promise.resolve(h).then(d,f)}}function a(d,h){r[d]&&(o[d]=function(g){return new Promise(function(w,x){i.push([d,g,w,x])>1||c(d,g)})},h&&(o[d]=h(o[d])))}function c(d,h){try{u(r[d](h))}catch(g){p(i[0][3],g)}}function u(d){d.value instanceof kt?Promise.resolve(d.value.v).then(l,f):p(i[0][2],d)}function l(d){c("next",d)}function f(d){c("throw",d)}function p(d,h){d(h),i.shift(),i.length&&c(i[0][0],i[0][1])}}function Tl(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof Cl=="function"?Cl(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(i){n[i]=e[i]&&function(s){return new Promise(function(a,c){s=e[i](s),o(a,c,s.done,s.value)})}}function o(i,s,a,c){Promise.resolve(c).then(function(u){i({value:u,done:a})},s)}}var po=e=>e&&typeof e.length=="number"&&typeof e!="function";function ho(e){return S(e?.then)}function go(e){return S(e[ln])}function mo(e){return Symbol.asyncIterator&&S(e?.[Symbol.asyncIterator])}function yo(e){return new TypeError(`You provided ${e!==null&&typeof e=="object"?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}function rm(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var vo=rm();function Do(e){return S(e?.[vo])}function Eo(e){return Ml(this,arguments,function*(){let n=e.getReader();try{for(;;){let{value:r,done:o}=yield kt(n.read());if(o)return yield kt(void 0);yield yield kt(r)}}finally{n.releaseLock()}})}function wo(e){return S(e?.getReader)}function P(e){if(e instanceof F)return e;if(e!=null){if(go(e))return om(e);if(po(e))return im(e);if(ho(e))return sm(e);if(mo(e))return Sl(e);if(Do(e))return am(e);if(wo(e))return cm(e)}throw yo(e)}function om(e){return new F(t=>{let n=e[ln]();if(S(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function im(e){return new F(t=>{for(let n=0;n{e.then(n=>{t.closed||(t.next(n),t.complete())},n=>t.error(n)).then(null,oo)})}function am(e){return new F(t=>{for(let n of e)if(t.next(n),t.closed)return;t.complete()})}function Sl(e){return new F(t=>{um(e,t).catch(n=>t.error(n))})}function cm(e){return Sl(Eo(e))}function um(e,t){var n,r,o,i;return _l(this,void 0,void 0,function*(){try{for(n=Tl(e);r=yield n.next(),!r.done;){let s=r.value;if(t.next(s),t.closed)return}}catch(s){o={error:s}}finally{try{r&&!r.done&&(i=n.return)&&(yield i.call(n))}finally{if(o)throw o.error}}t.complete()})}function ae(e,t,n,r=0,o=!1){let i=t.schedule(function(){n(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}function Io(e,t=0){return C((n,r)=>{n.subscribe(I(r,o=>ae(r,e,()=>r.next(o),t),()=>ae(r,e,()=>r.complete(),t),o=>ae(r,e,()=>r.error(o),t)))})}function bo(e,t=0){return C((n,r)=>{r.add(e.schedule(()=>n.subscribe(r),t))})}function Nl(e,t){return P(e).pipe(bo(t),Io(t))}function xl(e,t){return P(e).pipe(bo(t),Io(t))}function Al(e,t){return new F(n=>{let r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function Rl(e,t){return new F(n=>{let r;return ae(n,t,()=>{r=e[vo](),ae(n,t,()=>{let o,i;try{({value:o,done:i}=r.next())}catch(s){n.error(s);return}i?n.complete():n.next(o)},0,!0)}),()=>S(r?.return)&&r.return()})}function Co(e,t){if(!e)throw new Error("Iterable cannot be null");return new F(n=>{ae(n,t,()=>{let r=e[Symbol.asyncIterator]();ae(n,t,()=>{r.next().then(o=>{o.done?n.complete():n.next(o.value)})},0,!0)})})}function Ol(e,t){return Co(Eo(e),t)}function kl(e,t){if(e!=null){if(go(e))return Nl(e,t);if(po(e))return Al(e,t);if(ho(e))return xl(e,t);if(mo(e))return Co(e,t);if(Do(e))return Rl(e,t);if(wo(e))return Ol(e,t)}throw yo(e)}function pe(e,t){return t?kl(e,t):P(e)}function _o(...e){let t=ze(e);return pe(e,t)}function Ft(e,t){let n=S(e)?e:()=>e,r=o=>o.error(n());return new F(t?o=>t.schedule(r,0,o):r)}function lm(e){return!!e&&(e instanceof F||S(e.lift)&&S(e.subscribe))}var it=Dt(e=>function(){e(this),this.name="EmptyError",this.message="no elements in sequence"});function Ws(e,t){let n=typeof t=="object";return new Promise((r,o)=>{let i=new ke({next:s=>{r(s),i.unsubscribe()},error:o,complete:()=>{n?r(t.defaultValue):o(new it)}});e.subscribe(i)})}function Mo(e){return e instanceof Date&&!isNaN(e)}var dm=Dt(e=>function(n=null){e(this),this.message="Timeout has occurred",this.name="TimeoutError",this.info=n});function fm(e,t){let{first:n,each:r,with:o=pm,scheduler:i=t??ot,meta:s=null}=Mo(e)?{first:e}:typeof e=="number"?{each:e}:e;if(n==null&&r==null)throw new TypeError("No timeout provided.");return C((a,c)=>{let u,l,f=null,p=0,d=h=>{l=ae(c,i,()=>{try{u.unsubscribe(),P(o({meta:s,lastValue:f,seen:p})).subscribe(c)}catch(g){c.error(g)}},h)};u=a.subscribe(I(c,h=>{l?.unsubscribe(),p++,c.next(f=h),r>0&&d(r)},void 0,void 0,()=>{l?.closed||l?.unsubscribe(),f=null})),!p&&d(n!=null?typeof n=="number"?n:+n-i.now():r)})}function pm(e){throw new dm(e)}function ne(e,t){return C((n,r)=>{let o=0;n.subscribe(I(r,i=>{r.next(e.call(t,i,o++))}))})}var{isArray:hm}=Array;function gm(e,t){return hm(t)?e(...t):e(t)}function To(e){return ne(t=>gm(e,t))}var{isArray:mm}=Array,{getPrototypeOf:ym,prototype:vm,keys:Dm}=Object;function So(e){if(e.length===1){let t=e[0];if(mm(t))return{args:t,keys:null};if(Em(t)){let n=Dm(t);return{args:n.map(r=>t[r]),keys:n}}}return{args:e,keys:null}}function Em(e){return e&&typeof e=="object"&&ym(e)===vm}function No(e,t){return e.reduce((n,r,o)=>(n[r]=t[o],n),{})}function wm(...e){let t=ze(e),n=fo(e),{args:r,keys:o}=So(e);if(r.length===0)return pe([],t);let i=new F(Im(r,t,o?s=>No(o,s):fe));return n?i.pipe(To(n)):i}function Im(e,t,n=fe){return r=>{Fl(t,()=>{let{length:o}=e,i=new Array(o),s=o,a=o;for(let c=0;c{let u=pe(e[c],t),l=!1;u.subscribe(I(r,f=>{i[c]=f,l||(l=!0,a--),a||r.next(n(i.slice()))},()=>{--s||r.complete()}))},r)},r)}}function Fl(e,t,n){e?ae(n,e,t):t()}function Pl(e,t,n,r,o,i,s,a){let c=[],u=0,l=0,f=!1,p=()=>{f&&!c.length&&!u&&t.complete()},d=g=>u{i&&t.next(g),u++;let w=!1;P(n(g,l++)).subscribe(I(t,x=>{o?.(x),i?d(x):t.next(x)},()=>{w=!0},void 0,()=>{if(w)try{for(u--;c.length&&uh(x)):h(x)}p()}catch(x){t.error(x)}}))};return e.subscribe(I(t,d,()=>{f=!0,p()})),()=>{a?.()}}function st(e,t,n=1/0){return S(t)?st((r,o)=>ne((i,s)=>t(r,i,o,s))(P(e(r,o))),n):(typeof t=="number"&&(n=t),C((r,o)=>Pl(r,o,e,n)))}function ir(e=1/0){return st(fe,e)}function Ll(){return ir(1)}function fn(...e){return Ll()(pe(e,ze(e)))}function bm(e){return new F(t=>{P(e()).subscribe(t)})}function qs(...e){let t=fo(e),{args:n,keys:r}=So(e),o=new F(i=>{let{length:s}=n;if(!s){i.complete();return}let a=new Array(s),c=s,u=s;for(let l=0;l{f||(f=!0,u--),a[l]=p},()=>c--,void 0,()=>{(!c||!f)&&(u||i.next(r?No(r,a):a),i.complete())}))}});return t?o.pipe(To(t)):o}function sr(e=0,t,n=Il){let r=-1;return t!=null&&(lo(t)?n=t:r=t),new F(o=>{let i=Mo(e)?+e-n.now():e;i<0&&(i=0);let s=0;return n.schedule(function(){o.closed||(o.next(s++),0<=r?this.schedule(void 0,r):o.complete())},i)})}function Cm(...e){let t=ze(e),n=bl(e,1/0),r=e;return r.length?r.length===1?P(r[0]):ir(n)(pe(r,t)):$e}var{isArray:_m}=Array;function jl(e){return e.length===1&&_m(e[0])?e[0]:e}function be(e,t){return C((n,r)=>{let o=0;n.subscribe(I(r,i=>e.call(t,i,o++)&&r.next(i)))})}function Mm(...e){return e=jl(e),e.length===1?P(e[0]):new F(Tm(e))}function Tm(e){return t=>{let n=[];for(let r=0;n&&!t.closed&&r{if(n){for(let i=0;i{let r=!1,o=null,i=null,s=!1,a=()=>{if(i?.unsubscribe(),i=null,r){r=!1;let u=o;o=null,n.next(u)}s&&n.complete()},c=()=>{i=null,s&&n.complete()};t.subscribe(I(n,u=>{r=!0,o=u,i||P(e(u)).subscribe(i=I(n,a,c))},()=>{s=!0,(!r||!i||i.closed)&&n.complete()}))})}function Sm(e,t=ot){return Vl(()=>sr(e,t))}function ar(e){return C((t,n)=>{let r=null,o=!1,i;r=t.subscribe(I(n,void 0,void 0,s=>{i=P(e(s,ar(e)(t))),r?(r.unsubscribe(),r=null,i.subscribe(n)):o=!0})),o&&(r.unsubscribe(),r=null,i.subscribe(n))})}function Bl(e,t,n,r,o){return(i,s)=>{let a=n,c=t,u=0;i.subscribe(I(s,l=>{let f=u++;c=a?e(c,l,f):(a=!0,l),r&&s.next(c)},o&&(()=>{a&&s.next(c),s.complete()})))}}function Zs(e,t){return S(t)?st(e,t,1):st(e,1)}function Nm(e,t=ot){return C((n,r)=>{let o=null,i=null,s=null,a=()=>{if(o){o.unsubscribe(),o=null;let u=i;i=null,r.next(u)}};function c(){let u=s+e,l=t.now();if(l{i=u,s=t.now(),o||(o=t.schedule(c,e),r.add(o))},()=>{a(),r.complete()},void 0,()=>{i=o=null}))})}function cr(e){return C((t,n)=>{let r=!1;t.subscribe(I(n,o=>{r=!0,n.next(o)},()=>{r||n.next(e),n.complete()}))})}function pn(e){return e<=0?()=>$e:C((t,n)=>{let r=0;t.subscribe(I(n,o=>{++r<=e&&(n.next(o),e<=r&&n.complete())}))})}function Hl(){return C((e,t)=>{e.subscribe(I(t,xt))})}function Ys(e){return ne(()=>e)}function Qs(e,t){return t?n=>fn(t.pipe(pn(1),Hl()),n.pipe(Qs(e))):st((n,r)=>P(e(n,r)).pipe(pn(1),Ys(n)))}function xm(e,t=ot){let n=sr(e,t);return Qs(()=>n)}function Am(e,t=fe){return e=e??Rm,C((n,r)=>{let o,i=!0;n.subscribe(I(r,s=>{let a=t(s);(i||!e(o,a))&&(i=!1,o=a,r.next(s))}))})}function Rm(e,t){return e===t}function xo(e=Om){return C((t,n)=>{let r=!1;t.subscribe(I(n,o=>{r=!0,n.next(o)},()=>r?n.complete():n.error(e())))})}function Om(){return new it}function Ao(e){return C((t,n)=>{try{t.subscribe(n)}finally{n.add(e)}})}function km(e,t){let n=arguments.length>=2;return r=>r.pipe(e?be((o,i)=>e(o,i,r)):fe,pn(1),n?cr(t):xo(()=>new it))}function Ks(e){return e<=0?()=>$e:C((t,n)=>{let r=[];t.subscribe(I(n,o=>{r.push(o),e{for(let o of r)n.next(o);n.complete()},void 0,()=>{r=null}))})}function Fm(e,t){let n=arguments.length>=2;return r=>r.pipe(e?be((o,i)=>e(o,i,r)):fe,Ks(1),n?cr(t):xo(()=>new it))}function Pm(){return C((e,t)=>{let n,r=!1;e.subscribe(I(t,o=>{let i=n;n=o,r&&t.next([i,o]),r=!0}))})}function Lm(e,t){return C(Bl(e,t,arguments.length>=2,!0))}function Xs(e={}){let{connector:t=()=>new ye,resetOnError:n=!0,resetOnComplete:r=!0,resetOnRefCountZero:o=!0}=e;return i=>{let s,a,c,u=0,l=!1,f=!1,p=()=>{a?.unsubscribe(),a=void 0},d=()=>{p(),s=c=void 0,l=f=!1},h=()=>{let g=s;d(),g?.unsubscribe()};return C((g,w)=>{u++,!f&&!l&&p();let x=c=c??t();w.add(()=>{u--,u===0&&!f&&!l&&(a=Js(h,o))}),x.subscribe(w),!s&&u>0&&(s=new ke({next:ie=>x.next(ie),error:ie=>{f=!0,p(),a=Js(d,n,ie),x.error(ie)},complete:()=>{l=!0,p(),a=Js(d,r),x.complete()}}),P(g).subscribe(s))})(i)}}function Js(e,t,...n){if(t===!0){e();return}if(t===!1)return;let r=new ke({next:()=>{r.unsubscribe(),e()}});return P(t(...n)).subscribe(r)}function jm(e,t,n){let r,o=!1;return e&&typeof e=="object"?{bufferSize:r=1/0,windowTime:t=1/0,refCount:o=!1,scheduler:n}=e:r=e??1/0,Xs({connector:()=>new rr(r,t,n),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:o})}function Vm(e){return be((t,n)=>e<=n)}function Bm(...e){let t=ze(e);return C((n,r)=>{(t?fn(e,n,t):fn(e,n)).subscribe(r)})}function Pt(e,t){return C((n,r)=>{let o=null,i=0,s=!1,a=()=>s&&!o&&r.complete();n.subscribe(I(r,c=>{o?.unsubscribe();let u=0,l=i++;P(e(c,l)).subscribe(o=I(r,f=>r.next(t?t(c,f,l,u++):f),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function Hm(e){return C((t,n)=>{P(e).subscribe(I(n,()=>n.complete(),xt)),!n.closed&&t.subscribe(n)})}function Um(e,t=!1){return C((n,r)=>{let o=0;n.subscribe(I(r,i=>{let s=e(i,o++);(s||t)&&r.next(i),!s&&r.complete()}))})}function ur(e,t,n){let r=S(e)||t||n?{next:e,error:t,complete:n}:e;return r?C((o,i)=>{var s;(s=r.subscribe)===null||s===void 0||s.call(r);let a=!0;o.subscribe(I(i,c=>{var u;(u=r.next)===null||u===void 0||u.call(r,c),i.next(c)},()=>{var c;a=!1,(c=r.complete)===null||c===void 0||c.call(r),i.complete()},c=>{var u;a=!1,(u=r.error)===null||u===void 0||u.call(r,c),i.error(c)},()=>{var c,u;a&&((c=r.unsubscribe)===null||c===void 0||c.call(r)),(u=r.finalize)===null||u===void 0||u.call(r)}))}):fe}var Fd="https://angular.dev/best-practices/security#preventing-cross-site-scripting-xss",v=class extends Error{code;constructor(t,n){super(Cc(t,n)),this.code=t}};function $m(e){return`NG0${Math.abs(e)}`}function Cc(e,t){return`${$m(e)}${t?": "+t:""}`}var Pd=Symbol("InputSignalNode#UNSET"),zm=oe(G({},eo),{transformFn:void 0,applyValueToInputSignal(e,t){er(e,t)}});function Ld(e,t){let n=Object.create(zm);n.value=e,n.transformFn=t?.transform;function r(){if(Kn(n),n.value===Pd){let o=null;throw new v(-950,o)}return n.value}return r[me]=n,r}function br(e){return{toString:e}.toString()}var Ro="__parameters__";function Gm(e){return function(...n){if(e){let r=e(...n);for(let o in r)this[o]=r[o]}}}function jd(e,t,n){return br(()=>{let r=Gm(t);function o(...i){if(this instanceof o)return r.apply(this,i),this;let s=new o(...i);return a.annotation=s,a;function a(c,u,l){let f=c.hasOwnProperty(Ro)?c[Ro]:Object.defineProperty(c,Ro,{value:[]})[Ro];for(;f.length<=l;)f.push(null);return(f[l]=f[l]||[]).push(s),c}}return o.prototype.ngMetadataName=e,o.annotationCls=o,o})}var re=globalThis;function j(e){for(let t in e)if(e[t]===j)return t;throw Error("Could not find renamed property on target object.")}function Wm(e,t){for(let n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n])}function De(e){if(typeof e=="string")return e;if(Array.isArray(e))return`[${e.map(De).join(", ")}]`;if(e==null)return""+e;let t=e.overriddenName||e.name;if(t)return`${t}`;let n=e.toString();if(n==null)return""+n;let r=n.indexOf(` +`);return r>=0?n.slice(0,r):n}function ga(e,t){return e?t?`${e} ${t}`:e:t||""}var qm=j({__forward_ref__:j});function Vd(e){return e.__forward_ref__=Vd,e.toString=function(){return De(this())},e}function he(e){return Bd(e)?e():e}function Bd(e){return typeof e=="function"&&e.hasOwnProperty(qm)&&e.__forward_ref__===Vd}function M(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function lt(e){return{providers:e.providers||[],imports:e.imports||[]}}function Di(e){return Ul(e,Hd)||Ul(e,Ud)}function KA(e){return Di(e)!==null}function Ul(e,t){return e.hasOwnProperty(t)?e[t]:null}function Zm(e){let t=e&&(e[Hd]||e[Ud]);return t||null}function $l(e){return e&&(e.hasOwnProperty(zl)||e.hasOwnProperty(Ym))?e[zl]:null}var Hd=j({\u0275prov:j}),zl=j({\u0275inj:j}),Ud=j({ngInjectableDef:j}),Ym=j({ngInjectorDef:j}),E=class{_desc;ngMetadataName="InjectionToken";\u0275prov;constructor(t,n){this._desc=t,this.\u0275prov=void 0,typeof n=="number"?this.__NG_ELEMENT_ID__=n:n!==void 0&&(this.\u0275prov=M({token:this,providedIn:n.providedIn||"root",factory:n.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}};function $d(e){return e&&!!e.\u0275providers}var Qm=j({\u0275cmp:j}),Km=j({\u0275dir:j}),Jm=j({\u0275pipe:j}),Xm=j({\u0275mod:j}),$o=j({\u0275fac:j}),pr=j({__NG_ELEMENT_ID__:j}),Gl=j({__NG_ENV_ID__:j});function Bt(e){return typeof e=="string"?e:e==null?"":String(e)}function ey(e){return typeof e=="function"?e.name||e.toString():typeof e=="object"&&e!=null&&typeof e.type=="function"?e.type.name||e.type.toString():Bt(e)}function zd(e,t){throw new v(-200,e)}function _c(e,t){throw new v(-201,!1)}var k=function(e){return e[e.Default=0]="Default",e[e.Host=1]="Host",e[e.Self=2]="Self",e[e.SkipSelf=4]="SkipSelf",e[e.Optional=8]="Optional",e}(k||{}),ma;function Gd(){return ma}function ve(e){let t=ma;return ma=e,t}function Wd(e,t,n){let r=Di(e);if(r&&r.providedIn=="root")return r.value===void 0?r.value=r.factory():r.value;if(n&k.Optional)return null;if(t!==void 0)return t;_c(e,"Injector")}var ty={},jt=ty,ya="__NG_DI_FLAG__",zo=class{injector;constructor(t){this.injector=t}retrieve(t,n){let r=n;return this.injector.get(t,r.optional?to:jt,r)}},Go="ngTempTokenPath",ny="ngTokenPath",ry=/\n/gm,oy="\u0275",Wl="__source";function iy(e,t=k.Default){if(tr()===void 0)throw new v(-203,!1);if(tr()===null)return Wd(e,void 0,t);{let n=tr(),r;return n instanceof zo?r=n.injector:r=n,r.get(e,t&k.Optional?null:void 0,t)}}function b(e,t=k.Default){return(Gd()||iy)(he(e),t)}function m(e,t=k.Default){return b(e,Ei(t))}function Ei(e){return typeof e>"u"||typeof e=="number"?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function va(e){let t=[];for(let n=0;n ");else if(typeof t=="object"){let i=[];for(let s in t)if(t.hasOwnProperty(s)){let a=t[s];i.push(s+":"+(typeof a=="string"?JSON.stringify(a):De(a)))}o=`{${i.join(", ")}}`}return`${n}${r?"("+r+")":""}[${o}]: ${e.replace(ry,` + `)}`}var Mc=qd(jd("Optional"),8);var Zd=qd(jd("SkipSelf"),4);function Ht(e,t){let n=e.hasOwnProperty($o);return n?e[$o]:null}function uy(e,t,n){if(e.length!==t.length)return!1;for(let r=0;rArray.isArray(n)?Tc(n,t):t(n))}function Yd(e,t,n){t>=e.length?e.push(n):e.splice(t,0,n)}function Wo(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function dy(e,t){let n=[];for(let r=0;rt;){let i=o-2;e[o]=e[i],o--}e[t]=n,e[t+1]=r}}function wi(e,t,n){let r=Cr(e,t);return r>=0?e[r|1]=n:(r=~r,fy(e,r,t,n)),r}function ea(e,t){let n=Cr(e,t);if(n>=0)return e[n|1]}function Cr(e,t){return py(e,t,1)}function py(e,t,n){let r=0,o=e.length>>n;for(;o!==r;){let i=r+(o-r>>1),s=e[i<t?o=i:r=i+1}return~(o<{n.push(s)};return Tc(t,s=>{let a=s;Da(a,i,[],r)&&(o||=[],o.push(a))}),o!==void 0&&ef(o,i),n}function ef(e,t){for(let n=0;n{t(i,r)})}}function Da(e,t,n,r){if(e=he(e),!e)return!1;let o=null,i=$l(e),s=!i&&It(e);if(!i&&!s){let c=e.ngModule;if(i=$l(c),i)o=c;else return!1}else{if(s&&!s.standalone)return!1;o=e}let a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){let c=typeof s.dependencies=="function"?s.dependencies():s.dependencies;for(let u of c)Da(u,t,n,r)}}else if(i){if(i.imports!=null&&!a){r.add(o);let u;try{Tc(i.imports,l=>{Da(l,t,n,r)&&(u||=[],u.push(l))})}finally{}u!==void 0&&ef(u,t)}if(!a){let u=Ht(o)||(()=>new o);t({provide:o,useFactory:u,deps:ge},o),t({provide:Kd,useValue:o,multi:!0},o),t({provide:hr,useValue:()=>b(o),multi:!0},o)}let c=i.providers;if(c!=null&&!a){let u=e;Sc(c,l=>{t(l,u)})}}else return!1;return o!==e&&e.providers!==void 0}function Sc(e,t){for(let n of e)$d(n)&&(n=n.\u0275providers),Array.isArray(n)?Sc(n,t):t(n)}var yy=j({provide:String,useValue:j});function tf(e){return e!==null&&typeof e=="object"&&yy in e}function vy(e){return!!(e&&e.useExisting)}function Dy(e){return!!(e&&e.useFactory)}function En(e){return typeof e=="function"}function Ey(e){return!!e.useClass}var bi=new E(""),jo={},ql={},ta;function Ci(){return ta===void 0&&(ta=new qo),ta}var qe=class{},gr=class extends qe{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(t,n,r,o){super(),this.parent=n,this.source=r,this.scopes=o,wa(t,s=>this.processProvider(s)),this.records.set(Qd,hn(void 0,this)),o.has("environment")&&this.records.set(qe,hn(void 0,this));let i=this.records.get(bi);i!=null&&typeof i.value=="string"&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(Kd,ge,k.Self))}retrieve(t,n){let r=n;return this.get(t,r.optional?to:jt,r)}destroy(){dr(this),this._destroyed=!0;let t=O(null);try{for(let r of this._ngOnDestroyHooks)r.ngOnDestroy();let n=this._onDestroyHooks;this._onDestroyHooks=[];for(let r of n)r()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),O(t)}}onDestroy(t){return dr(this),this._onDestroyHooks.push(t),()=>this.removeOnDestroy(t)}runInContext(t){dr(this);let n=rt(this),r=ve(void 0),o;try{return t()}finally{rt(n),ve(r)}}get(t,n=jt,r=k.Default){if(dr(this),t.hasOwnProperty(Gl))return t[Gl](this);r=Ei(r);let o,i=rt(this),s=ve(void 0);try{if(!(r&k.SkipSelf)){let c=this.records.get(t);if(c===void 0){let u=_y(t)&&Di(t);u&&this.injectableDefInScope(u)?c=hn(Ea(t),jo):c=null,this.records.set(t,c)}if(c!=null)return this.hydrate(t,c,r)}let a=r&k.Self?Ci():this.parent;return n=r&k.Optional&&n===jt?null:n,a.get(t,n)}catch(a){if(a.name==="NullInjectorError"){if((a[Go]=a[Go]||[]).unshift(De(t)),i)throw a;return ay(a,t,"R3InjectorError",this.source)}else throw a}finally{ve(s),rt(i)}}resolveInjectorInitializers(){let t=O(null),n=rt(this),r=ve(void 0),o;try{let i=this.get(hr,ge,k.Self);for(let s of i)s()}finally{rt(n),ve(r),O(t)}}toString(){let t=[],n=this.records;for(let r of n.keys())t.push(De(r));return`R3Injector[${t.join(", ")}]`}processProvider(t){t=he(t);let n=En(t)?t:he(t&&t.provide),r=Iy(t);if(!En(t)&&t.multi===!0){let o=this.records.get(n);o||(o=hn(void 0,jo,!0),o.factory=()=>va(o.multi),this.records.set(n,o)),n=t,o.multi.push(t)}this.records.set(n,r)}hydrate(t,n,r){let o=O(null);try{return n.value===ql?zd(De(t)):n.value===jo&&(n.value=ql,n.value=n.factory(void 0,r)),typeof n.value=="object"&&n.value&&Cy(n.value)&&this._ngOnDestroyHooks.add(n.value),n.value}finally{O(o)}}injectableDefInScope(t){if(!t.providedIn)return!1;let n=he(t.providedIn);return typeof n=="string"?n==="any"||this.scopes.has(n):this.injectorDefTypes.has(n)}removeOnDestroy(t){let n=this._onDestroyHooks.indexOf(t);n!==-1&&this._onDestroyHooks.splice(n,1)}};function Ea(e){let t=Di(e),n=t!==null?t.factory:Ht(e);if(n!==null)return n;if(e instanceof E)throw new v(204,!1);if(e instanceof Function)return wy(e);throw new v(204,!1)}function wy(e){if(e.length>0)throw new v(204,!1);let n=Zm(e);return n!==null?()=>n.factory(e):()=>new e}function Iy(e){if(tf(e))return hn(void 0,e.useValue);{let t=nf(e);return hn(t,jo)}}function nf(e,t,n){let r;if(En(e)){let o=he(e);return Ht(o)||Ea(o)}else if(tf(e))r=()=>he(e.useValue);else if(Dy(e))r=()=>e.useFactory(...va(e.deps||[]));else if(vy(e))r=(o,i)=>b(he(e.useExisting),i!==void 0&&i&k.Optional?k.Optional:void 0);else{let o=he(e&&(e.useClass||e.provide));if(by(e))r=()=>new o(...va(e.deps));else return Ht(o)||Ea(o)}return r}function dr(e){if(e.destroyed)throw new v(205,!1)}function hn(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function by(e){return!!e.deps}function Cy(e){return e!==null&&typeof e=="object"&&typeof e.ngOnDestroy=="function"}function _y(e){return typeof e=="function"||typeof e=="object"&&e instanceof E}function wa(e,t){for(let n of e)Array.isArray(n)?wa(n,t):n&&$d(n)?wa(n.\u0275providers,t):t(n)}function _i(e,t){let n;e instanceof gr?(dr(e),n=e):n=new zo(e);let r,o=rt(n),i=ve(void 0);try{return t()}finally{rt(o),ve(i)}}function Nc(){return Gd()!==void 0||tr()!=null}function xc(e){if(!Nc())throw new v(-203,!1)}function My(e){let t=re.ng;if(t&&t.\u0275compilerFacade)return t.\u0275compilerFacade;throw new Error("JIT compiler unavailable")}function Ty(e){return typeof e=="function"}var Xe=0,N=1,T=2,ue=3,Le=4,Ee=5,wn=6,Zo=7,te=8,In=9,at=10,U=11,mr=12,Zl=13,xn=14,Ce=15,$t=16,gn=17,ct=18,Mi=19,rf=20,Et=21,na=22,zt=23,Se=24,vn=25,Q=26,Ac=1;var Gt=7,Yo=8,bn=9,ce=10;function wt(e){return Array.isArray(e)&&typeof e[Ac]=="object"}function dt(e){return Array.isArray(e)&&e[Ac]===!0}function Rc(e){return(e.flags&4)!==0}function An(e){return e.componentOffset>-1}function Ti(e){return(e.flags&1)===1}function je(e){return!!e.template}function Qo(e){return(e[T]&512)!==0}function Rn(e){return(e[T]&256)===256}var Ia=class{previousValue;currentValue;firstChange;constructor(t,n,r){this.previousValue=t,this.currentValue=n,this.firstChange=r}isFirstChange(){return this.firstChange}};function of(e,t,n,r){t!==null?t.applyValueToInputSignal(t,r):e[n]=r}var sf=(()=>{let e=()=>af;return e.ngInherit=!0,e})();function af(e){return e.type.prototype.ngOnChanges&&(e.setInput=Ny),Sy}function Sy(){let e=uf(this),t=e?.current;if(t){let n=e.previous;if(n===Ut)e.previous=t;else for(let r in t)n[r]=t[r];e.current=null,this.ngOnChanges(t)}}function Ny(e,t,n,r,o){let i=this.declaredInputs[r],s=uf(e)||xy(e,{previous:Ut,current:null}),a=s.current||(s.current={}),c=s.previous,u=c[i];a[i]=new Ia(u&&u.currentValue,n,c===Ut),of(e,t,o,n)}var cf="__ngSimpleChanges__";function uf(e){return e[cf]||null}function xy(e,t){return e[cf]=t}var Yl=null;var V=function(e,t=null,n){Yl?.(e,t,n)},lf="svg",Ay="math";function Ze(e){for(;Array.isArray(e);)e=e[Xe];return e}function Ry(e){for(;Array.isArray(e);){if(typeof e[Ac]=="object")return e;e=e[Xe]}return null}function df(e,t){return Ze(t[e])}function et(e,t){return Ze(t[e.index])}function Oc(e,t){return e.data[t]}function kc(e,t){return e[t]}function ff(e,t,n,r){n>=e.data.length&&(e.data[n]=null,e.blueprint[n]=null),t[n]=r}function Ye(e,t){let n=t[e];return wt(n)?n:n[Xe]}function Oy(e){return(e[T]&4)===4}function Fc(e){return(e[T]&128)===128}function ky(e){return dt(e[ue])}function bt(e,t){return t==null?null:e[t]}function pf(e){e[gn]=0}function hf(e){e[T]&1024||(e[T]|=1024,Fc(e)&&On(e))}function Fy(e,t){for(;e>0;)t=t[xn],e--;return t}function Si(e){return!!(e[T]&9216||e[Se]?.dirty)}function ba(e){e[at].changeDetectionScheduler?.notify(8),e[T]&64&&(e[T]|=1024),Si(e)&&On(e)}function On(e){e[at].changeDetectionScheduler?.notify(0);let t=Wt(e);for(;t!==null&&!(t[T]&8192||(t[T]|=8192,!Fc(t)));)t=Wt(t)}function gf(e,t){if(Rn(e))throw new v(911,!1);e[Et]===null&&(e[Et]=[]),e[Et].push(t)}function Py(e,t){if(e[Et]===null)return;let n=e[Et].indexOf(t);n!==-1&&e[Et].splice(n,1)}function Wt(e){let t=e[ue];return dt(t)?t[ue]:t}function Pc(e){return e[Zo]??=[]}function Lc(e){return e.cleanup??=[]}function Ly(e,t,n,r){let o=Pc(t);o.push(n),e.firstCreatePass&&Lc(e).push(r,o.length-1)}var A={lFrame:If(null),bindingsEnabled:!0,skipHydrationRootTNode:null};var Ca=!1;function jy(){return A.lFrame.elementDepthCount}function Vy(){A.lFrame.elementDepthCount++}function By(){A.lFrame.elementDepthCount--}function jc(){return A.bindingsEnabled}function mf(){return A.skipHydrationRootTNode!==null}function Hy(e){return A.skipHydrationRootTNode===e}function Uy(){A.skipHydrationRootTNode=null}function _(){return A.lFrame.lView}function B(){return A.lFrame.tView}function JA(e){return A.lFrame.contextLView=e,e[te]}function XA(e){return A.lFrame.contextLView=null,e}function le(){let e=yf();for(;e!==null&&e.type===64;)e=e.parent;return e}function yf(){return A.lFrame.currentTNode}function $y(){let e=A.lFrame,t=e.currentTNode;return e.isParent?t:t.parent}function Ct(e,t){let n=A.lFrame;n.currentTNode=e,n.isParent=t}function Vc(){return A.lFrame.isParent}function Bc(){A.lFrame.isParent=!1}function zy(){return A.lFrame.contextLView}function vf(){return Ca}function Ko(e){let t=Ca;return Ca=e,t}function _r(){let e=A.lFrame,t=e.bindingRootIndex;return t===-1&&(t=e.bindingRootIndex=e.tView.bindingStartIndex),t}function Gy(){return A.lFrame.bindingIndex}function Wy(e){return A.lFrame.bindingIndex=e}function _t(){return A.lFrame.bindingIndex++}function Hc(e){let t=A.lFrame,n=t.bindingIndex;return t.bindingIndex=t.bindingIndex+e,n}function qy(){return A.lFrame.inI18n}function Zy(e,t){let n=A.lFrame;n.bindingIndex=n.bindingRootIndex=e,_a(t)}function Yy(){return A.lFrame.currentDirectiveIndex}function _a(e){A.lFrame.currentDirectiveIndex=e}function Df(e){let t=A.lFrame.currentDirectiveIndex;return t===-1?null:e[t]}function Uc(){return A.lFrame.currentQueryIndex}function Ni(e){A.lFrame.currentQueryIndex=e}function Qy(e){let t=e[N];return t.type===2?t.declTNode:t.type===1?e[Ee]:null}function Ef(e,t,n){if(n&k.SkipSelf){let o=t,i=e;for(;o=o.parent,o===null&&!(n&k.Host);)if(o=Qy(i),o===null||(i=i[xn],o.type&10))break;if(o===null)return!1;t=o,e=i}let r=A.lFrame=wf();return r.currentTNode=t,r.lView=e,!0}function $c(e){let t=wf(),n=e[N];A.lFrame=t,t.currentTNode=n.firstChild,t.lView=e,t.tView=n,t.contextLView=e,t.bindingIndex=n.bindingStartIndex,t.inI18n=!1}function wf(){let e=A.lFrame,t=e===null?null:e.child;return t===null?If(e):t}function If(e){let t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return e!==null&&(e.child=t),t}function bf(){let e=A.lFrame;return A.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}var Cf=bf;function zc(){let e=bf();e.isParent=!0,e.tView=null,e.selectedIndex=-1,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Ky(e){return(A.lFrame.contextLView=Fy(e,A.lFrame.contextLView))[te]}function ft(){return A.lFrame.selectedIndex}function qt(e){A.lFrame.selectedIndex=e}function kn(){let e=A.lFrame;return Oc(e.tView,e.selectedIndex)}function eR(){A.lFrame.currentNamespace=lf}function tR(){Jy()}function Jy(){A.lFrame.currentNamespace=null}function Xy(){return A.lFrame.currentNamespace}var _f=!0;function xi(){return _f}function Ai(e){_f=e}function ev(e,t,n){let{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=t.type.prototype;if(r){let s=af(t);(n.preOrderHooks??=[]).push(e,s),(n.preOrderCheckHooks??=[]).push(e,s)}o&&(n.preOrderHooks??=[]).push(0-e,o),i&&((n.preOrderHooks??=[]).push(e,i),(n.preOrderCheckHooks??=[]).push(e,i))}function Gc(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n=r)break}else t[c]<0&&(e[gn]+=65536),(a>14>16&&(e[T]&3)===t&&(e[T]+=16384,Ql(a,i)):Ql(a,i)}var Dn=-1,Zt=class{factory;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(t,n,r){this.factory=t,this.canSeeViewProviders=n,this.injectImpl=r}};function nv(e){return(e.flags&8)!==0}function rv(e){return(e.flags&16)!==0}function ov(e,t,n){let r=0;for(;rt){s=i-1;break}}}for(;i>16}function Xo(e,t){let n=sv(e),r=t;for(;n>0;)r=r[xn],n--;return r}var Ma=!0;function ei(e){let t=Ma;return Ma=e,t}var av=256,Nf=av-1,xf=5,cv=0,Ge={};function uv(e,t,n){let r;typeof n=="string"?r=n.charCodeAt(0)||0:n.hasOwnProperty(pr)&&(r=n[pr]),r==null&&(r=n[pr]=cv++);let o=r&Nf,i=1<>xf)]|=i}function ti(e,t){let n=Af(e,t);if(n!==-1)return n;let r=t[N];r.firstCreatePass&&(e.injectorIndex=t.length,oa(r.data,e),oa(t,null),oa(r.blueprint,null));let o=Wc(e,t),i=e.injectorIndex;if(Sf(o)){let s=Jo(o),a=Xo(o,t),c=a[N].data;for(let u=0;u<8;u++)t[i+u]=a[s+u]|c[s+u]}return t[i+8]=o,i}function oa(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Af(e,t){return e.injectorIndex===-1||e.parent&&e.parent.injectorIndex===e.injectorIndex||t[e.injectorIndex+8]===null?-1:e.injectorIndex}function Wc(e,t){if(e.parent&&e.parent.injectorIndex!==-1)return e.parent.injectorIndex;let n=0,r=null,o=t;for(;o!==null;){if(r=Lf(o),r===null)return Dn;if(n++,o=o[xn],r.injectorIndex!==-1)return r.injectorIndex|n<<16}return Dn}function Ta(e,t,n){uv(e,t,n)}function lv(e,t){if(t==="class")return e.classes;if(t==="style")return e.styles;let n=e.attrs;if(n){let r=n.length,o=0;for(;o>20,f=r?a:a+l,p=o?a+l:u;for(let d=f;d=c&&h.type===n)return d}if(o){let d=s[c];if(d&&je(d)&&d.type===n)return c}return null}function yr(e,t,n,r,o){let i=e[n],s=t.data;if(i instanceof Zt){let a=i;a.resolving&&zd(ey(s[n]));let c=ei(a.canSeeViewProviders);a.resolving=!0;let u,l=a.injectImpl?ve(a.injectImpl):null,f=Ef(e,r,k.Default);try{i=e[n]=a.factory(void 0,o,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&ev(n,s[n],t)}finally{l!==null&&ve(l),ei(c),a.resolving=!1,Cf()}}return i}function fv(e){if(typeof e=="string")return e.charCodeAt(0)||0;let t=e.hasOwnProperty(pr)?e[pr]:void 0;return typeof t=="number"?t>=0?t&Nf:pv:t}function Jl(e,t,n){let r=1<>xf)]&r)}function Xl(e,t){return!(e&k.Self)&&!(e&k.Host&&t)}var Vt=class{_tNode;_lView;constructor(t,n){this._tNode=t,this._lView=n}get(t,n,r){return kf(this._tNode,this._lView,t,Ei(r),n)}};function pv(){return new Vt(le(),_())}function Pf(e){return br(()=>{let t=e.prototype.constructor,n=t[$o]||Sa(t),r=Object.prototype,o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){let i=o[$o]||Sa(o);if(i&&i!==n)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function Sa(e){return Bd(e)?()=>{let t=Sa(he(e));return t&&t()}:Ht(e)}function hv(e,t,n,r,o){let i=e,s=t;for(;i!==null&&s!==null&&s[T]&2048&&!Qo(s);){let a=Ff(i,s,n,r|k.Self,Ge);if(a!==Ge)return a;let c=i.parent;if(!c){let u=s[rf];if(u){let l=u.get(n,Ge,r);if(l!==Ge)return l}c=Lf(s),s=s[xn]}i=c}return o}function Lf(e){let t=e[N],n=t.type;return n===2?t.declTNode:n===1?e[Ee]:null}function jf(e){return lv(le(),e)}function ed(e,t=null,n=null,r){let o=Vf(e,t,n,r);return o.resolveInjectorInitializers(),o}function Vf(e,t=null,n=null,r,o=new Set){let i=[n||ge,my(e)];return r=r||(typeof e=="object"?void 0:De(e)),new gr(i,t||Ci(),r||null,o)}var _e=class e{static THROW_IF_NOT_FOUND=jt;static NULL=new qo;static create(t,n){if(Array.isArray(t))return ed({name:""},n,t,"");{let r=t.name??"";return ed({name:r},t.parent,t.providers,r)}}static \u0275prov=M({token:e,providedIn:"any",factory:()=>b(Qd)});static __NG_ELEMENT_ID__=-1};var td=class{attributeName;constructor(t){this.attributeName=t}__NG_ELEMENT_ID__=()=>jf(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}},gv=new E("");gv.__NG_ELEMENT_ID__=e=>{let t=le();if(t===null)throw new v(204,!1);if(t.type&2)return t.value;if(e&k.Optional)return null;throw new v(204,!1)};var Bf=!1,Fn=(()=>{class e{static __NG_ELEMENT_ID__=mv;static __NG_ENV_ID__=n=>n}return e})(),ni=class extends Fn{_lView;constructor(t){super(),this._lView=t}onDestroy(t){let n=this._lView;return Rn(n)?(t(),()=>{}):(gf(n,t),()=>Py(n,t))}};function mv(){return new ni(_())}var Yt=class{},qc=new E("",{providedIn:"root",factory:()=>!1});var Hf=new E(""),Uf=new E(""),en=(()=>{class e{taskId=0;pendingTasks=new Set;get _hasPendingTasks(){return this.hasPendingTasks.value}hasPendingTasks=new Ot(!1);add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);let n=this.taskId++;return this.pendingTasks.add(n),n}has(n){return this.pendingTasks.has(n)}remove(n){this.pendingTasks.delete(n),this.pendingTasks.size===0&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static \u0275prov=M({token:e,providedIn:"root",factory:()=>new e})}return e})();var Na=class extends ye{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(t=!1){super(),this.__isAsync=t,Nc()&&(this.destroyRef=m(Fn,{optional:!0})??void 0,this.pendingTasks=m(en,{optional:!0})??void 0)}emit(t){let n=O(null);try{super.next(t)}finally{O(n)}}subscribe(t,n,r){let o=t,i=n||(()=>null),s=r;if(t&&typeof t=="object"){let c=t;o=c.next?.bind(c),i=c.error?.bind(c),s=c.complete?.bind(c)}this.__isAsync&&(i=this.wrapInTimeout(i),o&&(o=this.wrapInTimeout(o)),s&&(s=this.wrapInTimeout(s)));let a=super.subscribe({next:o,error:i,complete:s});return t instanceof Y&&t.add(a),a}wrapInTimeout(t){return n=>{let r=this.pendingTasks?.add();setTimeout(()=>{try{t(n)}finally{r!==void 0&&this.pendingTasks?.remove(r)}})}}},We=Na;function vr(...e){}function $f(e){let t,n;function r(){e=vr;try{n!==void 0&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(n),t!==void 0&&clearTimeout(t)}catch{}}return t=setTimeout(()=>{e(),r()}),typeof requestAnimationFrame=="function"&&(n=requestAnimationFrame(()=>{e(),r()})),()=>r()}function nd(e){return queueMicrotask(()=>e()),()=>{e=vr}}var Zc="isAngularZone",ri=Zc+"_ID",yv=0,z=class e{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new We(!1);onMicrotaskEmpty=new We(!1);onStable=new We(!1);onError=new We(!1);constructor(t){let{enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:r=!1,shouldCoalesceRunChangeDetection:o=!1,scheduleInRootZone:i=Bf}=t;if(typeof Zone>"u")throw new v(908,!1);Zone.assertZonePatched();let s=this;s._nesting=0,s._outer=s._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(s._inner=s._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(s._inner=s._inner.fork(Zone.longStackTraceZoneSpec)),s.shouldCoalesceEventChangeDetection=!o&&r,s.shouldCoalesceRunChangeDetection=o,s.callbackScheduled=!1,s.scheduleInRootZone=i,Ev(s)}static isInAngularZone(){return typeof Zone<"u"&&Zone.current.get(Zc)===!0}static assertInAngularZone(){if(!e.isInAngularZone())throw new v(909,!1)}static assertNotInAngularZone(){if(e.isInAngularZone())throw new v(909,!1)}run(t,n,r){return this._inner.run(t,n,r)}runTask(t,n,r,o){let i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,t,vv,vr,vr);try{return i.runTask(s,n,r)}finally{i.cancelTask(s)}}runGuarded(t,n,r){return this._inner.runGuarded(t,n,r)}runOutsideAngular(t){return this._outer.run(t)}},vv={};function Yc(e){if(e._nesting==0&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function Dv(e){if(e.isCheckStableRunning||e.callbackScheduled)return;e.callbackScheduled=!0;function t(){$f(()=>{e.callbackScheduled=!1,xa(e),e.isCheckStableRunning=!0,Yc(e),e.isCheckStableRunning=!1})}e.scheduleInRootZone?Zone.root.run(()=>{t()}):e._outer.run(()=>{t()}),xa(e)}function Ev(e){let t=()=>{Dv(e)},n=yv++;e._inner=e._inner.fork({name:"angular",properties:{[Zc]:!0,[ri]:n,[ri+n]:!0},onInvokeTask:(r,o,i,s,a,c)=>{if(wv(c))return r.invokeTask(i,s,a,c);try{return rd(e),r.invokeTask(i,s,a,c)}finally{(e.shouldCoalesceEventChangeDetection&&s.type==="eventTask"||e.shouldCoalesceRunChangeDetection)&&t(),od(e)}},onInvoke:(r,o,i,s,a,c,u)=>{try{return rd(e),r.invoke(i,s,a,c,u)}finally{e.shouldCoalesceRunChangeDetection&&!e.callbackScheduled&&!Iv(c)&&t(),od(e)}},onHasTask:(r,o,i,s)=>{r.hasTask(i,s),o===i&&(s.change=="microTask"?(e._hasPendingMicrotasks=s.microTask,xa(e),Yc(e)):s.change=="macroTask"&&(e.hasPendingMacrotasks=s.macroTask))},onHandleError:(r,o,i,s)=>(r.handleError(i,s),e.runOutsideAngular(()=>e.onError.emit(s)),!1)})}function xa(e){e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&e.callbackScheduled===!0?e.hasPendingMicrotasks=!0:e.hasPendingMicrotasks=!1}function rd(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function od(e){e._nesting--,Yc(e)}var oi=class{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new We;onMicrotaskEmpty=new We;onStable=new We;onError=new We;run(t,n,r){return t.apply(n,r)}runGuarded(t,n,r){return t.apply(n,r)}runOutsideAngular(t){return t()}runTask(t,n,r,o){return t.apply(n,r)}};function wv(e){return zf(e,"__ignore_ng_zone__")}function Iv(e){return zf(e,"__scheduler_tick__")}function zf(e,t){return!Array.isArray(e)||e.length!==1?!1:e[0]?.data?.[t]===!0}function bv(e="zone.js",t){return e==="noop"?new oi:e==="zone.js"?new z(t):e}var Qe=class{_console=console;handleError(t){this._console.error("ERROR",t)}},Cv=new E("",{providedIn:"root",factory:()=>{let e=m(z),t=m(Qe);return n=>e.runOutsideAngular(()=>t.handleError(n))}});function id(e,t){return Ld(e,t)}function _v(e){return Ld(Pd,e)}var Gf=(id.required=_v,id);function Mv(){return Pn(le(),_())}function Pn(e,t){return new Ne(et(e,t))}var Ne=(()=>{class e{nativeElement;constructor(n){this.nativeElement=n}static __NG_ELEMENT_ID__=Mv}return e})();function Wf(e){return e instanceof Ne?e.nativeElement:e}function Tv(e){return typeof e=="function"&&e[me]!==void 0}function Ri(e,t){let n=As(e,t?.equal),r=n[me];return n.set=o=>er(r,o),n.update=o=>Rs(r,o),n.asReadonly=Sv.bind(n),n}function Sv(){let e=this[me];if(e.readonlyFn===void 0){let t=()=>this();t[me]=e,e.readonlyFn=t}return e.readonlyFn}function qf(e){return Tv(e)&&typeof e.set=="function"}function Nv(){return this._results[Symbol.iterator]()}var Aa=class{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new ye}constructor(t=!1){this._emitDistinctChangesOnly=t}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,n){return this._results.reduce(t,n)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,n){this.dirty=!1;let r=ly(t);(this._changesDetected=!uy(this._results,r,n))&&(this._results=r,this.length=r.length,this.last=r[this.length-1],this.first=r[0])}notifyOnChanges(){this._changes!==void 0&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.next(this)}onDirty(t){this._onDirty=t}setDirty(){this.dirty=!0,this._onDirty?.()}destroy(){this._changes!==void 0&&(this._changes.complete(),this._changes.unsubscribe())}[Symbol.iterator]=Nv};function Zf(e){return(e.flags&128)===128}var Yf=function(e){return e[e.OnPush=0]="OnPush",e[e.Default=1]="Default",e}(Yf||{}),Qf=new Map,xv=0;function Av(){return xv++}function Rv(e){Qf.set(e[Mi],e)}function Ra(e){Qf.delete(e[Mi])}var sd="__ngContext__";function Ln(e,t){wt(t)?(e[sd]=t[Mi],Rv(t)):e[sd]=t}function Kf(e){return Xf(e[mr])}function Jf(e){return Xf(e[Le])}function Xf(e){for(;e!==null&&!dt(e);)e=e[Le];return e}var Oa;function ep(e){Oa=e}function tp(){if(Oa!==void 0)return Oa;if(typeof document<"u")return document;throw new v(210,!1)}var Qc=new E("",{providedIn:"root",factory:()=>Ov}),Ov="ng",Kc=new E(""),Ve=new E("",{providedIn:"platform",factory:()=>"unknown"});var nR=new E(""),Jc=new E("",{providedIn:"root",factory:()=>tp().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});var kv="h",Fv="b";var np=!1,Pv=new E("",{providedIn:"root",factory:()=>np});var Xc=function(e){return e[e.CHANGE_DETECTION=0]="CHANGE_DETECTION",e[e.AFTER_NEXT_RENDER=1]="AFTER_NEXT_RENDER",e}(Xc||{}),jn=new E(""),ad=new Set;function Vn(e){ad.has(e)||(ad.add(e),performance?.mark?.("mark_feature_usage",{detail:{feature:e}}))}var eu=(()=>{class e{view;node;constructor(n,r){this.view=n,this.node=r}static __NG_ELEMENT_ID__=Lv}return e})();function Lv(){return new eu(_(),le())}var mn=function(e){return e[e.EarlyRead=0]="EarlyRead",e[e.Write=1]="Write",e[e.MixedReadWrite=2]="MixedReadWrite",e[e.Read=3]="Read",e}(mn||{}),rp=(()=>{class e{impl=null;execute(){this.impl?.execute()}static \u0275prov=M({token:e,providedIn:"root",factory:()=>new e})}return e})(),jv=[mn.EarlyRead,mn.Write,mn.MixedReadWrite,mn.Read],Vv=(()=>{class e{ngZone=m(z);scheduler=m(Yt);errorHandler=m(Qe,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;constructor(){m(jn,{optional:!0})}execute(){let n=this.sequences.size>0;n&&V(16),this.executing=!0;for(let r of jv)for(let o of this.sequences)if(!(o.erroredOrDestroyed||!o.hooks[r]))try{o.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>{let i=o.hooks[r];return i(o.pipelinedValue)},o.snapshot))}catch(i){o.erroredOrDestroyed=!0,this.errorHandler?.handleError(i)}this.executing=!1;for(let r of this.sequences)r.afterRun(),r.once&&(this.sequences.delete(r),r.destroy());for(let r of this.deferredRegistrations)this.sequences.add(r);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear(),n&&V(17)}register(n){let{view:r}=n;r!==void 0?((r[vn]??=[]).push(n),On(r),r[T]|=8192):this.executing?this.deferredRegistrations.add(n):this.addSequence(n)}addSequence(n){this.sequences.add(n),this.scheduler.notify(7)}unregister(n){this.executing&&this.sequences.has(n)?(n.erroredOrDestroyed=!0,n.pipelinedValue=void 0,n.once=!0):(this.sequences.delete(n),this.deferredRegistrations.delete(n))}maybeTrace(n,r){return r?r.run(Xc.AFTER_NEXT_RENDER,n):n()}static \u0275prov=M({token:e,providedIn:"root",factory:()=>new e})}return e})(),ka=class{impl;hooks;view;once;snapshot;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(t,n,r,o,i,s=null){this.impl=t,this.hooks=n,this.view=r,this.once=o,this.snapshot=s,this.unregisterOnDestroy=i?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.snapshot?.dispose(),this.snapshot=null}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.();let t=this.view?.[vn];t&&(this.view[vn]=t.filter(n=>n!==this))}};function Bv(e,t){!t?.injector&&xc(Bv);let n=t?.injector??m(_e);return Vn("NgAfterRender"),op(e,n,t,!1)}function Hv(e,t){!t?.injector&&xc(Hv);let n=t?.injector??m(_e);return Vn("NgAfterNextRender"),op(e,n,t,!0)}function Uv(e,t){if(e instanceof Function){let n=[void 0,void 0,void 0,void 0];return n[t]=e,n}else return[e.earlyRead,e.write,e.mixedReadWrite,e.read]}function op(e,t,n,r){let o=t.get(rp);o.impl??=t.get(Vv);let i=t.get(jn,null,{optional:!0}),s=n?.phase??mn.MixedReadWrite,a=n?.manualCleanup!==!0?t.get(Fn):null,c=t.get(eu,null,{optional:!0}),u=new ka(o.impl,Uv(e,s),c?.view,r,a,i?.snapshot(null));return o.impl.register(u),u}var $v=(e,t,n,r)=>{};function zv(e,t,n,r){$v(e,t,n,r)}var Gv=()=>null;function ip(e,t,n=!1){return Gv(e,t,n)}function sp(e,t){let n=e.contentQueries;if(n!==null){let r=O(null);try{for(let o=0;oe,createScript:e=>e,createScriptURL:e=>e})}catch{}return Oo}function Oi(e){return Wv()?.createHTML(e)||e}var ko;function ap(){if(ko===void 0&&(ko=null,re.trustedTypes))try{ko=re.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch{}return ko}function cd(e){return ap()?.createHTML(e)||e}function ud(e){return ap()?.createScriptURL(e)||e}var ut=class{changingThisBreaksApplicationSecurity;constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Fd})`}},Pa=class extends ut{getTypeName(){return"HTML"}},La=class extends ut{getTypeName(){return"Style"}},ja=class extends ut{getTypeName(){return"Script"}},Va=class extends ut{getTypeName(){return"URL"}},Ba=class extends ut{getTypeName(){return"ResourceURL"}};function xe(e){return e instanceof ut?e.changingThisBreaksApplicationSecurity:e}function pt(e,t){let n=qv(e);if(n!=null&&n!==t){if(n==="ResourceURL"&&t==="URL")return!0;throw new Error(`Required a safe ${t}, got a ${n} (see ${Fd})`)}return n===t}function qv(e){return e instanceof ut&&e.getTypeName()||null}function cp(e){return new Pa(e)}function up(e){return new La(e)}function lp(e){return new ja(e)}function dp(e){return new Va(e)}function fp(e){return new Ba(e)}function Zv(e){let t=new Ua(e);return Yv()?new Ha(t):t}var Ha=class{inertDocumentHelper;constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t=""+t;try{let n=new window.DOMParser().parseFromString(Oi(t),"text/html").body;return n===null?this.inertDocumentHelper.getInertBodyElement(t):(n.firstChild?.remove(),n)}catch{return null}}},Ua=class{defaultDoc;inertDocument;constructor(t){this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(t){let n=this.inertDocument.createElement("template");return n.innerHTML=Oi(t),n}};function Yv(){try{return!!new window.DOMParser().parseFromString(Oi(""),"text/html")}catch{return!1}}var Qv=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function ki(e){return e=String(e),e.match(Qv)?e:"unsafe:"+e}function ht(e){let t={};for(let n of e.split(","))t[n]=!0;return t}function Mr(...e){let t={};for(let n of e)for(let r in n)n.hasOwnProperty(r)&&(t[r]=!0);return t}var pp=ht("area,br,col,hr,img,wbr"),hp=ht("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),gp=ht("rp,rt"),Kv=Mr(gp,hp),Jv=Mr(hp,ht("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Xv=Mr(gp,ht("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),ld=Mr(pp,Jv,Xv,Kv),mp=ht("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),eD=ht("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),tD=ht("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext"),nD=Mr(mp,eD,tD),rD=ht("script,style,template"),$a=class{sanitizedSomething=!1;buf=[];sanitizeChildren(t){let n=t.firstChild,r=!0,o=[];for(;n;){if(n.nodeType===Node.ELEMENT_NODE?r=this.startElement(n):n.nodeType===Node.TEXT_NODE?this.chars(n.nodeValue):this.sanitizedSomething=!0,r&&n.firstChild){o.push(n),n=sD(n);continue}for(;n;){n.nodeType===Node.ELEMENT_NODE&&this.endElement(n);let i=iD(n);if(i){n=i;break}n=o.pop()}}return this.buf.join("")}startElement(t){let n=dd(t).toLowerCase();if(!ld.hasOwnProperty(n))return this.sanitizedSomething=!0,!rD.hasOwnProperty(n);this.buf.push("<"),this.buf.push(n);let r=t.attributes;for(let o=0;o"),!0}endElement(t){let n=dd(t).toLowerCase();ld.hasOwnProperty(n)&&!pp.hasOwnProperty(n)&&(this.buf.push(""))}chars(t){this.buf.push(fd(t))}};function oD(e,t){return(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}function iD(e){let t=e.nextSibling;if(t&&e!==t.previousSibling)throw yp(t);return t}function sD(e){let t=e.firstChild;if(t&&oD(e,t))throw yp(t);return t}function dd(e){let t=e.nodeName;return typeof t=="string"?t:"FORM"}function yp(e){return new Error(`Failed to sanitize html because the element is clobbered: ${e.outerHTML}`)}var aD=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,cD=/([^\#-~ |!])/g;function fd(e){return e.replace(/&/g,"&").replace(aD,function(t){let n=t.charCodeAt(0),r=t.charCodeAt(1);return"&#"+((n-55296)*1024+(r-56320)+65536)+";"}).replace(cD,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(//g,">")}var Fo;function nu(e,t){let n=null;try{Fo=Fo||Zv(e);let r=t?String(t):"";n=Fo.getInertBodyElement(r);let o=5,i=r;do{if(o===0)throw new Error("Failed to sanitize html because the input is unstable");o--,r=i,i=n.innerHTML,n=Fo.getInertBodyElement(r)}while(r!==i);let a=new $a().sanitizeChildren(pd(n)||n);return Oi(a)}finally{if(n){let r=pd(n)||n;for(;r.firstChild;)r.firstChild.remove()}}}function pd(e){return"content"in e&&uD(e)?e.content:null}function uD(e){return e.nodeType===Node.ELEMENT_NODE&&e.nodeName==="TEMPLATE"}var lD=/^>|^->||--!>|)/g,fD="\u200B$1\u200B";function pD(e){return e.replace(lD,t=>t.replace(dD,fD))}function hD(e,t){return e.createText(t)}function gD(e,t,n){e.setValue(t,n)}function mD(e,t){return e.createComment(pD(t))}function vp(e,t,n){return e.createElement(t,n)}function ii(e,t,n,r,o){e.insertBefore(t,n,r,o)}function Dp(e,t,n){e.appendChild(t,n)}function hd(e,t,n,r,o){r!==null?ii(e,t,n,r,o):Dp(e,t,n)}function yD(e,t,n){e.removeChild(null,t,n)}function vD(e,t,n){e.setAttribute(t,"style",n)}function DD(e,t,n){n===""?e.removeAttribute(t,"class"):e.setAttribute(t,"class",n)}function Ep(e,t,n){let{mergedAttrs:r,classes:o,styles:i}=n;r!==null&&ov(e,t,r),o!==null&&DD(e,t,o),i!==null&&vD(e,t,i)}var Te=function(e){return e[e.NONE=0]="NONE",e[e.HTML=1]="HTML",e[e.STYLE=2]="STYLE",e[e.SCRIPT=3]="SCRIPT",e[e.URL=4]="URL",e[e.RESOURCE_URL=5]="RESOURCE_URL",e}(Te||{});function rR(e){let t=ru();return t?cd(t.sanitize(Te.HTML,e)||""):pt(e,"HTML")?cd(xe(e)):nu(tp(),Bt(e))}function ED(e){let t=ru();return t?t.sanitize(Te.URL,e)||"":pt(e,"URL")?xe(e):ki(Bt(e))}function wD(e){let t=ru();if(t)return ud(t.sanitize(Te.RESOURCE_URL,e)||"");if(pt(e,"ResourceURL"))return ud(xe(e));throw new v(904,!1)}function ID(e,t){return t==="src"&&(e==="embed"||e==="frame"||e==="iframe"||e==="media"||e==="script")||t==="href"&&(e==="base"||e==="link")?wD:ED}function oR(e,t,n){return ID(t,n)(e)}function ru(){let e=_();return e&&e[at].sanitizer}function wp(e){return e instanceof Function?e():e}function bD(e,t,n){let r=e.length;for(;;){let o=e.indexOf(t,n);if(o===-1)return o;if(o===0||e.charCodeAt(o-1)<=32){let i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}var Ip="ng-template";function CD(e,t,n,r){let o=0;if(r){for(;o-1){let i;for(;++oi?f="":f=o[l+1].toLowerCase(),r&2&&u!==f){if(Fe(r))return!1;s=!0}}}}return Fe(r)||s}function Fe(e){return(e&1)===0}function TD(e,t,n,r){if(t===null)return-1;let o=0;if(r||!n){let i=!1;for(;o-1)for(n++;n0?'="'+a+'"':"")+"]"}else r&8?o+="."+s:r&4&&(o+=" "+s);else o!==""&&!Fe(s)&&(t+=gd(i,o),o=""),r=s,i=i||!Fe(r);n++}return o!==""&&(t+=gd(i,o)),t}function OD(e){return e.map(RD).join(",")}function kD(e){let t=[],n=[],r=1,o=2;for(;rQ&&Mp(e,t,Q,!1),V(s?2:0,o),n(r,o)}finally{qt(i),V(s?3:1,o)}}function Pi(e,t,n){$D(e,t,n),(n.flags&64)===64&&zD(e,t,n)}function cu(e,t,n=et){let r=t.localNames;if(r!==null){let o=t.index+1;for(let i=0;inull;function HD(e){return e==="class"?"className":e==="for"?"htmlFor":e==="formaction"?"formAction":e==="innerHtml"?"innerHTML":e==="readonly"?"readOnly":e==="tabindex"?"tabIndex":e}function Tr(e,t,n,r,o,i,s,a){if(!a&&lu(t,e,n,r,o)){An(t)&&UD(n,t.index);return}if(t.type&3){let c=et(t,n);r=HD(r),o=s!=null?s(o,t.value||"",r):o,i.setProperty(c,r,o)}else t.type&12}function UD(e,t){let n=Ye(t,e);n[T]&16||(n[T]|=64)}function $D(e,t,n){let r=n.directiveStart,o=n.directiveEnd;An(n)&&LD(t,n,e.data[r+n.componentOffset]),e.firstCreatePass||ti(n,t);let i=n.initialInputs;for(let s=r;s=0?r[a]():r[-a].unsubscribe(),s+=2}else{let a=r[n[s+1]];n[s].call(a)}r!==null&&(t[Zo]=null);let o=t[Et];if(o!==null){t[Et]=null;for(let s=0;s{On(e.lView)},consumerOnSignalRead(){this.lView[Se]=this}});function yE(e){let t=e[Se]??Object.create(vE);return t.lView=e,t}var vE=oe(G({},an),{consumerIsAlwaysLive:!0,kind:"template",consumerMarkedDirty:e=>{let t=Wt(e.lView);for(;t&&!Fp(t[N]);)t=Wt(t);t&&hf(t)},consumerOnSignalRead(){this.lView[Se]=this}});function Fp(e){return e.type!==2}function Pp(e){if(e[zt]===null)return;let t=!0;for(;t;){let n=!1;for(let r of e[zt])r.dirty&&(n=!0,r.zone===null||Zone.current===r.zone?r.run():r.zone.run(()=>r.run()));t=n&&!!(e[T]&8192)}}var DE=100;function Lp(e,t=!0,n=0){let o=e[at].rendererFactory,i=!1;i||o.begin?.();try{EE(e,n)}catch(s){throw t&&QD(e,s),s}finally{i||o.end?.()}}function EE(e,t){let n=vf();try{Ko(!0),Wa(e,t);let r=0;for(;Si(e);){if(r===DE)throw new v(103,!1);r++,Wa(e,1)}}finally{Ko(n)}}function wE(e,t,n,r){if(Rn(t))return;let o=t[T],i=!1,s=!1;$c(t);let a=!0,c=null,u=null;i||(Fp(e)?(u=pE(t),c=Jn(u)):Ms()===null?(a=!1,u=yE(t),c=Jn(u)):t[Se]&&(Xn(t[Se]),t[Se]=null));try{pf(t),Wy(e.bindingStartIndex),n!==null&&Tp(e,t,n,2,r);let l=(o&3)===3;if(!i)if(l){let d=e.preOrderCheckHooks;d!==null&&Vo(t,d,null)}else{let d=e.preOrderHooks;d!==null&&Bo(t,d,0,null),ra(t,0)}if(s||IE(t),Pp(t),jp(t,0),e.contentQueries!==null&&sp(e,t),!i)if(l){let d=e.contentCheckHooks;d!==null&&Vo(t,d)}else{let d=e.contentHooks;d!==null&&Bo(t,d,1),ra(t,1)}CE(e,t);let f=e.components;f!==null&&Bp(t,f,0);let p=e.viewQuery;if(p!==null&&Fa(2,p,r),!i)if(l){let d=e.viewCheckHooks;d!==null&&Vo(t,d)}else{let d=e.viewHooks;d!==null&&Bo(t,d,2),ra(t,2)}if(e.firstUpdatePass===!0&&(e.firstUpdatePass=!1),t[na]){for(let d of t[na])d();t[na]=null}i||(Op(t),t[T]&=-73)}catch(l){throw i||On(t),l}finally{u!==null&&(Yr(u,c),a&&gE(u)),zc()}}function jp(e,t){for(let n=Kf(e);n!==null;n=Jf(n))for(let r=ce;r0&&(e[n-1][Le]=r[Le]);let i=Wo(e,ce+t);tE(r[N],r);let s=i[ct];s!==null&&s.detachView(i[N]),r[ue]=null,r[Le]=null,r[T]&=-129}return r}function _E(e,t,n,r){let o=ce+r,i=n.length;r>0&&(n[o-1][Le]=t),r-1&&(Dr(t,r),Wo(n,r))}this._attachedToViewContainer=!1}Li(this._lView[N],this._lView)}onDestroy(t){gf(this._lView,t)}markForCheck(){mu(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[T]&=-129}reattach(){ba(this._lView),this._lView[T]|=128}detectChanges(){this._lView[T]|=1024,Lp(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new v(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;let t=Qo(this._lView),n=this._lView[$t];n!==null&&!t&&hu(n,this._lView),Sp(this._lView[N],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new v(902,!1);this._appRef=t;let n=Qo(this._lView),r=this._lView[$t];r!==null&&!n&&zp(r,this._lView),ba(this._lView)}};var Qt=(()=>{class e{static __NG_ELEMENT_ID__=SE}return e})(),ME=Qt,TE=class extends ME{_declarationLView;_declarationTContainer;elementRef;constructor(t,n,r){super(),this._declarationLView=t,this._declarationTContainer=n,this.elementRef=r}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(t,n){return this.createEmbeddedViewImpl(t,n)}createEmbeddedViewImpl(t,n,r){let o=Sr(this._declarationLView,this._declarationTContainer,t,{embeddedViewInjector:n,dehydratedView:r});return new Er(o)}};function SE(){return Bi(le(),_())}function Bi(e,t){return e.type&4?new TE(t,e,Pn(e,t)):null}function Bn(e,t,n,r,o){let i=e.data[t];if(i===null)i=NE(e,t,n,r,o),qy()&&(i.flags|=32);else if(i.type&64){i.type=n,i.value=r,i.attrs=o;let s=$y();i.injectorIndex=s===null?-1:s.injectorIndex}return Ct(i,!0),i}function NE(e,t,n,r,o){let i=yf(),s=Vc(),a=s?i:i&&i.parent,c=e.data[t]=AE(e,a,n,t,r,o);return xE(e,c,i,s),c}function xE(e,t,n,r){e.firstChild===null&&(e.firstChild=t),n!==null&&(r?n.child==null&&t.parent!==null&&(n.child=t):n.next===null&&(n.next=t,t.prev=n))}function AE(e,t,n,r,o,i){let s=t?t.injectorIndex:-1,a=0;return mf()&&(a|=128),{type:n,index:r,insertBeforeIndex:null,injectorIndex:s,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:a,providerIndexes:0,value:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:null,inputs:null,hostDirectiveInputs:null,outputs:null,hostDirectiveOutputs:null,directiveToIndex:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}var cR=new RegExp(`^(\\d+)*(${Fv}|${kv})*(.*)`);var RE=()=>null;function Mn(e,t){return RE(e,t)}var OE=class{},Gp=class{},qa=class{resolveComponentFactory(t){throw Error(`No component factory found for ${De(t)}.`)}},Hi=class{static NULL=new qa},Tn=class{},Ui=(()=>{class e{destroyNode=null;static __NG_ELEMENT_ID__=()=>kE()}return e})();function kE(){let e=_(),t=le(),n=Ye(t.index,e);return(wt(n)?n:e)[U]}var FE=(()=>{class e{static \u0275prov=M({token:e,providedIn:"root",factory:()=>null})}return e})();var sa={},Za=class{injector;parentInjector;constructor(t,n){this.injector=t,this.parentInjector=n}get(t,n,r){r=Ei(r);let o=this.injector.get(t,sa,r);return o!==sa||n===sa?o:this.parentInjector.get(t,n,r)}};function Ya(e,t,n){let r=n?e.styles:null,o=n?e.classes:null,i=0;if(t!==null)for(let s=0;s0&&(n.directiveToIndex=new Map);for(let p=0;p0;){let n=e[--t];if(typeof n=="number"&&n<0)return n}return 0}function GE(e,t,n){if(n){if(t.exportAs)for(let r=0;r{let[n,r,o]=e[t],i={propName:n,templateName:t,isSignal:(r&Fi.SignalBased)!==0};return o&&(i.transform=o),i})}function ZE(e){return Object.keys(e).map(t=>({propName:e[t],templateName:t}))}function YE(e,t,n){let r=t instanceof qe?t:t?.injector;return r&&e.getStandaloneInjector!==null&&(r=e.getStandaloneInjector(r)||r),r?new Za(n,r):n}function QE(e){let t=e.get(Tn,null);if(t===null)throw new v(407,!1);let n=e.get(FE,null),r=e.get(Yt,null);return{rendererFactory:t,sanitizer:n,changeDetectionScheduler:r}}function KE(e,t){let n=(e.selectors[0][0]||"div").toLowerCase();return vp(t,n,n==="svg"?lf:n==="math"?Ay:null)}var Kt=class extends Gp{componentDef;ngModule;selector;componentType;ngContentSelectors;isBoundToModule;cachedInputs=null;cachedOutputs=null;get inputs(){return this.cachedInputs??=qE(this.componentDef.inputs),this.cachedInputs}get outputs(){return this.cachedOutputs??=ZE(this.componentDef.outputs),this.cachedOutputs}constructor(t,n){super(),this.componentDef=t,this.ngModule=n,this.componentType=t.type,this.selector=OD(t.selectors),this.ngContentSelectors=t.ngContentSelectors??[],this.isBoundToModule=!!n}create(t,n,r,o){V(22);let i=O(null);try{let s=this.componentDef,a=r?["ng-version","19.2.17"]:kD(this.componentDef.selectors[0]),c=iu(0,null,null,1,0,null,null,null,null,[a],null),u=YE(s,o||this.ngModule,t),l=QE(u),f=l.rendererFactory.createRenderer(null,s),p=r?jD(f,r,s.encapsulation,u):KE(s,f),d=su(null,c,null,512|Cp(s),null,null,l,f,u,null,ip(p,u,!0));d[Q]=p,$c(d);let h=null;try{let g=qp(Q,c,d,"#host",()=>[this.componentDef],!0,0);p&&(Ep(f,p,g),Ln(p,d)),Pi(c,d,g),tu(c,g,d),Zp(c,g),n!==void 0&&JE(g,this.ngContentSelectors,n),h=Ye(g.index,d),d[te]=h[te],du(c,d,null)}catch(g){throw h!==null&&Ra(h),Ra(d),g}finally{V(23),zc()}return new Qa(this.componentType,d)}finally{O(i)}}},Qa=class extends OE{_rootLView;instance;hostView;changeDetectorRef;componentType;location;previousInputValues=null;_tNode;constructor(t,n){super(),this._rootLView=n,this._tNode=Oc(n[N],Q),this.location=Pn(this._tNode,n),this.instance=Ye(this._tNode.index,n)[te],this.hostView=this.changeDetectorRef=new Er(n,void 0,!1),this.componentType=t}setInput(t,n){let r=this._tNode;if(this.previousInputValues??=new Map,this.previousInputValues.has(t)&&Object.is(this.previousInputValues.get(t),n))return;let o=this._rootLView,i=lu(r,o[N],o,t,n);this.previousInputValues.set(t,n);let s=Ye(r.index,o);mu(s,1)}get injector(){return new Vt(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(t){this.hostView.onDestroy(t)}};function JE(e,t,n){let r=e.projection=[];for(let o=0;o{class e{static __NG_ELEMENT_ID__=XE}return e})();function XE(){let e=le();return Qp(e,_())}var ew=tn,Yp=class extends ew{_lContainer;_hostTNode;_hostLView;constructor(t,n,r){super(),this._lContainer=t,this._hostTNode=n,this._hostLView=r}get element(){return Pn(this._hostTNode,this._hostLView)}get injector(){return new Vt(this._hostTNode,this._hostLView)}get parentInjector(){let t=Wc(this._hostTNode,this._hostLView);if(Sf(t)){let n=Xo(t,this._hostLView),r=Jo(t),o=n[N].data[r+8];return new Vt(o,n)}else return new Vt(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){let n=Ed(this._lContainer);return n!==null&&n[t]||null}get length(){return this._lContainer.length-ce}createEmbeddedView(t,n,r){let o,i;typeof r=="number"?o=r:r!=null&&(o=r.index,i=r.injector);let s=Mn(this._lContainer,t.ssrId),a=t.createEmbeddedViewImpl(n||{},i,s);return this.insertImpl(a,o,_n(this._hostTNode,s)),a}createComponent(t,n,r,o,i){let s=t&&!Ty(t),a;if(s)a=n;else{let h=n||{};a=h.index,r=h.injector,o=h.projectableNodes,i=h.environmentInjector||h.ngModuleRef}let c=s?t:new Kt(It(t)),u=r||this.parentInjector;if(!i&&c.ngModule==null){let g=(s?u:this.parentInjector).get(qe,null);g&&(i=g)}let l=It(c.componentType??{}),f=Mn(this._lContainer,l?.id??null),p=f?.firstChild??null,d=c.create(u,o,p,i);return this.insertImpl(d.hostView,a,_n(this._hostTNode,f)),d}insert(t,n){return this.insertImpl(t,n,!0)}insertImpl(t,n,r){let o=t._lView;if(ky(o)){let a=this.indexOf(t);if(a!==-1)this.detach(a);else{let c=o[ue],u=new Yp(c,c[Ee],c[ue]);u.detach(u.indexOf(t))}}let i=this._adjustIndex(n),s=this._lContainer;return Nr(s,o,i,r),t.attachToViewContainerRef(),Yd(aa(s),i,t),t}move(t,n){return this.insert(t,n)}indexOf(t){let n=Ed(this._lContainer);return n!==null?n.indexOf(t):-1}remove(t){let n=this._adjustIndex(t,-1),r=Dr(this._lContainer,n);r&&(Wo(aa(this._lContainer),n),Li(r[N],r))}detach(t){let n=this._adjustIndex(t,-1),r=Dr(this._lContainer,n);return r&&Wo(aa(this._lContainer),n)!=null?new Er(r):null}_adjustIndex(t,n=0){return t??this.length+n}};function Ed(e){return e[Yo]}function aa(e){return e[Yo]||(e[Yo]=[])}function Qp(e,t){let n,r=t[e.index];return dt(r)?n=r:(n=Hp(r,t,null,e),t[e.index]=n,au(t,n)),nw(n,t,e,r),new Yp(n,e,t)}function tw(e,t){let n=e[U],r=n.createComment(""),o=et(t,e),i=n.parentNode(o);return ii(n,i,r,n.nextSibling(o),!1),r}var nw=iw,rw=()=>!1;function ow(e,t,n){return rw(e,t,n)}function iw(e,t,n,r){if(e[Gt])return;let o;n.type&8?o=Ze(r):o=tw(t,n),e[Gt]=o}var Ka=class e{queryList;matches=null;constructor(t){this.queryList=t}clone(){return new e(this.queryList)}setDirty(){this.queryList.setDirty()}},Ja=class e{queries;constructor(t=[]){this.queries=t}createEmbeddedView(t){let n=t.queries;if(n!==null){let r=t.contentQueries!==null?t.contentQueries[0]:n.length,o=[];for(let i=0;i0)r.push(s[a/2]);else{let u=i[a+1],l=t[-c];for(let f=ce;ft.trim())}function eh(e,t,n){e.queries===null&&(e.queries=new Xa),e.queries.track(new ec(t,n))}function fw(e,t){let n=e.contentQueries||(e.contentQueries=[]),r=n.length?n[n.length-1]:-1;t!==r&&n.push(e.queries.length-1,t)}function Du(e,t){return e.queries.getByIndex(t)}function th(e,t){let n=e[N],r=Du(n,t);return r.crossesNgTemplate?tc(n,e,t,[]):Kp(n,e,r,t)}function nh(e,t,n){let r,o=Xr(()=>{r._dirtyCounter();let i=mw(r,e);if(t&&i===void 0)throw new v(-951,!1);return i});return r=o[me],r._dirtyCounter=Ri(0),r._flatValue=void 0,o}function pw(e){return nh(!0,!1,e)}function hw(e){return nh(!0,!0,e)}function gw(e,t){let n=e[me];n._lView=_(),n._queryIndex=t,n._queryList=vu(n._lView,t),n._queryList.onDirty(()=>n._dirtyCounter.update(r=>r+1))}function mw(e,t){let n=e._lView,r=e._queryIndex;if(n===void 0||r===void 0||n[T]&4)return t?void 0:ge;let o=vu(n,r),i=th(n,r);return o.reset(i,Wf),t?o.first:o._changesDetected||e._flatValue===void 0?e._flatValue=o.toArray():e._flatValue}function wd(e,t){return pw(t)}function yw(e,t){return hw(t)}var hR=(wd.required=yw,wd);function vw(e){let t=[],n=new Map;function r(o){let i=n.get(o);if(!i){let s=e(o);n.set(o,i=s.then(Iw))}return i}return ui.forEach((o,i)=>{let s=[];o.templateUrl&&s.push(r(o.templateUrl).then(u=>{o.template=u}));let a=typeof o.styles=="string"?[o.styles]:o.styles||[];if(o.styles=a,o.styleUrl&&o.styleUrls?.length)throw new Error("@Component cannot define both `styleUrl` and `styleUrls`. Use `styleUrl` if the component has one stylesheet, or `styleUrls` if it has multiple");if(o.styleUrls?.length){let u=o.styles.length,l=o.styleUrls;o.styleUrls.forEach((f,p)=>{a.push(""),s.push(r(f).then(d=>{a[u+p]=d,l.splice(l.indexOf(f),1),l.length==0&&(o.styleUrls=void 0)}))})}else o.styleUrl&&s.push(r(o.styleUrl).then(u=>{a.push(u),o.styleUrl=void 0}));let c=Promise.all(s).then(()=>bw(i));t.push(c)}),Ew(),Promise.all(t).then(()=>{})}var ui=new Map,Dw=new Set;function Ew(){let e=ui;return ui=new Map,e}function ww(){return ui.size===0}function Iw(e){return typeof e=="string"?e:e.text()}function bw(e){Dw.delete(e)}var Sn=class{},Cw=class{};var li=class extends Sn{ngModuleType;_parent;_bootstrapComponents=[];_r3Injector;instance;destroyCbs=[];componentFactoryResolver=new ai(this);constructor(t,n,r,o=!0){super(),this.ngModuleType=t,this._parent=n;let i=Jd(t);this._bootstrapComponents=wp(i.bootstrap),this._r3Injector=Vf(t,n,[{provide:Sn,useValue:this},{provide:Hi,useValue:this.componentFactoryResolver},...r],De(t),new Set(["environment"])),o&&this.resolveInjectorInitializers()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}get injector(){return this._r3Injector}destroy(){let t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(n=>n()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}},di=class extends Cw{moduleType;constructor(t){super(),this.moduleType=t}create(t){return new li(this.moduleType,t,[])}};function _w(e,t,n){return new li(e,t,n,!1)}var nc=class extends Sn{injector;componentFactoryResolver=new ai(this);instance=null;constructor(t){super();let n=new gr([...t.providers,{provide:Sn,useValue:this},{provide:Hi,useValue:this.componentFactoryResolver}],t.parent||Ci(),t.debugName,new Set(["environment"]));this.injector=n,t.runEnvironmentInitializers&&n.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}};function Mw(e,t,n=null){return new nc({providers:e,parent:t,debugName:n,runEnvironmentInitializers:!0}).injector}var Tw=(()=>{class e{_injector;cachedInjectors=new Map;constructor(n){this._injector=n}getOrCreateStandaloneInjector(n){if(!n.standalone)return null;if(!this.cachedInjectors.has(n)){let r=Xd(!1,n.type),o=r.length>0?Mw([r],this._injector,`Standalone[${n.type.name}]`):null;this.cachedInjectors.set(n,o)}return this.cachedInjectors.get(n)}ngOnDestroy(){try{for(let n of this.cachedInjectors.values())n!==null&&n.destroy()}finally{this.cachedInjectors.clear()}}static \u0275prov=M({token:e,providedIn:"environment",factory:()=>new e(b(qe))})}return e})();function yR(e){return br(()=>{let t=rh(e),n=oe(G({},t),{decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection===Yf.OnPush,directiveDefs:null,pipeDefs:null,dependencies:t.standalone&&e.dependencies||null,getStandaloneInjector:t.standalone?o=>o.get(Tw).getOrCreateStandaloneInjector(n):null,getExternalStyles:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||Ke.Emulated,styles:e.styles||ge,_:null,schemas:e.schemas||null,tView:null,id:""});t.standalone&&Vn("NgStandalone"),oh(n);let r=e.dependencies;return n.directiveDefs=Id(r,!1),n.pipeDefs=Id(r,!0),n.id=Rw(n),n})}function Sw(e){return It(e)||hy(e)}function Nw(e){return e!==null}function gt(e){return br(()=>({type:e.type,bootstrap:e.bootstrap||ge,declarations:e.declarations||ge,imports:e.imports||ge,exports:e.exports||ge,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function xw(e,t){if(e==null)return Ut;let n={};for(let r in e)if(e.hasOwnProperty(r)){let o=e[r],i,s,a,c;Array.isArray(o)?(a=o[0],i=o[1],s=o[2]??i,c=o[3]||null):(i=o,s=o,a=Fi.None,c=null),n[i]=[r,a,c],t[i]=s}return n}function Aw(e){if(e==null)return Ut;let t={};for(let n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}function Be(e){return br(()=>{let t=rh(e);return oh(t),t})}function $i(e){return{type:e.type,name:e.name,factory:null,pure:e.pure!==!1,standalone:e.standalone??!0,onDestroy:e.type.prototype.ngOnDestroy||null}}function rh(e){let t={};return{type:e.type,providersResolver:null,factory:null,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputConfig:e.inputs||Ut,exportAs:e.exportAs||null,standalone:e.standalone??!0,signals:e.signals===!0,selectors:e.selectors||ge,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:xw(e.inputs,t),outputs:Aw(e.outputs),debugInfo:null}}function oh(e){e.features?.forEach(t=>t(e))}function Id(e,t){if(!e)return null;let n=t?gy:Sw;return()=>(typeof e=="function"?e():e).map(r=>n(r)).filter(Nw)}function Rw(e){let t=0,n=typeof e.consts=="function"?"":e.consts,r=[e.selectors,e.ngContentSelectors,e.hostVars,e.hostAttrs,n,e.vars,e.decls,e.encapsulation,e.standalone,e.signals,e.exportAs,JSON.stringify(e.inputs),JSON.stringify(e.outputs),Object.getOwnPropertyNames(e.type.prototype),!!e.contentQueries,!!e.viewQuery];for(let i of r.join("|"))t=Math.imul(31,t)+i.charCodeAt(0)<<0;return t+=2147483648,"c"+t}function Ow(e){return Object.getPrototypeOf(e.prototype).constructor}function Eu(e){let t=Ow(e.type),n=!0,r=[e];for(;t;){let o;if(je(e))o=t.\u0275cmp||t.\u0275dir;else{if(t.\u0275cmp)throw new v(903,!1);o=t.\u0275dir}if(o){if(n){r.push(o);let s=e;s.inputs=ca(e.inputs),s.declaredInputs=ca(e.declaredInputs),s.outputs=ca(e.outputs);let a=o.hostBindings;a&&jw(e,a);let c=o.viewQuery,u=o.contentQueries;if(c&&Pw(e,c),u&&Lw(e,u),kw(e,o),Wm(e.outputs,o.outputs),je(o)&&o.data.animation){let l=e.data;l.animation=(l.animation||[]).concat(o.data.animation)}}let i=o.features;if(i)for(let s=0;s=0;r--){let o=e[r];o.hostVars=t+=o.hostVars,o.hostAttrs=Cn(o.hostAttrs,n=Cn(n,o.hostAttrs))}}function ca(e){return e===Ut?{}:e===ge?[]:e}function Pw(e,t){let n=e.viewQuery;n?e.viewQuery=(r,o)=>{t(r,o),n(r,o)}:e.viewQuery=t}function Lw(e,t){let n=e.contentQueries;n?e.contentQueries=(r,o,i)=>{t(r,o,i),n(r,o,i)}:e.contentQueries=t}function jw(e,t){let n=e.hostBindings;n?e.hostBindings=(r,o)=>{t(r,o),n(r,o)}:e.hostBindings=t}function ih(e){return wu(e)?Array.isArray(e)||!(e instanceof Map)&&Symbol.iterator in e:!1}function Vw(e,t){if(Array.isArray(e))for(let n=0;n{class e{log(n){console.log(n)}warn(n){console.warn(n)}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();var bu=new E(""),xr=new E(""),zi=(()=>{class e{_ngZone;registry;_isZoneStable=!0;_callbacks=[];_taskTrackingZone=null;_destroyRef;constructor(n,r,o){this._ngZone=n,this.registry=r,Nc()&&(this._destroyRef=m(Fn,{optional:!0})??void 0),Cu||(Ww(o),o.addToWindow(r)),this._watchAngularEvents(),n.run(()=>{this._taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){let n=this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),r=this._ngZone.runOutsideAngular(()=>this._ngZone.onStable.subscribe({next:()=>{z.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}}));this._destroyRef?.onDestroy(()=>{n.unsubscribe(),r.unsubscribe()})}isStable(){return this._isZoneStable&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;this._callbacks.length!==0;){let n=this._callbacks.pop();clearTimeout(n.timeoutId),n.doneCb()}});else{let n=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>r.updateCb&&r.updateCb(n)?(clearTimeout(r.timeoutId),!1):!0)}}getPendingTasks(){return this._taskTrackingZone?this._taskTrackingZone.macroTasks.map(n=>({source:n.source,creationLocation:n.creationLocation,data:n.data})):[]}addCallback(n,r,o){let i=-1;r&&r>0&&(i=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==i),n()},r)),this._callbacks.push({doneCb:n,timeoutId:i,updateCb:o})}whenStable(n,r,o){if(o&&!this._taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(n,r,o),this._runCallbacksIfReady()}registerApplication(n){this.registry.registerApplication(n,this)}unregisterApplication(n){this.registry.unregisterApplication(n)}findProviders(n,r,o){return[]}static \u0275fac=function(r){return new(r||e)(b(z),b(Gi),b(xr))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})(),Gi=(()=>{class e{_applications=new Map;registerApplication(n,r){this._applications.set(n,r)}unregisterApplication(n){this._applications.delete(n)}unregisterAllApplications(){this._applications.clear()}getTestability(n){return this._applications.get(n)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(n,r=!0){return Cu?.findTestabilityInTree(this,n,r)??null}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();function Ww(e){Cu=e}var Cu,ah=(()=>{class e{static \u0275prov=M({token:e,providedIn:"root",factory:()=>new rc})}return e})(),rc=class{queuedEffectCount=0;queues=new Map;schedule(t){this.enqueue(t)}remove(t){let n=t.zone,r=this.queues.get(n);r.has(t)&&(r.delete(t),this.queuedEffectCount--)}enqueue(t){let n=t.zone;this.queues.has(n)||this.queues.set(n,new Set);let r=this.queues.get(n);r.has(t)||(this.queuedEffectCount++,r.add(t))}flush(){for(;this.queuedEffectCount>0;)for(let[t,n]of this.queues)t===null?this.flushQueue(n):t.run(()=>this.flushQueue(n))}flushQueue(t){for(let n of t)t.delete(n),this.queuedEffectCount--,n.run()}};function Wi(e){return!!e&&typeof e.then=="function"}function _u(e){return!!e&&typeof e.subscribe=="function"}var ch=new E("");function vR(e){return Ii([{provide:ch,multi:!0,useValue:e}])}var uh=(()=>{class e{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((n,r)=>{this.resolve=n,this.reject=r});appInits=m(ch,{optional:!0})??[];injector=m(_e);constructor(){}runInitializers(){if(this.initialized)return;let n=[];for(let o of this.appInits){let i=_i(this.injector,o);if(Wi(i))n.push(i);else if(_u(i)){let s=new Promise((a,c)=>{i.subscribe({complete:a,error:c})});n.push(s)}}let r=()=>{this.done=!0,this.resolve()};Promise.all(n).then(()=>{r()}).catch(o=>{this.reject(o)}),n.length===0&&r(),this.initialized=!0}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),qw=new E("");function Zw(){xs(()=>{throw new v(600,!1)})}function Yw(e){return e.isBoundToModule}var Qw=10;function lh(e,t){return Array.isArray(t)?t.reduce(lh,e):G(G({},e),t)}var Jt=(()=>{class e{_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=m(Cv);afterRenderManager=m(rp);zonelessEnabled=m(qc);rootEffectScheduler=m(ah);dirtyFlags=0;tracingSnapshot=null;externalTestViews=new Set;afterTick=new ye;get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];isStable=m(en).hasPendingTasks.pipe(ne(n=>!n));constructor(){m(jn,{optional:!0})}whenStable(){let n;return new Promise(r=>{n=this.isStable.subscribe({next:o=>{o&&r()}})}).finally(()=>{n.unsubscribe()})}_injector=m(qe);_rendererFactory=null;get injector(){return this._injector}bootstrap(n,r){return this.bootstrapImpl(n,r)}bootstrapImpl(n,r,o=_e.NULL){V(10);let i=n instanceof Gp;if(!this._injector.get(uh).done){let d="";throw new v(405,d)}let a;i?a=n:a=this._injector.get(Hi).resolveComponentFactory(n),this.componentTypes.push(a.componentType);let c=Yw(a)?void 0:this._injector.get(Sn),u=r||a.selector,l=a.create(o,[],u,c),f=l.location.nativeElement,p=l.injector.get(bu,null);return p?.registerApplication(f),l.onDestroy(()=>{this.detachView(l.hostView),Uo(this.components,l),p?.unregisterApplication(f)}),this._loadComponent(l),V(11,l),l}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){V(12),this.tracingSnapshot!==null?this.tracingSnapshot.run(Xc.CHANGE_DETECTION,this.tickImpl):this.tickImpl()}tickImpl=()=>{if(this._runningTick)throw new v(101,!1);let n=O(null);try{this._runningTick=!0,this.synchronize()}catch(r){this.internalErrorHandler(r)}finally{this._runningTick=!1,this.tracingSnapshot?.dispose(),this.tracingSnapshot=null,O(n),this.afterTick.next(),V(13)}};synchronize(){this._rendererFactory===null&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get(Tn,null,{optional:!0}));let n=0;for(;this.dirtyFlags!==0&&n++Si(n))){this.dirtyFlags|=2;return}else this.dirtyFlags&=-8}attachView(n){let r=n;this._views.push(r),r.attachToAppRef(this)}detachView(n){let r=n;Uo(this._views,r),r.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView),this.tick(),this.components.push(n),this._injector.get(qw,[]).forEach(o=>o(n))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(n=>n()),this._views.slice().forEach(n=>n.destroy())}finally{this._destroyed=!0,this._views=[],this._destroyListeners=[]}}onDestroy(n){return this._destroyListeners.push(n),()=>Uo(this._destroyListeners,n)}destroy(){if(this._destroyed)throw new v(406,!1);let n=this._injector;n.destroy&&!n.destroyed&&n.destroy()}get viewCount(){return this._views.length}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function Uo(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}function Kw(e,t,n,r){if(!n&&!Si(e))return;Lp(e,t,n&&!r?0:1)}function Jw(e,t,n,r){let o=_(),i=_t();if(Me(o,i,t)){let s=B(),a=kn();WD(a,o,e,t,n,r)}return Jw}function Mu(e,t,n,r){return Me(e,_t(),n)?t+Bt(n)+r:we}function Xw(e,t,n,r,o,i){let s=Gy(),a=sh(e,s,n,o);return Hc(2),a?t+Bt(n)+r+Bt(o)+i:we}function Po(e,t){return e<<17|t<<2}function Xt(e){return e>>17&32767}function eI(e){return(e&2)==2}function tI(e,t){return e&131071|t<<17}function oc(e){return e|2}function Nn(e){return(e&131068)>>2}function ua(e,t){return e&-131069|t<<2}function nI(e){return(e&1)===1}function ic(e){return e|1}function rI(e,t,n,r,o,i){let s=i?t.classBindings:t.styleBindings,a=Xt(s),c=Nn(s);e[r]=n;let u=!1,l;if(Array.isArray(n)){let f=n;l=f[1],(l===null||Cr(f,l)>0)&&(u=!0)}else l=n;if(o)if(c!==0){let p=Xt(e[a+1]);e[r+1]=Po(p,a),p!==0&&(e[p+1]=ua(e[p+1],r)),e[a+1]=tI(e[a+1],r)}else e[r+1]=Po(a,0),a!==0&&(e[a+1]=ua(e[a+1],r)),a=r;else e[r+1]=Po(c,0),a===0?a=r:e[c+1]=ua(e[c+1],r),c=r;u&&(e[r+1]=oc(e[r+1])),bd(e,l,r,!0),bd(e,l,r,!1),oI(t,l,e,r,i),s=Po(a,c),i?t.classBindings=s:t.styleBindings=s}function oI(e,t,n,r,o){let i=o?e.residualClasses:e.residualStyles;i!=null&&typeof t=="string"&&Cr(i,t)>=0&&(n[r+1]=ic(n[r+1]))}function bd(e,t,n,r){let o=e[n+1],i=t===null,s=r?Xt(o):Nn(o),a=!1;for(;s!==0&&(a===!1||i);){let c=e[s],u=e[s+1];iI(c,t)&&(a=!0,e[s+1]=r?ic(u):oc(u)),s=r?Xt(u):Nn(u)}a&&(e[n+1]=r?oc(o):ic(o))}function iI(e,t){return e===null||t==null||(Array.isArray(e)?e[1]:e)===t?!0:Array.isArray(e)&&typeof t=="string"?Cr(e,t)>=0:!1}var Pe={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function sI(e){return e.substring(Pe.key,Pe.keyEnd)}function aI(e){return cI(e),dh(e,fh(e,0,Pe.textEnd))}function dh(e,t){let n=Pe.textEnd;return n===t?-1:(t=Pe.keyEnd=uI(e,Pe.key=t,n),fh(e,t,n))}function cI(e){Pe.key=0,Pe.keyEnd=0,Pe.value=0,Pe.valueEnd=0,Pe.textEnd=e.length}function fh(e,t,n){for(;t32;)t++;return t}function lI(e,t,n){let r=_(),o=_t();if(Me(r,o,t)){let i=B(),s=kn();Tr(i,s,r,e,t,r[U],n,!1)}return lI}function sc(e,t,n,r,o){lu(t,e,n,o?"class":"style",r)}function dI(e,t,n){return hh(e,t,n,!1),dI}function Tu(e,t){return hh(e,t,null,!0),Tu}function DR(e){gh(yI,ph,e,!0)}function ph(e,t){for(let n=aI(t);n>=0;n=dh(t,n))wi(e,sI(t),!0)}function hh(e,t,n,r){let o=_(),i=B(),s=Hc(2);if(i.firstUpdatePass&&yh(i,e,s,r),t!==we&&Me(o,s,t)){let a=i.data[ft()];vh(i,a,o,o[U],e,o[s+1]=DI(t,n),r,s)}}function gh(e,t,n,r){let o=B(),i=Hc(2);o.firstUpdatePass&&yh(o,null,i,r);let s=_();if(n!==we&&Me(s,i,n)){let a=o.data[ft()];if(Dh(a,r)&&!mh(o,i)){let c=r?a.classesWithoutHost:a.stylesWithoutHost;c!==null&&(n=ga(c,n||"")),sc(o,a,s,n,r)}else vI(o,a,s,s[U],s[i+1],s[i+1]=mI(e,t,n),r,i)}}function mh(e,t){return t>=e.expandoStartIndex}function yh(e,t,n,r){let o=e.data;if(o[n+1]===null){let i=o[ft()],s=mh(e,n);Dh(i,r)&&t===null&&!s&&(t=!1),t=fI(o,i,t,r),rI(o,i,t,n,s,r)}}function fI(e,t,n,r){let o=Df(e),i=r?t.residualClasses:t.residualStyles;if(o===null)(r?t.classBindings:t.styleBindings)===0&&(n=la(null,e,t,n,r),n=wr(n,t.attrs,r),i=null);else{let s=t.directiveStylingLast;if(s===-1||e[s]!==o)if(n=la(o,e,t,n,r),i===null){let c=pI(e,t,r);c!==void 0&&Array.isArray(c)&&(c=la(null,e,t,c[1],r),c=wr(c,t.attrs,r),hI(e,t,r,c))}else i=gI(e,t,r)}return i!==void 0&&(r?t.residualClasses=i:t.residualStyles=i),n}function pI(e,t,n){let r=n?t.classBindings:t.styleBindings;if(Nn(r)!==0)return e[Xt(r)]}function hI(e,t,n,r){let o=n?t.classBindings:t.styleBindings;e[Xt(o)]=r}function gI(e,t,n){let r,o=t.directiveEnd;for(let i=1+t.directiveStylingLast;i0;){let c=e[o],u=Array.isArray(c),l=u?c[1]:c,f=l===null,p=n[o+1];p===we&&(p=f?ge:void 0);let d=f?ea(p,r):l===r?p:void 0;if(u&&!pi(d)&&(d=ea(c,r)),pi(d)&&(a=d,s))return a;let h=e[o+1];o=s?Xt(h):Nn(h)}if(t!==null){let c=i?t.residualClasses:t.residualStyles;c!=null&&(a=ea(c,r))}return a}function pi(e){return e!==void 0}function DI(e,t){return e==null||e===""||(typeof t=="string"?e=e+t:typeof e=="object"&&(e=De(xe(e)))),e}function Dh(e,t){return(e.flags&(t?8:16))!==0}function ER(e,t,n){let r=_(),o=Mu(r,e,t,n);gh(wi,ph,o,!0)}var ac=class{destroy(t){}updateValue(t,n){}swap(t,n){let r=Math.min(t,n),o=Math.max(t,n),i=this.detach(o);if(o-r>1){let s=this.detach(r);this.attach(r,i),this.attach(o,s)}else this.attach(r,i)}move(t,n){this.attach(n,this.detach(t))}};function da(e,t,n,r,o){return e===n&&Object.is(t,r)?1:Object.is(o(e,t),o(n,r))?-1:0}function EI(e,t,n){let r,o,i=0,s=e.length-1,a=void 0;if(Array.isArray(t)){let c=t.length-1;for(;i<=s&&i<=c;){let u=e.at(i),l=t[i],f=da(i,u,i,l,n);if(f!==0){f<0&&e.updateValue(i,l),i++;continue}let p=e.at(s),d=t[c],h=da(s,p,c,d,n);if(h!==0){h<0&&e.updateValue(s,d),s--,c--;continue}let g=n(i,u),w=n(s,p),x=n(i,l);if(Object.is(x,w)){let ie=n(c,d);Object.is(ie,g)?(e.swap(i,s),e.updateValue(s,d),c--,s--):e.move(s,i),e.updateValue(i,l),i++;continue}if(r??=new hi,o??=Md(e,i,s,n),cc(e,r,i,x))e.updateValue(i,l),i++,s++;else if(o.has(x))r.set(g,e.detach(i)),s--;else{let ie=e.create(i,t[i]);e.attach(i,ie),i++,s++}}for(;i<=c;)_d(e,r,n,i,t[i]),i++}else if(t!=null){let c=t[Symbol.iterator](),u=c.next();for(;!u.done&&i<=s;){let l=e.at(i),f=u.value,p=da(i,l,i,f,n);if(p!==0)p<0&&e.updateValue(i,f),i++,u=c.next();else{r??=new hi,o??=Md(e,i,s,n);let d=n(i,f);if(cc(e,r,i,d))e.updateValue(i,f),i++,s++,u=c.next();else if(!o.has(d))e.attach(i,e.create(i,f)),i++,s++,u=c.next();else{let h=n(i,l);r.set(h,e.detach(i)),s--}}}for(;!u.done;)_d(e,r,n,e.length,u.value),u=c.next()}for(;i<=s;)e.destroy(e.detach(s--));r?.forEach(c=>{e.destroy(c)})}function cc(e,t,n,r){return t!==void 0&&t.has(r)?(e.attach(n,t.get(r)),t.delete(r),!0):!1}function _d(e,t,n,r,o){if(cc(e,t,r,n(r,o)))e.updateValue(r,o);else{let i=e.create(r,o);e.attach(r,i)}}function Md(e,t,n,r){let o=new Set;for(let i=t;i<=n;i++)o.add(r(i,e.at(i)));return o}var hi=class{kvMap=new Map;_vMap=void 0;has(t){return this.kvMap.has(t)}delete(t){if(!this.has(t))return!1;let n=this.kvMap.get(t);return this._vMap!==void 0&&this._vMap.has(n)?(this.kvMap.set(t,this._vMap.get(n)),this._vMap.delete(n)):this.kvMap.delete(t),!0}get(t){return this.kvMap.get(t)}set(t,n){if(this.kvMap.has(t)){let r=this.kvMap.get(t);this._vMap===void 0&&(this._vMap=new Map);let o=this._vMap;for(;o.has(r);)r=o.get(r);o.set(r,n)}else this.kvMap.set(t,n)}forEach(t){for(let[n,r]of this.kvMap)if(t(r,n),this._vMap!==void 0){let o=this._vMap;for(;o.has(r);)r=o.get(r),t(r,n)}}};function wR(e,t){Vn("NgControlFlow");let n=_(),r=_t(),o=n[r]!==we?n[r]:-1,i=o!==-1?gi(n,Q+o):void 0,s=0;if(Me(n,r,e)){let a=O(null);try{if(i!==void 0&&$p(i,s),e!==-1){let c=Q+e,u=gi(n,c),l=fc(n[N],c),f=Mn(u,l.tView.ssrId),p=Sr(n,l,t,{dehydratedView:f});Nr(u,p,s,_n(l,f))}}finally{O(a)}}else if(i!==void 0){let a=Up(i,s);a!==void 0&&(a[te]=t)}}var uc=class{lContainer;$implicit;$index;constructor(t,n,r){this.lContainer=t,this.$implicit=n,this.$index=r}get $count(){return this.lContainer.length-ce}};function IR(e,t){return t}var lc=class{hasEmptyBlock;trackByFn;liveCollection;constructor(t,n,r){this.hasEmptyBlock=t,this.trackByFn=n,this.liveCollection=r}};function bR(e,t,n,r,o,i,s,a,c,u,l,f,p){Vn("NgControlFlow");let d=_(),h=B(),g=c!==void 0,w=_(),x=a?s.bind(w[Ce][te]):s,ie=new lc(g,x);w[Q+e]=ie,fi(d,h,e+1,t,n,r,o,bt(h.consts,i)),g&&fi(d,h,e+2,c,u,l,f,bt(h.consts,p))}var dc=class extends ac{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(t,n,r){super(),this.lContainer=t,this.hostLView=n,this.templateTNode=r}get length(){return this.lContainer.length-ce}at(t){return this.getLView(t)[te].$implicit}attach(t,n){let r=n[wn];this.needsIndexUpdate||=t!==this.length,Nr(this.lContainer,n,t,_n(this.templateTNode,r))}detach(t){return this.needsIndexUpdate||=t!==this.length-1,wI(this.lContainer,t)}create(t,n){let r=Mn(this.lContainer,this.templateTNode.tView.ssrId),o=Sr(this.hostLView,this.templateTNode,new uc(this.lContainer,n,t),{dehydratedView:r});return this.operationsCounter?.recordCreate(),o}destroy(t){Li(t[N],t),this.operationsCounter?.recordDestroy()}updateValue(t,n){this.getLView(t)[te].$implicit=n}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let t=0;t(Ai(!0),vp(r,o,Xy()));function _I(e,t,n,r,o){let i=t.consts,s=bt(i,r),a=Bn(t,e,8,"ng-container",s);s!==null&&Ya(a,s,!0);let c=bt(i,o);return jc()&&yu(t,n,a,c,uu),a.mergedAttrs=Cn(a.mergedAttrs,a.attrs),t.queries!==null&&t.queries.elementStart(t,a),a}function Ih(e,t,n){let r=_(),o=B(),i=e+Q,s=o.firstCreatePass?_I(i,o,r,t,n):o.data[i];Ct(s,!0);let a=TI(o,r,s,e);return r[i]=a,xi()&&ji(o,r,a,s),Ln(a,r),Ti(s)&&(Pi(o,r,s),tu(o,s,r)),n!=null&&cu(r,s),Ih}function bh(){let e=le(),t=B();return Vc()?Bc():(e=e.parent,Ct(e,!1)),t.firstCreatePass&&(Gc(t,e),Rc(e)&&t.queries.elementEnd(e)),bh}function MI(e,t,n){return Ih(e,t,n),bh(),MI}var TI=(e,t,n,r)=>(Ai(!0),mD(t[U],""));function _R(){return _()}function SI(e,t,n){let r=_(),o=_t();if(Me(r,o,t)){let i=B(),s=kn();Tr(i,s,r,e,t,r[U],n,!0)}return SI}function NI(e,t,n){let r=_(),o=_t();if(Me(r,o,t)){let i=B(),s=kn(),a=Df(i.data),c=YD(a,s,r);Tr(i,s,r,e,t,c,n,!0)}return NI}var Lt=void 0;function xI(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\.?/,"").length;return t===1&&n===0?1:5}var AI=["en",[["a","p"],["AM","PM"],Lt],[["AM","PM"],Lt,Lt],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Lt,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Lt,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Lt,"{1} 'at' {0}",Lt],[".",",",";","%","+","-","E","\xD7","\u2030","\u221E","NaN",":"],["#,##0.###","#,##0%","\xA4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",xI],fa={};function Ae(e){let t=RI(e),n=Td(t);if(n)return n;let r=t.split("-")[0];if(n=Td(r),n)return n;if(r==="en")return AI;throw new v(701,!1)}function Td(e){return e in fa||(fa[e]=re.ng&&re.ng.common&&re.ng.common.locales&&re.ng.common.locales[e]),fa[e]}var W=function(e){return e[e.LocaleId=0]="LocaleId",e[e.DayPeriodsFormat=1]="DayPeriodsFormat",e[e.DayPeriodsStandalone=2]="DayPeriodsStandalone",e[e.DaysFormat=3]="DaysFormat",e[e.DaysStandalone=4]="DaysStandalone",e[e.MonthsFormat=5]="MonthsFormat",e[e.MonthsStandalone=6]="MonthsStandalone",e[e.Eras=7]="Eras",e[e.FirstDayOfWeek=8]="FirstDayOfWeek",e[e.WeekendRange=9]="WeekendRange",e[e.DateFormat=10]="DateFormat",e[e.TimeFormat=11]="TimeFormat",e[e.DateTimeFormat=12]="DateTimeFormat",e[e.NumberSymbols=13]="NumberSymbols",e[e.NumberFormats=14]="NumberFormats",e[e.CurrencyCode=15]="CurrencyCode",e[e.CurrencySymbol=16]="CurrencySymbol",e[e.CurrencyName=17]="CurrencyName",e[e.Currencies=18]="Currencies",e[e.Directionality=19]="Directionality",e[e.PluralCase=20]="PluralCase",e[e.ExtraData=21]="ExtraData",e}(W||{});function RI(e){return e.toLowerCase().replace(/_/g,"-")}var mi="en-US";var OI=mi;function kI(e){typeof e=="string"&&(OI=e.toLowerCase().replace(/_/g,"-"))}function Sd(e,t,n){return function r(o){if(o===Function)return n;let i=An(e)?Ye(e.index,t):t;mu(i,5);let s=t[te],a=Nd(t,s,n,o),c=r.__ngNextListenerFn__;for(;c;)a=Nd(t,s,c,o)&&a,c=c.__ngNextListenerFn__;return a}}function Nd(e,t,n,r){let o=O(null);try{return V(6,t,n),n(r)!==!1}catch(i){return FI(e,i),!1}finally{V(7,t,n),O(o)}}function FI(e,t){let n=e[In],r=n?n.get(Qe,null):null;r&&r.handleError(t)}function xd(e,t,n,r,o,i){let s=t[n],a=t[N],u=a.data[n].outputs[r],l=s[u],f=a.firstCreatePass?Lc(a):null,p=Pc(t),d=l.subscribe(i),h=p.length;p.push(i,d),f&&f.push(o,e.index,h,-(h+1))}function PI(e,t,n,r){let o=_(),i=B(),s=le();return Ch(i,o,o[U],s,e,t,r),PI}function LI(e,t,n,r){let o=e.cleanup;if(o!=null)for(let i=0;ic?a[c]:null}typeof s=="string"&&(i+=2)}return null}function Ch(e,t,n,r,o,i,s){let a=Ti(r),u=e.firstCreatePass?Lc(e):null,l=Pc(t),f=!0;if(r.type&3||s){let p=et(r,t),d=s?s(p):p,h=l.length,g=s?x=>s(Ze(x[r.index])):r.index,w=null;if(!s&&a&&(w=LI(e,t,o,r.index)),w!==null){let x=w.__ngLastListenerFn__||w;x.__ngNextListenerFn__=i,w.__ngLastListenerFn__=i,f=!1}else{i=Sd(r,t,i),zv(t,d,o,i);let x=n.listen(d,o,i);l.push(i,x),u&&u.push(o,g,h,h+1)}}else i=Sd(r,t,i);if(f){let p=r.outputs?.[o],d=r.hostDirectiveOutputs?.[o];if(d&&d.length)for(let h=0;h(Ai(!0),hD(t[U],r));function UI(e){return Mh("",e,""),UI}function Mh(e,t,n){let r=_(),o=Mu(r,e,t,n);return o!==we&&Th(r,ft(),o),Mh}function $I(e,t,n,r,o){let i=_(),s=Xw(i,e,t,n,r,o);return s!==we&&Th(i,ft(),s),$I}function Th(e,t,n){let r=df(t,e);gD(e[U],r,n)}function zI(e,t,n){qf(t)&&(t=t());let r=_(),o=_t();if(Me(r,o,t)){let i=B(),s=kn();Tr(i,s,r,e,t,r[U],n,!1)}return zI}function LR(e,t){let n=qf(e);return n&&e.set(t),n}function GI(e,t){let n=_(),r=B(),o=le();return Ch(r,n,n[U],o,e,t),GI}var WI={};function qI(e){let t=B(),n=_(),r=e+Q,o=Bn(t,r,128,null,null);return Ct(o,!1),ff(t,n,r,WI),qI}function ZI(e,t,n){let r=B();if(r.firstCreatePass){let o=je(e);pc(n,r.data,r.blueprint,o,!0),pc(t,r.data,r.blueprint,o,!1)}}function pc(e,t,n,r,o){if(e=he(e),Array.isArray(e))for(let i=0;i>20;if(En(e)||!e.multi){let d=new Zt(u,o,K),h=ha(c,t,o?l:l+p,f);h===-1?(Ta(ti(a,s),i,c),pa(i,e,t.length),t.push(c),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),n.push(d),s.push(d)):(n[h]=d,s[h]=d)}else{let d=ha(c,t,l+p,f),h=ha(c,t,l,l+p),g=d>=0&&n[d],w=h>=0&&n[h];if(o&&!w||!o&&!g){Ta(ti(a,s),i,c);let x=KI(o?QI:YI,n.length,o,r,u);!o&&w&&(n[h].providerFactory=x),pa(i,e,t.length,0),t.push(c),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),n.push(x),s.push(x)}else{let x=Sh(n[o?h:d],u,!o&&r);pa(i,e,d>-1?d:h,x)}!o&&r&&w&&n[h].componentProviders++}}}function pa(e,t,n,r){let o=En(t),i=Ey(t);if(o||i){let c=(i?he(t.useClass):t).prototype.ngOnDestroy;if(c){let u=e.destroyHooks||(e.destroyHooks=[]);if(!o&&t.multi){let l=u.indexOf(n);l===-1?u.push(n,[r,c]):u[l+1].push(r,c)}else u.push(n,c)}}}function Sh(e,t,n){return n&&e.componentProviders++,e.multi.push(t)-1}function ha(e,t,n,r){for(let o=n;o{n.providersResolver=(r,o)=>ZI(r,o?o(e):e,t)}}function jR(e,t,n){let r=_r()+e,o=_();return o[r]===we?Iu(o,r,n?t.call(n):t()):Bw(o,r)}function VR(e,t,n,r){return Ah(_(),_r(),e,t,n,r)}function BR(e,t,n,r,o){return Rh(_(),_r(),e,t,n,r,o)}function xh(e,t){let n=e[t];return n===we?void 0:n}function Ah(e,t,n,r,o,i){let s=t+n;return Me(e,s,o)?Iu(e,s+1,i?r.call(i,o):r(o)):xh(e,s+1)}function Rh(e,t,n,r,o,i,s){let a=t+n;return sh(e,a,o,i)?Iu(e,a+2,s?r.call(s,o,i):r(o,i)):xh(e,a+2)}function HR(e,t){let n=B(),r,o=e+Q;n.firstCreatePass?(r=JI(t,n.pipeRegistry),n.data[o]=r,r.onDestroy&&(n.destroyHooks??=[]).push(o,r.onDestroy)):r=n.data[o];let i=r.factory||(r.factory=Ht(r.type,!0)),s,a=ve(K);try{let c=ei(!1),u=i();return ei(c),ff(n,_(),o,u),u}finally{ve(a)}}function JI(e,t){if(t)for(let n=t.length-1;n>=0;n--){let r=t[n];if(e===r.name)return r}}function UR(e,t,n){let r=e+Q,o=_(),i=kc(o,r);return Oh(o,r)?Ah(o,_r(),t,i.transform,n,i):i.transform(n)}function $R(e,t,n,r){let o=e+Q,i=_(),s=kc(i,o);return Oh(i,o)?Rh(i,_r(),t,s.transform,n,r,s):s.transform(n,r)}function Oh(e,t){return e[N].data[t].pure}function zR(e,t){return Bi(e,t)}var Lo=null;function XI(e){Lo!==null&&(e.defaultEncapsulation!==Lo.defaultEncapsulation||e.preserveWhitespaces!==Lo.preserveWhitespaces)||(Lo=e)}var Ir=class{full;major;minor;patch;constructor(t){this.full=t;let n=t.split(".");this.major=n[0],this.minor=n[1],this.patch=n.slice(2).join(".")}},GR=new Ir("19.2.17"),gc=class{ngModuleFactory;componentFactories;constructor(t,n){this.ngModuleFactory=t,this.componentFactories=n}},WR=(()=>{class e{compileModuleSync(n){return new di(n)}compileModuleAsync(n){return Promise.resolve(this.compileModuleSync(n))}compileModuleAndAllComponentsSync(n){let r=this.compileModuleSync(n),o=Jd(n),i=wp(o.declarations).reduce((s,a)=>{let c=It(a);return c&&s.push(new Kt(c)),s},[]);return new gc(r,i)}compileModuleAndAllComponentsAsync(n){return Promise.resolve(this.compileModuleAndAllComponentsSync(n))}clearCache(){}clearCacheFor(n){}getModuleId(n){}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),eb=new E("");function tb(e,t,n){let r=new di(n);return Promise.resolve(r)}function Ad(e){for(let t=e.length-1;t>=0;t--)if(e[t]!==void 0)return e[t]}var nb=(()=>{class e{zone=m(z);changeDetectionScheduler=m(Yt);applicationRef=m(Jt);_onMicrotaskEmptySubscription;initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function rb({ngZoneFactory:e,ignoreChangesOutsideZone:t,scheduleInRootZone:n}){return e??=()=>new z(oe(G({},kh()),{scheduleInRootZone:n})),[{provide:z,useFactory:e},{provide:hr,multi:!0,useFactory:()=>{let r=m(nb,{optional:!0});return()=>r.initialize()}},{provide:hr,multi:!0,useFactory:()=>{let r=m(ob);return()=>{r.initialize()}}},t===!0?{provide:Hf,useValue:!0}:[],{provide:Uf,useValue:n??Bf}]}function kh(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:e?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:e?.runCoalescing??!1}}var ob=(()=>{class e{subscription=new Y;initialized=!1;zone=m(z);pendingTasks=m(en);initialize(){if(this.initialized)return;this.initialized=!0;let n=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(n=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{z.assertNotInAngularZone(),queueMicrotask(()=>{n!==null&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(n),n=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{z.assertInAngularZone(),n??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var ib=(()=>{class e{appRef=m(Jt);taskService=m(en);ngZone=m(z);zonelessEnabled=m(qc);tracing=m(jn,{optional:!0});disableScheduling=m(Hf,{optional:!0})??!1;zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new Y;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(ri):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(m(Uf,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof oi||!this.zoneIsDefined)}notify(n){if(!this.zonelessEnabled&&n===5)return;let r=!1;switch(n){case 0:{this.appRef.dirtyFlags|=2;break}case 3:case 2:case 4:case 5:case 1:{this.appRef.dirtyFlags|=4;break}case 6:{this.appRef.dirtyFlags|=2,r=!0;break}case 12:{this.appRef.dirtyFlags|=16,r=!0;break}case 13:{this.appRef.dirtyFlags|=2,r=!0;break}case 11:{r=!0;break}case 9:case 8:case 7:case 10:default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick(r))return;let o=this.useMicrotaskScheduler?nd:$f;this.pendingRenderTaskId=this.taskService.add(),this.scheduleInRootZone?this.cancelScheduledCallback=Zone.root.run(()=>o(()=>this.tick())):this.cancelScheduledCallback=this.ngZone.runOutsideAngular(()=>o(()=>this.tick()))}shouldScheduleTick(n){return!(this.disableScheduling&&!n||this.appRef.destroyed||this.pendingRenderTaskId!==null||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(ri+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(this.appRef.dirtyFlags===0){this.cleanup();return}!this.zonelessEnabled&&this.appRef.dirtyFlags&7&&(this.appRef.dirtyFlags|=1);let n=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(r){throw this.taskService.remove(n),r}finally{this.cleanup()}this.useMicrotaskScheduler=!0,nd(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(n)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,this.pendingRenderTaskId!==null){let n=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(n)}}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function sb(){return typeof $localize<"u"&&$localize.locale||mi}var qi=new E("",{providedIn:"root",factory:()=>m(qi,k.Optional|k.SkipSelf)||sb()});var yi=new E(""),ab=new E("");function lr(e){return!e.moduleRef}function cb(e){let t=lr(e)?e.r3Injector:e.moduleRef.injector,n=t.get(z);return n.run(()=>{lr(e)?e.r3Injector.resolveInjectorInitializers():e.moduleRef.resolveInjectorInitializers();let r=t.get(Qe,null),o;if(n.runOutsideAngular(()=>{o=n.onError.subscribe({next:i=>{r.handleError(i)}})}),lr(e)){let i=()=>t.destroy(),s=e.platformInjector.get(yi);s.add(i),t.onDestroy(()=>{o.unsubscribe(),s.delete(i)})}else{let i=()=>e.moduleRef.destroy(),s=e.platformInjector.get(yi);s.add(i),e.moduleRef.onDestroy(()=>{Uo(e.allPlatformModules,e.moduleRef),o.unsubscribe(),s.delete(i)})}return lb(r,n,()=>{let i=t.get(uh);return i.runInitializers(),i.donePromise.then(()=>{let s=t.get(qi,mi);if(kI(s||mi),!t.get(ab,!0))return lr(e)?t.get(Jt):(e.allPlatformModules.push(e.moduleRef),e.moduleRef);if(lr(e)){let c=t.get(Jt);return e.rootComponent!==void 0&&c.bootstrap(e.rootComponent),c}else return ub(e.moduleRef,e.allPlatformModules),e.moduleRef})})})}function ub(e,t){let n=e.injector.get(Jt);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(r=>n.bootstrap(r));else if(e.instance.ngDoBootstrap)e.instance.ngDoBootstrap(n);else throw new v(-403,!1);t.push(e)}function lb(e,t,n){try{let r=n();return Wi(r)?r.catch(o=>{throw t.runOutsideAngular(()=>e.handleError(o)),o}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}var Fh=(()=>{class e{_injector;_modules=[];_destroyListeners=[];_destroyed=!1;constructor(n){this._injector=n}bootstrapModuleFactory(n,r){let o=r?.scheduleInRootZone,i=()=>bv(r?.ngZone,oe(G({},kh({eventCoalescing:r?.ngZoneEventCoalescing,runCoalescing:r?.ngZoneRunCoalescing})),{scheduleInRootZone:o})),s=r?.ignoreChangesOutsideZone,a=[rb({ngZoneFactory:i,ignoreChangesOutsideZone:s}),{provide:Yt,useExisting:ib}],c=_w(n.moduleType,this.injector,a);return cb({moduleRef:c,allPlatformModules:this._modules,platformInjector:this.injector})}bootstrapModule(n,r=[]){let o=lh({},r);return tb(this.injector,o,n).then(i=>this.bootstrapModuleFactory(i,o))}onDestroy(n){this._destroyListeners.push(n)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new v(404,!1);this._modules.slice().forEach(r=>r.destroy()),this._destroyListeners.forEach(r=>r());let n=this._injector.get(yi,null);n&&(n.forEach(r=>r()),n.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static \u0275fac=function(r){return new(r||e)(b(_e))};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})(),Su=null;function db(e){if(xu())throw new v(400,!1);Zw(),Su=e;let t=e.get(Fh);return hb(e),t}function Nu(e,t,n=[]){let r=`Platform: ${t}`,o=new E(r);return(i=[])=>{let s=xu();if(!s){let a=[...n,...i,{provide:o,useValue:!0}];s=e?.(a)??db(fb(a,r))}return pb(o)}}function fb(e=[],t){return _e.create({name:t,providers:[{provide:bi,useValue:"platform"},{provide:yi,useValue:new Set([()=>Su=null])},...e]})}function pb(e){let t=xu();if(!t)throw new v(401,!1);return t}function xu(){return Su?.get(Fh)??null}function hb(e){let t=e.get(Kc,null);_i(e,()=>{t?.forEach(n=>n())})}var Au=(()=>{class e{static __NG_ELEMENT_ID__=gb}return e})();function gb(e){return mb(le(),_(),(e&16)===16)}function mb(e,t,n){if(An(e)&&!n){let r=Ye(e.index,t);return new Er(r,r)}else if(e.type&175){let r=t[Ce];return new Er(r,t)}return null}var mc=class{constructor(){}supports(t){return ih(t)}create(t){return new yc(t)}},yb=(e,t)=>t,yc=class{length=0;collection;_linkedRecords=null;_unlinkedRecords=null;_previousItHead=null;_itHead=null;_itTail=null;_additionsHead=null;_additionsTail=null;_movesHead=null;_movesTail=null;_removalsHead=null;_removalsTail=null;_identityChangesHead=null;_identityChangesTail=null;_trackByFn;constructor(t){this._trackByFn=t||yb}forEachItem(t){let n;for(n=this._itHead;n!==null;n=n._next)t(n)}forEachOperation(t){let n=this._itHead,r=this._removalsHead,o=0,i=null;for(;n||r;){let s=!r||n&&n.currentIndex{s=this._trackByFn(o,a),n===null||!Object.is(n.trackById,s)?(n=this._mismatch(n,a,s,o),r=!0):(r&&(n=this._verifyReinsertion(n,a,s,o)),Object.is(n.item,a)||this._addIdentityChange(n,a)),n=n._next,o++}),this.length=o;return this._truncate(n),this.collection=t,this.isDirty}get isDirty(){return this._additionsHead!==null||this._movesHead!==null||this._removalsHead!==null||this._identityChangesHead!==null}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;t!==null;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;t!==null;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;t!==null;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,n,r,o){let i;return t===null?i=this._itTail:(i=t._prev,this._remove(t)),t=this._unlinkedRecords===null?null:this._unlinkedRecords.get(r,null),t!==null?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._reinsertAfter(t,i,o)):(t=this._linkedRecords===null?null:this._linkedRecords.get(r,o),t!==null?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._moveAfter(t,i,o)):t=this._addAfter(new vc(n,r),i,o)),t}_verifyReinsertion(t,n,r,o){let i=this._unlinkedRecords===null?null:this._unlinkedRecords.get(r,null);return i!==null?t=this._reinsertAfter(i,t._prev,o):t.currentIndex!=o&&(t.currentIndex=o,this._addToMoves(t,o)),t}_truncate(t){for(;t!==null;){let n=t._next;this._addToRemovals(this._unlink(t)),t=n}this._unlinkedRecords!==null&&this._unlinkedRecords.clear(),this._additionsTail!==null&&(this._additionsTail._nextAdded=null),this._movesTail!==null&&(this._movesTail._nextMoved=null),this._itTail!==null&&(this._itTail._next=null),this._removalsTail!==null&&(this._removalsTail._nextRemoved=null),this._identityChangesTail!==null&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,n,r){this._unlinkedRecords!==null&&this._unlinkedRecords.remove(t);let o=t._prevRemoved,i=t._nextRemoved;return o===null?this._removalsHead=i:o._nextRemoved=i,i===null?this._removalsTail=o:i._prevRemoved=o,this._insertAfter(t,n,r),this._addToMoves(t,r),t}_moveAfter(t,n,r){return this._unlink(t),this._insertAfter(t,n,r),this._addToMoves(t,r),t}_addAfter(t,n,r){return this._insertAfter(t,n,r),this._additionsTail===null?this._additionsTail=this._additionsHead=t:this._additionsTail=this._additionsTail._nextAdded=t,t}_insertAfter(t,n,r){let o=n===null?this._itHead:n._next;return t._next=o,t._prev=n,o===null?this._itTail=t:o._prev=t,n===null?this._itHead=t:n._next=t,this._linkedRecords===null&&(this._linkedRecords=new vi),this._linkedRecords.put(t),t.currentIndex=r,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){this._linkedRecords!==null&&this._linkedRecords.remove(t);let n=t._prev,r=t._next;return n===null?this._itHead=r:n._next=r,r===null?this._itTail=n:r._prev=n,t}_addToMoves(t,n){return t.previousIndex===n||(this._movesTail===null?this._movesTail=this._movesHead=t:this._movesTail=this._movesTail._nextMoved=t),t}_addToRemovals(t){return this._unlinkedRecords===null&&(this._unlinkedRecords=new vi),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,this._removalsTail===null?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,n){return t.item=n,this._identityChangesTail===null?this._identityChangesTail=this._identityChangesHead=t:this._identityChangesTail=this._identityChangesTail._nextIdentityChange=t,t}},vc=class{item;trackById;currentIndex=null;previousIndex=null;_nextPrevious=null;_prev=null;_next=null;_prevDup=null;_nextDup=null;_prevRemoved=null;_nextRemoved=null;_nextAdded=null;_nextMoved=null;_nextIdentityChange=null;constructor(t,n){this.item=t,this.trackById=n}},Dc=class{_head=null;_tail=null;add(t){this._head===null?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,n){let r;for(r=this._head;r!==null;r=r._nextDup)if((n===null||n<=r.currentIndex)&&Object.is(r.trackById,t))return r;return null}remove(t){let n=t._prevDup,r=t._nextDup;return n===null?this._head=r:n._nextDup=r,r===null?this._tail=n:r._prevDup=n,this._head===null}},vi=class{map=new Map;put(t){let n=t.trackById,r=this.map.get(n);r||(r=new Dc,this.map.set(n,r)),r.add(t)}get(t,n){let r=t,o=this.map.get(r);return o?o.get(t,n):null}remove(t){let n=t.trackById;return this.map.get(n).remove(t)&&this.map.delete(n),t}get isEmpty(){return this.map.size===0}clear(){this.map.clear()}};function Rd(e,t,n){let r=e.previousIndex;if(r===null)return r;let o=0;return n&&r{if(n&&n.key===o)this._maybeAddToChanges(n,r),this._appendAfter=n,n=n._next;else{let i=this._getOrCreateRecordForKey(o,r);n=this._insertBeforeOrAppend(n,i)}}),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(let r=n;r!==null;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,n){if(t){let r=t._prev;return n._next=t,n._prev=r,t._prev=n,r&&(r._next=n),t===this._mapHead&&(this._mapHead=n),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=n,n._prev=this._appendAfter):this._mapHead=n,this._appendAfter=n,null}_getOrCreateRecordForKey(t,n){if(this._records.has(t)){let o=this._records.get(t);this._maybeAddToChanges(o,n);let i=o._prev,s=o._next;return i&&(i._next=s),s&&(s._prev=i),o._next=null,o._prev=null,o}let r=new Ic(t);return this._records.set(t,r),r.currentValue=n,this._addToAdditions(r),r}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;t!==null;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;t!==null;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;t!=null;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,n){Object.is(n,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=n,this._addToChanges(t))}_addToAdditions(t){this._additionsHead===null?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){this._changesHead===null?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,n){t instanceof Map?t.forEach(n):Object.keys(t).forEach(r=>n(t[r],r))}},Ic=class{key;previousValue=null;currentValue=null;_nextPrevious=null;_next=null;_prev=null;_nextAdded=null;_nextRemoved=null;_nextChanged=null;constructor(t){this.key=t}};function Od(){return new Ru([new mc])}var Ru=(()=>{class e{factories;static \u0275prov=M({token:e,providedIn:"root",factory:Od});constructor(n){this.factories=n}static create(n,r){if(r!=null){let o=r.factories.slice();n=n.concat(o)}return new e(n)}static extend(n){return{provide:e,useFactory:r=>e.create(n,r||Od()),deps:[[e,new Zd,new Mc]]}}find(n){let r=this.factories.find(o=>o.supports(n));if(r!=null)return r;throw new v(901,!1)}}return e})();function kd(){return new Ou([new Ec])}var Ou=(()=>{class e{static \u0275prov=M({token:e,providedIn:"root",factory:kd});factories;constructor(n){this.factories=n}static create(n,r){if(r){let o=r.factories.slice();n=n.concat(o)}return new e(n)}static extend(n){return{provide:e,useFactory:r=>e.create(n,r||kd()),deps:[[e,new Zd,new Mc]]}}find(n){let r=this.factories.find(o=>o.supports(n));if(r)return r;throw new v(901,!1)}}return e})();var Ph=Nu(null,"core",[]),Lh=(()=>{class e{constructor(n){}static \u0275fac=function(r){return new(r||e)(b(Jt))};static \u0275mod=gt({type:e});static \u0275inj=lt({})}return e})();function Ar(e){return typeof e=="boolean"?e:e!=null&&e!=="false"}function ku(e,t=NaN){return!isNaN(parseFloat(e))&&!isNaN(Number(e))?Number(e):t}function Fu(e){return Os(e)}function jh(e,t){return Xr(e,t?.equal)}var bc=class{[me];constructor(t){this[me]=t}destroy(){this[me].destroy()}};function Hn(e,t){!t?.injector&&xc(Hn);let n=t?.injector??m(_e),r=t?.manualCleanup!==!0?n.get(Fn):null,o,i=n.get(eu,null,{optional:!0}),s=n.get(Yt);return i!==null&&!t?.forceRoot?(o=Eb(i.view,s,e),r instanceof ni&&r._lView===i.view&&(r=null)):o=wb(e,n.get(ah),s),o.injector=n,r!==null&&(o.onDestroyFn=r.onDestroy(()=>o.destroy())),new bc(o)}var Vh=oe(G({},an),{consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,hasRun:!1,cleanupFns:void 0,zone:null,kind:"effect",onDestroyFn:vr,run(){if(this.dirty=!1,this.hasRun&&!Qr(this))return;this.hasRun=!0;let e=r=>(this.cleanupFns??=[]).push(r),t=Jn(this),n=Ko(!1);try{this.maybeCleanup(),this.fn(e)}finally{Ko(n),Yr(this,t)}},maybeCleanup(){if(this.cleanupFns?.length)try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[]}}}),vb=oe(G({},Vh),{consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(12)},destroy(){Xn(this),this.onDestroyFn(),this.maybeCleanup(),this.scheduler.remove(this)}}),Db=oe(G({},Vh),{consumerMarkedDirty(){this.view[T]|=8192,On(this.view),this.notifier.notify(13)},destroy(){Xn(this),this.onDestroyFn(),this.maybeCleanup(),this.view[zt]?.delete(this)}});function Eb(e,t,n){let r=Object.create(Db);return r.view=e,r.zone=typeof Zone<"u"?Zone.current:null,r.notifier=t,r.fn=n,e[zt]??=new Set,e[zt].add(r),r.consumerMarkedDirty(r),r}function wb(e,t,n){let r=Object.create(vb);return r.fn=e,r.scheduler=t,r.notifier=n,r.zone=typeof Zone<"u"?Zone.current:null,r.scheduler.schedule(r),r.notifier.notify(12),r}function qR(e,t){let n=It(e),r=t.elementInjector||Ci();return new Kt(n).create(r,t.projectableNodes,t.hostElement,t.environmentInjector)}function ZR(e){let t=It(e);if(!t)return null;let n=new Kt(t);return{get selector(){return n.selector},get type(){return n.componentType},get inputs(){return n.inputs},get outputs(){return n.outputs},get ngContentSelectors(){return n.ngContentSelectors},get isStandalone(){return t.standalone},get isSignal(){return t.signals}}}var q=new E("");var Uh=null;function tt(){return Uh}function Pu(e){Uh??=e}var Rr=class{},Or=(()=>{class e{historyGo(n){throw new Error("")}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:()=>m($h),providedIn:"platform"})}return e})(),Ib=new E(""),$h=(()=>{class e extends Or{_location;_history;_doc=m(q);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return tt().getBaseHref(this._doc)}onPopState(n){let r=tt().getGlobalEventTarget(this._doc,"window");return r.addEventListener("popstate",n,!1),()=>r.removeEventListener("popstate",n)}onHashChange(n){let r=tt().getGlobalEventTarget(this._doc,"window");return r.addEventListener("hashchange",n,!1),()=>r.removeEventListener("hashchange",n)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(n){this._location.pathname=n}pushState(n,r,o){this._history.pushState(n,r,o)}replaceState(n,r,o){this._history.replaceState(n,r,o)}forward(){this._history.forward()}back(){this._history.back()}historyGo(n=0){this._history.go(n)}getState(){return this._history.state}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:()=>new e,providedIn:"platform"})}return e})();function Zi(e,t){return e?t?e.endsWith("/")?t.startsWith("/")?e+t.slice(1):e+t:t.startsWith("/")?e+t:`${e}/${t}`:e:t}function Bh(e){let t=e.search(/#|\?|$/);return e[t-1]==="/"?e.slice(0,t-1)+e.slice(t):e}function He(e){return e&&e[0]!=="?"?`?${e}`:e}var Un=(()=>{class e{historyGo(n){throw new Error("")}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:()=>m(zh),providedIn:"root"})}return e})(),Yi=new E(""),zh=(()=>{class e extends Un{_platformLocation;_baseHref;_removeListenerFns=[];constructor(n,r){super(),this._platformLocation=n,this._baseHref=r??this._platformLocation.getBaseHrefFromDOM()??m(q).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}prepareExternalUrl(n){return Zi(this._baseHref,n)}path(n=!1){let r=this._platformLocation.pathname+He(this._platformLocation.search),o=this._platformLocation.hash;return o&&n?`${r}${o}`:r}pushState(n,r,o,i){let s=this.prepareExternalUrl(o+He(i));this._platformLocation.pushState(n,r,s)}replaceState(n,r,o,i){let s=this.prepareExternalUrl(o+He(i));this._platformLocation.replaceState(n,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}static \u0275fac=function(r){return new(r||e)(b(Or),b(Yi,8))};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Gh=(()=>{class e{_subject=new ye;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(n){this._locationStrategy=n;let r=this._locationStrategy.getBaseHref();this._basePath=_b(Bh(Hh(r))),this._locationStrategy.onPopState(o=>{this._subject.next({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(n=!1){return this.normalize(this._locationStrategy.path(n))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(n,r=""){return this.path()==this.normalize(n+He(r))}normalize(n){return e.stripTrailingSlash(Cb(this._basePath,Hh(n)))}prepareExternalUrl(n){return n&&n[0]!=="/"&&(n="/"+n),this._locationStrategy.prepareExternalUrl(n)}go(n,r="",o=null){this._locationStrategy.pushState(o,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+He(r)),o)}replaceState(n,r="",o=null){this._locationStrategy.replaceState(o,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+He(r)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(n=0){this._locationStrategy.historyGo?.(n)}onUrlChange(n){return this._urlChangeListeners.push(n),this._urlChangeSubscription??=this.subscribe(r=>{this._notifyUrlChangeListeners(r.url,r.state)}),()=>{let r=this._urlChangeListeners.indexOf(n);this._urlChangeListeners.splice(r,1),this._urlChangeListeners.length===0&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(n="",r){this._urlChangeListeners.forEach(o=>o(n,r))}subscribe(n,r,o){return this._subject.subscribe({next:n,error:r??void 0,complete:o??void 0})}static normalizeQueryParams=He;static joinWithSlash=Zi;static stripTrailingSlash=Bh;static \u0275fac=function(r){return new(r||e)(b(Un))};static \u0275prov=M({token:e,factory:()=>bb(),providedIn:"root"})}return e})();function bb(){return new Gh(b(Un))}function Cb(e,t){if(!e||!t.startsWith(e))return t;let n=t.substring(e.length);return n===""||["/",";","?","#"].includes(n[0])?n:t}function Hh(e){return e.replace(/\/index.html$/,"")}function _b(e){if(new RegExp("^(https?:)?//").test(e)){let[,n]=e.split(/\/\/[^\/]+/);return n}return e}var Mb=(()=>{class e extends Un{_platformLocation;_baseHref="";_removeListenerFns=[];constructor(n,r){super(),this._platformLocation=n,r!=null&&(this._baseHref=r)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}path(n=!1){let r=this._platformLocation.hash??"#";return r.length>0?r.substring(1):r}prepareExternalUrl(n){let r=Zi(this._baseHref,n);return r.length>0?"#"+r:r}pushState(n,r,o,i){let s=this.prepareExternalUrl(o+He(i))||this._platformLocation.pathname;this._platformLocation.pushState(n,r,s)}replaceState(n,r,o,i){let s=this.prepareExternalUrl(o+He(i))||this._platformLocation.pathname;this._platformLocation.replaceState(n,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}static \u0275fac=function(r){return new(r||e)(b(Or),b(Yi,8))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})();var de=function(e){return e[e.Format=0]="Format",e[e.Standalone=1]="Standalone",e}(de||{}),L=function(e){return e[e.Narrow=0]="Narrow",e[e.Abbreviated=1]="Abbreviated",e[e.Wide=2]="Wide",e[e.Short=3]="Short",e}(L||{}),Ie=function(e){return e[e.Short=0]="Short",e[e.Medium=1]="Medium",e[e.Long=2]="Long",e[e.Full=3]="Full",e}(Ie||{}),yt={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function Qh(e){return Ae(e)[W.LocaleId]}function Kh(e,t,n){let r=Ae(e),o=[r[W.DayPeriodsFormat],r[W.DayPeriodsStandalone]],i=Re(o,t);return Re(i,n)}function Jh(e,t,n){let r=Ae(e),o=[r[W.DaysFormat],r[W.DaysStandalone]],i=Re(o,t);return Re(i,n)}function Xh(e,t,n){let r=Ae(e),o=[r[W.MonthsFormat],r[W.MonthsStandalone]],i=Re(o,t);return Re(i,n)}function eg(e,t){let r=Ae(e)[W.Eras];return Re(r,t)}function kr(e,t){let n=Ae(e);return Re(n[W.DateFormat],t)}function Fr(e,t){let n=Ae(e);return Re(n[W.TimeFormat],t)}function Pr(e,t){let r=Ae(e)[W.DateTimeFormat];return Re(r,t)}function Lr(e,t){let n=Ae(e),r=n[W.NumberSymbols][t];if(typeof r>"u"){if(t===yt.CurrencyDecimal)return n[W.NumberSymbols][yt.Decimal];if(t===yt.CurrencyGroup)return n[W.NumberSymbols][yt.Group]}return r}function tg(e){if(!e[W.ExtraData])throw new Error(`Missing extra locale data for the locale "${e[W.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function ng(e){let t=Ae(e);return tg(t),(t[W.ExtraData][2]||[]).map(r=>typeof r=="string"?Lu(r):[Lu(r[0]),Lu(r[1])])}function rg(e,t,n){let r=Ae(e);tg(r);let o=[r[W.ExtraData][0],r[W.ExtraData][1]],i=Re(o,t)||[];return Re(i,n)||[]}function Re(e,t){for(let n=t;n>-1;n--)if(typeof e[n]<"u")return e[n];throw new Error("Locale data API: locale data undefined")}function Lu(e){let[t,n]=e.split(":");return{hours:+t,minutes:+n}}var Tb=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Qi={},Sb=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;function og(e,t,n,r){let o=Lb(e);t=mt(n,t)||t;let s=[],a;for(;t;)if(a=Sb.exec(t),a){s=s.concat(a.slice(1));let l=s.pop();if(!l)break;t=l}else{s.push(t);break}let c=o.getTimezoneOffset();r&&(c=sg(r,c),o=Pb(o,r));let u="";return s.forEach(l=>{let f=kb(l);u+=f?f(o,n,c):l==="''"?"'":l.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),u}function ts(e,t,n){let r=new Date(0);return r.setFullYear(e,t,n),r.setHours(0,0,0),r}function mt(e,t){let n=Qh(e);if(Qi[n]??={},Qi[n][t])return Qi[n][t];let r="";switch(t){case"shortDate":r=kr(e,Ie.Short);break;case"mediumDate":r=kr(e,Ie.Medium);break;case"longDate":r=kr(e,Ie.Long);break;case"fullDate":r=kr(e,Ie.Full);break;case"shortTime":r=Fr(e,Ie.Short);break;case"mediumTime":r=Fr(e,Ie.Medium);break;case"longTime":r=Fr(e,Ie.Long);break;case"fullTime":r=Fr(e,Ie.Full);break;case"short":let o=mt(e,"shortTime"),i=mt(e,"shortDate");r=Ki(Pr(e,Ie.Short),[o,i]);break;case"medium":let s=mt(e,"mediumTime"),a=mt(e,"mediumDate");r=Ki(Pr(e,Ie.Medium),[s,a]);break;case"long":let c=mt(e,"longTime"),u=mt(e,"longDate");r=Ki(Pr(e,Ie.Long),[c,u]);break;case"full":let l=mt(e,"fullTime"),f=mt(e,"fullDate");r=Ki(Pr(e,Ie.Full),[l,f]);break}return r&&(Qi[n][t]=r),r}function Ki(e,t){return t&&(e=e.replace(/\{([^}]+)}/g,function(n,r){return t!=null&&r in t?t[r]:n})),e}function Ue(e,t,n="-",r,o){let i="";(e<0||o&&e<=0)&&(o?e=-e+1:(e=-e,i=n));let s=String(e);for(;s.length0||a>-n)&&(a+=n),e===3)a===0&&n===-12&&(a=12);else if(e===6)return Nb(a,t);let c=Lr(s,yt.MinusSign);return Ue(a,t,c,r,o)}}function xb(e,t){switch(e){case 0:return t.getFullYear();case 1:return t.getMonth();case 2:return t.getDate();case 3:return t.getHours();case 4:return t.getMinutes();case 5:return t.getSeconds();case 6:return t.getMilliseconds();case 7:return t.getDay();default:throw new Error(`Unknown DateType value "${e}".`)}}function H(e,t,n=de.Format,r=!1){return function(o,i){return Ab(o,i,e,t,n,r)}}function Ab(e,t,n,r,o,i){switch(n){case 2:return Xh(t,o,r)[e.getMonth()];case 1:return Jh(t,o,r)[e.getDay()];case 0:let s=e.getHours(),a=e.getMinutes();if(i){let u=ng(t),l=rg(t,o,r),f=u.findIndex(p=>{if(Array.isArray(p)){let[d,h]=p,g=s>=d.hours&&a>=d.minutes,w=s0?Math.floor(o/60):Math.ceil(o/60);switch(e){case 0:return(o>=0?"+":"")+Ue(s,2,i)+Ue(Math.abs(o%60),2,i);case 1:return"GMT"+(o>=0?"+":"")+Ue(s,1,i);case 2:return"GMT"+(o>=0?"+":"")+Ue(s,2,i)+":"+Ue(Math.abs(o%60),2,i);case 3:return r===0?"Z":(o>=0?"+":"")+Ue(s,2,i)+":"+Ue(Math.abs(o%60),2,i);default:throw new Error(`Unknown zone width "${e}"`)}}}var Rb=0,es=4;function Ob(e){let t=ts(e,Rb,1).getDay();return ts(e,0,1+(t<=es?es:es+7)-t)}function ig(e){let t=e.getDay(),n=t===0?-3:es-t;return ts(e.getFullYear(),e.getMonth(),e.getDate()+n)}function ju(e,t=!1){return function(n,r){let o;if(t){let i=new Date(n.getFullYear(),n.getMonth(),1).getDay()-1,s=n.getDate();o=1+Math.floor((s+i)/7)}else{let i=ig(n),s=Ob(i.getFullYear()),a=i.getTime()-s.getTime();o=1+Math.round(a/6048e5)}return Ue(o,e,Lr(r,yt.MinusSign))}}function Xi(e,t=!1){return function(n,r){let i=ig(n).getFullYear();return Ue(i,e,Lr(r,yt.MinusSign),t)}}var Vu={};function kb(e){if(Vu[e])return Vu[e];let t;switch(e){case"G":case"GG":case"GGG":t=H(3,L.Abbreviated);break;case"GGGG":t=H(3,L.Wide);break;case"GGGGG":t=H(3,L.Narrow);break;case"y":t=J(0,1,0,!1,!0);break;case"yy":t=J(0,2,0,!0,!0);break;case"yyy":t=J(0,3,0,!1,!0);break;case"yyyy":t=J(0,4,0,!1,!0);break;case"Y":t=Xi(1);break;case"YY":t=Xi(2,!0);break;case"YYY":t=Xi(3);break;case"YYYY":t=Xi(4);break;case"M":case"L":t=J(1,1,1);break;case"MM":case"LL":t=J(1,2,1);break;case"MMM":t=H(2,L.Abbreviated);break;case"MMMM":t=H(2,L.Wide);break;case"MMMMM":t=H(2,L.Narrow);break;case"LLL":t=H(2,L.Abbreviated,de.Standalone);break;case"LLLL":t=H(2,L.Wide,de.Standalone);break;case"LLLLL":t=H(2,L.Narrow,de.Standalone);break;case"w":t=ju(1);break;case"ww":t=ju(2);break;case"W":t=ju(1,!0);break;case"d":t=J(2,1);break;case"dd":t=J(2,2);break;case"c":case"cc":t=J(7,1);break;case"ccc":t=H(1,L.Abbreviated,de.Standalone);break;case"cccc":t=H(1,L.Wide,de.Standalone);break;case"ccccc":t=H(1,L.Narrow,de.Standalone);break;case"cccccc":t=H(1,L.Short,de.Standalone);break;case"E":case"EE":case"EEE":t=H(1,L.Abbreviated);break;case"EEEE":t=H(1,L.Wide);break;case"EEEEE":t=H(1,L.Narrow);break;case"EEEEEE":t=H(1,L.Short);break;case"a":case"aa":case"aaa":t=H(0,L.Abbreviated);break;case"aaaa":t=H(0,L.Wide);break;case"aaaaa":t=H(0,L.Narrow);break;case"b":case"bb":case"bbb":t=H(0,L.Abbreviated,de.Standalone,!0);break;case"bbbb":t=H(0,L.Wide,de.Standalone,!0);break;case"bbbbb":t=H(0,L.Narrow,de.Standalone,!0);break;case"B":case"BB":case"BBB":t=H(0,L.Abbreviated,de.Format,!0);break;case"BBBB":t=H(0,L.Wide,de.Format,!0);break;case"BBBBB":t=H(0,L.Narrow,de.Format,!0);break;case"h":t=J(3,1,-12);break;case"hh":t=J(3,2,-12);break;case"H":t=J(3,1);break;case"HH":t=J(3,2);break;case"m":t=J(4,1);break;case"mm":t=J(4,2);break;case"s":t=J(5,1);break;case"ss":t=J(5,2);break;case"S":t=J(6,1);break;case"SS":t=J(6,2);break;case"SSS":t=J(6,3);break;case"Z":case"ZZ":case"ZZZ":t=Ji(0);break;case"ZZZZZ":t=Ji(3);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":t=Ji(1);break;case"OOOO":case"ZZZZ":case"zzzz":t=Ji(2);break;default:return null}return Vu[e]=t,t}function sg(e,t){e=e.replace(/:/g,"");let n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return isNaN(n)?t:n}function Fb(e,t){return e=new Date(e.getTime()),e.setMinutes(e.getMinutes()+t),e}function Pb(e,t,n){let o=e.getTimezoneOffset(),i=sg(t,o);return Fb(e,-1*(i-o))}function Lb(e){if(Wh(e))return e;if(typeof e=="number"&&!isNaN(e))return new Date(e);if(typeof e=="string"){if(e=e.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(e)){let[o,i=1,s=1]=e.split("-").map(a=>+a);return ts(o,i-1,s)}let n=parseFloat(e);if(!isNaN(e-n))return new Date(n);let r;if(r=e.match(Tb))return jb(r)}let t=new Date(e);if(!Wh(t))throw new Error(`Unable to convert "${e}" into a date`);return t}function jb(e){let t=new Date(0),n=0,r=0,o=e[8]?t.setUTCFullYear:t.setFullYear,i=e[8]?t.setUTCHours:t.setHours;e[9]&&(n=Number(e[9]+e[10]),r=Number(e[9]+e[11])),o.call(t,Number(e[1]),Number(e[2])-1,Number(e[3]));let s=Number(e[4]||0)-n,a=Number(e[5]||0)-r,c=Number(e[6]||0),u=Math.floor(parseFloat("0."+(e[7]||0))*1e3);return i.call(t,s,a,c,u),t}function Wh(e){return e instanceof Date&&!isNaN(e.valueOf())}var Bu=/\s+/,qh=[],Vb=(()=>{class e{_ngEl;_renderer;initialClasses=qh;rawClass;stateMap=new Map;constructor(n,r){this._ngEl=n,this._renderer=r}set klass(n){this.initialClasses=n!=null?n.trim().split(Bu):qh}set ngClass(n){this.rawClass=typeof n=="string"?n.trim().split(Bu):n}ngDoCheck(){for(let r of this.initialClasses)this._updateState(r,!0);let n=this.rawClass;if(Array.isArray(n)||n instanceof Set)for(let r of n)this._updateState(r,!0);else if(n!=null)for(let r of Object.keys(n))this._updateState(r,!!n[r]);this._applyStateDiff()}_updateState(n,r){let o=this.stateMap.get(n);o!==void 0?(o.enabled!==r&&(o.changed=!0,o.enabled=r),o.touched=!0):this.stateMap.set(n,{enabled:r,changed:!0,touched:!0})}_applyStateDiff(){for(let n of this.stateMap){let r=n[0],o=n[1];o.changed?(this._toggleClass(r,o.enabled),o.changed=!1):o.touched||(o.enabled&&this._toggleClass(r,!1),this.stateMap.delete(r)),o.touched=!1}}_toggleClass(n,r){n=n.trim(),n.length>0&&n.split(Bu).forEach(o=>{r?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}static \u0275fac=function(r){return new(r||e)(K(Ne),K(Ui))};static \u0275dir=Be({type:e,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"}})}return e})();var ns=class{$implicit;ngForOf;index;count;constructor(t,n,r,o){this.$implicit=t,this.ngForOf=n,this.index=r,this.count=o}get first(){return this.index===0}get last(){return this.index===this.count-1}get even(){return this.index%2===0}get odd(){return!this.even}},ag=(()=>{class e{_viewContainer;_template;_differs;set ngForOf(n){this._ngForOf=n,this._ngForOfDirty=!0}set ngForTrackBy(n){this._trackByFn=n}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(n,r,o){this._viewContainer=n,this._template=r,this._differs=o}set ngForTemplate(n){n&&(this._template=n)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;let n=this._ngForOf;!this._differ&&n&&(this._differ=this._differs.find(n).create(this.ngForTrackBy))}if(this._differ){let n=this._differ.diff(this._ngForOf);n&&this._applyChanges(n)}}_applyChanges(n){let r=this._viewContainer;n.forEachOperation((o,i,s)=>{if(o.previousIndex==null)r.createEmbeddedView(this._template,new ns(o.item,this._ngForOf,-1,-1),s===null?void 0:s);else if(s==null)r.remove(i===null?void 0:i);else if(i!==null){let a=r.get(i);r.move(a,s),Zh(a,o)}});for(let o=0,i=r.length;o{let i=r.get(o.currentIndex);Zh(i,o)})}static ngTemplateContextGuard(n,r){return!0}static \u0275fac=function(r){return new(r||e)(K(tn),K(Qt),K(Ru))};static \u0275dir=Be({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return e})();function Zh(e,t){e.context.$implicit=t.item}var Bb=(()=>{class e{_viewContainer;_context=new rs;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(n,r){this._viewContainer=n,this._thenTemplateRef=r}set ngIf(n){this._context.$implicit=this._context.ngIf=n,this._updateView()}set ngIfThen(n){Yh(n,!1),this._thenTemplateRef=n,this._thenViewRef=null,this._updateView()}set ngIfElse(n){Yh(n,!1),this._elseTemplateRef=n,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(n,r){return!0}static \u0275fac=function(r){return new(r||e)(K(tn),K(Qt))};static \u0275dir=Be({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return e})(),rs=class{$implicit=null;ngIf=null};function Yh(e,t){if(e&&!e.createEmbeddedView)throw new v(2020,!1)}var Hb=(()=>{class e{_ngEl;_differs;_renderer;_ngStyle=null;_differ=null;constructor(n,r,o){this._ngEl=n,this._differs=r,this._renderer=o}set ngStyle(n){this._ngStyle=n,!this._differ&&n&&(this._differ=this._differs.find(n).create())}ngDoCheck(){if(this._differ){let n=this._differ.diff(this._ngStyle);n&&this._applyChanges(n)}}_setStyle(n,r){let[o,i]=n.split("."),s=o.indexOf("-")===-1?void 0:Je.DashCase;r!=null?this._renderer.setStyle(this._ngEl.nativeElement,o,i?`${r}${i}`:r,s):this._renderer.removeStyle(this._ngEl.nativeElement,o,s)}_applyChanges(n){n.forEachRemovedItem(r=>this._setStyle(r.key,null)),n.forEachAddedItem(r=>this._setStyle(r.key,r.currentValue)),n.forEachChangedItem(r=>this._setStyle(r.key,r.currentValue))}static \u0275fac=function(r){return new(r||e)(K(Ne),K(Ou),K(Ui))};static \u0275dir=Be({type:e,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}})}return e})(),Ub=(()=>{class e{_viewContainerRef;_viewRef=null;ngTemplateOutletContext=null;ngTemplateOutlet=null;ngTemplateOutletInjector=null;constructor(n){this._viewContainerRef=n}ngOnChanges(n){if(this._shouldRecreateView(n)){let r=this._viewContainerRef;if(this._viewRef&&r.remove(r.indexOf(this._viewRef)),!this.ngTemplateOutlet){this._viewRef=null;return}let o=this._createContextForwardProxy();this._viewRef=r.createEmbeddedView(this.ngTemplateOutlet,o,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(n){return!!n.ngTemplateOutlet||!!n.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(n,r,o)=>this.ngTemplateOutletContext?Reflect.set(this.ngTemplateOutletContext,r,o):!1,get:(n,r,o)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,r,o)}})}static \u0275fac=function(r){return new(r||e)(K(tn))};static \u0275dir=Be({type:e,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},features:[sf]})}return e})();function cg(e,t){return new v(2100,!1)}var Hu=class{createSubscription(t,n){return Fu(()=>t.subscribe({next:n,error:r=>{throw r}}))}dispose(t){Fu(()=>t.unsubscribe())}},Uu=class{createSubscription(t,n){return t.then(r=>n?.(r),r=>{throw r}),{unsubscribe:()=>{n=null}}}dispose(t){t.unsubscribe()}},$b=new Uu,zb=new Hu,Gb=(()=>{class e{_ref;_latestValue=null;markForCheckOnValueUpdate=!0;_subscription=null;_obj=null;_strategy=null;constructor(n){this._ref=n}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(n){if(!this._obj){if(n)try{this.markForCheckOnValueUpdate=!1,this._subscribe(n)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return n!==this._obj?(this._dispose(),this.transform(n)):this._latestValue}_subscribe(n){this._obj=n,this._strategy=this._selectStrategy(n),this._subscription=this._strategy.createSubscription(n,r=>this._updateLatestValue(n,r))}_selectStrategy(n){if(Wi(n))return $b;if(_u(n))return zb;throw cg(e,n)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(n,r){n===this._obj&&(this._latestValue=r,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static \u0275fac=function(r){return new(r||e)(K(Au,16))};static \u0275pipe=$i({name:"async",type:e,pure:!1})}return e})();var Wb="mediumDate",ug=new E(""),lg=new E(""),qb=(()=>{class e{locale;defaultTimezone;defaultOptions;constructor(n,r,o){this.locale=n,this.defaultTimezone=r,this.defaultOptions=o}transform(n,r,o,i){if(n==null||n===""||n!==n)return null;try{let s=r??this.defaultOptions?.dateFormat??Wb,a=o??this.defaultOptions?.timezone??this.defaultTimezone??void 0;return og(n,s,i||this.locale,a)}catch(s){throw cg(e,s.message)}}static \u0275fac=function(r){return new(r||e)(K(qi,16),K(ug,24),K(lg,24))};static \u0275pipe=$i({name:"date",type:e,pure:!0})}return e})();var Zb=(()=>{class e{transform(n){return JSON.stringify(n,null,2)}static \u0275fac=function(r){return new(r||e)};static \u0275pipe=$i({name:"json",type:e,pure:!1})}return e})();var $u=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=gt({type:e});static \u0275inj=lt({})}return e})();function jr(e,t){t=encodeURIComponent(t);for(let n of e.split(";")){let r=n.indexOf("="),[o,i]=r==-1?[n,""]:[n.slice(0,r),n.slice(r+1)];if(o.trim()===t)return decodeURIComponent(i)}return null}var os="browser",dg="server";function $n(e){return e===os}function is(e){return e===dg}var nn=class{};var gk=(()=>{class e{static \u0275prov=M({token:e,providedIn:"root",factory:()=>new zu(m(q),window)})}return e})(),zu=class{document;window;offset=()=>[0,0];constructor(t,n){this.document=t,this.window=n}setOffset(t){Array.isArray(t)?this.offset=()=>t:this.offset=t}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(t){this.window.scrollTo(t[0],t[1])}scrollToAnchor(t){let n=Yb(this.document,t);n&&(this.scrollToElement(n),n.focus())}setHistoryScrollRestoration(t){this.window.history.scrollRestoration=t}scrollToElement(t){let n=t.getBoundingClientRect(),r=n.left+this.window.pageXOffset,o=n.top+this.window.pageYOffset,i=this.offset();this.window.scrollTo(r-i[0],o-i[1])}};function Yb(e,t){let n=e.getElementById(t)||e.getElementsByName(t)[0];if(n)return n;if(typeof e.createTreeWalker=="function"&&e.body&&typeof e.body.attachShadow=="function"){let r=e.createTreeWalker(e.body,NodeFilter.SHOW_ELEMENT),o=r.currentNode;for(;o;){let i=o.shadowRoot;if(i){let s=i.getElementById(t)||i.querySelector(`[name="${t}"]`);if(s)return s}o=r.nextNode()}}return null}var cs=new E(""),Zu=(()=>{class e{_zone;_plugins;_eventNameToPlugin=new Map;constructor(n,r){this._zone=r,n.forEach(o=>{o.manager=this}),this._plugins=n.slice().reverse()}addEventListener(n,r,o,i){return this._findPluginFor(r).addEventListener(n,r,o,i)}getZone(){return this._zone}_findPluginFor(n){let r=this._eventNameToPlugin.get(n);if(r)return r;if(r=this._plugins.find(i=>i.supports(n)),!r)throw new v(5101,!1);return this._eventNameToPlugin.set(n,r),r}static \u0275fac=function(r){return new(r||e)(b(cs),b(z))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})(),Vr=class{_doc;constructor(t){this._doc=t}manager},ss="ng-app-id";function fg(e){for(let t of e)t.remove()}function pg(e,t){let n=t.createElement("style");return n.textContent=e,n}function Qb(e,t,n,r){let o=e.head?.querySelectorAll(`style[${ss}="${t}"],link[${ss}="${t}"]`);if(o)for(let i of o)i.removeAttribute(ss),i instanceof HTMLLinkElement?r.set(i.href.slice(i.href.lastIndexOf("/")+1),{usage:0,elements:[i]}):i.textContent&&n.set(i.textContent,{usage:0,elements:[i]})}function Wu(e,t){let n=t.createElement("link");return n.setAttribute("rel","stylesheet"),n.setAttribute("href",e),n}var Yu=(()=>{class e{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;isServer;constructor(n,r,o,i={}){this.doc=n,this.appId=r,this.nonce=o,this.isServer=is(i),Qb(n,r,this.inline,this.external),this.hosts.add(n.head)}addStyles(n,r){for(let o of n)this.addUsage(o,this.inline,pg);r?.forEach(o=>this.addUsage(o,this.external,Wu))}removeStyles(n,r){for(let o of n)this.removeUsage(o,this.inline);r?.forEach(o=>this.removeUsage(o,this.external))}addUsage(n,r,o){let i=r.get(n);i?i.usage++:r.set(n,{usage:1,elements:[...this.hosts].map(s=>this.addElement(s,o(n,this.doc)))})}removeUsage(n,r){let o=r.get(n);o&&(o.usage--,o.usage<=0&&(fg(o.elements),r.delete(n)))}ngOnDestroy(){for(let[,{elements:n}]of[...this.inline,...this.external])fg(n);this.hosts.clear()}addHost(n){this.hosts.add(n);for(let[r,{elements:o}]of this.inline)o.push(this.addElement(n,pg(r,this.doc)));for(let[r,{elements:o}]of this.external)o.push(this.addElement(n,Wu(r,this.doc)))}removeHost(n){this.hosts.delete(n)}addElement(n,r){return this.nonce&&r.setAttribute("nonce",this.nonce),this.isServer&&r.setAttribute(ss,this.appId),n.appendChild(r)}static \u0275fac=function(r){return new(r||e)(b(q),b(Qc),b(Jc,8),b(Ve))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})(),Gu={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},Qu=/%COMP%/g;var gg="%COMP%",Kb=`_nghost-${gg}`,Jb=`_ngcontent-${gg}`,Xb=!0,eC=new E("",{providedIn:"root",factory:()=>Xb});function tC(e){return Jb.replace(Qu,e)}function nC(e){return Kb.replace(Qu,e)}function mg(e,t){return t.map(n=>n.replace(Qu,e))}var Ku=(()=>{class e{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;platformId;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;platformIsServer;constructor(n,r,o,i,s,a,c,u=null,l=null){this.eventManager=n,this.sharedStylesHost=r,this.appId=o,this.removeStylesOnCompDestroy=i,this.doc=s,this.platformId=a,this.ngZone=c,this.nonce=u,this.tracingService=l,this.platformIsServer=is(a),this.defaultRenderer=new Br(n,s,c,this.platformIsServer,this.tracingService)}createRenderer(n,r){if(!n||!r)return this.defaultRenderer;this.platformIsServer&&r.encapsulation===Ke.ShadowDom&&(r=oe(G({},r),{encapsulation:Ke.Emulated}));let o=this.getOrCreateRenderer(n,r);return o instanceof as?o.applyToHost(n):o instanceof Hr&&o.applyStyles(),o}getOrCreateRenderer(n,r){let o=this.rendererByCompId,i=o.get(r.id);if(!i){let s=this.doc,a=this.ngZone,c=this.eventManager,u=this.sharedStylesHost,l=this.removeStylesOnCompDestroy,f=this.platformIsServer,p=this.tracingService;switch(r.encapsulation){case Ke.Emulated:i=new as(c,u,r,this.appId,l,s,a,f,p);break;case Ke.ShadowDom:return new qu(c,u,n,r,s,a,this.nonce,f,p);default:i=new Hr(c,u,r,l,s,a,f,p);break}o.set(r.id,i)}return i}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(n){this.rendererByCompId.delete(n)}static \u0275fac=function(r){return new(r||e)(b(Zu),b(Yu),b(Qc),b(eC),b(q),b(Ve),b(z),b(Jc),b(jn,8))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})(),Br=class{eventManager;doc;ngZone;platformIsServer;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(t,n,r,o,i){this.eventManager=t,this.doc=n,this.ngZone=r,this.platformIsServer=o,this.tracingService=i}destroy(){}destroyNode=null;createElement(t,n){return n?this.doc.createElementNS(Gu[n]||n,t):this.doc.createElement(t)}createComment(t){return this.doc.createComment(t)}createText(t){return this.doc.createTextNode(t)}appendChild(t,n){(hg(t)?t.content:t).appendChild(n)}insertBefore(t,n,r){t&&(hg(t)?t.content:t).insertBefore(n,r)}removeChild(t,n){n.remove()}selectRootElement(t,n){let r=typeof t=="string"?this.doc.querySelector(t):t;if(!r)throw new v(-5104,!1);return n||(r.textContent=""),r}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,n,r,o){if(o){n=o+":"+n;let i=Gu[o];i?t.setAttributeNS(i,n,r):t.setAttribute(n,r)}else t.setAttribute(n,r)}removeAttribute(t,n,r){if(r){let o=Gu[r];o?t.removeAttributeNS(o,n):t.removeAttribute(`${r}:${n}`)}else t.removeAttribute(n)}addClass(t,n){t.classList.add(n)}removeClass(t,n){t.classList.remove(n)}setStyle(t,n,r,o){o&(Je.DashCase|Je.Important)?t.style.setProperty(n,r,o&Je.Important?"important":""):t.style[n]=r}removeStyle(t,n,r){r&Je.DashCase?t.style.removeProperty(n):t.style[n]=""}setProperty(t,n,r){t!=null&&(t[n]=r)}setValue(t,n){t.nodeValue=n}listen(t,n,r,o){if(typeof t=="string"&&(t=tt().getGlobalEventTarget(this.doc,t),!t))throw new v(5102,!1);let i=this.decoratePreventDefault(r);return this.tracingService?.wrapEventListener&&(i=this.tracingService.wrapEventListener(t,n,i)),this.eventManager.addEventListener(t,n,i,o)}decoratePreventDefault(t){return n=>{if(n==="__ngUnwrap__")return t;(this.platformIsServer?this.ngZone.runGuarded(()=>t(n)):t(n))===!1&&n.preventDefault()}}};function hg(e){return e.tagName==="TEMPLATE"&&e.content!==void 0}var qu=class extends Br{sharedStylesHost;hostEl;shadowRoot;constructor(t,n,r,o,i,s,a,c,u){super(t,i,s,c,u),this.sharedStylesHost=n,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);let l=o.styles;l=mg(o.id,l);for(let p of l){let d=document.createElement("style");a&&d.setAttribute("nonce",a),d.textContent=p,this.shadowRoot.appendChild(d)}let f=o.getExternalStyles?.();if(f)for(let p of f){let d=Wu(p,i);a&&d.setAttribute("nonce",a),this.shadowRoot.appendChild(d)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}appendChild(t,n){return super.appendChild(this.nodeOrShadowRoot(t),n)}insertBefore(t,n,r){return super.insertBefore(this.nodeOrShadowRoot(t),n,r)}removeChild(t,n){return super.removeChild(null,n)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}},Hr=class extends Br{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(t,n,r,o,i,s,a,c,u){super(t,i,s,a,c),this.sharedStylesHost=n,this.removeStylesOnCompDestroy=o;let l=r.styles;this.styles=u?mg(u,l):l,this.styleUrls=r.getExternalStyles?.(u)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},as=class extends Hr{contentAttr;hostAttr;constructor(t,n,r,o,i,s,a,c,u){let l=o+"-"+r.id;super(t,n,r,i,s,a,c,u,l),this.contentAttr=tC(l),this.hostAttr=nC(l)}applyToHost(t){this.applyStyles(),this.setAttribute(t,this.hostAttr,"")}createElement(t,n){let r=super.createElement(t,n);return super.setAttribute(r,this.contentAttr,""),r}};var us=class e extends Rr{supportsDOMEvents=!0;static makeCurrent(){Pu(new e)}onAndCancel(t,n,r,o){return t.addEventListener(n,r,o),()=>{t.removeEventListener(n,r,o)}}dispatchEvent(t,n){t.dispatchEvent(n)}remove(t){t.remove()}createElement(t,n){return n=n||this.getDefaultDocument(),n.createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,n){return n==="window"?window:n==="document"?t:n==="body"?t.body:null}getBaseHref(t){let n=rC();return n==null?null:oC(n)}resetBaseElement(){Ur=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return jr(document.cookie,t)}},Ur=null;function rC(){return Ur=Ur||document.head.querySelector("base"),Ur?Ur.getAttribute("href"):null}function oC(e){return new URL(e,document.baseURI).pathname}var ls=class{addToWindow(t){re.getAngularTestability=(r,o=!0)=>{let i=t.findTestabilityInTree(r,o);if(i==null)throw new v(5103,!1);return i},re.getAllAngularTestabilities=()=>t.getAllTestabilities(),re.getAllAngularRootElements=()=>t.getAllRootElements();let n=r=>{let o=re.getAllAngularTestabilities(),i=o.length,s=function(){i--,i==0&&r()};o.forEach(a=>{a.whenStable(s)})};re.frameworkStabilizers||(re.frameworkStabilizers=[]),re.frameworkStabilizers.push(n)}findTestabilityInTree(t,n,r){if(n==null)return null;let o=t.getTestability(n);return o??(r?tt().isShadowRoot(n)?this.findTestabilityInTree(t,n.host,!0):this.findTestabilityInTree(t,n.parentElement,!0):null)}},iC=(()=>{class e{build(){return new XMLHttpRequest}static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})(),vg=(()=>{class e extends Vr{constructor(n){super(n)}supports(n){return!0}addEventListener(n,r,o,i){return n.addEventListener(r,o,i),()=>this.removeEventListener(n,r,o,i)}removeEventListener(n,r,o,i){return n.removeEventListener(r,o,i)}static \u0275fac=function(r){return new(r||e)(b(q))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})(),yg=["alt","control","meta","shift"],sC={"\b":"Backspace"," ":"Tab","\x7F":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},aC={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey},Dg=(()=>{class e extends Vr{constructor(n){super(n)}supports(n){return e.parseEventName(n)!=null}addEventListener(n,r,o,i){let s=e.parseEventName(r),a=e.eventCallback(s.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>tt().onAndCancel(n,s.domEventName,a,i))}static parseEventName(n){let r=n.toLowerCase().split("."),o=r.shift();if(r.length===0||!(o==="keydown"||o==="keyup"))return null;let i=e._normalizeKey(r.pop()),s="",a=r.indexOf("code");if(a>-1&&(r.splice(a,1),s="code."),yg.forEach(u=>{let l=r.indexOf(u);l>-1&&(r.splice(l,1),s+=u+".")}),s+=i,r.length!=0||i.length===0)return null;let c={};return c.domEventName=o,c.fullKey=s,c}static matchEventFullKeyCode(n,r){let o=sC[n.key]||n.key,i="";return r.indexOf("code.")>-1&&(o=n.code,i="code."),o==null||!o?!1:(o=o.toLowerCase(),o===" "?o="space":o==="."&&(o="dot"),yg.forEach(s=>{if(s!==o){let a=aC[s];a(n)&&(i+=s+".")}}),i+=o,i===r)}static eventCallback(n,r,o){return i=>{e.matchEventFullKeyCode(i,n)&&o.runGuarded(()=>r(i))}}static _normalizeKey(n){return n==="esc"?"escape":n}static \u0275fac=function(r){return new(r||e)(b(q))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})();function cC(){us.makeCurrent()}function uC(){return new Qe}function lC(){return ep(document),document}var dC=[{provide:Ve,useValue:os},{provide:Kc,useValue:cC,multi:!0},{provide:q,useFactory:lC}],fC=Nu(Ph,"browser",dC);var pC=[{provide:xr,useClass:ls},{provide:bu,useClass:zi,deps:[z,Gi,xr]},{provide:zi,useClass:zi,deps:[z,Gi,xr]}],hC=[{provide:bi,useValue:"root"},{provide:Qe,useFactory:uC},{provide:cs,useClass:vg,multi:!0,deps:[q]},{provide:cs,useClass:Dg,multi:!0,deps:[q]},Ku,Yu,Zu,{provide:Tn,useExisting:Ku},{provide:nn,useClass:iC},[]],gC=(()=>{class e{constructor(){}static \u0275fac=function(r){return new(r||e)};static \u0275mod=gt({type:e});static \u0275inj=lt({providers:[...hC,...pC],imports:[$u,Lh]})}return e})();var Gn=class{},$r=class{},Tt=class e{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(t){t?typeof t=="string"?this.lazyInit=()=>{this.headers=new Map,t.split(` +`).forEach(n=>{let r=n.indexOf(":");if(r>0){let o=n.slice(0,r),i=n.slice(r+1).trim();this.addHeaderEntry(o,i)}})}:typeof Headers<"u"&&t instanceof Headers?(this.headers=new Map,t.forEach((n,r)=>{this.addHeaderEntry(r,n)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(t).forEach(([n,r])=>{this.setHeaderEntries(n,r)})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();let n=this.headers.get(t.toLowerCase());return n&&n.length>0?n[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,n){return this.clone({name:t,value:n,op:"a"})}set(t,n){return this.clone({name:t,value:n,op:"s"})}delete(t,n){return this.clone({name:t,value:n,op:"d"})}maybeSetNormalizedName(t,n){this.normalizedNames.has(n)||this.normalizedNames.set(n,t)}init(){this.lazyInit&&(this.lazyInit instanceof e?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(n=>{this.headers.set(n,t.headers.get(n)),this.normalizedNames.set(n,t.normalizedNames.get(n))})}clone(t){let n=new e;return n.lazyInit=this.lazyInit&&this.lazyInit instanceof e?this.lazyInit:this,n.lazyUpdate=(this.lazyUpdate||[]).concat([t]),n}applyUpdate(t){let n=t.name.toLowerCase();switch(t.op){case"a":case"s":let r=t.value;if(typeof r=="string"&&(r=[r]),r.length===0)return;this.maybeSetNormalizedName(t.name,n);let o=(t.op==="a"?this.headers.get(n):void 0)||[];o.push(...r),this.headers.set(n,o);break;case"d":let i=t.value;if(!i)this.headers.delete(n),this.normalizedNames.delete(n);else{let s=this.headers.get(n);if(!s)return;s=s.filter(a=>i.indexOf(a)===-1),s.length===0?(this.headers.delete(n),this.normalizedNames.delete(n)):this.headers.set(n,s)}break}}addHeaderEntry(t,n){let r=t.toLowerCase();this.maybeSetNormalizedName(t,r),this.headers.has(r)?this.headers.get(r).push(n):this.headers.set(r,[n])}setHeaderEntries(t,n){let r=(Array.isArray(n)?n:[n]).map(i=>i.toString()),o=t.toLowerCase();this.headers.set(o,r),this.maybeSetNormalizedName(t,o)}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(n=>t(this.normalizedNames.get(n),this.headers.get(n)))}};var fs=class{encodeKey(t){return Eg(t)}encodeValue(t){return Eg(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}};function mC(e,t){let n=new Map;return e.length>0&&e.replace(/^\?/,"").split("&").forEach(o=>{let i=o.indexOf("="),[s,a]=i==-1?[t.decodeKey(o),""]:[t.decodeKey(o.slice(0,i)),t.decodeValue(o.slice(i+1))],c=n.get(s)||[];c.push(a),n.set(s,c)}),n}var yC=/%(\d[a-f0-9])/gi,vC={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function Eg(e){return encodeURIComponent(e).replace(yC,(t,n)=>vC[n]??t)}function ds(e){return`${e}`}var vt=class e{map;encoder;updates=null;cloneFrom=null;constructor(t={}){if(this.encoder=t.encoder||new fs,t.fromString){if(t.fromObject)throw new v(2805,!1);this.map=mC(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(n=>{let r=t.fromObject[n],o=Array.isArray(r)?r.map(ds):[ds(r)];this.map.set(n,o)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();let n=this.map.get(t);return n?n[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,n){return this.clone({param:t,value:n,op:"a"})}appendAll(t){let n=[];return Object.keys(t).forEach(r=>{let o=t[r];Array.isArray(o)?o.forEach(i=>{n.push({param:r,value:i,op:"a"})}):n.push({param:r,value:o,op:"a"})}),this.clone(n)}set(t,n){return this.clone({param:t,value:n,op:"s"})}delete(t,n){return this.clone({param:t,value:n,op:"d"})}toString(){return this.init(),this.keys().map(t=>{let n=this.encoder.encodeKey(t);return this.map.get(t).map(r=>n+"="+this.encoder.encodeValue(r)).join("&")}).filter(t=>t!=="").join("&")}clone(t){let n=new e({encoder:this.encoder});return n.cloneFrom=this.cloneFrom||this,n.updates=(this.updates||[]).concat(t),n}init(){this.map===null&&(this.map=new Map),this.cloneFrom!==null&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":let n=(t.op==="a"?this.map.get(t.param):void 0)||[];n.push(ds(t.value)),this.map.set(t.param,n);break;case"d":if(t.value!==void 0){let r=this.map.get(t.param)||[],o=r.indexOf(ds(t.value));o!==-1&&r.splice(o,1),r.length>0?this.map.set(t.param,r):this.map.delete(t.param)}else{this.map.delete(t.param);break}}}),this.cloneFrom=this.updates=null)}};var ps=class{map=new Map;set(t,n){return this.map.set(t,n),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}};function DC(e){switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function wg(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer}function Ig(e){return typeof Blob<"u"&&e instanceof Blob}function bg(e){return typeof FormData<"u"&&e instanceof FormData}function EC(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}var Cg="Content-Type",_g="Accept",Tg="X-Request-URL",Sg="text/plain",Ng="application/json",wC=`${Ng}, ${Sg}, */*`,zn=class e{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;responseType="json";method;params;urlWithParams;transferCache;constructor(t,n,r,o){this.url=n,this.method=t.toUpperCase();let i;if(DC(this.method)||o?(this.body=r!==void 0?r:null,i=o):i=r,i&&(this.reportProgress=!!i.reportProgress,this.withCredentials=!!i.withCredentials,i.responseType&&(this.responseType=i.responseType),i.headers&&(this.headers=i.headers),i.context&&(this.context=i.context),i.params&&(this.params=i.params),this.transferCache=i.transferCache),this.headers??=new Tt,this.context??=new ps,!this.params)this.params=new vt,this.urlWithParams=n;else{let s=this.params.toString();if(s.length===0)this.urlWithParams=n;else{let a=n.indexOf("?"),c=a===-1?"?":ap.set(d,t.setHeaders[d]),u)),t.setParams&&(l=Object.keys(t.setParams).reduce((p,d)=>p.set(d,t.setParams[d]),l)),new e(n,r,s,{params:l,headers:u,context:f,reportProgress:c,responseType:o,withCredentials:a,transferCache:i})}},rn=function(e){return e[e.Sent=0]="Sent",e[e.UploadProgress=1]="UploadProgress",e[e.ResponseHeader=2]="ResponseHeader",e[e.DownloadProgress=3]="DownloadProgress",e[e.Response=4]="Response",e[e.User=5]="User",e}(rn||{}),Wn=class{headers;status;statusText;url;ok;type;constructor(t,n=200,r="OK"){this.headers=t.headers||new Tt,this.status=t.status!==void 0?t.status:n,this.statusText=t.statusText||r,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}},hs=class e extends Wn{constructor(t={}){super(t)}type=rn.ResponseHeader;clone(t={}){return new e({headers:t.headers||this.headers,status:t.status!==void 0?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}},zr=class e extends Wn{body;constructor(t={}){super(t),this.body=t.body!==void 0?t.body:null}type=rn.Response;clone(t={}){return new e({body:t.body!==void 0?t.body:this.body,headers:t.headers||this.headers,status:t.status!==void 0?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}},Gr=class extends Wn{name="HttpErrorResponse";message;error;ok=!1;constructor(t){super(t,0,"Unknown Error"),this.status>=200&&this.status<300?this.message=`Http failure during parsing for ${t.url||"(unknown url)"}`:this.message=`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}},IC=200,bC=204;function Ju(e,t){return{body:t,headers:e.headers,context:e.context,observe:e.observe,params:e.params,reportProgress:e.reportProgress,responseType:e.responseType,withCredentials:e.withCredentials,transferCache:e.transferCache}}var xg=(()=>{class e{handler;constructor(n){this.handler=n}request(n,r,o={}){let i;if(n instanceof zn)i=n;else{let c;o.headers instanceof Tt?c=o.headers:c=new Tt(o.headers);let u;o.params&&(o.params instanceof vt?u=o.params:u=new vt({fromObject:o.params})),i=new zn(n,r,o.body!==void 0?o.body:null,{headers:c,context:o.context,params:u,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache})}let s=_o(i).pipe(Zs(c=>this.handler.handle(c)));if(n instanceof zn||o.observe==="events")return s;let a=s.pipe(be(c=>c instanceof zr));switch(o.observe||"body"){case"body":switch(i.responseType){case"arraybuffer":return a.pipe(ne(c=>{if(c.body!==null&&!(c.body instanceof ArrayBuffer))throw new v(2806,!1);return c.body}));case"blob":return a.pipe(ne(c=>{if(c.body!==null&&!(c.body instanceof Blob))throw new v(2807,!1);return c.body}));case"text":return a.pipe(ne(c=>{if(c.body!==null&&typeof c.body!="string")throw new v(2808,!1);return c.body}));case"json":default:return a.pipe(ne(c=>c.body))}case"response":return a;default:throw new v(2809,!1)}}delete(n,r={}){return this.request("DELETE",n,r)}get(n,r={}){return this.request("GET",n,r)}head(n,r={}){return this.request("HEAD",n,r)}jsonp(n,r){return this.request("JSONP",n,{params:new vt().append(r,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(n,r={}){return this.request("OPTIONS",n,r)}patch(n,r,o={}){return this.request("PATCH",n,Ju(o,r))}post(n,r,o={}){return this.request("POST",n,Ju(o,r))}put(n,r,o={}){return this.request("PUT",n,Ju(o,r))}static \u0275fac=function(r){return new(r||e)(b(Gn))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})();var CC=new E("");function Ag(e,t){return t(e)}function _C(e,t){return(n,r)=>t.intercept(n,{handle:o=>e(o,r)})}function MC(e,t,n){return(r,o)=>_i(n,()=>t(r,i=>e(i,o)))}var Rg=new E(""),el=new E(""),Og=new E(""),tl=new E("",{providedIn:"root",factory:()=>!0});function TC(){let e=null;return(t,n)=>{e===null&&(e=(m(Rg,{optional:!0})??[]).reduceRight(_C,Ag));let r=m(en);if(m(tl)){let i=r.add();return e(t,n).pipe(Ao(()=>r.remove(i)))}else return e(t,n)}}var gs=(()=>{class e extends Gn{backend;injector;chain=null;pendingTasks=m(en);contributeToStability=m(tl);constructor(n,r){super(),this.backend=n,this.injector=r}handle(n){if(this.chain===null){let r=Array.from(new Set([...this.injector.get(el),...this.injector.get(Og,[])]));this.chain=r.reduceRight((o,i)=>MC(o,i,this.injector),Ag)}if(this.contributeToStability){let r=this.pendingTasks.add();return this.chain(n,o=>this.backend.handle(o)).pipe(Ao(()=>this.pendingTasks.remove(r)))}else return this.chain(n,r=>this.backend.handle(r))}static \u0275fac=function(r){return new(r||e)(b($r),b(qe))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})();var SC=/^\)\]\}',?\n/,NC=RegExp(`^${Tg}:`,"m");function xC(e){return"responseURL"in e&&e.responseURL?e.responseURL:NC.test(e.getAllResponseHeaders())?e.getResponseHeader(Tg):null}var Xu=(()=>{class e{xhrFactory;constructor(n){this.xhrFactory=n}handle(n){if(n.method==="JSONP")throw new v(-2800,!1);let r=this.xhrFactory;return(r.\u0275loadImpl?pe(r.\u0275loadImpl()):_o(null)).pipe(Pt(()=>new F(i=>{let s=r.build();if(s.open(n.method,n.urlWithParams),n.withCredentials&&(s.withCredentials=!0),n.headers.forEach((g,w)=>s.setRequestHeader(g,w.join(","))),n.headers.has(_g)||s.setRequestHeader(_g,wC),!n.headers.has(Cg)){let g=n.detectContentTypeHeader();g!==null&&s.setRequestHeader(Cg,g)}if(n.responseType){let g=n.responseType.toLowerCase();s.responseType=g!=="json"?g:"text"}let a=n.serializeBody(),c=null,u=()=>{if(c!==null)return c;let g=s.statusText||"OK",w=new Tt(s.getAllResponseHeaders()),x=xC(s)||n.url;return c=new hs({headers:w,status:s.status,statusText:g,url:x}),c},l=()=>{let{headers:g,status:w,statusText:x,url:ie}=u(),se=null;w!==bC&&(se=typeof s.response>"u"?s.responseText:s.response),w===0&&(w=se?IC:0);let Zn=w>=200&&w<300;if(n.responseType==="json"&&typeof se=="string"){let vs=se;se=se.replace(SC,"");try{se=se!==""?JSON.parse(se):null}catch(Ds){se=vs,Zn&&(Zn=!1,se={error:Ds,text:se})}}Zn?(i.next(new zr({body:se,headers:g,status:w,statusText:x,url:ie||void 0})),i.complete()):i.error(new Gr({error:se,headers:g,status:w,statusText:x,url:ie||void 0}))},f=g=>{let{url:w}=u(),x=new Gr({error:g,status:s.status||0,statusText:s.statusText||"Unknown Error",url:w||void 0});i.error(x)},p=!1,d=g=>{p||(i.next(u()),p=!0);let w={type:rn.DownloadProgress,loaded:g.loaded};g.lengthComputable&&(w.total=g.total),n.responseType==="text"&&s.responseText&&(w.partialText=s.responseText),i.next(w)},h=g=>{let w={type:rn.UploadProgress,loaded:g.loaded};g.lengthComputable&&(w.total=g.total),i.next(w)};return s.addEventListener("load",l),s.addEventListener("error",f),s.addEventListener("timeout",f),s.addEventListener("abort",f),n.reportProgress&&(s.addEventListener("progress",d),a!==null&&s.upload&&s.upload.addEventListener("progress",h)),s.send(a),i.next({type:rn.Sent}),()=>{s.removeEventListener("error",f),s.removeEventListener("abort",f),s.removeEventListener("load",l),s.removeEventListener("timeout",f),n.reportProgress&&(s.removeEventListener("progress",d),a!==null&&s.upload&&s.upload.removeEventListener("progress",h)),s.readyState!==s.DONE&&s.abort()}})))}static \u0275fac=function(r){return new(r||e)(b(nn))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})(),kg=new E(""),AC="XSRF-TOKEN",RC=new E("",{providedIn:"root",factory:()=>AC}),OC="X-XSRF-TOKEN",kC=new E("",{providedIn:"root",factory:()=>OC}),Wr=class{},FC=(()=>{class e{doc;cookieName;lastCookieString="";lastToken=null;parseCount=0;constructor(n,r){this.doc=n,this.cookieName=r}getToken(){let n=this.doc.cookie||"";return n!==this.lastCookieString&&(this.parseCount++,this.lastToken=jr(n,this.cookieName),this.lastCookieString=n),this.lastToken}static \u0275fac=function(r){return new(r||e)(b(q),b(RC))};static \u0275prov=M({token:e,factory:e.\u0275fac})}return e})(),PC=/^(?:https?:)?\/\//i;function LC(e,t){if(!m(kg)||e.method==="GET"||e.method==="HEAD"||PC.test(e.url))return t(e);let n=m(Wr).getToken(),r=m(kC);return n!=null&&!e.headers.has(r)&&(e=e.clone({headers:e.headers.set(r,n)})),t(e)}var nl=function(e){return e[e.Interceptors=0]="Interceptors",e[e.LegacyInterceptors=1]="LegacyInterceptors",e[e.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",e[e.NoXsrfProtection=3]="NoXsrfProtection",e[e.JsonpSupport=4]="JsonpSupport",e[e.RequestsMadeViaParent=5]="RequestsMadeViaParent",e[e.Fetch=6]="Fetch",e}(nl||{});function jC(e,t){return{\u0275kind:e,\u0275providers:t}}function VC(...e){let t=[xg,Xu,gs,{provide:Gn,useExisting:gs},{provide:$r,useFactory:()=>m(CC,{optional:!0})??m(Xu)},{provide:el,useValue:LC,multi:!0},{provide:kg,useValue:!0},{provide:Wr,useClass:FC}];for(let n of e)t.push(...n.\u0275providers);return Ii(t)}var Mg=new E("");function BC(){return jC(nl.LegacyInterceptors,[{provide:Mg,useFactory:TC},{provide:el,useExisting:Mg,multi:!0}])}var AF=(()=>{class e{_doc;constructor(n){this._doc=n}getTitle(){return this._doc.title}setTitle(n){this._doc.title=n||""}static \u0275fac=function(r){return new(r||e)(b(q))};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var rl=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275prov=M({token:e,factory:function(r){let o=null;return r?o=new(r||e):o=b(HC),o},providedIn:"root"})}return e})(),HC=(()=>{class e extends rl{_doc;constructor(n){super(),this._doc=n}sanitize(n,r){if(r==null)return null;switch(n){case Te.NONE:return r;case Te.HTML:return pt(r,"HTML")?xe(r):nu(this._doc,String(r)).toString();case Te.STYLE:return pt(r,"Style")?xe(r):r;case Te.SCRIPT:if(pt(r,"Script"))return xe(r);throw new v(5200,!1);case Te.URL:return pt(r,"URL")?xe(r):ki(String(r));case Te.RESOURCE_URL:if(pt(r,"ResourceURL"))return xe(r);throw new v(5201,!1);default:throw new v(5202,!1)}}bypassSecurityTrustHtml(n){return cp(n)}bypassSecurityTrustStyle(n){return up(n)}bypassSecurityTrustScript(n){return lp(n)}bypassSecurityTrustUrl(n){return dp(n)}bypassSecurityTrustResourceUrl(n){return fp(n)}static \u0275fac=function(r){return new(r||e)(b(q))};static \u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var ys=new E("HIGHLIGHT_OPTIONS");var qn=function(e){return e.FULL_WITH_CORE_LIBRARY_IMPORTS="The full library and the core library were imported, only one of them should be imported!",e.FULL_WITH_LANGUAGE_IMPORTS="The highlighting languages were imported they are not needed!",e.CORE_WITHOUT_LANGUAGE_IMPORTS="The highlighting languages were not imported!",e.LANGUAGE_WITHOUT_CORE_IMPORTS="The core library was not imported!",e.NO_FULL_AND_NO_CORE_IMPORTS="Highlight.js library was not imported!",e}(qn||{}),UC=(()=>{class e{constructor(){this.document=m(q),this.isPlatformBrowser=$n(m(Ve)),this.options=m(ys,{optional:!0}),this._ready=new Ot(null),this.ready=Ws(this._ready.asObservable().pipe(be(n=>!!n))),this.isPlatformBrowser&&(this.document.defaultView.hljs?this._ready.next(this.document.defaultView.hljs):this._loadLibrary().pipe(Pt(n=>this.options?.lineNumbersLoader?(this.document.defaultView.hljs=n,this.loadLineNumbers().pipe(ur(r=>{r.activateLineNumbers(),this._ready.next(n)}))):(this._ready.next(n),$e)),ar(n=>(console.error("[HLJS] ",n),this._ready.error(n),$e))).subscribe(),this.options?.themePath&&this.loadTheme(this.options.themePath))}_loadLibrary(){if(this.options){if(this.options.fullLibraryLoader&&this.options.coreLibraryLoader)return Ft(()=>qn.FULL_WITH_CORE_LIBRARY_IMPORTS);if(this.options.fullLibraryLoader&&this.options.languages)return Ft(()=>qn.FULL_WITH_LANGUAGE_IMPORTS);if(this.options.coreLibraryLoader&&!this.options.languages)return Ft(()=>qn.CORE_WITHOUT_LANGUAGE_IMPORTS);if(!this.options.coreLibraryLoader&&this.options.languages)return Ft(()=>qn.LANGUAGE_WITHOUT_CORE_IMPORTS);if(this.options.fullLibraryLoader)return this.loadFullLibrary();if(this.options.coreLibraryLoader&&this.options.languages&&Object.keys(this.options.languages).length)return this.loadCoreLibrary().pipe(Pt(n=>this._loadLanguages(n)))}return Ft(()=>qn.NO_FULL_AND_NO_CORE_IMPORTS)}_loadLanguages(n){let r=Object.entries(this.options.languages).map(([o,i])=>ol(i()).pipe(ur(s=>n.registerLanguage(o,s))));return qs(r).pipe(ne(()=>n))}loadCoreLibrary(){return ol(this.options.coreLibraryLoader())}loadFullLibrary(){return ol(this.options.fullLibraryLoader())}loadLineNumbers(){return pe(this.options.lineNumbersLoader())}setTheme(n){this.isPlatformBrowser&&(this._themeLinkElement?this._themeLinkElement.href=n:this.loadTheme(n))}loadTheme(n){this._themeLinkElement=this.document.createElement("link"),this._themeLinkElement.href=n,this._themeLinkElement.type="text/css",this._themeLinkElement.rel="stylesheet",this._themeLinkElement.media="screen,print",this.document.head.appendChild(this._themeLinkElement)}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),ol=e=>pe(e).pipe(be(t=>!!t?.default),ne(t=>t.default)),sl=(()=>{class e{constructor(){this.loader=m(UC),this.options=m(ys,{optional:!0}),this.hljsSignal=Ri(null),this.hljs=jh(()=>this.hljsSignal()),this.loader.ready.then(n=>{this.hljsSignal.set(n),this.options?.highlightOptions&&n.configure(this.options.highlightOptions)})}highlight(n,r){return Z(this,null,function*(){return(yield this.loader.ready).highlight(n,r)})}highlightAuto(n,r){return Z(this,null,function*(){return(yield this.loader.ready).highlightAuto(n,r)})}highlightElement(n){return Z(this,null,function*(){(yield this.loader.ready).highlightElement(n)})}highlightAll(){return Z(this,null,function*(){(yield this.loader.ready).highlightAll()})}configure(n){return Z(this,null,function*(){(yield this.loader.ready).configure(n)})}registerLanguage(n,r){return Z(this,null,function*(){(yield this.loader.ready).registerLanguage(n,r)})}unregisterLanguage(n){return Z(this,null,function*(){(yield this.loader.ready).unregisterLanguage(n)})}registerAliases(o,i){return Z(this,arguments,function*(n,{languageName:r}){(yield this.loader.ready).registerAliases(n,{languageName:r})})}listLanguages(){return Z(this,null,function*(){return(yield this.loader.ready).listLanguages()})}getLanguage(n){return Z(this,null,function*(){return(yield this.loader.ready).getLanguage(n)})}safeMode(){return Z(this,null,function*(){(yield this.loader.ready).safeMode()})}debugMode(){return Z(this,null,function*(){(yield this.loader.ready).debugMode()})}lineNumbersBlock(n,r){return Z(this,null,function*(){let o=yield this.loader.ready;o.lineNumbersBlock&&o.lineNumbersBlock(n,r)})}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=M({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),il;function $C(){if(!il)try{il=window?.trustedTypes?.createPolicy("ngx-highlightjs",{createHTML:e=>e})}catch{}return il}function zC(e){return $C()?.createHTML(e)||e}var ms=(()=>{class e{constructor(){this._hljs=m(sl),this._nativeElement=m(Ne).nativeElement,this._sanitizer=m(rl),this._platform=m(Ve),$n(this._platform)&&(Hn(()=>{let n=this.code();this.setTextContent(n||""),n&&this.highlightElement(n)}),Hn(()=>{let n=this.highlightResult();this.setInnerHTML(n?.value),this.highlighted.emit(n)}))}setTextContent(n){requestAnimationFrame(()=>this._nativeElement.textContent=n)}setInnerHTML(n){requestAnimationFrame(()=>this._nativeElement.innerHTML=zC(this._sanitizer.sanitize(Te.HTML,n)||""))}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275dir=Be({type:e,standalone:!1})}}return e})(),$F=(()=>{class e extends ms{constructor(){super(...arguments),this.code=Gf(null,{alias:"highlight"}),this.highlightResult=Ri(null),this.highlighted=new We}highlightElement(n){return Z(this,null,function*(){let r=yield this._hljs.highlight(n,{language:this.language,ignoreIllegals:this.ignoreIllegals});this.highlightResult.set(r)})}static{this.\u0275fac=(()=>{let n;return function(o){return(n||(n=Pf(e)))(o||e)}})()}static{this.\u0275dir=Be({type:e,selectors:[["","highlight",""]],hostVars:2,hostBindings:function(r,o){r&2&&Tu("hljs",!0)},inputs:{code:[1,"highlight","code"],language:"language",ignoreIllegals:[2,"ignoreIllegals","ignoreIllegals",Ar]},outputs:{highlighted:"highlighted"},features:[Nh([{provide:ms,useExisting:e}]),Eu]})}}return e})();var zF=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=gt({type:e})}static{this.\u0275inj=lt({})}}return e})();function JF(){let e=window,t=document,n="hljs-ln",r="hljs-ln-line",o="hljs-ln-code",i="hljs-ln-numbers",s="hljs-ln-n",a="data-line-number",c=/\r\n|\r|\n/g;e.hljs?(e.hljs.initLineNumbersOnLoad=d,e.hljs.lineNumbersBlock=w,e.hljs.lineNumbersValue=x,p()):e.console.error("highlight.js not detected!");function u(y){let D=y;for(;D;){if(D.className&&D.className.indexOf("hljs-ln-code")!==-1)return!0;D=D.parentNode}return!1}function l(y){let D=y;for(;D.nodeName!=="TABLE";)D=D.parentNode;return D}function f(y){let D=y.toString(),R=y.anchorNode;for(;R.nodeName!=="TD";)R=R.parentNode;let $=y.focusNode;for(;$.nodeName!=="TD";)$=$.parentNode;let X=parseInt(R.dataset.lineNumber),nt=parseInt($.dataset.lineNumber);if(X!=nt){let on=R.textContent,sn=$.textContent;if(X>nt){let St=X;X=nt,nt=St,St=on,on=sn,sn=St}for(;D.indexOf(on)!==0;)on=on.slice(1);for(;D.lastIndexOf(sn)===-1;)sn=sn.slice(0,-1);let Es=on,Bg=l(R);for(let St=X+1;St1||D.singleLine){let $="";for(let X=0,nt=R.length;X

{6}',[r,i,s,a,o,X+D.startFrom,R[X].length>0?R[X]:" "]);return Yn('{1}
',[n,$])}return y}function Zn(y,D){return D=D||{},{singleLine:vs(D),startFrom:Ds(y,D)}}function vs(y){return y.singleLine?y.singleLine:!1}function Ds(y,D){let $=1;isFinite(D.startFrom)&&($=D.startFrom);let X=jg(y,"data-ln-start-from");return X!==null&&($=Vg(X,1)),$}function al(y){let D=y.childNodes;for(let R in D)if(D.hasOwnProperty(R)){let $=D[R];Pg($.textContent)>0&&($.childNodes.length>0?al($):Fg($.parentNode))}}function Fg(y){let D=y.className;if(!/hljs-/.test(D))return;let R=cl(y.innerHTML),$="";for(let X=0;X0?R[X]:" ";$+=Yn(`{1} +`,[D,nt])}y.innerHTML=$.trim()}function cl(y){return y.length===0?[]:y.split(c)}function Pg(y){return(y.trim().match(c)||[]).length}function Lg(y){e.setTimeout(y,0)}function Yn(y,D){return y.replace(/\{(\d+)\}/g,function(R,$){return D[$]!==void 0?D[$]:R})}function jg(y,D){return y.hasAttribute(D)?y.getAttribute(D):null}function Vg(y,D){if(!y)return D;let R=Number(y);return isFinite(R)?R:D}}var XF=(()=>{class e{constructor(){this._platform=m(Ve),this.options=m(ys)?.lineNumbersOptions,this._hljs=m(sl),this._highlight=m(ms),this._nativeElement=m(Ne).nativeElement,this.startFrom=this.options?.startFrom,this.singleLine=this.options?.singleLine,$n(this._platform)&&Hn(()=>{this._highlight.highlightResult()&&this.addLineNumbers()})}addLineNumbers(){this.destroyLineNumbersObserver(),requestAnimationFrame(()=>Z(this,null,function*(){yield this._hljs.lineNumbersBlock(this._nativeElement,{startFrom:this.startFrom,singleLine:this.singleLine}),this._lineNumbersObs=new MutationObserver(()=>{this._nativeElement.firstElementChild?.tagName.toUpperCase()==="TABLE"&&this._nativeElement.classList.add("hljs-line-numbers"),this.destroyLineNumbersObserver()}),this._lineNumbersObs.observe(this._nativeElement,{childList:!0})}))}destroyLineNumbersObserver(){this._lineNumbersObs&&(this._lineNumbersObs.disconnect(),this._lineNumbersObs=null)}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275dir=Be({type:e,selectors:[["","highlight","","lineNumbers",""],["","highlightAuto","","lineNumbers",""]],inputs:{startFrom:[2,"startFrom","startFrom",ku],singleLine:[2,"singleLine","singleLine",Ar]}})}}return e})();export{Y as a,em as b,F as c,$s as d,zs as e,ye as f,Ot as g,rr as h,$e as i,pe as j,_o as k,Ft as l,lm as m,it as n,fm as o,ne as p,wm as q,st as r,ir as s,fn as t,bm as u,qs as v,sr as w,Cm as x,be as y,Mm as z,Sm as A,ar as B,Zs as C,Nm as D,cr as E,pn as F,Ys as G,xm as H,Am as I,Ao as J,km as K,Ks as L,Fm as M,Pm as N,Lm as O,Xs as P,jm as Q,Vm as R,Bm as S,Pt as T,Hm as U,Um as V,ur as W,v as X,Vd as Y,M as Z,lt as _,KA as $,E as aa,k as ba,b as ca,m as da,Mc as ea,Zd as fa,Ii as ga,qe as ha,_i as ia,sf as ja,JA as ka,XA as la,eR as ma,tR as na,Pf as oa,jf as pa,_e as qa,td as ra,Fn as sa,en as ta,We as ua,z as va,Qe as wa,Gf as xa,Ne as ya,Tv as za,Ri as Aa,Aa as Ba,Qc as Ca,Ve as Da,nR as Ea,Jc as Fa,Vn as Ga,Bv as Ha,Hv as Ia,Te as Ja,rR as Ka,ED as La,oR as Ma,iR as Na,Qt as Oa,Hi as Pa,Tn as Qa,Ui as Ra,K as Sa,fR as Ta,tn as Ua,hR as Va,Sn as Wa,Cw as Xa,Mw as Ya,yR as Za,gt as _a,Be as $a,$i as ab,Eu as bb,Uw as cb,Gw as db,Wi as eb,vR as fb,qw as gb,Jt as hb,Jw as ib,lI as jb,dI as kb,Tu as lb,DR as mb,ER as nb,wR as ob,IR as pb,bR as qb,CR as rb,Eh as sb,wh as tb,bI as ub,Ih as vb,bh as wb,MI as xb,_R as yb,SI as zb,NI as Ab,PI as Bb,MR as Cb,TR as Db,SR as Eb,BI as Fb,NR as Gb,xR as Hb,AR as Ib,RR as Jb,OR as Kb,kR as Lb,FR as Mb,PR as Nb,UI as Ob,Mh as Pb,$I as Qb,zI as Rb,LR as Sb,GI as Tb,qI as Ub,Nh as Vb,jR as Wb,VR as Xb,BR as Yb,HR as Zb,UR as _b,$R as $b,zR as ac,GR as bc,WR as cc,qi as dc,Au as ec,Ar as fc,ku as gc,Fu as hc,jh as ic,Hn as jc,qR as kc,ZR as lc,q as mc,tt as nc,Ib as oc,Un as pc,Yi as qc,zh as rc,Gh as sc,Mb as tc,Vb as uc,ag as vc,Bb as wc,Hb as xc,Ub as yc,Gb as zc,qb as Ac,Zb as Bc,$u as Cc,$n as Dc,gk as Ec,Ku as Fc,fC as Gc,gC as Hc,Tt as Ic,vt as Jc,xg as Kc,Rg as Lc,VC as Mc,BC as Nc,AF as Oc,rl as Pc,ys as Qc,$F as Rc,zF as Sc,JF as Tc,XF as Uc}; diff --git a/matchbox-server/src/main/resources/static/browser/chunk-L46DWUZA.js b/matchbox-server/src/main/resources/static/browser/chunk-L46DWUZA.js deleted file mode 100644 index 502429951f4..00000000000 --- a/matchbox-server/src/main/resources/static/browser/chunk-L46DWUZA.js +++ /dev/null @@ -1 +0,0 @@ -import{e as s}from"./chunk-TSRGIXR5.js";var r=s((l,t)=>{function E(e){let a={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},c={match:/[{}[\],:]/,className:"punctuation",relevance:0},n=["true","false","null"],o={scope:"literal",beginKeywords:n.join(" ")};return{name:"JSON",keywords:{literal:n},contains:[a,c,e.QUOTE_STRING_MODE,o,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}t.exports=E});export default r(); diff --git a/matchbox-server/src/main/resources/static/browser/chunk-OHNOGIP5.js b/matchbox-server/src/main/resources/static/browser/chunk-OHNOGIP5.js deleted file mode 100644 index 5e5e5cdcd7b..00000000000 --- a/matchbox-server/src/main/resources/static/browser/chunk-OHNOGIP5.js +++ /dev/null @@ -1,11 +0,0 @@ -import{a as Q,b as ae,g as Z}from"./chunk-TSRGIXR5.js";function ws(e,t){return Object.is(e,t)}var re=null,tr=!1,Is=1,de=Symbol("SIGNAL");function F(e){let t=re;return re=e,t}function Ku(){return re}function Og(){return tr}var Bt={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function Wr(e){if(tr)throw new Error("");if(re===null)return;re.consumerOnSignalRead(e);let t=re.nextProducerIndex++;if(Zr(re),te.nextProducerIndex;)e.producerNode.pop(),e.producerLastReadVersion.pop(),e.producerIndexOfThis.pop()}}function or(e){Zr(e);for(let t=0;t0}function Zr(e){e.producerNode??=[],e.producerIndexOfThis??=[],e.producerLastReadVersion??=[]}function nl(e){e.liveConsumerNode??=[],e.liveConsumerIndexOfThis??=[]}function rl(e){return e.producerNode!==void 0}function Cs(e){let t=Object.create(Pg);t.computation=e;let n=()=>{if(bs(t),Wr(t),t.value===Gr)throw t.error;return t.value};return n[de]=t,n}var ys=Symbol("UNSET"),vs=Symbol("COMPUTING"),Gr=Symbol("ERRORED"),Pg=ae(Q({},Bt),{value:ys,dirty:!0,error:null,equal:ws,producerMustRecompute(e){return e.value===ys||e.value===vs},producerRecomputeValue(e){if(e.value===vs)throw new Error("Detected cycle in computations.");let t=e.value;e.value=vs;let n=vn(e),r;try{r=e.computation()}catch(o){r=Gr,e.error=o}finally{rr(e,n)}if(t!==ys&&t!==Gr&&r!==Gr&&e.equal(t,r)){e.value=t;return}e.value=r,e.version++}});function kg(){throw new Error}var ol=kg;function il(){ol()}function sl(e){ol=e}var Lg=null;function al(e){let t=Object.create(Ms);t.value=e;let n=()=>(Wr(t),t.value);return n[de]=t,n}function Yr(e,t){Xu()||il(),e.equal(e.value,t)||(e.value=t,jg(e))}function cl(e,t){Xu()||il(),Yr(e,t(e.value))}var Ms=ae(Q({},Bt),{equal:ws,value:void 0});function jg(e){e.version++,Fg(),Ju(e),Lg?.()}function ul(e,t,n){let r=Object.create(Vg);n&&(r.consumerAllowSignalWrites=!0),r.fn=e,r.schedule=t;let o=c=>{r.cleanupFn=c};function i(c){return c.fn===null&&c.schedule===null}function s(c){i(c)||(Dn(c),c.cleanupFn(),c.fn=null,c.schedule=null,c.cleanupFn=Es)}let a=()=>{if(r.fn===null)return;if(Og())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(r.dirty=!1,r.hasRun&&!or(r))return;r.hasRun=!0;let c=vn(r);try{r.cleanupFn(),r.cleanupFn=Es,r.fn(o)}finally{rr(r,c)}};return r.ref={notify:()=>el(r),run:a,cleanup:()=>r.cleanupFn(),destroy:()=>s(r),[de]:r},r.ref}var Es=()=>{},Vg=ae(Q({},Bt),{consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:e=>{e.schedule!==null&&e.schedule(e.ref)},hasRun:!1,cleanupFn:Es});function w(e){return typeof e=="function"}function It(e){let n=e(r=>{Error.call(r),r.stack=new Error().stack});return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var Qr=It(e=>function(n){e(this),this.message=n?`${n.length} errors occurred during unsubscription: -${n.map((r,o)=>`${o+1}) ${r.toString()}`).join(` - `)}`:"",this.name="UnsubscriptionError",this.errors=n});function Ht(e,t){if(e){let n=e.indexOf(t);0<=n&&e.splice(n,1)}}var J=class e{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;let{_parentage:n}=this;if(n)if(this._parentage=null,Array.isArray(n))for(let i of n)i.remove(this);else n.remove(this);let{initialTeardown:r}=this;if(w(r))try{r()}catch(i){t=i instanceof Qr?i.errors:[i]}let{_finalizers:o}=this;if(o){this._finalizers=null;for(let i of o)try{ll(i)}catch(s){t=t??[],s instanceof Qr?t=[...t,...s.errors]:t.push(s)}}if(t)throw new Qr(t)}}add(t){var n;if(t&&t!==this)if(this.closed)ll(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(n=this._finalizers)!==null&&n!==void 0?n:[]).push(t)}}_hasParent(t){let{_parentage:n}=this;return n===t||Array.isArray(n)&&n.includes(t)}_addParent(t){let{_parentage:n}=this;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t}_removeParent(t){let{_parentage:n}=this;n===t?this._parentage=null:Array.isArray(n)&&Ht(n,t)}remove(t){let{_finalizers:n}=this;n&&Ht(n,t),t instanceof e&&t._removeParent(this)}};J.EMPTY=(()=>{let e=new J;return e.closed=!0,e})();var _s=J.EMPTY;function Kr(e){return e instanceof J||e&&"closed"in e&&w(e.remove)&&w(e.add)&&w(e.unsubscribe)}function ll(e){w(e)?e():e.unsubscribe()}var Be={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var En={setTimeout(e,t,...n){let{delegate:r}=En;return r?.setTimeout?r.setTimeout(e,t,...n):setTimeout(e,t,...n)},clearTimeout(e){let{delegate:t}=En;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function Jr(e){En.setTimeout(()=>{let{onUnhandledError:t}=Be;if(t)t(e);else throw e})}function Ut(){}var dl=Ts("C",void 0,void 0);function fl(e){return Ts("E",void 0,e)}function hl(e){return Ts("N",e,void 0)}function Ts(e,t,n){return{kind:e,value:t,error:n}}var $t=null;function wn(e){if(Be.useDeprecatedSynchronousErrorHandling){let t=!$t;if(t&&($t={errorThrown:!1,error:null}),e(),t){let{errorThrown:n,error:r}=$t;if($t=null,n)throw r}}else e()}function pl(e){Be.useDeprecatedSynchronousErrorHandling&&$t&&($t.errorThrown=!0,$t.error=e)}var zt=class extends J{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,Kr(t)&&t.add(this)):this.destination=Ug}static create(t,n,r){return new He(t,n,r)}next(t){this.isStopped?Ns(hl(t),this):this._next(t)}error(t){this.isStopped?Ns(fl(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?Ns(dl,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}},Bg=Function.prototype.bind;function Ss(e,t){return Bg.call(e,t)}var xs=class{constructor(t){this.partialObserver=t}next(t){let{partialObserver:n}=this;if(n.next)try{n.next(t)}catch(r){Xr(r)}}error(t){let{partialObserver:n}=this;if(n.error)try{n.error(t)}catch(r){Xr(r)}else Xr(t)}complete(){let{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(n){Xr(n)}}},He=class extends zt{constructor(t,n,r){super();let o;if(w(t)||!t)o={next:t??void 0,error:n??void 0,complete:r??void 0};else{let i;this&&Be.useDeprecatedNextContext?(i=Object.create(t),i.unsubscribe=()=>this.unsubscribe(),o={next:t.next&&Ss(t.next,i),error:t.error&&Ss(t.error,i),complete:t.complete&&Ss(t.complete,i)}):o=t}this.destination=new xs(o)}};function Xr(e){Be.useDeprecatedSynchronousErrorHandling?pl(e):Jr(e)}function Hg(e){throw e}function Ns(e,t){let{onStoppedNotification:n}=Be;n&&En.setTimeout(()=>n(e,t))}var Ug={closed:!0,next:Ut,error:Hg,complete:Ut};var In=typeof Symbol=="function"&&Symbol.observable||"@@observable";function me(e){return e}function $g(...e){return As(e)}function As(e){return e.length===0?me:e.length===1?e[0]:function(n){return e.reduce((r,o)=>o(r),n)}}var O=(()=>{class e{constructor(n){n&&(this._subscribe=n)}lift(n){let r=new e;return r.source=this,r.operator=n,r}subscribe(n,r,o){let i=Gg(n)?n:new He(n,r,o);return wn(()=>{let{operator:s,source:a}=this;i.add(s?s.call(i,a):a?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(n){try{return this._subscribe(n)}catch(r){n.error(r)}}forEach(n,r){return r=gl(r),new r((o,i)=>{let s=new He({next:a=>{try{n(a)}catch(c){i(c),s.unsubscribe()}},error:i,complete:o});this.subscribe(s)})}_subscribe(n){var r;return(r=this.source)===null||r===void 0?void 0:r.subscribe(n)}[In](){return this}pipe(...n){return As(n)(this)}toPromise(n){return n=gl(n),new n((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=t=>new e(t),e})();function gl(e){var t;return(t=e??Be.Promise)!==null&&t!==void 0?t:Promise}function zg(e){return e&&w(e.next)&&w(e.error)&&w(e.complete)}function Gg(e){return e&&e instanceof zt||zg(e)&&Kr(e)}function Rs(e){return w(e?.lift)}function M(e){return t=>{if(Rs(t))return t.lift(function(n){try{return e(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function E(e,t,n,r,o){return new Os(e,t,n,r,o)}var Os=class extends zt{constructor(t,n,r,o,i,s){super(t),this.onFinalize=i,this.shouldUnsubscribe=s,this._next=n?function(a){try{n(a)}catch(c){t.error(c)}}:super._next,this._error=o?function(a){try{o(a)}catch(c){t.error(c)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(a){t.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){let{closed:n}=this;super.unsubscribe(),!n&&((t=this.onFinalize)===null||t===void 0||t.call(this))}}};function Fs(){return M((e,t)=>{let n=null;e._refCount++;let r=E(t,void 0,void 0,void 0,()=>{if(!e||e._refCount<=0||0<--e._refCount){n=null;return}let o=e._connection,i=n;n=null,o&&(!i||o===i)&&o.unsubscribe(),t.unsubscribe()});e.subscribe(r),r.closed||(n=e.connect())})}var Ps=class extends O{constructor(t,n){super(),this.source=t,this.subjectFactory=n,this._subject=null,this._refCount=0,this._connection=null,Rs(t)&&(this.lift=t.lift)}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){let t=this._subject;return(!t||t.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;let{_connection:t}=this;this._subject=this._connection=null,t?.unsubscribe()}connect(){let t=this._connection;if(!t){t=this._connection=new J;let n=this.getSubject();t.add(this.source.subscribe(E(n,void 0,()=>{this._teardown(),n.complete()},r=>{this._teardown(),n.error(r)},()=>this._teardown()))),t.closed&&(this._connection=null,t=J.EMPTY)}return t}refCount(){return Fs()(this)}};var ml=It(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var Ie=(()=>{class e extends O{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(n){let r=new eo(this,this);return r.operator=n,r}_throwIfClosed(){if(this.closed)throw new ml}next(n){wn(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let r of this.currentObservers)r.next(n)}})}error(n){wn(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=n;let{observers:r}=this;for(;r.length;)r.shift().error(n)}})}complete(){wn(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:n}=this;for(;n.length;)n.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var n;return((n=this.observers)===null||n===void 0?void 0:n.length)>0}_trySubscribe(n){return this._throwIfClosed(),super._trySubscribe(n)}_subscribe(n){return this._throwIfClosed(),this._checkFinalizedStatuses(n),this._innerSubscribe(n)}_innerSubscribe(n){let{hasError:r,isStopped:o,observers:i}=this;return r||o?_s:(this.currentObservers=null,i.push(n),new J(()=>{this.currentObservers=null,Ht(i,n)}))}_checkFinalizedStatuses(n){let{hasError:r,thrownError:o,isStopped:i}=this;r?n.error(o):i&&n.complete()}asObservable(){let n=new O;return n.source=this,n}}return e.create=(t,n)=>new eo(t,n),e})(),eo=class extends Ie{constructor(t,n){super(),this.destination=t,this.source=n}next(t){var n,r;(r=(n=this.destination)===null||n===void 0?void 0:n.next)===null||r===void 0||r.call(n,t)}error(t){var n,r;(r=(n=this.destination)===null||n===void 0?void 0:n.error)===null||r===void 0||r.call(n,t)}complete(){var t,n;(n=(t=this.destination)===null||t===void 0?void 0:t.complete)===null||n===void 0||n.call(t)}_subscribe(t){var n,r;return(r=(n=this.source)===null||n===void 0?void 0:n.subscribe(t))!==null&&r!==void 0?r:_s}};var Gt=class extends Ie{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){let n=super._subscribe(t);return!n.closed&&t.next(this._value),n}getValue(){let{hasError:t,thrownError:n,_value:r}=this;if(t)throw n;return this._throwIfClosed(),r}next(t){super.next(this._value=t)}};var ir={now(){return(ir.delegate||Date).now()},delegate:void 0};var sr=class extends Ie{constructor(t=1/0,n=1/0,r=ir){super(),this._bufferSize=t,this._windowTime=n,this._timestampProvider=r,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=n===1/0,this._bufferSize=Math.max(1,t),this._windowTime=Math.max(1,n)}next(t){let{isStopped:n,_buffer:r,_infiniteTimeWindow:o,_timestampProvider:i,_windowTime:s}=this;n||(r.push(t),!o&&r.push(i.now()+s)),this._trimBuffer(),super.next(t)}_subscribe(t){this._throwIfClosed(),this._trimBuffer();let n=this._innerSubscribe(t),{_infiniteTimeWindow:r,_buffer:o}=this,i=o.slice();for(let s=0;se.complete());function oo(e){return e&&w(e.schedule)}function ks(e){return e[e.length-1]}function io(e){return w(ks(e))?e.pop():void 0}function Qe(e){return oo(ks(e))?e.pop():void 0}function vl(e,t){return typeof ks(e)=="number"?e.pop():t}function El(e,t,n,r){function o(i){return i instanceof n?i:new n(function(s){s(i)})}return new(n||(n=Promise))(function(i,s){function a(l){try{u(r.next(l))}catch(d){s(d)}}function c(l){try{u(r.throw(l))}catch(d){s(d)}}function u(l){l.done?i(l.value):o(l.value).then(a,c)}u((r=r.apply(e,t||[])).next())})}function Dl(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Wt(e){return this instanceof Wt?(this.v=e,this):new Wt(e)}function wl(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),o,i=[];return o=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(f){return function(p){return Promise.resolve(p).then(f,d)}}function a(f,p){r[f]&&(o[f]=function(g){return new Promise(function(D,N){i.push([f,g,D,N])>1||c(f,g)})},p&&(o[f]=p(o[f])))}function c(f,p){try{u(r[f](p))}catch(g){h(i[0][3],g)}}function u(f){f.value instanceof Wt?Promise.resolve(f.value.v).then(l,d):h(i[0][2],f)}function l(f){c("next",f)}function d(f){c("throw",f)}function h(f,p){f(p),i.shift(),i.length&&c(i[0][0],i[0][1])}}function Il(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof Dl=="function"?Dl(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(i){n[i]=e[i]&&function(s){return new Promise(function(a,c){s=e[i](s),o(a,c,s.done,s.value)})}}function o(i,s,a,c){Promise.resolve(c).then(function(u){i({value:u,done:a})},s)}}var Cn=e=>e&&typeof e.length=="number"&&typeof e!="function";function so(e){return w(e?.then)}function ao(e){return w(e[In])}function co(e){return Symbol.asyncIterator&&w(e?.[Symbol.asyncIterator])}function uo(e){return new TypeError(`You provided ${e!==null&&typeof e=="object"?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}function Wg(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var lo=Wg();function fo(e){return w(e?.[lo])}function ho(e){return wl(this,arguments,function*(){let n=e.getReader();try{for(;;){let{value:r,done:o}=yield Wt(n.read());if(o)return yield Wt(void 0);yield yield Wt(r)}}finally{n.releaseLock()}})}function po(e){return w(e?.getReader)}function P(e){if(e instanceof O)return e;if(e!=null){if(ao(e))return qg(e);if(Cn(e))return Zg(e);if(so(e))return Yg(e);if(co(e))return bl(e);if(fo(e))return Qg(e);if(po(e))return Kg(e)}throw uo(e)}function qg(e){return new O(t=>{let n=e[In]();if(w(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Zg(e){return new O(t=>{for(let n=0;n{e.then(n=>{t.closed||(t.next(n),t.complete())},n=>t.error(n)).then(null,Jr)})}function Qg(e){return new O(t=>{for(let n of e)if(t.next(n),t.closed)return;t.complete()})}function bl(e){return new O(t=>{Jg(e,t).catch(n=>t.error(n))})}function Kg(e){return bl(ho(e))}function Jg(e,t){var n,r,o,i;return El(this,void 0,void 0,function*(){try{for(n=Il(e);r=yield n.next(),!r.done;){let s=r.value;if(t.next(s),t.closed)return}}catch(s){o={error:s}}finally{try{r&&!r.done&&(i=n.return)&&(yield i.call(n))}finally{if(o)throw o.error}}t.complete()})}function fe(e,t,n,r=0,o=!1){let i=t.schedule(function(){n(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}function go(e,t=0){return M((n,r)=>{n.subscribe(E(r,o=>fe(r,e,()=>r.next(o),t),()=>fe(r,e,()=>r.complete(),t),o=>fe(r,e,()=>r.error(o),t)))})}function mo(e,t=0){return M((n,r)=>{r.add(e.schedule(()=>n.subscribe(r),t))})}function Cl(e,t){return P(e).pipe(mo(t),go(t))}function Ml(e,t){return P(e).pipe(mo(t),go(t))}function _l(e,t){return new O(n=>{let r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function Tl(e,t){return new O(n=>{let r;return fe(n,t,()=>{r=e[lo](),fe(n,t,()=>{let o,i;try{({value:o,done:i}=r.next())}catch(s){n.error(s);return}i?n.complete():n.next(o)},0,!0)}),()=>w(r?.return)&&r.return()})}function yo(e,t){if(!e)throw new Error("Iterable cannot be null");return new O(n=>{fe(n,t,()=>{let r=e[Symbol.asyncIterator]();fe(n,t,()=>{r.next().then(o=>{o.done?n.complete():n.next(o.value)})},0,!0)})})}function Sl(e,t){return yo(ho(e),t)}function Nl(e,t){if(e!=null){if(ao(e))return Cl(e,t);if(Cn(e))return _l(e,t);if(so(e))return Ml(e,t);if(co(e))return yo(e,t);if(fo(e))return Tl(e,t);if(po(e))return Sl(e,t)}throw uo(e)}function ye(e,t){return t?Nl(e,t):P(e)}function vo(...e){let t=Qe(e);return ye(e,t)}function qt(e,t){let n=w(e)?e:()=>e,r=o=>o.error(n());return new O(t?o=>t.schedule(r,0,o):r)}function Xg(e){return!!e&&(e instanceof O||w(e.lift)&&w(e.subscribe))}var ct=It(e=>function(){e(this),this.name="EmptyError",this.message="no elements in sequence"});function Ls(e,t){let n=typeof t=="object";return new Promise((r,o)=>{let i=new He({next:s=>{r(s),i.unsubscribe()},error:o,complete:()=>{n?r(t.defaultValue):o(new ct)}});e.subscribe(i)})}function Do(e){return e instanceof Date&&!isNaN(e)}var em=It(e=>function(n=null){e(this),this.message="Timeout has occurred",this.name="TimeoutError",this.info=n});function tm(e,t){let{first:n,each:r,with:o=nm,scheduler:i=t??at,meta:s=null}=Do(e)?{first:e}:typeof e=="number"?{each:e}:e;if(n==null&&r==null)throw new TypeError("No timeout provided.");return M((a,c)=>{let u,l,d=null,h=0,f=p=>{l=fe(c,i,()=>{try{u.unsubscribe(),P(o({meta:s,lastValue:d,seen:h})).subscribe(c)}catch(g){c.error(g)}},p)};u=a.subscribe(E(c,p=>{l?.unsubscribe(),h++,c.next(d=p),r>0&&f(r)},void 0,void 0,()=>{l?.closed||l?.unsubscribe(),d=null})),!h&&f(n!=null?typeof n=="number"?n:+n-i.now():r)})}function nm(e){throw new em(e)}function ie(e,t){return M((n,r)=>{let o=0;n.subscribe(E(r,i=>{r.next(e.call(t,i,o++))}))})}var{isArray:rm}=Array;function om(e,t){return rm(t)?e(...t):e(t)}function Mn(e){return ie(t=>om(e,t))}var{isArray:im}=Array,{getPrototypeOf:sm,prototype:am,keys:cm}=Object;function Eo(e){if(e.length===1){let t=e[0];if(im(t))return{args:t,keys:null};if(um(t)){let n=cm(t);return{args:n.map(r=>t[r]),keys:n}}}return{args:e,keys:null}}function um(e){return e&&typeof e=="object"&&sm(e)===am}function wo(e,t){return e.reduce((n,r,o)=>(n[r]=t[o],n),{})}function lm(...e){let t=Qe(e),n=io(e),{args:r,keys:o}=Eo(e);if(r.length===0)return ye([],t);let i=new O(dm(r,t,o?s=>wo(o,s):me));return n?i.pipe(Mn(n)):i}function dm(e,t,n=me){return r=>{xl(t,()=>{let{length:o}=e,i=new Array(o),s=o,a=o;for(let c=0;c{let u=ye(e[c],t),l=!1;u.subscribe(E(r,d=>{i[c]=d,l||(l=!0,a--),a||r.next(n(i.slice()))},()=>{--s||r.complete()}))},r)},r)}}function xl(e,t,n){e?fe(n,e,t):t()}function Al(e,t,n,r,o,i,s,a){let c=[],u=0,l=0,d=!1,h=()=>{d&&!c.length&&!u&&t.complete()},f=g=>u{i&&t.next(g),u++;let D=!1;P(n(g,l++)).subscribe(E(t,N=>{o?.(N),i?f(N):t.next(N)},()=>{D=!0},void 0,()=>{if(D)try{for(u--;c.length&&up(N)):p(N)}h()}catch(N){t.error(N)}}))};return e.subscribe(E(t,f,()=>{d=!0,h()})),()=>{a?.()}}function Ue(e,t,n=1/0){return w(t)?Ue((r,o)=>ie((i,s)=>t(r,i,o,s))(P(e(r,o))),n):(typeof t=="number"&&(n=t),M((r,o)=>Al(r,o,e,n)))}function cr(e=1/0){return Ue(me,e)}function Rl(){return cr(1)}function _n(...e){return Rl()(ye(e,Qe(e)))}function fm(e){return new O(t=>{P(e()).subscribe(t)})}function js(...e){let t=io(e),{args:n,keys:r}=Eo(e),o=new O(i=>{let{length:s}=n;if(!s){i.complete();return}let a=new Array(s),c=s,u=s;for(let l=0;l{d||(d=!0,u--),a[l]=h},()=>c--,void 0,()=>{(!c||!d)&&(u||i.next(r?wo(r,a):a),i.complete())}))}});return t?o.pipe(Mn(t)):o}var hm=["addListener","removeListener"],pm=["addEventListener","removeEventListener"],gm=["on","off"];function Vs(e,t,n,r){if(w(n)&&(r=n,n=void 0),r)return Vs(e,t,n).pipe(Mn(r));let[o,i]=vm(e)?pm.map(s=>a=>e[s](t,a,n)):mm(e)?hm.map(Ol(e,t)):ym(e)?gm.map(Ol(e,t)):[];if(!o&&Cn(e))return Ue(s=>Vs(s,t,n))(P(e));if(!o)throw new TypeError("Invalid event target");return new O(s=>{let a=(...c)=>s.next(1i(a)})}function Ol(e,t){return n=>r=>e[n](t,r)}function mm(e){return w(e.addListener)&&w(e.removeListener)}function ym(e){return w(e.on)&&w(e.off)}function vm(e){return w(e.addEventListener)&&w(e.removeEventListener)}function ur(e=0,t,n=yl){let r=-1;return t!=null&&(oo(t)?n=t:r=t),new O(o=>{let i=Do(e)?+e-n.now():e;i<0&&(i=0);let s=0;return n.schedule(function(){o.closed||(o.next(s++),0<=r?this.schedule(void 0,r):o.complete())},i)})}function Dm(...e){let t=Qe(e),n=vl(e,1/0),r=e;return r.length?r.length===1?P(r[0]):cr(n)(ye(r,t)):Ye}var{isArray:Em}=Array;function Fl(e){return e.length===1&&Em(e[0])?e[0]:e}function Te(e,t){return M((n,r)=>{let o=0;n.subscribe(E(r,i=>e.call(t,i,o++)&&r.next(i)))})}function wm(...e){return e=Fl(e),e.length===1?P(e[0]):new O(Im(e))}function Im(e){return t=>{let n=[];for(let r=0;n&&!t.closed&&r{if(n){for(let i=0;i{let r=!1,o=null,i=null,s=!1,a=()=>{if(i?.unsubscribe(),i=null,r){r=!1;let u=o;o=null,n.next(u)}s&&n.complete()},c=()=>{i=null,s&&n.complete()};t.subscribe(E(n,u=>{r=!0,o=u,i||P(e(u)).subscribe(i=E(n,a,c))},()=>{s=!0,(!r||!i||i.closed)&&n.complete()}))})}function bm(e,t=at){return Pl(()=>ur(e,t))}function lr(e){return M((t,n)=>{let r=null,o=!1,i;r=t.subscribe(E(n,void 0,void 0,s=>{i=P(e(s,lr(e)(t))),r?(r.unsubscribe(),r=null,i.subscribe(n)):o=!0})),o&&(r.unsubscribe(),r=null,i.subscribe(n))})}function kl(e,t,n,r,o){return(i,s)=>{let a=n,c=t,u=0;i.subscribe(E(s,l=>{let d=u++;c=a?e(c,l,d):(a=!0,l),r&&s.next(c)},o&&(()=>{a&&s.next(c),s.complete()})))}}function Bs(e,t){return w(t)?Ue(e,t,1):Ue(e,1)}function Cm(e,t=at){return M((n,r)=>{let o=null,i=null,s=null,a=()=>{if(o){o.unsubscribe(),o=null;let u=i;i=null,r.next(u)}};function c(){let u=s+e,l=t.now();if(l{i=u,s=t.now(),o||(o=t.schedule(c,e),r.add(o))},()=>{a(),r.complete()},void 0,()=>{i=o=null}))})}function dr(e){return M((t,n)=>{let r=!1;t.subscribe(E(n,o=>{r=!0,n.next(o)},()=>{r||n.next(e),n.complete()}))})}function Tn(e){return e<=0?()=>Ye:M((t,n)=>{let r=0;t.subscribe(E(n,o=>{++r<=e&&(n.next(o),e<=r&&n.complete())}))})}function Ll(){return M((e,t)=>{e.subscribe(E(t,Ut))})}function Hs(e){return ie(()=>e)}function Us(e,t){return t?n=>_n(t.pipe(Tn(1),Ll()),n.pipe(Us(e))):Ue((n,r)=>P(e(n,r)).pipe(Tn(1),Hs(n)))}function Mm(e,t=at){let n=ur(e,t);return Us(()=>n)}function _m(e,t=me){return e=e??Tm,M((n,r)=>{let o,i=!0;n.subscribe(E(r,s=>{let a=t(s);(i||!e(o,a))&&(i=!1,o=a,r.next(s))}))})}function Tm(e,t){return e===t}function Io(e=Sm){return M((t,n)=>{let r=!1;t.subscribe(E(n,o=>{r=!0,n.next(o)},()=>r?n.complete():n.error(e())))})}function Sm(){return new ct}function bo(e){return M((t,n)=>{try{t.subscribe(n)}finally{n.add(e)}})}function jl(e,t){let n=arguments.length>=2;return r=>r.pipe(e?Te((o,i)=>e(o,i,r)):me,Tn(1),n?dr(t):Io(()=>new ct))}function $s(e){return e<=0?()=>Ye:M((t,n)=>{let r=[];t.subscribe(E(n,o=>{r.push(o),e{for(let o of r)n.next(o);n.complete()},void 0,()=>{r=null}))})}function Nm(e,t){let n=arguments.length>=2;return r=>r.pipe(e?Te((o,i)=>e(o,i,r)):me,$s(1),n?dr(t):Io(()=>new ct))}function xm(){return M((e,t)=>{let n,r=!1;e.subscribe(E(t,o=>{let i=n;n=o,r&&t.next([i,o]),r=!0}))})}function Am(e,t){return M(kl(e,t,arguments.length>=2,!0))}function Gs(e={}){let{connector:t=()=>new Ie,resetOnError:n=!0,resetOnComplete:r=!0,resetOnRefCountZero:o=!0}=e;return i=>{let s,a,c,u=0,l=!1,d=!1,h=()=>{a?.unsubscribe(),a=void 0},f=()=>{h(),s=c=void 0,l=d=!1},p=()=>{let g=s;f(),g?.unsubscribe()};return M((g,D)=>{u++,!d&&!l&&h();let N=c=c??t();D.add(()=>{u--,u===0&&!d&&!l&&(a=zs(p,o))}),N.subscribe(D),!s&&u>0&&(s=new He({next:L=>N.next(L),error:L=>{d=!0,h(),a=zs(f,n,L),N.error(L)},complete:()=>{l=!0,h(),a=zs(f,r),N.complete()}}),P(g).subscribe(s))})(i)}}function zs(e,t,...n){if(t===!0){e();return}if(t===!1)return;let r=new He({next:()=>{r.unsubscribe(),e()}});return P(t(...n)).subscribe(r)}function Rm(e,t,n){let r,o=!1;return e&&typeof e=="object"?{bufferSize:r=1/0,windowTime:t=1/0,refCount:o=!1,scheduler:n}=e:r=e??1/0,Gs({connector:()=>new sr(r,t,n),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:o})}function Om(e){return Te((t,n)=>e<=n)}function Fm(...e){let t=Qe(e);return M((n,r)=>{(t?_n(e,n,t):_n(e,n)).subscribe(r)})}function Zt(e,t){return M((n,r)=>{let o=null,i=0,s=!1,a=()=>s&&!o&&r.complete();n.subscribe(E(r,c=>{o?.unsubscribe();let u=0,l=i++;P(e(c,l)).subscribe(o=E(r,d=>r.next(t?t(c,d,l,u++):d),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function Pm(e){return M((t,n)=>{P(e).subscribe(E(n,()=>n.complete(),Ut)),!n.closed&&t.subscribe(n)})}function km(e,t=!1){return M((n,r)=>{let o=0;n.subscribe(E(r,i=>{let s=e(i,o++);(s||t)&&r.next(i),!s&&r.complete()}))})}function Sn(e,t,n){let r=w(e)||t||n?{next:e,error:t,complete:n}:e;return r?M((o,i)=>{var s;(s=r.subscribe)===null||s===void 0||s.call(r);let a=!0;o.subscribe(E(i,c=>{var u;(u=r.next)===null||u===void 0||u.call(r,c),i.next(c)},()=>{var c;a=!1,(c=r.complete)===null||c===void 0||c.call(r),i.complete()},c=>{var u;a=!1,(u=r.error)===null||u===void 0||u.call(r,c),i.error(c)},()=>{var c,u;a&&((c=r.unsubscribe)===null||c===void 0||c.call(r)),(u=r.finalize)===null||u===void 0||u.call(r)}))}):me}var Ad="https://g.co/ng/security#xss",b=class extends Error{code;constructor(t,n){super(mi(t,n)),this.code=t}};function mi(e,t){return`${`NG0${Math.abs(e)}`}${t?": "+t:""}`}var Rd=Symbol("InputSignalNode#UNSET"),Lm=ae(Q({},Ms),{transformFn:void 0,applyValueToInputSignal(e,t){Yr(e,t)}});function Od(e,t){let n=Object.create(Lm);n.value=e,n.transformFn=t?.transform;function r(){if(Wr(n),n.value===Rd)throw new b(-950,!1);return n.value}return r[de]=n,r}function Cr(e){return{toString:e}.toString()}var Co="__parameters__";function jm(e){return function(...n){if(e){let r=e(...n);for(let o in r)this[o]=r[o]}}}function Fd(e,t,n){return Cr(()=>{let r=jm(t);function o(...i){if(this instanceof o)return r.apply(this,i),this;let s=new o(...i);return a.annotation=s,a;function a(c,u,l){let d=c.hasOwnProperty(Co)?c[Co]:Object.defineProperty(c,Co,{value:[]})[Co];for(;d.length<=l;)d.push(null);return(d[l]=d[l]||[]).push(s),c}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o})}var ce=globalThis;function H(e){for(let t in e)if(e[t]===H)return t;throw Error("Could not find renamed property on target object.")}function Vm(e,t){for(let n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n])}function Ee(e){if(typeof e=="string")return e;if(Array.isArray(e))return"["+e.map(Ee).join(", ")+"]";if(e==null)return""+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;let t=e.toString();if(t==null)return""+t;let n=t.indexOf(` -`);return n===-1?t:t.substring(0,n)}function ia(e,t){return e==null||e===""?t===null?"":t:t==null||t===""?e:e+" "+t}var Bm=H({__forward_ref__:H});function Pd(e){return e.__forward_ref__=Pd,e.toString=function(){return Ee(this())},e}function ve(e){return kd(e)?e():e}function kd(e){return typeof e=="function"&&e.hasOwnProperty(Bm)&&e.__forward_ref__===Pd}function S(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function xt(e){return{providers:e.providers||[],imports:e.imports||[]}}function yi(e){return Vl(e,Ld)||Vl(e,jd)}function zA(e){return yi(e)!==null}function Vl(e,t){return e.hasOwnProperty(t)?e[t]:null}function Hm(e){let t=e&&(e[Ld]||e[jd]);return t||null}function Bl(e){return e&&(e.hasOwnProperty(Hl)||e.hasOwnProperty(Um))?e[Hl]:null}var Ld=H({\u0275prov:H}),Hl=H({\u0275inj:H}),jd=H({ngInjectableDef:H}),Um=H({ngInjectorDef:H}),T=class{_desc;ngMetadataName="InjectionToken";\u0275prov;constructor(t,n){this._desc=t,this.\u0275prov=void 0,typeof n=="number"?this.__NG_ELEMENT_ID__=n:n!==void 0&&(this.\u0275prov=S({token:this,providedIn:n.providedIn||"root",factory:n.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}};function Vd(e){return e&&!!e.\u0275providers}var $m=H({\u0275cmp:H}),zm=H({\u0275dir:H}),Gm=H({\u0275pipe:H}),Wm=H({\u0275mod:H}),jo=H({\u0275fac:H}),pr=H({__NG_ELEMENT_ID__:H}),Ul=H({__NG_ENV_ID__:H});function Kt(e){return typeof e=="string"?e:e==null?"":String(e)}function qm(e){return typeof e=="function"?e.name||e.toString():typeof e=="object"&&e!=null&&typeof e.type=="function"?e.type.name||e.type.toString():Kt(e)}function Zm(e,t){let n=t?`. Dependency path: ${t.join(" > ")} > ${e}`:"";throw new b(-200,e)}function yc(e,t){throw new b(-201,!1)}var k=function(e){return e[e.Default=0]="Default",e[e.Host=1]="Host",e[e.Self=2]="Self",e[e.SkipSelf=4]="SkipSelf",e[e.Optional=8]="Optional",e}(k||{}),sa;function Bd(){return sa}function be(e){let t=sa;return sa=e,t}function Hd(e,t,n){let r=yi(e);if(r&&r.providedIn=="root")return r.value===void 0?r.value=r.factory():r.value;if(n&k.Optional)return null;if(t!==void 0)return t;yc(e,"Injector")}var Ym={},mr=Ym,aa="__NG_DI_FLAG__",Vo="ngTempTokenPath",Qm="ngTokenPath",Km=/\n/gm,Jm="\u0275",$l="__source",On;function Xm(){return On}function bt(e){let t=On;return On=e,t}function ey(e,t=k.Default){if(On===void 0)throw new b(-203,!1);return On===null?Hd(e,void 0,t):On.get(e,t&k.Optional?null:void 0,t)}function _(e,t=k.Default){return(Bd()||ey)(ve(e),t)}function m(e,t=k.Default){return _(e,vi(t))}function vi(e){return typeof e>"u"||typeof e=="number"?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function ca(e){let t=[];for(let n=0;n ");else if(typeof t=="object"){let i=[];for(let s in t)if(t.hasOwnProperty(s)){let a=t[s];i.push(s+":"+(typeof a=="string"?JSON.stringify(a):Ee(a)))}o=`{${i.join(", ")}}`}return`${n}${r?"("+r+")":""}[${o}]: ${e.replace(Km,` - `)}`}var vc=Ud(Fd("Optional"),8);var $d=Ud(Fd("SkipSelf"),4);function Jt(e,t){let n=e.hasOwnProperty(jo);return n?e[jo]:null}function oy(e,t,n){if(e.length!==t.length)return!1;for(let r=0;rArray.isArray(n)?Dc(n,t):t(n))}function zd(e,t,n){t>=e.length?e.push(n):e.splice(t,0,n)}function Bo(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function sy(e,t){let n=[];for(let r=0;rt;){let i=o-2;e[o]=e[i],o--}e[t]=n,e[t+1]=r}}function Di(e,t,n){let r=Mr(e,t);return r>=0?e[r|1]=n:(r=~r,ay(e,r,t,n)),r}function Ws(e,t){let n=Mr(e,t);if(n>=0)return e[n|1]}function Mr(e,t){return cy(e,t,1)}function cy(e,t,n){let r=0,o=e.length>>n;for(;o!==r;){let i=r+(o-r>>1),s=e[i<t?o=i:r=i+1}return~(o<{n.push(s)};return Dc(t,s=>{let a=s;ua(a,i,[],r)&&(o||=[],o.push(a))}),o!==void 0&&Kd(o,i),n}function Kd(e,t){for(let n=0;n{t(i,r)})}}function ua(e,t,n,r){if(e=ve(e),!e)return!1;let o=null,i=Bl(e),s=!i&&ut(e);if(!i&&!s){let c=e.ngModule;if(i=Bl(c),i)o=c;else return!1}else{if(s&&!s.standalone)return!1;o=e}let a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){let c=typeof s.dependencies=="function"?s.dependencies():s.dependencies;for(let u of c)ua(u,t,n,r)}}else if(i){if(i.imports!=null&&!a){r.add(o);let u;try{Dc(i.imports,l=>{ua(l,t,n,r)&&(u||=[],u.push(l))})}finally{}u!==void 0&&Kd(u,t)}if(!a){let u=Jt(o)||(()=>new o);t({provide:o,useFactory:u,deps:De},o),t({provide:Wd,useValue:o,multi:!0},o),t({provide:yr,useValue:()=>_(o),multi:!0},o)}let c=i.providers;if(c!=null&&!a){let u=e;wc(c,l=>{t(l,u)})}}else return!1;return o!==e&&e.providers!==void 0}function wc(e,t){for(let n of e)Vd(n)&&(n=n.\u0275providers),Array.isArray(n)?wc(n,t):t(n)}var dy=H({provide:String,useValue:H});function Jd(e){return e!==null&&typeof e=="object"&&dy in e}function fy(e){return!!(e&&e.useExisting)}function hy(e){return!!(e&&e.useFactory)}function kn(e){return typeof e=="function"}function py(e){return!!e.useClass}var Ei=new T(""),Ro={},gy={},qs;function wi(){return qs===void 0&&(qs=new Ho),qs}var et=class{},vr=class extends et{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(t,n,r,o){super(),this.parent=n,this.source=r,this.scopes=o,da(t,s=>this.processProvider(s)),this.records.set(Gd,Nn(void 0,this)),o.has("environment")&&this.records.set(et,Nn(void 0,this));let i=this.records.get(Ei);i!=null&&typeof i.value=="string"&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(Wd,De,k.Self))}destroy(){fr(this),this._destroyed=!0;let t=F(null);try{for(let r of this._ngOnDestroyHooks)r.ngOnDestroy();let n=this._onDestroyHooks;this._onDestroyHooks=[];for(let r of n)r()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),F(t)}}onDestroy(t){return fr(this),this._onDestroyHooks.push(t),()=>this.removeOnDestroy(t)}runInContext(t){fr(this);let n=bt(this),r=be(void 0),o;try{return t()}finally{bt(n),be(r)}}get(t,n=mr,r=k.Default){if(fr(this),t.hasOwnProperty(Ul))return t[Ul](this);r=vi(r);let o,i=bt(this),s=be(void 0);try{if(!(r&k.SkipSelf)){let c=this.records.get(t);if(c===void 0){let u=Ey(t)&&yi(t);u&&this.injectableDefInScope(u)?c=Nn(la(t),Ro):c=null,this.records.set(t,c)}if(c!=null)return this.hydrate(t,c)}let a=r&k.Self?wi():this.parent;return n=r&k.Optional&&n===mr?null:n,a.get(t,n)}catch(a){if(a.name==="NullInjectorError"){if((a[Vo]=a[Vo]||[]).unshift(Ee(t)),i)throw a;return ny(a,t,"R3InjectorError",this.source)}else throw a}finally{be(s),bt(i)}}resolveInjectorInitializers(){let t=F(null),n=bt(this),r=be(void 0),o;try{let i=this.get(yr,De,k.Self);for(let s of i)s()}finally{bt(n),be(r),F(t)}}toString(){let t=[],n=this.records;for(let r of n.keys())t.push(Ee(r));return`R3Injector[${t.join(", ")}]`}processProvider(t){t=ve(t);let n=kn(t)?t:ve(t&&t.provide),r=yy(t);if(!kn(t)&&t.multi===!0){let o=this.records.get(n);o||(o=Nn(void 0,Ro,!0),o.factory=()=>ca(o.multi),this.records.set(n,o)),n=t,o.multi.push(t)}this.records.set(n,r)}hydrate(t,n){let r=F(null);try{return n.value===Ro&&(n.value=gy,n.value=n.factory()),typeof n.value=="object"&&n.value&&Dy(n.value)&&this._ngOnDestroyHooks.add(n.value),n.value}finally{F(r)}}injectableDefInScope(t){if(!t.providedIn)return!1;let n=ve(t.providedIn);return typeof n=="string"?n==="any"||this.scopes.has(n):this.injectorDefTypes.has(n)}removeOnDestroy(t){let n=this._onDestroyHooks.indexOf(t);n!==-1&&this._onDestroyHooks.splice(n,1)}};function la(e){let t=yi(e),n=t!==null?t.factory:Jt(e);if(n!==null)return n;if(e instanceof T)throw new b(204,!1);if(e instanceof Function)return my(e);throw new b(204,!1)}function my(e){if(e.length>0)throw new b(204,!1);let n=Hm(e);return n!==null?()=>n.factory(e):()=>new e}function yy(e){if(Jd(e))return Nn(void 0,e.useValue);{let t=Xd(e);return Nn(t,Ro)}}function Xd(e,t,n){let r;if(kn(e)){let o=ve(e);return Jt(o)||la(o)}else if(Jd(e))r=()=>ve(e.useValue);else if(hy(e))r=()=>e.useFactory(...ca(e.deps||[]));else if(fy(e))r=()=>_(ve(e.useExisting));else{let o=ve(e&&(e.useClass||e.provide));if(vy(e))r=()=>new o(...ca(e.deps));else return Jt(o)||la(o)}return r}function fr(e){if(e.destroyed)throw new b(205,!1)}function Nn(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function vy(e){return!!e.deps}function Dy(e){return e!==null&&typeof e=="object"&&typeof e.ngOnDestroy=="function"}function Ey(e){return typeof e=="function"||typeof e=="object"&&e instanceof T}function da(e,t){for(let n of e)Array.isArray(n)?da(n,t):n&&Vd(n)?da(n.\u0275providers,t):t(n)}function Ii(e,t){e instanceof vr&&fr(e);let n,r=bt(e),o=be(void 0);try{return t()}finally{bt(r),be(o)}}function ef(){return Bd()!==void 0||Xm()!=null}function bi(e){if(!ef())throw new b(-203,!1)}function wy(e){let t=ce.ng;if(t&&t.\u0275compilerFacade)return t.\u0275compilerFacade;throw new Error("JIT compiler unavailable")}function Iy(e){return typeof e=="function"}var it=0,x=1,I=2,ge=3,Ge=4,Ce=5,Ln=6,Uo=7,he=8,jn=9,lt=10,W=11,Dr=12,zl=13,Gn=14,Ne=15,Xt=16,xn=17,dt=18,Ci=19,tf=20,Ct=21,Oo=22,en=23,Se=24,se=25,Ic=1;var tn=7,$o=8,Vn=9,pe=10,zo=function(e){return e[e.None=0]="None",e[e.HasTransplantedViews=2]="HasTransplantedViews",e}(zo||{});function Mt(e){return Array.isArray(e)&&typeof e[Ic]=="object"}function pt(e){return Array.isArray(e)&&e[Ic]===!0}function bc(e){return(e.flags&4)!==0}function Mi(e){return e.componentOffset>-1}function _i(e){return(e.flags&1)===1}function ft(e){return!!e.template}function fa(e){return(e[I]&512)!==0}var ha=class{previousValue;currentValue;firstChange;constructor(t,n,r){this.previousValue=t,this.currentValue=n,this.firstChange=r}isFirstChange(){return this.firstChange}};function nf(e,t,n,r){t!==null?t.applyValueToInputSignal(t,r):e[n]=r}var rf=(()=>{let e=()=>of;return e.ngInherit=!0,e})();function of(e){return e.type.prototype.ngOnChanges&&(e.setInput=Cy),by}function by(){let e=af(this),t=e?.current;if(t){let n=e.previous;if(n===Pn)e.previous=t;else for(let r in t)n[r]=t[r];e.current=null,this.ngOnChanges(t)}}function Cy(e,t,n,r,o){let i=this.declaredInputs[r],s=af(e)||My(e,{previous:Pn,current:null}),a=s.current||(s.current={}),c=s.previous,u=c[i];a[i]=new ha(u&&u.currentValue,n,c===Pn),nf(e,t,o,n)}var sf="__ngSimpleChanges__";function af(e){return e[sf]||null}function My(e,t){return e[sf]=t}var Gl=null;var Ke=function(e,t,n){Gl?.(e,t,n)},cf="svg",_y="math";function tt(e){for(;Array.isArray(e);)e=e[it];return e}function Ty(e){for(;Array.isArray(e);){if(typeof e[Ic]=="object")return e;e=e[it]}return null}function uf(e,t){return tt(t[e])}function Pe(e,t){return tt(t[e.index])}function Cc(e,t){return e.data[t]}function Mc(e,t){return e[t]}function At(e,t){let n=t[e];return Mt(n)?n:n[it]}function Sy(e){return(e[I]&4)===4}function _c(e){return(e[I]&128)===128}function Ny(e){return pt(e[ge])}function _t(e,t){return t==null?null:e[t]}function lf(e){e[xn]=0}function Tc(e){e[I]&1024||(e[I]|=1024,_c(e)&&_r(e))}function xy(e,t){for(;e>0;)t=t[Gn],e--;return t}function Ti(e){return!!(e[I]&9216||e[Se]?.dirty)}function pa(e){e[lt].changeDetectionScheduler?.notify(9),e[I]&64&&(e[I]|=1024),Ti(e)&&_r(e)}function _r(e){e[lt].changeDetectionScheduler?.notify(0);let t=nn(e);for(;t!==null&&!(t[I]&8192||(t[I]|=8192,!_c(t)));)t=nn(t)}function df(e,t){if((e[I]&256)===256)throw new b(911,!1);e[Ct]===null&&(e[Ct]=[]),e[Ct].push(t)}function Ay(e,t){if(e[Ct]===null)return;let n=e[Ct].indexOf(t);n!==-1&&e[Ct].splice(n,1)}function nn(e){let t=e[ge];return pt(t)?t[ge]:t}var A={lFrame:vf(null),bindingsEnabled:!0,skipHydrationRootTNode:null};var ga=!1;function Ry(){return A.lFrame.elementDepthCount}function Oy(){A.lFrame.elementDepthCount++}function Fy(){A.lFrame.elementDepthCount--}function ff(){return A.bindingsEnabled}function hf(){return A.skipHydrationRootTNode!==null}function Py(e){return A.skipHydrationRootTNode===e}function ky(){A.skipHydrationRootTNode=null}function C(){return A.lFrame.lView}function $(){return A.lFrame.tView}function GA(e){return A.lFrame.contextLView=e,e[he]}function WA(e){return A.lFrame.contextLView=null,e}function oe(){let e=pf();for(;e!==null&&e.type===64;)e=e.parent;return e}function pf(){return A.lFrame.currentTNode}function Ly(){let e=A.lFrame,t=e.currentTNode;return e.isParent?t:t.parent}function fn(e,t){let n=A.lFrame;n.currentTNode=e,n.isParent=t}function Sc(){return A.lFrame.isParent}function Nc(){A.lFrame.isParent=!1}function jy(){return A.lFrame.contextLView}function gf(){return ga}function Go(e){let t=ga;return ga=e,t}function Tr(){let e=A.lFrame,t=e.bindingRootIndex;return t===-1&&(t=e.bindingRootIndex=e.tView.bindingStartIndex),t}function Vy(){return A.lFrame.bindingIndex}function By(e){return A.lFrame.bindingIndex=e}function Rt(){return A.lFrame.bindingIndex++}function xc(e){let t=A.lFrame,n=t.bindingIndex;return t.bindingIndex=t.bindingIndex+e,n}function Hy(){return A.lFrame.inI18n}function Uy(e,t){let n=A.lFrame;n.bindingIndex=n.bindingRootIndex=e,ma(t)}function $y(){return A.lFrame.currentDirectiveIndex}function ma(e){A.lFrame.currentDirectiveIndex=e}function Ac(e){let t=A.lFrame.currentDirectiveIndex;return t===-1?null:e[t]}function Rc(){return A.lFrame.currentQueryIndex}function Si(e){A.lFrame.currentQueryIndex=e}function zy(e){let t=e[x];return t.type===2?t.declTNode:t.type===1?e[Ce]:null}function mf(e,t,n){if(n&k.SkipSelf){let o=t,i=e;for(;o=o.parent,o===null&&!(n&k.Host);)if(o=zy(i),o===null||(i=i[Gn],o.type&10))break;if(o===null)return!1;t=o,e=i}let r=A.lFrame=yf();return r.currentTNode=t,r.lView=e,!0}function Oc(e){let t=yf(),n=e[x];A.lFrame=t,t.currentTNode=n.firstChild,t.lView=e,t.tView=n,t.contextLView=e,t.bindingIndex=n.bindingStartIndex,t.inI18n=!1}function yf(){let e=A.lFrame,t=e===null?null:e.child;return t===null?vf(e):t}function vf(e){let t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return e!==null&&(e.child=t),t}function Df(){let e=A.lFrame;return A.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}var Ef=Df;function Fc(){let e=Df();e.isParent=!0,e.tView=null,e.selectedIndex=-1,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Gy(e){return(A.lFrame.contextLView=xy(e,A.lFrame.contextLView))[he]}function gt(){return A.lFrame.selectedIndex}function rn(e){A.lFrame.selectedIndex=e}function Wn(){let e=A.lFrame;return Cc(e.tView,e.selectedIndex)}function qA(){A.lFrame.currentNamespace=cf}function ZA(){Wy()}function Wy(){A.lFrame.currentNamespace=null}function qy(){return A.lFrame.currentNamespace}var wf=!0;function Ni(){return wf}function xi(e){wf=e}function Zy(e,t,n){let{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=t.type.prototype;if(r){let s=of(t);(n.preOrderHooks??=[]).push(e,s),(n.preOrderCheckHooks??=[]).push(e,s)}o&&(n.preOrderHooks??=[]).push(0-e,o),i&&((n.preOrderHooks??=[]).push(e,i),(n.preOrderCheckHooks??=[]).push(e,i))}function Ai(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n=r)break}else t[c]<0&&(e[xn]+=65536),(a>14>16&&(e[I]&3)===t&&(e[I]+=16384,Wl(a,i)):Wl(a,i)}var Fn=-1,on=class{factory;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(t,n,r){this.factory=t,this.canSeeViewProviders=n,this.injectImpl=r}};function Qy(e){return e instanceof on}function Ky(e){return(e.flags&8)!==0}function Jy(e){return(e.flags&16)!==0}function ya(e,t,n){let r=0;for(;rt){s=i-1;break}}}for(;i>16}function qo(e,t){let n=ev(e),r=t;for(;n>0;)r=r[Gn],n--;return r}var Da=!0;function Zo(e){let t=Da;return Da=e,t}var tv=256,Mf=tv-1,_f=5,nv=0,Je={};function rv(e,t,n){let r;typeof n=="string"?r=n.charCodeAt(0)||0:n.hasOwnProperty(pr)&&(r=n[pr]),r==null&&(r=n[pr]=nv++);let o=r&Mf,i=1<>_f)]|=i}function Yo(e,t){let n=Tf(e,t);if(n!==-1)return n;let r=t[x];r.firstCreatePass&&(e.injectorIndex=t.length,Qs(r.data,e),Qs(t,null),Qs(r.blueprint,null));let o=Pc(e,t),i=e.injectorIndex;if(Cf(o)){let s=Wo(o),a=qo(o,t),c=a[x].data;for(let u=0;u<8;u++)t[i+u]=a[s+u]|c[s+u]}return t[i+8]=o,i}function Qs(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Tf(e,t){return e.injectorIndex===-1||e.parent&&e.parent.injectorIndex===e.injectorIndex||t[e.injectorIndex+8]===null?-1:e.injectorIndex}function Pc(e,t){if(e.parent&&e.parent.injectorIndex!==-1)return e.parent.injectorIndex;let n=0,r=null,o=t;for(;o!==null;){if(r=Of(o),r===null)return Fn;if(n++,o=o[Gn],r.injectorIndex!==-1)return r.injectorIndex|n<<16}return Fn}function Ea(e,t,n){rv(e,t,n)}function ov(e,t){if(t==="class")return e.classes;if(t==="style")return e.styles;let n=e.attrs;if(n){let r=n.length,o=0;for(;o>20,d=r?a:a+l,h=o?a+l:u;for(let f=d;f=c&&p.type===n)return f}if(o){let f=s[c];if(f&&ft(f)&&f.type===n)return c}return null}function sn(e,t,n,r){let o=e[n],i=t.data;if(Qy(o)){let s=o;s.resolving&&Zm(qm(i[n]));let a=Zo(s.canSeeViewProviders);s.resolving=!0;let c,u=s.injectImpl?be(s.injectImpl):null,l=mf(e,r,k.Default);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&Zy(n,i[n],t)}finally{u!==null&&be(u),Zo(a),s.resolving=!1,Ef()}}return o}function sv(e){if(typeof e=="string")return e.charCodeAt(0)||0;let t=e.hasOwnProperty(pr)?e[pr]:void 0;return typeof t=="number"?t>=0?t&Mf:av:t}function Zl(e,t,n){let r=1<>_f)]&r)}function Yl(e,t){return!(e&k.Self)&&!(e&k.Host&&t)}var Qt=class{_tNode;_lView;constructor(t,n){this._tNode=t,this._lView=n}get(t,n,r){return xf(this._tNode,this._lView,t,vi(r),n)}};function av(){return new Qt(oe(),C())}function Rf(e){return Cr(()=>{let t=e.prototype.constructor,n=t[jo]||wa(t),r=Object.prototype,o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){let i=o[jo]||wa(o);if(i&&i!==n)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function wa(e){return kd(e)?()=>{let t=wa(ve(e));return t&&t()}:Jt(e)}function cv(e,t,n,r,o){let i=e,s=t;for(;i!==null&&s!==null&&s[I]&2048&&!(s[I]&512);){let a=Af(i,s,n,r|k.Self,Je);if(a!==Je)return a;let c=i.parent;if(!c){let u=s[tf];if(u){let l=u.get(n,Je,r);if(l!==Je)return l}c=Of(s),s=s[Gn]}i=c}return o}function Of(e){let t=e[x],n=t.type;return n===2?t.declTNode:n===1?e[Ce]:null}function Ff(e){return ov(oe(),e)}function Ql(e,t=null,n=null,r){let o=Pf(e,t,n,r);return o.resolveInjectorInitializers(),o}function Pf(e,t=null,n=null,r,o=new Set){let i=[n||De,ly(e)];return r=r||(typeof e=="object"?void 0:Ee(e)),new vr(i,t||wi(),r||null,o)}var Fe=class e{static THROW_IF_NOT_FOUND=mr;static NULL=new Ho;static create(t,n){if(Array.isArray(t))return Ql({name:""},n,t,"");{let r=t.name??"";return Ql({name:r},t.parent,t.providers,r)}}static \u0275prov=S({token:e,providedIn:"any",factory:()=>_(Gd)});static __NG_ELEMENT_ID__=-1};var Kl=class{attributeName;constructor(t){this.attributeName=t}__NG_ELEMENT_ID__=()=>Ff(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}},uv=new T("");uv.__NG_ELEMENT_ID__=e=>{let t=oe();if(t===null)throw new b(204,!1);if(t.type&2)return t.value;if(e&k.Optional)return null;throw new b(204,!1)};var kf=!1,Sr=(()=>{class e{static __NG_ELEMENT_ID__=lv;static __NG_ENV_ID__=n=>n}return e})(),Qo=class extends Sr{_lView;constructor(t){super(),this._lView=t}onDestroy(t){return df(this._lView,t),()=>Ay(this._lView,t)}};function lv(){return new Qo(C())}var an=class{},kc=new T("",{providedIn:"root",factory:()=>!1});var Lf=new T(""),jf=new T(""),Ot=(()=>{class e{taskId=0;pendingTasks=new Set;get _hasPendingTasks(){return this.hasPendingTasks.value}hasPendingTasks=new Gt(!1);add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);let n=this.taskId++;return this.pendingTasks.add(n),n}has(n){return this.pendingTasks.has(n)}remove(n){this.pendingTasks.delete(n),this.pendingTasks.size===0&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static \u0275prov=S({token:e,providedIn:"root",factory:()=>new e})}return e})();var Ia=class extends Ie{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(t=!1){super(),this.__isAsync=t,ef()&&(this.destroyRef=m(Sr,{optional:!0})??void 0,this.pendingTasks=m(Ot,{optional:!0})??void 0)}emit(t){let n=F(null);try{super.next(t)}finally{F(n)}}subscribe(t,n,r){let o=t,i=n||(()=>null),s=r;if(t&&typeof t=="object"){let c=t;o=c.next?.bind(c),i=c.error?.bind(c),s=c.complete?.bind(c)}this.__isAsync&&(i=this.wrapInTimeout(i),o&&(o=this.wrapInTimeout(o)),s&&(s=this.wrapInTimeout(s)));let a=super.subscribe({next:o,error:i,complete:s});return t instanceof J&&t.add(a),a}wrapInTimeout(t){return n=>{let r=this.pendingTasks?.add();setTimeout(()=>{t(n),r!==void 0&&this.pendingTasks?.remove(r)})}}},Xe=Ia;function wr(...e){}function Vf(e){let t,n;function r(){e=wr;try{n!==void 0&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(n),t!==void 0&&clearTimeout(t)}catch{}}return t=setTimeout(()=>{e(),r()}),typeof requestAnimationFrame=="function"&&(n=requestAnimationFrame(()=>{e(),r()})),()=>r()}function Jl(e){return queueMicrotask(()=>e()),()=>{e=wr}}var Lc="isAngularZone",Ko=Lc+"_ID",dv=0,G=class e{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new Xe(!1);onMicrotaskEmpty=new Xe(!1);onStable=new Xe(!1);onError=new Xe(!1);constructor(t){let{enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:r=!1,shouldCoalesceRunChangeDetection:o=!1,scheduleInRootZone:i=kf}=t;if(typeof Zone>"u")throw new b(908,!1);Zone.assertZonePatched();let s=this;s._nesting=0,s._outer=s._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(s._inner=s._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(s._inner=s._inner.fork(Zone.longStackTraceZoneSpec)),s.shouldCoalesceEventChangeDetection=!o&&r,s.shouldCoalesceRunChangeDetection=o,s.callbackScheduled=!1,s.scheduleInRootZone=i,pv(s)}static isInAngularZone(){return typeof Zone<"u"&&Zone.current.get(Lc)===!0}static assertInAngularZone(){if(!e.isInAngularZone())throw new b(909,!1)}static assertNotInAngularZone(){if(e.isInAngularZone())throw new b(909,!1)}run(t,n,r){return this._inner.run(t,n,r)}runTask(t,n,r,o){let i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,t,fv,wr,wr);try{return i.runTask(s,n,r)}finally{i.cancelTask(s)}}runGuarded(t,n,r){return this._inner.runGuarded(t,n,r)}runOutsideAngular(t){return this._outer.run(t)}},fv={};function jc(e){if(e._nesting==0&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function hv(e){if(e.isCheckStableRunning||e.callbackScheduled)return;e.callbackScheduled=!0;function t(){Vf(()=>{e.callbackScheduled=!1,ba(e),e.isCheckStableRunning=!0,jc(e),e.isCheckStableRunning=!1})}e.scheduleInRootZone?Zone.root.run(()=>{t()}):e._outer.run(()=>{t()}),ba(e)}function pv(e){let t=()=>{hv(e)},n=dv++;e._inner=e._inner.fork({name:"angular",properties:{[Lc]:!0,[Ko]:n,[Ko+n]:!0},onInvokeTask:(r,o,i,s,a,c)=>{if(gv(c))return r.invokeTask(i,s,a,c);try{return Xl(e),r.invokeTask(i,s,a,c)}finally{(e.shouldCoalesceEventChangeDetection&&s.type==="eventTask"||e.shouldCoalesceRunChangeDetection)&&t(),ed(e)}},onInvoke:(r,o,i,s,a,c,u)=>{try{return Xl(e),r.invoke(i,s,a,c,u)}finally{e.shouldCoalesceRunChangeDetection&&!e.callbackScheduled&&!mv(c)&&t(),ed(e)}},onHasTask:(r,o,i,s)=>{r.hasTask(i,s),o===i&&(s.change=="microTask"?(e._hasPendingMicrotasks=s.microTask,ba(e),jc(e)):s.change=="macroTask"&&(e.hasPendingMacrotasks=s.macroTask))},onHandleError:(r,o,i,s)=>(r.handleError(i,s),e.runOutsideAngular(()=>e.onError.emit(s)),!1)})}function ba(e){e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&e.callbackScheduled===!0?e.hasPendingMicrotasks=!0:e.hasPendingMicrotasks=!1}function Xl(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function ed(e){e._nesting--,jc(e)}var Jo=class{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new Xe;onMicrotaskEmpty=new Xe;onStable=new Xe;onError=new Xe;run(t,n,r){return t.apply(n,r)}runGuarded(t,n,r){return t.apply(n,r)}runOutsideAngular(t){return t()}runTask(t,n,r,o){return t.apply(n,r)}};function gv(e){return Bf(e,"__ignore_ng_zone__")}function mv(e){return Bf(e,"__scheduler_tick__")}function Bf(e,t){return!Array.isArray(e)||e.length!==1?!1:e[0]?.data?.[t]===!0}function yv(e="zone.js",t){return e==="noop"?new Jo:e==="zone.js"?new G(t):e}var nt=class{_console=console;handleError(t){this._console.error("ERROR",t)}},vv=new T("",{providedIn:"root",factory:()=>{let e=m(G),t=m(nt);return n=>e.runOutsideAngular(()=>t.handleError(n))}});function td(e,t){return Od(e,t)}function Dv(e){return Od(Rd,e)}var Hf=(td.required=Dv,td);function Ev(){return qn(oe(),C())}function qn(e,t){return new ke(Pe(e,t))}var ke=(()=>{class e{nativeElement;constructor(n){this.nativeElement=n}static __NG_ELEMENT_ID__=Ev}return e})();function Uf(e){return e instanceof ke?e.nativeElement:e}function wv(){return this._results[Symbol.iterator]()}var Ca=class{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new Ie}constructor(t=!1){this._emitDistinctChangesOnly=t}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,n){return this._results.reduce(t,n)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,n){this.dirty=!1;let r=iy(t);(this._changesDetected=!oy(this._results,r,n))&&(this._results=r,this.length=r.length,this.last=r[this.length-1],this.first=r[0])}notifyOnChanges(){this._changes!==void 0&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.next(this)}onDirty(t){this._onDirty=t}setDirty(){this.dirty=!0,this._onDirty?.()}destroy(){this._changes!==void 0&&(this._changes.complete(),this._changes.unsubscribe())}[Symbol.iterator]=wv};function $f(e){return(e.flags&128)===128}var zf=function(e){return e[e.OnPush=0]="OnPush",e[e.Default=1]="Default",e}(zf||{}),Gf=new Map,Iv=0;function bv(){return Iv++}function Cv(e){Gf.set(e[Ci],e)}function Ma(e){Gf.delete(e[Ci])}var nd="__ngContext__";function Tt(e,t){Mt(t)?(e[nd]=t[Ci],Cv(t)):e[nd]=t}function Wf(e){return Zf(e[Dr])}function qf(e){return Zf(e[Ge])}function Zf(e){for(;e!==null&&!pt(e);)e=e[Ge];return e}var _a;function Yf(e){_a=e}function Qf(){if(_a!==void 0)return _a;if(typeof document<"u")return document;throw new b(210,!1)}var Vc=new T("",{providedIn:"root",factory:()=>Mv}),Mv="ng",Bc=new T(""),Me=new T("",{providedIn:"platform",factory:()=>"unknown"});var YA=new T(""),Hc=new T("",{providedIn:"root",factory:()=>Qf().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});var _v="h",Tv="b";var Kf=!1,Sv=new T("",{providedIn:"root",factory:()=>Kf});var rd=new Set;function We(e){rd.has(e)||(rd.add(e),performance?.mark?.("mark_feature_usage",{detail:{feature:e}}))}var An=function(e){return e[e.EarlyRead=0]="EarlyRead",e[e.Write=1]="Write",e[e.MixedReadWrite=2]="MixedReadWrite",e[e.Read=3]="Read",e}(An||{}),Jf=(()=>{class e{impl=null;execute(){this.impl?.execute()}static \u0275prov=S({token:e,providedIn:"root",factory:()=>new e})}return e})(),Nv=[An.EarlyRead,An.Write,An.MixedReadWrite,An.Read],xv=(()=>{class e{ngZone=m(G);scheduler=m(an);errorHandler=m(nt,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;execute(){this.executing=!0;for(let n of Nv)for(let r of this.sequences)if(!(r.erroredOrDestroyed||!r.hooks[n]))try{r.pipelinedValue=this.ngZone.runOutsideAngular(()=>r.hooks[n](r.pipelinedValue))}catch(o){r.erroredOrDestroyed=!0,this.errorHandler?.handleError(o)}this.executing=!1;for(let n of this.sequences)n.afterRun(),n.once&&(this.sequences.delete(n),n.destroy());for(let n of this.deferredRegistrations)this.sequences.add(n);this.deferredRegistrations.size>0&&this.scheduler.notify(8),this.deferredRegistrations.clear()}register(n){this.executing?this.deferredRegistrations.add(n):(this.sequences.add(n),this.scheduler.notify(7))}unregister(n){this.executing&&this.sequences.has(n)?(n.erroredOrDestroyed=!0,n.pipelinedValue=void 0,n.once=!0):(this.sequences.delete(n),this.deferredRegistrations.delete(n))}static \u0275prov=S({token:e,providedIn:"root",factory:()=>new e})}return e})(),Ta=class{impl;hooks;once;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(t,n,r,o){this.impl=t,this.hooks=n,this.once=r,this.unregisterOnDestroy=o?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.()}};function Av(e,t){!t?.injector&&bi(Av);let n=t?.injector??m(Fe);return We("NgAfterRender"),Xf(e,n,t,!1)}function Rv(e,t){!t?.injector&&bi(Rv);let n=t?.injector??m(Fe);return We("NgAfterNextRender"),Xf(e,n,t,!0)}function Ov(e,t){if(e instanceof Function){let n=[void 0,void 0,void 0,void 0];return n[t]=e,n}else return[e.earlyRead,e.write,e.mixedReadWrite,e.read]}function Xf(e,t,n,r){let o=t.get(Jf);o.impl??=t.get(xv);let i=n?.phase??An.MixedReadWrite,s=n?.manualCleanup!==!0?t.get(Sr):null,a=new Ta(o.impl,Ov(e,i),r,s);return o.impl.register(a),a}var Fv=()=>null;function Uc(e,t,n=!1){return Fv(e,t,n)}var rt=function(e){return e[e.Emulated=0]="Emulated",e[e.None=2]="None",e[e.ShadowDom=3]="ShadowDom",e}(rt||{}),Mo;function Pv(){if(Mo===void 0&&(Mo=null,ce.trustedTypes))try{Mo=ce.trustedTypes.createPolicy("angular",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch{}return Mo}function Ri(e){return Pv()?.createHTML(e)||e}var _o;function eh(){if(_o===void 0&&(_o=null,ce.trustedTypes))try{_o=ce.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch{}return _o}function od(e){return eh()?.createHTML(e)||e}function id(e){return eh()?.createScriptURL(e)||e}var ht=class{changingThisBreaksApplicationSecurity;constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Ad})`}},Sa=class extends ht{getTypeName(){return"HTML"}},Na=class extends ht{getTypeName(){return"Style"}},xa=class extends ht{getTypeName(){return"Script"}},Aa=class extends ht{getTypeName(){return"URL"}},Ra=class extends ht{getTypeName(){return"ResourceURL"}};function Le(e){return e instanceof ht?e.changingThisBreaksApplicationSecurity:e}function mt(e,t){let n=kv(e);if(n!=null&&n!==t){if(n==="ResourceURL"&&t==="URL")return!0;throw new Error(`Required a safe ${t}, got a ${n} (see ${Ad})`)}return n===t}function kv(e){return e instanceof ht&&e.getTypeName()||null}function th(e){return new Sa(e)}function nh(e){return new Na(e)}function rh(e){return new xa(e)}function oh(e){return new Aa(e)}function ih(e){return new Ra(e)}function Lv(e){let t=new Fa(e);return jv()?new Oa(t):t}var Oa=class{inertDocumentHelper;constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t=""+t;try{let n=new window.DOMParser().parseFromString(Ri(t),"text/html").body;return n===null?this.inertDocumentHelper.getInertBodyElement(t):(n.firstChild?.remove(),n)}catch{return null}}},Fa=class{defaultDoc;inertDocument;constructor(t){this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(t){let n=this.inertDocument.createElement("template");return n.innerHTML=Ri(t),n}};function jv(){try{return!!new window.DOMParser().parseFromString(Ri(""),"text/html")}catch{return!1}}var Vv=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function Oi(e){return e=String(e),e.match(Vv)?e:"unsafe:"+e}function yt(e){let t={};for(let n of e.split(","))t[n]=!0;return t}function Nr(...e){let t={};for(let n of e)for(let r in n)n.hasOwnProperty(r)&&(t[r]=!0);return t}var sh=yt("area,br,col,hr,img,wbr"),ah=yt("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),ch=yt("rp,rt"),Bv=Nr(ch,ah),Hv=Nr(ah,yt("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Uv=Nr(ch,yt("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),sd=Nr(sh,Hv,Uv,Bv),uh=yt("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),$v=yt("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),zv=yt("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext"),Gv=Nr(uh,$v,zv),Wv=yt("script,style,template"),Pa=class{sanitizedSomething=!1;buf=[];sanitizeChildren(t){let n=t.firstChild,r=!0,o=[];for(;n;){if(n.nodeType===Node.ELEMENT_NODE?r=this.startElement(n):n.nodeType===Node.TEXT_NODE?this.chars(n.nodeValue):this.sanitizedSomething=!0,r&&n.firstChild){o.push(n),n=Yv(n);continue}for(;n;){n.nodeType===Node.ELEMENT_NODE&&this.endElement(n);let i=Zv(n);if(i){n=i;break}n=o.pop()}}return this.buf.join("")}startElement(t){let n=ad(t).toLowerCase();if(!sd.hasOwnProperty(n))return this.sanitizedSomething=!0,!Wv.hasOwnProperty(n);this.buf.push("<"),this.buf.push(n);let r=t.attributes;for(let o=0;o"),!0}endElement(t){let n=ad(t).toLowerCase();sd.hasOwnProperty(n)&&!sh.hasOwnProperty(n)&&(this.buf.push(""))}chars(t){this.buf.push(cd(t))}};function qv(e,t){return(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}function Zv(e){let t=e.nextSibling;if(t&&e!==t.previousSibling)throw lh(t);return t}function Yv(e){let t=e.firstChild;if(t&&qv(e,t))throw lh(t);return t}function ad(e){let t=e.nodeName;return typeof t=="string"?t:"FORM"}function lh(e){return new Error(`Failed to sanitize html because the element is clobbered: ${e.outerHTML}`)}var Qv=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Kv=/([^\#-~ |!])/g;function cd(e){return e.replace(/&/g,"&").replace(Qv,function(t){let n=t.charCodeAt(0),r=t.charCodeAt(1);return"&#"+((n-55296)*1024+(r-56320)+65536)+";"}).replace(Kv,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(//g,">")}var To;function $c(e,t){let n=null;try{To=To||Lv(e);let r=t?String(t):"";n=To.getInertBodyElement(r);let o=5,i=r;do{if(o===0)throw new Error("Failed to sanitize html because the input is unstable");o--,r=i,i=n.innerHTML,n=To.getInertBodyElement(r)}while(r!==i);let a=new Pa().sanitizeChildren(ud(n)||n);return Ri(a)}finally{if(n){let r=ud(n)||n;for(;r.firstChild;)r.firstChild.remove()}}}function ud(e){return"content"in e&&Jv(e)?e.content:null}function Jv(e){return e.nodeType===Node.ELEMENT_NODE&&e.nodeName==="TEMPLATE"}var Ae=function(e){return e[e.NONE=0]="NONE",e[e.HTML=1]="HTML",e[e.STYLE=2]="STYLE",e[e.SCRIPT=3]="SCRIPT",e[e.URL=4]="URL",e[e.RESOURCE_URL=5]="RESOURCE_URL",e}(Ae||{});function QA(e){let t=zc();return t?od(t.sanitize(Ae.HTML,e)||""):mt(e,"HTML")?od(Le(e)):$c(Qf(),Kt(e))}function Xv(e){let t=zc();return t?t.sanitize(Ae.URL,e)||"":mt(e,"URL")?Le(e):Oi(Kt(e))}function eD(e){let t=zc();if(t)return id(t.sanitize(Ae.RESOURCE_URL,e)||"");if(mt(e,"ResourceURL"))return id(Le(e));throw new b(904,!1)}function tD(e,t){return t==="src"&&(e==="embed"||e==="frame"||e==="iframe"||e==="media"||e==="script")||t==="href"&&(e==="base"||e==="link")?eD:Xv}function KA(e,t,n){return tD(t,n)(e)}function zc(){let e=C();return e&&e[lt].sanitizer}var nD=/^>|^->||--!>|)/g,oD="\u200B$1\u200B";function iD(e){return e.replace(nD,t=>t.replace(rD,oD))}function dh(e){return e instanceof Function?e():e}var St=function(e){return e[e.None=0]="None",e[e.SignalBased=1]="SignalBased",e[e.HasDecoratorInputTransform=2]="HasDecoratorInputTransform",e}(St||{}),ot=function(e){return e[e.Important=1]="Important",e[e.DashCase=2]="DashCase",e}(ot||{}),sD;function Gc(e,t){return sD(e,t)}function Rn(e,t,n,r,o){if(r!=null){let i,s=!1;pt(r)?i=r:Mt(r)&&(s=!0,r=r[it]);let a=tt(r);e===0&&n!==null?o==null?mh(t,n,a):Xo(t,n,a,o||null,!0):e===1&&n!==null?Xo(t,n,a,o||null,!0):e===2?ED(t,a,s):e===3&&t.destroyNode(a),i!=null&&ID(t,e,i,n,o)}}function aD(e,t){return e.createText(t)}function cD(e,t,n){e.setValue(t,n)}function uD(e,t){return e.createComment(iD(t))}function fh(e,t,n){return e.createElement(t,n)}function lD(e,t){hh(e,t),t[it]=null,t[Ce]=null}function dD(e,t,n,r,o,i){r[it]=o,r[Ce]=t,ki(e,r,n,1,o,i)}function hh(e,t){t[lt].changeDetectionScheduler?.notify(10),ki(e,t,t[W],2,null,null)}function fD(e){let t=e[Dr];if(!t)return Ks(e[x],e);for(;t;){let n=null;if(Mt(t))n=t[Dr];else{let r=t[pe];r&&(n=r)}if(!n){for(;t&&!t[Ge]&&t!==e;)Mt(t)&&Ks(t[x],t),t=t[ge];t===null&&(t=e),Mt(t)&&Ks(t[x],t),n=t&&t[Ge]}t=n}}function hD(e,t,n,r){let o=pe+r,i=n.length;r>0&&(n[o-1][Ge]=t),r0&&(e[n-1][Ge]=r[Ge]);let i=Bo(e,pe+t);lD(r[x],r);let s=i[dt];s!==null&&s.detachView(i[x]),r[ge]=null,r[Ge]=null,r[I]&=-129}return r}function Fi(e,t){if(!(t[I]&256)){let n=t[W];n.destroyNode&&ki(e,t,n,3,null,null),fD(t)}}function Ks(e,t){if(t[I]&256)return;let n=F(null);try{t[I]&=-129,t[I]|=256,t[Se]&&Dn(t[Se]),gD(e,t),pD(e,t),t[x].type===1&&t[W].destroy();let r=t[Xt];if(r!==null&&pt(t[ge])){r!==t[ge]&&Wc(r,t);let o=t[dt];o!==null&&o.detachView(e)}Ma(t)}finally{F(n)}}function pD(e,t){let n=e.cleanup,r=t[Uo];if(n!==null)for(let s=0;s=0?r[a]():r[-a].unsubscribe(),s+=2}else{let a=r[n[s+1]];n[s].call(a)}r!==null&&(t[Uo]=null);let o=t[Ct];if(o!==null){t[Ct]=null;for(let s=0;s-1){let{encapsulation:i}=e.data[r.directiveStart+o];if(i===rt.None||i===rt.Emulated)return null}return Pe(r,n)}}function Xo(e,t,n,r,o){e.insertBefore(t,n,r,o)}function mh(e,t,n){e.appendChild(t,n)}function ld(e,t,n,r,o){r!==null?Xo(e,t,n,r,o):mh(e,t,n)}function yh(e,t){return e.parentNode(t)}function yD(e,t){return e.nextSibling(t)}function vh(e,t,n){return DD(e,t,n)}function vD(e,t,n){return e.type&40?Pe(e,n):null}var DD=vD,dd;function Pi(e,t,n,r){let o=gh(e,r,t),i=t[W],s=r.parent||t[Ce],a=vh(s,r,t);if(o!=null)if(Array.isArray(n))for(let c=0;c-1){let i;for(;++oi?d="":d=o[l+1].toLowerCase(),r&2&&u!==d){if($e(r))return!1;s=!0}}}}return $e(r)||s}function $e(e){return(e&1)===0}function ND(e,t,n,r){if(t===null)return-1;let o=0;if(r||!n){let i=!1;for(;o-1)for(n++;n0?'="'+a+'"':"")+"]"}else r&8?o+="."+s:r&4&&(o+=" "+s);else o!==""&&!$e(s)&&(t+=fd(i,o),o=""),r=s,i=i||!$e(r);n++}return o!==""&&(t+=fd(i,o)),t}function PD(e){return e.map(FD).join(",")}function kD(e){let t=[],n=[],r=1,o=2;for(;rse&&Mh(e,t,se,!1),Ke(s?2:0,o),n(r,o)}finally{rn(i),Ke(s?3:1,o)}}function Yc(e,t,n){if(bc(t)){let r=F(null);try{let o=t.directiveStart,i=t.directiveEnd;for(let s=o;snull;function $D(e,t,n,r){let o=Ph(t);o.push(n),e.firstCreatePass&&kh(e).push(r,o.length-1)}function zD(e,t,n,r,o,i){let s=t?t.injectorIndex:-1,a=0;return hf()&&(a|=128),{type:n,index:r,insertBeforeIndex:null,injectorIndex:s,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:a,providerIndexes:0,value:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function hd(e,t,n,r,o){for(let i in t){if(!t.hasOwnProperty(i))continue;let s=t[i];if(s===void 0)continue;r??={};let a,c=St.None;Array.isArray(s)?(a=s[0],c=s[1]):a=s;let u=i;if(o!==null){if(!o.hasOwnProperty(i))continue;u=o[i]}e===0?pd(r,n,u,a,c):pd(r,n,u,a)}return r}function pd(e,t,n,r,o){let i;e.hasOwnProperty(n)?(i=e[n]).push(t,r):i=e[n]=[t,r],o!==void 0&&i.push(o)}function GD(e,t,n){let r=t.directiveStart,o=t.directiveEnd,i=e.data,s=t.attrs,a=[],c=null,u=null;for(let l=r;l0;){let n=e[--t];if(typeof n=="number"&&n<0)return n}return 0}function QD(e,t,n,r){let o=n.directiveStart,i=n.directiveEnd;Mi(n)&&rE(t,n,e.data[o+n.componentOffset]),e.firstCreatePass||Yo(n,t),Tt(r,t);let s=n.initialInputs;for(let a=o;a{_r(e.lView)},consumerOnSignalRead(){this.lView[Se]=this}});function mE(e){let t=e[Se]??Object.create(yE);return t.lView=e,t}var yE=ae(Q({},Bt),{consumerIsAlwaysLive:!0,consumerMarkedDirty:e=>{let t=nn(e.lView);for(;t&&!$h(t[x]);)t=nn(t);t&&Tc(t)},consumerOnSignalRead(){this.lView[Se]=this}});function $h(e){return e.type!==2}function zh(e){if(e[en]===null)return;let t=!0;for(;t;){let n=!1;for(let r of e[en])r.dirty&&(n=!0,r.zone===null||Zone.current===r.zone?r.run():r.zone.run(()=>r.run()));t=n&&!!(e[I]&8192)}}var vE=100;function Gh(e,t=!0,n=0){let o=e[lt].rendererFactory,i=!1;i||o.begin?.();try{DE(e,n)}catch(s){throw t&&jh(e,s),s}finally{i||o.end?.()}}function DE(e,t){let n=gf();try{Go(!0),Va(e,t);let r=0;for(;Ti(e);){if(r===vE)throw new b(103,!1);r++,Va(e,1)}}finally{Go(n)}}function EE(e,t,n,r){let o=t[I];if((o&256)===256)return;let i=!1,s=!1;Oc(t);let a=!0,c=null,u=null;i||($h(e)?(u=fE(t),c=vn(u)):Ku()===null?(a=!1,u=mE(t),c=vn(u)):t[Se]&&(Dn(t[Se]),t[Se]=null));try{lf(t),By(e.bindingStartIndex),n!==null&&Sh(e,t,n,2,r);let l=(o&3)===3;if(!i)if(l){let f=e.preOrderCheckHooks;f!==null&&Fo(t,f,null)}else{let f=e.preOrderHooks;f!==null&&Po(t,f,0,null),Zs(t,0)}if(s||wE(t),zh(t),Wh(t,0),e.contentQueries!==null&&Fh(e,t),!i)if(l){let f=e.contentCheckHooks;f!==null&&Fo(t,f)}else{let f=e.contentHooks;f!==null&&Po(t,f,1),Zs(t,1)}LD(e,t);let d=e.components;d!==null&&Zh(t,d,0);let h=e.viewQuery;if(h!==null&&ja(2,h,r),!i)if(l){let f=e.viewCheckHooks;f!==null&&Fo(t,f)}else{let f=e.viewHooks;f!==null&&Po(t,f,2),Zs(t,2)}if(e.firstUpdatePass===!0&&(e.firstUpdatePass=!1),t[Oo]){for(let f of t[Oo])f();t[Oo]=null}i||(t[I]&=-73)}catch(l){throw i||_r(t),l}finally{u!==null&&(rr(u,c),a&&pE(u)),Fc()}}function Wh(e,t){for(let n=Wf(e);n!==null;n=qf(n))for(let r=pe;r-1&&(Ir(t,r),Bo(n,r))}this._attachedToViewContainer=!1}Fi(this._lView[x],this._lView)}onDestroy(t){df(this._lView,t)}markForCheck(){nu(this._cdRefInjectingView||this._lView,4)}markForRefresh(){Tc(this._cdRefInjectingView||this._lView)}detach(){this._lView[I]&=-129}reattach(){pa(this._lView),this._lView[I]|=128}detectChanges(){this._lView[I]|=1024,Gh(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new b(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;let t=fa(this._lView),n=this._lView[Xt];n!==null&&!t&&Wc(n,this._lView),hh(this._lView[x],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new b(902,!1);this._appRef=t;let n=fa(this._lView),r=this._lView[Xt];r!==null&&!n&&ph(r,this._lView),pa(this._lView)}},un=(()=>{class e{static __NG_ELEMENT_ID__=ME}return e})(),bE=un,CE=class extends bE{_declarationLView;_declarationTContainer;elementRef;constructor(t,n,r){super(),this._declarationLView=t,this._declarationTContainer=n,this.elementRef=r}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(t,n){return this.createEmbeddedViewImpl(t,n)}createEmbeddedViewImpl(t,n,r){let o=Ar(this._declarationLView,this._declarationTContainer,t,{embeddedViewInjector:n,dehydratedView:r});return new cn(o)}};function ME(){return Vi(oe(),C())}function Vi(e,t){return e.type&4?new CE(t,e,qn(e,t)):null}var Ba=class{resolveComponentFactory(t){throw Error(`No component factory found for ${Ee(t)}.`)}},Hn=class{static NULL=new Ba},Nt=class{},Ha=class{},Ua=class{},ti=class{},Un=class{},Bi=(()=>{class e{destroyNode=null;static __NG_ELEMENT_ID__=()=>_E()}return e})();function _E(){let e=C(),t=oe(),n=At(t.index,e);return(Mt(n)?n:e)[W]}var TE=(()=>{class e{static \u0275prov=S({token:e,providedIn:"root",factory:()=>null})}return e})();function ni(e,t,n){let r=n?e.styles:null,o=n?e.classes:null,i=0;if(t!==null)for(let s=0;s0&&wh(e,n,i.join(" "))}}function FE(e,t,n){let r=e.projection=[];for(let o=0;on()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}},ii=class extends Ha{moduleType;constructor(t){super(),this.moduleType=t}create(t){return new oi(this.moduleType,t,[])}};function kE(e,t,n){return new oi(e,t,n,!1)}var za=class extends Nt{injector;componentFactoryResolver=new ri(this);instance=null;constructor(t){super();let n=new vr([...t.providers,{provide:Nt,useValue:this},{provide:Hn,useValue:this.componentFactoryResolver}],t.parent||wi(),t.debugName,new Set(["environment"]));this.injector=n,t.runEnvironmentInitializers&&n.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}};function LE(e,t,n=null){return new za({providers:e,parent:t,debugName:n,runEnvironmentInitializers:!0}).injector}var jE=(()=>{class e{_injector;cachedInjectors=new Map;constructor(n){this._injector=n}getOrCreateStandaloneInjector(n){if(!n.standalone)return null;if(!this.cachedInjectors.has(n)){let r=Qd(!1,n.type),o=r.length>0?LE([r],this._injector,`Standalone[${n.type.name}]`):null;this.cachedInjectors.set(n,o)}return this.cachedInjectors.get(n)}ngOnDestroy(){try{for(let n of this.cachedInjectors.values())n!==null&&n.destroy()}finally{this.cachedInjectors.clear()}}static \u0275prov=S({token:e,providedIn:"environment",factory:()=>new e(_(et))})}return e})();function tR(e){return Cr(()=>{let t=Yh(e),n=ae(Q({},t),{decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection===zf.OnPush,directiveDefs:null,pipeDefs:null,dependencies:t.standalone&&e.dependencies||null,getStandaloneInjector:t.standalone?o=>o.get(jE).getOrCreateStandaloneInjector(n):null,getExternalStyles:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||rt.Emulated,styles:e.styles||De,_:null,schemas:e.schemas||null,tView:null,id:""});t.standalone&&We("NgStandalone"),Qh(n);let r=e.dependencies;return n.directiveDefs=yd(r,!1),n.pipeDefs=yd(r,!0),n.id=HE(n),n})}function VE(e){return ut(e)||Zd(e)}function BE(e){return e!==null}function Ft(e){return Cr(()=>({type:e.type,bootstrap:e.bootstrap||De,declarations:e.declarations||De,imports:e.imports||De,exports:e.exports||De,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function md(e,t){if(e==null)return Pn;let n={};for(let r in e)if(e.hasOwnProperty(r)){let o=e[r],i,s,a=St.None;Array.isArray(o)?(a=o[0],i=o[1],s=o[2]??i):(i=o,s=o),t?(n[i]=a!==St.None?[r,a]:r,t[i]=s):n[i]=r}return n}function qe(e){return Cr(()=>{let t=Yh(e);return Qh(t),t})}function Hi(e){return{type:e.type,name:e.name,factory:null,pure:e.pure!==!1,standalone:e.standalone??!0,onDestroy:e.type.prototype.ngOnDestroy||null}}function Yh(e){let t={};return{type:e.type,providersResolver:null,factory:null,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputTransforms:null,inputConfig:e.inputs||Pn,exportAs:e.exportAs||null,standalone:e.standalone??!0,signals:e.signals===!0,selectors:e.selectors||De,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:md(e.inputs,t),outputs:md(e.outputs),debugInfo:null}}function Qh(e){e.features?.forEach(t=>t(e))}function yd(e,t){if(!e)return null;let n=t?Yd:VE;return()=>(typeof e=="function"?e():e).map(r=>n(r)).filter(BE)}function HE(e){let t=0,n=[e.selectors,e.ngContentSelectors,e.hostVars,e.hostAttrs,e.consts,e.vars,e.decls,e.encapsulation,e.standalone,e.signals,e.exportAs,JSON.stringify(e.inputs),JSON.stringify(e.outputs),Object.getOwnPropertyNames(e.type.prototype),!!e.contentQueries,!!e.viewQuery].join("|");for(let o of n)t=Math.imul(31,t)+o.charCodeAt(0)<<0;return t+=2147483648,"c"+t}var Kh=(()=>{class e{log(n){console.log(n)}warn(n){console.warn(n)}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();function UE(e){return typeof e=="function"&&e[de]!==void 0}var ru=new T(""),Or=new T(""),Ui=(()=>{class e{_ngZone;registry;_isZoneStable=!0;_callbacks=[];taskTrackingZone=null;constructor(n,r,o){this._ngZone=n,this.registry=r,ou||($E(o),o.addToWindow(r)),this._watchAngularEvents(),n.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{G.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}isStable(){return this._isZoneStable&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;this._callbacks.length!==0;){let n=this._callbacks.pop();clearTimeout(n.timeoutId),n.doneCb()}});else{let n=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>r.updateCb&&r.updateCb(n)?(clearTimeout(r.timeoutId),!1):!0)}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(n=>({source:n.source,creationLocation:n.creationLocation,data:n.data})):[]}addCallback(n,r,o){let i=-1;r&&r>0&&(i=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==i),n()},r)),this._callbacks.push({doneCb:n,timeoutId:i,updateCb:o})}whenStable(n,r,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(n,r,o),this._runCallbacksIfReady()}registerApplication(n){this.registry.registerApplication(n,this)}unregisterApplication(n){this.registry.unregisterApplication(n)}findProviders(n,r,o){return[]}static \u0275fac=function(r){return new(r||e)(_(G),_($i),_(Or))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),$i=(()=>{class e{_applications=new Map;registerApplication(n,r){this._applications.set(n,r)}unregisterApplication(n){this._applications.delete(n)}unregisterAllApplications(){this._applications.clear()}getTestability(n){return this._applications.get(n)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(n,r=!0){return ou?.findTestabilityInTree(this,n,r)??null}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();function $E(e){ou=e}var ou;function zi(e){return!!e&&typeof e.then=="function"}function iu(e){return!!e&&typeof e.subscribe=="function"}var zE=new T("");var Jh=(()=>{class e{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((n,r)=>{this.resolve=n,this.reject=r});appInits=m(zE,{optional:!0})??[];injector=m(Fe);constructor(){}runInitializers(){if(this.initialized)return;let n=[];for(let o of this.appInits){let i=Ii(this.injector,o);if(zi(i))n.push(i);else if(iu(i)){let s=new Promise((a,c)=>{i.subscribe({complete:a,error:c})});n.push(s)}}let r=()=>{this.done=!0,this.resolve()};Promise.all(n).then(()=>{r()}).catch(o=>{this.reject(o)}),n.length===0&&r(),this.initialized=!0}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Xh=(()=>{class e{static \u0275prov=S({token:e,providedIn:"root",factory:()=>new si})}return e})(),si=class{queuedEffectCount=0;queues=new Map;schedule(t){this.enqueue(t)}enqueue(t){let n=t.zone;this.queues.has(n)||this.queues.set(n,new Set);let r=this.queues.get(n);r.has(t)||(this.queuedEffectCount++,r.add(t))}flush(){for(;this.queuedEffectCount>0;)for(let[t,n]of this.queues)t===null?this.flushQueue(n):t.run(()=>this.flushQueue(n))}flushQueue(t){for(let n of t)t.delete(n),this.queuedEffectCount--,n.run()}},ep=new T("");function GE(){sl(()=>{throw new b(600,!1)})}function WE(e){return e.isBoundToModule}var qE=10;function ZE(e,t,n){try{let r=n();return zi(r)?r.catch(o=>{throw t.runOutsideAngular(()=>e.handleError(o)),o}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}function tp(e,t){return Array.isArray(t)?t.reduce(tp,e):Q(Q({},e),t)}var hn=(()=>{class e{_bootstrapListeners=[];_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=m(vv);afterRenderManager=m(Jf);zonelessEnabled=m(kc);rootEffectScheduler=m(Xh);dirtyFlags=0;deferredDirtyFlags=0;externalTestViews=new Set;afterTick=new Ie;get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];isStable=m(Ot).hasPendingTasks.pipe(ie(n=>!n));whenStable(){let n;return new Promise(r=>{n=this.isStable.subscribe({next:o=>{o&&r()}})}).finally(()=>{n.unsubscribe()})}_injector=m(et);get injector(){return this._injector}bootstrap(n,r){let o=n instanceof ti;if(!this._injector.get(Jh).done){let h=!o&&uy(n),f=!1;throw new b(405,f)}let s;o?s=n:s=this._injector.get(Hn).resolveComponentFactory(n),this.componentTypes.push(s.componentType);let a=WE(s)?void 0:this._injector.get(Nt),c=r||s.selector,u=s.create(Fe.NULL,[],c,a),l=u.location.nativeElement,d=u.injector.get(ru,null);return d?.registerApplication(l),u.onDestroy(()=>{this.detachView(u.hostView),Lo(this.components,u),d?.unregisterApplication(l)}),this._loadComponent(u),u}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){if(this._runningTick)throw new b(101,!1);let n=F(null);try{this._runningTick=!0,this.synchronize()}catch(r){this.internalErrorHandler(r)}finally{this._runningTick=!1,F(n),this.afterTick.next()}}synchronize(){let n=null;this._injector.destroyed||(n=this._injector.get(Un,null,{optional:!0})),this.dirtyFlags|=this.deferredDirtyFlags,this.deferredDirtyFlags=0;let r=0;for(;this.dirtyFlags!==0&&r++Ti(n))){this.dirtyFlags|=2;return}else this.dirtyFlags&=-8}attachView(n){let r=n;this._views.push(r),r.attachToAppRef(this)}detachView(n){let r=n;Lo(this._views,r),r.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView),this.tick(),this.components.push(n);let r=this._injector.get(ep,[]);[...this._bootstrapListeners,...r].forEach(o=>o(n))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(n=>n()),this._views.slice().forEach(n=>n.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(n){return this._destroyListeners.push(n),()=>Lo(this._destroyListeners,n)}destroy(){if(this._destroyed)throw new b(406,!1);let n=this._injector;n.destroy&&!n.destroyed&&n.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function Lo(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}function YE(e,t,n,r){if(!n&&!Ti(e))return;Gh(e,t,n&&!r?0:1)}var nR=new RegExp(`^(\\d+)*(${Tv}|${_v})*(.*)`);var QE=()=>null;function $n(e,t){return QE(e,t)}var pn=(()=>{class e{static __NG_ELEMENT_ID__=KE}return e})();function KE(){let e=oe();return rp(e,C())}var JE=pn,np=class extends JE{_lContainer;_hostTNode;_hostLView;constructor(t,n,r){super(),this._lContainer=t,this._hostTNode=n,this._hostLView=r}get element(){return qn(this._hostTNode,this._hostLView)}get injector(){return new Qt(this._hostTNode,this._hostLView)}get parentInjector(){let t=Pc(this._hostTNode,this._hostLView);if(Cf(t)){let n=qo(t,this._hostLView),r=Wo(t),o=n[x].data[r+8];return new Qt(o,n)}else return new Qt(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){let n=vd(this._lContainer);return n!==null&&n[t]||null}get length(){return this._lContainer.length-pe}createEmbeddedView(t,n,r){let o,i;typeof r=="number"?o=r:r!=null&&(o=r.index,i=r.injector);let s=$n(this._lContainer,t.ssrId),a=t.createEmbeddedViewImpl(n||{},i,s);return this.insertImpl(a,o,Bn(this._hostTNode,s)),a}createComponent(t,n,r,o,i){let s=t&&!Iy(t),a;if(s)a=n;else{let p=n||{};a=p.index,r=p.injector,o=p.projectableNodes,i=p.environmentInjector||p.ngModuleRef}let c=s?t:new ln(ut(t)),u=r||this.parentInjector;if(!i&&c.ngModule==null){let g=(s?u:this.parentInjector).get(et,null);g&&(i=g)}let l=ut(c.componentType??{}),d=$n(this._lContainer,l?.id??null),h=d?.firstChild??null,f=c.create(u,o,h,i);return this.insertImpl(f.hostView,a,Bn(this._hostTNode,d)),f}insert(t,n){return this.insertImpl(t,n,!0)}insertImpl(t,n,r){let o=t._lView;if(Ny(o)){let a=this.indexOf(t);if(a!==-1)this.detach(a);else{let c=o[ge],u=new np(c,c[Ce],c[ge]);u.detach(u.indexOf(t))}}let i=this._adjustIndex(n),s=this._lContainer;return Rr(s,o,i,r),t.attachToViewContainerRef(),zd(Js(s),i,t),t}move(t,n){return this.insert(t,n)}indexOf(t){let n=vd(this._lContainer);return n!==null?n.indexOf(t):-1}remove(t){let n=this._adjustIndex(t,-1),r=Ir(this._lContainer,n);r&&(Bo(Js(this._lContainer),n),Fi(r[x],r))}detach(t){let n=this._adjustIndex(t,-1),r=Ir(this._lContainer,n);return r&&Bo(Js(this._lContainer),n)!=null?new cn(r):null}_adjustIndex(t,n=0){return t??this.length+n}};function vd(e){return e[$o]}function Js(e){return e[$o]||(e[$o]=[])}function rp(e,t){let n,r=t[e.index];return pt(r)?n=r:(n=Oh(r,t,null,e),t[e.index]=n,ji(t,n)),ew(n,t,e,r),new np(n,e,t)}function XE(e,t){let n=e[W],r=n.createComment(""),o=Pe(t,e),i=yh(n,o);return Xo(n,i,r,yD(n,o),!1),r}var ew=rw,tw=()=>!1;function nw(e,t,n){return tw(e,t,n)}function rw(e,t,n,r){if(e[tn])return;let o;n.type&8?o=tt(r):o=XE(t,n),e[tn]=o}var Ga=class e{queryList;matches=null;constructor(t){this.queryList=t}clone(){return new e(this.queryList)}setDirty(){this.queryList.setDirty()}},Wa=class e{queries;constructor(t=[]){this.queries=t}createEmbeddedView(t){let n=t.queries;if(n!==null){let r=t.contentQueries!==null?t.contentQueries[0]:n.length,o=[];for(let i=0;i0)r.push(s[a/2]);else{let u=i[a+1],l=t[-c];for(let d=pe;dt.trim())}function ap(e,t,n){e.queries===null&&(e.queries=new qa),e.queries.track(new Za(t,n))}function lw(e,t){let n=e.contentQueries||(e.contentQueries=[]),r=n.length?n[n.length-1]:-1;t!==r&&n.push(e.queries.length-1,t)}function au(e,t){return e.queries.getByIndex(t)}function cp(e,t){let n=e[x],r=au(n,t);return r.crossesNgTemplate?Ya(n,e,t,[]):op(n,e,r,t)}function Gi(e,t){We("NgSignals");let n=al(e),r=n[de];return t?.equal&&(r.equal=t.equal),n.set=o=>Yr(r,o),n.update=o=>cl(r,o),n.asReadonly=dw.bind(n),n}function dw(){let e=this[de];if(e.readonlyFn===void 0){let t=()=>this();t[de]=e,e.readonlyFn=t}return e.readonlyFn}function up(e){return UE(e)&&typeof e.set=="function"}function lp(e,t,n){let r,o=Cs(()=>{r._dirtyCounter();let i=gw(r,e);if(t&&i===void 0)throw new b(-951,!1);return i});return r=o[de],r._dirtyCounter=Gi(0),r._flatValue=void 0,o}function fw(e){return lp(!0,!1,e)}function hw(e){return lp(!0,!0,e)}function pw(e,t){let n=e[de];n._lView=C(),n._queryIndex=t,n._queryList=su(n._lView,t),n._queryList.onDirty(()=>n._dirtyCounter.update(r=>r+1))}function gw(e,t){let n=e._lView,r=e._queryIndex;if(n===void 0||r===void 0||n[I]&4)return t?void 0:De;let o=su(n,r),i=cp(n,r);return o.reset(i,Uf),t?o.first:o._changesDetected||e._flatValue===void 0?e._flatValue=o.toArray():e._flatValue}function Dd(e,t){return fw(t)}function mw(e,t){return hw(t)}var oR=(Dd.required=mw,Dd);function yw(e){let t=[],n=new Map;function r(o){let i=n.get(o);if(!i){let s=e(o);n.set(o,i=s.then(ww))}return i}return ci.forEach((o,i)=>{let s=[];o.templateUrl&&s.push(r(o.templateUrl).then(u=>{o.template=u}));let a=typeof o.styles=="string"?[o.styles]:o.styles||[];if(o.styles=a,o.styleUrl&&o.styleUrls?.length)throw new Error("@Component cannot define both `styleUrl` and `styleUrls`. Use `styleUrl` if the component has one stylesheet, or `styleUrls` if it has multiple");if(o.styleUrls?.length){let u=o.styles.length,l=o.styleUrls;o.styleUrls.forEach((d,h)=>{a.push(""),s.push(r(d).then(f=>{a[u+h]=f,l.splice(l.indexOf(d),1),l.length==0&&(o.styleUrls=void 0)}))})}else o.styleUrl&&s.push(r(o.styleUrl).then(u=>{a.push(u),o.styleUrl=void 0}));let c=Promise.all(s).then(()=>Iw(i));t.push(c)}),Dw(),Promise.all(t).then(()=>{})}var ci=new Map,vw=new Set;function Dw(){let e=ci;return ci=new Map,e}function Ew(){return ci.size===0}function ww(e){return typeof e=="string"?e:e.text()}function Iw(e){vw.delete(e)}function bw(e){return Object.getPrototypeOf(e.prototype).constructor}function cu(e){let t=bw(e.type),n=!0,r=[e];for(;t;){let o;if(ft(e))o=t.\u0275cmp||t.\u0275dir;else{if(t.\u0275cmp)throw new b(903,!1);o=t.\u0275dir}if(o){if(n){r.push(o);let s=e;s.inputs=So(e.inputs),s.inputTransforms=So(e.inputTransforms),s.declaredInputs=So(e.declaredInputs),s.outputs=So(e.outputs);let a=o.hostBindings;a&&Sw(e,a);let c=o.viewQuery,u=o.contentQueries;if(c&&_w(e,c),u&&Tw(e,u),Cw(e,o),Vm(e.outputs,o.outputs),ft(o)&&o.data.animation){let l=e.data;l.animation=(l.animation||[]).concat(o.data.animation)}}let i=o.features;if(i)for(let s=0;s=0;r--){let o=e[r];o.hostVars=t+=o.hostVars,o.hostAttrs=Er(o.hostAttrs,n=Er(n,o.hostAttrs))}}function So(e){return e===Pn?{}:e===De?[]:e}function _w(e,t){let n=e.viewQuery;n?e.viewQuery=(r,o)=>{t(r,o),n(r,o)}:e.viewQuery=t}function Tw(e,t){let n=e.contentQueries;n?e.contentQueries=(r,o,i)=>{t(r,o,i),n(r,o,i)}:e.contentQueries=t}function Sw(e,t){let n=e.hostBindings;n?e.hostBindings=(r,o)=>{t(r,o),n(r,o)}:e.hostBindings=t}function Fr(e){let t=e.inputConfig,n={};for(let r in t)if(t.hasOwnProperty(r)){let o=t[r];Array.isArray(o)&&o[3]&&(n[r]=o[3])}e.inputTransforms=n}function dp(e){return uu(e)?Array.isArray(e)||!(e instanceof Map)&&Symbol.iterator in e:!1}function Nw(e,t){if(Array.isArray(e))for(let n=0;n>17&32767}function jw(e){return(e&2)==2}function Vw(e,t){return e&131071|t<<17}function Qa(e){return e|2}function zn(e){return(e&131068)>>2}function Xs(e,t){return e&-131069|t<<2}function Bw(e){return(e&1)===1}function Ka(e){return e|1}function Hw(e,t,n,r,o,i){let s=i?t.classBindings:t.styleBindings,a=dn(s),c=zn(s);e[r]=n;let u=!1,l;if(Array.isArray(n)){let d=n;l=d[1],(l===null||Mr(d,l)>0)&&(u=!0)}else l=n;if(o)if(c!==0){let h=dn(e[a+1]);e[r+1]=No(h,a),h!==0&&(e[h+1]=Xs(e[h+1],r)),e[a+1]=Vw(e[a+1],r)}else e[r+1]=No(a,0),a!==0&&(e[a+1]=Xs(e[a+1],r)),a=r;else e[r+1]=No(c,0),a===0?a=r:e[c+1]=Xs(e[c+1],r),c=r;u&&(e[r+1]=Qa(e[r+1])),Ed(e,l,r,!0),Ed(e,l,r,!1),Uw(t,l,e,r,i),s=No(a,c),i?t.classBindings=s:t.styleBindings=s}function Uw(e,t,n,r,o){let i=o?e.residualClasses:e.residualStyles;i!=null&&typeof t=="string"&&Mr(i,t)>=0&&(n[r+1]=Ka(n[r+1]))}function Ed(e,t,n,r){let o=e[n+1],i=t===null,s=r?dn(o):zn(o),a=!1;for(;s!==0&&(a===!1||i);){let c=e[s],u=e[s+1];$w(c,t)&&(a=!0,e[s+1]=r?Ka(u):Qa(u)),s=r?dn(u):zn(u)}a&&(e[n+1]=r?Qa(o):Ka(o))}function $w(e,t){return e===null||t==null||(Array.isArray(e)?e[1]:e)===t?!0:Array.isArray(e)&&typeof t=="string"?Mr(e,t)>=0:!1}var ze={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function zw(e){return e.substring(ze.key,ze.keyEnd)}function Gw(e){return Ww(e),hp(e,pp(e,0,ze.textEnd))}function hp(e,t){let n=ze.textEnd;return n===t?-1:(t=ze.keyEnd=qw(e,ze.key=t,n),pp(e,t,n))}function Ww(e){ze.key=0,ze.keyEnd=0,ze.value=0,ze.valueEnd=0,ze.textEnd=e.length}function pp(e,t,n){for(;t32;)t++;return t}function Zw(e,t,n){let r=C(),o=Rt();if(xe(r,o,t)){let i=$(),s=Wn();xr(i,s,r,e,t,r[W],n,!1)}return Zw}function Ja(e,t,n,r,o){let i=t.inputs,s=o?"class":"style";eu(e,n,i[s],s,r)}function gp(e,t,n){return yp(e,t,n,!1),gp}function fu(e,t){return yp(e,t,null,!0),fu}function iR(e){vp(eI,mp,e,!0)}function mp(e,t){for(let n=Gw(t);n>=0;n=hp(t,n))Di(e,zw(t),!0)}function yp(e,t,n,r){let o=C(),i=$(),s=xc(2);if(i.firstUpdatePass&&Ep(i,e,s,r),t!==_e&&xe(o,s,t)){let a=i.data[gt()];wp(i,a,o,o[W],e,o[s+1]=nI(t,n),r,s)}}function vp(e,t,n,r){let o=$(),i=xc(2);o.firstUpdatePass&&Ep(o,null,i,r);let s=C();if(n!==_e&&xe(s,i,n)){let a=o.data[gt()];if(Ip(a,r)&&!Dp(o,i)){let c=r?a.classesWithoutHost:a.stylesWithoutHost;c!==null&&(n=ia(c,n||"")),Ja(o,a,s,n,r)}else tI(o,a,s,s[W],s[i+1],s[i+1]=Xw(e,t,n),r,i)}}function Dp(e,t){return t>=e.expandoStartIndex}function Ep(e,t,n,r){let o=e.data;if(o[n+1]===null){let i=o[gt()],s=Dp(e,n);Ip(i,r)&&t===null&&!s&&(t=!1),t=Yw(o,i,t,r),Hw(o,i,t,n,s,r)}}function Yw(e,t,n,r){let o=Ac(e),i=r?t.residualClasses:t.residualStyles;if(o===null)(r?t.classBindings:t.styleBindings)===0&&(n=ea(null,e,t,n,r),n=br(n,t.attrs,r),i=null);else{let s=t.directiveStylingLast;if(s===-1||e[s]!==o)if(n=ea(o,e,t,n,r),i===null){let c=Qw(e,t,r);c!==void 0&&Array.isArray(c)&&(c=ea(null,e,t,c[1],r),c=br(c,t.attrs,r),Kw(e,t,r,c))}else i=Jw(e,t,r)}return i!==void 0&&(r?t.residualClasses=i:t.residualStyles=i),n}function Qw(e,t,n){let r=n?t.classBindings:t.styleBindings;if(zn(r)!==0)return e[dn(r)]}function Kw(e,t,n,r){let o=n?t.classBindings:t.styleBindings;e[dn(o)]=r}function Jw(e,t,n){let r,o=t.directiveEnd;for(let i=1+t.directiveStylingLast;i0;){let c=e[o],u=Array.isArray(c),l=u?c[1]:c,d=l===null,h=n[o+1];h===_e&&(h=d?De:void 0);let f=d?Ws(h,r):l===r?h:void 0;if(u&&!li(f)&&(f=Ws(c,r)),li(f)&&(a=f,s))return a;let p=e[o+1];o=s?dn(p):zn(p)}if(t!==null){let c=i?t.residualClasses:t.residualStyles;c!=null&&(a=Ws(c,r))}return a}function li(e){return e!==void 0}function nI(e,t){return e==null||e===""||(typeof t=="string"?e=e+t:typeof e=="object"&&(e=Ee(Le(e)))),e}function Ip(e,t){return(e.flags&(t?8:16))!==0}function sR(e,t,n){let r=C(),o=du(r,e,t,n);vp(Di,mp,o,!0)}var Xa=class{destroy(t){}updateValue(t,n){}swap(t,n){let r=Math.min(t,n),o=Math.max(t,n),i=this.detach(o);if(o-r>1){let s=this.detach(r);this.attach(r,i),this.attach(o,s)}else this.attach(r,i)}move(t,n){this.attach(n,this.detach(t))}};function ta(e,t,n,r,o){return e===n&&Object.is(t,r)?1:Object.is(o(e,t),o(n,r))?-1:0}function rI(e,t,n){let r,o,i=0,s=e.length-1,a=void 0;if(Array.isArray(t)){let c=t.length-1;for(;i<=s&&i<=c;){let u=e.at(i),l=t[i],d=ta(i,u,i,l,n);if(d!==0){d<0&&e.updateValue(i,l),i++;continue}let h=e.at(s),f=t[c],p=ta(s,h,c,f,n);if(p!==0){p<0&&e.updateValue(s,f),s--,c--;continue}let g=n(i,u),D=n(s,h),N=n(i,l);if(Object.is(N,D)){let L=n(c,f);Object.is(L,g)?(e.swap(i,s),e.updateValue(s,f),c--,s--):e.move(s,i),e.updateValue(i,l),i++;continue}if(r??=new di,o??=bd(e,i,s,n),ec(e,r,i,N))e.updateValue(i,l),i++,s++;else if(o.has(N))r.set(g,e.detach(i)),s--;else{let L=e.create(i,t[i]);e.attach(i,L),i++,s++}}for(;i<=c;)Id(e,r,n,i,t[i]),i++}else if(t!=null){let c=t[Symbol.iterator](),u=c.next();for(;!u.done&&i<=s;){let l=e.at(i),d=u.value,h=ta(i,l,i,d,n);if(h!==0)h<0&&e.updateValue(i,d),i++,u=c.next();else{r??=new di,o??=bd(e,i,s,n);let f=n(i,d);if(ec(e,r,i,f))e.updateValue(i,d),i++,s++,u=c.next();else if(!o.has(f))e.attach(i,e.create(i,d)),i++,s++,u=c.next();else{let p=n(i,l);r.set(p,e.detach(i)),s--}}}for(;!u.done;)Id(e,r,n,e.length,u.value),u=c.next()}for(;i<=s;)e.destroy(e.detach(s--));r?.forEach(c=>{e.destroy(c)})}function ec(e,t,n,r){return t!==void 0&&t.has(r)?(e.attach(n,t.get(r)),t.delete(r),!0):!1}function Id(e,t,n,r,o){if(ec(e,t,r,n(r,o)))e.updateValue(r,o);else{let i=e.create(r,o);e.attach(r,i)}}function bd(e,t,n,r){let o=new Set;for(let i=t;i<=n;i++)o.add(r(i,e.at(i)));return o}var di=class{kvMap=new Map;_vMap=void 0;has(t){return this.kvMap.has(t)}delete(t){if(!this.has(t))return!1;let n=this.kvMap.get(t);return this._vMap!==void 0&&this._vMap.has(n)?(this.kvMap.set(t,this._vMap.get(n)),this._vMap.delete(n)):this.kvMap.delete(t),!0}get(t){return this.kvMap.get(t)}set(t,n){if(this.kvMap.has(t)){let r=this.kvMap.get(t);this._vMap===void 0&&(this._vMap=new Map);let o=this._vMap;for(;o.has(r);)r=o.get(r);o.set(r,n)}else this.kvMap.set(t,n)}forEach(t){for(let[n,r]of this.kvMap)if(t(r,n),this._vMap!==void 0){let o=this._vMap;for(;o.has(r);)r=o.get(r),t(r,n)}}};function aR(e,t){We("NgControlFlow");let n=C(),r=Rt(),o=n[r]!==_e?n[r]:-1,i=o!==-1?fi(n,se+o):void 0,s=0;if(xe(n,r,e)){let a=F(null);try{if(i!==void 0&&Hh(i,s),e!==-1){let c=se+e,u=fi(n,c),l=oc(n[x],c),d=$n(u,l.tView.ssrId),h=Ar(n,l,t,{dehydratedView:d});Rr(u,h,s,Bn(l,d))}}finally{F(a)}}else if(i!==void 0){let a=Bh(i,s);a!==void 0&&(a[he]=t)}}var tc=class{lContainer;$implicit;$index;constructor(t,n,r){this.lContainer=t,this.$implicit=n,this.$index=r}get $count(){return this.lContainer.length-pe}};function cR(e,t){return t}var nc=class{hasEmptyBlock;trackByFn;liveCollection;constructor(t,n,r){this.hasEmptyBlock=t,this.trackByFn=n,this.liveCollection=r}};function uR(e,t,n,r,o,i,s,a,c,u,l,d,h){We("NgControlFlow");let f=C(),p=$(),g=c!==void 0,D=C(),N=a?s.bind(D[Ne][he]):s,L=new nc(g,N);D[se+e]=L,ui(f,p,e+1,t,n,r,o,_t(p.consts,i)),g&&ui(f,p,e+2,c,u,l,d,_t(p.consts,h))}var rc=class extends Xa{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(t,n,r){super(),this.lContainer=t,this.hostLView=n,this.templateTNode=r}get length(){return this.lContainer.length-pe}at(t){return this.getLView(t)[he].$implicit}attach(t,n){let r=n[Ln];this.needsIndexUpdate||=t!==this.length,Rr(this.lContainer,n,t,Bn(this.templateTNode,r))}detach(t){return this.needsIndexUpdate||=t!==this.length-1,oI(this.lContainer,t)}create(t,n){let r=$n(this.lContainer,this.templateTNode.tView.ssrId),o=Ar(this.hostLView,this.templateTNode,new tc(this.lContainer,n,t),{dehydratedView:r});return this.operationsCounter?.recordCreate(),o}destroy(t){Fi(t[x],t),this.operationsCounter?.recordDestroy()}updateValue(t,n){this.getLView(t)[he].$implicit=n}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let t=0;t(xi(!0),fh(r,o,qy()));function uI(e,t,n,r,o){let i=t.consts,s=_t(i,r),a=Zn(t,e,8,"ng-container",s);s!==null&&ni(a,s,!0);let c=_t(i,o);return Xc(t,n,a,c),t.queries!==null&&t.queries.elementStart(t,a),a}function Mp(e,t,n){let r=C(),o=$(),i=e+se,s=o.firstCreatePass?uI(i,o,r,t,n):o.data[i];fn(s,!0);let a=dI(o,r,s,e);return r[i]=a,Ni()&&Pi(o,r,a,s),Tt(a,r),_i(s)&&(Qc(o,r,s),Yc(o,s,r)),n!=null&&Kc(r,s),Mp}function _p(){let e=oe(),t=$();return Sc()?Nc():(e=e.parent,fn(e,!1)),t.firstCreatePass&&(Ai(t,e),bc(e)&&t.queries.elementEnd(e)),_p}function lI(e,t,n){return Mp(e,t,n),_p(),lI}var dI=(e,t,n,r)=>(xi(!0),uD(t[W],""));function dR(){return C()}function fI(e,t,n){let r=C(),o=Rt();if(xe(r,o,t)){let i=$(),s=Wn();xr(i,s,r,e,t,r[W],n,!0)}return fI}function hI(e,t,n){let r=C(),o=Rt();if(xe(r,o,t)){let i=$(),s=Wn(),a=Ac(i.data),c=Lh(a,s,r);xr(i,s,r,e,t,c,n,!0)}return hI}var Yt=void 0;function pI(e){let t=e,n=Math.floor(Math.abs(e)),r=e.toString().replace(/^[^.]*\.?/,"").length;return n===1&&r===0?1:5}var gI=["en",[["a","p"],["AM","PM"],Yt],[["AM","PM"],Yt,Yt],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Yt,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Yt,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Yt,"{1} 'at' {0}",Yt],[".",",",";","%","+","-","E","\xD7","\u2030","\u221E","NaN",":"],["#,##0.###","#,##0%","\xA4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",pI],na={};function je(e){let t=mI(e),n=Cd(t);if(n)return n;let r=t.split("-")[0];if(n=Cd(r),n)return n;if(r==="en")return gI;throw new b(701,!1)}function Cd(e){return e in na||(na[e]=ce.ng&&ce.ng.common&&ce.ng.common.locales&&ce.ng.common.locales[e]),na[e]}var K=function(e){return e[e.LocaleId=0]="LocaleId",e[e.DayPeriodsFormat=1]="DayPeriodsFormat",e[e.DayPeriodsStandalone=2]="DayPeriodsStandalone",e[e.DaysFormat=3]="DaysFormat",e[e.DaysStandalone=4]="DaysStandalone",e[e.MonthsFormat=5]="MonthsFormat",e[e.MonthsStandalone=6]="MonthsStandalone",e[e.Eras=7]="Eras",e[e.FirstDayOfWeek=8]="FirstDayOfWeek",e[e.WeekendRange=9]="WeekendRange",e[e.DateFormat=10]="DateFormat",e[e.TimeFormat=11]="TimeFormat",e[e.DateTimeFormat=12]="DateTimeFormat",e[e.NumberSymbols=13]="NumberSymbols",e[e.NumberFormats=14]="NumberFormats",e[e.CurrencyCode=15]="CurrencyCode",e[e.CurrencySymbol=16]="CurrencySymbol",e[e.CurrencyName=17]="CurrencyName",e[e.Currencies=18]="Currencies",e[e.Directionality=19]="Directionality",e[e.PluralCase=20]="PluralCase",e[e.ExtraData=21]="ExtraData",e}(K||{});function mI(e){return e.toLowerCase().replace(/_/g,"-")}var hi="en-US";var yI=hi;function vI(e){typeof e=="string"&&(yI=e.toLowerCase().replace(/_/g,"-"))}var DI=(e,t,n)=>{};function EI(e,t,n,r){let o=C(),i=$(),s=oe();return hu(i,o,o[W],s,e,t,r),EI}function wI(e,t){let n=oe(),r=C(),o=$(),i=Ac(o.data),s=Lh(i,n,r);return hu(o,r,s,n,e,t),wI}function II(e,t,n,r){let o=e.cleanup;if(o!=null)for(let i=0;ic?a[c]:null}typeof s=="string"&&(i+=2)}return null}function hu(e,t,n,r,o,i,s){let a=_i(r),u=e.firstCreatePass&&kh(e),l=t[he],d=Ph(t),h=!0;if(r.type&3||s){let g=Pe(r,t),D=s?s(g):g,N=d.length,L=s?te=>s(tt(te[r.index])):r.index,B=null;if(!s&&a&&(B=II(e,t,o,r.index)),B!==null){let te=B.__ngLastListenerFn__||B;te.__ngNextListenerFn__=i,B.__ngLastListenerFn__=i,h=!1}else{i=_d(r,t,l,i),DI(g,o,i);let te=n.listen(D,o,i);d.push(i,te),u&&u.push(o,L,N,N+1)}}else i=_d(r,t,l,i);let f=r.outputs,p;if(h&&f!==null&&(p=f[o])){let g=p.length;if(g)for(let D=0;D-1?At(e.index,t):t;nu(s,5);let a=Md(t,n,r,i),c=o.__ngNextListenerFn__;for(;c;)a=Md(t,n,c,i)&&a,c=c.__ngNextListenerFn__;return a}}function fR(e=1){return Gy(e)}function bI(e,t){let n=null,r=xD(e);for(let o=0;o=e.data.length&&(e.data[n]=null,e.blueprint[n]=null),t[n]=r}function wR(e){let t=jy();return Mc(t,se+e)}function IR(e,t=""){let n=C(),r=$(),o=e+se,i=r.firstCreatePass?Zn(r,o,1,t,null):r.data[o],s=TI(r,n,i,t,e);n[o]=s,Ni()&&Pi(r,n,s,i),fn(i,!1)}var TI=(e,t,n,r,o)=>(xi(!0),aD(t[W],r));function SI(e){return Sp("",e,""),SI}function Sp(e,t,n){let r=C(),o=du(r,e,t,n);return o!==_e&&Vh(r,gt(),o),Sp}function NI(e,t,n,r,o){let i=C(),s=Lw(i,e,t,n,r,o);return s!==_e&&Vh(i,gt(),s),NI}function xI(e,t,n){up(t)&&(t=t());let r=C(),o=Rt();if(xe(r,o,t)){let i=$(),s=Wn();xr(i,s,r,e,t,r[W],n,!1)}return xI}function bR(e,t){let n=up(e);return n&&e.set(t),n}function AI(e,t){let n=C(),r=$(),o=oe();return hu(r,n,n[W],o,e,t),AI}function RI(e,t,n){let r=$();if(r.firstCreatePass){let o=ft(e);ic(n,r.data,r.blueprint,o,!0),ic(t,r.data,r.blueprint,o,!1)}}function ic(e,t,n,r,o){if(e=ve(e),Array.isArray(e))for(let i=0;i>20;if(kn(e)||!e.multi){let f=new on(u,o,X),p=oa(c,t,o?l:l+h,d);p===-1?(Ea(Yo(a,s),i,c),ra(i,e,t.length),t.push(c),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),n.push(f),s.push(f)):(n[p]=f,s[p]=f)}else{let f=oa(c,t,l+h,d),p=oa(c,t,l,l+h),g=f>=0&&n[f],D=p>=0&&n[p];if(o&&!D||!o&&!g){Ea(Yo(a,s),i,c);let N=PI(o?FI:OI,n.length,o,r,u);!o&&D&&(n[p].providerFactory=N),ra(i,e,t.length,0),t.push(c),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),n.push(N),s.push(N)}else{let N=Np(n[o?p:f],u,!o&&r);ra(i,e,f>-1?f:p,N)}!o&&r&&D&&n[p].componentProviders++}}}function ra(e,t,n,r){let o=kn(t),i=py(t);if(o||i){let c=(i?ve(t.useClass):t).prototype.ngOnDestroy;if(c){let u=e.destroyHooks||(e.destroyHooks=[]);if(!o&&t.multi){let l=u.indexOf(n);l===-1?u.push(n,[r,c]):u[l+1].push(r,c)}else u.push(n,c)}}}function Np(e,t,n){return n&&e.componentProviders++,e.multi.push(t)-1}function oa(e,t,n,r){for(let o=n;o{n.providersResolver=(r,o)=>RI(r,o?o(e):e,t)}}function CR(e,t,n){let r=Tr()+e,o=C();return o[r]===_e?lu(o,r,n?t.call(n):t()):xw(o,r)}function MR(e,t,n,r){return Rp(C(),Tr(),e,t,n,r)}function _R(e,t,n,r,o){return Op(C(),Tr(),e,t,n,r,o)}function Ap(e,t){let n=e[t];return n===_e?void 0:n}function Rp(e,t,n,r,o,i){let s=t+n;return xe(e,s,o)?lu(e,s+1,i?r.call(i,o):r(o)):Ap(e,s+1)}function Op(e,t,n,r,o,i,s){let a=t+n;return fp(e,a,o,i)?lu(e,a+2,s?r.call(s,o,i):r(o,i)):Ap(e,a+2)}function TR(e,t){let n=$(),r,o=e+se;n.firstCreatePass?(r=kI(t,n.pipeRegistry),n.data[o]=r,r.onDestroy&&(n.destroyHooks??=[]).push(o,r.onDestroy)):r=n.data[o];let i=r.factory||(r.factory=Jt(r.type,!0)),s,a=be(X);try{let c=Zo(!1),u=i();return Zo(c),_I(n,C(),o,u),u}finally{be(a)}}function kI(e,t){if(t)for(let n=t.length-1;n>=0;n--){let r=t[n];if(e===r.name)return r}}function SR(e,t,n){let r=e+se,o=C(),i=Mc(o,r);return Fp(o,r)?Rp(o,Tr(),t,i.transform,n,i):i.transform(n)}function NR(e,t,n,r){let o=e+se,i=C(),s=Mc(i,o);return Fp(i,o)?Op(i,Tr(),t,s.transform,n,r,s):s.transform(n,r)}function Fp(e,t){return e[x].data[t].pure}function xR(e,t){return Vi(e,t)}var xo=null;function LI(e){xo!==null&&(e.defaultEncapsulation!==xo.defaultEncapsulation||e.preserveWhitespaces!==xo.preserveWhitespaces)||(xo=e)}var ac=class{ngModuleFactory;componentFactories;constructor(t,n){this.ngModuleFactory=t,this.componentFactories=n}},AR=(()=>{class e{compileModuleSync(n){return new ii(n)}compileModuleAsync(n){return Promise.resolve(this.compileModuleSync(n))}compileModuleAndAllComponentsSync(n){let r=this.compileModuleSync(n),o=qd(n),i=dh(o.declarations).reduce((s,a)=>{let c=ut(a);return c&&s.push(new ln(c)),s},[]);return new ac(r,i)}compileModuleAndAllComponentsAsync(n){return Promise.resolve(this.compileModuleAndAllComponentsSync(n))}clearCache(){}clearCacheFor(n){}getModuleId(n){}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),jI=new T("");function VI(e,t,n){let r=new ii(n);return Promise.resolve(r)}function Td(e){for(let t=e.length-1;t>=0;t--)if(e[t]!==void 0)return e[t]}var BI=(()=>{class e{zone=m(G);changeDetectionScheduler=m(an);applicationRef=m(hn);_onMicrotaskEmptySubscription;initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function HI({ngZoneFactory:e,ignoreChangesOutsideZone:t,scheduleInRootZone:n}){return e??=()=>new G(ae(Q({},Pp()),{scheduleInRootZone:n})),[{provide:G,useFactory:e},{provide:yr,multi:!0,useFactory:()=>{let r=m(BI,{optional:!0});return()=>r.initialize()}},{provide:yr,multi:!0,useFactory:()=>{let r=m(UI);return()=>{r.initialize()}}},t===!0?{provide:Lf,useValue:!0}:[],{provide:jf,useValue:n??kf}]}function Pp(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:e?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:e?.runCoalescing??!1}}var UI=(()=>{class e{subscription=new J;initialized=!1;zone=m(G);pendingTasks=m(Ot);initialize(){if(this.initialized)return;this.initialized=!0;let n=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(n=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{G.assertNotInAngularZone(),queueMicrotask(()=>{n!==null&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(n),n=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{G.assertInAngularZone(),n??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var $I=(()=>{class e{appRef=m(hn);taskService=m(Ot);ngZone=m(G);zonelessEnabled=m(kc);disableScheduling=m(Lf,{optional:!0})??!1;zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new J;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(Ko):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(m(jf,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof Jo||!this.zoneIsDefined)}notify(n){if(!this.zonelessEnabled&&n===5)return;let r=!1;switch(n){case 0:{this.appRef.dirtyFlags|=2;break}case 3:case 2:case 4:case 5:case 1:{this.appRef.dirtyFlags|=4;break}case 8:{this.appRef.deferredDirtyFlags|=8;break}case 6:{this.appRef.dirtyFlags|=2,r=!0;break}case 13:{this.appRef.dirtyFlags|=16,r=!0;break}case 14:{this.appRef.dirtyFlags|=2,r=!0;break}case 12:{r=!0;break}case 10:case 9:case 7:case 11:default:this.appRef.dirtyFlags|=8}if(!this.shouldScheduleTick(r))return;let o=this.useMicrotaskScheduler?Jl:Vf;this.pendingRenderTaskId=this.taskService.add(),this.scheduleInRootZone?this.cancelScheduledCallback=Zone.root.run(()=>o(()=>this.tick())):this.cancelScheduledCallback=this.ngZone.runOutsideAngular(()=>o(()=>this.tick()))}shouldScheduleTick(n){return!(this.disableScheduling&&!n||this.appRef.destroyed||this.pendingRenderTaskId!==null||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(Ko+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(this.appRef.dirtyFlags===0){this.cleanup();return}!this.zonelessEnabled&&this.appRef.dirtyFlags&7&&(this.appRef.dirtyFlags|=1);let n=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(r){throw this.taskService.remove(n),r}finally{this.cleanup()}this.useMicrotaskScheduler=!0,Jl(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(n)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,this.pendingRenderTaskId!==null){let n=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(n)}}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function zI(){return typeof $localize<"u"&&$localize.locale||hi}var Wi=new T("",{providedIn:"root",factory:()=>m(Wi,k.Optional|k.SkipSelf)||zI()});var pi=new T("");function Ao(e){return!e.moduleRef}function GI(e){let t=Ao(e)?e.r3Injector:e.moduleRef.injector,n=t.get(G);return n.run(()=>{Ao(e)?e.r3Injector.resolveInjectorInitializers():e.moduleRef.resolveInjectorInitializers();let r=t.get(nt,null),o;if(n.runOutsideAngular(()=>{o=n.onError.subscribe({next:i=>{r.handleError(i)}})}),Ao(e)){let i=()=>t.destroy(),s=e.platformInjector.get(pi);s.add(i),t.onDestroy(()=>{o.unsubscribe(),s.delete(i)})}else{let i=()=>e.moduleRef.destroy(),s=e.platformInjector.get(pi);s.add(i),e.moduleRef.onDestroy(()=>{Lo(e.allPlatformModules,e.moduleRef),o.unsubscribe(),s.delete(i)})}return ZE(r,n,()=>{let i=t.get(Jh);return i.runInitializers(),i.donePromise.then(()=>{let s=t.get(Wi,hi);if(vI(s||hi),Ao(e)){let a=t.get(hn);return e.rootComponent!==void 0&&a.bootstrap(e.rootComponent),a}else return WI(e.moduleRef,e.allPlatformModules),e.moduleRef})})})}function WI(e,t){let n=e.injector.get(hn);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(r=>n.bootstrap(r));else if(e.instance.ngDoBootstrap)e.instance.ngDoBootstrap(n);else throw new b(-403,!1);t.push(e)}var kp=(()=>{class e{_injector;_modules=[];_destroyListeners=[];_destroyed=!1;constructor(n){this._injector=n}bootstrapModuleFactory(n,r){let o=r?.scheduleInRootZone,i=()=>yv(r?.ngZone,ae(Q({},Pp({eventCoalescing:r?.ngZoneEventCoalescing,runCoalescing:r?.ngZoneRunCoalescing})),{scheduleInRootZone:o})),s=r?.ignoreChangesOutsideZone,a=[HI({ngZoneFactory:i,ignoreChangesOutsideZone:s}),{provide:an,useExisting:$I}],c=kE(n.moduleType,this.injector,a);return GI({moduleRef:c,allPlatformModules:this._modules,platformInjector:this.injector})}bootstrapModule(n,r=[]){let o=tp({},r);return VI(this.injector,o,n).then(i=>this.bootstrapModuleFactory(i,o))}onDestroy(n){this._destroyListeners.push(n)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new b(404,!1);this._modules.slice().forEach(r=>r.destroy()),this._destroyListeners.forEach(r=>r());let n=this._injector.get(pi,null);n&&(n.forEach(r=>r()),n.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static \u0275fac=function(r){return new(r||e)(_(Fe))};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})(),gr=null,Lp=new T("");function qI(e){if(gr&&!gr.get(Lp,!1))throw new b(400,!1);GE(),gr=e;let t=e.get(kp);return QI(e),t}function pu(e,t,n=[]){let r=`Platform: ${t}`,o=new T(r);return(i=[])=>{let s=jp();if(!s||s.injector.get(Lp,!1)){let a=[...n,...i,{provide:o,useValue:!0}];e?e(a):qI(ZI(a,r))}return YI(o)}}function ZI(e=[],t){return Fe.create({name:t,providers:[{provide:Ei,useValue:"platform"},{provide:pi,useValue:new Set([()=>gr=null])},...e]})}function YI(e){let t=jp();if(!t)throw new b(401,!1);return t}function jp(){return gr?.get(kp)??null}function QI(e){let t=e.get(Bc,null);Ii(e,()=>{t?.forEach(n=>n())})}var qi=(()=>{class e{static __NG_ELEMENT_ID__=KI}return e})();function KI(e){return JI(oe(),C(),(e&16)===16)}function JI(e,t,n){if(Mi(e)&&!n){let r=At(e.index,t);return new cn(r,r)}else if(e.type&175){let r=t[Ne];return new cn(r,t)}return null}var cc=class{constructor(){}supports(t){return dp(t)}create(t){return new uc(t)}},XI=(e,t)=>t,uc=class{length=0;collection;_linkedRecords=null;_unlinkedRecords=null;_previousItHead=null;_itHead=null;_itTail=null;_additionsHead=null;_additionsTail=null;_movesHead=null;_movesTail=null;_removalsHead=null;_removalsTail=null;_identityChangesHead=null;_identityChangesTail=null;_trackByFn;constructor(t){this._trackByFn=t||XI}forEachItem(t){let n;for(n=this._itHead;n!==null;n=n._next)t(n)}forEachOperation(t){let n=this._itHead,r=this._removalsHead,o=0,i=null;for(;n||r;){let s=!r||n&&n.currentIndex{s=this._trackByFn(o,a),n===null||!Object.is(n.trackById,s)?(n=this._mismatch(n,a,s,o),r=!0):(r&&(n=this._verifyReinsertion(n,a,s,o)),Object.is(n.item,a)||this._addIdentityChange(n,a)),n=n._next,o++}),this.length=o;return this._truncate(n),this.collection=t,this.isDirty}get isDirty(){return this._additionsHead!==null||this._movesHead!==null||this._removalsHead!==null||this._identityChangesHead!==null}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;t!==null;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;t!==null;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;t!==null;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,n,r,o){let i;return t===null?i=this._itTail:(i=t._prev,this._remove(t)),t=this._unlinkedRecords===null?null:this._unlinkedRecords.get(r,null),t!==null?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._reinsertAfter(t,i,o)):(t=this._linkedRecords===null?null:this._linkedRecords.get(r,o),t!==null?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._moveAfter(t,i,o)):t=this._addAfter(new lc(n,r),i,o)),t}_verifyReinsertion(t,n,r,o){let i=this._unlinkedRecords===null?null:this._unlinkedRecords.get(r,null);return i!==null?t=this._reinsertAfter(i,t._prev,o):t.currentIndex!=o&&(t.currentIndex=o,this._addToMoves(t,o)),t}_truncate(t){for(;t!==null;){let n=t._next;this._addToRemovals(this._unlink(t)),t=n}this._unlinkedRecords!==null&&this._unlinkedRecords.clear(),this._additionsTail!==null&&(this._additionsTail._nextAdded=null),this._movesTail!==null&&(this._movesTail._nextMoved=null),this._itTail!==null&&(this._itTail._next=null),this._removalsTail!==null&&(this._removalsTail._nextRemoved=null),this._identityChangesTail!==null&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,n,r){this._unlinkedRecords!==null&&this._unlinkedRecords.remove(t);let o=t._prevRemoved,i=t._nextRemoved;return o===null?this._removalsHead=i:o._nextRemoved=i,i===null?this._removalsTail=o:i._prevRemoved=o,this._insertAfter(t,n,r),this._addToMoves(t,r),t}_moveAfter(t,n,r){return this._unlink(t),this._insertAfter(t,n,r),this._addToMoves(t,r),t}_addAfter(t,n,r){return this._insertAfter(t,n,r),this._additionsTail===null?this._additionsTail=this._additionsHead=t:this._additionsTail=this._additionsTail._nextAdded=t,t}_insertAfter(t,n,r){let o=n===null?this._itHead:n._next;return t._next=o,t._prev=n,o===null?this._itTail=t:o._prev=t,n===null?this._itHead=t:n._next=t,this._linkedRecords===null&&(this._linkedRecords=new gi),this._linkedRecords.put(t),t.currentIndex=r,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){this._linkedRecords!==null&&this._linkedRecords.remove(t);let n=t._prev,r=t._next;return n===null?this._itHead=r:n._next=r,r===null?this._itTail=n:r._prev=n,t}_addToMoves(t,n){return t.previousIndex===n||(this._movesTail===null?this._movesTail=this._movesHead=t:this._movesTail=this._movesTail._nextMoved=t),t}_addToRemovals(t){return this._unlinkedRecords===null&&(this._unlinkedRecords=new gi),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,this._removalsTail===null?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,n){return t.item=n,this._identityChangesTail===null?this._identityChangesTail=this._identityChangesHead=t:this._identityChangesTail=this._identityChangesTail._nextIdentityChange=t,t}},lc=class{item;trackById;currentIndex=null;previousIndex=null;_nextPrevious=null;_prev=null;_next=null;_prevDup=null;_nextDup=null;_prevRemoved=null;_nextRemoved=null;_nextAdded=null;_nextMoved=null;_nextIdentityChange=null;constructor(t,n){this.item=t,this.trackById=n}},dc=class{_head=null;_tail=null;add(t){this._head===null?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,n){let r;for(r=this._head;r!==null;r=r._nextDup)if((n===null||n<=r.currentIndex)&&Object.is(r.trackById,t))return r;return null}remove(t){let n=t._prevDup,r=t._nextDup;return n===null?this._head=r:n._nextDup=r,r===null?this._tail=n:r._prevDup=n,this._head===null}},gi=class{map=new Map;put(t){let n=t.trackById,r=this.map.get(n);r||(r=new dc,this.map.set(n,r)),r.add(t)}get(t,n){let r=t,o=this.map.get(r);return o?o.get(t,n):null}remove(t){let n=t.trackById;return this.map.get(n).remove(t)&&this.map.delete(n),t}get isEmpty(){return this.map.size===0}clear(){this.map.clear()}};function Sd(e,t,n){let r=e.previousIndex;if(r===null)return r;let o=0;return n&&r{if(n&&n.key===o)this._maybeAddToChanges(n,r),this._appendAfter=n,n=n._next;else{let i=this._getOrCreateRecordForKey(o,r);n=this._insertBeforeOrAppend(n,i)}}),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(let r=n;r!==null;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,n){if(t){let r=t._prev;return n._next=t,n._prev=r,t._prev=n,r&&(r._next=n),t===this._mapHead&&(this._mapHead=n),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=n,n._prev=this._appendAfter):this._mapHead=n,this._appendAfter=n,null}_getOrCreateRecordForKey(t,n){if(this._records.has(t)){let o=this._records.get(t);this._maybeAddToChanges(o,n);let i=o._prev,s=o._next;return i&&(i._next=s),s&&(s._prev=i),o._next=null,o._prev=null,o}let r=new pc(t);return this._records.set(t,r),r.currentValue=n,this._addToAdditions(r),r}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;t!==null;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;t!==null;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;t!=null;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,n){Object.is(n,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=n,this._addToChanges(t))}_addToAdditions(t){this._additionsHead===null?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){this._changesHead===null?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,n){t instanceof Map?t.forEach(n):Object.keys(t).forEach(r=>n(t[r],r))}},pc=class{key;previousValue=null;currentValue=null;_nextPrevious=null;_next=null;_prev=null;_nextAdded=null;_nextRemoved=null;_nextChanged=null;constructor(t){this.key=t}};function Nd(){return new gu([new cc])}var gu=(()=>{class e{factories;static \u0275prov=S({token:e,providedIn:"root",factory:Nd});constructor(n){this.factories=n}static create(n,r){if(r!=null){let o=r.factories.slice();n=n.concat(o)}return new e(n)}static extend(n){return{provide:e,useFactory:r=>e.create(n,r||Nd()),deps:[[e,new $d,new vc]]}}find(n){let r=this.factories.find(o=>o.supports(n));if(r!=null)return r;throw new b(901,!1)}}return e})();function xd(){return new mu([new fc])}var mu=(()=>{class e{static \u0275prov=S({token:e,providedIn:"root",factory:xd});factories;constructor(n){this.factories=n}static create(n,r){if(r){let o=r.factories.slice();n=n.concat(o)}return new e(n)}static extend(n){return{provide:e,useFactory:r=>e.create(n,r||xd()),deps:[[e,new $d,new vc]]}}find(n){let r=this.factories.find(o=>o.supports(n));if(r)return r;throw new b(901,!1)}}return e})();var Vp=pu(null,"core",[]),Bp=(()=>{class e{constructor(n){}static \u0275fac=function(r){return new(r||e)(_(hn))};static \u0275mod=Ft({type:e});static \u0275inj=xt({})}return e})();function Pr(e){return typeof e=="boolean"?e:e!=null&&e!=="false"}function yu(e,t=NaN){return!isNaN(parseFloat(e))&&!isNaN(Number(e))?Number(e):t}function Hp(e,t){We("NgSignals");let n=Cs(e);return t?.equal&&(n[de].equal=t.equal),n}function vu(e){let t=F(null);try{return e()}finally{F(t)}}var Up=(()=>{class e{view;node;constructor(n,r){this.view=n,this.node=r}static __NG_ELEMENT_ID__=eb}return e})();function eb(){return new Up(C(),oe())}var tb=!1,nb=(()=>{class e extends si{pendingTasks=m(Ot);taskId=null;schedule(n){super.schedule(n),this.taskId===null&&(this.taskId=this.pendingTasks.add(),queueMicrotask(()=>this.flush()))}flush(){try{super.flush()}finally{this.taskId!==null&&(this.pendingTasks.remove(this.taskId),this.taskId=null)}}static \u0275prov=S({token:e,providedIn:"root",factory:()=>new e})}return e})(),gc=class{scheduler;effectFn;zone;injector;unregisterOnDestroy;watcher;constructor(t,n,r,o,i,s){this.scheduler=t,this.effectFn=n,this.zone=r,this.injector=i,this.watcher=ul(a=>this.runEffect(a),()=>this.schedule(),s),this.unregisterOnDestroy=o?.onDestroy(()=>this.destroy())}runEffect(t){try{this.effectFn(t)}catch(n){this.injector.get(nt,null,{optional:!0})?.handleError(n)}}run(){this.watcher.run()}schedule(){this.scheduler.schedule(this)}destroy(){this.watcher.destroy(),this.unregisterOnDestroy?.()}};function rb(){}function ob(e,t){We("NgSignals"),!t?.injector&&bi(rb);let n=t?.injector??m(Fe),r=t?.manualCleanup!==!0?n.get(Sr):null,o=new gc(n.get(nb),e,typeof Zone>"u"?null:Zone.current,r,n,t?.allowSignalWrites??!1),i=n.get(qi,null,{optional:!0});return!i||!(i._lView[I]&8)?o.watcher.notify():(i._lView[Oo]??=[]).push(o.watcher.notify),o}var ib=tb;var mc=class{[de];constructor(t){this[de]=t}destroy(){this[de].destroy()}};function Yn(e,t){if(ib)return ob(e,t);We("NgSignals"),!t?.injector&&bi(Yn);let n=t?.injector??m(Fe),r=t?.manualCleanup!==!0?n.get(Sr):null,o,i=n.get(Up,null,{optional:!0}),s=n.get(an);return i!==null&&!t?.forceRoot?(o=cb(i.view,s,e),r instanceof Qo&&r._lView===i.view&&(r=null)):o=ub(e,n.get(Xh),s),o.injector=n,r!==null&&(o.onDestroyFn=r.onDestroy(()=>o.destroy())),new mc(o)}var $p=ae(Q({},Bt),{consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,hasRun:!1,cleanupFns:void 0,zone:null,onDestroyFn:wr,run(){if(this.dirty=!1,this.hasRun&&!or(this))return;this.hasRun=!0;let e=r=>(this.cleanupFns??=[]).push(r),t=vn(this),n=Go(!1);try{this.maybeCleanup(),this.fn(e)}finally{Go(n),rr(this,t)}},maybeCleanup(){if(this.cleanupFns?.length)try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[]}}}),sb=ae(Q({},$p),{consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(13)},destroy(){Dn(this),this.onDestroyFn(),this.maybeCleanup()}}),ab=ae(Q({},$p),{consumerMarkedDirty(){this.view[I]|=8192,_r(this.view),this.notifier.notify(14)},destroy(){Dn(this),this.onDestroyFn(),this.maybeCleanup(),this.view[en]?.delete(this)}});function cb(e,t,n){let r=Object.create(ab);return r.view=e,r.zone=typeof Zone<"u"?Zone.current:null,r.notifier=t,r.fn=n,e[en]??=new Set,e[en].add(r),r.consumerMarkedDirty(r),r}function ub(e,t,n){let r=Object.create(sb);return r.fn=e,r.scheduler=t,r.notifier=n,r.zone=typeof Zone<"u"?Zone.current:null,r.scheduler.schedule(r),r.notifier.notify(13),r}function RR(e,t){let n=ut(e),r=t.elementInjector||wi();return new ln(n).create(r,t.projectableNodes,t.hostElement,t.environmentInjector)}function OR(e){let t=ut(e);if(!t)return null;let n=new ln(t);return{get selector(){return n.selector},get type(){return n.componentType},get inputs(){return n.inputs},get outputs(){return n.outputs},get ngContentSelectors(){return n.ngContentSelectors},get isStandalone(){return t.standalone},get isSignal(){return t.signals}}}var Qp=null;function gn(){return Qp}function Kp(e){Qp??=e}var ns=class{};var ue=new T(""),Nu=(()=>{class e{historyGo(n){throw new Error("")}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:()=>m(fb),providedIn:"platform"})}return e})(),eO=new T(""),fb=(()=>{class e extends Nu{_location;_history;_doc=m(ue);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return gn().getBaseHref(this._doc)}onPopState(n){let r=gn().getGlobalEventTarget(this._doc,"window");return r.addEventListener("popstate",n,!1),()=>r.removeEventListener("popstate",n)}onHashChange(n){let r=gn().getGlobalEventTarget(this._doc,"window");return r.addEventListener("hashchange",n,!1),()=>r.removeEventListener("hashchange",n)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(n){this._location.pathname=n}pushState(n,r,o){this._history.pushState(n,r,o)}replaceState(n,r,o){this._history.replaceState(n,r,o)}forward(){this._history.forward()}back(){this._history.back()}historyGo(n=0){this._history.go(n)}getState(){return this._history.state}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:()=>new e,providedIn:"platform"})}return e})();function xu(e,t){if(e.length==0)return t;if(t.length==0)return e;let n=0;return e.endsWith("/")&&n++,t.startsWith("/")&&n++,n==2?e+t.substring(1):n==1?e+t:e+"/"+t}function zp(e){let t=e.match(/#|\?|$/),n=t&&t.index||e.length,r=n-(e[n-1]==="/"?1:0);return e.slice(0,r)+e.slice(n)}function Dt(e){return e&&e[0]!=="?"?"?"+e:e}var os=(()=>{class e{historyGo(n){throw new Error("")}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:()=>m(hb),providedIn:"root"})}return e})(),Jp=new T(""),hb=(()=>{class e extends os{_platformLocation;_baseHref;_removeListenerFns=[];constructor(n,r){super(),this._platformLocation=n,this._baseHref=r??this._platformLocation.getBaseHrefFromDOM()??m(ue).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}prepareExternalUrl(n){return xu(this._baseHref,n)}path(n=!1){let r=this._platformLocation.pathname+Dt(this._platformLocation.search),o=this._platformLocation.hash;return o&&n?`${r}${o}`:r}pushState(n,r,o,i){let s=this.prepareExternalUrl(o+Dt(i));this._platformLocation.pushState(n,r,s)}replaceState(n,r,o,i){let s=this.prepareExternalUrl(o+Dt(i));this._platformLocation.replaceState(n,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}static \u0275fac=function(r){return new(r||e)(_(Nu),_(Jp,8))};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),tO=(()=>{class e extends os{_platformLocation;_baseHref="";_removeListenerFns=[];constructor(n,r){super(),this._platformLocation=n,r!=null&&(this._baseHref=r)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}path(n=!1){let r=this._platformLocation.hash??"#";return r.length>0?r.substring(1):r}prepareExternalUrl(n){let r=xu(this._baseHref,n);return r.length>0?"#"+r:r}pushState(n,r,o,i){let s=this.prepareExternalUrl(o+Dt(i));s.length==0&&(s=this._platformLocation.pathname),this._platformLocation.pushState(n,r,s)}replaceState(n,r,o,i){let s=this.prepareExternalUrl(o+Dt(i));s.length==0&&(s=this._platformLocation.pathname),this._platformLocation.replaceState(n,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}static \u0275fac=function(r){return new(r||e)(_(Nu),_(Jp,8))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),pb=(()=>{class e{_subject=new Ie;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(n){this._locationStrategy=n;let r=this._locationStrategy.getBaseHref();this._basePath=yb(zp(Gp(r))),this._locationStrategy.onPopState(o=>{this._subject.next({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(n=!1){return this.normalize(this._locationStrategy.path(n))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(n,r=""){return this.path()==this.normalize(n+Dt(r))}normalize(n){return e.stripTrailingSlash(mb(this._basePath,Gp(n)))}prepareExternalUrl(n){return n&&n[0]!=="/"&&(n="/"+n),this._locationStrategy.prepareExternalUrl(n)}go(n,r="",o=null){this._locationStrategy.pushState(o,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+Dt(r)),o)}replaceState(n,r="",o=null){this._locationStrategy.replaceState(o,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+Dt(r)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(n=0){this._locationStrategy.historyGo?.(n)}onUrlChange(n){return this._urlChangeListeners.push(n),this._urlChangeSubscription??=this.subscribe(r=>{this._notifyUrlChangeListeners(r.url,r.state)}),()=>{let r=this._urlChangeListeners.indexOf(n);this._urlChangeListeners.splice(r,1),this._urlChangeListeners.length===0&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(n="",r){this._urlChangeListeners.forEach(o=>o(n,r))}subscribe(n,r,o){return this._subject.subscribe({next:n,error:r??void 0,complete:o??void 0})}static normalizeQueryParams=Dt;static joinWithSlash=xu;static stripTrailingSlash=zp;static \u0275fac=function(r){return new(r||e)(_(os))};static \u0275prov=S({token:e,factory:()=>gb(),providedIn:"root"})}return e})();function gb(){return new pb(_(os))}function mb(e,t){if(!e||!t.startsWith(e))return t;let n=t.substring(e.length);return n===""||["/",";","?","#"].includes(n[0])?n:t}function Gp(e){return e.replace(/\/index.html$/,"")}function yb(e){if(new RegExp("^(https?:)?//").test(e)){let[,n]=e.split(/\/\/[^\/]+/);return n}return e}var we=function(e){return e[e.Format=0]="Format",e[e.Standalone=1]="Standalone",e}(we||{}),U=function(e){return e[e.Narrow=0]="Narrow",e[e.Abbreviated=1]="Abbreviated",e[e.Wide=2]="Wide",e[e.Short=3]="Short",e}(U||{}),Re=function(e){return e[e.Short=0]="Short",e[e.Medium=1]="Medium",e[e.Long=2]="Long",e[e.Full=3]="Full",e}(Re||{}),Pt={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function vb(e){return je(e)[K.LocaleId]}function Db(e,t,n){let r=je(e),o=[r[K.DayPeriodsFormat],r[K.DayPeriodsStandalone]],i=Ve(o,t);return Ve(i,n)}function Eb(e,t,n){let r=je(e),o=[r[K.DaysFormat],r[K.DaysStandalone]],i=Ve(o,t);return Ve(i,n)}function wb(e,t,n){let r=je(e),o=[r[K.MonthsFormat],r[K.MonthsStandalone]],i=Ve(o,t);return Ve(i,n)}function Ib(e,t){let r=je(e)[K.Eras];return Ve(r,t)}function Zi(e,t){let n=je(e);return Ve(n[K.DateFormat],t)}function Yi(e,t){let n=je(e);return Ve(n[K.TimeFormat],t)}function Qi(e,t){let r=je(e)[K.DateTimeFormat];return Ve(r,t)}function is(e,t){let n=je(e),r=n[K.NumberSymbols][t];if(typeof r>"u"){if(t===Pt.CurrencyDecimal)return n[K.NumberSymbols][Pt.Decimal];if(t===Pt.CurrencyGroup)return n[K.NumberSymbols][Pt.Group]}return r}function Xp(e){if(!e[K.ExtraData])throw new Error(`Missing extra locale data for the locale "${e[K.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function bb(e){let t=je(e);return Xp(t),(t[K.ExtraData][2]||[]).map(r=>typeof r=="string"?Du(r):[Du(r[0]),Du(r[1])])}function Cb(e,t,n){let r=je(e);Xp(r);let o=[r[K.ExtraData][0],r[K.ExtraData][1]],i=Ve(o,t)||[];return Ve(i,n)||[]}function Ve(e,t){for(let n=t;n>-1;n--)if(typeof e[n]<"u")return e[n];throw new Error("Locale data API: locale data undefined")}function Du(e){let[t,n]=e.split(":");return{hours:+t,minutes:+n}}var Mb=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Ki={},_b=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/,Et=function(e){return e[e.Short=0]="Short",e[e.ShortGMT=1]="ShortGMT",e[e.Long=2]="Long",e[e.Extended=3]="Extended",e}(Et||{}),V=function(e){return e[e.FullYear=0]="FullYear",e[e.Month=1]="Month",e[e.Date=2]="Date",e[e.Hours=3]="Hours",e[e.Minutes=4]="Minutes",e[e.Seconds=5]="Seconds",e[e.FractionalSeconds=6]="FractionalSeconds",e[e.Day=7]="Day",e}(V||{}),j=function(e){return e[e.DayPeriods=0]="DayPeriods",e[e.Days=1]="Days",e[e.Months=2]="Months",e[e.Eras=3]="Eras",e}(j||{});function Tb(e,t,n,r){let o=kb(e);t=vt(n,t)||t;let s=[],a;for(;t;)if(a=_b.exec(t),a){s=s.concat(a.slice(1));let l=s.pop();if(!l)break;t=l}else{s.push(t);break}let c=o.getTimezoneOffset();r&&(c=tg(r,c),o=Pb(o,r,!0));let u="";return s.forEach(l=>{let d=Ob(l);u+=d?d(o,n,c):l==="''"?"'":l.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),u}function rs(e,t,n){let r=new Date(0);return r.setFullYear(e,t,n),r.setHours(0,0,0),r}function vt(e,t){let n=vb(e);if(Ki[n]??={},Ki[n][t])return Ki[n][t];let r="";switch(t){case"shortDate":r=Zi(e,Re.Short);break;case"mediumDate":r=Zi(e,Re.Medium);break;case"longDate":r=Zi(e,Re.Long);break;case"fullDate":r=Zi(e,Re.Full);break;case"shortTime":r=Yi(e,Re.Short);break;case"mediumTime":r=Yi(e,Re.Medium);break;case"longTime":r=Yi(e,Re.Long);break;case"fullTime":r=Yi(e,Re.Full);break;case"short":let o=vt(e,"shortTime"),i=vt(e,"shortDate");r=Ji(Qi(e,Re.Short),[o,i]);break;case"medium":let s=vt(e,"mediumTime"),a=vt(e,"mediumDate");r=Ji(Qi(e,Re.Medium),[s,a]);break;case"long":let c=vt(e,"longTime"),u=vt(e,"longDate");r=Ji(Qi(e,Re.Long),[c,u]);break;case"full":let l=vt(e,"fullTime"),d=vt(e,"fullDate");r=Ji(Qi(e,Re.Full),[l,d]);break}return r&&(Ki[n][t]=r),r}function Ji(e,t){return t&&(e=e.replace(/\{([^}]+)}/g,function(n,r){return t!=null&&r in t?t[r]:n})),e}function Ze(e,t,n="-",r,o){let i="";(e<0||o&&e<=0)&&(o?e=-e+1:(e=-e,i=n));let s=String(e);for(;s.length0||a>-n)&&(a+=n),e===V.Hours)a===0&&n===-12&&(a=12);else if(e===V.FractionalSeconds)return Sb(a,t);let c=is(s,Pt.MinusSign);return Ze(a,t,c,r,o)}}function Nb(e,t){switch(e){case V.FullYear:return t.getFullYear();case V.Month:return t.getMonth();case V.Date:return t.getDate();case V.Hours:return t.getHours();case V.Minutes:return t.getMinutes();case V.Seconds:return t.getSeconds();case V.FractionalSeconds:return t.getMilliseconds();case V.Day:return t.getDay();default:throw new Error(`Unknown DateType value "${e}".`)}}function z(e,t,n=we.Format,r=!1){return function(o,i){return xb(o,i,e,t,n,r)}}function xb(e,t,n,r,o,i){switch(n){case j.Months:return wb(t,o,r)[e.getMonth()];case j.Days:return Eb(t,o,r)[e.getDay()];case j.DayPeriods:let s=e.getHours(),a=e.getMinutes();if(i){let u=bb(t),l=Cb(t,o,r),d=u.findIndex(h=>{if(Array.isArray(h)){let[f,p]=h,g=s>=f.hours&&a>=f.minutes,D=s0?Math.floor(o/60):Math.ceil(o/60);switch(e){case Et.Short:return(o>=0?"+":"")+Ze(s,2,i)+Ze(Math.abs(o%60),2,i);case Et.ShortGMT:return"GMT"+(o>=0?"+":"")+Ze(s,1,i);case Et.Long:return"GMT"+(o>=0?"+":"")+Ze(s,2,i)+":"+Ze(Math.abs(o%60),2,i);case Et.Extended:return r===0?"Z":(o>=0?"+":"")+Ze(s,2,i)+":"+Ze(Math.abs(o%60),2,i);default:throw new Error(`Unknown zone width "${e}"`)}}}var Ab=0,ts=4;function Rb(e){let t=rs(e,Ab,1).getDay();return rs(e,0,1+(t<=ts?ts:ts+7)-t)}function eg(e){let t=e.getDay(),n=t===0?-3:ts-t;return rs(e.getFullYear(),e.getMonth(),e.getDate()+n)}function Eu(e,t=!1){return function(n,r){let o;if(t){let i=new Date(n.getFullYear(),n.getMonth(),1).getDay()-1,s=n.getDate();o=1+Math.floor((s+i)/7)}else{let i=eg(n),s=Rb(i.getFullYear()),a=i.getTime()-s.getTime();o=1+Math.round(a/6048e5)}return Ze(o,e,is(r,Pt.MinusSign))}}function es(e,t=!1){return function(n,r){let i=eg(n).getFullYear();return Ze(i,e,is(r,Pt.MinusSign),t)}}var wu={};function Ob(e){if(wu[e])return wu[e];let t;switch(e){case"G":case"GG":case"GGG":t=z(j.Eras,U.Abbreviated);break;case"GGGG":t=z(j.Eras,U.Wide);break;case"GGGGG":t=z(j.Eras,U.Narrow);break;case"y":t=ee(V.FullYear,1,0,!1,!0);break;case"yy":t=ee(V.FullYear,2,0,!0,!0);break;case"yyy":t=ee(V.FullYear,3,0,!1,!0);break;case"yyyy":t=ee(V.FullYear,4,0,!1,!0);break;case"Y":t=es(1);break;case"YY":t=es(2,!0);break;case"YYY":t=es(3);break;case"YYYY":t=es(4);break;case"M":case"L":t=ee(V.Month,1,1);break;case"MM":case"LL":t=ee(V.Month,2,1);break;case"MMM":t=z(j.Months,U.Abbreviated);break;case"MMMM":t=z(j.Months,U.Wide);break;case"MMMMM":t=z(j.Months,U.Narrow);break;case"LLL":t=z(j.Months,U.Abbreviated,we.Standalone);break;case"LLLL":t=z(j.Months,U.Wide,we.Standalone);break;case"LLLLL":t=z(j.Months,U.Narrow,we.Standalone);break;case"w":t=Eu(1);break;case"ww":t=Eu(2);break;case"W":t=Eu(1,!0);break;case"d":t=ee(V.Date,1);break;case"dd":t=ee(V.Date,2);break;case"c":case"cc":t=ee(V.Day,1);break;case"ccc":t=z(j.Days,U.Abbreviated,we.Standalone);break;case"cccc":t=z(j.Days,U.Wide,we.Standalone);break;case"ccccc":t=z(j.Days,U.Narrow,we.Standalone);break;case"cccccc":t=z(j.Days,U.Short,we.Standalone);break;case"E":case"EE":case"EEE":t=z(j.Days,U.Abbreviated);break;case"EEEE":t=z(j.Days,U.Wide);break;case"EEEEE":t=z(j.Days,U.Narrow);break;case"EEEEEE":t=z(j.Days,U.Short);break;case"a":case"aa":case"aaa":t=z(j.DayPeriods,U.Abbreviated);break;case"aaaa":t=z(j.DayPeriods,U.Wide);break;case"aaaaa":t=z(j.DayPeriods,U.Narrow);break;case"b":case"bb":case"bbb":t=z(j.DayPeriods,U.Abbreviated,we.Standalone,!0);break;case"bbbb":t=z(j.DayPeriods,U.Wide,we.Standalone,!0);break;case"bbbbb":t=z(j.DayPeriods,U.Narrow,we.Standalone,!0);break;case"B":case"BB":case"BBB":t=z(j.DayPeriods,U.Abbreviated,we.Format,!0);break;case"BBBB":t=z(j.DayPeriods,U.Wide,we.Format,!0);break;case"BBBBB":t=z(j.DayPeriods,U.Narrow,we.Format,!0);break;case"h":t=ee(V.Hours,1,-12);break;case"hh":t=ee(V.Hours,2,-12);break;case"H":t=ee(V.Hours,1);break;case"HH":t=ee(V.Hours,2);break;case"m":t=ee(V.Minutes,1);break;case"mm":t=ee(V.Minutes,2);break;case"s":t=ee(V.Seconds,1);break;case"ss":t=ee(V.Seconds,2);break;case"S":t=ee(V.FractionalSeconds,1);break;case"SS":t=ee(V.FractionalSeconds,2);break;case"SSS":t=ee(V.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":t=Xi(Et.Short);break;case"ZZZZZ":t=Xi(Et.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":t=Xi(Et.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":t=Xi(Et.Long);break;default:return null}return wu[e]=t,t}function tg(e,t){e=e.replace(/:/g,"");let n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return isNaN(n)?t:n}function Fb(e,t){return e=new Date(e.getTime()),e.setMinutes(e.getMinutes()+t),e}function Pb(e,t,n){let r=n?-1:1,o=e.getTimezoneOffset(),i=tg(t,o);return Fb(e,r*(i-o))}function kb(e){if(Wp(e))return e;if(typeof e=="number"&&!isNaN(e))return new Date(e);if(typeof e=="string"){if(e=e.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(e)){let[o,i=1,s=1]=e.split("-").map(a=>+a);return rs(o,i-1,s)}let n=parseFloat(e);if(!isNaN(e-n))return new Date(n);let r;if(r=e.match(Mb))return Lb(r)}let t=new Date(e);if(!Wp(t))throw new Error(`Unable to convert "${e}" into a date`);return t}function Lb(e){let t=new Date(0),n=0,r=0,o=e[8]?t.setUTCFullYear:t.setFullYear,i=e[8]?t.setUTCHours:t.setHours;e[9]&&(n=Number(e[9]+e[10]),r=Number(e[9]+e[11])),o.call(t,Number(e[1]),Number(e[2])-1,Number(e[3]));let s=Number(e[4]||0)-n,a=Number(e[5]||0)-r,c=Number(e[6]||0),u=Math.floor(parseFloat("0."+(e[7]||0))*1e3);return i.call(t,s,a,c,u),t}function Wp(e){return e instanceof Date&&!isNaN(e.valueOf())}function ss(e,t){t=encodeURIComponent(t);for(let n of e.split(";")){let r=n.indexOf("="),[o,i]=r==-1?[n,""]:[n.slice(0,r),n.slice(r+1)];if(o.trim()===t)return decodeURIComponent(i)}return null}var Iu=/\s+/,qp=[],nO=(()=>{class e{_ngEl;_renderer;initialClasses=qp;rawClass;stateMap=new Map;constructor(n,r){this._ngEl=n,this._renderer=r}set klass(n){this.initialClasses=n!=null?n.trim().split(Iu):qp}set ngClass(n){this.rawClass=typeof n=="string"?n.trim().split(Iu):n}ngDoCheck(){for(let r of this.initialClasses)this._updateState(r,!0);let n=this.rawClass;if(Array.isArray(n)||n instanceof Set)for(let r of n)this._updateState(r,!0);else if(n!=null)for(let r of Object.keys(n))this._updateState(r,!!n[r]);this._applyStateDiff()}_updateState(n,r){let o=this.stateMap.get(n);o!==void 0?(o.enabled!==r&&(o.changed=!0,o.enabled=r),o.touched=!0):this.stateMap.set(n,{enabled:r,changed:!0,touched:!0})}_applyStateDiff(){for(let n of this.stateMap){let r=n[0],o=n[1];o.changed?(this._toggleClass(r,o.enabled),o.changed=!1):o.touched||(o.enabled&&this._toggleClass(r,!1),this.stateMap.delete(r)),o.touched=!1}}_toggleClass(n,r){n=n.trim(),n.length>0&&n.split(Iu).forEach(o=>{r?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}static \u0275fac=function(r){return new(r||e)(X(ke),X(Bi))};static \u0275dir=qe({type:e,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"}})}return e})();var bu=class{$implicit;ngForOf;index;count;constructor(t,n,r,o){this.$implicit=t,this.ngForOf=n,this.index=r,this.count=o}get first(){return this.index===0}get last(){return this.index===this.count-1}get even(){return this.index%2===0}get odd(){return!this.even}},rO=(()=>{class e{_viewContainer;_template;_differs;set ngForOf(n){this._ngForOf=n,this._ngForOfDirty=!0}set ngForTrackBy(n){this._trackByFn=n}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(n,r,o){this._viewContainer=n,this._template=r,this._differs=o}set ngForTemplate(n){n&&(this._template=n)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;let n=this._ngForOf;if(!this._differ&&n)if(0)try{}catch{}else this._differ=this._differs.find(n).create(this.ngForTrackBy)}if(this._differ){let n=this._differ.diff(this._ngForOf);n&&this._applyChanges(n)}}_applyChanges(n){let r=this._viewContainer;n.forEachOperation((o,i,s)=>{if(o.previousIndex==null)r.createEmbeddedView(this._template,new bu(o.item,this._ngForOf,-1,-1),s===null?void 0:s);else if(s==null)r.remove(i===null?void 0:i);else if(i!==null){let a=r.get(i);r.move(a,s),Zp(a,o)}});for(let o=0,i=r.length;o{let i=r.get(o.currentIndex);Zp(i,o)})}static ngTemplateContextGuard(n,r){return!0}static \u0275fac=function(r){return new(r||e)(X(pn),X(un),X(gu))};static \u0275dir=qe({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return e})();function Zp(e,t){e.context.$implicit=t.item}var oO=(()=>{class e{_viewContainer;_context=new Cu;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(n,r){this._viewContainer=n,this._thenTemplateRef=r}set ngIf(n){this._context.$implicit=this._context.ngIf=n,this._updateView()}set ngIfThen(n){Yp("ngIfThen",n),this._thenTemplateRef=n,this._thenViewRef=null,this._updateView()}set ngIfElse(n){Yp("ngIfElse",n),this._elseTemplateRef=n,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(n,r){return!0}static \u0275fac=function(r){return new(r||e)(X(pn),X(un))};static \u0275dir=qe({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return e})(),Cu=class{$implicit=null;ngIf=null};function Yp(e,t){if(!!!(!t||t.createEmbeddedView))throw new Error(`${e} must be a TemplateRef, but received '${Ee(t)}'.`)}var iO=(()=>{class e{_ngEl;_differs;_renderer;_ngStyle=null;_differ=null;constructor(n,r,o){this._ngEl=n,this._differs=r,this._renderer=o}set ngStyle(n){this._ngStyle=n,!this._differ&&n&&(this._differ=this._differs.find(n).create())}ngDoCheck(){if(this._differ){let n=this._differ.diff(this._ngStyle);n&&this._applyChanges(n)}}_setStyle(n,r){let[o,i]=n.split("."),s=o.indexOf("-")===-1?void 0:ot.DashCase;r!=null?this._renderer.setStyle(this._ngEl.nativeElement,o,i?`${r}${i}`:r,s):this._renderer.removeStyle(this._ngEl.nativeElement,o,s)}_applyChanges(n){n.forEachRemovedItem(r=>this._setStyle(r.key,null)),n.forEachAddedItem(r=>this._setStyle(r.key,r.currentValue)),n.forEachChangedItem(r=>this._setStyle(r.key,r.currentValue))}static \u0275fac=function(r){return new(r||e)(X(ke),X(mu),X(Bi))};static \u0275dir=qe({type:e,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}})}return e})(),sO=(()=>{class e{_viewContainerRef;_viewRef=null;ngTemplateOutletContext=null;ngTemplateOutlet=null;ngTemplateOutletInjector=null;constructor(n){this._viewContainerRef=n}ngOnChanges(n){if(this._shouldRecreateView(n)){let r=this._viewContainerRef;if(this._viewRef&&r.remove(r.indexOf(this._viewRef)),!this.ngTemplateOutlet){this._viewRef=null;return}let o=this._createContextForwardProxy();this._viewRef=r.createEmbeddedView(this.ngTemplateOutlet,o,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(n){return!!n.ngTemplateOutlet||!!n.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(n,r,o)=>this.ngTemplateOutletContext?Reflect.set(this.ngTemplateOutletContext,r,o):!1,get:(n,r,o)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,r,o)}})}static \u0275fac=function(r){return new(r||e)(X(pn))};static \u0275dir=qe({type:e,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},features:[rf]})}return e})();function ng(e,t){return new b(2100,!1)}var Mu=class{createSubscription(t,n){return vu(()=>t.subscribe({next:n,error:r=>{throw r}}))}dispose(t){vu(()=>t.unsubscribe())}},_u=class{createSubscription(t,n){return t.then(n,r=>{throw r})}dispose(t){}},jb=new _u,Vb=new Mu,aO=(()=>{class e{_ref;_latestValue=null;markForCheckOnValueUpdate=!0;_subscription=null;_obj=null;_strategy=null;constructor(n){this._ref=n}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(n){if(!this._obj){if(n)try{this.markForCheckOnValueUpdate=!1,this._subscribe(n)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return n!==this._obj?(this._dispose(),this.transform(n)):this._latestValue}_subscribe(n){this._obj=n,this._strategy=this._selectStrategy(n),this._subscription=this._strategy.createSubscription(n,r=>this._updateLatestValue(n,r))}_selectStrategy(n){if(zi(n))return jb;if(iu(n))return Vb;throw ng(e,n)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(n,r){n===this._obj&&(this._latestValue=r,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static \u0275fac=function(r){return new(r||e)(X(qi,16))};static \u0275pipe=Hi({name:"async",type:e,pure:!1})}return e})();var Bb="mediumDate",Hb=new T(""),Ub=new T(""),cO=(()=>{class e{locale;defaultTimezone;defaultOptions;constructor(n,r,o){this.locale=n,this.defaultTimezone=r,this.defaultOptions=o}transform(n,r,o,i){if(n==null||n===""||n!==n)return null;try{let s=r??this.defaultOptions?.dateFormat??Bb,a=o??this.defaultOptions?.timezone??this.defaultTimezone??void 0;return Tb(n,s,i||this.locale,a)}catch(s){throw ng(e,s.message)}}static \u0275fac=function(r){return new(r||e)(X(Wi,16),X(Hb,24),X(Ub,24))};static \u0275pipe=Hi({name:"date",type:e,pure:!0})}return e})();var uO=(()=>{class e{transform(n){return JSON.stringify(n,null,2)}static \u0275fac=function(r){return new(r||e)};static \u0275pipe=Hi({name:"json",type:e,pure:!1})}return e})();var rg=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=Ft({type:e});static \u0275inj=xt({})}return e})(),Au="browser",$b="server";function Kn(e){return e===Au}function as(e){return e===$b}var lO=(()=>{class e{static \u0275prov=S({token:e,providedIn:"root",factory:()=>Kn(m(Me))?new Tu(m(ue),window):new Su})}return e})(),Tu=class{document;window;offset=()=>[0,0];constructor(t,n){this.document=t,this.window=n}setOffset(t){Array.isArray(t)?this.offset=()=>t:this.offset=t}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(t){this.window.scrollTo(t[0],t[1])}scrollToAnchor(t){let n=zb(this.document,t);n&&(this.scrollToElement(n),n.focus())}setHistoryScrollRestoration(t){this.window.history.scrollRestoration=t}scrollToElement(t){let n=t.getBoundingClientRect(),r=n.left+this.window.pageXOffset,o=n.top+this.window.pageYOffset,i=this.offset();this.window.scrollTo(r-i[0],o-i[1])}};function zb(e,t){let n=e.getElementById(t)||e.getElementsByName(t)[0];if(n)return n;if(typeof e.createTreeWalker=="function"&&e.body&&typeof e.body.attachShadow=="function"){let r=e.createTreeWalker(e.body,NodeFilter.SHOW_ELEMENT),o=r.currentNode;for(;o;){let i=o.shadowRoot;if(i){let s=i.getElementById(t)||i.querySelector(`[name="${t}"]`);if(s)return s}o=r.nextNode()}}return null}var Su=class{setOffset(t){}getScrollPosition(){return[0,0]}scrollToPosition(t){}scrollToAnchor(t){}setHistoryScrollRestoration(t){}},Qn=class{};var jr=class{},us=class{},wt=class e{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(t){t?typeof t=="string"?this.lazyInit=()=>{this.headers=new Map,t.split(` -`).forEach(n=>{let r=n.indexOf(":");if(r>0){let o=n.slice(0,r),i=n.slice(r+1).trim();this.addHeaderEntry(o,i)}})}:typeof Headers<"u"&&t instanceof Headers?(this.headers=new Map,t.forEach((n,r)=>{this.addHeaderEntry(r,n)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(t).forEach(([n,r])=>{this.setHeaderEntries(n,r)})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();let n=this.headers.get(t.toLowerCase());return n&&n.length>0?n[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,n){return this.clone({name:t,value:n,op:"a"})}set(t,n){return this.clone({name:t,value:n,op:"s"})}delete(t,n){return this.clone({name:t,value:n,op:"d"})}maybeSetNormalizedName(t,n){this.normalizedNames.has(n)||this.normalizedNames.set(n,t)}init(){this.lazyInit&&(this.lazyInit instanceof e?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(n=>{this.headers.set(n,t.headers.get(n)),this.normalizedNames.set(n,t.normalizedNames.get(n))})}clone(t){let n=new e;return n.lazyInit=this.lazyInit&&this.lazyInit instanceof e?this.lazyInit:this,n.lazyUpdate=(this.lazyUpdate||[]).concat([t]),n}applyUpdate(t){let n=t.name.toLowerCase();switch(t.op){case"a":case"s":let r=t.value;if(typeof r=="string"&&(r=[r]),r.length===0)return;this.maybeSetNormalizedName(t.name,n);let o=(t.op==="a"?this.headers.get(n):void 0)||[];o.push(...r),this.headers.set(n,o);break;case"d":let i=t.value;if(!i)this.headers.delete(n),this.normalizedNames.delete(n);else{let s=this.headers.get(n);if(!s)return;s=s.filter(a=>i.indexOf(a)===-1),s.length===0?(this.headers.delete(n),this.normalizedNames.delete(n)):this.headers.set(n,s)}break}}addHeaderEntry(t,n){let r=t.toLowerCase();this.maybeSetNormalizedName(t,r),this.headers.has(r)?this.headers.get(r).push(n):this.headers.set(r,[n])}setHeaderEntries(t,n){let r=(Array.isArray(n)?n:[n]).map(i=>i.toString()),o=t.toLowerCase();this.headers.set(o,r),this.maybeSetNormalizedName(t,o)}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(n=>t(this.normalizedNames.get(n),this.headers.get(n)))}};var Ou=class{encodeKey(t){return og(t)}encodeValue(t){return og(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}};function Wb(e,t){let n=new Map;return e.length>0&&e.replace(/^\?/,"").split("&").forEach(o=>{let i=o.indexOf("="),[s,a]=i==-1?[t.decodeKey(o),""]:[t.decodeKey(o.slice(0,i)),t.decodeValue(o.slice(i+1))],c=n.get(s)||[];c.push(a),n.set(s,c)}),n}var qb=/%(\d[a-f0-9])/gi,Zb={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function og(e){return encodeURIComponent(e).replace(qb,(t,n)=>Zb[n]??t)}function cs(e){return`${e}`}var Lt=class e{map;encoder;updates=null;cloneFrom=null;constructor(t={}){if(this.encoder=t.encoder||new Ou,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=Wb(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(n=>{let r=t.fromObject[n],o=Array.isArray(r)?r.map(cs):[cs(r)];this.map.set(n,o)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();let n=this.map.get(t);return n?n[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,n){return this.clone({param:t,value:n,op:"a"})}appendAll(t){let n=[];return Object.keys(t).forEach(r=>{let o=t[r];Array.isArray(o)?o.forEach(i=>{n.push({param:r,value:i,op:"a"})}):n.push({param:r,value:o,op:"a"})}),this.clone(n)}set(t,n){return this.clone({param:t,value:n,op:"s"})}delete(t,n){return this.clone({param:t,value:n,op:"d"})}toString(){return this.init(),this.keys().map(t=>{let n=this.encoder.encodeKey(t);return this.map.get(t).map(r=>n+"="+this.encoder.encodeValue(r)).join("&")}).filter(t=>t!=="").join("&")}clone(t){let n=new e({encoder:this.encoder});return n.cloneFrom=this.cloneFrom||this,n.updates=(this.updates||[]).concat(t),n}init(){this.map===null&&(this.map=new Map),this.cloneFrom!==null&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":let n=(t.op==="a"?this.map.get(t.param):void 0)||[];n.push(cs(t.value)),this.map.set(t.param,n);break;case"d":if(t.value!==void 0){let r=this.map.get(t.param)||[],o=r.indexOf(cs(t.value));o!==-1&&r.splice(o,1),r.length>0?this.map.set(t.param,r):this.map.delete(t.param)}else{this.map.delete(t.param);break}}}),this.cloneFrom=this.updates=null)}};var Fu=class{map=new Map;set(t,n){return this.map.set(t,n),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}};function Yb(e){switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function ig(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer}function sg(e){return typeof Blob<"u"&&e instanceof Blob}function ag(e){return typeof FormData<"u"&&e instanceof FormData}function Qb(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}var Lr=class e{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;responseType="json";method;params;urlWithParams;transferCache;constructor(t,n,r,o){this.url=n,this.method=t.toUpperCase();let i;if(Yb(this.method)||o?(this.body=r!==void 0?r:null,i=o):i=r,i&&(this.reportProgress=!!i.reportProgress,this.withCredentials=!!i.withCredentials,i.responseType&&(this.responseType=i.responseType),i.headers&&(this.headers=i.headers),i.context&&(this.context=i.context),i.params&&(this.params=i.params),this.transferCache=i.transferCache),this.headers??=new wt,this.context??=new Fu,!this.params)this.params=new Lt,this.urlWithParams=n;else{let s=this.params.toString();if(s.length===0)this.urlWithParams=n;else{let a=n.indexOf("?"),c=a===-1?"?":ah.set(f,t.setHeaders[f]),u)),t.setParams&&(l=Object.keys(t.setParams).reduce((h,f)=>h.set(f,t.setParams[f]),l)),new e(n,r,s,{params:l,headers:u,context:d,reportProgress:c,responseType:o,withCredentials:a,transferCache:i})}},jt=function(e){return e[e.Sent=0]="Sent",e[e.UploadProgress=1]="UploadProgress",e[e.ResponseHeader=2]="ResponseHeader",e[e.DownloadProgress=3]="DownloadProgress",e[e.Response=4]="Response",e[e.User=5]="User",e}(jt||{}),Vr=class{headers;status;statusText;url;ok;type;constructor(t,n=200,r="OK"){this.headers=t.headers||new wt,this.status=t.status!==void 0?t.status:n,this.statusText=t.statusText||r,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}},ls=class e extends Vr{constructor(t={}){super(t)}type=jt.ResponseHeader;clone(t={}){return new e({headers:t.headers||this.headers,status:t.status!==void 0?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}},Br=class e extends Vr{body;constructor(t={}){super(t),this.body=t.body!==void 0?t.body:null}type=jt.Response;clone(t={}){return new e({body:t.body!==void 0?t.body:this.body,headers:t.headers||this.headers,status:t.status!==void 0?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}},kt=class extends Vr{name="HttpErrorResponse";message;error;ok=!1;constructor(t){super(t,0,"Unknown Error"),this.status>=200&&this.status<300?this.message=`Http failure during parsing for ${t.url||"(unknown url)"}`:this.message=`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}},fg=200,Kb=204;function Ru(e,t){return{body:t,headers:e.headers,context:e.context,observe:e.observe,params:e.params,reportProgress:e.reportProgress,responseType:e.responseType,withCredentials:e.withCredentials,transferCache:e.transferCache}}var Jb=(()=>{class e{handler;constructor(n){this.handler=n}request(n,r,o={}){let i;if(n instanceof Lr)i=n;else{let c;o.headers instanceof wt?c=o.headers:c=new wt(o.headers);let u;o.params&&(o.params instanceof Lt?u=o.params:u=new Lt({fromObject:o.params})),i=new Lr(n,r,o.body!==void 0?o.body:null,{headers:c,context:o.context,params:u,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache})}let s=vo(i).pipe(Bs(c=>this.handler.handle(c)));if(n instanceof Lr||o.observe==="events")return s;let a=s.pipe(Te(c=>c instanceof Br));switch(o.observe||"body"){case"body":switch(i.responseType){case"arraybuffer":return a.pipe(ie(c=>{if(c.body!==null&&!(c.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return c.body}));case"blob":return a.pipe(ie(c=>{if(c.body!==null&&!(c.body instanceof Blob))throw new Error("Response is not a Blob.");return c.body}));case"text":return a.pipe(ie(c=>{if(c.body!==null&&typeof c.body!="string")throw new Error("Response is not a string.");return c.body}));case"json":default:return a.pipe(ie(c=>c.body))}case"response":return a;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(n,r={}){return this.request("DELETE",n,r)}get(n,r={}){return this.request("GET",n,r)}head(n,r={}){return this.request("HEAD",n,r)}jsonp(n,r){return this.request("JSONP",n,{params:new Lt().append(r,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(n,r={}){return this.request("OPTIONS",n,r)}patch(n,r,o={}){return this.request("PATCH",n,Ru(o,r))}post(n,r,o={}){return this.request("POST",n,Ru(o,r))}put(n,r,o={}){return this.request("PUT",n,Ru(o,r))}static \u0275fac=function(r){return new(r||e)(_(jr))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),Xb=/^\)\]\}',?\n/,eC="X-Request-URL";function cg(e){if(e.url)return e.url;let t=eC.toLocaleLowerCase();return e.headers.get(t)}var tC=(()=>{class e{fetchImpl=m(Pu,{optional:!0})?.fetch??((...n)=>globalThis.fetch(...n));ngZone=m(G);handle(n){return new O(r=>{let o=new AbortController;return this.doRequest(n,o.signal,r).then(ku,i=>r.error(new kt({error:i}))),()=>o.abort()})}doRequest(n,r,o){return Z(this,null,function*(){let i=this.createRequestInit(n),s;try{let f=this.ngZone.runOutsideAngular(()=>this.fetchImpl(n.urlWithParams,Q({signal:r},i)));nC(f),o.next({type:jt.Sent}),s=yield f}catch(f){o.error(new kt({error:f,status:f.status??0,statusText:f.statusText,url:n.urlWithParams,headers:f.headers}));return}let a=new wt(s.headers),c=s.statusText,u=cg(s)??n.urlWithParams,l=s.status,d=null;if(n.reportProgress&&o.next(new ls({headers:a,status:l,statusText:c,url:u})),s.body){let f=s.headers.get("content-length"),p=[],g=s.body.getReader(),D=0,N,L,B=typeof Zone<"u"&&Zone.current;yield this.ngZone.runOutsideAngular(()=>Z(this,null,function*(){for(;;){let{done:le,value:Y}=yield g.read();if(le)break;if(p.push(Y),D+=Y.length,n.reportProgress){L=n.responseType==="text"?(L??"")+(N??=new TextDecoder).decode(Y,{stream:!0}):void 0;let Oe=()=>o.next({type:jt.DownloadProgress,total:f?+f:void 0,loaded:D,partialText:L});B?B.run(Oe):Oe()}}}));let te=this.concatChunks(p,D);try{let le=s.headers.get("Content-Type")??"";d=this.parseBody(n,te,le)}catch(le){o.error(new kt({error:le,headers:new wt(s.headers),status:s.status,statusText:s.statusText,url:cg(s)??n.urlWithParams}));return}}l===0&&(l=d?fg:0),l>=200&&l<300?(o.next(new Br({body:d,headers:a,status:l,statusText:c,url:u})),o.complete()):o.error(new kt({error:d,headers:a,status:l,statusText:c,url:u}))})}parseBody(n,r,o){switch(n.responseType){case"json":let i=new TextDecoder().decode(r).replace(Xb,"");return i===""?null:JSON.parse(i);case"text":return new TextDecoder().decode(r);case"blob":return new Blob([r],{type:o});case"arraybuffer":return r.buffer}}createRequestInit(n){let r={},o=n.withCredentials?"include":void 0;if(n.headers.forEach((i,s)=>r[i]=s.join(",")),n.headers.has("Accept")||(r.Accept="application/json, text/plain, */*"),!n.headers.has("Content-Type")){let i=n.detectContentTypeHeader();i!==null&&(r["Content-Type"]=i)}return{body:n.serializeBody(),method:n.method,headers:r,credentials:o}}concatChunks(n,r){let o=new Uint8Array(r),i=0;for(let s of n)o.set(s,i),i+=s.length;return o}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),Pu=class{};function ku(){}function nC(e){e.then(ku,ku)}function hg(e,t){return t(e)}function rC(e,t){return(n,r)=>t.intercept(n,{handle:o=>e(o,r)})}function oC(e,t,n){return(r,o)=>Ii(n,()=>t(r,i=>e(i,o)))}var iC=new T(""),Lu=new T(""),sC=new T(""),pg=new T("",{providedIn:"root",factory:()=>!0});function aC(){let e=null;return(t,n)=>{e===null&&(e=(m(iC,{optional:!0})??[]).reduceRight(rC,hg));let r=m(Ot);if(m(pg)){let i=r.add();return e(t,n).pipe(bo(()=>r.remove(i)))}else return e(t,n)}}var ug=(()=>{class e extends jr{backend;injector;chain=null;pendingTasks=m(Ot);contributeToStability=m(pg);constructor(n,r){super(),this.backend=n,this.injector=r}handle(n){if(this.chain===null){let r=Array.from(new Set([...this.injector.get(Lu),...this.injector.get(sC,[])]));this.chain=r.reduceRight((o,i)=>oC(o,i,this.injector),hg)}if(this.contributeToStability){let r=this.pendingTasks.add();return this.chain(n,o=>this.backend.handle(o)).pipe(bo(()=>this.pendingTasks.remove(r)))}else return this.chain(n,r=>this.backend.handle(r))}static \u0275fac=function(r){return new(r||e)(_(us),_(et))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})();var cC=/^\)\]\}',?\n/;function uC(e){return"responseURL"in e&&e.responseURL?e.responseURL:/^X-Request-URL:/m.test(e.getAllResponseHeaders())?e.getResponseHeader("X-Request-URL"):null}var lg=(()=>{class e{xhrFactory;constructor(n){this.xhrFactory=n}handle(n){if(n.method==="JSONP")throw new b(-2800,!1);let r=this.xhrFactory;return(r.\u0275loadImpl?ye(r.\u0275loadImpl()):vo(null)).pipe(Zt(()=>new O(i=>{let s=r.build();if(s.open(n.method,n.urlWithParams),n.withCredentials&&(s.withCredentials=!0),n.headers.forEach((g,D)=>s.setRequestHeader(g,D.join(","))),n.headers.has("Accept")||s.setRequestHeader("Accept","application/json, text/plain, */*"),!n.headers.has("Content-Type")){let g=n.detectContentTypeHeader();g!==null&&s.setRequestHeader("Content-Type",g)}if(n.responseType){let g=n.responseType.toLowerCase();s.responseType=g!=="json"?g:"text"}let a=n.serializeBody(),c=null,u=()=>{if(c!==null)return c;let g=s.statusText||"OK",D=new wt(s.getAllResponseHeaders()),N=uC(s)||n.url;return c=new ls({headers:D,status:s.status,statusText:g,url:N}),c},l=()=>{let{headers:g,status:D,statusText:N,url:L}=u(),B=null;D!==Kb&&(B=typeof s.response>"u"?s.responseText:s.response),D===0&&(D=B?fg:0);let te=D>=200&&D<300;if(n.responseType==="json"&&typeof B=="string"){let le=B;B=B.replace(cC,"");try{B=B!==""?JSON.parse(B):null}catch(Y){B=le,te&&(te=!1,B={error:Y,text:B})}}te?(i.next(new Br({body:B,headers:g,status:D,statusText:N,url:L||void 0})),i.complete()):i.error(new kt({error:B,headers:g,status:D,statusText:N,url:L||void 0}))},d=g=>{let{url:D}=u(),N=new kt({error:g,status:s.status||0,statusText:s.statusText||"Unknown Error",url:D||void 0});i.error(N)},h=!1,f=g=>{h||(i.next(u()),h=!0);let D={type:jt.DownloadProgress,loaded:g.loaded};g.lengthComputable&&(D.total=g.total),n.responseType==="text"&&s.responseText&&(D.partialText=s.responseText),i.next(D)},p=g=>{let D={type:jt.UploadProgress,loaded:g.loaded};g.lengthComputable&&(D.total=g.total),i.next(D)};return s.addEventListener("load",l),s.addEventListener("error",d),s.addEventListener("timeout",d),s.addEventListener("abort",d),n.reportProgress&&(s.addEventListener("progress",f),a!==null&&s.upload&&s.upload.addEventListener("progress",p)),s.send(a),i.next({type:jt.Sent}),()=>{s.removeEventListener("error",d),s.removeEventListener("abort",d),s.removeEventListener("load",l),s.removeEventListener("timeout",d),n.reportProgress&&(s.removeEventListener("progress",f),a!==null&&s.upload&&s.upload.removeEventListener("progress",p)),s.readyState!==s.DONE&&s.abort()}})))}static \u0275fac=function(r){return new(r||e)(_(Qn))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),gg=new T(""),lC="XSRF-TOKEN",dC=new T("",{providedIn:"root",factory:()=>lC}),fC="X-XSRF-TOKEN",hC=new T("",{providedIn:"root",factory:()=>fC}),ds=class{},pC=(()=>{class e{doc;platform;cookieName;lastCookieString="";lastToken=null;parseCount=0;constructor(n,r,o){this.doc=n,this.platform=r,this.cookieName=o}getToken(){if(this.platform==="server")return null;let n=this.doc.cookie||"";return n!==this.lastCookieString&&(this.parseCount++,this.lastToken=ss(n,this.cookieName),this.lastCookieString=n),this.lastToken}static \u0275fac=function(r){return new(r||e)(_(ue),_(Me),_(dC))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})();function gC(e,t){let n=e.url.toLowerCase();if(!m(gg)||e.method==="GET"||e.method==="HEAD"||n.startsWith("http://")||n.startsWith("https://"))return t(e);let r=m(ds).getToken(),o=m(hC);return r!=null&&!e.headers.has(o)&&(e=e.clone({headers:e.headers.set(o,r)})),t(e)}var mg=function(e){return e[e.Interceptors=0]="Interceptors",e[e.LegacyInterceptors=1]="LegacyInterceptors",e[e.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",e[e.NoXsrfProtection=3]="NoXsrfProtection",e[e.JsonpSupport=4]="JsonpSupport",e[e.RequestsMadeViaParent=5]="RequestsMadeViaParent",e[e.Fetch=6]="Fetch",e}(mg||{});function mC(e,t){return{\u0275kind:e,\u0275providers:t}}function CO(...e){let t=[Jb,lg,ug,{provide:jr,useExisting:ug},{provide:us,useFactory:()=>m(tC,{optional:!0})??m(lg)},{provide:Lu,useValue:gC,multi:!0},{provide:gg,useValue:!0},{provide:ds,useClass:pC}];for(let n of e)t.push(...n.\u0275providers);return Ec(t)}var dg=new T("");function MO(){return mC(mg.LegacyInterceptors,[{provide:dg,useFactory:aC},{provide:Lu,useExisting:dg,multi:!0}])}var Vu=class extends ns{supportsDOMEvents=!0},Bu=class e extends Vu{static makeCurrent(){Kp(new e)}onAndCancel(t,n,r){return t.addEventListener(n,r),()=>{t.removeEventListener(n,r)}}dispatchEvent(t,n){t.dispatchEvent(n)}remove(t){t.remove()}createElement(t,n){return n=n||this.getDefaultDocument(),n.createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,n){return n==="window"?window:n==="document"?t:n==="body"?t.body:null}getBaseHref(t){let n=yC();return n==null?null:vC(n)}resetBaseElement(){Hr=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return ss(document.cookie,t)}},Hr=null;function yC(){return Hr=Hr||document.querySelector("base"),Hr?Hr.getAttribute("href"):null}function vC(e){return new URL(e,document.baseURI).pathname}var Hu=class{addToWindow(t){ce.getAngularTestability=(r,o=!0)=>{let i=t.findTestabilityInTree(r,o);if(i==null)throw new b(5103,!1);return i},ce.getAllAngularTestabilities=()=>t.getAllTestabilities(),ce.getAllAngularRootElements=()=>t.getAllRootElements();let n=r=>{let o=ce.getAllAngularTestabilities(),i=o.length,s=function(){i--,i==0&&r()};o.forEach(a=>{a.whenStable(s)})};ce.frameworkStabilizers||(ce.frameworkStabilizers=[]),ce.frameworkStabilizers.push(n)}findTestabilityInTree(t,n,r){if(n==null)return null;let o=t.getTestability(n);return o??(r?gn().isShadowRoot(n)?this.findTestabilityInTree(t,n.host,!0):this.findTestabilityInTree(t,n.parentElement,!0):null)}},DC=(()=>{class e{build(){return new XMLHttpRequest}static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),Uu=new T(""),Ig=(()=>{class e{_zone;_plugins;_eventNameToPlugin=new Map;constructor(n,r){this._zone=r,n.forEach(o=>{o.manager=this}),this._plugins=n.slice().reverse()}addEventListener(n,r,o){return this._findPluginFor(r).addEventListener(n,r,o)}getZone(){return this._zone}_findPluginFor(n){let r=this._eventNameToPlugin.get(n);if(r)return r;if(r=this._plugins.find(i=>i.supports(n)),!r)throw new b(5101,!1);return this._eventNameToPlugin.set(n,r),r}static \u0275fac=function(r){return new(r||e)(_(Uu),_(G))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),fs=class{_doc;constructor(t){this._doc=t}manager},$u="ng-app-id";function yg(e){for(let t of e)t.remove()}function vg(e,t){let n=t.createElement("style");return n.textContent=e,n}function EC(e,t,n){let r=e.head?.querySelectorAll(`style[${$u}="${t}"]`);if(r)for(let o of r)o.textContent&&(o.removeAttribute($u),n.set(o.textContent,{usage:0,elements:[o]}))}function zu(e,t){let n=t.createElement("link");return n.setAttribute("rel","stylesheet"),n.setAttribute("href",e),n}var bg=(()=>{class e{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;isServer;constructor(n,r,o,i={}){this.doc=n,this.appId=r,this.nonce=o,this.isServer=as(i),EC(n,r,this.inline),this.hosts.add(n.head)}addStyles(n,r){for(let o of n)this.addUsage(o,this.inline,vg);r?.forEach(o=>this.addUsage(o,this.external,zu))}removeStyles(n,r){for(let o of n)this.removeUsage(o,this.inline);r?.forEach(o=>this.removeUsage(o,this.external))}addUsage(n,r,o){let i=r.get(n);i?i.usage++:r.set(n,{usage:1,elements:[...this.hosts].map(s=>this.addElement(s,o(n,this.doc)))})}removeUsage(n,r){let o=r.get(n);o&&(o.usage--,o.usage<=0&&(yg(o.elements),r.delete(n)))}ngOnDestroy(){for(let[,{elements:n}]of[...this.inline,...this.external])yg(n);this.hosts.clear()}addHost(n){this.hosts.add(n);for(let[r,{elements:o}]of this.inline)o.push(this.addElement(n,vg(r,this.doc)));for(let[r,{elements:o}]of this.external)o.push(this.addElement(n,zu(r,this.doc)))}removeHost(n){this.hosts.delete(n)}addElement(n,r){return this.nonce&&r.setAttribute("nonce",this.nonce),this.isServer&&r.setAttribute($u,this.appId),n.appendChild(r)}static \u0275fac=function(r){return new(r||e)(_(ue),_(Vc),_(Hc,8),_(Me))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),ju={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},Wu=/%COMP%/g,Cg="%COMP%",wC=`_nghost-${Cg}`,IC=`_ngcontent-${Cg}`,bC=!0,CC=new T("",{providedIn:"root",factory:()=>bC});function MC(e){return IC.replace(Wu,e)}function _C(e){return wC.replace(Wu,e)}function Mg(e,t){return t.map(n=>n.replace(Wu,e))}var Dg=(()=>{class e{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;platformId;ngZone;nonce;rendererByCompId=new Map;defaultRenderer;platformIsServer;constructor(n,r,o,i,s,a,c,u=null){this.eventManager=n,this.sharedStylesHost=r,this.appId=o,this.removeStylesOnCompDestroy=i,this.doc=s,this.platformId=a,this.ngZone=c,this.nonce=u,this.platformIsServer=as(a),this.defaultRenderer=new Ur(n,s,c,this.platformIsServer)}createRenderer(n,r){if(!n||!r)return this.defaultRenderer;this.platformIsServer&&r.encapsulation===rt.ShadowDom&&(r=ae(Q({},r),{encapsulation:rt.Emulated}));let o=this.getOrCreateRenderer(n,r);return o instanceof hs?o.applyToHost(n):o instanceof $r&&o.applyStyles(),o}getOrCreateRenderer(n,r){let o=this.rendererByCompId,i=o.get(r.id);if(!i){let s=this.doc,a=this.ngZone,c=this.eventManager,u=this.sharedStylesHost,l=this.removeStylesOnCompDestroy,d=this.platformIsServer;switch(r.encapsulation){case rt.Emulated:i=new hs(c,u,r,this.appId,l,s,a,d);break;case rt.ShadowDom:return new Gu(c,u,n,r,s,a,this.nonce,d);default:i=new $r(c,u,r,l,s,a,d);break}o.set(r.id,i)}return i}ngOnDestroy(){this.rendererByCompId.clear()}static \u0275fac=function(r){return new(r||e)(_(Ig),_(bg),_(Vc),_(CC),_(ue),_(Me),_(G),_(Hc))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),Ur=class{eventManager;doc;ngZone;platformIsServer;data=Object.create(null);throwOnSyntheticProps=!0;constructor(t,n,r,o){this.eventManager=t,this.doc=n,this.ngZone=r,this.platformIsServer=o}destroy(){}destroyNode=null;createElement(t,n){return n?this.doc.createElementNS(ju[n]||n,t):this.doc.createElement(t)}createComment(t){return this.doc.createComment(t)}createText(t){return this.doc.createTextNode(t)}appendChild(t,n){(Eg(t)?t.content:t).appendChild(n)}insertBefore(t,n,r){t&&(Eg(t)?t.content:t).insertBefore(n,r)}removeChild(t,n){n.remove()}selectRootElement(t,n){let r=typeof t=="string"?this.doc.querySelector(t):t;if(!r)throw new b(-5104,!1);return n||(r.textContent=""),r}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,n,r,o){if(o){n=o+":"+n;let i=ju[o];i?t.setAttributeNS(i,n,r):t.setAttribute(n,r)}else t.setAttribute(n,r)}removeAttribute(t,n,r){if(r){let o=ju[r];o?t.removeAttributeNS(o,n):t.removeAttribute(`${r}:${n}`)}else t.removeAttribute(n)}addClass(t,n){t.classList.add(n)}removeClass(t,n){t.classList.remove(n)}setStyle(t,n,r,o){o&(ot.DashCase|ot.Important)?t.style.setProperty(n,r,o&ot.Important?"important":""):t.style[n]=r}removeStyle(t,n,r){r&ot.DashCase?t.style.removeProperty(n):t.style[n]=""}setProperty(t,n,r){t!=null&&(t[n]=r)}setValue(t,n){t.nodeValue=n}listen(t,n,r){if(typeof t=="string"&&(t=gn().getGlobalEventTarget(this.doc,t),!t))throw new Error(`Unsupported event target ${t} for event ${n}`);return this.eventManager.addEventListener(t,n,this.decoratePreventDefault(r))}decoratePreventDefault(t){return n=>{if(n==="__ngUnwrap__")return t;(this.platformIsServer?this.ngZone.runGuarded(()=>t(n)):t(n))===!1&&n.preventDefault()}}};function Eg(e){return e.tagName==="TEMPLATE"&&e.content!==void 0}var Gu=class extends Ur{sharedStylesHost;hostEl;shadowRoot;constructor(t,n,r,o,i,s,a,c){super(t,i,s,c),this.sharedStylesHost=n,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);let u=Mg(o.id,o.styles);for(let d of u){let h=document.createElement("style");a&&h.setAttribute("nonce",a),h.textContent=d,this.shadowRoot.appendChild(h)}let l=o.getExternalStyles?.();if(l)for(let d of l){let h=zu(d,i);a&&h.setAttribute("nonce",a),this.shadowRoot.appendChild(h)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}appendChild(t,n){return super.appendChild(this.nodeOrShadowRoot(t),n)}insertBefore(t,n,r){return super.insertBefore(this.nodeOrShadowRoot(t),n,r)}removeChild(t,n){return super.removeChild(null,n)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}},$r=class extends Ur{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(t,n,r,o,i,s,a,c){super(t,i,s,a),this.sharedStylesHost=n,this.removeStylesOnCompDestroy=o,this.styles=c?Mg(c,r.styles):r.styles,this.styleUrls=r.getExternalStyles?.(c)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},hs=class extends $r{contentAttr;hostAttr;constructor(t,n,r,o,i,s,a,c){let u=o+"-"+r.id;super(t,n,r,i,s,a,c,u),this.contentAttr=MC(u),this.hostAttr=_C(u)}applyToHost(t){this.applyStyles(),this.setAttribute(t,this.hostAttr,"")}createElement(t,n){let r=super.createElement(t,n);return super.setAttribute(r,this.contentAttr,""),r}},TC=(()=>{class e extends fs{constructor(n){super(n)}supports(n){return!0}addEventListener(n,r,o){return n.addEventListener(r,o,!1),()=>this.removeEventListener(n,r,o)}removeEventListener(n,r,o){return n.removeEventListener(r,o)}static \u0275fac=function(r){return new(r||e)(_(ue))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})(),wg=["alt","control","meta","shift"],SC={"\b":"Backspace"," ":"Tab","\x7F":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},NC={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey},xC=(()=>{class e extends fs{constructor(n){super(n)}supports(n){return e.parseEventName(n)!=null}addEventListener(n,r,o){let i=e.parseEventName(r),s=e.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>gn().onAndCancel(n,i.domEventName,s))}static parseEventName(n){let r=n.toLowerCase().split("."),o=r.shift();if(r.length===0||!(o==="keydown"||o==="keyup"))return null;let i=e._normalizeKey(r.pop()),s="",a=r.indexOf("code");if(a>-1&&(r.splice(a,1),s="code."),wg.forEach(u=>{let l=r.indexOf(u);l>-1&&(r.splice(l,1),s+=u+".")}),s+=i,r.length!=0||i.length===0)return null;let c={};return c.domEventName=o,c.fullKey=s,c}static matchEventFullKeyCode(n,r){let o=SC[n.key]||n.key,i="";return r.indexOf("code.")>-1&&(o=n.code,i="code."),o==null||!o?!1:(o=o.toLowerCase(),o===" "?o="space":o==="."&&(o="dot"),wg.forEach(s=>{if(s!==o){let a=NC[s];a(n)&&(i+=s+".")}}),i+=o,i===r)}static eventCallback(n,r,o){return i=>{e.matchEventFullKeyCode(i,n)&&o.runGuarded(()=>r(i))}}static _normalizeKey(n){return n==="esc"?"escape":n}static \u0275fac=function(r){return new(r||e)(_(ue))};static \u0275prov=S({token:e,factory:e.\u0275fac})}return e})();function AC(){Bu.makeCurrent()}function RC(){return new nt}function OC(){return Yf(document),document}var FC=[{provide:Me,useValue:Au},{provide:Bc,useValue:AC,multi:!0},{provide:ue,useFactory:OC,deps:[]}],HO=pu(Vp,"browser",FC),PC=new T(""),kC=[{provide:Or,useClass:Hu,deps:[]},{provide:ru,useClass:Ui,deps:[G,$i,Or]},{provide:Ui,useClass:Ui,deps:[G,$i,Or]}],LC=[{provide:Ei,useValue:"root"},{provide:nt,useFactory:RC,deps:[]},{provide:Uu,useClass:TC,multi:!0,deps:[ue,G,Me]},{provide:Uu,useClass:xC,multi:!0,deps:[ue]},Dg,bg,Ig,{provide:Un,useExisting:Dg},{provide:Qn,useClass:DC,deps:[]},[]],UO=(()=>{class e{constructor(n){}static \u0275fac=function(r){return new(r||e)(_(PC,12))};static \u0275mod=Ft({type:e});static \u0275inj=xt({providers:[...LC,...kC],imports:[rg,Bp]})}return e})();var $O=(()=>{class e{_doc;constructor(n){this._doc=n}getTitle(){return this._doc.title}setTitle(n){this._doc.title=n||""}static \u0275fac=function(r){return new(r||e)(_(ue))};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var qu=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275prov=S({token:e,factory:function(r){let o=null;return r?o=new(r||e):o=_(jC),o},providedIn:"root"})}return e})(),jC=(()=>{class e extends qu{_doc;constructor(n){super(),this._doc=n}sanitize(n,r){if(r==null)return null;switch(n){case Ae.NONE:return r;case Ae.HTML:return mt(r,"HTML")?Le(r):$c(this._doc,String(r)).toString();case Ae.STYLE:return mt(r,"Style")?Le(r):r;case Ae.SCRIPT:if(mt(r,"Script"))return Le(r);throw new b(5200,!1);case Ae.URL:return mt(r,"URL")?Le(r):Oi(String(r));case Ae.RESOURCE_URL:if(mt(r,"ResourceURL"))return Le(r);throw new b(5201,!1);default:throw new b(5202,!1)}}bypassSecurityTrustHtml(n){return th(n)}bypassSecurityTrustStyle(n){return nh(n)}bypassSecurityTrustScript(n){return rh(n)}bypassSecurityTrustUrl(n){return oh(n)}bypassSecurityTrustResourceUrl(n){return ih(n)}static \u0275fac=function(r){return new(r||e)(_(ue))};static \u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var gs=new T("HIGHLIGHT_OPTIONS");var Jn=function(e){return e.FULL_WITH_CORE_LIBRARY_IMPORTS="The full library and the core library were imported, only one of them should be imported!",e.FULL_WITH_LANGUAGE_IMPORTS="The highlighting languages were imported they are not needed!",e.CORE_WITHOUT_LANGUAGE_IMPORTS="The highlighting languages were not imported!",e.LANGUAGE_WITHOUT_CORE_IMPORTS="The core library was not imported!",e.NO_FULL_AND_NO_CORE_IMPORTS="Highlight.js library was not imported!",e}(Jn||{}),VC=(()=>{class e{constructor(){this.document=m(ue),this.isPlatformBrowser=Kn(m(Me)),this.options=m(gs,{optional:!0}),this._ready=new Gt(null),this.ready=Ls(this._ready.asObservable().pipe(Te(n=>!!n))),this.isPlatformBrowser&&(this.document.defaultView.hljs?this._ready.next(this.document.defaultView.hljs):this._loadLibrary().pipe(Zt(n=>this.options?.lineNumbersLoader?(this.document.defaultView.hljs=n,this.loadLineNumbers().pipe(Sn(r=>{r.activateLineNumbers(),this._ready.next(n)}))):(this._ready.next(n),Ye)),lr(n=>(console.error("[HLJS] ",n),this._ready.error(n),Ye))).subscribe(),this.options?.themePath&&this.loadTheme(this.options.themePath))}_loadLibrary(){if(this.options){if(this.options.fullLibraryLoader&&this.options.coreLibraryLoader)return qt(()=>Jn.FULL_WITH_CORE_LIBRARY_IMPORTS);if(this.options.fullLibraryLoader&&this.options.languages)return qt(()=>Jn.FULL_WITH_LANGUAGE_IMPORTS);if(this.options.coreLibraryLoader&&!this.options.languages)return qt(()=>Jn.CORE_WITHOUT_LANGUAGE_IMPORTS);if(!this.options.coreLibraryLoader&&this.options.languages)return qt(()=>Jn.LANGUAGE_WITHOUT_CORE_IMPORTS);if(this.options.fullLibraryLoader)return this.loadFullLibrary();if(this.options.coreLibraryLoader&&this.options.languages&&Object.keys(this.options.languages).length)return this.loadCoreLibrary().pipe(Zt(n=>this._loadLanguages(n)))}return qt(()=>Jn.NO_FULL_AND_NO_CORE_IMPORTS)}_loadLanguages(n){let r=Object.entries(this.options.languages).map(([o,i])=>Zu(i()).pipe(Sn(s=>n.registerLanguage(o,s))));return js(r).pipe(ie(()=>n))}loadCoreLibrary(){return Zu(this.options.coreLibraryLoader())}loadFullLibrary(){return Zu(this.options.fullLibraryLoader())}loadLineNumbers(){return ye(this.options.lineNumbersLoader())}setTheme(n){this.isPlatformBrowser&&(this._themeLinkElement?this._themeLinkElement.href=n:this.loadTheme(n))}loadTheme(n){this._themeLinkElement=this.document.createElement("link"),this._themeLinkElement.href=n,this._themeLinkElement.type="text/css",this._themeLinkElement.rel="stylesheet",this._themeLinkElement.media="screen,print",this.document.head.appendChild(this._themeLinkElement)}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),Zu=e=>ye(e).pipe(Te(t=>!!t?.default),ie(t=>t.default)),Qu=(()=>{class e{constructor(){this.loader=m(VC),this.options=m(gs,{optional:!0}),this.hljsSignal=Gi(null),this.hljs=Hp(()=>this.hljsSignal()),this.loader.ready.then(n=>{this.hljsSignal.set(n),this.options?.highlightOptions&&n.configure(this.options.highlightOptions)})}highlight(n,r){return Z(this,null,function*(){return(yield this.loader.ready).highlight(n,r)})}highlightAuto(n,r){return Z(this,null,function*(){return(yield this.loader.ready).highlightAuto(n,r)})}highlightElement(n){return Z(this,null,function*(){(yield this.loader.ready).highlightElement(n)})}highlightAll(){return Z(this,null,function*(){(yield this.loader.ready).highlightAll()})}configure(n){return Z(this,null,function*(){(yield this.loader.ready).configure(n)})}registerLanguage(n,r){return Z(this,null,function*(){(yield this.loader.ready).registerLanguage(n,r)})}unregisterLanguage(n){return Z(this,null,function*(){(yield this.loader.ready).unregisterLanguage(n)})}registerAliases(o,i){return Z(this,arguments,function*(n,{languageName:r}){(yield this.loader.ready).registerAliases(n,{languageName:r})})}listLanguages(){return Z(this,null,function*(){return(yield this.loader.ready).listLanguages()})}getLanguage(n){return Z(this,null,function*(){return(yield this.loader.ready).getLanguage(n)})}safeMode(){return Z(this,null,function*(){(yield this.loader.ready).safeMode()})}debugMode(){return Z(this,null,function*(){(yield this.loader.ready).debugMode()})}lineNumbersBlock(n,r){return Z(this,null,function*(){let o=yield this.loader.ready;o.lineNumbersBlock&&o.lineNumbersBlock(n,r)})}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275prov=S({token:e,factory:e.\u0275fac,providedIn:"root"})}}return e})(),Yu;function BC(){if(!Yu)try{Yu=window?.trustedTypes?.createPolicy("ngx-highlightjs",{createHTML:e=>e})}catch{}return Yu}function HC(e){return BC()?.createHTML(e)||e}var ps=(()=>{class e{constructor(){this._hljs=m(Qu),this._nativeElement=m(ke).nativeElement,this._sanitizer=m(qu),this._platform=m(Me),Kn(this._platform)&&(Yn(()=>{let n=this.code();this.setTextContent(n||""),n&&this.highlightElement(n)}),Yn(()=>{let n=this.highlightResult();this.setInnerHTML(n?.value),this.highlighted.emit(n)}))}setTextContent(n){requestAnimationFrame(()=>this._nativeElement.textContent=n)}setInnerHTML(n){requestAnimationFrame(()=>this._nativeElement.innerHTML=HC(this._sanitizer.sanitize(Ae.HTML,n)||""))}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275dir=qe({type:e,standalone:!1})}}return e})(),tF=(()=>{class e extends ps{constructor(){super(...arguments),this.code=Hf(null,{alias:"highlight"}),this.highlightResult=Gi(null),this.highlighted=new Xe}highlightElement(n){return Z(this,null,function*(){let r=yield this._hljs.highlight(n,{language:this.language,ignoreIllegals:this.ignoreIllegals});this.highlightResult.set(r)})}static{this.\u0275fac=(()=>{let n;return function(o){return(n||(n=Rf(e)))(o||e)}})()}static{this.\u0275dir=qe({type:e,selectors:[["","highlight",""]],hostVars:2,hostBindings:function(r,o){r&2&&fu("hljs",!0)},inputs:{code:[1,"highlight","code"],language:"language",ignoreIllegals:[2,"ignoreIllegals","ignoreIllegals",Pr]},outputs:{highlighted:"highlighted"},features:[xp([{provide:ps,useExisting:e}]),Fr,cu]})}}return e})();var nF=(()=>{class e{static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275mod=Ft({type:e})}static{this.\u0275inj=xt({})}}return e})();function lF(){let e=window,t=document,n="hljs-ln",r="hljs-ln-line",o="hljs-ln-code",i="hljs-ln-numbers",s="hljs-ln-n",a="data-line-number",c=/\r\n|\r|\n/g;e.hljs?(e.hljs.initLineNumbersOnLoad=f,e.hljs.lineNumbersBlock=D,e.hljs.lineNumbersValue=N,h()):e.console.error("highlight.js not detected!");function u(y){let v=y;for(;v;){if(v.className&&v.className.indexOf("hljs-ln-code")!==-1)return!0;v=v.parentNode}return!1}function l(y){let v=y;for(;v.nodeName!=="TABLE";)v=v.parentNode;return v}function d(y){let v=y.toString(),R=y.anchorNode;for(;R.nodeName!=="TD";)R=R.parentNode;let q=y.focusNode;for(;q.nodeName!=="TD";)q=q.parentNode;let ne=parseInt(R.dataset.lineNumber),st=parseInt(q.dataset.lineNumber);if(ne!=st){let mn=R.textContent,yn=q.textContent;if(ne>st){let Vt=ne;ne=st,st=Vt,Vt=mn,mn=yn,yn=Vt}for(;v.indexOf(mn)!==0;)mn=mn.slice(1);for(;v.lastIndexOf(yn)===-1;)yn=yn.slice(0,-1);let ms=mn,xg=l(R);for(let Vt=ne+1;Vt1||v.singleLine){let q="";for(let ne=0,st=R.length;ne
{6}',[r,i,s,a,o,ne+v.startFrom,R[ne].length>0?R[ne]:" "]);return er('{1}
',[n,q])}return y}function te(y,v){return v=v||{},{singleLine:le(v),startFrom:Y(y,v)}}function le(y){return y.singleLine?y.singleLine:!1}function Y(y,v){let q=1;isFinite(v.startFrom)&&(q=v.startFrom);let ne=Sg(y,"data-ln-start-from");return ne!==null&&(q=Ng(ne,1)),q}function Oe(y){let v=y.childNodes;for(let R in v)if(v.hasOwnProperty(R)){let q=v[R];_g(q.textContent)>0&&(q.childNodes.length>0?Oe(q):Xn(q.parentNode))}}function Xn(y){let v=y.className;if(!/hljs-/.test(v))return;let R=zr(y.innerHTML),q="";for(let ne=0;ne0?R[ne]:" ";q+=er(`{1} -`,[v,st])}y.innerHTML=q.trim()}function zr(y){return y.length===0?[]:y.split(c)}function _g(y){return(y.trim().match(c)||[]).length}function Tg(y){e.setTimeout(y,0)}function er(y,v){return y.replace(/\{(\d+)\}/g,function(R,q){return v[q]!==void 0?v[q]:R})}function Sg(y,v){return y.hasAttribute(v)?y.getAttribute(v):null}function Ng(y,v){if(!y)return v;let R=Number(y);return isFinite(R)?R:v}}var dF=(()=>{class e{constructor(){this._platform=m(Me),this.options=m(gs)?.lineNumbersOptions,this._hljs=m(Qu),this._highlight=m(ps),this._nativeElement=m(ke).nativeElement,this.startFrom=this.options?.startFrom,this.singleLine=this.options?.singleLine,Kn(this._platform)&&Yn(()=>{this._highlight.highlightResult()&&this.addLineNumbers()})}addLineNumbers(){this.destroyLineNumbersObserver(),requestAnimationFrame(()=>Z(this,null,function*(){yield this._hljs.lineNumbersBlock(this._nativeElement,{startFrom:this.startFrom,singleLine:this.singleLine}),this._lineNumbersObs=new MutationObserver(()=>{this._nativeElement.firstElementChild?.tagName.toUpperCase()==="TABLE"&&this._nativeElement.classList.add("hljs-line-numbers"),this.destroyLineNumbersObserver()}),this._lineNumbersObs.observe(this._nativeElement,{childList:!0})}))}destroyLineNumbersObserver(){this._lineNumbersObs&&(this._lineNumbersObs.disconnect(),this._lineNumbersObs=null)}static{this.\u0275fac=function(r){return new(r||e)}}static{this.\u0275dir=qe({type:e,selectors:[["","highlight","","lineNumbers",""],["","highlightAuto","","lineNumbers",""]],inputs:{startFrom:[2,"startFrom","startFrom",yu],singleLine:[2,"singleLine","singleLine",Pr]},features:[Fr]})}}return e})();export{J as a,$g as b,O as c,Fs as d,Ps as e,Ie as f,Gt as g,sr as h,Ye as i,ye as j,vo as k,qt as l,Xg as m,ct as n,tm as o,ie as p,lm as q,Ue as r,cr as s,_n as t,fm as u,js as v,Vs as w,ur as x,Dm as y,Te as z,wm as A,bm as B,lr as C,Bs as D,Cm as E,dr as F,Tn as G,Hs as H,Mm as I,_m as J,bo as K,jl as L,$s as M,Nm as N,xm as O,Am as P,Gs as Q,Rm as R,Om as S,Fm as T,Zt as U,Pm as V,km as W,Sn as X,b as Y,Pd as Z,S as _,xt as $,zA as aa,T as ba,k as ca,_ as da,m as ea,vc as fa,$d as ga,Ec as ha,et as ia,Ii as ja,rf as ka,GA as la,WA as ma,qA as na,ZA as oa,Rf as pa,Ff as qa,Fe as ra,Kl as sa,Ot as ta,Xe as ua,G as va,nt as wa,Hf as xa,ke as ya,Ca as za,Vc as Aa,Me as Ba,YA as Ca,Hc as Da,Av as Ea,Rv as Fa,Ae as Ga,QA as Ha,Xv as Ia,KA as Ja,JA as Ka,X as La,XA as Ma,un as Na,Hn as Oa,Nt as Pa,Ha as Qa,Un as Ra,Bi as Sa,LE as Ta,tR as Ua,Ft as Va,qe as Wa,Hi as Xa,Kh as Ya,UE as Za,zi as _a,zE as $a,ep as ab,hn as bb,pn as cb,Gi as db,oR as eb,cu as fb,Fr as gb,Ow as hb,kw as ib,Zw as jb,gp as kb,fu as lb,iR as mb,sR as nb,aR as ob,cR as pb,uR as qb,lR as rb,bp as sb,Cp as tb,aI as ub,Mp as vb,_p as wb,lI as xb,dR as yb,fI as zb,hI as Ab,EI as Bb,wI as Cb,fR as Db,hR as Eb,pR as Fb,MI as Gb,gR as Hb,mR as Ib,yR as Jb,vR as Kb,DR as Lb,ER as Mb,wR as Nb,IR as Ob,SI as Pb,Sp as Qb,NI as Rb,xI as Sb,bR as Tb,AI as Ub,xp as Vb,CR as Wb,MR as Xb,_R as Yb,TR as Zb,SR as _b,NR as $b,xR as ac,AR as bc,Wi as cc,qi as dc,Pr as ec,yu as fc,Hp as gc,vu as hc,Yn as ic,RR as jc,OR as kc,gn as lc,ue as mc,eO as nc,os as oc,Jp as pc,hb as qc,tO as rc,pb as sc,nO as tc,rO as uc,oO as vc,iO as wc,sO as xc,aO as yc,cO as zc,uO as Ac,rg as Bc,Kn as Cc,lO as Dc,wt as Ec,Lt as Fc,Jb as Gc,iC as Hc,CO as Ic,MO as Jc,Dg as Kc,HO as Lc,UO as Mc,$O as Nc,qu as Oc,gs as Pc,tF as Qc,nF as Rc,lF as Sc,dF as Tc}; diff --git a/matchbox-server/src/main/resources/static/browser/chunk-SQRREDYF.js b/matchbox-server/src/main/resources/static/browser/chunk-SQRREDYF.js new file mode 100644 index 00000000000..3b830a8b9e7 --- /dev/null +++ b/matchbox-server/src/main/resources/static/browser/chunk-SQRREDYF.js @@ -0,0 +1 @@ +import{e as o}from"./chunk-TSRGIXR5.js";var l=o((r,a)=>{function E(e){let s={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},t={match:/[{}[\],:]/,className:"punctuation",relevance:0},n=["true","false","null"],c={scope:"literal",beginKeywords:n.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:n},contains:[s,t,e.QUOTE_STRING_MODE,c,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}a.exports=E});export default l(); diff --git a/matchbox-server/src/main/resources/static/browser/index.html b/matchbox-server/src/main/resources/static/browser/index.html index 123a9801721..c66974aefad 100644 --- a/matchbox-server/src/main/resources/static/browser/index.html +++ b/matchbox-server/src/main/resources/static/browser/index.html @@ -12,9 +12,9 @@ - - + + - + diff --git a/matchbox-server/src/main/resources/static/browser/main-JTOSGX4K.js b/matchbox-server/src/main/resources/static/browser/main-JTOSGX4K.js deleted file mode 100644 index cba657fa205..00000000000 --- a/matchbox-server/src/main/resources/static/browser/main-JTOSGX4K.js +++ /dev/null @@ -1,1127 +0,0 @@ -import{$ as pe,$a as T0,$b as KC,A as MC,Aa as S0,Ab as Yd,Ac as nw,B as ic,Ba as Hd,Bb as J,Bc as es,C as Zi,Ca as Ot,Cb as jC,Cc as ts,D as Fs,Da as NC,Db as Y,Dc as rw,E as Ui,Ea as jd,Eb as tt,Ec as Hs,F as y0,Fa as vi,Fb as Fe,Fc as Oo,G as jt,Ga as wr,Gb as WC,Gc as js,H as Bd,Ha as nc,Hb as Rt,Hc as sw,I as Eo,Ia as FC,Ib as Be,Ic as aw,J as An,Ja as PC,Jb as Te,Jc as ow,K as Io,Ka as $,Kb as Ee,Kc as lw,L as hn,La as Se,Lb as qC,Lc as cw,M as C0,Ma as Wd,Mb as GC,Mc as oc,N as TC,Na as Dn,Nb as Zt,Nc as uw,O as w0,Oa as UC,Ob as B,Oc as Ws,P as EC,Pa as k0,Pb as Ke,Pc as dw,Q as IC,Qa as $C,Qb as Ye,Qc as hw,R as Ps,Ra as VC,Rb as E0,Rc as mw,S as Ao,Sa as rc,Sb as $s,T as Gt,Ta as M0,Tb as Vs,Tc as fw,U as Dt,Ua as he,Ub as Bs,V as qe,Va as ge,Vb as at,W as AC,Wa as xe,Wb as I0,X as Et,Xa as qd,Xb as zs,Y as je,Ya as BC,Yb as Qd,Z as Ii,Za as Ta,Zb as Ln,_ as se,_a as Gd,_b as ir,a as Mt,aa as DC,ab as zC,ac as Ea,b as xC,ba as ee,bb as tr,bc as Zd,c as Jn,ca as x0,cb as bi,cc as YC,d as v0,da as Oe,db as Xi,dc as Xe,e as Ud,ea as L,eb as HC,ec as be,f as me,fa as Us,fb as Nt,fc as zt,g as gi,ga as ka,gb as Qe,gc as Jr,h as $d,ha as Ma,hb as le,hc as nr,i as In,ia as Zr,ib as Me,ic as Xd,j as _i,ja as Cr,jb as z,jc as Jd,k as _e,ka as vt,kb as ai,kc as QC,l as er,la as te,lb as ke,lc as A0,m as br,ma as ie,mb as bt,mc as it,n as SC,na as Qt,nb as Kd,nc as ZC,o as kC,oa as Xr,ob as et,oc as ac,p as Le,pa as Ut,pb as sc,pc as XC,q as yr,qa as RC,qb as xr,qc as JC,r as Pi,ra as gt,rb as Sr,rc as ew,s as b0,sa as $i,sb as N,sc as Ia,t as Sa,ta as LC,tb as F,tc as On,u as Ns,ua as oe,ub as ne,uc as kr,v as To,va as Ne,vb as Ji,vc as yi,w as Qr,wa as zd,wb as en,wc as tw,x as Vd,xa as OC,xb as Ro,xc as eh,y as ti,ya as Ae,yb as We,yc as Lo,z as st,za as Do,zb as Rn,zc as iw}from"./chunk-OHNOGIP5.js";import{a as j,b as $e,c as CC,d as wC,e as X,f as Os,g as Pt}from"./chunk-TSRGIXR5.js";var hx=X((HG,dx)=>{"use strict";dx.exports=n=>encodeURIComponent(n).replace(/[!'()*]/g,t=>`%${t.charCodeAt(0).toString(16).toUpperCase()}`)});var _x=X((jG,gx)=>{"use strict";var px="%[a-f0-9]{2}",mx=new RegExp("("+px+")|([^%]+?)","gi"),fx=new RegExp("("+px+")+","gi");function wg(n,t){try{return[decodeURIComponent(n.join(""))]}catch{}if(n.length===1)return n;t=t||1;var e=n.slice(0,t),i=n.slice(t);return Array.prototype.concat.call([],wg(e),wg(i))}function xN(n){try{return decodeURIComponent(n)}catch{for(var t=n.match(mx)||[],e=1;e{"use strict";vx.exports=(n,t)=>{if(!(typeof n=="string"&&typeof t=="string"))throw new TypeError("Expected the arguments to be of type `string`");if(t==="")return[n];let e=n.indexOf(t);return e===-1?[n]:[n.slice(0,e),n.slice(e+t.length)]}});var Cx=X((qG,yx)=>{"use strict";yx.exports=function(n,t){for(var e={},i=Object.keys(n),r=Array.isArray(t),s=0;s{"use strict";var kN=hx(),MN=_x(),xx=bx(),TN=Cx(),EN=n=>n==null,xg=Symbol("encodeFragmentIdentifier");function IN(n){switch(n.arrayFormat){case"index":return t=>(e,i)=>{let r=e.length;return i===void 0||n.skipNull&&i===null||n.skipEmptyString&&i===""?e:i===null?[...e,[Xt(t,n),"[",r,"]"].join("")]:[...e,[Xt(t,n),"[",Xt(r,n),"]=",Xt(i,n)].join("")]};case"bracket":return t=>(e,i)=>i===void 0||n.skipNull&&i===null||n.skipEmptyString&&i===""?e:i===null?[...e,[Xt(t,n),"[]"].join("")]:[...e,[Xt(t,n),"[]=",Xt(i,n)].join("")];case"colon-list-separator":return t=>(e,i)=>i===void 0||n.skipNull&&i===null||n.skipEmptyString&&i===""?e:i===null?[...e,[Xt(t,n),":list="].join("")]:[...e,[Xt(t,n),":list=",Xt(i,n)].join("")];case"comma":case"separator":case"bracket-separator":{let t=n.arrayFormat==="bracket-separator"?"[]=":"=";return e=>(i,r)=>r===void 0||n.skipNull&&r===null||n.skipEmptyString&&r===""?i:(r=r===null?"":r,i.length===0?[[Xt(e,n),t,Xt(r,n)].join("")]:[[i,Xt(r,n)].join(n.arrayFormatSeparator)])}default:return t=>(e,i)=>i===void 0||n.skipNull&&i===null||n.skipEmptyString&&i===""?e:i===null?[...e,Xt(t,n)]:[...e,[Xt(t,n),"=",Xt(i,n)].join("")]}}function AN(n){let t;switch(n.arrayFormat){case"index":return(e,i,r)=>{if(t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),!t){r[e]=i;return}r[e]===void 0&&(r[e]={}),r[e][t[1]]=i};case"bracket":return(e,i,r)=>{if(t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),!t){r[e]=i;return}if(r[e]===void 0){r[e]=[i];return}r[e]=[].concat(r[e],i)};case"colon-list-separator":return(e,i,r)=>{if(t=/(:list)$/.exec(e),e=e.replace(/:list$/,""),!t){r[e]=i;return}if(r[e]===void 0){r[e]=[i];return}r[e]=[].concat(r[e],i)};case"comma":case"separator":return(e,i,r)=>{let s=typeof i=="string"&&i.includes(n.arrayFormatSeparator),a=typeof i=="string"&&!s&&ss(i,n).includes(n.arrayFormatSeparator);i=a?ss(i,n):i;let o=s||a?i.split(n.arrayFormatSeparator).map(l=>ss(l,n)):i===null?i:ss(i,n);r[e]=o};case"bracket-separator":return(e,i,r)=>{let s=/(\[\])$/.test(e);if(e=e.replace(/\[\]$/,""),!s){r[e]=i&&ss(i,n);return}let a=i===null?[]:i.split(n.arrayFormatSeparator).map(o=>ss(o,n));if(r[e]===void 0){r[e]=a;return}r[e]=[].concat(r[e],a)};default:return(e,i,r)=>{if(r[e]===void 0){r[e]=i;return}r[e]=[].concat(r[e],i)}}}function Sx(n){if(typeof n!="string"||n.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function Xt(n,t){return t.encode?t.strict?kN(n):encodeURIComponent(n):n}function ss(n,t){return t.decode?MN(n):n}function kx(n){return Array.isArray(n)?n.sort():typeof n=="object"?kx(Object.keys(n)).sort((t,e)=>Number(t)-Number(e)).map(t=>n[t]):n}function Mx(n){let t=n.indexOf("#");return t!==-1&&(n=n.slice(0,t)),n}function DN(n){let t="",e=n.indexOf("#");return e!==-1&&(t=n.slice(e)),t}function Tx(n){n=Mx(n);let t=n.indexOf("?");return t===-1?"":n.slice(t+1)}function wx(n,t){return t.parseNumbers&&!Number.isNaN(Number(n))&&typeof n=="string"&&n.trim()!==""?n=Number(n):t.parseBooleans&&n!==null&&(n.toLowerCase()==="true"||n.toLowerCase()==="false")&&(n=n.toLowerCase()==="true"),n}function Ex(n,t){t=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},t),Sx(t.arrayFormatSeparator);let e=AN(t),i=Object.create(null);if(typeof n!="string"||(n=n.trim().replace(/^[?#&]/,""),!n))return i;for(let r of n.split("&")){if(r==="")continue;let[s,a]=xx(t.decode?r.replace(/\+/g," "):r,"=");a=a===void 0?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?a:ss(a,t),e(ss(s,t),a,i)}for(let r of Object.keys(i)){let s=i[r];if(typeof s=="object"&&s!==null)for(let a of Object.keys(s))s[a]=wx(s[a],t);else i[r]=wx(s,t)}return t.sort===!1?i:(t.sort===!0?Object.keys(i).sort():Object.keys(i).sort(t.sort)).reduce((r,s)=>{let a=i[s];return a&&typeof a=="object"&&!Array.isArray(a)?r[s]=kx(a):r[s]=a,r},Object.create(null))}tn.extract=Tx;tn.parse=Ex;tn.stringify=(n,t)=>{if(!n)return"";t=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},t),Sx(t.arrayFormatSeparator);let e=a=>t.skipNull&&EN(n[a])||t.skipEmptyString&&n[a]==="",i=IN(t),r={};for(let a of Object.keys(n))e(a)||(r[a]=n[a]);let s=Object.keys(r);return t.sort!==!1&&s.sort(t.sort),s.map(a=>{let o=n[a];return o===void 0?"":o===null?Xt(a,t):Array.isArray(o)?o.length===0&&t.arrayFormat==="bracket-separator"?Xt(a,t)+"[]":o.reduce(i(a),[]).join("&"):Xt(a,t)+"="+Xt(o,t)}).filter(a=>a.length>0).join("&")};tn.parseUrl=(n,t)=>{t=Object.assign({decode:!0},t);let[e,i]=xx(n,"#");return Object.assign({url:e.split("?")[0]||"",query:Ex(Tx(n),t)},t&&t.parseFragmentIdentifier&&i?{fragmentIdentifier:ss(i,t)}:{})};tn.stringifyUrl=(n,t)=>{t=Object.assign({encode:!0,strict:!0,[xg]:!0},t);let e=Mx(n.url).split("?")[0]||"",i=tn.extract(n.url),r=tn.parse(i,{sort:!1}),s=Object.assign(r,n.query),a=tn.stringify(s,t);a&&(a=`?${a}`);let o=DN(n.url);return n.fragmentIdentifier&&(o=`#${t[xg]?Xt(n.fragmentIdentifier,t):n.fragmentIdentifier}`),`${e}${a}${o}`};tn.pick=(n,t,e)=>{e=Object.assign({parseFragmentIdentifier:!0,[xg]:!1},e);let{url:i,query:r,fragmentIdentifier:s}=tn.parseUrl(n,e);return tn.stringifyUrl({url:i,query:TN(r,t),fragmentIdentifier:s},e)};tn.exclude=(n,t,e)=>{let i=Array.isArray(t)?r=>!t.includes(r):(r,s)=>!t(r,s);return tn.pick(n,i,e)}});var Dx=X((kg,Ax)=>{kg=Ax.exports=RN;kg.getSerialize=Ix;function RN(n,t,e,i){return JSON.stringify(n,Ix(t,i),e)}function Ix(n,t){var e=[],i=[];return t==null&&(t=function(r,s){return e[0]===s?"[Circular ~]":"[Circular ~."+i.slice(0,e.indexOf(s)).join(".")+"]"}),function(r,s){if(e.length>0){var a=e.indexOf(this);~a?e.splice(a+1):e.push(this),~a?i.splice(a,1/0,r):i.push(r),~e.indexOf(s)&&(s=t.call(this,r,s))}else e.push(s);return n==null?s:n.call(this,r,s)}}});var Lx=X((KG,Rx)=>{var Go=1e3,Ko=Go*60,Yo=Ko*60,Ua=Yo*24,LN=Ua*7,ON=Ua*365.25;Rx.exports=function(n,t){t=t||{};var e=typeof n;if(e==="string"&&n.length>0)return NN(n);if(e==="number"&&isFinite(n))return t.long?PN(n):FN(n);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(n))};function NN(n){if(n=String(n),!(n.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(n);if(t){var e=parseFloat(t[1]),i=(t[2]||"ms").toLowerCase();switch(i){case"years":case"year":case"yrs":case"yr":case"y":return e*ON;case"weeks":case"week":case"w":return e*LN;case"days":case"day":case"d":return e*Ua;case"hours":case"hour":case"hrs":case"hr":case"h":return e*Yo;case"minutes":case"minute":case"mins":case"min":case"m":return e*Ko;case"seconds":case"second":case"secs":case"sec":case"s":return e*Go;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return e;default:return}}}}function FN(n){var t=Math.abs(n);return t>=Ua?Math.round(n/Ua)+"d":t>=Yo?Math.round(n/Yo)+"h":t>=Ko?Math.round(n/Ko)+"m":t>=Go?Math.round(n/Go)+"s":n+"ms"}function PN(n){var t=Math.abs(n);return t>=Ua?Ih(n,t,Ua,"day"):t>=Yo?Ih(n,t,Yo,"hour"):t>=Ko?Ih(n,t,Ko,"minute"):t>=Go?Ih(n,t,Go,"second"):n+" ms"}function Ih(n,t,e,i){var r=t>=e*1.5;return Math.round(n/e)+" "+i+(r?"s":"")}});var Nx=X((YG,Ox)=>{function UN(n){e.debug=e,e.default=e,e.coerce=l,e.disable=s,e.enable=r,e.enabled=a,e.humanize=Lx(),e.destroy=c,Object.keys(n).forEach(u=>{e[u]=n[u]}),e.names=[],e.skips=[],e.formatters={};function t(u){let d=0;for(let h=0;h{if(E==="%%")return"%";x++;let M=e.formatters[T];if(typeof M=="function"){let D=v[x];E=M.call(w,D),v.splice(x,1),x--}return E}),e.formatArgs.call(w,v),(w.log||e.log).apply(w,v)}return g.namespace=u,g.useColors=e.useColors(),g.color=e.selectColor(u),g.extend=i,g.destroy=e.destroy,Object.defineProperty(g,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(m!==e.namespaces&&(m=e.namespaces,f=e.enabled(u)),f),set:v=>{h=v}}),typeof e.init=="function"&&e.init(g),g}function i(u,d){let h=e(this.namespace+(typeof d>"u"?":":d)+u);return h.log=this.log,h}function r(u){e.save(u),e.namespaces=u,e.names=[],e.skips=[];let d,h=(typeof u=="string"?u:"").split(/[\s,]+/),m=h.length;for(d=0;d"-"+d)].join(",");return e.enable(""),u}function a(u){if(u[u.length-1]==="*")return!0;let d,h;for(d=0,h=e.skips.length;d{pn.formatArgs=VN;pn.save=BN;pn.load=zN;pn.useColors=$N;pn.storage=HN();pn.destroy=(()=>{let n=!1;return()=>{n||(n=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();pn.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function $N(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let n;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(n=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(n[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function VN(n){if(n[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+n[0]+(this.useColors?"%c ":" ")+"+"+Ah.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;n.splice(1,0,t,"color: inherit");let e=0,i=0;n[0].replace(/%[a-zA-Z%]/g,r=>{r!=="%%"&&(e++,r==="%c"&&(i=e))}),n.splice(i,0,t)}pn.log=console.debug||console.log||(()=>{});function BN(n){try{n?pn.storage.setItem("debug",n):pn.storage.removeItem("debug")}catch{}}function zN(){let n;try{n=pn.storage.getItem("debug")}catch{}return!n&&typeof process<"u"&&"env"in process&&(n=process.env.DEBUG),n}function HN(){try{return localStorage}catch{}}Ah.exports=Nx()(pn);var{formatters:jN}=Ah.exports;jN.j=function(n){try{return JSON.stringify(n)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var Mg=X((QG,Px)=>{var WN=Dx(),as=Dh()("fhir-kit-client:error"),Qo=Dh()("fhir-kit-client:info");function Rh(n){return WN(n)}function Fx(n){return n.raw&&typeof n.raw=="function"?Rh(n.raw()):Rh(n)}function qN(n){as.enabled&&(as("!!! Error"),n.response&&as(` Status: ${n.response.status}`),n.config&&(as(` ${n.config.method.toUpperCase()}: ${n.config.url}`),as(` Headers: ${Fx(n.config.headers)}`)),n.response&&n.response.data&&as(Rh(n.response.data)),as("!!! Request Error"))}function GN(n,t,e){Qo.enabled&&(t&&Qo(`Request: ${n.toUpperCase()} ${t.toString()}`),Qo(`Request Headers: ${Fx(e)}`))}function KN(n){Qo.enabled&&(Qo(`Response: ${n.status}`),n.data&&Qo(Rh(n.data)))}function YN(n){as.enabled&&as(n)}Px.exports={logRequestError:qN,logRequestInfo:GN,logResponseInfo:KN,logError:YN}});var $x=X((ZG,Ux)=>{var QN="http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris",{logError:ZN}=Mg();function XN(n){let t={};try{return n.rest.forEach(e=>{e.security.extension.find(r=>r.url===QN).extension.forEach(r=>{switch(r.url){case"authorize":t.authorizeUrl=new URL(r.valueUri);break;case"token":t.tokenUrl=new URL(r.valueUri);break;case"register":t.registerUrl=new URL(r.valueUri);break;case"manage":t.manageUrl=new URL(r.valueUri);break;default:}})}),t}catch(e){return ZN(e),t}}function JN(n){let{authorization_endpoint:t,token_endpoint:e,registration_endpoint:i}=n;return{authorizeUrl:t&&new URL(t),tokenUrl:e&&new URL(e),registerUrl:i&&new URL(i)}}Ux.exports={authFromCapability:XN,authFromWellKnown:JN}});var Vx=X((Tg,Eg)=>{(function(n,t){typeof Tg=="object"&&typeof Eg<"u"?Eg.exports=t():typeof define=="function"&&define.amd?define(t):n.ES6Promise=t()})(Tg,function(){"use strict";function n(Z){var ue=typeof Z;return Z!==null&&(ue==="object"||ue==="function")}function t(Z){return typeof Z=="function"}var e=void 0;Array.isArray?e=Array.isArray:e=function(Z){return Object.prototype.toString.call(Z)==="[object Array]"};var i=e,r=0,s=void 0,a=void 0,o=function(ue,Ce){x[r]=ue,x[r+1]=Ce,r+=2,r===2&&(a?a(y):T())};function l(Z){a=Z}function c(Z){o=Z}var u=typeof window<"u"?window:void 0,d=u||{},h=d.MutationObserver||d.WebKitMutationObserver,m=typeof self>"u"&&typeof process<"u"&&{}.toString.call(process)==="[object process]",f=typeof Uint8ClampedArray<"u"&&typeof importScripts<"u"&&typeof MessageChannel<"u";function g(){return function(){return process.nextTick(y)}}function v(){return typeof s<"u"?function(){s(y)}:k()}function w(){var Z=0,ue=new h(y),Ce=document.createTextNode("");return ue.observe(Ce,{characterData:!0}),function(){Ce.data=Z=++Z%2}}function C(){var Z=new MessageChannel;return Z.port1.onmessage=y,function(){return Z.port2.postMessage(0)}}function k(){var Z=setTimeout;return function(){return Z(y,1)}}var x=new Array(1e3);function y(){for(var Z=0;Z{(function(n){var t=function(e){var i={searchParams:"URLSearchParams"in n,iterable:"Symbol"in n&&"iterator"in Symbol,blob:"FileReader"in n&&"Blob"in n&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in n,arrayBuffer:"ArrayBuffer"in n};function r(_){return _&&DataView.prototype.isPrototypeOf(_)}if(i.arrayBuffer)var s=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],a=ArrayBuffer.isView||function(_){return _&&s.indexOf(Object.prototype.toString.call(_))>-1};function o(_){if(typeof _!="string"&&(_=String(_)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(_))throw new TypeError("Invalid character in header field name");return _.toLowerCase()}function l(_){return typeof _!="string"&&(_=String(_)),_}function c(_){var p={next:function(){var b=_.shift();return{done:b===void 0,value:b}}};return i.iterable&&(p[Symbol.iterator]=function(){return p}),p}function u(_){this.map={},_ instanceof u?_.forEach(function(p,b){this.append(b,p)},this):Array.isArray(_)?_.forEach(function(p){this.append(p[0],p[1])},this):_&&Object.getOwnPropertyNames(_).forEach(function(p){this.append(p,_[p])},this)}u.prototype.append=function(_,p){_=o(_),p=l(p);var b=this.map[_];this.map[_]=b?b+", "+p:p},u.prototype.delete=function(_){delete this.map[o(_)]},u.prototype.get=function(_){return _=o(_),this.has(_)?this.map[_]:null},u.prototype.has=function(_){return this.map.hasOwnProperty(o(_))},u.prototype.set=function(_,p){this.map[o(_)]=l(p)},u.prototype.forEach=function(_,p){for(var b in this.map)this.map.hasOwnProperty(b)&&_.call(p,this.map[b],b,this)},u.prototype.keys=function(){var _=[];return this.forEach(function(p,b){_.push(b)}),c(_)},u.prototype.values=function(){var _=[];return this.forEach(function(p){_.push(p)}),c(_)},u.prototype.entries=function(){var _=[];return this.forEach(function(p,b){_.push([b,p])}),c(_)},i.iterable&&(u.prototype[Symbol.iterator]=u.prototype.entries);function d(_){if(_.bodyUsed)return Promise.reject(new TypeError("Already read"));_.bodyUsed=!0}function h(_){return new Promise(function(p,b){_.onload=function(){p(_.result)},_.onerror=function(){b(_.error)}})}function m(_){var p=new FileReader,b=h(p);return p.readAsArrayBuffer(_),b}function f(_){var p=new FileReader,b=h(p);return p.readAsText(_),b}function g(_){for(var p=new Uint8Array(_),b=new Array(p.length),S=0;S-1?p:_}function x(_,p){p=p||{};var b=p.body;if(_ instanceof x){if(_.bodyUsed)throw new TypeError("Already read");this.url=_.url,this.credentials=_.credentials,p.headers||(this.headers=new u(_.headers)),this.method=_.method,this.mode=_.mode,this.signal=_.signal,!b&&_._bodyInit!=null&&(b=_._bodyInit,_.bodyUsed=!0)}else this.url=String(_);if(this.credentials=p.credentials||this.credentials||"same-origin",(p.headers||!this.headers)&&(this.headers=new u(p.headers)),this.method=k(p.method||this.method||"GET"),this.mode=p.mode||this.mode||null,this.signal=p.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&b)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(b)}x.prototype.clone=function(){return new x(this,{body:this._bodyInit})};function y(_){var p=new FormData;return _.trim().split("&").forEach(function(b){if(b){var S=b.split("="),I=S.shift().replace(/\+/g," "),A=S.join("=").replace(/\+/g," ");p.append(decodeURIComponent(I),decodeURIComponent(A))}}),p}function E(_){var p=new u,b=_.replace(/\r?\n[\t ]+/g," ");return b.split(/\r?\n/).forEach(function(S){var I=S.split(":"),A=I.shift().trim();if(A){var R=I.join(":").trim();p.append(A,R)}}),p}w.call(x.prototype);function T(_,p){p||(p={}),this.type="default",this.status=p.status===void 0?200:p.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in p?p.statusText:"OK",this.headers=new u(p.headers),this.url=p.url||"",this._initBody(_)}w.call(T.prototype),T.prototype.clone=function(){return new T(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new u(this.headers),url:this.url})},T.error=function(){var _=new T(null,{status:0,statusText:""});return _.type="error",_};var M=[301,302,303,307,308];T.redirect=function(_,p){if(M.indexOf(p)===-1)throw new RangeError("Invalid status code");return new T(null,{status:p,headers:{location:_}})},e.DOMException=n.DOMException;try{new e.DOMException}catch{e.DOMException=function(p,b){this.message=p,this.name=b;var S=Error(p);this.stack=S.stack},e.DOMException.prototype=Object.create(Error.prototype),e.DOMException.prototype.constructor=e.DOMException}function D(_,p){return new Promise(function(b,S){var I=new x(_,p);if(I.signal&&I.signal.aborted)return S(new e.DOMException("Aborted","AbortError"));var A=new XMLHttpRequest;function R(){A.abort()}A.onload=function(){var O={status:A.status,statusText:A.statusText,headers:E(A.getAllResponseHeaders()||"")};O.url="responseURL"in A?A.responseURL:O.headers.get("X-Request-URL");var U="response"in A?A.response:A.responseText;b(new T(U,O))},A.onerror=function(){S(new TypeError("Network request failed"))},A.ontimeout=function(){S(new TypeError("Network request failed"))},A.onabort=function(){S(new e.DOMException("Aborted","AbortError"))},A.open(I.method,I.url,!0),I.credentials==="include"?A.withCredentials=!0:I.credentials==="omit"&&(A.withCredentials=!1),"responseType"in A&&i.blob&&(A.responseType="blob"),I.headers.forEach(function(O,U){A.setRequestHeader(U,O)}),I.signal&&(I.signal.addEventListener("abort",R),A.onreadystatechange=function(){A.readyState===4&&I.signal.removeEventListener("abort",R)}),A.send(typeof I._bodyInit>"u"?null:I._bodyInit)})}return D.polyfill=!0,n.fetch||(n.fetch=D,n.Headers=u,n.Request=x,n.Response=T),e.Headers=u,e.Request=x,e.Response=T,e.fetch=D,Object.defineProperty(e,"__esModule",{value:!0}),e}({})})(typeof self<"u"?self:Bx)});var Ag=X((eK,Ig)=>{Ig.exports=Hx;Ig.exports.HttpsAgent=Hx;function Hx(){}});var Zx=X((tK,Qx)=>{Vx().polyfill();zx();var{logRequestError:eF,logRequestInfo:Gx,logResponseInfo:tF}=Mg(),iF={accept:"application/fhir+json"},jx="__response",Wx="__request",Dg=!1,Kx,Yx;try{Kx=Ag(),Yx=Ag().HttpsAgent,Dg=!0}catch{Gx("HTTP Agent is not available")}var Rc=new WeakMap;function nF(n,t={}){let e={baseUrl:n,agentOptions:t};return Dg?(Rc.get(e)||(n.startsWith("https")?Rc.set(e,{agent:new Yx(t)}):Rc.set(e,{agent:new Kx(t)})),Rc.get(e)):{}}function qx({status:n,data:t,method:e,headers:i,url:r}){let s={response:{status:n,data:t},config:{method:e,url:r,headers:i}};return eF(s),s}function rF(n){return typeof n=="string"?n:JSON.stringify(n)}Qx.exports=class Lh{static lcKeys(t){return t&&Object.keys(t).reduce((e,i)=>(e[i.toLowerCase()]=t[i],e),{})}constructor({baseUrl:t,customHeaders:e={},requestOptions:i={},requestSigner:r=void 0}){this.baseUrl=t,this.customHeaders=e,this.baseRequestOptions=i,this.requestSigner=r}set baseUrl(t){if(!t)throw new Error("baseUrl cannot be blank");if(typeof t!="string")throw new Error("baseUrl must be a string");this.baseUrlValue=t}get baseUrl(){return this.baseUrlValue}static responseFor(t){return t[jx]}static requestFor(t){return t[Wx]}set bearerToken(t){let e=`Bearer ${t}`;this.authHeader={authorization:e}}requestBuilder(t,e,i,r){let s=$e(j(j({},this.baseRequestOptions),i),{method:t,body:rF(r)}),a={};return Dg||(a={keepalive:Object.prototype.hasOwnProperty.call(s,"keepalive")?s.keepalive:!0}),Object.assign(s,a,{headers:new Headers(this.mergeHeaders(i.headers))},nF(this.baseUrl,s)),this.requestSigner&&this.requestSigner(e,s),new Request(e,s)}request(s,a){return Pt(this,arguments,function*(t,e,i={},r){let o=this.expandUrl(e),l=this.requestBuilder(t,o,i,r);Gx(t,o,l.headers);let c=yield fetch(l),{status:u,headers:d}=c;tF({status:u,response:c});let h=yield c.text(),m={};if(h)try{m=JSON.parse(h)}catch{throw m=h,qx({status:u,data:m,method:t,headers:d,url:o})}if(!c.ok)throw qx({status:u,data:m,method:t,headers:d,url:o});return Object.defineProperty(m,jx,{writable:!1,enumerable:!1,value:c}),Object.defineProperty(m,Wx,{writable:!1,enumerable:!1,value:l}),m})}get(t,e){return Pt(this,null,function*(){return this.request("GET",t,e)})}delete(t,e){return Pt(this,null,function*(){return this.request("DELETE",t,e)})}put(r,s){return Pt(this,arguments,function*(t,e,i={}){let a=j({"content-type":"application/fhir+json"},Lh.lcKeys(i.headers)),o=$e(j({},i),{headers:a});return this.request("PUT",t,o,e)})}post(r,s){return Pt(this,arguments,function*(t,e,i={}){let a=j({"content-type":"application/fhir+json"},Lh.lcKeys(i.headers)),o=$e(j({},i),{headers:a});return this.request("POST",t,o,e)})}patch(t,e,i){return Pt(this,null,function*(){return this.request("PATCH",t,i,e)})}expandUrl(t=""){return t.toLowerCase().startsWith("http")?t:this.baseUrl.endsWith("/")&&t.startsWith("/")?this.baseUrl+t.slice(1):this.baseUrl.endsWith("/")||t.startsWith("/")?this.baseUrl+t:`${this.baseUrl}/${t}`}mergeHeaders(t){let{lcKeys:e}=Lh;return j(j(j(j({},e(iF)),e(this.authHeader)),e(this.customHeaders)),e(t))}}});var Jx=X((nK,Xx)=>{Xx.exports={fhirReferenceRegEx:/^((http|https):\/\/([A-Za-z0-9\\.:%$]*\/)*)?(Account|ActivityDefinition|AdverseEvent|AllergyIntolerance|Appointment|AppointmentResponse|AuditEvent|Basic|Binary|BiologicallyDerivedProduct|BodySite|BodyStructure|Bundle|CapabilityStatement|CarePlan|CareTeam|CatalogEntry|ChargeItem|ChargeItemDefinition|Claim|ClaimResponse|ClinicalImpression|CodeSystem|Communication|CommunicationRequest|CompartmentDefinition|Composition|ConceptMap|Condition|Conformance|Consent|Contract|Coverage|CoverageEligibilityRequest|CoverageEligibilityResponse|DataElement|DecisionSupportRule|DecisionSupportServiceModule|DetectedIssue|Device|DeviceComponent|DeviceDefinition|DeviceMetric|DeviceRequest|DeviceUseRequest|DeviceUseStatement|DiagnosticOrder|DiagnosticReport|DiagnosticRequest|DocumentManifest|DocumentReference|EffectEvidenceSynthesis|EligibilityRequest|EligibilityResponse|Encounter|Endpoint|EnrollmentRequest|EnrollmentResponse|EntryDefinition|EpisodeOfCare|EventDefinition|Evidence|EvidenceVariable|ExampleScenario|ExpansionProfile|ExplanationOfBenefit|FamilyMemberHistory|Flag|Goal|GraphDefinition|Group|GuidanceRequest|GuidanceResponse|HealthcareService|ImagingExcerpt|ImagingManifest|ImagingObjectSelection|ImagingStudy|Immunization|ImmunizationEvaluation|ImmunizationRecommendation|ImplementationGuide|ImplementationGuideInput|ImplementationGuideOutput|InsurancePlan|Invoice|ItemInstance|Library|Linkage|List|Location|Measure|MeasureReport|Media|Medication|MedicationAdministration|MedicationDispense|MedicationKnowledge|MedicationOrder|MedicationRequest|MedicationStatement|MedicinalProduct|MedicinalProductAuthorization|MedicinalProductClinicals|MedicinalProductContraindication|MedicinalProductDeviceSpec|MedicinalProductIndication|MedicinalProductIngredient|MedicinalProductInteraction|MedicinalProductManufactured|MedicinalProductPackaged|MedicinalProductPharmaceutical|MedicinalProductUndesirableEffect|MessageDefinition|MessageHeader|ModuleDefinition|ModuleMetadata|MolecularSequence|NamingSystem|NutritionOrder|NutritionRequest|Observation|ObservationDefinition|OccupationalData|OperationDefinition|OperationOutcome|Order|OrderResponse|OrderSet|Organization|OrganizationAffiliation|OrganizationRole|Patient|PaymentNotice|PaymentReconciliation|Person|PlanDefinition|Practitioner|PractitionerRole|Procedure|ProcedureRequest|ProcessRequest|ProcessResponse|ProductPlan|Protocol|Provenance|Questionnaire|QuestionnaireResponse|ReferralRequest|RelatedPerson|RequestGroup|ResearchDefinition|ResearchElementDefinition|ResearchStudy|ResearchSubject|RiskAssessment|RiskEvidenceSynthesis|Schedule|SearchParameter|Sequence|ServiceDefinition|ServiceRequest|Slot|Specimen|SpecimenDefinition|StructureDefinition|StructureMap|Subscription|Substance|SubstanceNucleicAcid|SubstancePolymer|SubstanceProtein|SubstanceReferenceInformation|SubstanceSourceMaterial|SubstanceSpecification|SupplyDelivery|SupplyRequest|Task|TerminologyCapabilities|TestReport|TestScript|UserSession|ValueSet|VerificationResult|VisionPrescription)\/[A-Za-z0-9\-.]{1,256}(\/_history\/[A-Za-z0-9\-.]{1,256})?$/}});var Rg=X((rK,tS)=>{var sF=Sg(),{fhirReferenceRegEx:eS}=Jx();function aF(n){if(!n.match(eS))throw new Error(`${n} is not a recognized FHIR reference`);let t,e=n;n.startsWith("http")&&([,t]=eS.exec(n),e=n.slice(t.length),t.endsWith("/")&&(t=t.slice(0,-1)));let[i,r]=e.split("/");return{baseUrl:t,resourceType:i,id:r}}function oF(n){return!n.startsWith("/")&&!n.includes(":")&&/\S/.test(n)}function lF(n){if(n instanceof Object&&Object.keys(n).length>0)return sF.stringify(n)}tS.exports={createQueryString:lF,splitReference:aF,validResourceType:oF}});var Lg=X((sK,iS)=>{var cF=(n,t)=>{if(Object.prototype.hasOwnProperty.call(n,"resourceType")){console.warn("WARNING: positional parameters for pagination methods are deprecated and will be removed in the next major version. Call with ({ bundle, options }) rather than (bundle, headers)");let e={bundle:n};return t&&(e.options={headers:t}),e}return n},uF=(n,t)=>t?(console.warn("WARNING: headers is deprecated and will be removed in the next major version. Use options.headers instead."),console.warn(JSON.stringify(t,null," ")),j({headers:t},n)):n;iS.exports={deprecateHeaders:uF,deprecatePaginationArgs:cF}});var rS=X((oK,nS)=>{var{splitReference:dF}=Rg(),{deprecateHeaders:Og}=Lg();nS.exports=class{constructor(n){this.client=n}resolve(){return Pt(this,arguments,function*({reference:n,context:t,headers:e,options:i={}}={}){return t===void 0?n.startsWith("http")?this.resolveAbsoluteReference(n,Og(i,e)):this.client.httpClient.get(n,Og(i,e)):n.startsWith("#")?this.resolveContainedReference(n,t):this.resolveBundleReference(n,t,Og(i,e))})}resolveAbsoluteReference(n,t){return Pt(this,null,function*(){if(n.startsWith(this.client.baseUrl))return this.client.httpClient.get(n,t);let{baseUrl:e,resourceType:i,id:r}=dF(n),s=Ng();return new s({baseUrl:e}).read({resourceType:i,id:r,options:t})})}resolveContainedReference(n,t){if(t.contained){let e=n.slice(1),i=t.contained.find(r=>r.id===e);if(i)return i}throw new Error(`Unable to resolve contained reference: ${n}`)}resolveBundleReference(n,t,e){return Pt(this,null,function*(){let i=new RegExp(`(^|/)${n}$`),r=t.entry.find(s=>i.test(s.fullUrl));return r?r.resource:this.resolve({reference:n,options:e})})}}});var aS=X((uK,sS)=>{var Fg=class{constructor(t){this.httpClient=t}nextPage(t,{headers:e}={}){let i=t.link.find(r=>r.relation==="next");return i?this.httpClient.get(i.url,{headers:e}):void 0}prevPage(t,{headers:e}={}){let i=t.link.find(r=>r.relation.match(/^prev(ious)?$/));return i?this.httpClient.get(i.url,{headers:e}):void 0}};sS.exports=Fg});var lS=X((dK,oS)=>{"use strict";var Pg=typeof self<"u"?self:typeof window<"u"?window:void 0;if(!Pg)throw new Error("Unable to find global scope. Are you sure this is running in the browser?");if(!Pg.AbortController)throw new Error('Could not find "AbortController" in the global scope. You need to polyfill it first');oS.exports.AbortController=Pg.AbortController});var uS=X((hK,cS)=>{var{AbortController:hF}=lS(),Oh=class{constructor(){this.controller=new hF,this.resolving=!1}addSignalOption(t){return j({signal:this.controller.signal},t)}safeAbort(){this.resolving||this.controller.abort()}},Ug=class{constructor(){this.jobs=[],this.numJobs=0}buildJob(){let t=new Oh;return this.numJobs=this.jobs.push(t),t}safeAbortOthers(t){t.resolving=!0;for(let e=0,i=this.numJobs;e{var $g=class{constructor(t){this.capabilityStatement=t}serverCan(t){return this.supportFor({capabilityType:"interaction",where:{code:t}})}resourceCan(t,e){return this.supportFor({resourceType:t,capabilityType:"interaction",where:{code:e}})}serverSearch(t){return this.supportFor({capabilityType:"searchParam",where:{name:t}})}resourceSearch(t,e){return this.supportFor({resourceType:t,capabilityType:"searchParam",where:{name:e}})}supportFor({resourceType:t,capabilityType:e,where:i}={}){let r;if(t?r=this.resourceCapabilities({resourceType:t}):r=this.serverCapabilities(),!r)return!1;let s=r[e];if(i&&s){let a=Object.keys(i)[0];return s.find(l=>l[a]===i[a])!==void 0}return s!==void 0}interactionsFor({resourceType:t}={}){let e=this.resourceCapabilities({resourceType:t});return e===void 0?[]:e.interaction.map(i=>i.code)}searchParamsFor({resourceType:t}={}){let e=this.resourceCapabilities({resourceType:t});return e===void 0?[]:e.searchParam===void 0?[]:e.searchParam.map(i=>i.name)}resourceCapabilities({resourceType:t}={}){return this.serverCapabilities().resource.find(r=>r.type===t)}capabilityContents({resourceType:t,capabilityType:e}={}){let i=this.resourceCapabilities({resourceType:t});if(i!==void 0)return i[e]}serverCapabilities(){return this.capabilityStatement.rest.find(t=>t.mode==="server")}};dS.exports=$g});var Ng=X((pK,zg)=>{var mF=Sg(),{authFromCapability:fF,authFromWellKnown:mS}=$x(),Vg=Zx(),pF=rS(),gF=aS(),{createQueryString:fS,validResourceType:nn}=Rg(),{FetchQueue:_F}=uS(),{deprecatePaginationArgs:pS,deprecateHeaders:Kt}=Lg(),vF=hS(),Bg=class{constructor({baseUrl:t,customHeaders:e,requestOptions:i,requestSigner:r,bearerToken:s}={}){this.httpClient=new Vg({baseUrl:t,customHeaders:e,requestOptions:i,requestSigner:r}),s&&(this.httpClient.bearerToken=s),this.resolver=new pF(this),this.pagination=new gF(this.httpClient)}static httpFor(t){return{request:Vg.requestFor(t),response:Vg.responseFor(t)}}get baseUrl(){return this.httpClient&&this.httpClient.baseUrl}set baseUrl(t){this.httpClient&&(this.httpClient.baseUrl=t)}get customHeaders(){return this.httpClient.customHeaders}set customHeaders(t){this.httpClient.customHeaders=t}set bearerToken(t){this.httpClient.bearerToken=t}resolve({reference:t,context:e,headers:i,options:r={}}={}){return this.resolver.resolve({reference:t,context:e,options:Kt(r,i)})}smartAuthMetadata(){return Pt(this,arguments,function*({headers:t,options:e={}}={}){let i={options:Kt(e,t)};i.options.headers||(i.options.headers={}),i.options.headers.accept="application/fhir+json,application/json";let r=this.baseUrl.replace(/\/*$/,"/"),s=new _F,a=s.buildJob(),o=s.buildJob(),l=s.buildJob(),c=[];return new Promise((u,d)=>{function h(m){c.push(m)===s.numJobs&&d(new Error(c.map(f=>f.message).join("; ")))}this.httpClient.request("GET",`${r}.well-known/smart-configuration`,o.addSignalOption(i)).then(m=>(s.safeAbortOthers(o),u(mS(m)))).catch(m=>h(m)),this.capabilityStatement(a.addSignalOption(i)).then(m=>(s.safeAbortOthers(a),u(fF(m)))).catch(m=>h(m)),this.httpClient.request("GET",`${r}.well-known/openid-configuration`,l.addSignalOption(i)).then(m=>(s.safeAbortOthers(l),u(mS(m)))).catch(m=>h(m))})})}capabilityStatement({headers:t,options:e={}}={}){return this.metadata||(this.metadata=this.httpClient.get("metadata",Kt(e,t))),this.metadata}request(t,{method:e="GET",options:i={},body:r}={}){return i.method&&i.method!==e&&console.warn(`WARNING: 'options.method' has been specified: ${i.method} but will be ignored. Use 'method' instead.`),this.httpClient.request(e,t,i,r)}read({resourceType:t,id:e,headers:i,options:r={}}={}){if(!nn(t))throw new Error("Invalid resourceType",t);return this.httpClient.get(`${t}/${e}`,Kt(r,i))}vread({resourceType:t,id:e,version:i,headers:r,options:s={}}={}){if(!nn(t))throw new Error("Invalid resourceType",t);return this.httpClient.get(`${t}/${e}/_history/${i}`,Kt(s,r))}create({resourceType:t,body:e,headers:i,options:r={}}={}){if(!nn(t))throw new Error("Invalid resourceType",t);return this.httpClient.post(t,e,Kt(r,i))}delete({resourceType:t,id:e,headers:i,options:r={}}={}){if(!nn(t))throw new Error("Invalid resourceType",t);return this.httpClient.delete(`${t}/${e}`,Kt(r,i))}update({resourceType:t,id:e,searchParams:i,body:r,headers:s,options:a={}}={}){if(!nn(t))throw new Error("Invalid resourceType",t);if(e&&i)throw new Error("Conditional update with search params cannot be with id",t);if(i){let o=fS(i);return this.httpClient.put(`${t}?${o}`,r,Kt(a,s))}return this.httpClient.put(`${t}/${e}`,r,Kt(a,s))}patch({resourceType:t,id:e,JSONPatch:i,headers:r,options:s={}}={}){if(!nn(t))throw new Error("Invalid resourceType",t);let a=Kt(s,r).headers||{},o=$e(j({},a),{"Content-Type":"application/json-patch+json"});return this.httpClient.patch(`${t}/${e}`,i,$e(j({},s),{headers:o}))}batch({body:t,headers:e,options:i={}}={}){return this.httpClient.post("/",t,Kt(i,e))}transaction({body:t,headers:e,options:i={}}={}){return this.httpClient.post("/",t,Kt(i,e))}operation({name:t,resourceType:e,id:i,method:r="POST",input:s,options:a={}}={}){let o=["/"];if(e){if(!nn(e))throw new Error("Invalid resourceType",e);o.push(`${e}/`)}if(i&&o.push(`${i}/`),o.push(`${t.startsWith("$")?t:`$${t}`}`),r.toUpperCase()==="POST")return this.httpClient.post(o.join(""),s,a);if(r.toUpperCase()==="GET")return s&&o.push(`?${mF.stringify(s)}`),this.httpClient.get(o.join(""),a)}nextPage(t,e){let{bundle:i,options:r={}}=pS(t,e);return this.pagination.nextPage(i,r)}prevPage(t,e){let{bundle:i,options:r={}}=pS(t,e);return this.pagination.prevPage(i,r)}search({resourceType:t,compartment:e,searchParams:i,headers:r,options:s={}}={}){if(t&&!nn(t))throw new Error("Invalid resourceType",t);if(e&&t)return this.compartmentSearch({resourceType:t,compartment:e,searchParams:i,options:Kt(s,r)});if(t)return this.resourceSearch({resourceType:t,searchParams:i,options:Kt(s,r)});if(i instanceof Object&&Object.keys(i).length>0)return this.systemSearch({searchParams:i,options:Kt(s,r)});throw new Error("search requires either searchParams or a resourceType")}resourceSearch({resourceType:t,searchParams:e,headers:i,options:r={}}={}){if(!nn(t))throw new Error("Invalid resourceType",t);let s=t;return r.postSearch&&(s+="/_search"),this.baseSearch({searchPath:s,searchParams:e,headers:i,options:r})}systemSearch({searchParams:t,headers:e,options:i={}}={}){return this.baseSearch({searchPath:"/_search",searchParams:t,headers:e,options:i})}compartmentSearch({resourceType:t,compartment:e,searchParams:i,headers:r,options:s={}}={}){if(!nn(t))throw new Error("Invalid resourceType",t);let{resourceType:a,id:o}=e;if(!nn(a))throw new Error("Invalid compartmentType",a);let l=`/${a}/${o}/${t}`;return s.postSearch&&(l+="/_search"),this.baseSearch({searchPath:l,searchParams:i,headers:r,options:s})}baseSearch({searchPath:t,searchParams:e,headers:i,options:r}){let s=fS(e),a=Kt(r,i),o=r.postSearch?"postSearch":"getSearch";return this[o](t,s,a)}postSearch(t,e,i){let s=j(j({},{"Content-Type":"application/x-www-form-urlencoded"}),i.headers),a=$e(j({},i),{headers:s});return this.httpClient.post(t,e,a)}getSearch(t,e,i){let r=t;return e&&(r+=`?${e}`),this.httpClient.get(r,i)}history({resourceType:t,id:e,headers:i,options:r={}}={}){if(t&&!nn(t))throw new Error("Invalid resourceType",t);return e&&t?this.resourceHistory({resourceType:t,id:e,options:Kt(r,i)}):t?this.typeHistory({resourceType:t,options:Kt(r,i)}):this.systemHistory({options:Kt(r,i)})}resourceHistory({resourceType:t,id:e,headers:i,options:r={}}={}){if(!nn(t))throw new Error("Invalid resourceType",t);return this.httpClient.get(`${t}/${e}/_history`,Kt(r,i))}typeHistory({resourceType:t,headers:e,options:i={}}={}){if(!nn(t))throw new Error("Invalid resourceType",t);return this.httpClient.get(`${t}/_history`,Kt(i,e))}systemHistory({headers:t,options:e={}}={}){return this.httpClient.get("_history",Kt(e,t))}};zg.exports=Bg;zg.exports.CapabilityTool=vF});var m_=X((XS,am)=>{(function(){var n="ace",t=function(){return this}();if(!t&&typeof window<"u"&&(t=window),!n&&typeof requirejs<"u")return;var e=function(l,c,u){if(typeof l!="string"){e.original?e.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(u=c),e.modules[l]||(e.payloads[l]=u,e.modules[l]=null)};e.modules={},e.payloads={};var i=function(l,c,u){if(typeof c=="string"){var d=a(l,c);if(d!=null)return u&&u(),d}else if(Object.prototype.toString.call(c)==="[object Array]"){for(var h=[],m=0,f=c.length;ma.length)&&(s=a.length),s-=r.length;var o=a.indexOf(r,s);return o!==-1&&o===s}),String.prototype.repeat||i(String.prototype,"repeat",function(r){for(var s="",a=this;r>0;)r&1&&(s+=a),(r>>=1)&&(a+=a);return s}),String.prototype.includes||i(String.prototype,"includes",function(r,s){return this.indexOf(r,s)!=-1}),Object.assign||(Object.assign=function(r){if(r==null)throw new TypeError("Cannot convert undefined or null to object");for(var s=Object(r),a=1;a>>0,o=arguments[1],l=o>>0,c=l<0?Math.max(a+l,0):Math.min(l,a),u=arguments[2],d=u===void 0?a:u>>0,h=d<0?Math.max(a+d,0):Math.min(d,a);c0;)a&1&&(o+=s),(a>>=1)&&(s+=s);return o};var i=/^\s\s*/,r=/\s\s*$/;t.stringTrimLeft=function(s){return s.replace(i,"")},t.stringTrimRight=function(s){return s.replace(r,"")},t.copyObject=function(s){var a={};for(var o in s)a[o]=s[o];return a},t.copyArray=function(s){for(var a=[],o=0,l=s.length;o65535?2:1}});ace.define("ace/lib/useragent",["require","exports","module"],function(n,t,e){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var i=typeof navigator=="object"?navigator:{},r=(/mac|win|linux/i.exec(i.platform)||["other"])[0].toLowerCase(),s=i.userAgent||"",a=i.appName||"";t.isWin=r=="win",t.isMac=r=="mac",t.isLinux=r=="linux",t.isIE=a=="Microsoft Internet Explorer"||a.indexOf("MSAppHost")>=0?parseFloat((s.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((s.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=s.match(/ Gecko\/\d+/),t.isOpera=typeof opera=="object"&&Object.prototype.toString.call(window.opera)=="[object Opera]",t.isWebKit=parseFloat(s.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(s.split(" Chrome/")[1])||void 0,t.isSafari=parseFloat(s.split(" Safari/")[1])&&!t.isChrome||void 0,t.isEdge=parseFloat(s.split(" Edge/")[1])||void 0,t.isAIR=s.indexOf("AdobeAIR")>=0,t.isAndroid=s.indexOf("Android")>=0,t.isChromeOS=s.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(s)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid});ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(n,t,e){"use strict";var i=n("./useragent"),r="http://www.w3.org/1999/xhtml";t.buildDom=function u(d,h,m){if(typeof d=="string"&&d){var f=document.createTextNode(d);return h&&h.appendChild(f),f}if(!Array.isArray(d))return d&&d.appendChild&&h&&h.appendChild(d),d;if(typeof d[0]!="string"||!d[0]){for(var g=[],v=0;v"u")){if(a){if(h)o();else if(h===!1)return a.push([u,d])}if(!s){var m=h;!h||!h.getRootNode?m=document:(m=h.getRootNode(),(!m||m==h)&&(m=document));var f=m.ownerDocument||m;if(d&&t.hasCssString(d,m))return null;d&&(u+=` -/*# sourceURL=ace/css/`+d+" */");var g=t.createElement("style");g.appendChild(f.createTextNode(u)),d&&(g.id=d),m==f&&(m=t.getDocumentHead(f)),m.insertBefore(g,m.firstChild)}}}if(t.importCssString=l,t.importCssStylsheet=function(u,d){t.buildDom(["link",{rel:"stylesheet",href:u}],t.getDocumentHead(d))},t.scrollbarWidth=function(u){var d=t.createElement("ace_inner");d.style.width="100%",d.style.minWidth="0px",d.style.height="200px",d.style.display="block";var h=t.createElement("ace_outer"),m=h.style;m.position="absolute",m.left="-10000px",m.overflow="hidden",m.width="200px",m.minWidth="0px",m.height="150px",m.display="block",h.appendChild(d);var f=u&&u.documentElement||document&&document.documentElement;if(!f)return 0;f.appendChild(h);var g=d.offsetWidth;m.overflow="scroll";var v=d.offsetWidth;return g===v&&(v=h.clientWidth),f.removeChild(h),g-v},t.computedStyle=function(u,d){return window.getComputedStyle(u,"")||{}},t.setStyle=function(u,d,h){u[d]!==h&&(u[d]=h)},t.HAS_CSS_ANIMATION=!1,t.HAS_CSS_TRANSFORMS=!1,t.HI_DPI=i.isWin?typeof window<"u"&&window.devicePixelRatio>=1.5:!0,i.isChromeOS&&(t.HI_DPI=!1),typeof document<"u"){var c=document.createElement("div");t.HI_DPI&&c.style.transform!==void 0&&(t.HAS_CSS_TRANSFORMS=!0),!i.isEdge&&typeof c.style.animationName<"u"&&(t.HAS_CSS_ANIMATION=!0),c=null}t.HAS_CSS_TRANSFORMS?t.translate=function(u,d,h){u.style.transform="translate("+Math.round(d)+"px, "+Math.round(h)+"px)"}:t.translate=function(u,d,h){u.style.top=Math.round(h)+"px",u.style.left=Math.round(d)+"px"}});ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(n,t,e){"use strict";var i=n("./dom");t.get=function(r,s){var a=new XMLHttpRequest;a.open("GET",r,!0),a.onreadystatechange=function(){a.readyState===4&&s(a.responseText)},a.send(null)},t.loadScript=function(r,s){var a=i.getDocumentHead(),o=document.createElement("script");o.src=r,a.appendChild(o),o.onload=o.onreadystatechange=function(l,c){(c||!o.readyState||o.readyState=="loaded"||o.readyState=="complete")&&(o=o.onload=o.onreadystatechange=null,c||s())}},t.qualifyURL=function(r){var s=document.createElement("a");return s.href=r,s.href}});ace.define("ace/lib/oop",["require","exports","module"],function(n,t,e){"use strict";t.inherits=function(i,r){i.super_=r,i.prototype=Object.create(r.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(i,r){for(var s in r)i[s]=r[s];return i},t.implement=function(i,r){t.mixin(i,r)}});ace.define("ace/lib/event_emitter",["require","exports","module"],function(n,t,e){"use strict";var i={},r=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};i._emit=i._dispatchEvent=function(a,o){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var l=this._eventRegistry[a]||[],c=this._defaultHandlers[a];if(!(!l.length&&!c)){(typeof o!="object"||!o)&&(o={}),o.type||(o.type=a),o.stopPropagation||(o.stopPropagation=r),o.preventDefault||(o.preventDefault=s),l=l.slice();for(var u=0;u1&&(g=m[m.length-2]);var w=o[h+"Path"];return w==null?w=o.basePath:f=="/"&&(h=f=""),w&&w.slice(-1)!="/"&&(w+="/"),w+h+f+g+this.get("suffix")},t.setModuleUrl=function(d,h){return o.$moduleUrls[d]=h};var l=function(d,h){if(d==="ace/theme/textmate"||d==="./theme/textmate")return h(null,n("./theme/textmate"));if(c)return c(d,h);console.error("loader is not configured")},c;t.setLoader=function(d){c=d},t.dynamicModules=Object.create(null),t.$loading={},t.$loaded={},t.loadModule=function(d,h){var m;if(Array.isArray(d))var f=d[0],g=d[1];else if(typeof d=="string")var g=d;var v=function(w){if(w&&!t.$loading[g])return h&&h(w);if(t.$loading[g]||(t.$loading[g]=[]),t.$loading[g].push(h),!(t.$loading[g].length>1)){var C=function(){l(g,function(k,x){x&&(t.$loaded[g]=x),t._emit("load.module",{name:g,module:x});var y=t.$loading[g];t.$loading[g]=null,y.forEach(function(E){E&&E(x)})})};if(!t.get("packaged"))return C();r.loadScript(t.moduleUrl(g,f),C),u()}};if(t.dynamicModules[g])t.dynamicModules[g]().then(function(w){w.default?v(w.default):v(w)});else{try{m=this.$require(g)}catch{}v(m||t.$loaded[g])}},t.$require=function(d){if(typeof e.require=="function"){var h="require";return e[h](d)}},t.setModuleLoader=function(d,h){t.dynamicModules[d]=h};var u=function(){!o.basePath&&!o.workerPath&&!o.modePath&&!o.themePath&&!Object.keys(o.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),u=function(){})};t.version="1.36.5"});ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],function(n,t,e){"use strict";n("./lib/fixoldbrowsers");var i=n("./config");i.setLoader(function(o,l){n([o],function(c){l(null,c)})});var r=function(){return this||typeof window<"u"&&window}();e.exports=function(o){i.init=s,i.$require=n,o.require=n,typeof define=="function"&&(o.define=define)},s(!0);function s(o){if(!(!r||!r.document)){i.set("packaged",o||n.packaged||e.packaged||r.define&&define.packaged);var l={},c="",u=document.currentScript||document._currentScript,d=u&&u.ownerDocument||document;u&&u.src&&(c=u.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var h=d.getElementsByTagName("script"),m=0;m ["+this.end.row+"/"+this.end.column+"]"},r.prototype.contains=function(s,a){return this.compare(s,a)==0},r.prototype.compareRange=function(s){var a,o=s.end,l=s.start;return a=this.compare(o.row,o.column),a==1?(a=this.compare(l.row,l.column),a==1?2:a==0?1:0):a==-1?-2:(a=this.compare(l.row,l.column),a==-1?-1:a==1?42:0)},r.prototype.comparePoint=function(s){return this.compare(s.row,s.column)},r.prototype.containsRange=function(s){return this.comparePoint(s.start)==0&&this.comparePoint(s.end)==0},r.prototype.intersects=function(s){var a=this.compareRange(s);return a==-1||a==0||a==1},r.prototype.isEnd=function(s,a){return this.end.row==s&&this.end.column==a},r.prototype.isStart=function(s,a){return this.start.row==s&&this.start.column==a},r.prototype.setStart=function(s,a){typeof s=="object"?(this.start.column=s.column,this.start.row=s.row):(this.start.row=s,this.start.column=a)},r.prototype.setEnd=function(s,a){typeof s=="object"?(this.end.column=s.column,this.end.row=s.row):(this.end.row=s,this.end.column=a)},r.prototype.inside=function(s,a){return this.compare(s,a)==0?!(this.isEnd(s,a)||this.isStart(s,a)):!1},r.prototype.insideStart=function(s,a){return this.compare(s,a)==0?!this.isEnd(s,a):!1},r.prototype.insideEnd=function(s,a){return this.compare(s,a)==0?!this.isStart(s,a):!1},r.prototype.compare=function(s,a){return!this.isMultiLine()&&s===this.start.row?athis.end.column?1:0:sthis.end.row?1:this.start.row===s?a>=this.start.column?0:-1:this.end.row===s?a<=this.end.column?0:1:0},r.prototype.compareStart=function(s,a){return this.start.row==s&&this.start.column==a?-1:this.compare(s,a)},r.prototype.compareEnd=function(s,a){return this.end.row==s&&this.end.column==a?1:this.compare(s,a)},r.prototype.compareInside=function(s,a){return this.end.row==s&&this.end.column==a?1:this.start.row==s&&this.start.column==a?-1:this.compare(s,a)},r.prototype.clipRows=function(s,a){if(this.end.row>a)var o={row:a+1,column:0};else if(this.end.rowa)var l={row:a+1,column:0};else if(this.start.row1?(E++,E>4&&(E=1)):E=1,r.isIE){var S=Math.abs(b.clientX-T)>5||Math.abs(b.clientY-M)>5;(!D||S)&&(E=1),D&&clearTimeout(D),D=setTimeout(function(){D=null},C[E-1]||600),E==1&&(T=b.clientX,M=b.clientY)}if(b._clicks=E,k[x]("mousedown",b),E>4)E=0;else if(E>1)return k[x](_[E],b)}Array.isArray(w)||(w=[w]),w.forEach(function(b){d(b,"mousedown",p,y)})};function m(w){return 0|(w.ctrlKey?1:0)|(w.altKey?2:0)|(w.shiftKey?4:0)|(w.metaKey?8:0)}t.getModifierString=function(w){return i.KEY_MODS[m(w)]};function f(w,C,k){var x=m(C);if(!k&&C.code&&(k=i.$codeToKeyCode[C.code]||k),!r.isMac&&s){if(C.getModifierState&&(C.getModifierState("OS")||C.getModifierState("Win"))&&(x|=8),s.altGr)if((3&x)!=3)s.altGr=0;else return;if(k===18||k===17){var y=C.location;if(k===17&&y===1)s[k]==1&&(a=C.timeStamp);else if(k===18&&x===3&&y===2){var E=C.timeStamp-a;E<50&&(s.altGr=!0)}}}if(k in i.MODIFIER_KEYS&&(k=-1),!(!x&&k===13&&C.location===3&&(w(C,x,-k),C.defaultPrevented))){if(r.isChromeOS&&x&8){if(w(C,x,k),C.defaultPrevented)return;x&=-9}return!x&&!(k in i.FUNCTION_KEYS)&&!(k in i.PRINTABLE_KEYS)?!1:w(C,x,k)}}t.addCommandKeyListener=function(w,C,k){var x=null;d(w,"keydown",function(y){s[y.keyCode]=(s[y.keyCode]||0)+1;var E=f(C,y,y.keyCode);return x=y.defaultPrevented,E},k),d(w,"keypress",function(y){x&&(y.ctrlKey||y.altKey||y.shiftKey||y.metaKey)&&(t.stopEvent(y),x=null)},k),d(w,"keyup",function(y){s[y.keyCode]=null},k),s||(g(),d(window,"focus",g))};function g(){s=Object.create(null)}if(typeof window=="object"&&window.postMessage&&!r.isOldIE){var v=1;t.nextTick=function(w,C){C=C||window;var k="zero-timeout-message-"+v++,x=function(y){y.data==k&&(t.stopPropagation(y),h(C,"message",x),w())};d(C,"message",x),C.postMessage(k,"*")}}t.$idleBlocked=!1,t.onIdle=function(w,C){return setTimeout(function k(){t.$idleBlocked?setTimeout(k,100):w()},C)},t.$idleBlockId=null,t.blockIdle=function(w){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout(function(){t.$idleBlocked=!1},w||100)},t.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(w){setTimeout(w,17)}});ace.define("ace/clipboard",["require","exports","module"],function(n,t,e){"use strict";var i;e.exports={lineMode:!1,pasteCancelled:function(){return i&&i>Date.now()-50?!0:i=!1},cancel:function(){i=Date.now()}}});ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(n,t,e){"use strict";var i=n("../lib/event"),r=n("../config").nls,s=n("../lib/useragent"),a=n("../lib/dom"),o=n("../lib/lang"),l=n("../clipboard"),c=s.isChrome<18,u=s.isIE,d=s.isChrome>63,h=400,m=n("../lib/keys"),f=m.KEY_MODS,g=s.isIOS,v=g?/\s/:/\n/,w=s.isMobile,C;C=function(k,x){var y=a.createElement("textarea");y.className="ace_text-input",y.setAttribute("wrap","off"),y.setAttribute("autocorrect","off"),y.setAttribute("autocapitalize","off"),y.setAttribute("spellcheck","false"),y.style.opacity="0",k.insertBefore(y,k.firstChild);var E=!1,T=!1,M=!1,D=!1,_="";w||(y.style.fontSize="1px");var p=!1,b=!1,S="",I=0,A=0,R=0,O=Number.MAX_SAFE_INTEGER,U=Number.MIN_SAFE_INTEGER,P=0;try{var W=document.activeElement===y}catch{}this.setNumberOfExtraLines=function(H){if(O=Number.MAX_SAFE_INTEGER,U=Number.MIN_SAFE_INTEGER,H<0){P=0;return}P=H},this.setAriaLabel=function(){var H="";if(x.$textInputAriaLabel&&(H+="".concat(x.$textInputAriaLabel,", ")),x.session){var re=x.session.selection.cursor.row;H+=r("text-input.aria-label","Cursor at row $0",[re+1])}y.setAttribute("aria-label",H)},this.setAriaOptions=function(H){H.activeDescendant?(y.setAttribute("aria-haspopup","true"),y.setAttribute("aria-autocomplete",H.inline?"both":"list"),y.setAttribute("aria-activedescendant",H.activeDescendant)):(y.setAttribute("aria-haspopup","false"),y.setAttribute("aria-autocomplete","both"),y.removeAttribute("aria-activedescendant")),H.role&&y.setAttribute("role",H.role),H.setLabel&&(y.setAttribute("aria-roledescription",r("text-input.aria-roledescription","editor")),this.setAriaLabel())},this.setAriaOptions({role:"textbox"}),i.addListener(y,"blur",function(H){b||(x.onBlur(H),W=!1)},x),i.addListener(y,"focus",function(H){if(!b){if(W=!0,s.isEdge)try{if(!document.hasFocus())return}catch{}x.onFocus(H),s.isEdge?setTimeout(K):K()}},x),this.$focusScroll=!1,this.focus=function(){if(this.setAriaOptions({setLabel:x.renderer.enableKeyboardAccessibility}),_||d||this.$focusScroll=="browser")return y.focus({preventScroll:!0});var H=y.style.top;y.style.position="fixed",y.style.top="0px";try{var re=y.getBoundingClientRect().top!=0}catch{return}var de=[];if(re)for(var ze=y.parentElement;ze&&ze.nodeType==1;)de.push(ze),ze.setAttribute("ace_nocontext","true"),!ze.parentElement&&ze.getRootNode?ze=ze.getRootNode().host:ze=ze.parentElement;y.focus({preventScroll:!0}),re&&de.forEach(function(lt){lt.removeAttribute("ace_nocontext")}),setTimeout(function(){y.style.position="",y.style.top=="0px"&&(y.style.top=H)},0)},this.blur=function(){y.blur()},this.isFocused=function(){return W},x.on("beforeEndOperation",function(){var H=x.curOp,re=H&&H.command&&H.command.name;if(re!="insertstring"){var de=re&&(H.docChanged||H.selectionChanged);M&&de&&(S=y.value="",En()),K()}}),x.on("changeSelection",this.setAriaLabel);var V=function(H,re){for(var de=re,ze=1;ze<=H-O&&ze<2*P+1;ze++)de+=x.session.getLine(H-ze).length+1;return de},K=g?function(H){if(!(!W||E&&!H||D)){H||(H="");var re=` - ab`+H+`cde fg -`;re!=y.value&&(y.value=S=re);var de=4,ze=4+(H.length||(x.selection.isEmpty()?0:1));(I!=de||A!=ze)&&y.setSelectionRange(de,ze),I=de,A=ze}}:function(){if(!(M||D)&&!(!W&&!Re)){M=!0;var H=0,re=0,de="";if(x.session){var ze=x.selection,lt=ze.getRange(),At=ze.cursor.row;At===U+1?(O=U+1,U=O+2*P):At===O-1?(U=O-1,O=U-2*P):(AtU+1)&&(O=At>P?At-P:0,U=At>P?At+P:2*P);for(var Vt=[],Lt=O;Lt<=U;Lt++)Vt.push(x.session.getLine(Lt));if(de=Vt.join(` -`),H=V(lt.start.row,lt.start.column),re=V(lt.end.row,lt.end.column),lt.start.rowU){var kt=x.session.getLine(U+1);re=lt.end.row>U+1?kt.length:lt.end.column,re+=de.length+1,de=de+` -`+kt}else w&&At>0&&(de=` -`+de,re+=1,H+=1);de.length>h&&(H=S.length&&H.value===S&&S&&H.selectionEnd!==A},q=function(H){M||(E?E=!1:Q(y)?(x.selectAll(),K()):w&&y.selectionStart!=I&&K())},ce=null;this.setInputHandler=function(H){ce=H},this.getInputHandler=function(){return ce};var Re=!1,ve=function(H,re){if(Re&&(Re=!1),T)return K(),H&&x.onPaste(H),T=!1,"";for(var de=y.selectionStart,ze=y.selectionEnd,lt=I,At=S.length-A,Vt=H,Lt=H.length-de,Bt=H.length-ze,kt=0;lt>0&&S[kt]==H[kt];)kt++,lt--;for(Vt=Vt.slice(kt),kt=1;At>0&&S.length-kt>I-1&&S[S.length-kt]==H[H.length-kt];)kt++,At--;Lt-=kt-1,Bt-=kt-1;var Qi=Vt.length-kt+1;if(Qi<0&&(lt=-Qi,Qi=0),Vt=Vt.slice(0,Qi),!re&&!Vt&&!Lt&&!lt&&!At&&!Bt)return"";D=!0;var tc=!1;return s.isAndroid&&Vt==". "&&(Vt=" ",tc=!0),Vt&&!lt&&!At&&!Lt&&!Bt||p?x.onTextInput(Vt):x.onTextInput(Vt,{extendLeft:lt,extendRight:At,restoreStart:Lt,restoreEnd:Bt}),D=!1,S=H,I=de,A=ze,R=Bt,tc?` -`:Vt},ae=function(H){if(M)return St();if(H&&H.inputType){if(H.inputType=="historyUndo")return x.execCommand("undo");if(H.inputType=="historyRedo")return x.execCommand("redo")}var re=y.value,de=ve(re,!0);(re.length>h+100||v.test(de)||w&&I<1&&I==A)&&K()},we=function(H,re,de){var ze=H.clipboardData||window.clipboardData;if(!(!ze||c)){var lt=u||de?"Text":"text/plain";try{return re?ze.setData(lt,re)!==!1:ze.getData(lt)}catch(At){if(!de)return we(At,re,!0)}}},Ie=function(H,re){var de=x.getCopyText();if(!de)return i.preventDefault(H);we(H,de)?(g&&(K(de),E=de,setTimeout(function(){E=!1},10)),re?x.onCut():x.onCopy(),i.preventDefault(H)):(E=!0,y.value=de,y.select(),setTimeout(function(){E=!1,K(),re?x.onCut():x.onCopy()}))},rt=function(H){Ie(H,!0)},dt=function(H){Ie(H,!1)},mt=function(H){var re=we(H);l.pasteCancelled()||(typeof re=="string"?(re&&x.onPaste(re,H),s.isIE&&setTimeout(K),i.preventDefault(H)):(y.value="",T=!0))};i.addCommandKeyListener(y,function(H,re,de){if(!M)return x.onCommandKey(H,re,de)},x),i.addListener(y,"select",q,x),i.addListener(y,"input",ae,x),i.addListener(y,"cut",rt,x),i.addListener(y,"copy",dt,x),i.addListener(y,"paste",mt,x),(!("oncut"in y)||!("oncopy"in y)||!("onpaste"in y))&&i.addListener(k,"keydown",function(H){if(!(s.isMac&&!H.metaKey||!H.ctrlKey))switch(H.keyCode){case 67:dt(H);break;case 86:mt(H);break;case 88:rt(H);break}},x);var Ge=function(H){if(!(M||!x.onCompositionStart||x.$readOnly)&&(M={},!p)){H.data&&(M.useTextareaForIME=!1),setTimeout(St,0),x._signal("compositionStart"),x.on("mousedown",vr);var re=x.getSelectionRange();re.end.row=re.start.row,re.end.column=re.start.column,M.markerRange=re,M.selectionStart=I,x.onCompositionStart(M),M.useTextareaForIME?(S=y.value="",I=0,A=0):(y.msGetInputContext&&(M.context=y.msGetInputContext()),y.getInputContext&&(M.context=y.getInputContext()))}},St=function(){if(!(!M||!x.onCompositionUpdate||x.$readOnly)){if(p)return vr();if(M.useTextareaForIME)x.onCompositionUpdate(y.value);else{var H=y.value;ve(H),M.markerRange&&(M.context&&(M.markerRange.start.column=M.selectionStart=M.context.compositionStartOffset),M.markerRange.end.column=M.markerRange.start.column+A-M.selectionStart+R)}}},En=function(H){!x.onCompositionEnd||x.$readOnly||(M=!1,x.onCompositionEnd(),x.off("mousedown",vr),H&&ae())};function vr(){b=!0,y.blur(),y.focus(),b=!1}var dn=o.delayedCall(St,50).schedule.bind(null,null);function ot(H){H.keyCode==27&&y.value.lengthA&&S[Bt]==` -`?kt=m.end:LtA&&S.slice(0,Bt).split(` -`).length>2?kt=m.down:Bt>A&&S[Bt-1]==" "?(kt=m.right,Qi=f.option):(Bt>A||Bt==A&&A!=I&&Lt==Bt)&&(kt=m.right),Lt!==Bt&&(Qi|=f.shift),kt){var tc=re.onCommandKey({},Qi,kt);if(!tc&&re.commands){kt=m.keyCodeToString(kt);var yC=re.commands.findKeyCommand(Qi,kt);yC&&re.execCommand(yC)}I=Lt,A=Bt,K("")}}};document.addEventListener("selectionchange",At),re.on("destroy",function(){document.removeEventListener("selectionchange",At)})}this.destroy=function(){y.parentElement&&y.parentElement.removeChild(y)}},t.TextInput=C,t.$setUserAgentForTests=function(k,x){w=k,g=x}});ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],function(n,t,e){"use strict";var i=n("../lib/useragent"),r=0,s=550,a=function(){function c(u){u.$clickSelection=null;var d=u.editor;d.setDefaultHandler("mousedown",this.onMouseDown.bind(u)),d.setDefaultHandler("dblclick",this.onDoubleClick.bind(u)),d.setDefaultHandler("tripleclick",this.onTripleClick.bind(u)),d.setDefaultHandler("quadclick",this.onQuadClick.bind(u)),d.setDefaultHandler("mousewheel",this.onMouseWheel.bind(u));var h=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];h.forEach(function(m){u[m]=this[m]},this),u.selectByLines=this.extendSelectionBy.bind(u,"getLineRange"),u.selectByWords=this.extendSelectionBy.bind(u,"getWordRange")}return c.prototype.onMouseDown=function(u){var d=u.inSelection(),h=u.getDocumentPosition();this.mousedownEvent=u;var m=this.editor,f=u.getButton();if(f!==0){var g=m.getSelectionRange(),v=g.isEmpty();(v||f==1)&&m.selection.moveToPosition(h),f==2&&(m.textInput.onContextMenu(u.domEvent),i.isMozilla||u.preventDefault());return}if(this.mousedownEvent.time=Date.now(),d&&!m.isFocused()&&(m.focus(),this.$focusTimeout&&!this.$clickSelection&&!m.inMultiSelectMode)){this.setState("focusWait"),this.captureMouse(u);return}return this.captureMouse(u),this.startSelect(h,u.domEvent._clicks>1),u.preventDefault()},c.prototype.startSelect=function(u,d){u=u||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var h=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?h.selection.selectToPosition(u):d||h.selection.moveToPosition(u),d||this.select(),h.setStyle("ace_selecting"),this.setState("select"))},c.prototype.select=function(){var u,d=this.editor,h=d.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var m=this.$clickSelection.comparePoint(h);if(m==-1)u=this.$clickSelection.end;else if(m==1)u=this.$clickSelection.start;else{var f=l(this.$clickSelection,h);h=f.cursor,u=f.anchor}d.selection.setSelectionAnchor(u.row,u.column)}d.selection.selectToPosition(h),d.renderer.scrollCursorIntoView()},c.prototype.extendSelectionBy=function(u){var d,h=this.editor,m=h.renderer.screenToTextCoordinates(this.x,this.y),f=h.selection[u](m.row,m.column);if(this.$clickSelection){var g=this.$clickSelection.comparePoint(f.start),v=this.$clickSelection.comparePoint(f.end);if(g==-1&&v<=0)d=this.$clickSelection.end,(f.end.row!=m.row||f.end.column!=m.column)&&(m=f.start);else if(v==1&&g>=0)d=this.$clickSelection.start,(f.start.row!=m.row||f.start.column!=m.column)&&(m=f.end);else if(g==-1&&v==1)m=f.end,d=f.start;else{var w=l(this.$clickSelection,m);m=w.cursor,d=w.anchor}h.selection.setSelectionAnchor(d.row,d.column)}h.selection.selectToPosition(m),h.renderer.scrollCursorIntoView()},c.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},c.prototype.focusWait=function(){var u=o(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),d=Date.now();(u>r||d-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},c.prototype.onDoubleClick=function(u){var d=u.getDocumentPosition(),h=this.editor,m=h.session,f=m.getBracketRange(d);f?(f.isEmpty()&&(f.start.column--,f.end.column++),this.setState("select")):(f=h.selection.getWordRange(d.row,d.column),this.setState("selectByWords")),this.$clickSelection=f,this.select()},c.prototype.onTripleClick=function(u){var d=u.getDocumentPosition(),h=this.editor;this.setState("selectByLines");var m=h.getSelectionRange();m.isMultiLine()&&m.contains(d.row,d.column)?(this.$clickSelection=h.selection.getLineRange(m.start.row),this.$clickSelection.end=h.selection.getLineRange(m.end.row).end):this.$clickSelection=h.selection.getLineRange(d.row),this.select()},c.prototype.onQuadClick=function(u){var d=this.editor;d.selectAll(),this.$clickSelection=d.getSelectionRange(),this.setState("selectAll")},c.prototype.onMouseWheel=function(u){if(!u.getAccelKey()){u.getShiftKey()&&u.wheelY&&!u.wheelX&&(u.wheelX=u.wheelY,u.wheelY=0);var d=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var h=this.$lastScroll,m=u.domEvent.timeStamp,f=m-h.t,g=f?u.wheelX/f:h.vx,v=f?u.wheelY/f:h.vy;f=1&&d.renderer.isScrollableBy(u.wheelX*u.speed,0)&&(C=!0),w<=1&&d.renderer.isScrollableBy(0,u.wheelY*u.speed)&&(C=!0),C)h.allowed=m;else if(m-h.alloweds.clientHeight;a||r.preventDefault()}});ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range","ace/lib/scroll"],function(n,t,e){"use strict";var i=this&&this.__extends||function(){var f=function(g,v){return f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(w,C){w.__proto__=C}||function(w,C){for(var k in C)Object.prototype.hasOwnProperty.call(C,k)&&(w[k]=C[k])},f(g,v)};return function(g,v){if(typeof v!="function"&&v!==null)throw new TypeError("Class extends value "+String(v)+" is not a constructor or null");f(g,v);function w(){this.constructor=g}g.prototype=v===null?Object.create(v):(w.prototype=v.prototype,new w)}}(),r=this&&this.__values||function(f){var g=typeof Symbol=="function"&&Symbol.iterator,v=g&&f[g],w=0;if(v)return v.call(f);if(f&&typeof f.length=="number")return{next:function(){return f&&w>=f.length&&(f=void 0),{value:f&&f[w++],done:!f}}};throw new TypeError(g?"Object is not iterable.":"Symbol.iterator is not defined.")},s=n("./lib/dom"),a=n("./lib/event"),o=n("./range").Range,l=n("./lib/scroll").preventParentScroll,c="ace_tooltip",u=function(){function f(g){this.isOpen=!1,this.$element=null,this.$parentNode=g}return f.prototype.$init=function(){return this.$element=s.createElement("div"),this.$element.className=c,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},f.prototype.getElement=function(){return this.$element||this.$init()},f.prototype.setText=function(g){this.getElement().textContent=g},f.prototype.setHtml=function(g){this.getElement().innerHTML=g},f.prototype.setPosition=function(g,v){this.getElement().style.left=g+"px",this.getElement().style.top=v+"px"},f.prototype.setClassName=function(g){s.addCssClass(this.getElement(),g)},f.prototype.setTheme=function(g){this.$element.className=c+" "+(g.isDark?"ace_dark ":"")+(g.cssClass||"")},f.prototype.show=function(g,v,w){g!=null&&this.setText(g),v!=null&&w!=null&&this.setPosition(v,w),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},f.prototype.hide=function(g){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=c,this.isOpen=!1)},f.prototype.getHeight=function(){return this.getElement().offsetHeight},f.prototype.getWidth=function(){return this.getElement().offsetWidth},f.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},f}(),d=function(){function f(){this.popups=[]}return f.prototype.addPopup=function(g){this.popups.push(g),this.updatePopups()},f.prototype.removePopup=function(g){var v=this.popups.indexOf(g);v!==-1&&(this.popups.splice(v,1),this.updatePopups())},f.prototype.updatePopups=function(){var g,v,w,C;this.popups.sort(function(p,b){return b.priority-p.priority});var k=[];try{for(var x=r(this.popups),y=x.next();!y.done;y=x.next()){var E=y.value,T=!0;try{for(var M=(w=void 0,r(k)),D=M.next();!D.done;D=M.next()){var _=D.value;if(this.doPopupsOverlap(_,E)){T=!1;break}}}catch(p){w={error:p}}finally{try{D&&!D.done&&(C=M.return)&&C.call(M)}finally{if(w)throw w.error}}T?k.push(E):E.hide()}}catch(p){g={error:p}}finally{try{y&&!y.done&&(v=x.return)&&v.call(x)}finally{if(g)throw g.error}}},f.prototype.doPopupsOverlap=function(g,v){var w=g.getElement().getBoundingClientRect(),C=v.getElement().getBoundingClientRect();return w.leftC.left&&w.topC.top},f}(),h=new d;t.popupManager=h,t.Tooltip=u;var m=function(f){i(g,f);function g(v){v===void 0&&(v=document.body);var w=f.call(this,v)||this;w.timeout=void 0,w.lastT=0,w.idleTime=350,w.lastEvent=void 0,w.onMouseOut=w.onMouseOut.bind(w),w.onMouseMove=w.onMouseMove.bind(w),w.waitForHover=w.waitForHover.bind(w),w.hide=w.hide.bind(w);var C=w.getElement();return C.style.whiteSpace="pre-wrap",C.style.pointerEvents="auto",C.addEventListener("mouseout",w.onMouseOut),C.tabIndex=-1,C.addEventListener("blur",function(){C.contains(document.activeElement)||this.hide()}.bind(w)),C.addEventListener("wheel",l),w}return g.prototype.addToEditor=function(v){v.on("mousemove",this.onMouseMove),v.on("mousedown",this.hide),v.renderer.getMouseEventTarget().addEventListener("mouseout",this.onMouseOut,!0)},g.prototype.removeFromEditor=function(v){v.off("mousemove",this.onMouseMove),v.off("mousedown",this.hide),v.renderer.getMouseEventTarget().removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},g.prototype.onMouseMove=function(v,w){this.lastEvent=v,this.lastT=Date.now();var C=w.$mouseHandler.isMousePressed;if(this.isOpen){var k=this.lastEvent&&this.lastEvent.getDocumentPosition();(!this.range||!this.range.contains(k.row,k.column)||C||this.isOutsideOfText(this.lastEvent))&&this.hide()}this.timeout||C||(this.lastEvent=v,this.timeout=setTimeout(this.waitForHover,this.idleTime))},g.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var v=Date.now()-this.lastT;if(this.idleTime-v>10){this.timeout=setTimeout(this.waitForHover,this.idleTime-v);return}this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor)},g.prototype.isOutsideOfText=function(v){var w=v.editor,C=v.getDocumentPosition(),k=w.session.getLine(C.row);if(C.column==k.length){var x=w.renderer.pixelToScreenCoordinates(v.clientX,v.clientY),y=w.session.documentToScreenPosition(C.row,C.column);if(y.column!=x.column||y.row!=x.row)return!0}return!1},g.prototype.setDataProvider=function(v){this.$gatherData=v},g.prototype.showForRange=function(v,w,C,k){var x=10;if(!(k&&k!=this.lastEvent)&&!(this.isOpen&&document.activeElement==this.getElement())){var y=v.renderer;this.isOpen||(h.addPopup(this),this.$registerCloseEvents(),this.setTheme(y.theme)),this.isOpen=!0,this.addMarker(w,v.session),this.range=o.fromPoints(w.start,w.end);var E=y.textToScreenCoordinates(w.start.row,w.start.column),T=y.scroller.getBoundingClientRect();E.pageX=h.length&&(h=void 0),{value:h&&h[g++],done:!h}}};throw new TypeError(m?"Object is not iterable.":"Symbol.iterator is not defined.")},s=n("../lib/dom"),a=n("../lib/event"),o=n("../tooltip").Tooltip,l=n("../config").nls,c=n("../lib/lang");function u(h){var m=h.editor,f=m.renderer.$gutterLayer,g=new d(m);h.editor.setDefaultHandler("guttermousedown",function(y){if(!(!m.isFocused()||y.getButton()!=0)){var E=f.getRegion(y);if(E!="foldWidgets"){var T=y.getDocumentPosition().row,M=m.session.selection;if(y.getShiftKey())M.selectTo(T,0);else{if(y.domEvent.detail==2)return m.selectAll(),y.preventDefault();h.$clickSelection=m.selection.getLineRange(T)}return h.setState("selectByLines"),h.captureMouse(y),y.preventDefault()}}});var v,w;function C(){var y=w.getDocumentPosition().row,E=m.session.getLength();if(y==E){var T=m.renderer.pixelToScreenCoordinates(0,w.y).row,M=w.$pos;if(T>m.session.documentToScreenRow(M.row,M.column))return k()}if(g.showTooltip(y),!!g.isOpen)if(m.on("mousewheel",k),h.$tooltipFollowsMouse)x(w);else{var D=w.getGutterRow(),_=f.$lines.get(D);if(_){var p=_.element.querySelector(".ace_gutter_annotation"),b=p.getBoundingClientRect(),S=g.getElement().style;S.left=b.right+"px",S.top=b.bottom+"px"}else x(w)}}function k(){v&&(v=clearTimeout(v)),g.isOpen&&(g.hideTooltip(),m.off("mousewheel",k))}function x(y){g.setPosition(y.x,y.y)}h.editor.setDefaultHandler("guttermousemove",function(y){var E=y.domEvent.target||y.domEvent.srcElement;if(s.hasCssClass(E,"ace_fold-widget"))return k();g.isOpen&&h.$tooltipFollowsMouse&&x(y),w=y,!v&&(v=setTimeout(function(){v=null,w&&!h.isMousePressed?C():k()},50))}),a.addListener(m.renderer.$gutter,"mouseout",function(y){w=null,!(!g.isOpen||v)&&(v=setTimeout(function(){v=null,k()},50))},m),m.on("changeSession",k),m.on("input",k)}t.GutterHandler=u;var d=function(h){i(m,h);function m(f){var g=h.call(this,f.container)||this;return g.editor=f,g}return m.prototype.setPosition=function(f,g){var v=window.innerWidth||document.documentElement.clientWidth,w=window.innerHeight||document.documentElement.clientHeight,C=this.getWidth(),k=this.getHeight();f+=15,g+=15,f+C>v&&(f-=f+C-v),g+k>w&&(g-=20+k),o.prototype.setPosition.call(this,f,g)},Object.defineProperty(m,"annotationLabels",{get:function(){return{error:{singular:l("gutter-tooltip.aria-label.error.singular","error"),plural:l("gutter-tooltip.aria-label.error.plural","errors")},security:{singular:l("gutter-tooltip.aria-label.security.singular","security finding"),plural:l("gutter-tooltip.aria-label.security.plural","security findings")},warning:{singular:l("gutter-tooltip.aria-label.warning.singular","warning"),plural:l("gutter-tooltip.aria-label.warning.plural","warnings")},info:{singular:l("gutter-tooltip.aria-label.info.singular","information message"),plural:l("gutter-tooltip.aria-label.info.plural","information messages")},hint:{singular:l("gutter-tooltip.aria-label.hint.singular","suggestion"),plural:l("gutter-tooltip.aria-label.hint.plural","suggestions")}}},enumerable:!1,configurable:!0}),m.prototype.showTooltip=function(f){var g,v=this.editor.renderer.$gutterLayer,w=v.$annotations[f],C;w?C={displayText:Array.from(w.displayText),type:Array.from(w.type)}:C={displayText:[],type:[]};var k=v.session.getFoldLine(f);if(k&&v.$showFoldedAnnotations){for(var x={error:[],security:[],warning:[],info:[],hint:[]},y={error:1,security:2,warning:3,info:4,hint:5},E,T=f+1;T<=k.end.row;T++)if(v.$annotations[T])for(var M=0;Ml?_=null:Q-_>=o&&(h.renderer.scrollCursorIntoView(),_=null)}}function S(V,K){var Q=Date.now(),q=h.renderer.layerConfig.lineHeight,ce=h.renderer.layerConfig.characterWidth,Re=h.renderer.scroller.getBoundingClientRect(),ve={x:{left:w-Re.left,right:Re.right-w},y:{top:C-Re.top,bottom:Re.bottom-C}},ae=Math.min(ve.x.left,ve.x.right),we=Math.min(ve.y.top,ve.y.bottom),Ie={row:V.row,column:V.column};ae/ce<=2&&(Ie.column+=ve.x.left=a&&h.renderer.scrollCursorIntoView(Ie):D=Q:D=null}function I(){var V=y;y=h.renderer.screenToTextCoordinates(w,C),b(y,V),S(y,V)}function A(){x=h.selection.toOrientedRange(),v=h.session.addMarker(x,"ace_selection",h.getSelectionStyle()),h.clearSelection(),h.isFocused()&&h.renderer.$cursorLayer.setBlinking(!1),clearInterval(k),I(),k=setInterval(I,20),E=0,r.addListener(document,"mousemove",U)}function R(){clearInterval(k),h.session.removeMarker(v),v=null,h.selection.fromOrientedRange(x),h.isFocused()&&!M&&h.$resetCursorStyle(),x=null,y=null,E=0,D=null,_=null,r.removeListener(document,"mousemove",U)}var O=null;function U(){O==null&&(O=setTimeout(function(){O!=null&&v&&R()},20))}function P(V){var K=V.types;return!K||Array.prototype.some.call(K,function(Q){return Q=="text/plain"||Q=="Text"})}function W(V){var K=["copy","copymove","all","uninitialized"],Q=["move","copymove","linkmove","all","uninitialized"],q=s.isMac?V.altKey:V.ctrlKey,ce="uninitialized";try{ce=V.dataTransfer.effectAllowed.toLowerCase()}catch{}var Re="none";return q&&K.indexOf(ce)>=0?Re="copy":Q.indexOf(ce)>=0?Re="move":K.indexOf(ce)>=0&&(Re="copy"),Re}}(function(){this.dragWait=function(){var d=Date.now()-this.mousedownEvent.time;d>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var d=this.editor.container;d.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(d){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var d=this.editor,h=d.container;h.draggable=!0,d.renderer.$cursorLayer.setBlinking(!1),d.setStyle("ace_dragging");var m=s.isWin?"default":"move";d.renderer.setCursorStyle(m),this.setState("dragReady")},this.onMouseDrag=function(d){var h=this.editor.container;if(s.isIE&&this.state=="dragReady"){var m=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);m>3&&h.dragDrop()}if(this.state==="dragWait"){var m=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);m>0&&(h.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(d){if(this.$dragEnabled){this.mousedownEvent=d;var h=this.editor,m=d.inSelection(),f=d.getButton(),g=d.domEvent.detail||1;if(g===1&&f===0&&m){if(d.editor.inMultiSelectMode&&(d.getAccelKey()||d.getShiftKey()))return;this.mousedownEvent.time=Date.now();var v=d.domEvent.target||d.domEvent.srcElement;if("unselectable"in v&&(v.unselectable="on"),h.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var w=h.container;w.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(d,this.onMouseDrag.bind(this)),d.defaultPrevented=!0}}}}).call(c.prototype);function u(d,h,m,f){return Math.sqrt(Math.pow(m-d,2)+Math.pow(f-h,2))}t.DragdropHandler=c});ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],function(n,t,e){"use strict";var i=n("./mouse_event").MouseEvent,r=n("../lib/event"),s=n("../lib/dom");t.addTouchListeners=function(a,o){var l="scroll",c,u,d,h,m,f,g=0,v,w=0,C=0,k=0,x,y;function E(){var b=window.navigator&&window.navigator.clipboard,S=!1,I=function(){var O=o.getCopyText(),U=o.session.getUndoManager().hasUndo();y.replaceChild(s.buildDom(S?["span",!O&&A("selectall")&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],O&&A("copy")&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],O&&A("cut")&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],b&&A("paste")&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],U&&A("undo")&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],A("find")&&["span",{class:"ace_mobile-button",action:"find"},"Find"],A("openCommandPalette")&&["span",{class:"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),y.firstChild)},A=function(O){return o.commands.canExecute(O,o)},R=function(O){var U=O.target.getAttribute("action");if(U=="more"||!S)return S=!S,I();U=="paste"?b.readText().then(function(P){o.execCommand(U,P)}):U&&((U=="cut"||U=="copy")&&(b?b.writeText(o.getCopyText()):document.execCommand("copy")),o.execCommand(U)),y.firstChild.style.display="none",S=!1,U!="openCommandPalette"&&o.focus()};y=s.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(O){l="menu",O.stopPropagation(),O.preventDefault(),o.textInput.focus()},ontouchend:function(O){O.stopPropagation(),O.preventDefault(),R(O)},onclick:R},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],o.container)}function T(){if(!o.getOption("enableMobileMenu")){y&&M();return}y||E();var b=o.selection.cursor,S=o.renderer.textToScreenCoordinates(b.row,b.column),I=o.renderer.textToScreenCoordinates(0,0).pageX,A=o.renderer.scrollLeft,R=o.container.getBoundingClientRect();y.style.top=S.pageY-R.top-3+"px",S.pageX-R.left=2?o.selection.getLineRange(v.row):o.session.getBracketRange(v);b&&!b.isEmpty()?o.selection.setRange(b):o.selection.selectWord(),l="wait"}r.addListener(a,"contextmenu",function(b){if(x){var S=o.textInput.getElement();S.focus()}},o),r.addListener(a,"touchstart",function(b){var S=b.touches;if(m||S.length>1){clearTimeout(m),m=null,d=-1,l="zoom";return}x=o.$mouseHandler.isMousePressed=!0;var I=o.renderer.layerConfig.lineHeight,A=o.renderer.layerConfig.lineHeight,R=b.timeStamp;h=R;var O=S[0],U=O.clientX,P=O.clientY;Math.abs(c-U)+Math.abs(u-P)>I&&(d=-1),c=b.clientX=U,u=b.clientY=P,C=k=0;var W=new i(b,o);if(v=W.getDocumentPosition(),R-d<500&&S.length==1&&!g)w++,b.preventDefault(),b.button=0,_();else{w=0;var V=o.selection.cursor,K=o.selection.isEmpty()?V:o.selection.anchor,Q=o.renderer.$cursorLayer.getPixelPosition(V,!0),q=o.renderer.$cursorLayer.getPixelPosition(K,!0),ce=o.renderer.scroller.getBoundingClientRect(),Re=o.renderer.layerConfig.offset,ve=o.renderer.scrollLeft,ae=function(rt,dt){return rt=rt/A,dt=dt/I-.75,rt*rt+dt*dt};if(b.clientXIe?"cursor":"anchor"),Ie<3.5?l="anchor":we<3.5?l="cursor":l="scroll",m=setTimeout(D,450)}d=R},o),r.addListener(a,"touchend",function(b){x=o.$mouseHandler.isMousePressed=!1,f&&clearInterval(f),l=="zoom"?(l="",g=0):m?(o.selection.moveToPosition(v),g=0,T()):l=="scroll"?(p(),M()):T(),clearTimeout(m),m=null},o),r.addListener(a,"touchmove",function(b){m&&(clearTimeout(m),m=null);var S=b.touches;if(!(S.length>1||l=="zoom")){var I=S[0],A=c-I.clientX,R=u-I.clientY;if(l=="wait")if(A*A+R*R>4)l="cursor";else return b.preventDefault();c=I.clientX,u=I.clientY,b.clientX=I.clientX,b.clientY=I.clientY;var O=b.timeStamp,U=O-h;if(h=O,l=="scroll"){var P=new i(b,o);P.speed=1,P.wheelX=A,P.wheelY=R,10*Math.abs(A)0)if(En==16){for(ot=dn;ot-1){for(ot=dn;ot=0&&Ie[ue]==D;ue--)ae[ue]=s}}}function Q(ve,ae,we){if(!(a=ve){for(dt=rt+1;dt=ve;)dt++;for(mt=rt,Ge=dt-1;mt=ae.length||(dt=we[Ie-1])!=k&&dt!=x||(mt=ae[Ie+1])!=k&&mt!=x?y:(o&&(mt=x),mt==dt?mt:y);case p:return dt=Ie>0?we[Ie-1]:E,dt==k&&Ie+10&&we[Ie-1]==k)return k;if(o)return y;for(St=Ie+1,Ge=ae.length;St=1425&&En<=2303||En==64286;if(dt=ae[St],vr&&(dt==C||dt==M))return C}return Ie<1||(dt=ae[Ie-1])==E?y:we[Ie-1];case E:return o=!1,c=!0,s;case T:return u=!0,y;case I:case A:case O:case U:case R:o=!1;case P:return y}}function ce(ve){var ae=ve.charCodeAt(0),we=ae>>8;return we==0?ae>191?w:W[ae]:we==5?/[\u0591-\u05f4]/.test(ve)?C:w:we==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(ve)?S:/[\u0660-\u0669\u066b-\u066c]/.test(ve)?x:ae==1642?b:/[\u06f0-\u06f9]/.test(ve)?k:M:we==32&&ae<=8287?V[ae&255]:we==254&&ae>=65136?M:y}function Re(ve){return ve>="\u064B"&&ve<="\u0655"}t.L=w,t.R=C,t.EN=k,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="\xB7",t.doBidiReorder=function(ve,ae,we){if(ve.length<2)return{};var Ie=ve.split(""),rt=new Array(Ie.length),dt=new Array(Ie.length),mt=[];s=we?v:g,K(Ie,mt,Ie.length,ae);for(var Ge=0;GeM&&ae[Ge]0&&Ie[Ge-1]==="\u0644"&&/\u0622|\u0623|\u0625|\u0627/.test(Ie[Ge])&&(mt[Ge-1]=mt[Ge]=t.R_H,Ge++);Ie[Ie.length-1]===t.DOT&&(mt[Ie.length-1]=t.B),Ie[0]==="\u202B"&&(mt[0]=t.RLE);for(var Ge=0;Ge=0&&(l=this.session.$docRowCache[u])}return l},o.prototype.getSplitIndex=function(){var l=0,c=this.session.$screenRowCache;if(c.length)for(var u,d=this.session.$getRowCacheIndex(c,this.currentRow);this.currentRow-l>0&&(u=this.session.$getRowCacheIndex(c,this.currentRow-l-1),u===d);)d=u,l++;else l=this.currentRow;return l},o.prototype.updateRowLine=function(l,c){l===void 0&&(l=this.getDocumentRow());var u=l===this.session.getLength()-1,d=u?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(l),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var h=this.session.$wrapData[l];h&&(c===void 0&&(c=this.getSplitIndex()),c>0&&h.length?(this.wrapIndent=h.indent,this.wrapOffset=this.wrapIndent*this.charWidths[i.L],this.line=cc?this.session.getOverwrite()?l:l-1:c,d=i.getVisualFromLogicalIdx(u,this.bidiMap),h=this.bidiMap.bidiLevels,m=0;!this.session.getOverwrite()&&l<=c&&h[d]%2!==0&&d++;for(var f=0;fc&&h[d]%2===0&&(m+=this.charWidths[h[d]]),this.wrapIndent&&(m+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(m+=this.rtlLineOffset),m},o.prototype.getSelections=function(l,c){var u=this.bidiMap,d=u.bidiLevels,h,m=[],f=0,g=Math.min(l,c)-this.wrapIndent,v=Math.max(l,c)-this.wrapIndent,w=!1,C=!1,k=0;this.wrapIndent&&(f+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var x,y=0;y=g&&xd+f/2;){if(d+=f,h===m.length-1){f=0;break}f=this.charWidths[m[++h]]}return h>0&&m[h-1]%2!==0&&m[h]%2===0?(u0&&m[h-1]%2===0&&m[h]%2!==0?c=1+(u>d?this.bidiMap.logicalFromVisual[h]:this.bidiMap.logicalFromVisual[h-1]):this.isRtlDir&&h===m.length-1&&f===0&&m[h-1]%2===0||!this.isRtlDir&&h===0&&m[h]%2!==0?c=1+this.bidiMap.logicalFromVisual[h]:(h>0&&m[h-1]%2!==0&&f!==0&&h--,c=this.bidiMap.logicalFromVisual[h]),c===0&&this.isRtlDir&&c++,c+this.wrapIndent},o}();t.BidiHandler=a});ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(n,t,e){"use strict";var i=n("./lib/oop"),r=n("./lib/lang"),s=n("./lib/event_emitter").EventEmitter,a=n("./range").Range,o=function(){function l(c){this.session=c,this.doc=c.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var u=this;this.cursor.on("change",function(d){u.$cursorChanged=!0,u.$silent||u._emit("changeCursor"),!u.$isEmpty&&!u.$silent&&u._emit("changeSelection"),!u.$keepDesiredColumnOnChange&&d.old.column!=d.value.column&&(u.$desiredColumn=null)}),this.anchor.on("change",function(){u.$anchorChanged=!0,!u.$isEmpty&&!u.$silent&&u._emit("changeSelection")})}return l.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},l.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},l.prototype.getCursor=function(){return this.lead.getPosition()},l.prototype.setAnchor=function(c,u){this.$isEmpty=!1,this.anchor.setPosition(c,u)},l.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},l.prototype.getSelectionLead=function(){return this.lead.getPosition()},l.prototype.isBackwards=function(){var c=this.anchor,u=this.lead;return c.row>u.row||c.row==u.row&&c.column>u.column},l.prototype.getRange=function(){var c=this.anchor,u=this.lead;return this.$isEmpty?a.fromPoints(u,u):this.isBackwards()?a.fromPoints(u,c):a.fromPoints(c,u)},l.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},l.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},l.prototype.setRange=function(c,u){var d=u?c.end:c.start,h=u?c.start:c.end;this.$setSelection(d.row,d.column,h.row,h.column)},l.prototype.$setSelection=function(c,u,d,h){if(!this.$silent){var m=this.$isEmpty,f=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(c,u),this.cursor.setPosition(d,h),this.$isEmpty=!a.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||m!=this.$isEmpty||f)&&this._emit("changeSelection")}},l.prototype.$moveSelection=function(c){var u=this.lead;this.$isEmpty&&this.setSelectionAnchor(u.row,u.column),c.call(this)},l.prototype.selectTo=function(c,u){this.$moveSelection(function(){this.moveCursorTo(c,u)})},l.prototype.selectToPosition=function(c){this.$moveSelection(function(){this.moveCursorToPosition(c)})},l.prototype.moveTo=function(c,u){this.clearSelection(),this.moveCursorTo(c,u)},l.prototype.moveToPosition=function(c){this.clearSelection(),this.moveCursorToPosition(c)},l.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},l.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},l.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},l.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},l.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},l.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},l.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},l.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},l.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},l.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},l.prototype.getWordRange=function(c,u){if(typeof u>"u"){var d=c||this.lead;c=d.row,u=d.column}return this.session.getWordRange(c,u)},l.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},l.prototype.selectAWord=function(){var c=this.getCursor(),u=this.session.getAWordRange(c.row,c.column);this.setSelectionRange(u)},l.prototype.getLineRange=function(c,u){var d=typeof c=="number"?c:this.lead.row,h,m=this.session.getFoldLine(d);return m?(d=m.start.row,h=m.end.row):h=d,u===!0?new a(d,0,h,this.session.getLine(h).length):new a(d,0,h+1,0)},l.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},l.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},l.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},l.prototype.wouldMoveIntoSoftTab=function(c,u,d){var h=c.column,m=c.column+u;return d<0&&(h=c.column-u,m=c.column),this.session.isTabStop(c)&&this.doc.getLine(c.row).slice(h,m).split(" ").length-1==u},l.prototype.moveCursorLeft=function(){var c=this.lead.getPosition(),u;if(u=this.session.getFoldAt(c.row,c.column,-1))this.moveCursorTo(u.start.row,u.start.column);else if(c.column===0)c.row>0&&this.moveCursorTo(c.row-1,this.doc.getLine(c.row-1).length);else{var d=this.session.getTabSize();this.wouldMoveIntoSoftTab(c,d,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-d):this.moveCursorBy(0,-1)}},l.prototype.moveCursorRight=function(){var c=this.lead.getPosition(),u;if(u=this.session.getFoldAt(c.row,c.column,1))this.moveCursorTo(u.end.row,u.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(u.column=h)}}this.moveCursorTo(u.row,u.column)},l.prototype.moveCursorFileEnd=function(){var c=this.doc.getLength()-1,u=this.doc.getLine(c).length;this.moveCursorTo(c,u)},l.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},l.prototype.moveCursorLongWordRight=function(){var c=this.lead.row,u=this.lead.column,d=this.doc.getLine(c),h=d.substring(u);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var m=this.session.getFoldAt(c,u,1);if(m){this.moveCursorTo(m.end.row,m.end.column);return}if(this.session.nonTokenRe.exec(h)&&(u+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,h=d.substring(u)),u>=d.length){this.moveCursorTo(c,d.length),this.moveCursorRight(),c0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(m)&&(u-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(c,u)},l.prototype.$shortWordEndIndex=function(c){var u=0,d,h=/\s/,m=this.session.tokenRe;if(m.lastIndex=0,this.session.tokenRe.exec(c))u=this.session.tokenRe.lastIndex;else{for(;(d=c[u])&&h.test(d);)u++;if(u<1){for(m.lastIndex=0;(d=c[u])&&!m.test(d);)if(m.lastIndex=0,u++,h.test(d))if(u>2){u--;break}else{for(;(d=c[u])&&h.test(d);)u++;if(u>2)break}}}return m.lastIndex=0,u},l.prototype.moveCursorShortWordRight=function(){var c=this.lead.row,u=this.lead.column,d=this.doc.getLine(c),h=d.substring(u),m=this.session.getFoldAt(c,u,1);if(m)return this.moveCursorTo(m.end.row,m.end.column);if(u==d.length){var f=this.doc.getLength();do c++,h=this.doc.getLine(c);while(c0&&/^\s*$/.test(h));u=h.length,/\s+$/.test(h)||(h="")}var m=r.stringReverse(h),f=this.$shortWordEndIndex(m);return this.moveCursorTo(c,u-f)},l.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},l.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},l.prototype.moveCursorBy=function(c,u){var d=this.session.documentToScreenPosition(this.lead.row,this.lead.column),h;if(u===0&&(c!==0&&(this.session.$bidiHandler.isBidiRow(d.row,this.lead.row)?(h=this.session.$bidiHandler.getPosLeft(d.column),d.column=Math.round(h/this.session.$bidiHandler.charWidths[0])):h=d.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?d.column=this.$desiredColumn:this.$desiredColumn=d.column),c!=0&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var m=this.session.lineWidgets[this.lead.row];c<0?c-=m.rowsAbove||0:c>0&&(c+=m.rowCount-(m.rowsAbove||0))}var f=this.session.screenToDocumentPosition(d.row+c,d.column,h);c!==0&&u===0&&f.row===this.lead.row&&(f.column,this.lead.column),this.moveCursorTo(f.row,f.column+u,u===0)},l.prototype.moveCursorToPosition=function(c){this.moveCursorTo(c.row,c.column)},l.prototype.moveCursorTo=function(c,u,d){var h=this.session.getFoldAt(c,u,1);h&&(c=h.start.row,u=h.start.column),this.$keepDesiredColumnOnChange=!0;var m=this.session.getLine(c);/[\uDC00-\uDFFF]/.test(m.charAt(u))&&m.charAt(u-1)&&(this.lead.row==c&&this.lead.column==u+1?u=u-1:u=u+1),this.lead.setPosition(c,u),this.$keepDesiredColumnOnChange=!1,d||(this.$desiredColumn=null)},l.prototype.moveCursorToScreen=function(c,u,d){var h=this.session.screenToDocumentPosition(c,u);this.moveCursorTo(h.row,h.column,d)},l.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},l.prototype.fromOrientedRange=function(c){this.setSelectionRange(c,c.cursor==c.start),this.$desiredColumn=c.desiredColumn||this.$desiredColumn},l.prototype.toOrientedRange=function(c){var u=this.getRange();return c?(c.start.column=u.start.column,c.start.row=u.start.row,c.end.column=u.end.column,c.end.row=u.end.row):c=u,c.cursor=this.isBackwards()?c.start:c.end,c.desiredColumn=this.$desiredColumn,c},l.prototype.getRangeOfMovements=function(c){var u=this.getCursor();try{c(this);var d=this.getCursor();return a.fromPoints(u,d)}catch{return a.fromPoints(u,u)}finally{this.moveCursorToPosition(u)}},l.prototype.toJSON=function(){if(this.rangeCount)var c=this.ranges.map(function(u){var d=u.clone();return d.isBackwards=u.cursor==u.start,d});else{var c=this.getRange();c.isBackwards=this.isBackwards()}return c},l.prototype.fromJSON=function(c){if(c.start==null)if(this.rangeList&&c.length>1){this.toSingleRange(c[0]);for(var u=c.length;u--;){var d=a.fromPoints(c[u].start,c[u].end);c[u].isBackwards&&(d.cursor=d.start),this.addRange(d,!0)}return}else c=c[0];this.rangeList&&this.toSingleRange(c),this.setSelectionRange(c,c.isBackwards)},l.prototype.isEqual=function(c){if((c.length||this.rangeCount)&&c.length!=this.rangeCount)return!1;if(!c.length||!this.ranges)return this.getRange().isEqual(c);for(var u=this.ranges.length;u--;)if(!this.ranges[u].isEqual(c[u]))return!1;return!0},l}();o.prototype.setSelectionAnchor=o.prototype.setAnchor,o.prototype.getSelectionAnchor=o.prototype.getAnchor,o.prototype.setSelectionRange=o.prototype.setRange,i.implement(o.prototype,s),t.Selection=o});ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],function(n,t,e){"use strict";var i=n("./lib/report_error").reportError,r=2e3,s=function(){function a(o){this.splitRegex,this.states=o,this.regExps={},this.matchMappings={};for(var l in this.states){for(var c=this.states[l],u=[],d=0,h=this.matchMappings[l]={defaultToken:"text"},m="g",f=[],g=0;g1?v.onMatch=this.$applyToken:v.onMatch=v.token),C>1&&(/\\\d/.test(v.regex)?w=v.regex.replace(/\\([0-9]+)/g,function(k,x){return"\\"+(parseInt(x,10)+d+1)}):(C=1,w=this.removeCapturingGroups(v.regex)),!v.splitRegex&&typeof v.token!="string"&&f.push(v)),h[d]=g,d+=C,u.push(w),v.onMatch||(v.onMatch=null)}}u.length||(h[0]=0,u.push("$")),f.forEach(function(k){k.splitRegex=this.createSplitterRegexp(k.regex,m)},this),this.regExps[l]=new RegExp("("+u.join(")|(")+")|($)",m)}}return a.prototype.$setMaxTokenCount=function(o){r=o|0},a.prototype.$applyToken=function(o){var l=this.splitRegex.exec(o).slice(1),c=this.token.apply(this,l);if(typeof c=="string")return[{type:c,value:o}];for(var u=[],d=0,h=c.length;dv){var T=o.substring(v,E-y.length);C.type==k?C.value+=T:(C.type&&g.push(C),C={type:k,value:T})}for(var M=0;Mr){for(w>2*o.length&&this.reportError("infinite loop with in ace tokenizer",{startState:l,line:o});v1&&c[0]!==u&&c.unshift("#tmp",u),{tokens:g,state:c.length?c:u}},a}();s.prototype.reportError=i,t.Tokenizer=s});ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],function(n,t,e){"use strict";var i=n("../lib/deep_copy").deepCopy,r;r=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}},function(){this.addRules=function(o,l){if(!l){for(var c in o)this.$rules[c]=o[c];return}for(var c in o){for(var u=o[c],d=0;d=this.$rowTokens.length;){if(this.$row+=1,a||(a=this.$session.getLength()),this.$row>=a)return this.$row=a-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},s.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},s.prototype.getCurrentTokenRow=function(){return this.$row},s.prototype.getCurrentTokenColumn=function(){var a=this.$rowTokens,o=this.$tokenIndex,l=a[o].start;if(l!==void 0)return l;for(l=0;o>0;)o-=1,l+=a[o].value.length;return l},s.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},s.prototype.getCurrentTokenRange=function(){var a=this.$rowTokens[this.$tokenIndex],o=this.getCurrentTokenColumn();return new i(this.$row,o,this.$row,o+a.value.length)},s}();t.TokenIterator=r});ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(n,t,e){"use strict";var i=n("../../lib/oop"),r=n("../behaviour").Behaviour,s=n("../../token_iterator").TokenIterator,a=n("../../lib/lang"),o=["text","paren.rparen","rparen","paren","punctuation.operator"],l=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],c,u={},d={'"':'"',"'":"'"},h=function(g){var v=-1;if(g.multiSelect&&(v=g.selection.index,u.rangeCount!=g.multiSelect.rangeCount&&(u={rangeCount:g.multiSelect.rangeCount})),u[v])return c=u[v];c=u[v]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},m=function(g,v,w,C){var k=g.end.row-g.start.row;return{text:w+v+C,selection:[0,g.start.column+1,k,g.end.column+(k?0:1)]}},f;f=function(g){g=g||{},this.add("braces","insertion",function(v,w,C,k,x){var y=C.getCursorPosition(),E=k.doc.getLine(y.row);if(x=="{"){h(C);var T=C.getSelectionRange(),M=k.doc.getTextRange(T),D=k.getTokenAt(y.row,y.column);if(M!==""&&M!=="{"&&C.getWrapBehavioursEnabled())return m(T,M,"{","}");if(D&&/(?:string)\.quasi|\.xml/.test(D.type)){var _=[/tag\-(?:open|name)/,/attribute\-name/];return _.some(function(O){return O.test(D.type)})||/(string)\.quasi/.test(D.type)&&D.value[y.column-D.start-1]!=="$"?void 0:(f.recordAutoInsert(C,k,"}"),{text:"{}",selection:[1,1]})}else if(f.isSaneInsertion(C,k))return/[\]\}\)]/.test(E[y.column])||C.inMultiSelectMode||g.braces?(f.recordAutoInsert(C,k,"}"),{text:"{}",selection:[1,1]}):(f.recordMaybeInsert(C,k,"{"),{text:"{",selection:[1,1]})}else if(x=="}"){h(C);var p=E.substring(y.column,y.column+1);if(p=="}"){var b=k.$findOpeningBracket("}",{column:y.column+1,row:y.row});if(b!==null&&f.isAutoInsertedClosing(y,E,x))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(x==` -`||x==`\r -`){h(C);var S="";f.isMaybeInsertedClosing(y,E)&&(S=a.stringRepeat("}",c.maybeInsertedBrackets),f.clearMaybeInsertedClosing());var p=E.substring(y.column,y.column+1);if(p==="}"){var I=k.findMatchingBracket({row:y.row,column:y.column+1},"}");if(!I)return null;var A=this.$getIndent(k.getLine(I.row))}else if(S)var A=this.$getIndent(E);else{f.clearMaybeInsertedClosing();return}var R=A+k.getTabString();return{text:` -`+R+` -`+A+S,selection:[1,R.length,1,R.length]}}else f.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(v,w,C,k,x){var y=k.doc.getTextRange(x);if(!x.isMultiLine()&&y=="{"){h(C);var E=k.doc.getLine(x.start.row),T=E.substring(x.end.column,x.end.column+1);if(T=="}")return x.end.column++,x;c.maybeInsertedBrackets--}}),this.add("parens","insertion",function(v,w,C,k,x){if(x=="("){h(C);var y=C.getSelectionRange(),E=k.doc.getTextRange(y);if(E!==""&&C.getWrapBehavioursEnabled())return m(y,E,"(",")");if(f.isSaneInsertion(C,k))return f.recordAutoInsert(C,k,")"),{text:"()",selection:[1,1]}}else if(x==")"){h(C);var T=C.getCursorPosition(),M=k.doc.getLine(T.row),D=M.substring(T.column,T.column+1);if(D==")"){var _=k.$findOpeningBracket(")",{column:T.column+1,row:T.row});if(_!==null&&f.isAutoInsertedClosing(T,M,x))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(v,w,C,k,x){var y=k.doc.getTextRange(x);if(!x.isMultiLine()&&y=="("){h(C);var E=k.doc.getLine(x.start.row),T=E.substring(x.start.column+1,x.start.column+2);if(T==")")return x.end.column++,x}}),this.add("brackets","insertion",function(v,w,C,k,x){if(x=="["){h(C);var y=C.getSelectionRange(),E=k.doc.getTextRange(y);if(E!==""&&C.getWrapBehavioursEnabled())return m(y,E,"[","]");if(f.isSaneInsertion(C,k))return f.recordAutoInsert(C,k,"]"),{text:"[]",selection:[1,1]}}else if(x=="]"){h(C);var T=C.getCursorPosition(),M=k.doc.getLine(T.row),D=M.substring(T.column,T.column+1);if(D=="]"){var _=k.$findOpeningBracket("]",{column:T.column+1,row:T.row});if(_!==null&&f.isAutoInsertedClosing(T,M,x))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(v,w,C,k,x){var y=k.doc.getTextRange(x);if(!x.isMultiLine()&&y=="["){h(C);var E=k.doc.getLine(x.start.row),T=E.substring(x.start.column+1,x.start.column+2);if(T=="]")return x.end.column++,x}}),this.add("string_dquotes","insertion",function(v,w,C,k,x){var y=k.$mode.$quotes||d;if(x.length==1&&y[x]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(x)!=-1)return;h(C);var E=x,T=C.getSelectionRange(),M=k.doc.getTextRange(T);if(M!==""&&(M.length!=1||!y[M])&&C.getWrapBehavioursEnabled())return m(T,M,E,E);if(!M){var D=C.getCursorPosition(),_=k.doc.getLine(D.row),p=_.substring(D.column-1,D.column),b=_.substring(D.column,D.column+1),S=k.getTokenAt(D.row,D.column),I=k.getTokenAt(D.row,D.column+1);if(p=="\\"&&S&&/escape/.test(S.type))return null;var A=S&&/string|escape/.test(S.type),R=!I||/string|escape/.test(I.type),O;if(b==E)O=A!==R,O&&/string\.end/.test(I.type)&&(O=!1);else{if(A&&!R||A&&R)return null;var U=k.$mode.tokenRe;U.lastIndex=0;var P=U.test(p);U.lastIndex=0;var W=U.test(b),V=k.$mode.$pairQuotesAfter,K=V&&V[E]&&V[E].test(p);if(!K&&P||W||b&&!/[\s;,.})\]\\]/.test(b))return null;var Q=_[D.column-2];if(p==E&&(Q==E||U.test(Q)))return null;O=!0}return{text:O?E+E:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(v,w,C,k,x){var y=k.$mode.$quotes||d,E=k.doc.getTextRange(x);if(!x.isMultiLine()&&y.hasOwnProperty(E)){h(C);var T=k.doc.getLine(x.start.row),M=T.substring(x.start.column+1,x.start.column+2);if(M==E)return x.end.column++,x}}),g.closeDocComment!==!1&&this.add("doc comment end","insertion",function(v,w,C,k,x){if(v==="doc-start"&&(x===` -`||x===`\r -`)&&C.selection.isEmpty()){var y=C.getCursorPosition();if(y.column===0)return;for(var E=k.doc.getLine(y.row),T=k.doc.getLine(y.row+1),M=k.getTokens(y.row),D=0,_=0;_=y.column){if(D===y.column){if(!/\.doc/.test(p.type))return;if(/\*\//.test(p.value)){var b=M[_+1];if(!b||!/\.doc/.test(b.type))return}}var S=y.column-(D-p.value.length),I=p.value.indexOf("*/"),A=p.value.indexOf("/**",I>-1?I+2:0);if(A!==-1&&S>A&&S=I&&S<=A||!/\.doc/.test(p.type))return;break}}var R=this.$getIndent(E);if(/\s*\*/.test(T))return/^\s*\*/.test(E)?{text:x+R+"* ",selection:[1,2+R.length,1,2+R.length]}:{text:x+R+" * ",selection:[1,3+R.length,1,3+R.length]};if(/\/\*\*/.test(E.substring(0,y.column)))return{text:x+R+" * "+x+" "+R+"*/",selection:[1,4+R.length,1,4+R.length]}}})},f.isSaneInsertion=function(g,v){var w=g.getCursorPosition(),C=new s(v,w.row,w.column);if(!this.$matchTokenType(C.getCurrentToken()||"text",o)){if(/[)}\]]/.test(g.session.getLine(w.row)[w.column]))return!0;var k=new s(v,w.row,w.column+1);if(!this.$matchTokenType(k.getCurrentToken()||"text",o))return!1}return C.stepForward(),C.getCurrentTokenRow()!==w.row||this.$matchTokenType(C.getCurrentToken()||"text",l)},f.$matchTokenType=function(g,v){return v.indexOf(g.type||g)>-1},f.recordAutoInsert=function(g,v,w){var C=g.getCursorPosition(),k=v.doc.getLine(C.row);this.isAutoInsertedClosing(C,k,c.autoInsertedLineEnd[0])||(c.autoInsertedBrackets=0),c.autoInsertedRow=C.row,c.autoInsertedLineEnd=w+k.substr(C.column),c.autoInsertedBrackets++},f.recordMaybeInsert=function(g,v,w){var C=g.getCursorPosition(),k=v.doc.getLine(C.row);this.isMaybeInsertedClosing(C,k)||(c.maybeInsertedBrackets=0),c.maybeInsertedRow=C.row,c.maybeInsertedLineStart=k.substr(0,C.column)+w,c.maybeInsertedLineEnd=k.substr(C.column),c.maybeInsertedBrackets++},f.isAutoInsertedClosing=function(g,v,w){return c.autoInsertedBrackets>0&&g.row===c.autoInsertedRow&&w===c.autoInsertedLineEnd[0]&&v.substr(g.column)===c.autoInsertedLineEnd},f.isMaybeInsertedClosing=function(g,v){return c.maybeInsertedBrackets>0&&g.row===c.maybeInsertedRow&&v.substr(g.column)===c.maybeInsertedLineEnd&&v.substr(0,g.column)==c.maybeInsertedLineStart},f.popAutoInsertedClosing=function(){c.autoInsertedLineEnd=c.autoInsertedLineEnd.substr(1),c.autoInsertedBrackets--},f.clearMaybeInsertedClosing=function(){c&&(c.maybeInsertedBrackets=0,c.maybeInsertedRow=-1)},i.inherits(f,r),t.CstyleBehaviour=f});ace.define("ace/unicode",["require","exports","module"],function(n,t,e){"use strict";for(var i=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],r=0,s=[],a=0;a2?Q%x!=x-1:Q%x==0}}else{if(!this.blockComment)return!1;var E=this.blockComment.start,T=this.blockComment.end,M=new RegExp("^(\\s*)(?:"+l.escapeRegExp(E)+")"),D=new RegExp("(?:"+l.escapeRegExp(T)+")\\s*$"),_=function(O,U){b(O,U)||(!w||/\S/.test(O))&&(v.insertInLine({row:U,column:O.length},T),v.insertInLine({row:U,column:k},E))},p=function(O,U){var P;(P=O.match(D))&&v.removeInLine(U,O.length-P[0].length,O.length),(P=O.match(M))&&v.removeInLine(U,P[1].length,P[0].length)},b=function(O,U){if(M.test(O))return!0;for(var P=m.getTokens(U),W=0;WO.length&&(R=O.length)}),k==1/0&&(k=R,w=!1,C=!1),y&&k%x!=0&&(k=Math.floor(k/x)*x),A(C?p:_)},this.toggleBlockComment=function(h,m,f,g){var v=this.blockComment;if(v){!v.start&&v[0]&&(v=v[0]);var w=new c(m,g.row,g.column),C=w.getCurrentToken(),k=m.selection,x=m.selection.toOrientedRange(),y,E;if(C&&/comment/.test(C.type)){for(var T,M;C&&/comment/.test(C.type);){var D=C.value.indexOf(v.start);if(D!=-1){var _=w.getCurrentTokenRow(),p=w.getCurrentTokenColumn()+D;T=new u(_,p,_,p+v.start.length);break}C=w.stepBackward()}for(var w=new c(m,g.row,g.column),C=w.getCurrentToken();C&&/comment/.test(C.type);){var D=C.value.indexOf(v.end);if(D!=-1){var _=w.getCurrentTokenRow(),p=w.getCurrentTokenColumn()+D;M=new u(_,p,_,p+v.end.length);break}C=w.stepForward()}M&&m.remove(M),T&&(m.remove(T),y=T.start.row,E=-v.start.length)}else E=v.start.length,y=f.start.row,m.insert(f.end,v.end),m.insert(f.start,v.start);x.start.row==y&&(x.start.column+=E),x.end.row==y&&(x.end.column+=E),m.selection.fromOrientedRange(x)}},this.getNextLineIndent=function(h,m,f){return this.$getIndent(m)},this.checkOutdent=function(h,m,f){return!1},this.autoOutdent=function(h,m,f){},this.$getIndent=function(h){return h.match(/^\s*/)[0]},this.createWorker=function(h){return null},this.createModeDelegates=function(h){this.$embeds=[],this.$modes={};for(var m in h)if(h[m]){var f=h[m],g=f.prototype.$id,v=i.$modes[g];v||(i.$modes[g]=v=new f),i.$modes[m]||(i.$modes[m]=v),this.$embeds.push(m),this.$modes[m]=v}for(var w=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],C=function(x){(function(y){var E=w[x],T=y[E];y[w[x]]=function(){return this.$delegator(E,arguments,T)}})(k)},k=this,m=0;mo[l].column&&l++,d.unshift(l,0),o.splice.apply(o,d),this.$updateRows()}}},s.prototype.$updateRows=function(){var a=this.session.lineWidgets;if(a){var o=!0;a.forEach(function(l,c){if(l)for(o=!1,l.row=c;l.$oldWidget;)l.$oldWidget.row=c,l=l.$oldWidget}),o&&(this.session.lineWidgets=null)}},s.prototype.$registerLineWidget=function(a){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var o=this.session.lineWidgets[a.row];return o&&(a.$oldWidget=o,o.el&&o.el.parentNode&&(o.el.parentNode.removeChild(o.el),o._inDocument=!1)),this.session.lineWidgets[a.row]=a,a},s.prototype.addLineWidget=function(a){if(this.$registerLineWidget(a),a.session=this.session,!this.editor)return a;var o=this.editor.renderer;a.html&&!a.el&&(a.el=i.createElement("div"),a.el.innerHTML=a.html),a.text&&!a.el&&(a.el=i.createElement("div"),a.el.textContent=a.text),a.el&&(i.addCssClass(a.el,"ace_lineWidgetContainer"),a.className&&i.addCssClass(a.el,a.className),a.el.style.position="absolute",a.el.style.zIndex="5",o.container.appendChild(a.el),a._inDocument=!0,a.coverGutter||(a.el.style.zIndex="3"),a.pixelHeight==null&&(a.pixelHeight=a.el.offsetHeight)),a.rowCount==null&&(a.rowCount=a.pixelHeight/o.layerConfig.lineHeight);var l=this.session.getFoldAt(a.row,0);if(a.$fold=l,l){var c=this.session.lineWidgets;a.row==l.end.row&&!c[l.start.row]?c[l.start.row]=a:a.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:a.row}}}),this.$updateRows(),this.renderWidgets(null,o),this.onWidgetChanged(a),a},s.prototype.removeLineWidget=function(a){if(a._inDocument=!1,a.session=null,a.el&&a.el.parentNode&&a.el.parentNode.removeChild(a.el),a.editor&&a.editor.destroy)try{a.editor.destroy()}catch{}if(this.session.lineWidgets){var o=this.session.lineWidgets[a.row];if(o==a)this.session.lineWidgets[a.row]=a.$oldWidget,a.$oldWidget&&this.onWidgetChanged(a.$oldWidget);else for(;o;){if(o.$oldWidget==a){o.$oldWidget=a.$oldWidget;break}o=o.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:a.row}}}),this.$updateRows()},s.prototype.getWidgetsAtRow=function(a){for(var o=this.session.lineWidgets,l=o&&o[a],c=[];l;)c.push(l),l=l.$oldWidget;return c},s.prototype.onWidgetChanged=function(a){this.session._changedWidgets.push(a),this.editor&&this.editor.renderer.updateFull()},s.prototype.measureWidgets=function(a,o){var l=this.session._changedWidgets,c=o.layerConfig;if(!(!l||!l.length)){for(var u=1/0,d=0;d0&&!c[u];)u--;this.firstRow=l.firstRow,this.lastRow=l.lastRow,o.$cursorLayer.config=l;for(var h=u;h<=d;h++){var m=c[h];if(!(!m||!m.el)){if(m.hidden){m.el.style.top=-100-(m.pixelHeight||0)+"px";continue}m._inDocument||(m._inDocument=!0,o.container.appendChild(m.el));var f=o.$cursorLayer.getPixelPosition({row:h,column:0},!0).top;m.coverLine||(f+=l.lineHeight*this.session.getRowLineCount(m.row)),m.el.style.top=f-l.offset+"px";var g=m.coverGutter?0:o.gutterWidth;m.fixedWidth||(g-=o.scrollLeft),m.el.style.left=g+"px",m.fullWidth&&m.screenWidth&&(m.el.style.minWidth=l.width+2*l.padding+"px"),m.fixedWidth?m.el.style.right=o.scrollBar.getWidth()+"px":m.el.style.right=""}}}},s}();t.LineWidgets=r});ace.define("ace/apply_delta",["require","exports","module"],function(n,t,e){"use strict";function i(a,o){throw console.log("Invalid Delta:",a),"Invalid Delta: "+o}function r(a,o){return o.row>=0&&o.row=0&&o.column<=a[o.row].length}function s(a,o){o.action!="insert"&&o.action!="remove"&&i(o,"delta.action must be 'insert' or 'remove'"),o.lines instanceof Array||i(o,"delta.lines must be an Array"),(!o.start||!o.end)&&i(o,"delta.start/end must be an present");var l=o.start;r(a,o.start)||i(o,"delta.start must be contained in document");var c=o.end;o.action=="remove"&&!r(a,c)&&i(o,"delta.end must contained in document for 'remove' actions");var u=c.row-l.row,d=c.column-(u==0?l.column:0);(u!=o.lines.length-1||o.lines[u].length!=d)&&i(o,"delta.range must match delta lines")}t.applyDelta=function(a,o,l){var c=o.start.row,u=o.start.column,d=a[c]||"";switch(o.action){case"insert":var h=o.lines;if(h.length===1)a[c]=d.substring(0,u)+o.lines[0]+d.substring(u);else{var m=[c,1].concat(o.lines);a.splice.apply(a,m),a[c]=d.substring(0,u)+a[c],a[c+o.lines.length-1]+=d.substring(u)}break;case"remove":var f=o.end.column,g=o.end.row;c===g?a[c]=d.substring(0,u)+d.substring(f):a.splice(c,g-c+1,d.substring(0,u)+a[g].substring(f));break}}});ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(n,t,e){"use strict";var i=n("./lib/oop"),r=n("./lib/event_emitter").EventEmitter,s=function(){function l(c,u,d){this.$onChange=this.onChange.bind(this),this.attach(c),typeof u!="number"?this.setPosition(u.row,u.column):this.setPosition(u,d)}return l.prototype.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},l.prototype.getDocument=function(){return this.document},l.prototype.onChange=function(c){if(!(c.start.row==c.end.row&&c.start.row!=this.row)&&!(c.start.row>this.row)){var u=o(c,{row:this.row,column:this.column},this.$insertRight);this.setPosition(u.row,u.column,!0)}},l.prototype.setPosition=function(c,u,d){var h;if(d?h={row:c,column:u}:h=this.$clipPositionToDocument(c,u),!(this.row==h.row&&this.column==h.column)){var m={row:this.row,column:this.column};this.row=h.row,this.column=h.column,this._signal("change",{old:m,value:h})}},l.prototype.detach=function(){this.document.off("change",this.$onChange)},l.prototype.attach=function(c){this.document=c||this.document,this.document.on("change",this.$onChange)},l.prototype.$clipPositionToDocument=function(c,u){var d={};return c>=this.document.getLength()?(d.row=Math.max(0,this.document.getLength()-1),d.column=this.document.getLine(d.row).length):c<0?(d.row=0,d.column=0):(d.row=c,d.column=Math.min(this.document.getLine(d.row).length,Math.max(0,u))),u<0&&(d.column=0),d},l}();s.prototype.$insertRight=!1,i.implement(s.prototype,r);function a(l,c,u){var d=u?l.column<=c.column:l.column=h&&(u=h-1,d=void 0);var m=this.getLine(u);return d==null&&(d=m.length),d=Math.min(Math.max(d,0),m.length),{row:u,column:d}},c.prototype.clonePos=function(u){return{row:u.row,column:u.column}},c.prototype.pos=function(u,d){return{row:u,column:d}},c.prototype.$clipPosition=function(u){var d=this.getLength();return u.row>=d?(u.row=Math.max(0,d-1),u.column=this.getLine(d-1).length):(u.row=Math.max(0,u.row),u.column=Math.min(Math.max(u.column,0),this.getLine(u.row).length)),u},c.prototype.insertFullLines=function(u,d){u=Math.min(Math.max(u,0),this.getLength());var h=0;u0,m=d=0&&this.applyDelta({start:this.pos(u,this.getLine(u).length),end:this.pos(u+1,0),action:"remove",lines:["",""]})},c.prototype.replace=function(u,d){if(u instanceof a||(u=a.fromPoints(u.start,u.end)),d.length===0&&u.isEmpty())return u.start;if(d==this.getTextRange(u))return u.end;this.remove(u);var h;return d?h=this.insert(u.start,d):h=u.start,h},c.prototype.applyDeltas=function(u){for(var d=0;d=0;d--)this.revertDelta(u[d])},c.prototype.applyDelta=function(u,d){var h=u.action=="insert";(h?u.lines.length<=1&&!u.lines[0]:!a.comparePoints(u.start,u.end))||(h&&u.lines.length>2e4?this.$splitAndapplyLargeDelta(u,2e4):(r(this.$lines,u,d),this._signal("change",u)))},c.prototype.$safeApplyDelta=function(u){var d=this.$lines.length;(u.action=="remove"&&u.start.row20){c.running=setTimeout(c.$worker,20);break}}c.currentLine=d,h==-1&&(h=d),f<=h&&c.fireUpdateEvent(f,h)}}}return a.prototype.setTokenizer=function(o){this.tokenizer=o,this.lines=[],this.states=[],this.start(0)},a.prototype.setDocument=function(o){this.doc=o,this.lines=[],this.states=[],this.stop()},a.prototype.fireUpdateEvent=function(o,l){var c={first:o,last:l};this._signal("update",{data:c})},a.prototype.start=function(o){this.currentLine=Math.min(o||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},a.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},a.prototype.$updateOnChange=function(o){var l=o.start.row,c=o.end.row-l;if(c===0)this.lines[l]=null;else if(o.action=="remove")this.lines.splice(l,c+1,null),this.states.splice(l,c+1,null);else{var u=Array(c+1);u.unshift(l,1),this.lines.splice.apply(this.lines,u),this.states.splice.apply(this.states,u)}this.currentLine=Math.min(l,this.currentLine,this.doc.getLength()),this.stop()},a.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},a.prototype.getTokens=function(o){return this.lines[o]||this.$tokenizeRow(o)},a.prototype.getState=function(o){return this.currentLine==o&&this.$tokenizeRow(o),this.states[o]||"start"},a.prototype.$tokenizeRow=function(o){var l=this.doc.getLine(o),c=this.states[o-1],u=this.tokenizer.getLineTokens(l,c,o);return this.states[o]+""!=u.state+""?(this.states[o]=u.state,this.lines[o+1]=null,this.currentLine>o+1&&(this.currentLine=o+1)):this.currentLine==o&&(this.currentLine=o+1),this.lines[o]=u.tokens},a.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},a}();i.implement(s.prototype,r),t.BackgroundTokenizer=s});ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],function(n,t,e){"use strict";var i=n("./lib/lang"),r=n("./range").Range,s=function(){function a(o,l,c){c===void 0&&(c="text"),this.setRegexp(o),this.clazz=l,this.type=c}return a.prototype.setRegexp=function(o){this.regExp+""!=o+""&&(this.regExp=o,this.cache=[])},a.prototype.update=function(o,l,c,u){if(this.regExp)for(var d=u.firstRow,h=u.lastRow,m={},f=d;f<=h;f++){var g=this.cache[f];g==null&&(g=i.getMatchOffsets(c.getLine(f),this.regExp),g.length>this.MAX_RANGES&&(g=g.slice(0,this.MAX_RANGES)),g=g.map(function(k){return new r(f,k.offset,f,k.offset+k.length)}),this.cache[f]=g.length?g:"");for(var v=g.length;v--;){var w=g[v].toScreenRange(c),C=w.toString();m[C]||(m[C]=!0,l.drawSingleLineMarker(o,w,this.clazz,u))}}},a}();s.prototype.MAX_RANGES=500,t.SearchHighlight=s});ace.define("ace/undomanager",["require","exports","module","ace/range"],function(n,t,e){"use strict";var i=function(){function y(){this.$keepRedoStack,this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return y.prototype.addSession=function(E){this.$session=E},y.prototype.add=function(E,T,M){if(!this.$fromUndo&&E!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),T===!1||!this.lastDeltas){this.lastDeltas=[];var D=this.$undoStack.length;D>this.$undoDepth-1&&this.$undoStack.splice(0,D-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),E.id=this.$rev=++this.$maxRev}(E.action=="remove"||E.action=="insert")&&(this.$lastDelta=E),this.lastDeltas.push(E)}},y.prototype.addSelection=function(E,T){this.selections.push({value:E,rev:T||this.$rev})},y.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},y.prototype.markIgnored=function(E,T){T==null&&(T=this.$rev+1);for(var M=this.$undoStack,D=M.length;D--;){var _=M[D][0];if(_.id<=E)break;_.id0},y.prototype.canRedo=function(){return this.$redoStack.length>0},y.prototype.bookmark=function(E){E==null&&(E=this.$rev),this.mark=E},y.prototype.isAtBookmark=function(){return this.$rev===this.mark},y.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},y.prototype.fromJSON=function(E){this.reset(),this.$undoStack=E.$undoStack,this.$redoStack=E.$redoStack},y.prototype.$prettyPrint=function(E){return E?d(E):d(this.$undoStack)+` ---- -`+d(this.$redoStack)},y}();i.prototype.hasUndo=i.prototype.canUndo,i.prototype.hasRedo=i.prototype.canRedo,i.prototype.isClean=i.prototype.isAtBookmark,i.prototype.markClean=i.prototype.bookmark;function r(y,E){for(var T=E;T--;){var M=y[T];if(M&&!M[0].ignore){for(;T0){b.row+=D,b.column+=b.row==M.row?_:0;continue}!E&&I<=0&&(b.row=T.row,b.column=T.column,I===0&&(b.bias=1))}}}function c(y){return{row:y.row,column:y.column}}function u(y){return{start:c(y.start),end:c(y.end),action:y.action,lines:y.lines.slice()}}function d(y){if(y=y||this,Array.isArray(y))return y.map(d).join(` -`);var E="";return y.action?(E=y.action=="insert"?"+":"-",E+="["+y.lines+"]"):y.value&&(Array.isArray(y.value)?E=y.value.map(h).join(` -`):E=h(y.value)),y.start&&(E+=h(y)),(y.id||y.rev)&&(E+=" ("+(y.id||y.rev)+")"),E}function h(y){return y.start.row+":"+y.start.column+"=>"+y.end.row+":"+y.end.column}function m(y,E){var T=y.action=="insert",M=E.action=="insert";if(T&&M)if(a(E.start,y.end)>=0)v(E,y,-1);else if(a(E.start,y.start)<=0)v(y,E,1);else return null;else if(T&&!M)if(a(E.start,y.end)>=0)v(E,y,-1);else if(a(E.end,y.start)<=0)v(y,E,-1);else return null;else if(!T&&M)if(a(E.start,y.start)>=0)v(E,y,1);else if(a(E.start,y.start)<=0)v(y,E,1);else return null;else if(!T&&!M)if(a(E.start,y.start)>=0)v(E,y,1);else if(a(E.end,y.start)<=0)v(y,E,-1);else return null;return[E,y]}function f(y,E){for(var T=y.length;T--;)for(var M=0;M=0?v(y,E,-1):(a(y.start,E.start)<=0||v(y,s.fromPoints(E.start,y.start),-1),v(E,y,1));else if(!T&&M)a(E.start,y.end)>=0?v(E,y,-1):(a(E.start,y.start)<=0||v(E,s.fromPoints(y.start,E.start),-1),v(y,E,1));else if(!T&&!M)if(a(E.start,y.end)>=0)v(E,y,-1);else if(a(E.end,y.start)<=0)v(y,E,-1);else{var D,_;return a(y.start,E.start)<0&&(D=y,y=C(y,E.start)),a(y.end,E.end)>0&&(_=C(y,E.end)),w(E.end,y.start,y.end,-1),_&&!D&&(y.lines=_.lines,y.start=_.start,y.end=_.end,_=y),[E,D,_].filter(Boolean)}return[E,y]}function v(y,E,T){w(y.start,E.start,E.end,T),w(y.end,E.start,E.end,T)}function w(y,E,T,M){y.row==(M==1?E:T).row&&(y.column+=M*(T.column-E.column)),y.row+=M*(T.row-E.row)}function C(y,E){var T=y.lines,M=y.end;y.end=c(E);var D=y.end.row-y.start.row,_=T.splice(D,T.length),p=D?E.column:E.column-y.start.column;T.push(_[0].substring(0,p)),_[0]=_[0].substr(p);var b={start:c(E),end:M,lines:_,action:y.action};return b}function k(y,E){E=u(E);for(var T=y.length;T--;){for(var M=y[T],D=0;Dthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(a),this.folds.sort(function(o,l){return-o.range.compareEnd(l.start.row,l.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else if(a.end.row==this.start.row)this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");a.foldLine=this},s.prototype.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},s.prototype.walk=function(a,o,l){var c=0,u=this.folds,d,h,m,f=!0;o==null&&(o=this.end.row,l=this.end.column);for(var g=0;g0)){var f=r(o,h.start);return m===0?l&&f!==0?-d-2:d:f>0||f===0&&!l?d:-d-1}}return-d-1},a.prototype.add=function(o){var l=!o.isEmpty(),c=this.pointIndex(o.start,l);c<0&&(c=-c-1);var u=this.pointIndex(o.end,l,c);return u<0?u=-u-1:u++,this.ranges.splice(c,u-c,o)},a.prototype.addList=function(o){for(var l=[],c=o.length;c--;)l.push.apply(l,this.add(o[c]));return l},a.prototype.substractPoint=function(o){var l=this.pointIndex(o);if(l>=0)return this.ranges.splice(l,1)},a.prototype.merge=function(){var o=[],l=this.ranges;l=l.sort(function(m,f){return r(m.start,f.start)});for(var c=l[0],u,d=1;d=0},a.prototype.containsPoint=function(o){return this.pointIndex(o)>=0},a.prototype.rangeAtPoint=function(o){var l=this.pointIndex(o);if(l>=0)return this.ranges[l]},a.prototype.clipRows=function(o,l){var c=this.ranges;if(c[0].start.row>l||c[c.length-1].start.row=u)break}if(o.action=="insert")for(var v=d-u,w=-l.column+c.column;mu)break;if(g.start.row==u&&g.start.column>=l.column&&(g.start.column==l.column&&this.$bias<=0||(g.start.column+=w,g.start.row+=v)),g.end.row==u&&g.end.column>=l.column){if(g.end.column==l.column&&this.$bias<0)continue;g.end.column==l.column&&w>0&&mg.start.column&&g.end.column==h[m+1].start.column&&(g.end.column-=w),g.end.column+=w,g.end.row+=v}}else for(var v=u-d,w=l.column-c.column;md)break;g.end.rowl.column)&&(g.end.column=l.column,g.end.row=l.row):(g.end.column+=w,g.end.row+=v):g.end.row>d&&(g.end.row+=v),g.start.rowl.column)&&(g.start.column=l.column,g.start.row=l.row):(g.start.column+=w,g.start.row+=v):g.start.row>d&&(g.start.row+=v)}if(v!=0&&m=c)return m;if(m.end.row>c)return null}return null},this.getNextFoldLine=function(c,u){var d=this.$foldData,h=0;for(u&&(h=d.indexOf(u)),h==-1&&(h=0),h;h=c)return m}return null},this.getFoldedRowCount=function(c,u){for(var d=this.$foldData,h=u-c+1,m=0;m=u){v=c?h-=u-v:h=0);break}else g>=c&&(v>=c?h-=g-v:h-=g-c+1)}return h},this.$addFoldLine=function(c){return this.$foldData.push(c),this.$foldData.sort(function(u,d){return u.start.row-d.start.row}),c},this.addFold=function(c,u){var d=this.$foldData,h=!1,m;c instanceof s?m=c:(m=new s(u,c),m.collapseChildren=u.collapseChildren),this.$clipRangeToDocument(m.range);var f=m.start.row,g=m.start.column,v=m.end.row,w=m.end.column,C=this.getFoldAt(f,g,1),k=this.getFoldAt(v,w,-1);if(C&&k==C)return C.addSubFold(m);C&&!C.range.isStart(f,g)&&this.removeFold(C),k&&!k.range.isEnd(v,w)&&this.removeFold(k);var x=this.getFoldsInRange(m.range);x.length>0&&(this.removeFolds(x),m.collapseChildren||x.forEach(function(M){m.addSubFold(M)}));for(var y=0;y0&&this.foldAll(c.start.row+1,c.end.row,c.collapseChildren-1),c.subFolds=[]},this.expandFolds=function(c){c.forEach(function(u){this.expandFold(u)},this)},this.unfold=function(c,u){var d,h;if(c==null)d=new i(0,0,this.getLength(),0),u==null&&(u=!0);else if(typeof c=="number")d=new i(c,0,c,this.getLine(c).length);else if("row"in c)d=i.fromPoints(c,c);else{if(Array.isArray(c))return h=[],c.forEach(function(f){h=h.concat(this.unfold(f))},this),h;d=c}h=this.getFoldsInRangeList(d);for(var m=h;h.length==1&&i.comparePoints(h[0].start,d.start)<0&&i.comparePoints(h[0].end,d.end)>0;)this.expandFolds(h),h=this.getFoldsInRangeList(d);if(u!=!1?this.removeFolds(h):this.expandFolds(h),m.length)return m},this.isRowFolded=function(c,u){return!!this.getFoldLine(c,u)},this.getRowFoldEnd=function(c,u){var d=this.getFoldLine(c,u);return d?d.end.row:c},this.getRowFoldStart=function(c,u){var d=this.getFoldLine(c,u);return d?d.start.row:c},this.getFoldDisplayLine=function(c,u,d,h,m){h==null&&(h=c.start.row),m==null&&(m=0),u==null&&(u=c.end.row),d==null&&(d=this.getLine(u).length);var f=this.doc,g="";return c.walk(function(v,w,C,k){if(!(wC)break;while(m&&g.test(m.type));m=h.stepBackward()}else m=h.getCurrentToken();return v.end.row=h.getCurrentTokenRow(),v.end.column=h.getCurrentTokenColumn(),v}},this.foldAll=function(c,u,d,h){d==null&&(d=1e5);var m=this.foldWidgets;if(m){u=u||this.getLength(),c=c||0;for(var f=c;f=c&&(f=g.end.row,g.collapseChildren=d,this.addFold("...",g))}}},this.foldToLevel=function(c){for(this.foldAll();c-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var c=this;this.foldAll(null,null,null,function(u){for(var d=c.getTokens(u),h=0;h=0;){var f=d[h];if(f==null&&(f=d[h]=this.getFoldWidget(h)),f=="start"){var g=this.getFoldWidgetRange(h);if(m||(m=g),g&&g.end.row>=c)break}h--}return{range:h!==-1&&g,firstRange:m}},this.onFoldWidgetClick=function(c,u){u instanceof o&&(u=u.domEvent);var d={children:u.shiftKey,all:u.ctrlKey||u.metaKey,siblings:u.altKey},h=this.$toggleFoldWidget(c,d);if(!h){var m=u.target||u.srcElement;m&&/ace_fold-widget/.test(m.className)&&(m.className+=" ace_invalid")}},this.$toggleFoldWidget=function(c,u){if(this.getFoldWidget){var d=this.getFoldWidget(c),h=this.getLine(c),m=d==="end"?-1:1,f=this.getFoldAt(c,m===-1?0:h.length,m);if(f)return u.children||u.all?this.removeFold(f):this.expandFold(f),f;var g=this.getFoldWidgetRange(c,!0);if(g&&!g.isMultiLine()&&(f=this.getFoldAt(g.start.row,g.start.column,1),f&&g.isEqual(f.range)))return this.removeFold(f),f;if(u.siblings){var v=this.getParentFoldRangeData(c);if(v.range)var w=v.range.start.row+1,C=v.range.end.row;this.foldAll(w,C,u.all?1e4:0)}else u.children?(C=g?g.end.row:this.getLength(),this.foldAll(c+1,C,u.all?1e4:0)):g&&(u.all&&(g.collapseChildren=1e4),this.addFold("...",g));return g}},this.toggleFoldWidget=function(c){var u=this.selection.getCursor().row;u=this.getRowFoldStart(u);var d=this.$toggleFoldWidget(u,{});if(!d){var h=this.getParentFoldRangeData(u,!0);if(d=h.range||h.firstRange,d){u=d.start.row;var m=this.getFoldAt(u,this.getLine(u).length,1);m?this.removeFold(m):this.addFold("...",d)}}},this.updateFoldWidgets=function(c){var u=c.start.row,d=c.end.row-u;if(d===0)this.foldWidgets[u]=null;else if(c.action=="remove")this.foldWidgets.splice(u,d+1,null);else{var h=Array(d+1);h.unshift(u,1),this.foldWidgets.splice.apply(this.foldWidgets,h)}},this.tokenizerUpdateFoldWidgets=function(c){var u=c.data;u.first!=u.last&&this.foldWidgets.length>u.first&&this.foldWidgets.splice(u.first,this.foldWidgets.length)}}t.Folding=l});ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(n,t,e){"use strict";var i=n("../token_iterator").TokenIterator,r=n("../range").Range;function s(){this.findMatchingBracket=function(a,o){if(a.column==0)return null;var l=o||this.getLine(a.row).charAt(a.column-1);if(l=="")return null;var c=l.match(/([\(\[\{])|([\)\]\}])/);return c?c[1]?this.$findClosingBracket(c[1],a):this.$findOpeningBracket(c[2],a):null},this.getBracketRange=function(a){var o=this.getLine(a.row),l=!0,c,u=o.charAt(a.column-1),d=u&&u.match(/([\(\[\{])|([\)\]\}])/);if(d||(u=o.charAt(a.column),a={row:a.row,column:a.column+1},d=u&&u.match(/([\(\[\{])|([\)\]\}])/),l=!1),!d)return null;if(d[1]){var h=this.$findClosingBracket(d[1],a);if(!h)return null;c=r.fromPoints(a,h),l||(c.end.column++,c.start.column--),c.cursor=c.end}else{var h=this.$findOpeningBracket(d[2],a);if(!h)return null;c=r.fromPoints(h,a),l||(c.start.column++,c.end.column--),c.cursor=c.start}return c},this.getMatchingBracketRanges=function(a,o){var l=this.getLine(a.row),c=/([\(\[\{])|([\)\]\}])/,u=!o&&l.charAt(a.column-1),d=u&&u.match(c);if(d||(u=(o===void 0||o)&&l.charAt(a.column),a={row:a.row,column:a.column+1},d=u&&u.match(c)),!d)return null;var h=new r(a.row,a.column-1,a.row,a.column),m=d[1]?this.$findClosingBracket(d[1],a):this.$findOpeningBracket(d[2],a);if(!m)return[h];var f=new r(m.row,m.column,m.row,m.column+1);return[h,f]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(a,o,l){var c=this.$brackets[a],u=1,d=new i(this,o.row,o.column),h=d.getCurrentToken();if(h||(h=d.stepForward()),!!h){l||(l=new RegExp("(\\.?"+h.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var m=o.column-d.getCurrentTokenColumn()-2,f=h.value;;){for(;m>=0;){var g=f.charAt(m);if(g==c){if(u-=1,u==0)return{row:d.getCurrentTokenRow(),column:m+d.getCurrentTokenColumn()}}else g==a&&(u+=1);m-=1}do h=d.stepBackward();while(h&&!l.test(h.type));if(h==null)break;f=h.value,m=f.length-1}return null}},this.$findClosingBracket=function(a,o,l){var c=this.$brackets[a],u=1,d=new i(this,o.row,o.column),h=d.getCurrentToken();if(h||(h=d.stepForward()),!!h){l||(l=new RegExp("(\\.?"+h.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var m=o.column-d.getCurrentTokenColumn();;){for(var f=h.value,g=f.length;m"?c=!0:o.type.indexOf("tag-name")!==-1&&(l=!0));while(o&&!l);return o},this.$findClosingTag=function(a,o){var l,c=o.value,u=o.value,d=0,h=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);o=a.stepForward();var m=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+o.value.length),f=!1;do{if(l=o,l.type.indexOf("tag-close")!==-1&&!f){var g=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);f=!0}if(o=a.stepForward(),o){if(o.value===">"&&!f){var g=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);f=!0}if(o.type.indexOf("tag-name")!==-1){if(c=o.value,u===c){if(l.value==="<")d++;else if(l.value==="")var C=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);else return}}}else if(u===c&&o.value==="/>"&&(d--,d<0))var v=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+2),w=v,C=w,g=new r(m.end.row,m.end.column,m.end.row,m.end.column+1)}}while(o&&d>=0);if(h&&g&&v&&C&&m&&w)return{openTag:new r(h.start.row,h.start.column,g.end.row,g.end.column),closeTag:new r(v.start.row,v.start.column,C.end.row,C.end.column),openTagName:m,closeTagName:w}},this.$findOpeningTag=function(a,o){var l=a.getCurrentToken(),c=o.value,u=0,d=a.getCurrentTokenRow(),h=a.getCurrentTokenColumn(),m=h+2,f=new r(d,h,d,m);a.stepForward();var g=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+o.value.length);if(o.type.indexOf("tag-close")===-1&&(o=a.stepForward()),!(!o||o.value!==">")){var v=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);a.stepBackward(),a.stepBackward();do if(o=l,d=a.getCurrentTokenRow(),h=a.getCurrentTokenColumn(),m=h+o.value.length,l=a.stepBackward(),o){if(o.type.indexOf("tag-name")!==-1){if(c===o.value)if(l.value==="<"){if(u++,u>0){var w=new r(d,h,d,m),C=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);do o=a.stepForward();while(o&&o.value!==">");var k=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1)}}else l.value===""){for(var x=0,y=l;y;){if(y.type.indexOf("tag-name")!==-1&&y.value===c){u--;break}else if(y.value==="<")break;y=a.stepBackward(),x++}for(var E=0;ES&&(this.$docRowCache.splice(S,b),this.$screenRowCache.splice(S,b))},_.prototype.$getRowCacheIndex=function(p,b){for(var S=0,I=p.length-1;S<=I;){var A=S+I>>1,R=p[A];if(b>R)S=A+1;else if(b=b));R++);return I=S[R],I?(I.index=R,I.start=A-I.value.length,I):null},_.prototype.setUndoManager=function(p){if(this.$undoManager=p,this.$informUndoManager&&this.$informUndoManager.cancel(),p){var b=this;p.addSession(this),this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.mergeUndoDeltas=!1},this.$informUndoManager=r.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},_.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},_.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},_.prototype.getTabString=function(){return this.getUseSoftTabs()?r.stringRepeat(" ",this.getTabSize()):" "},_.prototype.setUseSoftTabs=function(p){this.setOption("useSoftTabs",p)},_.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},_.prototype.setTabSize=function(p){this.setOption("tabSize",p)},_.prototype.getTabSize=function(){return this.$tabSize},_.prototype.isTabStop=function(p){return this.$useSoftTabs&&p.column%this.$tabSize===0},_.prototype.setNavigateWithinSoftTabs=function(p){this.setOption("navigateWithinSoftTabs",p)},_.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},_.prototype.setOverwrite=function(p){this.setOption("overwrite",p)},_.prototype.getOverwrite=function(){return this.$overwrite},_.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},_.prototype.addGutterDecoration=function(p,b){this.$decorations[p]||(this.$decorations[p]=""),this.$decorations[p]+=" "+b,this._signal("changeBreakpoint",{})},_.prototype.removeGutterDecoration=function(p,b){this.$decorations[p]=(this.$decorations[p]||"").replace(" "+b,""),this._signal("changeBreakpoint",{})},_.prototype.getBreakpoints=function(){return this.$breakpoints},_.prototype.setBreakpoints=function(p){this.$breakpoints=[];for(var b=0;b0&&(I=!!S.charAt(b-1).match(this.tokenRe)),I||(I=!!S.charAt(b).match(this.tokenRe)),I)var A=this.tokenRe;else if(/^\s+$/.test(S.slice(b-1,b+1)))var A=/\s/;else var A=this.nonTokenRe;var R=b;if(R>0){do R--;while(R>=0&&S.charAt(R).match(A));R++}for(var O=b;Op&&(p=b.screenWidth)}),this.lineWidgetWidth=p},_.prototype.$computeWidth=function(p){if(this.$modified||p){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var b=this.doc.getAllLines(),S=this.$rowLengthCache,I=0,A=0,R=this.$foldData[A],O=R?R.start.row:1/0,U=b.length,P=0;PO){if(P=R.end.row+1,P>=U)break;R=this.$foldData[A++],O=R?R.start.row:1/0}S[P]==null&&(S[P]=this.$getStringScreenWidth(b[P])[0]),S[P]>I&&(I=S[P])}this.screenWidth=I}},_.prototype.getLine=function(p){return this.doc.getLine(p)},_.prototype.getLines=function(p,b){return this.doc.getLines(p,b)},_.prototype.getLength=function(){return this.doc.getLength()},_.prototype.getTextRange=function(p){return this.doc.getTextRange(p||this.selection.getRange())},_.prototype.insert=function(p,b){return this.doc.insert(p,b)},_.prototype.remove=function(p){return this.doc.remove(p)},_.prototype.removeFullLines=function(p,b){return this.doc.removeFullLines(p,b)},_.prototype.undoChanges=function(p,b){if(p.length){this.$fromUndo=!0;for(var S=p.length-1;S!=-1;S--){var I=p[S];I.action=="insert"||I.action=="remove"?this.doc.revertDelta(I):I.folds&&this.addFolds(I.folds)}!b&&this.$undoSelect&&(p.selectionBefore?this.selection.fromJSON(p.selectionBefore):this.selection.setRange(this.$getUndoSelection(p,!0))),this.$fromUndo=!1}},_.prototype.redoChanges=function(p,b){if(p.length){this.$fromUndo=!0;for(var S=0;Sp.end.column&&(R.start.column+=U),R.end.row==p.end.row&&R.end.column>p.end.column&&(R.end.column+=U)),O&&R.start.row>=p.end.row&&(R.start.row+=O,R.end.row+=O)}if(R.end=this.insert(R.start,I),A.length){var P=p.start,W=R.start,O=W.row-P.row,U=W.column-P.column;this.addFolds(A.map(function(Q){return Q=Q.clone(),Q.start.row==P.row&&(Q.start.column+=U),Q.end.row==P.row&&(Q.end.column+=U),Q.start.row+=O,Q.end.row+=O,Q}))}return R},_.prototype.indentRows=function(p,b,S){S=S.replace(/\t/g,this.getTabString());for(var I=p;I<=b;I++)this.doc.insertInLine({row:I,column:0},S)},_.prototype.outdentRows=function(p){for(var b=p.collapseRows(),S=new u(0,0,0,0),I=this.getTabSize(),A=b.start.row;A<=b.end.row;++A){var R=this.getLine(A);S.start.row=A,S.end.row=A;for(var O=0;O0){var I=this.getRowFoldEnd(b+S);if(I>this.doc.getLength()-1)return 0;var A=I-b}else{p=this.$clipRowToDocument(p),b=this.$clipRowToDocument(b);var A=b-p+1}var R=new u(p,0,b,Number.MAX_VALUE),O=this.getFoldsInRange(R).map(function(P){return P=P.clone(),P.start.row+=A,P.end.row+=A,P}),U=S==0?this.doc.getLines(p,b):this.doc.removeFullLines(p,b);return this.doc.insertFullLines(p+A,U),O.length&&this.addFolds(O),A},_.prototype.moveLinesUp=function(p,b){return this.$moveLines(p,b,-1)},_.prototype.moveLinesDown=function(p,b){return this.$moveLines(p,b,1)},_.prototype.duplicateLines=function(p,b){return this.$moveLines(p,b,0)},_.prototype.$clipRowToDocument=function(p){return Math.max(0,Math.min(p,this.doc.getLength()-1))},_.prototype.$clipColumnToRow=function(p,b){return b<0?0:Math.min(this.doc.getLine(p).length,b)},_.prototype.$clipPositionToDocument=function(p,b){if(b=Math.max(0,b),p<0)p=0,b=0;else{var S=this.doc.getLength();p>=S?(p=S-1,b=this.doc.getLine(S-1).length):b=Math.min(this.doc.getLine(p).length,b)}return{row:p,column:b}},_.prototype.$clipRangeToDocument=function(p){p.start.row<0?(p.start.row=0,p.start.column=0):p.start.column=this.$clipColumnToRow(p.start.row,p.start.column);var b=this.doc.getLength()-1;return p.end.row>b?(p.end.row=b,p.end.column=this.doc.getLine(b).length):p.end.column=this.$clipColumnToRow(p.end.row,p.end.column),p},_.prototype.setUseWrapMode=function(p){if(p!=this.$useWrapMode){if(this.$useWrapMode=p,this.$modified=!0,this.$resetRowCache(0),p){var b=this.getLength();this.$wrapData=Array(b),this.$updateWrapData(0,b-1)}this._signal("changeWrapMode")}},_.prototype.getUseWrapMode=function(){return this.$useWrapMode},_.prototype.setWrapLimitRange=function(p,b){(this.$wrapLimitRange.min!==p||this.$wrapLimitRange.max!==b)&&(this.$wrapLimitRange={min:p,max:b},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},_.prototype.adjustWrapLimit=function(p,b){var S=this.$wrapLimitRange;S.max<0&&(S={min:b,max:b});var I=this.$constrainWrapLimit(p,S.min,S.max);return I!=this.$wrapLimit&&I>1?(this.$wrapLimit=I,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},_.prototype.$constrainWrapLimit=function(p,b,S){return b&&(p=Math.max(b,p)),S&&(p=Math.min(S,p)),p},_.prototype.getWrapLimit=function(){return this.$wrapLimit},_.prototype.setWrapLimit=function(p){this.setWrapLimitRange(p,p)},_.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},_.prototype.$updateInternalDataOnChange=function(p){var b=this.$useWrapMode,S=p.action,I=p.start,A=p.end,R=I.row,O=A.row,U=O-R,P=null;if(this.$updating=!0,U!=0)if(S==="remove"){this[b?"$wrapData":"$rowLengthCache"].splice(R,U);var W=this.$foldData;P=this.getFoldsInRange(p),this.removeFolds(P);var V=this.getFoldLine(A.row),K=0;if(V){V.addRemoveChars(A.row,A.column,I.column-A.column),V.shiftRow(-U);var Q=this.getFoldLine(R);Q&&Q!==V&&(Q.merge(V),V=Q),K=W.indexOf(V)+1}for(K;K=A.row&&V.shiftRow(-U)}O=R}else{var q=Array(U);q.unshift(R,0);var ce=b?this.$wrapData:this.$rowLengthCache;ce.splice.apply(ce,q);var W=this.$foldData,V=this.getFoldLine(R),K=0;if(V){var Re=V.range.compareInside(I.row,I.column);Re==0?(V=V.split(I.row,I.column),V&&(V.shiftRow(U),V.addRemoveChars(O,0,A.column-I.column))):Re==-1&&(V.addRemoveChars(R,0,A.column-I.column),V.shiftRow(U)),K=W.indexOf(V)+1}for(K;K=R&&V.shiftRow(U)}}else{U=Math.abs(p.start.column-p.end.column),S==="remove"&&(P=this.getFoldsInRange(p),this.removeFolds(P),U=-U);var V=this.getFoldLine(R);V&&V.addRemoveChars(R,I.column,U)}return b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,b?this.$updateWrapData(R,O):this.$updateRowLengthCache(R,O),P},_.prototype.$updateRowLengthCache=function(p,b){this.$rowLengthCache[p]=null,this.$rowLengthCache[b]=null},_.prototype.$updateWrapData=function(p,b){var S=this.doc.getAllLines(),I=this.getTabSize(),A=this.$wrapData,R=this.$wrapLimit,O,U,P=p;for(b=Math.min(b,S.length-1);P<=b;)U=this.getFoldLine(P,U),U?(O=[],U.walk(function(W,V,K,Q){var q;if(W!=null){q=this.$getDisplayTokens(W,O.length),q[0]=k;for(var ce=1;ceb-Q;){var q=R+b-Q;if(p[q-1]>=E&&p[q]>=E){K(q);continue}if(p[q]==k||p[q]==x){for(q;q!=R-1&&p[q]!=k;q--);if(q>R){K(q);continue}for(q=R+b,q;q>2)),R-1);q>ce&&p[q]ce&&p[q]ce&&p[q]==y;)q--}else for(;q>ce&&p[q]ce){K(++q);continue}q=R+b,p[q]==C&&q--,K(q-Q)}return I},_.prototype.$getDisplayTokens=function(p,b){var S=[],I;b=b||0;for(var A=0;A39&&R<48||R>57&&R<64?S.push(y):R>=4352&&D(R)?S.push(w,C):S.push(w)}return S},_.prototype.$getStringScreenWidth=function(p,b,S){if(b==0)return[0,0];b==null&&(b=1/0),S=S||0;var I,A;for(A=0;A=4352&&D(I)?S+=2:S+=1,!(S>b));A++);return[S,A]},_.prototype.getRowLength=function(p){var b=1;return this.lineWidgets&&(b+=this.lineWidgets[p]&&this.lineWidgets[p].rowCount||0),!this.$useWrapMode||!this.$wrapData[p]?b:this.$wrapData[p].length+b},_.prototype.getRowLineCount=function(p){return!this.$useWrapMode||!this.$wrapData[p]?1:this.$wrapData[p].length+1},_.prototype.getRowWrapIndent=function(p){if(this.$useWrapMode){var b=this.screenToDocumentPosition(p,Number.MAX_VALUE),S=this.$wrapData[b.row];return S.length&&S[0]=0)var U=W[V],A=this.$docRowCache[V],Q=p>W[K-1];else var Q=!K;for(var q=this.getLength()-1,ce=this.getNextFoldLine(A),Re=ce?ce.start.row:1/0;U<=p&&(P=this.getRowLength(A),!(U+P>p||A>=q));)U+=P,A++,A>Re&&(A=ce.end.row+1,ce=this.getNextFoldLine(A,ce),Re=ce?ce.start.row:1/0),Q&&(this.$docRowCache.push(A),this.$screenRowCache.push(U));if(ce&&ce.start.row<=A)I=this.getFoldDisplayLine(ce),A=ce.start.row;else{if(U+P<=p||A>q)return{row:q,column:this.getLine(q).length};I=this.getLine(A),ce=null}var ve=0,ae=Math.floor(p-U);if(this.$useWrapMode){var we=this.$wrapData[A];we&&(O=we[ae],ae>0&&we.length&&(ve=we.indent,R=we[ae-1]||we[we.length-1],I=I.substring(R)))}return S!==void 0&&this.$bidiHandler.isBidiRow(U+ae,A,ae)&&(b=this.$bidiHandler.offsetToCol(S)),R+=this.$getStringScreenWidth(I,b-ve)[1],this.$useWrapMode&&R>=O&&(R=O-1),ce?ce.idxToPosition(R):{row:A,column:R}},_.prototype.documentToScreenPosition=function(p,b){if(typeof b>"u")var S=this.$clipPositionToDocument(p.row,p.column);else S=this.$clipPositionToDocument(p,b);p=S.row,b=S.column;var I=0,A=null,R=null;R=this.getFoldAt(p,b,1),R&&(p=R.start.row,b=R.start.column);var O,U=0,P=this.$docRowCache,W=this.$getRowCacheIndex(P,p),V=P.length;if(V&&W>=0)var U=P[W],I=this.$screenRowCache[W],K=p>P[V-1];else var K=!V;for(var Q=this.getNextFoldLine(U),q=Q?Q.start.row:1/0;U=q){if(O=Q.end.row+1,O>p)break;Q=this.getNextFoldLine(O,Q),q=Q?Q.start.row:1/0}else O=U+1;I+=this.getRowLength(U),U=O,K&&(this.$docRowCache.push(U),this.$screenRowCache.push(I))}var ce="";Q&&U>=q?(ce=this.getFoldDisplayLine(Q,p,b),A=Q.start.row):(ce=this.getLine(p).substring(0,b),A=p);var Re=0;if(this.$useWrapMode){var ve=this.$wrapData[A];if(ve){for(var ae=0;ce.length>=ve[ae];)I++,ae++;ce=ce.substring(ve[ae-1]||0,ce.length),Re=ae>0?ve.indent:0}}return this.lineWidgets&&this.lineWidgets[U]&&this.lineWidgets[U].rowsAbove&&(I+=this.lineWidgets[U].rowsAbove),{row:I,column:Re+this.$getStringScreenWidth(ce)[0]}},_.prototype.documentToScreenColumn=function(p,b){return this.documentToScreenPosition(p,b).column},_.prototype.documentToScreenRow=function(p,b){return this.documentToScreenPosition(p,b).row},_.prototype.getScreenLength=function(){var p=0,b=null;if(this.$useWrapMode)for(var A=this.$wrapData.length,R=0,I=0,b=this.$foldData[I++],O=b?b.start.row:1/0;RO&&(R=b.end.row+1,b=this.$foldData[I++],O=b?b.start.row:1/0)}else{p=this.getLength();for(var S=this.$foldData,I=0;IS));R++);return[I,R]})},_.prototype.getPrecedingCharacter=function(){var p=this.selection.getCursor();if(p.column===0)return p.row===0?"":this.doc.getNewLineCharacter();var b=this.getLine(p.row);return b[p.column-1]},_.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.endOperation(),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection&&(this.selection.off("changeCursor",this.$onSelectionChange),this.selection.off("changeSelection",this.$onSelectionChange)),this.selection.detach()},_}();v.$uid=0,v.prototype.$modes=a.$modes,v.prototype.getValue=v.prototype.toString,v.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},v.prototype.$overwrite=!1,v.prototype.$mode=null,v.prototype.$modeId=null,v.prototype.$scrollTop=0,v.prototype.$scrollLeft=0,v.prototype.$wrapLimit=80,v.prototype.$useWrapMode=!1,v.prototype.$wrapLimitRange={min:null,max:null},v.prototype.lineWidgets=null,v.prototype.isFullWidth=D,i.implement(v.prototype,o);var w=1,C=2,k=3,x=4,y=9,E=10,T=11,M=12;function D(_){return _<4352?!1:_>=4352&&_<=4447||_>=4515&&_<=4519||_>=4602&&_<=4607||_>=9001&&_<=9002||_>=11904&&_<=11929||_>=11931&&_<=12019||_>=12032&&_<=12245||_>=12272&&_<=12283||_>=12288&&_<=12350||_>=12353&&_<=12438||_>=12441&&_<=12543||_>=12549&&_<=12589||_>=12593&&_<=12686||_>=12688&&_<=12730||_>=12736&&_<=12771||_>=12784&&_<=12830||_>=12832&&_<=12871||_>=12880&&_<=13054||_>=13056&&_<=19903||_>=19968&&_<=42124||_>=42128&&_<=42182||_>=43360&&_<=43388||_>=44032&&_<=55203||_>=55216&&_<=55238||_>=55243&&_<=55291||_>=63744&&_<=64255||_>=65040&&_<=65049||_>=65072&&_<=65106||_>=65108&&_<=65126||_>=65128&&_<=65131||_>=65281&&_<=65376||_>=65504&&_<=65510}n("./edit_session/folding").Folding.call(v.prototype),n("./edit_session/bracket_match").BracketMatch.call(v.prototype),a.defineOptions(v.prototype,"session",{wrap:{set:function(_){if(!_||_=="off"?_=!1:_=="free"?_=!0:_=="printMargin"?_=-1:typeof _=="string"&&(_=parseInt(_,10)||!1),this.$wrap!=_)if(this.$wrap=_,!_)this.setUseWrapMode(!1);else{var p=typeof _=="number"?_:null;this.setWrapLimitRange(p,p),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(_){_=_=="auto"?this.$mode.type!="text":_!="text",_!=this.$wrapAsCode&&(this.$wrapAsCode=_,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(_){this.$useWorker=_,this.$stopWorker(),_&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(_){_=parseInt(_),_>0&&this.$tabSize!==_&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=_,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(_){this.setFoldStyle(_)},handlesSet:!0},overwrite:{set:function(_){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(_){this.doc.setNewLineMode(_)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(_){this.setMode(_)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=v});ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(n,t,e){"use strict";var i=n("./lib/lang"),r=n("./lib/oop"),s=n("./range").Range,a=function(){function l(){this.$options={}}return l.prototype.set=function(c){return r.mixin(this.$options,c),this},l.prototype.getOptions=function(){return i.copyObject(this.$options)},l.prototype.setOptions=function(c){this.$options=c},l.prototype.find=function(c){var u=this.$options,d=this.$matchIterator(c,u);if(!d)return!1;var h=null;return d.forEach(function(m,f,g,v){return h=new s(m,f,g,v),f==v&&u.start&&u.start.start&&u.skipCurrent!=!1&&h.isEqual(u.start)?(h=null,!1):!0}),h},l.prototype.findAll=function(c){var u=this.$options;if(!u.needle)return[];this.$assembleRegExp(u);var d=u.range,h=d?c.getLines(d.start.row,d.end.row):c.doc.getAllLines(),m=[],f=u.re;if(u.$isMultiLine){var g=f.length,v=h.length-g,w;e:for(var C=f.offset||0;C<=v;C++){for(var k=0;kE||(m.push(w=new s(C,E,C+g-1,T)),g>2&&(C=C+g-2))}}else for(var M=0;Mb&&m[k].end.row==S;)k--;for(m=m.slice(M,k+1),M=0,k=m.length;M=w;T--)if(y(T,Number.MAX_VALUE,E))return;if(u.wrap!=!1){for(T=C,w=v.row;T>=w;T--)if(y(T,Number.MAX_VALUE,E))return}}};else var k=function(T){var M=v.row;if(!y(M,v.column,T)){for(M=M+1;M<=C;M++)if(y(M,0,T))return;if(u.wrap!=!1){for(M=w,C=v.row;M<=C;M++)if(y(M,0,T))return}}};if(u.$isMultiLine)var x=d.length,y=function(E,T,M){var D=h?E-x+1:E;if(!(D<0||D+x>c.getLength())){var _=c.getLine(D),p=_.search(d[0]);if(!(!h&&pT)&&M(D,p,D+x-1,S))return!0}}};else if(h)var y=function(T,M,D){var _=c.getLine(T),p=[],b,S=0;for(d.lastIndex=0;b=d.exec(_);){var I=b[0].length;if(S=b.index,!I){if(S>=_.length)break;d.lastIndex=S+=i.skipEmptyMatch(_,S,f)}if(b.index+I>M)break;p.push(b.index,I)}for(var A=p.length-1;A>=0;A-=2){var R=p[A-1],I=p[A];if(D(T,R,T,R+I))return!0}};else var y=function(T,M,D){var _=c.getLine(T),p,b;for(d.lastIndex=M;b=d.exec(_);){var S=b[0].length;if(p=b.index,D(T,p,T,p+S))return!0;if(!S&&(d.lastIndex=p+=i.skipEmptyMatch(_,p,f),p>=_.length))return!1}};return{forEach:k}},l}();function o(l,c){var u=i.supportsLookbehind();function d(g,v){v===void 0&&(v=!0);var w=u&&c.$supportsUnicodeFlag?new RegExp("[\\p{L}\\p{N}_]","u"):new RegExp("\\w");return w.test(g)||c.regExp?u&&c.$supportsUnicodeFlag?v?"(?<=^|[^\\p{L}\\p{N}_])":"(?=[^\\p{L}\\p{N}_]|$)":"\\b":""}var h=Array.from(l),m=h[0],f=h[h.length-1];return d(m)+l+d(f,!1)}t.Search=a});ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(n,t,e){"use strict";var i=this&&this.__extends||function(){var u=function(d,h){return u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(m,f){m.__proto__=f}||function(m,f){for(var g in f)Object.prototype.hasOwnProperty.call(f,g)&&(m[g]=f[g])},u(d,h)};return function(d,h){if(typeof h!="function"&&h!==null)throw new TypeError("Class extends value "+String(h)+" is not a constructor or null");u(d,h);function m(){this.constructor=d}d.prototype=h===null?Object.create(h):(m.prototype=h.prototype,new m)}}(),r=n("../lib/keys"),s=n("../lib/useragent"),a=r.KEY_MODS,o=function(){function u(d,h){this.$init(d,h,!1)}return u.prototype.$init=function(d,h,m){this.platform=h||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(d),this.$singleCommand=m},u.prototype.addCommand=function(d){this.commands[d.name]&&this.removeCommand(d),this.commands[d.name]=d,d.bindKey&&this._buildKeyHash(d)},u.prototype.removeCommand=function(d,h){var m=d&&(typeof d=="string"?d:d.name);d=this.commands[m],h||delete this.commands[m];var f=this.commandKeyBinding;for(var g in f){var v=f[g];if(v==d)delete f[g];else if(Array.isArray(v)){var w=v.indexOf(d);w!=-1&&(v.splice(w,1),v.length==1&&(f[g]=v[0]))}}},u.prototype.bindKey=function(d,h,m){if(typeof d=="object"&&d&&(m==null&&(m=d.position),d=d[this.platform]),!!d){if(typeof h=="function")return this.addCommand({exec:h,bindKey:d,name:h.name||d});d.split("|").forEach(function(f){var g="";if(f.indexOf(" ")!=-1){var v=f.split(/\s+/);f=v.pop(),v.forEach(function(k){var x=this.parseKeys(k),y=a[x.hashId]+x.key;g+=(g?" ":"")+y,this._addCommandToBinding(g,"chainKeys")},this),g+=" "}var w=this.parseKeys(f),C=a[w.hashId]+w.key;this._addCommandToBinding(g+C,h,m)},this)}},u.prototype._addCommandToBinding=function(d,h,m){var f=this.commandKeyBinding,g;if(!h)delete f[d];else if(!f[d]||this.$singleCommand)f[d]=h;else{Array.isArray(f[d])?(g=f[d].indexOf(h))!=-1&&f[d].splice(g,1):f[d]=[f[d]],typeof m!="number"&&(m=l(h));var v=f[d];for(g=0;gm)break}v.splice(g,0,h)}},u.prototype.addCommands=function(d){d&&Object.keys(d).forEach(function(h){var m=d[h];if(m){if(typeof m=="string")return this.bindKey(m,h);typeof m=="function"&&(m={exec:m}),typeof m=="object"&&(m.name||(m.name=h),this.addCommand(m))}},this)},u.prototype.removeCommands=function(d){Object.keys(d).forEach(function(h){this.removeCommand(d[h])},this)},u.prototype.bindKeys=function(d){Object.keys(d).forEach(function(h){this.bindKey(h,d[h])},this)},u.prototype._buildKeyHash=function(d){this.bindKey(d.bindKey,d)},u.prototype.parseKeys=function(d){var h=d.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(C){return C}),m=h.pop(),f=r[m];if(r.FUNCTION_KEYS[f])m=r.FUNCTION_KEYS[f].toLowerCase();else if(h.length){if(h.length==1&&h[0]=="shift")return{key:m.toUpperCase(),hashId:-1}}else return{key:m,hashId:-1};for(var g=0,v=h.length;v--;){var w=r.KEY_MODS[h[v]];if(w==null)return typeof console<"u"&&console.error("invalid modifier "+h[v]+" in "+d),!1;g|=w}return{key:m,hashId:g}},u.prototype.findKeyCommand=function(d,h){var m=a[d]+h;return this.commandKeyBinding[m]},u.prototype.handleKeyboard=function(d,h,m,f){if(!(f<0)){var g=a[h]+m,v=this.commandKeyBinding[g];return d.$keyChain&&(d.$keyChain+=" "+g,v=this.commandKeyBinding[d.$keyChain]||v),v&&(v=="chainKeys"||v[v.length-1]=="chainKeys")?(d.$keyChain=d.$keyChain||g,{command:"null"}):(d.$keyChain&&((!h||h==4)&&m.length==1?d.$keyChain=d.$keyChain.slice(0,-g.length-1):(h==-1||f>0)&&(d.$keyChain="")),{command:v})}},u.prototype.getStatusText=function(d,h){return h.$keyChain||""},u}();function l(u){return typeof u=="object"&&u.bindKey&&u.bindKey.position||(u.isDefault?-100:0)}var c=function(u){i(d,u);function d(h,m){var f=u.call(this,h,m)||this;return f.$singleCommand=!0,f}return d}(o);c.call=function(u,d,h){o.prototype.$init.call(u,d,h,!0)},o.call=function(u,d,h){o.prototype.$init.call(u,d,h,!1)},t.HashHandler=c,t.MultiHashHandler=o});ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(n,t,e){"use strict";var i=this&&this.__extends||function(){var l=function(c,u){return l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,h){d.__proto__=h}||function(d,h){for(var m in h)Object.prototype.hasOwnProperty.call(h,m)&&(d[m]=h[m])},l(c,u)};return function(c,u){if(typeof u!="function"&&u!==null)throw new TypeError("Class extends value "+String(u)+" is not a constructor or null");l(c,u);function d(){this.constructor=c}c.prototype=u===null?Object.create(u):(d.prototype=u.prototype,new d)}}(),r=n("../lib/oop"),s=n("../keyboard/hash_handler").MultiHashHandler,a=n("../lib/event_emitter").EventEmitter,o=function(l){i(c,l);function c(u,d){var h=l.call(this,d,u)||this;return h.byName=h.commands,h.setDefaultHandler("exec",function(m){return m.args?m.command.exec(m.editor,m.args,m.event,!1):m.command.exec(m.editor,{},m.event,!0)}),h}return c.prototype.exec=function(u,d,h){if(Array.isArray(u)){for(var m=u.length;m--;)if(this.exec(u[m],d,h))return!0;return!1}if(typeof u=="string"&&(u=this.commands[u]),!this.canExecute(u,d))return!1;var f={editor:d,command:u,args:h};return f.returnValue=this._emit("exec",f),this._signal("afterExec",f),f.returnValue!==!1},c.prototype.canExecute=function(u,d){return typeof u=="string"&&(u=this.commands[u]),!(!u||d&&d.$readOnly&&!u.readOnly||this.$checkCommandState!=!1&&u.isAvailable&&!u.isAvailable(d))},c.prototype.toggleRecording=function(u){if(!this.$inReplay)return u&&u._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(d){this.macro.push([d.command,d.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},c.prototype.replay=function(u){if(!(this.$inReplay||!this.macro)){if(this.recording)return this.toggleRecording(u);try{this.$inReplay=!0,this.macro.forEach(function(d){typeof d=="string"?this.exec(d,u):this.exec(d[0],u,d[1])},this)}finally{this.$inReplay=!1}}},c.prototype.trimMacro=function(u){return u.map(function(d){return typeof d[0]!="string"&&(d[0]=d[0].name),d[1]||(d=d[0]),d})},c}(s);r.implement(o.prototype,a),t.CommandManager=o});ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(n,t,e){"use strict";var i=n("../lib/lang"),r=n("../config"),s=n("../range").Range;function a(l,c){return{win:l,mac:c}}t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:a("Ctrl-,","Command-,"),exec:function(l){r.loadModule("ace/ext/settings_menu",function(c){c.init(l),l.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:a("Alt-E","F4"),exec:function(l){r.loadModule("ace/ext/error_marker",function(c){c.showErrorMarker(l,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:a("Alt-Shift-E","Shift-F4"),exec:function(l){r.loadModule("ace/ext/error_marker",function(c){c.showErrorMarker(l,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:a("Ctrl-A","Command-A"),exec:function(l){l.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:a(null,"Ctrl-L"),exec:function(l){l.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:a("Ctrl-L","Command-L"),exec:function(l,c){typeof c=="number"&&!isNaN(c)&&l.gotoLine(c),l.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:a("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(l){l.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:a("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(l){l.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:a("F2","F2"),exec:function(l){l.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:a("Alt-F2","Alt-F2"),exec:function(l){l.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(l){l.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(l){l.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:a("Alt-0","Command-Option-0"),exec:function(l){l.session.foldAll(),l.session.unfold(l.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:a("Alt-Shift-0","Command-Option-Shift-0"),exec:function(l){l.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:a("Ctrl-K","Command-G"),exec:function(l){l.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:a("Ctrl-Shift-K","Command-Shift-G"),exec:function(l){l.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:a("Alt-K","Ctrl-G"),exec:function(l){l.selection.isEmpty()?l.selection.selectWord():l.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:a("Alt-Shift-K","Ctrl-Shift-G"),exec:function(l){l.selection.isEmpty()?l.selection.selectWord():l.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:a("Ctrl-F","Command-F"),exec:function(l){r.loadModule("ace/ext/searchbox",function(c){c.Search(l)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(l){l.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:a("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(l){l.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:a("Ctrl-Home","Command-Home|Command-Up"),exec:function(l){l.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:a("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(l){l.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:a("Up","Up|Ctrl-P"),exec:function(l,c){l.navigateUp(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:a("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(l){l.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:a("Ctrl-End","Command-End|Command-Down"),exec:function(l){l.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:a("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(l){l.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:a("Down","Down|Ctrl-N"),exec:function(l,c){l.navigateDown(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:a("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(l){l.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:a("Ctrl-Left","Option-Left"),exec:function(l){l.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:a("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(l){l.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:a("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(l){l.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:a("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(l){l.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:a("Left","Left|Ctrl-B"),exec:function(l,c){l.navigateLeft(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:a("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(l){l.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:a("Ctrl-Right","Option-Right"),exec:function(l){l.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:a("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(l){l.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:a("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(l){l.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:a("Shift-Right","Shift-Right"),exec:function(l){l.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:a("Right","Right|Ctrl-F"),exec:function(l,c){l.navigateRight(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(l){l.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:a(null,"Option-PageDown"),exec:function(l){l.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:a("PageDown","PageDown|Ctrl-V"),exec:function(l){l.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(l){l.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:a(null,"Option-PageUp"),exec:function(l){l.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(l){l.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:a("Ctrl-Up",null),exec:function(l){l.renderer.scrollBy(0,-2*l.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:a("Ctrl-Down",null),exec:function(l){l.renderer.scrollBy(0,2*l.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(l){l.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(l){l.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:a("Ctrl-Alt-E","Command-Option-E"),exec:function(l){l.commands.toggleRecording(l)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:a("Ctrl-Shift-E","Command-Shift-E"),exec:function(l){l.commands.replay(l)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:a("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(l){l.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:a("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(l){l.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:a("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(l){l.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:a(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(l){},readOnly:!0},{name:"cut",description:"Cut",exec:function(l){var c=l.$copyWithEmptySelection&&l.selection.isEmpty(),u=c?l.selection.getLineRange():l.selection.getRange();l._emit("cut",u),u.isEmpty()||l.session.remove(u),l.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(l,c){l.$handlePaste(c)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:a("Ctrl-D","Command-D"),exec:function(l){l.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:a("Ctrl-Shift-D","Command-Shift-D"),exec:function(l){l.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:a("Ctrl-Alt-S","Command-Alt-S"),exec:function(l){l.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:a("Ctrl-/","Command-/"),exec:function(l){l.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:a("Ctrl-Shift-/","Command-Shift-/"),exec:function(l){l.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:a("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(l){l.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:a("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(l){l.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:a("Ctrl-H","Command-Option-F"),exec:function(l){r.loadModule("ace/ext/searchbox",function(c){c.Search(l,!0)})}},{name:"undo",description:"Undo",bindKey:a("Ctrl-Z","Command-Z"),exec:function(l){l.undo()}},{name:"redo",description:"Redo",bindKey:a("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(l){l.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:a("Alt-Shift-Up","Command-Option-Up"),exec:function(l){l.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:a("Alt-Up","Option-Up"),exec:function(l){l.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:a("Alt-Shift-Down","Command-Option-Down"),exec:function(l){l.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:a("Alt-Down","Option-Down"),exec:function(l){l.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:a("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(l){l.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:a("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(l){l.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:a("Shift-Delete",null),exec:function(l){if(l.selection.isEmpty())l.remove("left");else return!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:a("Alt-Backspace","Command-Backspace"),exec:function(l){l.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:a("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(l){l.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:a("Ctrl-Shift-Backspace",null),exec:function(l){var c=l.selection.getRange();c.start.column=0,l.session.remove(c)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:a("Ctrl-Shift-Delete",null),exec:function(l){var c=l.selection.getRange();c.end.column=Number.MAX_VALUE,l.session.remove(c)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:a("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(l){l.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:a("Ctrl-Delete","Alt-Delete"),exec:function(l){l.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:a("Shift-Tab","Shift-Tab"),exec:function(l){l.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:a("Tab","Tab"),exec:function(l){l.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:a("Ctrl-[","Ctrl-["),exec:function(l){l.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:a("Ctrl-]","Ctrl-]"),exec:function(l){l.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(l,c){l.insert(c)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(l,c){l.insert(i.stringRepeat(c.text||"",c.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:a(null,"Ctrl-O"),exec:function(l){l.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:a("Alt-Shift-X","Ctrl-T"),exec:function(l){l.transposeLetters()},multiSelectAction:function(l){l.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:a("Ctrl-U","Ctrl-U"),exec:function(l){l.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:a("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(l){l.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:a(null,null),exec:function(l){l.autoIndent()},scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:a("Ctrl-Shift-L","Command-Shift-L"),exec:function(l){var c=l.selection.getRange();c.start.column=c.end.column=0,c.end.row++,l.selection.setRange(c,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:a("Ctrl+F3","F3"),exec:function(l){l.openLink()}},{name:"joinlines",description:"Join lines",bindKey:a(null,null),exec:function(l){for(var c=l.selection.isBackwards(),u=c?l.selection.getSelectionLead():l.selection.getSelectionAnchor(),d=c?l.selection.getSelectionAnchor():l.selection.getSelectionLead(),h=l.session.doc.getLine(u.row).length,m=l.session.doc.getTextRange(l.selection.getRange()),f=m.replace(/\n\s*/," ").length,g=l.session.doc.getLine(u.row),v=u.row+1;v<=d.row+1;v++){var w=i.stringTrimLeft(i.stringTrimRight(l.session.doc.getLine(v)));w.length!==0&&(w=" "+w),g+=w}d.row+10?(l.selection.moveCursorTo(u.row,u.column),l.selection.selectTo(u.row,u.column+f)):(h=l.session.doc.getLine(u.row).length>h?h+1:h,l.selection.moveCursorTo(u.row,h))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:a(null,null),exec:function(l){var c=l.session.doc.getLength()-1,u=l.session.doc.getLine(c).length,d=l.selection.rangeList.ranges,h=[];d.length<1&&(d=[l.selection.getRange()]);for(var m=0;m0||l+c=0&&this.$isFoldWidgetVisible(l-c))return l-c;if(l+c<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(l+c))return l+c}return null},o.prototype.$findNearestAnnotation=function(l){if(this.$isAnnotationVisible(l))return l;for(var c=0;l-c>0||l+c=0&&this.$isAnnotationVisible(l-c))return l-c;if(l+c<=this.lines.getLength()-1&&this.$isAnnotationVisible(l+c))return l+c}return null},o.prototype.$focusFoldWidget=function(l){if(l!=null){var c=this.$getFoldWidget(l);c.classList.add(this.editor.renderer.keyboardFocusClassName),c.focus()}},o.prototype.$focusAnnotation=function(l){if(l!=null){var c=this.$getAnnotation(l);c.classList.add(this.editor.renderer.keyboardFocusClassName),c.focus()}},o.prototype.$blurFoldWidget=function(l){var c=this.$getFoldWidget(l);c.classList.remove(this.editor.renderer.keyboardFocusClassName),c.blur()},o.prototype.$blurAnnotation=function(l){var c=this.$getAnnotation(l);c.classList.remove(this.editor.renderer.keyboardFocusClassName),c.blur()},o.prototype.$moveFoldWidgetUp=function(){for(var l=this.activeRowIndex;l>0;)if(l--,this.$isFoldWidgetVisible(l)){this.$blurFoldWidget(this.activeRowIndex),this.activeRowIndex=l,this.$focusFoldWidget(this.activeRowIndex);return}},o.prototype.$moveFoldWidgetDown=function(){for(var l=this.activeRowIndex;l0;)if(l--,this.$isAnnotationVisible(l)){this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=l,this.$focusAnnotation(this.activeRowIndex);return}},o.prototype.$moveAnnotationDown=function(){for(var l=this.activeRowIndex;l=_.length&&(_=void 0),{value:_&&_[S++],done:!_}}};throw new TypeError(p?"Object is not iterable.":"Symbol.iterator is not defined.")},r=n("./lib/oop"),s=n("./lib/dom"),a=n("./lib/lang"),o=n("./lib/useragent"),l=n("./keyboard/textinput").TextInput,c=n("./mouse/mouse_handler").MouseHandler,u=n("./mouse/fold_handler").FoldHandler,d=n("./keyboard/keybinding").KeyBinding,h=n("./edit_session").EditSession,m=n("./search").Search,f=n("./range").Range,g=n("./lib/event_emitter").EventEmitter,v=n("./commands/command_manager").CommandManager,w=n("./commands/default_commands").commands,C=n("./config"),k=n("./token_iterator").TokenIterator,x=n("./keyboard/gutter_handler").GutterKeyboardHandler,y=n("./config").nls,E=n("./clipboard"),T=n("./lib/keys"),M=function(){function _(p,b,S){this.session,this.$toDestroy=[];var I=p.getContainerElement();this.container=I,this.renderer=p,this.id="editor"+ ++_.$uid,this.commands=new v(o.isMac?"mac":"win",w),typeof document=="object"&&(this.textInput=new l(p.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new c(this),new u(this)),this.keyBinding=new d(this),this.$search=new m().set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=a.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(A,R){R._$emitInputEvent.schedule(31)}),this.setSession(b||S&&S.session||new h("")),C.resetOptions(this),S&&this.setOptions(S),C._signal("editor",this)}return _.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0)},_.prototype.startOperation=function(p){this.session.startOperation(p)},_.prototype.endOperation=function(p){this.session.endOperation(p)},_.prototype.onStartOperation=function(p){this.curOp=this.session.curOp,this.curOp.scrollTop=this.renderer.scrollTop,this.prevOp=this.session.prevOp,p||(this.previousCommand=null)},_.prototype.onEndOperation=function(p){if(this.curOp&&this.session){if(p&&p.returnValue===!1){this.curOp=null;return}if(this._signal("beforeEndOperation"),!this.curOp)return;var b=this.curOp.command,S=b&&b.scrollIntoView;if(S){switch(S){case"center-animate":S="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var I=this.selection.getRange(),A=this.renderer.layerConfig;(I.start.row>=A.lastRow||I.end.row<=A.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:break}S=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.$lastSel=this.session.selection.toJSON(),this.prevOp=this.curOp,this.curOp=null}},_.prototype.$historyTracker=function(p){if(this.$mergeUndoDeltas){var b=this.prevOp,S=this.$mergeableCommands,I=b.command&&p.command.name==b.command.name;if(p.command.name=="insertstring"){var A=p.args;this.mergeNextCommand===void 0&&(this.mergeNextCommand=!0),I=I&&this.mergeNextCommand&&(!/\s/.test(A)||/\s/.test(b.args)),this.mergeNextCommand=!0}else I=I&&S.indexOf(p.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(I=!1),I?this.session.mergeUndoDeltas=!0:S.indexOf(p.command.name)!==-1&&(this.sequenceStartTime=Date.now())}},_.prototype.setKeyboardHandler=function(p,b){if(p&&typeof p=="string"&&p!="ace"){this.$keybindingId=p;var S=this;C.loadModule(["keybinding",p],function(I){S.$keybindingId==p&&S.keyBinding.setKeyboardHandler(I&&I.handler),b&&b()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(p),b&&b()},_.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},_.prototype.setSession=function(p){if(this.session!=p){this.curOp&&this.endOperation(),this.curOp={};var b=this.session;if(b){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange),this.session.off("startOperation",this.$onStartOperation),this.session.off("endOperation",this.$onEndOperation);var S=this.session.getSelection();S.off("changeCursor",this.$onCursorChange),S.off("changeSelection",this.$onSelectionChange)}this.session=p,p?(this.$onDocumentChange=this.onDocumentChange.bind(this),p.on("change",this.$onDocumentChange),this.renderer.setSession(p),this.$onChangeMode=this.onChangeMode.bind(this),p.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),p.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),p.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),p.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),p.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),p.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=p.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.$onStartOperation=this.onStartOperation.bind(this),this.session.on("startOperation",this.$onStartOperation),this.$onEndOperation=this.onEndOperation.bind(this),this.session.on("endOperation",this.$onEndOperation),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(p)),this._signal("changeSession",{session:p,oldSession:b}),this.curOp=null,b&&b._signal("changeEditor",{oldEditor:this}),b&&(b.$editor=null),p&&p._signal("changeEditor",{editor:this}),p&&(p.$editor=this),p&&!p.destroyed&&p.bgTokenizer.scheduleStart()}},_.prototype.getSession=function(){return this.session},_.prototype.setValue=function(p,b){return this.session.doc.setValue(p),b?b==1?this.navigateFileEnd():b==-1&&this.navigateFileStart():this.selectAll(),p},_.prototype.getValue=function(){return this.session.getValue()},_.prototype.getSelection=function(){return this.selection},_.prototype.resize=function(p){this.renderer.onResize(p)},_.prototype.setTheme=function(p,b){this.renderer.setTheme(p,b)},_.prototype.getTheme=function(){return this.renderer.getTheme()},_.prototype.setStyle=function(p){this.renderer.setStyle(p)},_.prototype.unsetStyle=function(p){this.renderer.unsetStyle(p)},_.prototype.getFontSize=function(){return this.getOption("fontSize")||s.computedStyle(this.container).fontSize},_.prototype.setFontSize=function(p){this.setOption("fontSize",p)},_.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var p=this;this.$highlightPending=!0,setTimeout(function(){p.$highlightPending=!1;var b=p.session;if(!(!b||b.destroyed)){b.$bracketHighlight&&(b.$bracketHighlight.markerIds.forEach(function(V){b.removeMarker(V)}),b.$bracketHighlight=null);var S=p.getCursorPosition(),I=p.getKeyboardHandler(),A=I&&I.$getDirectionForHighlight&&I.$getDirectionForHighlight(p),R=b.getMatchingBracketRanges(S,A);if(!R){var O=new k(b,S.row,S.column),U=O.getCurrentToken();if(U&&/\b(?:tag-open|tag-name)/.test(U.type)){var P=b.getMatchingTags(S);P&&(R=[P.openTagName.isEmpty()?P.openTag:P.openTagName,P.closeTagName.isEmpty()?P.closeTag:P.closeTagName])}}if(!R&&b.$mode.getMatching&&(R=b.$mode.getMatching(p.session)),!R){p.getHighlightIndentGuides()&&p.renderer.$textLayer.$highlightIndentGuide();return}var W="ace_bracket";Array.isArray(R)?R.length==1&&(W="ace_error_bracket"):R=[R],R.length==2&&(f.comparePoints(R[0].end,R[1].start)==0?R=[f.fromPoints(R[0].start,R[1].end)]:f.comparePoints(R[0].start,R[1].end)==0&&(R=[f.fromPoints(R[1].start,R[0].end)])),b.$bracketHighlight={ranges:R,markerIds:R.map(function(V){return b.addMarker(V,W,"text")})},p.getHighlightIndentGuides()&&p.renderer.$textLayer.$highlightIndentGuide()}},50)}},_.prototype.focus=function(){this.textInput.focus()},_.prototype.isFocused=function(){return this.textInput.isFocused()},_.prototype.blur=function(){this.textInput.blur()},_.prototype.onFocus=function(p){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",p))},_.prototype.onBlur=function(p){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",p))},_.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},_.prototype.onDocumentChange=function(p){var b=this.session.$useWrapMode,S=p.start.row==p.end.row?p.end.row:1/0;this.renderer.updateLines(p.start.row,S,b),this._signal("change",p),this.$cursorChange()},_.prototype.onTokenizerUpdate=function(p){var b=p.data;this.renderer.updateLines(b.first,b.last)},_.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},_.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},_.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},_.prototype.$updateHighlightActiveLine=function(){var p=this.getSession(),b;if(this.$highlightActiveLine&&((this.$selectionStyle!="line"||!this.selection.isMultiLine())&&(b=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(b=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(b=!1)),p.$highlightLineMarker&&!b)p.removeMarker(p.$highlightLineMarker.id),p.$highlightLineMarker=null;else if(!p.$highlightLineMarker&&b){var S=new f(b.row,b.column,b.row,1/0);S.id=p.addMarker(S,"ace_active-line","screenLine"),p.$highlightLineMarker=S}else b&&(p.$highlightLineMarker.start.row=b.row,p.$highlightLineMarker.end.row=b.row,p.$highlightLineMarker.start.column=b.column,p._signal("changeBackMarker"))},_.prototype.onSelectionChange=function(p){var b=this.session;if(b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var S=this.selection.getRange(),I=this.getSelectionStyle();b.$selectionMarker=b.addMarker(S,"ace_selection",I)}var A=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(A),this._signal("changeSelection")},_.prototype.$getSelectionHighLightRegexp=function(){var p=this.session,b=this.getSelectionRange();if(!(b.isEmpty()||b.isMultiLine())){var S=b.start.column,I=b.end.column,A=p.getLine(b.start.row),R=A.substring(S,I);if(!(R.length>5e3||!/[\w\d]/.test(R))){var O=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:R}),U=A.substring(S-1,I+1);if(O.test(U))return O}}},_.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},_.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},_.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},_.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},_.prototype.onChangeMode=function(p){this.renderer.updateText(),this._emit("changeMode",p)},_.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},_.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},_.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},_.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},_.prototype.getCopyText=function(){var p=this.getSelectedText(),b=this.session.doc.getNewLineCharacter(),S=!1;if(!p&&this.$copyWithEmptySelection){S=!0;for(var I=this.selection.getAllRanges(),A=0;AV.search(/\S|$/)){var U=V.substr(A.column).search(/\S|$/);S.doc.removeInLine(A.row,A.column,A.column+U)}}this.clearSelection();var P=A.column,W=S.getState(A.row),V=S.getLine(A.row),K=I.checkOutdent(W,V,p);if(S.insert(A,p),R&&R.selection&&(R.selection.length==2?this.selection.setSelectionRange(new f(A.row,P+R.selection[0],A.row,P+R.selection[1])):this.selection.setSelectionRange(new f(A.row+R.selection[0],R.selection[1],A.row+R.selection[2],R.selection[3]))),this.$enableAutoIndent){if(S.getDocument().isNewLine(p)){var Q=I.getNextLineIndent(W,V.slice(0,A.column),S.getTabString());S.insert({row:A.row+1,column:0},Q)}K&&I.autoOutdent(W,S,A.row)}},_.prototype.autoIndent=function(){for(var p=this.session,b=p.getMode(),S=this.selection.isEmpty()?[new f(0,0,p.doc.getLength()-1,0)]:this.selection.getAllRanges(),I="",A="",R="",O=p.getTabString(),U=0;U0&&(I=p.getState(V-1),A=p.getLine(V-1),R=b.getNextLineIndent(I,A,O));var K=p.getLine(V),Q=b.$getIndent(K);if(R!==Q){if(Q.length>0){var q=new f(V,0,V,Q.length);p.remove(q)}R.length>0&&p.insert({row:V,column:0},R)}b.autoOutdent(I,p,V)}},_.prototype.onTextInput=function(p,b){if(!b)return this.keyBinding.onTextInput(p);this.startOperation({command:{name:"insertstring"}});var S=this.applyComposition.bind(this,p,b);this.selection.rangeCount?this.forEachSelection(S):S(),this.endOperation()},_.prototype.applyComposition=function(p,b){if(b.extendLeft||b.extendRight){var S=this.selection.getRange();S.start.column-=b.extendLeft,S.end.column+=b.extendRight,S.start.column<0&&(S.start.row--,S.start.column+=this.session.getLine(S.start.row).length+1),this.selection.setRange(S),!p&&!S.isEmpty()&&this.remove()}if((p||!this.selection.isEmpty())&&this.insert(p,!0),b.restoreStart||b.restoreEnd){var S=this.selection.getRange();S.start.column-=b.restoreStart,S.end.column-=b.restoreEnd,this.selection.setRange(S)}},_.prototype.onCommandKey=function(p,b,S){return this.keyBinding.onCommandKey(p,b,S)},_.prototype.setOverwrite=function(p){this.session.setOverwrite(p)},_.prototype.getOverwrite=function(){return this.session.getOverwrite()},_.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},_.prototype.setScrollSpeed=function(p){this.setOption("scrollSpeed",p)},_.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},_.prototype.setDragDelay=function(p){this.setOption("dragDelay",p)},_.prototype.getDragDelay=function(){return this.getOption("dragDelay")},_.prototype.setSelectionStyle=function(p){this.setOption("selectionStyle",p)},_.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},_.prototype.setHighlightActiveLine=function(p){this.setOption("highlightActiveLine",p)},_.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},_.prototype.setHighlightGutterLine=function(p){this.setOption("highlightGutterLine",p)},_.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},_.prototype.setHighlightSelectedWord=function(p){this.setOption("highlightSelectedWord",p)},_.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},_.prototype.setAnimatedScroll=function(p){this.renderer.setAnimatedScroll(p)},_.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},_.prototype.setShowInvisibles=function(p){this.renderer.setShowInvisibles(p)},_.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},_.prototype.setDisplayIndentGuides=function(p){this.renderer.setDisplayIndentGuides(p)},_.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},_.prototype.setHighlightIndentGuides=function(p){this.renderer.setHighlightIndentGuides(p)},_.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},_.prototype.setShowPrintMargin=function(p){this.renderer.setShowPrintMargin(p)},_.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},_.prototype.setPrintMarginColumn=function(p){this.renderer.setPrintMarginColumn(p)},_.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},_.prototype.setReadOnly=function(p){this.setOption("readOnly",p)},_.prototype.getReadOnly=function(){return this.getOption("readOnly")},_.prototype.setBehavioursEnabled=function(p){this.setOption("behavioursEnabled",p)},_.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},_.prototype.setWrapBehavioursEnabled=function(p){this.setOption("wrapBehavioursEnabled",p)},_.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},_.prototype.setShowFoldWidgets=function(p){this.setOption("showFoldWidgets",p)},_.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},_.prototype.setFadeFoldWidgets=function(p){this.setOption("fadeFoldWidgets",p)},_.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},_.prototype.remove=function(p){this.selection.isEmpty()&&(p=="left"?this.selection.selectLeft():this.selection.selectRight());var b=this.getSelectionRange();if(this.getBehavioursEnabled()){var S=this.session,I=S.getState(b.start.row),A=S.getMode().transformAction(I,"deletion",this,S,b);if(b.end.column===0){var R=S.getTextRange(b);if(R[R.length-1]==` -`){var O=S.getLine(b.end.row);/^\s+$/.test(O)&&(b.end.column=O.length)}}A&&(b=A)}this.session.remove(b),this.clearSelection()},_.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},_.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},_.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},_.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var p=this.getSelectionRange();p.start.column==p.end.column&&p.start.row==p.end.row&&(p.end.column=0,p.end.row++),this.session.remove(p),this.clearSelection()},_.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var p=this.getCursorPosition();this.insert(` -`),this.moveCursorToPosition(p)},_.prototype.setGhostText=function(p,b){this.renderer.setGhostText(p,b)},_.prototype.removeGhostText=function(){this.renderer.removeGhostText()},_.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var p=this.getCursorPosition(),b=p.column;if(b!==0){var S=this.session.getLine(p.row),I,A;bU.toLowerCase()?1:0});for(var A=new f(0,0,0,0),I=p.first;I<=p.last;I++){var R=b.getLine(I);A.start.row=I,A.end.row=I,A.end.column=R.length,b.replace(A,S[I-p.first])}},_.prototype.toggleCommentLines=function(){var p=this.session.getState(this.getCursorPosition().row),b=this.$getSelectedRows();this.session.getMode().toggleCommentLines(p,this.session,b.first,b.last)},_.prototype.toggleBlockComment=function(){var p=this.getCursorPosition(),b=this.session.getState(p.row),S=this.getSelectionRange();this.session.getMode().toggleBlockComment(b,this.session,S,p)},_.prototype.getNumberAt=function(p,b){var S=/[\-]?[0-9]+(?:\.[0-9]+)?/g;S.lastIndex=0;for(var I=this.session.getLine(p);S.lastIndex=b){var R={value:A[0],start:A.index,end:A.index+A[0].length};return R}}return null},_.prototype.modifyNumber=function(p){var b=this.selection.getCursor().row,S=this.selection.getCursor().column,I=new f(b,S-1,b,S),A=this.session.getTextRange(I);if(!isNaN(parseFloat(A))&&isFinite(A)){var R=this.getNumberAt(b,S);if(R){var O=R.value.indexOf(".")>=0?R.start+R.value.indexOf(".")+1:R.end,U=R.start+R.value.length-O,P=parseFloat(R.value);P*=Math.pow(10,U),O!==R.end&&S=O&&R<=U&&(S=ae,P.selection.clearSelection(),P.moveCursorTo(p,O+I),P.selection.selectTo(p,U+I)),O=U});for(var W=this.$toggleWordPairs,V,K=0;K=U&&O<=P&&Q.match(/((?:https?|ftp):\/\/[\S]+)/)){W=Q.replace(/[\s:.,'";}\]]+$/,"");break}U=P}}catch(q){S={error:q}}finally{try{K&&!K.done&&(I=V.return)&&I.call(V)}finally{if(S)throw S.error}}return W},_.prototype.openLink=function(){var p=this.selection.getCursor(),b=this.findLinkAt(p.row,p.column);return b&&window.open(b,"_blank"),b!=null},_.prototype.removeLines=function(){var p=this.$getSelectedRows();this.session.removeFullLines(p.first,p.last),this.clearSelection()},_.prototype.duplicateSelection=function(){var p=this.selection,b=this.session,S=p.getRange(),I=p.isBackwards();if(S.isEmpty()){var A=S.start.row;b.duplicateLines(A,A)}else{var R=I?S.start:S.end,O=b.insert(R,b.getTextRange(S));S.start=R,S.end=O,p.setSelectionRange(S,I)}},_.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},_.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},_.prototype.moveText=function(p,b,S){return this.session.moveText(p,b,S)},_.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},_.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},_.prototype.$moveLines=function(p,b){var S,I,A=this.selection;if(!A.inMultiSelectMode||this.inVirtualSelectionMode){var R=A.toOrientedRange();S=this.$getSelectedRows(R),I=this.session.$moveLines(S.first,S.last,b?0:p),b&&p==-1&&(I=0),R.moveBy(I,0),A.fromOrientedRange(R)}else{var O=A.rangeList.ranges;A.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var U=0,P=0,W=O.length,V=0;Vq+1)break;q=ce.last}for(V--,U=this.session.$moveLines(Q,q,b?0:p),b&&p==-1&&(K=V+1);K<=V;)O[K].moveBy(U,0),K++;b||(U=0),P+=U}A.fromOrientedRange(A.ranges[0]),A.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},_.prototype.$getSelectedRows=function(p){return p=(p||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(p.start.row),last:this.session.getRowFoldEnd(p.end.row)}},_.prototype.onCompositionStart=function(p){this.renderer.showComposition(p)},_.prototype.onCompositionUpdate=function(p){this.renderer.setCompositionText(p)},_.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},_.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},_.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},_.prototype.isRowVisible=function(p){return p>=this.getFirstVisibleRow()&&p<=this.getLastVisibleRow()},_.prototype.isRowFullyVisible=function(p){return p>=this.renderer.getFirstFullyVisibleRow()&&p<=this.renderer.getLastFullyVisibleRow()},_.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},_.prototype.$moveByPage=function(p,b){var S=this.renderer,I=this.renderer.layerConfig,A=p*Math.floor(I.height/I.lineHeight);b===!0?this.selection.$moveSelection(function(){this.moveCursorBy(A,0)}):b===!1&&(this.selection.moveCursorBy(A,0),this.selection.clearSelection());var R=S.scrollTop;S.scrollBy(0,A*I.lineHeight),b!=null&&S.scrollCursorIntoView(null,.5),S.animateScrolling(R)},_.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},_.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},_.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},_.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},_.prototype.scrollPageDown=function(){this.$moveByPage(1)},_.prototype.scrollPageUp=function(){this.$moveByPage(-1)},_.prototype.scrollToRow=function(p){this.renderer.scrollToRow(p)},_.prototype.scrollToLine=function(p,b,S,I){this.renderer.scrollToLine(p,b,S,I)},_.prototype.centerSelection=function(){var p=this.getSelectionRange(),b={row:Math.floor(p.start.row+(p.end.row-p.start.row)/2),column:Math.floor(p.start.column+(p.end.column-p.start.column)/2)};this.renderer.alignCursor(b,.5)},_.prototype.getCursorPosition=function(){return this.selection.getCursor()},_.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},_.prototype.getSelectionRange=function(){return this.selection.getRange()},_.prototype.selectAll=function(){this.selection.selectAll()},_.prototype.clearSelection=function(){this.selection.clearSelection()},_.prototype.moveCursorTo=function(p,b){this.selection.moveCursorTo(p,b)},_.prototype.moveCursorToPosition=function(p){this.selection.moveCursorToPosition(p)},_.prototype.jumpToMatching=function(p,b){var S=this.getCursorPosition(),I=new k(this.session,S.row,S.column),A=I.getCurrentToken(),R=0;A&&A.type.indexOf("tag-name")!==-1&&(A=I.stepBackward());var O=A||I.stepForward();if(O){var U,P=!1,W={},V=S.column-O.start,K,Q={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(O.value.match(/[{}()\[\]]/g)){for(;V1?W[O.value]++:A.value==="=0;--R)this.$tryReplace(S[R],p)&&I++;return this.selection.setSelectionRange(A),I},_.prototype.$tryReplace=function(p,b){var S=this.session.getTextRange(p);return b=this.$search.replace(S,b),b!==null?(p.end=this.session.replace(p,b),p):null},_.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},_.prototype.find=function(p,b,S){b||(b={}),typeof p=="string"||p instanceof RegExp?b.needle=p:typeof p=="object"&&r.mixin(b,p);var I=this.selection.getRange();b.needle==null&&(p=this.session.getTextRange(I)||this.$search.$options.needle,p||(I=this.session.getWordRange(I.start.row,I.start.column),p=this.session.getTextRange(I)),this.$search.set({needle:p})),this.$search.set(b),b.start||this.$search.set({start:I});var A=this.$search.find(this.session);if(b.preventScroll)return A;if(A)return this.revealRange(A,S),A;b.backwards?I.start=I.end:I.end=I.start,this.selection.setRange(I)},_.prototype.findNext=function(p,b){this.find({skipCurrent:!0,backwards:!1},p,b)},_.prototype.findPrevious=function(p,b){this.find(p,{skipCurrent:!0,backwards:!0},b)},_.prototype.revealRange=function(p,b){this.session.unfold(p),this.selection.setSelectionRange(p);var S=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(p.start,p.end,.5),b!==!1&&this.renderer.animateScrolling(S)},_.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},_.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},_.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach(function(p){p.destroy()}),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},_.prototype.setAutoScrollEditorIntoView=function(p){if(p){var b,S=this,I=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var A=this.$scrollAnchor;A.style.cssText="position:absolute",this.container.insertBefore(A,this.container.firstChild);var R=this.on("changeSelection",function(){I=!0}),O=this.renderer.on("beforeRender",function(){I&&(b=S.renderer.container.getBoundingClientRect())}),U=this.renderer.on("afterRender",function(){if(I&&b&&(S.isFocused()||S.searchBox&&S.searchBox.isFocused())){var P=S.renderer,W=P.$cursorLayer.$pixelPos,V=P.layerConfig,K=W.top-V.offset;W.top>=0&&K+b.top<0?I=!0:W.topwindow.innerHeight?I=!1:I=null,I!=null&&(A.style.top=K+"px",A.style.left=W.left+"px",A.style.height=V.lineHeight+"px",A.scrollIntoView(I)),I=b=null}});this.setAutoScrollEditorIntoView=function(P){P||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",R),this.renderer.off("afterRender",U),this.renderer.off("beforeRender",O))}}},_.prototype.$resetCursorStyle=function(){var p=this.$cursorStyle||"ace",b=this.renderer.$cursorLayer;b&&(b.setSmoothBlinking(/smooth/.test(p)),b.isBlinking=!this.$readOnly&&p!="wide",s.setCssClass(b.element,"ace_slim-cursors",/slim/.test(p)))},_.prototype.prompt=function(p,b,S){var I=this;C.loadModule("ace/ext/prompt",function(A){A.prompt(I,p,b,S)})},_}();M.$uid=0,M.prototype.curOp=null,M.prototype.prevOp={},M.prototype.$mergeableCommands=["backspace","del","insertstring"],M.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],r.implement(M.prototype,g),C.defineOptions(M.prototype,"editor",{selectionStyle:{set:function(_){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:_})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(_){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(_){this.textInput.setReadOnly(_),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(_){this.textInput.setCopyWithEmptySelection(_)},initialValue:!1},cursorStyle:{set:function(_){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(_){this.setAutoScrollEditorIntoView(_)}},keyboardHandler:{set:function(_){this.setKeyboardHandler(_)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(_){this.session.setValue(_)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(_){this.setSession(_)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(_){this.renderer.$gutterLayer.setShowLineNumbers(_),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),_&&this.$relativeLineNumbers?D.attach(this):D.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(_){this.$showLineNumbers&&_?D.attach(this):D.detach(this)}},placeholder:{set:function(_){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var p=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(p&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),s.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(!p&&!this.renderer.placeholderNode){this.renderer.on("afterRender",this.$updatePlaceholder),s.addCssClass(this.container,"ace_hasPlaceholder");var b=s.createElement("div");b.className="ace_placeholder",b.textContent=this.$placeholder||"",this.renderer.placeholderNode=b,this.renderer.content.appendChild(this.renderer.placeholderNode)}else!p&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"")}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(_){var p={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(I){I.blur(),I.renderer.scroller.focus()},readOnly:!0},b=function(I){if(I.target==this.renderer.scroller&&I.keyCode===T.enter){I.preventDefault();var A=this.getCursorPosition().row;this.isRowVisible(A)||this.scrollToLine(A,!0,!0),this.focus()}},S;_?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(o.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",y("editor.scroller.aria-roledescription","editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",y("editor.scroller.aria-label","Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",b.bind(this)),this.commands.addCommand(p),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",y("editor.gutter.aria-roledescription","editor")),this.renderer.$gutter.setAttribute("aria-label",y("editor.gutter.aria-label","Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),S||(S=new x(this)),S.addListener(),this.textInput.setAriaOptions({setLabel:!0})):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",b.bind(this)),this.commands.removeCommand(p),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),S&&S.removeListener())},initialValue:!1},textInputAriaLabel:{set:function(_){this.$textInputAriaLabel=_},initialValue:""},enableMobileMenu:{set:function(_){this.$enableMobileMenu=_},initialValue:!0},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var D={getText:function(_,p){return(Math.abs(_.selection.lead.row-p)||p+1+(p<9?"\xB7":""))+""},getWidth:function(_,p,b){return Math.max(p.toString().length,(b.lastRow+1).toString().length,2)*b.characterWidth},update:function(_,p){p.renderer.$loop.schedule(p.renderer.CHANGE_GUTTER)},attach:function(_){_.renderer.$gutterLayer.$renderer=this,_.on("changeSelection",this.update),this.update(null,_)},detach:function(_){_.renderer.$gutterLayer.$renderer==this&&(_.renderer.$gutterLayer.$renderer=null),_.off("changeSelection",this.update),this.update(null,_)}};t.Editor=M});ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(n,t,e){"use strict";var i=n("../lib/dom"),r=function(){function s(a,o){this.element=a,this.canvasHeight=o||5e5,this.element.style.height=this.canvasHeight*2+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return s.prototype.moveContainer=function(a){i.translate(this.element,0,-(a.firstRowScreen*a.lineHeight%this.canvasHeight)-a.offset*this.$offsetCoefficient)},s.prototype.pageChanged=function(a,o){return Math.floor(a.firstRowScreen*a.lineHeight/this.canvasHeight)!==Math.floor(o.firstRowScreen*o.lineHeight/this.canvasHeight)},s.prototype.computeLineTop=function(a,o,l){var c=o.firstRowScreen*o.lineHeight,u=Math.floor(c/this.canvasHeight),d=l.documentToScreenRow(a,0)*o.lineHeight;return d-u*this.canvasHeight},s.prototype.computeLineHeight=function(a,o,l){return o.lineHeight*l.getRowLineCount(a)},s.prototype.getLength=function(){return this.cells.length},s.prototype.get=function(a){return this.cells[a]},s.prototype.shift=function(){this.$cacheCell(this.cells.shift())},s.prototype.pop=function(){this.$cacheCell(this.cells.pop())},s.prototype.push=function(a){if(Array.isArray(a)){this.cells.push.apply(this.cells,a);for(var o=i.createFragment(this.element),l=0;lw&&(x=v.end.row+1,v=m.getNextFoldLine(x,v),w=v?v.start.row:1/0),x>g){for(;this.$lines.getLength()>k+1;)this.$lines.pop();break}C=this.$lines.get(++k),C?C.row=x:(C=this.$lines.createCell(x,h,this.session,u),this.$lines.push(C)),this.$renderCell(C,h,v,x),x++}this._signal("afterRender"),this.$updateGutterWidth(h)},d.prototype.$updateGutterWidth=function(h){var m=this.session,f=m.gutterRenderer||this.$renderer,g=m.$firstLineNumber,v=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||m.$useWrapMode)&&(v=m.getLength()+g-1);var w=f?f.getWidth(m,v,h):v.toString().length*h.characterWidth,C=this.$padding||this.$computePadding();w+=C.left+C.right,w!==this.gutterWidth&&!isNaN(w)&&(this.gutterWidth=w,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",w))},d.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var h=this.session.selection.getCursor();this.$cursorRow!==h.row&&(this.$cursorRow=h.row)}},d.prototype.updateLineHighlight=function(){if(this.$highlightGutterLine){var h=this.session.selection.cursor.row;if(this.$cursorRow=h,!(this.$cursorCell&&this.$cursorCell.row==h)){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var m=this.$lines.cells;this.$cursorCell=null;for(var f=0;f=this.$cursorRow){if(g.row>this.$cursorRow){var v=this.session.getFoldLine(this.$cursorRow);if(f>0&&v&&v.start.row==m[f-1].row)g=m[f-1];else break}g.element.className="ace_gutter-active-line "+g.element.className,this.$cursorCell=g;break}}}}},d.prototype.scrollLines=function(h){var m=this.config;if(this.config=h,this.$updateCursorRow(),this.$lines.pageChanged(m,h))return this.update(h);this.$lines.moveContainer(h);var f=Math.min(h.lastRow+h.gutterOffset,this.session.getLength()-1),g=this.oldLastRow;if(this.oldLastRow=f,!m||g0;v--)this.$lines.shift();if(g>f)for(var v=this.session.getFoldedRowCount(f+1,g);v>0;v--)this.$lines.pop();h.firstRowg&&this.$lines.push(this.$renderLines(h,g+1,f)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(h)},d.prototype.$renderLines=function(h,m,f){for(var g=[],v=m,w=this.session.getNextFoldLine(v),C=w?w.start.row:1/0;v>C&&(v=w.end.row+1,w=this.session.getNextFoldLine(v,w),C=w?w.start.row:1/0),!(v>f);){var k=this.$lines.createCell(v,h,this.session,u);this.$renderCell(k,h,w,v),g.push(k),v++}return g},d.prototype.$renderCell=function(h,m,f,g){var v=h.element,w=this.session,C=v.childNodes[0],k=v.childNodes[1],x=v.childNodes[2],y=x.firstChild,E=w.$firstLineNumber,T=w.$breakpoints,M=w.$decorations,D=w.gutterRenderer||this.$renderer,_=this.$showFoldWidgets&&w.foldWidgets,p=f?f.start.row:Number.MAX_VALUE,b=m.lineHeight+"px",S=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",I=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",A=(D?D.getText(w,g):g+E).toString();if(this.$highlightGutterLine&&(g==this.$cursorRow||f&&g=p&&this.$cursorRow<=f.end.row)&&(S+="ace_gutter-active-line ",this.$cursorCell!=h&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=h)),T[g]&&(S+=T[g]),M[g]&&(S+=M[g]),this.$annotations[g]&&g!==p&&(S+=this.$annotations[g].className),_){var R=_[g];R==null&&(R=_[g]=w.getFoldWidget(g))}if(R){var O="ace_fold-widget ace_"+R,U=R=="start"&&g==p&&gf.right-m.right)return"foldWidgets"},d}();c.prototype.$fixedWidth=!1,c.prototype.$highlightGutterLine=!0,c.prototype.$renderer="",c.prototype.$showLineNumbers=!0,c.prototype.$showFoldWidgets=!0,r.implement(c.prototype,a);function u(d){var h=document.createTextNode("");d.appendChild(h);var m=i.createElement("span");d.appendChild(m);var f=i.createElement("span");d.appendChild(f);var g=i.createElement("span");return f.appendChild(g),d}t.Gutter=c});ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(n,t,e){"use strict";var i=n("../range").Range,r=n("../lib/dom"),s=function(){function o(l){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",l.appendChild(this.element)}return o.prototype.setPadding=function(l){this.$padding=l},o.prototype.setSession=function(l){this.session=l},o.prototype.setMarkers=function(l){this.markers=l},o.prototype.elt=function(l,c){var u=this.i!=-1&&this.element.childNodes[this.i];u?this.i++:(u=document.createElement("div"),this.element.appendChild(u),this.i=-1),u.style.cssText=c,u.className=l},o.prototype.update=function(l){if(l){this.config=l,this.i=0;var c;for(var u in this.markers){var d=this.markers[u];if(!d.range){d.update(c,this,this.session,l);continue}var h=d.range.clipRows(l.firstRow,l.lastRow);if(!h.isEmpty())if(h=h.toScreenRange(this.session),d.renderer){var m=this.$getTop(h.start.row,l),f=this.$padding+h.start.column*l.characterWidth;d.renderer(c,h,f,m,l)}else d.type=="fullLine"?this.drawFullLineMarker(c,h,d.clazz,l):d.type=="screenLine"?this.drawScreenLineMarker(c,h,d.clazz,l):h.isMultiLine()?d.type=="text"?this.drawTextMarker(c,h,d.clazz,l):this.drawMultiLineMarker(c,h,d.clazz,l):this.drawSingleLineMarker(c,h,d.clazz+" ace_start ace_br15",l)}if(this.i!=-1)for(;this.ik,v==g),d,v==g?0:1,h)},o.prototype.drawMultiLineMarker=function(l,c,u,d,h){var m=this.$padding,f=d.lineHeight,g=this.$getTop(c.start.row,d),v=m+c.start.column*d.characterWidth;if(h=h||"",this.session.$bidiHandler.isBidiRow(c.start.row)){var w=c.clone();w.end.row=w.start.row,w.end.column=this.session.getLine(w.start.row).length,this.drawBidiSingleLineMarker(l,w,u+" ace_br1 ace_start",d,null,h)}else this.elt(u+" ace_br1 ace_start","height:"+f+"px;right:"+m+"px;top:"+g+"px;left:"+v+"px;"+(h||""));if(this.session.$bidiHandler.isBidiRow(c.end.row)){var w=c.clone();w.start.row=w.end.row,w.start.column=0,this.drawBidiSingleLineMarker(l,w,u+" ace_br12",d,null,h)}else{g=this.$getTop(c.end.row,d);var C=c.end.column*d.characterWidth;this.elt(u+" ace_br12","height:"+f+"px;width:"+C+"px;top:"+g+"px;left:"+m+"px;"+(h||""))}if(f=(c.end.row-c.start.row-1)*d.lineHeight,!(f<=0)){g=this.$getTop(c.start.row+1,d);var k=(c.start.column?1:0)|(c.end.column?0:8);this.elt(u+(k?" ace_br"+k:""),"height:"+f+"px;right:"+m+"px;top:"+g+"px;left:"+m+"px;"+(h||""))}},o.prototype.drawSingleLineMarker=function(l,c,u,d,h,m){if(this.session.$bidiHandler.isBidiRow(c.start.row))return this.drawBidiSingleLineMarker(l,c,u,d,h,m);var f=d.lineHeight,g=(c.end.column+(h||0)-c.start.column)*d.characterWidth,v=this.$getTop(c.start.row,d),w=this.$padding+c.start.column*d.characterWidth;this.elt(u,"height:"+f+"px;width:"+g+"px;top:"+v+"px;left:"+w+"px;"+(m||""))},o.prototype.drawBidiSingleLineMarker=function(l,c,u,d,h,m){var f=d.lineHeight,g=this.$getTop(c.start.row,d),v=this.$padding,w=this.session.$bidiHandler.getSelections(c.start.column,c.end.column);w.forEach(function(C){this.elt(u,"height:"+f+"px;width:"+(C.width+(h||0))+"px;top:"+g+"px;left:"+(v+C.left)+"px;"+(m||""))},this)},o.prototype.drawFullLineMarker=function(l,c,u,d,h){var m=this.$getTop(c.start.row,d),f=d.lineHeight;c.start.row!=c.end.row&&(f+=this.$getTop(c.end.row,d)-m),this.elt(u,"height:"+f+"px;top:"+m+"px;left:0;right:0;"+(h||""))},o.prototype.drawScreenLineMarker=function(l,c,u,d,h){var m=this.$getTop(c.start.row,d),f=d.lineHeight;this.elt(u,"height:"+f+"px;top:"+m+"px;left:0;right:0;"+(h||""))},o}();s.prototype.$padding=0;function a(o,l,c,u){return(o?1:0)|(l?2:0)|(c?4:0)|(u?8:0)}t.Marker=s});ace.define("ace/layer/text_util",["require","exports","module"],function(n,t,e){var i=new Set(["text","rparen","lparen"]);t.isTextToken=function(r){return i.has(r)}});ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],function(n,t,e){"use strict";var i=n("../lib/oop"),r=n("../lib/dom"),s=n("../lib/lang"),a=n("./lines").Lines,o=n("../lib/event_emitter").EventEmitter,l=n("../config").nls,c=n("./text_util").isTextToken,u=function(){function d(h){this.dom=r,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",h.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new a(this.element)}return d.prototype.$updateEolChar=function(){var h=this.session.doc,m=h.getNewLineCharacter()==` -`&&h.getNewLineMode()!="windows",f=m?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=f)return this.EOL_CHAR=f,!0},d.prototype.setPadding=function(h){this.$padding=h,this.element.style.margin="0 "+h+"px"},d.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},d.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},d.prototype.$setFontMetrics=function(h){this.$fontMetrics=h,this.$fontMetrics.on("changeCharacterSize",function(m){this._signal("changeCharacterSize",m)}.bind(this)),this.$pollSizeChanges()},d.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},d.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},d.prototype.setSession=function(h){this.session=h,h&&this.$computeTabString()},d.prototype.setShowInvisibles=function(h){return this.showInvisibles==h?!1:(this.showInvisibles=h,typeof h=="string"?(this.showSpaces=/tab/i.test(h),this.showTabs=/space/i.test(h),this.showEOL=/eol/i.test(h)):this.showSpaces=this.showTabs=this.showEOL=h,this.$computeTabString(),!0)},d.prototype.setDisplayIndentGuides=function(h){return this.displayIndentGuides==h?!1:(this.displayIndentGuides=h,this.$computeTabString(),!0)},d.prototype.setHighlightIndentGuides=function(h){return this.$highlightIndentGuides===h?!1:(this.$highlightIndentGuides=h,h)},d.prototype.$computeTabString=function(){var h=this.session.getTabSize();this.tabSize=h;for(var m=this.$tabStrings=[0],f=1;fE&&(x=y.end.row+1,y=this.session.getNextFoldLine(x,y),E=y?y.start.row:1/0),!(x>v);){var T=w[C++];if(T){this.dom.removeChildren(T),this.$renderLine(T,x,x==E?y:!1),k&&(T.style.top=this.$lines.computeLineTop(x,h,this.session)+"px");var M=h.lineHeight*this.session.getRowLength(x)+"px";T.style.height!=M&&(k=!0,T.style.height=M)}x++}if(k)for(;C0;v--)this.$lines.shift();if(m.lastRow>h.lastRow)for(var v=this.session.getFoldedRowCount(h.lastRow+1,m.lastRow);v>0;v--)this.$lines.pop();h.firstRowm.lastRow&&this.$lines.push(this.$renderLinesFragment(h,m.lastRow+1,h.lastRow)),this.$highlightIndentGuide()},d.prototype.$renderLinesFragment=function(h,m,f){for(var g=[],v=m,w=this.session.getNextFoldLine(v),C=w?w.start.row:1/0;v>C&&(v=w.end.row+1,w=this.session.getNextFoldLine(v,w),C=w?w.start.row:1/0),!(v>f);){var k=this.$lines.createCell(v,h,this.session),x=k.element;this.dom.removeChildren(x),r.setStyle(x.style,"height",this.$lines.computeLineHeight(v,h,this.session)+"px"),r.setStyle(x.style,"top",this.$lines.computeLineTop(v,h,this.session)+"px"),this.$renderLine(x,v,v==C?w:!1),this.$useLineGroups()?x.className="ace_line_group":x.className="ace_line",g.push(k),v++}return g},d.prototype.update=function(h){this.$lines.moveContainer(h),this.config=h;for(var m=h.firstRow,f=h.lastRow,g=this.$lines;g.getLength();)g.pop();g.push(this.$renderLinesFragment(h,m,f))},d.prototype.$renderToken=function(h,m,f,g){for(var v=this,w=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069\u2060\u2061\u2062\u2063\u2064\u206A\u206B\u206B\u206C\u206D\u206E\u206F]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,C=this.dom.createFragment(this.element),k,x=0;k=w.exec(g);){var y=k[1],E=k[2],T=k[3],M=k[4],D=k[5];if(!(!v.showSpaces&&E)){var _=x!=k.index?g.slice(x,k.index):"";if(x=k.index+k[0].length,_&&C.appendChild(this.dom.createTextNode(_,this.element)),y){var p=v.session.getScreenTabSize(m+k.index);C.appendChild(v.$tabStrings[p].cloneNode(!0)),m+=p-1}else if(E)if(v.showSpaces){var b=this.dom.createElement("span");b.className="ace_invisible ace_invisible_space",b.textContent=s.stringRepeat(v.SPACE_CHAR,E.length),C.appendChild(b)}else C.appendChild(this.dom.createTextNode(E,this.element));else if(T){var b=this.dom.createElement("span");b.className="ace_invisible ace_invisible_space ace_invalid",b.textContent=s.stringRepeat(v.SPACE_CHAR,T.length),C.appendChild(b)}else if(M){m+=1;var b=this.dom.createElement("span");b.style.width=v.config.characterWidth*2+"px",b.className=v.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",b.textContent=v.showSpaces?v.SPACE_CHAR:M,C.appendChild(b)}else if(D){m+=1;var b=this.dom.createElement("span");b.style.width=v.config.characterWidth*2+"px",b.className="ace_cjk",b.textContent=D,C.appendChild(b)}}}if(C.appendChild(this.dom.createTextNode(x?g.slice(x):g,this.element)),c(f.type))h.appendChild(C);else{var S="ace_"+f.type.replace(/\./g," ace_"),b=this.dom.createElement("span");f.type=="fold"&&(b.style.width=f.value.length*this.config.characterWidth+"px",b.setAttribute("title",l("inline-fold.closed.title","Unfold code"))),b.className=S,b.appendChild(C),h.appendChild(b)}return m+g.length},d.prototype.renderIndentGuide=function(h,m,f){var g=m.search(this.$indentGuideRe);if(g<=0||g>=f)return m;if(m[0]==" "){g-=g%this.tabSize;for(var v=g/this.tabSize,w=0;ww[C].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}}if(!this.$highlightIndentGuideMarker.end&&h[m.row]!==""&&m.column===h[m.row].length){this.$highlightIndentGuideMarker.dir=1;for(var C=m.row+1;C0){for(var v=0;v=this.$highlightIndentGuideMarker.start+1){if(g.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(g,m)}}else for(var f=h.length-1;f>=0;f--){var g=h[f];if(this.$highlightIndentGuideMarker.end&&g.row=w;)C=this.$renderToken(k,C,y,E.substring(0,w-g)),E=E.substring(w-g),g=w,k=this.$createLineElement(),h.appendChild(k),k.appendChild(this.dom.createTextNode(s.stringRepeat("\xA0",f.indent),this.element)),v++,C=0,w=f[v]||Number.MAX_VALUE;E.length!=0&&(g+=E.length,C=this.$renderToken(k,C,y,E))}}f[f.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(k,C,null,"",!0)},d.prototype.$renderSimpleLine=function(h,m){for(var f=0,g=0;gthis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(h,f,v,w);f=this.$renderToken(h,f,v,w)}}},d.prototype.$renderOverflowMessage=function(h,m,f,g,v){f&&this.$renderToken(h,m,f,g.slice(0,this.MAX_LINE_LENGTH-m));var w=this.dom.createElement("span");w.className="ace_inline_button ace_keyword ace_toggle_wrap",w.textContent=v?"":"",h.appendChild(w)},d.prototype.$renderLine=function(h,m,f){if(!f&&f!=!1&&(f=this.session.getFoldLine(m)),f)var g=this.$getFoldLineTokens(m,f);else var g=this.session.getTokens(m);var v=h;if(g.length){var w=this.session.getRowSplitData(m);if(w&&w.length){this.$renderWrappedLine(h,g,w);var v=h.lastChild}else{var v=h;this.$useLineGroups()&&(v=this.$createLineElement(),h.appendChild(v)),this.$renderSimpleLine(v,g)}}else this.$useLineGroups()&&(v=this.$createLineElement(),h.appendChild(v));if(this.showEOL&&v){f&&(m=f.end.row);var C=this.dom.createElement("span");C.className="ace_invisible ace_invisible_eol",C.textContent=m==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,v.appendChild(C)}},d.prototype.$getFoldLineTokens=function(h,m){var f=this.session,g=[];function v(C,k,x){for(var y=0,E=0;E+C[y].value.lengthx-k&&(T=T.substring(0,x-k)),g.push({type:C[y].type,value:T}),E=k+T.length,y+=1}for(;Ex?g.push({type:C[y].type,value:T.substring(0,x-E)}):g.push(C[y]),E+=T.length,y+=1}}var w=f.getTokens(h);return m.walk(function(C,k,x,y,E){C!=null?g.push({type:"fold",value:C}):(E&&(w=f.getTokens(k)),w.length&&v(w,y,x))},m.end.row,this.session.getLine(m.end.row).length),g},d.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},d}();u.prototype.EOF_CHAR="\xB6",u.prototype.EOL_CHAR_LF="\xAC",u.prototype.EOL_CHAR_CRLF="\xA4",u.prototype.EOL_CHAR=u.prototype.EOL_CHAR_LF,u.prototype.TAB_CHAR="\u2014",u.prototype.SPACE_CHAR="\xB7",u.prototype.$padding=0,u.prototype.MAX_LINE_LENGTH=1e4,u.prototype.showInvisibles=!1,u.prototype.showSpaces=!1,u.prototype.showTabs=!1,u.prototype.showEOL=!1,u.prototype.displayIndentGuides=!0,u.prototype.$highlightIndentGuides=!0,u.prototype.$tabStrings=[],u.prototype.destroy={},u.prototype.onChangeTabSize=u.prototype.$computeTabString,i.implement(u.prototype,o),t.Text=u});ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(n,t,e){"use strict";var i=n("../lib/dom"),r=function(){function s(a){this.element=i.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),i.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return s.prototype.$updateOpacity=function(a){for(var o=this.cursors,l=o.length;l--;)i.setStyle(o[l].style,"opacity",a?"":"0")},s.prototype.$startCssAnimation=function(){for(var a=this.cursors,o=a.length;o--;)a[o].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&i.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},s.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,i.removeCssClass(this.element,"ace_animate-blinking")},s.prototype.setPadding=function(a){this.$padding=a},s.prototype.setSession=function(a){this.session=a},s.prototype.setBlinking=function(a){a!=this.isBlinking&&(this.isBlinking=a,this.restartTimer())},s.prototype.setBlinkInterval=function(a){a!=this.blinkInterval&&(this.blinkInterval=a,this.restartTimer())},s.prototype.setSmoothBlinking=function(a){a!=this.smoothBlinking&&(this.smoothBlinking=a,i.setCssClass(this.element,"ace_smooth-blinking",a),this.$updateCursors(!0),this.restartTimer())},s.prototype.addCursor=function(){var a=i.createElement("div");return a.className="ace_cursor",this.element.appendChild(a),this.cursors.push(a),a},s.prototype.removeCursor=function(){if(this.cursors.length>1){var a=this.cursors.pop();return a.parentNode.removeChild(a),a}},s.prototype.hideCursor=function(){this.isVisible=!1,i.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},s.prototype.showCursor=function(){this.isVisible=!0,i.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},s.prototype.restartTimer=function(){var a=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,i.removeCssClass(this.element,"ace_smooth-blinking")),a(!0),!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&i.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),i.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var o=function(){this.timeoutId=setTimeout(function(){a(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){a(!0),o()},this.blinkInterval),o()}},s.prototype.getPixelPosition=function(a,o){if(!this.config||!this.session)return{left:0,top:0};a||(a=this.session.selection.getCursor());var l=this.session.documentToScreenPosition(a),c=this.$padding+(this.session.$bidiHandler.isBidiRow(l.row,a.row)?this.session.$bidiHandler.getPosLeft(l.column):l.column*this.config.characterWidth),u=(l.row-(o?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:c,top:u}},s.prototype.isCursorInView=function(a,o){return a.top>=0&&a.topa.height+a.offset||d.top<0)&&l>1)){var h=this.cursors[c++]||this.addCursor(),m=h.style;this.drawCursor?this.drawCursor(h,d,a,o[l],this.session):this.isCursorInView(d,a)?(i.setStyle(m,"display","block"),i.translate(h,d.left,d.top),i.setStyle(m,"width",Math.round(a.characterWidth)+"px"),i.setStyle(m,"height",a.lineHeight+"px")):i.setStyle(m,"display","none")}}for(;this.cursors.length>c;)this.removeCursor();var f=this.session.getOverwrite();this.$setOverwrite(f),this.$pixelPos=d,this.restartTimer()},s.prototype.$setOverwrite=function(a){a!=this.overwrite&&(this.overwrite=a,a?i.addCssClass(this.element,"ace_overwrite-cursors"):i.removeCssClass(this.element,"ace_overwrite-cursors"))},s.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},s}();r.prototype.$padding=0,r.prototype.drawCursor=null,t.Cursor=r});ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(n,t,e){"use strict";var i=this&&this.__extends||function(){var h=function(m,f){return h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(g,v){g.__proto__=v}||function(g,v){for(var w in v)Object.prototype.hasOwnProperty.call(v,w)&&(g[w]=v[w])},h(m,f)};return function(m,f){if(typeof f!="function"&&f!==null)throw new TypeError("Class extends value "+String(f)+" is not a constructor or null");h(m,f);function g(){this.constructor=m}m.prototype=f===null?Object.create(f):(g.prototype=f.prototype,new g)}}(),r=n("./lib/oop"),s=n("./lib/dom"),a=n("./lib/event"),o=n("./lib/event_emitter").EventEmitter,l=32768,c=function(){function h(m,f){this.element=s.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+f,this.inner=s.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent="\xA0",this.element.appendChild(this.inner),m.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addListener(this.element,"scroll",this.onScroll.bind(this)),a.addListener(this.element,"mousedown",a.preventDefault)}return h.prototype.setVisible=function(m){this.element.style.display=m?"":"none",this.isVisible=m,this.coeff=1},h}();r.implement(c.prototype,o);var u=function(h){i(m,h);function m(f,g){var v=h.call(this,f,"-v")||this;return v.scrollTop=0,v.scrollHeight=0,g.$scrollbarWidth=v.width=s.scrollbarWidth(f.ownerDocument),v.inner.style.width=v.element.style.width=(v.width||15)+5+"px",v.$minWidth=0,v}return m.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,this.coeff!=1){var f=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-f)/(this.coeff-f)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},m.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},m.prototype.setHeight=function(f){this.element.style.height=f+"px"},m.prototype.setScrollHeight=function(f){this.scrollHeight=f,f>l?(this.coeff=l/f,f=l):this.coeff!=1&&(this.coeff=1),this.inner.style.height=f+"px"},m.prototype.setScrollTop=function(f){this.scrollTop!=f&&(this.skipEvent=!0,this.scrollTop=f,this.element.scrollTop=f*this.coeff)},m}(c);u.prototype.setInnerHeight=u.prototype.setScrollHeight;var d=function(h){i(m,h);function m(f,g){var v=h.call(this,f,"-h")||this;return v.scrollLeft=0,v.height=g.$scrollbarWidth,v.inner.style.height=v.element.style.height=(v.height||15)+5+"px",v}return m.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},m.prototype.getHeight=function(){return this.isVisible?this.height:0},m.prototype.setWidth=function(f){this.element.style.width=f+"px"},m.prototype.setInnerWidth=function(f){this.inner.style.width=f+"px"},m.prototype.setScrollWidth=function(f){this.inner.style.width=f+"px"},m.prototype.setScrollLeft=function(f){this.scrollLeft!=f&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=f)},m}(c);t.ScrollBar=u,t.ScrollBarV=u,t.ScrollBarH=d,t.VScrollBar=u,t.HScrollBar=d});ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(n,t,e){"use strict";var i=this&&this.__extends||function(){var d=function(h,m){return d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,g){f.__proto__=g}||function(f,g){for(var v in g)Object.prototype.hasOwnProperty.call(g,v)&&(f[v]=g[v])},d(h,m)};return function(h,m){if(typeof m!="function"&&m!==null)throw new TypeError("Class extends value "+String(m)+" is not a constructor or null");d(h,m);function f(){this.constructor=h}h.prototype=m===null?Object.create(m):(f.prototype=m.prototype,new f)}}(),r=n("./lib/oop"),s=n("./lib/dom"),a=n("./lib/event"),o=n("./lib/event_emitter").EventEmitter;s.importCssString(`.ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{ - position: absolute; - background: rgba(128, 128, 128, 0.6); - -moz-box-sizing: border-box; - box-sizing: border-box; - border: 1px solid #bbb; - border-radius: 2px; - z-index: 8; -} -.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h { - position: absolute; - z-index: 6; - background: none; - overflow: hidden!important; -} -.ace_editor>.ace_sb-v { - z-index: 6; - right: 0; - top: 0; - width: 12px; -} -.ace_editor>.ace_sb-v div { - z-index: 8; - right: 0; - width: 100%; -} -.ace_editor>.ace_sb-h { - bottom: 0; - left: 0; - height: 12px; -} -.ace_editor>.ace_sb-h div { - bottom: 0; - height: 100%; -} -.ace_editor>.ace_sb_grabbed { - z-index: 8; - background: #000; -}`,"ace_scrollbar.css",!1);var l=function(){function d(h,m){this.element=s.createElement("div"),this.element.className="ace_sb"+m,this.inner=s.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,h.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return d.prototype.setVisible=function(h){this.element.style.display=h?"":"none",this.isVisible=h,this.coeff=1},d}();r.implement(l.prototype,o);var c=function(d){i(h,d);function h(m,f){var g=d.call(this,m,"-v")||this;return g.scrollTop=0,g.scrollHeight=0,g.parent=m,g.width=g.VScrollWidth,g.renderer=f,g.inner.style.width=g.element.style.width=(g.width||15)+"px",g.$minWidth=0,g}return h.prototype.onMouseDown=function(m,f){if(m==="mousedown"&&!(a.getButton(f)!==0||f.detail===2)){if(f.target===this.inner){var g=this,v=f.clientY,w=function(M){v=M.clientY},C=function(){clearInterval(E)},k=f.clientY,x=this.thumbTop,y=function(){if(v!==void 0){var M=g.scrollTopFromThumbTop(x+v-k);M!==g.scrollTop&&g._emit("scroll",{data:M})}};a.capture(this.inner,w,C);var E=setInterval(y,20);return a.preventDefault(f)}var T=f.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(T)}),a.preventDefault(f)}},h.prototype.getHeight=function(){return this.height},h.prototype.scrollTopFromThumbTop=function(m){var f=m*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return f=f>>0,f<0?f=0:f>this.pageHeight-this.viewHeight&&(f=this.pageHeight-this.viewHeight),f},h.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},h.prototype.setHeight=function(m){this.height=Math.max(0,m),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},h.prototype.setScrollHeight=function(m,f){this.pageHeight===m&&!f||(this.pageHeight=m,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},h.prototype.setScrollTop=function(m){this.scrollTop=m,m<0&&(m=0),this.thumbTop=m*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},h}(l);c.prototype.setInnerHeight=c.prototype.setScrollHeight;var u=function(d){i(h,d);function h(m,f){var g=d.call(this,m,"-h")||this;return g.scrollLeft=0,g.scrollWidth=0,g.height=g.HScrollHeight,g.inner.style.height=g.element.style.height=(g.height||12)+"px",g.renderer=f,g}return h.prototype.onMouseDown=function(m,f){if(m==="mousedown"&&!(a.getButton(f)!==0||f.detail===2)){if(f.target===this.inner){var g=this,v=f.clientX,w=function(M){v=M.clientX},C=function(){clearInterval(E)},k=f.clientX,x=this.thumbLeft,y=function(){if(v!==void 0){var M=g.scrollLeftFromThumbLeft(x+v-k);M!==g.scrollLeft&&g._emit("scroll",{data:M})}};a.capture(this.inner,w,C);var E=setInterval(y,20);return a.preventDefault(f)}var T=f.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(T)}),a.preventDefault(f)}},h.prototype.getHeight=function(){return this.isVisible?this.height:0},h.prototype.scrollLeftFromThumbLeft=function(m){var f=m*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return f=f>>0,f<0?f=0:f>this.pageWidth-this.viewWidth&&(f=this.pageWidth-this.viewWidth),f},h.prototype.setWidth=function(m){this.width=Math.max(0,m),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},h.prototype.setScrollWidth=function(m,f){this.pageWidth===m&&!f||(this.pageWidth=m,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},h.prototype.setScrollLeft=function(m){this.scrollLeft=m,m<0&&(m=0),this.thumbLeft=m*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},h}(l);u.prototype.setInnerWidth=u.prototype.setScrollWidth,t.ScrollBar=c,t.ScrollBarV=c,t.ScrollBarH=u,t.VScrollBar=c,t.HScrollBar=u});ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(n,t,e){"use strict";var i=n("./lib/event"),r=function(){function s(a,o){this.onRender=a,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=o||window;var l=this;this._flush=function(c){l.pending=!1;var u=l.changes;if(u&&(i.blockIdle(100),l.changes=0,l.onRender(u)),l.changes){if(l.$recursionLimit--<0)return;l.schedule()}else l.$recursionLimit=2}}return s.prototype.schedule=function(a){this.changes=this.changes|a,this.changes&&!this.pending&&(i.nextFrame(this._flush),this.pending=!0)},s.prototype.clear=function(a){var o=this.changes;return this.changes=0,o},s}();t.RenderLoop=r});ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(n,t,e){var i=n("../lib/oop"),r=n("../lib/dom"),s=n("../lib/lang"),a=n("../lib/event"),o=n("../lib/useragent"),l=n("../lib/event_emitter").EventEmitter,c=512,u=typeof ResizeObserver=="function",d=200,h=function(){function m(f){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),f.appendChild(this.el),this.$measureNode.textContent=s.stringRepeat("X",c),this.$characterSize={width:0,height:0},u?this.$addObserver():this.checkForSizeChanges()}return m.prototype.$setMeasureNodeStyles=function(f,g){f.width=f.height="auto",f.left=f.top="0px",f.visibility="hidden",f.position="absolute",f.whiteSpace="pre",o.isIE<8?f["font-family"]="inherit":f.font="inherit",f.overflow=g?"hidden":"visible"},m.prototype.checkForSizeChanges=function(f){if(f===void 0&&(f=this.$measureSizes()),f&&(this.$characterSize.width!==f.width||this.$characterSize.height!==f.height)){this.$measureNode.style.fontWeight="bold";var g=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=f,this.charSizes=Object.create(null),this.allowBoldFonts=g&&g.width===f.width&&g.height===f.height,this._emit("changeCharacterSize",{data:f})}},m.prototype.$addObserver=function(){var f=this;this.$observer=new window.ResizeObserver(function(g){f.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},m.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var f=this;return this.$pollSizeChangesTimer=a.onIdle(function g(){f.checkForSizeChanges(),a.onIdle(g,500)},500)},m.prototype.setPolling=function(f){f?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},m.prototype.$measureSizes=function(f){var g={height:(f||this.$measureNode).clientHeight,width:(f||this.$measureNode).clientWidth/c};return g.width===0||g.height===0?null:g},m.prototype.$measureCharWidth=function(f){this.$main.textContent=s.stringRepeat(f,c);var g=this.$main.getBoundingClientRect();return g.width/c},m.prototype.getCharacterWidth=function(f){var g=this.charSizes[f];return g===void 0&&(g=this.charSizes[f]=this.$measureCharWidth(f)/this.$characterSize.width),g},m.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},m.prototype.$getZoom=function(f){return!f||!f.parentElement?1:(Number(window.getComputedStyle(f).zoom)||1)*this.$getZoom(f.parentElement)},m.prototype.$initTransformMeasureNodes=function(){var f=function(g,v){return["div",{style:"position: absolute;top:"+g+"px;left:"+v+"px;"}]};this.els=r.buildDom([f(0,0),f(d,0),f(0,d),f(d,d)],this.el)},m.prototype.transformCoordinates=function(f,g){if(f){var v=this.$getZoom(this.el);f=x(1/v,f)}function w(U,P,W){var V=U[1]*P[0]-U[0]*P[1];return[(-P[1]*W[0]+P[0]*W[1])/V,(+U[1]*W[0]-U[0]*W[1])/V]}function C(U,P){return[U[0]-P[0],U[1]-P[1]]}function k(U,P){return[U[0]+P[0],U[1]+P[1]]}function x(U,P){return[U*P[0],U*P[1]]}this.els||this.$initTransformMeasureNodes();function y(U){var P=U.getBoundingClientRect();return[P.left,P.top]}var E=y(this.els[0]),T=y(this.els[1]),M=y(this.els[2]),D=y(this.els[3]),_=w(C(D,T),C(D,M),C(k(T,M),k(D,E))),p=x(1+_[0],C(T,E)),b=x(1+_[1],C(M,E));if(g){var S=g,I=_[0]*S[0]/d+_[1]*S[1]/d+1,A=k(x(S[0],p),x(S[1],b));return k(x(1/I/d,A),E)}var R=C(f,E),O=w(C(p,x(_[0],R)),C(b,x(_[1],R)),R);return x(d,O)},m}();h.prototype.$characterSize={width:0,height:0},i.implement(h.prototype,l),t.FontMetrics=h});ace.define("ace/css/editor-css",["require","exports","module"],function(n,t,e){e.exports=` -.ace_br1 {border-top-left-radius : 3px;} -.ace_br2 {border-top-right-radius : 3px;} -.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;} -.ace_br4 {border-bottom-right-radius: 3px;} -.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;} -.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;} -.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;} -.ace_br8 {border-bottom-left-radius : 3px;} -.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;} -.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;} -.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;} -.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} -.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} -.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} -.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} - - -.ace_editor { - position: relative; - overflow: hidden; - padding: 0; - font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'Source Code Pro', 'source-code-pro', monospace; - direction: ltr; - text-align: left; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - forced-color-adjust: none; -} - -.ace_scroller { - position: absolute; - overflow: hidden; - top: 0; - bottom: 0; - background-color: inherit; - -ms-user-select: none; - -moz-user-select: none; - -webkit-user-select: none; - user-select: none; - cursor: text; -} - -.ace_content { - position: absolute; - box-sizing: border-box; - min-width: 100%; - contain: style size layout; - font-variant-ligatures: no-common-ligatures; -} - -.ace_keyboard-focus:focus { - box-shadow: inset 0 0 0 2px #5E9ED6; - outline: none; -} - -.ace_dragging .ace_scroller:before{ - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - content: ''; - background: rgba(250, 250, 250, 0.01); - z-index: 1000; -} -.ace_dragging.ace_dark .ace_scroller:before{ - background: rgba(0, 0, 0, 0.01); -} - -.ace_gutter { - position: absolute; - overflow : hidden; - width: auto; - top: 0; - bottom: 0; - left: 0; - cursor: default; - z-index: 4; - -ms-user-select: none; - -moz-user-select: none; - -webkit-user-select: none; - user-select: none; - contain: style size layout; -} - -.ace_gutter-active-line { - position: absolute; - left: 0; - right: 0; -} - -.ace_scroller.ace_scroll-left:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset; - pointer-events: none; -} - -.ace_gutter-cell, .ace_gutter-cell_svg-icons { - position: absolute; - top: 0; - left: 0; - right: 0; - padding-left: 19px; - padding-right: 6px; - background-repeat: no-repeat; -} - -.ace_gutter-cell_svg-icons .ace_gutter_annotation { - margin-left: -14px; - float: left; -} - -.ace_gutter-cell .ace_gutter_annotation { - margin-left: -19px; - float: left; -} - -.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold, .ace_gutter-cell.ace_security, .ace_icon.ace_security, .ace_icon.ace_security_fold { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg=="); - background-repeat: no-repeat; - background-position: 2px center; -} - -.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg=="); - background-repeat: no-repeat; - background-position: 2px center; -} - -.ace_gutter-cell.ace_info, .ace_icon.ace_info, .ace_gutter-cell.ace_hint, .ace_icon.ace_hint { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII="); - background-repeat: no-repeat; - background-position: 2px center; -} - -.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info, .ace_dark .ace_gutter-cell.ace_hint, .ace_dark .ace_icon.ace_hint { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC"); -} - -.ace_icon_svg.ace_error { - -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+"); - background-color: crimson; -} -.ace_icon_svg.ace_security { - -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0iZGFya29yYW5nZSIgZmlsbD0ibm9uZSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgogICAgICAgIDxwYXRoIGNsYXNzPSJzdHJva2UtbGluZWpvaW4tcm91bmQiIGQ9Ik04IDE0LjgzMDdDOCAxNC44MzA3IDIgMTIuOTA0NyAyIDguMDg5OTJWMy4yNjU0OEM1LjMxIDMuMjY1NDggNy45ODk5OSAxLjM0OTE4IDcuOTg5OTkgMS4zNDkxOEM3Ljk4OTk5IDEuMzQ5MTggMTAuNjkgMy4yNjU0OCAxNCAzLjI2NTQ4VjguMDg5OTJDMTQgMTIuOTA0NyA4IDE0LjgzMDcgOCAxNC44MzA3WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yIDguMDg5OTJWMy4yNjU0OEM1LjMxIDMuMjY1NDggNy45ODk5OSAxLjM0OTE4IDcuOTg5OTkgMS4zNDkxOCIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMy45OSA4LjA4OTkyVjMuMjY1NDhDMTAuNjggMy4yNjU0OCA4IDEuMzQ5MTggOCAxLjM0OTE4Ii8+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTggNFY5Ii8+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTggMTBWMTIiLz4KICAgIDwvZz4KPC9zdmc+"); - background-color: crimson; -} -.ace_icon_svg.ace_warning { - -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg=="); - background-color: darkorange; -} -.ace_icon_svg.ace_info { - -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg=="); - background-color: royalblue; -} -.ace_icon_svg.ace_hint { - -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0ic2lsdmVyIiBmaWxsPSJub25lIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTYgMTRIMTAiLz4KICAgICAgICA8cGF0aCBkPSJNOCAxMUg5QzkgOS40NzAwMiAxMiA4LjU0MDAyIDEyIDUuNzYwMDJDMTIuMDIgNC40MDAwMiAxMS4zOSAzLjM2MDAyIDEwLjQzIDIuNjcwMDJDOSAxLjY0MDAyIDcuMDAwMDEgMS42NDAwMiA1LjU3MDAxIDIuNjcwMDJDNC42MTAwMSAzLjM2MDAyIDMuOTggNC40MDAwMiA0IDUuNzYwMDJDNCA4LjU0MDAyIDcuMDAwMDEgOS40NzAwMiA3LjAwMDAxIDExSDhaIi8+CiAgICA8L2c+Cjwvc3ZnPg=="); - background-color: silver; -} - -.ace_icon_svg.ace_error_fold { - -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4="); - background-color: crimson; -} -.ace_icon_svg.ace_security_fold { - -webkit-mask-image: url("data:image/svg+xml;base64,CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTcgMTQiIGZpbGw9Im5vbmUiPgogICAgPHBhdGggZD0iTTEwLjAwMDEgMTMuNjk5MkMxMC4wMDAxIDEzLjY5OTIgMTEuOTI0MSAxMy40NzYzIDEzIDEyLjY5OTJDMTQuNDEzOSAxMS42NzgxIDE2IDEwLjUgMTYuMTI1MSA2LjgxMTI2VjIuNTg5ODdDMTYuMTI1MSAyLjU0NzY4IDE2LjEyMjEgMi41MDYxOSAxNi4xMTY0IDIuNDY1NTlWMS43MTQ4NUgxNS4yNDE0TDE1LjIzMDcgMS43MTQ4NEwxNC42MjUxIDEuNjk5MjJWNi44MTEyM0MxNC42MjUxIDguNTEwNjEgMTQuNjI1MSA5LjQ2NDYxIDEyLjc4MjQgMTEuNzIxQzEyLjE1ODYgMTIuNDg0OCAxMC4wMDAxIDEzLjY5OTIgMTAuMDAwMSAxMy42OTkyWiIgZmlsbD0iY3JpbXNvbiIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTcuMzM2MDkgMC4zNjc0NzVDNy4wMzIxNCAwLjE1MjY1MiA2LjYyNTQ4IDAuMTUzNjE0IDYuMzIyNTMgMC4zNjk5OTdMNi4zMDg2OSAwLjM3OTU1NEM2LjI5NTUzIDAuMzg4NTg4IDYuMjczODggMC40MDMyNjYgNi4yNDQxNyAwLjQyMjc4OUM2LjE4NDcxIDAuNDYxODYgNi4wOTMyMSAwLjUyMDE3MSA1Ljk3MzEzIDAuNTkxMzczQzUuNzMyNTEgMC43MzQwNTkgNS4zNzk5IDAuOTI2ODY0IDQuOTQyNzkgMS4xMjAwOUM0LjA2MTQ0IDEuNTA5NyAyLjg3NTQxIDEuODgzNzcgMS41ODk4NCAxLjg4Mzc3SDAuNzE0ODQ0VjIuNzU4NzdWNi45ODAxNUMwLjcxNDg0NCA5LjQ5Mzc0IDIuMjg4NjYgMTEuMTk3MyAzLjcwMjU0IDEyLjIxODVDNC40MTg0NSAxMi43MzU1IDUuMTI4NzQgMTMuMTA1MyA1LjY1NzMzIDEzLjM0NTdDNS45MjI4NCAxMy40NjY0IDYuMTQ1NjYgMTMuNTU1OSA2LjMwNDY1IDEzLjYxNjFDNi4zODQyMyAxMy42NDYyIDYuNDQ4MDUgMTMuNjY5IDYuNDkzNDkgMTMuNjg0OEM2LjUxNjIyIDEzLjY5MjcgNi41MzQzOCAxMy42OTg5IDYuNTQ3NjQgMTMuNzAzM0w2LjU2MzgyIDEzLjcwODdMNi41NjkwOCAxMy43MTA0TDYuNTcwOTkgMTMuNzExTDYuODM5ODQgMTMuNzUzM0w2LjU3MjQyIDEzLjcxMTVDNi43NDYzMyAxMy43NjczIDYuOTMzMzUgMTMuNzY3MyA3LjEwNzI3IDEzLjcxMTVMNy4xMDg3IDEzLjcxMUw3LjExMDYxIDEzLjcxMDRMNy4xMTU4NyAxMy43MDg3TDcuMTMyMDUgMTMuNzAzM0M3LjE0NTMxIDEzLjY5ODkgNy4xNjM0NiAxMy42OTI3IDcuMTg2MTkgMTMuNjg0OEM3LjIzMTY0IDEzLjY2OSA3LjI5NTQ2IDEzLjY0NjIgNy4zNzUwMyAxMy42MTYxQzcuNTM0MDMgMTMuNTU1OSA3Ljc1Njg1IDEzLjQ2NjQgOC4wMjIzNiAxMy4zNDU3QzguNTUwOTUgMTMuMTA1MyA5LjI2MTIzIDEyLjczNTUgOS45NzcxNSAxMi4yMTg1QzExLjM5MSAxMS4xOTczIDEyLjk2NDggOS40OTM3NyAxMi45NjQ4IDYuOTgwMThWMi43NTg4QzEyLjk2NDggMi43MTY2IDEyLjk2MTkgMi42NzUxMSAxMi45NTYxIDIuNjM0NTFWMS44ODM3N0gxMi4wODExQzEyLjA3NzUgMS44ODM3NyAxMi4wNzQgMS44ODM3NyAxMi4wNzA0IDEuODgzNzdDMTAuNzk3OSAxLjg4MDA0IDkuNjE5NjIgMS41MTEwMiA4LjczODk0IDEuMTI0ODZDOC43MzUzNCAxLjEyMzI3IDguNzMxNzQgMS4xMjE2OCA4LjcyODE0IDEuMTIwMDlDOC4yOTEwMyAwLjkyNjg2NCA3LjkzODQyIDAuNzM0MDU5IDcuNjk3NzkgMC41OTEzNzNDNy41Nzc3MiAwLjUyMDE3MSA3LjQ4NjIyIDAuNDYxODYgNy40MjY3NiAwLjQyMjc4OUM3LjM5NzA1IDAuNDAzMjY2IDcuMzc1MzkgMC4zODg1ODggNy4zNjIyNCAwLjM3OTU1NEw3LjM0ODk2IDAuMzcwMzVDNy4zNDg5NiAwLjM3MDM1IDcuMzQ4NDcgMC4zNzAwMiA3LjM0NTYzIDAuMzc0MDU0TDcuMzM3NzkgMC4zNjg2NTlMNy4zMzYwOSAwLjM2NzQ3NVpNOC4wMzQ3MSAyLjcyNjkxQzguODYwNCAzLjA5MDYzIDkuOTYwNjYgMy40NjMwOSAxMS4yMDYxIDMuNTg5MDdWNi45ODAxNUgxMS4yMTQ4QzExLjIxNDggOC42Nzk1MyAxMC4xNjM3IDkuOTI1MDcgOC45NTI1NCAxMC43OTk4QzguMzU1OTUgMTEuMjMwNiA3Ljc1Mzc0IDExLjU0NTQgNy4yOTc5NiAxMS43NTI3QzcuMTE2NzEgMTEuODM1MSA2Ljk2MDYyIDExLjg5OTYgNi44Mzk4NCAxMS45NDY5QzYuNzE5MDYgMTEuODk5NiA2LjU2Mjk3IDExLjgzNTEgNi4zODE3MyAxMS43NTI3QzUuOTI1OTUgMTEuNTQ1NCA1LjMyMzczIDExLjIzMDYgNC43MjcxNSAxMC43OTk4QzMuNTE2MDMgOS45MjUwNyAyLjQ2NDg0IDguNjc5NTUgMi40NjQ4NCA2Ljk4MDE4VjMuNTg5MDlDMy43MTczOCAzLjQ2MjM5IDQuODIzMDggMy4wODYzOSA1LjY1MDMzIDIuNzIwNzFDNi4xNDIyOCAyLjUwMzI0IDYuNTQ0ODUgMi4yODUzNyA2LjgzMjU0IDIuMTE2MjRDNy4xMjE4MSAyLjI4NTM1IDcuNTI3IDIuNTAzNTIgOC4wMjE5NiAyLjcyMTMxQzguMDI2MiAyLjcyMzE3IDguMDMwNDUgMi43MjUwNCA4LjAzNDcxIDIuNzI2OTFaTTUuOTY0ODQgMy40MDE0N1Y3Ljc3NjQ3SDcuNzE0ODRWMy40MDE0N0g1Ljk2NDg0Wk01Ljk2NDg0IDEwLjQwMTVWOC42NTE0N0g3LjcxNDg0VjEwLjQwMTVINS45NjQ4NFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4="); - background-color: crimson; -} -.ace_icon_svg.ace_warning_fold { - -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4="); - background-color: darkorange; -} - -.ace_scrollbar { - contain: strict; - position: absolute; - right: 0; - bottom: 0; - z-index: 6; -} - -.ace_scrollbar-inner { - position: absolute; - cursor: text; - left: 0; - top: 0; -} - -.ace_scrollbar-v{ - overflow-x: hidden; - overflow-y: scroll; - top: 0; -} - -.ace_scrollbar-h { - overflow-x: scroll; - overflow-y: hidden; - left: 0; -} - -.ace_print-margin { - position: absolute; - height: 100%; -} - -.ace_text-input { - position: absolute; - z-index: 0; - width: 0.5em; - height: 1em; - opacity: 0; - background: transparent; - -moz-appearance: none; - appearance: none; - border: none; - resize: none; - outline: none; - overflow: hidden; - font: inherit; - padding: 0 1px; - margin: 0 -1px; - contain: strict; - -ms-user-select: text; - -moz-user-select: text; - -webkit-user-select: text; - user-select: text; - /*with \`pre-line\` chrome inserts   instead of space*/ - white-space: pre!important; -} -.ace_text-input.ace_composition { - background: transparent; - color: inherit; - z-index: 1000; - opacity: 1; -} -.ace_composition_placeholder { color: transparent } -.ace_composition_marker { - border-bottom: 1px solid; - position: absolute; - border-radius: 0; - margin-top: 1px; -} - -[ace_nocontext=true] { - transform: none!important; - filter: none!important; - clip-path: none!important; - mask : none!important; - contain: none!important; - perspective: none!important; - mix-blend-mode: initial!important; - z-index: auto; -} - -.ace_layer { - z-index: 1; - position: absolute; - overflow: hidden; - /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/ - word-wrap: normal; - white-space: pre; - height: 100%; - width: 100%; - box-sizing: border-box; - /* setting pointer-events: auto; on node under the mouse, which changes - during scroll, will break mouse wheel scrolling in Safari */ - pointer-events: none; -} - -.ace_gutter-layer { - position: relative; - width: auto; - text-align: right; - pointer-events: auto; - height: 1000000px; - contain: style size layout; -} - -.ace_text-layer { - font: inherit !important; - position: absolute; - height: 1000000px; - width: 1000000px; - contain: style size layout; -} - -.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group { - contain: style size layout; - position: absolute; - top: 0; - left: 0; - right: 0; -} - -.ace_hidpi .ace_text-layer, -.ace_hidpi .ace_gutter-layer, -.ace_hidpi .ace_content, -.ace_hidpi .ace_gutter { - contain: strict; -} -.ace_hidpi .ace_text-layer > .ace_line, -.ace_hidpi .ace_text-layer > .ace_line_group { - contain: strict; -} - -.ace_cjk { - display: inline-block; - text-align: center; -} - -.ace_cursor-layer { - z-index: 4; -} - -.ace_cursor { - z-index: 4; - position: absolute; - box-sizing: border-box; - border-left: 2px solid; - /* workaround for smooth cursor repaintng whole screen in chrome */ - transform: translatez(0); -} - -.ace_multiselect .ace_cursor { - border-left-width: 1px; -} - -.ace_slim-cursors .ace_cursor { - border-left-width: 1px; -} - -.ace_overwrite-cursors .ace_cursor { - border-left-width: 0; - border-bottom: 1px solid; -} - -.ace_hidden-cursors .ace_cursor { - opacity: 0.2; -} - -.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor { - opacity: 0; -} - -.ace_smooth-blinking .ace_cursor { - transition: opacity 0.18s; -} - -.ace_animate-blinking .ace_cursor { - animation-duration: 1000ms; - animation-timing-function: step-end; - animation-name: blink-ace-animate; - animation-iteration-count: infinite; -} - -.ace_animate-blinking.ace_smooth-blinking .ace_cursor { - animation-duration: 1000ms; - animation-timing-function: ease-in-out; - animation-name: blink-ace-animate-smooth; -} - -@keyframes blink-ace-animate { - from, to { opacity: 1; } - 60% { opacity: 0; } -} - -@keyframes blink-ace-animate-smooth { - from, to { opacity: 1; } - 45% { opacity: 1; } - 60% { opacity: 0; } - 85% { opacity: 0; } -} - -.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack { - position: absolute; - z-index: 3; -} - -.ace_marker-layer .ace_selection { - position: absolute; - z-index: 5; -} - -.ace_marker-layer .ace_bracket { - position: absolute; - z-index: 6; -} - -.ace_marker-layer .ace_error_bracket { - position: absolute; - border-bottom: 1px solid #DE5555; - border-radius: 0; -} - -.ace_marker-layer .ace_active-line { - position: absolute; - z-index: 2; -} - -.ace_marker-layer .ace_selected-word { - position: absolute; - z-index: 4; - box-sizing: border-box; -} - -.ace_line .ace_fold { - box-sizing: border-box; - - display: inline-block; - height: 11px; - margin-top: -2px; - vertical-align: middle; - - background-image: - url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="), - url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII="); - background-repeat: no-repeat, repeat-x; - background-position: center center, top left; - color: transparent; - - border: 1px solid black; - border-radius: 2px; - - cursor: pointer; - pointer-events: auto; -} - -.ace_dark .ace_fold { -} - -.ace_fold:hover{ - background-image: - url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="), - url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC"); -} - -.ace_tooltip { - background-color: #f5f5f5; - border: 1px solid gray; - border-radius: 1px; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); - color: black; - max-width: 100%; - padding: 3px 4px; - position: fixed; - z-index: 999999; - box-sizing: border-box; - cursor: default; - white-space: pre-wrap; - word-wrap: break-word; - line-height: normal; - font-style: normal; - font-weight: normal; - letter-spacing: normal; - pointer-events: none; - overflow: auto; - max-width: min(60em, 66vw); - overscroll-behavior: contain; -} -.ace_tooltip pre { - white-space: pre-wrap; -} - -.ace_tooltip.ace_dark { - background-color: #636363; - color: #fff; -} - -.ace_tooltip:focus { - outline: 1px solid #5E9ED6; -} - -.ace_icon { - display: inline-block; - width: 18px; - vertical-align: top; -} - -.ace_icon_svg { - display: inline-block; - width: 12px; - vertical-align: top; - -webkit-mask-repeat: no-repeat; - -webkit-mask-size: 12px; - -webkit-mask-position: center; -} - -.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons { - padding-right: 13px; -} - -.ace_fold-widget { - box-sizing: border-box; - - margin: 0 -12px 0 1px; - display: none; - width: 11px; - vertical-align: top; - - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg=="); - background-repeat: no-repeat; - background-position: center; - - border-radius: 3px; - - border: 1px solid transparent; - cursor: pointer; -} - -.ace_folding-enabled .ace_fold-widget { - display: inline-block; -} - -.ace_fold-widget.ace_end { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg=="); -} - -.ace_fold-widget.ace_closed { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA=="); -} - -.ace_fold-widget:hover { - border: 1px solid rgba(0, 0, 0, 0.3); - background-color: rgba(255, 255, 255, 0.2); - box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7); -} - -.ace_fold-widget:active { - border: 1px solid rgba(0, 0, 0, 0.4); - background-color: rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8); -} -/** - * Dark version for fold widgets - */ -.ace_dark .ace_fold-widget { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC"); -} -.ace_dark .ace_fold-widget.ace_end { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg=="); -} -.ace_dark .ace_fold-widget.ace_closed { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg=="); -} -.ace_dark .ace_fold-widget:hover { - box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); - background-color: rgba(255, 255, 255, 0.1); -} -.ace_dark .ace_fold-widget:active { - box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); -} - -.ace_inline_button { - border: 1px solid lightgray; - display: inline-block; - margin: -1px 8px; - padding: 0 5px; - pointer-events: auto; - cursor: pointer; -} -.ace_inline_button:hover { - border-color: gray; - background: rgba(200,200,200,0.2); - display: inline-block; - pointer-events: auto; -} - -.ace_fold-widget.ace_invalid { - background-color: #FFB4B4; - border-color: #DE5555; -} - -.ace_fade-fold-widgets .ace_fold-widget { - transition: opacity 0.4s ease 0.05s; - opacity: 0; -} - -.ace_fade-fold-widgets:hover .ace_fold-widget { - transition: opacity 0.05s ease 0.05s; - opacity:1; -} - -.ace_underline { - text-decoration: underline; -} - -.ace_bold { - font-weight: bold; -} - -.ace_nobold .ace_bold { - font-weight: normal; -} - -.ace_italic { - font-style: italic; -} - - -.ace_error-marker { - background-color: rgba(255, 0, 0,0.2); - position: absolute; - z-index: 9; -} - -.ace_highlight-marker { - background-color: rgba(255, 255, 0,0.2); - position: absolute; - z-index: 8; -} - -.ace_mobile-menu { - position: absolute; - line-height: 1.5; - border-radius: 4px; - -ms-user-select: none; - -moz-user-select: none; - -webkit-user-select: none; - user-select: none; - background: white; - box-shadow: 1px 3px 2px grey; - border: 1px solid #dcdcdc; - color: black; -} -.ace_dark > .ace_mobile-menu { - background: #333; - color: #ccc; - box-shadow: 1px 3px 2px grey; - border: 1px solid #444; - -} -.ace_mobile-button { - padding: 2px; - cursor: pointer; - overflow: hidden; -} -.ace_mobile-button:hover { - background-color: #eee; - opacity:1; -} -.ace_mobile-button:active { - background-color: #ddd; -} - -.ace_placeholder { - position: relative; - font-family: arial; - transform: scale(0.9); - transform-origin: left; - white-space: pre; - opacity: 0.7; - margin: 0 10px; - z-index: 1; -} - -.ace_ghost_text { - opacity: 0.5; - font-style: italic; -} - -.ace_ghost_text_container > div { - white-space: pre; -} - -.ghost_text_line_wrapped::after { - content: "\u21A9"; - position: absolute; -} - -.ace_lineWidgetContainer.ace_ghost_text { - margin: 0px 4px -} - -.ace_screenreader-only { - position:absolute; - left:-10000px; - top:auto; - width:1px; - height:1px; - overflow:hidden; -} - -.ace_hidden_token { - display: none; -}`});ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(n,t,e){"use strict";var i=n("../lib/dom"),r=n("../lib/oop"),s=n("../lib/event_emitter").EventEmitter,a=function(){function o(l,c){this.canvas=i.createElement("canvas"),this.renderer=c,this.pixelRatio=1,this.maxHeight=c.layerConfig.maxHeight,this.lineHeight=c.layerConfig.lineHeight,this.canvasHeight=l.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=l.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},l.element.appendChild(this.canvas)}return o.prototype.$updateDecorators=function(l){var c=this.renderer.theme.isDark===!0?this.colors.dark:this.colors.light;if(l){this.maxHeight=l.maxHeight,this.lineHeight=l.lineHeight,this.canvasHeight=l.height;var u=(l.lastRow+1)*this.lineHeight;u_.priority?1:0}var m=this.renderer.session.$annotations;if(d.clearRect(0,0,this.canvas.width,this.canvas.height),m){var f={info:1,warning:2,error:3};m.forEach(function(D){D.priority=f[D.type]||null}),m=m.sort(h);for(var g=this.renderer.session.$foldData,v=0;vthis.canvasHeight&&(T=this.canvasHeight-this.halfMinDecorationHeight),x=Math.round(T-this.halfMinDecorationHeight),y=Math.round(T+this.halfMinDecorationHeight)}d.fillStyle=c[m[v].type]||null,d.fillRect(0,k,this.canvasWidth,y-x)}}var M=this.renderer.session.selection.getCursor();if(M){var C=this.compensateFoldRows(M.row,g),k=Math.round((M.row-C)*this.lineHeight*this.heightRatio);d.fillStyle="rgba(0, 0, 0, 0.5)",d.fillRect(0,k,this.canvasWidth,2)}},o.prototype.compensateFoldRows=function(l,c){var u=0;if(c&&c.length>0)for(var d=0;dc[d].start.row&&l=c[d].end.row&&(u+=c[d].end.row-c[d].start.row);return u},o}();r.implement(a.prototype,s),t.Decorator=a});ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor-css","ace/layer/decorators","ace/lib/useragent","ace/layer/text_util"],function(n,t,e){"use strict";var i=n("./lib/oop"),r=n("./lib/dom"),s=n("./lib/lang"),a=n("./config"),o=n("./layer/gutter").Gutter,l=n("./layer/marker").Marker,c=n("./layer/text").Text,u=n("./layer/cursor").Cursor,d=n("./scrollbar").HScrollBar,h=n("./scrollbar").VScrollBar,m=n("./scrollbar_custom").HScrollBar,f=n("./scrollbar_custom").VScrollBar,g=n("./renderloop").RenderLoop,v=n("./layer/font_metrics").FontMetrics,w=n("./lib/event_emitter").EventEmitter,C=n("./css/editor-css"),k=n("./layer/decorators").Decorator,x=n("./lib/useragent"),y=n("./layer/text_util").isTextToken;r.importCssString(C,"ace_editor.css",!1);var E=function(){function T(M,D){var _=this;this.container=M||r.createElement("div"),r.addCssClass(this.container,"ace_editor"),r.HI_DPI&&r.addCssClass(this.container,"ace_hidpi"),this.setTheme(D),a.get("useStrictCSP")==null&&a.set("useStrictCSP",!1),this.$gutter=r.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden","true"),this.scroller=r.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=r.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new o(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var p=this.$textLayer=new c(this.content);this.canvas=p.element,this.$markerFront=new l(this.content),this.$cursorLayer=new u(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new d(this.container,this),this.scrollBarV.on("scroll",function(b){_.$scrollAnimation||_.session.setScrollTop(b.data-_.scrollMargin.top)}),this.scrollBarH.on("scroll",function(b){_.$scrollAnimation||_.session.setScrollLeft(b.data-_.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new v(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",function(b){_.updateCharacterSize(),_.onResize(!0,_.gutterWidth,_.$size.width,_.$size.height),_._signal("changeCharacterSize",b)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!x.isIOS,this.$loop=new g(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),this.$addResizeObserver(),a.resetOptions(this),a._signal("renderer",this)}return T.prototype.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),r.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},T.prototype.setSession=function(M){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=M,M&&this.scrollMargin.top&&M.getScrollTop()<=0&&M.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(M),this.$markerBack.setSession(M),this.$markerFront.setSession(M),this.$gutterLayer.setSession(M),this.$textLayer.setSession(M),M&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},T.prototype.updateLines=function(M,D,_){if(D===void 0&&(D=1/0),this.$changedLines?(this.$changedLines.firstRow>M&&(this.$changedLines.firstRow=M),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},T.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},T.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},T.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},T.prototype.updateFull=function(M){M?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},T.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},T.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},T.prototype.onResize=function(M,D,_,p){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=M?1:0;var b=this.container;p||(p=b.clientHeight||b.scrollHeight),!p&&this.$maxLines&&this.lineHeight>1&&(!b.style.height||b.style.height=="0px")&&(b.style.height="1px",p=b.clientHeight||b.scrollHeight),_||(_=b.clientWidth||b.scrollWidth);var S=this.$updateCachedSize(M,D,_,p);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!_&&!p)return this.resizing=0;M&&(this.$gutterLayer.$padding=null),M?this.$renderChanges(S|this.$changes,!0):this.$loop.schedule(S|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},T.prototype.$updateCachedSize=function(M,D,_,p){p-=this.$extraHeight||0;var b=0,S=this.$size,I={width:S.width,height:S.height,scrollerHeight:S.scrollerHeight,scrollerWidth:S.scrollerWidth};if(p&&(M||S.height!=p)&&(S.height=p,b|=this.CHANGE_SIZE,S.scrollerHeight=S.height,this.$horizScroll&&(S.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(S.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",b=b|this.CHANGE_SCROLL),_&&(M||S.width!=_)){b|=this.CHANGE_SIZE,S.width=_,D==null&&(D=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=D,r.setStyle(this.scrollBarH.element.style,"left",D+"px"),r.setStyle(this.scroller.style,"left",D+this.margin.left+"px"),S.scrollerWidth=Math.max(0,_-D-this.scrollBarV.getWidth()-this.margin.h),r.setStyle(this.$gutter.style,"left",this.margin.left+"px");var A=this.scrollBarV.getWidth()+"px";r.setStyle(this.scrollBarH.element.style,"right",A),r.setStyle(this.scroller.style,"right",A),r.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(S.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||M)&&(b|=this.CHANGE_FULL)}return S.$dirty=!_||!p,b&&this._signal("resize",I),b},T.prototype.onGutterResize=function(M){var D=this.$showGutter?M:0;D!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,D,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},T.prototype.adjustWrapLimit=function(){var M=this.$size.scrollerWidth-this.$padding*2,D=Math.floor(M/this.characterWidth);return this.session.adjustWrapLimit(D,this.$showPrintMargin&&this.$printMarginColumn)},T.prototype.setAnimatedScroll=function(M){this.setOption("animatedScroll",M)},T.prototype.getAnimatedScroll=function(){return this.$animatedScroll},T.prototype.setShowInvisibles=function(M){this.setOption("showInvisibles",M),this.session.$bidiHandler.setShowInvisibles(M)},T.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},T.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},T.prototype.setDisplayIndentGuides=function(M){this.setOption("displayIndentGuides",M)},T.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},T.prototype.setHighlightIndentGuides=function(M){this.setOption("highlightIndentGuides",M)},T.prototype.setShowPrintMargin=function(M){this.setOption("showPrintMargin",M)},T.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},T.prototype.setPrintMarginColumn=function(M){this.setOption("printMarginColumn",M)},T.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},T.prototype.getShowGutter=function(){return this.getOption("showGutter")},T.prototype.setShowGutter=function(M){return this.setOption("showGutter",M)},T.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},T.prototype.setFadeFoldWidgets=function(M){this.setOption("fadeFoldWidgets",M)},T.prototype.setHighlightGutterLine=function(M){this.setOption("highlightGutterLine",M)},T.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},T.prototype.$updatePrintMargin=function(){if(!(!this.$showPrintMargin&&!this.$printMarginEl)){if(!this.$printMarginEl){var M=r.createElement("div");M.className="ace_layer ace_print-margin-layer",this.$printMarginEl=r.createElement("div"),this.$printMarginEl.className="ace_print-margin",M.appendChild(this.$printMarginEl),this.content.insertBefore(M,this.content.firstChild)}var D=this.$printMarginEl.style;D.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",D.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()}},T.prototype.getContainerElement=function(){return this.container},T.prototype.getMouseEventTarget=function(){return this.scroller},T.prototype.getTextAreaContainer=function(){return this.container},T.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var M=this.textarea.style,D=this.$composition;if(!this.$keepTextAreaAtCursor&&!D){r.translate(this.textarea,-100,0);return}var _=this.$cursorLayer.$pixelPos;if(_){D&&D.markerRange&&(_=this.$cursorLayer.getPixelPosition(D.markerRange.start,!0));var p=this.layerConfig,b=_.top,S=_.left;b-=p.offset;var I=D&&D.useTextareaForIME||x.isMobile?this.lineHeight:1;if(b<0||b>p.height-I){r.translate(this.textarea,0,0);return}var A=1,R=this.$size.height-I;if(!D)b+=this.lineHeight;else if(D.useTextareaForIME){var O=this.textarea.value;A=this.characterWidth*this.session.$getStringScreenWidth(O)[0]}else b+=this.lineHeight+2;S-=this.scrollLeft,S>this.$size.scrollerWidth-A&&(S=this.$size.scrollerWidth-A),S+=this.gutterWidth+this.margin.left,r.setStyle(M,"height",I+"px"),r.setStyle(M,"width",A+"px"),r.translate(this.textarea,Math.min(S,this.$size.scrollerWidth-A),Math.min(b,R))}}},T.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},T.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},T.prototype.getLastFullyVisibleRow=function(){var M=this.layerConfig,D=M.lastRow,_=this.session.documentToScreenRow(D,0)*M.lineHeight;return _-this.session.getScrollTop()>M.height-M.lineHeight?D-1:D},T.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},T.prototype.setPadding=function(M){this.$padding=M,this.$textLayer.setPadding(M),this.$cursorLayer.setPadding(M),this.$markerFront.setPadding(M),this.$markerBack.setPadding(M),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},T.prototype.setScrollMargin=function(M,D,_,p){var b=this.scrollMargin;b.top=M|0,b.bottom=D|0,b.right=p|0,b.left=_|0,b.v=b.top+b.bottom,b.h=b.left+b.right,b.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-b.top),this.updateFull()},T.prototype.setMargin=function(M,D,_,p){var b=this.margin;b.top=M|0,b.bottom=D|0,b.right=p|0,b.left=_|0,b.v=b.top+b.bottom,b.h=b.left+b.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},T.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},T.prototype.setHScrollBarAlwaysVisible=function(M){this.setOption("hScrollBarAlwaysVisible",M)},T.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},T.prototype.setVScrollBarAlwaysVisible=function(M){this.setOption("vScrollBarAlwaysVisible",M)},T.prototype.$updateScrollBarV=function(){var M=this.layerConfig.maxHeight,D=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(M-=(D-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>M-D&&(M=this.scrollTop+D,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(M+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},T.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},T.prototype.freeze=function(){this.$frozen=!0},T.prototype.unfreeze=function(){this.$frozen=!1},T.prototype.$renderChanges=function(M,D){if(this.$changes&&(M|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!M&&!D){this.$changes|=M;return}if(this.$size.$dirty)return this.$changes|=M,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",M),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var _=this.layerConfig;if(M&this.CHANGE_FULL||M&this.CHANGE_SIZE||M&this.CHANGE_TEXT||M&this.CHANGE_LINES||M&this.CHANGE_SCROLL||M&this.CHANGE_H_SCROLL){if(M|=this.$computeLayerConfig()|this.$loop.clear(),_.firstRow!=this.layerConfig.firstRow&&_.firstRowScreen==this.layerConfig.firstRowScreen){var p=this.scrollTop+(_.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;p>0&&(this.scrollTop=p,M=M|this.CHANGE_SCROLL,M|=this.$computeLayerConfig()|this.$loop.clear())}_=this.layerConfig,this.$updateScrollBarV(),M&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),r.translate(this.content,-this.scrollLeft,-_.offset);var b=_.width+2*this.$padding+"px",S=_.minHeight+"px";r.setStyle(this.content.style,"width",b),r.setStyle(this.content.style,"height",S)}if(M&this.CHANGE_H_SCROLL&&(r.translate(this.content,-this.scrollLeft,-_.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),M&this.CHANGE_FULL){this.$changedLines=null,this.$textLayer.update(_),this.$showGutter&&this.$gutterLayer.update(_),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(_),this.$markerBack.update(_),this.$markerFront.update(_),this.$cursorLayer.update(_),this.$moveTextAreaToCursor(),this._signal("afterRender",M);return}if(M&this.CHANGE_SCROLL){this.$changedLines=null,M&this.CHANGE_TEXT||M&this.CHANGE_LINES?this.$textLayer.update(_):this.$textLayer.scrollLines(_),this.$showGutter&&(M&this.CHANGE_GUTTER||M&this.CHANGE_LINES?this.$gutterLayer.update(_):this.$gutterLayer.scrollLines(_)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(_),this.$markerBack.update(_),this.$markerFront.update(_),this.$cursorLayer.update(_),this.$moveTextAreaToCursor(),this._signal("afterRender",M);return}M&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(_),this.$showGutter&&this.$gutterLayer.update(_),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(_)):M&this.CHANGE_LINES?((this.$updateLines()||M&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(_),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(_)):M&this.CHANGE_TEXT||M&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(_),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(_)):M&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(_),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(_)),M&this.CHANGE_CURSOR&&(this.$cursorLayer.update(_),this.$moveTextAreaToCursor()),M&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(_),M&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(_),this._signal("afterRender",M)},T.prototype.$autosize=function(){var M=this.session.getScreenLength()*this.lineHeight,D=this.$maxLines*this.lineHeight,_=Math.min(D,Math.max((this.$minLines||1)*this.lineHeight,M))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(_+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&_>this.$maxPixelHeight&&(_=this.$maxPixelHeight);var p=_<=2*this.lineHeight,b=!p&&M>D;if(_!=this.desiredHeight||this.$size.height!=this.desiredHeight||b!=this.$vScroll){b!=this.$vScroll&&(this.$vScroll=b,this.scrollBarV.setVisible(b));var S=this.container.clientWidth;this.container.style.height=_+"px",this.$updateCachedSize(!0,this.$gutterWidth,S,_),this.desiredHeight=_,this._signal("autosize")}},T.prototype.$computeLayerConfig=function(){var M=this.session,D=this.$size,_=D.height<=2*this.lineHeight,p=this.session.getScreenLength(),b=p*this.lineHeight,S=this.$getLongestLine(),I=!_&&(this.$hScrollBarAlwaysVisible||D.scrollerWidth-S-2*this.$padding<0),A=this.$horizScroll!==I;A&&(this.$horizScroll=I,this.scrollBarH.setVisible(I));var R=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var O=D.scrollerHeight+this.lineHeight,U=!this.$maxLines&&this.$scrollPastEnd?(D.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;b+=U;var P=this.scrollMargin;this.session.setScrollTop(Math.max(-P.top,Math.min(this.scrollTop,b-D.scrollerHeight+P.bottom))),this.session.setScrollLeft(Math.max(-P.left,Math.min(this.scrollLeft,S+2*this.$padding-D.scrollerWidth+P.right)));var W=!_&&(this.$vScrollBarAlwaysVisible||D.scrollerHeight-b+U<0||this.scrollTop>P.top),V=R!==W;V&&(this.$vScroll=W,this.scrollBarV.setVisible(W));var K=this.scrollTop%this.lineHeight,Q=Math.ceil(O/this.lineHeight)-1,q=Math.max(0,Math.round((this.scrollTop-K)/this.lineHeight)),ce=q+Q,Re,ve,ae=this.lineHeight;q=M.screenToDocumentRow(q,0);var we=M.getFoldLine(q);we&&(q=we.start.row),Re=M.documentToScreenRow(q,0),ve=M.getRowLength(q)*ae,ce=Math.min(M.screenToDocumentRow(ce,0),M.getLength()-1),O=D.scrollerHeight+M.getRowLength(ce)*ae+ve,K=this.scrollTop-Re*ae;var Ie=0;return(this.layerConfig.width!=S||A)&&(Ie=this.CHANGE_H_SCROLL),(A||V)&&(Ie|=this.$updateCachedSize(!0,this.gutterWidth,D.width,D.height),this._signal("scrollbarVisibilityChanged"),V&&(S=this.$getLongestLine())),this.layerConfig={width:S,padding:this.$padding,firstRow:q,firstRowScreen:Re,lastRow:ce,lineHeight:ae,characterWidth:this.characterWidth,minHeight:O,maxHeight:b,offset:K,gutterOffset:ae?Math.max(0,Math.ceil((K+D.height-D.scrollerHeight)/ae)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(S-this.$padding),Ie},T.prototype.$updateLines=function(){if(this.$changedLines){var M=this.$changedLines.firstRow,D=this.$changedLines.lastRow;this.$changedLines=null;var _=this.layerConfig;if(!(M>_.lastRow+1)&&!(D<_.firstRow)){if(D===1/0){this.$showGutter&&this.$gutterLayer.update(_),this.$textLayer.update(_);return}return this.$textLayer.updateLines(_,M,D),!0}}},T.prototype.$getLongestLine=function(){var M=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(M+=1),this.$textLayer&&M>this.$textLayer.MAX_LINE_LENGTH&&(M=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(M*this.characterWidth))},T.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},T.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},T.prototype.addGutterDecoration=function(M,D){this.$gutterLayer.addGutterDecoration(M,D)},T.prototype.removeGutterDecoration=function(M,D){this.$gutterLayer.removeGutterDecoration(M,D)},T.prototype.updateBreakpoints=function(M){this._rows=M,this.$loop.schedule(this.CHANGE_GUTTER)},T.prototype.setAnnotations=function(M){this.$gutterLayer.setAnnotations(M),this.$loop.schedule(this.CHANGE_GUTTER)},T.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},T.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},T.prototype.showCursor=function(){this.$cursorLayer.showCursor()},T.prototype.scrollSelectionIntoView=function(M,D,_){this.scrollCursorIntoView(M,_),this.scrollCursorIntoView(D,_)},T.prototype.scrollCursorIntoView=function(M,D,_){if(this.$size.scrollerHeight!==0){var p=this.$cursorLayer.getPixelPosition(M),b=p.left,S=p.top,I=_&&_.top||0,A=_&&_.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var R=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;R+I>S?(D&&R+I>S+this.lineHeight&&(S-=D*this.$size.scrollerHeight),S===0&&(S=-this.scrollMargin.top),this.session.setScrollTop(S)):R+this.$size.scrollerHeight-A=1-this.scrollMargin.top||D>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||M<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||M>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},T.prototype.pixelToScreenCoordinates=function(M,D){var _;if(this.$hasCssTransforms){_={top:0,left:0};var p=this.$fontMetrics.transformCoordinates([M,D]);M=p[1]-this.gutterWidth-this.margin.left,D=p[0]}else _=this.scroller.getBoundingClientRect();var b=M+this.scrollLeft-_.left-this.$padding,S=b/this.characterWidth,I=Math.floor((D+this.scrollTop-_.top)/this.lineHeight),A=this.$blockCursor?Math.floor(S):Math.round(S);return{row:I,column:A,side:S-A>0?1:-1,offsetX:b}},T.prototype.screenToTextCoordinates=function(M,D){var _;if(this.$hasCssTransforms){_={top:0,left:0};var p=this.$fontMetrics.transformCoordinates([M,D]);M=p[1]-this.gutterWidth-this.margin.left,D=p[0]}else _=this.scroller.getBoundingClientRect();var b=M+this.scrollLeft-_.left-this.$padding,S=b/this.characterWidth,I=this.$blockCursor?Math.floor(S):Math.round(S),A=Math.floor((D+this.scrollTop-_.top)/this.lineHeight);return this.session.screenToDocumentPosition(A,Math.max(I,0),b)},T.prototype.textToScreenCoordinates=function(M,D){var _=this.scroller.getBoundingClientRect(),p=this.session.documentToScreenPosition(M,D),b=this.$padding+(this.session.$bidiHandler.isBidiRow(p.row,M)?this.session.$bidiHandler.getPosLeft(p.column):Math.round(p.column*this.characterWidth)),S=p.row*this.lineHeight;return{pageX:_.left+b-this.scrollLeft,pageY:_.top+S-this.scrollTop}},T.prototype.visualizeFocus=function(){r.addCssClass(this.container,"ace_focus")},T.prototype.visualizeBlur=function(){r.removeCssClass(this.container,"ace_focus")},T.prototype.showComposition=function(M){this.$composition=M,M.cssText||(M.cssText=this.textarea.style.cssText),M.useTextareaForIME==null&&(M.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(r.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):M.markerId=this.session.addMarker(M.markerRange,"ace_composition_marker","text")},T.prototype.setCompositionText=function(M){var D=this.session.selection.cursor;this.addToken(M,"composition_placeholder",D.row,D.column),this.$moveTextAreaToCursor()},T.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),r.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var M=this.session.selection.cursor;this.removeExtraToken(M.row,M.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},T.prototype.setGhostText=function(M,D){var _=this.session.selection.cursor,p=D||{row:_.row,column:_.column};this.removeGhostText();var b=this.$calculateWrappedTextChunks(M,p);this.addToken(b[0].text,"ghost_text",p.row,p.column),this.$ghostText={text:M,position:{row:p.row,column:p.column}};var S=r.createElement("div");if(b.length>1){var I=this.hideTokensAfterPosition(p.row,p.column),A;b.slice(1).forEach(function(V){var K=r.createElement("div"),Q=r.createElement("span");Q.className="ace_ghost_text",V.wrapped&&(K.className="ghost_text_line_wrapped"),V.text.length===0&&(V.text=" "),Q.appendChild(r.createTextNode(V.text)),K.appendChild(Q),S.appendChild(K),A=K}),I.forEach(function(V){var K=r.createElement("span");y(V.type)||(K.className="ace_"+V.type.replace(/\./g," ace_")),K.appendChild(r.createTextNode(V.value)),A.appendChild(K)}),this.$ghostTextWidget={el:S,row:p.row,column:p.column,className:"ace_ghost_text_container"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var R=this.$cursorLayer.getPixelPosition(p,!0),O=this.container,U=O.getBoundingClientRect().height,P=b.length*this.lineHeight,W=P0){var O=0;R.push(b[I].length);for(var U=0;U1||Math.abs(M.$size.height-p)>1?M.$resizeTimer.delay():M.$resizeTimer.cancel()}),this.$resizeObserver.observe(this.container)}},T}();E.prototype.CHANGE_CURSOR=1,E.prototype.CHANGE_MARKER=2,E.prototype.CHANGE_GUTTER=4,E.prototype.CHANGE_SCROLL=8,E.prototype.CHANGE_LINES=16,E.prototype.CHANGE_TEXT=32,E.prototype.CHANGE_SIZE=64,E.prototype.CHANGE_MARKER_BACK=128,E.prototype.CHANGE_MARKER_FRONT=256,E.prototype.CHANGE_FULL=512,E.prototype.CHANGE_H_SCROLL=1024,E.prototype.$changes=0,E.prototype.$padding=null,E.prototype.$frozen=!1,E.prototype.STEPS=8,i.implement(E.prototype,w),a.defineOptions(E.prototype,"renderer",{useResizeObserver:{set:function(T){!T&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):T&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(T){this.$textLayer.setShowInvisibles(T)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(T){typeof T=="number"&&(this.$printMarginColumn=T),this.$showPrintMargin=!!T,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(T){this.$gutter.style.display=T?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(T){this.$gutterLayer.$useSvgGutterIcons=T},initialValue:!1},showFoldedAnnotations:{set:function(T){this.$gutterLayer.$showFoldedAnnotations=T},initialValue:!1},fadeFoldWidgets:{set:function(T){r.setCssClass(this.$gutter,"ace_fade-fold-widgets",T)},initialValue:!1},showFoldWidgets:{set:function(T){this.$gutterLayer.setShowFoldWidgets(T),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(T){this.$textLayer.setDisplayIndentGuides(T)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(T){this.$textLayer.setHighlightIndentGuides(T)==!0?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(T){this.$gutterLayer.setHighlightGutterLine(T),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(T){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(T){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(T){typeof T=="number"&&(T=T+"px"),this.container.style.fontSize=T,this.updateFontSize()},initialValue:12},fontFamily:{set:function(T){this.container.style.fontFamily=T,this.updateFontSize()}},maxLines:{set:function(T){this.updateFull()}},minLines:{set:function(T){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(T){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(T){T=+T||0,this.$scrollPastEnd!=T&&(this.$scrollPastEnd=T,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(T){this.$gutterLayer.$fixedWidth=!!T,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(T){this.$updateCustomScrollbar(T)},initialValue:!1},theme:{set:function(T){this.setTheme(T)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!x.isMobile&&!x.isIE}}),t.VirtualRenderer=E});ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(n,t,e){"use strict";var i=n("../lib/oop"),r=n("../lib/net"),s=n("../lib/event_emitter").EventEmitter,a=n("../config");function o(d){var h="importScripts('"+r.qualifyURL(d)+"');";try{return new Blob([h],{type:"application/javascript"})}catch{var m=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,f=new m;return f.append(h),f.getBlob("application/javascript")}}function l(d){if(typeof Worker>"u")return{postMessage:function(){},terminate:function(){}};if(a.get("loadWorkerFromBlob")){var h=o(d),m=window.URL||window.webkitURL,f=m.createObjectURL(h);return new Worker(f)}return new Worker(d)}var c=function(d){d.postMessage||(d=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=d,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){i.implement(this,s),this.$createWorkerFromOldConfig=function(d,h,m,f,g){if(n.nameToUrl&&!n.toUrl&&(n.toUrl=n.nameToUrl),a.get("packaged")||!n.toUrl)f=f||a.moduleUrl(h,"worker");else{var v=this.$normalizePath;f=f||v(n.toUrl("ace/worker/worker.js",null,"_"));var w={};d.forEach(function(C){w[C]=v(n.toUrl(C,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=l(f),g&&this.send("importScripts",g),this.$worker.postMessage({init:!0,tlns:w,module:h,classname:m}),this.$worker},this.onMessage=function(d){var h=d.data;switch(h.type){case"event":this._signal(h.name,{data:h.data});break;case"call":var m=this.callbacks[h.id];m&&(m(h.data),delete this.callbacks[h.id]);break;case"error":this.reportError(h.data);break;case"log":window.console&&console.log&&console.log.apply(console,h.data);break}},this.reportError=function(d){window.console&&console.error&&console.error(d)},this.$normalizePath=function(d){return r.qualifyURL(d)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(d){d.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(d,h){this.$worker.postMessage({command:d,args:h})},this.call=function(d,h,m){if(m){var f=this.callbackId++;this.callbacks[f]=m,h.push(f)}this.send(d,h)},this.emit=function(d,h){try{h.data&&h.data.err&&(h.data.err={message:h.data.err.message,stack:h.data.err.stack,code:h.data.err.code}),this.$worker&&this.$worker.postMessage({event:d,data:{data:h.data}})}catch(m){console.error(m.stack)}},this.attachToDocument=function(d){this.$doc&&this.terminate(),this.$doc=d,this.call("setValue",[d.getValue()]),d.on("change",this.changeListener,!0)},this.changeListener=function(d){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),d.action=="insert"?this.deltaQueue.push(d.start,d.lines):this.deltaQueue.push(d.start,d.end)},this.$sendDeltaQueue=function(){var d=this.deltaQueue;d&&(this.deltaQueue=null,d.length>50&&d.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:d}))}}).call(c.prototype);var u=function(d,h,m){var f=null,g=!1,v=Object.create(s),w=[],C=new c({messageBuffer:w,terminate:function(){},postMessage:function(x){w.push(x),f&&(g?setTimeout(k):k())}});C.setEmitSync=function(x){g=x};var k=function(){var x=w.shift();x.command?f[x.command].apply(f,x.args):x.event&&v._signal(x.event,x.data)};return v.postMessage=function(x){C.onMessage({data:x})},v.callback=function(x,y){this.postMessage({type:"call",id:y,data:x})},v.emit=function(x,y){this.postMessage({type:"event",name:x,data:y})},a.loadModule(["worker",h],function(x){for(f=new x[m](v);w.length;)k()}),C};t.UIWorkerClient=u,t.WorkerClient=c,t.createWorker=l});ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(n,t,e){"use strict";var i=n("./range").Range,r=n("./lib/event_emitter").EventEmitter,s=n("./lib/oop"),a=function(){function o(l,c,u,d,h,m){var f=this;this.length=c,this.session=l,this.doc=l.getDocument(),this.mainClass=h,this.othersClass=m,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=d,this.$onCursorChange=function(){setTimeout(function(){f.onCursorChange()})},this.$pos=u;var g=l.getUndoManager().$undoStack||l.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=g.length,this.setup(),l.selection.on("changeCursor",this.$onCursorChange)}return o.prototype.setup=function(){var l=this,c=this.doc,u=this.session;this.selectionBefore=u.selection.toJSON(),u.selection.inMultiSelectMode&&u.selection.toSingleRange(),this.pos=c.createAnchor(this.$pos.row,this.$pos.column);var d=this.pos;d.$insertRight=!0,d.detach(),d.markerId=u.addMarker(new i(d.row,d.column,d.row,d.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(h){var m=c.createAnchor(h.row,h.column);m.$insertRight=!0,m.detach(),l.others.push(m)}),u.setUndoSelect(!1)},o.prototype.showOtherMarkers=function(){if(!this.othersActive){var l=this.session,c=this;this.othersActive=!0,this.others.forEach(function(u){u.markerId=l.addMarker(new i(u.row,u.column,u.row,u.column+c.length),c.othersClass,null,!1)})}},o.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var l=0;l=this.pos.column&&c.start.column<=this.pos.column+this.length+1,h=c.start.column-this.pos.column;if(this.updateAnchors(l),d&&(this.length+=u),d&&!this.session.$fromUndo){if(l.action==="insert")for(var m=this.others.length-1;m>=0;m--){var f=this.others[m],g={row:f.row,column:f.column+h};this.doc.insertMergedLines(g,l.lines)}else if(l.action==="remove")for(var m=this.others.length-1;m>=0;m--){var f=this.others[m],g={row:f.row,column:f.column+h};this.doc.remove(new i(g.row,g.column,g.row,g.column-u))}}this.$updating=!1,this.updateMarkers()}},o.prototype.updateAnchors=function(l){this.pos.onChange(l);for(var c=this.others.length;c--;)this.others[c].onChange(l);this.updateMarkers()},o.prototype.updateMarkers=function(){if(!this.$updating){var l=this,c=this.session,u=function(h,m){c.removeMarker(h.markerId),h.markerId=c.addMarker(new i(h.row,h.column,h.row,h.column+l.length),m,null,!1)};u(this.pos,this.mainClass);for(var d=this.others.length;d--;)u(this.others[d],this.othersClass)}},o.prototype.onCursorChange=function(l){if(!(this.$updating||!this.session)){var c=this.session.selection.getCursor();c.row===this.pos.row&&c.column>=this.pos.column&&c.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",l)):(this.hideOtherMarkers(),this._emit("cursorLeave",l))}},o.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},o.prototype.cancel=function(){if(this.$undoStackDepth!==-1){for(var l=this.session.getUndoManager(),c=(l.$undoStack||l.$undostack).length-this.$undoStackDepth,u=0;u1?r.multiSelect.joinSelections():r.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(r){r.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(r){r.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(r){r.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(r){r.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(r){return r&&r.inMultiSelectMode}}];var i=n("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new i(t.multiSelectCommands)});ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(n,t,e){var i=n("./range_list").RangeList,r=n("./range").Range,s=n("./selection").Selection,a=n("./mouse/multi_select_handler").onMouseDown,o=n("./lib/event"),l=n("./lib/lang"),c=n("./commands/multi_select_commands");t.commands=c.defaultCommands.concat(c.multiSelectCommands);var u=n("./search").Search,d=new u;function h(C,k,x){return d.$options.wrap=!0,d.$options.needle=k,d.$options.backwards=x==-1,d.find(C)}var m=n("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(m.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(C,k){if(C){if(!this.inMultiSelectMode&&this.rangeCount===0){var x=this.toOrientedRange();if(this.rangeList.add(x),this.rangeList.add(C),this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),k||this.fromOrientedRange(C);this.rangeList.removeAll(),this.rangeList.add(x),this.$onAddRange(x)}C.cursor||(C.cursor=C.end);var y=this.rangeList.add(C);return this.$onAddRange(C),y.length&&this.$onRemoveRange(y),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),k||this.fromOrientedRange(C)}},this.toSingleRange=function(C){C=C||this.ranges[0];var k=this.rangeList.removeAll();k.length&&this.$onRemoveRange(k),C&&this.fromOrientedRange(C)},this.substractPoint=function(C){var k=this.rangeList.substractPoint(C);if(k)return this.$onRemoveRange(k),k[0]},this.mergeOverlappingRanges=function(){var C=this.rangeList.merge();C.length&&this.$onRemoveRange(C)},this.$onAddRange=function(C){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(C),this._signal("addRange",{range:C})},this.$onRemoveRange=function(C){if(this.rangeCount=this.rangeList.ranges.length,this.rangeCount==1&&this.inMultiSelectMode){var k=this.rangeList.ranges.pop();C.push(k),this.rangeCount=0}for(var x=C.length;x--;){var y=this.ranges.indexOf(C[x]);this.ranges.splice(y,1)}this._signal("removeRange",{ranges:C}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),k=k||this.ranges[0],k&&!k.isEqual(this.getRange())&&this.fromOrientedRange(k)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new i,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var C=this.ranges.length?this.ranges:[this.getRange()],k=[],x=0;x1){var C=this.rangeList.ranges,k=C[C.length-1],x=r.fromPoints(C[0].start,k.end);this.toSingleRange(),this.setSelectionRange(x,k.cursor==k.start)}else{var y=this.session.documentToScreenPosition(this.cursor),E=this.session.documentToScreenPosition(this.anchor),T=this.rectangularRangeBlock(y,E);T.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(C,k,x){var y=[],E=C.column0;)O--;if(O>0)for(var U=0;y[U].isEmpty();)U++;for(var P=O;P>=U;P--)y[P].isEmpty()&&y.splice(P,1)}return y}}.call(s.prototype);var f=n("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(C){C.cursor||(C.cursor=C.end);var k=this.getSelectionStyle();return C.marker=this.session.addMarker(C,"ace_selection",k),this.session.$selectionMarkers.push(C),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,C},this.removeSelectionMarker=function(C){if(C.marker){this.session.removeMarker(C.marker);var k=this.session.$selectionMarkers.indexOf(C);k!=-1&&this.session.$selectionMarkers.splice(k,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(C){for(var k=this.session.$selectionMarkers,x=C.length;x--;){var y=C[x];if(y.marker){this.session.removeMarker(y.marker);var E=k.indexOf(y);E!=-1&&k.splice(E,1)}}this.session.selectionMarkerCount=k.length},this.$onAddRange=function(C){this.addSelectionMarker(C.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(C){this.removeSelectionMarkers(C.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(C){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(c.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(C){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(c.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(C){var k=C.command,x=C.editor;if(x.multiSelect){if(k.multiSelectAction)k.multiSelectAction=="forEach"?y=x.forEachSelection(k,C.args):k.multiSelectAction=="forEachLine"?y=x.forEachSelection(k,C.args,!0):k.multiSelectAction=="single"?(x.exitMultiSelectMode(),y=k.exec(x,C.args||{})):y=k.multiSelectAction(x,C.args||{});else{var y=k.exec(x,C.args||{});x.multiSelect.addRange(x.multiSelect.toOrientedRange()),x.multiSelect.mergeOverlappingRanges()}return y}},this.forEachSelection=function(C,k,x){if(!this.inVirtualSelectionMode){var y=x&&x.keepOrder,E=x==!0||x&&x.$byLines,T=this.session,M=this.selection,D=M.rangeList,_=(y?M:D).ranges,p;if(!_.length)return C.exec?C.exec(this,k||{}):C(this,k||{});var b=M._eventRegistry;M._eventRegistry={};var S=new s(T);this.inVirtualSelectionMode=!0;for(var I=_.length;I--;){if(E)for(;I>0&&_[I].start.row==_[I-1].end.row;)I--;S.fromOrientedRange(_[I]),S.index=I,this.selection=T.selection=S;var A=C.exec?C.exec(this,k||{}):C(this,k||{});!p&&A!==void 0&&(p=A),S.toOrientedRange(_[I])}S.detach(),this.selection=T.selection=M,this.inVirtualSelectionMode=!1,M._eventRegistry=b,M.mergeOverlappingRanges(),M.ranges[0]&&M.fromOrientedRange(M.ranges[0]);var R=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),R&&R.from==R.to&&this.renderer.animateScrolling(R.from),p}},this.exitMultiSelectMode=function(){!this.inMultiSelectMode||this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getSelectedText=function(){var C="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var k=this.multiSelect.rangeList.ranges,x=[],y=0;y0);M<0&&(M=0),D>=p&&(D=p-1)}var S=this.session.removeFullLines(M,D);S=this.$reAlignText(S,_),this.session.insert({row:M,column:0},S.join(` -`)+` -`),_||(T.start.column=0,T.end.column=S[S.length-1].length),this.selection.setRange(T)}else{E.forEach(function(O){k.substractPoint(O.cursor)});var I=0,A=1/0,R=x.map(function(O){var U=O.cursor,P=C.getLine(U.row),W=P.substr(U.column).search(/\S/g);return W==-1&&(W=0),U.column>I&&(I=U.column),WV?C.insert(P,l.stringRepeat(" ",W-V)):C.remove(new r(P.row,P.column,P.row,P.column-W+V)),O.start.column=O.end.column=I,O.start.row=O.end.row=P.row,O.cursor=O.end}),k.fromOrientedRange(x[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(C,k){var x=!0,y=!0,E,T,M;return C.map(function(S){var I=S.match(/(\s*)(.*?)(\s*)([=:].*)/);return I?E==null?(E=I[1].length,T=I[2].length,M=I[3].length,I):(E+T+M!=I[1].length+I[2].length+I[3].length&&(y=!1),E!=I[1].length&&(x=!1),E>I[1].length&&(E=I[1].length),TI[3].length&&(M=I[3].length),I):[S]}).map(k?_:x?y?p:_:b);function D(S){return l.stringRepeat(" ",S)}function _(S){return S[2]?D(E)+S[2]+D(T-S[2].length+M)+S[4].replace(/^([=:])\s+/,"$1 "):S[0]}function p(S){return S[2]?D(E+T-S[2].length)+S[2]+D(M)+S[4].replace(/^([=:])\s+/,"$1 "):S[0]}function b(S){return S[2]?D(E)+S[2]+D(M)+S[4].replace(/^([=:])\s+/,"$1 "):S[0]}}}).call(f.prototype);function g(C,k){return C.row==k.row&&C.column==k.column}t.onSessionChange=function(C){var k=C.session;k&&!k.multiSelect&&(k.$selectionMarkers=[],k.selection.$initRangeList(),k.multiSelect=k.selection),this.multiSelect=k&&k.multiSelect;var x=C.oldSession;x&&(x.multiSelect.off("addRange",this.$onAddRange),x.multiSelect.off("removeRange",this.$onRemoveRange),x.multiSelect.off("multiSelect",this.$onMultiSelect),x.multiSelect.off("singleSelect",this.$onSingleSelect),x.multiSelect.lead.off("change",this.$checkMultiselectChange),x.multiSelect.anchor.off("change",this.$checkMultiselectChange)),k&&(k.multiSelect.on("addRange",this.$onAddRange),k.multiSelect.on("removeRange",this.$onRemoveRange),k.multiSelect.on("multiSelect",this.$onMultiSelect),k.multiSelect.on("singleSelect",this.$onSingleSelect),k.multiSelect.lead.on("change",this.$checkMultiselectChange),k.multiSelect.anchor.on("change",this.$checkMultiselectChange)),k&&this.inMultiSelectMode!=k.selection.inMultiSelectMode&&(k.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())};function v(C){C.$multiselectOnSessionChange||(C.$onAddRange=C.$onAddRange.bind(C),C.$onRemoveRange=C.$onRemoveRange.bind(C),C.$onMultiSelect=C.$onMultiSelect.bind(C),C.$onSingleSelect=C.$onSingleSelect.bind(C),C.$multiselectOnSessionChange=t.onSessionChange.bind(C),C.$checkMultiselectChange=C.$checkMultiselectChange.bind(C),C.$multiselectOnSessionChange(C),C.on("changeSession",C.$multiselectOnSessionChange),C.on("mousedown",a),C.commands.addCommands(c.defaultCommands),w(C))}function w(C){if(!C.textInput)return;var k=C.textInput.getElement(),x=!1;o.addListener(k,"keydown",function(E){var T=E.keyCode==18&&!(E.ctrlKey||E.shiftKey||E.metaKey);C.$blockSelectEnabled&&T?x||(C.renderer.setMouseCursor("crosshair"),x=!0):x&&y()},C),o.addListener(k,"keyup",y,C),o.addListener(k,"blur",y,C);function y(E){x&&(C.renderer.setMouseCursor(""),x=!1)}}t.MultiSelect=v,n("./config").defineOptions(f.prototype,"editor",{enableMultiselect:{set:function(C){v(this),C?this.on("mousedown",a):this.off("mousedown",a)},value:!0},enableBlockSelect:{set:function(C){this.$blockSelectEnabled=C},value:!0}})});ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(n,t,e){"use strict";var i=n("../../range").Range,r=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(s,a,o){var l=s.getLine(o);return this.foldingStartMarker.test(l)?"start":a=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(l)?"end":""},this.getFoldWidgetRange=function(s,a,o){return null},this.indentationBlock=function(s,a,o){var l=/\S/,c=s.getLine(a),u=c.search(l);if(u!=-1){for(var d=o||c.length,h=s.getLength(),m=a,f=a;++am){var w=s.getLine(f).length;return new i(m,d,f,w)}}},this.openingBracketBlock=function(s,a,o,l,c){var u={row:o,column:l+1},d=s.$findClosingBracket(a,u,c);if(d){var h=s.foldWidgets[d.row];return h==null&&(h=s.getFoldWidget(d.row)),h=="start"&&d.row>u.row&&(d.row--,d.column=s.getLine(d.row).length),i.fromPoints(u,d)}},this.closingBracketBlock=function(s,a,o,l,c){var u={row:o,column:l},d=s.$findOpeningBracket(a,u);if(d)return d.column++,u.column--,i.fromPoints(d,u)}}).call(r.prototype)});ace.define("ace/ext/error_marker",["require","exports","module","ace/lib/dom","ace/range","ace/config"],function(n,t,e){"use strict";var i=n("../lib/dom"),r=n("../range").Range,s=n("../config").nls;function a(l,c,u){for(var d=0,h=l.length-1;d<=h;){var m=d+h>>1,f=u(c,l[m]);if(f>0)d=m+1;else if(f<0)h=m-1;else return m}return-(d+1)}function o(l,c,u){var d=l.getAnnotations().sort(r.comparePoints);if(d.length){var h=a(d,{row:c,column:-1},r.comparePoints);h<0&&(h=-h-1),h>=d.length?h=u>0?0:d.length-1:h===0&&u<0&&(h=d.length-1);var m=d[h];if(!(!m||!u)){if(m.row===c){do m=d[h+=u];while(m&&m.row===c);if(!m)return d.slice()}var f=[];c=m.row;do f[u<0?"unshift":"push"](m),m=d[h+=u];while(m&&m.row==c);return f.length&&f}}}t.showErrorMarker=function(l,c){var u=l.session,d=l.getCursorPosition(),h=d.row,m=u.widgetManager.getWidgetsAtRow(h).filter(function(E){return E.type=="errorMarker"})[0];m?m.destroy():h-=c;var f=o(u,h,c),g;if(f){var v=f[0];d.column=(v.pos&&typeof v.column!="number"?v.pos.sc:v.column)||0,d.row=v.row,g=l.renderer.$gutterLayer.$annotations[d.row]}else{if(m)return;g={displayText:[s("error-marker.good-state","Looks good!")],className:"ace_ok"}}l.session.unfold(d.row),l.selection.moveToPosition(d);var w={row:d.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},C=w.el.appendChild(i.createElement("div")),k=w.el.appendChild(i.createElement("div"));k.className="error_widget_arrow "+g.className;var x=l.renderer.$cursorLayer.getPixelPosition(d).left;k.style.left=x+l.renderer.gutterWidth-5+"px",w.el.className="error_widget_wrapper",C.className="error_widget "+g.className,g.displayText.forEach(function(E,T){C.appendChild(i.createTextNode(E)),T{ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(n,t,e){"use strict";var i=n("../lib/oop"),r=n("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};i.inherits(s,r),t.JsonHighlightRules=s});ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(n,t,e){"use strict";var i=n("../range").Range,r=function(){};(function(){this.checkOutdent=function(s,a){return/^\s+$/.test(s)?/^\s*\}/.test(a):!1},this.autoOutdent=function(s,a){var o=s.getLine(a),l=o.match(/^(\s*\})/);if(!l)return 0;var c=l[1].length,u=s.findMatchingBracket({row:a,column:c});if(!u||u.row==a)return 0;var d=this.$getIndent(s.getLine(u.row));s.replace(new i(a,0,a,c-1),d)},this.$getIndent=function(s){return s.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r});ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(n,t,e){"use strict";var i=n("../../lib/oop"),r=n("../../range").Range,s=n("./fold_mode").FoldMode,a=t.FoldMode=function(o){o&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+o.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+o.end)))};i.inherits(a,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(o,l,c){var u=o.getLine(c);if(this.singleLineBlockCommentRe.test(u)&&!this.startRegionRe.test(u)&&!this.tripleStarBlockCommentRe.test(u))return"";var d=this._getFoldWidgetBase(o,l,c);return!d&&this.startRegionRe.test(u)?"start":d},this.getFoldWidgetRange=function(o,l,c,u){var d=o.getLine(c);if(this.startRegionRe.test(d))return this.getCommentRegionBlock(o,d,c);var f=d.match(this.foldingStartMarker);if(f){var h=f.index;if(f[1])return this.openingBracketBlock(o,f[1],c,h);var m=o.getCommentFoldRange(c,h+f[0].length,1);return m&&!m.isMultiLine()&&(u?m=this.getSectionRange(o,c):l!="all"&&(m=null)),m}if(l!=="markbegin"){var f=d.match(this.foldingStopMarker);if(f){var h=f.index+f[0].length;return f[1]?this.closingBracketBlock(o,f[1],c,h):o.getCommentFoldRange(c,h,-1)}}},this.getSectionRange=function(o,l){var c=o.getLine(l),u=c.search(/\S/),d=l,h=c.length;l=l+1;for(var m=l,f=o.getLength();++lg)break;var v=this.getFoldWidgetRange(o,"all",l);if(v){if(v.start.row<=d)break;if(v.isMultiLine())l=v.end.row;else if(u==g)break}m=l}}return new r(d,h,m,o.getLine(m).length)},this.getCommentRegionBlock=function(o,l,c){for(var u=l.search(/\s*$/),d=o.getLength(),h=c,m=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,f=1;++ch)return new r(h,u,v,l.length)}}.call(a.prototype)});ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle","ace/worker/worker_client"],function(n,t,e){"use strict";var i=n("../lib/oop"),r=n("./text").Mode,s=n("./json_highlight_rules").JsonHighlightRules,a=n("./matching_brace_outdent").MatchingBraceOutdent,o=n("./folding/cstyle").FoldMode,l=n("../worker/worker_client").WorkerClient,c=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new o};i.inherits(c,r),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(u,d,h){var m=this.$getIndent(d);if(u=="start"){var f=d.match(/^.*[\{\(\[]\s*$/);f&&(m+=h)}return m},this.checkOutdent=function(u,d,h){return this.$outdent.checkOutdent(d,h)},this.autoOutdent=function(u,d,h){this.$outdent.autoOutdent(d,h)},this.createWorker=function(u){var d=new l(["ace"],"ace/mode/json_worker","JsonWorker");return d.attachToDocument(u.getDocument()),d.on("annotate",function(h){u.setAnnotations(h.data)}),d.on("terminate",function(){u.clearAnnotations()}),d},this.$id="ace/mode/json"}.call(c.prototype),t.Mode=c});(function(){ace.require(["ace/mode/json"],function(n){typeof om=="object"&&typeof JS=="object"&&om&&(om.exports=n)})})()});var ik=X((tk,lm)=>{ace.define("ace/theme/textmate",["require","exports","module","ace/theme/textmate-css","ace/lib/dom"],function(n,t,e){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText=n("./textmate-css"),t.$id="ace/theme/textmate";var i=n("../lib/dom");i.importCssString(t.cssText,t.cssClass,!1)});(function(){ace.require(["ace/theme/textmate"],function(n){typeof lm=="object"&&typeof tk=="object"&&lm&&(lm.exports=n)})})()});var pT=X((yre,J4)=>{J4.exports={name:"fhirpath",version:"3.15.2",description:"A FHIRPath engine",main:"src/fhirpath.js",types:"src/fhirpath.d.ts",dependencies:{"@lhncbc/ucum-lhc":"^5.0.0",antlr4:"~4.9.3",commander:"^2.18.0","date-fns":"^1.30.1","js-yaml":"^3.13.1"},devDependencies:{"@babel/core":"^7.21.4","@babel/eslint-parser":"^7.17.0","@babel/preset-env":"^7.16.11","babel-loader":"^8.2.3",benny:"github:caderek/benny#0ad058d3c7ef0b488a8fe9ae3519159fc7f36bb6",bestzip:"^2.2.0","copy-webpack-plugin":"^6.0.3",cypress:"^13.7.2",eslint:"^8.10.0",fhir:"^4.10.3",grunt:"^1.5.2","grunt-cli":"^1.4.3","grunt-text-replace":"^0.4.0","jasmine-spec-reporter":"^4.2.1",jest:"^29.7.0","jit-grunt":"^0.10.0",lodash:"^4.17.21",open:"^8.4.0",rimraf:"^3.0.0",tmp:"0.0.33",tsd:"^0.31.1",webpack:"^5.11.1","webpack-bundle-analyzer":"^4.4.2","webpack-cli":"^4.9.1",xml2js:"^0.5.0",yargs:"^15.1.0"},engines:{node:">=8.9.0"},tsd:{directory:"test/typescript"},scripts:{preinstall:"node bin/install-demo.js",postinstall:`echo "Building the Benny package based on a pull request which fixes an issue with 'statusShift'... " && (cd node_modules/benny && npm i && npm run build > /dev/null) || echo "Building the Benny package is completed."`,generateParser:'cd src/parser; rimraf ./generated/*; java -Xmx500M -cp "../../antlr-4.9.3-complete.jar:$CLASSPATH" org.antlr.v4.Tool -o generated -Dlanguage=JavaScript FHIRPath.g4; grunt updateParserRequirements',build:"cd browser-build && webpack && rimraf fhirpath.zip && bestzip fhirpath.zip LICENSE.md fhirpath.min.js fhirpath.r5.min.js fhirpath.r4.min.js fhirpath.stu3.min.js fhirpath.dstu2.min.js && rimraf LICENSE.md","test:unit":"node --use_strict node_modules/.bin/jest && TZ=America/New_York node --use_strict node_modules/.bin/jest && TZ=Europe/Paris node --use_strict node_modules/.bin/jest","test:unit:debug":"echo 'open chrome chrome://inspect/' && node --inspect node_modules/.bin/jest --runInBand","build:demo":"npm run build && cd demo && npm run build","test:e2e":"npm run build:demo && cypress run","test:tsd":"tsd",test:'npm run lint && npm run test:tsd && npm run test:unit && npm run test:e2e && echo "For tests specific to IE 11, open browser-build/test/index.html in IE 11, and confirm that the tests on that page pass."',lint:"eslint src/parser/index.js src/*.js converter/","compare-performance":"node ./test/benchmark.js"},bin:{fhirpath:"bin/fhirpath"},files:["CHANGELOG.md","bin","fhir-context","src"],repository:"github:HL7/fhirpath.js",license:"SEE LICENSE in LICENSE.md"}});var Li=X((Cre,bT)=>{function e6(n){return n===null?"null":n}function gT(n){return Array.isArray(n)?"["+n.map(e6).join(", ")+"]":"null"}String.prototype.seed=String.prototype.seed||Math.round(Math.random()*Math.pow(2,32));String.prototype.hashCode=function(){let n=this.toString(),t,e,i=n.length&3,r=n.length-i,s=String.prototype.seed,a=3432918353,o=461845907,l=0;for(;l>>16)*a&65535)<<16)&4294967295,e=e<<15|e>>>17,e=(e&65535)*o+(((e>>>16)*o&65535)<<16)&4294967295,s^=e,s=s<<13|s>>>19,t=(s&65535)*5+(((s>>>16)*5&65535)<<16)&4294967295,s=(t&65535)+27492+(((t>>>16)+58964&65535)<<16);switch(e=0,i){case 3:e^=(n.charCodeAt(l+2)&255)<<16;case 2:e^=(n.charCodeAt(l+1)&255)<<8;case 1:e^=n.charCodeAt(l)&255,e=(e&65535)*a+(((e>>>16)*a&65535)<<16)&4294967295,e=e<<15|e>>>17,e=(e&65535)*o+(((e>>>16)*o&65535)<<16)&4294967295,s^=e}return s^=n.length,s^=s>>>16,s=(s&65535)*2246822507+(((s>>>16)*2246822507&65535)<<16)&4294967295,s^=s>>>13,s=(s&65535)*3266489909+(((s>>>16)*3266489909&65535)<<16)&4294967295,s^=s>>>16,s>>>0};function _T(n,t){return n?n.equals(t):n==t}function vT(n){return n?n.hashCode():-1}var yv=class{constructor(t,e){this.data={},this.hashFunction=t||vT,this.equalsFunction=e||_T}add(t){let i="hash_"+this.hashFunction(t);if(i in this.data){let r=this.data[i];for(let s=0;s>>17,i=i*461845907,this.count=this.count+1;let r=this.hash^i;r=r<<13|r>>>19,r=r*5+3864292196,this.hash=r}}}finish(){let t=this.hash^this.count*4;return t=t^t>>>16,t=t*2246822507,t=t^t>>>13,t=t*3266489909,t=t^t>>>16,t}};function t6(){let n=new vu;return n.update.apply(n,arguments),n.finish()}function i6(n,t){return n=n.replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r"),t&&(n=n.replace(/ /g,"\xB7")),n}function n6(n){return n.replace(/\w\S*/g,function(t){return t.charAt(0).toUpperCase()+t.substr(1)})}function r6(n,t){if(!Array.isArray(n)||!Array.isArray(t))return!1;if(n===t)return!0;if(n.length!==t.length)return!1;for(let e=0;e{var Sv=(()=>{class n{constructor(){this.source=null,this.type=null,this.channel=null,this.start=null,this.stop=null,this.tokenIndex=null,this.line=null,this.column=null,this._text=null}getTokenSource(){return this.source[0]}getInputStream(){return this.source[1]}get text(){return this._text}set text(e){this._text=e}}return n.INVALID_TYPE=0,n.EPSILON=-2,n.MIN_USER_TOKEN_TYPE=1,n.EOF=-1,n.DEFAULT_CHANNEL=0,n.HIDDEN_CHANNEL=1,n})(),s6=(()=>{class n extends Sv{constructor(e,i,r,s,a){super(),this.source=e!==void 0?e:n.EMPTY_SOURCE,this.type=i!==void 0?i:null,this.channel=r!==void 0?r:Sv.DEFAULT_CHANNEL,this.start=s!==void 0?s:-1,this.stop=a!==void 0?a:-1,this.tokenIndex=-1,this.source[0]!==null?(this.line=e[0].line,this.column=e[0].column):this.column=-1}clone(){let e=new n(this.source,this.type,this.channel,this.start,this.stop);return e.tokenIndex=this.tokenIndex,e.line=this.line,e.column=this.column,e.text=this.text,e}toString(){let e=this.text;return e!==null?e=e.replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t"):e="","[@"+this.tokenIndex+","+this.start+":"+this.stop+"='"+e+"',<"+this.type+">"+(this.channel>0?",channel="+this.channel:"")+","+this.line+":"+this.column+"]"}get text(){if(this._text!==null)return this._text;let e=this.getInputStream();if(e===null)return null;let i=e.size;return this.start"}set text(e){this._text=e}}return n.EMPTY_SOURCE=[null,null],n})();yT.exports={Token:Sv,CommonToken:s6}});var gs=X((xre,CT)=>{var ri=(()=>{class n{constructor(){this.atn=null,this.stateNumber=n.INVALID_STATE_NUMBER,this.stateType=null,this.ruleIndex=0,this.epsilonOnlyTransitions=!1,this.transitions=[],this.nextTokenWithinRule=null}toString(){return this.stateNumber}equals(e){return e instanceof n?this.stateNumber===e.stateNumber:!1}isNonGreedyExitState(){return!1}addTransition(e,i){i===void 0&&(i=-1),this.transitions.length===0?this.epsilonOnlyTransitions=e.isEpsilon:this.epsilonOnlyTransitions!==e.isEpsilon&&(this.epsilonOnlyTransitions=!1),i===-1?this.transitions.push(e):this.transitions.splice(i,1,e)}}return n.INVALID_TYPE=0,n.BASIC=1,n.RULE_START=2,n.BLOCK_START=3,n.PLUS_BLOCK_START=4,n.STAR_BLOCK_START=5,n.TOKEN_START=6,n.RULE_STOP=7,n.BLOCK_END=8,n.STAR_LOOP_BACK=9,n.STAR_LOOP_ENTRY=10,n.PLUS_LOOP_BACK=11,n.LOOP_END=12,n.serializationNames=["INVALID","BASIC","RULE_START","BLOCK_START","PLUS_BLOCK_START","STAR_BLOCK_START","TOKEN_START","RULE_STOP","BLOCK_END","STAR_LOOP_BACK","STAR_LOOP_ENTRY","PLUS_LOOP_BACK","LOOP_END"],n.INVALID_STATE_NUMBER=-1,n})(),kv=class extends ri{constructor(){super(),this.stateType=ri.BASIC}},Ja=class extends ri{constructor(){return super(),this.decision=-1,this.nonGreedy=!1,this}},Cl=class extends Ja{constructor(){return super(),this.endState=null,this}},Mv=class extends Cl{constructor(){return super(),this.stateType=ri.BLOCK_START,this}},Tv=class extends ri{constructor(){return super(),this.stateType=ri.BLOCK_END,this.startState=null,this}},Ev=class extends ri{constructor(){return super(),this.stateType=ri.RULE_STOP,this}},Iv=class extends ri{constructor(){return super(),this.stateType=ri.RULE_START,this.stopState=null,this.isPrecedenceRule=!1,this}},Av=class extends Ja{constructor(){return super(),this.stateType=ri.PLUS_LOOP_BACK,this}},Dv=class extends Cl{constructor(){return super(),this.stateType=ri.PLUS_BLOCK_START,this.loopBackState=null,this}},Rv=class extends Cl{constructor(){return super(),this.stateType=ri.STAR_BLOCK_START,this}},Lv=class extends ri{constructor(){return super(),this.stateType=ri.STAR_LOOP_BACK,this}},Ov=class extends Ja{constructor(){return super(),this.stateType=ri.STAR_LOOP_ENTRY,this.loopBackState=null,this.isPrecedenceDecision=null,this}},Nv=class extends ri{constructor(){return super(),this.stateType=ri.LOOP_END,this.loopBackState=null,this}},Fv=class extends Ja{constructor(){return super(),this.stateType=ri.TOKEN_START,this}};CT.exports={ATNState:ri,BasicState:kv,DecisionState:Ja,BlockStartState:Cl,BlockEndState:Tv,LoopEndState:Nv,RuleStartState:Iv,RuleStopState:Ev,TokensStartState:Fv,PlusLoopbackState:Av,StarLoopbackState:Lv,StarLoopEntryState:Ov,PlusBlockStartState:Dv,StarBlockStartState:Rv,BasicBlockStartState:Mv}});var wl=X((Sre,ST)=>{var{Set:wT,Hash:a6,equalArrays:xT}=Li(),Hi=class n{hashCode(){let t=new a6;return this.updateHashCode(t),t.finish()}evaluate(t,e){}evalPrecedence(t,e){return this}static andContext(t,e){if(t===null||t===n.NONE)return e;if(e===null||e===n.NONE)return t;let i=new Pv(t,e);return i.opnds.length===1?i.opnds[0]:i}static orContext(t,e){if(t===null)return e;if(e===null)return t;if(t===n.NONE||e===n.NONE)return n.NONE;let i=new Uv(t,e);return i.opnds.length===1?i.opnds[0]:i}},Qm=class n extends Hi{constructor(t,e,i){super(),this.ruleIndex=t===void 0?-1:t,this.predIndex=e===void 0?-1:e,this.isCtxDependent=i===void 0?!1:i}evaluate(t,e){let i=this.isCtxDependent?e:null;return t.sempred(i,this.ruleIndex,this.predIndex)}updateHashCode(t){t.update(this.ruleIndex,this.predIndex,this.isCtxDependent)}equals(t){return this===t?!0:t instanceof n?this.ruleIndex===t.ruleIndex&&this.predIndex===t.predIndex&&this.isCtxDependent===t.isCtxDependent:!1}toString(){return"{"+this.ruleIndex+":"+this.predIndex+"}?"}};Hi.NONE=new Qm;var bu=class n extends Hi{constructor(t){super(),this.precedence=t===void 0?0:t}evaluate(t,e){return t.precpred(e,this.precedence)}evalPrecedence(t,e){return t.precpred(e,this.precedence)?Hi.NONE:null}compareTo(t){return this.precedence-t.precedence}updateHashCode(t){t.update(this.precedence)}equals(t){return this===t?!0:t instanceof n?this.precedence===t.precedence:!1}toString(){return"{"+this.precedence+">=prec}?"}static filterPrecedencePredicates(t){let e=[];return t.values().map(function(i){i instanceof n&&e.push(i)}),e}},Pv=class n extends Hi{constructor(t,e){super();let i=new wT;t instanceof n?t.opnds.map(function(s){i.add(s)}):i.add(t),e instanceof n?e.opnds.map(function(s){i.add(s)}):i.add(e);let r=bu.filterPrecedencePredicates(i);if(r.length>0){let s=null;r.map(function(a){(s===null||a.precedencee.toString());return(t.length>3?t.slice(3):t).join("&&")}},Uv=class n extends Hi{constructor(t,e){super();let i=new wT;t instanceof n?t.opnds.map(function(s){i.add(s)}):i.add(t),e instanceof n?e.opnds.map(function(s){i.add(s)}):i.add(e);let r=bu.filterPrecedencePredicates(i);if(r.length>0){let s=r.sort(function(o,l){return o.compareTo(l)}),a=s[s.length-1];i.add(a)}this.opnds=Array.from(i.values())}equals(t){return this===t?!0:t instanceof n?xT(this.opnds,t.opnds):!1}updateHashCode(t){t.update(this.opnds,"OR")}evaluate(t,e){for(let i=0;ie.toString());return(t.length>3?t.slice(3):t).join("||")}};ST.exports={SemanticContext:Hi,PrecedencePredicate:bu,Predicate:Qm}});var yu=X((kre,Vv)=>{var{DecisionState:o6}=gs(),{SemanticContext:kT}=wl(),{Hash:MT}=Li();function TT(n,t){if(n===null){let e={state:null,alt:null,context:null,semanticContext:null};return t&&(e.reachesIntoOuterContext=0),e}else{let e={};return e.state=n.state||null,e.alt=n.alt===void 0?null:n.alt,e.context=n.context||null,e.semanticContext=n.semanticContext||null,t&&(e.reachesIntoOuterContext=n.reachesIntoOuterContext||0,e.precedenceFilterSuppressed=n.precedenceFilterSuppressed||!1),e}}var Zm=class n{constructor(t,e){this.checkContext(t,e),t=TT(t),e=TT(e,!0),this.state=t.state!==null?t.state:e.state,this.alt=t.alt!==null?t.alt:e.alt,this.context=t.context!==null?t.context:e.context,this.semanticContext=t.semanticContext!==null?t.semanticContext:e.semanticContext!==null?e.semanticContext:kT.NONE,this.reachesIntoOuterContext=e.reachesIntoOuterContext,this.precedenceFilterSuppressed=e.precedenceFilterSuppressed}checkContext(t,e){(t.context===null||t.context===void 0)&&(e===null||e.context===null||e.context===void 0)&&(this.context=null)}hashCode(){let t=new MT;return this.updateHashCode(t),t.finish()}updateHashCode(t){t.update(this.state.stateNumber,this.alt,this.context,this.semanticContext)}equals(t){return this===t?!0:t instanceof n?this.state.stateNumber===t.state.stateNumber&&this.alt===t.alt&&(this.context===null?t.context===null:this.context.equals(t.context))&&this.semanticContext.equals(t.semanticContext)&&this.precedenceFilterSuppressed===t.precedenceFilterSuppressed:!1}hashCodeForConfigSet(){let t=new MT;return t.update(this.state.stateNumber,this.alt,this.semanticContext),t.finish()}equalsForConfigSet(t){return this===t?!0:t instanceof n?this.state.stateNumber===t.state.stateNumber&&this.alt===t.alt&&this.semanticContext.equals(t.semanticContext):!1}toString(){return"("+this.state+","+this.alt+(this.context!==null?",["+this.context.toString()+"]":"")+(this.semanticContext!==kT.NONE?","+this.semanticContext.toString():"")+(this.reachesIntoOuterContext>0?",up="+this.reachesIntoOuterContext:"")+")"}},$v=class n extends Zm{constructor(t,e){super(t,e);let i=t.lexerActionExecutor||null;return this.lexerActionExecutor=i||(e!==null?e.lexerActionExecutor:null),this.passedThroughNonGreedyDecision=e!==null?this.checkNonGreedyDecision(e,this.state):!1,this.hashCodeForConfigSet=n.prototype.hashCode,this.equalsForConfigSet=n.prototype.equals,this}updateHashCode(t){t.update(this.state.stateNumber,this.alt,this.context,this.semanticContext,this.passedThroughNonGreedyDecision,this.lexerActionExecutor)}equals(t){return this===t||t instanceof n&&this.passedThroughNonGreedyDecision===t.passedThroughNonGreedyDecision&&(this.lexerActionExecutor?this.lexerActionExecutor.equals(t.lexerActionExecutor):!t.lexerActionExecutor)&&super.equals(t)}checkNonGreedyDecision(t,e){return t.passedThroughNonGreedyDecision||e instanceof o6&&e.nonGreedy}};Vv.exports.ATNConfig=Zm;Vv.exports.LexerATNConfig=$v});var an=X((Mre,ET)=>{var{Token:Cu}=ni(),Oi=class n{constructor(t,e){this.start=t,this.stop=e}clone(){return new n(this.start,this.stop)}contains(t){return t>=this.start&&tthis.addInterval(e),this),this}reduce(t){if(t=i.stop?(this.intervals.splice(t+1,1),this.reduce(t)):e.stop>=i.start&&(this.intervals[t]=new Oi(e.start,i.stop),this.intervals.splice(t+1,1))}}complement(t,e){let i=new n;return i.addInterval(new Oi(t,e+1)),this.intervals!==null&&this.intervals.forEach(r=>i.removeRange(r)),i}contains(t){if(this.intervals===null)return!1;for(let e=0;er.start&&t.stop=r.stop?(this.intervals.splice(e,1),e=e-1):t.start"):t.push("'"+String.fromCharCode(i.start)+"'"):t.push("'"+String.fromCharCode(i.start)+"'..'"+String.fromCharCode(i.stop-1)+"'")}return t.length>1?"{"+t.join(", ")+"}":t[0]}toIndexString(){let t=[];for(let e=0;e"):t.push(i.start.toString()):t.push(i.start.toString()+".."+(i.stop-1).toString())}return t.length>1?"{"+t.join(", ")+"}":t[0]}toTokenString(t,e){let i=[];for(let r=0;r1?"{"+i.join(", ")+"}":i[0]}elementName(t,e,i){return i===Cu.EOF?"":i===Cu.EPSILON?"":t[i]||e[i]}get length(){return this.intervals.map(t=>t.length).reduce((t,e)=>t+e)}};ET.exports={Interval:Oi,IntervalSet:Bv}});var xl=X((Tre,IT)=>{var{Token:l6}=ni(),{IntervalSet:Zv}=an(),{Predicate:c6,PrecedencePredicate:u6}=wl(),Je=class{constructor(t){if(t==null)throw"target cannot be null.";this.target=t,this.isEpsilon=!1,this.label=null}};Je.EPSILON=1;Je.RANGE=2;Je.RULE=3;Je.PREDICATE=4;Je.ATOM=5;Je.ACTION=6;Je.SET=7;Je.NOT_SET=8;Je.WILDCARD=9;Je.PRECEDENCE=10;Je.serializationNames=["INVALID","EPSILON","RANGE","RULE","PREDICATE","ATOM","ACTION","SET","NOT_SET","WILDCARD","PRECEDENCE"];Je.serializationTypes={EpsilonTransition:Je.EPSILON,RangeTransition:Je.RANGE,RuleTransition:Je.RULE,PredicateTransition:Je.PREDICATE,AtomTransition:Je.ATOM,ActionTransition:Je.ACTION,SetTransition:Je.SET,NotSetTransition:Je.NOT_SET,WildcardTransition:Je.WILDCARD,PrecedencePredicateTransition:Je.PRECEDENCE};var zv=class extends Je{constructor(t,e){super(t),this.label_=e,this.label=this.makeLabel(),this.serializationType=Je.ATOM}makeLabel(){let t=new Zv;return t.addOne(this.label_),t}matches(t,e,i){return this.label_===t}toString(){return this.label_}},Hv=class extends Je{constructor(t,e,i,r){super(t),this.ruleIndex=e,this.precedence=i,this.followState=r,this.serializationType=Je.RULE,this.isEpsilon=!0}matches(t,e,i){return!1}},jv=class extends Je{constructor(t,e){super(t),this.serializationType=Je.EPSILON,this.isEpsilon=!0,this.outermostPrecedenceReturn=e}matches(t,e,i){return!1}toString(){return"epsilon"}},Wv=class extends Je{constructor(t,e,i){super(t),this.serializationType=Je.RANGE,this.start=e,this.stop=i,this.label=this.makeLabel()}makeLabel(){let t=new Zv;return t.addRange(this.start,this.stop),t}matches(t,e,i){return t>=this.start&&t<=this.stop}toString(){return"'"+String.fromCharCode(this.start)+"'..'"+String.fromCharCode(this.stop)+"'"}},wu=class extends Je{constructor(t){super(t)}},qv=class extends wu{constructor(t,e,i,r){super(t),this.serializationType=Je.PREDICATE,this.ruleIndex=e,this.predIndex=i,this.isCtxDependent=r,this.isEpsilon=!0}matches(t,e,i){return!1}getPredicate(){return new c6(this.ruleIndex,this.predIndex,this.isCtxDependent)}toString(){return"pred_"+this.ruleIndex+":"+this.predIndex}},Gv=class extends Je{constructor(t,e,i,r){super(t),this.serializationType=Je.ACTION,this.ruleIndex=e,this.actionIndex=i===void 0?-1:i,this.isCtxDependent=r===void 0?!1:r,this.isEpsilon=!0}matches(t,e,i){return!1}toString(){return"action_"+this.ruleIndex+":"+this.actionIndex}},Xm=class extends Je{constructor(t,e){super(t),this.serializationType=Je.SET,e!=null?this.label=e:(this.label=new Zv,this.label.addOne(l6.INVALID_TYPE))}matches(t,e,i){return this.label.contains(t)}toString(){return this.label.toString()}},Kv=class extends Xm{constructor(t,e){super(t,e),this.serializationType=Je.NOT_SET}matches(t,e,i){return t>=e&&t<=i&&!super.matches(t,e,i)}toString(){return"~"+super.toString()}},Yv=class extends Je{constructor(t){super(t),this.serializationType=Je.WILDCARD}matches(t,e,i){return t>=e&&t<=i}toString(){return"."}},Qv=class extends wu{constructor(t,e){super(t),this.serializationType=Je.PRECEDENCE,this.precedence=e,this.isEpsilon=!0}matches(t,e,i){return!1}getPredicate(){return new u6(this.precedence)}toString(){return this.precedence+" >= _p"}};IT.exports={Transition:Je,AtomTransition:zv,SetTransition:Xm,NotSetTransition:Kv,RuleTransition:Hv,ActionTransition:Gv,EpsilonTransition:jv,RangeTransition:Wv,WildcardTransition:Yv,PredicateTransition:qv,PrecedencePredicateTransition:Qv,AbstractPredicateTransition:wu}});var eo=X((Ere,RT)=>{var{Token:d6}=ni(),{Interval:AT}=an(),DT=new AT(-1,-2),Xv=class{},Jv=class extends Xv{constructor(){super()}},Jm=class extends Jv{constructor(){super()}},eb=class extends Jm{constructor(){super()}getRuleContext(){throw new Error("missing interface implementation")}},Sl=class extends Jm{constructor(){super()}},ef=class extends Sl{constructor(){super()}},tb=class{visit(t){return Array.isArray(t)?t.map(function(e){return e.accept(this)},this):t.accept(this)}visitChildren(t){return t.children?this.visit(t.children):null}visitTerminal(t){}visitErrorNode(t){}},ib=class{visitTerminal(t){}visitErrorNode(t){}enterEveryRule(t){}exitEveryRule(t){}},tf=class extends Sl{constructor(t){super(),this.parentCtx=null,this.symbol=t}getChild(t){return null}getSymbol(){return this.symbol}getParent(){return this.parentCtx}getPayload(){return this.symbol}getSourceInterval(){if(this.symbol===null)return DT;let t=this.symbol.tokenIndex;return new AT(t,t)}getChildCount(){return 0}accept(t){return t.visitTerminal(this)}getText(){return this.symbol.text}toString(){return this.symbol.type===d6.EOF?"":this.symbol.text}},nb=class extends tf{constructor(t){super(t)}isErrorNode(){return!0}accept(t){return t.visitErrorNode(this)}},xu=class{walk(t,e){if(e instanceof ef||e.isErrorNode!==void 0&&e.isErrorNode())t.visitErrorNode(e);else if(e instanceof Sl)t.visitTerminal(e);else{this.enterRule(t,e);for(let r=0;r{var h6=Li(),{Token:m6}=ni(),{ErrorNode:f6,TerminalNode:LT,RuleNode:OT}=eo(),_s={toStringTree:function(n,t,e){t=t||null,e=e||null,e!==null&&(t=e.ruleNames);let i=_s.getNodeText(n,t);i=h6.escapeWhitespace(i,!1);let r=n.getChildCount();if(r===0)return i;let s="("+i+" ";r>0&&(i=_s.toStringTree(n.getChild(0),t),s=s.concat(i));for(let a=1;a{var{RuleNode:p6}=eo(),{INVALID_INTERVAL:g6}=eo(),_6=rb(),sb=class extends p6{constructor(t,e){super(),this.parentCtx=t||null,this.invokingState=e||-1}depth(){let t=0,e=this;for(;e!==null;)e=e.parentCtx,t+=1;return t}isEmpty(){return this.invokingState===-1}getSourceInterval(){return g6}getRuleContext(){return this}getPayload(){return this}getText(){return this.getChildCount()===0?"":this.children.map(function(t){return t.getText()}).join("")}getAltNumber(){return 0}setAltNumber(t){}getChild(t){return null}getChildCount(){return 0}accept(t){return t.visitChildren(this)}toStringTree(t,e){return _6.toStringTree(this,t,e)}toString(t,e){t=t||null,e=e||null;let i=this,r="[";for(;i!==null&&i!==e;){if(t===null)i.isEmpty()||(r+=i.invokingState);else{let s=i.ruleIndex,a=s>=0&&s{var PT=nf(),{Hash:$T,Map:VT,equalArrays:UT}=Li(),pt=class n{constructor(t){this.cachedHashCode=t}isEmpty(){return this===n.EMPTY}hasEmptyPath(){return this.getReturnState(this.length-1)===n.EMPTY_RETURN_STATE}hashCode(){return this.cachedHashCode}updateHashCode(t){t.update(this.cachedHashCode)}};pt.EMPTY=null;pt.EMPTY_RETURN_STATE=2147483647;pt.globalNodeCount=1;pt.id=pt.globalNodeCount;var ab=class{constructor(){this.cache=new VT}add(t){if(t===pt.EMPTY)return pt.EMPTY;let e=this.cache.get(t)||null;return e!==null?e:(this.cache.put(t,t),t)}get(t){return this.cache.get(t)||null}get length(){return this.cache.length}},jn=class n extends pt{constructor(t,e){let i=0,r=new $T;t!==null?r.update(t,e):r.update(1),i=r.finish(),super(i),this.parentCtx=t,this.returnState=e}getParent(t){return this.parentCtx}getReturnState(t){return this.returnState}equals(t){return this===t?!0:t instanceof n?this.hashCode()!==t.hashCode()||this.returnState!==t.returnState?!1:this.parentCtx==null?t.parentCtx==null:this.parentCtx.equals(t.parentCtx):!1}toString(){let t=this.parentCtx===null?"":this.parentCtx.toString();return t.length===0?this.returnState===pt.EMPTY_RETURN_STATE?"$":""+this.returnState:""+this.returnState+" "+t}get length(){return 1}static create(t,e){return e===pt.EMPTY_RETURN_STATE&&t===null?pt.EMPTY:new n(t,e)}},Su=class extends jn{constructor(){super(null,pt.EMPTY_RETURN_STATE)}isEmpty(){return!0}getParent(t){return null}getReturnState(t){return this.returnState}equals(t){return this===t}toString(){return"$"}};pt.EMPTY=new Su;var Nr=class n extends pt{constructor(t,e){let i=new $T;i.update(t,e);let r=i.finish();return super(r),this.parents=t,this.returnStates=e,this}isEmpty(){return this.returnStates[0]===pt.EMPTY_RETURN_STATE}getParent(t){return this.parents[t]}getReturnState(t){return this.returnStates[t]}equals(t){return this===t?!0:t instanceof n?this.hashCode()!==t.hashCode()?!1:UT(this.returnStates,t.returnStates)&&UT(this.parents,t.parents):!1}toString(){if(this.isEmpty())return"[]";{let t="[";for(let e=0;e0&&(t=t+", "),this.returnStates[e]===pt.EMPTY_RETURN_STATE){t=t+"$";continue}t=t+this.returnStates[e],this.parents[e]!==null?t=t+" "+this.parents[e]:t=t+"null"}return t+"]"}}get length(){return this.returnStates.length}};function BT(n,t){if(t==null&&(t=PT.EMPTY),t.parentCtx===null||t===PT.EMPTY)return pt.EMPTY;let e=BT(n,t.parentCtx),r=n.states[t.invokingState].transitions[0];return jn.create(e,r.followState.stateNumber)}function ob(n,t,e,i){if(n===t)return n;if(n instanceof jn&&t instanceof jn)return v6(n,t,e,i);if(e){if(n instanceof Su)return n;if(t instanceof Su)return t}return n instanceof jn&&(n=new Nr([n.getParent()],[n.returnState])),t instanceof jn&&(t=new Nr([t.getParent()],[t.returnState])),y6(n,t,e,i)}function v6(n,t,e,i){if(i!==null){let s=i.get(n,t);if(s!==null||(s=i.get(t,n),s!==null))return s}let r=b6(n,t,e);if(r!==null)return i!==null&&i.set(n,t,r),r;if(n.returnState===t.returnState){let s=ob(n.parentCtx,t.parentCtx,e,i);if(s===n.parentCtx)return n;if(s===t.parentCtx)return t;let a=jn.create(s,n.returnState);return i!==null&&i.set(n,t,a),a}else{let s=null;if((n===t||n.parentCtx!==null&&n.parentCtx===t.parentCtx)&&(s=n.parentCtx),s!==null){let c=[n.returnState,t.returnState];n.returnState>t.returnState&&(c[0]=t.returnState,c[1]=n.returnState);let u=[s,s],d=new Nr(u,c);return i!==null&&i.set(n,t,d),d}let a=[n.returnState,t.returnState],o=[n.parentCtx,t.parentCtx];n.returnState>t.returnState&&(a[0]=t.returnState,a[1]=n.returnState,o=[t.parentCtx,n.parentCtx]);let l=new Nr(o,a);return i!==null&&i.set(n,t,l),l}}function b6(n,t,e){if(e){if(n===pt.EMPTY||t===pt.EMPTY)return pt.EMPTY}else{if(n===pt.EMPTY&&t===pt.EMPTY)return pt.EMPTY;if(n===pt.EMPTY){let i=[t.returnState,pt.EMPTY_RETURN_STATE],r=[t.parentCtx,null];return new Nr(r,i)}else if(t===pt.EMPTY){let i=[n.returnState,pt.EMPTY_RETURN_STATE],r=[n.parentCtx,null];return new Nr(r,i)}}return null}function y6(n,t,e,i){if(i!==null){let u=i.get(n,t);if(u!==null||(u=i.get(t,n),u!==null))return u}let r=0,s=0,a=0,o=[],l=[];for(;r{var{Set:jT,BitSet:WT}=Li(),{Token:to}=ni(),{ATNConfig:w6}=yu(),{IntervalSet:qT}=an(),{RuleStopState:x6}=gs(),{RuleTransition:S6,NotSetTransition:k6,WildcardTransition:M6,AbstractPredicateTransition:T6}=xl(),{predictionContextFromRuleContext:E6,PredictionContext:GT,SingletonPredictionContext:I6}=vs(),rf=class n{constructor(t){this.atn=t}getDecisionLookahead(t){if(t===null)return null;let e=t.transitions.length,i=[];for(let r=0;r{var A6=lb(),{IntervalSet:D6}=an(),{Token:kl}=ni(),R6=(()=>{class n{constructor(e,i){this.grammarType=e,this.maxTokenType=i,this.states=[],this.decisionToState=[],this.ruleToStartState=[],this.ruleToStopState=null,this.modeNameToStartState={},this.ruleToTokenType=null,this.lexerActions=null,this.modeToStartState=[]}nextTokensInContext(e,i){return new A6(this).LOOK(e,null,i)}nextTokensNoContext(e){return e.nextTokenWithinRule!==null||(e.nextTokenWithinRule=this.nextTokensInContext(e,null),e.nextTokenWithinRule.readOnly=!0),e.nextTokenWithinRule}nextTokens(e,i){return i===void 0?this.nextTokensNoContext(e):this.nextTokensInContext(e,i)}addState(e){e!==null&&(e.atn=this,e.stateNumber=this.states.length),this.states.push(e)}removeState(e){this.states[e.stateNumber]=null}defineDecisionState(e){return this.decisionToState.push(e),e.decision=this.decisionToState.length-1,e.decision}getDecisionState(e){return this.decisionToState.length===0?null:this.decisionToState[e]}getExpectedTokens(e,i){if(e<0||e>=this.states.length)throw"Invalid state number.";let r=this.states[e],s=this.nextTokens(r);if(!s.contains(kl.EPSILON))return s;let a=new D6;for(a.addSet(s),a.removeOne(kl.EPSILON);i!==null&&i.invokingState>=0&&s.contains(kl.EPSILON);){let l=this.states[i.invokingState].transitions[0];s=this.nextTokens(l.followState),a.addSet(s),a.removeOne(kl.EPSILON),i=i.parentCtx}return s.contains(kl.EPSILON)&&a.addOne(kl.EOF),a}}return n.INVALID_ALT_NUMBER=0,n})();YT.exports=R6});var ZT=X((Ore,QT)=>{QT.exports={LEXER:0,PARSER:1}});var cb=X((Nre,XT)=>{var Ml=class{constructor(t){t===void 0&&(t=null),this.readOnly=!1,this.verifyATN=t===null?!0:t.verifyATN,this.generateRuleBypassTransitions=t===null?!1:t.generateRuleBypassTransitions}};Ml.defaultOptions=new Ml;Ml.defaultOptions.readOnly=!0;XT.exports=Ml});var gb=X((Fre,JT)=>{var bs={CHANNEL:0,CUSTOM:1,MODE:2,MORE:3,POP_MODE:4,PUSH_MODE:5,SKIP:6,TYPE:7},dr=class{constructor(t){this.actionType=t,this.isPositionDependent=!1}hashCode(){let t=new Hash;return this.updateHashCode(t),t.finish()}updateHashCode(t){t.update(this.actionType)}equals(t){return this===t}},ku=class extends dr{constructor(){super(bs.SKIP)}execute(t){t.skip()}toString(){return"skip"}};ku.INSTANCE=new ku;var ub=class n extends dr{constructor(t){super(bs.TYPE),this.type=t}execute(t){t.type=this.type}updateHashCode(t){t.update(this.actionType,this.type)}equals(t){return this===t?!0:t instanceof n?this.type===t.type:!1}toString(){return"type("+this.type+")"}},db=class n extends dr{constructor(t){super(bs.PUSH_MODE),this.mode=t}execute(t){t.pushMode(this.mode)}updateHashCode(t){t.update(this.actionType,this.mode)}equals(t){return this===t?!0:t instanceof n?this.mode===t.mode:!1}toString(){return"pushMode("+this.mode+")"}},Mu=class extends dr{constructor(){super(bs.POP_MODE)}execute(t){t.popMode()}toString(){return"popMode"}};Mu.INSTANCE=new Mu;var Tu=class extends dr{constructor(){super(bs.MORE)}execute(t){t.more()}toString(){return"more"}};Tu.INSTANCE=new Tu;var hb=class n extends dr{constructor(t){super(bs.MODE),this.mode=t}execute(t){t.mode(this.mode)}updateHashCode(t){t.update(this.actionType,this.mode)}equals(t){return this===t?!0:t instanceof n?this.mode===t.mode:!1}toString(){return"mode("+this.mode+")"}},mb=class n extends dr{constructor(t,e){super(bs.CUSTOM),this.ruleIndex=t,this.actionIndex=e,this.isPositionDependent=!0}execute(t){t.action(null,this.ruleIndex,this.actionIndex)}updateHashCode(t){t.update(this.actionType,this.ruleIndex,this.actionIndex)}equals(t){return this===t?!0:t instanceof n?this.ruleIndex===t.ruleIndex&&this.actionIndex===t.actionIndex:!1}},fb=class n extends dr{constructor(t){super(bs.CHANNEL),this.channel=t}execute(t){t._channel=this.channel}updateHashCode(t){t.update(this.actionType,this.channel)}equals(t){return this===t?!0:t instanceof n?this.channel===t.channel:!1}toString(){return"channel("+this.channel+")"}},pb=class n extends dr{constructor(t,e){super(e.actionType),this.offset=t,this.action=e,this.isPositionDependent=!0}execute(t){this.action.execute(t)}updateHashCode(t){t.update(this.actionType,this.offset,this.action)}equals(t){return this===t?!0:t instanceof n?this.offset===t.offset&&this.action===t.action:!1}};JT.exports={LexerActionType:bs,LexerSkipAction:ku,LexerChannelAction:fb,LexerCustomAction:mb,LexerIndexedCustomAction:pb,LexerMoreAction:Tu,LexerTypeAction:ub,LexerPushModeAction:db,LexerPopModeAction:Mu,LexerModeAction:hb}});var Tb=X((Pre,lE)=>{var{Token:_b}=ni(),L6=io(),sf=ZT(),{ATNState:ji,BasicState:eE,DecisionState:O6,BlockStartState:vb,BlockEndState:bb,LoopEndState:Tl,RuleStartState:tE,RuleStopState:Eu,TokensStartState:N6,PlusLoopbackState:iE,StarLoopbackState:yb,StarLoopEntryState:El,PlusBlockStartState:Cb,StarBlockStartState:wb,BasicBlockStartState:nE}=gs(),{Transition:Fr,AtomTransition:xb,SetTransition:F6,NotSetTransition:P6,RuleTransition:rE,RangeTransition:sE,ActionTransition:U6,EpsilonTransition:Iu,WildcardTransition:$6,PredicateTransition:V6,PrecedencePredicateTransition:B6}=xl(),{IntervalSet:z6}=an(),H6=cb(),{LexerActionType:oa,LexerSkipAction:j6,LexerChannelAction:W6,LexerCustomAction:q6,LexerMoreAction:G6,LexerTypeAction:K6,LexerPushModeAction:Y6,LexerPopModeAction:Q6,LexerModeAction:Z6}=gb(),X6="AADB8D7E-AEEF-4415-AD2B-8204D6CF042E",Mb="59627784-3BE5-417A-B9EB-8131A7286089",Sb=[X6,Mb],aE=3,oE=Mb;function af(n,t){let e=[];return e[n-1]=t,e.map(function(i){return t})}var kb=class{constructor(t){t==null&&(t=H6.defaultOptions),this.deserializationOptions=t,this.stateFactories=null,this.actionFactories=null}isFeatureSupported(t,e){let i=Sb.indexOf(t);return i<0?!1:Sb.indexOf(e)>=i}deserialize(t){this.reset(t),this.checkVersion(),this.checkUUID();let e=this.readATN();this.readStates(e),this.readRules(e),this.readModes(e);let i=[];return this.readSets(e,i,this.readInt.bind(this)),this.isFeatureSupported(Mb,this.uuid)&&this.readSets(e,i,this.readInt32.bind(this)),this.readEdges(e,i),this.readDecisions(e),this.readLexerActions(e),this.markPrecedenceDecisions(e),this.verifyATN(e),this.deserializationOptions.generateRuleBypassTransitions&&e.grammarType===sf.PARSER&&(this.generateRuleBypassTransitions(e),this.verifyATN(e)),e}reset(t){let e=function(r){let s=r.charCodeAt(0);return s>1?s-2:s+65534},i=t.split("").map(e);i[0]=t.charCodeAt(0),this.data=i,this.pos=0}checkVersion(){let t=this.readInt();if(t!==aE)throw"Could not deserialize ATN with version "+t+" (expected "+aE+")."}checkUUID(){let t=this.readUUID();if(Sb.indexOf(t)<0)throw""+t+oE,oE;this.uuid=t}readATN(){let t=this.readInt(),e=this.readInt();return new L6(t,e)}readStates(t){let e,i,r,s=[],a=[],o=this.readInt();for(let u=0;u0;)s.addTransition(c.transitions[u-1]),c.transitions=c.transitions.slice(-1);t.ruleToStartState[e].addTransition(new Iu(s)),a.addTransition(new Iu(l));let d=new eE;t.addState(d),d.addTransition(new xb(a,t.ruleToTokenType[e])),s.addTransition(new Iu(d))}stateIsEndStateFor(t,e){if(t.ruleIndex!==e||!(t instanceof El))return null;let i=t.transitions[t.transitions.length-1].target;return i instanceof Tl&&i.epsilonOnlyTransitions&&i.transitions[0].target instanceof Eu?t:null}markPrecedenceDecisions(t){for(let e=0;e=0):this.checkCondition(i.transitions.length<=1||i instanceof Eu)}}checkCondition(t,e){if(!t)throw e==null&&(e="IllegalState"),e}readInt(){return this.data[this.pos++]}readInt32(){let t=this.readInt(),e=this.readInt();return t|e<<16}readLong(){let t=this.readInt32(),e=this.readInt32();return t&4294967295|e<<32}readUUID(){let t=[];for(let e=7;e>=0;e--){let i=this.readInt();t[2*e+1]=i&255,t[2*e]=i>>8&255}return Ni[t[0]]+Ni[t[1]]+Ni[t[2]]+Ni[t[3]]+"-"+Ni[t[4]]+Ni[t[5]]+"-"+Ni[t[6]]+Ni[t[7]]+"-"+Ni[t[8]]+Ni[t[9]]+"-"+Ni[t[10]]+Ni[t[11]]+Ni[t[12]]+Ni[t[13]]+Ni[t[14]]+Ni[t[15]]}edgeFactory(t,e,i,r,s,a,o,l){let c=t.states[r];switch(e){case Fr.EPSILON:return new Iu(c);case Fr.RANGE:return o!==0?new sE(c,_b.EOF,a):new sE(c,s,a);case Fr.RULE:return new rE(t.states[s],a,o,c);case Fr.PREDICATE:return new V6(c,s,a,o!==0);case Fr.PRECEDENCE:return new B6(c,s);case Fr.ATOM:return o!==0?new xb(c,_b.EOF):new xb(c,s);case Fr.ACTION:return new U6(c,s,a,o!==0);case Fr.SET:return new F6(c,l[s]);case Fr.NOT_SET:return new P6(c,l[s]);case Fr.WILDCARD:return new $6(c);default:throw"The specified transition type: "+e+" is not valid."}}stateFactory(t,e){if(this.stateFactories===null){let i=[];i[ji.INVALID_TYPE]=null,i[ji.BASIC]=()=>new eE,i[ji.RULE_START]=()=>new tE,i[ji.BLOCK_START]=()=>new nE,i[ji.PLUS_BLOCK_START]=()=>new Cb,i[ji.STAR_BLOCK_START]=()=>new wb,i[ji.TOKEN_START]=()=>new N6,i[ji.RULE_STOP]=()=>new Eu,i[ji.BLOCK_END]=()=>new bb,i[ji.STAR_LOOP_BACK]=()=>new yb,i[ji.STAR_LOOP_ENTRY]=()=>new El,i[ji.PLUS_LOOP_BACK]=()=>new iE,i[ji.LOOP_END]=()=>new Tl,this.stateFactories=i}if(t>this.stateFactories.length||this.stateFactories[t]===null)throw"The specified state type "+t+" is not valid.";{let i=this.stateFactories[t]();if(i!==null)return i.ruleIndex=e,i}}lexerActionFactory(t,e,i){if(this.actionFactories===null){let r=[];r[oa.CHANNEL]=(s,a)=>new W6(s),r[oa.CUSTOM]=(s,a)=>new q6(s,a),r[oa.MODE]=(s,a)=>new Z6(s),r[oa.MORE]=(s,a)=>G6.INSTANCE,r[oa.POP_MODE]=(s,a)=>Q6.INSTANCE,r[oa.PUSH_MODE]=(s,a)=>new Y6(s),r[oa.SKIP]=(s,a)=>j6.INSTANCE,r[oa.TYPE]=(s,a)=>new K6(s),this.actionFactories=r}if(t>this.actionFactories.length||this.actionFactories[t]===null)throw"The specified lexer action type "+t+" is not valid.";return this.actionFactories[t](e,i)}};function J6(){let n=[];for(let t=0;t<256;t++)n[t]=(t+256).toString(16).substr(1).toUpperCase();return n}var Ni=J6();lE.exports=kb});var Ru=X((Ure,cE)=>{var Au=class{syntaxError(t,e,i,r,s,a){}reportAmbiguity(t,e,i,r,s,a,o){}reportAttemptingFullContext(t,e,i,r,s,a){}reportContextSensitivity(t,e,i,r,s,a){}},Du=class extends Au{constructor(){super()}syntaxError(t,e,i,r,s,a){console.error("line "+i+":"+r+" "+s)}};Du.INSTANCE=new Du;var Eb=class extends Au{constructor(t){if(super(),t===null)throw"delegates";return this.delegates=t,this}syntaxError(t,e,i,r,s,a){this.delegates.map(o=>o.syntaxError(t,e,i,r,s,a))}reportAmbiguity(t,e,i,r,s,a,o){this.delegates.map(l=>l.reportAmbiguity(t,e,i,r,s,a,o))}reportAttemptingFullContext(t,e,i,r,s,a){this.delegates.map(o=>o.reportAttemptingFullContext(t,e,i,r,s,a))}reportContextSensitivity(t,e,i,r,s,a){this.delegates.map(o=>o.reportContextSensitivity(t,e,i,r,s,a))}};cE.exports={ErrorListener:Au,ConsoleErrorListener:Du,ProxyErrorListener:Eb}});var Ab=X(($re,uE)=>{var{Token:Ib}=ni(),{ConsoleErrorListener:eB}=Ru(),{ProxyErrorListener:tB}=Ru(),iB=(()=>{class n{constructor(){this._listeners=[eB.INSTANCE],this._interp=null,this._stateNumber=-1}checkVersion(e){let i="4.9.3";i!==e&&console.log("ANTLR runtime and generated code versions disagree: "+i+"!="+e)}addErrorListener(e){this._listeners.push(e)}removeErrorListeners(){this._listeners=[]}getLiteralNames(){return Object.getPrototypeOf(this).constructor.literalNames||[]}getSymbolicNames(){return Object.getPrototypeOf(this).constructor.symbolicNames||[]}getTokenNames(){if(!this.tokenNames){let e=this.getLiteralNames(),i=this.getSymbolicNames(),r=e.length>i.length?e.length:i.length;this.tokenNames=[];for(let s=0;s";let i=e.text;return i===null&&(e.type===Ib.EOF?i="":i="<"+e.type+">"),i=i.replace(` -`,"\\n").replace("\r","\\r").replace(" ","\\t"),"'"+i+"'"}getErrorListenerDispatch(){return new tB(this._listeners)}sempred(e,i,r){return!0}precpred(e,i){return!0}get state(){return this._stateNumber}set state(e){this._stateNumber=e}}return n.tokenTypeMapCache={},n.ruleIndexMapCache={},n})();uE.exports=iB});var mE=X((Vre,hE)=>{var dE=ni().CommonToken,Db=class{},Lu=class extends Db{constructor(t){super(),this.copyText=t===void 0?!1:t}create(t,e,i,r,s,a,o,l){let c=new dE(t,e,r,s,a);return c.line=o,c.column=l,i!==null?c.text=i:this.copyText&&t[1]!==null&&(c.text=t[1].getText(s,a)),c}createThin(t,e){let i=new dE(null,t);return i.text=e,i}};Lu.DEFAULT=new Lu;hE.exports=Lu});var hr=X((Bre,fE)=>{var{PredicateTransition:nB}=xl(),{Interval:rB}=an().Interval,no=class n extends Error{constructor(t){if(super(t.message),Error.captureStackTrace)Error.captureStackTrace(this,n);else var e=new Error().stack;this.message=t.message,this.recognizer=t.recognizer,this.input=t.input,this.ctx=t.ctx,this.offendingToken=null,this.offendingState=-1,this.recognizer!==null&&(this.offendingState=this.recognizer.state)}getExpectedTokens(){return this.recognizer!==null?this.recognizer.atn.getExpectedTokens(this.offendingState,this.ctx):null}toString(){return this.message}},Rb=class extends no{constructor(t,e,i,r){super({message:"",recognizer:t,input:e,ctx:null}),this.startIndex=i,this.deadEndConfigs=r}toString(){let t="";return this.startIndex>=0&&this.startIndex{var{Token:Wi}=ni(),aB=Ab(),oB=mE(),{RecognitionException:lB}=hr(),{LexerNoViableAltException:cB}=hr(),Pr=class n extends aB{constructor(t){super(),this._input=t,this._factory=oB.DEFAULT,this._tokenFactorySourcePair=[this,t],this._interp=null,this._token=null,this._tokenStartCharIndex=-1,this._tokenStartLine=-1,this._tokenStartColumn=-1,this._hitEOF=!1,this._channel=Wi.DEFAULT_CHANNEL,this._type=Wi.INVALID_TYPE,this._modeStack=[],this._mode=n.DEFAULT_MODE,this._text=null}reset(){this._input!==null&&this._input.seek(0),this._token=null,this._type=Wi.INVALID_TYPE,this._channel=Wi.DEFAULT_CHANNEL,this._tokenStartCharIndex=-1,this._tokenStartColumn=-1,this._tokenStartLine=-1,this._text=null,this._hitEOF=!1,this._mode=n.DEFAULT_MODE,this._modeStack=[],this._interp.reset()}nextToken(){if(this._input===null)throw"nextToken requires a non-null input stream.";let t=this._input.mark();try{for(;;){if(this._hitEOF)return this.emitEOF(),this._token;this._token=null,this._channel=Wi.DEFAULT_CHANNEL,this._tokenStartCharIndex=this._input.index,this._tokenStartColumn=this._interp.column,this._tokenStartLine=this._interp.line,this._text=null;let e=!1;for(;;){this._type=Wi.INVALID_TYPE;let i=n.SKIP;try{i=this._interp.match(this._input,this._mode)}catch(r){if(r instanceof lB)this.notifyListeners(r),this.recover(r);else throw console.log(r.stack),r}if(this._input.LA(1)===Wi.EOF&&(this._hitEOF=!0),this._type===Wi.INVALID_TYPE&&(this._type=i),this._type===n.SKIP){e=!0;break}if(this._type!==n.MORE)break}if(!e)return this._token===null&&this.emit(),this._token}}finally{this._input.release(t)}}skip(){this._type=n.SKIP}more(){this._type=n.MORE}mode(t){this._mode=t}pushMode(t){this._interp.debug&&console.log("pushMode "+t),this._modeStack.push(this._mode),this.mode(t)}popMode(){if(this._modeStack.length===0)throw"Empty Stack";return this._interp.debug&&console.log("popMode back to "+this._modeStack.slice(0,-1)),this.mode(this._modeStack.pop()),this._mode}emitToken(t){this._token=t}emit(){let t=this._factory.create(this._tokenFactorySourcePair,this._type,this._text,this._channel,this._tokenStartCharIndex,this.getCharIndex()-1,this._tokenStartLine,this._tokenStartColumn);return this.emitToken(t),t}emitEOF(){let t=this.column,e=this.line,i=this._factory.create(this._tokenFactorySourcePair,Wi.EOF,null,Wi.DEFAULT_CHANNEL,this._input.index,this._input.index-1,e,t);return this.emitToken(i),i}getCharIndex(){return this._input.index}getAllTokens(){let t=[],e=this.nextToken();for(;e.type!==Wi.EOF;)t.push(e),e=this.nextToken();return t}notifyListeners(t){let e=this._tokenStartCharIndex,i=this._input.index,r=this._input.getText(e,i),s="token recognition error at: '"+this.getErrorDisplay(r)+"'";this.getErrorListenerDispatch().syntaxError(this,null,this._tokenStartLine,this._tokenStartColumn,s,t)}getErrorDisplay(t){let e=[];for(let i=0;i":t===` -`?"\\n":t===" "?"\\t":t==="\r"?"\\r":t}getCharErrorDisplay(t){return"'"+this.getErrorDisplayForChar(t)+"'"}recover(t){this._input.LA(1)!==Wi.EOF&&(t instanceof cB?this._interp.consume(this._input):this._input.consume())}get inputStream(){return this._input}set inputStream(t){this._input=null,this._tokenFactorySourcePair=[this,this._input],this.reset(),this._input=t,this._tokenFactorySourcePair=[this,this._input]}get sourceName(){return this._input.sourceName}get type(){return this._type}set type(t){this._type=t}get line(){return this._interp.line}set line(t){this._interp.line=t}get column(){return this._interp.column}set column(t){this._interp.column=t}get text(){return this._text!==null?this._text:this._interp.getText(this._input)}set text(t){this._text=t}};Pr.DEFAULT_MODE=0;Pr.MORE=-2;Pr.SKIP=-3;Pr.DEFAULT_TOKEN_CHANNEL=Wi.DEFAULT_CHANNEL;Pr.HIDDEN=Wi.HIDDEN_CHANNEL;Pr.MIN_CHAR_VALUE=0;Pr.MAX_CHAR_VALUE=1114111;pE.exports=Pr});var so=X((Hre,_E)=>{var uB=io(),ro=Li(),{SemanticContext:gE}=wl(),{merge:dB}=vs();function hB(n){return n.hashCodeForConfigSet()}function mB(n,t){return n===t?!0:n===null||t===null?!1:n.equalsForConfigSet(t)}var of=class n{constructor(t){this.configLookup=new ro.Set(hB,mB),this.fullCtx=t===void 0?!0:t,this.readOnly=!1,this.configs=[],this.uniqueAlt=0,this.conflictingAlts=null,this.hasSemanticContext=!1,this.dipsIntoOuterContext=!1,this.cachedHashCode=-1}add(t,e){if(e===void 0&&(e=null),this.readOnly)throw"This set is readonly";t.semanticContext!==gE.NONE&&(this.hasSemanticContext=!0),t.reachesIntoOuterContext>0&&(this.dipsIntoOuterContext=!0);let i=this.configLookup.add(t);if(i===t)return this.cachedHashCode=-1,this.configs.push(t),!0;let r=!this.fullCtx,s=dB(i.context,t.context,r,e);return i.reachesIntoOuterContext=Math.max(i.reachesIntoOuterContext,t.reachesIntoOuterContext),t.precedenceFilterSuppressed&&(i.precedenceFilterSuppressed=!0),i.context=s,!0}getStates(){let t=new ro.Set;for(let e=0;e{var{ATNConfigSet:fB}=so(),{Hash:pB,Set:gB}=Li(),Ub=class{constructor(t,e){this.alt=e,this.pred=t}toString(){return"("+this.pred+", "+this.alt+")"}},$b=class n{constructor(t,e){return t===null&&(t=-1),e===null&&(e=new fB),this.stateNumber=t,this.configs=e,this.edges=null,this.isAcceptState=!1,this.prediction=0,this.lexerActionExecutor=null,this.requiresFullContext=!1,this.predicates=null,this}getAltSet(){let t=new gB;if(this.configs!==null)for(let e=0;e",this.predicates!==null?t=t+this.predicates:t=t+this.prediction),t}hashCode(){let t=new pB;return t.update(this.configs),t.finish()}};vE.exports={DFAState:$b,PredPrediction:Ub}});var Vb=X((Wre,bE)=>{var{DFAState:_B}=Il(),{ATNConfigSet:vB}=so(),{getCachedPredictionContext:bB}=vs(),{Map:yB}=Li(),lf=class{constructor(t,e){return this.atn=t,this.sharedContextCache=e,this}getCachedContext(t){if(this.sharedContextCache===null)return t;let e=new yB;return bB(t,this.sharedContextCache,e)}};lf.ERROR=new _B(2147483647,new vB);bE.exports=lf});var CE=X((qre,yE)=>{var{hashStuff:CB}=Li(),{LexerIndexedCustomAction:Bb}=gb(),zb=class n{constructor(t){return this.lexerActions=t===null?[]:t,this.cachedHashCode=CB(t),this}fixOffsetBeforeMatch(t){let e=null;for(let i=0;i{var{Token:Al}=ni(),cf=Ou(),wB=io(),uf=Vb(),{DFAState:xB}=Il(),{OrderedATNConfigSet:wE}=so(),{PredictionContext:Hb}=vs(),{SingletonPredictionContext:SB}=vs(),{RuleStopState:xE}=gs(),{LexerATNConfig:Ur}=yu(),{Transition:la}=xl(),kB=CE(),{LexerNoViableAltException:MB}=hr();function SE(n){n.index=-1,n.line=0,n.column=-1,n.dfaState=null}var jb=class{constructor(){SE(this)}reset(){SE(this)}},TB=(()=>{class n extends uf{constructor(e,i,r,s){super(i,s),this.decisionToDFA=r,this.recog=e,this.startIndex=-1,this.line=1,this.column=0,this.mode=cf.DEFAULT_MODE,this.prevAccept=new jb}copyState(e){this.column=e.column,this.line=e.line,this.mode=e.mode,this.startIndex=e.startIndex}match(e,i){this.match_calls+=1,this.mode=i;let r=e.mark();try{this.startIndex=e.index,this.prevAccept.reset();let s=this.decisionToDFA[i];return s.s0===null?this.matchATN(e):this.execATN(e,s.s0)}finally{e.release(r)}}reset(){this.prevAccept.reset(),this.startIndex=-1,this.line=1,this.column=0,this.mode=cf.DEFAULT_MODE}matchATN(e){let i=this.atn.modeToStartState[this.mode];n.debug&&console.log("matchATN mode "+this.mode+" start: "+i);let r=this.mode,s=this.computeStartState(e,i),a=s.hasSemanticContext;s.hasSemanticContext=!1;let o=this.addDFAState(s);a||(this.decisionToDFA[this.mode].s0=o);let l=this.execATN(e,o);return n.debug&&console.log("DFA after matchATN: "+this.decisionToDFA[r].toLexerString()),l}execATN(e,i){n.debug&&console.log("start state closure="+i.configs),i.isAcceptState&&this.captureSimState(this.prevAccept,e,i);let r=e.LA(1),s=i;for(;;){n.debug&&console.log("execATN loop starting closure: "+s.configs);let a=this.getExistingTargetState(s,r);if(a===null&&(a=this.computeTargetState(e,s,r)),a===uf.ERROR||(r!==Al.EOF&&this.consume(e),a.isAcceptState&&(this.captureSimState(this.prevAccept,e,a),r===Al.EOF)))break;r=e.LA(1),s=a}return this.failOrAccept(this.prevAccept,e,s.configs,r)}getExistingTargetState(e,i){if(e.edges===null||in.MAX_DFA_EDGE)return null;let r=e.edges[i-n.MIN_DFA_EDGE];return r===void 0&&(r=null),n.debug&&r!==null&&console.log("reuse state "+e.stateNumber+" edge to "+r.stateNumber),r}computeTargetState(e,i,r){let s=new wE;return this.getReachableConfigSet(e,i.configs,s,r),s.items.length===0?(s.hasSemanticContext||this.addDFAEdge(i,r,uf.ERROR),uf.ERROR):this.addDFAEdge(i,r,null,s)}failOrAccept(e,i,r,s){if(this.prevAccept.dfaState!==null){let a=e.dfaState.lexerActionExecutor;return this.accept(i,a,this.startIndex,e.index,e.line,e.column),e.dfaState.prediction}else{if(s===Al.EOF&&i.index===this.startIndex)return Al.EOF;throw new MB(this.recog,i,this.startIndex,r)}}getReachableConfigSet(e,i,r,s){let a=wB.INVALID_ALT_NUMBER;for(let o=0;on.MAX_DFA_EDGE||(n.debug&&console.log("EDGE "+e+" -> "+r+" upon "+i),e.edges===null&&(e.edges=[]),e.edges[i-n.MIN_DFA_EDGE]=r),r}addDFAState(e){let i=new xB(null,e),r=null;for(let l=0;l{var{Map:EB,BitSet:Wb,AltDict:IB,hashStuff:AB}=Li(),TE=io(),{RuleStopState:EE}=gs(),{ATNConfigSet:DB}=so(),{ATNConfig:RB}=yu(),{SemanticContext:LB}=wl(),$r={SLL:0,LL:1,LL_EXACT_AMBIG_DETECTION:2,hasSLLConflictTerminatingPrediction:function(n,t){if($r.allConfigsInRuleStopStates(t))return!0;if(n===$r.SLL&&t.hasSemanticContext){let i=new DB;for(let r=0;r1)return!0;return!1},allSubsetsEqual:function(n){let t=null;for(let e=0;e{var RE=nf(),hf=eo(),OB=hf.INVALID_INTERVAL,AE=hf.TerminalNode,NB=hf.TerminalNodeImpl,DE=hf.ErrorNodeImpl,FB=an().Interval,df=class extends RE{constructor(t,e){t=t||null,e=e||null,super(t,e),this.ruleIndex=-1,this.children=null,this.start=null,this.stop=null,this.exception=null}copyFrom(t){this.parentCtx=t.parentCtx,this.invokingState=t.invokingState,this.children=null,this.start=t.start,this.stop=t.stop,t.children&&(this.children=[],t.children.map(function(e){e instanceof DE&&(this.children.push(e),e.parentCtx=this)},this))}enterRule(t){}exitRule(t){}addChild(t){return this.children===null&&(this.children=[]),this.children.push(t),t}removeLastChild(){this.children!==null&&this.children.pop()}addTokenNode(t){let e=new NB(t);return this.addChild(e),e.parentCtx=this,e}addErrorNode(t){let e=new DE(t);return this.addChild(e),e.parentCtx=this,e}getChild(t,e){if(e=e||null,this.children===null||t<0||t>=this.children.length)return null;if(e===null)return this.children[t];for(let i=0;i=this.children.length)return null;for(let i=0;i{var Pu=Li(),{Set:OE,BitSet:NE,DoubleDict:PB}=Pu,Ci=io(),{ATNState:mf,RuleStopState:Nu}=gs(),{ATNConfig:Fi}=yu(),{ATNConfigSet:ao}=so(),{Token:ys}=ni(),{DFAState:Kb,PredPrediction:UB}=Il(),Fu=Vb(),wi=qb(),FE=nf(),Qre=Gb(),{SemanticContext:ca}=wl(),{PredictionContext:PE}=vs(),{Interval:Yb}=an(),{Transition:ua,SetTransition:$B,NotSetTransition:VB,RuleTransition:BB,ActionTransition:zB}=xl(),{NoViableAltException:HB}=hr(),{SingletonPredictionContext:jB,predictionContextFromRuleContext:WB}=vs(),Qb=class extends Fu{constructor(t,e,i,r){super(e,r),this.parser=t,this.decisionToDFA=i,this.predictionMode=wi.LL,this._input=null,this._startIndex=0,this._outerContext=null,this._dfa=null,this.mergeCache=null,this.debug=!1,this.debug_closure=!1,this.debug_add=!1,this.debug_list_atn_decisions=!1,this.dfa_debug=!1,this.retry_debug=!1}reset(){}adaptivePredict(t,e,i){(this.debug||this.debug_list_atn_decisions)&&console.log("adaptivePredict decision "+e+" exec LA(1)=="+this.getLookaheadName(t)+" line "+t.LT(1).line+":"+t.LT(1).column),this._input=t,this._startIndex=t.index,this._outerContext=i;let r=this.decisionToDFA[e];this._dfa=r;let s=t.mark(),a=t.index;try{let o;if(r.precedenceDfa?o=r.getPrecedenceStartState(this.parser.getPrecedence()):o=r.s0,o===null){i===null&&(i=FE.EMPTY),(this.debug||this.debug_list_atn_decisions)&&console.log("predictATN decision "+r.decision+" exec LA(1)=="+this.getLookaheadName(t)+", outerContext="+i.toString(this.parser.ruleNames));let u=this.computeStartState(r.atnStartState,FE.EMPTY,!1);r.precedenceDfa?(r.s0.configs=u,u=this.applyPrecedenceFilter(u),o=this.addDFAState(r,new Kb(null,u)),r.setPrecedenceStartState(this.parser.getPrecedence(),o)):(o=this.addDFAState(r,new Kb(null,u)),r.s0=o)}let l=this.execATN(r,o,t,a,i);return this.debug&&console.log("DFA after predictATN: "+r.toString(this.parser.literalNames,this.parser.symbolicNames)),l}finally{this._dfa=null,this.mergeCache=null,t.seek(a),t.release(s)}}execATN(t,e,i,r,s){(this.debug||this.debug_list_atn_decisions)&&console.log("execATN decision "+t.decision+" exec LA(1)=="+this.getLookaheadName(i)+" line "+i.LT(1).line+":"+i.LT(1).column);let a,o=e;this.debug&&console.log("s0 = "+e);let l=i.LA(1);for(;;){let c=this.getExistingTargetState(o,l);if(c===null&&(c=this.computeTargetState(t,o,l)),c===Fu.ERROR){let u=this.noViableAlt(i,s,o.configs,r);if(i.seek(r),a=this.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(o.configs,s),a!==Ci.INVALID_ALT_NUMBER)return a;throw u}if(c.requiresFullContext&&this.predictionMode!==wi.SLL){let u=null;if(c.predicates!==null){this.debug&&console.log("DFA state has preds in DFA sim LL failover");let m=i.index;if(m!==r&&i.seek(r),u=this.evalSemanticContext(c.predicates,s,!0),u.length===1)return this.debug&&console.log("Full LL avoided"),u.minValue();m!==r&&i.seek(m)}this.dfa_debug&&console.log("ctx sensitive state "+s+" in "+c);let h=this.computeStartState(t.atnStartState,s,!0);return this.reportAttemptingFullContext(t,u,c.configs,r,i.index),a=this.execATNWithFullContext(t,c,h,i,r,s),a}if(c.isAcceptState){if(c.predicates===null)return c.prediction;let u=i.index;i.seek(r);let d=this.evalSemanticContext(c.predicates,s,!0);if(d.length===0)throw this.noViableAlt(i,s,c.configs,r);return d.length===1||this.reportAmbiguity(t,c,r,u,!1,d,c.configs),d.minValue()}o=c,l!==ys.EOF&&(i.consume(),l=i.LA(1))}}getExistingTargetState(t,e){let i=t.edges;return i===null?null:i[e+1]||null}computeTargetState(t,e,i){let r=this.computeReachSet(e.configs,i,!1);if(r===null)return this.addDFAEdge(t,e,i,Fu.ERROR),Fu.ERROR;let s=new Kb(null,r),a=this.getUniqueAlt(r);if(this.debug){let o=wi.getConflictingAltSubsets(r);console.log("SLL altSubSets="+Pu.arrayToString(o)+", configs="+r+", predict="+a+", allSubsetsConflict="+wi.allSubsetsConflict(o)+", conflictingAlts="+this.getConflictingAlts(r))}return a!==Ci.INVALID_ALT_NUMBER?(s.isAcceptState=!0,s.configs.uniqueAlt=a,s.prediction=a):wi.hasSLLConflictTerminatingPrediction(this.predictionMode,r)&&(s.configs.conflictingAlts=this.getConflictingAlts(r),s.requiresFullContext=!0,s.isAcceptState=!0,s.prediction=s.configs.conflictingAlts.minValue()),s.isAcceptState&&s.configs.hasSemanticContext&&(this.predicateDFAState(s,this.atn.getDecisionState(t.decision)),s.predicates!==null&&(s.prediction=Ci.INVALID_ALT_NUMBER)),s=this.addDFAEdge(t,e,i,s),s}predicateDFAState(t,e){let i=e.transitions.length,r=this.getConflictingAltsOrUniqueAlt(t.configs),s=this.getPredsForAmbigAlts(r,t.configs,i);s!==null?(t.predicates=this.getPredicatePredictions(r,s),t.prediction=Ci.INVALID_ALT_NUMBER):t.prediction=r.minValue()}execATNWithFullContext(t,e,i,r,s,a){(this.debug||this.debug_list_atn_decisions)&&console.log("execATNWithFullContext "+i);let o=!0,l=!1,c,u=i;r.seek(s);let d=r.LA(1),h=-1;for(;;){if(c=this.computeReachSet(u,d,o),c===null){let f=this.noViableAlt(r,a,u,s);r.seek(s);let g=this.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(u,a);if(g!==Ci.INVALID_ALT_NUMBER)return g;throw f}let m=wi.getConflictingAltSubsets(c);if(this.debug&&console.log("LL altSubSets="+m+", predict="+wi.getUniqueAlt(m)+", resolvesToJustOneViableAlt="+wi.resolvesToJustOneViableAlt(m)),c.uniqueAlt=this.getUniqueAlt(c),c.uniqueAlt!==Ci.INVALID_ALT_NUMBER){h=c.uniqueAlt;break}else if(this.predictionMode!==wi.LL_EXACT_AMBIG_DETECTION){if(h=wi.resolvesToJustOneViableAlt(m),h!==Ci.INVALID_ALT_NUMBER)break}else if(wi.allSubsetsConflict(m)&&wi.allSubsetsEqual(m)){l=!0,h=wi.getSingleViableAlt(m);break}u=c,d!==ys.EOF&&(r.consume(),d=r.LA(1))}return c.uniqueAlt!==Ci.INVALID_ALT_NUMBER?(this.reportContextSensitivity(t,h,c,s,r.index),h):(this.reportAmbiguity(t,e,s,r.index,l,null,c),h)}computeReachSet(t,e,i){this.debug&&console.log("in computeReachSet, starting closure: "+t),this.mergeCache===null&&(this.mergeCache=new PB);let r=new ao(i),s=null;for(let o=0;o0&&(a=this.getAltThatFinishedDecisionEntryRule(s),a!==Ci.INVALID_ALT_NUMBER)?a:Ci.INVALID_ALT_NUMBER}getAltThatFinishedDecisionEntryRule(t){let e=[];for(let i=0;i0||r.state instanceof Nu&&r.context.hasEmptyPath())&&e.indexOf(r.alt)<0&&e.push(r.alt)}return e.length===0?Ci.INVALID_ALT_NUMBER:Math.min.apply(null,e)}splitAccordingToSemanticValidity(t,e){let i=new ao(t.fullCtx),r=new ao(t.fullCtx);for(let s=0;s50))throw"problem";if(t.state instanceof Nu)if(t.context.isEmpty())if(s){e.add(t,this.mergeCache);return}else this.debug&&console.log("FALLING off rule "+this.getRuleName(t.state.ruleIndex));else{for(let l=0;l=0&&(m+=1)}this.closureCheckingStopState(h,e,i,d,s,m,o)}}}canDropLoopEntryEdgeInLeftRecursiveRule(t){let e=t.state;if(e.stateType!==mf.STAR_LOOP_ENTRY||e.stateType!==mf.STAR_LOOP_ENTRY||!e.isPrecedenceDecision||t.context.isEmpty()||t.context.hasEmptyPath())return!1;let i=t.context.length;for(let o=0;o=0?this.parser.ruleNames[t]:""}getEpsilonTarget(t,e,i,r,s,a){switch(e.serializationType){case ua.RULE:return this.ruleTransition(t,e);case ua.PRECEDENCE:return this.precedenceTransition(t,e,i,r,s);case ua.PREDICATE:return this.predTransition(t,e,i,r,s);case ua.ACTION:return this.actionTransition(t,e);case ua.EPSILON:return new Fi({state:e.target},t);case ua.ATOM:case ua.RANGE:case ua.SET:return a&&e.matches(ys.EOF,0,1)?new Fi({state:e.target},t):null;default:return null}}actionTransition(t,e){if(this.debug){let i=e.actionIndex===-1?65535:e.actionIndex;console.log("ACTION edge "+e.ruleIndex+":"+i)}return new Fi({state:e.target},t)}precedenceTransition(t,e,i,r,s){this.debug&&(console.log("PRED (collectPredicates="+i+") "+e.precedence+">=_p, ctx dependent=true"),this.parser!==null&&console.log("context surrounding pred is "+Pu.arrayToString(this.parser.getRuleInvocationStack())));let a=null;if(i&&r)if(s){let o=this._input.index;this._input.seek(this._startIndex);let l=e.getPredicate().evaluate(this.parser,this._outerContext);this._input.seek(o),l&&(a=new Fi({state:e.target},t))}else{let o=ca.andContext(t.semanticContext,e.getPredicate());a=new Fi({state:e.target,semanticContext:o},t)}else a=new Fi({state:e.target},t);return this.debug&&console.log("config from pred transition="+a),a}predTransition(t,e,i,r,s){this.debug&&(console.log("PRED (collectPredicates="+i+") "+e.ruleIndex+":"+e.predIndex+", ctx dependent="+e.isCtxDependent),this.parser!==null&&console.log("context surrounding pred is "+Pu.arrayToString(this.parser.getRuleInvocationStack())));let a=null;if(i&&(e.isCtxDependent&&r||!e.isCtxDependent))if(s){let o=this._input.index;this._input.seek(this._startIndex);let l=e.getPredicate().evaluate(this.parser,this._outerContext);this._input.seek(o),l&&(a=new Fi({state:e.target},t))}else{let o=ca.andContext(t.semanticContext,e.getPredicate());a=new Fi({state:e.target,semanticContext:o},t)}else a=new Fi({state:e.target},t);return this.debug&&console.log("config from pred transition="+a),a}ruleTransition(t,e){this.debug&&console.log("CALL rule "+this.getRuleName(e.target.ruleIndex)+", ctx="+t.context);let i=e.followState,r=jB.create(t.context,i.stateNumber);return new Fi({state:e.target,context:r},t)}getConflictingAlts(t){let e=wi.getConflictingAltSubsets(t);return wi.getAlts(e)}getConflictingAltsOrUniqueAlt(t){let e=null;return t.uniqueAlt!==Ci.INVALID_ALT_NUMBER?(e=new NE,e.add(t.uniqueAlt)):e=t.conflictingAlts,e}getTokenName(t){if(t===ys.EOF)return"EOF";if(this.parser!==null&&this.parser.literalNames!==null)if(t>=this.parser.literalNames.length&&t>=this.parser.symbolicNames.length)console.log(""+t+" ttype out of range: "+this.parser.literalNames),console.log(""+this.parser.getInputStream().getTokens());else return(this.parser.literalNames[t]||this.parser.symbolicNames[t])+"<"+t+">";return""+t}getLookaheadName(t){return this.getTokenName(t.LA(1))}dumpDeadEndConfigs(t){console.log("dead end configs: ");let e=t.getDeadEndConfigs();for(let i=0;i0){let a=r.state.transitions[0];a instanceof AtomTransition?s="Atom "+this.getTokenName(a.label):a instanceof $B&&(s=(a instanceof VB?"~":"")+"Set "+a.set)}console.error(r.toString(this.parser,!0)+":"+s)}}noViableAlt(t,e,i,r){return new HB(this.parser,t,t.get(r),t.LT(1),i,e)}getUniqueAlt(t){let e=Ci.INVALID_ALT_NUMBER;for(let i=0;i "+r+" upon "+this.getTokenName(i)),r===null)return null;if(r=this.addDFAState(t,r),e===null||i<-1||i>this.atn.maxTokenType)return r;if(e.edges===null&&(e.edges=[]),e.edges[i+1]=r,this.debug){let s=this.parser===null?null:this.parser.literalNames,a=this.parser===null?null:this.parser.symbolicNames;console.log(`DFA= -`+t.toString(s,a))}return r}addDFAState(t,e){if(e===Fu.ERROR)return e;let i=t.states.get(e);return i!==null?i:(e.stateNumber=t.states.length,e.configs.readOnly||(e.configs.optimizeConfigs(this),e.configs.setReadonly(!0)),t.states.add(e),this.debug&&console.log("adding new DFA state: "+e),e)}reportAttemptingFullContext(t,e,i,r,s){if(this.debug||this.retry_debug){let a=new Yb(r,s+1);console.log("reportAttemptingFullContext decision="+t.decision+":"+i+", input="+this.parser.getTokenStream().getText(a))}this.parser!==null&&this.parser.getErrorListenerDispatch().reportAttemptingFullContext(this.parser,t,r,s,e,i)}reportContextSensitivity(t,e,i,r,s){if(this.debug||this.retry_debug){let a=new Yb(r,s+1);console.log("reportContextSensitivity decision="+t.decision+":"+i+", input="+this.parser.getTokenStream().getText(a))}this.parser!==null&&this.parser.getErrorListenerDispatch().reportContextSensitivity(this.parser,t,r,s,e,i)}reportAmbiguity(t,e,i,r,s,a,o){if(this.debug||this.retry_debug){let l=new Yb(i,r+1);console.log("reportAmbiguity "+a+":"+o+", input="+this.parser.getTokenStream().getText(l))}this.parser!==null&&this.parser.getErrorListenerDispatch().reportAmbiguity(this.parser,t,i,r,s,a,o)}};UE.exports=Qb});var VE=X(Dl=>{Dl.ATN=io();Dl.ATNDeserializer=Tb();Dl.LexerATNSimulator=ME();Dl.ParserATNSimulator=$E();Dl.PredictionMode=qb()});var Zb=X(()=>{String.prototype.codePointAt||function(){"use strict";var n=function(){let e;try{let i={},r=Object.defineProperty;e=r(i,i,i)&&r}catch{}return e}();let t=function(e){if(this==null)throw TypeError();let i=String(this),r=i.length,s=e?Number(e):0;if(s!==s&&(s=0),s<0||s>=r)return;let a=i.charCodeAt(s),o;return a>=55296&&a<=56319&&r>s+1&&(o=i.charCodeAt(s+1),o>=56320&&o<=57343)?(a-55296)*1024+o-56320+65536:a};n?n(String.prototype,"codePointAt",{value:t,configurable:!0,writable:!0}):String.prototype.codePointAt=t}()});var Uu=X((tse,BE)=>{var qB=Li(),ff=class{constructor(t,e,i){this.dfa=t,this.literalNames=e||[],this.symbolicNames=i||[]}toString(){if(this.dfa.s0===null)return null;let t="",e=this.dfa.sortedStates();for(let i=0;i"),t=t.concat(this.getStateString(o)),t=t.concat(` -`))}}}return t.length===0?null:t}getEdgeLabel(t){return t===0?"EOF":this.literalNames!==null||this.symbolicNames!==null?this.literalNames[t-1]||this.symbolicNames[t-1]:String.fromCharCode(t-1)}getStateString(t){let e=(t.isAcceptState?":":"")+"s"+t.stateNumber+(t.requiresFullContext?"^":"");return t.isAcceptState?t.predicates!==null?e+"=>"+qB.arrayToString(t.predicates):e+"=>"+t.prediction.toString():e}},Xb=class extends ff{constructor(t){super(t,null)}getEdgeLabel(t){return"'"+String.fromCharCode(t)+"'"}};BE.exports={DFASerializer:ff,LexerDFASerializer:Xb}});var qE=X((ise,WE)=>{var{Set:zE}=Li(),{DFAState:HE}=Il(),{StarLoopEntryState:GB}=gs(),{ATNConfigSet:jE}=so(),{DFASerializer:KB}=Uu(),{LexerDFASerializer:YB}=Uu(),Jb=class{constructor(t,e){if(e===void 0&&(e=0),this.atnStartState=t,this.decision=e,this._states=new zE,this.s0=null,this.precedenceDfa=!1,t instanceof GB&&t.isPrecedenceDecision){this.precedenceDfa=!0;let i=new HE(null,new jE);i.edges=[],i.isAcceptState=!1,i.requiresFullContext=!1,this.s0=i}}getPrecedenceStartState(t){if(!this.precedenceDfa)throw"Only precedence DFAs may contain a precedence start state.";return t<0||t>=this.s0.edges.length?null:this.s0.edges[t]||null}setPrecedenceStartState(t,e){if(!this.precedenceDfa)throw"Only precedence DFAs may contain a precedence start state.";t<0||(this.s0.edges[t]=e)}setPrecedenceDfa(t){if(this.precedenceDfa!==t){if(this._states=new zE,t){let e=new HE(null,new jE);e.edges=[],e.isAcceptState=!1,e.requiresFullContext=!1,this.s0=e}else this.s0=null;this.precedenceDfa=t}}sortedStates(){return this._states.values().sort(function(e,i){return e.stateNumber-i.stateNumber})}toString(t,e){return t=t||null,e=e||null,this.s0===null?"":new KB(this,t,e).toString()}toLexerString(){return this.s0===null?"":new YB(this).toString()}get states(){return this._states}};WE.exports=Jb});var GE=X($u=>{$u.DFA=qE();$u.DFASerializer=Uu().DFASerializer;$u.LexerDFASerializer=Uu().LexerDFASerializer;$u.PredPrediction=Il().PredPrediction});var ey=X(()=>{String.fromCodePoint||function(){let n=function(){let r;try{let s={},a=Object.defineProperty;r=a(s,s,s)&&a}catch{}return r}(),t=String.fromCharCode,e=Math.floor,i=function(r){let a=[],o,l,c=-1,u=arguments.length;if(!u)return"";let d="";for(;++c1114111||e(h)!==h)throw RangeError("Invalid code point: "+h);h<=65535?a.push(h):(h-=65536,o=(h>>10)+55296,l=h%1024+56320,a.push(o,l)),(c+1===u||a.length>16384)&&(d+=t.apply(null,a),a.length=0)}return d};n?n(String,"fromCodePoint",{value:i,configurable:!0,writable:!0}):String.fromCodePoint=i}()});var YE=X((ase,KE)=>{var QB=eo(),ZB=rb();KE.exports=$e(j({},QB),{Trees:ZB})});var ZE=X((lse,QE)=>{var{BitSet:XB}=Li(),{ErrorListener:JB}=Ru(),{Interval:ty}=an(),iy=class extends JB{constructor(t){super(),t=t||!0,this.exactOnly=t}reportAmbiguity(t,e,i,r,s,a,o){if(this.exactOnly&&!s)return;let l="reportAmbiguity d="+this.getDecisionDescription(t,e)+": ambigAlts="+this.getConflictingAlts(a,o)+", input='"+t.getTokenStream().getText(new ty(i,r))+"'";t.notifyErrorListeners(l)}reportAttemptingFullContext(t,e,i,r,s,a){let o="reportAttemptingFullContext d="+this.getDecisionDescription(t,e)+", input='"+t.getTokenStream().getText(new ty(i,r))+"'";t.notifyErrorListeners(o)}reportContextSensitivity(t,e,i,r,s,a){let o="reportContextSensitivity d="+this.getDecisionDescription(t,e)+", input='"+t.getTokenStream().getText(new ty(i,r))+"'";t.notifyErrorListeners(o)}getDecisionDescription(t,e){let i=e.decision,r=e.atnStartState.ruleIndex,s=t.ruleNames;if(r<0||r>=s.length)return""+i;let a=s[r]||null;return a===null||a.length===0?""+i:`${i} (${a})`}getConflictingAlts(t,e){if(t!==null)return t;let i=new XB;for(let r=0;r{var{Token:da}=ni(),{NoViableAltException:ez,InputMismatchException:pf,FailedPredicateException:tz,ParseCancellationException:iz}=hr(),{ATNState:oo}=gs(),{Interval:nz,IntervalSet:XE}=an(),ny=class{reset(t){}recoverInline(t){}recover(t,e){}sync(t){}inErrorRecoveryMode(t){}reportError(t){}},gf=class extends ny{constructor(){super(),this.errorRecoveryMode=!1,this.lastErrorIndex=-1,this.lastErrorStates=null,this.nextTokensContext=null,this.nextTokenState=0}reset(t){this.endErrorCondition(t)}beginErrorCondition(t){this.errorRecoveryMode=!0}inErrorRecoveryMode(t){return this.errorRecoveryMode}endErrorCondition(t){this.errorRecoveryMode=!1,this.lastErrorStates=null,this.lastErrorIndex=-1}reportMatch(t){this.endErrorCondition(t)}reportError(t,e){this.inErrorRecoveryMode(t)||(this.beginErrorCondition(t),e instanceof ez?this.reportNoViableAlternative(t,e):e instanceof pf?this.reportInputMismatch(t,e):e instanceof tz?this.reportFailedPredicate(t,e):(console.log("unknown recognition error type: "+e.constructor.name),console.log(e.stack),t.notifyErrorListeners(e.getOffendingToken(),e.getMessage(),e)))}recover(t,e){this.lastErrorIndex===t.getInputStream().index&&this.lastErrorStates!==null&&this.lastErrorStates.indexOf(t.state)>=0&&t.consume(),this.lastErrorIndex=t._input.index,this.lastErrorStates===null&&(this.lastErrorStates=[]),this.lastErrorStates.push(t.state);let i=this.getErrorRecoverySet(t);this.consumeUntil(t,i)}sync(t){if(this.inErrorRecoveryMode(t))return;let e=t._interp.atn.states[t.state],i=t.getTokenStream().LA(1),r=t.atn.nextTokens(e);if(r.contains(i)){this.nextTokensContext=null,this.nextTokenState=oo.INVALID_STATE_NUMBER;return}else if(r.contains(da.EPSILON)){this.nextTokensContext===null&&(this.nextTokensContext=t._ctx,this.nextTokensState=t._stateNumber);return}switch(e.stateType){case oo.BLOCK_START:case oo.STAR_BLOCK_START:case oo.PLUS_BLOCK_START:case oo.STAR_LOOP_ENTRY:if(this.singleTokenDeletion(t)!==null)return;throw new pf(t);case oo.PLUS_LOOP_BACK:case oo.STAR_LOOP_BACK:this.reportUnwantedToken(t);let s=new XE;s.addSet(t.getExpectedTokens());let a=s.addSet(this.getErrorRecoverySet(t));this.consumeUntil(t,a);break;default:}}reportNoViableAlternative(t,e){let i=t.getTokenStream(),r;i!==null?e.startToken.type===da.EOF?r="":r=i.getText(new nz(e.startToken.tokenIndex,e.offendingToken.tokenIndex)):r="";let s="no viable alternative at input "+this.escapeWSAndQuote(r);t.notifyErrorListeners(s,e.offendingToken,e)}reportInputMismatch(t,e){let i="mismatched input "+this.getTokenErrorDisplay(e.offendingToken)+" expecting "+e.getExpectedTokens().toString(t.literalNames,t.symbolicNames);t.notifyErrorListeners(i,e.offendingToken,e)}reportFailedPredicate(t,e){let r="rule "+t.ruleNames[t._ctx.ruleIndex]+" "+e.message;t.notifyErrorListeners(r,e.offendingToken,e)}reportUnwantedToken(t){if(this.inErrorRecoveryMode(t))return;this.beginErrorCondition(t);let e=t.getCurrentToken(),i=this.getTokenErrorDisplay(e),r=this.getExpectedTokens(t),s="extraneous input "+i+" expecting "+r.toString(t.literalNames,t.symbolicNames);t.notifyErrorListeners(s,e,null)}reportMissingToken(t){if(this.inErrorRecoveryMode(t))return;this.beginErrorCondition(t);let e=t.getCurrentToken(),r="missing "+this.getExpectedTokens(t).toString(t.literalNames,t.symbolicNames)+" at "+this.getTokenErrorDisplay(e);t.notifyErrorListeners(r,e,null)}recoverInline(t){let e=this.singleTokenDeletion(t);if(e!==null)return t.consume(),e;if(this.singleTokenInsertion(t))return this.getMissingSymbol(t);throw new pf(t)}singleTokenInsertion(t){let e=t.getTokenStream().LA(1),i=t._interp.atn,s=i.states[t.state].transitions[0].target;return i.nextTokens(s,t._ctx).contains(e)?(this.reportMissingToken(t),!0):!1}singleTokenDeletion(t){let e=t.getTokenStream().LA(2);if(this.getExpectedTokens(t).contains(e)){this.reportUnwantedToken(t),t.consume();let r=t.getCurrentToken();return this.reportMatch(t),r}else return null}getMissingSymbol(t){let e=t.getCurrentToken(),r=this.getExpectedTokens(t).first(),s;r===da.EOF?s="":s="";let a=e,o=t.getTokenStream().LT(-1);return a.type===da.EOF&&o!==null&&(a=o),t.getTokenFactory().create(a.source,r,s,da.DEFAULT_CHANNEL,-1,-1,a.line,a.column)}getExpectedTokens(t){return t.getExpectedTokens()}getTokenErrorDisplay(t){if(t===null)return"";let e=t.text;return e===null&&(t.type===da.EOF?e="":e="<"+t.type+">"),this.escapeWSAndQuote(e)}escapeWSAndQuote(t){return t=t.replace(/\n/g,"\\n"),t=t.replace(/\r/g,"\\r"),t=t.replace(/\t/g,"\\t"),"'"+t+"'"}getErrorRecoverySet(t){let e=t._interp.atn,i=t._ctx,r=new XE;for(;i!==null&&i.invokingState>=0;){let a=e.states[i.invokingState].transitions[0],o=e.nextTokens(a.followState);r.addSet(o),i=i.parentCtx}return r.removeOne(da.EPSILON),r}consumeUntil(t,e){let i=t.getTokenStream().LA(1);for(;i!==da.EOF&&!e.contains(i);)t.consume(),i=t.getTokenStream().LA(1)}},ry=class extends gf{constructor(){super()}recover(t,e){let i=t._ctx;for(;i!==null;)i.exception=e,i=i.parentCtx;throw new iz(e)}recoverInline(t){this.recover(t,new pf(t))}sync(t){}};JE.exports={BailErrorStrategy:ry,DefaultErrorStrategy:gf}});var e2=X((use,Vr)=>{Vr.exports.RecognitionException=hr().RecognitionException;Vr.exports.NoViableAltException=hr().NoViableAltException;Vr.exports.LexerNoViableAltException=hr().LexerNoViableAltException;Vr.exports.InputMismatchException=hr().InputMismatchException;Vr.exports.FailedPredicateException=hr().FailedPredicateException;Vr.exports.DiagnosticErrorListener=ZE();Vr.exports.BailErrorStrategy=_f().BailErrorStrategy;Vr.exports.DefaultErrorStrategy=_f().DefaultErrorStrategy;Vr.exports.ErrorListener=Ru().ErrorListener});var i2=X((dse,t2)=>{var{Token:rz}=ni();Zb();ey();var sy=class{constructor(t,e){if(this.name="",this.strdata=t,this.decodeToUnicodeCodePoints=e||!1,this._index=0,this.data=[],this.decodeToUnicodeCodePoints)for(let i=0;i=this._size)throw"cannot consume EOF";this._index+=1}LA(t){if(t===0)return 0;t<0&&(t+=1);let e=this._index+t-1;return e<0||e>=this._size?rz.EOF:this.data[e]}LT(t){return this.LA(t)}mark(){return-1}release(t){}seek(t){if(t<=this._index){this._index=t;return}this._index=Math.min(t,this._size)}getText(t,e){if(e>=this._size&&(e=this._size-1),t>=this._size)return"";if(this.decodeToUnicodeCodePoints){let i="";for(let r=t;r<=e;r++)i+=String.fromCodePoint(this.data[r]);return i}else return this.strdata.slice(t,e+1)}toString(){return this.strdata}get index(){return this._index}get size(){return this._size}};t2.exports=sy});var r2=X((hse,n2)=>{var{Token:lo}=ni(),ay=Ou(),{Interval:sz}=an(),oy=class{},ly=class extends oy{constructor(t){super(),this.tokenSource=t,this.tokens=[],this.index=-1,this.fetchedEOF=!1}mark(){return 0}release(t){}reset(){this.seek(0)}seek(t){this.lazyInit(),this.index=this.adjustSeekIndex(t)}get(t){return this.lazyInit(),this.tokens[t]}consume(){let t=!1;if(this.index>=0?this.fetchedEOF?t=this.index0?this.fetch(e)>=e:!0}fetch(t){if(this.fetchedEOF)return 0;for(let e=0;e=this.tokens.length&&(e=this.tokens.length-1);for(let s=t;s=this.tokens.length?this.tokens[this.tokens.length-1]:this.tokens[e]}adjustSeekIndex(t){return t}lazyInit(){this.index===-1&&this.setup()}setup(){this.sync(0),this.index=this.adjustSeekIndex(0)}setTokenSource(t){this.tokenSource=t,this.tokens=[],this.index=-1,this.fetchedEOF=!1}nextTokenOnChannel(t,e){if(this.sync(t),t>=this.tokens.length)return-1;let i=this.tokens[t];for(;i.channel!==this.channel;){if(i.type===lo.EOF)return-1;t+=1,this.sync(t),i=this.tokens[t]}return t}previousTokenOnChannel(t,e){for(;t>=0&&this.tokens[t].channel!==e;)t-=1;return t}getHiddenTokensToRight(t,e){if(e===void 0&&(e=-1),this.lazyInit(),t<0||t>=this.tokens.length)throw""+t+" not in 0.."+this.tokens.length-1;let i=this.nextTokenOnChannel(t+1,ay.DEFAULT_TOKEN_CHANNEL),r=t+1,s=i===-1?this.tokens.length-1:i;return this.filterForChannel(r,s,e)}getHiddenTokensToLeft(t,e){if(e===void 0&&(e=-1),this.lazyInit(),t<0||t>=this.tokens.length)throw""+t+" not in 0.."+this.tokens.length-1;let i=this.previousTokenOnChannel(t-1,ay.DEFAULT_TOKEN_CHANNEL);if(i===t-1)return null;let r=i+1,s=t-1;return this.filterForChannel(r,s,e)}filterForChannel(t,e,i){let r=[];for(let s=t;s=this.tokens.length&&(i=this.tokens.length-1);let r="";for(let s=e;s{var s2=ni().Token,az=r2(),cy=class extends az{constructor(t,e){super(t),this.channel=e===void 0?s2.DEFAULT_CHANNEL:e}adjustSeekIndex(t){return this.nextTokenOnChannel(t,this.channel)}LB(t){if(t===0||this.index-t<0)return null;let e=this.index,i=1;for(;i<=t;)e=this.previousTokenOnChannel(e-1,this.channel),i+=1;return e<0?null:this.tokens[e]}LT(t){if(this.lazyInit(),t===0)return null;if(t<0)return this.LB(-t);let e=this.index,i=1;for(;i{var{Token:Vu}=ni(),{ParseTreeListener:oz,TerminalNode:lz,ErrorNode:cz}=eo(),uz=Ab(),{DefaultErrorStrategy:dz}=_f(),hz=Tb(),mz=cb(),fz=Ou(),uy=class extends oz{constructor(t){super(),this.parser=t}enterEveryRule(t){console.log("enter "+this.parser.ruleNames[t.ruleIndex]+", LT(1)="+this.parser._input.LT(1).text)}visitTerminal(t){console.log("consume "+t.symbol+" rule "+this.parser.ruleNames[this.parser._ctx.ruleIndex])}exitEveryRule(t){console.log("exit "+this.parser.ruleNames[t.ruleIndex]+", LT(1)="+this.parser._input.LT(1).text)}},pz=(()=>{class n extends uz{constructor(e){super(),this._input=null,this._errHandler=new dz,this._precedenceStack=[],this._precedenceStack.push(0),this._ctx=null,this.buildParseTrees=!0,this._tracer=null,this._parseListeners=null,this._syntaxErrors=0,this.setInputStream(e)}reset(){this._input!==null&&this._input.seek(0),this._errHandler.reset(this),this._ctx=null,this._syntaxErrors=0,this.setTrace(!1),this._precedenceStack=[],this._precedenceStack.push(0),this._interp!==null&&this._interp.reset()}match(e){let i=this.getCurrentToken();return i.type===e?(this._errHandler.reportMatch(this),this.consume()):(i=this._errHandler.recoverInline(this),this.buildParseTrees&&i.tokenIndex===-1&&this._ctx.addErrorNode(i)),i}matchWildcard(){let e=this.getCurrentToken();return e.type>0?(this._errHandler.reportMatch(this),this.consume()):(e=this._errHandler.recoverInline(this),this._buildParseTrees&&e.tokenIndex===-1&&this._ctx.addErrorNode(e)),e}getParseListeners(){return this._parseListeners||[]}addParseListener(e){if(e===null)throw"listener";this._parseListeners===null&&(this._parseListeners=[]),this._parseListeners.push(e)}removeParseListener(e){if(this._parseListeners!==null){let i=this._parseListeners.indexOf(e);i>=0&&this._parseListeners.splice(i,1),this._parseListeners.length===0&&(this._parseListeners=null)}}removeParseListeners(){this._parseListeners=null}triggerEnterRuleEvent(){if(this._parseListeners!==null){let e=this._ctx;this._parseListeners.forEach(function(i){i.enterEveryRule(e),e.enterRule(i)})}}triggerExitRuleEvent(){if(this._parseListeners!==null){let e=this._ctx;this._parseListeners.slice(0).reverse().forEach(function(i){e.exitRule(i),i.exitEveryRule(e)})}}getTokenFactory(){return this._input.tokenSource._factory}setTokenFactory(e){this._input.tokenSource._factory=e}getATNWithBypassAlts(){let e=this.getSerializedATN();if(e===null)throw"The current parser does not support an ATN with bypass alternatives.";let i=this.bypassAltsAtnCache[e];if(i===null){let r=new mz;r.generateRuleBypassTransitions=!0,i=new hz(r).deserialize(e),this.bypassAltsAtnCache[e]=i}return i}compileParseTreePattern(e,i,r){if(r=r||null,r===null&&this.getTokenStream()!==null){let a=this.getTokenStream().tokenSource;a instanceof fz&&(r=a)}if(r===null)throw"Parser can't discover a lexer to use";return new ParseTreePatternMatcher(r,this).compile(e,i)}getInputStream(){return this.getTokenStream()}setInputStream(e){this.setTokenStream(e)}getTokenStream(){return this._input}setTokenStream(e){this._input=null,this.reset(),this._input=e}getCurrentToken(){return this._input.LT(1)}notifyErrorListeners(e,i,r){i=i||null,r=r||null,i===null&&(i=this.getCurrentToken()),this._syntaxErrors+=1;let s=i.line,a=i.column;this.getErrorListenerDispatch().syntaxError(this,i,s,a,e,r)}consume(){let e=this.getCurrentToken();e.type!==Vu.EOF&&this.getInputStream().consume();let i=this._parseListeners!==null&&this._parseListeners.length>0;if(this.buildParseTrees||i){let r;this._errHandler.inErrorRecoveryMode(this)?r=this._ctx.addErrorNode(e):r=this._ctx.addTokenNode(e),r.invokingState=this.state,i&&this._parseListeners.forEach(function(s){r instanceof cz||r.isErrorNode!==void 0&&r.isErrorNode()?s.visitErrorNode(r):r instanceof lz&&s.visitTerminal(r)})}return e}addContextToParseTree(){this._ctx.parentCtx!==null&&this._ctx.parentCtx.addChild(this._ctx)}enterRule(e,i,r){this.state=i,this._ctx=e,this._ctx.start=this._input.LT(1),this.buildParseTrees&&this.addContextToParseTree(),this.triggerEnterRuleEvent()}exitRule(){this._ctx.stop=this._input.LT(-1),this.triggerExitRuleEvent(),this.state=this._ctx.invokingState,this._ctx=this._ctx.parentCtx}enterOuterAlt(e,i){e.setAltNumber(i),this.buildParseTrees&&this._ctx!==e&&this._ctx.parentCtx!==null&&(this._ctx.parentCtx.removeLastChild(),this._ctx.parentCtx.addChild(e)),this._ctx=e}getPrecedence(){return this._precedenceStack.length===0?-1:this._precedenceStack[this._precedenceStack.length-1]}enterRecursionRule(e,i,r,s){this.state=i,this._precedenceStack.push(s),this._ctx=e,this._ctx.start=this._input.LT(1),this.triggerEnterRuleEvent()}pushNewRecursionContext(e,i,r){let s=this._ctx;s.parentCtx=e,s.invokingState=i,s.stop=this._input.LT(-1),this._ctx=e,this._ctx.start=s.start,this.buildParseTrees&&this._ctx.addChild(s),this.triggerEnterRuleEvent()}unrollRecursionContexts(e){this._precedenceStack.pop(),this._ctx.stop=this._input.LT(-1);let i=this._ctx,r=this.getParseListeners();if(r!==null&&r.length>0)for(;this._ctx!==e;)this.triggerExitRuleEvent(),this._ctx=this._ctx.parentCtx;else this._ctx=e;i.parentCtx=e,this.buildParseTrees&&e!==null&&e.addChild(i)}getInvokingContext(e){let i=this._ctx;for(;i!==null;){if(i.ruleIndex===e)return i;i=i.parentCtx}return null}precpred(e,i){return i>=this._precedenceStack[this._precedenceStack.length-1]}inContext(e){return!1}isExpectedToken(e){let i=this._interp.atn,r=this._ctx,s=i.states[this.state],a=i.nextTokens(s);if(a.contains(e))return!0;if(!a.contains(Vu.EPSILON))return!1;for(;r!==null&&r.invokingState>=0&&a.contains(Vu.EPSILON);){let l=i.states[r.invokingState].transitions[0];if(a=i.nextTokens(l.followState),a.contains(e))return!0;r=r.parentCtx}return!!(a.contains(Vu.EPSILON)&&e===Vu.EOF)}getExpectedTokens(){return this._interp.atn.getExpectedTokens(this.state,this._ctx)}getExpectedTokensWithinCurrentRule(){let e=this._interp.atn,i=e.states[this.state];return e.nextTokens(i)}getRuleIndex(e){let i=this.getRuleIndexMap()[e];return i!==null?i:-1}getRuleInvocationStack(e){e=e||null,e===null&&(e=this._ctx);let i=[];for(;e!==null;){let r=e.ruleIndex;r<0?i.push("n/a"):i.push(this.ruleNames[r]),e=e.parentCtx}return i}getDFAStrings(){return this._interp.decisionToDFA.toString()}dumpDFA(){let e=!1;for(let i=0;i0&&(e&&console.log(),this.printer.println("Decision "+r.decision+":"),this.printer.print(r.toString(this.literalNames,this.symbolicNames)),e=!0)}}getSourceName(){return this._input.sourceName}setTrace(e){e?(this._tracer!==null&&this.removeParseListener(this._tracer),this._tracer=new uy(this),this.addParseListener(this._tracer)):(this.removeParseListener(this._tracer),this._tracer=null)}}return n.bypassAltsAtnCache={},n})();l2.exports=pz});var Bu=X(oi=>{oi.atn=VE();oi.codepointat=Zb();oi.dfa=GE();oi.fromcodepoint=ey();oi.tree=YE();oi.error=e2();oi.Token=ni().Token;oi.CommonToken=ni().CommonToken;oi.InputStream=i2();oi.CommonTokenStream=o2();oi.Lexer=Ou();oi.Parser=c2();var gz=vs();oi.PredictionContextCache=gz.PredictionContextCache;oi.ParserRuleContext=Gb();oi.Interval=an().Interval;oi.IntervalSet=an().IntervalSet;oi.Utils=Li();oi.LL1Analyzer=lb().LL1Analyzer});var d2=X((gse,u2)=>{var Rl=Bu(),_z=["\u608B\uA72A\u8133\uB9ED\u417C\u3BE7\u7786","\u5964A\u0203\b  ","   \x07",` \x07\b \b  - -\v \v`,"\f \f\r \r  ","    ","   ","    ","\x1B \x1B  ",'   ! !" "#'," #$ $% %& &' '( () )","* *+ +, ,- -. ./ /0 0","1 12 23 34 45 56 67 7","8 89 9: :; ;< <= => >","? ?@ @A AB BC CD D","","\x07\x07\b",`\b     - - - -`,"\v\v\f\f\r\r\r","","","","","","","\x1B","\x1B\x1B\x1B",""," ",' !!!!!"""','"""##$$$$$',"$%%%%%%%&","&&&&&&''((","((())))))*","****++++,,",",,,-------",".......///","/////////0","0000011111","1122222233","3334444445","5555555666","6666677777","7777777788","8888888888",`88\u0183 -88\u0185 -88\u0187 -888\u018A`,` -89999:::::`,`::::::\u019A -:\r::\u019B`,`:\u019E -::\u01A0 -::\u01A2 -::::`,`:::::\u01AB -:;;\u01AE -;`,`;\x07;\u01B1 -;\f;;\u01B4\v;<<<\x07`,`<\u01B9 -<\f<<\u01BC\v<<<==`,`=\x07=\u01C3 -=\f==\u01C6\v===>`,`>\u01CB ->\r>>\u01CC>>>\u01D1 ->\r>>\u01D2`,`>\u01D5 ->??\u01D8 -?\r??\u01D9?`,`?@@@@\x07@\u01E2 -@\f@@\u01E5\v`,"@@@@@@AAAA\x07",`A\u01F0 -A\fAA\u01F3\vAAABB`,`BB\u01FA -BCCCCCCD`,"D\u01E3E\x07 \v",`\x07\r\b  -\v\f\r\x1B`,"!#%')+","-/13\x1B579;= ?!A",`"C#E$G%I&K'M(O)Q*S+U,W-Y.[/]0_1a2c3e4g5i6k7m8o9q:su;w}`,"?\x7F@\x81A\x83\x85\x87\f","2;--//C\\aac|2;C\\aac|",'^^bb))\v\f""',`\f\f -))11^^bbhhppttvv2;CHch\u0214`,"","\x07 ","\v\r","","","","\x1B","!","#%","')+","-/","13","57","9;","=?A","CE","GI","KM","OQ","SUW","Y[","]_","ac","eg","ikm","oq","uw","y{","}\x7F","\x81\x89","\x8B\x07\x8D"," \x8F\v\x91","\r\x93\x95","\x97\x9B","\x9F\xA1","\xA3\x1B\xA6","\xA8\xAA","!\xAD#\xB0%\xB3","'\xB5)\xB7","+\xBA-\xBD","/\xC01\xC9","3\xCD5\xD0","7\xD49\xDC;\xDE","=\xE0?\xE2","A\xE4C\xE9","E\xEFG\xF1","I\xF7K\xFE","M\u0105O\u0107Q\u010C","S\u0112U\u0117","W\u011BY\u0120","[\u0127]\u012E","_\u013Aa\u0140","c\u0147e\u014Dg\u0152","i\u0158k\u0160","m\u0168o\u0175","q\u018Bs\u018F","u\u01ADw\u01B5","y\u01BF{\u01CA}\u01D7","\x7F\u01DD\x81\u01EB","\x83\u01F6\x85\u01FB","\x87\u0201\x89\x8A","\x070\x8A\x8B\x8C","\x07]\x8C\x8D\x8E","\x07_\x8E\b\x8F\x90\x07",`-\x90 -\x91\x92\x07/`,"\x92\f\x93\x94\x07,","\x94\x95\x96\x071","\x96\x97\x98\x07f","\x98\x99\x07k\x99\x9A\x07x\x9A","\x9B\x9C\x07o\x9C","\x9D\x07q\x9D\x9E\x07f\x9E","\x9F\xA0\x07(\xA0","\xA1\xA2\x07~\xA2","\xA3\xA4\x07>\xA4\xA5","\x07?\xA5\xA6\xA7","\x07>\xA7\xA8\xA9","\x07@\xA9\xAA\xAB","\x07@\xAB\xAC\x07?\xAC ","\xAD\xAE\x07k\xAE\xAF\x07u",'\xAF"\xB0\xB1\x07c',"\xB1\xB2\x07u\xB2$\xB3","\xB4\x07?\xB4&\xB5\xB6","\x07\x80\xB6(\xB7\xB8","\x07#\xB8\xB9\x07?\xB9*","\xBA\xBB\x07#\xBB\xBC\x07\x80","\xBC,\xBD\xBE\x07k","\xBE\xBF\x07p\xBF.","\xC0\xC1\x07e\xC1\xC2\x07q\xC2","\xC3\x07p\xC3\xC4\x07v\xC4\xC5","\x07c\xC5\xC6\x07k\xC6\xC7\x07","p\xC7\xC8\x07u\xC80","\xC9\xCA\x07c\xCA\xCB\x07p","\xCB\xCC\x07f\xCC2\xCD","\xCE\x07q\xCE\xCF\x07t\xCF4","\xD0\xD1\x07z\xD1\xD2\x07","q\xD2\xD3\x07t\xD36","\xD4\xD5\x07k\xD5\xD6\x07o","\xD6\xD7\x07r\xD7\xD8\x07n\xD8","\xD9\x07k\xD9\xDA\x07g\xDA\xDB","\x07u\xDB8\xDC\xDD\x07","*\xDD:\xDE\xDF\x07+","\xDF<\xE0\xE1\x07}","\xE1>\xE2\xE3\x07\x7F","\xE3@\xE4\xE5\x07v\xE5","\xE6\x07t\xE6\xE7\x07w\xE7\xE8","\x07g\xE8B\xE9\xEA\x07","h\xEA\xEB\x07c\xEB\xEC\x07n","\xEC\xED\x07u\xED\xEE\x07g","\xEED\xEF\xF0\x07'\xF0","F\xF1\xF2\x07&\xF2\xF3","\x07v\xF3\xF4\x07j\xF4\xF5\x07","k\xF5\xF6\x07u\xF6H","\xF7\xF8\x07&\xF8\xF9\x07k","\xF9\xFA\x07p\xFA\xFB\x07f\xFB","\xFC\x07g\xFC\xFD\x07z\xFDJ","\xFE\xFF\x07&\xFF\u0100\x07","v\u0100\u0101\x07q\u0101\u0102\x07v","\u0102\u0103\x07c\u0103\u0104\x07n","\u0104L\u0105\u0106\x07.\u0106","N\u0107\u0108\x07{\u0108\u0109","\x07g\u0109\u010A\x07c\u010A\u010B\x07","t\u010BP\u010C\u010D\x07o","\u010D\u010E\x07q\u010E\u010F\x07p","\u010F\u0110\x07v\u0110\u0111\x07j\u0111","R\u0112\u0113\x07y\u0113\u0114","\x07g\u0114\u0115\x07g\u0115\u0116\x07","m\u0116T\u0117\u0118\x07f","\u0118\u0119\x07c\u0119\u011A\x07{","\u011AV\u011B\u011C\x07j\u011C","\u011D\x07q\u011D\u011E\x07w\u011E\u011F","\x07t\u011FX\u0120\u0121\x07","o\u0121\u0122\x07k\u0122\u0123\x07p","\u0123\u0124\x07w\u0124\u0125\x07v","\u0125\u0126\x07g\u0126Z\u0127","\u0128\x07u\u0128\u0129\x07g\u0129\u012A","\x07e\u012A\u012B\x07q\u012B\u012C\x07","p\u012C\u012D\x07f\u012D\\","\u012E\u012F\x07o\u012F\u0130\x07k","\u0130\u0131\x07n\u0131\u0132\x07n\u0132","\u0133\x07k\u0133\u0134\x07u\u0134\u0135","\x07g\u0135\u0136\x07e\u0136\u0137\x07","q\u0137\u0138\x07p\u0138\u0139\x07f","\u0139^\u013A\u013B\x07{","\u013B\u013C\x07g\u013C\u013D\x07c\u013D","\u013E\x07t\u013E\u013F\x07u\u013F`","\u0140\u0141\x07o\u0141\u0142\x07","q\u0142\u0143\x07p\u0143\u0144\x07v","\u0144\u0145\x07j\u0145\u0146\x07u","\u0146b\u0147\u0148\x07y\u0148","\u0149\x07g\u0149\u014A\x07g\u014A\u014B","\x07m\u014B\u014C\x07u\u014Cd","\u014D\u014E\x07f\u014E\u014F\x07c","\u014F\u0150\x07{\u0150\u0151\x07u","\u0151f\u0152\u0153\x07j\u0153","\u0154\x07q\u0154\u0155\x07w\u0155\u0156","\x07t\u0156\u0157\x07u\u0157h","\u0158\u0159\x07o\u0159\u015A\x07k","\u015A\u015B\x07p\u015B\u015C\x07w","\u015C\u015D\x07v\u015D\u015E\x07g\u015E","\u015F\x07u\u015Fj\u0160\u0161","\x07u\u0161\u0162\x07g\u0162\u0163\x07","e\u0163\u0164\x07q\u0164\u0165\x07p","\u0165\u0166\x07f\u0166\u0167\x07u","\u0167l\u0168\u0169\x07o\u0169","\u016A\x07k\u016A\u016B\x07n\u016B\u016C","\x07n\u016C\u016D\x07k\u016D\u016E\x07","u\u016E\u016F\x07g\u016F\u0170\x07e","\u0170\u0171\x07q\u0171\u0172\x07p","\u0172\u0173\x07f\u0173\u0174\x07u\u0174","n\u0175\u0176\x07B\u0176\u0177"," \u0177\u0178 \u0178\u0179 ","\u0179\u0186 \u017A\u017B\x07/","\u017B\u017C \u017C\u0184 ","\u017D\u017E\x07/\u017E\u017F \u017F","\u0182 \u0180\u0181\x07V\u0181\u0183","s:\u0182\u0180\u0182\u0183","\u0183\u0185\u0184\u017D","\u0184\u0185\u0185\u0187","\u0186\u017A\u0186\u0187","\u0187\u0189\u0188\u018A\x07","\\\u0189\u0188\u0189\u018A","\u018Ap\u018B\u018C\x07","B\u018C\u018D\x07V\u018D\u018Es:","\u018Er\u018F\u0190 \u0190","\u01A1 \u0191\u0192\x07<\u0192\u0193"," \u0193\u019F \u0194\u0195\x07","<\u0195\u0196 \u0196\u019D ","\u0197\u0199\x070\u0198\u019A ","\u0199\u0198\u019A\u019B","\u019B\u0199\u019B\u019C","\u019C\u019E\u019D\u0197","\u019D\u019E\u019E\u01A0","\u019F\u0194\u019F\u01A0","\u01A0\u01A2\u01A1\u0191","\u01A1\u01A2\u01A2\u01AA","\u01A3\u01AB\x07\\\u01A4\u01A5 \u01A5","\u01A6 \u01A6\u01A7 \u01A7\u01A8","\x07<\u01A8\u01A9 \u01A9\u01AB ","\u01AA\u01A3\u01AA\u01A4","\u01AA\u01AB\u01ABt","\u01AC\u01AE \u01AD\u01AC","\u01AE\u01B2\u01AF\u01B1 ","\u01B0\u01AF\u01B1\u01B4","\u01B2\u01B0\u01B2\u01B3","\u01B3v\u01B4\u01B2","\u01B5\u01BA\x07b\u01B6\u01B9\x83",`B\u01B7\u01B9 -\u01B8\u01B6`,"\u01B8\u01B7\u01B9\u01BC","\u01BA\u01B8\u01BA\u01BB","\u01BB\u01BD\u01BC\u01BA","\u01BD\u01BE\x07b\u01BEx","\u01BF\u01C4\x07)\u01C0\u01C3\x83B\u01C1",`\u01C3 -\x07\u01C2\u01C0\u01C2`,"\u01C1\u01C3\u01C6\u01C4","\u01C2\u01C4\u01C5\u01C5","\u01C7\u01C6\u01C4\u01C7","\u01C8\x07)\u01C8z\u01C9\u01CB"," \u01CA\u01C9\u01CB\u01CC","\u01CC\u01CA\u01CC\u01CD","\u01CD\u01D4\u01CE\u01D0","\x070\u01CF\u01D1 \u01D0\u01CF","\u01D1\u01D2\u01D2\u01D0","\u01D2\u01D3\u01D3\u01D5","\u01D4\u01CE\u01D4\u01D5","\u01D5|\u01D6\u01D8 \b","\u01D7\u01D6\u01D8\u01D9","\u01D9\u01D7\u01D9\u01DA","\u01DA\u01DB\u01DB\u01DC\b?","\u01DC~\u01DD\u01DE\x071\u01DE","\u01DF\x07,\u01DF\u01E3\u01E0","\u01E2\v\u01E1\u01E0\u01E2","\u01E5\u01E3\u01E4\u01E3","\u01E1\u01E4\u01E6\u01E5","\u01E3\u01E6\u01E7\x07,\u01E7","\u01E8\x071\u01E8\u01E9\u01E9","\u01EA\b@\u01EA\x80\u01EB\u01EC","\x071\u01EC\u01ED\x071\u01ED\u01F1",`\u01EE\u01F0 - \u01EF\u01EE`,"\u01F0\u01F3\u01F1\u01EF","\u01F1\u01F2\u01F2\u01F4","\u01F3\u01F1\u01F4\u01F5\bA","\u01F5\x82\u01F6\u01F9\x07^",`\u01F7\u01FA -\u01F8\u01FA\x85C\u01F9`,"\u01F7\u01F9\u01F8\u01FA","\x84\u01FB\u01FC\x07w\u01FC","\u01FD\x87D\u01FD\u01FE\x87D\u01FE\u01FF","\x87D\u01FF\u0200\x87D\u0200\x86","\u0201\u0202 \v\u0202\x88","\u0182\u0184\u0186\u0189\u019B\u019D\u019F","\u01A1\u01AA\u01AD\u01B0\u01B2\u01B8\u01BA\u01C2\u01C4\u01CC\u01D2\u01D4","\u01D9\u01E3\u01F1\u01F9"].join(""),dy=new Rl.atn.ATNDeserializer().deserialize(_z),vz=dy.decisionToState.map((n,t)=>new Rl.dfa.DFA(n,t)),De=class extends Rl.Lexer{static grammarFileName="FHIRPath.g4";static channelNames=["DEFAULT_TOKEN_CHANNEL","HIDDEN"];static modeNames=["DEFAULT_MODE"];static literalNames=[null,"'.'","'['","']'","'+'","'-'","'*'","'/'","'div'","'mod'","'&'","'|'","'<='","'<'","'>'","'>='","'is'","'as'","'='","'~'","'!='","'!~'","'in'","'contains'","'and'","'or'","'xor'","'implies'","'('","')'","'{'","'}'","'true'","'false'","'%'","'$this'","'$index'","'$total'","','","'year'","'month'","'week'","'day'","'hour'","'minute'","'second'","'millisecond'","'years'","'months'","'weeks'","'days'","'hours'","'minutes'","'seconds'","'milliseconds'"];static symbolicNames=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"DATETIME","TIME","IDENTIFIER","DELIMITEDIDENTIFIER","STRING","NUMBER","WS","COMMENT","LINE_COMMENT"];static ruleNames=["T__0","T__1","T__2","T__3","T__4","T__5","T__6","T__7","T__8","T__9","T__10","T__11","T__12","T__13","T__14","T__15","T__16","T__17","T__18","T__19","T__20","T__21","T__22","T__23","T__24","T__25","T__26","T__27","T__28","T__29","T__30","T__31","T__32","T__33","T__34","T__35","T__36","T__37","T__38","T__39","T__40","T__41","T__42","T__43","T__44","T__45","T__46","T__47","T__48","T__49","T__50","T__51","T__52","T__53","DATETIME","TIME","TIMEFORMAT","IDENTIFIER","DELIMITEDIDENTIFIER","STRING","NUMBER","WS","COMMENT","LINE_COMMENT","ESC","UNICODE","HEX"];constructor(t){super(t),this._interp=new Rl.atn.LexerATNSimulator(this,dy,vz,new Rl.PredictionContextCache)}get atn(){return dy}};De.EOF=Rl.Token.EOF;De.T__0=1;De.T__1=2;De.T__2=3;De.T__3=4;De.T__4=5;De.T__5=6;De.T__6=7;De.T__7=8;De.T__8=9;De.T__9=10;De.T__10=11;De.T__11=12;De.T__12=13;De.T__13=14;De.T__14=15;De.T__15=16;De.T__16=17;De.T__17=18;De.T__18=19;De.T__19=20;De.T__20=21;De.T__21=22;De.T__22=23;De.T__23=24;De.T__24=25;De.T__25=26;De.T__26=27;De.T__27=28;De.T__28=29;De.T__29=30;De.T__30=31;De.T__31=32;De.T__32=33;De.T__33=34;De.T__34=35;De.T__35=36;De.T__36=37;De.T__37=38;De.T__38=39;De.T__39=40;De.T__40=41;De.T__41=42;De.T__42=43;De.T__43=44;De.T__44=45;De.T__45=46;De.T__46=47;De.T__47=48;De.T__48=49;De.T__49=50;De.T__50=51;De.T__51=52;De.T__52=53;De.T__53=54;De.DATETIME=55;De.TIME=56;De.IDENTIFIER=57;De.DELIMITEDIDENTIFIER=58;De.STRING=59;De.NUMBER=60;De.WS=61;De.COMMENT=62;De.LINE_COMMENT=63;u2.exports=De});var my=X((_se,h2)=>{var bz=Bu(),hy=class extends bz.tree.ParseTreeListener{enterEntireExpression(t){}exitEntireExpression(t){}enterIndexerExpression(t){}exitIndexerExpression(t){}enterPolarityExpression(t){}exitPolarityExpression(t){}enterAdditiveExpression(t){}exitAdditiveExpression(t){}enterMultiplicativeExpression(t){}exitMultiplicativeExpression(t){}enterUnionExpression(t){}exitUnionExpression(t){}enterOrExpression(t){}exitOrExpression(t){}enterAndExpression(t){}exitAndExpression(t){}enterMembershipExpression(t){}exitMembershipExpression(t){}enterInequalityExpression(t){}exitInequalityExpression(t){}enterInvocationExpression(t){}exitInvocationExpression(t){}enterEqualityExpression(t){}exitEqualityExpression(t){}enterImpliesExpression(t){}exitImpliesExpression(t){}enterTermExpression(t){}exitTermExpression(t){}enterTypeExpression(t){}exitTypeExpression(t){}enterInvocationTerm(t){}exitInvocationTerm(t){}enterLiteralTerm(t){}exitLiteralTerm(t){}enterExternalConstantTerm(t){}exitExternalConstantTerm(t){}enterParenthesizedTerm(t){}exitParenthesizedTerm(t){}enterNullLiteral(t){}exitNullLiteral(t){}enterBooleanLiteral(t){}exitBooleanLiteral(t){}enterStringLiteral(t){}exitStringLiteral(t){}enterNumberLiteral(t){}exitNumberLiteral(t){}enterDateTimeLiteral(t){}exitDateTimeLiteral(t){}enterTimeLiteral(t){}exitTimeLiteral(t){}enterQuantityLiteral(t){}exitQuantityLiteral(t){}enterExternalConstant(t){}exitExternalConstant(t){}enterMemberInvocation(t){}exitMemberInvocation(t){}enterFunctionInvocation(t){}exitFunctionInvocation(t){}enterThisInvocation(t){}exitThisInvocation(t){}enterIndexInvocation(t){}exitIndexInvocation(t){}enterTotalInvocation(t){}exitTotalInvocation(t){}enterFunctn(t){}exitFunctn(t){}enterParamList(t){}exitParamList(t){}enterQuantity(t){}exitQuantity(t){}enterUnit(t){}exitUnit(t){}enterDateTimePrecision(t){}exitDateTimePrecision(t){}enterPluralDateTimePrecision(t){}exitPluralDateTimePrecision(t){}enterTypeSpecifier(t){}exitTypeSpecifier(t){}enterQualifiedIdentifier(t){}exitQualifiedIdentifier(t){}enterIdentifier(t){}exitIdentifier(t){}};h2.exports=hy});var f2=X((vse,m2)=>{var He=Bu(),ye=my(),yz=["\u608B\uA72A\u8133\uB9ED\u417C\u3BE7\u7786","\u5964A\x9C  ","   \x07 \x07",`\b \b  - -\v \v\f \f`,"\r \r   ","",`( -`,"","","","","","\x07",`P -\fS\v`,"\\",` -`,`f -`,`k -\x07\x07`,`\x07\x07\x07\x07r -\x07\b`,`\b\b\bw -\b\b\b   \x07`,` ~ - \f  \x81\v  - - -\x85 - -`,`\v\v\v\v\x8A -\v`,"\f\f\r\r",`\x07\x95 -\f\x98`,"\v",`\b -\f`,"\x07\b\v","\x07\f\f","\x1B",'"#)018',";<\xAD '","[\be",` -g\fqs`,"z\x82","\x89\x8B","\x8D\x8F","\x91\x99",' !!"\x07','"#$\b$(',"%& &(\r'#","'%(Q",")*\f\f*+ +P\r,-\f\v",`-. .P\f/0\f -`,"01\x07\r1P\v23\f ",`34 4P -56\f\x076`,"7 7P\b89\f9:"," \x07:P\x07;<\f","<=\x07=P>?\f","?@ \b@PAB\f","BC\x07CPDE\f","EF\x07FP\f\x07GH\f","HI\x07IJJK\x07","KPLM\f\bMN ","NPO)O,","O/O2O5","O8O;","O>OAOD","OGOLPS","QOQRR","SQT\\\f\x07",`U\\\bV\\ -WX\x07`,"XYYZ\x07Z\\","[T[U","[V[W\\\x07",`]^\x07 ^f\x07!_f -`,"`f\x07=af\x07>bf\x079cf\x07",`:df -e]e_`,"e`ea","ebeced","f gj\x07$hk","ik\x07=jhji","k\vlr","mr\bnr\x07%or\x07&","pr\x07'qlqm","qnqoqp","r\rsttv","\x07uw vu","vwwxxy\x07","yz\x7F","{|\x07(|~}{","~\x81\x7F}","\x7F\x80\x80","\x81\x7F\x82\x84\x07>","\x83\x85\v\x84\x83","\x84\x85\x85","\x86\x8A\f\x87\x8A\r\x88","\x8A\x07=\x89\x86\x89","\x87\x89\x88\x8A","\x8B\x8C \v\x8C","\x8D\x8E \f\x8E","\x8F\x90\x90\x1B","\x91\x96\x92\x93","\x07\x93\x95\x94\x92","\x95\x98\x96\x94","\x96\x97\x97","\x98\x96\x99\x9A"," \r\x9A'OQ[ejqv","\x7F\x84\x89\x96"].join(""),fy=new He.atn.ATNDeserializer().deserialize(yz),Cz=fy.decisionToState.map((n,t)=>new He.dfa.DFA(n,t)),wz=new He.PredictionContextCache,G=class n extends He.Parser{static grammarFileName="FHIRPath.g4";static literalNames=[null,"'.'","'['","']'","'+'","'-'","'*'","'/'","'div'","'mod'","'&'","'|'","'<='","'<'","'>'","'>='","'is'","'as'","'='","'~'","'!='","'!~'","'in'","'contains'","'and'","'or'","'xor'","'implies'","'('","')'","'{'","'}'","'true'","'false'","'%'","'$this'","'$index'","'$total'","','","'year'","'month'","'week'","'day'","'hour'","'minute'","'second'","'millisecond'","'years'","'months'","'weeks'","'days'","'hours'","'minutes'","'seconds'","'milliseconds'"];static symbolicNames=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"DATETIME","TIME","IDENTIFIER","DELIMITEDIDENTIFIER","STRING","NUMBER","WS","COMMENT","LINE_COMMENT"];static ruleNames=["entireExpression","expression","term","literal","externalConstant","invocation","functn","paramList","quantity","unit","dateTimePrecision","pluralDateTimePrecision","typeSpecifier","qualifiedIdentifier","identifier"];constructor(t){super(t),this._interp=new He.atn.ParserATNSimulator(this,fy,Cz,wz),this.ruleNames=n.ruleNames,this.literalNames=n.literalNames,this.symbolicNames=n.symbolicNames}get atn(){return fy}sempred(t,e,i){switch(e){case 1:return this.expression_sempred(t,i);default:throw"No predicate with index:"+e}}expression_sempred(t,e){switch(e){case 0:return this.precpred(this._ctx,10);case 1:return this.precpred(this._ctx,9);case 2:return this.precpred(this._ctx,8);case 3:return this.precpred(this._ctx,7);case 4:return this.precpred(this._ctx,5);case 5:return this.precpred(this._ctx,4);case 6:return this.precpred(this._ctx,3);case 7:return this.precpred(this._ctx,2);case 8:return this.precpred(this._ctx,1);case 9:return this.precpred(this._ctx,13);case 10:return this.precpred(this._ctx,12);case 11:return this.precpred(this._ctx,6);default:throw"No predicate with index:"+e}}entireExpression(){let t=new vf(this,this._ctx,this.state);this.enterRule(t,0,n.RULE_entireExpression);try{this.enterOuterAlt(t,1),this.state=30,this.expression(0),this.state=31,this.match(n.EOF)}catch(e){if(e instanceof He.error.RecognitionException)t.exception=e,this._errHandler.reportError(this,e),this._errHandler.recover(this,e);else throw e}finally{this.exitRule()}return t}expression(t){t===void 0&&(t=0);let e=this._ctx,i=this.state,r=new Ve(this,this._ctx,i),s=r,a=2;this.enterRecursionRule(r,2,n.RULE_expression,t);var o=0;try{switch(this.enterOuterAlt(r,1),this.state=37,this._errHandler.sync(this),this._input.LA(1)){case n.T__15:case n.T__16:case n.T__21:case n.T__22:case n.T__27:case n.T__29:case n.T__31:case n.T__32:case n.T__33:case n.T__34:case n.T__35:case n.T__36:case n.DATETIME:case n.TIME:case n.IDENTIFIER:case n.DELIMITEDIDENTIFIER:case n.STRING:case n.NUMBER:r=new Df(this,r),this._ctx=r,s=r,this.state=34,this.term();break;case n.T__3:case n.T__4:r=new yf(this,r),this._ctx=r,s=r,this.state=35,o=this._input.LA(1),o===n.T__3||o===n.T__4?(this._errHandler.reportMatch(this),this.consume()):this._errHandler.recoverInline(this),this.state=36,this.expression(11);break;default:throw new He.error.NoViableAltException(this)}this._ctx.stop=this._input.LT(-1),this.state=79,this._errHandler.sync(this);for(var l=this._interp.adaptivePredict(this._input,2,this._ctx);l!=2&&l!=He.atn.ATN.INVALID_ALT_NUMBER;){if(l===1){this._parseListeners!==null&&this.triggerExitRuleEvent(),s=r,this.state=77,this._errHandler.sync(this);var c=this._interp.adaptivePredict(this._input,1,this._ctx);switch(c){case 1:if(r=new wf(this,new Ve(this,e,i)),this.pushNewRecursionContext(r,a,n.RULE_expression),this.state=39,!this.precpred(this._ctx,10))throw new He.error.FailedPredicateException(this,"this.precpred(this._ctx, 10)");this.state=40,o=this._input.LA(1),!(o&-32)&&1<{var Yf=Bu(),xz=d2(),Sz=f2(),p2=my(),py=class extends Yf.error.ErrorListener{constructor(t){super(),this.errors=t}syntaxError(t,e,i,r,s,a){this.errors.push([t,e,i,r,s,a])}},kz=function(n){var t=new Yf.InputStream(n),e=new xz(t),i=new Yf.CommonTokenStream(e),r=new Sz(i);r.buildParseTrees=!0;var s=[],a=new py(s);e.removeErrorListeners(),e.addErrorListener(a),r.removeErrorListeners(),r.addErrorListener(a);var o=r.entireExpression();class l extends p2{constructor(){super()}}var c={},u,d=[c];for(let f of Object.getOwnPropertyNames(p2.prototype))f.startsWith("enter")?l.prototype[f]=function(g){let v=d[d.length-1];u={type:f.slice(5)},u.text=g.getText(),v.children||(v.children=[]),v.children.push(u),d.push(u),u.terminalNodeText=[];for(let C of g.children)C.symbol&&u.terminalNodeText.push(C.getText())}:f.startsWith("exit")&&(l.prototype[f]=function(){d.pop()});var h=new l;if(Yf.tree.ParseTreeWalker.DEFAULT.walk(h,o),s.length>0){let f=[];for(let g=0,v=s.length;g{var v2=6e4;b2.exports=function(t){var e=new Date(t.getTime()),i=e.getTimezoneOffset();e.setSeconds(0,0);var r=e.getTime()%v2;return i*v2+r}});var w2=X((Cse,C2)=>{function Mz(n){return n instanceof Date}C2.exports=Mz});var Zu=X((wse,S2)=>{var gy=y2(),Tz=w2(),_y=36e5,vy=6e4,Ez=2,Iz=/[T ]/,Az=/:/,Dz=/^(\d{2})$/,Rz=[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],Lz=/^(\d{4})/,Oz=[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],Nz=/^-(\d{2})$/,Fz=/^-?(\d{3})$/,Pz=/^-?(\d{2})-?(\d{2})$/,Uz=/^-?W(\d{2})$/,$z=/^-?W(\d{2})-?(\d{1})$/,Vz=/^(\d{2}([.,]\d*)?)$/,Bz=/^(\d{2}):?(\d{2}([.,]\d*)?)$/,zz=/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,Hz=/([Z+-].*)$/,jz=/^(Z)$/,Wz=/^([+-])(\d{2})$/,qz=/^([+-])(\d{2}):?(\d{2})$/;function Gz(n,t){if(Tz(n))return new Date(n.getTime());if(typeof n!="string")return new Date(n);var e=t||{},i=e.additionalDigits;i==null?i=Ez:i=Number(i);var r=Kz(n),s=Yz(r.date,i),a=s.year,o=s.restDateString,l=Qz(o,a);if(l){var c=l.getTime(),u=0,d;if(r.time&&(u=Zz(r.time)),r.timezone)d=Xz(r.timezone)*vy;else{var h=c+u,m=new Date(h);d=gy(m);var f=new Date(h);f.setDate(m.getDate()+1);var g=gy(f)-gy(m);g>0&&(d+=g)}return new Date(c+u+d)}else return new Date(n)}function Kz(n){var t={},e=n.split(Iz),i;if(Az.test(e[0])?(t.date=null,i=e[0]):(t.date=e[0],i=e[1]),i){var r=Hz.exec(i);r?(t.time=i.replace(r[1],""),t.timezone=r[1]):t.time=i}return t}function Yz(n,t){var e=Rz[t],i=Oz[t],r;if(r=Lz.exec(n)||i.exec(n),r){var s=r[1];return{year:parseInt(s,10),restDateString:n.slice(s.length)}}if(r=Dz.exec(n)||e.exec(n),r){var a=r[1];return{year:parseInt(a,10)*100,restDateString:n.slice(a.length)}}return{year:null}}function Qz(n,t){if(t===null)return null;var e,i,r,s;if(n.length===0)return i=new Date(0),i.setUTCFullYear(t),i;if(e=Nz.exec(n),e)return i=new Date(0),r=parseInt(e[1],10)-1,i.setUTCFullYear(t,r),i;if(e=Fz.exec(n),e){i=new Date(0);var a=parseInt(e[1],10);return i.setUTCFullYear(t,0,a),i}if(e=Pz.exec(n),e){i=new Date(0),r=parseInt(e[1],10)-1;var o=parseInt(e[2],10);return i.setUTCFullYear(t,r,o),i}if(e=Uz.exec(n),e)return s=parseInt(e[1],10)-1,x2(t,s);if(e=$z.exec(n),e){s=parseInt(e[1],10)-1;var l=parseInt(e[2],10)-1;return x2(t,s,l)}return null}function Zz(n){var t,e,i;if(t=Vz.exec(n),t)return e=parseFloat(t[1].replace(",",".")),e%24*_y;if(t=Bz.exec(n),t)return e=parseInt(t[1],10),i=parseFloat(t[2].replace(",",".")),e%24*_y+i*vy;if(t=zz.exec(n),t){e=parseInt(t[1],10),i=parseInt(t[2],10);var r=parseFloat(t[3].replace(",","."));return e%24*_y+i*vy+r*1e3}return null}function Xz(n){var t,e;return t=jz.exec(n),t?0:(t=Wz.exec(n),t?(e=parseInt(t[2],10)*60,t[1]==="+"?-e:e):(t=qz.exec(n),t?(e=parseInt(t[2],10)*60+parseInt(t[3],10),t[1]==="+"?-e:e):0))}function x2(n,t,e){t=t||0,e=e||0;var i=new Date(0);i.setUTCFullYear(n,0,4);var r=i.getUTCDay()||7,s=t*7+e+1-r;return i.setUTCDate(i.getUTCDate()+s),i}S2.exports=Gz});var Xu=X((xse,k2)=>{var Jz=Zu();function e5(n,t){var e=Jz(n).getTime(),i=Number(t);return new Date(e+i)}k2.exports=e5});var by=X((Sse,M2)=>{var t5=Xu(),i5=6e4;function n5(n,t){var e=Number(t);return t5(n,e*i5)}M2.exports=n5});var ha=X(Qf=>{"use strict";Object.defineProperty(Qf,"__esModule",{value:!0});Qf.Ucum=void 0;var r5={dimLen_:7,validOps_:[".","/"],codeSep_:": ",valMsgStart_:"Did you mean ",valMsgEnd_:"?",cnvMsgStart_:"We assumed you meant ",cnvMsgEnd_:".",openEmph_:" ->",closeEmph_:"<- ",openEmphHTML_:' ',closeEmphHTML_:" ",bracesMsg_:"FYI - annotations (text in curly braces {}) are ignored, except that an annotation without a leading symbol implies the default unit 1 (the unity).",needMoleWeightMsg_:"Did you wish to convert between mass and moles? The molecular weight of the substance represented by the units is required to perform the conversion.",csvCols_:{"case-sensitive code":"csCode_","LOINC property":"loincProperty_","name (display)":"name_",synonyms:"synonyms_",source:"source_",category:"category_",Guidance:"guidance_"},inputKey_:"case-sensitive code",specUnits_:{"B[10.nV]":"specialUnitOne","[m/s2/Hz^(1/2)]":"specialUnitTwo"}};Qf.Ucum=r5});var T2=X(Zf=>{"use strict";Object.defineProperty(Zf,"__esModule",{value:!0});Zf.Prefix=void 0;var Mse=ha(),yy=class{constructor(t){if(t.code_===void 0||t.code_===null||t.name_===void 0||t.name_===null||t.value_===void 0||t.value_===null||t.exp_===void 0)throw new Error("Prefix constructor called missing one or more parameters. Prefix codes (cs or ci), name, value and exponent must all be specified and all but the exponent must not be null.");this.code_=t.code_,this.ciCode_=t.ciCode_,this.name_=t.name_,this.printSymbol_=t.printSymbol_,typeof t.value_=="string"?this.value_=parseFloat(t.value_):this.value_=t.value_,this.exp_=t.exp_}getValue(){return this.value_}getCode(){return this.code_}getCiCode(){return this.ciCode_}getName(){return this.name_}getPrintSymbol(){return this.printSymbol_}getExp(){return this.exp_}equals(t){return this.code_===t.code_&&this.ciCode_===t.ciCode_&&this.name_===t.name_&&this.printSymbol_===t.printSymbol_&&this.value_===t.value_&&this.exp_===t.exp_}};Zf.Prefix=yy});var Cy=X(Ll=>{"use strict";Object.defineProperty(Ll,"__esModule",{value:!0});Ll.PrefixTables=Ll.PrefixTablesFactory=void 0;var Xf=class{constructor(){this.byCode_={},this.byValue_={}}prefixCount(){return Object.keys(this.byCode_).length}allPrefixesByValue(){let t="",e=Object.keys(this.byValue_),i=e.length;for(let r=0;r{"use strict";Object.defineProperty(Jf,"__esModule",{value:!0});Jf.default=void 0;var wy=class{constructor(){this.funcs={},this.funcs.cel={cnvTo:function(t){return t-273.15},cnvFrom:function(t){return t+273.15}},this.funcs.degf={cnvTo:function(t){return t-459.67},cnvFrom:function(t){return t+459.67}},this.funcs.degre={cnvTo:function(t){return t-273.15},cnvFrom:function(t){return t+273.15}},this.funcs.ph={cnvTo:function(t){return-Math.log(t)/Math.LN10},cnvFrom:function(t){return Math.pow(10,-t)}},this.funcs.ln={cnvTo:function(t){return Math.log(t)},cnvFrom:function(t){return Math.exp(t)}},this.funcs["2ln"]={cnvTo:function(t){return 2*Math.log(t)},cnvFrom:function(t){return Math.exp(t/2)}},this.funcs.lg={cnvTo:function(t){return Math.log(t)/Math.LN10},cnvFrom:function(t){return Math.pow(10,t)}},this.funcs["10lg"]={cnvTo:function(t){return 10*Math.log(t)/Math.LN10},cnvFrom:function(t){return Math.pow(10,t/10)}},this.funcs["20lg"]={cnvTo:function(t){return 20*Math.log(t)/Math.LN10},cnvFrom:function(t){return Math.pow(10,t/20)}},this.funcs["2lg"]={cnvTo:function(t){return 2*Math.log(t)/Math.LN10},cnvFrom:function(t){return Math.pow(10,t/2)}},this.funcs.lgtimes2=this.funcs["2lg"],this.funcs.ld={cnvTo:function(t){return Math.log(t)/Math.LN2},cnvFrom:function(t){return Math.pow(2,t)}},this.funcs["100tan"]={cnvTo:function(t){return Math.tan(t)*100},cnvFrom:function(t){return Math.atan(t/100)}},this.funcs.tanTimes100=this.funcs["100tan"],this.funcs.sqrt={cnvTo:function(t){return Math.sqrt(t)},cnvFrom:function(t){return t*t}},this.funcs.inv={cnvTo:function(t){return 1/t},cnvFrom:function(t){return 1/t}},this.funcs.hpX={cnvTo:function(t){return-this.funcs.lg(t)},cnvFrom:function(t){return Math.pow(10,-t)}},this.funcs.hpC={cnvTo:function(t){return-this.func.ln(t)/this.funcs.ln(100)},cnvFrom:function(t){return Math.pow(100,-t)}},this.funcs.hpM={cnvTo:function(t){return-this.funcs.ln(t)/this.funcs.ln(1e3)},cnvFrom:function(t){return Math.pow(1e3,-t)}},this.funcs.hpQ={cnvTo:function(t){return-this.funcs.ln(t)/this.funcs.ln(5e4)},cnvFrom:function(t){return Math.pow(5e4,-t)}}}forName(t){t=t.toLowerCase();let e=this.funcs[t];if(e===null)throw new Error(`Requested function ${t} is not defined`);return e}isDefined(t){return t=t.toLowerCase(),this.funcs[t]!==null}},o5=new wy;Jf.default=o5});var co=X(tp=>{"use strict";Object.defineProperty(tp,"__esModule",{value:!0});tp.UnitTables=void 0;var ep=ha().Ucum,xy=class{constructor(){this.unitNames_={},this.unitCodes_={},this.codeOrder_=[],this.unitStrings_={},this.unitDimensions_={},this.unitSynonyms_={},this.massDimIndex_=0,this.dimVecIndexToBaseUnit_={}}unitsCount(){return Object.keys(this.unitCodes_).length}addUnit(t){t.name_&&this.addUnitName(t),this.addUnitCode(t),this.addUnitString(t);try{t.dim_.getProperty("dimVec_")&&this.addUnitDimension(t)}catch{}if(t.isBase_){let i=t.dim_.dimVec_,r;for(let s=0,a=i.length;r==null&&s=1&&(i=t.substr(e+ep.codeSep_.length),t=t.substr(0,e));let r=this.unitNames_[t];if(r){let s=r.length;if(i&&s>1){let a=0;for(;r[a].csCode_!==i&&a0&&(i+=e),t[d]==="dim_")u.dim_!==null&&u.dim_!==void 0&&u.dim_.dimVec_ instanceof Array?i+="["+u.dim_.dimVec_.join(",")+"]":i+="";else{let h=u[t[d]];typeof h=="string"?i+=h.replace(/[\n\r]/g," "):i+=h}i+=`\r -`}}return i}printUnits(t,e){t===void 0&&(t=!1),e===void 0&&(e="|");let i="",r=this.codeOrder_.length,s="csCode"+e;t&&(s+="ciCode"+e),s+="name"+e,t&&(s+="isBase"+e),s+="magnitude"+e+"dimension"+e+"from unit(s)"+e+"value"+e+"function"+e,t&&(s+="property"+e+"printSymbol"+e+"synonyms"+e+"source"+e+"class"+e+"isMetric"+e+"variable"+e+"isSpecial"+e+"isAbitrary"+e),s+="comment",i=s+` -`;for(let a=0;a{"use strict";Object.defineProperty(Ju,"__esModule",{value:!0});Ju.isNumericString=d5;Ju.isIntegerUnit=h5;Ju.getSynonyms=m5;var u5=co().UnitTables;function d5(n){let t=""+n;return!isNaN(t)&&!isNaN(parseFloat(t))}function h5(n){return/^\d+$/.test(n)}function m5(n){let t={},e=u5.getInstance(),i={};if(i=e.getUnitBySynonym(n),!i.units)t.status=i.status,t.msg=i.msg;else{t.status="succeeded";let r=i.units.length;t.units=[];for(let s=0;s{"use strict";I2.exports=Number.isFinite||function(n){return!(typeof n!="number"||n!==n||n===1/0||n===-1/0)}});var Sy=X((Lse,D2)=>{var f5=A2();D2.exports=Number.isInteger||function(n){return typeof n=="number"&&f5(n)&&Math.floor(n)===n}});var R2=X(rp=>{"use strict";Object.defineProperty(rp,"__esModule",{value:!0});rp.Dimension=void 0;var on=ha(),np=Sy(),ky=class n{constructor(t){if(on.Ucum.dimLen_===0)throw new Error("Dimension.setDimensionLen must be called before Dimension constructor");if(t==null)this.assignZero();else if(t instanceof Array){if(t.length!==on.Ucum.dimLen_)throw new Error(`Parameter error, incorrect length of vector passed to Dimension constructor, vector = ${JSON.stringify(t)}`);this.dimVec_=[];for(let e=0;e=on.Ucum.dimLen_)throw new Error("Parameter error, invalid element number specified for Dimension constructor");this.assignZero(),this.dimVec_[t]=1}}setElementAt(t,e){if(!np(t)||t<0||t>=on.Ucum.dimLen_)throw new Error(`Dimension.setElementAt called with an invalid index position (${t})`);this.dimVec_||this.assignZero(),e==null&&(e=1),this.dimVec_[t]=e}getElementAt(t){if(!np(t)||t<0||t>=on.Ucum.dimLen_)throw new Error(`Dimension.getElementAt called with an invalid index position (${t})`);let e=null;return this.dimVec_&&(e=this.dimVec_[t]),e}getProperty(t){let e=t.charAt(t.length-1)==="_"?t:t+"_";return this[e]}toString(){let t=null;return this.dimVec_&&(t="["+this.dimVec_.join(", ")+"]"),t}add(t){if(!t instanceof n)throw new Error(`Dimension.add called with an invalid parameter - ${typeof t} instead of a Dimension object`);if(this.dimVec_&&t.dimVec_)for(let e=0;e{"use strict";Object.defineProperty(sp,"__esModule",{value:!0});sp.Unit=void 0;var L2=_5(E2()),p5=g5(ip());function O2(){if(typeof WeakMap!="function")return null;var n=new WeakMap;return O2=function(){return n},n}function g5(n){if(n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=O2();if(t&&t.has(n))return t.get(n);var e={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)){var s=i?Object.getOwnPropertyDescriptor(n,r):null;s&&(s.get||s.set)?Object.defineProperty(e,r,s):e[r]=n[r]}return e.default=n,t&&t.set(n,e),e}function _5(n){return n&&n.__esModule?n:{default:n}}var v5=ha().Ucum,xs=R2().Dimension,My,Ty=Sy(),Ey=class n{constructor(t={}){this.isBase_=t.isBase_||!1,this.name_=t.name_||"",this.csCode_=t.csCode_||"",this.ciCode_=t.ciCode_||"",this.property_=t.property_||"",this.magnitude_=t.magnitude_||1,t.dim_===void 0||t.dim_===null?this.dim_=new xs:t.dim_.dimVec_!==void 0?this.dim_=new xs(t.dim_.dimVec_):t.dim_ instanceof xs?this.dim_=t.dim_:t.dim_ instanceof Array||Ty(t.dim_)?this.dim_=new xs(t.dim_):this.dim_=new xs,this.printSymbol_=t.printSymbol_||null,this.class_=t.class_||null,this.isMetric_=t.isMetric_||!1,this.variable_=t.variable_||null,this.cnv_=t.cnv_||null,this.cnvPfx_=t.cnvPfx_||1,this.isSpecial_=t.isSpecial_||!1,this.isArbitrary_=t.isArbitrary_||!1,this.moleExp_=t.moleExp_||0,this.synonyms_=t.synonyms_||null,this.source_=t.source_||null,this.loincProperty_=t.loincProperty_||null,this.category_=t.category_||null,this.guidance_=t.guidance_||null,this.csUnitString_=t.csUnitString_||null,this.ciUnitString_=t.ciUnitString_||null,this.baseFactorStr_=t.baseFactorStr_||null,this.baseFactor_=t.baseFactor_||null,this.defError_=t.defError_||!1}assignUnity(){return this.name_="",this.magnitude_=1,this.dim_||(this.dim_=new xs),this.dim_.assignZero(),this.cnv_=null,this.cnvPfx_=1,this}assignVals(t){for(let e in t){let i=!e.charAt(e.length-1)==="_"?e+"_":e;if(this.hasOwnProperty(i))this[i]=t[e];else throw new Error(`Parameter error; ${e} is not a property of a Unit`)}}clone(){let t=new n;return Object.getOwnPropertyNames(this).forEach(e=>{e==="dim_"?this.dim_?t.dim_=this.dim_.clone():t.dim_=null:t[e]=this[e]}),t}assign(t){Object.getOwnPropertyNames(t).forEach(e=>{e==="dim_"?t.dim_?this.dim_=t.dim_.clone():this.dim_=null:this[e]=t[e]})}equals(t){return this.magnitude_===t.magnitude_&&this.cnv_===t.cnv_&&this.cnvPfx_===t.cnvPfx_&&(this.dim_===null&&t.dim_===null||this.dim_.equals(t.dim_))}fullEquals(t){let e=Object.keys(this).sort(),i=Object.keys(t).sort(),r=e.length,s=r===i.length;for(let a=0;a0){let e=t.replace("/","!").replace(".","/").replace("=0;c--){let u=parseInt(a[c]);if(!Ty(u)){if((a[c]==="-"||a[c]==="+")&&c--,c{"use strict";Object.defineProperty(ap,"__esModule",{value:!0});ap.packArray=x5;ap.unpackArray=S5;var b5=Array.prototype.push;function y5(n){return Object.prototype.toString.call(n)==="[object Object]"}function Ay(n){return Object.keys(n).reduce((t,e)=>(y5(n[e])?b5.apply(t,Ay(n[e]).map(i=>[e,...[].concat(i)])):t.push(e),t),[])}function Dy(n){return n.map(t=>Array.isArray(t)?t:[t])}function C5(n,t){if(n.join()!==Dy(Ay(t)).join())throw new Error("Object of unusual structure");return n.map(e=>{let i=t;return e.forEach(r=>{if(i=i[r],i===void 0)throw new Error("Object of unusual structure")}),i})}function w5(n,t){let e={};return n.forEach((i,r)=>{let s=e;for(let a=0;a{k5.exports={license:"The following data (prefixes and units) was generated by the UCUM LHC code from the UCUM data and selected LOINC combinations of UCUM units. The license for the UCUM LHC code (demo and library code as well as the combined units) is located at https://github.com/lhncbc/ucum-lhc/blob/LICENSE.md.",prefixes:{config:["code_","ciCode_","name_","printSymbol_","value_","exp_"],data:[["E","EX","exa","E",1e18,"18"],["G","GA","giga","G",1e9,"9"],["Gi","GIB","gibi","Gi",1073741824,null],["Ki","KIB","kibi","Ki",1024,null],["M","MA","mega","M",1e6,"6"],["Mi","MIB","mebi","Mi",1048576,null],["P","PT","peta","P",1e15,"15"],["T","TR","tera","T",1e12,"12"],["Ti","TIB","tebi","Ti",1099511627776,null],["Y","YA","yotta","Y",1e24,"24"],["Z","ZA","zetta","Z",1e21,"21"],["a","A","atto","a",1e-18,"-18"],["c","C","centi","c",.01,"-2"],["d","D","deci","d",.1,"-1"],["da","DA","deka","da",10,"1"],["f","F","femto","f",1e-15,"-15"],["h","H","hecto","h",100,"2"],["k","K","kilo","k",1e3,"3"],["m","M","milli","m",.001,"-3"],["n","N","nano","n",1e-9,"-9"],["p","P","pico","p",1e-12,"-12"],["u","U","micro","\u03BC",1e-6,"-6"],["y","YO","yocto","y",1e-24,"-24"],["z","ZO","zepto","z",1e-21,"-21"]]},units:{config:["isBase_","name_","csCode_","ciCode_","property_","magnitude_",["dim_","dimVec_"],"printSymbol_","class_","isMetric_","variable_","cnv_","cnvPfx_","isSpecial_","isArbitrary_","moleExp_","synonyms_","source_","loincProperty_","category_","guidance_","csUnitString_","ciUnitString_","baseFactorStr_","baseFactor_","defError_"],data:[[!0,"meter","m","M","length",1,[1,0,0,0,0,0,0],"m",null,!1,"L",null,1,!1,!1,0,"meters; metres; distance","UCUM","Len","Clinical","unit of length = 1.09361 yards",null,null,null,null,!1],[!0,"second - time","s","S","time",1,[0,1,0,0,0,0,0],"s",null,!1,"T",null,1,!1,!1,0,"seconds","UCUM","Time","Clinical","",null,null,null,null,!1],[!0,"gram","g","G","mass",1,[0,0,1,0,0,0,0],"g",null,!1,"M",null,1,!1,!1,0,"grams; gm","UCUM","Mass","Clinical","",null,null,null,null,!1],[!0,"radian","rad","RAD","plane angle",1,[0,0,0,1,0,0,0],"rad",null,!1,"A",null,1,!1,!1,0,"radians","UCUM","Angle","Clinical","unit of angular measure where 1 radian = 1/2\u03C0 turn = 57.296 degrees. ",null,null,null,null,!1],[!0,"degree Kelvin","K","K","temperature",1,[0,0,0,0,1,0,0],"K",null,!1,"C",null,1,!1,!1,0,"Kelvin; degrees","UCUM","Temp","Clinical","absolute, thermodynamic temperature scale ",null,null,null,null,!1],[!0,"coulomb","C","C","electric charge",1,[0,0,0,0,0,1,0],"C",null,!1,"Q",null,1,!1,!1,0,"coulombs","UCUM","","Clinical","defined as amount of 1 electron charge = 6.2415093\xD710^18 e, and equivalent to 1 Ampere-second",null,null,null,null,!1],[!0,"candela","cd","CD","luminous intensity",1,[0,0,0,0,0,0,1],"cd",null,!1,"F",null,1,!1,!1,0,"candelas","UCUM","","Clinical","SI base unit of luminous intensity",null,null,null,null,!1],[!1,"the number ten for arbitrary powers","10*","10*","number",10,[0,0,0,0,0,0,0],"10","dimless",!1,null,null,1,!1,!1,0,"10^; 10 to the arbitrary powers","UCUM","Num","Clinical","10* by itself is the same as 10, but users can add digits after the *. For example, 10*3 = 1000.","1","1","10",10,!1],[!1,"the number ten for arbitrary powers","10^","10^","number",10,[0,0,0,0,0,0,0],"10","dimless",!1,null,null,1,!1,!1,0,"10*; 10 to the arbitrary power","UCUM","Num","Clinical","10* by itself is the same as 10, but users can add digits after the *. For example, 10*3 = 1000.","1","1","10",10,!1],[!1,"the number pi","[pi]","[PI]","number",3.141592653589793,[0,0,0,0,0,0,0],"\u03C0","dimless",!1,null,null,1,!1,!1,0,"\u03C0","UCUM","","Constant","a mathematical constant; the ratio of a circle's circumference to its diameter \u2248 3.14159","1","1","3.1415926535897932384626433832795028841971693993751058209749445923",3.141592653589793,!1],[!1,"","%","%","fraction",.01,[0,0,0,0,0,0,0],"%","dimless",!1,null,null,1,!1,!1,0,"percents","UCUM","FR; NFR; MFR; CFR; SFR Rto; etc. ","Clinical","","10*-2","10*-2","1",1,!1],[!1,"parts per thousand","[ppth]","[PPTH]","fraction",.001,[0,0,0,0,0,0,0],"ppth","dimless",!1,null,null,1,!1,!1,0,"ppth; 10^-3","UCUM","MCnc; MCnt","Clinical",`[ppth] is often used in solution concentrations as 1 g/L or 1 g/kg. - -Can be ambigous and would be better if the metric units was used directly. `,"10*-3","10*-3","1",1,!1],[!1,"parts per million","[ppm]","[PPM]","fraction",1e-6,[0,0,0,0,0,0,0],"ppm","dimless",!1,null,null,1,!1,!1,0,"ppm; 10^-6","UCUM","MCnt; MCnc; SFr","Clinical",`[ppm] is often used in solution concentrations as 1 mg/L or 1 mg/kg. Also used to express mole fractions as 1 mmol/mol. - -[ppm] is also used in nuclear magnetic resonance (NMR) to represent chemical shift - the difference of a measured frequency in parts per million from the reference frequency. - -Can be ambigous and would be better if the metric units was used directly. `,"10*-6","10*-6","1",1,!1],[!1,"parts per billion","[ppb]","[PPB]","fraction",1e-9,[0,0,0,0,0,0,0],"ppb","dimless",!1,null,null,1,!1,!1,0,"ppb; 10^-9","UCUM","MCnt; MCnc; SFr","Clinical",`[ppb] is often used in solution concentrations as 1 ug/L or 1 ug/kg. Also used to express mole fractions as 1 umol/mol. - -Can be ambigous and would be better if the metric units was used directly. `,"10*-9","10*-9","1",1,!1],[!1,"parts per trillion","[pptr]","[PPTR]","fraction",1e-12,[0,0,0,0,0,0,0],"pptr","dimless",!1,null,null,1,!1,!1,0,"pptr; 10^-12","UCUM","MCnt; MCnc; SFr","Clinical",`[pptr] is often used in solution concentrations as 1 ng/L or 1 ng/kg. Also used to express mole fractions as 1 nmol/mol. - -Can be ambigous and would be better if the metric units was used directly. `,"10*-12","10*-12","1",1,!1],[!1,"mole","mol","MOL","amount of substance",60221367e16,[0,0,0,0,0,0,0],"mol","si",!0,null,null,1,!1,!1,1,"moles","UCUM","Sub","Clinical","Measure the number of molecules ","10*23","10*23","6.0221367",6.0221367,!1],[!1,"steradian - solid angle","sr","SR","solid angle",1,[0,0,0,2,0,0,0],"sr","si",!0,null,null,1,!1,!1,0,"square radian; rad2; rad^2","UCUM","Angle","Clinical","unit of solid angle in three-dimensional geometry analagous to radian; used in photometry which measures the perceived brightness of object by human eye (e.g. radiant intensity = watt/steradian)","rad2","RAD2","1",1,!1],[!1,"hertz","Hz","HZ","frequency",1,[0,-1,0,0,0,0,0],"Hz","si",!0,null,null,1,!1,!1,0,"Herz; frequency; frequencies","UCUM","Freq; Num","Clinical","equal to one cycle per second","s-1","S-1","1",1,!1],[!1,"newton","N","N","force",1e3,[1,-2,1,0,0,0,0],"N","si",!0,null,null,1,!1,!1,0,"Newtons","UCUM","Force","Clinical","unit of force with base units kg.m/s2","kg.m/s2","KG.M/S2","1",1,!1],[!1,"pascal","Pa","PAL","pressure",1e3,[-1,-2,1,0,0,0,0],"Pa","si",!0,null,null,1,!1,!1,0,"pascals","UCUM","Pres","Clinical","standard unit of pressure equal to 1 newton per square meter (N/m2)","N/m2","N/M2","1",1,!1],[!1,"joule","J","J","energy",1e3,[2,-2,1,0,0,0,0],"J","si",!0,null,null,1,!1,!1,0,"joules","UCUM","Enrg","Clinical","unit of energy defined as the work required to move an object 1 m with a force of 1 N (N.m) or an electric charge of 1 C through 1 V (C.V), or to produce 1 W for 1 s (W.s) ","N.m","N.M","1",1,!1],[!1,"watt","W","W","power",1e3,[2,-3,1,0,0,0,0],"W","si",!0,null,null,1,!1,!1,0,"watts","UCUM","EngRat","Clinical","unit of power equal to 1 Joule per second (J/s) = kg\u22C5m2\u22C5s\u22123","J/s","J/S","1",1,!1],[!1,"Ampere","A","A","electric current",1,[0,-1,0,0,0,1,0],"A","si",!0,null,null,1,!1,!1,0,"Amperes","UCUM","ElpotRat","Clinical","unit of electric current equal to flow rate of electrons equal to 6.2415\xD710^18 elementary charges moving past a boundary in one second or 1 Coulomb/second","C/s","C/S","1",1,!1],[!1,"volt","V","V","electric potential",1e3,[2,-2,1,0,0,-1,0],"V","si",!0,null,null,1,!1,!1,0,"volts","UCUM","Elpot","Clinical","unit of electric potential (voltage) = 1 Joule per Coulomb (J/C)","J/C","J/C","1",1,!1],[!1,"farad","F","F","electric capacitance",.001,[-2,2,-1,0,0,2,0],"F","si",!0,null,null,1,!1,!1,0,"farads; electric capacitance","UCUM","","Clinical","CGS unit of electric capacitance with base units C/V (Coulomb per Volt)","C/V","C/V","1",1,!1],[!1,"ohm","Ohm","OHM","electric resistance",1e3,[2,-1,1,0,0,-2,0],"\u03A9","si",!0,null,null,1,!1,!1,0,"\u03A9; resistance; ohms","UCUM","","Clinical","unit of electrical resistance with units of Volt per Ampere","V/A","V/A","1",1,!1],[!1,"siemens","S","SIE","electric conductance",.001,[-2,1,-1,0,0,2,0],"S","si",!0,null,null,1,!1,!1,0,"Reciprocal ohm; mho; \u03A9\u22121; conductance","UCUM","","Clinical","unit of electric conductance (the inverse of electrical resistance) equal to ohm^-1","Ohm-1","OHM-1","1",1,!1],[!1,"weber","Wb","WB","magnetic flux",1e3,[2,-1,1,0,0,-1,0],"Wb","si",!0,null,null,1,!1,!1,0,"magnetic flux; webers","UCUM","","Clinical","unit of magnetic flux equal to Volt second","V.s","V.S","1",1,!1],[!1,"degree Celsius","Cel","CEL","temperature",1,[0,0,0,0,1,0,0],"\xB0C","si",!0,null,"Cel",1,!0,!1,0,"\xB0C; degrees","UCUM","Temp","Clinical","","K",null,null,1,!1],[!1,"tesla","T","T","magnetic flux density",1e3,[0,-1,1,0,0,-1,0],"T","si",!0,null,null,1,!1,!1,0,"Teslas; magnetic field","UCUM","","Clinical","SI unit of magnetic field strength for magnetic field B equal to 1 Weber/square meter = 1 kg/(s2*A)","Wb/m2","WB/M2","1",1,!1],[!1,"henry","H","H","inductance",1e3,[2,0,1,0,0,-2,0],"H","si",!0,null,null,1,!1,!1,0,"henries; inductance","UCUM","","Clinical","unit of electrical inductance; usually expressed in millihenrys (mH) or microhenrys (uH).","Wb/A","WB/A","1",1,!1],[!1,"lumen","lm","LM","luminous flux",1,[0,0,0,2,0,0,1],"lm","si",!0,null,null,1,!1,!1,0,"luminous flux; lumens","UCUM","","Clinical","unit of luminous flux defined as 1 lm = 1 cd\u22C5sr (candela times sphere)","cd.sr","CD.SR","1",1,!1],[!1,"lux","lx","LX","illuminance",1,[-2,0,0,2,0,0,1],"lx","si",!0,null,null,1,!1,!1,0,"illuminance; luxes","UCUM","","Clinical","unit of illuminance equal to one lumen per square meter. ","lm/m2","LM/M2","1",1,!1],[!1,"becquerel","Bq","BQ","radioactivity",1,[0,-1,0,0,0,0,0],"Bq","si",!0,null,null,1,!1,!1,0,"activity; radiation; becquerels","UCUM","","Clinical","measure of the atomic radiation rate with units s^-1","s-1","S-1","1",1,!1],[!1,"gray","Gy","GY","energy dose",1,[2,-2,0,0,0,0,0],"Gy","si",!0,null,null,1,!1,!1,0,"absorbed doses; ionizing radiation doses; kerma; grays","UCUM","EngCnt","Clinical","unit of ionizing radiation dose with base units of 1 joule of radiation energy per kilogram of matter","J/kg","J/KG","1",1,!1],[!1,"sievert","Sv","SV","dose equivalent",1,[2,-2,0,0,0,0,0],"Sv","si",!0,null,null,1,!1,!1,0,"sieverts; radiation dose quantities; equivalent doses; effective dose; operational dose; committed dose","UCUM","","Clinical","SI unit for radiation dose equivalent equal to 1 Joule/kilogram.","J/kg","J/KG","1",1,!1],[!1,"degree - plane angle","deg","DEG","plane angle",.017453292519943295,[0,0,0,1,0,0,0],"\xB0","iso1000",!1,null,null,1,!1,!1,0,"\xB0; degree of arc; arc degree; arcdegree; angle","UCUM","Angle","Clinical","one degree is equivalent to \u03C0/180 radians.","[pi].rad/360","[PI].RAD/360","2",2,!1],[!1,"gon","gon","GON","plane angle",.015707963267948967,[0,0,0,1,0,0,0],"\u25A1g","iso1000",!1,null,null,1,!1,!1,0,"gon (grade); gons","UCUM","Angle","Nonclinical","unit of plane angle measurement equal to 1/400 circle","deg","DEG","0.9",.9,!1],[!1,"arc minute","'","'","plane angle",.0002908882086657216,[0,0,0,1,0,0,0],"'","iso1000",!1,null,null,1,!1,!1,0,"arcminutes; arcmin; arc minutes; arc mins","UCUM","Angle","Clinical","equal to 1/60 degree; used in optometry and opthamology (e.g. visual acuity tests)","deg/60","DEG/60","1",1,!1],[!1,"arc second","''","''","plane angle",484813681109536e-20,[0,0,0,1,0,0,0],"''","iso1000",!1,null,null,1,!1,!1,0,"arcseconds; arcsecs","UCUM","Angle","Clinical","equal to 1/60 arcminute = 1/3600 degree; used in optometry and opthamology (e.g. visual acuity tests)","'/60","'/60","1",1,!1],[!1,"Liters","l","L","volume",.001,[3,0,0,0,0,0,0],"l","iso1000",!0,null,null,1,!1,!1,0,"cubic decimeters; decimeters cubed; decimetres; dm3; dm^3; litres; liters, LT ","UCUM","Vol","Clinical",'Because lower case "l" can be read as the number "1", though this is a valid UCUM units. UCUM strongly reccomends using "L"',"dm3","DM3","1",1,!1],[!1,"Liters","L","L","volume",.001,[3,0,0,0,0,0,0],"L","iso1000",!0,null,null,1,!1,!1,0,"cubic decimeters; decimeters cubed; decimetres; dm3; dm^3; litres; liters, LT ","UCUM","Vol","Clinical",'Because lower case "l" can be read as the number "1", though this is a valid UCUM units. UCUM strongly reccomends using "L"',"l",null,"1",1,!1],[!1,"are","ar","AR","area",100,[2,0,0,0,0,0,0],"a","iso1000",!0,null,null,1,!1,!1,0,"100 m2; 100 m^2; 100 square meter; meters squared; metres","UCUM","Area","Clinical","metric base unit for area defined as 100 m^2","m2","M2","100",100,!1],[!1,"minute","min","MIN","time",60,[0,1,0,0,0,0,0],"min","iso1000",!1,null,null,1,!1,!1,0,"minutes","UCUM","Time","Clinical","","s","S","60",60,!1],[!1,"hour","h","HR","time",3600,[0,1,0,0,0,0,0],"h","iso1000",!1,null,null,1,!1,!1,0,"hours; hrs; age","UCUM","Time","Clinical","","min","MIN","60",60,!1],[!1,"day","d","D","time",86400,[0,1,0,0,0,0,0],"d","iso1000",!1,null,null,1,!1,!1,0,"days; age; dy; 24 hours; 24 hrs","UCUM","Time","Clinical","","h","HR","24",24,!1],[!1,"tropical year","a_t","ANN_T","time",31556925216e-3,[0,1,0,0,0,0,0],"at","iso1000",!1,null,null,1,!1,!1,0,"solar years; a tropical; years","UCUM","Time","Clinical","has an average of 365.242181 days but is constantly changing.","d","D","365.24219",365.24219,!1],[!1,"mean Julian year","a_j","ANN_J","time",31557600,[0,1,0,0,0,0,0],"aj","iso1000",!1,null,null,1,!1,!1,0,"mean Julian yr; a julian; years","UCUM","Time","Clinical","has an average of 365.25 days, and in everyday use, has been replaced by the Gregorian year. However, this unit is used in astronomy to calculate light year. ","d","D","365.25",365.25,!1],[!1,"mean Gregorian year","a_g","ANN_G","time",31556952,[0,1,0,0,0,0,0],"ag","iso1000",!1,null,null,1,!1,!1,0,"mean Gregorian yr; a gregorian; years","UCUM","Time","Clinical","has an average of 365.2425 days and is the most internationally used civil calendar.","d","D","365.2425",365.2425,!1],[!1,"year","a","ANN","time",31557600,[0,1,0,0,0,0,0],"a","iso1000",!1,null,null,1,!1,!1,0,"years; a; yr, yrs; annum","UCUM","Time","Clinical","","a_j","ANN_J","1",1,!1],[!1,"week","wk","WK","time",604800,[0,1,0,0,0,0,0],"wk","iso1000",!1,null,null,1,!1,!1,0,"weeks; wks","UCUM","Time","Clinical","","d","D","7",7,!1],[!1,"synodal month","mo_s","MO_S","time",2551442976e-3,[0,1,0,0,0,0,0],"mos","iso1000",!1,null,null,1,!1,!1,0,"Moon; synodic month; lunar month; mo-s; mo s; months; moons","UCUM","Time","Nonclinical","has an average of 29.53 days per month, unit used in astronomy","d","D","29.53059",29.53059,!1],[!1,"mean Julian month","mo_j","MO_J","time",2629800,[0,1,0,0,0,0,0],"moj","iso1000",!1,null,null,1,!1,!1,0,"mo-julian; mo Julian; months","UCUM","Time","Clinical","has an average of 30.435 days per month","a_j/12","ANN_J/12","1",1,!1],[!1,"mean Gregorian month","mo_g","MO_G","time",2629746,[0,1,0,0,0,0,0],"mog","iso1000",!1,null,null,1,!1,!1,0,"months; month-gregorian; mo-gregorian","UCUM","Time","Clinical","has an average 30.436875 days per month and is from the most internationally used civil calendar.","a_g/12","ANN_G/12","1",1,!1],[!1,"month","mo","MO","time",2629800,[0,1,0,0,0,0,0],"mo","iso1000",!1,null,null,1,!1,!1,0,"months; duration","UCUM","Time","Clinical","based on Julian calendar which has an average of 30.435 days per month (this unit is used in astronomy but not in everyday life - see mo_g)","mo_j","MO_J","1",1,!1],[!1,"metric ton","t","TNE","mass",1e6,[0,0,1,0,0,0,0],"t","iso1000",!0,null,null,1,!1,!1,0,"tonnes; megagrams; tons","UCUM","Mass","Nonclinical","equal to 1000 kg used in the US (recognized by NIST as metric ton), and internationally (recognized as tonne)","kg","KG","1e3",1e3,!1],[!1,"bar","bar","BAR","pressure",1e8,[-1,-2,1,0,0,0,0],"bar","iso1000",!0,null,null,1,!1,!1,0,"bars","UCUM","Pres","Nonclinical","unit of pressure equal to 10^5 Pascals, primarily used by meteorologists and in weather forecasting","Pa","PAL","1e5",1e5,!1],[!1,"unified atomic mass unit","u","AMU","mass",16605402e-31,[0,0,1,0,0,0,0],"u","iso1000",!0,null,null,1,!1,!1,0,"unified atomic mass units; amu; Dalton; Da","UCUM","Mass","Clinical","the mass of 1/12 of an unbound Carbon-12 atom nuclide equal to 1.6606x10^-27 kg ","g","G","1.6605402e-24",16605402e-31,!1],[!1,"astronomic unit","AU","ASU","length",149597870691,[1,0,0,0,0,0,0],"AU","iso1000",!1,null,null,1,!1,!1,0,"AU; units","UCUM","Len","Clinical","unit of length used in astronomy for measuring distance in Solar system","Mm","MAM","149597.870691",149597.870691,!1],[!1,"parsec","pc","PRS","length",3085678e10,[1,0,0,0,0,0,0],"pc","iso1000",!0,null,null,1,!1,!1,0,"parsecs","UCUM","Len","Clinical","unit of length equal to 3.26 light years, and used to measure large distances to objects outside our Solar System","m","M","3.085678e16",3085678e10,!1],[!1,"velocity of light in a vacuum","[c]","[C]","velocity",299792458,[1,-1,0,0,0,0,0],"c","const",!0,null,null,1,!1,!1,0,"speed of light","UCUM","Vel","Constant","equal to 299792458 m/s (approximately 3 x 10^8 m/s)","m/s","M/S","299792458",299792458,!1],[!1,"Planck constant","[h]","[H]","action",66260755e-38,[2,-1,1,0,0,0,0],"h","const",!0,null,null,1,!1,!1,0,"Planck's constant","UCUM","","Constant","constant = 6.62607004 \xD7 10-34 m2.kg/s; defined as quantum of action","J.s","J.S","6.6260755e-34",66260755e-41,!1],[!1,"Boltzmann constant","[k]","[K]","(unclassified)",1380658e-26,[2,-2,1,0,-1,0,0],"k","const",!0,null,null,1,!1,!1,0,"k; kB","UCUM","","Constant","physical constant relating energy at the individual particle level with temperature = 1.38064852 \xD710^\u221223 J/K","J/K","J/K","1.380658e-23",1380658e-29,!1],[!1,"permittivity of vacuum - electric","[eps_0]","[EPS_0]","electric permittivity",8854187817000001e-30,[-3,2,-1,0,0,2,0],"\u03B50","const",!0,null,null,1,!1,!1,0,"\u03B50; Electric Constant; vacuum permittivity; permittivity of free space ","UCUM","","Constant","approximately equal to 8.854\u2009\xD7 10^\u221212 F/m (farads per meter)","F/m","F/M","8.854187817e-12",8854187817e-21,!1],[!1,"permeability of vacuum - magnetic","[mu_0]","[MU_0]","magnetic permeability",.0012566370614359172,[1,0,1,0,0,-2,0],"\u03BC0","const",!0,null,null,1,!1,!1,0,"\u03BC0; vacuum permeability; permeability of free space; magnetic constant","UCUM","","Constant","equal to 4\u03C0\xD710^\u22127 N/A2 (Newtons per square ampere) \u2248 1.2566\xD710^\u22126 H/m (Henry per meter)","N/A2","4.[PI].10*-7.N/A2","1",12566370614359173e-22,!1],[!1,"elementary charge","[e]","[E]","electric charge",160217733e-27,[0,0,0,0,0,1,0],"e","const",!0,null,null,1,!1,!1,0,"e; q; electric charges","UCUM","","Constant","the magnitude of the electric charge carried by a single electron or proton \u2248 1.60217\xD710^-19 Coulombs","C","C","1.60217733e-19",160217733e-27,!1],[!1,"electronvolt","eV","EV","energy",160217733e-24,[2,-2,1,0,0,0,0],"eV","iso1000",!0,null,null,1,!1,!1,0,"Electron Volts; electronvolts","UCUM","Eng","Clinical","unit of kinetic energy = 1 V * 1.602\xD710^\u221219 C = 1.6\xD710\u221219 Joules","[e].V","[E].V","1",1,!1],[!1,"electron mass","[m_e]","[M_E]","mass",91093897e-35,[0,0,1,0,0,0,0],"me","const",!0,null,null,1,!1,!1,0,"electron rest mass; me","UCUM","Mass","Constant","approximately equal to 9.10938356 \xD7 10-31 kg; defined as the mass of a stationary electron","g","g","9.1093897e-28",91093897e-35,!1],[!1,"proton mass","[m_p]","[M_P]","mass",16726231e-31,[0,0,1,0,0,0,0],"mp","const",!0,null,null,1,!1,!1,0,"mp; masses","UCUM","Mass","Constant","approximately equal to 1.672622\xD710\u221227 kg","g","g","1.6726231e-24",16726231e-31,!1],[!1,"Newtonian constant of gravitation","[G]","[GC]","(unclassified)",667259e-19,[3,-2,-1,0,0,0,0],"G","const",!0,null,null,1,!1,!1,0,"G; gravitational constant; Newton's constant","UCUM","","Constant","gravitational constant = 6.674\xD710\u221211 N\u22C5m2/kg2","m3.kg-1.s-2","M3.KG-1.S-2","6.67259e-11",667259e-16,!1],[!1,"standard acceleration of free fall","[g]","[G]","acceleration",9.80665,[1,-2,0,0,0,0,0],"gn","const",!0,null,null,1,!1,!1,0,"standard gravity; g; \u02610; \u0261n","UCUM","Accel","Constant","defined by standard = 9.80665 m/s2","m/s2","M/S2","980665e-5",9.80665,!1],[!1,"Torr","Torr","Torr","pressure",133322,[-1,-2,1,0,0,0,0],"Torr","const",!1,null,null,1,!1,!1,0,"torrs","UCUM","Pres","Clinical","1 torr = 1 mmHg; unit used to measure blood pressure","Pa","PAL","133.322",133.322,!1],[!1,"standard atmosphere","atm","ATM","pressure",101325e3,[-1,-2,1,0,0,0,0],"atm","const",!1,null,null,1,!1,!1,0,"reference pressure; atmos; std atmosphere","UCUM","Pres","Clinical","defined as being precisely equal to 101,325 Pa","Pa","PAL","101325",101325,!1],[!1,"light-year","[ly]","[LY]","length",9460730472580800,[1,0,0,0,0,0,0],"l.y.","const",!0,null,null,1,!1,!1,0,"light years; ly","UCUM","Len","Constant","unit of astronomal distance = 5.88\xD710^12 mi","[c].a_j","[C].ANN_J","1",1,!1],[!1,"gram-force","gf","GF","force",9.80665,[1,-2,1,0,0,0,0],"gf","const",!0,null,null,1,!1,!1,0,"Newtons; gram forces","UCUM","Force","Clinical","May be specific to unit related to cardiac output","g.[g]","G.[G]","1",1,!1],[!1,"Kayser","Ky","KY","lineic number",100,[-1,0,0,0,0,0,0],"K","cgs",!0,null,null,1,!1,!1,0,"wavenumbers; kaysers","UCUM","InvLen","Clinical","unit of wavelength equal to cm^-1","cm-1","CM-1","1",1,!1],[!1,"Gal","Gal","GL","acceleration",.01,[1,-2,0,0,0,0,0],"Gal","cgs",!0,null,null,1,!1,!1,0,"galileos; Gals","UCUM","Accel","Clinical","unit of acceleration used in gravimetry; equivalent to cm/s2 ","cm/s2","CM/S2","1",1,!1],[!1,"dyne","dyn","DYN","force",.01,[1,-2,1,0,0,0,0],"dyn","cgs",!0,null,null,1,!1,!1,0,"dynes","UCUM","Force","Clinical","unit of force equal to 10^-5 Newtons","g.cm/s2","G.CM/S2","1",1,!1],[!1,"erg","erg","ERG","energy",1e-4,[2,-2,1,0,0,0,0],"erg","cgs",!0,null,null,1,!1,!1,0,"10^-7 Joules, 10-7 Joules; 100 nJ; 100 nanoJoules; 1 dyne cm; 1 g.cm2/s2","UCUM","Eng","Clinical","unit of energy = 1 dyne centimeter = 10^-7 Joules","dyn.cm","DYN.CM","1",1,!1],[!1,"Poise","P","P","dynamic viscosity",100.00000000000001,[-1,-1,1,0,0,0,0],"P","cgs",!0,null,null,1,!1,!1,0,"dynamic viscosity; poises","UCUM","Visc","Clinical","unit of dynamic viscosity where 1 Poise = 1/10 Pascal second","dyn.s/cm2","DYN.S/CM2","1",1,!1],[!1,"Biot","Bi","BI","electric current",10,[0,-1,0,0,0,1,0],"Bi","cgs",!0,null,null,1,!1,!1,0,"Bi; abamperes; abA","UCUM","ElpotRat","Clinical","equal to 10 amperes","A","A","10",10,!1],[!1,"Stokes","St","ST","kinematic viscosity",9999999999999999e-20,[2,-1,0,0,0,0,0],"St","cgs",!0,null,null,1,!1,!1,0,"kinematic viscosity","UCUM","Visc","Clinical","unit of kimematic viscosity with units cm2/s","cm2/s","CM2/S","1",1,!1],[!1,"Maxwell","Mx","MX","flux of magnetic induction",1e-5,[2,-1,1,0,0,-1,0],"Mx","cgs",!0,null,null,1,!1,!1,0,"magnetix flux; Maxwells","UCUM","","Clinical","unit of magnetic flux","Wb","WB","1e-8",1e-8,!1],[!1,"Gauss","G","GS","magnetic flux density",.1,[0,-1,1,0,0,-1,0],"Gs","cgs",!0,null,null,1,!1,!1,0,"magnetic fields; magnetic flux density; induction; B","UCUM","magnetic","Clinical","CGS unit of magnetic flux density, known as magnetic field B; defined as one maxwell unit per square centimeter (see Oersted for CGS unit for H field)","T","T","1e-4",1e-4,!1],[!1,"Oersted","Oe","OE","magnetic field intensity",79.57747154594767,[-1,-1,0,0,0,1,0],"Oe","cgs",!0,null,null,1,!1,!1,0,"H magnetic B field; Oersteds","UCUM","","Clinical","CGS unit of the auxiliary magnetic field H defined as 1 dyne per unit pole = 1000/4\u03C0 amperes per meter (see Gauss for CGS unit for B field)","A/m","/[PI].A/M","250",79.57747154594767,!1],[!1,"Gilbert","Gb","GB","magnetic tension",.7957747154594768,[0,-1,0,0,0,1,0],"Gb","cgs",!0,null,null,1,!1,!1,0,"Gi; magnetomotive force; Gilberts","UCUM","","Clinical","unit of magnetomotive force (magnetic potential)","Oe.cm","OE.CM","1",1,!1],[!1,"stilb","sb","SB","lum. intensity density",1e4,[-2,0,0,0,0,0,1],"sb","cgs",!0,null,null,1,!1,!1,0,"stilbs","UCUM","","Obsolete","unit of luminance; equal to and replaced by unit candela per square centimeter (cd/cm2)","cd/cm2","CD/CM2","1",1,!1],[!1,"Lambert","Lmb","LMB","brightness",3183.098861837907,[-2,0,0,0,0,0,1],"L","cgs",!0,null,null,1,!1,!1,0,"luminance; lamberts","UCUM","","Clinical","unit of luminance defined as 1 lambert = 1/ \u03C0 candela per square meter","cd/cm2/[pi]","CD/CM2/[PI]","1",1,!1],[!1,"phot","ph","PHT","illuminance",1e-4,[-2,0,0,2,0,0,1],"ph","cgs",!0,null,null,1,!1,!1,0,"phots","UCUM","","Clinical","CGS photometric unit of illuminance, or luminous flux through an area equal to 10000 lumens per square meter = 10000 lux","lx","LX","1e-4",1e-4,!1],[!1,"Curie","Ci","CI","radioactivity",37e9,[0,-1,0,0,0,0,0],"Ci","cgs",!0,null,null,1,!1,!1,0,"curies","UCUM","","Obsolete","unit for measuring atomic disintegration rate; replaced by the Bequerel (Bq) unit","Bq","BQ","37e9",37e9,!1],[!1,"Roentgen","R","ROE","ion dose",258e-9,[0,0,-1,0,0,1,0],"R","cgs",!0,null,null,1,!1,!1,0,"r\xF6ntgen; Roentgens","UCUM","","Clinical","unit of exposure of X-rays and gamma rays in air; unit used primarily in the US but strongly discouraged by NIST","C/kg","C/KG","2.58e-4",258e-6,!1],[!1,"radiation absorbed dose","RAD","[RAD]","energy dose",.01,[2,-2,0,0,0,0,0],"RAD","cgs",!0,null,null,1,!1,!1,0,"doses","UCUM","","Clinical","unit of radiation absorbed dose used primarily in the US with base units 100 ergs per gram of material. Also see the SI unit Gray (Gy).","erg/g","ERG/G","100",100,!1],[!1,"radiation equivalent man","REM","[REM]","dose equivalent",.01,[2,-2,0,0,0,0,0],"REM","cgs",!0,null,null,1,!1,!1,0,"Roentgen Equivalent in Man; rems; dose equivalents","UCUM","","Clinical","unit of equivalent dose which measures the effect of radiation on humans equal to 0.01 sievert. Used primarily in the US. Also see SI unit Sievert (Sv)","RAD","[RAD]","1",1,!1],[!1,"inch","[in_i]","[IN_I]","length",.025400000000000002,[1,0,0,0,0,0,0],"in","intcust",!1,null,null,1,!1,!1,0,"inches; in; international inch; body height","UCUM","Len","Clinical","standard unit for inch in the US and internationally","cm","CM","254e-2",2.54,!1],[!1,"foot","[ft_i]","[FT_I]","length",.3048,[1,0,0,0,0,0,0],"ft","intcust",!1,null,null,1,!1,!1,0,"ft; fts; foot; international foot; feet; international feet; height","UCUM","Len","Clinical","unit used in the US and internationally","[in_i]","[IN_I]","12",12,!1],[!1,"yard","[yd_i]","[YD_I]","length",.9144000000000001,[1,0,0,0,0,0,0],"yd","intcust",!1,null,null,1,!1,!1,0,"international yards; yds; distance","UCUM","Len","Clinical","standard unit used in the US and internationally","[ft_i]","[FT_I]","3",3,!1],[!1,"mile","[mi_i]","[MI_I]","length",1609.344,[1,0,0,0,0,0,0],"mi","intcust",!1,null,null,1,!1,!1,0,"international miles; mi I; statute mile","UCUM","Len","Clinical","standard unit used in the US and internationally","[ft_i]","[FT_I]","5280",5280,!1],[!1,"fathom","[fth_i]","[FTH_I]","depth of water",1.8288000000000002,[1,0,0,0,0,0,0],"fth","intcust",!1,null,null,1,!1,!1,0,"international fathoms","UCUM","Len","Nonclinical","unit used in the US and internationally to measure depth of water; same length as the US fathom","[ft_i]","[FT_I]","6",6,!1],[!1,"nautical mile","[nmi_i]","[NMI_I]","length",1852,[1,0,0,0,0,0,0],"n.mi","intcust",!1,null,null,1,!1,!1,0,"nautical mile; nautical miles; international nautical mile; international nautical miles; nm; n.m.; nmi","UCUM","Len","Nonclinical","standard unit used in the US and internationally","m","M","1852",1852,!1],[!1,"knot","[kn_i]","[KN_I]","velocity",.5144444444444445,[1,-1,0,0,0,0,0],"knot","intcust",!1,null,null,1,!1,!1,0,"kn; kt; international knots","UCUM","Vel","Nonclinical","defined as equal to one nautical mile (1.852 km) per hour","[nmi_i]/h","[NMI_I]/H","1",1,!1],[!1,"square inch","[sin_i]","[SIN_I]","area",.0006451600000000001,[2,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"in2; in^2; inches squared; sq inch; inches squared; international","UCUM","Area","Clinical","standard unit used in the US and internationally","[in_i]2","[IN_I]2","1",1,!1],[!1,"square foot","[sft_i]","[SFT_I]","area",.09290304,[2,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"ft2; ft^2; ft squared; sq ft; feet; international","UCUM","Area","Clinical","standard unit used in the US and internationally","[ft_i]2","[FT_I]2","1",1,!1],[!1,"square yard","[syd_i]","[SYD_I]","area",.8361273600000002,[2,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"yd2; yd^2; sq. yds; yards squared; international","UCUM","Area","Clinical","standard unit used in the US and internationally","[yd_i]2","[YD_I]2","1",1,!1],[!1,"cubic inch","[cin_i]","[CIN_I]","volume",16387064000000006e-21,[3,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"in3; in^3; in*3; inches^3; inches*3; cu. in; cu in; cubic inches; inches cubed; cin","UCUM","Vol","Clinical","standard unit used in the US and internationally","[in_i]3","[IN_I]3","1",1,!1],[!1,"cubic foot","[cft_i]","[CFT_I]","volume",.028316846592000004,[3,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"ft3; ft^3; ft*3; cu. ft; cubic feet; cubed; [ft_i]3; international","UCUM","Vol","Clinical","","[ft_i]3","[FT_I]3","1",1,!1],[!1,"cubic yard","[cyd_i]","[CYD_I]","volume",.7645548579840002,[3,0,0,0,0,0,0],"cu.yd","intcust",!1,null,null,1,!1,!1,0,"cubic yards; cubic yds; cu yards; CYs; yards^3; yd^3; yds^3; yd3; yds3","UCUM","Vol","Nonclinical","standard unit used in the US and internationally","[yd_i]3","[YD_I]3","1",1,!1],[!1,"board foot","[bf_i]","[BF_I]","volume",.0023597372160000006,[3,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"BDFT; FBM; BF; board feet; international","UCUM","Vol","Nonclinical","unit of volume used to measure lumber","[in_i]3","[IN_I]3","144",144,!1],[!1,"cord","[cr_i]","[CR_I]","volume",3.6245563637760005,[3,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"crd I; international cords","UCUM","Vol","Nonclinical","unit of measure of dry volume used to measure firewood equal 128 ft3","[ft_i]3","[FT_I]3","128",128,!1],[!1,"mil","[mil_i]","[MIL_I]","length",25400000000000004e-21,[1,0,0,0,0,0,0],"mil","intcust",!1,null,null,1,!1,!1,0,"thou, thousandth; mils; international","UCUM","Len","Clinical","equal to 0.001 international inch","[in_i]","[IN_I]","1e-3",.001,!1],[!1,"circular mil","[cml_i]","[CML_I]","area",5067074790974979e-25,[2,0,0,0,0,0,0],"circ.mil","intcust",!1,null,null,1,!1,!1,0,"circular mils; cml I; international","UCUM","Area","Clinical","","[pi]/4.[mil_i]2","[PI]/4.[MIL_I]2","1",1,!1],[!1,"hand","[hd_i]","[HD_I]","height of horses",.10160000000000001,[1,0,0,0,0,0,0],"hd","intcust",!1,null,null,1,!1,!1,0,"hands; international","UCUM","Len","Nonclinical","used to measure horse height","[in_i]","[IN_I]","4",4,!1],[!1,"foot - US","[ft_us]","[FT_US]","length",.3048006096012192,[1,0,0,0,0,0,0],"ftus","us-lengths",!1,null,null,1,!1,!1,0,"US foot; foot US; us ft; ft us; height; visual distance; feet","UCUM","Len","Obsolete","Better to use [ft_i] which refers to the length used worldwide, including in the US; [ft_us] may be confused with land survey units. ","m/3937","M/3937","1200",1200,!1],[!1,"yard - US","[yd_us]","[YD_US]","length",.9144018288036575,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"US yards; us yds; distance","UCUM","Len; Nrat","Obsolete","Better to use [yd_i] which refers to the length used worldwide, including in the US; [yd_us] refers to unit used in land surveys in the US","[ft_us]","[FT_US]","3",3,!1],[!1,"inch - US","[in_us]","[IN_US]","length",.0254000508001016,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"US inches; in us; us in; inch US","UCUM","Len","Obsolete","Better to use [in_i] which refers to the length used worldwide, including in the US","[ft_us]/12","[FT_US]/12","1",1,!1],[!1,"rod - US","[rd_us]","[RD_US]","length",5.029210058420117,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"US rod; US rods; rd US; US rd","UCUM","Len","Obsolete","","[ft_us]","[FT_US]","16.5",16.5,!1],[!1,"Gunter's chain - US","[ch_us]","[CH_US]","length",20.116840233680467,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"surveyor's chain; Surveyor's chain USA; Gunter\u2019s measurement; surveyor\u2019s measurement; Gunter's Chain USA","UCUM","Len","Obsolete","historical unit used for land survey used only in the US","[rd_us]","[RD_US]","4",4,!1],[!1,"link for Gunter's chain - US","[lk_us]","[LK_US]","length",.20116840233680466,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"Links for Gunter's Chain USA","UCUM","Len","Obsolete","","[ch_us]/100","[CH_US]/100","1",1,!1],[!1,"Ramden's chain - US","[rch_us]","[RCH_US]","length",30.480060960121918,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"Ramsden's chain; engineer's chains","UCUM","Len","Obsolete","distance measuring device used for\xA0land survey","[ft_us]","[FT_US]","100",100,!1],[!1,"link for Ramden's chain - US","[rlk_us]","[RLK_US]","length",.3048006096012192,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"links for Ramsden's chain","UCUM","Len","Obsolete","","[rch_us]/100","[RCH_US]/100","1",1,!1],[!1,"fathom - US","[fth_us]","[FTH_US]","length",1.828803657607315,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"US fathoms; fathom USA; fth us","UCUM","Len","Obsolete","same length as the international fathom - better to use international fathom ([fth_i])","[ft_us]","[FT_US]","6",6,!1],[!1,"furlong - US","[fur_us]","[FUR_US]","length",201.16840233680466,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"US furlongs; fur us","UCUM","Len","Nonclinical","distance unit in horse racing","[rd_us]","[RD_US]","40",40,!1],[!1,"mile - US","[mi_us]","[MI_US]","length",1609.3472186944373,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"U.S. Survey Miles; US statute miles; survey mi; US mi; distance","UCUM","Len","Nonclinical","Better to use [mi_i] which refers to the length used worldwide, including in the US","[fur_us]","[FUR_US]","8",8,!1],[!1,"acre - US","[acr_us]","[ACR_US]","area",4046.872609874252,[2,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"Acre USA Survey; Acre USA; survey acres","UCUM","Area","Nonclinical","an older unit based on pre 1959 US statute lengths that is still sometimes used in the US only for land survey purposes. ","[rd_us]2","[RD_US]2","160",160,!1],[!1,"square rod - US","[srd_us]","[SRD_US]","area",25.292953811714074,[2,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"rod2; rod^2; sq. rod; rods squared","UCUM","Area","Nonclinical","Used only in the US to measure land area, based on US statute land survey length units","[rd_us]2","[RD_US]2","1",1,!1],[!1,"square mile - US","[smi_us]","[SMI_US]","area",2589998470319521e-9,[2,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"mi2; mi^2; sq mi; miles squared","UCUM","Area","Nonclinical","historical unit used only in the US for land survey purposes (based on the US survey mile), not the internationally recognized [mi_i]","[mi_us]2","[MI_US]2","1",1,!1],[!1,"section","[sct]","[SCT]","area",2589998470319521e-9,[2,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"sct; sections","UCUM","Area","Nonclinical","tract of land approximately equal to 1 mile square containing 640 acres","[mi_us]2","[MI_US]2","1",1,!1],[!1,"township","[twp]","[TWP]","area",9323994493150276e-8,[2,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"twp; townships","UCUM","Area","Nonclinical","land measurement equal to 6 mile square","[sct]","[SCT]","36",36,!1],[!1,"mil - US","[mil_us]","[MIL_US]","length",254000508001016e-19,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"thou, thousandth; mils","UCUM","Len","Obsolete","better to use [mil_i] which is based on the internationally recognized inch","[in_us]","[IN_US]","1e-3",.001,!1],[!1,"inch - British","[in_br]","[IN_BR]","length",.025399980000000003,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"imperial inches; imp in; br in; british inches","UCUM","Len","Obsolete","","cm","CM","2.539998",2.539998,!1],[!1,"foot - British","[ft_br]","[FT_BR]","length",.30479976000000003,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British Foot; Imperial Foot; feet; imp fts; br fts","UCUM","Len","Obsolete","","[in_br]","[IN_BR]","12",12,!1],[!1,"rod - British","[rd_br]","[RD_BR]","length",5.02919604,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British rods; br rd","UCUM","Len","Obsolete","","[ft_br]","[FT_BR]","16.5",16.5,!1],[!1,"Gunter's chain - British","[ch_br]","[CH_BR]","length",20.11678416,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"Gunter's Chain British; Gunters Chain British; Surveyor's Chain British","UCUM","Len","Obsolete","historical unit used for land survey used only in Great Britain","[rd_br]","[RD_BR]","4",4,!1],[!1,"link for Gunter's chain - British","[lk_br]","[LK_BR]","length",.2011678416,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"Links for Gunter's Chain British","UCUM","Len","Obsolete","","[ch_br]/100","[CH_BR]/100","1",1,!1],[!1,"fathom - British","[fth_br]","[FTH_BR]","length",1.82879856,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British fathoms; imperial fathoms; br fth; imp fth","UCUM","Len","Obsolete","","[ft_br]","[FT_BR]","6",6,!1],[!1,"pace - British","[pc_br]","[PC_BR]","length",.7619994000000001,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British paces; br pc","UCUM","Len","Nonclinical","traditional unit of length equal to 152.4 centimeters, or 1.52 meter. ","[ft_br]","[FT_BR]","2.5",2.5,!1],[!1,"yard - British","[yd_br]","[YD_BR]","length",.91439928,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British yards; Br yds; distance","UCUM","Len","Obsolete","","[ft_br]","[FT_BR]","3",3,!1],[!1,"mile - British","[mi_br]","[MI_BR]","length",1609.3427328000002,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"imperial miles; British miles; English statute miles; imp mi, br mi","UCUM","Len","Obsolete","","[ft_br]","[FT_BR]","5280",5280,!1],[!1,"nautical mile - British","[nmi_br]","[NMI_BR]","length",1853.1825408000002,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British nautical miles; Imperial nautical miles; Admiralty miles; n.m. br; imp nm","UCUM","Len","Obsolete","","[ft_br]","[FT_BR]","6080",6080,!1],[!1,"knot - British","[kn_br]","[KN_BR]","velocity",.5147729280000001,[1,-1,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British knots; kn br; kt","UCUM","Vel","Obsolete","based on obsolete British nautical mile ","[nmi_br]/h","[NMI_BR]/H","1",1,!1],[!1,"acre","[acr_br]","[ACR_BR]","area",4046.850049400269,[2,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"Imperial acres; British; a; ac; ar; acr","UCUM","Area","Nonclinical","the standard unit for acre used in the US and internationally","[yd_br]2","[YD_BR]2","4840",4840,!1],[!1,"gallon - US","[gal_us]","[GAL_US]","fluid volume",.0037854117840000014,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US gallons; US liquid gallon; gal us; Queen Anne's wine gallon","UCUM","Vol","Nonclinical","only gallon unit used in the US; [gal_us] is only used in some other countries in South American and Africa to measure gasoline volume","[in_i]3","[IN_I]3","231",231,!1],[!1,"barrel - US","[bbl_us]","[BBL_US]","fluid volume",.15898729492800007,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"bbl","UCUM","Vol","Nonclinical","[bbl_us] is the standard unit for oil barrel, which is a unit only used in the US to measure the volume oil. ","[gal_us]","[GAL_US]","42",42,!1],[!1,"quart - US","[qt_us]","[QT_US]","fluid volume",.0009463529460000004,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US quarts; us qts","UCUM","Vol","Clinical","Used only in the US","[gal_us]/4","[GAL_US]/4","1",1,!1],[!1,"pint - US","[pt_us]","[PT_US]","fluid volume",.0004731764730000002,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US pints; pint US; liquid pint; pt us; us pt","UCUM","Vol","Clinical","Used only in the US","[qt_us]/2","[QT_US]/2","1",1,!1],[!1,"gill - US","[gil_us]","[GIL_US]","fluid volume",.00011829411825000005,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US gills; gil us","UCUM","Vol","Nonclinical","only used in the context of alcohol volume in the US","[pt_us]/4","[PT_US]/4","1",1,!1],[!1,"fluid ounce - US","[foz_us]","[FOZ_US]","fluid volume",2957352956250001e-20,[3,0,0,0,0,0,0],"oz fl","us-volumes",!1,null,null,1,!1,!1,0,"US fluid ounces; fl ozs; FO; fl. oz.; foz us","UCUM","Vol","Clinical","unit used only in the US","[gil_us]/4","[GIL_US]/4","1",1,!1],[!1,"fluid dram - US","[fdr_us]","[FDR_US]","fluid volume",36966911953125014e-22,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US fluid drams; fdr us","UCUM","Vol","Nonclinical","equal to 1/8 US fluid ounce = 3.69 mL; used informally to mean small amount of liquor, especially Scotch whiskey","[foz_us]/8","[FOZ_US]/8","1",1,!1],[!1,"minim - US","[min_us]","[MIN_US]","fluid volume",6161151992187503e-23,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"min US; US min; \u264F US","UCUM","Vol","Obsolete","","[fdr_us]/60","[FDR_US]/60","1",1,!1],[!1,"cord - US","[crd_us]","[CRD_US]","fluid volume",3.6245563637760005,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US cord; US cords; crd us; us crd","UCUM","Vol","Nonclinical","unit of measure of dry volume used to measure firewood equal 128 ft3 (the same as international cord [cr_i])","[ft_i]3","[FT_I]3","128",128,!1],[!1,"bushel - US","[bu_us]","[BU_US]","dry volume",.035239070166880014,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US bushels; US bsh; US bu","UCUM","Vol","Obsolete","Historical unit of dry volume that is rarely used today","[in_i]3","[IN_I]3","2150.42",2150.42,!1],[!1,"gallon - historical","[gal_wi]","[GAL_WI]","dry volume",.004404883770860002,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"Corn Gallon British; Dry Gallon US; Gallons Historical; Grain Gallon British; Winchester Corn Gallon; historical winchester gallons; wi gal","UCUM","Vol","Obsolete","historical unit of dry volume no longer used","[bu_us]/8","[BU_US]/8","1",1,!1],[!1,"peck - US","[pk_us]","[PK_US]","dry volume",.008809767541720004,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US pecks; US pk","UCUM","Vol","Nonclinical","unit of dry volume rarely used today (can be used to measure volume of apples)","[bu_us]/4","[BU_US]/4","1",1,!1],[!1,"dry quart - US","[dqt_us]","[DQT_US]","dry volume",.0011012209427150004,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"dry quarts; dry quart US; US dry quart; dry qt; us dry qt; dqt; dqt us","UCUM","Vol","Nonclinical","historical unit of dry volume only in the US, but is rarely used today","[pk_us]/8","[PK_US]/8","1",1,!1],[!1,"dry pint - US","[dpt_us]","[DPT_US]","dry volume",.0005506104713575002,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"dry pints; dry pint US; US dry pint; dry pt; dpt; dpt us","UCUM","Vol","Nonclinical","historical unit of dry volume only in the US, but is rarely used today","[dqt_us]/2","[DQT_US]/2","1",1,!1],[!1,"tablespoon - US","[tbs_us]","[TBS_US]","volume",14786764781250006e-21,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"Tbs; tbsp; tbs us; US tablespoons","UCUM","Vol","Clinical","unit defined as 0.5 US fluid ounces or 3 teaspoons - used only in the US. See [tbs_m] for the unit used internationally and in the US for nutrional labelling. ","[foz_us]/2","[FOZ_US]/2","1",1,!1],[!1,"teaspoon - US","[tsp_us]","[TSP_US]","volume",4928921593750002e-21,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"tsp; t; US teaspoons","UCUM","Vol","Nonclinical","unit defined as 1/6 US fluid ounces - used only in the US. See [tsp_m] for the unit used internationally and in the US for nutrional labelling. ","[tbs_us]/3","[TBS_US]/3","1",1,!1],[!1,"cup - US customary","[cup_us]","[CUP_US]","volume",.0002365882365000001,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"cup us; us cups","UCUM","Vol","Nonclinical","Unit defined as 1/2 US pint or 16 US tablespoons \u2248 236.59 mL, which is not the standard unit defined by the FDA of 240 mL - see [cup_m] (metric cup)","[tbs_us]","[TBS_US]","16",16,!1],[!1,"fluid ounce - metric","[foz_m]","[FOZ_M]","fluid volume",29999999999999997e-21,[3,0,0,0,0,0,0],"oz fl","us-volumes",!1,null,null,1,!1,!1,0,"metric fluid ounces; fozs m; fl ozs m","UCUM","Vol","Clinical","unit used only in the US for nutritional labelling, as set by the FDA","mL","ML","30",30,!1],[!1,"cup - US legal","[cup_m]","[CUP_M]","volume",.00023999999999999998,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"cup m; metric cups","UCUM","Vol","Clinical","standard unit equal to 240 mL used in the US for nutritional labelling, as defined by the FDA. Note that this is different from the US customary cup (236.59 mL) and the metric cup used in Commonwealth nations (250 mL).","mL","ML","240",240,!1],[!1,"teaspoon - metric","[tsp_m]","[TSP_M]","volume",49999999999999996e-22,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"tsp; t; metric teaspoons","UCUM","Vol","Clinical","standard unit used in the US and internationally","mL","mL","5",5,!1],[!1,"tablespoon - metric","[tbs_m]","[TBS_M]","volume",14999999999999999e-21,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"metric tablespoons; Tbs; tbsp; T; tbs m","UCUM","Vol","Clinical","standard unit used in the US and internationally","mL","mL","15",15,!1],[!1,"gallon- British","[gal_br]","[GAL_BR]","volume",.004546090000000001,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"imperial gallons, UK gallons; British gallons; br gal; imp gal","UCUM","Vol","Nonclinical","Used only in Great Britain and other Commonwealth countries","l","L","4.54609",4.54609,!1],[!1,"peck - British","[pk_br]","[PK_BR]","volume",.009092180000000002,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"imperial pecks; British pecks; br pk; imp pk","UCUM","Vol","Nonclinical","unit of dry volume rarely used today (can be used to measure volume of apples)","[gal_br]","[GAL_BR]","2",2,!1],[!1,"bushel - British","[bu_br]","[BU_BR]","volume",.03636872000000001,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"British bushels; imperial; br bsh; br bu; imp","UCUM","Vol","Obsolete","Historical unit of dry volume that is rarely used today","[pk_br]","[PK_BR]","4",4,!1],[!1,"quart - British","[qt_br]","[QT_BR]","volume",.0011365225000000002,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"British quarts; imperial quarts; br qts","UCUM","Vol","Clinical","Used only in Great Britain and other Commonwealth countries","[gal_br]/4","[GAL_BR]/4","1",1,!1],[!1,"pint - British","[pt_br]","[PT_BR]","volume",.0005682612500000001,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"British pints; imperial pints; pt br; br pt; imp pt; pt imp","UCUM","Vol","Clinical","Used only in Great Britain and other Commonwealth countries","[qt_br]/2","[QT_BR]/2","1",1,!1],[!1,"gill - British","[gil_br]","[GIL_BR]","volume",.00014206531250000003,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"imperial gills; British gills; imp gill, br gill","UCUM","Vol","Nonclinical","only used in the context of alcohol volume in Great Britain","[pt_br]/4","[PT_BR]/4","1",1,!1],[!1,"fluid ounce - British","[foz_br]","[FOZ_BR]","volume",28413062500000005e-21,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"British fluid ounces; Imperial fluid ounces; br fozs; imp fozs; br fl ozs","UCUM","Vol","Clinical","Used only in Great Britain and other Commonwealth countries","[gil_br]/5","[GIL_BR]/5","1",1,!1],[!1,"fluid dram - British","[fdr_br]","[FDR_BR]","volume",35516328125000006e-22,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"British fluid drams; fdr br","UCUM","Vol","Nonclinical","equal to 1/8 Imperial fluid ounce = 3.55 mL; used informally to mean small amount of liquor, especially Scotch whiskey","[foz_br]/8","[FOZ_BR]/8","1",1,!1],[!1,"minim - British","[min_br]","[MIN_BR]","volume",5919388020833334e-23,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"min br; br min; \u264F br","UCUM","Vol","Obsolete","","[fdr_br]/60","[FDR_BR]/60","1",1,!1],[!1,"grain","[gr]","[GR]","mass",.06479891,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"gr; grains","UCUM","Mass","Nonclinical","an apothecary measure of mass rarely used today","mg","MG","64.79891",64.79891,!1],[!1,"pound","[lb_av]","[LB_AV]","mass",453.59237,[0,0,1,0,0,0,0],"lb","avoirdupois",!1,null,null,1,!1,!1,0,"avoirdupois pounds, international pounds; av lbs; pounds","UCUM","Mass","Clinical","standard unit used in the US and internationally","[gr]","[GR]","7000",7e3,!1],[!1,"pound force - US","[lbf_av]","[LBF_AV]","force",4448.2216152605,[1,-2,1,0,0,0,0],"lbf","const",!1,null,null,1,!1,!1,0,"lbfs; US lbf; US pound forces","UCUM","Force","Clinical","only rarely needed in health care - see [lb_av] which is the more common unit to express weight","[lb_av].[g]","[LB_AV].[G]","1",1,!1],[!1,"ounce","[oz_av]","[OZ_AV]","mass",28.349523125,[0,0,1,0,0,0,0],"oz","avoirdupois",!1,null,null,1,!1,!1,0,"ounces; international ounces; avoirdupois ounces; av ozs","UCUM","Mass","Clinical","standard unit used in the US and internationally","[lb_av]/16","[LB_AV]/16","1",1,!1],[!1,"Dram mass unit","[dr_av]","[DR_AV]","mass",1.7718451953125,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"Dram; drams avoirdupois; avoidupois dram; international dram","UCUM","Mass","Clinical","unit from the avoirdupois system, which is used in the US and internationally","[oz_av]/16","[OZ_AV]/16","1",1,!1],[!1,"short hundredweight","[scwt_av]","[SCWT_AV]","mass",45359.237,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"hundredweights; s cwt; scwt; avoirdupois","UCUM","Mass","Nonclinical","Used only in the US to equal 100 pounds","[lb_av]","[LB_AV]","100",100,!1],[!1,"long hundredweight","[lcwt_av]","[LCWT_AV]","mass",50802.345440000005,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"imperial hundredweights; imp cwt; lcwt; avoirdupois","UCUM","Mass","Obsolete","","[lb_av]","[LB_AV]","112",112,!1],[!1,"short ton - US","[ston_av]","[STON_AV]","mass",907184.74,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"ton; US tons; avoirdupois tons","UCUM","Mass","Clinical","Used only in the US","[scwt_av]","[SCWT_AV]","20",20,!1],[!1,"long ton - British","[lton_av]","[LTON_AV]","mass",1.0160469088000001e6,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"imperial tons; weight tons; British long tons; long ton avoirdupois","UCUM","Mass","Nonclinical","Used only in Great Britain and other Commonwealth countries","[lcwt_av]","[LCWT_AV]","20",20,!1],[!1,"stone - British","[stone_av]","[STONE_AV]","mass",6350.293180000001,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"British stones; avoirdupois","UCUM","Mass","Nonclinical","Used primarily in the UK and Ireland to measure body weight","[lb_av]","[LB_AV]","14",14,!1],[!1,"pennyweight - troy","[pwt_tr]","[PWT_TR]","mass",1.5551738400000001,[0,0,1,0,0,0,0],null,"troy",!1,null,null,1,!1,!1,0,"dwt; denarius weights","UCUM","Mass","Obsolete","historical unit used to measure mass and cost of precious metals","[gr]","[GR]","24",24,!1],[!1,"ounce - troy","[oz_tr]","[OZ_TR]","mass",31.103476800000003,[0,0,1,0,0,0,0],null,"troy",!1,null,null,1,!1,!1,0,"troy ounces; tr ozs","UCUM","Mass","Nonclinical","unit of mass for precious metals and gemstones only","[pwt_tr]","[PWT_TR]","20",20,!1],[!1,"pound - troy","[lb_tr]","[LB_TR]","mass",373.2417216,[0,0,1,0,0,0,0],null,"troy",!1,null,null,1,!1,!1,0,"troy pounds; tr lbs","UCUM","Mass","Nonclinical","only used for weighing precious metals","[oz_tr]","[OZ_TR]","12",12,!1],[!1,"scruple","[sc_ap]","[SC_AP]","mass",1.2959782,[0,0,1,0,0,0,0],null,"apoth",!1,null,null,1,!1,!1,0,"scruples; sc ap","UCUM","Mass","Obsolete","","[gr]","[GR]","20",20,!1],[!1,"dram - apothecary","[dr_ap]","[DR_AP]","mass",3.8879346,[0,0,1,0,0,0,0],null,"apoth",!1,null,null,1,!1,!1,0,"\u0292; drachm; apothecaries drams; dr ap; dram ap","UCUM","Mass","Nonclinical","unit still used in the US occasionally to measure amount of drugs in pharmacies","[sc_ap]","[SC_AP]","3",3,!1],[!1,"ounce - apothecary","[oz_ap]","[OZ_AP]","mass",31.1034768,[0,0,1,0,0,0,0],null,"apoth",!1,null,null,1,!1,!1,0,"apothecary ounces; oz ap; ap ozs; ozs ap","UCUM","Mass","Obsolete","","[dr_ap]","[DR_AP]","8",8,!1],[!1,"pound - apothecary","[lb_ap]","[LB_AP]","mass",373.2417216,[0,0,1,0,0,0,0],null,"apoth",!1,null,null,1,!1,!1,0,"apothecary pounds; apothecaries pounds; ap lb; lb ap; ap lbs; lbs ap","UCUM","Mass","Obsolete","","[oz_ap]","[OZ_AP]","12",12,!1],[!1,"ounce - metric","[oz_m]","[OZ_M]","mass",28,[0,0,1,0,0,0,0],null,"apoth",!1,null,null,1,!1,!1,0,"metric ounces; m ozs","UCUM","Mass","Clinical","see [oz_av] (the avoirdupois ounce) for the standard ounce used internationally; [oz_m] is equal to 28 grams and is based on the apothecaries' system of mass units which is used in some US pharmacies. ","g","g","28",28,!1],[!1,"line","[lne]","[LNE]","length",.002116666666666667,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"British lines; br L; L; l","UCUM","Len","Obsolete","","[in_i]/12","[IN_I]/12","1",1,!1],[!1,"point (typography)","[pnt]","[PNT]","length",.0003527777777777778,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"DTP points; desktop publishing point; pt; pnt","UCUM","Len","Nonclinical","typography unit for typesetter's length","[lne]/6","[LNE]/6","1",1,!1],[!1,"pica (typography)","[pca]","[PCA]","length",.004233333333333334,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"picas","UCUM","Len","Nonclinical","typography unit for typesetter's length","[pnt]","[PNT]","12",12,!1],[!1,"Printer's point (typography)","[pnt_pr]","[PNT_PR]","length",.00035145980000000004,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"pnt pr","UCUM","Len","Nonclinical","typography unit for typesetter's length","[in_i]","[IN_I]","0.013837",.013837,!1],[!1,"Printer's pica (typography)","[pca_pr]","[PCA_PR]","length",.004217517600000001,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"pca pr; Printer's picas","UCUM","Len","Nonclinical","typography unit for typesetter's length","[pnt_pr]","[PNT_PR]","12",12,!1],[!1,"pied","[pied]","[PIED]","length",.3248,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"pieds du roi; Paris foot; royal; French; feet","UCUM","Len","Obsolete","","cm","CM","32.48",32.48,!1],[!1,"pouce","[pouce]","[POUCE]","length",.027066666666666666,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"historical French inches; French royal inches","UCUM","Len","Obsolete","","[pied]/12","[PIED]/12","1",1,!1],[!1,"ligne","[ligne]","[LIGNE]","length",.0022555555555555554,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"Paris lines; lignes","UCUM","Len","Obsolete","","[pouce]/12","[POUCE]/12","1",1,!1],[!1,"didot","[didot]","[DIDOT]","length",.0003759259259259259,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"Didot point; dd; Didots Point; didots; points","UCUM","Len","Obsolete","typography unit for typesetter's length","[ligne]/6","[LIGNE]/6","1",1,!1],[!1,"cicero","[cicero]","[CICERO]","length",.004511111111111111,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"Didot's pica; ciceros; picas","UCUM","Len","Obsolete","typography unit for typesetter's length","[didot]","[DIDOT]","12",12,!1],[!1,"degrees Fahrenheit","[degF]","[DEGF]","temperature",.5555555555555556,[0,0,0,0,1,0,0],"\xB0F","heat",!1,null,"degF",1,!0,!1,0,"\xB0F; deg F","UCUM","Temp","Clinical","","K",null,null,.5555555555555556,!1],[!1,"degrees Rankine","[degR]","[degR]","temperature",.5555555555555556,[0,0,0,0,1,0,0],"\xB0R","heat",!1,null,null,1,!1,!1,0,"\xB0R; \xB0Ra; Rankine","UCUM","Temp","Obsolete","Replaced by Kelvin","K/9","K/9","5",5,!1],[!1,"degrees R\xE9aumur","[degRe]","[degRe]","temperature",1.25,[0,0,0,0,1,0,0],"\xB0R\xE9","heat",!1,null,"degRe",1,!0,!1,0,"\xB0R\xE9, \xB0Re, \xB0r; R\xE9aumur; degree Reaumur; Reaumur","UCUM","Temp","Obsolete","replaced by Celsius","K",null,null,1.25,!1],[!1,"calorie at 15\xB0C","cal_[15]","CAL_[15]","energy",4185.8,[2,-2,1,0,0,0,0],"cal15\xB0C","heat",!0,null,null,1,!1,!1,0,"calorie 15 C; cals 15 C; calories at 15 C","UCUM","Enrg","Nonclinical","equal to 4.1855 joules; calorie most often used in engineering","J","J","4.18580",4.1858,!1],[!1,"calorie at 20\xB0C","cal_[20]","CAL_[20]","energy",4181.9,[2,-2,1,0,0,0,0],"cal20\xB0C","heat",!0,null,null,1,!1,!1,0,"calorie 20 C; cal 20 C; calories at 20 C","UCUM","Enrg","Clinical","equal to 4.18190 joules. ","J","J","4.18190",4.1819,!1],[!1,"mean calorie","cal_m","CAL_M","energy",4190.0199999999995,[2,-2,1,0,0,0,0],"calm","heat",!0,null,null,1,!1,!1,0,"mean cals; mean calories","UCUM","Enrg","Clinical","equal to 4.19002 joules. ","J","J","4.19002",4.19002,!1],[!1,"international table calorie","cal_IT","CAL_IT","energy",4186.8,[2,-2,1,0,0,0,0],"calIT","heat",!0,null,null,1,!1,!1,0,"calories IT; IT cals; international steam table calories","UCUM","Enrg","Nonclinical","used in engineering steam tables and defined as 1/860 international watt-hour; equal to 4.1868 joules","J","J","4.1868",4.1868,!1],[!1,"thermochemical calorie","cal_th","CAL_TH","energy",4184,[2,-2,1,0,0,0,0],"calth","heat",!0,null,null,1,!1,!1,0,"thermochemical calories; th cals","UCUM","Enrg","Clinical","equal to 4.184 joules; used as the unit in medicine and biochemistry (equal to cal)","J","J","4.184",4.184,!1],[!1,"calorie","cal","CAL","energy",4184,[2,-2,1,0,0,0,0],"cal","heat",!0,null,null,1,!1,!1,0,"gram calories; small calories","UCUM","Enrg","Clinical","equal to 4.184 joules (the same value as the thermochemical calorie, which is the most common calorie used in medicine and biochemistry)","cal_th","CAL_TH","1",1,!1],[!1,"nutrition label Calories","[Cal]","[CAL]","energy",4184e3,[2,-2,1,0,0,0,0],"Cal","heat",!1,null,null,1,!1,!1,0,"food calories; Cal; kcal","UCUM","Eng","Clinical","","kcal_th","KCAL_TH","1",1,!1],[!1,"British thermal unit at 39\xB0F","[Btu_39]","[BTU_39]","energy",1059670,[2,-2,1,0,0,0,0],"Btu39\xB0F","heat",!1,null,null,1,!1,!1,0,"BTU 39F; BTU 39 F; B.T.U. 39 F; B.Th.U. 39 F; BThU 39 F; British thermal units","UCUM","Eng","Nonclinical","equal to 1.05967 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.05967",1.05967,!1],[!1,"British thermal unit at 59\xB0F","[Btu_59]","[BTU_59]","energy",1054800,[2,-2,1,0,0,0,0],"Btu59\xB0F","heat",!1,null,null,1,!1,!1,0,"BTU 59 F; BTU 59F; B.T.U. 59 F; B.Th.U. 59 F; BThU 59F; British thermal units","UCUM","Eng","Nonclinical","equal to 1.05480 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.05480",1.0548,!1],[!1,"British thermal unit at 60\xB0F","[Btu_60]","[BTU_60]","energy",1054680,[2,-2,1,0,0,0,0],"Btu60\xB0F","heat",!1,null,null,1,!1,!1,0,"BTU 60 F; BTU 60F; B.T.U. 60 F; B.Th.U. 60 F; BThU 60 F; British thermal units 60 F","UCUM","Eng","Nonclinical","equal to 1.05468 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.05468",1.05468,!1],[!1,"mean British thermal unit","[Btu_m]","[BTU_M]","energy",1055870,[2,-2,1,0,0,0,0],"Btum","heat",!1,null,null,1,!1,!1,0,"BTU mean; B.T.U. mean; B.Th.U. mean; BThU mean; British thermal units mean; ","UCUM","Eng","Nonclinical","equal to 1.05587 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.05587",1.05587,!1],[!1,"international table British thermal unit","[Btu_IT]","[BTU_IT]","energy",105505585262e-5,[2,-2,1,0,0,0,0],"BtuIT","heat",!1,null,null,1,!1,!1,0,"BTU IT; B.T.U. IT; B.Th.U. IT; BThU IT; British thermal units IT","UCUM","Eng","Nonclinical","equal to 1.055 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.05505585262",1.05505585262,!1],[!1,"thermochemical British thermal unit","[Btu_th]","[BTU_TH]","energy",1054350,[2,-2,1,0,0,0,0],"Btuth","heat",!1,null,null,1,!1,!1,0,"BTU Th; B.T.U. Th; B.Th.U. Th; BThU Th; thermochemical British thermal units","UCUM","Eng","Nonclinical","equal to 1.054350 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.054350",1.05435,!1],[!1,"British thermal unit","[Btu]","[BTU]","energy",1054350,[2,-2,1,0,0,0,0],"btu","heat",!1,null,null,1,!1,!1,0,"BTU; B.T.U. ; B.Th.U.; BThU; British thermal units","UCUM","Eng","Nonclinical","equal to the thermochemical British thermal unit equal to 1.054350 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","[Btu_th]","[BTU_TH]","1",1,!1],[!1,"horsepower - mechanical","[HP]","[HP]","power",745699.8715822703,[2,-3,1,0,0,0,0],null,"heat",!1,null,null,1,!1,!1,0,"imperial horsepowers","UCUM","EngRat","Nonclinical","refers to mechanical horsepower, which is unit used to measure engine power primarily in the US. ","[ft_i].[lbf_av]/s","[FT_I].[LBF_AV]/S","550",550,!1],[!1,"tex","tex","TEX","linear mass density (of textile thread)",.001,[-1,0,1,0,0,0,0],"tex","heat",!0,null,null,1,!1,!1,0,"linear mass density; texes","UCUM","","Clinical","unit of linear mass density for fibers equal to gram per 1000 meters","g/km","G/KM","1",1,!1],[!1,"Denier (linear mass density)","[den]","[DEN]","linear mass density (of textile thread)",.0001111111111111111,[-1,0,1,0,0,0,0],"den","heat",!1,null,null,1,!1,!1,0,"den; deniers","UCUM","","Nonclinical","equal to the mass in grams per 9000 meters of the fiber (1 denier = 1 strand of silk)","g/9/km","G/9/KM","1",1,!1],[!1,"meter of water column","m[H2O]","M[H2O]","pressure",9806650,[-1,-2,1,0,0,0,0],"m\xA0HO2","clinical",!0,null,null,1,!1,!1,0,"mH2O; m H2O; meters of water column; metres; pressure","UCUM","Pres","Clinical","","kPa","KPAL","980665e-5",9.80665,!1],[!1,"meter of mercury column","m[Hg]","M[HG]","pressure",133322e3,[-1,-2,1,0,0,0,0],"m\xA0Hg","clinical",!0,null,null,1,!1,!1,0,"mHg; m Hg; meters of mercury column; metres; pressure","UCUM","Pres","Clinical","","kPa","KPAL","133.3220",133.322,!1],[!1,"inch of water column","[in_i'H2O]","[IN_I'H2O]","pressure",249088.91000000003,[-1,-2,1,0,0,0,0],"in\xA0HO2","clinical",!1,null,null,1,!1,!1,0,"inches WC; inAq; in H2O; inch of water gauge; iwg; pressure","UCUM","Pres","Clinical","unit of pressure, especially in respiratory and ventilation care","m[H2O].[in_i]/m","M[H2O].[IN_I]/M","1",1,!1],[!1,"inch of mercury column","[in_i'Hg]","[IN_I'HG]","pressure",3.3863788000000003e6,[-1,-2,1,0,0,0,0],"in\xA0Hg","clinical",!1,null,null,1,!1,!1,0,"inHg; in Hg; pressure; inches","UCUM","Pres","Clinical","unit of pressure used in US to measure barometric pressure and occasionally blood pressure (see mm[Hg] for unit used internationally)","m[Hg].[in_i]/m","M[HG].[IN_I]/M","1",1,!1],[!1,"peripheral vascular resistance unit","[PRU]","[PRU]","fluid resistance",133322e6,[-4,-1,1,0,0,0,0],"P.R.U.","clinical",!1,null,null,1,!1,!1,0,"peripheral vascular resistance units; peripheral resistance unit; peripheral resistance units; PRU","UCUM","FldResist","Clinical","used to assess blood flow in the capillaries; equal to 1 mmH.min/mL = 133.3 Pa\xB7min/mL","mm[Hg].s/ml","MM[HG].S/ML","1",1,!1],[!1,"Wood unit","[wood'U]","[WOOD'U]","fluid resistance",799932e4,[-4,-1,1,0,0,0,0],"Wood U.","clinical",!1,null,null,1,!1,!1,0,"hybrid reference units; HRU; mmHg.min/L; vascular resistance","UCUM","Pres","Clinical","simplified unit of measurement for for measuring pulmonary vascular resistance that uses pressure; equal to mmHg.min/L","mm[Hg].min/L","MM[HG].MIN/L","1",1,!1],[!1,"diopter (lens)","[diop]","[DIOP]","refraction of a lens",1,[1,0,0,0,0,0,0],"dpt","clinical",!1,null,"inv",1,!1,!1,0,"diopters; diop; dioptre; dpt; refractive power","UCUM","InvLen","Clinical","unit of optical power of lens represented by inverse meters (m^-1)","m","/M","1",1,!1],[!1,"prism diopter (magnifying power)","[p'diop]","[P'DIOP]","refraction of a prism",1,[0,0,0,1,0,0,0],"PD","clinical",!1,null,"tanTimes100",1,!0,!1,0,"diopters; dioptres; p diops; pdiop; dpt; pdptr; \u0394; cm/m; centimeter per meter; centimetre; metre","UCUM","Angle","Clinical","unit for prism correction in eyeglass prescriptions","rad",null,null,1,!1],[!1,"percent of slope","%[slope]","%[SLOPE]","slope",.017453292519943295,[0,0,0,1,0,0,0],"%","clinical",!1,null,"100tan",1,!0,!1,0,"% slope; %slope; percents slopes","UCUM","VelFr; ElpotRatFr; VelRtoFr; AccelFr","Clinical","","deg",null,null,1,!1],[!1,"mesh","[mesh_i]","[MESH_I]","lineic number",.025400000000000002,[1,0,0,0,0,0,0],null,"clinical",!1,null,"inv",1,!1,!1,0,"meshes","UCUM","NLen (lineic number)","Clinical","traditional unit of length defined as the number of strands or particles per inch","[in_i]","/[IN_I]","1",1,!1],[!1,"French (catheter gauge) ","[Ch]","[CH]","gauge of catheters",.0003333333333333333,[1,0,0,0,0,0,0],"Ch","clinical",!1,null,null,1,!1,!1,0,"Charri\xE8res, French scales; French gauges; Fr, Fg, Ga, FR, Ch","UCUM","Len; Circ; Diam","Clinical","","mm/3","MM/3","1",1,!1],[!1,"drop - metric (1/20 mL)","[drp]","[DRP]","volume",5e-8,[3,0,0,0,0,0,0],"drp","clinical",!1,null,null,1,!1,!1,0,"drop dosing units; metric drops; gtt","UCUM","Vol","Clinical","standard unit used in the US and internationally for clinical medicine but note that although [drp] is defined as 1/20 milliliter, in practice, drop sizes will vary due to external factors","ml/20","ML/20","1",1,!1],[!1,"Hounsfield unit","[hnsf'U]","[HNSF'U]","x-ray attenuation",1,[0,0,0,0,0,0,0],"HF","clinical",!1,null,null,1,!1,!1,0,"HU; units","UCUM","","Clinical","used to measure X-ray attenuation, especially in CT scans.","1","1","1",1,!1],[!1,"Metabolic Equivalent of Task ","[MET]","[MET]","metabolic cost of physical activity",5833333333333334e-26,[3,-1,-1,0,0,0,0],"MET","clinical",!1,null,null,1,!1,!1,0,"metabolic equivalents","UCUM","RelEngRat","Clinical","unit used to measure rate of energy expenditure per power in treadmill and other functional tests","mL/min/kg","ML/MIN/KG","3.5",3.5,!1],[!1,"homeopathic potency of decimal series (retired)","[hp'_X]","[HP'_X]","homeopathic potency (retired)",1,[0,0,0,0,0,0,0],"X","clinical",!1,null,"hpX",1,!0,!1,0,null,"UCUM",null,null,null,"1",null,null,1,!1],[!1,"homeopathic potency of centesimal series (retired)","[hp'_C]","[HP'_C]","homeopathic potency (retired)",1,[0,0,0,0,0,0,0],"C","clinical",!1,null,"hpC",1,!0,!1,0,null,"UCUM",null,null,null,"1",null,null,1,!1],[!1,"homeopathic potency of millesimal series (retired)","[hp'_M]","[HP'_M]","homeopathic potency (retired)",1,[0,0,0,0,0,0,0],"M","clinical",!1,null,"hpM",1,!0,!1,0,null,"UCUM",null,null,null,"1",null,null,1,!1],[!1,"homeopathic potency of quintamillesimal series (retired)","[hp'_Q]","[HP'_Q]","homeopathic potency (retired)",1,[0,0,0,0,0,0,0],"Q","clinical",!1,null,"hpQ",1,!0,!1,0,null,"UCUM",null,null,null,"1",null,null,1,!1],[!1,"homeopathic potency of decimal hahnemannian series","[hp_X]","[HP_X]","homeopathic potency (Hahnemann)",1,[0,0,0,0,0,0,0],"X","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of centesimal hahnemannian series","[hp_C]","[HP_C]","homeopathic potency (Hahnemann)",1,[0,0,0,0,0,0,0],"C","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of millesimal hahnemannian series","[hp_M]","[HP_M]","homeopathic potency (Hahnemann)",1,[0,0,0,0,0,0,0],"M","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of quintamillesimal hahnemannian series","[hp_Q]","[HP_Q]","homeopathic potency (Hahnemann)",1,[0,0,0,0,0,0,0],"Q","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of decimal korsakovian series","[kp_X]","[KP_X]","homeopathic potency (Korsakov)",1,[0,0,0,0,0,0,0],"X","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of centesimal korsakovian series","[kp_C]","[KP_C]","homeopathic potency (Korsakov)",1,[0,0,0,0,0,0,0],"C","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of millesimal korsakovian series","[kp_M]","[KP_M]","homeopathic potency (Korsakov)",1,[0,0,0,0,0,0,0],"M","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of quintamillesimal korsakovian series","[kp_Q]","[KP_Q]","homeopathic potency (Korsakov)",1,[0,0,0,0,0,0,0],"Q","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"equivalent","eq","EQ","amount of substance",60221367e16,[0,0,0,0,0,0,0],"eq","chemical",!0,null,null,1,!1,!1,1,"equivalents","UCUM","Sub","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"osmole","osm","OSM","amount of substance (dissolved particles)",60221367e16,[0,0,0,0,0,0,0],"osm","chemical",!0,null,null,1,!1,!1,1,"osmoles; osmols","UCUM","Osmol","Clinical","the number of moles of solute that contribute to the osmotic pressure of a solution","mol","MOL","1",1,!1],[!1,"pH","[pH]","[PH]","acidity",60221366999999994e10,[-3,0,0,0,0,0,0],"pH","chemical",!1,null,"pH",1,!0,!1,0,"pH scale","UCUM","LogCnc","Clinical","Log concentration of H+","mol/l",null,null,1,!1],[!1,"gram percent","g%","G%","mass concentration",1e4,[-3,0,1,0,0,0,0],"g%","chemical",!0,null,null,1,!1,!1,0,"gram %; gram%; grams per deciliter; g/dL; gm per dL; gram percents","UCUM","MCnc","Clinical","equivalent to unit gram per deciliter (g/dL), a unit often used in medical tests to represent solution concentrations","g/dl","G/DL","1",1,!1],[!1,"Svedberg unit","[S]","[S]","sedimentation coefficient",1e-13,[0,1,0,0,0,0,0],"S","chemical",!1,null,null,1,!1,!1,0,"Sv; 10^-13 seconds; 100 fs; 100 femtoseconds","UCUM","Time","Clinical","unit of time used in measuring particle's sedimentation rate, usually after centrifugation. ","s","10*-13.S","1",1e-13,!1],[!1,"high power field (microscope)","[HPF]","[HPF]","view area in microscope",1,[0,0,0,0,0,0,0],"HPF","chemical",!1,null,null,1,!1,!1,0,"HPF","UCUM","Area","Clinical",`area visible under the maximum magnification power of the objective in microscopy (usually 400x) -`,"1","1","1",1,!1],[!1,"low power field (microscope)","[LPF]","[LPF]","view area in microscope",1,[0,0,0,0,0,0,0],"LPF","chemical",!1,null,null,1,!1,!1,0,"LPF; fields","UCUM","Area","Clinical",`area visible under the low magnification of the objective in microscopy (usually 100 x) -`,"1","1","100",100,!1],[!1,"katal","kat","KAT","catalytic activity",60221367e16,[0,-1,0,0,0,0,0],"kat","chemical",!0,null,null,1,!1,!1,1,"mol/secs; moles per second; mol*sec-1; mol*s-1; mol.s-1; katals; catalytic activity; enzymatic; enzyme units; activities","UCUM","CAct","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"enzyme unit","U","U","catalytic activity",100368945e8,[0,-1,0,0,0,0,0],"U","chemical",!0,null,null,1,!1,!1,1,"micromoles per minute; umol/min; umol per minute; umol min-1; enzymatic activity; enzyme activity","UCUM","CAct","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"international unit - arbitrary","[iU]","[IU]","arbitrary",1,[0,0,0,0,0,0,0],"IU","chemical",!0,null,null,1,!1,!0,0,"international units; IE; F2","UCUM","Arb","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","1","1","1",1,!1],[!1,"international unit - arbitrary","[IU]","[IU]","arbitrary",1,[0,0,0,0,0,0,0],"i.U.","chemical",!0,null,null,1,!1,!0,0,"international units; IE; F2","UCUM","Arb","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"arbitary unit","[arb'U]","[ARB'U]","arbitrary",1,[0,0,0,0,0,0,0],"arb. U","chemical",!1,null,null,1,!1,!0,0,"arbitary units; arb units; arbU","UCUM","Arb","Clinical","relative unit of measurement to show the ratio of test measurement to reference measurement","1","1","1",1,!1],[!1,"United States Pharmacopeia unit","[USP'U]","[USP'U]","arbitrary",1,[0,0,0,0,0,0,0],"U.S.P.","chemical",!1,null,null,1,!1,!0,0,"USP U; USP'U","UCUM","Arb","Clinical","a dose unit to express potency of drugs and vitamins defined by the United States Pharmacopoeia; usually 1 USP = 1 IU","1","1","1",1,!1],[!1,"GPL unit","[GPL'U]","[GPL'U]","biologic activity of anticardiolipin IgG",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"GPL Units; GPL U; IgG anticardiolipin units; IgG Phospholipid","UCUM","ACnc; AMass","Clinical","Units for an antiphospholipid test","1","1","1",1,!1],[!1,"MPL unit","[MPL'U]","[MPL'U]","biologic activity of anticardiolipin IgM",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"MPL units; MPL U; MPL'U; IgM anticardiolipin units; IgM Phospholipid Units ","UCUM","ACnc","Clinical","units for antiphospholipid test","1","1","1",1,!1],[!1,"APL unit","[APL'U]","[APL'U]","biologic activity of anticardiolipin IgA",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"APL units; APL U; IgA anticardiolipin; IgA Phospholipid; biologic activity of","UCUM","AMass; ACnc","Clinical","Units for an anti phospholipid syndrome test","1","1","1",1,!1],[!1,"Bethesda unit","[beth'U]","[BETH'U]","biologic activity of factor VIII inhibitor",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"BU","UCUM","ACnc","Clinical","measures of blood coagulation inhibitior for many blood factors","1","1","1",1,!1],[!1,"anti factor Xa unit","[anti'Xa'U]","[ANTI'XA'U]","biologic activity of factor Xa inhibitor (heparin)",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"units","UCUM","ACnc","Clinical","[anti'Xa'U] unit is equivalent to and can be converted to IU/mL. ","1","1","1",1,!1],[!1,"Todd unit","[todd'U]","[TODD'U]","biologic activity antistreptolysin O",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"units","UCUM","InvThres; RtoThres","Clinical","the unit for the results of the testing for antistreptolysin O (ASO)","1","1","1",1,!1],[!1,"Dye unit","[dye'U]","[DYE'U]","biologic activity of amylase",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"units","UCUM","CCnc","Obsolete","equivalent to the Somogyi unit, which is an enzyme unit for amylase but better to use U, the standard enzyme unit for measuring catalytic activity","1","1","1",1,!1],[!1,"Somogyi unit","[smgy'U]","[SMGY'U]","biologic activity of amylase",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"Somogyi units; smgy U","UCUM","CAct","Clinical","measures the enzymatic activity of amylase in blood serum - better to use base units mg/mL ","1","1","1",1,!1],[!1,"Bodansky unit","[bdsk'U]","[BDSK'U]","biologic activity of phosphatase",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"","UCUM","ACnc","Obsolete","Enzyme unit specific to alkaline phosphatase - better to use standard enzyme unit of U","1","1","1",1,!1],[!1,"King-Armstrong unit","[ka'U]","[KA'U]","biologic activity of phosphatase",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"King-Armstrong Units; King units","UCUM","AMass","Obsolete","enzyme units for acid phosphatase - better to use enzyme unit [U]","1","1","1",1,!1],[!1,"Kunkel unit","[knk'U]","[KNK'U]","arbitrary biologic activity",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"Mac Lagan unit","[mclg'U]","[MCLG'U]","arbitrary biologic activity",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"galactose index; galactose tolerance test; thymol turbidity test unit; mclg U; units; indexes","UCUM","ACnc","Obsolete","unit for liver tests - previously used in thymol turbidity tests for liver disease diagnoses, and now is sometimes referred to in the oral galactose tolerance test","1","1","1",1,!1],[!1,"tuberculin unit","[tb'U]","[TB'U]","biologic activity of tuberculin",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"TU; units","UCUM","Arb","Clinical","amount of tuberculin antigen -usually in reference to a TB skin test ","1","1","1",1,!1],[!1,"50% cell culture infectious dose","[CCID_50]","[CCID_50]","biologic activity (infectivity) of an infectious agent preparation",1,[0,0,0,0,0,0,0],"CCID50","chemical",!1,null,null,1,!1,!0,0,"CCID50; 50% cell culture infective doses","UCUM","NumThres","Clinical","","1","1","1",1,!1],[!1,"50% tissue culture infectious dose","[TCID_50]","[TCID_50]","biologic activity (infectivity) of an infectious agent preparation",1,[0,0,0,0,0,0,0],"TCID50","chemical",!1,null,null,1,!1,!0,0,"TCID50; 50% tissue culture infective dose","UCUM","NumThres","Clinical","","1","1","1",1,!1],[!1,"50% embryo infectious dose","[EID_50]","[EID_50]","biologic activity (infectivity) of an infectious agent preparation",1,[0,0,0,0,0,0,0],"EID50","chemical",!1,null,null,1,!1,!0,0,"EID50; 50% embryo infective doses; EID50 Egg Infective Dosage","UCUM","thresNum","Clinical","","1","1","1",1,!1],[!1,"plaque forming units","[PFU]","[PFU]","amount of an infectious agent",1,[0,0,0,0,0,0,0],"PFU","chemical",!1,null,null,1,!1,!0,0,"PFU","UCUM","ACnc","Clinical","tests usually report unit as number of PFU per unit volume","1","1","1",1,!1],[!1,"focus forming units (cells)","[FFU]","[FFU]","amount of an infectious agent",1,[0,0,0,0,0,0,0],"FFU","chemical",!1,null,null,1,!1,!0,0,"FFU","UCUM","EntNum","Clinical","","1","1","1",1,!1],[!1,"colony forming units","[CFU]","[CFU]","amount of a proliferating organism",1,[0,0,0,0,0,0,0],"CFU","chemical",!1,null,null,1,!1,!0,0,"CFU","UCUM","Num","Clinical","","1","1","1",1,!1],[!1,"index of reactivity (allergen)","[IR]","[IR]","amount of an allergen callibrated through in-vivo testing using the Stallergenes\xAE method.",1,[0,0,0,0,0,0,0],"IR","chemical",!1,null,null,1,!1,!0,0,"IR; indexes","UCUM","Acnc","Clinical","amount of an allergen callibrated through in-vivo testing using the Stallergenes method. Usually reported in tests as IR/mL","1","1","1",1,!1],[!1,"bioequivalent allergen unit","[BAU]","[BAU]","amount of an allergen callibrated through in-vivo testing based on the ID50EAL method of (intradermal dilution for 50mm sum of erythema diameters",1,[0,0,0,0,0,0,0],"BAU","chemical",!1,null,null,1,!1,!0,0,"BAU; Bioequivalent Allergy Units; bioequivalent allergen units","UCUM","Arb","Clinical","","1","1","1",1,!1],[!1,"allergy unit","[AU]","[AU]","procedure defined amount of an allergen using some reference standard",1,[0,0,0,0,0,0,0],"AU","chemical",!1,null,null,1,!1,!0,0,"allergy units; allergen units; AU","UCUM","Arb","Clinical","Most standard test allergy units are reported as [IU] or as %. ","1","1","1",1,!1],[!1,"allergen unit for Ambrosia artemisiifolia","[Amb'a'1'U]","[AMB'A'1'U]","procedure defined amount of the major allergen of ragweed.",1,[0,0,0,0,0,0,0],"Amb a 1 U","chemical",!1,null,null,1,!1,!0,0,"Amb a 1 unit; Antigen E; AgE U; allergen units","UCUM","Arb","Clinical","Amb a 1 is the major allergen in short ragweed, and can be converted Bioequivalent allergen units (BAU) where 350 Amb a 1 U/mL = 100,000 BAU/mL","1","1","1",1,!1],[!1,"protein nitrogen unit (allergen testing)","[PNU]","[PNU]","procedure defined amount of a protein substance",1,[0,0,0,0,0,0,0],"PNU","chemical",!1,null,null,1,!1,!0,0,"protein nitrogen units; PNU","UCUM","Mass","Clinical","defined as 0.01 ug of phosphotungstic acid-precipitable protein nitrogen. Being replaced by bioequivalent allergy units (BAU).","1","1","1",1,!1],[!1,"Limit of flocculation","[Lf]","[LF]","procedure defined amount of an antigen substance",1,[0,0,0,0,0,0,0],"Lf","chemical",!1,null,null,1,!1,!0,0,"Lf doses","UCUM","Arb","Clinical","the antigen content forming 1:1 ratio against 1 unit of antitoxin","1","1","1",1,!1],[!1,"D-antigen unit (polio)","[D'ag'U]","[D'AG'U]","procedure defined amount of a poliomyelitis d-antigen substance",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"DAgU; units","UCUM","Acnc","Clinical","unit of potency of poliovirus vaccine used for poliomyelitis prevention reported as D antigen units/mL. The unit is poliovirus type-specific.","1","1","1",1,!1],[!1,"fibrinogen equivalent units","[FEU]","[FEU]","amount of fibrinogen broken down into the measured d-dimers",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"FEU","UCUM","MCnc","Clinical","Note both the FEU and DDU units are used to report D-dimer measurements. 1 DDU = 1/2 FFU","1","1","1",1,!1],[!1,"ELISA unit","[ELU]","[ELU]","arbitrary ELISA unit",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"Enzyme-Linked Immunosorbent Assay Units; ELU; EL. U","UCUM","ACnc","Clinical","","1","1","1",1,!1],[!1,"Ehrlich units (urobilinogen)","[EU]","[EU]","Ehrlich unit",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"EU/dL; mg{urobilinogen}/dL","UCUM","ACnc","Clinical","","1","1","1",1,!1],[!1,"neper","Np","NEP","level",1,[0,0,0,0,0,0,0],"Np","levels",!0,null,"ln",1,!0,!1,0,"nepers","UCUM","LogRto","Clinical","logarithmic unit for ratios of measurements of physical field and power quantities, such as gain and loss of electronic signals","1",null,null,1,!1],[!1,"bel","B","B","level",1,[0,0,0,0,0,0,0],"B","levels",!0,null,"lg",1,!0,!1,0,"bels","UCUM","LogRto","Clinical","Logarithm of the ratio of power- or field-type quantities; usually expressed in decibels ","1",null,null,1,!1],[!1,"bel sound pressure","B[SPL]","B[SPL]","pressure level",.019999999999999997,[-1,-2,1,0,0,0,0],"B(SPL)","levels",!0,null,"lgTimes2",1,!0,!1,0,"bel SPL; B SPL; sound pressure bels","UCUM","LogRto","Clinical","used to measure sound level in acoustics","Pa",null,null,19999999999999998e-21,!1],[!1,"bel volt","B[V]","B[V]","electric potential level",1e3,[2,-2,1,0,0,-1,0],"B(V)","levels",!0,null,"lgTimes2",1,!0,!1,0,"bel V; B V; volts bels","UCUM","LogRtoElp","Clinical","used to express power gain in electrical circuits","V",null,null,1,!1],[!1,"bel millivolt","B[mV]","B[MV]","electric potential level",1,[2,-2,1,0,0,-1,0],"B(mV)","levels",!0,null,"lgTimes2",1,!0,!1,0,"bel mV; B mV; millivolt bels; 10^-3V bels; 10*-3V ","UCUM","LogRtoElp","Clinical","used to express power gain in electrical circuits","mV",null,null,1,!1],[!1,"bel microvolt","B[uV]","B[UV]","electric potential level",.001,[2,-2,1,0,0,-1,0],"B(\u03BCV)","levels",!0,null,"lgTimes2",1,!0,!1,0,"bel uV; B uV; microvolts bels; 10^-6V bel; 10*-6V bel","UCUM","LogRto","Clinical","used to express power gain in electrical circuits","uV",null,null,1,!1],[!1,"bel 10 nanovolt","B[10.nV]","B[10.NV]","electric potential level",10000000000000003e-21,[2,-2,1,0,0,-1,0],"B(10 nV)","levels",!0,null,"lgTimes2",1,!0,!1,0,"bel 10 nV; B 10 nV; 10 nanovolts bels","UCUM","LogRtoElp","Clinical","used to express power gain in electrical circuits","nV",null,null,10,!1],[!1,"bel watt","B[W]","B[W]","power level",1e3,[2,-3,1,0,0,0,0],"B(W)","levels",!0,null,"lg",1,!0,!1,0,"bel W; b W; b Watt; Watts bels","UCUM","LogRto","Clinical","used to express power","W",null,null,1,!1],[!1,"bel kilowatt","B[kW]","B[KW]","power level",1e6,[2,-3,1,0,0,0,0],"B(kW)","levels",!0,null,"lg",1,!0,!1,0,"bel kW; B kW; kilowatt bel; kW bel; kW B","UCUM","LogRto","Clinical","used to express power","kW",null,null,1,!1],[!1,"stere","st","STR","volume",1,[3,0,0,0,0,0,0],"st","misc",!0,null,null,1,!1,!1,0,"st\xE8re; m3; cubic meter; m^3; meters cubed; metre","UCUM","Vol","Nonclinical","equal to one cubic meter, usually used for measuring firewood","m3","M3","1",1,!1],[!1,"\xC5ngstr\xF6m","Ao","AO","length",10000000000000002e-26,[1,0,0,0,0,0,0],"\xC5","misc",!1,null,null,1,!1,!1,0,"\xC5; Angstroms; Ao; \xC5ngstr\xF6ms","UCUM","Len","Clinical","equal to 10^-10 meters; used to express wave lengths and atom scaled differences ","nm","NM","0.1",.1,!1],[!1,"barn","b","BRN","action area",10000000000000001e-44,[2,0,0,0,0,0,0],"b","misc",!1,null,null,1,!1,!1,0,"barns","UCUM","Area","Clinical","used in high-energy physics to express cross-sectional areas","fm2","FM2","100",100,!1],[!1,"technical atmosphere","att","ATT","pressure",98066500,[-1,-2,1,0,0,0,0],"at","misc",!1,null,null,1,!1,!1,0,"at; tech atm; tech atmosphere; kgf/cm2; atms; atmospheres","UCUM","Pres","Obsolete","non-SI unit of pressure equal to one kilogram-force per square centimeter","kgf/cm2","KGF/CM2","1",1,!1],[!1,"mho","mho","MHO","electric conductance",.001,[-2,1,-1,0,0,2,0],"mho","misc",!0,null,null,1,!1,!1,0,"siemens; ohm reciprocals; \u03A9^\u22121; \u03A9-1 ","UCUM","","Obsolete","unit of electric conductance (the inverse of electrical resistance) equal to ohm^-1","S","S","1",1,!1],[!1,"pound per square inch","[psi]","[PSI]","pressure",6894757293168359e-9,[-1,-2,1,0,0,0,0],"psi","misc",!1,null,null,1,!1,!1,0,"psi; lb/in2; lb per in2","UCUM","Pres","Clinical","","[lbf_av]/[in_i]2","[LBF_AV]/[IN_I]2","1",1,!1],[!1,"circle - plane angle","circ","CIRC","plane angle",6.283185307179586,[0,0,0,1,0,0,0],"circ","misc",!1,null,null,1,!1,!1,0,"angles; circles","UCUM","Angle","Clinical","","[pi].rad","[PI].RAD","2",2,!1],[!1,"spere - solid angle","sph","SPH","solid angle",12.566370614359172,[0,0,0,2,0,0,0],"sph","misc",!1,null,null,1,!1,!1,0,"speres","UCUM","Angle","Clinical","equal to the solid angle of an entire sphere = 4\u03C0sr (sr = steradian) ","[pi].sr","[PI].SR","4",4,!1],[!1,"metric carat","[car_m]","[CAR_M]","mass",.2,[0,0,1,0,0,0,0],"ctm","misc",!1,null,null,1,!1,!1,0,"carats; ct; car m","UCUM","Mass","Nonclinical","unit of mass for gemstones","g","G","2e-1",.2,!1],[!1,"carat of gold alloys","[car_Au]","[CAR_AU]","mass fraction",.041666666666666664,[0,0,0,0,0,0,0],"ctAu","misc",!1,null,null,1,!1,!1,0,"karats; k; kt; car au; carats","UCUM","MFr","Nonclinical","unit of purity for gold alloys","/24","/24","1",1,!1],[!1,"Smoot","[smoot]","[SMOOT]","length",1.7018000000000002,[1,0,0,0,0,0,0],null,"misc",!1,null,null,1,!1,!1,0,"","UCUM","Len","Nonclinical","prank unit of length from MIT","[in_i]","[IN_I]","67",67,!1],[!1,"meter per square seconds per square root of hertz","[m/s2/Hz^(1/2)]","[M/S2/HZ^(1/2)]","amplitude spectral density",1,[2,-3,0,0,0,0,0],null,"misc",!1,null,"sqrt",1,!0,!1,0,"m/s2/(Hz^.5); m/s2/(Hz^(1/2)); m per s2 per Hz^1/2","UCUM","","Constant",`measures amplitude spectral density, and is equal to the square root of power spectral density - `,"m2/s4/Hz",null,null,1,!1],[!1,"bit - logarithmic","bit_s","BIT_S","amount of information",1,[0,0,0,0,0,0,0],"bits","infotech",!1,null,"ld",1,!0,!1,0,"bit-s; bit s; bit logarithmic","UCUM","LogA","Nonclinical",`defined as the log base 2 of the number of distinct signals; cannot practically be used to express more than 1000 bits - -In information theory, the definition of the amount of self-information and information entropy is often expressed with the binary logarithm (log base 2)`,"1",null,null,1,!1],[!1,"bit","bit","BIT","amount of information",1,[0,0,0,0,0,0,0],"bit","infotech",!0,null,null,1,!1,!1,0,"bits","UCUM","","Nonclinical","dimensionless information unit of 1 used in computing and digital communications","1","1","1",1,!1],[!1,"byte","By","BY","amount of information",8,[0,0,0,0,0,0,0],"B","infotech",!0,null,null,1,!1,!1,0,"bytes","UCUM","","Nonclinical","equal to 8 bits","bit","bit","8",8,!1],[!1,"baud","Bd","BD","signal transmission rate",1,[0,1,0,0,0,0,0],"Bd","infotech",!0,null,"inv",1,!1,!1,0,"Bd; bauds","UCUM","Freq","Nonclinical","unit to express rate in symbols per second or pulses per second. ","s","/s","1",1,!1],[!1,"per twelve hour","/(12.h)","1/(12.HR)","",23148148148148147e-21,[0,-1,0,0,0,0,0],"/h",null,!1,null,null,1,!1,!1,0,"per 12 hours; 12hrs; 12 hrs; /12hrs","LOINC","Rat","Clinical","",null,null,null,null,!1],[!1,"per arbitrary unit","/[arb'U]","1/[ARB'U]","",1,[0,0,0,0,0,0,0],"/arb/ U",null,!1,null,null,1,!1,!0,0,"/arbU","LOINC","InvA ","Clinical","",null,null,null,null,!1],[!1,"per high power field","/[HPF]","1/[HPF]","",1,[0,0,0,0,0,0,0],"/HPF",null,!1,null,null,1,!1,!1,0,"/HPF; per HPF","LOINC","Naric","Clinical","",null,null,null,null,!1],[!1,"per international unit","/[IU]","1/[IU]","",1,[0,0,0,0,0,0,0],"/i/U.",null,!1,null,null,1,!1,!0,0,"international units; /IU; per IU","LOINC","InvA","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)",null,null,null,null,!1],[!1,"per low power field","/[LPF]","1/[LPF]","",1,[0,0,0,0,0,0,0],"/LPF",null,!1,null,null,1,!1,!1,0,"/LPF; per LPF","LOINC","Naric","Clinical","",null,null,null,null,!1],[!1,"per 10 billion ","/10*10","1/(10*10)","",1e-10,[0,0,0,0,0,0,0],"/1010",null,!1,null,null,1,!1,!1,0,"/10^10; per 10*10","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per trillion ","/10*12","1/(10*12)","",1e-12,[0,0,0,0,0,0,0],"/1012",null,!1,null,null,1,!1,!1,0,"/10^12; per 10*12","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per thousand","/10*3","1/(10*3)","",.001,[0,0,0,0,0,0,0],"/103",null,!1,null,null,1,!1,!1,0,"/10^3; per 10*3","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per million","/10*6","1/(10*6)","",1e-6,[0,0,0,0,0,0,0],"/106",null,!1,null,null,1,!1,!1,0,"/10^6; per 10*6;","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per billion","/10*9","1/(10*9)","",1e-9,[0,0,0,0,0,0,0],"/109",null,!1,null,null,1,!1,!1,0,"/10^9; per 10*9","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per 100","/100","1/100","",.01,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"per hundred; 10^2; 10*2","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per 100 cells","/100{cells}","1/100","",.01,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"/100 cells; /100cells; per hundred","LOINC","EntMass; EntNum; NFr","Clinical","",null,null,null,null,!1],[!1,"per 100 neutrophils","/100{neutrophils}","1/100","",.01,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"/100 neutrophils; /100neutrophils; per hundred","LOINC","EntMass; EntNum; NFr","Clinical","",null,null,null,null,!1],[!1,"per 100 spermatozoa","/100{spermatozoa}","1/100","",.01,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"/100 spermatozoa; /100spermatozoa; per hundred","LOINC","NFr","Clinical","",null,null,null,null,!1],[!1,"per 100 white blood cells","/100{WBCs}","1/100","",.01,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"/100 WBCs; /100WBCs; per hundred","LOINC","Ratio; NFr","Clinical","",null,null,null,null,!1],[!1,"per year","/a","1/ANN","",3168808781402895e-23,[0,-1,0,0,0,0,0],"/a",null,!1,null,null,1,!1,!1,0,"/Years; /yrs; yearly","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per centimeter of water","/cm[H2O]","1/CM[H2O]","",10197162129779282e-21,[1,2,-1,0,0,0,0],"/cm\xA0HO2",null,!1,null,null,1,!1,!1,0,"/cmH2O; /cm H2O; centimeters; centimetres","LOINC","InvPress","Clinical","",null,null,null,null,!1],[!1,"per day","/d","1/D","",11574074074074073e-21,[0,-1,0,0,0,0,0],"/d",null,!1,null,null,1,!1,!1,0,"/dy; per day","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per deciliter","/dL","1/DL","",1e4,[-3,0,0,0,0,0,0],"/dL",null,!1,null,null,1,!1,!1,0,"per dL; /deciliter; decilitre","LOINC","NCnc","Clinical","",null,null,null,null,!1],[!1,"per gram","/g","1/G","",1,[0,0,-1,0,0,0,0],"/g",null,!1,null,null,1,!1,!1,0,"/gm; /gram; per g","LOINC","NCnt","Clinical","",null,null,null,null,!1],[!1,"per hour","/h","1/HR","",.0002777777777777778,[0,-1,0,0,0,0,0],"/h",null,!1,null,null,1,!1,!1,0,"/hr; /hour; per hr","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per kilogram","/kg","1/KG","",.001,[0,0,-1,0,0,0,0],"/kg",null,!1,null,null,1,!1,!1,0,"per kg; per kilogram","LOINC","NCnt","Clinical","",null,null,null,null,!1],[!1,"per liter","/L","1/L","",1e3,[-3,0,0,0,0,0,0],"/L",null,!1,null,null,1,!1,!1,0,"/liter; litre","LOINC","NCnc","Clinical","",null,null,null,null,!1],[!1,"per square meter","/m2","1/M2","",1,[-2,0,0,0,0,0,0],"/m2",null,!1,null,null,1,!1,!1,0,"/m^2; /m*2; /sq. m; per square meter; meter squared; metre","LOINC","Naric","Clinical","",null,null,null,null,!1],[!1,"per cubic meter","/m3","1/M3","",1,[-3,0,0,0,0,0,0],"/m3",null,!1,null,null,1,!1,!1,0,"/m^3; /m*3; /cu. m; per cubic meter; meter cubed; per m3; metre","LOINC","NCncn","Clinical","",null,null,null,null,!1],[!1,"per milligram","/mg","1/MG","",1e3,[0,0,-1,0,0,0,0],"/mg",null,!1,null,null,1,!1,!1,0,"/milligram; per mg","LOINC","NCnt","Clinical","",null,null,null,null,!1],[!1,"per minute","/min","1/MIN","",.016666666666666666,[0,-1,0,0,0,0,0],"/min",null,!1,null,null,1,!1,!1,0,"/minute; per mins; breaths beats per minute","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per milliliter","/mL","1/ML","",1e6,[-3,0,0,0,0,0,0],"/mL",null,!1,null,null,1,!1,!1,0,"/milliliter; per mL; millilitre","LOINC","NCncn","Clinical","",null,null,null,null,!1],[!1,"per millimeter","/mm","1/MM","",1e3,[-1,0,0,0,0,0,0],"/mm",null,!1,null,null,1,!1,!1,0,"/millimeter; per mm; millimetre","LOINC","InvLen","Clinical","",null,null,null,null,!1],[!1,"per month","/mo","1/MO","",3802570537683474e-22,[0,-1,0,0,0,0,0],"/mo",null,!1,null,null,1,!1,!1,0,"/month; per mo; monthly; month","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per second","/s","1/S","",1,[0,-1,0,0,0,0,0],"/s",null,!1,null,null,1,!1,!1,0,"/second; /sec; per sec; frequency; Hertz; Herz; Hz; becquerels; Bq; s-1; s^-1","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per enzyme unit","/U","1/U","",9963241120049633e-32,[0,1,0,0,0,0,0],"/U",null,!1,null,null,1,!1,!1,-1,"/enzyme units; per U","LOINC","InvC; NCat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)",null,null,null,null,!1],[!1,"per microliter","/uL","1/UL","",9999999999999999e-7,[-3,0,0,0,0,0,0],"/\u03BCL",null,!1,null,null,1,!1,!1,0,"/microliter; microlitre; /mcl; per uL","LOINC","ACnc","Clinical","",null,null,null,null,!1],[!1,"per week","/wk","1/WK","",16534391534391535e-22,[0,-1,0,0,0,0,0],"/wk",null,!1,null,null,1,!1,!1,0,"/week; per wk; weekly, weeks","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"APL unit per milliliter","[APL'U]/mL","[APL'U]/ML","biologic activity of anticardiolipin IgA",1e6,[-3,0,0,0,0,0,0],"/mL","chemical",!1,null,null,1,!1,!0,0,"APL/mL; APL'U/mL; APL U/mL; APL/milliliter; IgA anticardiolipin units per milliliter; IgA Phospholipid Units; millilitre; biologic activity of","LOINC","ACnc","Clinical","Units for an anti phospholipid syndrome test","1","1","1",1,!1],[!1,"arbitrary unit per milliliter","[arb'U]/mL","[ARB'U]/ML","arbitrary",1e6,[-3,0,0,0,0,0,0],"(arb. U)/mL","chemical",!1,null,null,1,!1,!0,0,"arb'U/mL; arbU/mL; arb U/mL; arbitrary units per milliliter; millilitre","LOINC","ACnc","Clinical","relative unit of measurement to show the ratio of test measurement to reference measurement","1","1","1",1,!1],[!1,"colony forming units per liter","[CFU]/L","[CFU]/L","amount of a proliferating organism",1e3,[-3,0,0,0,0,0,0],"CFU/L","chemical",!1,null,null,1,!1,!0,0,"CFU per Liter; CFU/L","LOINC","NCnc","Clinical","","1","1","1",1,!1],[!1,"colony forming units per milliliter","[CFU]/mL","[CFU]/ML","amount of a proliferating organism",1e6,[-3,0,0,0,0,0,0],"CFU/mL","chemical",!1,null,null,1,!1,!0,0,"CFU per mL; CFU/mL","LOINC","NCnc","Clinical","","1","1","1",1,!1],[!1,"foot per foot - US","[ft_us]/[ft_us]","[FT_US]/[FT_US]","length",1,[0,0,0,0,0,0,0],"(ftus)/(ftus)","us-lengths",!1,null,null,1,!1,!1,0,"ft/ft; ft per ft; feet per feet; visual acuity","","LenRto","Clinical","distance ratio to measure 20:20 vision","m/3937","M/3937","1200",1200,!1],[!1,"GPL unit per milliliter","[GPL'U]/mL","[GPL'U]/ML","biologic activity of anticardiolipin IgG",1e6,[-3,0,0,0,0,0,0],"/mL","chemical",!1,null,null,1,!1,!0,0,"GPL U/mL; GPL'U/mL; GPL/mL; GPL U per mL; IgG Phospholipid Units per milliliters; IgG anticardiolipin units; millilitres ","LOINC","ACnc; AMass","Clinical","Units for an antiphospholipid test","1","1","1",1,!1],[!1,"international unit per 2 hour","[IU]/(2.h)","[IU]/(2.HR)","arbitrary",.0001388888888888889,[0,-1,0,0,0,0,0],"(i.U.)/h","chemical",!0,null,null,1,!1,!0,0,"IU/2hrs; IU/2 hours; IU per 2 hrs; international units per 2 hours","LOINC","ARat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per 24 hour","[IU]/(24.h)","[IU]/(24.HR)","arbitrary",11574074074074073e-21,[0,-1,0,0,0,0,0],"(i.U.)/h","chemical",!0,null,null,1,!1,!0,0,"IU/24hr; IU/24 hours; IU per 24 hrs; international units per 24 hours","LOINC","ARat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per day","[IU]/d","[IU]/D","arbitrary",11574074074074073e-21,[0,-1,0,0,0,0,0],"(i.U.)/d","chemical",!0,null,null,1,!1,!0,0,"IU/dy; IU/days; IU per dys; international units per day","LOINC","ARat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per deciliter","[IU]/dL","[IU]/DL","arbitrary",1e4,[-3,0,0,0,0,0,0],"(i.U.)/dL","chemical",!0,null,null,1,!1,!0,0,"IU/dL; IU per dL; international units per deciliters; decilitres","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per gram","[IU]/g","[IU]/G","arbitrary",1,[0,0,-1,0,0,0,0],"(i.U.)/g","chemical",!0,null,null,1,!1,!0,0,"IU/gm; IU/gram; IU per gm; IU per g; international units per gram","LOINC","ACnt","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per hour","[IU]/h","[IU]/HR","arbitrary",.0002777777777777778,[0,-1,0,0,0,0,0],"(i.U.)/h","chemical",!0,null,null,1,!1,!0,0,"IU/hrs; IU per hours; international units per hour","LOINC","ARat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per kilogram","[IU]/kg","[IU]/KG","arbitrary",.001,[0,0,-1,0,0,0,0],"(i.U.)/kg","chemical",!0,null,null,1,!1,!0,0,"IU/kg; IU/kilogram; IU per kg; units","LOINC","ACnt","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per kilogram per day","[IU]/kg/d","([IU]/KG)/D","arbitrary",11574074074074074e-24,[0,-1,-1,0,0,0,0],"((i.U.)/kg)/d","chemical",!0,null,null,1,!1,!0,0,"IU/kg/dy; IU/kg/day; IU/kilogram/day; IU per kg per day; units","LOINC","ACntRat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per liter","[IU]/L","[IU]/L","arbitrary",1e3,[-3,0,0,0,0,0,0],"(i.U.)/L","chemical",!0,null,null,1,!1,!0,0,"IU/L; IU/liter; IU per liter; units; litre","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per minute","[IU]/min","[IU]/MIN","arbitrary",.016666666666666666,[0,-1,0,0,0,0,0],"(i.U.)/min","chemical",!0,null,null,1,!1,!0,0,"IU/min; IU/minute; IU per minute; international units","LOINC","ARat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per milliliter","[IU]/mL","[IU]/ML","arbitrary",1e6,[-3,0,0,0,0,0,0],"(i.U.)/mL","chemical",!0,null,null,1,!1,!0,0,"IU/mL; IU per mL; international units per milliliter; millilitre","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"MPL unit per milliliter","[MPL'U]/mL","[MPL'U]/ML","biologic activity of anticardiolipin IgM",1e6,[-3,0,0,0,0,0,0],"/mL","chemical",!1,null,null,1,!1,!0,0,"MPL/mL; MPL U/mL; MPL'U/mL; IgM anticardiolipin units; IgM Phospholipid Units; millilitre ","LOINC","ACnc","Clinical",`units for antiphospholipid test -`,"1","1","1",1,!1],[!1,"number per high power field","{#}/[HPF]","{#}/[HPF]","",1,[0,0,0,0,0,0,0],"/HPF",null,!1,null,null,1,!1,!1,0,"#/HPF; # per HPF; number/HPF; numbers per high power field","LOINC","Naric","Clinical","",null,null,null,null,!1],[!1,"number per low power field","{#}/[LPF]","{#}/[LPF]","",1,[0,0,0,0,0,0,0],"/LPF",null,!1,null,null,1,!1,!1,0,"#/LPF; # per LPF; number/LPF; numbers per low power field","LOINC","Naric","Clinical","",null,null,null,null,!1],[!1,"IgA antiphosphatidylserine unit ","{APS'U}","{APS'U}","",1,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"APS Unit; Phosphatidylserine Antibody IgA Units","LOINC","ACnc","Clinical","unit for antiphospholipid test",null,null,null,null,!1],[!1,"EIA index","{EIA_index}","{EIA_index}","",1,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"enzyme immunoassay index","LOINC","ACnc","Clinical","",null,null,null,null,!1],[!1,"kaolin clotting time","{KCT'U}","{KCT'U}","",1,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"KCT","LOINC","Time","Clinical","sensitive\xA0test to detect\xA0lupus anticoagulants; measured in seconds",null,null,null,null,!1],[!1,"IgM antiphosphatidylserine unit","{MPS'U}","{MPS'U}","",1,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"Phosphatidylserine Antibody IgM Measurement ","LOINC","ACnc","Clinical","",null,null,null,null,!1],[!1,"trillion per liter","10*12/L","(10*12)/L","number",1e15,[-3,0,0,0,0,0,0],"(1012)/L","dimless",!1,null,null,1,!1,!1,0,"10^12/L; 10*12 per Liter; trillion per liter; litre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"10^3 (used for cell count)","10*3","10*3","number",1e3,[0,0,0,0,0,0,0],"103","dimless",!1,null,null,1,!1,!1,0,"10^3; thousand","LOINC","Num","Clinical","usually used for counting entities (e.g. blood cells) per volume","1","1","10",10,!1],[!1,"thousand per liter","10*3/L","(10*3)/L","number",1e6,[-3,0,0,0,0,0,0],"(103)/L","dimless",!1,null,null,1,!1,!1,0,"10^3/L; 10*3 per liter; litre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"thousand per milliliter","10*3/mL","(10*3)/ML","number",1e9,[-3,0,0,0,0,0,0],"(103)/mL","dimless",!1,null,null,1,!1,!1,0,"10^3/mL; 10*3 per mL; thousand per milliliter; millilitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"thousand per microliter","10*3/uL","(10*3)/UL","number",9999999999999999e-4,[-3,0,0,0,0,0,0],"(103)/\u03BCL","dimless",!1,null,null,1,!1,!1,0,"10^3/uL; 10*3 per uL; thousand per microliter; microlitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"10 thousand per microliter","10*4/uL","(10*4)/UL","number",1e13,[-3,0,0,0,0,0,0],"(104)/\u03BCL","dimless",!1,null,null,1,!1,!1,0,"10^4/uL; 10*4 per uL; microlitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"10^5 ","10*5","10*5","number",1e5,[0,0,0,0,0,0,0],"105","dimless",!1,null,null,1,!1,!1,0,"one hundred thousand","LOINC","Num","Clinical","","1","1","10",10,!1],[!1,"10^6","10*6","10*6","number",1e6,[0,0,0,0,0,0,0],"106","dimless",!1,null,null,1,!1,!1,0,"","LOINC","Num","Clinical","","1","1","10",10,!1],[!1,"million colony forming unit per liter","10*6.[CFU]/L","((10*6).[CFU])/L","number",1e9,[-3,0,0,0,0,0,0],"((106).CFU)/L","dimless",!1,null,null,1,!1,!0,0,"10*6 CFU/L; 10^6 CFU/L; 10^6CFU; 10^6 CFU per liter; million colony forming units; litre","LOINC","ACnc","Clinical","","1","1","10",10,!1],[!1,"million international unit","10*6.[IU]","(10*6).[IU]","number",1e6,[0,0,0,0,0,0,0],"(106).(i.U.)","dimless",!1,null,null,1,!1,!0,0,"10*6 IU; 10^6 IU; international units","LOINC","arb","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","1","1","10",10,!1],[!1,"million per 24 hour","10*6/(24.h)","(10*6)/(24.HR)","number",11.574074074074074,[0,-1,0,0,0,0,0],"(106)/h","dimless",!1,null,null,1,!1,!1,0,"10*6/24hrs; 10^6/24 hrs; 10*6 per 24 hrs; 10^6 per 24 hours","LOINC","NRat","Clinical","","1","1","10",10,!1],[!1,"million per kilogram","10*6/kg","(10*6)/KG","number",1e3,[0,0,-1,0,0,0,0],"(106)/kg","dimless",!1,null,null,1,!1,!1,0,"10^6/kg; 10*6 per kg; 10*6 per kilogram; millions","LOINC","NCnt","Clinical","","1","1","10",10,!1],[!1,"million per liter","10*6/L","(10*6)/L","number",1e9,[-3,0,0,0,0,0,0],"(106)/L","dimless",!1,null,null,1,!1,!1,0,"10^6/L; 10*6 per Liter; 10^6 per Liter; litre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"million per milliliter","10*6/mL","(10*6)/ML","number",1e12,[-3,0,0,0,0,0,0],"(106)/mL","dimless",!1,null,null,1,!1,!1,0,"10^6/mL; 10*6 per mL; 10*6 per milliliter; millilitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"million per microliter","10*6/uL","(10*6)/UL","number",1e15,[-3,0,0,0,0,0,0],"(106)/\u03BCL","dimless",!1,null,null,1,!1,!1,0,"10^6/uL; 10^6 per uL; 10^6/mcl; 10^6 per mcl; 10^6 per microliter; microlitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"10^8","10*8","10*8","number",1e8,[0,0,0,0,0,0,0],"108","dimless",!1,null,null,1,!1,!1,0,"100 million; one hundred million; 10^8","LOINC","Num","Clinical","","1","1","10",10,!1],[!1,"billion per liter","10*9/L","(10*9)/L","number",1e12,[-3,0,0,0,0,0,0],"(109)/L","dimless",!1,null,null,1,!1,!1,0,"10^9/L; 10*9 per Liter; litre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"billion per milliliter","10*9/mL","(10*9)/ML","number",1e15,[-3,0,0,0,0,0,0],"(109)/mL","dimless",!1,null,null,1,!1,!1,0,"10^9/mL; 10*9 per mL; 10^9 per mL; 10*9 per milliliter; millilitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"billion per microliter","10*9/uL","(10*9)/UL","number",1e18,[-3,0,0,0,0,0,0],"(109)/\u03BCL","dimless",!1,null,null,1,!1,!1,0,"10^9/uL; 10^9 per uL; 10^9/mcl; 10^9 per mcl; 10*9 per uL; 10*9 per mcl; 10*9/mcl; 10^9 per microliter; microlitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"10 liter per minute per square meter","10.L/(min.m2)","(10.L)/(MIN.M2)","",.00016666666666666666,[1,-1,0,0,0,0,0],"L/(min.(m2))",null,!1,null,null,1,!1,!1,0,"10 liters per minutes per square meter; 10 L per min per m2; m^2; 10 L/(min*m2); 10L/(min*m^2); litres; sq. meter; metre; meters squared","LOINC","ArVRat","Clinical","",null,null,null,null,!1],[!1,"10 liter per minute","10.L/min","(10.L)/MIN","",.00016666666666666666,[3,-1,0,0,0,0,0],"L/min",null,!1,null,null,1,!1,!1,0,"10 liters per minute; 10 L per min; 10L; 10 L/min; litre","LOINC","VRat","Clinical","",null,null,null,null,!1],[!1,"10 micronewton second per centimeter to the fifth power per square meter","10.uN.s/(cm5.m2)","((10.UN).S)/(CM5.M2)","",1e8,[-6,-1,1,0,0,0,0],"(\u03BCN.s)/(cm5).(m2)",null,!1,null,null,1,!1,!1,0,"dyne seconds per centimeter5 and square meter; dyn.s/(cm5.m2); dyn.s/cm5/m2; cm^5; m^2","LOINC","","Clinical","unit to measure systemic vascular resistance per body surface area",null,null,null,null,!1],[!1,"24 hour","24.h","24.HR","",86400,[0,1,0,0,0,0,0],"h",null,!1,null,null,1,!1,!1,0,"24hrs; 24 hrs; 24 hours; days; dy","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"ampere per meter","A/m","A/M","electric current",1,[-1,-1,0,0,0,1,0],"A/m","si",!0,null,null,1,!1,!1,0,"A/m; amp/meter; magnetic field strength; H; B; amperes per meter; metre","LOINC","","Clinical","unit of magnetic field strength","C/s","C/S","1",1,!1],[!1,"centigram","cg","CG","mass",.01,[0,0,1,0,0,0,0],"cg",null,!1,"M",null,1,!1,!1,0,"centigrams; cg; cgm","LOINC","Mass","Clinical","",null,null,null,null,!1],[!1,"centiliter","cL","CL","volume",1e-5,[3,0,0,0,0,0,0],"cL","iso1000",!0,null,null,1,!1,!1,0,"centiliters; centilitres","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"centimeter","cm","CM","length",.01,[1,0,0,0,0,0,0],"cm",null,!1,"L",null,1,!1,!1,0,"centimeters; centimetres","LOINC","Len","Clinical","",null,null,null,null,!1],[!1,"centimeter of water","cm[H2O]","CM[H2O]","pressure",98066.5,[-1,-2,1,0,0,0,0],"cm\xA0HO2","clinical",!0,null,null,1,!1,!1,0,"cm H2O; cmH2O; centimetres; pressure","LOINC","Pres","Clinical","unit of pressure mostly applies to blood pressure","kPa","KPAL","980665e-5",9.80665,!1],[!1,"centimeter of water per liter per second","cm[H2O]/L/s","(CM[H2O]/L)/S","pressure",98066500,[-4,-3,1,0,0,0,0],"((cm\xA0HO2)/L)/s","clinical",!0,null,null,1,!1,!1,0,"cm[H2O]/(L/s); cm[H2O].s/L; cm H2O/L/sec; cmH2O/L/sec; cmH2O/Liter; cmH2O per L per secs; centimeters of water per liters per second; centimetres; litres; cm[H2O]/(L/s)","LOINC","PresRat","Clinical","unit used to measure mean pulmonary resistance","kPa","KPAL","980665e-5",9.80665,!1],[!1,"centimeter of water per second per meter","cm[H2O]/s/m","(CM[H2O]/S)/M","pressure",98066.5,[-2,-3,1,0,0,0,0],"((cm\xA0HO2)/s)/m","clinical",!0,null,null,1,!1,!1,0,"cm[H2O]/(s.m); cm H2O/s/m; cmH2O; cmH2O/sec/m; cmH2O per secs per meters; centimeters of water per seconds per meter; centimetres; metre","LOINC","PresRat","Clinical","unit used to measure pulmonary pressure time product","kPa","KPAL","980665e-5",9.80665,!1],[!1,"centimeter of mercury","cm[Hg]","CM[HG]","pressure",1333220,[-1,-2,1,0,0,0,0],"cm\xA0Hg","clinical",!0,null,null,1,!1,!1,0,"centimeters of mercury; centimetres; cmHg; cm Hg","LOINC","Pres","Clinical","unit of pressure where 1 cmHg = 10 torr","kPa","KPAL","133.3220",133.322,!1],[!1,"square centimeter","cm2","CM2","length",1e-4,[2,0,0,0,0,0,0],"cm2",null,!1,"L",null,1,!1,!1,0,"cm^2; sq cm; centimeters squared; square centimeters; centimetre; area","LOINC","Area","Clinical","",null,null,null,null,!1],[!1,"square centimeter per second","cm2/s","CM2/S","length",1e-4,[2,-1,0,0,0,0,0],"(cm2)/s",null,!1,"L",null,1,!1,!1,0,"cm^2/sec; square centimeters per second; sq cm per sec; cm2; centimeters squared; centimetres","LOINC","AreaRat","Clinical","",null,null,null,null,!1],[!1,"centipoise","cP","CP","dynamic viscosity",1.0000000000000002,[-1,-1,1,0,0,0,0],"cP","cgs",!0,null,null,1,!1,!1,0,"cps; centiposes","LOINC","Visc","Clinical","unit of dynamic viscosity in the CGS system with base units: 10^\u22123 Pa.s = 1 mPa\xB7.s (1 millipascal second)","dyn.s/cm2","DYN.S/CM2","1",1,!1],[!1,"centistoke","cSt","CST","kinematic viscosity",1e-6,[2,-1,0,0,0,0,0],"cSt","cgs",!0,null,null,1,!1,!1,0,"centistokes","LOINC","Visc","Clinical","unit for kinematic viscosity with base units of mm^2/s (square millimeter per second)","cm2/s","CM2/S","1",1,!1],[!1,"dekaliter per minute","daL/min","DAL/MIN","volume",.00016666666666666666,[3,-1,0,0,0,0,0],"daL/min","iso1000",!0,null,null,1,!1,!1,0,"dekalitres; dekaliters per minute; per min","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"dekaliter per minute per square meter","daL/min/m2","(DAL/MIN)/M2","volume",.00016666666666666666,[1,-1,0,0,0,0,0],"(daL/min)/(m2)","iso1000",!0,null,null,1,!1,!1,0,"daL/min/m^2; daL/minute/m2; sq. meter; dekaliters per minutes per square meter; meter squared; dekalitres; metre","LOINC","ArVRat","Clinical","The area usually is the body surface area used to normalize cardiovascular measures for patient's size","l",null,"1",1,!1],[!1,"decibel","dB","DB","level",1,[0,0,0,0,0,0,0],"dB","levels",!0,null,"lg",.1,!0,!1,0,"decibels","LOINC","LogRto","Clinical","unit most commonly used in acoustics as unit of sound pressure level. (also see B[SPL] or bel sound pressure level). ","1",null,null,1,!1],[!1,"degree per second","deg/s","DEG/S","plane angle",.017453292519943295,[0,-1,0,1,0,0,0],"\xB0/s","iso1000",!1,null,null,1,!1,!1,0,"deg/sec; deg per sec; \xB0/sec; twist rate; angular speed; rotational speed","LOINC","ARat","Clinical","unit of angular (rotational) speed used to express turning rate","[pi].rad/360","[PI].RAD/360","2",2,!1],[!1,"decigram","dg","DG","mass",.1,[0,0,1,0,0,0,0],"dg",null,!1,"M",null,1,!1,!1,0,"decigrams; dgm; 0.1 grams; 1/10 gm","LOINC","Mass","Clinical","equal to 1/10 gram",null,null,null,null,!1],[!1,"deciliter","dL","DL","volume",1e-4,[3,0,0,0,0,0,0],"dL","iso1000",!0,null,null,1,!1,!1,0,"deciliters; decilitres; 0.1 liters; 1/10 L","LOINC","Vol","Clinical","equal to 1/10 liter","l",null,"1",1,!1],[!1,"decimeter","dm","DM","length",.1,[1,0,0,0,0,0,0],"dm",null,!1,"L",null,1,!1,!1,0,"decimeters; decimetres; 0.1 meters; 1/10 m; 10 cm; centimeters","LOINC","Len","Clinical","equal to 1/10 meter or 10 centimeters",null,null,null,null,!1],[!1,"square decimeter per square second","dm2/s2","DM2/S2","length",.010000000000000002,[2,-2,0,0,0,0,0],"(dm2)/(s2)",null,!1,"L",null,1,!1,!1,0,"dm2 per s2; dm^2/s^2; decimeters squared per second squared; sq dm; sq sec","LOINC","EngMass (massic energy)","Clinical","units for energy per unit mass or Joules per kilogram (J/kg = kg.m2/s2/kg = m2/s2) ",null,null,null,null,!1],[!1,"dyne second per centimeter per square meter","dyn.s/(cm.m2)","(DYN.S)/(CM.M2)","force",1,[-2,-1,1,0,0,0,0],"(dyn.s)/(cm.(m2))","cgs",!0,null,null,1,!1,!1,0,"(dyn*s)/(cm*m2); (dyn*s)/(cm*m^2); dyn s per cm per m2; m^2; dyne seconds per centimeters per square meter; centimetres; sq. meter; squared","LOINC","","Clinical","","g.cm/s2","G.CM/S2","1",1,!1],[!1,"dyne second per centimeter","dyn.s/cm","(DYN.S)/CM","force",1,[0,-1,1,0,0,0,0],"(dyn.s)/cm","cgs",!0,null,null,1,!1,!1,0,"(dyn*s)/cm; dyn sec per cm; seconds; centimetre; dyne seconds","LOINC","","Clinical","","g.cm/s2","G.CM/S2","1",1,!1],[!1,"equivalent per liter","eq/L","EQ/L","amount of substance",60221366999999994e10,[-3,0,0,0,0,0,0],"eq/L","chemical",!0,null,null,1,!1,!1,1,"eq/liter; eq/litre; eqs; equivalents per liter; litre","LOINC","SCnc","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"equivalent per milliliter","eq/mL","EQ/ML","amount of substance",60221367e22,[-3,0,0,0,0,0,0],"eq/mL","chemical",!0,null,null,1,!1,!1,1,"equivalent/milliliter; equivalents per milliliter; eq per mL; millilitre","LOINC","SCnc","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"equivalent per millimole","eq/mmol","EQ/MMOL","amount of substance",1e3,[0,0,0,0,0,0,0],"eq/mmol","chemical",!0,null,null,1,!1,!1,0,"equivalent/millimole; equivalents per millimole; eq per mmol","LOINC","SRto","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"equivalent per micromole","eq/umol","EQ/UMOL","amount of substance",1e6,[0,0,0,0,0,0,0],"eq/\u03BCmol","chemical",!0,null,null,1,!1,!1,0,"equivalent/micromole; equivalents per micromole; eq per umol","LOINC","SRto","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"femtogram","fg","FG","mass",1e-15,[0,0,1,0,0,0,0],"fg",null,!1,"M",null,1,!1,!1,0,"fg; fgm; femtograms; weight","LOINC","Mass","Clinical","equal to 10^-15 grams",null,null,null,null,!1],[!1,"femtoliter","fL","FL","volume",1e-18,[3,0,0,0,0,0,0],"fL","iso1000",!0,null,null,1,!1,!1,0,"femtolitres; femtoliters","LOINC","Vol; EntVol","Clinical","equal to 10^-15 liters","l",null,"1",1,!1],[!1,"femtometer","fm","FM","length",1e-15,[1,0,0,0,0,0,0],"fm",null,!1,"L",null,1,!1,!1,0,"femtometres; femtometers","LOINC","Len","Clinical","equal to 10^-15 meters",null,null,null,null,!1],[!1,"femtomole","fmol","FMOL","amount of substance",602213670,[0,0,0,0,0,0,0],"fmol","si",!0,null,null,1,!1,!1,1,"femtomoles","LOINC","EntSub","Clinical","equal to 10^-15 moles","10*23","10*23","6.0221367",6.0221367,!1],[!1,"femtomole per gram","fmol/g","FMOL/G","amount of substance",602213670,[0,0,-1,0,0,0,0],"fmol/g","si",!0,null,null,1,!1,!1,1,"femtomoles; fmol/gm; fmol per gm","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"femtomole per liter","fmol/L","FMOL/L","amount of substance",60221367e4,[-3,0,0,0,0,0,0],"fmol/L","si",!0,null,null,1,!1,!1,1,"femtomoles; fmol per liter; litre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"femtomole per milligram","fmol/mg","FMOL/MG","amount of substance",60221367e4,[0,0,-1,0,0,0,0],"fmol/mg","si",!0,null,null,1,!1,!1,1,"fmol per mg; femtomoles","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"femtomole per milliliter","fmol/mL","FMOL/ML","amount of substance",60221367e7,[-3,0,0,0,0,0,0],"fmol/mL","si",!0,null,null,1,!1,!1,1,"femtomoles; millilitre; fmol per mL; fmol per milliliter","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"gram meter","g.m","G.M","mass",1,[1,0,1,0,0,0,0],"g.m",null,!1,"M",null,1,!1,!1,0,"g*m; gxm; meters; metres","LOINC","Enrg","Clinical","Unit for measuring stroke work (heart work)",null,null,null,null,!1],[!1,"gram per 100 gram","g/(100.g)","G/(100.G)","mass",.01,[0,0,0,0,0,0,0],"g/g",null,!1,"M",null,1,!1,!1,0,"g/100 gm; 100gm; grams per 100 grams; gm per 100 gm","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"gram per 12 hour","g/(12.h)","G/(12.HR)","mass",23148148148148147e-21,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/12hrs; 12 hrs; gm per 12 hrs; 12hrs; grams per 12 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 24 hour","g/(24.h)","G/(24.HR)","mass",11574074074074073e-21,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/24hrs; gm/24 hrs; gm per 24 hrs; 24hrs; grams per 24 hours; gm/dy; gm per dy; grams per day","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 3 days","g/(3.d)","G/(3.D)","mass",3858024691358025e-21,[0,-1,1,0,0,0,0],"g/d",null,!1,"M",null,1,!1,!1,0,"gm/3dy; gm/3 dy; gm per 3 days; grams","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 4 hour","g/(4.h)","G/(4.HR)","mass",6944444444444444e-20,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/4hrs; gm/4 hrs; gm per 4 hrs; 4hrs; grams per 4 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 48 hour","g/(48.h)","G/(48.HR)","mass",5787037037037037e-21,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/48hrs; gm/48 hrs; gm per 48 hrs; 48hrs; grams per 48 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 5 hour","g/(5.h)","G/(5.HR)","mass",5555555555555556e-20,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/5hrs; gm/5 hrs; gm per 5 hrs; 5hrs; grams per 5 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 6 hour","g/(6.h)","G/(6.HR)","mass",46296296296296294e-21,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/6hrs; gm/6 hrs; gm per 6 hrs; 6hrs; grams per 6 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 72 hour","g/(72.h)","G/(72.HR)","mass",3858024691358025e-21,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/72hrs; gm/72 hrs; gm per 72 hrs; 72hrs; grams per 72 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per cubic centimeter","g/cm3","G/CM3","mass",999999.9999999999,[-3,0,1,0,0,0,0],"g/(cm3)",null,!1,"M",null,1,!1,!1,0,"g/cm^3; gm per cm3; g per cm^3; grams per centimeter cubed; cu. cm; centimetre; g/mL; gram per milliliter; millilitre","LOINC","MCnc","Clinical","g/cm3 = g/mL",null,null,null,null,!1],[!1,"gram per day","g/d","G/D","mass",11574074074074073e-21,[0,-1,1,0,0,0,0],"g/d",null,!1,"M",null,1,!1,!1,0,"gm/dy; gm per dy; grams per day; gm/24hrs; gm/24 hrs; gm per 24 hrs; 24hrs; grams per 24 hours; serving","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per deciliter","g/dL","G/DL","mass",1e4,[-3,0,1,0,0,0,0],"g/dL",null,!1,"M",null,1,!1,!1,0,"gm/dL; gm per dL; grams per deciliter; decilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"gram per gram","g/g","G/G","mass",1,[0,0,0,0,0,0,0],"g/g",null,!1,"M",null,1,!1,!1,0,"gm; grams","LOINC","MRto ","Clinical","",null,null,null,null,!1],[!1,"gram per hour","g/h","G/HR","mass",.0002777777777777778,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/hr; gm per hr; grams; intake; output","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per hour per square meter","g/h/m2","(G/HR)/M2","mass",.0002777777777777778,[-2,-1,1,0,0,0,0],"(g/h)/(m2)",null,!1,"M",null,1,!1,!1,0,"gm/hr/m2; gm/h/m2; /m^2; sq. m; g per hr per m2; grams per hours per square meter; meter squared; metre","LOINC","ArMRat","Clinical","",null,null,null,null,!1],[!1,"gram per kilogram","g/kg ","G/KG","mass",.001,[0,0,0,0,0,0,0],"g/kg",null,!1,"M",null,1,!1,!1,0,"g per kg; gram per kilograms","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"gram per kilogram per 8 hour ","g/kg/(8.h)","(G/KG)/(8.HR)","mass",3472222222222222e-23,[0,-1,0,0,0,0,0],"(g/kg)/h",null,!1,"M",null,1,!1,!1,0,"g/(8.kg.h); gm/kg/8hrs; 8 hrs; g per kg per 8 hrs; 8hrs; grams per kilograms per 8 hours; shift","LOINC","MCntRat; RelMRat","Clinical","unit often used to describe mass in grams of protein consumed in a 8 hours, divided by the subject's body weight in kilograms. Also used to measure mass dose rate per body mass",null,null,null,null,!1],[!1,"gram per kilogram per day","g/kg/d","(G/KG)/D","mass",11574074074074074e-24,[0,-1,0,0,0,0,0],"(g/kg)/d",null,!1,"M",null,1,!1,!1,0,"g/(kg.d); gm/kg/dy; gm per kg per dy; grams per kilograms per day","LOINC","RelMRat","Clinical","unit often used to describe mass in grams of protein consumed in a day, divided by the subject's body weight in kilograms. Also used to measure mass dose rate per body mass",null,null,null,null,!1],[!1,"gram per kilogram per hour","g/kg/h","(G/KG)/HR","mass",27777777777777776e-23,[0,-1,0,0,0,0,0],"(g/kg)/h",null,!1,"M",null,1,!1,!1,0,"g/(kg.h); g/kg/hr; g per kg per hrs; grams per kilograms per hour","LOINC","MCntRat; RelMRat","Clinical","unit used to measure mass dose rate per body mass",null,null,null,null,!1],[!1,"gram per kilogram per minute","g/kg/min","(G/KG)/MIN","mass",16666666666666667e-21,[0,-1,0,0,0,0,0],"(g/kg)/min",null,!1,"M",null,1,!1,!1,0,"g/(kg.min); g/kg/min; g per kg per min; grams per kilograms per minute","LOINC","MCntRat; RelMRat","Clinical","unit used to measure mass dose rate per body mass",null,null,null,null,!1],[!1,"gram per liter","g/L","G/L","mass",1e3,[-3,0,1,0,0,0,0],"g/L",null,!1,"M",null,1,!1,!1,0,"gm per liter; g/liter; grams per liter; litre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"gram per square meter","g/m2","G/M2","mass",1,[-2,0,1,0,0,0,0],"g/(m2)",null,!1,"M",null,1,!1,!1,0,"g/m^2; gram/square meter; g/sq m; g per m2; g per m^2; grams per square meter; meters squared; metre","LOINC","ArMass","Clinical","Tests measure myocardial mass (heart ventricle system) per body surface area; unit used to measure mass dose per body surface area",null,null,null,null,!1],[!1,"gram per milligram","g/mg","G/MG","mass",1e3,[0,0,0,0,0,0,0],"g/mg",null,!1,"M",null,1,!1,!1,0,"g per mg; grams per milligram","LOINC","MCnt; MRto","Clinical","",null,null,null,null,!1],[!1,"gram per minute","g/min","G/MIN","mass",.016666666666666666,[0,-1,1,0,0,0,0],"g/min",null,!1,"M",null,1,!1,!1,0,"g per min; grams per minute; gram/minute","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per milliliter","g/mL","G/ML","mass",1e6,[-3,0,1,0,0,0,0],"g/mL",null,!1,"M",null,1,!1,!1,0,"g per mL; grams per milliliter; millilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"gram per millimole","g/mmol","G/MMOL","mass",16605401866749388e-37,[0,0,1,0,0,0,0],"g/mmol",null,!1,"M",null,1,!1,!1,-1,"grams per millimole; g per mmol","LOINC","Ratio","Clinical","",null,null,null,null,!1],[!1,"joule per liter","J/L","J/L","energy",1e6,[-1,-2,1,0,0,0,0],"J/L","si",!0,null,null,1,!1,!1,0,"joules per liter; litre; J per L","LOINC","EngCnc","Clinical","","N.m","N.M","1",1,!1],[!1,"degree Kelvin per Watt","K/W","K/W","temperature",.001,[-2,3,-1,0,1,0,0],"K/W",null,!1,"C",null,1,!1,!1,0,"degree Kelvin/Watt; K per W; thermal ohm; thermal resistance; degrees","LOINC","TempEngRat","Clinical","unit for absolute thermal resistance equal to the reciprocal of thermal conductance. Unit used for tests to measure work of breathing",null,null,null,null,!1],[!1,"kilo international unit per liter","k[IU]/L","K[IU]/L","arbitrary",1e6,[-3,0,0,0,0,0,0],"(ki.U.)/L","chemical",!0,null,null,1,!1,!0,0,"kIU/L; kIU per L; kIU per liter; kilo international units; litre; allergens; allergy units","LOINC","ACnc","Clinical","IgE has an WHO reference standard so IgE allergen testing can be reported as k[IU]/L","[iU]","[IU]","1",1,!1],[!1,"kilo international unit per milliliter","k[IU]/mL","K[IU]/ML","arbitrary",1e9,[-3,0,0,0,0,0,0],"(ki.U.)/mL","chemical",!0,null,null,1,!1,!0,0,"kIU/mL; kIU per mL; kIU per milliliter; kilo international units; millilitre; allergens; allergy units","LOINC","ACnc","Clinical","IgE has an WHO reference standard so IgE allergen testing can be reported as k[IU]/mL","[iU]","[IU]","1",1,!1],[!1,"katal per kilogram","kat/kg","KAT/KG","catalytic activity",60221367e13,[0,-1,-1,0,0,0,0],"kat/kg","chemical",!0,null,null,1,!1,!1,1,"kat per kg; katals per kilogram; mol/s/kg; moles per seconds per kilogram","LOINC","CCnt","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"katal per liter","kat/L","KAT/L","catalytic activity",60221366999999994e10,[-3,-1,0,0,0,0,0],"kat/L","chemical",!0,null,null,1,!1,!1,1,"kat per L; katals per liter; litre; mol/s/L; moles per seconds per liter","LOINC","CCnc","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"kilocalorie","kcal","KCAL","energy",4184e3,[2,-2,1,0,0,0,0],"kcal","heat",!0,null,null,1,!1,!1,0,"kilogram calories; large calories; food calories; kcals","LOINC","EngRat","Clinical","It is equal to 1000 calories (equal to 4.184 kJ). But in practical usage, kcal refers to food calories which excludes caloric content in fiber and other constitutes that is not digestible by humans. Also see nutrition label Calories ([Cal])","cal_th","CAL_TH","1",1,!1],[!1,"kilocalorie per 24 hour","kcal/(24.h)","KCAL/(24.HR)","energy",48.425925925925924,[2,-3,1,0,0,0,0],"kcal/h","heat",!0,null,null,1,!1,!1,0,"kcal/24hrs; kcal/24 hrs; kcal per 24hrs; kilocalories per 24 hours; kilojoules; kJ/24hr; kJ/(24.h); kJ/dy; kilojoules per days; intake; calories burned; metabolic rate; food calories","","EngRat","Clinical","","cal_th","CAL_TH","1",1,!1],[!1,"kilocalorie per ounce","kcal/[oz_av]","KCAL/[OZ_AV]","energy",147586.25679704445,[2,-2,0,0,0,0,0],"kcal/oz","heat",!0,null,null,1,!1,!1,0,"kcal/oz; kcal per ozs; large calories per ounces; food calories; servings; international","LOINC","EngCnt","Clinical","used in nutrition to represent calorie of food","cal_th","CAL_TH","1",1,!1],[!1,"kilocalorie per day","kcal/d","KCAL/D","energy",48.425925925925924,[2,-3,1,0,0,0,0],"kcal/d","heat",!0,null,null,1,!1,!1,0,"kcal/dy; kcal per day; kilocalories per days; kilojoules; kJ/dy; kilojoules per days; intake; calories burned; metabolic rate; food calories","LOINC","EngRat","Clinical","unit in nutrition for food intake (measured in calories) in a day","cal_th","CAL_TH","1",1,!1],[!1,"kilocalorie per hour","kcal/h","KCAL/HR","energy",1162.2222222222222,[2,-3,1,0,0,0,0],"kcal/h","heat",!0,null,null,1,!1,!1,0,"kcal/hrs; kcals per hr; intake; kilocalories per hours; kilojoules","LOINC","EngRat","Clinical","used in nutrition to represent caloric requirement or consumption","cal_th","CAL_TH","1",1,!1],[!1,"kilocalorie per kilogram per 24 hour","kcal/kg/(24.h)","(KCAL/KG)/(24.HR)","energy",.04842592592592593,[2,-3,0,0,0,0,0],"(kcal/kg)/h","heat",!0,null,null,1,!1,!1,0,"kcal/kg/24hrs; 24 hrs; kcal per kg per 24hrs; kilocalories per kilograms per 24 hours; kilojoules","LOINC","EngCntRat","Clinical","used in nutrition to represent caloric requirement per day based on subject's body weight in kilograms","cal_th","CAL_TH","1",1,!1],[!1,"kilogram","kg","KG","mass",1e3,[0,0,1,0,0,0,0],"kg",null,!1,"M",null,1,!1,!1,0,"kilograms; kgs","LOINC","Mass","Clinical","",null,null,null,null,!1],[!1,"kilogram meter per second","kg.m/s","(KG.M)/S","mass",1e3,[1,-1,1,0,0,0,0],"(kg.m)/s",null,!1,"M",null,1,!1,!1,0,"kg*m/s; kg.m per sec; kg*m per sec; p; momentum","LOINC","","Clinical","unit for momentum = mass times velocity",null,null,null,null,!1],[!1,"kilogram per second per square meter","kg/(s.m2)","KG/(S.M2)","mass",1e3,[-2,-1,1,0,0,0,0],"kg/(s.(m2))",null,!1,"M",null,1,!1,!1,0,"kg/(s*m2); kg/(s*m^2); kg per s per m2; per sec; per m^2; kilograms per seconds per square meter; meter squared; metre","LOINC","ArMRat","Clinical","",null,null,null,null,!1],[!1,"kilogram per hour","kg/h","KG/HR","mass",.2777777777777778,[0,-1,1,0,0,0,0],"kg/h",null,!1,"M",null,1,!1,!1,0,"kg/hr; kg per hr; kilograms per hour","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"kilogram per liter","kg/L","KG/L","mass",1e6,[-3,0,1,0,0,0,0],"kg/L",null,!1,"M",null,1,!1,!1,0,"kg per liter; litre; kilograms","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"kilogram per square meter","kg/m2","KG/M2","mass",1e3,[-2,0,1,0,0,0,0],"kg/(m2)",null,!1,"M",null,1,!1,!1,0,"kg/m^2; kg/sq. m; kg per m2; per m^2; per sq. m; kilograms; meter squared; metre; BMI","LOINC","Ratio","Clinical","units for body mass index (BMI)",null,null,null,null,!1],[!1,"kilogram per cubic meter","kg/m3","KG/M3","mass",1e3,[-3,0,1,0,0,0,0],"kg/(m3)",null,!1,"M",null,1,!1,!1,0,"kg/m^3; kg/cu. m; kg per m3; per m^3; per cu. m; kilograms; meters cubed; metre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"kilogram per minute","kg/min","KG/MIN","mass",16.666666666666668,[0,-1,1,0,0,0,0],"kg/min",null,!1,"M",null,1,!1,!1,0,"kilogram/minute; kg per min; kilograms per minute","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"kilogram per mole","kg/mol","KG/MOL","mass",16605401866749388e-37,[0,0,1,0,0,0,0],"kg/mol",null,!1,"M",null,1,!1,!1,-1,"kilogram/mole; kg per mol; kilograms per mole","LOINC","SCnt","Clinical","",null,null,null,null,!1],[!1,"kilogram per second","kg/s","KG/S","mass",1e3,[0,-1,1,0,0,0,0],"kg/s",null,!1,"M",null,1,!1,!1,0,"kg/sec; kilogram/second; kg per sec; kilograms; second","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"kiloliter","kL","KL","volume",1,[3,0,0,0,0,0,0],"kL","iso1000",!0,null,null,1,!1,!1,0,"kiloliters; kilolitres; m3; m^3; meters cubed; metre","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"kilometer","km","KM","length",1e3,[1,0,0,0,0,0,0],"km",null,!1,"L",null,1,!1,!1,0,"kilometers; kilometres; distance","LOINC","Len","Clinical","",null,null,null,null,!1],[!1,"kilopascal","kPa","KPAL","pressure",1e6,[-1,-2,1,0,0,0,0],"kPa","si",!0,null,null,1,!1,!1,0,"kilopascals; pressure","LOINC","Pres; PPresDiff","Clinical","","N/m2","N/M2","1",1,!1],[!1,"kilosecond","ks","KS","time",1e3,[0,1,0,0,0,0,0],"ks",null,!1,"T",null,1,!1,!1,0,"kiloseconds; ksec","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"kilo enzyme unit","kU","KU","catalytic activity",100368945e11,[0,-1,0,0,0,0,0],"kU","chemical",!0,null,null,1,!1,!1,1,"units; mmol/min; millimoles per minute","LOINC","CAct","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 kU = 1 mmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"kilo enzyme unit per gram","kU/g","KU/G","catalytic activity",100368945e11,[0,-1,-1,0,0,0,0],"kU/g","chemical",!0,null,null,1,!1,!1,1,"units per grams; kU per gm","LOINC","CCnt","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 kU = 1 mmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"kilo enzyme unit per liter","kU/L","KU/L","catalytic activity",100368945e14,[-3,-1,0,0,0,0,0],"kU/L","chemical",!0,null,null,1,!1,!1,1,"units per liter; litre; enzymatic activity; enzyme activity per volume; activities","LOINC","ACnc; CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 kU = 1 mmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"kilo enzyme unit per milliliter","kU/mL","KU/ML","catalytic activity",100368945e17,[-3,-1,0,0,0,0,0],"kU/mL","chemical",!0,null,null,1,!1,!1,1,"kU per mL; units per milliliter; millilitre; enzymatic activity per volume; enzyme activities","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 kU = 1 mmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"Liters per 24 hour","L/(24.h)","L/(24.HR)","volume",11574074074074074e-24,[3,-1,0,0,0,0,0],"L/h","iso1000",!0,null,null,1,!1,!1,0,"L/24hrs; L/24 hrs; L per 24hrs; liters per 24 hours; day; dy; litres; volume flow rate","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"Liters per 8 hour","L/(8.h)","L/(8.HR)","volume",3472222222222222e-23,[3,-1,0,0,0,0,0],"L/h","iso1000",!0,null,null,1,!1,!1,0,"L/8hrs; L/8 hrs; L per 8hrs; liters per 8 hours; litres; volume flow rate; shift","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"Liters per minute per square meter","L/(min.m2) ","L/(MIN.M2)","volume",16666666666666667e-21,[1,-1,0,0,0,0,0],"L/(min.(m2))","iso1000",!0,null,null,1,!1,!1,0,"L/(min.m2); L/min/m^2; L/min/sq. meter; L per min per m2; m^2; liters per minutes per square meter; meter squared; litres; metre ","LOINC","ArVRat","Clinical","unit for tests that measure cardiac output per body surface area (cardiac index)","l",null,"1",1,!1],[!1,"Liters per day","L/d","L/D","volume",11574074074074074e-24,[3,-1,0,0,0,0,0],"L/d","iso1000",!0,null,null,1,!1,!1,0,"L/dy; L per day; 24hrs; 24 hrs; 24 hours; liters; litres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"Liters per hour","L/h","L/HR","volume",27777777777777776e-23,[3,-1,0,0,0,0,0],"L/h","iso1000",!0,null,null,1,!1,!1,0,"L/hr; L per hr; litres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"Liters per kilogram","L/kg","L/KG","volume",1e-6,[3,0,-1,0,0,0,0],"L/kg","iso1000",!0,null,null,1,!1,!1,0,"L per kg; litre","LOINC","VCnt","Clinical","","l",null,"1",1,!1],[!1,"Liters per liter","L/L","L/L","volume",1,[0,0,0,0,0,0,0],"L/L","iso1000",!0,null,null,1,!1,!1,0,"L per L; liter/liter; litre","LOINC","VFr","Clinical","","l",null,"1",1,!1],[!1,"Liters per minute","L/min","L/MIN","volume",16666666666666667e-21,[3,-1,0,0,0,0,0],"L/min","iso1000",!0,null,null,1,!1,!1,0,"liters per minute; litre","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"Liters per minute per square meter","L/min/m2","(L/MIN)/M2","volume",16666666666666667e-21,[1,-1,0,0,0,0,0],"(L/min)/(m2)","iso1000",!0,null,null,1,!1,!1,0,"L/(min.m2); L/min/m^2; L/min/sq. meter; L per min per m2; m^2; liters per minutes per square meter; meter squared; litres; metre ","","ArVRat","Clinical","unit for tests that measure cardiac output per body surface area (cardiac index)","l",null,"1",1,!1],[!1,"Liters per second","L/s","L/S","volume",.001,[3,-1,0,0,0,0,0],"L/s","iso1000",!0,null,null,1,!1,!1,0,"L per sec; litres","LOINC","VRat","Clinical","unit used often to measure gas flow and peak expiratory flow","l",null,"1",1,!1],[!1,"Liters per second per square second","L/s/s2","(L/S)/S2","volume",.001,[3,-3,0,0,0,0,0],"(L/s)/(s2)","iso1000",!0,null,null,1,!1,!1,0,"L/s/s^2; L/sec/sec2; L/sec/sec^2; L/sec/sq. sec; L per s per s2; L per sec per sec2; s^2; sec^2; liters per seconds per square second; second squared; litres ","LOINC","ArVRat","Clinical","unit for tests that measure cardiac output/body surface area","l",null,"1",1,!1],[!1,"lumen square meter","lm.m2","LM.M2","luminous flux",1,[2,0,0,2,0,0,1],"lm.(m2)","si",!0,null,null,1,!1,!1,0,"lm*m2; lm*m^2; lumen meters squared; lumen sq. meters; metres","LOINC","","Clinical","","cd.sr","CD.SR","1",1,!1],[!1,"meter per second","m/s","M/S","length",1,[1,-1,0,0,0,0,0],"m/s",null,!1,"L",null,1,!1,!1,0,"meter/second; m per sec; meters per second; metres; velocity; speed","LOINC","Vel","Clinical","unit of velocity",null,null,null,null,!1],[!1,"meter per square second","m/s2","M/S2","length",1,[1,-2,0,0,0,0,0],"m/(s2)",null,!1,"L",null,1,!1,!1,0,"m/s^2; m/sq. sec; m per s2; per s^2; meters per square second; second squared; sq second; metres; acceleration","LOINC","Accel","Clinical","unit of acceleration",null,null,null,null,!1],[!1,"milli international unit per liter","m[IU]/L","M[IU]/L","arbitrary",1,[-3,0,0,0,0,0,0],"(mi.U.)/L","chemical",!0,null,null,1,!1,!0,0,"mIU/L; m IU/L; mIU per liter; units; litre","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"milli international unit per milliliter","m[IU]/mL","M[IU]/ML","arbitrary",1000.0000000000001,[-3,0,0,0,0,0,0],"(mi.U.)/mL","chemical",!0,null,null,1,!1,!0,0,"mIU/mL; m IU/mL; mIU per mL; milli international units per milliliter; millilitre","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"square meter","m2","M2","length",1,[2,0,0,0,0,0,0],"m2",null,!1,"L",null,1,!1,!1,0,"m^2; sq m; square meters; meters squared; metres","LOINC","Area","Clinical","unit often used to represent body surface area",null,null,null,null,!1],[!1,"square meter per second","m2/s","M2/S","length",1,[2,-1,0,0,0,0,0],"(m2)/s",null,!1,"L",null,1,!1,!1,0,"m^2/sec; m2 per sec; m^2 per sec; sq m/sec; meters squared/seconds; sq m per sec; meters squared; metres","LOINC","ArRat","Clinical","",null,null,null,null,!1],[!1,"cubic meter per second","m3/s","M3/S","length",1,[3,-1,0,0,0,0,0],"(m3)/s",null,!1,"L",null,1,!1,!1,0,"m^3/sec; m3 per sec; m^3 per sec; cu m/sec; cubic meters per seconds; meters cubed; metres","LOINC","VRat","Clinical","",null,null,null,null,!1],[!1,"milliampere","mA","MA","electric current",.001,[0,-1,0,0,0,1,0],"mA","si",!0,null,null,1,!1,!1,0,"mamp; milliamperes","LOINC","ElpotRat","Clinical","unit of electric current","C/s","C/S","1",1,!1],[!1,"millibar","mbar","MBAR","pressure",1e5,[-1,-2,1,0,0,0,0],"mbar","iso1000",!0,null,null,1,!1,!1,0,"millibars","LOINC","Pres","Clinical","unit of pressure","Pa","PAL","1e5",1e5,!1],[!1,"millibar second per liter","mbar.s/L","(MBAR.S)/L","pressure",1e8,[-4,-1,1,0,0,0,0],"(mbar.s)/L","iso1000",!0,null,null,1,!1,!1,0,"mbar*s/L; mbar.s per L; mbar*s per L; millibar seconds per liter; millibar second per litre","LOINC","","Clinical","unit to measure expiratory resistance","Pa","PAL","1e5",1e5,!1],[!1,"millibar per liter per second","mbar/L/s","(MBAR/L)/S","pressure",1e8,[-4,-3,1,0,0,0,0],"(mbar/L)/s","iso1000",!0,null,null,1,!1,!1,0,"mbar/(L.s); mbar/L/sec; mbar/liter/second; mbar per L per sec; mbar per liter per second; millibars per liters per seconds; litres","LOINC","PresCncRat","Clinical","unit to measure expiratory resistance","Pa","PAL","1e5",1e5,!1],[!1,"milliequivalent","meq","MEQ","amount of substance",60221367e13,[0,0,0,0,0,0,0],"meq","chemical",!0,null,null,1,!1,!1,1,"milliequivalents; meqs","LOINC","Sub","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per 2 hour","meq/(2.h)","MEQ/(2.HR)","amount of substance",836407875e8,[0,-1,0,0,0,0,0],"meq/h","chemical",!0,null,null,1,!1,!1,1,"meq/2hrs; meq/2 hrs; meq per 2 hrs; milliequivalents per 2 hours","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per 24 hour","meq/(24.h)","MEQ/(24.HR)","amount of substance",6970065625e6,[0,-1,0,0,0,0,0],"meq/h","chemical",!0,null,null,1,!1,!1,1,"meq/24hrs; meq/24 hrs; meq per 24 hrs; milliequivalents per 24 hours","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per 8 hour","meq/(8.h)","MEQ/(8.HR)","amount of substance",20910196875e6,[0,-1,0,0,0,0,0],"meq/h","chemical",!0,null,null,1,!1,!1,1,"meq/8hrs; meq/8 hrs; meq per 8 hrs; milliequivalents per 8 hours; shift","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per day","meq/d","MEQ/D","amount of substance",6970065625e6,[0,-1,0,0,0,0,0],"meq/d","chemical",!0,null,null,1,!1,!1,1,"meq/dy; meq per day; milliquivalents per days; meq/24hrs; meq/24 hrs; meq per 24 hrs; milliequivalents per 24 hours","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per deciliter","meq/dL","MEQ/DL","amount of substance",6022136699999999e9,[-3,0,0,0,0,0,0],"meq/dL","chemical",!0,null,null,1,!1,!1,1,"meq per dL; milliequivalents per deciliter; decilitre","LOINC","SCnc","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per gram","meq/g","MEQ/G","amount of substance",60221367e13,[0,0,-1,0,0,0,0],"meq/g","chemical",!0,null,null,1,!1,!1,1,"mgq/gm; meq per gm; milliequivalents per gram","LOINC","MCnt","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per hour","meq/h","MEQ/HR","amount of substance",167281575e9,[0,-1,0,0,0,0,0],"meq/h","chemical",!0,null,null,1,!1,!1,1,"meq/hrs; meq per hrs; milliequivalents per hour","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per kilogram","meq/kg","MEQ/KG","amount of substance",60221367e10,[0,0,-1,0,0,0,0],"meq/kg","chemical",!0,null,null,1,!1,!1,1,"meq per kg; milliequivalents per kilogram","LOINC","SCnt","Clinical","equivalence equals moles per valence; used to measure dose per patient body mass","mol","MOL","1",1,!1],[!1,"milliequivalent per kilogram per hour","meq/kg/h","(MEQ/KG)/HR","amount of substance",167281575e6,[0,-1,-1,0,0,0,0],"(meq/kg)/h","chemical",!0,null,null,1,!1,!1,1,"meq/(kg.h); meq/kg/hr; meq per kg per hr; milliequivalents per kilograms per hour","LOINC","SCntRat","Clinical","equivalence equals moles per valence; unit used to measure dose rate per patient body mass","mol","MOL","1",1,!1],[!1,"milliequivalent per liter","meq/L","MEQ/L","amount of substance",60221367e16,[-3,0,0,0,0,0,0],"meq/L","chemical",!0,null,null,1,!1,!1,1,"milliequivalents per liter; litre; meq per l; acidity","LOINC","SCnc","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per square meter","meq/m2","MEQ/M2","amount of substance",60221367e13,[-2,0,0,0,0,0,0],"meq/(m2)","chemical",!0,null,null,1,!1,!1,1,"meq/m^2; meq/sq. m; milliequivalents per square meter; meter squared; metre","LOINC","ArSub","Clinical","equivalence equals moles per valence; note that the use of m2 in clinical units ofter refers to body surface area","mol","MOL","1",1,!1],[!1,"milliequivalent per minute","meq/min","MEQ/MIN","amount of substance",100368945e11,[0,-1,0,0,0,0,0],"meq/min","chemical",!0,null,null,1,!1,!1,1,"meq per min; milliequivalents per minute","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per milliliter","meq/mL","MEQ/ML","amount of substance",60221367e19,[-3,0,0,0,0,0,0],"meq/mL","chemical",!0,null,null,1,!1,!1,1,"meq per mL; milliequivalents per milliliter; millilitre","LOINC","SCnc","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milligram","mg","MG","mass",.001,[0,0,1,0,0,0,0],"mg",null,!1,"M",null,1,!1,!1,0,"milligrams","LOINC","Mass","Clinical","",null,null,null,null,!1],[!1,"milligram per 10 hour","mg/(10.h)","MG/(10.HR)","mass",27777777777777777e-24,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/10hrs; mg/10 hrs; mg per 10 hrs; milligrams per 10 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per 12 hour","mg/(12.h)","MG/(12.HR)","mass",23148148148148148e-24,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/12hrs; mg/12 hrs; per 12 hrs; 12hrs; milligrams per 12 hours","LOINC","MRat","Clinical","units used for tests in urine",null,null,null,null,!1],[!1,"milligram per 2 hour","mg/(2.h)","MG/(2.HR)","mass",13888888888888888e-23,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/2hrs; mg/2 hrs; mg per 2 hrs; 2hrs; milligrams per 2 hours","LOINC","MRat","Clinical","units used for tests in urine",null,null,null,null,!1],[!1,"milligram per 24 hour","mg/(24.h)","MG/(24.HR)","mass",11574074074074074e-24,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/24hrs; mg/24 hrs; milligrams per 24 hours; mg/kg/dy; mg per kg per day; milligrams per kilograms per days","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per 6 hour","mg/(6.h)","MG/(6.HR)","mass",46296296296296295e-24,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/6hrs; mg/6 hrs; mg per 6 hrs; 6hrs; milligrams per 6 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per 72 hour","mg/(72.h)","MG/(72.HR)","mass",3858024691358025e-24,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/72hrs; mg/72 hrs; 72 hrs; 72hrs; milligrams per 72 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per 8 hour","mg/(8.h)","MG/(8.HR)","mass",3472222222222222e-23,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/8hrs; mg/8 hrs; milligrams per 8 hours; shift","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per day","mg/d","MG/D","mass",11574074074074074e-24,[0,-1,1,0,0,0,0],"mg/d",null,!1,"M",null,1,!1,!1,0,"mg/24hrs; mg/24 hrs; milligrams per 24 hours; mg/dy; mg per day; milligrams","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per deciliter","mg/dL","MG/DL","mass",10,[-3,0,1,0,0,0,0],"mg/dL",null,!1,"M",null,1,!1,!1,0,"mg per dL; milligrams per deciliter; decilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"milligram per gram","mg/g","MG/G","mass",.001,[0,0,0,0,0,0,0],"mg/g",null,!1,"M",null,1,!1,!1,0,"mg per gm; milligrams per gram","LOINC","MCnt; MRto","Clinical","",null,null,null,null,!1],[!1,"milligram per hour","mg/h","MG/HR","mass",27777777777777776e-23,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/hr; mg per hr; milligrams","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per kilogram","mg/kg","MG/KG","mass",1e-6,[0,0,0,0,0,0,0],"mg/kg",null,!1,"M",null,1,!1,!1,0,"mg per kg; milligrams per kilograms","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"milligram per kilogram per 8 hour","mg/kg/(8.h)","(MG/KG)/(8.HR)","mass",3472222222222222e-26,[0,-1,0,0,0,0,0],"(mg/kg)/h",null,!1,"M",null,1,!1,!1,0,"mg/(8.h.kg); mg/kg/8hrs; mg/kg/8 hrs; mg per kg per 8hrs; 8 hrs; milligrams per kilograms per 8 hours; shift","LOINC","RelMRat; MCntRat","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"milligram per kilogram per day","mg/kg/d","(MG/KG)/D","mass",11574074074074074e-27,[0,-1,0,0,0,0,0],"(mg/kg)/d",null,!1,"M",null,1,!1,!1,0,"mg/(kg.d); mg/(kg.24.h)mg/kg/dy; mg per kg per day; milligrams per kilograms per days; mg/kg/(24.h); mg/kg/24hrs; 24 hrs; 24 hours","LOINC","RelMRat ","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"milligram per kilogram per hour","mg/kg/h","(MG/KG)/HR","mass",27777777777777777e-26,[0,-1,0,0,0,0,0],"(mg/kg)/h",null,!1,"M",null,1,!1,!1,0,"mg/(kg.h); mg/kg/hr; mg per kg per hr; milligrams per kilograms per hour","LOINC","RelMRat; MCntRat","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"milligram per kilogram per minute","mg/kg/min","(MG/KG)/MIN","mass",16666666666666667e-24,[0,-1,0,0,0,0,0],"(mg/kg)/min",null,!1,"M",null,1,!1,!1,0,"mg/(kg.min); mg per kg per min; milligrams per kilograms per minute","LOINC","RelMRat; MCntRat","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"milligram per liter","mg/L","MG/L","mass",1,[-3,0,1,0,0,0,0],"mg/L",null,!1,"M",null,1,!1,!1,0,"mg per l; milligrams per liter; litre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"milligram per square meter","mg/m2","MG/M2","mass",.001,[-2,0,1,0,0,0,0],"mg/(m2)",null,!1,"M",null,1,!1,!1,0,"mg/m^2; mg/sq. m; mg per m2; mg per m^2; mg per sq. milligrams; meter squared; metre","LOINC","ArMass","Clinical","",null,null,null,null,!1],[!1,"milligram per cubic meter","mg/m3","MG/M3","mass",.001,[-3,0,1,0,0,0,0],"mg/(m3)",null,!1,"M",null,1,!1,!1,0,"mg/m^3; mg/cu. m; mg per m3; milligrams per cubic meter; meter cubed; metre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"milligram per milligram","mg/mg","MG/MG","mass",1,[0,0,0,0,0,0,0],"mg/mg",null,!1,"M",null,1,!1,!1,0,"mg per mg; milligrams; milligram/milligram","LOINC","MRto","Clinical","",null,null,null,null,!1],[!1,"milligram per minute","mg/min","MG/MIN","mass",16666666666666667e-21,[0,-1,1,0,0,0,0],"mg/min",null,!1,"M",null,1,!1,!1,0,"mg per min; milligrams per minutes; milligram/minute","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per milliliter","mg/mL","MG/ML","mass",1000.0000000000001,[-3,0,1,0,0,0,0],"mg/mL",null,!1,"M",null,1,!1,!1,0,"mg per mL; milligrams per milliliters; millilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"milligram per millimole","mg/mmol","MG/MMOL","mass",1660540186674939e-39,[0,0,1,0,0,0,0],"mg/mmol",null,!1,"M",null,1,!1,!1,-1,"mg per mmol; milligrams per millimole; ","LOINC","Ratio","Clinical","",null,null,null,null,!1],[!1,"milligram per week","mg/wk","MG/WK","mass",16534391534391535e-25,[0,-1,1,0,0,0,0],"mg/wk",null,!1,"M",null,1,!1,!1,0,"mg/week; mg per wk; milligrams per weeks; milligram/week","LOINC","Mrat","Clinical","",null,null,null,null,!1],[!1,"milliliter","mL","ML","volume",1e-6,[3,0,0,0,0,0,0],"mL","iso1000",!0,null,null,1,!1,!1,0,"milliliters; millilitres","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 10 hour","mL/(10.h)","ML/(10.HR)","volume",27777777777777777e-27,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/10hrs; ml/10 hrs; mL per 10hrs; 10 hrs; milliliters per 10 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 12 hour","mL/(12.h)","ML/(12.HR)","volume",23148148148148147e-27,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/12hrs; ml/12 hrs; mL per 12hrs; 12 hrs; milliliters per 12 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 2 hour","mL/(2.h)","ML/(2.HR)","volume",13888888888888888e-26,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/2hrs; ml/2 hrs; mL per 2hrs; 2 hrs; milliliters per 2 hours; millilitres ","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 24 hour","mL/(24.h)","ML/(24.HR)","volume",11574074074074074e-27,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/24hrs; ml/24 hrs; mL per 24hrs; 24 hrs; milliliters per 24 hours; millilitres; ml/dy; /day; ml per dy; days; fluid outputs; fluid inputs; flow rate","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 4 hour","mL/(4.h)","ML/(4.HR)","volume",6944444444444444e-26,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/4hrs; ml/4 hrs; mL per 4hrs; 4 hrs; milliliters per 4 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 5 hour","mL/(5.h)","ML/(5.HR)","volume",55555555555555553e-27,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/5hrs; ml/5 hrs; mL per 5hrs; 5 hrs; milliliters per 5 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 6 hour","mL/(6.h)","ML/(6.HR)","volume",46296296296296294e-27,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/6hrs; ml/6 hrs; mL per 6hrs; 6 hrs; milliliters per 6 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 72 hour","mL/(72.h)","ML/(72.HR)","volume",38580246913580245e-28,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/72hrs; ml/72 hrs; mL per 72hrs; 72 hrs; milliliters per 72 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 8 hour","mL/(8.h)","ML/(8.HR)","volume",3472222222222222e-26,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/8hrs; ml/8 hrs; mL per 8hrs; 8 hrs; milliliters per 8 hours; millilitres; shift","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 8 hour per kilogram","mL/(8.h)/kg","(ML/(8.HR))/KG","volume",3472222222222222e-29,[3,-1,-1,0,0,0,0],"(mL/h)/kg","iso1000",!0,null,null,1,!1,!1,0,"mL/kg/(8.h); ml/8h/kg; ml/8 h/kg; ml/8hr/kg; ml/8 hr/kgr; mL per 8h per kg; 8 h; 8hr; 8 hr; milliliters per 8 hours per kilogram; millilitres; shift","LOINC","VRatCnt","Clinical","unit used to measure renal excretion volume rate per body mass","l",null,"1",1,!1],[!1,"milliliter per square inch (international)","mL/[sin_i]","ML/[SIN_I]","volume",.0015500031000061998,[1,0,0,0,0,0,0],"mL","iso1000",!0,null,null,1,!1,!1,0,"mL/sin; mL/in2; mL/in^2; mL per sin; in2; in^2; sq. in; milliliters per square inch; inch squared","LOINC","ArVol","Clinical","","l",null,"1",1,!1],[!1,"milliliter per centimeter of water","mL/cm[H2O]","ML/CM[H2O]","volume",10197162129779282e-27,[4,2,-1,0,0,0,0],"mL/(cm\xA0HO2)","iso1000",!0,null,null,1,!1,!1,0,"milliliters per centimeter of water; millilitre per centimetre of water; millilitres per centimetre of water; mL/cmH2O; mL/cm H2O; mL per cmH2O; mL per cm H2O","LOINC","Compli","Clinical","unit used to measure dynamic lung compliance","l",null,"1",1,!1],[!1,"milliliter per day","mL/d","ML/D","volume",11574074074074074e-27,[3,-1,0,0,0,0,0],"mL/d","iso1000",!0,null,null,1,!1,!1,0,"ml/day; ml per day; milliliters per day; 24 hours; 24hrs; millilitre;","LOINC","VRat","Clinical","usually used to measure fluid output or input; flow rate","l",null,"1",1,!1],[!1,"milliliter per deciliter","mL/dL","ML/DL","volume",.009999999999999998,[0,0,0,0,0,0,0],"mL/dL","iso1000",!0,null,null,1,!1,!1,0,"mL per dL; millilitres; decilitre; milliliters","LOINC","VFr; VFrDiff","Clinical","","l",null,"1",1,!1],[!1,"milliliter per hour","mL/h","ML/HR","volume",27777777777777777e-26,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"mL/hr; mL per hr; milliliters per hour; millilitres; fluid intake; fluid output","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per kilogram","mL/kg","ML/KG","volume",9999999999999999e-25,[3,0,-1,0,0,0,0],"mL/kg","iso1000",!0,null,null,1,!1,!1,0,"mL per kg; milliliters per kilogram; millilitres","LOINC","VCnt","Clinical","","l",null,"1",1,!1],[!1,"milliliter per kilogram per 8 hour","mL/kg/(8.h)","(ML/KG)/(8.HR)","volume",3472222222222222e-29,[3,-1,-1,0,0,0,0],"(mL/kg)/h","iso1000",!0,null,null,1,!1,!1,0,"mL/(8.h.kg); mL/kg/8hrs; mL/kg/8 hrs; mL per kg per 8hrs; 8 hrs; milliliters per kilograms per 8 hours; millilitres; shift","LOINC","VCntRat; RelEngRat","Clinical","unit used to measure renal excretion volume rate per body mass","l",null,"1",1,!1],[!1,"milliliter per kilogram per day","mL/kg/d","(ML/KG)/D","volume",11574074074074072e-30,[3,-1,-1,0,0,0,0],"(mL/kg)/d","iso1000",!0,null,null,1,!1,!1,0,"mL/(kg.d); mL/kg/dy; mL per kg per day; milliliters per kilograms per day; mg/kg/24hrs; 24 hrs; per 24 hours millilitres","LOINC","VCntRat; RelEngRat","Clinical","unit used to measure renal excretion volume rate per body mass","l",null,"1",1,!1],[!1,"milliliter per kilogram per hour","mL/kg/h","(ML/KG)/HR","volume",27777777777777774e-29,[3,-1,-1,0,0,0,0],"(mL/kg)/h","iso1000",!0,null,null,1,!1,!1,0,"mL/(kg.h); mL/kg/hr; mL per kg per hr; milliliters per kilograms per hour; millilitres","LOINC","VCntRat; RelEngRat","Clinical","unit used to measure renal excretion volume rate per body mass","l",null,"1",1,!1],[!1,"milliliter per kilogram per minute","mL/kg/min","(ML/KG)/MIN","volume",16666666666666664e-27,[3,-1,-1,0,0,0,0],"(mL/kg)/min","iso1000",!0,null,null,1,!1,!1,0,"mL/(kg.min); mL/kg/dy; mL per kg per day; milliliters per kilograms per day; millilitres","LOINC","RelEngRat","Clinical","used for tests that measure activity metabolic rate compared to standard resting metabolic rate ","l",null,"1",1,!1],[!1,"milliliter per square meter","mL/m2","ML/M2","volume",1e-6,[1,0,0,0,0,0,0],"mL/(m2)","iso1000",!0,null,null,1,!1,!1,0,"mL/m^2; mL/sq. meter; mL per m2; m^2; sq. meter; milliliters per square meter; millilitres; meter squared","LOINC","ArVol","Clinical","used for tests that relate to heart work - e.g. ventricular stroke volume; atrial volume per body surface area","l",null,"1",1,!1],[!1,"milliliter per millibar","mL/mbar","ML/MBAR","volume",1e-11,[4,2,-1,0,0,0,0],"mL/mbar","iso1000",!0,null,null,1,!1,!1,0,"mL per mbar; milliliters per millibar; millilitres","LOINC","","Clinical","unit used to measure dynamic lung compliance","l",null,"1",1,!1],[!1,"milliliter per minute","mL/min","ML/MIN","volume",16666666666666667e-24,[3,-1,0,0,0,0,0],"mL/min","iso1000",!0,null,null,1,!1,!1,0,"mL per min; milliliters; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per minute per square meter","mL/min/m2","(ML/MIN)/M2","volume",16666666666666667e-24,[1,-1,0,0,0,0,0],"(mL/min)/(m2)","iso1000",!0,null,null,1,!1,!1,0,"ml/min/m^2; ml/min/sq. meter; mL per min per m2; m^2; sq. meter; milliliters per minutes per square meter; millilitres; metre; meter squared","LOINC","ArVRat","Clinical","unit used to measure volume per body surface area; oxygen consumption index","l",null,"1",1,!1],[!1,"milliliter per millimeter","mL/mm","ML/MM","volume",.001,[2,0,0,0,0,0,0],"mL/mm","iso1000",!0,null,null,1,!1,!1,0,"mL per mm; milliliters per millimeter; millilitres; millimetre","LOINC","Lineic Volume","Clinical","","l",null,"1",1,!1],[!1,"milliliter per second","mL/s","ML/S","volume",1e-6,[3,-1,0,0,0,0,0],"mL/s","iso1000",!0,null,null,1,!1,!1,0,"ml/sec; mL per sec; milliliters per second; millilitres","LOINC","Vel; VelRat; VRat","Clinical","","l",null,"1",1,!1],[!1,"millimeter","mm","MM","length",.001,[1,0,0,0,0,0,0],"mm",null,!1,"L",null,1,!1,!1,0,"millimeters; millimetres; height; length; diameter; thickness; axis; curvature; size","LOINC","Len","Clinical","",null,null,null,null,!1],[!1,"millimeter per hour","mm/h","MM/HR","length",27777777777777776e-23,[1,-1,0,0,0,0,0],"mm/h",null,!1,"L",null,1,!1,!1,0,"mm/hr; mm per hr; millimeters per hour; millimetres","LOINC","Vel","Clinical","unit to measure sedimentation rate",null,null,null,null,!1],[!1,"millimeter per minute","mm/min","MM/MIN","length",16666666666666667e-21,[1,-1,0,0,0,0,0],"mm/min",null,!1,"L",null,1,!1,!1,0,"mm per min; millimeters per minute; millimetres","LOINC","Vel","Clinical","",null,null,null,null,!1],[!1,"millimeter of water","mm[H2O]","MM[H2O]","pressure",9806.65,[-1,-2,1,0,0,0,0],"mm\xA0HO2","clinical",!0,null,null,1,!1,!1,0,"mmH2O; mm H2O; millimeters of water; millimetres","LOINC","Pres","Clinical","","kPa","KPAL","980665e-5",9.80665,!1],[!1,"millimeter of mercury","mm[Hg]","MM[HG]","pressure",133322,[-1,-2,1,0,0,0,0],"mm\xA0Hg","clinical",!0,null,null,1,!1,!1,0,"mmHg; mm Hg; millimeters of mercury; millimetres","LOINC","Pres; PPres; Ratio","Clinical","1 mm[Hg] = 1 torr; unit to measure blood pressure","kPa","KPAL","133.3220",133.322,!1],[!1,"square millimeter","mm2","MM2","length",1e-6,[2,0,0,0,0,0,0],"mm2",null,!1,"L",null,1,!1,!1,0,"mm^2; sq. mm.; sq. millimeters; millimeters squared; millimetres","LOINC","Area","Clinical","",null,null,null,null,!1],[!1,"millimole","mmol","MMOL","amount of substance",60221367e13,[0,0,0,0,0,0,0],"mmol","si",!0,null,null,1,!1,!1,1,"millimoles","LOINC","Sub","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 12 hour","mmol/(12.h)","MMOL/(12.HR)","amount of substance",1394013125e7,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/12hrs; mmol/12 hrs; mmol per 12 hrs; 12hrs; millimoles per 12 hours","LOINC","SRat","Clinical","unit for tests related to urine","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 2 hour","mmol/(2.h)","MMOL/(2.HR)","amount of substance",836407875e8,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/2hrs; mmol/2 hrs; mmol per 2 hrs; 2hrs; millimoles per 2 hours","LOINC","SRat","Clinical","unit for tests related to urine","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 24 hour","mmol/(24.h)","MMOL/(24.HR)","amount of substance",6970065625e6,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/24hrs; mmol/24 hrs; mmol per 24 hrs; 24hrs; millimoles per 24 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 5 hour","mmol/(5.h)","MMOL/(5.HR)","amount of substance",33456315e9,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/5hrs; mmol/5 hrs; mmol per 5 hrs; 5hrs; millimoles per 5 hours","LOINC","SRat","Clinical","unit for tests related to doses","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 6 hour","mmol/(6.h)","MMOL/(6.HR)","amount of substance",278802625e8,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/6hrs; mmol/6 hrs; mmol per 6 hrs; 6hrs; millimoles per 6 hours","LOINC","SRat","Clinical","unit for tests related to urine","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 8 hour","mmol/(8.h)","MMOL/(8.HR)","amount of substance",20910196875e6,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/8hrs; mmol/8 hrs; mmol per 8 hrs; 8hrs; millimoles per 8 hours; shift","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per day","mmol/d","MMOL/D","amount of substance",6970065625e6,[0,-1,0,0,0,0,0],"mmol/d","si",!0,null,null,1,!1,!1,1,"mmol/24hrs; mmol/24 hrs; mmol per 24 hrs; 24hrs; millimoles per 24 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per deciliter","mmol/dL","MMOL/DL","amount of substance",6022136699999999e9,[-3,0,0,0,0,0,0],"mmol/dL","si",!0,null,null,1,!1,!1,1,"mmol per dL; millimoles; decilitre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per gram","mmol/g","MMOL/G","amount of substance",60221367e13,[0,0,-1,0,0,0,0],"mmol/g","si",!0,null,null,1,!1,!1,1,"mmol per gram; millimoles","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per hour","mmol/h","MMOL/HR","amount of substance",167281575e9,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/hr; mmol per hr; millimoles per hour","LOINC","SRat","Clinical","unit for tests related to urine","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per kilogram","mmol/kg","MMOL/KG","amount of substance",60221367e10,[0,0,-1,0,0,0,0],"mmol/kg","si",!0,null,null,1,!1,!1,1,"mmol per kg; millimoles per kilogram","LOINC","SCnt","Clinical","unit for tests related to stool","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per kilogram per 8 hour","mmol/kg/(8.h)","(MMOL/KG)/(8.HR)","amount of substance",20910196875e3,[0,-1,-1,0,0,0,0],"(mmol/kg)/h","si",!0,null,null,1,!1,!1,1,"mmol/(8.h.kg); mmol/kg/8hrs; mmol/kg/8 hrs; mmol per kg per 8hrs; 8 hrs; millimoles per kilograms per 8 hours; shift","LOINC","CCnt","Clinical","unit used to measure molar dose rate per patient body mass","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per kilogram per day","mmol/kg/d","(MMOL/KG)/D","amount of substance",6970065625e3,[0,-1,-1,0,0,0,0],"(mmol/kg)/d","si",!0,null,null,1,!1,!1,1,"mmol/kg/dy; mmol/kg/day; mmol per kg per dy; millimoles per kilograms per day","LOINC","RelSRat","Clinical","unit used to measure molar dose rate per patient body mass","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per kilogram per hour","mmol/kg/h","(MMOL/KG)/HR","amount of substance",167281575e6,[0,-1,-1,0,0,0,0],"(mmol/kg)/h","si",!0,null,null,1,!1,!1,1,"mmol/kg/hr; mmol per kg per hr; millimoles per kilograms per hour","LOINC","CCnt","Clinical","unit used to measure molar dose rate per patient body mass","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per kilogram per minute","mmol/kg/min","(MMOL/KG)/MIN","amount of substance",100368945e8,[0,-1,-1,0,0,0,0],"(mmol/kg)/min","si",!0,null,null,1,!1,!1,1,"mmol/(kg.min); mmol/kg/min; mmol per kg per min; millimoles per kilograms per minute","LOINC","CCnt","Clinical","unit used to measure molar dose rate per patient body mass; note that the unit for the enzyme unit U = umol/min. mmol/kg/min = kU/kg; ","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per liter","mmol/L","MMOL/L","amount of substance",60221367e16,[-3,0,0,0,0,0,0],"mmol/L","si",!0,null,null,1,!1,!1,1,"mmol per L; millimoles per liter; litre","LOINC","SCnc","Clinical","unit for tests related to doses","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per square meter","mmol/m2","MMOL/M2","amount of substance",60221367e13,[-2,0,0,0,0,0,0],"mmol/(m2)","si",!0,null,null,1,!1,!1,1,"mmol/m^2; mmol/sq. meter; mmol per m2; m^2; sq. meter; millimoles; meter squared; metre","LOINC","ArSub","Clinical","unit used to measure molar dose per patient body surface area","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per minute","mmol/min","MMOL/MIN","amount of substance",100368945e11,[0,-1,0,0,0,0,0],"mmol/min","si",!0,null,null,1,!1,!1,1,"mmol per min; millimoles per minute","LOINC","Srat; CAct","Clinical","unit for the enzyme unit U = umol/min. mmol/min = kU","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per millimole","mmol/mmol","MMOL/MMOL","amount of substance",1,[0,0,0,0,0,0,0],"mmol/mmol","si",!0,null,null,1,!1,!1,0,"mmol per mmol; millimoles per millimole","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per mole","mmol/mol","MMOL/MOL","amount of substance",.001,[0,0,0,0,0,0,0],"mmol/mol","si",!0,null,null,1,!1,!1,0,"mmol per mol; millimoles per mole","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per second per liter","mmol/s/L","(MMOL/S)/L","amount of substance",60221367e16,[-3,-1,0,0,0,0,0],"(mmol/s)/L","si",!0,null,null,1,!1,!1,1,"mmol/sec/L; mmol per s per L; per sec; millimoles per seconds per liter; litre","LOINC","CCnc ","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per kilogram","mol/kg","MOL/KG","amount of substance",60221367e13,[0,0,-1,0,0,0,0],"mol/kg","si",!0,null,null,1,!1,!1,1,"mol per kg; moles; mols","LOINC","SCnt","Clinical","unit for tests related to stool","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per kilogram per second","mol/kg/s","(MOL/KG)/S","amount of substance",60221367e13,[0,-1,-1,0,0,0,0],"(mol/kg)/s","si",!0,null,null,1,!1,!1,1,"mol/kg/sec; mol per kg per sec; moles per kilograms per second; mols","LOINC","CCnt","Clinical","unit of catalytic activity (mol/s) per mass (kg)","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per liter","mol/L","MOL/L","amount of substance",60221366999999994e10,[-3,0,0,0,0,0,0],"mol/L","si",!0,null,null,1,!1,!1,1,"mol per L; moles per liter; litre; moles; mols","LOINC","SCnc","Clinical","unit often used in tests measuring oxygen content","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per cubic meter","mol/m3","MOL/M3","amount of substance",60221367e16,[-3,0,0,0,0,0,0],"mol/(m3)","si",!0,null,null,1,!1,!1,1,"mol/m^3; mol/cu. m; mol per m3; m^3; cu. meter; mols; moles; meters cubed; metre; mole per kiloliter; kilolitre; mol/kL","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per milliliter","mol/mL","MOL/ML","amount of substance",60221367e22,[-3,0,0,0,0,0,0],"mol/mL","si",!0,null,null,1,!1,!1,1,"mol per mL; moles; millilitre; mols","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per mole","mol/mol","MOL/MOL","amount of substance",1,[0,0,0,0,0,0,0],"mol/mol","si",!0,null,null,1,!1,!1,0,"mol per mol; moles per mol; mols","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per second","mol/s","MOL/S","amount of substance",60221367e16,[0,-1,0,0,0,0,0],"mol/s","si",!0,null,null,1,!1,!1,1,"mol per sec; moles per second; mols","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"milliosmole","mosm","MOSM","amount of substance (dissolved particles)",60221367e13,[0,0,0,0,0,0,0],"mosm","chemical",!0,null,null,1,!1,!1,1,"milliosmoles","LOINC","Osmol","Clinical","equal to 1/1000 of an osmole","mol","MOL","1",1,!1],[!1,"milliosmole per kilogram","mosm/kg","MOSM/KG","amount of substance (dissolved particles)",60221367e10,[0,0,-1,0,0,0,0],"mosm/kg","chemical",!0,null,null,1,!1,!1,1,"mosm per kg; milliosmoles per kilogram","LOINC","Osmol","Clinical","","mol","MOL","1",1,!1],[!1,"milliosmole per liter","mosm/L","MOSM/L","amount of substance (dissolved particles)",60221367e16,[-3,0,0,0,0,0,0],"mosm/L","chemical",!0,null,null,1,!1,!1,1,"mosm per liter; litre; milliosmoles","LOINC","Osmol","Clinical","","mol","MOL","1",1,!1],[!1,"millipascal","mPa","MPAL","pressure",1,[-1,-2,1,0,0,0,0],"mPa","si",!0,null,null,1,!1,!1,0,"millipascals","LOINC","Pres","Clinical","unit of pressure","N/m2","N/M2","1",1,!1],[!1,"millipascal second","mPa.s","MPAL.S","pressure",1,[-1,-1,1,0,0,0,0],"mPa.s","si",!0,null,null,1,!1,!1,0,"mPa*s; millipoise; mP; dynamic viscosity","LOINC","Visc","Clinical","base units for millipoise, a measurement of dynamic viscosity","N/m2","N/M2","1",1,!1],[!1,"megasecond","Ms","MAS","time",1e6,[0,1,0,0,0,0,0],"Ms",null,!1,"T",null,1,!1,!1,0,"megaseconds","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"millisecond","ms","MS","time",.001,[0,1,0,0,0,0,0],"ms",null,!1,"T",null,1,!1,!1,0,"milliseconds; duration","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"milli enzyme unit per gram","mU/g","MU/G","catalytic activity",100368945e5,[0,-1,-1,0,0,0,0],"mU/g","chemical",!0,null,null,1,!1,!1,1,"mU per gm; milli enzyme units per gram; enzyme activity; enzymatic activity per mass","LOINC","CCnt","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 mU = 1 nmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"milli enzyme unit per liter","mU/L","MU/L","catalytic activity",100368945e8,[-3,-1,0,0,0,0,0],"mU/L","chemical",!0,null,null,1,!1,!1,1,"mU per liter; litre; milli enzyme units enzymatic activity per volume; enzyme activity","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 mU = 1 nmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"milli enzyme unit per milligram","mU/mg","MU/MG","catalytic activity",100368945e8,[0,-1,-1,0,0,0,0],"mU/mg","chemical",!0,null,null,1,!1,!1,1,"mU per mg; milli enzyme units per milligram","LOINC","CCnt","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 mU = 1 nmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"milli enzyme unit per milliliter","mU/mL","MU/ML","catalytic activity",100368945e11,[-3,-1,0,0,0,0,0],"mU/mL","chemical",!0,null,null,1,!1,!1,1,"mU per mL; milli enzyme units per milliliter; millilitre; enzymatic activity per volume; enzyme activity","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 mU = 1 nmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"milli enzyme unit per milliliter per minute","mU/mL/min","(MU/ML)/MIN","catalytic activity",167281575e9,[-3,-2,0,0,0,0,0],"(mU/mL)/min","chemical",!0,null,null,1,!1,!1,1,"mU per mL per min; mU per milliliters per minute; millilitres; milli enzyme units; enzymatic activity; enzyme activity","LOINC","CCncRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 mU = 1 nmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"millivolt","mV","MV","electric potential",1,[2,-2,1,0,0,-1,0],"mV","si",!0,null,null,1,!1,!1,0,"millivolts","LOINC","Elpot","Clinical","unit of electric potential (voltage)","J/C","J/C","1",1,!1],[!1,"Newton centimeter","N.cm","N.CM","force",10,[2,-2,1,0,0,0,0],"N.cm","si",!0,null,null,1,!1,!1,0,"N*cm; Ncm; N cm; Newton*centimeters; Newton* centimetres; torque; work","LOINC","","Clinical",`as a measurement of work, N.cm = 1/100 Joules; -note that N.m is the standard unit of measurement for torque (although dimensionally equivalent to Joule), and N.cm can also be thought of as a torqe unit`,"kg.m/s2","KG.M/S2","1",1,!1],[!1,"Newton second","N.s","N.S","force",1e3,[1,-1,1,0,0,0,0],"N.s","si",!0,null,null,1,!1,!1,0,"Newton*seconds; N*s; N s; Ns; impulse; imp","LOINC","","Clinical","standard unit of impulse","kg.m/s2","KG.M/S2","1",1,!1],[!1,"nanogram","ng","NG","mass",1e-9,[0,0,1,0,0,0,0],"ng",null,!1,"M",null,1,!1,!1,0,"nanograms","LOINC","Mass","Clinical","",null,null,null,null,!1],[!1,"nanogram per 24 hour","ng/(24.h)","NG/(24.HR)","mass",11574074074074075e-30,[0,-1,1,0,0,0,0],"ng/h",null,!1,"M",null,1,!1,!1,0,"ng/24hrs; ng/24 hrs; nanograms per 24 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per 8 hour","ng/(8.h)","NG/(8.HR)","mass",34722222222222224e-30,[0,-1,1,0,0,0,0],"ng/h",null,!1,"M",null,1,!1,!1,0,"ng/8hrs; ng/8 hrs; nanograms per 8 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per million","ng/10*6","NG/(10*6)","mass",1e-15,[0,0,1,0,0,0,0],"ng/(106)",null,!1,"M",null,1,!1,!1,0,"ng/10^6; ng per 10*6; 10^6; nanograms","LOINC","MNum","Clinical","",null,null,null,null,!1],[!1,"nanogram per day","ng/d","NG/D","mass",11574074074074075e-30,[0,-1,1,0,0,0,0],"ng/d",null,!1,"M",null,1,!1,!1,0,"ng/dy; ng per day; nanograms ","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per deciliter","ng/dL","NG/DL","mass",1e-5,[-3,0,1,0,0,0,0],"ng/dL",null,!1,"M",null,1,!1,!1,0,"ng per dL; nanograms per deciliter; decilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"nanogram per gram","ng/g","NG/G","mass",1e-9,[0,0,0,0,0,0,0],"ng/g",null,!1,"M",null,1,!1,!1,0,"ng/gm; ng per gm; nanograms per gram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"nanogram per hour","ng/h","NG/HR","mass",2777777777777778e-28,[0,-1,1,0,0,0,0],"ng/h",null,!1,"M",null,1,!1,!1,0,"ng/hr; ng per hr; nanograms per hour","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per kilogram","ng/kg","NG/KG","mass",1e-12,[0,0,0,0,0,0,0],"ng/kg",null,!1,"M",null,1,!1,!1,0,"ng per kg; nanograms per kilogram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"nanogram per kilogram per 8 hour","ng/kg/(8.h)","(NG/KG)/(8.HR)","mass",3472222222222222e-32,[0,-1,0,0,0,0,0],"(ng/kg)/h",null,!1,"M",null,1,!1,!1,0,"ng/(8.h.kg); ng/kg/8hrs; ng/kg/8 hrs; ng per kg per 8hrs; 8 hrs; nanograms per kilograms per 8 hours; shift","LOINC","MRtoRat ","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"nanogram per kilogram per hour","ng/kg/h","(NG/KG)/HR","mass",27777777777777775e-32,[0,-1,0,0,0,0,0],"(ng/kg)/h",null,!1,"M",null,1,!1,!1,0,"ng/(kg.h); ng/kg/hr; ng per kg per hr; nanograms per kilograms per hour","LOINC","MRtoRat ","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"nanogram per kilogram per minute","ng/kg/min","(NG/KG)/MIN","mass",16666666666666667e-30,[0,-1,0,0,0,0,0],"(ng/kg)/min",null,!1,"M",null,1,!1,!1,0,"ng/(kg.min); ng per kg per min; nanograms per kilograms per minute","LOINC","MRtoRat ","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"nanogram per liter","ng/L","NG/L","mass",1e-6,[-3,0,1,0,0,0,0],"ng/L",null,!1,"M",null,1,!1,!1,0,"ng per L; nanograms per liter; litre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"nanogram per square meter","ng/m2","NG/M2","mass",1e-9,[-2,0,1,0,0,0,0],"ng/(m2)",null,!1,"M",null,1,!1,!1,0,"ng/m^2; ng/sq. m; ng per m2; m^2; sq. meter; nanograms; meter squared; metre","LOINC","ArMass","Clinical","unit used to measure mass dose per patient body surface area",null,null,null,null,!1],[!1,"nanogram per milligram","ng/mg","NG/MG","mass",1e-6,[0,0,0,0,0,0,0],"ng/mg",null,!1,"M",null,1,!1,!1,0,"ng per mg; nanograms","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"nanogram per milligram per hour","ng/mg/h","(NG/MG)/HR","mass",27777777777777777e-26,[0,-1,0,0,0,0,0],"(ng/mg)/h",null,!1,"M",null,1,!1,!1,0,"ng/mg/hr; ng per mg per hr; nanograms per milligrams per hour","LOINC","MRtoRat ","Clinical","",null,null,null,null,!1],[!1,"nanogram per minute","ng/min","NG/MIN","mass",16666666666666667e-27,[0,-1,1,0,0,0,0],"ng/min",null,!1,"M",null,1,!1,!1,0,"ng per min; nanograms","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per millliiter","ng/mL","NG/ML","mass",.001,[-3,0,1,0,0,0,0],"ng/mL",null,!1,"M",null,1,!1,!1,0,"ng per mL; nanograms; millilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"nanogram per milliliter per hour","ng/mL/h","(NG/ML)/HR","mass",27777777777777776e-23,[-3,-1,1,0,0,0,0],"(ng/mL)/h",null,!1,"M",null,1,!1,!1,0,"ng/mL/hr; ng per mL per mL; nanograms per milliliter per hour; nanogram per millilitre per hour; nanograms per millilitre per hour; enzymatic activity per volume; enzyme activity per milliliters","LOINC","CCnc","Clinical","tests that measure enzymatic activity",null,null,null,null,!1],[!1,"nanogram per second","ng/s","NG/S","mass",1e-9,[0,-1,1,0,0,0,0],"ng/s",null,!1,"M",null,1,!1,!1,0,"ng/sec; ng per sec; nanograms per second","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per enzyme unit","ng/U","NG/U","mass",9963241120049634e-41,[0,1,1,0,0,0,0],"ng/U",null,!1,"M",null,1,!1,!1,-1,"ng per U; nanograms per enzyme unit","LOINC","CMass","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)",null,null,null,null,!1],[!1,"nanokatal","nkat","NKAT","catalytic activity",60221367e7,[0,-1,0,0,0,0,0],"nkat","chemical",!0,null,null,1,!1,!1,1,"nanokatals","LOINC","CAct","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"nanoliter","nL","NL","volume",10000000000000002e-28,[3,0,0,0,0,0,0],"nL","iso1000",!0,null,null,1,!1,!1,0,"nanoliters; nanolitres","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"nanometer","nm","NM","length",1e-9,[1,0,0,0,0,0,0],"nm",null,!1,"L",null,1,!1,!1,0,"nanometers; nanometres","LOINC","Len","Clinical","",null,null,null,null,!1],[!1,"nanometer per second per liter","nm/s/L","(NM/S)/L","length",1e-6,[-2,-1,0,0,0,0,0],"(nm/s)/L",null,!1,"L",null,1,!1,!1,0,"nm/sec/liter; nm/sec/litre; nm per s per l; nm per sec per l; nanometers per second per liter; nanometre per second per litre; nanometres per second per litre","LOINC","VelCnc","Clinical","",null,null,null,null,!1],[!1,"nanomole","nmol","NMOL","amount of substance",60221367e7,[0,0,0,0,0,0,0],"nmol","si",!0,null,null,1,!1,!1,1,"nanomoles","LOINC","Sub","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per 24 hour","nmol/(24.h)","NMOL/(24.HR)","amount of substance",6970065625,[0,-1,0,0,0,0,0],"nmol/h","si",!0,null,null,1,!1,!1,1,"nmol/24hr; nmol/24 hr; nanomoles per 24 hours; nmol/day; nanomoles per day; nmol per day; nanomole/day; nanomol/day","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per day","nmol/d","NMOL/D","amount of substance",6970065625,[0,-1,0,0,0,0,0],"nmol/d","si",!0,null,null,1,!1,!1,1,"nmol/day; nanomoles per day; nmol per day; nanomole/day; nanomol/day; nmol/24hr; nmol/24 hr; nanomoles per 24 hours; ","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per deciliter","nmol/dL","NMOL/DL","amount of substance",60221367e11,[-3,0,0,0,0,0,0],"nmol/dL","si",!0,null,null,1,!1,!1,1,"nmol per dL; nanomoles per deciliter; nanomole per decilitre; nanomoles per decilitre; nanomole/deciliter; nanomole/decilitre; nanomol/deciliter; nanomol/decilitre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per gram","nmol/g","NMOL/G","amount of substance",60221367e7,[0,0,-1,0,0,0,0],"nmol/g","si",!0,null,null,1,!1,!1,1,"nmol per gram; nanomoles per gram; nanomole/gram","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per hour per liter","nmol/h/L","(NMOL/HR)/L","amount of substance",167281575e6,[-3,-1,0,0,0,0,0],"(nmol/h)/L","si",!0,null,null,1,!1,!1,1,"nmol/hrs/L; nmol per hrs per L; nanomoles per hours per liter; litre; enzymatic activity per volume; enzyme activities","LOINC","CCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per liter","nmol/L","NMOL/L","amount of substance",60221367e10,[-3,0,0,0,0,0,0],"nmol/L","si",!0,null,null,1,!1,!1,1,"nmol per L; nanomoles per liter; litre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milligram","nmol/mg","NMOL/MG","amount of substance",60221367e10,[0,0,-1,0,0,0,0],"nmol/mg","si",!0,null,null,1,!1,!1,1,"nmol per mg; nanomoles per milligram","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milligram per hour","nmol/mg/h","(NMOL/MG)/HR","amount of substance",167281575e6,[0,-1,-1,0,0,0,0],"(nmol/mg)/h","si",!0,null,null,1,!1,!1,1,"nmol/mg/hr; nmol per mg per hr; nanomoles per milligrams per hour","LOINC","SCntRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milligram of protein","nmol/mg{prot}","NMOL/MG","amount of substance",60221367e10,[0,0,-1,0,0,0,0],"nmol/mg","si",!0,null,null,1,!1,!1,1,"nanomoles; nmol/mg prot; nmol per mg prot","LOINC","Ratio; CCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per minute","nmol/min","NMOL/MIN","amount of substance",100368945e5,[0,-1,0,0,0,0,0],"nmol/min","si",!0,null,null,1,!1,!1,1,"nmol per min; nanomoles per minute; milli enzyme units; enzyme activity per volume; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. nmol/min = mU (milli enzyme unit)","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per minute per milliliter","nmol/min/mL","(NMOL/MIN)/ML","amount of substance",100368945e11,[-3,-1,0,0,0,0,0],"(nmol/min)/mL","si",!0,null,null,1,!1,!1,1,"nmol per min per mL; nanomoles per minutes per milliliter; millilitre; milli enzyme units per volume; enzyme activity; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. nmol/mL/min = mU/mL","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milliliter","nmol/mL","NMOL/ML","amount of substance",60221367e13,[-3,0,0,0,0,0,0],"nmol/mL","si",!0,null,null,1,!1,!1,1,"nmol per mL; nanomoles per milliliter; millilitre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milliliter per hour","nmol/mL/h","(NMOL/ML)/HR","amount of substance",167281575e9,[-3,-1,0,0,0,0,0],"(nmol/mL)/h","si",!0,null,null,1,!1,!1,1,"nmol/mL/hr; nmol per mL per hr; nanomoles per milliliters per hour; millilitres; milli enzyme units per volume; enzyme activity; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min.","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milliliter per minute","nmol/mL/min","(NMOL/ML)/MIN","amount of substance",100368945e11,[-3,-1,0,0,0,0,0],"(nmol/mL)/min","si",!0,null,null,1,!1,!1,1,"nmol per mL per min; nanomoles per milliliters per min; millilitres; milli enzyme units per volume; enzyme activity; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. nmol/mL/min = mU/mL","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per millimole","nmol/mmol","NMOL/MMOL","amount of substance",1e-6,[0,0,0,0,0,0,0],"nmol/mmol","si",!0,null,null,1,!1,!1,0,"nmol per mmol; nanomoles per millimole","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per millimole of creatinine","nmol/mmol{creat}","NMOL/MMOL","amount of substance",1e-6,[0,0,0,0,0,0,0],"nmol/mmol","si",!0,null,null,1,!1,!1,0,"nanomoles","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per mole","nmol/mol","NMOL/MOL","amount of substance",1e-9,[0,0,0,0,0,0,0],"nmol/mol","si",!0,null,null,1,!1,!1,0,"nmol per mole; nanomoles","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per nanomole","nmol/nmol","NMOL/NMOL","amount of substance",1,[0,0,0,0,0,0,0],"nmol/nmol","si",!0,null,null,1,!1,!1,0,"nmol per nmol; nanomoles","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per second","nmol/s","NMOL/S","amount of substance",60221367e7,[0,-1,0,0,0,0,0],"nmol/s","si",!0,null,null,1,!1,!1,1,"nmol/sec; nmol per sec; nanomoles per sercond; milli enzyme units; enzyme activity; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min.","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per second per liter","nmol/s/L","(NMOL/S)/L","amount of substance",60221367e10,[-3,-1,0,0,0,0,0],"(nmol/s)/L","si",!0,null,null,1,!1,!1,1,"nmol/sec/L; nmol per s per L; nmol per sec per L; nanomoles per seconds per liter; litre; milli enzyme units per volume; enzyme activity; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min.","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanosecond","ns","NS","time",1e-9,[0,1,0,0,0,0,0],"ns",null,!1,"T",null,1,!1,!1,0,"nanoseconds","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"nanoenzyme unit per milliliter","nU/mL","NU/ML","catalytic activity",100368945e5,[-3,-1,0,0,0,0,0],"nU/mL","chemical",!0,null,null,1,!1,!1,1,"nU per mL; nanoenzyme units per milliliter; millilitre; enzymatic activity per volume; enzyme activity","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 fU = pmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"Ohm meter","Ohm.m","OHM.M","electric resistance",1e3,[3,-1,1,0,0,-2,0],"\u03A9.m","si",!0,null,null,1,!1,!1,0,"electric resistivity; meters; metres","LOINC","","Clinical","unit of electric resistivity","V/A","V/A","1",1,!1],[!1,"osmole per kilogram","osm/kg","OSM/KG","amount of substance (dissolved particles)",60221367e13,[0,0,-1,0,0,0,0],"osm/kg","chemical",!0,null,null,1,!1,!1,1,"osm per kg; osmoles per kilogram; osmols","LOINC","Osmol","Clinical","","mol","MOL","1",1,!1],[!1,"osmole per liter","osm/L","OSM/L","amount of substance (dissolved particles)",60221366999999994e10,[-3,0,0,0,0,0,0],"osm/L","chemical",!0,null,null,1,!1,!1,1,"osm per L; osmoles per liter; litre; osmols","LOINC","Osmol","Clinical","","mol","MOL","1",1,!1],[!1,"picoampere","pA","PA","electric current",1e-12,[0,-1,0,0,0,1,0],"pA","si",!0,null,null,1,!1,!1,0,"picoamperes","LOINC","","Clinical","equal to 10^-12 amperes","C/s","C/S","1",1,!1],[!1,"picogram","pg","PG","mass",1e-12,[0,0,1,0,0,0,0],"pg",null,!1,"M",null,1,!1,!1,0,"picograms","LOINC","Mass; EntMass","Clinical","",null,null,null,null,!1],[!1,"picogram per deciliter","pg/dL","PG/DL","mass",9999999999999999e-24,[-3,0,1,0,0,0,0],"pg/dL",null,!1,"M",null,1,!1,!1,0,"pg per dL; picograms; decilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"picogram per liter","pg/L","PG/L","mass",1e-9,[-3,0,1,0,0,0,0],"pg/L",null,!1,"M",null,1,!1,!1,0,"pg per L; picograms; litre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"picogram per milligram","pg/mg","PG/MG","mass",1e-9,[0,0,0,0,0,0,0],"pg/mg",null,!1,"M",null,1,!1,!1,0,"pg per mg; picograms","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"picogram per milliliter","pg/mL","PG/ML","mass",1e-6,[-3,0,1,0,0,0,0],"pg/mL",null,!1,"M",null,1,!1,!1,0,"pg per mL; picograms per milliliter; millilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"picogram per millimeter","pg/mm","PG/MM","mass",1e-9,[-1,0,1,0,0,0,0],"pg/mm",null,!1,"M",null,1,!1,!1,0,"pg per mm; picogram/millimeter; picogram/millimetre; picograms per millimeter; millimetre","LOINC","Lineic Mass","Clinical","",null,null,null,null,!1],[!1,"picokatal","pkat","PKAT","catalytic activity",60221367e4,[0,-1,0,0,0,0,0],"pkat","chemical",!0,null,null,1,!1,!1,1,"pkats; picokatals","LOINC","CAct","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"picoliter","pL","PL","volume",1e-15,[3,0,0,0,0,0,0],"pL","iso1000",!0,null,null,1,!1,!1,0,"picoliters; picolitres","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"picometer","pm","PM","length",1e-12,[1,0,0,0,0,0,0],"pm",null,!1,"L",null,1,!1,!1,0,"picometers; picometres","LOINC","Len","Clinical","",null,null,null,null,!1],[!1,"picomole","pmol","PMOL","amount of substance",60221367e4,[0,0,0,0,0,0,0],"pmol","si",!0,null,null,1,!1,!1,1,"picomoles; pmols","LOINC","Sub","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per 24 hour","pmol/(24.h)","PMOL/(24.HR)","amount of substance",6970065625e-3,[0,-1,0,0,0,0,0],"pmol/h","si",!0,null,null,1,!1,!1,1,"pmol/24hrs; pmol/24 hrs; pmol per 24 hrs; 24hrs; days; dy; picomoles per 24 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per day","pmol/d","PMOL/D","amount of substance",6970065625e-3,[0,-1,0,0,0,0,0],"pmol/d","si",!0,null,null,1,!1,!1,1,"pmol/dy; pmol per day; 24 hours; 24hrs; 24 hrs; picomoles","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per deciliter","pmol/dL","PMOL/DL","amount of substance",60221367e8,[-3,0,0,0,0,0,0],"pmol/dL","si",!0,null,null,1,!1,!1,1,"pmol per dL; picomoles per deciliter; decilitre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per gram","pmol/g","PMOL/G","amount of substance",60221367e4,[0,0,-1,0,0,0,0],"pmol/g","si",!0,null,null,1,!1,!1,1,"pmol per gm; picomoles per gram; picomole/gram","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per hour per milliliter ","pmol/h/mL","(PMOL/HR)/ML","amount of substance",167281575e6,[-3,-1,0,0,0,0,0],"(pmol/h)/mL","si",!0,null,null,1,!1,!1,1,"pmol/hrs/mL; pmol per hrs per mL; picomoles per hour per milliliter; millilitre; micro enzyme units per volume; enzymatic activity; enzyme activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. ","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per liter","pmol/L","PMOL/L","amount of substance",60221367e7,[-3,0,0,0,0,0,0],"pmol/L","si",!0,null,null,1,!1,!1,1,"picomole/liter; pmol per L; picomoles; litre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per minute","pmol/min","PMOL/MIN","amount of substance",10036894500,[0,-1,0,0,0,0,0],"pmol/min","si",!0,null,null,1,!1,!1,1,"picomole/minute; pmol per min; picomoles per minute; micro enzyme units; enzymatic activity; enzyme activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. pmol/min = uU (micro enzyme unit)","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per milliliter","pmol/mL","PMOL/ML","amount of substance",60221367e10,[-3,0,0,0,0,0,0],"pmol/mL","si",!0,null,null,1,!1,!1,1,"picomole/milliliter; picomole/millilitre; pmol per mL; picomoles; millilitre; picomols; pmols","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per micromole","pmol/umol","PMOL/UMOL","amount of substance",1e-6,[0,0,0,0,0,0,0],"pmol/\u03BCmol","si",!0,null,null,1,!1,!1,0,"pmol/mcgmol; picomole/micromole; pmol per umol; pmol per mcgmol; picomoles ","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picosecond","ps","PS","time",1e-12,[0,1,0,0,0,0,0],"ps",null,!1,"T",null,1,!1,!1,0,"picoseconds; psec","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"picotesla","pT","PT","magnetic flux density",1e-9,[0,-1,1,0,0,-1,0],"pT","si",!0,null,null,1,!1,!1,0,"picoteslas","LOINC","","Clinical","SI unit of magnetic field strength for magnetic field B","Wb/m2","WB/M2","1",1,!1],[!1,"enzyme unit per 12 hour","U/(12.h)","U/(12.HR)","catalytic activity",23233552083333334e-5,[0,-2,0,0,0,0,0],"U/h","chemical",!0,null,null,1,!1,!1,1,"U/12hrs; U/ 12hrs; U per 12 hrs; 12hrs; enzyme units per 12 hours; enzyme activity; enzymatic activity per time; umol per min per 12 hours; micromoles per minute per 12 hours; umol/min/12hr","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per 2 hour","U/(2.h)","U/(2.HR)","catalytic activity",1394013125e3,[0,-2,0,0,0,0,0],"U/h","chemical",!0,null,null,1,!1,!1,1,"U/2hrs; U/ 2hrs; U per 2 hrs; 2hrs; enzyme units per 2 hours; enzyme activity; enzymatic activity per time; umol per minute per 2 hours; micromoles per minute; umol/min/2hr; umol per min per 2hr","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per 24 hour","U/(24.h)","U/(24.HR)","catalytic activity",11616776041666667e-5,[0,-2,0,0,0,0,0],"U/h","chemical",!0,null,null,1,!1,!1,1,"U/24hrs; U/ 24hrs; U per 24 hrs; 24hrs; enzyme units per 24 hours; enzyme activity; enzymatic activity per time; micromoles per minute per 24 hours; umol/min/24hr; umol per min per 24hr","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per 10","U/10","U/10","catalytic activity",100368945e7,[0,-1,0,0,0,0,0],"U","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/10; U per 10; enzyme units per 10; enzymatic activity; enzyme activity; micromoles per minute; umol/min/10","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per 10 billion","U/10*10","U/(10*10)","catalytic activity",100368945e-2,[0,-1,0,0,0,0,0],"U/(1010)","chemical",!0,null,null,1,!1,!1,1,"U per 10*10; enzyme units per 10*10; U per 10 billion; enzyme units; enzymatic activity; micromoles per minute per 10 billion; umol/min/10*10","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per trillion","U/10*12","U/(10*12)","catalytic activity",10036.8945,[0,-1,0,0,0,0,0],"U/(1012)","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/10*12; U per 10*12; enzyme units per 10*12; enzyme units per trillion; enzymatic activity; micromoles per minute per trillion; umol/min/10*12; umol per min per 10*12","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per million","U/10*6","U/(10*6)","catalytic activity",10036894500,[0,-1,0,0,0,0,0],"U/(106)","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/10*6; U per 10*6; enzyme units per 10*6; enzyme units; enzymatic activity per volume; micromoles per minute per million; umol/min/10*6; umol per min per 10*6","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per billion","U/10*9","U/(10*9)","catalytic activity",100368945e-1,[0,-1,0,0,0,0,0],"U/(109)","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/10*9; U per 10*9; enzyme units per 10*9; enzymatic activity per volume; micromoles per minute per billion; umol/min/10*9; umol per min per 10*9","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per day","U/d","U/D","catalytic activity",11616776041666667e-5,[0,-2,0,0,0,0,0],"U/d","chemical",!0,null,null,1,!1,!1,1,"U/dy; enzyme units per day; enzyme units; enzyme activity; enzymatic activity per time; micromoles per minute per day; umol/min/day; umol per min per day","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per deciliter","U/dL","U/DL","catalytic activity",100368945e12,[-3,-1,0,0,0,0,0],"U/dL","chemical",!0,null,null,1,!1,!1,1,"U per dL; enzyme units per deciliter; decilitre; micromoles per minute per deciliter; umol/min/dL; umol per min per dL","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per gram","U/g","U/G","catalytic activity",100368945e8,[0,-1,-1,0,0,0,0],"U/g","chemical",!0,null,null,1,!1,!1,1,"U/gm; U per gm; enzyme units per gram; micromoles per minute per gram; umol/min/g; umol per min per g","LOINC","CCnt","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per hour","U/h","U/HR","catalytic activity",278802625e4,[0,-2,0,0,0,0,0],"U/h","chemical",!0,null,null,1,!1,!1,1,"U/hr; U per hr; enzyme units per hour; micromoles per minute per hour; umol/min/hr; umol per min per hr","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per liter","U/L","U/L","catalytic activity",100368945e11,[-3,-1,0,0,0,0,0],"U/L","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/liter; enzyme unit/litre; U per L; enzyme units per liter; enzyme unit per litre; micromoles per minute per liter; umol/min/L; umol per min per L","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per minute","U/min","U/MIN","catalytic activity",167281575e6,[0,-2,0,0,0,0,0],"U/min","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/minute; U per min; enzyme units; umol/min/min; micromoles per minute per minute; micromoles per min per min; umol","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per milliliter","U/mL","U/ML","catalytic activity",100368945e14,[-3,-1,0,0,0,0,0],"U/mL","chemical",!0,null,null,1,!1,!1,1,"U per mL; enzyme units per milliliter; millilitre; micromoles per minute per milliliter; umol/min/mL; umol per min per mL","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per second","U/s","U/S","catalytic activity",100368945e8,[0,-2,0,0,0,0,0],"U/s","chemical",!0,null,null,1,!1,!1,1,"U/sec; U per second; enzyme units per second; micromoles per minute per second; umol/min/sec; umol per min per sec","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"micro international unit","u[IU]","U[IU]","arbitrary",1e-6,[0,0,0,0,0,0,0],"\u03BCi.U.","chemical",!0,null,null,1,!1,!0,0,"uIU; u IU; microinternational units","LOINC","Arb","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"micro international unit per liter","u[IU]/L","U[IU]/L","arbitrary",.001,[-3,0,0,0,0,0,0],"(\u03BCi.U.)/L","chemical",!0,null,null,1,!1,!0,0,"uIU/L; u IU/L; uIU per L; microinternational units per liter; litre; ","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"micro international unit per milliliter","u[IU]/mL","U[IU]/ML","arbitrary",1,[-3,0,0,0,0,0,0],"(\u03BCi.U.)/mL","chemical",!0,null,null,1,!1,!0,0,"uIU/mL; u IU/mL; uIU per mL; microinternational units per milliliter; millilitre","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"microequivalent","ueq","UEQ","amount of substance",60221367e10,[0,0,0,0,0,0,0],"\u03BCeq","chemical",!0,null,null,1,!1,!1,1,"microequivalents; 10^-6 equivalents; 10-6 equivalents","LOINC","Sub","Clinical","","mol","MOL","1",1,!1],[!1,"microequivalent per liter","ueq/L","UEQ/L","amount of substance",60221367e13,[-3,0,0,0,0,0,0],"\u03BCeq/L","chemical",!0,null,null,1,!1,!1,1,"ueq per liter; litre; microequivalents","LOINC","MCnc","Clinical","","mol","MOL","1",1,!1],[!1,"microequivalent per milliliter","ueq/mL","UEQ/ML","amount of substance",60221367000000003e7,[-3,0,0,0,0,0,0],"\u03BCeq/mL","chemical",!0,null,null,1,!1,!1,1,"ueq per milliliter; millilitre; microequivalents","LOINC","MCnc","Clinical","","mol","MOL","1",1,!1],[!1,"microgram","ug","UG","mass",1e-6,[0,0,1,0,0,0,0],"\u03BCg",null,!1,"M",null,1,!1,!1,0,"mcg; micrograms; 10^-6 grams; 10-6 grams","LOINC","Mass","Clinical","",null,null,null,null,!1],[!1,"microgram per 100 gram","ug/(100.g)","UG/(100.G)","mass",1e-8,[0,0,0,0,0,0,0],"\u03BCg/g",null,!1,"M",null,1,!1,!1,0,"ug/100gm; ug/100 gm; mcg; ug per 100g; 100 gm; mcg per 100g; micrograms per 100 grams","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"microgram per 24 hour","ug/(24.h)","UG/(24.HR)","mass",11574074074074074e-27,[0,-1,1,0,0,0,0],"\u03BCg/h",null,!1,"M",null,1,!1,!1,0,"ug/24hrs; ug/24 hrs; mcg/24hrs; ug per 24hrs; mcg per 24hrs; 24 hrs; micrograms per 24 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"microgram per 8 hour","ug/(8.h)","UG/(8.HR)","mass",3472222222222222e-26,[0,-1,1,0,0,0,0],"\u03BCg/h",null,!1,"M",null,1,!1,!1,0,"ug/8hrs; ug/8 hrs; mcg/8hrs; ug per 8hrs; mcg per 8hrs; 8 hrs; micrograms per 8 hours; shift","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"microgram per square foot (international)","ug/[sft_i]","UG/[SFT_I]","mass",10763910416709721e-21,[-2,0,1,0,0,0,0],"\u03BCg",null,!1,"M",null,1,!1,!1,0,"ug/sft; ug/ft2; ug/ft^2; ug/sq. ft; micrograms; sq. foot; foot squared","LOINC","ArMass","Clinical","",null,null,null,null,!1],[!1,"microgram per day","ug/d","UG/D","mass",11574074074074074e-27,[0,-1,1,0,0,0,0],"\u03BCg/d",null,!1,"M",null,1,!1,!1,0,"ug/dy; mcg/dy; ug per day; mcg; micrograms per day","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"microgram per deciliter","ug/dL","UG/DL","mass",.009999999999999998,[-3,0,1,0,0,0,0],"\u03BCg/dL",null,!1,"M",null,1,!1,!1,0,"ug per dL; mcg/dl; mcg per dl; micrograms per deciliter; decilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"microgram per gram","ug/g","UG/G","mass",1e-6,[0,0,0,0,0,0,0],"\u03BCg/g",null,!1,"M",null,1,!1,!1,0,"ug per gm; mcg/gm; mcg per g; micrograms per gram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"microgram per hour","ug/h","UG/HR","mass",27777777777777777e-26,[0,-1,1,0,0,0,0],"\u03BCg/h",null,!1,"M",null,1,!1,!1,0,"ug/hr; mcg/hr; mcg per hr; ug per hr; ug per hour; micrograms","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"microgram per kilogram","ug/kg","UG/KG","mass",9999999999999999e-25,[0,0,0,0,0,0,0],"\u03BCg/kg",null,!1,"M",null,1,!1,!1,0,"ug per kg; mcg/kg; mcg per kg; micrograms per kilogram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"microgram per kilogram per 8 hour","ug/kg/(8.h)","(UG/KG)/(8.HR)","mass",3472222222222222e-29,[0,-1,0,0,0,0,0],"(\u03BCg/kg)/h",null,!1,"M",null,1,!1,!1,0,"ug/kg/8hrs; mcg/kg/8hrs; ug/kg/8 hrs; mcg/kg/8 hrs; ug per kg per 8hrs; 8 hrs; mcg per kg per 8hrs; micrograms per kilograms per 8 hours; shift","LOINC","","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"microgram per kilogram per day","ug/kg/d","(UG/KG)/D","mass",11574074074074072e-30,[0,-1,0,0,0,0,0],"(\u03BCg/kg)/d",null,!1,"M",null,1,!1,!1,0,"ug/(kg.d); ug/kg/dy; mcg/kg/day; ug per kg per dy; 24 hours; 24hrs; mcg; kilograms; microgram per kilogram and day","LOINC","","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"microgram per kilogram per hour","ug/kg/h","(UG/KG)/HR","mass",27777777777777774e-29,[0,-1,0,0,0,0,0],"(\u03BCg/kg)/h",null,!1,"M",null,1,!1,!1,0,"ug/(kg.h); ug/kg/hr; mcg/kg/hr; ug per kg per hr; mcg per kg per hr; kilograms","LOINC","","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"microgram per kilogram per minute","ug/kg/min","(UG/KG)/MIN","mass",16666666666666664e-27,[0,-1,0,0,0,0,0],"(\u03BCg/kg)/min",null,!1,"M",null,1,!1,!1,0,"ug/kg/min; ug/kg/min; mcg/kg/min; ug per kg per min; mcg; micrograms per kilograms per minute ","LOINC","","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"microgram per liter","ug/L","UG/L","mass",.001,[-3,0,1,0,0,0,0],"\u03BCg/L",null,!1,"M",null,1,!1,!1,0,"mcg/L; ug per L; mcg; micrograms per liter; litre ","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"microgram per liter per 24 hour","ug/L/(24.h)","(UG/L)/(24.HR)","mass",11574074074074074e-24,[-3,-1,1,0,0,0,0],"(\u03BCg/L)/h",null,!1,"M",null,1,!1,!1,0,"ug/L/24hrs; ug/L/24 hrs; mcg/L/24hrs; ug per L per 24hrs; 24 hrs; day; dy mcg; micrograms per liters per 24 hours; litres","LOINC","","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"microgram per square meter","ug/m2","UG/M2","mass",1e-6,[-2,0,1,0,0,0,0],"\u03BCg/(m2)",null,!1,"M",null,1,!1,!1,0,"ug/m^2; ug/sq. m; mcg/m2; mcg/m^2; mcg/sq. m; ug per m2; m^2; sq. meter; mcg; micrograms per square meter; meter squared; metre","LOINC","ArMass","Clinical","unit used to measure mass dose per patient body surface area",null,null,null,null,!1],[!1,"microgram per cubic meter","ug/m3","UG/M3","mass",1e-6,[-3,0,1,0,0,0,0],"\u03BCg/(m3)",null,!1,"M",null,1,!1,!1,0,"ug/m^3; ug/cu. m; mcg/m3; mcg/m^3; mcg/cu. m; ug per m3; ug per m^3; ug per cu. m; mcg; micrograms per cubic meter; meter cubed; metre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"microgram per milligram","ug/mg","UG/MG","mass",.001,[0,0,0,0,0,0,0],"\u03BCg/mg",null,!1,"M",null,1,!1,!1,0,"ug per mg; mcg/mg; mcg per mg; micromilligrams per milligram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"microgram per minute","ug/min","UG/MIN","mass",16666666666666667e-24,[0,-1,1,0,0,0,0],"\u03BCg/min",null,!1,"M",null,1,!1,!1,0,"ug per min; mcg/min; mcg per min; microminutes per minute","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"microgram per milliliter","ug/mL","UG/ML","mass",1,[-3,0,1,0,0,0,0],"\u03BCg/mL",null,!1,"M",null,1,!1,!1,0,"ug per mL; mcg/mL; mcg per mL; micrograms per milliliter; millilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"microgram per millimole","ug/mmol","UG/MMOL","mass",1660540186674939e-42,[0,0,1,0,0,0,0],"\u03BCg/mmol",null,!1,"M",null,1,!1,!1,-1,"ug per mmol; mcg/mmol; mcg per mmol; micrograms per millimole","LOINC","Ratio","Clinical","",null,null,null,null,!1],[!1,"microgram per nanogram","ug/ng","UG/NG","mass",999.9999999999999,[0,0,0,0,0,0,0],"\u03BCg/ng",null,!1,"M",null,1,!1,!1,0,"ug per ng; mcg/ng; mcg per ng; micrograms per nanogram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"microkatal","ukat","UKAT","catalytic activity",60221367e10,[0,-1,0,0,0,0,0],"\u03BCkat","chemical",!0,null,null,1,!1,!1,1,"microkatals; ukats","LOINC","CAct","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"microliter","uL","UL","volume",1e-9,[3,0,0,0,0,0,0],"\u03BCL","iso1000",!0,null,null,1,!1,!1,0,"microliters; microlitres; mcl","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"microliter per 2 hour","uL/(2.h)","UL/(2.HR)","volume",1388888888888889e-28,[3,-1,0,0,0,0,0],"\u03BCL/h","iso1000",!0,null,null,1,!1,!1,0,"uL/2hrs; uL/2 hrs; mcg/2hr; mcg per 2hr; uL per 2hr; uL per 2 hrs; microliters per 2 hours; microlitres ","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"microliter per hour","uL/h","UL/HR","volume",2777777777777778e-28,[3,-1,0,0,0,0,0],"\u03BCL/h","iso1000",!0,null,null,1,!1,!1,0,"uL/hr; mcg/hr; mcg per hr; uL per hr; microliters per hour; microlitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"micrometer","um","UM","length",1e-6,[1,0,0,0,0,0,0],"\u03BCm",null,!1,"L",null,1,!1,!1,0,"micrometers; micrometres; \u03BCm; microns","LOINC","Len","Clinical","Unit of length that is usually used in tests related to the eye",null,null,null,null,!1],[!1,"microns per second","um/s","UM/S","length",1e-6,[1,-1,0,0,0,0,0],"\u03BCm/s",null,!1,"L",null,1,!1,!1,0,"um/sec; micron/second; microns/second; um per sec; micrometers per second; micrometres","LOINC","Vel","Clinical","",null,null,null,null,!1],[!1,"micromole","umol","UMOL","amount of substance",60221367e10,[0,0,0,0,0,0,0],"\u03BCmol","si",!0,null,null,1,!1,!1,1,"micromoles; umols","LOINC","Sub","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per 2 hour","umol/(2.h)","UMOL/(2.HR)","amount of substance",836407875e5,[0,-1,0,0,0,0,0],"\u03BCmol/h","si",!0,null,null,1,!1,!1,1,"umol/2hrs; umol/2 hrs; umol per 2 hrs; 2hrs; micromoles per 2 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per 24 hour","umol/(24.h)","UMOL/(24.HR)","amount of substance",6970065625e3,[0,-1,0,0,0,0,0],"\u03BCmol/h","si",!0,null,null,1,!1,!1,1,"umol/24hrs; umol/24 hrs; umol per 24 hrs; per 24hrs; micromoles per 24 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per 8 hour","umol/(8.h)","UMOL/(8.HR)","amount of substance",20910196875e3,[0,-1,0,0,0,0,0],"\u03BCmol/h","si",!0,null,null,1,!1,!1,1,"umol/8hr; umol/8 hr; umol per 8 hr; umol per 8hr; umols per 8hr; umol per 8 hours; micromoles per 8 hours; shift","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per day","umol/d","UMOL/D","amount of substance",6970065625e3,[0,-1,0,0,0,0,0],"\u03BCmol/d","si",!0,null,null,1,!1,!1,1,"umol/day; umol per day; umols per day; umol per days; micromoles per days; umol/24hr; umol/24 hr; umol per 24 hr; umol per 24hr; umols per 24hr; umol per 24 hours; micromoles per 24 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per deciliter","umol/dL","UMOL/DL","amount of substance",60221367e14,[-3,0,0,0,0,0,0],"\u03BCmol/dL","si",!0,null,null,1,!1,!1,1,"micromole/deciliter; micromole/decilitre; umol per dL; micromoles per deciliters; micromole per decilitres","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per gram","umol/g","UMOL/G","amount of substance",60221367e10,[0,0,-1,0,0,0,0],"\u03BCmol/g","si",!0,null,null,1,!1,!1,1,"micromole/gram; umol per g; micromoles per gram","LOINC","SCnt; Ratio","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per hour","umol/h","UMOL/HR","amount of substance",167281575e6,[0,-1,0,0,0,0,0],"\u03BCmol/h","si",!0,null,null,1,!1,!1,1,"umol/hr; umol per hr; umol per hour; micromoles per hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per kilogram","umol/kg","UMOL/KG","amount of substance",60221367e7,[0,0,-1,0,0,0,0],"\u03BCmol/kg","si",!0,null,null,1,!1,!1,1,"umol per kg; micromoles per kilogram","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per liter","umol/L","UMOL/L","amount of substance",60221367e13,[-3,0,0,0,0,0,0],"\u03BCmol/L","si",!0,null,null,1,!1,!1,1,"micromole/liter; micromole/litre; umol per liter; micromoles per liter; litre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per liter per hour","umol/L/h","(UMOL/L)/HR","amount of substance",167281575e9,[-3,-1,0,0,0,0,0],"(\u03BCmol/L)/h","si",!0,null,null,1,!1,!1,1,"umol/liter/hr; umol/litre/hr; umol per L per hr; umol per liter per hour; micromoles per liters per hour; litre","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min; umol/L/h is a derived unit of enzyme units","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per milligram","umol/mg","UMOL/MG","amount of substance",60221367e13,[0,0,-1,0,0,0,0],"\u03BCmol/mg","si",!0,null,null,1,!1,!1,1,"micromole/milligram; umol per mg; micromoles per milligram","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per minute","umol/min","UMOL/MIN","amount of substance",100368945e8,[0,-1,0,0,0,0,0],"\u03BCmol/min","si",!0,null,null,1,!1,!1,1,"micromole/minute; umol per min; micromoles per minute; enzyme units","LOINC","CAct","Clinical","unit for the enzyme unit U = umol/min","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per minute per gram","umol/min/g","(UMOL/MIN)/G","amount of substance",100368945e8,[0,-1,-1,0,0,0,0],"(\u03BCmol/min)/g","si",!0,null,null,1,!1,!1,1,"umol/min/gm; umol per min per gm; micromoles per minutes per gram; U/g; enzyme units","LOINC","CCnt","Clinical","unit for the enzyme unit U = umol/min. umol/min/g = U/g","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per minute per liter","umol/min/L","(UMOL/MIN)/L","amount of substance",100368945e11,[-3,-1,0,0,0,0,0],"(\u03BCmol/min)/L","si",!0,null,null,1,!1,!1,1,"umol/min/liter; umol/minute/liter; micromoles per minutes per liter; litre; enzyme units; U/L","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. umol/min/L = U/L","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per milliliter","umol/mL","UMOL/ML","amount of substance",60221367000000003e7,[-3,0,0,0,0,0,0],"\u03BCmol/mL","si",!0,null,null,1,!1,!1,1,"umol per mL; micromoles per milliliter; millilitre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per milliliter per minute","umol/mL/min","(UMOL/ML)/MIN","amount of substance",100368945e14,[-3,-1,0,0,0,0,0],"(\u03BCmol/mL)/min","si",!0,null,null,1,!1,!1,1,"umol per mL per min; micromoles per milliliters per minute; millilitres","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. umol/mL/min = U/mL","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per millimole","umol/mmol","UMOL/MMOL","amount of substance",.001,[0,0,0,0,0,0,0],"\u03BCmol/mmol","si",!0,null,null,1,!1,!1,0,"umol per mmol; micromoles per millimole","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per mole","umol/mol","UMOL/MOL","amount of substance",1e-6,[0,0,0,0,0,0,0],"\u03BCmol/mol","si",!0,null,null,1,!1,!1,0,"umol per mol; micromoles per mole","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per micromole","umol/umol","UMOL/UMOL","amount of substance",1,[0,0,0,0,0,0,0],"\u03BCmol/\u03BCmol","si",!0,null,null,1,!1,!1,0,"umol per umol; micromoles per micromole","LOINC","Srto; SFr; EntSRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"microOhm","uOhm","UOHM","electric resistance",.001,[2,-1,1,0,0,-2,0],"\u03BC\u03A9","si",!0,null,null,1,!1,!1,0,"microOhms; \xB5\u03A9","LOINC","","Clinical","unit of electric resistance","V/A","V/A","1",1,!1],[!1,"microsecond","us","US","time",1e-6,[0,1,0,0,0,0,0],"\u03BCs",null,!1,"T",null,1,!1,!1,0,"microseconds","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"micro enzyme unit per gram","uU/g","UU/G","catalytic activity",10036894500,[0,-1,-1,0,0,0,0],"\u03BCU/g","chemical",!0,null,null,1,!1,!1,1,"uU per gm; micro enzyme units per gram; micro enzymatic activity per mass; enzyme activity","LOINC","CCnt","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 uU = 1pmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"micro enzyme unit per liter","uU/L","UU/L","catalytic activity",100368945e5,[-3,-1,0,0,0,0,0],"\u03BCU/L","chemical",!0,null,null,1,!1,!1,1,"uU per L; micro enzyme units per liter; litre; enzymatic activity per volume; enzyme activity ","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 uU = 1pmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"micro enzyme unit per milliliter","uU/mL","UU/ML","catalytic activity",100368945e8,[-3,-1,0,0,0,0,0],"\u03BCU/mL","chemical",!0,null,null,1,!1,!1,1,"uU per mL; micro enzyme units per milliliter; millilitre; enzymatic activity per volume; enzyme activity","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 uU = 1pmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"microvolt","uV","UV","electric potential",.001,[2,-2,1,0,0,-1,0],"\u03BCV","si",!0,null,null,1,!1,!1,0,"microvolts","LOINC","Elpot","Clinical","unit of electric potential (voltage)","J/C","J/C","1",1,!1]]}}});var $2=X(Ol=>{"use strict";Object.defineProperty(Ol,"__esModule",{value:!0});Ol.ucumJsonDefs=Ol.UcumJsonDefs=void 0;var M5=T2(),T5=Cy(),E5=Iy(),P2=co(),U2=N2().unpackArray,op=class{loadJsonDefs(){let t=F2();if(t.prefixes=U2(t.prefixes),t.units=U2(t.units),P2.UnitTables.getInstance().unitsCount()===0){let e=T5.PrefixTables.getInstance(),i=t.prefixes,r=i.length;for(let l=0;l{"use strict";Object.defineProperty(lp,"__esModule",{value:!0});lp.UnitString=void 0;var qi=A5(ip());function V2(){if(typeof WeakMap!="function")return null;var n=new WeakMap;return V2=function(){return n},n}function A5(n){if(n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=V2();if(t&&t.has(n))return t.get(n);var e={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)){var s=i?Object.getOwnPropertyDescriptor(n,r):null;s&&(s.get||s.set)?Object.defineProperty(e,r,s):e[r]=n[r]}return e.default=n,t&&t.set(n,e),e}function B2(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}var xi=ha().Ucum,Nl=Iy().Unit,D5=co().UnitTables,R5=Cy().PrefixTables,uo=class n{constructor(){this.utabs_=D5.getInstance(),this.pfxTabs_=R5.getInstance(),this.openEmph_=xi.openEmph_,this.closeEmph_=xi.closeEmph_,this.bracesMsg_="",this.parensFlag_="parens_placeholder",this.pFlagLen_=this.parensFlag_.length,this.braceFlag_="braces_placeholder",this.bFlagLen_=this.braceFlag_.length,this.vcMsgStart_=null,this.vcMsgEnd_=null,this.retMsg_=[],this.parensUnits_=[],this.annotations_=[],this.suggestions=[]}useHTMLInMessages(t){t===void 0||t?(this.openEmph_=xi.openEmphHTML_,this.closeEmph_=xi.closeEmphHTML_):(this.openEmph_=xi.openEmph_,this.closeEmph_=xi.closeEmph_)}useBraceMsgForEachString(t){t===void 0||t?this.bracesMsg_=xi.bracesMsg_:this.bracesMsg_=""}parseString(t,e,i){if(t=t.trim(),t===""||t===null)throw new Error("Please specify a unit expression to be validated.");e==="validate"?(this.vcMsgStart_=xi.valMsgStart_,this.vcMsgEnd_=xi.valMsgEnd_):(this.vcMsgStart_=xi.cnvMsgStart_,this.vcMsgEnd_=xi.cnvMsgEnd_),i===void 0||i===!1?this.suggestions_=null:this.suggestions_=[],this.retMsg_=[],this.parensUnits_=[],this.annotations_=[];let r=t,s=[];if(t=this._getAnnotations(t),this.retMsg_.length>0)s[0]=null,s[1]=null;else{let a=this.retMsg_.length>0,o=null;for(o in xi.specUnits_)for(;t.indexOf(o)!==-1;)t=t.replace(o,xi.specUnits_[o]);if(t.indexOf(" ")>-1)throw new Error("Blank spaces are not allowed in unit expressions.");s=this._parseTheString(t,r);let l=s[0];(qi.isIntegerUnit(l)||typeof l=="number")&&(l=new Nl({csCode_:r,ciCode_:r,magnitude_:l,name_:r}),s[0]=l)}return s[2]=this.retMsg_,this.suggestions_&&this.suggestions_.length>0&&(s[3]=this.suggestions_),s}_parseTheString(t,e){let i=null,r=this.retMsg_.length>0,s=this._processParens(t,e);r=s[2];let a=[];if(!r){t=s[0],e=s[1];let o=this._makeUnitsArray(t,e);if(r=o[2],!r){a=o[0],e=o[1];let l=a.length;for(let c=0;c=0){let d=this._getParensUnit(u,e);r||(r=d[1]),r||(a[c].un=d[0])}else{let d=this._makeUnit(u,e);d[0]===null?r=!0:(a[c].un=d[0],e=d[1])}}}}return r||(a[0]===null||a[0]===" "||a[0].un===void 0||a[0].un===null)&&this.retMsg_.length===0&&(this.retMsg_.push(`Unit string (${e}) did not contain anything that could be used to create a unit, or else something that is not handled yet by this package. Sorry`),r=!0),r||(i=this._performUnitArithmetic(a,e)),[i,e]}_getAnnotations(t){let e=t.indexOf("{");for(;e>=0;){let i=t.indexOf("}");if(i<0)this.retMsg_.push("Missing closing brace for annotation starting at "+this.openEmph_+t.substr(e)+this.closeEmph_),e=-1;else{let r=t.substring(e,i+1);if(!n.VALID_ANNOTATION_REGEX.test(r))this.retMsg_.push(n.INVALID_ANNOTATION_CHAR_MSG+this.openEmph_+r+this.closeEmph_),e=-1;else{let s=this.annotations_.length.toString();t=t.replace(r,this.braceFlag_+s+this.braceFlag_),this.annotations_.push(r),e=t.indexOf("{")}}}if(this.retMsg_.length==0){let i=t.indexOf("}");i>=0&&this.retMsg_.push("Missing opening brace for closing brace found at "+this.openEmph_+t.substring(0,i+1)+this.closeEmph_)}return t}_processParens(t,e){let i=[],r=0,s=!1,a=this.parensUnits_.length,o=0;for(;t!==""&&!s;){let l=0,c=0,u=t.indexOf("(");if(u<0){let d=t.indexOf(")");if(d>=0){let h=`Missing open parenthesis for close parenthesis at ${t.substring(0,d+o)}${this.openEmph_}${t.substr(d,1)}${this.closeEmph_}`;d0&&(i[r++]=t.substr(0,u));let h=0,m=u+1;for(;m0&&(c=t.substr(0,l-1));let u=t.lastIndexOf(this.parensFlag_),d=null;u+this.pFlagLen_=0){let m=this._getAnnoText(c,e);if(m[1]||m[2])throw new Error(`Text found before the parentheses (${c}) included an annotation along with other text for parenthetical unit ${s.csCode_}`);t+=m[0],this.retMsg_.push(`The annotation ${m[0]} before the unit code is invalid. -`+this.vcMsgStart_+t+this.vcMsgEnd_)}else this.suggestions_?i=this._getSuggestions(c)!=="succeeded":(this.retMsg_.push(`${c} preceding the unit code ${t} is invalid. Unable to make a substitution.`),i=!0);if(d)if(d.indexOf(this.braceFlag_)>=0){let m=this._getAnnoText(d,e);if(m[1]||m[2])throw new Error(`Text found after the parentheses (${d}) included an annotation along with other text for parenthetical unit ${s.csCode_}`);t+=m[0]}else if(qi.isNumericString(d)){s=null;let m=`An exponent (${d}) following a parenthesis is invalid as of revision 1.9 of the UCUM Specification.`;t.match(/\d$/)||(t+=d,m+=` - `+this.vcMsgStart_+t+this.vcMsgEnd_),this.retMsg_.push(m),i=!0}else this.suggestions_?i=this._getSuggestions(c)!=="succeeded":(this.retMsg_.push(`Text ${d} following the unit code ${t} is invalid. Unable to make a substitution.`),i=!0);return i||(s?qi.isIntegerUnit(s)?s=new Nl({csCode_:s,magnitude_:s,name_:s}):s.csCode_=t:s=new Nl({csCode_:t,magnitude_:1,name_:t})),[s,i]}_getAnnoText(t,e){let i=t.indexOf(this.braceFlag_),r=i>0?t.substring(0,i):null;i!==0&&(t=t.substr(i));let s=t.indexOf(this.braceFlag_,1),a=s+this.bFlagLen_=this.annotations_.length)throw new Error(`Processing Error - invalid annotation index ${o} found in ${t} that was created from ${e}`);return t=this.annotations_[l],[t,r,a]}_getSuggestions(t){let e=qi.getSynonyms(t);if(e.status==="succeeded"){let i={};i.msg=`${t} is not a valid UCUM code. We found possible units that might be what was meant:`,i.invalidUnit=t;let r=e.units.length;i.units=[];for(let s=0;s=0){let r=this._getUnitWithAnnotation(t,e);i=r[0],i&&(e=r[1])}else{if(t.indexOf("^")>-1){let r=t.replace("^","*");i=this.utabs_.getUnitByCode(r),i&&(i=i.clone(),i.csCode_=i.csCode_.replace("*","^"),i.ciCode_=i.ciCode_.replace("*","^"))}if(!i){let r="["+t+"]";i=this.utabs_.getUnitByCode(r),i&&(i=i.clone(),e=e.replace(t,r),this.retMsg_.push(`${t} is not a valid unit expression, but ${r} is. -`+this.vcMsgStart_+`${r} (${i.name_})${this.vcMsgEnd_}`))}if(!i){let r=this.utabs_.getUnitByName(t);if(r&&r.length>0){i=r[0].clone();let s="The UCUM code for "+t+" is "+i.csCode_+`. -`+this.vcMsgStart_+i.csCode_+this.vcMsgEnd_,a=!1;for(let c=0;c"+C+"",csCode_:w+C,ciCode_:g+C,printSymbol_:v+""+C+""})}}else if(i=null,this.suggestions_){let h=this._getSuggestions(r)}else this.retMsg_.push(`${r} is not a valid UCUM code.`)}}}return[i,e]}_getUnitWithAnnotation(t,e){let i=null,r=this._getAnnoText(t,e),s=r[0],a=r[1],o=r[2];this.bracesMsg_&&this.retMsg_.indexOf(this.bracesMsg_)===-1&&this.retMsg_.push(this.bracesMsg_);let l=this.retMsg_.length;if(!a&&!o){let c="["+s.substring(1,s.length-1)+"]",u=this._makeUnit(c,e);u[0]?(i=t,this.retMsg_.push(`${s} is a valid unit expression, but did you mean ${c} (${u[0].name_})?`)):this.retMsg_.length>l&&this.retMsg_.pop(),i=new Nl({csCode_:s,ciCode_:s,magnitude_:1,name_:s})}else if(a&&!o)if(qi.isIntegerUnit(a))i=a;else{let c=this._makeUnit(a,e);c[0]?(i=c[0],i.csCode_+=s,e=c[1]):this.retMsg_.push(`Unable to find a unit for ${a} that precedes the annotation ${s}.`)}else if(!a&&o)if(qi.isIntegerUnit(o))i=o+s,this.retMsg_.push(`The annotation ${s} before the ``${o} is invalid.\n`+this.vcMsgStart_+i+this.vcMsgEnd_);else{let c=this._makeUnit(o,e);c[0]?(i=c[0],i.csCode_+=s,e=i.csCode_,this.retMsg_.push(`The annotation ${s} before the unit code is invalid. -`+this.vcMsgStart_+i.csCode_+this.vcMsgEnd_)):this.retMsg_.push(`Unable to find a unit for ${a} that follows the annotation ${s}.`)}else this.retMsg_.push(`Unable to find a unit for ${a}${s}${o}. -We are not sure how to interpret text both before and after the annotation. Sorry`);return[i,e]}_performUnitArithmetic(t,e){let i=t[0].un;qi.isIntegerUnit(i)&&(i=new Nl({csCode_:i,ciCode_:i,magnitude_:Number(i),name_:i}));let r=t.length,s=!1;for(let a=1;a{"use strict";Object.defineProperty(up,"__esModule",{value:!0});up.UcumLhcUtils=void 0;var L5=$2(),H2=O5(ip());function j2(){if(typeof WeakMap!="function")return null;var n=new WeakMap;return j2=function(){return n},n}function O5(n){if(n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=j2();if(t&&t.has(n))return t.get(n);var e={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)){var s=i?Object.getOwnPropertyDescriptor(n,r):null;s&&(s.get||s.set)?Object.defineProperty(e,r,s):e[r]=n[r]}return e.default=n,t&&t.set(n,e),e}var N5=ha().Ucum,cp=co().UnitTables,F5=z2().UnitString,ed=class{constructor(){cp.getInstance().unitsCount()===0&&L5.ucumJsonDefs.loadJsonDefs(),this.uStrParser_=F5.getInstance()}useHTMLInMessages(t){t===void 0&&(t=!0),this.uStrParser_.useHTMLInMessages(t)}useBraceMsgForEachString(t){t===void 0&&(t=!0),this.uStrParser_.useBraceMsgForEachString(t)}validateUnitString(t,e,i){e===void 0&&(e=!1),i===void 0&&(i="validate");let r=this.getSpecifiedUnit(t,i,e),s=r.unit,a=s?{ucumCode:r.origString,unit:{code:s.csCode_,name:s.name_,guidance:s.guidance_}}:{ucumCode:null};return a.status=r.status,r.suggestions&&(a.suggestions=r.suggestions),a.msg=r.retMsg,a}convertUnitTo(t,e,i,r,s){r===void 0&&(r=!1),s===void 0&&(s=null);let a={status:"failed",toVal:null,msg:[]};if(t&&(t=t.trim()),(!t||t=="")&&(a.status="error",a.msg.push('No "from" unit expression specified.')),this._checkFromVal(e,a),i&&(i=i.trim()),(!i||i=="")&&(a.status="error",a.msg.push('No "to" unit expression specified.')),a.status!=="error")try{let o=null,l=this.getSpecifiedUnit(t,"convert",r);o=l.unit,l.retMsg&&(a.msg=a.msg.concat(l.retMsg)),l.suggestions&&(a.suggestions={},a.suggestions.from=l.suggestions),o||a.msg.push(`Unable to find a unit for ${t}, so no conversion could be performed.`);let c=null;if(l=this.getSpecifiedUnit(i,"convert",r),c=l.unit,l.retMsg&&(a.msg=a.msg.concat(l.retMsg)),l.suggestions&&(a.suggestions||(a.suggestions={}),a.suggestions.to=l.suggestions),c||a.msg.push(`Unable to find a unit for ${i}, so no conversion could be performed.`),o&&c)try{if(!s)a.toVal=c.convertFrom(e,o);else{if(o.moleExp_!==0&&c.moleExp_!==0)throw new Error("A molecular weight was specified but a mass <-> mole conversion cannot be executed for two mole-based units. No conversion was attempted.");if(o.moleExp_===0&&c.moleExp_===0)throw new Error("A molecular weight was specified but a mass <-> mole conversion cannot be executed when neither unit is mole-based. No conversion was attempted.");if(!o.isMoleMassCommensurable(c))throw new Error(`Sorry. ${t} cannot be converted to ${i}.`);o.moleExp_!==0?a.toVal=o.convertMolToMass(e,c,s):a.toVal=o.convertMassToMol(e,c,s)}a.status="succeeded",a.fromUnit=o,a.toUnit=c}catch(u){a.status="failed",a.msg.push(u.message)}}catch(o){o.message==N5.needMoleWeightMsg_?a.status="failed":a.status="error",a.msg.push(o.message)}return a}convertToBaseUnits(t,e){let i={};if(this._checkFromVal(e,i),!i.status){let r=this.getSpecifiedUnit(t,"validate");i={status:r.status=="valid"?"succeeded":r.status};let s=r.unit;if(i.msg=r.retMsg||[],!s)r.retMsg?.length==0&&i.msg.push("Could not find unit information for "+t);else if(s.isArbitrary_)i.msg.push("Arbitrary units cannot be converted to base units or other units."),i.status="failed";else if(i.status=="succeeded"){let a={},o=s.dim_?.dimVec_,l="1";if(o){let d=cp.getInstance().dimVecIndexToBaseUnit_;for(let h=0,m=o.length;h0&&(e=r.retMsg),!s)e.push(`Could not find unit ${t}.`);else{let a=null,o=s.getProperty("dim_");if(!o)e.push("No commensurable units were found for "+t);else{try{a=o.getProperty("dimVec_")}catch(l){e.push(l.message),l.message==="Dimension does not have requested property(dimVec_)"&&(a=null)}a&&(i=cp.getInstance().getUnitsByDimension(a))}}return[i,e]}};up.UcumLhcUtils=ed;ed.getInstance=function(){return new ed}});var dp=X(ma=>{"use strict";Object.defineProperty(ma,"__esModule",{value:!0});ma.UnitTables=ma.UcumLhcUtils=ma.Ucum=void 0;var P5=ha().Ucum;ma.Ucum=P5;var U5=W2().UcumLhcUtils;ma.UcumLhcUtils=U5;var $5=co().UnitTables;ma.UnitTables=$5});var mp=X((zse,Q2)=>{var hp={};function q2(n){let t=""+ +n,e=/(\d+)(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/.exec(t);if(!e)return 0;let i=e[2],r=e[3];return Math.max(0,(i==="0"?0:(i||"").length)-(r||0))}function G2(n,t){let e=Math.pow(10,t);return Math.round(n*e)/e}var K2=1e-8,Y2=hp.roundToMaxPrecision=function(n){return Math.round(n/K2)*K2};hp.isEquivalent=function(n,t){if(Number.isInteger(n)&&Number.isInteger(t))return n===t;let e=Math.min(q2(n),q2(t));return e===0?Math.round(n)===Math.round(t):G2(n,e)===G2(t,e)};hp.isEqual=function(n,t){return Y2(n)===Y2(t)};Q2.exports=hp});var X2=X((Hse,Z2)=>{var V5=Zu();function B5(n){var t=V5(n),e=t.getFullYear(),i=t.getMonth(),r=new Date(0);return r.setFullYear(e,i+1,0),r.setHours(0,0,0,0),r.getDate()}Z2.exports=B5});var Ry=X((jse,J2)=>{var z5=Zu(),H5=X2();function j5(n,t){var e=z5(n),i=Number(t),r=e.getMonth()+i,s=new Date(0);s.setFullYear(e.getFullYear(),r,1),s.setHours(0,0,0,0);var a=H5(s);return e.setMonth(r,Math.min(a,e.getDate())),e}J2.exports=j5});var tI=X((Wse,eI)=>{var W5=Ry();function q5(n,t){var e=Number(t);return W5(n,e*12)}eI.exports=q5});var Ly=X((qse,iI)=>{var G5=Zu();function K5(n,t){var e=G5(n),i=Number(t);return e.setDate(e.getDate()+i),e}iI.exports=K5});var rI=X((Gse,nI)=>{var Y5=Ly();function Q5(n,t){var e=Number(t),i=e*7;return Y5(n,i)}nI.exports=Q5});var aI=X((Kse,sI)=>{var Z5=Xu(),X5=36e5;function J5(n,t){var e=Number(t);return Z5(n,e*X5)}sI.exports=J5});var lI=X((Yse,oI)=>{var eH=Xu();function tH(n,t){var e=Number(t);return eH(n,e*1e3)}oI.exports=tH});var Br=X((Qse,fI)=>{var iH=by(),Ss=dp().UcumLhcUtils.getInstance(),td=mp(),nH="http://unitsofmeasure.org",cI="[0-9][0-9](\\:[0-9][0-9](\\:[0-9][0-9](\\.[0-9]+)?)?)?(Z|(\\+|-)[0-9][0-9]\\:[0-9][0-9])?",uI=new RegExp("^T?"+cI+"$"),dI=new RegExp("^[0-9][0-9][0-9][0-9](-[0-9][0-9](-[0-9][0-9](T"+cI+")?)?)?Z?$"),rH=new RegExp("^[0-9][0-9][0-9][0-9](-[0-9][0-9](-[0-9][0-9])?)?$"),sH=new RegExp("^[0-9][0-9][0-9][0-9](-[0-9][0-9](-[0-9][0-9](T[0-9][0-9](\\:[0-9][0-9](\\:[0-9][0-9](\\.[0-9]+)?))(Z|(\\+|-)[0-9][0-9]\\:[0-9][0-9]))))$"),nd=class{equals(){return!1}equivalentTo(){return!1}toString(){return this.asStr?this.asStr:super.toString()}toJSON(){return this.toString()}compare(){throw"Comparison not implemented for "+this.constructor.name}plus(){throw"Addition not implemented for "+this.constructor.name}mul(){throw"Multiplication not implemented for "+this.constructor.name}div(){throw"Division not implemented for "+this.constructor.name}},xt=class n extends nd{constructor(t,e){super(),this.asStr=t+" "+e,this.value=t,this.unit=e}equals(t){if(!(t instanceof this.constructor))return!1;let e=n._calendarDuration2Seconds[this.unit],i=n._calendarDuration2Seconds[t.unit];if(!e!=!i&&(e>1||i>1))return null;if(this.unit===t.unit)return td.isEqual(this.value,t.value);let r=this._compareYearsAndMonths(t);if(r)return r.isEqual;let s=n.toUcumQuantity(this.value,this.unit),a=n.toUcumQuantity(t.value,t.unit),o=Ss.convertUnitTo(a.unit,a.value,s.unit);return o.status!=="succeeded"?!1:td.isEqual(s.value,o.toVal)}equivalentTo(t){if(!(t instanceof this.constructor))return!1;if(this.unit===t.unit)return td.isEquivalent(this.value,t.value);let e=n.getEquivalentUcumUnitCode(this.unit),i=n.getEquivalentUcumUnitCode(t.unit),r=Ss.convertUnitTo(i,t.value,e);return r.status!=="succeeded"?!1:td.isEquivalent(this.value,r.toVal)}compare(t){if(this.unit===t.unit)return this.value-t.value;let e=n._calendarDuration2Seconds[this.unit],i=n._calendarDuration2Seconds[t.unit];if(!e!=!i&&(e>1||i>1))return null;let r=n.getEquivalentUcumUnitCode(this.unit),s=n.getEquivalentUcumUnitCode(t.unit),a=Ss.convertUnitTo(s,t.value,r);return a.status!=="succeeded"?null:this.value-a.toVal}plus(t){let e=n._yearMonthConversionFactor[this.unit],i=n._yearMonthConversionFactor[t.unit];if(e&&i)return new n(this.value+t.value*i/e,this.unit);let r=n._calendarDuration2Seconds[this.unit],s=n._calendarDuration2Seconds[t.unit];if(!r!=!s&&(r>1||s>1))return null;let a=r?"s":this.unit.replace(id,""),o=(r||1)*this.value,l=s?"s":t.unit.replace(id,""),c=(s||1)*t.value,u=Ss.convertUnitTo(l,c,a);return u.status!=="succeeded"||u.fromUnit.isSpecial_||u.toUnit.isSpecial_?null:new n(o+u.toVal,a)}mul(t){let e=n._calendarDuration2Seconds[this.unit],i=n._calendarDuration2Seconds[t.unit];if(e>1&&t.unit!=="'1'"||i>1&&this.unit!=="'1'")return null;let r=this.convToUcumUnits(this,e);if(!r)return null;let s=this.convToUcumUnits(t,i);return s?this.unit==="'1'"?new n(this.value*t.value,t.unit):t.unit==="'1'"?new n(this.value*t.value,this.unit):new n(r.value*s.value,`'(${r.unit}).(${s.unit})'`):null}div(t){if(t.value===0)return null;let e=n._calendarDuration2Seconds[this.unit],i=n._calendarDuration2Seconds[t.unit];if(e)if(i){let l=n._yearMonthConversionFactor[this.unit],c=n._yearMonthConversionFactor[t.unit];if(l&&c)return new n(this.value*l/(t.value*c),"'1'")}else{if(t.unit==="'1'")return new n(this.value/t.value,this.unit);if(e>1)return null}else if(i>1)return null;let r=this.convToUcumUnits(this,e);if(!r)return null;let s=this.convToUcumUnits(t,i);if(!s)return null;let a=s.unit==="1"?r.unit:`(${r.unit})/(${s.unit})`,o=Ss.convertToBaseUnits(a,r.value/s.value);return o.status!=="succeeded"?null:new n(o.magnitude,`'${Object.keys(o.unitToExp).map(l=>l+o.unitToExp[l]).join(".")||"1"}'`)}convToUcumUnits(t,e){if(e)return{value:e*t.value,unit:"s"};{let i=t.unit.replace(id,""),r=Ss.convertToBaseUnits(i,t.value);return r.status!=="succeeded"||r.fromUnitIsSpecial?null:{value:r.magnitude,unit:Object.keys(r.unitToExp).map(s=>s+r.unitToExp[s]).join(".")||"1"}}}_compareYearsAndMonths(t){let e=n._yearMonthConversionFactor[this.unit],i=n._yearMonthConversionFactor[t.unit];return e&&i?{isEqual:td.isEqual(this.value*e,t.value*i)}:null}},id=/^'|'$/g;xt.getEquivalentUcumUnitCode=function(n){return xt.mapTimeUnitsToUCUMCode[n]||n.replace(id,"")};xt.toUcumQuantity=function(n,t){let e=xt._calendarDuration2Seconds[t];return e?{value:e*n,unit:"s"}:{value:n,unit:t.replace(id,"")}};xt.convUnitTo=function(n,t,e){let i=xt._yearMonthConversionFactor[n],r=xt._yearMonthConversionFactor[e];if(i&&r)return new xt(i*t/r,e);let s=xt._calendarDuration2Seconds[n],a=xt._calendarDuration2Seconds[e];if(a){if(s)return new xt(s*t/a,e);{let o=Ss.convertUnitTo(n.replace(/^'|'$/g,""),t,"s");if(o.status==="succeeded")return new xt(o.toVal/a,e)}}else{let o=s?Ss.convertUnitTo("s",s*t,e.replace(/^'|'$/g,"")):Ss.convertUnitTo(n.replace(/^'|'$/g,""),t,e.replace(/^'|'$/g,""));if(o.status==="succeeded")return new xt(o.toVal,e)}return null};xt._calendarDuration2Seconds={years:365*24*60*60,months:30*24*60*60,weeks:7*24*60*60,days:24*60*60,hours:60*60,minutes:60,seconds:1,milliseconds:.001,year:365*24*60*60,month:30*24*60*60,week:7*24*60*60,day:24*60*60,hour:60*60,minute:60,second:1,millisecond:.001};xt._yearMonthConversionFactor={years:12,months:1,year:12,month:1};xt.dateTimeArithmeticDurationUnits={years:"year",months:"month",weeks:"week",days:"day",hours:"hour",minutes:"minute",seconds:"second",milliseconds:"millisecond",year:"year",month:"month",week:"week",day:"day",hour:"hour",minute:"minute",second:"second",millisecond:"millisecond","'s'":"second","'ms'":"millisecond"};xt.mapUCUMCodeToTimeUnits={a:"year",mo:"month",wk:"week",d:"day",h:"hour",min:"minute",s:"second",ms:"millisecond"};xt.mapTimeUnitsToUCUMCode=Object.keys(xt.mapUCUMCodeToTimeUnits).reduce(function(n,t){return n[xt.mapUCUMCodeToTimeUnits[t]]=t,n[xt.mapUCUMCodeToTimeUnits[t]+"s"]=t,n},{});var pa=class n extends nd{constructor(t){super(),this.asStr=t}plus(t){let e=t.unit,i=xt.dateTimeArithmeticDurationUnits[e];if(!i)throw new Error("For date/time arithmetic, the unit of the quantity must be one of the following time-based units: "+Object.keys(xt.dateTimeArithmeticDurationUnits));let r=this.constructor,s=r._timeUnitToDatePrecision[i];if(s===void 0)throw new Error("Unsupported unit for +. The unit should be one of "+Object.keys(r._timeUnitToDatePrecision).join(", ")+".");let a=t.value,o=r===rd;if((o?s<2:s<5)&&(a=Math.trunc(a)),this._getPrecision()2?new Gn(a)._getTimeParts():this._getTimeParts(),c=r>2?new Gn(o)._getTimeParts():t._getTimeParts(),u=0;u<=s&&e!==!1;++u)e=l[u]==c[u];e&&(e=void 0)}}return e}equivalentTo(t){var e=t instanceof this.constructor;if(e){var i=this._getPrecision(),r=t._getPrecision();e=i==r,e&&(e=this._getDateObj().getTime()==t._getDateObj().getTime())}return e}compare(t){var e=this._getPrecision(),i=t._getPrecision(),r=e<=i?this._getDateObj().getTime():this._dateAtPrecision(i).getTime(),s=i<=e?t._getDateObj().getTime():t._dateAtPrecision(e).getTime();return e!==i&&r===s?null:r-s}_getPrecision(){return this.precision===void 0&&this._getMatchData(),this.precision}_getMatchData(t,e){if(this.timeMatchData===void 0&&(this.timeMatchData=this.asStr.match(t),this.timeMatchData))for(let i=e;i>=0&&this.precision===void 0;--i)this.timeMatchData[i]&&(this.precision=i);return this.timeMatchData}_getTimeParts(t){var e=[];e=[t[0]];var i=t[4];if(i){let o=e[0];e[0]=o.slice(0,o.length-i.length)}var r=t[1];if(r){let o=e[0];e[0]=o.slice(0,o.length-r.length),e[1]=r;var s=t[2];if(s){e[1]=r.slice(0,r.length-s.length),e[2]=s;var a=t[3];a&&(e[2]=s.slice(0,s.length-a.length),e[3]=a)}}return e}_getDateObj(){if(!this.dateObj){var t=this._getPrecision();this.dateObj=this._dateAtPrecision(t)}return this.dateObj}_createDate(t,e,i,r,s,a,o,l){var c=new Date(t,e,i,r,s,a,o);if(l){var u=c.getTimezoneOffset(),d=0;if(l!="Z"){var h=l.split(":"),m=parseInt(h[0]);d=parseInt(h[1]),m<0&&(d=-d),d+=60*m}c=iH(c,-u-d)}return c}};pa.timeUnitToAddFn={year:tI(),month:Ry(),week:rI(),day:Ly(),hour:aI(),minute:by(),second:lI(),millisecond:Xu()};var Gn=(()=>{class n extends pa{constructor(e){super(e)}compare(e){if(!(e instanceof n))throw"Invalid comparison of a DateTime with something else";return super.compare(e)}_getMatchData(){return super._getMatchData(dI,5)}_getTimeParts(){if(!this.timeParts){let i=this._getMatchData(),r=i[0];this.timeParts=[r];var e=i[1];if(e){this.timeParts[0]=r.slice(0,r.length-e.length),this.timeParts[1]=e;let s=i[2];if(s){this.timeParts[1]=e.slice(0,e.length-s.length),this.timeParts[2]=s;let a=i[3];a&&(this.timeParts[2]=s.slice(0,s.length-a.length),a[0]==="T"&&(i[3]=a.slice(1)),this.timeParts=this.timeParts.concat(super._getTimeParts(i.slice(3))))}}}return this.timeParts}_dateAtPrecision(e){var i=this._getTimeParts(),r=this._getMatchData()[7],s=this._getPrecision(),a=parseInt(i[0]),o=s>0?parseInt(i[1].slice(1))-1:0,l=s>1?parseInt(i[2].slice(1)):1,c=s>2?parseInt(i[3]):0,u=s>3?parseInt(i[4].slice(1)):0,d=s>4?parseInt(i[5].slice(1)):0,h=i.length>6?parseInt(i[6].slice(1)):0,m=this._createDate(a,o,l,c,u,d,h,r);return e0?m.getMonth():0,l=e>1?m.getDate():1,c=e>2?m.getHours():0,u=e>3?m.getMinutes():0,m=new Date(a,o,l,c,u)),m}}return n.checkString=function(t){let e=new n(t);return e._getMatchData()||(e=null),e},n._timeUnitToDatePrecision={year:0,month:1,week:2,day:2,hour:3,minute:4,second:5,millisecond:6},n._datePrecisionToTimeUnit=["year","month","day","hour","minute","second","millisecond"],n})(),rd=(()=>{class n extends pa{constructor(e){e[0]=="T"&&(e=e.slice(1)),super(e)}compare(e){if(!(e instanceof n))throw"Invalid comparison of a time with something else";return super.compare(e)}_dateAtPrecision(e){var i=this._getTimeParts(),r=this._getMatchData()[4],s=this._getPrecision(),a=2010,o=0,l=1,c=parseInt(i[0]),u=s>0?parseInt(i[1].slice(1)):0,d=s>1?parseInt(i[2].slice(1)):0,h=i.length>3?parseInt(i[3].slice(1)):0,m=this._createDate(a,o,l,c,u,d,h,r);return r&&(m.setYear(a),m.setMonth(o),m.setDate(l)),e0?m.getMinutes():0,m=new Date(a,o,l,c,u)),m}_getMatchData(){return super._getMatchData(uI,2)}_getTimeParts(){return this.timeParts||(this.timeParts=super._getTimeParts(this._getMatchData())),this.timeParts}}return n.checkString=function(t){let e=new n(t);return e._getMatchData()||(e=null),e},n._timeUnitToDatePrecision={hour:0,minute:1,second:2,millisecond:3},n._datePrecisionToTimeUnit=["hour","minute","second","millisecond"],n})();function fa(n,t){var e=n;return t===3&&n<100&&(e="0"+n),n<10&&(e="0"+e),e}Gn.isoDateTime=function(n,t){t===void 0&&(t=5);var e=""+n.getFullYear();if(t>0&&(e+="-"+fa(n.getMonth()+1),t>1&&(e+="-"+fa(n.getDate()),t>2&&(e+="T"+Gn.isoTime(n,t-3)))),t>2){var i=n.getTimezoneOffset(),r=i<0?"+":"-";i=Math.abs(i);var s=i%60,a=(i-s)/60;e+=r+fa(a)+":"+fa(s)}return e};Gn.isoTime=function(n,t){t===void 0&&(t=2);let e=""+fa(n.getHours());return t>0&&(e+=":"+fa(n.getMinutes()),t>1&&(e+=":"+fa(n.getSeconds()),n.getMilliseconds()&&(e+="."+fa(n.getMilliseconds(),3)))),e};var Oy=(()=>{class n extends Gn{constructor(e){super(e)}_getMatchData(){return pa.prototype._getMatchData.apply(this,[rH,2])}}return n.checkString=function(t){let e=new n(t);return e._getMatchData()||(e=null),e},n.isoDate=function(t,e){return(e===void 0||e>2)&&(e=2),Gn.isoDateTime(t,e)},n})(),hI=(()=>{class n extends Gn{constructor(e){super(e)}_getMatchData(){return pa.prototype._getMatchData.apply(this,[sH,5])}}return n.checkString=function(t){let e=new n(t);return e._getMatchData()||(e=null),e},n})(),mI=(()=>{class n{constructor(e,i,r,s,a){e?.resourceType&&(r=e.resourceType,a=e.resourceType),this.parentResNode=i||null,this.path=r||null,this.data=e,this._data=s||{},this.fhirNodeDataType=a||null}getTypeInfo(){if(!this.typeInfo){let e;qn.model&&(/^System\.(.*)$/.test(this.fhirNodeDataType)?e=new qn({namespace:qn.System,name:RegExp.$1}):this.fhirNodeDataType&&(e=new qn({namespace:qn.FHIR,name:this.fhirNodeDataType}))),this.typeInfo=e||qn.createByValueInSystemNamespace(this.data)}return this.typeInfo}toJSON(){return JSON.stringify(this.data)}convertData(){if(!this.convertedData){var e=this.data;let i=qn.typeToClassWithCheckString[this.path];if(i)e=i.checkString(e)||e;else if(qn.isType(this.path,"Quantity")&&e?.system===nH&&typeof e.value=="number"&&typeof e.code=="string"){if(e.comparator!==void 0)throw new Error("Cannot convert a FHIR.Quantity that has a comparator");e=new xt(e.value,xt.mapUCUMCodeToTimeUnits[e.code]||"'"+e.code+"'")}this.convertedData=e}return this.convertedData}}return n.makeResNode=function(t,e,i,r,s=null){return t instanceof n?t:new n(t,e,i,r,s)},n})(),Ny=new Set;["Boolean","String","Integer","Decimal","Date","DateTime","Time","Quantity"].forEach(n=>Ny.add(n));var qn=(()=>{class n{constructor({name:e,namespace:i}){this.name=e,this.namespace=i}static model=null;is(e){return e instanceof n&&(!this.namespace||!e.namespace||this.namespace===e.namespace)?n.model&&(!this.namespace||this.namespace===n.FHIR)?n.isType(this.name,e.name):this.name===e.name:!1}toString(){return(this.namespace?this.namespace+".":"")+this.name}isValid(){let e=!1;return this.namespace==="System"?e=Ny.has(this.name):this.namespace==="FHIR"?e=n.model?.availableTypes.has(this.name):this.namespace||(e=Ny.has(this.name)||n.model?.availableTypes.has(this.name)),e}}return n.typeToClassWithCheckString={date:Oy,dateTime:Gn,instant:hI,time:rd},n.isType=function(t,e){do if(t===e)return!0;while(t=n.model?.type2Parent[t]);return!1},n.System="System",n.FHIR="FHIR",n.createByValueInSystemNamespace=function(t){let e=typeof t;return Number.isInteger(t)?e="integer":e==="number"?e="decimal":t instanceof Oy?e="date":t instanceof Gn?e="dateTime":t instanceof rd?e="time":t instanceof xt&&(e="Quantity"),e=e.replace(/^\w/,i=>i.toUpperCase()),new n({namespace:n.System,name:e})},n.fromValue=function(t){return t instanceof mI?t.getTypeInfo():n.createByValueInSystemNamespace(t)},n})();function aH(n){return n.map(t=>qn.fromValue(t))}function oH(n,t){if(n.length===0)return[];if(n.length>1)throw new Error("Expected singleton on left side of 'is', got "+JSON.stringify(n));return qn.fromValue(n[0]).is(t)}function lH(n,t){if(n.length===0)return[];if(n.length>1)throw new Error("Expected singleton on left side of 'as', got "+JSON.stringify(n));return qn.fromValue(n[0]).is(t)?n:[]}fI.exports={FP_Type:nd,FP_TimeBase:pa,FP_Date:Oy,FP_DateTime:Gn,FP_Instant:hI,FP_Time:rd,FP_Quantity:xt,timeRE:uI,dateTimeRE:dI,ResourceNode:mI,TypeInfo:qn,typeFn:aH,isFn:oH,asFn:lH}});var xn=X((Zse,gI)=>{var $t={},cH=Br(),{ResourceNode:Fl}=cH;$t.raiseError=function(n,t){throw t=t?t+": ":"",t+n};$t.assertOnlyOne=function(n,t){n.length!==1&&$t.raiseError("Was expecting only one element but got "+JSON.stringify(n),t)};$t.assertType=function(n,t,e){let i=this.valData(n);if(t.indexOf(typeof i)<0){let r=t.length>1?"one of "+t.join(", "):t[0];$t.raiseError("Found type '"+typeof n+"' but was expecting "+r,e)}return i};$t.isEmpty=function(n){return Array.isArray(n)&&n.length===0};$t.isSome=function(n){return n!=null&&!$t.isEmpty(n)};$t.isTrue=function(n){return n!=null&&(n===!0||n.length===1&&$t.valData(n[0])===!0)};$t.isCapitalized=function(n){return n&&n[0]===n[0].toUpperCase()};$t.flatten=function(n){return n.some(t=>t instanceof Promise)?Promise.all(n).then(t=>pI(t)):pI(n)};function pI(n){return[].concat(...n)}$t.arraify=function(n){return Array.isArray(n)?n:$t.isSome(n)?[n]:[]};$t.resolveAndArraify=function(n){return n instanceof Promise?n.then(t=>$t.arraify(t)):$t.arraify(n)};$t.valData=function(n){return n instanceof Fl?n.data:n};$t.valDataConverted=function(n){return n instanceof Fl&&(n=n.convertData()),n};$t.escapeStringForRegExp=function(n){return n.replace(/[-[\]{}()*+?.,\\/^$|#\s]/g,"\\$&")};$t.pushFn=Function.prototype.apply.bind(Array.prototype.push);$t.makeChildResNodes=function(n,t,e){let i=n.path+"."+t;if(e){let c=e.pathsDefinedElsewhere[i];c&&(i=c)}let r,s,a=e&&e.choiceTypePaths[i];if(a)for(let c of a){let u=t+c;if(r=n.data?.[u],s=n.data?.["_"+u],r!==void 0||s!==void 0){i+=c;break}}else r=n.data?.[t],s=n.data?.["_"+t],r===void 0&&s===void 0&&(r=n._data[t]),t==="extension"&&(i="Extension");let o=null;e&&(o=e.path2Type[i],i=e.path2TypeWithoutElements[i]||i);let l;if($t.isSome(r)||$t.isSome(s))if(Array.isArray(r)){l=r.map((u,d)=>Fl.makeResNode(u,n,i,s&&s[d],o));let c=s?.length||0;for(let u=r.length;uFl.makeResNode(null,n,i,c,o)):l=[Fl.makeResNode(r,n,i,s,o)];else l=[];return l};gI.exports=$t});var _I=X(()=>{var uH=Function.prototype.call.bind(Array.prototype.slice);Number.isInteger=Number.isInteger||function(n){return typeof n=="number"&&isFinite(n)&&Math.floor(n)===n};String.prototype.startsWith||Object.defineProperty(String.prototype,"startsWith",{value:function(n,t){return t=t||0,this.indexOf(n,t)===t}});String.prototype.endsWith||Object.defineProperty(String.prototype,"endsWith",{value:function(n,t){var e=this.toString();(t===void 0||t>e.length)&&(t=e.length),t-=n.length;var i=e.indexOf(n,t);return i!==-1&&i===t}});String.prototype.includes||Object.defineProperty(String.prototype,"includes",{value:function(){return this.indexOf.apply(this,arguments)!==-1}});Object.assign||Object.defineProperty(Object,"assign",{value:function(n){if(n==null)throw new TypeError("Cannot convert undefined or null to object");return uH(arguments,1).reduce(function(t,e){return Object.keys(Object(e)).forEach(function(i){t[i]=e[i]}),t},Object(n))}});typeof btoa>"u"&&(global.btoa=function(n){return new Buffer.from(n,"binary").toString("base64")});typeof atob>"u"&&(global.atob=function(n){return new Buffer.from(n,"base64").toString("binary")})});var Fy=X((eae,vI)=>{vI.exports={reset:function(){this.nowDate=new Date,this.today=null,this.now=null,this.timeOfDay=null,this.localTimezoneOffset=null},today:null,now:null,timeOfDay:null}});var fp=X((tae,bI)=>{var dH=dp().UcumLhcUtils.getInstance(),{roundToMaxPrecision:hH}=mp(),{valDataConverted:mH}=xn(),{FP_Type:fH,FP_Quantity:Py}=Br();function pH(n){return JSON.stringify(Uy(n))}function Uy(n){if(n=mH(n),n===null)return null;if(typeof n=="number")return hH(n);if(n instanceof Date)return n.toISOString();if(n instanceof Py){let t=Py._yearMonthConversionFactor[n.unit];if(t)return"_!yearMonth!_:"+t*n.value;{let e=Py.toUcumQuantity(n.value,n.unit),i=dH.getSpecifiedUnit(e.unit).unit;return"_!"+i.property_+"!_:"+i.magnitude_*e.value}}else{if(n instanceof fH)return n.toString();if(typeof n=="object")return Array.isArray(n)?n.map(Uy):Object.keys(n).sort().reduce((t,e)=>{let i=n[e];return t[e]=Uy(i),t},{})}return n}bI.exports=pH});var Pl=X((iae,AI)=>{var{FP_Type:yI,FP_Quantity:CI}=Br(),wI=xn(),xI=mp(),SI=Array.prototype.slice,kI=Object.keys,pp=function(n){return Object.prototype.toString.call(n)=="[object Arguments]"};function MI(n){return typeof n=="string"||n instanceof String}function TI(n){return!isNaN(parseFloat(n))&&isFinite(n)}function EI(n){return n.toUpperCase().replace(/\s+/," ")}function gp(n,t,e){if(n=wI.valDataConverted(n),t=wI.valDataConverted(t),e||(e={}),n===t)return!0;if(e.fuzzy){if(MI(n)&&MI(t))return EI(n)==EI(t);if(TI(n)&&TI(t))return xI.isEquivalent(n,t)}else if(typeof n=="number"&&typeof t=="number")return xI.isEqual(n,t);if(n instanceof Date&&t instanceof Date)return n.getTime()===t.getTime();if(!n||!t||typeof n!="object"&&typeof t!="object")return n===t;var i=n instanceof yI,r=t instanceof yI;if(i&&r)return e.fuzzy?n.equivalentTo(t):n.equals(t);if(i||r){let s=!1;return typeof n=="number"&&(n=new CI(n,"'1'"),s=!0),typeof t=="number"&&(t=new CI(t,"'1'"),s=!0),s?e.fuzzy?n.equivalentTo(t):n.equals(t):!1}return gH(n,t,e)}function II(n){return n==null}function gH(n,t,e){var i,r;if(II(n)||II(t)||n.prototype!==t.prototype)return!1;if(pp(n)||pp(t))return n=pp(n)?SI.call(n):n,t=pp(t)?SI.call(t):t,gp(n,t,e);try{var s=kI(n),a=kI(t)}catch{return!1}if(s.length!=a.length)return!1;for(s.sort(),a.sort(),i=s.length-1;i>=0;i--)if(s[i]!=a[i])return!1;if(s.length===1)return r=s[0],gp(n[r],t[r],e);for(i=s.length-1;i>=0;i--)if(r=s[i],!gp(n[r],t[r],e))return!1;return typeof n==typeof t}AI.exports={deepEqual:gp,maxCollSizeForDeepEqual:6}});var _p=X((nae,LI)=>{var $y=xn(),{TypeInfo:_H,ResourceNode:vH}=Br(),RI=fp(),{deepEqual:bH,maxCollSizeForDeepEqual:yH}=Pl(),Gi={};Gi.whereMacro=function(n,t){return n!==!1&&!n?[]:$y.flatten(n.map((e,i)=>{this.$index=i;let r=t(e);return r instanceof Promise?r.then(s=>s[0]?e:[]):r[0]?e:[]}))};Gi.extension=function(n,t){return n!==!1&&!n||!t?[]:$y.flatten(n.map((e,i)=>{this.$index=i;let r=e&&(e.data&&e.data.extension||e._data&&e._data.extension);return r?r.filter(s=>s.url===t).map(s=>vH.makeResNode(s,e,"Extension",null,"Extension")):[]}))};Gi.selectMacro=function(n,t){return n!==!1&&!n?[]:$y.flatten(n.map((e,i)=>(this.$index=i,t(e))))};Gi.repeatMacro=function(n,t,e=[],i={}){if(n!==!1&&!n)return[];let r=[].concat(...n.map(s=>t(s)));return r.some(s=>s instanceof Promise)?Promise.all(r).then(s=>(s=[].concat(...s),s.length?Gi.repeatMacro(DI(s,i,e),t,e,i):e)):r.length?Gi.repeatMacro(DI(r,i,e),t,e,i):e};function DI(n,t,e){let i=n.filter(r=>{let s=RI(r),a=!t[s];return a&&(t[s]=!0),a});return e.push.apply(e,i),i}Gi.singleFn=function(n){if(n.length===1)return n;if(n.length===0)return[];throw new Error("Expected single")};Gi.firstFn=function(n){return n[0]};Gi.lastFn=function(n){return n[n.length-1]};Gi.tailFn=function(n){return n.slice(1,n.length)};Gi.takeFn=function(n,t){return n.slice(0,t)};Gi.skipFn=function(n,t){return n.slice(t,n.length)};Gi.ofTypeFn=function(n,t){return n.filter(e=>_H.fromValue(e).is(t))};Gi.distinctFn=function(n){let t=[];if(n.length>0)if(n.length>yH){let e={};for(let i=0,r=n.length;i!bH(e,i))}while(n.length)}return t};LI.exports=Gi});var vp=X((rae,PI)=>{var Ms=xn(),NI=Br(),{FP_Quantity:ks,TypeInfo:CH}=NI,ln={};ln.iifMacro=function(n,t,e,i){let r=t(n);return r instanceof Promise?r.then(s=>OI(n,s,e,i)):OI(n,r,e,i)};function OI(n,t,e,i){return Ms.isTrue(t)?e(n):i?i(n):[]}ln.traceFn=function(n,t,e){let i=e?e(n):null;return i instanceof Promise?i.then(r=>ln.traceFn(n,t,r)):(this.customTraceFn?e?this.customTraceFn(e(n),t??""):this.customTraceFn(n,t??""):e?console.log("TRACE:["+(t||"")+"]",JSON.stringify(e(n),null," ")):console.log("TRACE:["+(t||"")+"]",JSON.stringify(n,null," ")),n)};ln.defineVariable=function(n,t,e){let i=n;if(e&&(i=e(n)),this.definedVars||(this.definedVars={}),t in this.vars||t in this.processedVars)throw new Error("Environment Variable %"+t+" already defined");if(Object.keys(this.definedVars).includes(t))throw new Error("Variable %"+t+" already defined");return this.definedVars[t]=i,n};var wH=/^[+-]?\d+$/;ln.toInteger=function(n){if(n.length!==1)return[];var t=Ms.valData(n[0]);return t===!1?0:t===!0?1:typeof t=="number"?Number.isInteger(t)?t:[]:typeof t=="string"&&wH.test(t)?parseInt(t):[]};var xH=/^((\+|-)?\d+(\.\d+)?)\s*(('[^']+')|([a-zA-Z]+))?$/,Vy={value:1,unit:5,time:6};ln.toQuantity=function(n,t){let e;if(n.length>1)throw new Error("Could not convert to quantity: input collection contains multiple items");if(n.length===1){if(t){let s=ks._calendarDuration2Seconds[this.unit],a=ks._calendarDuration2Seconds[t];if(!s!=!a&&(s>1||a>1))return null;ks.mapTimeUnitsToUCUMCode[t]||(t=`'${t}'`)}var i=Ms.valDataConverted(n[0]);let r;if(typeof i=="number")e=new ks(i,"'1'");else if(i instanceof ks)e=i;else if(typeof i=="boolean")e=new ks(i?1:0,"'1'");else if(typeof i=="string"&&(r=xH.exec(i))){let s=r[Vy.value],a=r[Vy.unit],o=r[Vy.time];(!o||ks.mapTimeUnitsToUCUMCode[o])&&(e=new ks(Number(s),a||o||"'1'"))}e&&t&&e.unit!==t&&(e=ks.convUnitTo(e.unit,e.value,t))}return e||[]};var SH=/^[+-]?\d+(\.\d+)?$/;ln.toDecimal=function(n){if(n.length!==1)return[];var t=Ms.valData(n[0]);return t===!1?0:t===!0?1:typeof t=="number"?t:typeof t=="string"&&SH.test(t)?parseFloat(t):[]};ln.toString=function(n){if(n.length!==1)return[];var t=Ms.valDataConverted(n[0]);return t==null?[]:t.toString()};function By(n){let t=n.slice(3);ln["to"+t]=function(e){var i=[];if(e.length>1)throw Error("to "+t+" called for a collection of length "+e.length);if(e.length===1){var r=Ms.valData(e[0]);if(typeof r=="string"){var s=NI[n].checkString(r);s&&(i=s)}}return i}}By("FP_Date");By("FP_DateTime");By("FP_Time");var kH=["true","t","yes","y","1","1.0"].reduce((n,t)=>(n[t]=!0,n),{}),MH=["false","f","no","n","0","0.0"].reduce((n,t)=>(n[t]=!0,n),{});ln.toBoolean=function(n){if(n.length!==1)return[];let t=Ms.valData(n[0]);switch(typeof t){case"boolean":return t;case"number":if(t===1)return!0;if(t===0)return!1;break;case"string":let e=t.toLowerCase();if(kH[e])return!0;if(MH[e])return!1}return[]};ln.createConvertsToFn=function(n,t){return typeof t=="string"?function(e){return e.length!==1?[]:typeof n(e)===t}:function(e){return e.length!==1?[]:n(e)instanceof t}};var TH={Integer:function(n){if(Number.isInteger(n))return n},Boolean:function(n){return n===!0||n===!1?n:!0},Number:function(n){if(typeof n=="number")return n},String:function(n){if(typeof n=="string")return n},AnySingletonAtRoot:function(n){return n}};ln.singleton=function(n,t){if(n.length>1)throw new Error("Unexpected collection"+JSON.stringify(n)+"; expected singleton of type "+t);if(n.length===0)return[];let e=Ms.valData(n[0]);if(e==null)return[];let i=TH[t];if(i){let r=i(e);if(r!==void 0)return r;throw new Error(`Expected ${t.toLowerCase()}, but got: ${JSON.stringify(n)}`)}throw new Error("Not supported type "+t)};var FI=new Set;["instant","time","date","dateTime","base64Binary","decimal","integer64","boolean","string","code","markdown","id","integer","unsignedInt","positiveInt","uri","oid","uuid","canonical","url","Integer","Decimal","String","Date","DateTime","Time"].forEach(n=>FI.add(n));ln.hasValueFn=function(n){return n.length===1&&Ms.valData(n[0])!=null&&FI.has(CH.fromValue(n[0]).name)};PI.exports=ln});var BI=X((sae,VI)=>{var zr=xn(),{whereMacro:EH,distinctFn:IH}=_p(),AH=vp(),UI=fp(),{deepEqual:DH,maxCollSizeForDeepEqual:RH}=Pl(),cn={};cn.emptyFn=zr.isEmpty;cn.notFn=function(n){let t=AH.singleton(n,"Boolean");return typeof t=="boolean"?!t:[]};cn.existsMacro=function(n,t){if(t){let e=EH.call(this,n,t);return e instanceof Promise?e.then(i=>cn.existsMacro(i)):cn.existsMacro(e)}return!zr.isEmpty(n)};cn.allMacro=function(n,t){let e=[];for(let i=0,r=n.length;ii.some(r=>!zr.isTrue(r))?[!1]:[!0]):[!0]};cn.allTrueFn=function(n){let t=!0;for(let e=0,i=n.length;eRH){let s=t.reduce((a,o)=>(a[UI(o)]=!0,a),{});r=!n.some(a=>!s[UI(a)])}else for(let s=0,a=n.length;sDH(o,zr.valData(l)))}return r}cn.subsetOfFn=function(n,t){return[$I(n,t)]};cn.supersetOfFn=function(n,t){return[$I(t,n)]};cn.isDistinctFn=function(n){return[n.length===IH(n).length]};VI.exports=cn});var zy=X((aae,HI)=>{var{FP_Quantity:si,FP_Type:sd}=Br(),Hr=xn(),hi={};function Ts(n,t){let e;if(zI(n))e=[];else{if(n.length!==1)throw new Error("Unexpected collection"+JSON.stringify(n)+"; expected singleton of type number");{let i=Hr.valData(n[0]);if(i==null)e=[];else if(typeof i=="number")e=t(i);else throw new Error("Expected number, but got "+JSON.stringify(i))}}return e}function zI(n){return typeof n=="number"?!1:n.length===0}hi.amp=function(n,t){return(n||"")+(t||"")};hi.plus=function(n,t){let e;if(n.length===1&&t.length===1){let i=Hr.valDataConverted(n[0]),r=Hr.valDataConverted(t[0]);i==null||r==null?e=[]:typeof i=="string"&&typeof r=="string"?e=i+r:typeof i=="number"?typeof r=="number"?e=i+r:r instanceof si&&(e=new si(i,"'1'").plus(r)):i instanceof sd&&(r instanceof si?e=i.plus(r):r instanceof sd?e=r.plus(i):typeof r=="number"&&(e=i.plus(new si(r,"'1'"))))}if(e===void 0)throw new Error("Cannot "+JSON.stringify(n)+" + "+JSON.stringify(t));return e};hi.minus=function(n,t){if(n.length===1&&t.length===1){let e=Hr.valDataConverted(n[0]),i=Hr.valDataConverted(t[0]);if(e==null||i==null)return[];if(typeof e=="number"){if(typeof i=="number")return e-i;if(i instanceof si)return new si(e,"'1'").plus(new si(-i.value,i.unit))}if(e instanceof sd){if(i instanceof si)return e.plus(new si(-i.value,i.unit));if(typeof i=="number")return e.plus(new si(-i,"'1'"))}}throw new Error("Cannot "+JSON.stringify(n)+" - "+JSON.stringify(t))};hi.mul=function(n,t){if(n.length===1&&t.length===1){let e=Hr.valDataConverted(n[0]),i=Hr.valDataConverted(t[0]);if(e==null||i==null)return[];if(typeof e=="number"){if(typeof i=="number")return e*i;if(i instanceof si)return new si(e,"'1'").mul(i)}if(e instanceof sd){if(i instanceof si)return e.mul(i);if(typeof i=="number")return e.mul(new si(i,"'1'"))}}throw new Error("Cannot "+JSON.stringify(n)+" * "+JSON.stringify(t))};hi.div=function(n,t){if(n.length===1&&t.length===1){let e=Hr.valDataConverted(n[0]),i=Hr.valDataConverted(t[0]);if(e==null||i==null)return[];if(typeof e=="number"){if(typeof i=="number")return i===0?[]:e/i;if(i instanceof si)return new si(e,"'1'").div(i)}if(e instanceof sd){if(i instanceof si)return e.div(i);if(typeof i=="number")return e.div(new si(i,"'1'"))}}throw new Error("Cannot "+JSON.stringify(n)+" / "+JSON.stringify(t))};hi.intdiv=function(n,t){return t===0?[]:Math.floor(n/t)};hi.mod=function(n,t){return t===0?[]:n%t};hi.abs=function(n){let t;if(zI(n))t=[];else{if(n.length!==1)throw new Error("Unexpected collection"+JSON.stringify(n)+"; expected singleton of type number or Quantity");var e=Hr.valData(n[0]);if(e==null)t=[];else if(typeof e=="number")t=Math.abs(e);else if(e instanceof si)t=new si(Math.abs(e.value),e.unit);else throw new Error("Expected number or Quantity, but got "+JSON.stringify(e||n))}return t};hi.ceiling=function(n){return Ts(n,Math.ceil)};hi.exp=function(n){return Ts(n,Math.exp)};hi.floor=function(n){return Ts(n,Math.floor)};hi.ln=function(n){return Ts(n,Math.log)};hi.log=function(n,t){return Ts(n,e=>Math.log(e)/Math.log(t))};hi.power=function(n,t){return Ts(n,e=>{let i=Math.pow(e,t);return isNaN(i)?[]:i})};hi.round=function(n,t){return Ts(n,e=>{if(t===void 0)return Math.round(e);{let i=Math.pow(10,t);return Math.round(e*i)/i}})};hi.sqrt=function(n){return Ts(n,t=>t<0?[]:Math.sqrt(t))};hi.truncate=function(n){return Ts(n,Math.trunc)};HI.exports=hi});var Hy=X((oae,KI)=>{var fr=xn(),{deepEqual:jI}=Pl(),WI=Br(),yp=WI.FP_Type,bp=WI.FP_DateTime,Es={};function qI(n,t){return fr.isEmpty(n)||fr.isEmpty(t)?[]:jI(n,t)}function GI(n,t){return fr.isEmpty(n)&&fr.isEmpty(t)?[!0]:fr.isEmpty(n)||fr.isEmpty(t)?[]:jI(n,t,{fuzzy:!0})}Es.equal=function(n,t){return qI(n,t)};Es.unequal=function(n,t){var e=qI(n,t);return e===void 0?void 0:!e};Es.equival=function(n,t){return GI(n,t)};Es.unequival=function(n,t){return!GI(n,t)};function Cp(n,t){if(fr.assertOnlyOne(n,"Singleton was expected"),fr.assertOnlyOne(t,"Singleton was expected"),n=fr.valDataConverted(n[0]),t=fr.valDataConverted(t[0]),n!=null&&t!=null){let e=n instanceof bp?bp:n.constructor,i=t instanceof bp?bp:t.constructor;e!==i&&fr.raiseError('Type of "'+n+'" ('+e.name+') did not match type of "'+t+'" ('+i.name+")","InequalityExpression")}return[n,t]}Es.lt=function(n,t){let[e,i]=Cp(n,t);if(e==null||i==null)return[];if(e instanceof yp){let r=e.compare(i);return r===null?[]:r<0}return e0}return e>i};Es.lte=function(n,t){let[e,i]=Cp(n,t);if(e==null||i==null)return[];if(e instanceof yp){let r=e.compare(i);return r===null?[]:r<=0}return e<=i};Es.gte=function(n,t){let[e,i]=Cp(n,t);if(e==null||i==null)return[];if(e instanceof yp){let r=e.compare(i);return r===null?[]:r>=0}return e>=i};KI.exports=Es});var JI=X((lae,XI)=>{var jr={},YI=zy(),QI=Hy(),Is=xn();jr.aggregateMacro=function(n,t,e){return n.reduce((i,r,s)=>i instanceof Promise?i.then(a=>(this.$index=s,this.$total=a,this.$total=t(r))):(this.$index=s,this.$total=t(r)),this.$total=e)};jr.countFn=function(n){return n&&n.length?n.length:0};jr.sumFn=function(n){return jr.aggregateMacro.apply(this,[n.slice(1),t=>{let e=Is.arraify(t).filter(r=>Is.valData(r)!=null),i=Is.arraify(this.$total).filter(r=>Is.valData(r)!=null);return e.length===0||i.length===0?[]:YI.plus(e,i)},n[0]])};function ZI(n,t){let e;if(n.length===0||Is.valData(n[0])==null)e=[];else{e=[n[0]];for(let i=1;i{var eA={};eA.weight=function(n){if(n!==!1&&!n)return[];let t=this.vars.scoreExt||this.processedVars.scoreExt,e=t?s=>s.url===t:s=>this.defaultScoreExts.includes(s.url),i=[],r=this.vars.questionnaire||this.processedVars.questionnaire?.data;return n.forEach(s=>{if(s?.data){let a=s.data.valueCoding,o=a;if(!o){let c=Object.keys(s.data).find(u=>u.length>5&&u.startsWith("value"));o=c?s.data[c]:s._data?.extension?s._data:s.data}let l=o?.extension?.find(e)?.valueDecimal;if(l!==void 0)i.push(l);else if(a){let c=LH(s.parentResNode);if(c.length)if(r){let d=OH(r,c)?.answerOption?.find(h=>h.valueCoding.code===a.code&&h.valueCoding.system===a.system);if(d){let h=d.extension?.find(e)?.valueDecimal;h!==void 0&&i.push(h)}else throw new Error("Questionnaire answerOption with this linkId was not found: "+s.parentResNode.data.linkId+".")}else throw new Error("%questionnaire is needed but not specified.")}}}),i};function LH(n){let t=[];for(;n.data?.linkId;)t.push(n.data.linkId),n=n.parentResNode;return t}function OH(n,t){let e=n;for(let i=t.length-1;i>=0;--i)if(e=e.item?.find(r=>r.linkId===t[i]),!e)return null;return e}tA.exports=eA});var oA=X((uae,aA)=>{var ad={},{distinctFn:nA}=_p(),wp=fp(),{deepEqual:rA,maxCollSizeForDeepEqual:sA}=Pl();ad.union=function(n,t){return nA(n.concat(t))};ad.combineFn=function(n,t){return n.concat(t)};ad.intersect=function(n,t){let e=[],i=n.length,r=t.length;if(i&&r)if(i+r>sA){let s={};t.forEach(a=>{let o=wp(a);s[o]?r--:s[o]=!0});for(let a=0;a0;++a){let o=n[a],l=wp(o);s[l]&&(e.push(o),s[l]=!1,r--)}}else e=nA(n).filter(s=>t.some(a=>rA(s,a)));return e};ad.exclude=function(n,t){let e=[],i=n.length,r=t.length;if(!r)return n;if(i)if(i+r>sA){let s={};t.forEach(a=>{let o=wp(a);s[o]=!0}),e=n.filter(a=>!s[wp(a)])}else e=n.filter(s=>!t.some(a=>rA(s,a)));return e};aA.exports=ad});var uA=X((dae,cA)=>{var{deepEqual:NH}=Pl(),jy={};function lA(n,t){for(var e=0;e1)throw new Error("Expected singleton on right side of contains, got "+JSON.stringify(t));return lA(n,t)};jy.in=function(n,t){if(n.length==0)return[];if(t.length==0)return!1;if(n.length>1)throw new Error("Expected singleton on right side of in, got "+JSON.stringify(t));return lA(t,n)};cA.exports=jy});var hA=X((hae,dA)=>{var _t=xn(),Si=vp(),li={},Wy={};function FH(n){return Wy[n]||(Wy[n]=n.replace(/\./g,(t,e,i)=>{let s=i.substr(0,e).replace(/\\\\/g,"").replace(/\\[\][]/g,""),a=s[s.length-1]==="\\",o=s.lastIndexOf("["),l=s.lastIndexOf("]");return a||o>l?".":"[^]"})),Wy[n]}li.indexOf=function(n,t){let e=Si.singleton(n,"String");return _t.isEmpty(t)||_t.isEmpty(e)?[]:e.indexOf(t)};li.substring=function(n,t,e){let i=Si.singleton(n,"String");return _t.isEmpty(i)||_t.isEmpty(t)||t<0||t>=i.length?[]:e===void 0||_t.isEmpty(e)?i.substring(t):i.substring(t,t+e)};li.startsWith=function(n,t){let e=Si.singleton(n,"String");return _t.isEmpty(t)||_t.isEmpty(e)?[]:e.startsWith(t)};li.endsWith=function(n,t){let e=Si.singleton(n,"String");return _t.isEmpty(t)||_t.isEmpty(e)?[]:e.endsWith(t)};li.containsFn=function(n,t){let e=Si.singleton(n,"String");return _t.isEmpty(t)||_t.isEmpty(e)?[]:e.includes(t)};li.upper=function(n){let t=Si.singleton(n,"String");return _t.isEmpty(t)?[]:t.toUpperCase()};li.lower=function(n){let t=Si.singleton(n,"String");return _t.isEmpty(t)?[]:t.toLowerCase()};li.joinFn=function(n,t){let e=[];return n.forEach(i=>{let r=_t.valData(i);if(typeof r=="string")e.push(r);else if(r!=null)throw new Error("Join requires a collection of strings.")}),_t.isEmpty(e)?[]:(t===void 0&&(t=""),e.join(t))};li.splitFn=function(n,t){let e=Si.singleton(n,"String");return _t.isEmpty(e)?[]:e.split(t)};li.trimFn=function(n){let t=Si.singleton(n,"String");return _t.isEmpty(t)?[]:t.trim()};li.encodeFn=function(n,t){let e=Si.singleton(n,"String");return _t.isEmpty(e)?[]:t==="urlbase64"||t==="base64url"?btoa(e).replace(/\+/g,"-").replace(/\//g,"_"):t==="base64"?btoa(e):t==="hex"?Array.from(e).map(i=>i.charCodeAt(0)<128?i.charCodeAt(0).toString(16):encodeURIComponent(i).replace(/%/g,"")).join(""):[]};li.decodeFn=function(n,t){let e=Si.singleton(n,"String");if(_t.isEmpty(e))return[];if(t==="urlbase64"||t==="base64url")return atob(e.replace(/-/g,"+").replace(/_/g,"/"));if(t==="base64")return atob(e);if(t==="hex"){if(e.length%2!==0)throw new Error("Decode 'hex' requires an even number of characters.");return decodeURIComponent("%"+e.match(/.{2}/g).join("%"))}return[]};var PH=new RegExp("").dotAll===!1;PH?li.matches=function(n,t){let e=Si.singleton(n,"String");return _t.isEmpty(t)||_t.isEmpty(e)?[]:new RegExp(t,"su").test(e)}:li.matches=function(n,t){let e=Si.singleton(n,"String");return _t.isEmpty(t)||_t.isEmpty(e)?[]:new RegExp(FH(t),"u").test(e)};li.replace=function(n,t,e){let i=Si.singleton(n,"String");if(_t.isEmpty(t)||_t.isEmpty(e)||_t.isEmpty(i))return[];let r=new RegExp(_t.escapeStringForRegExp(t),"g");return i.replace(r,e)};li.replaceMatches=function(n,t,e){let i=Si.singleton(n,"String");if(_t.isEmpty(t)||_t.isEmpty(e)||_t.isEmpty(i))return[];let r=new RegExp(t,"gu");return i.replace(r,e)};li.length=function(n){let t=Si.singleton(n,"String");return _t.isEmpty(t)?[]:t.length};li.toChars=function(n){let t=Si.singleton(n,"String");return _t.isEmpty(t)?[]:t.split("")};dA.exports=li});var fA=X((mae,mA)=>{var xp=xn(),od={};od.children=function(n){let t=this.model;return n.reduce(function(e,i){let r=xp.valData(i);if(r==null)return e;if(typeof r=="object"){for(var s of Object.keys(r))xp.pushFn(e,xp.makeChildResNodes(i,s,t));return e}else return e},[])};od.descendants=function(n){for(var t=od.children.call(this,n),e=[];t.length>0;)xp.pushFn(e,t),t=od.children.call(this,t);return e};mA.exports=od});var _A=X((fae,gA)=>{var Sp={},Gy=Br(),Kn=Fy(),pA=Gy.FP_Date,qy=Gy.FP_DateTime,UH=Gy.FP_Time;Sp.now=function(){if(!Kn.now){var n=Kn.nowDate,t=qy.isoDateTime(n);Kn.now=new qy(t)}return Kn.now};Sp.today=function(){if(!Kn.today){var n=Kn.nowDate,t=pA.isoDate(n);Kn.today=new pA(t)}return Kn.today};Sp.timeOfDay=function(){if(!Kn.timeOfDay){let n=Kn.nowDate,t=qy.isoTime(n);Kn.timeOfDay=new UH(t)}return Kn.timeOfDay};gA.exports=Sp});var Yy=X((pae,bA)=>{var Ky=class n{constructor(t){this.terminologyUrl=t,this.invocationTable=n.invocationTable}static invocationTable={validateVS:{fn:n.validateVS,arity:{2:["String","AnySingletonAtRoot"],3:["String","AnySingletonAtRoot","String"]}}};static validateVS(t,e,i,r=""){VH(r);let s={Accept:"application/fhir+json; charset=utf-8"},a={Accept:"application/fhir+json; charset=utf-8","Content-Type":"application/fhir+json; charset=utf-8"},o=new Headers(s),l=`${t[0].terminologyUrl}/ValueSet/$validate-code`,c;if(i.coding){let u={resourceType:"Parameters",parameter:[{name:"url",valueUri:e},{name:"codeableConcept",valueCodeableConcept:i}]};o=new Headers(a),c=fetch(l+(r?"?"+r:""),{method:"POST",headers:o,body:JSON.stringify(u)})}else if(typeof i=="string"){let u=new URLSearchParams({url:e});c=fetch(`${t[0].terminologyUrl}/ValueSet?${u.toString()+(r?"&"+r:"")}`,{headers:o}).then(d=>d.json()).then(d=>{let h=d?.entry?.length===1&&(vA(d.entry[0].resource.expansion?.contains)||vA(d.entry[0].resource.compose?.include));if(h){let m=new URLSearchParams({url:e,code:i,system:h});return fetch(`${l}?${m.toString()+(r?"&"+r:"")}`,{headers:o})}else throw new Error("The valueset does not have a single code system.")})}else if(i.code){let u=new URLSearchParams({url:e??"",system:i.system??"",code:i.code});c=fetch(`${l}?${u.toString()+(r?"&"+r:"")}`,{headers:o})}return Promise.resolve(c).then(u=>u.json()).then(u=>{if(u?.parameter)return u;throw new Error(u)}).catch(()=>{let u=$H(i,e);throw new Error("Failed to check membership: "+u)})}};function $H(n,t){if(typeof n=="string")return n+" - "+t;if(n.code)return n.system+"|"+n.code+" - "+t;if(n.coding)return n.coding.map(e=>e.system+"|"+e.code).join(",")+" - "+t}function VH(n){if(n?.split("&").find(t=>{let e=t.split("=");return e.length<=2&&e.find(i=>encodeURIComponent(decodeURIComponent(i))!==i)}))throw new Error(`"${n}" should be a valid URL-encoded string`)}function vA(n,t=void 0){if(n){for(let e=0;e{var BH=xn(),zH=Yy(),yA={};yA.memberOf=function(n,t){if(!this.async)throw new Error('The asynchronous function "memberOf" is not allowed. To enable asynchronous functions, use the async=true or async="always" option.');if(n.length!==1||n[0]==null)return[];if(typeof t=="string"&&/^https?:\/\/.*/.test(t)){let e=this.processedVars.terminologies;if(!e)throw new Error('Option "terminologyUrl" is not specified.');return zH.validateVS([e],t,BH.valData(n[0]),"").then(i=>i.parameter.find(r=>r.name==="result").valueBoolean,()=>[])}return[]};CA.exports=yA});var SA=X((_ae,xA)=>{var ld={};ld.orOp=function(n,t){if(Array.isArray(t)){if(n===!0)return!0;if(n===!1)return[];if(Array.isArray(n))return[]}return Array.isArray(n)?t===!0?!0:[]:n||t};ld.andOp=function(n,t){if(Array.isArray(t)){if(n===!0)return[];if(n===!1)return!1;if(Array.isArray(n))return[]}return Array.isArray(n)?t===!0?[]:!1:n&&t};ld.xorOp=function(n,t){return Array.isArray(n)||Array.isArray(t)?[]:n&&!t||!n&&t};ld.impliesOp=function(n,t){if(Array.isArray(t)){if(n===!0)return[];if(n===!1)return!0;if(Array.isArray(n))return[]}return Array.isArray(n)?t===!0?!0:[]:n===!1?!0:n&&t};xA.exports=ld});var FA=X((vae,NA)=>{var{version:HH}=pT(),jH=_2(),mi=xn();_I();var WH=Fy(),fe={},pr=BI(),Yn=_p(),Ul=JI(),kA=iA(),cd=oA(),Tt=vp(),ga=Hy(),MA=uA(),ki=zy(),Mi=hA(),TA=fA(),Qy=_A(),qH=wA(),kp=SA(),$l=Br(),{FP_Date:GH,FP_DateTime:IA,FP_Time:AA,FP_Quantity:Mp,FP_Type:DA,ResourceNode:e1,TypeInfo:Tp}=$l,_a=e1.makeResNode,KH=Yy();fe.invocationTable={memberOf:{fn:qH.memberOf,arity:{1:["String"]}},empty:{fn:pr.emptyFn},not:{fn:pr.notFn},exists:{fn:pr.existsMacro,arity:{0:[],1:["Expr"]}},all:{fn:pr.allMacro,arity:{1:["Expr"]}},allTrue:{fn:pr.allTrueFn},anyTrue:{fn:pr.anyTrueFn},allFalse:{fn:pr.allFalseFn},anyFalse:{fn:pr.anyFalseFn},subsetOf:{fn:pr.subsetOfFn,arity:{1:["AnyAtRoot"]}},supersetOf:{fn:pr.supersetOfFn,arity:{1:["AnyAtRoot"]}},isDistinct:{fn:pr.isDistinctFn},distinct:{fn:Yn.distinctFn},count:{fn:Ul.countFn},where:{fn:Yn.whereMacro,arity:{1:["Expr"]}},extension:{fn:Yn.extension,arity:{1:["String"]}},select:{fn:Yn.selectMacro,arity:{1:["Expr"]}},aggregate:{fn:Ul.aggregateMacro,arity:{1:["Expr"],2:["Expr","AnyAtRoot"]}},sum:{fn:Ul.sumFn},min:{fn:Ul.minFn},max:{fn:Ul.maxFn},avg:{fn:Ul.avgFn},weight:{fn:kA.weight},ordinal:{fn:kA.weight},single:{fn:Yn.singleFn},first:{fn:Yn.firstFn},last:{fn:Yn.lastFn},type:{fn:$l.typeFn,arity:{0:[]}},ofType:{fn:Yn.ofTypeFn,arity:{1:["TypeSpecifier"]}},is:{fn:$l.isFn,arity:{1:["TypeSpecifier"]}},as:{fn:$l.asFn,arity:{1:["TypeSpecifier"]}},tail:{fn:Yn.tailFn},take:{fn:Yn.takeFn,arity:{1:["Integer"]}},skip:{fn:Yn.skipFn,arity:{1:["Integer"]}},combine:{fn:cd.combineFn,arity:{1:["AnyAtRoot"]}},union:{fn:cd.union,arity:{1:["AnyAtRoot"]}},intersect:{fn:cd.intersect,arity:{1:["AnyAtRoot"]}},exclude:{fn:cd.exclude,arity:{1:["AnyAtRoot"]}},iif:{fn:Tt.iifMacro,arity:{2:["Expr","Expr"],3:["Expr","Expr","Expr"]}},trace:{fn:Tt.traceFn,arity:{1:["String"],2:["String","Expr"]}},defineVariable:{fn:Tt.defineVariable,arity:{1:["String"],2:["String","Expr"]}},toInteger:{fn:Tt.toInteger},toDecimal:{fn:Tt.toDecimal},toString:{fn:Tt.toString},toDate:{fn:Tt.toDate},toDateTime:{fn:Tt.toDateTime},toTime:{fn:Tt.toTime},toBoolean:{fn:Tt.toBoolean},toQuantity:{fn:Tt.toQuantity,arity:{0:[],1:["String"]}},hasValue:{fn:Tt.hasValueFn},convertsToBoolean:{fn:Tt.createConvertsToFn(Tt.toBoolean,"boolean")},convertsToInteger:{fn:Tt.createConvertsToFn(Tt.toInteger,"number")},convertsToDecimal:{fn:Tt.createConvertsToFn(Tt.toDecimal,"number")},convertsToString:{fn:Tt.createConvertsToFn(Tt.toString,"string")},convertsToDate:{fn:Tt.createConvertsToFn(Tt.toDate,GH)},convertsToDateTime:{fn:Tt.createConvertsToFn(Tt.toDateTime,IA)},convertsToTime:{fn:Tt.createConvertsToFn(Tt.toTime,AA)},convertsToQuantity:{fn:Tt.createConvertsToFn(Tt.toQuantity,Mp)},indexOf:{fn:Mi.indexOf,arity:{1:["String"]}},substring:{fn:Mi.substring,arity:{1:["Integer"],2:["Integer","Integer"]}},startsWith:{fn:Mi.startsWith,arity:{1:["String"]}},endsWith:{fn:Mi.endsWith,arity:{1:["String"]}},contains:{fn:Mi.containsFn,arity:{1:["String"]}},upper:{fn:Mi.upper},lower:{fn:Mi.lower},replace:{fn:Mi.replace,arity:{2:["String","String"]}},matches:{fn:Mi.matches,arity:{1:["String"]}},replaceMatches:{fn:Mi.replaceMatches,arity:{2:["String","String"]}},length:{fn:Mi.length},toChars:{fn:Mi.toChars},join:{fn:Mi.joinFn,arity:{0:[],1:["String"]}},split:{fn:Mi.splitFn,arity:{1:["String"]}},trim:{fn:Mi.trimFn},encode:{fn:Mi.encodeFn,arity:{1:["String"]}},decode:{fn:Mi.decodeFn,arity:{1:["String"]}},abs:{fn:ki.abs},ceiling:{fn:ki.ceiling},exp:{fn:ki.exp},floor:{fn:ki.floor},ln:{fn:ki.ln},log:{fn:ki.log,arity:{1:["Number"]},nullable:!0},power:{fn:ki.power,arity:{1:["Number"]},nullable:!0},round:{fn:ki.round,arity:{0:[],1:["Number"]}},sqrt:{fn:ki.sqrt},truncate:{fn:ki.truncate},now:{fn:Qy.now},today:{fn:Qy.today},timeOfDay:{fn:Qy.timeOfDay},repeat:{fn:Yn.repeatMacro,arity:{1:["Expr"]}},children:{fn:TA.children},descendants:{fn:TA.descendants},"|":{fn:cd.union,arity:{2:["Any","Any"]}},"=":{fn:ga.equal,arity:{2:["Any","Any"]},nullable:!0},"!=":{fn:ga.unequal,arity:{2:["Any","Any"]},nullable:!0},"~":{fn:ga.equival,arity:{2:["Any","Any"]}},"!~":{fn:ga.unequival,arity:{2:["Any","Any"]}},"<":{fn:ga.lt,arity:{2:["Any","Any"]},nullable:!0},">":{fn:ga.gt,arity:{2:["Any","Any"]},nullable:!0},"<=":{fn:ga.lte,arity:{2:["Any","Any"]},nullable:!0},">=":{fn:ga.gte,arity:{2:["Any","Any"]},nullable:!0},containsOp:{fn:MA.contains,arity:{2:["Any","Any"]}},inOp:{fn:MA.in,arity:{2:["Any","Any"]}},isOp:{fn:$l.isFn,arity:{2:["Any","TypeSpecifier"]}},asOp:{fn:$l.asFn,arity:{2:["Any","TypeSpecifier"]}},"&":{fn:ki.amp,arity:{2:["String","String"]}},"+":{fn:ki.plus,arity:{2:["Any","Any"]},nullable:!0},"-":{fn:ki.minus,arity:{2:["Any","Any"]},nullable:!0},"*":{fn:ki.mul,arity:{2:["Any","Any"]},nullable:!0},"/":{fn:ki.div,arity:{2:["Any","Any"]},nullable:!0},mod:{fn:ki.mod,arity:{2:["Number","Number"]},nullable:!0},div:{fn:ki.intdiv,arity:{2:["Number","Number"]},nullable:!0},or:{fn:kp.orOp,arity:{2:[["Boolean"],["Boolean"]]}},and:{fn:kp.andOp,arity:{2:[["Boolean"],["Boolean"]]}},xor:{fn:kp.xorOp,arity:{2:[["Boolean"],["Boolean"]]}},implies:{fn:kp.impliesOp,arity:{2:[["Boolean"],["Boolean"]]}}};fe.InvocationExpression=function(n,t,e){return e.children.reduce(function(i,r){return fe.doEval(n,i,r)},t)};fe.TermExpression=function(n,t,e){return t&&(t=t.map(i=>i instanceof Object&&i.resourceType?_a(i,null,i.resourceType,null,i.resourceType):i)),fe.doEval(n,t,e.children[0])};fe.PolarityExpression=function(n,t,e){var i=e.terminalNodeText[0],r=fe.doEval(n,t,e.children[0]);if(r.length!==1)throw new Error("Unary "+i+" can only be applied to an individual number or Quantity.");if(r[0]instanceof Mp)i==="-"&&(r[0]=new Mp(-r[0].value,r[0].unit));else if(typeof r[0]=="number"&&!isNaN(r[0]))i==="-"&&(r[0]=-r[0]);else throw new Error("Unary "+i+" can only be applied to a number or Quantity.");return r};fe.TypeSpecifier=function(n,t,e){let i,r,s=e.text.split(".").map(o=>o.replace(/(^`|`$)/g,""));switch(s.length){case 2:[i,r]=s;break;case 1:[r]=s;break;default:throw new Error("Expected TypeSpecifier node, got "+JSON.stringify(e))}let a=new Tp({namespace:i,name:r});if(!a.isValid())throw new Error('"'+a+'" cannot be resolved to a valid type identifier');return a};fe.ExternalConstantTerm=function(n,t,e){var i=e.children[0],r=i.children[0],s=fe.Identifier(n,t,r)[0],a;if(s in n.vars)a=n.vars[s],Array.isArray(a)?a=a.map(o=>o?.__path__?_a(o,o.__path__.parentResNode,o.__path__.path,null,o.__path__.fhirNodeDataType):o?.resourceType?_a(o,null,null,null):o):a=a?.__path__?_a(a,a.__path__.parentResNode,a.__path__.path,null,a.__path__.fhirNodeDataType):a?.resourceType?_a(a,null,null,null):a,n.processedVars[s]=a,delete n.vars[s];else if(s in n.processedVars)a=n.processedVars[s];else if(n.definedVars&&s in n.definedVars)a=n.definedVars[s];else throw new Error("Attempting to access an undefined environment variable: "+s);return a==null?[]:a instanceof Array?a:[a]};fe.LiteralTerm=function(n,t,e){var i=e.children[0];return i?fe.doEval(n,t,i):[e.text]};fe.StringLiteral=function(n,t,e){var i=e.text.replace(/(^'|'$)/g,"");return i=i.replace(/\\(u\d{4}|.)/g,function(r,s){switch(r){case"\\r":return"\r";case"\\n":return` -`;case"\\t":return" ";case"\\f":return"\f";default:return s.length>1?String.fromCharCode("0x"+s.slice(1)):s}}),[i]};fe.BooleanLiteral=function(n,t,e){return e.text==="true"?[!0]:[!1]};fe.QuantityLiteral=function(n,t,e){var i=e.children[0],r=Number(i.terminalNodeText[0]),s=i.children[0],a=s.terminalNodeText[0];return!a&&s.children&&(a=s.children[0].terminalNodeText[0]),[new Mp(r,a)]};fe.DateTimeLiteral=function(n,t,e){var i=e.text.slice(1);return[new IA(i)]};fe.TimeLiteral=function(n,t,e){var i=e.text.slice(1);return[new AA(i)]};fe.NumberLiteral=function(n,t,e){return[Number(e.text)]};fe.Identifier=function(n,t,e){return[e.text.replace(/(^`|`$)/g,"")]};fe.InvocationTerm=function(n,t,e){return fe.doEval(n,t,e.children[0])};fe.MemberInvocation=function(n,t,e){let i=fe.doEval(n,t,e.children[0])[0],r=n.model;return t?t.reduce(function(s,a){return a=_a(a,null,a.__path__?.path,null,a.__path__?.fhirNodeDataType),a.data?.resourceType===i?s.push(a):mi.pushFn(s,mi.makeChildResNodes(a,i,r)),s},[]):[]};fe.IndexerExpression=function(n,t,e){let i=e.children[0],r=e.children[1];var s=fe.doEval(n,t,i),a=fe.doEval(n,t,r);if(mi.isEmpty(a))return[];var o=parseInt(a[0]);return s&&mi.isSome(o)&&s.length>o&&o>=0?[s[o]]:[]};fe.Functn=function(n,t,e){return e.children.map(function(i){return fe.doEval(n,t,i)})};fe.realizeParams=function(n,t,e){return e&&e[0]&&e[0].children?e[0].children.map(function(i){return fe.doEval(n,t,i)}):[]};function RA(n,t,e,i){if(e==="Expr")return function(s){let a=mi.arraify(s),o=$e(j({},n),{$this:a});return n.definedVars&&(o.definedVars=j({},n.definedVars)),fe.doEval(o,a,i)};if(e==="AnyAtRoot"){let s=n.$this||n.dataRoot,a=$e(j({},n),{$this:s});return n.definedVars&&(a.definedVars=j({},n.definedVars)),fe.doEval(a,s,i)}if(e==="Identifier"){if(i.type==="TermExpression")return i.text;throw new Error("Expected identifier node, got "+JSON.stringify(i))}if(e==="TypeSpecifier")return fe.TypeSpecifier(n,t,i);let r;if(e==="AnySingletonAtRoot"){let s=n.$this||n.dataRoot,a=$e(j({},n),{$this:s});n.definedVars&&(a.definedVars=j({},n.definedVars)),r=fe.doEval(a,s,i)}else{let s=j({},n);if(n.definedVars&&(s.definedVars=j({},n.definedVars)),r=fe.doEval(s,t,i),e==="Any")return r;if(Array.isArray(e)){if(r.length===0)return[];e=e[0]}}return Tt.singleton(r,e)}function YH(n,t,e,i){var r=n.userInvocationTable?.[t]||fe.invocationTable[t]||e.length===1&&e[0]?.invocationTable[t],s;if(r)if(r.arity){var a=i?i.length:0,o=r.arity[a];if(o){for(var l=[],c=0;ch instanceof Promise)?Promise.all(l).then(h=>(s=r.fn.apply(n,h),mi.resolveAndArraify(s))):(s=r.fn.apply(n,l),mi.resolveAndArraify(s))}else return console.log(t+" wrong arity: got "+a),[]}else{if(i)throw new Error(t+" expects no params");return s=r.fn.call(n,e),mi.resolveAndArraify(s)}else throw new Error("Not implemented: "+t)}function LA(n){return n==null||mi.isEmpty(n)}function t1(n,t,e,i){var r=fe.invocationTable[t];if(r&&r.fn){var s=i?i.length:0;if(s!==2)throw new Error("Infix invoke should have arity 2");var a=r.arity[s];if(a){for(var o=[],l=0;lh instanceof Promise))return Promise.all(o).then(h=>{var m=r.fn.apply(n,h);return mi.arraify(m)});var d=r.fn.apply(n,o);return mi.arraify(d)}else return console.log(t+" wrong arity: got "+s),[]}else throw new Error("Not impl "+t)}fe.FunctionInvocation=function(n,t,e){var i=fe.doEval(n,t,e.children[0]);let r=i[0];i.shift();var s=i&&i[0]&&i[0].children;return YH(n,r,t,s)};fe.ParamList=function(n,t,e){return e};fe.UnionExpression=function(n,t,e){return t1(n,"|",t,e.children)};fe.ThisInvocation=function(n){return n.$this};fe.TotalInvocation=function(n){return mi.arraify(n.$total)};fe.IndexInvocation=function(n){return mi.arraify(n.$index)};fe.OpExpression=function(n,t,e){var i=e.terminalNodeText[0];return t1(n,i,t,e.children)};fe.AliasOpExpression=function(n){return function(t,e,i){var r=i.terminalNodeText[0],s=n[r];if(!s)throw new Error("Do not know how to alias "+r+" by "+JSON.stringify(n));return t1(t,s,e,i.children)}};fe.NullLiteral=function(){return[]};fe.ParenthesizedTerm=function(n,t,e){return fe.doEval(n,t,e.children[0])};fe.evalTable={BooleanLiteral:fe.BooleanLiteral,EqualityExpression:fe.OpExpression,FunctionInvocation:fe.FunctionInvocation,Functn:fe.Functn,Identifier:fe.Identifier,IndexerExpression:fe.IndexerExpression,InequalityExpression:fe.OpExpression,InvocationExpression:fe.InvocationExpression,AdditiveExpression:fe.OpExpression,MultiplicativeExpression:fe.OpExpression,TypeExpression:fe.AliasOpExpression({is:"isOp",as:"asOp"}),MembershipExpression:fe.AliasOpExpression({contains:"containsOp",in:"inOp"}),NullLiteral:fe.NullLiteral,EntireExpression:fe.InvocationTerm,InvocationTerm:fe.InvocationTerm,LiteralTerm:fe.LiteralTerm,MemberInvocation:fe.MemberInvocation,NumberLiteral:fe.NumberLiteral,ParamList:fe.ParamList,ParenthesizedTerm:fe.ParenthesizedTerm,StringLiteral:fe.StringLiteral,TermExpression:fe.TermExpression,ThisInvocation:fe.ThisInvocation,TotalInvocation:fe.TotalInvocation,IndexInvocation:fe.IndexInvocation,UnionExpression:fe.UnionExpression,OrExpression:fe.OpExpression,ImpliesExpression:fe.OpExpression,AndExpression:fe.OpExpression,XorExpression:fe.OpExpression};fe.doEval=function(n,t,e){return t instanceof Promise?t.then(i=>fe.doEvalSync(n,i,e)):fe.doEvalSync(n,t,e)};fe.doEvalSync=function(n,t,e){let i=fe.evalTable[e.type]||fe[e.type];if(i)return i.call(fe,n,t,e);throw new Error("No "+e.type+" evaluator ")};function Xy(n){return jH.parse(n)}function EA(n,t,e,i,r){WH.reset();let s=mi.arraify(n).map(l=>l?.__path__?_a(l,l.__path__.parentResNode,l.__path__.path,null,l.__path__.fhirNodeDataType):l),a={dataRoot:s,processedVars:{ucum:"http://unitsofmeasure.org"},vars:j({context:s},e),model:i};r.traceFn&&(a.customTraceFn=r.traceFn),r.userInvocationTable&&(a.userInvocationTable=r.userInvocationTable),a.defaultScoreExts=["http://hl7.org/fhir/StructureDefinition/ordinalValue","http://hl7.org/fhir/StructureDefinition/itemWeight","http://hl7.org/fhir/StructureDefinition/questionnaire-ordinalValue"],r.async&&(a.async=r.async),r.terminologyUrl&&(a.processedVars.terminologies=new KH(r.terminologyUrl));let o=fe.doEval(a,s,t.children[0]);return o instanceof Promise?o.then(l=>Zy(l,r)):r.async==="always"?Promise.resolve(Zy(o,r)):Zy(o,r)}function Zy(n,t){return n.reduce((e,i)=>{let r,s,a;return i instanceof e1&&(r=i.path,s=i.fhirNodeDataType,a=i.parentResNode),i=mi.valData(i),i instanceof DA&&t.resolveInternalTypes&&(i=i.toString()),i!=null&&(r&&typeof i=="object"&&!i.__path__&&Object.defineProperty(i,"__path__",{value:{path:r,fhirNodeDataType:s,parentResNode:a}}),e.push(i)),e},[])}function Jy(n){if(Array.isArray(n))for(let t=0,e=n.length;t(i[s].internalStructures?r[s]=i[s]:r[s]=$e(j({},i[s]),{fn:(...a)=>i[s].fn.apply(this,a.map(o=>Array.isArray(o)?o.map(l=>mi.valData(l)):o))}),r),{})),typeof n=="object"){let r=Xy(n.expression);return function(s,a){if(n.base){let o=t.pathsDefinedElsewhere[n.base]||n.base,l=t&&t.path2Type[o];o=l==="BackboneElement"||l==="Element"?o:l||o,s=_a(s,null,o,null,l)}return Tp.model=t,EA(s,r,a,t,e)}}else{let r=Xy(n);return function(s,a){return Tp.model=t,EA(s,r,a,t,e)}}}function ZH(n){return mi.arraify(n).map(t=>{let e=Tp.fromValue(t?.__path__?new e1(t,t.__path__?.parentResNode,t.__path__?.path,null,t.__path__?.fhirNodeDataType):t);return`${e.namespace}.${e.name}`})}NA.exports={version:HH,parse:Xy,compile:OA,evaluate:QH,resolveInternalTypes:Jy,types:ZH,ucumUtils:dp().UcumLhcUtils.getInstance(),util:mi}});var dR=X((R1,uR)=>{(function(n,t){typeof define=="function"&&define.amd?define([],t):typeof R1=="object"?uR.exports=t():n.untar=t()})(R1,function(){"use strict";function n(o){function l(m){for(var f=0,g=c.length;f127){if(a>191&&a<224){if(t>=e.length)throw"UTF-8 decode: incomplete 2-byte sequence";a=(31&a)<<6|63&e[t]}else if(a>223&&a<240){if(t+1>=e.length)throw"UTF-8 decode: incomplete 3-byte sequence";a=(15&a)<<12|(63&e[t])<<6|63&e[++t]}else{if(!(a>239&&a<248))throw"UTF-8 decode: unknown multibyte start 0x"+a.toString(16)+" at index "+(t-1);if(t+2>=e.length)throw"UTF-8 decode: incomplete 4-byte sequence";a=(7&a)<<18|(63&e[t])<<12|(63&e[++t])<<6|63&e[++t]}++t}if(a<=65535)r+=String.fromCharCode(a);else{if(!(a<=1114111))throw"UTF-8 decode: code point 0x"+a.toString(16)+" exceeds UTF-16 reach";a-=65536,r+=String.fromCharCode(a>>10|55296),r+=String.fromCharCode(1023&a|56320)}}return r}function PaxHeader(e){this._fields=e}function TarFile(){}function UntarStream(e){this._bufferView=new DataView(e),this._position=0}function UntarFileStream(e){this._stream=new UntarStream(e),this._globalPaxHeader=null}if(UntarWorker.prototype={onmessage:function(e){try{if("extract"!==e.data.type)throw new Error("Unknown message type: "+e.data.type);this.untarBuffer(e.data.buffer)}catch(r){this.postError(r)}},postError:function(e){this.postMessage({type:"error",data:{message:e.message}})},postLog:function(e,r){this.postMessage({type:"log",data:{level:e,msg:r}})},untarBuffer:function(e){try{for(var r=new UntarFileStream(e);r.hasNext();){var t=r.next();this.postMessage({type:"extract",data:t},[t.buffer])}this.postMessage({type:"complete"})}catch(a){this.postError(a)}},postMessage:function(e,r){self.postMessage(e,r)}},"undefined"!=typeof self){var worker=new UntarWorker;self.onmessage=function(e){worker.onmessage(e)}}PaxHeader.parse=function(e){for(var r=new Uint8Array(e),t=[];r.length>0;){var a=parseInt(decodeUTF8(r.subarray(0,r.indexOf(32)))),n=decodeUTF8(r.subarray(0,a)),i=n.match(/^\\d+ ([^=]+)=(.*)\\n$/);if(null===i)throw new Error("Invalid PAX header data format.");var s=i[1],o=i[2];0===o.length?o=null:null!==o.match(/^\\d+$/)&&(o=parseInt(o));var f={name:s,value:o};t.push(f),r=r.subarray(a)}return new PaxHeader(t)},PaxHeader.prototype={applyHeader:function(e){this._fields.forEach(function(r){var t=r.name,a=r.value;"path"===t?(t="name",void 0!==e.prefix&&delete e.prefix):"linkpath"===t&&(t="linkname"),null===a?delete e[t]:e[t]=a})}},UntarStream.prototype={readString:function(e){for(var r=1,t=e*r,a=[],n=0;n-1&&(r.version=e.readString(2),r.uname=e.readString(32),r.gname=e.readString(32),r.devmajor=parseInt(e.readString(8)),r.devminor=parseInt(e.readString(8)),r.namePrefix=e.readString(155),r.namePrefix.length>0&&(r.name=r.namePrefix+"/"+r.name)),e.position(i),r.type){case"0":case"":r.buffer=e.readBuffer(r.size);break;case"1":break;case"2":break;case"3":break;case"4":break;case"5":break;case"6":break;case"7":break;case"g":t=!0,this._globalPaxHeader=PaxHeader.parse(e.readBuffer(r.size));break;case"x":t=!0,a=PaxHeader.parse(e.readBuffer(r.size))}void 0===r.buffer&&(r.buffer=new ArrayBuffer(0));var s=i+r.size;return r.size%512!==0&&(s+=512-r.size%512),e.position(s),t&&(r=this._readNextFile()),null!==this._globalPaxHeader&&this._globalPaxHeader.applyHeader(r),null!==a&&a.applyHeader(r),r}};'])),t})});var nt="primary",wc=Symbol("RouteTitle"),N0=class{params;constructor(t){this.params=t||{}}has(t){return Object.prototype.hasOwnProperty.call(this.params,t)}get(t){if(this.has(t)){let e=this.params[t];return Array.isArray(e)?e[0]:e}return null}getAll(t){if(this.has(t)){let e=this.params[t];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}};function Vo(n){return new N0(n)}function xL(n,t,e){let i=e.path.split("/");if(i.length>n.length||e.pathMatch==="full"&&(t.hasChildren()||i.lengthi[s]===r)}else return n===t}function Tw(n){return n.length>0?n[n.length-1]:null}function Ks(n){return br(n)?n:Gd(n)?_i(Promise.resolve(n)):_e(n)}var kL={exact:Iw,subset:Aw},Ew={exact:ML,subset:TL,ignored:()=>!0};function pw(n,t,e){return kL[e.paths](n.root,t.root,e.matrixParams)&&Ew[e.queryParams](n.queryParams,t.queryParams)&&!(e.fragment==="exact"&&n.fragment!==t.fragment)}function ML(n,t){return Mr(n,t)}function Iw(n,t,e){if(!Da(n.segments,t.segments)||!nh(n.segments,t.segments,e)||n.numberOfChildren!==t.numberOfChildren)return!1;for(let i in t.children)if(!n.children[i]||!Iw(n.children[i],t.children[i],e))return!1;return!0}function TL(n,t){return Object.keys(t).length<=Object.keys(n).length&&Object.keys(t).every(e=>Mw(n[e],t[e]))}function Aw(n,t,e){return Dw(n,t,t.segments,e)}function Dw(n,t,e,i){if(n.segments.length>e.length){let r=n.segments.slice(0,e.length);return!(!Da(r,e)||t.hasChildren()||!nh(r,e,i))}else if(n.segments.length===e.length){if(!Da(n.segments,e)||!nh(n.segments,e,i))return!1;for(let r in t.children)if(!n.children[r]||!Aw(n.children[r],t.children[r],i))return!1;return!0}else{let r=e.slice(0,n.segments.length),s=e.slice(n.segments.length);return!Da(n.segments,r)||!nh(n.segments,r,i)||!n.children[nt]?!1:Dw(n.children[nt],t,s,i)}}function nh(n,t,e){return t.every((i,r)=>Ew[e](n[r].parameters,i.parameters))}var ns=class{root;queryParams;fragment;_queryParamMap;constructor(t=new Ct([],{}),e={},i=null){this.root=t,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap??=Vo(this.queryParams),this._queryParamMap}toString(){return AL.serialize(this)}},Ct=class{segments;children;parent=null;constructor(t,e){this.segments=t,this.children=e,Object.values(e).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return rh(this)}},Aa=class{path;parameters;_parameterMap;constructor(t,e){this.path=t,this.parameters=e}get parameterMap(){return this._parameterMap??=Vo(this.parameters),this._parameterMap}toString(){return Lw(this)}};function EL(n,t){return Da(n,t)&&n.every((e,i)=>Mr(e.parameters,t[i].parameters))}function Da(n,t){return n.length!==t.length?!1:n.every((e,i)=>e.path===t[i].path)}function IL(n,t){let e=[];return Object.entries(n.children).forEach(([i,r])=>{i===nt&&(e=e.concat(t(r,i)))}),Object.entries(n.children).forEach(([i,r])=>{i!==nt&&(e=e.concat(t(r,i)))}),e}var xc=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:()=>new Bo,providedIn:"root"})}return n})(),Bo=class{parse(t){let e=new U0(t);return new ns(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(t){let e=`/${lc(t.root,!0)}`,i=LL(t.queryParams),r=typeof t.fragment=="string"?`#${DL(t.fragment)}`:"";return`${e}${i}${r}`}},AL=new Bo;function rh(n){return n.segments.map(t=>Lw(t)).join("/")}function lc(n,t){if(!n.hasChildren())return rh(n);if(t){let e=n.children[nt]?lc(n.children[nt],!1):"",i=[];return Object.entries(n.children).forEach(([r,s])=>{r!==nt&&i.push(`${r}:${lc(s,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}else{let e=IL(n,(i,r)=>r===nt?[lc(n.children[nt],!1)]:[`${r}:${lc(i,!1)}`]);return Object.keys(n.children).length===1&&n.children[nt]!=null?`${rh(n)}/${e[0]}`:`${rh(n)}/(${e.join("//")})`}}function Rw(n){return encodeURIComponent(n).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function th(n){return Rw(n).replace(/%3B/gi,";")}function DL(n){return encodeURI(n)}function P0(n){return Rw(n).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function sh(n){return decodeURIComponent(n)}function gw(n){return sh(n.replace(/\+/g,"%20"))}function Lw(n){return`${P0(n.path)}${RL(n.parameters)}`}function RL(n){return Object.entries(n).map(([t,e])=>`;${P0(t)}=${P0(e)}`).join("")}function LL(n){let t=Object.entries(n).map(([e,i])=>Array.isArray(i)?i.map(r=>`${th(e)}=${th(r)}`).join("&"):`${th(e)}=${th(i)}`).filter(e=>e);return t.length?`?${t.join("&")}`:""}var OL=/^[^\/()?;#]+/;function D0(n){let t=n.match(OL);return t?t[0]:""}var NL=/^[^\/()?;=#]+/;function FL(n){let t=n.match(NL);return t?t[0]:""}var PL=/^[^=?&#]+/;function UL(n){let t=n.match(PL);return t?t[0]:""}var $L=/^[^&#]+/;function VL(n){let t=n.match($L);return t?t[0]:""}var U0=class{url;remaining;constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional("/"),this.remaining===""||this.peekStartsWith("?")||this.peekStartsWith("#")?new Ct([],{}):new Ct([],this.parseChildren())}parseQueryParams(){let t={};if(this.consumeOptional("?"))do this.parseQueryParam(t);while(this.consumeOptional("&"));return t}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(this.remaining==="")return{};this.consumeOptional("/");let t=[];for(this.peekStartsWith("(")||t.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegment());let e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(t.length>0||Object.keys(e).length>0)&&(i[nt]=new Ct(t,e)),i}parseSegment(){let t=D0(this.remaining);if(t===""&&this.peekStartsWith(";"))throw new je(4009,!1);return this.capture(t),new Aa(sh(t),this.parseMatrixParams())}parseMatrixParams(){let t={};for(;this.consumeOptional(";");)this.parseParam(t);return t}parseParam(t){let e=FL(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){let r=D0(this.remaining);r&&(i=r,this.capture(i))}t[sh(e)]=sh(i)}parseQueryParam(t){let e=UL(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){let a=VL(this.remaining);a&&(i=a,this.capture(i))}let r=gw(e),s=gw(i);if(t.hasOwnProperty(r)){let a=t[r];Array.isArray(a)||(a=[a],t[r]=a),a.push(s)}else t[r]=s}parseParens(t){let e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){let i=D0(this.remaining),r=this.remaining[i.length];if(r!=="/"&&r!==")"&&r!==";")throw new je(4010,!1);let s;i.indexOf(":")>-1?(s=i.slice(0,i.indexOf(":")),this.capture(s),this.capture(":")):t&&(s=nt);let a=this.parseChildren();e[s]=Object.keys(a).length===1?a[nt]:new Ct([],a),this.consumeOptional("//")}return e}peekStartsWith(t){return this.remaining.startsWith(t)}consumeOptional(t){return this.peekStartsWith(t)?(this.remaining=this.remaining.substring(t.length),!0):!1}capture(t){if(!this.consumeOptional(t))throw new je(4011,!1)}};function Ow(n){return n.segments.length>0?new Ct([],{[nt]:n}):n}function Nw(n){let t={};for(let[i,r]of Object.entries(n.children)){let s=Nw(r);if(i===nt&&s.segments.length===0&&s.hasChildren())for(let[a,o]of Object.entries(s.children))t[a]=o;else(s.segments.length>0||s.hasChildren())&&(t[i]=s)}let e=new Ct(n.segments,t);return BL(e)}function BL(n){if(n.numberOfChildren===1&&n.children[nt]){let t=n.children[nt];return new Ct(n.segments.concat(t.segments),t.children)}return n}function Ra(n){return n instanceof ns}function zL(n,t,e=null,i=null){let r=Fw(n);return Pw(r,t,e,i)}function Fw(n){let t;function e(s){let a={};for(let l of s.children){let c=e(l);a[l.outlet]=c}let o=new Ct(s.url,a);return s===n&&(t=o),o}let i=e(n.root),r=Ow(i);return t??r}function Pw(n,t,e,i){let r=n;for(;r.parent;)r=r.parent;if(t.length===0)return R0(r,r,r,e,i);let s=HL(t);if(s.toRoot())return R0(r,r,new Ct([],{}),e,i);let a=jL(s,r,n),o=a.processChildren?dc(a.segmentGroup,a.index,s.commands):$w(a.segmentGroup,a.index,s.commands);return R0(r,a.segmentGroup,o,e,i)}function ah(n){return typeof n=="object"&&n!=null&&!n.outlets&&!n.segmentPath}function fc(n){return typeof n=="object"&&n!=null&&n.outlets}function R0(n,t,e,i,r){let s={};i&&Object.entries(i).forEach(([l,c])=>{s[l]=Array.isArray(c)?c.map(u=>`${u}`):`${c}`});let a;n===t?a=e:a=Uw(n,t,e);let o=Ow(Nw(a));return new ns(o,s,r)}function Uw(n,t,e){let i={};return Object.entries(n.children).forEach(([r,s])=>{s===t?i[r]=e:i[r]=Uw(s,t,e)}),new Ct(n.segments,i)}var oh=class{isAbsolute;numberOfDoubleDots;commands;constructor(t,e,i){if(this.isAbsolute=t,this.numberOfDoubleDots=e,this.commands=i,t&&i.length>0&&ah(i[0]))throw new je(4003,!1);let r=i.find(fc);if(r&&r!==Tw(i))throw new je(4004,!1)}toRoot(){return this.isAbsolute&&this.commands.length===1&&this.commands[0]=="/"}};function HL(n){if(typeof n[0]=="string"&&n.length===1&&n[0]==="/")return new oh(!0,0,n);let t=0,e=!1,i=n.reduce((r,s,a)=>{if(typeof s=="object"&&s!=null){if(s.outlets){let o={};return Object.entries(s.outlets).forEach(([l,c])=>{o[l]=typeof c=="string"?c.split("/"):c}),[...r,{outlets:o}]}if(s.segmentPath)return[...r,s.segmentPath]}return typeof s!="string"?[...r,s]:a===0?(s.split("/").forEach((o,l)=>{l==0&&o==="."||(l==0&&o===""?e=!0:o===".."?t++:o!=""&&r.push(o))}),r):[...r,s]},[]);return new oh(e,t,i)}var Po=class{segmentGroup;processChildren;index;constructor(t,e,i){this.segmentGroup=t,this.processChildren=e,this.index=i}};function jL(n,t,e){if(n.isAbsolute)return new Po(t,!0,0);if(!e)return new Po(t,!1,NaN);if(e.parent===null)return new Po(e,!0,0);let i=ah(n.commands[0])?0:1,r=e.segments.length-1+i;return WL(e,r,n.numberOfDoubleDots)}function WL(n,t,e){let i=n,r=t,s=e;for(;s>r;){if(s-=r,i=i.parent,!i)throw new je(4005,!1);r=i.segments.length}return new Po(i,!1,r-s)}function qL(n){return fc(n[0])?n[0].outlets:{[nt]:n}}function $w(n,t,e){if(n??=new Ct([],{}),n.segments.length===0&&n.hasChildren())return dc(n,t,e);let i=GL(n,t,e),r=e.slice(i.commandIndex);if(i.match&&i.pathIndexs!==nt)&&n.children[nt]&&n.numberOfChildren===1&&n.children[nt].segments.length===0){let s=dc(n.children[nt],t,e);return new Ct(n.segments,s.children)}return Object.entries(i).forEach(([s,a])=>{typeof a=="string"&&(a=[a]),a!==null&&(r[s]=$w(n.children[s],t,a))}),Object.entries(n.children).forEach(([s,a])=>{i[s]===void 0&&(r[s]=a)}),new Ct(n.segments,r)}}function GL(n,t,e){let i=0,r=t,s={match:!1,pathIndex:0,commandIndex:0};for(;r=e.length)return s;let a=n.segments[r],o=e[i];if(fc(o))break;let l=`${o}`,c=i0&&l===void 0)break;if(l&&c&&typeof c=="object"&&c.outlets===void 0){if(!vw(l,c,a))return s;i+=2}else{if(!vw(l,{},a))return s;i++}r++}return{match:!0,pathIndex:r,commandIndex:i}}function $0(n,t,e){let i=n.segments.slice(0,t),r=0;for(;r{typeof i=="string"&&(i=[i]),i!==null&&(t[e]=$0(new Ct([],{}),0,i))}),t}function _w(n){let t={};return Object.entries(n).forEach(([e,i])=>t[e]=`${i}`),t}function vw(n,t,e){return n==e.path&&Mr(t,e.parameters)}var hc="imperative",ci=function(n){return n[n.NavigationStart=0]="NavigationStart",n[n.NavigationEnd=1]="NavigationEnd",n[n.NavigationCancel=2]="NavigationCancel",n[n.NavigationError=3]="NavigationError",n[n.RoutesRecognized=4]="RoutesRecognized",n[n.ResolveStart=5]="ResolveStart",n[n.ResolveEnd=6]="ResolveEnd",n[n.GuardsCheckStart=7]="GuardsCheckStart",n[n.GuardsCheckEnd=8]="GuardsCheckEnd",n[n.RouteConfigLoadStart=9]="RouteConfigLoadStart",n[n.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",n[n.ChildActivationStart=11]="ChildActivationStart",n[n.ChildActivationEnd=12]="ChildActivationEnd",n[n.ActivationStart=13]="ActivationStart",n[n.ActivationEnd=14]="ActivationEnd",n[n.Scroll=15]="Scroll",n[n.NavigationSkipped=16]="NavigationSkipped",n}(ci||{}),Nn=class{id;url;constructor(t,e){this.id=t,this.url=e}},zo=class extends Nn{type=ci.NavigationStart;navigationTrigger;restoredState;constructor(t,e,i="imperative",r=null){super(t,e),this.navigationTrigger=i,this.restoredState=r}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}},Tr=class extends Nn{urlAfterRedirects;type=ci.NavigationEnd;constructor(t,e,i){super(t,e),this.urlAfterRedirects=i}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}},fn=function(n){return n[n.Redirect=0]="Redirect",n[n.SupersededByNewNavigation=1]="SupersededByNewNavigation",n[n.NoDataFromResolver=2]="NoDataFromResolver",n[n.GuardRejected=3]="GuardRejected",n}(fn||{}),lh=function(n){return n[n.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",n[n.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",n}(lh||{}),is=class extends Nn{reason;code;type=ci.NavigationCancel;constructor(t,e,i,r){super(t,e),this.reason=i,this.code=r}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}},qs=class extends Nn{reason;code;type=ci.NavigationSkipped;constructor(t,e,i,r){super(t,e),this.reason=i,this.code=r}},pc=class extends Nn{error;target;type=ci.NavigationError;constructor(t,e,i,r){super(t,e),this.error=i,this.target=r}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}},ch=class extends Nn{urlAfterRedirects;state;type=ci.RoutesRecognized;constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},V0=class extends Nn{urlAfterRedirects;state;type=ci.GuardsCheckStart;constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},B0=class extends Nn{urlAfterRedirects;state;shouldActivate;type=ci.GuardsCheckEnd;constructor(t,e,i,r,s){super(t,e),this.urlAfterRedirects=i,this.state=r,this.shouldActivate=s}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}},z0=class extends Nn{urlAfterRedirects;state;type=ci.ResolveStart;constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},H0=class extends Nn{urlAfterRedirects;state;type=ci.ResolveEnd;constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},j0=class{route;type=ci.RouteConfigLoadStart;constructor(t){this.route=t}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}},W0=class{route;type=ci.RouteConfigLoadEnd;constructor(t){this.route=t}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}},q0=class{snapshot;type=ci.ChildActivationStart;constructor(t){this.snapshot=t}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},G0=class{snapshot;type=ci.ChildActivationEnd;constructor(t){this.snapshot=t}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},K0=class{snapshot;type=ci.ActivationStart;constructor(t){this.snapshot=t}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Y0=class{snapshot;type=ci.ActivationEnd;constructor(t){this.snapshot=t}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},uh=class{routerEvent;position;anchor;type=ci.Scroll;constructor(t,e,i){this.routerEvent=t,this.position=e,this.anchor=i}toString(){let t=this.position?`${this.position[0]}, ${this.position[1]}`:null;return`Scroll(anchor: '${this.anchor}', position: '${t}')`}},gc=class{},Ho=class{url;navigationBehaviorOptions;constructor(t,e){this.url=t,this.navigationBehaviorOptions=e}};function YL(n,t){return n.providers&&!n._injector&&(n._injector=M0(n.providers,t,`Route: ${n.path}`)),n._injector??t}function rr(n){return n.outlet||nt}function QL(n,t){let e=n.filter(i=>rr(i)===t);return e.push(...n.filter(i=>rr(i)!==t)),e}function Sc(n){if(!n)return null;if(n.routeConfig?._injector)return n.routeConfig._injector;for(let t=n.parent;t;t=t.parent){let e=t.routeConfig;if(e?._loadedInjector)return e._loadedInjector;if(e?._injector)return e._injector}return null}var Q0=class{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return Sc(this.route?.snapshot)??this.rootInjector}constructor(t){this.rootInjector=t,this.children=new kc(this.rootInjector)}},kc=(()=>{class n{rootInjector;contexts=new Map;constructor(e){this.rootInjector=e}onChildOutletCreated(e,i){let r=this.getOrCreateContext(e);r.outlet=i,this.contexts.set(e,r)}onChildOutletDestroyed(e){let i=this.getContext(e);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){let e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let i=this.getContext(e);return i||(i=new Q0(this.rootInjector),this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}static \u0275fac=function(i){return new(i||n)(Oe(Zr))};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),dh=class{_root;constructor(t){this._root=t}get root(){return this._root.value}parent(t){let e=this.pathFromRoot(t);return e.length>1?e[e.length-2]:null}children(t){let e=Z0(t,this._root);return e?e.children.map(i=>i.value):[]}firstChild(t){let e=Z0(t,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(t){let e=X0(t,this._root);return e.length<2?[]:e[e.length-2].children.map(r=>r.value).filter(r=>r!==t)}pathFromRoot(t){return X0(t,this._root).map(e=>e.value)}};function Z0(n,t){if(n===t.value)return t;for(let e of t.children){let i=Z0(n,e);if(i)return i}return null}function X0(n,t){if(n===t.value)return[t];for(let e of t.children){let i=X0(n,e);if(i.length)return i.unshift(t),i}return[]}var mn=class{value;children;constructor(t,e){this.value=t,this.children=e}toString(){return`TreeNode(${this.value})`}};function Fo(n){let t={};return n&&n.children.forEach(e=>t[e.value.outlet]=e),t}var hh=class extends dh{snapshot;constructor(t,e){super(t),this.snapshot=e,og(this,t)}toString(){return this.snapshot.toString()}};function Vw(n){let t=ZL(n),e=new gi([new Aa("",{})]),i=new gi({}),r=new gi({}),s=new gi({}),a=new gi(""),o=new La(e,i,s,a,r,nt,n,t.root);return o.snapshot=t.root,new hh(new mn(o,[]),t)}function ZL(n){let t={},e={},i={},r="",s=new Uo([],t,i,r,e,nt,n,null,{});return new fh("",new mn(s,[]))}var La=class{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;constructor(t,e,i,r,s,a,o,l){this.urlSubject=t,this.paramsSubject=e,this.queryParamsSubject=i,this.fragmentSubject=r,this.dataSubject=s,this.outlet=a,this.component=o,this._futureSnapshot=l,this.title=this.dataSubject?.pipe(Le(c=>c[wc]))??_e(void 0),this.url=t,this.params=e,this.queryParams=i,this.fragment=r,this.data=s}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(Le(t=>Vo(t))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(Le(t=>Vo(t))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}};function mh(n,t,e="emptyOnly"){let i,{routeConfig:r}=n;return t!==null&&(e==="always"||r?.path===""||!t.component&&!t.routeConfig?.loadComponent)?i={params:j(j({},t.params),n.params),data:j(j({},t.data),n.data),resolve:j(j(j(j({},n.data),t.data),r?.data),n._resolvedData)}:i={params:j({},n.params),data:j({},n.data),resolve:j(j({},n.data),n._resolvedData??{})},r&&zw(r)&&(i.resolve[wc]=r.title),i}var Uo=class{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;get title(){return this.data?.[wc]}constructor(t,e,i,r,s,a,o,l,c){this.url=t,this.params=e,this.queryParams=i,this.fragment=r,this.data=s,this.outlet=a,this.component=o,this.routeConfig=l,this._resolve=c}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=Vo(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=Vo(this.queryParams),this._queryParamMap}toString(){let t=this.url.map(i=>i.toString()).join("/"),e=this.routeConfig?this.routeConfig.path:"";return`Route(url:'${t}', path:'${e}')`}},fh=class extends dh{url;constructor(t,e){super(e),this.url=t,og(this,e)}toString(){return Bw(this._root)}};function og(n,t){t.value._routerState=n,t.children.forEach(e=>og(n,e))}function Bw(n){let t=n.children.length>0?` { ${n.children.map(Bw).join(", ")} } `:"";return`${n.value}${t}`}function L0(n){if(n.snapshot){let t=n.snapshot,e=n._futureSnapshot;n.snapshot=e,Mr(t.queryParams,e.queryParams)||n.queryParamsSubject.next(e.queryParams),t.fragment!==e.fragment&&n.fragmentSubject.next(e.fragment),Mr(t.params,e.params)||n.paramsSubject.next(e.params),SL(t.url,e.url)||n.urlSubject.next(e.url),Mr(t.data,e.data)||n.dataSubject.next(e.data)}else n.snapshot=n._futureSnapshot,n.dataSubject.next(n._futureSnapshot.data)}function J0(n,t){let e=Mr(n.params,t.params)&&EL(n.url,t.url),i=!n.parent!=!t.parent;return e&&!i&&(!n.parent||J0(n.parent,t.parent))}function zw(n){return typeof n.title=="string"||n.title===null}var XL=new ee(""),lg=(()=>{class n{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=nt;activateEvents=new oe;deactivateEvents=new oe;attachEvents=new oe;detachEvents=new oe;routerOutletData=OC(void 0);parentContexts=L(kc);location=L(bi);changeDetector=L(Xe);inputBinder=L(bh,{optional:!0});supportsBindingToComponentInputs=!0;ngOnChanges(e){if(e.name){let{firstChange:i,previousValue:r}=e.name;if(i)return;this.isTrackedInParentContexts(r)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(r)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(e){return this.parentContexts.getContext(e)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;let e=this.parentContexts.getContext(this.name);e?.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new je(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new je(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new je(4012,!1);this.location.detach();let e=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(e.instance),e}attach(e,i){this.activated=e,this._activatedRoute=i,this.location.insert(e.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(e.instance)}deactivate(){if(this.activated){let e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,i){if(this.isActivated)throw new je(4013,!1);this._activatedRoute=e;let r=this.location,a=e.snapshot.component,o=this.parentContexts.getOrCreateContext(this.name).children,l=new eg(e,o,r.injector,this.routerOutletData);this.activated=r.createComponent(a,{index:r.length,injector:l,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[vt]})}return n})(),eg=class n{route;childContexts;parent;outletData;__ngOutletInjector(t){return new n(this.route,this.childContexts,t,this.outletData)}constructor(t,e,i,r){this.route=t,this.childContexts=e,this.parent=i,this.outletData=r}get(t,e){return t===La?this.route:t===kc?this.childContexts:t===XL?this.outletData:this.parent.get(t,e)}},bh=new ee(""),bw=(()=>{class n{outletDataSubscriptions=new Map;bindActivatedRouteToOutletComponent(e){this.unsubscribeFromRouteData(e),this.subscribeToRouteData(e)}unsubscribeFromRouteData(e){this.outletDataSubscriptions.get(e)?.unsubscribe(),this.outletDataSubscriptions.delete(e)}subscribeToRouteData(e){let{activatedRoute:i}=e,r=yr([i.queryParams,i.params,i.data]).pipe(Dt(([s,a,o],l)=>(o=j(j(j({},s),a),o),l===0?_e(o):Promise.resolve(o)))).subscribe(s=>{if(!e.isActivated||!e.activatedComponentRef||e.activatedRoute!==i||i.component===null){this.unsubscribeFromRouteData(e);return}let a=QC(i.component);if(!a){this.unsubscribeFromRouteData(e);return}for(let{templateName:o}of a.inputs)e.activatedComponentRef.setInput(o,s[o])});this.outletDataSubscriptions.set(e,r)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})();function JL(n,t,e){let i=_c(n,t._root,e?e._root:void 0);return new hh(i,t)}function _c(n,t,e){if(e&&n.shouldReuseRoute(t.value,e.value.snapshot)){let i=e.value;i._futureSnapshot=t.value;let r=eO(n,t,e);return new mn(i,r)}else{if(n.shouldAttach(t.value)){let s=n.retrieve(t.value);if(s!==null){let a=s.route;return a.value._futureSnapshot=t.value,a.children=t.children.map(o=>_c(n,o)),a}}let i=tO(t.value),r=t.children.map(s=>_c(n,s));return new mn(i,r)}}function eO(n,t,e){return t.children.map(i=>{for(let r of e.children)if(n.shouldReuseRoute(i.value,r.value.snapshot))return _c(n,i,r);return _c(n,i)})}function tO(n){return new La(new gi(n.url),new gi(n.params),new gi(n.queryParams),new gi(n.fragment),new gi(n.data),n.outlet,n.component,n)}var vc=class{redirectTo;navigationBehaviorOptions;constructor(t,e){this.redirectTo=t,this.navigationBehaviorOptions=e}},Hw="ngNavigationCancelingError";function ph(n,t){let{redirectTo:e,navigationBehaviorOptions:i}=Ra(t)?{redirectTo:t,navigationBehaviorOptions:void 0}:t,r=jw(!1,fn.Redirect);return r.url=e,r.navigationBehaviorOptions=i,r}function jw(n,t){let e=new Error(`NavigationCancelingError: ${n||""}`);return e[Hw]=!0,e.cancellationCode=t,e}function iO(n){return Ww(n)&&Ra(n.url)}function Ww(n){return!!n&&n[Hw]}var nO=(n,t,e,i)=>Le(r=>(new tg(t,r.targetRouterState,r.currentRouterState,e,i).activate(n),r)),tg=class{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;constructor(t,e,i,r,s){this.routeReuseStrategy=t,this.futureState=e,this.currState=i,this.forwardEvent=r,this.inputBindingEnabled=s}activate(t){let e=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,i,t),L0(this.futureState.root),this.activateChildRoutes(e,i,t)}deactivateChildRoutes(t,e,i){let r=Fo(e);t.children.forEach(s=>{let a=s.value.outlet;this.deactivateRoutes(s,r[a],i),delete r[a]}),Object.values(r).forEach(s=>{this.deactivateRouteAndItsChildren(s,i)})}deactivateRoutes(t,e,i){let r=t.value,s=e?e.value:null;if(r===s)if(r.component){let a=i.getContext(r.outlet);a&&this.deactivateChildRoutes(t,e,a.children)}else this.deactivateChildRoutes(t,e,i);else s&&this.deactivateRouteAndItsChildren(e,i)}deactivateRouteAndItsChildren(t,e){t.value.component&&this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,e):this.deactivateRouteAndOutlet(t,e)}detachAndStoreRouteSubtree(t,e){let i=e.getContext(t.value.outlet),r=i&&t.value.component?i.children:e,s=Fo(t);for(let a of Object.values(s))this.deactivateRouteAndItsChildren(a,r);if(i&&i.outlet){let a=i.outlet.detach(),o=i.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:a,route:t,contexts:o})}}deactivateRouteAndOutlet(t,e){let i=e.getContext(t.value.outlet),r=i&&t.value.component?i.children:e,s=Fo(t);for(let a of Object.values(s))this.deactivateRouteAndItsChildren(a,r);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(t,e,i){let r=Fo(e);t.children.forEach(s=>{this.activateRoutes(s,r[s.value.outlet],i),this.forwardEvent(new Y0(s.value.snapshot))}),t.children.length&&this.forwardEvent(new G0(t.value.snapshot))}activateRoutes(t,e,i){let r=t.value,s=e?e.value:null;if(L0(r),r===s)if(r.component){let a=i.getOrCreateContext(r.outlet);this.activateChildRoutes(t,e,a.children)}else this.activateChildRoutes(t,e,i);else if(r.component){let a=i.getOrCreateContext(r.outlet);if(this.routeReuseStrategy.shouldAttach(r.snapshot)){let o=this.routeReuseStrategy.retrieve(r.snapshot);this.routeReuseStrategy.store(r.snapshot,null),a.children.onOutletReAttached(o.contexts),a.attachRef=o.componentRef,a.route=o.route.value,a.outlet&&a.outlet.attach(o.componentRef,o.route.value),L0(o.route.value),this.activateChildRoutes(t,null,a.children)}else a.attachRef=null,a.route=r,a.outlet&&a.outlet.activateWith(r,a.injector),this.activateChildRoutes(t,null,a.children)}else this.activateChildRoutes(t,null,i)}},gh=class{path;route;constructor(t){this.path=t,this.route=this.path[this.path.length-1]}},$o=class{component;route;constructor(t,e){this.component=t,this.route=e}};function rO(n,t,e){let i=n._root,r=t?t._root:null;return cc(i,r,e,[i.value])}function sO(n){let t=n.routeConfig?n.routeConfig.canActivateChild:null;return!t||t.length===0?null:{node:n,guards:t}}function Wo(n,t){let e=Symbol(),i=t.get(n,e);return i===e?typeof n=="function"&&!DC(n)?n:t.get(n):i}function cc(n,t,e,i,r={canDeactivateChecks:[],canActivateChecks:[]}){let s=Fo(t);return n.children.forEach(a=>{aO(a,s[a.value.outlet],e,i.concat([a.value]),r),delete s[a.value.outlet]}),Object.entries(s).forEach(([a,o])=>mc(o,e.getContext(a),r)),r}function aO(n,t,e,i,r={canDeactivateChecks:[],canActivateChecks:[]}){let s=n.value,a=t?t.value:null,o=e?e.getContext(n.value.outlet):null;if(a&&s.routeConfig===a.routeConfig){let l=oO(a,s,s.routeConfig.runGuardsAndResolvers);l?r.canActivateChecks.push(new gh(i)):(s.data=a.data,s._resolvedData=a._resolvedData),s.component?cc(n,t,o?o.children:null,i,r):cc(n,t,e,i,r),l&&o&&o.outlet&&o.outlet.isActivated&&r.canDeactivateChecks.push(new $o(o.outlet.component,a))}else a&&mc(t,o,r),r.canActivateChecks.push(new gh(i)),s.component?cc(n,null,o?o.children:null,i,r):cc(n,null,e,i,r);return r}function oO(n,t,e){if(typeof e=="function")return e(n,t);switch(e){case"pathParamsChange":return!Da(n.url,t.url);case"pathParamsOrQueryParamsChange":return!Da(n.url,t.url)||!Mr(n.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!J0(n,t)||!Mr(n.queryParams,t.queryParams);case"paramsChange":default:return!J0(n,t)}}function mc(n,t,e){let i=Fo(n),r=n.value;Object.entries(i).forEach(([s,a])=>{r.component?t?mc(a,t.children.getContext(s),e):mc(a,null,e):mc(a,t,e)}),r.component?t&&t.outlet&&t.outlet.isActivated?e.canDeactivateChecks.push(new $o(t.outlet.component,r)):e.canDeactivateChecks.push(new $o(null,r)):e.canDeactivateChecks.push(new $o(null,r))}function Mc(n){return typeof n=="function"}function lO(n){return typeof n=="boolean"}function cO(n){return n&&Mc(n.canLoad)}function uO(n){return n&&Mc(n.canActivate)}function dO(n){return n&&Mc(n.canActivateChild)}function hO(n){return n&&Mc(n.canDeactivate)}function mO(n){return n&&Mc(n.canMatch)}function qw(n){return n instanceof SC||n?.name==="EmptyError"}var ih=Symbol("INITIAL_VALUE");function jo(){return Dt(n=>yr(n.map(t=>t.pipe(jt(1),Gt(ih)))).pipe(Le(t=>{for(let e of t)if(e!==!0){if(e===ih)return ih;if(e===!1||fO(e))return e}return!0}),st(t=>t!==ih),jt(1)))}function fO(n){return Ra(n)||n instanceof vc}function pO(n,t){return Pi(e=>{let{targetSnapshot:i,currentSnapshot:r,guards:{canActivateChecks:s,canDeactivateChecks:a}}=e;return a.length===0&&s.length===0?_e($e(j({},e),{guardsResult:!0})):gO(a,i,r,n).pipe(Pi(o=>o&&lO(o)?_O(i,s,n,t):_e(o)),Le(o=>$e(j({},e),{guardsResult:o})))})}function gO(n,t,e,i){return _i(n).pipe(Pi(r=>wO(r.component,r.route,e,t,i)),hn(r=>r!==!0,!0))}function _O(n,t,e,i){return _i(t).pipe(Fs(r=>Sa(bO(r.route.parent,i),vO(r.route,i),CO(n,r.path,e),yO(n,r.route,e))),hn(r=>r!==!0,!0))}function vO(n,t){return n!==null&&t&&t(new K0(n)),_e(!0)}function bO(n,t){return n!==null&&t&&t(new q0(n)),_e(!0)}function yO(n,t,e){let i=t.routeConfig?t.routeConfig.canActivate:null;if(!i||i.length===0)return _e(!0);let r=i.map(s=>Ns(()=>{let a=Sc(t)??e,o=Wo(s,a),l=uO(o)?o.canActivate(t,n):Cr(a,()=>o(t,n));return Ks(l).pipe(hn())}));return _e(r).pipe(jo())}function CO(n,t,e){let i=t[t.length-1],s=t.slice(0,t.length-1).reverse().map(a=>sO(a)).filter(a=>a!==null).map(a=>Ns(()=>{let o=a.guards.map(l=>{let c=Sc(a.node)??e,u=Wo(l,c),d=dO(u)?u.canActivateChild(i,n):Cr(c,()=>u(i,n));return Ks(d).pipe(hn())});return _e(o).pipe(jo())}));return _e(s).pipe(jo())}function wO(n,t,e,i,r){let s=t&&t.routeConfig?t.routeConfig.canDeactivate:null;if(!s||s.length===0)return _e(!0);let a=s.map(o=>{let l=Sc(t)??r,c=Wo(o,l),u=hO(c)?c.canDeactivate(n,t,e,i):Cr(l,()=>c(n,t,e,i));return Ks(u).pipe(hn())});return _e(a).pipe(jo())}function xO(n,t,e,i){let r=t.canLoad;if(r===void 0||r.length===0)return _e(!0);let s=r.map(a=>{let o=Wo(a,n),l=cO(o)?o.canLoad(t,e):Cr(n,()=>o(t,e));return Ks(l)});return _e(s).pipe(jo(),Gw(i))}function Gw(n){return xC(Et(t=>{if(typeof t!="boolean")throw ph(n,t)}),Le(t=>t===!0))}function SO(n,t,e,i){let r=t.canMatch;if(!r||r.length===0)return _e(!0);let s=r.map(a=>{let o=Wo(a,n),l=mO(o)?o.canMatch(t,e):Cr(n,()=>o(t,e));return Ks(l)});return _e(s).pipe(jo(),Gw(i))}var bc=class{segmentGroup;constructor(t){this.segmentGroup=t||null}},yc=class extends Error{urlTree;constructor(t){super(),this.urlTree=t}};function No(n){return er(new bc(n))}function kO(n){return er(new je(4e3,!1))}function MO(n){return er(jw(!1,fn.GuardRejected))}var ig=class{urlSerializer;urlTree;constructor(t,e){this.urlSerializer=t,this.urlTree=e}lineralizeSegments(t,e){let i=[],r=e.root;for(;;){if(i=i.concat(r.segments),r.numberOfChildren===0)return _e(i);if(r.numberOfChildren>1||!r.children[nt])return kO(`${t.redirectTo}`);r=r.children[nt]}}applyRedirectCommands(t,e,i,r,s){if(typeof e!="string"){let o=e,{queryParams:l,fragment:c,routeConfig:u,url:d,outlet:h,params:m,data:f,title:g}=r,v=Cr(s,()=>o({params:m,data:f,queryParams:l,fragment:c,routeConfig:u,url:d,outlet:h,title:g}));if(v instanceof ns)throw new yc(v);e=v}let a=this.applyRedirectCreateUrlTree(e,this.urlSerializer.parse(e),t,i);if(e[0]==="/")throw new yc(a);return a}applyRedirectCreateUrlTree(t,e,i,r){let s=this.createSegmentGroup(t,e.root,i,r);return new ns(s,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(t,e){let i={};return Object.entries(t).forEach(([r,s])=>{if(typeof s=="string"&&s[0]===":"){let o=s.substring(1);i[r]=e[o]}else i[r]=s}),i}createSegmentGroup(t,e,i,r){let s=this.createSegments(t,e.segments,i,r),a={};return Object.entries(e.children).forEach(([o,l])=>{a[o]=this.createSegmentGroup(t,l,i,r)}),new Ct(s,a)}createSegments(t,e,i,r){return e.map(s=>s.path[0]===":"?this.findPosParam(t,s,r):this.findOrReturn(s,i))}findPosParam(t,e,i){let r=i[e.path.substring(1)];if(!r)throw new je(4001,!1);return r}findOrReturn(t,e){let i=0;for(let r of e){if(r.path===t.path)return e.splice(i),r;i++}return t}},ng={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function TO(n,t,e,i,r){let s=Kw(n,t,e);return s.matched?(i=YL(t,i),SO(i,t,e,r).pipe(Le(a=>a===!0?s:j({},ng)))):_e(s)}function Kw(n,t,e){if(t.path==="**")return EO(e);if(t.path==="")return t.pathMatch==="full"&&(n.hasChildren()||e.length>0)?j({},ng):{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};let r=(t.matcher||xL)(e,n,t);if(!r)return j({},ng);let s={};Object.entries(r.posParams??{}).forEach(([o,l])=>{s[o]=l.path});let a=r.consumed.length>0?j(j({},s),r.consumed[r.consumed.length-1].parameters):s;return{matched:!0,consumedSegments:r.consumed,remainingSegments:e.slice(r.consumed.length),parameters:a,positionalParamSegments:r.posParams??{}}}function EO(n){return{matched:!0,parameters:n.length>0?Tw(n).parameters:{},consumedSegments:n,remainingSegments:[],positionalParamSegments:{}}}function yw(n,t,e,i){return e.length>0&&DO(n,e,i)?{segmentGroup:new Ct(t,AO(i,new Ct(e,n.children))),slicedSegments:[]}:e.length===0&&RO(n,e,i)?{segmentGroup:new Ct(n.segments,IO(n,e,i,n.children)),slicedSegments:e}:{segmentGroup:new Ct(n.segments,n.children),slicedSegments:e}}function IO(n,t,e,i){let r={};for(let s of e)if(yh(n,t,s)&&!i[rr(s)]){let a=new Ct([],{});r[rr(s)]=a}return j(j({},i),r)}function AO(n,t){let e={};e[nt]=t;for(let i of n)if(i.path===""&&rr(i)!==nt){let r=new Ct([],{});e[rr(i)]=r}return e}function DO(n,t,e){return e.some(i=>yh(n,t,i)&&rr(i)!==nt)}function RO(n,t,e){return e.some(i=>yh(n,t,i))}function yh(n,t,e){return(n.hasChildren()||t.length>0)&&e.pathMatch==="full"?!1:e.path===""}function LO(n,t,e){return t.length===0&&!n.children[e]}var rg=class{};function OO(n,t,e,i,r,s,a="emptyOnly"){return new sg(n,t,e,i,r,a,s).recognize()}var NO=31,sg=class{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(t,e,i,r,s,a,o){this.injector=t,this.configLoader=e,this.rootComponentType=i,this.config=r,this.urlTree=s,this.paramsInheritanceStrategy=a,this.urlSerializer=o,this.applyRedirects=new ig(this.urlSerializer,this.urlTree)}noMatchError(t){return new je(4002,`'${t.segmentGroup}'`)}recognize(){let t=yw(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(t).pipe(Le(({children:e,rootSnapshot:i})=>{let r=new mn(i,e),s=new fh("",r),a=zL(i,[],this.urlTree.queryParams,this.urlTree.fragment);return a.queryParams=this.urlTree.queryParams,s.url=this.urlSerializer.serialize(a),{state:s,tree:a}}))}match(t){let e=new Uo([],Object.freeze({}),Object.freeze(j({},this.urlTree.queryParams)),this.urlTree.fragment,Object.freeze({}),nt,this.rootComponentType,null,{});return this.processSegmentGroup(this.injector,this.config,t,nt,e).pipe(Le(i=>({children:i,rootSnapshot:e})),Zi(i=>{if(i instanceof yc)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof bc?this.noMatchError(i):i}))}processSegmentGroup(t,e,i,r,s){return i.segments.length===0&&i.hasChildren()?this.processChildren(t,e,i,s):this.processSegment(t,e,i,i.segments,r,!0,s).pipe(Le(a=>a instanceof mn?[a]:[]))}processChildren(t,e,i,r){let s=[];for(let a of Object.keys(i.children))a==="primary"?s.unshift(a):s.push(a);return _i(s).pipe(Fs(a=>{let o=i.children[a],l=QL(e,a);return this.processSegmentGroup(t,l,o,a,r)}),EC((a,o)=>(a.push(...o),a)),y0(null),TC(),Pi(a=>{if(a===null)return No(i);let o=Yw(a);return FO(o),_e(o)}))}processSegment(t,e,i,r,s,a,o){return _i(e).pipe(Fs(l=>this.processSegmentAgainstRoute(l._injector??t,e,l,i,r,s,a,o).pipe(Zi(c=>{if(c instanceof bc)return _e(null);throw c}))),hn(l=>!!l),Zi(l=>{if(qw(l))return LO(i,r,s)?_e(new rg):No(i);throw l}))}processSegmentAgainstRoute(t,e,i,r,s,a,o,l){return rr(i)!==a&&(a===nt||!yh(r,s,i))?No(r):i.redirectTo===void 0?this.matchSegmentAgainstRoute(t,r,i,s,a,l):this.allowRedirects&&o?this.expandSegmentAgainstRouteUsingRedirect(t,r,e,i,s,a,l):No(r)}expandSegmentAgainstRouteUsingRedirect(t,e,i,r,s,a,o){let{matched:l,parameters:c,consumedSegments:u,positionalParamSegments:d,remainingSegments:h}=Kw(e,r,s);if(!l)return No(e);typeof r.redirectTo=="string"&&r.redirectTo[0]==="/"&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>NO&&(this.allowRedirects=!1));let m=new Uo(s,c,Object.freeze(j({},this.urlTree.queryParams)),this.urlTree.fragment,Cw(r),rr(r),r.component??r._loadedComponent??null,r,ww(r)),f=mh(m,o,this.paramsInheritanceStrategy);m.params=Object.freeze(f.params),m.data=Object.freeze(f.data);let g=this.applyRedirects.applyRedirectCommands(u,r.redirectTo,d,m,t);return this.applyRedirects.lineralizeSegments(r,g).pipe(Pi(v=>this.processSegment(t,i,e,v.concat(h),a,!1,o)))}matchSegmentAgainstRoute(t,e,i,r,s,a){let o=TO(e,i,r,t,this.urlSerializer);return i.path==="**"&&(e.children={}),o.pipe(Dt(l=>l.matched?(t=i._injector??t,this.getChildConfig(t,i,r).pipe(Dt(({routes:c})=>{let u=i._loadedInjector??t,{parameters:d,consumedSegments:h,remainingSegments:m}=l,f=new Uo(h,d,Object.freeze(j({},this.urlTree.queryParams)),this.urlTree.fragment,Cw(i),rr(i),i.component??i._loadedComponent??null,i,ww(i)),g=mh(f,a,this.paramsInheritanceStrategy);f.params=Object.freeze(g.params),f.data=Object.freeze(g.data);let{segmentGroup:v,slicedSegments:w}=yw(e,h,m,c);if(w.length===0&&v.hasChildren())return this.processChildren(u,c,v,f).pipe(Le(k=>new mn(f,k)));if(c.length===0&&w.length===0)return _e(new mn(f,[]));let C=rr(i)===s;return this.processSegment(u,c,v,w,C?nt:s,!0,f).pipe(Le(k=>new mn(f,k instanceof mn?[k]:[])))}))):No(e)))}getChildConfig(t,e,i){return e.children?_e({routes:e.children,injector:t}):e.loadChildren?e._loadedRoutes!==void 0?_e({routes:e._loadedRoutes,injector:e._loadedInjector}):xO(t,e,i,this.urlSerializer).pipe(Pi(r=>r?this.configLoader.loadChildren(t,e).pipe(Et(s=>{e._loadedRoutes=s.routes,e._loadedInjector=s.injector})):MO(e))):_e({routes:[],injector:t})}};function FO(n){n.sort((t,e)=>t.value.outlet===nt?-1:e.value.outlet===nt?1:t.value.outlet.localeCompare(e.value.outlet))}function PO(n){let t=n.value.routeConfig;return t&&t.path===""}function Yw(n){let t=[],e=new Set;for(let i of n){if(!PO(i)){t.push(i);continue}let r=t.find(s=>i.value.routeConfig===s.value.routeConfig);r!==void 0?(r.children.push(...i.children),e.add(r)):t.push(i)}for(let i of e){let r=Yw(i.children);t.push(new mn(i.value,r))}return t.filter(i=>!e.has(i))}function Cw(n){return n.data||{}}function ww(n){return n.resolve||{}}function UO(n,t,e,i,r,s){return Pi(a=>OO(n,t,e,i,a.extractedUrl,r,s).pipe(Le(({state:o,tree:l})=>$e(j({},a),{targetSnapshot:o,urlAfterRedirects:l}))))}function $O(n,t){return Pi(e=>{let{targetSnapshot:i,guards:{canActivateChecks:r}}=e;if(!r.length)return _e(e);let s=new Set(r.map(l=>l.route)),a=new Set;for(let l of s)if(!a.has(l))for(let c of Qw(l))a.add(c);let o=0;return _i(a).pipe(Fs(l=>s.has(l)?VO(l,i,n,t):(l.data=mh(l,l.parent,n).resolve,_e(void 0))),Et(()=>o++),C0(1),Pi(l=>o===a.size?_e(e):In))})}function Qw(n){let t=n.children.map(e=>Qw(e)).flat();return[n,...t]}function VO(n,t,e,i){let r=n.routeConfig,s=n._resolve;return r?.title!==void 0&&!zw(r)&&(s[wc]=r.title),BO(s,n,t,i).pipe(Le(a=>(n._resolvedData=a,n.data=mh(n,n.parent,e).resolve,null)))}function BO(n,t,e,i){let r=F0(n);if(r.length===0)return _e({});let s={};return _i(r).pipe(Pi(a=>zO(n[a],t,e,i).pipe(hn(),Et(o=>{if(o instanceof vc)throw ph(new Bo,o);s[a]=o}))),C0(1),Bd(s),Zi(a=>qw(a)?In:er(a)))}function zO(n,t,e,i){let r=Sc(t)??i,s=Wo(n,r),a=s.resolve?s.resolve(t,e):Cr(r,()=>s(t,e));return Ks(a)}function O0(n){return Dt(t=>{let e=n(t);return e?_i(e).pipe(Le(()=>t)):_e(t)})}var Zw=(()=>{class n{buildTitle(e){let i,r=e.root;for(;r!==void 0;)i=this.getResolvedTitleForRoute(r)??i,r=r.children.find(s=>s.outlet===nt);return i}getResolvedTitleForRoute(e){return e.data[wc]}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:()=>L(HO),providedIn:"root"})}return n})(),HO=(()=>{class n extends Zw{title;constructor(e){super(),this.title=e}updateTitle(e){let i=this.buildTitle(e);i!==void 0&&this.title.setTitle(i)}static \u0275fac=function(i){return new(i||n)(Oe(uw))};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Tc=new ee("",{providedIn:"root",factory:()=>({})}),jO=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["ng-component"]],decls:1,vars:0,template:function(i,r){i&1&&ne(0,"router-outlet")},dependencies:[lg],encapsulation:2})}return n})();function cg(n){let t=n.children&&n.children.map(cg),e=t?$e(j({},n),{children:t}):j({},n);return!e.component&&!e.loadComponent&&(t||e.loadChildren)&&e.outlet&&e.outlet!==nt&&(e.component=jO),e}var _h=new ee(""),ug=(()=>{class n{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=L(Zd);loadComponent(e){if(this.componentLoaders.get(e))return this.componentLoaders.get(e);if(e._loadedComponent)return _e(e._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(e);let i=Ks(e.loadComponent()).pipe(Le(Xw),Et(s=>{this.onLoadEndListener&&this.onLoadEndListener(e),e._loadedComponent=s}),Io(()=>{this.componentLoaders.delete(e)})),r=new Ud(i,()=>new me).pipe(v0());return this.componentLoaders.set(e,r),r}loadChildren(e,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return _e({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);let s=WO(i,this.compiler,e,this.onLoadEndListener).pipe(Io(()=>{this.childrenLoaders.delete(i)})),a=new Ud(s,()=>new me).pipe(v0());return this.childrenLoaders.set(i,a),a}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function WO(n,t,e,i){return Ks(n.loadChildren()).pipe(Le(Xw),Pi(r=>r instanceof $C||Array.isArray(r)?_e(r):_i(t.compileModuleAsync(r))),Le(r=>{i&&i(n);let s,a,o=!1;return Array.isArray(r)?(a=r,o=!0):(s=r.create(e).injector,a=s.get(_h,[],{optional:!0,self:!0}).flat()),{routes:a.map(cg),injector:s}}))}function qO(n){return n&&typeof n=="object"&&"default"in n}function Xw(n){return qO(n)?n.default:n}var dg=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:()=>L(GO),providedIn:"root"})}return n})(),GO=(()=>{class n{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Jw=new ee(""),ex=new ee("");function KO(n,t,e){let i=n.get(ex),r=n.get(it);return n.get(Ne).runOutsideAngular(()=>{if(!r.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,new Promise(c=>setTimeout(c));let s,a=new Promise(c=>{s=c}),o=r.startViewTransition(()=>(s(),YO(n))),{onViewTransitionCreated:l}=i;return l&&Cr(n,()=>l({transition:o,from:t,to:e})),a})}function YO(n){return new Promise(t=>{vi({read:()=>setTimeout(t)},{injector:n})})}var tx=new ee(""),hg=(()=>{class n{currentNavigation=null;currentTransition=null;lastSuccessfulNavigation=null;events=new me;transitionAbortSubject=new me;configLoader=L(ug);environmentInjector=L(Zr);urlSerializer=L(xc);rootContexts=L(kc);location=L(Ia);inputBindingEnabled=L(bh,{optional:!0})!==null;titleStrategy=L(Zw);options=L(Tc,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly";urlHandlingStrategy=L(dg);createViewTransition=L(Jw,{optional:!0});navigationErrorHandler=L(tx,{optional:!0});navigationId=0;get hasRequestedNavigation(){return this.navigationId!==0}transitions;afterPreactivation=()=>_e(void 0);rootComponentType=null;constructor(){let e=r=>this.events.next(new j0(r)),i=r=>this.events.next(new W0(r));this.configLoader.onLoadEndListener=i,this.configLoader.onLoadStartListener=e}complete(){this.transitions?.complete()}handleNavigationRequest(e){let i=++this.navigationId;this.transitions?.next($e(j(j({},this.transitions.value),e),{id:i}))}setupNavigations(e,i,r){return this.transitions=new gi({id:0,currentUrlTree:i,currentRawUrl:i,extractedUrl:this.urlHandlingStrategy.extract(i),urlAfterRedirects:this.urlHandlingStrategy.extract(i),rawUrl:i,extras:{},resolve:()=>{},reject:()=>{},promise:Promise.resolve(!0),source:hc,restoredState:null,currentSnapshot:r.snapshot,targetSnapshot:null,currentRouterState:r,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(st(s=>s.id!==0),Le(s=>$e(j({},s),{extractedUrl:this.urlHandlingStrategy.extract(s.rawUrl)})),Dt(s=>{let a=!1,o=!1;return _e(s).pipe(Dt(l=>{if(this.navigationId>s.id)return this.cancelNavigationTransition(s,"",fn.SupersededByNewNavigation),In;this.currentTransition=s,this.currentNavigation={id:l.id,initialUrl:l.rawUrl,extractedUrl:l.extractedUrl,targetBrowserUrl:typeof l.extras.browserUrl=="string"?this.urlSerializer.parse(l.extras.browserUrl):l.extras.browserUrl,trigger:l.source,extras:l.extras,previousNavigation:this.lastSuccessfulNavigation?$e(j({},this.lastSuccessfulNavigation),{previousNavigation:null}):null};let c=!e.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl(),u=l.extras.onSameUrlNavigation??e.onSameUrlNavigation;if(!c&&u!=="reload"){let d="";return this.events.next(new qs(l.id,this.urlSerializer.serialize(l.rawUrl),d,lh.IgnoredSameUrlNavigation)),l.resolve(!1),In}if(this.urlHandlingStrategy.shouldProcessUrl(l.rawUrl))return _e(l).pipe(Dt(d=>{let h=this.transitions?.getValue();return this.events.next(new zo(d.id,this.urlSerializer.serialize(d.extractedUrl),d.source,d.restoredState)),h!==this.transitions?.getValue()?In:Promise.resolve(d)}),UO(this.environmentInjector,this.configLoader,this.rootComponentType,e.config,this.urlSerializer,this.paramsInheritanceStrategy),Et(d=>{s.targetSnapshot=d.targetSnapshot,s.urlAfterRedirects=d.urlAfterRedirects,this.currentNavigation=$e(j({},this.currentNavigation),{finalUrl:d.urlAfterRedirects});let h=new ch(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects),d.targetSnapshot);this.events.next(h)}));if(c&&this.urlHandlingStrategy.shouldProcessUrl(l.currentRawUrl)){let{id:d,extractedUrl:h,source:m,restoredState:f,extras:g}=l,v=new zo(d,this.urlSerializer.serialize(h),m,f);this.events.next(v);let w=Vw(this.rootComponentType).snapshot;return this.currentTransition=s=$e(j({},l),{targetSnapshot:w,urlAfterRedirects:h,extras:$e(j({},g),{skipLocationChange:!1,replaceUrl:!1})}),this.currentNavigation.finalUrl=h,_e(s)}else{let d="";return this.events.next(new qs(l.id,this.urlSerializer.serialize(l.extractedUrl),d,lh.IgnoredByUrlHandlingStrategy)),l.resolve(!1),In}}),Et(l=>{let c=new V0(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot);this.events.next(c)}),Le(l=>(this.currentTransition=s=$e(j({},l),{guards:rO(l.targetSnapshot,l.currentSnapshot,this.rootContexts)}),s)),pO(this.environmentInjector,l=>this.events.next(l)),Et(l=>{if(s.guardsResult=l.guardsResult,l.guardsResult&&typeof l.guardsResult!="boolean")throw ph(this.urlSerializer,l.guardsResult);let c=new B0(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot,!!l.guardsResult);this.events.next(c)}),st(l=>l.guardsResult?!0:(this.cancelNavigationTransition(l,"",fn.GuardRejected),!1)),O0(l=>{if(l.guards.canActivateChecks.length)return _e(l).pipe(Et(c=>{let u=new z0(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(u)}),Dt(c=>{let u=!1;return _e(c).pipe($O(this.paramsInheritanceStrategy,this.environmentInjector),Et({next:()=>u=!0,complete:()=>{u||this.cancelNavigationTransition(c,"",fn.NoDataFromResolver)}}))}),Et(c=>{let u=new H0(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(u)}))}),O0(l=>{let c=u=>{let d=[];u.routeConfig?.loadComponent&&!u.routeConfig._loadedComponent&&d.push(this.configLoader.loadComponent(u.routeConfig).pipe(Et(h=>{u.component=h}),Le(()=>{})));for(let h of u.children)d.push(...c(h));return d};return yr(c(l.targetSnapshot.root)).pipe(y0(null),jt(1))}),O0(()=>this.afterPreactivation()),Dt(()=>{let{currentSnapshot:l,targetSnapshot:c}=s,u=this.createViewTransition?.(this.environmentInjector,l.root,c.root);return u?_i(u).pipe(Le(()=>s)):_e(s)}),Le(l=>{let c=JL(e.routeReuseStrategy,l.targetSnapshot,l.currentRouterState);return this.currentTransition=s=$e(j({},l),{targetRouterState:c}),this.currentNavigation.targetRouterState=c,s}),Et(()=>{this.events.next(new gc)}),nO(this.rootContexts,e.routeReuseStrategy,l=>this.events.next(l),this.inputBindingEnabled),jt(1),Et({next:l=>{a=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new Tr(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects))),this.titleStrategy?.updateTitle(l.targetRouterState.snapshot),l.resolve(!0)},complete:()=>{a=!0}}),qe(this.transitionAbortSubject.pipe(Et(l=>{throw l}))),Io(()=>{!a&&!o&&this.cancelNavigationTransition(s,"",fn.SupersededByNewNavigation),this.currentTransition?.id===s.id&&(this.currentNavigation=null,this.currentTransition=null)}),Zi(l=>{if(o=!0,Ww(l))this.events.next(new is(s.id,this.urlSerializer.serialize(s.extractedUrl),l.message,l.cancellationCode)),iO(l)?this.events.next(new Ho(l.url,l.navigationBehaviorOptions)):s.resolve(!1);else{let c=new pc(s.id,this.urlSerializer.serialize(s.extractedUrl),l,s.targetSnapshot??void 0);try{let u=Cr(this.environmentInjector,()=>this.navigationErrorHandler?.(c));if(u instanceof vc){let{message:d,cancellationCode:h}=ph(this.urlSerializer,u);this.events.next(new is(s.id,this.urlSerializer.serialize(s.extractedUrl),d,h)),this.events.next(new Ho(u.redirectTo,u.navigationBehaviorOptions))}else throw this.events.next(c),l}catch(u){this.options.resolveNavigationPromiseOnError?s.resolve(!1):s.reject(u)}}return In}))}))}cancelNavigationTransition(e,i,r){let s=new is(e.id,this.urlSerializer.serialize(e.extractedUrl),i,r);this.events.next(s),e.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){let e=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),i=this.currentNavigation?.targetBrowserUrl??this.currentNavigation?.extractedUrl;return e.toString()!==i?.toString()&&!this.currentNavigation?.extras.skipLocationChange}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function QO(n){return n!==hc}var ZO=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:()=>L(XO),providedIn:"root"})}return n})(),ag=class{shouldDetach(t){return!1}store(t,e){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,e){return t.routeConfig===e.routeConfig}},XO=(()=>{class n extends ag{static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),ix=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:()=>L(JO),providedIn:"root"})}return n})(),JO=(()=>{class n extends ix{location=L(Ia);urlSerializer=L(xc);options=L(Tc,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";urlHandlingStrategy=L(dg);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new ns;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}currentPageId=0;lastSuccessfulId=-1;restoredState(){return this.location.getState()}get browserPageId(){return this.canceledNavigationResolution!=="computed"?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}routerState=Vw(null);getRouterState(){return this.routerState}stateMemento=this.createStateMemento();createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(e){return this.location.subscribe(i=>{i.type==="popstate"&&e(i.url,i.state)})}handleRouterEvent(e,i){if(e instanceof zo)this.stateMemento=this.createStateMemento();else if(e instanceof qs)this.rawUrlTree=i.initialUrl;else if(e instanceof ch){if(this.urlUpdateStrategy==="eager"&&!i.extras.skipLocationChange){let r=this.urlHandlingStrategy.merge(i.finalUrl,i.initialUrl);this.setBrowserUrl(i.targetBrowserUrl??r,i)}}else e instanceof gc?(this.currentUrlTree=i.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(i.finalUrl,i.initialUrl),this.routerState=i.targetRouterState,this.urlUpdateStrategy==="deferred"&&!i.extras.skipLocationChange&&this.setBrowserUrl(i.targetBrowserUrl??this.rawUrlTree,i)):e instanceof is&&(e.code===fn.GuardRejected||e.code===fn.NoDataFromResolver)?this.restoreHistory(i):e instanceof pc?this.restoreHistory(i,!0):e instanceof Tr&&(this.lastSuccessfulId=e.id,this.currentPageId=this.browserPageId)}setBrowserUrl(e,i){let r=e instanceof ns?this.urlSerializer.serialize(e):e;if(this.location.isCurrentPathEqualTo(r)||i.extras.replaceUrl){let s=this.browserPageId,a=j(j({},i.extras.state),this.generateNgRouterState(i.id,s));this.location.replaceState(r,"",a)}else{let s=j(j({},i.extras.state),this.generateNgRouterState(i.id,this.browserPageId+1));this.location.go(r,"",s)}}restoreHistory(e,i=!1){if(this.canceledNavigationResolution==="computed"){let r=this.browserPageId,s=this.currentPageId-r;s!==0?this.location.historyGo(s):this.currentUrlTree===e.finalUrl&&s===0&&(this.resetState(e),this.resetUrlToCurrentUrlTree())}else this.canceledNavigationResolution==="replace"&&(i&&this.resetState(e),this.resetUrlToCurrentUrlTree())}resetState(e){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return this.canceledNavigationResolution==="computed"?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),uc=function(n){return n[n.COMPLETE=0]="COMPLETE",n[n.FAILED=1]="FAILED",n[n.REDIRECTING=2]="REDIRECTING",n}(uc||{});function nx(n,t){n.events.pipe(st(e=>e instanceof Tr||e instanceof is||e instanceof pc||e instanceof qs),Le(e=>e instanceof Tr||e instanceof qs?uc.COMPLETE:(e instanceof is?e.code===fn.Redirect||e.code===fn.SupersededByNewNavigation:!1)?uc.REDIRECTING:uc.FAILED),st(e=>e!==uc.REDIRECTING),jt(1)).subscribe(()=>{t()})}var eN={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},tN={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"},Gs=(()=>{class n{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=L(BC);stateManager=L(ix);options=L(Tc,{optional:!0})||{};pendingTasks=L(LC);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=L(hg);urlSerializer=L(xc);location=L(Ia);urlHandlingStrategy=L(dg);_events=new me;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=L(ZO);onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=L(_h,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!L(bh,{optional:!0});constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:e=>{this.console.warn(e)}}),this.subscribeToNavigationEvents()}eventsSubscription=new Mt;subscribeToNavigationEvents(){let e=this.navigationTransitions.events.subscribe(i=>{try{let r=this.navigationTransitions.currentTransition,s=this.navigationTransitions.currentNavigation;if(r!==null&&s!==null){if(this.stateManager.handleRouterEvent(i,s),i instanceof is&&i.code!==fn.Redirect&&i.code!==fn.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof Tr)this.navigated=!0;else if(i instanceof Ho){let a=i.navigationBehaviorOptions,o=this.urlHandlingStrategy.merge(i.url,r.currentRawUrl),l=j({browserUrl:r.extras.browserUrl,info:r.extras.info,skipLocationChange:r.extras.skipLocationChange,replaceUrl:r.extras.replaceUrl||this.urlUpdateStrategy==="eager"||QO(r.source)},a);this.scheduleNavigation(o,hc,null,l,{resolve:r.resolve,reject:r.reject,promise:r.promise})}}nN(i)&&this._events.next(i)}catch(r){this.navigationTransitions.transitionAbortSubject.next(r)}});this.eventsSubscription.add(e)}resetRootComponentType(e){this.routerState.root.component=e,this.navigationTransitions.rootComponentType=e}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),hc,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((e,i)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(e,"popstate",i)},0)})}navigateToSyncWithBrowser(e,i,r){let s={replaceUrl:!0},a=r?.navigationId?r:null;if(r){let l=j({},r);delete l.navigationId,delete l.\u0275routerPageId,Object.keys(l).length!==0&&(s.state=l)}let o=this.parseUrl(e);this.scheduleNavigation(o,i,a,s)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(e){this.config=e.map(cg),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(e,i={}){let{relativeTo:r,queryParams:s,fragment:a,queryParamsHandling:o,preserveFragment:l}=i,c=l?this.currentUrlTree.fragment:a,u=null;switch(o??this.options.defaultQueryParamsHandling){case"merge":u=j(j({},this.currentUrlTree.queryParams),s);break;case"preserve":u=this.currentUrlTree.queryParams;break;default:u=s||null}u!==null&&(u=this.removeEmptyProps(u));let d;try{let h=r?r.snapshot:this.routerState.snapshot.root;d=Fw(h)}catch{(typeof e[0]!="string"||e[0][0]!=="/")&&(e=[]),d=this.currentUrlTree.root}return Pw(d,e,u,c??null)}navigateByUrl(e,i={skipLocationChange:!1}){let r=Ra(e)?e:this.parseUrl(e),s=this.urlHandlingStrategy.merge(r,this.rawUrlTree);return this.scheduleNavigation(s,hc,null,i)}navigate(e,i={skipLocationChange:!1}){return iN(e),this.navigateByUrl(this.createUrlTree(e,i),i)}serializeUrl(e){return this.urlSerializer.serialize(e)}parseUrl(e){try{return this.urlSerializer.parse(e)}catch{return this.urlSerializer.parse("/")}}isActive(e,i){let r;if(i===!0?r=j({},eN):i===!1?r=j({},tN):r=i,Ra(e))return pw(this.currentUrlTree,e,r);let s=this.parseUrl(e);return pw(this.currentUrlTree,s,r)}removeEmptyProps(e){return Object.entries(e).reduce((i,[r,s])=>(s!=null&&(i[r]=s),i),{})}scheduleNavigation(e,i,r,s,a){if(this.disposed)return Promise.resolve(!1);let o,l,c;a?(o=a.resolve,l=a.reject,c=a.promise):c=new Promise((d,h)=>{o=d,l=h});let u=this.pendingTasks.add();return nx(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(u))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:r,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:s,resolve:o,reject:l,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(d=>Promise.reject(d))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function iN(n){for(let t=0;t{class n{router;route;tabIndexAttribute;renderer;el;locationStrategy;href=null;target;queryParams;fragment;queryParamsHandling;state;info;relativeTo;isAnchorElement;subscription;onChanges=new me;constructor(e,i,r,s,a,o){this.router=e,this.route=i,this.tabIndexAttribute=r,this.renderer=s,this.el=a,this.locationStrategy=o;let l=a.nativeElement.tagName?.toLowerCase();this.isAnchorElement=l==="a"||l==="area",this.isAnchorElement?this.subscription=e.events.subscribe(c=>{c instanceof Tr&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}preserveFragment=!1;skipLocationChange=!1;replaceUrl=!1;setTabIndexIfNotOnNativeEl(e){this.tabIndexAttribute!=null||this.isAnchorElement||this.applyAttributeValue("tabindex",e)}ngOnChanges(e){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}routerLinkInput=null;set routerLink(e){e==null?(this.routerLinkInput=null,this.setTabIndexIfNotOnNativeEl(null)):(Ra(e)?this.routerLinkInput=e:this.routerLinkInput=Array.isArray(e)?e:[e],this.setTabIndexIfNotOnNativeEl("0"))}onClick(e,i,r,s,a){let o=this.urlTree;if(o===null||this.isAnchorElement&&(e!==0||i||r||s||a||typeof this.target=="string"&&this.target!="_self"))return!0;let l={skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info};return this.router.navigateByUrl(o,l),!this.isAnchorElement}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){let e=this.urlTree;this.href=e!==null&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(e)):null;let i=this.href===null?null:PC(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",i)}applyAttributeValue(e,i){let r=this.renderer,s=this.el.nativeElement;i!==null?r.setAttribute(s,e,i):r.removeAttribute(s,e)}get urlTree(){return this.routerLinkInput===null?null:Ra(this.routerLinkInput)?this.routerLinkInput:this.router.createUrlTree(this.routerLinkInput,{relativeTo:this.relativeTo!==void 0?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static \u0275fac=function(i){return new(i||n)(Se(Gs),Se(La),RC("tabindex"),Se(rc),Se(Ae),Se(ac))};static \u0275dir=xe({type:n,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(i,r){i&1&&J("click",function(a){return r.onClick(a.button,a.ctrlKey,a.shiftKey,a.altKey,a.metaKey)}),i&2&&Me("target",r.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[2,"preserveFragment","preserveFragment",be],skipLocationChange:[2,"skipLocationChange","skipLocationChange",be],replaceUrl:[2,"replaceUrl","replaceUrl",be],routerLink:"routerLink"},features:[Qe,vt]})}return n})();var vh=class{};var rN=(()=>{class n{router;injector;preloadingStrategy;loader;subscription;constructor(e,i,r,s,a){this.router=e,this.injector=r,this.preloadingStrategy=s,this.loader=a}setUpPreloading(){this.subscription=this.router.events.pipe(st(e=>e instanceof Tr),Fs(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(e,i){let r=[];for(let s of i){s.providers&&!s._injector&&(s._injector=M0(s.providers,e,`Route: ${s.path}`));let a=s._injector??e,o=s._loadedInjector??a;(s.loadChildren&&!s._loadedRoutes&&s.canLoad===void 0||s.loadComponent&&!s._loadedComponent)&&r.push(this.preloadConfig(a,s)),(s.children||s._loadedRoutes)&&r.push(this.processRoutes(o,s.children??s._loadedRoutes))}return _i(r).pipe(b0())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{let r;i.loadChildren&&i.canLoad===void 0?r=this.loader.loadChildren(e,i):r=_e(null);let s=r.pipe(Pi(a=>a===null?_e(void 0):(i._loadedRoutes=a.routes,i._loadedInjector=a.injector,this.processRoutes(a.injector??e,a.routes))));if(i.loadComponent&&!i._loadedComponent){let a=this.loader.loadComponent(i);return _i([s,a]).pipe(b0())}else return s})}static \u0275fac=function(i){return new(i||n)(Oe(Gs),Oe(Zd),Oe(Zr),Oe(vh),Oe(ug))};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),rx=new ee(""),sN=(()=>{class n{urlSerializer;transitions;viewportScroller;zone;options;routerEventsSubscription;scrollEventsSubscription;lastId=0;lastSource="imperative";restoredId=0;store={};constructor(e,i,r,s,a={}){this.urlSerializer=e,this.transitions=i,this.viewportScroller=r,this.zone=s,this.options=a,a.scrollPositionRestoration||="disabled",a.anchorScrolling||="disabled"}init(){this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof zo?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof Tr?(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment)):e instanceof qs&&e.code===lh.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof uh&&(e.position?this.options.scrollPositionRestoration==="top"?this.viewportScroller.scrollToPosition([0,0]):this.options.scrollPositionRestoration==="enabled"&&this.viewportScroller.scrollToPosition(e.position):e.anchor&&this.options.anchorScrolling==="enabled"?this.viewportScroller.scrollToAnchor(e.anchor):this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(e,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new uh(e,this.lastSource==="popstate"?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static \u0275fac=function(i){Wd()};static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})();function aN(n){return n.routerState.root}function Ec(n,t){return{\u0275kind:n,\u0275providers:t}}function oN(){let n=L(gt);return t=>{let e=n.get(tr);if(t!==e.components[0])return;let i=n.get(Gs),r=n.get(sx);n.get(mg)===1&&i.initialNavigation(),n.get(ax,null,x0.Optional)?.setUpPreloading(),n.get(rx,null,x0.Optional)?.init(),i.resetRootComponentType(e.componentTypes[0]),r.closed||(r.next(),r.complete(),r.unsubscribe())}}var sx=new ee("",{factory:()=>new me}),mg=new ee("",{providedIn:"root",factory:()=>1});function lN(){return Ec(2,[{provide:mg,useValue:0},{provide:T0,multi:!0,deps:[gt],useFactory:t=>{let e=t.get(ZC,Promise.resolve());return()=>e.then(()=>new Promise(i=>{let r=t.get(Gs),s=t.get(sx);nx(r,()=>{i(!0)}),t.get(hg).afterPreactivation=()=>(i(!0),s.closed?_e(void 0):s),r.initialNavigation()}))}}])}function cN(){return Ec(3,[{provide:T0,multi:!0,useFactory:()=>{let t=L(Gs);return()=>{t.setUpLocationChangeListener()}}},{provide:mg,useValue:2}])}var ax=new ee("");function uN(n){return Ec(0,[{provide:ax,useExisting:rN},{provide:vh,useExisting:n}])}function dN(){return Ec(8,[bw,{provide:bh,useExisting:bw}])}function hN(n){let t=[{provide:Jw,useValue:KO},{provide:ex,useValue:j({skipNextTransition:!!n?.skipInitialTransition},n)}];return Ec(9,t)}var xw=new ee("ROUTER_FORROOT_GUARD"),mN=[Ia,{provide:xc,useClass:Bo},Gs,kc,{provide:La,useFactory:aN,deps:[Gs]},ug,[]],ox=(()=>{class n{constructor(e){}static forRoot(e,i){return{ngModule:n,providers:[mN,[],{provide:_h,multi:!0,useValue:e},{provide:xw,useFactory:_N,deps:[[Gs,new Us,new ka]]},i?.errorHandler?{provide:tx,useValue:i.errorHandler}:[],{provide:Tc,useValue:i||{}},i?.useHash?pN():gN(),fN(),i?.preloadingStrategy?uN(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?vN(i):[],i?.bindToComponentInputs?dN().\u0275providers:[],i?.enableViewTransitions?hN().\u0275providers:[],bN()]}}static forChild(e){return{ngModule:n,providers:[{provide:_h,multi:!0,useValue:e}]}}static \u0275fac=function(i){return new(i||n)(Oe(xw,8))};static \u0275mod=ge({type:n});static \u0275inj=pe({})}return n})();function fN(){return{provide:rx,useFactory:()=>{let n=L(rw),t=L(Ne),e=L(Tc),i=L(hg),r=L(xc);return e.scrollOffset&&n.setOffset(e.scrollOffset),new sN(r,i,n,t,e)}}}function pN(){return{provide:ac,useClass:ew}}function gN(){return{provide:ac,useClass:JC}}function _N(n){return"guarded"}function vN(n){return[n.initialNavigation==="disabled"?cN().\u0275providers:[],n.initialNavigation==="enabledBlocking"?lN().\u0275providers:[]]}var Sw=new ee("");function bN(){return[{provide:Sw,useFactory:oN},{provide:zC,multi:!0,useExisting:Sw}]}var rs=class{},fg=(()=>{class n extends rs{getTranslation(e){return _e({})}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})(),qo=class{},pg=(()=>{class n{handle(e){return e.key}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})();function Na(n){return typeof n<"u"&&n!==null}function Th(n){return wh(n)&&!yg(n)}function wh(n){return typeof n=="object"}function yg(n){return Array.isArray(n)}function cx(n){return typeof n=="string"}function yN(n){return typeof n=="function"}function gg(n,t){let e=Object.assign({},n);return wh(n)?(wh(n)&&wh(t)&&Object.keys(t).forEach(i=>{Th(t[i])?i in n?e[i]=gg(n[i],t[i]):Object.assign(e,{[i]:t[i]}):Object.assign(e,{[i]:t[i]})}),e):gg({},t)}function _g(n,t){let e=t.split(".");t="";do t+=e.shift(),Na(n)&&Na(n[t])&&(Th(n[t])||yg(n[t])||!e.length)?(n=n[t],t=""):e.length?t+=".":n=void 0;while(e.length);return n}function CN(n,t,e){let i=t.split("."),r=n;for(let s=0;s{class n extends Fa{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(e,i){if(cx(e))return this.interpolateString(e,i);if(yN(e))return this.interpolateFunction(e,i)}interpolateFunction(e,i){return e(i)}interpolateString(e,i){return i?e.replace(this.templateMatcher,(r,s)=>{let a=_g(i,s);return Na(a)?a:r}):e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})(),Pa=class{},bg=(()=>{class n extends Pa{compile(e,i){return e}compileTranslations(e,i){return e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})(),Ac=class{defaultLang;currentLang=this.defaultLang;translations={};langs=[];onTranslationChange=new oe;onLangChange=new oe;onDefaultLangChange=new oe},xh=new ee("ISOALTE_TRANSLATE_SERVICE"),Sh=new ee("USE_DEFAULT_LANG"),kh=new ee("DEFAULT_LANGUAGE"),Mh=new ee("USE_EXTEND"),Ic=n=>br(n)?n:_e(n),Dc=(()=>{class n{store;currentLoader;compiler;parser;missingTranslationHandler;useDefaultLang;isolate;extend;loadingTranslations;pending=!1;_onTranslationChange=new oe;_onLangChange=new oe;_onDefaultLangChange=new oe;_defaultLang;_currentLang;_langs=[];_translations={};_translationRequests={};lastUseLanguage=null;get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(e){this.isolate?this._defaultLang=e:this.store.defaultLang=e}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(e){this.isolate?this._currentLang=e:this.store.currentLang=e}get langs(){return this.isolate?this._langs:this.store.langs}set langs(e){this.isolate?this._langs=e:this.store.langs=e}get translations(){return this.isolate?this._translations:this.store.translations}set translations(e){this.isolate?this._translations=e:this.store.translations=e}constructor(e,i,r,s,a,o=!0,l=!1,c=!1,u){this.store=e,this.currentLoader=i,this.compiler=r,this.parser=s,this.missingTranslationHandler=a,this.useDefaultLang=o,this.isolate=l,this.extend=c,u&&this.setDefaultLang(u)}setDefaultLang(e){if(e===this.defaultLang)return;let i=this.retrieveTranslations(e);typeof i<"u"?(this.defaultLang==null&&(this.defaultLang=e),i.pipe(jt(1)).subscribe(()=>{this.changeDefaultLang(e)})):this.changeDefaultLang(e)}getDefaultLang(){return this.defaultLang}use(e){if(this.lastUseLanguage=e,e===this.currentLang)return _e(this.translations[e]);this.currentLang||(this.currentLang=e);let i=this.retrieveTranslations(e);return br(i)?(i.pipe(jt(1)).subscribe(()=>{this.changeLang(e)}),i):(this.changeLang(e),_e(this.translations[e]))}changeLang(e){e===this.lastUseLanguage&&(this.currentLang=e,this.onLangChange.emit({lang:e,translations:this.translations[e]}),this.defaultLang==null&&this.changeDefaultLang(e))}retrieveTranslations(e){if(typeof this.translations[e]>"u"||this.extend)return this._translationRequests[e]=this._translationRequests[e]||this.loadAndCompileTranslations(e),this._translationRequests[e]}getTranslation(e){return this.loadAndCompileTranslations(e)}loadAndCompileTranslations(e){this.pending=!0;let i=this.currentLoader.getTranslation(e).pipe(Ps(1),jt(1));return this.loadingTranslations=i.pipe(Le(r=>this.compiler.compileTranslations(r,e)),Ps(1),jt(1)),this.loadingTranslations.subscribe({next:r=>{this.translations[e]=this.extend&&this.translations[e]?j(j({},r),this.translations[e]):r,this.updateLangs(),this.pending=!1},error:r=>{this.pending=!1}}),i}setTranslation(e,i,r=!1){let s=this.compiler.compileTranslations(i,e);(r||this.extend)&&this.translations[e]?this.translations[e]=gg(this.translations[e],s):this.translations[e]=s,this.updateLangs(),this.onTranslationChange.emit({lang:e,translations:this.translations[e]})}getLangs(){return this.langs}addLangs(e){e.forEach(i=>{this.langs.indexOf(i)===-1&&this.langs.push(i)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResultForKey(e,i,r){let s;if(e&&(s=this.runInterpolation(_g(e,i),r)),s===void 0&&this.defaultLang!=null&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(s=this.runInterpolation(_g(this.translations[this.defaultLang],i),r)),s===void 0){let a={key:i,translateService:this};typeof r<"u"&&(a.interpolateParams=r),s=this.missingTranslationHandler.handle(a)}return s!==void 0?s:i}runInterpolation(e,i){if(yg(e))return e.map(r=>this.runInterpolation(r,i));if(Th(e)){let r={};for(let s in e)r[s]=this.runInterpolation(e[s],i);return r}else return this.parser.interpolate(e,i)}getParsedResult(e,i,r){if(i instanceof Array){let s={},a=!1;for(let l of i)s[l]=this.getParsedResultForKey(e,l,r),a=a||br(s[l]);if(!a)return s;let o=i.map(l=>Ic(s[l]));return To(o).pipe(Le(l=>{let c={};return l.forEach((u,d)=>{c[i[d]]=u}),c}))}return this.getParsedResultForKey(e,i,r)}get(e,i){if(!Na(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return this.pending?this.loadingTranslations.pipe(Fs(r=>Ic(this.getParsedResult(r,e,i)))):Ic(this.getParsedResult(this.translations[this.currentLang],e,i))}getStreamOnTranslationChange(e,i){if(!Na(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return Sa(Ns(()=>this.get(e,i)),this.onTranslationChange.pipe(Dt(r=>{let s=this.getParsedResult(r.translations,e,i);return Ic(s)})))}stream(e,i){if(!Na(e)||!e.length)throw new Error('Parameter "key" required');return Sa(Ns(()=>this.get(e,i)),this.onLangChange.pipe(Dt(r=>{let s=this.getParsedResult(r.translations,e,i);return Ic(s)})))}instant(e,i){if(!Na(e)||e.length===0)throw new Error('Parameter "key" is required and cannot be empty');let r=this.getParsedResult(this.translations[this.currentLang],e,i);return br(r)?Array.isArray(e)?e.reduce((s,a)=>(s[a]=a,s),{}):e:r}set(e,i,r=this.currentLang){CN(this.translations[r],e,cx(i)?this.compiler.compile(i,r):this.compiler.compileTranslations(i,r)),this.updateLangs(),this.onTranslationChange.emit({lang:r,translations:this.translations[r]})}changeDefaultLang(e){this.defaultLang=e,this.onDefaultLangChange.emit({lang:e,translations:this.translations[e]})}reloadLang(e){return this.resetLang(e),this.loadAndCompileTranslations(e)}resetLang(e){delete this._translationRequests[e],delete this.translations[e]}getBrowserLang(){if(typeof window>"u"||!window.navigator)return;let e=this.getBrowserCultureLang();return e?e.split(/[-_]/)[0]:void 0}getBrowserCultureLang(){if(!(typeof window>"u"||typeof window.navigator>"u"))return window.navigator.languages?window.navigator.languages[0]:window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage}static \u0275fac=function(i){return new(i||n)(Oe(Ac),Oe(rs),Oe(Pa),Oe(Fa),Oe(qo),Oe(Sh),Oe(xh),Oe(Mh),Oe(kh))};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var ux=(n={})=>Ma([n.loader||{provide:rs,useClass:fg},n.compiler||{provide:Pa,useClass:bg},n.parser||{provide:Fa,useClass:vg},n.missingTranslationHandler||{provide:qo,useClass:pg},Ac,{provide:xh,useValue:n.isolate},{provide:Sh,useValue:n.useDefaultLang},{provide:Mh,useValue:n.extend},{provide:kh,useValue:n.defaultLanguage},Dc]),Cg=(()=>{class n{static forRoot(e={}){return{ngModule:n,providers:[e.loader||{provide:rs,useClass:fg},e.compiler||{provide:Pa,useClass:bg},e.parser||{provide:Fa,useClass:vg},e.missingTranslationHandler||{provide:qo,useClass:pg},Ac,{provide:xh,useValue:e.isolate},{provide:Sh,useValue:e.useDefaultLang},{provide:Mh,useValue:e.extend},{provide:kh,useValue:e.defaultLanguage},Dc]}}static forChild(e={}){return{ngModule:n,providers:[e.loader||{provide:rs,useClass:fg},e.compiler||{provide:Pa,useClass:bg},e.parser||{provide:Fa,useClass:vg},e.missingTranslationHandler||{provide:qo,useClass:pg},{provide:xh,useValue:e.isolate},{provide:Sh,useValue:e.useDefaultLang},{provide:Mh,useValue:e.extend},{provide:kh,useValue:e.defaultLanguage},Dc]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({})}return n})();var Eh=class{http;prefix;suffix;constructor(t,e="/assets/i18n/",i=".json"){this.http=t,this.prefix=e,this.suffix=i}getTranslation(t){return this.http.get(`${this.prefix}${t}${this.suffix}`)}};var gS=Os(Ng());var Fn=(()=>{class n{constructor(){}changeFhirMicroService(e){localStorage.setItem("fhirMicroServer",e)}getFhirMicroService(){return localStorage.getItem("fhirMicroServer")}getFhirClient(){return new gS.default({baseUrl:this.getFhirMicroService()})}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var Nh=(()=>{class n{redirectHashUrl(){let e=window.location.href;window.location.replace(e.replace("#/",""))}isHashUrl(){return window.location.href.indexOf("#/")>-1}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var jg;try{jg=typeof Intl<"u"&&Intl.v8BreakIterator}catch{jg=!1}var ct=(()=>{class n{_platformId=L(Hd);isBrowser=this._platformId?ts(this._platformId):typeof document=="object"&&!!document;EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent);TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent);BLINK=this.isBrowser&&!!(window.chrome||jg)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT;WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT;IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window);FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent);ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT;SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT;constructor(){}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Xo,_S=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function Wg(){if(Xo)return Xo;if(typeof document!="object"||!document)return Xo=new Set(_S),Xo;let n=document.createElement("input");return Xo=new Set(_S.filter(t=>(n.setAttribute("type",t),n.type===t))),Xo}var Lc;function yF(){if(Lc==null&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Lc=!0}))}finally{Lc=Lc||!1}return Lc}function Ai(n){return yF()?n:!!n.capture}var sr=function(n){return n[n.NORMAL=0]="NORMAL",n[n.NEGATED=1]="NEGATED",n[n.INVERTED=2]="INVERTED",n}(sr||{}),Fh,$a;function Ph(){if($a==null){if(typeof document!="object"||!document||typeof Element!="function"||!Element)return $a=!1,$a;if("scrollBehavior"in document.documentElement.style)$a=!0;else{let n=Element.prototype.scrollTo;n?$a=!/\{\s*\[native code\]\s*\}/.test(n.toString()):$a=!1}}return $a}function Jo(){if(typeof document!="object"||!document)return sr.NORMAL;if(Fh==null){let n=document.createElement("div"),t=n.style;n.dir="rtl",t.width="1px",t.overflow="auto",t.visibility="hidden",t.pointerEvents="none",t.position="absolute";let e=document.createElement("div"),i=e.style;i.width="2px",i.height="1px",n.appendChild(e),document.body.appendChild(n),Fh=sr.NORMAL,n.scrollLeft===0&&(n.scrollLeft=1,Fh=n.scrollLeft===0?sr.NEGATED:sr.INVERTED),n.remove()}return Fh}var Hg;function CF(){if(Hg==null){let n=typeof document<"u"?document.head:null;Hg=!!(n&&(n.createShadowRoot||n.attachShadow))}return Hg}function vS(n){if(CF()){let t=n.getRootNode?n.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&t instanceof ShadowRoot)return t}return null}function qg(){let n=typeof document<"u"&&document?document.activeElement:null;for(;n&&n.shadowRoot;){let t=n.shadowRoot.activeElement;if(t===n)break;n=t}return n}function gn(n){return n.composedPath?n.composedPath()[0]:n.target}function Gg(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}var Uh=new WeakMap,wt=(()=>{class n{_appRef;_injector=L(gt);_environmentInjector=L(Zr);load(e){let i=this._appRef=this._appRef||this._injector.get(tr),r=Uh.get(i);r||(r={loaders:new Set,refs:[]},Uh.set(i,r),i.onDestroy(()=>{Uh.get(i)?.refs.forEach(s=>s.destroy()),Uh.delete(i)})),r.loaders.has(e)||(r.loaders.add(e),r.refs.push(Jd(e,{environmentInjector:this._environmentInjector})))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),os=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["ng-component"]],exportAs:["cdkVisuallyHidden"],decls:0,vars:0,template:function(i,r){},styles:[".cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}"],encapsulation:2,changeDetection:0})}return n})();function Vi(n,...t){return t.length?t.some(e=>n[e]):n.altKey||n.shiftKey||n.ctrlKey||n.metaKey}function Pn(n){return n!=null&&`${n}`!="false"}function ls(n,t=0){return wF(n)?Number(n):arguments.length===2?t:0}function wF(n){return!isNaN(parseFloat(n))&&!isNaN(Number(n))}function el(n){return Array.isArray(n)?n:[n]}function Jt(n){return n==null?"":typeof n=="string"?n:`${n}px`}function rn(n){return n instanceof Ae?n.nativeElement:n}function xF(n){if(n.type==="characterData"&&n.target instanceof Comment)return!0;if(n.type==="childList"){for(let t=0;t{class n{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),yS=(()=>{class n{_mutationObserverFactory=L(bS);_observedElements=new Map;_ngZone=L(Ne);constructor(){}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){let i=rn(e);return new Jn(r=>{let a=this._observeElement(i).pipe(Le(o=>o.filter(l=>!xF(l))),st(o=>!!o.length)).subscribe(o=>{this._ngZone.run(()=>{r.next(o)})});return()=>{a.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){return this._ngZone.runOutsideAngular(()=>{if(this._observedElements.has(e))this._observedElements.get(e).count++;else{let i=new me,r=this._mutationObserverFactory.create(s=>i.next(s));r&&r.observe(e,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(e,{observer:r,stream:i,count:1})}return this._observedElements.get(e).stream})}_unobserveElement(e){this._observedElements.has(e)&&(this._observedElements.get(e).count--,this._observedElements.get(e).count||this._cleanupObserver(e))}_cleanupObserver(e){if(this._observedElements.has(e)){let{observer:i,stream:r}=this._observedElements.get(e);i&&i.disconnect(),r.complete(),this._observedElements.delete(e)}}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),CS=(()=>{class n{_contentObserver=L(yS);_elementRef=L(Ae);event=new oe;get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._disabled?this._unsubscribe():this._subscribe()}_disabled=!1;get debounce(){return this._debounce}set debounce(e){this._debounce=ls(e),this._subscribe()}_debounce;_currentSubscription=null;constructor(){}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();let e=this._contentObserver.observe(this._elementRef);this._currentSubscription=(this.debounce?e.pipe(Ui(this.debounce)):e).subscribe(this.event)}_unsubscribe(){this._currentSubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[2,"cdkObserveContentDisabled","disabled",be],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"],features:[Qe]})}return n})(),$h=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({providers:[bS]})}return n})();var wS=new Set,Va,SF=(()=>{class n{_platform=L(ct);_nonce=L(NC,{optional:!0});_matchMedia;constructor(){this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):MF}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&kF(e,this._nonce),this._matchMedia(e)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function kF(n,t){if(!wS.has(n))try{Va||(Va=document.createElement("style"),t&&Va.setAttribute("nonce",t),Va.setAttribute("type","text/css"),document.head.appendChild(Va)),Va.sheet&&(Va.sheet.insertRule(`@media ${n} {body{ }}`,0),wS.add(n))}catch(e){console.error(e)}}function MF(n){return{matches:n==="all"||n==="",media:n,addListener:()=>{},removeListener:()=>{}}}var SS=(()=>{class n{_mediaMatcher=L(SF);_zone=L(Ne);_queries=new Map;_destroySubject=new me;constructor(){}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return xS(el(e)).some(r=>this._registerQuery(r).mql.matches)}observe(e){let r=xS(el(e)).map(a=>this._registerQuery(a).observable),s=yr(r);return s=Sa(s.pipe(jt(1)),s.pipe(Ao(1),Ui(0))),s.pipe(Le(a=>{let o={matches:!1,breakpoints:{}};return a.forEach(({matches:l,query:c})=>{o.matches=o.matches||l,o.breakpoints[c]=l}),o}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);let i=this._mediaMatcher.matchMedia(e),s={observable:new Jn(a=>{let o=l=>this._zone.run(()=>a.next(l));return i.addListener(o),()=>{i.removeListener(o)}}).pipe(Gt(i),Le(({matches:a})=>({query:e,matches:a})),qe(this._destroySubject)),mql:i};return this._queries.set(e,s),s}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function xS(n){return n.map(t=>t.split(",")).reduce((t,e)=>t.concat(e)).map(t=>t.trim())}var IS=" ";function t_(n,t,e){let i=Hh(n,t);e=e.trim(),!i.some(r=>r.trim()===e)&&(i.push(e),n.setAttribute(t,i.join(IS)))}function qh(n,t,e){let i=Hh(n,t);e=e.trim();let r=i.filter(s=>s!==e);r.length?n.setAttribute(t,r.join(IS)):n.removeAttribute(t)}function Hh(n,t){return n.getAttribute(t)?.match(/\S+/g)??[]}var AS="cdk-describedby-message",Vh="cdk-describedby-host",Zg=0,DS=(()=>{class n{_platform=L(ct);_document=L(it);_messageRegistry=new Map;_messagesContainer=null;_id=`${Zg++}`;constructor(){L(wt).load(os),this._id=L(S0)+"-"+Zg++}describe(e,i,r){if(!this._canBeDescribed(e,i))return;let s=Kg(i,r);typeof i!="string"?(kS(i,this._id),this._messageRegistry.set(s,{messageElement:i,referenceCount:0})):this._messageRegistry.has(s)||this._createMessageElement(i,r),this._isElementDescribedByMessage(e,s)||this._addMessageReference(e,s)}removeDescription(e,i,r){if(!i||!this._isElementNode(e))return;let s=Kg(i,r);if(this._isElementDescribedByMessage(e,s)&&this._removeMessageReference(e,s),typeof i=="string"){let a=this._messageRegistry.get(s);a&&a.referenceCount===0&&this._deleteMessageElement(s)}this._messagesContainer?.childNodes.length===0&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){let e=this._document.querySelectorAll(`[${Vh}="${this._id}"]`);for(let i=0;ir.indexOf(AS)!=0);e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){let r=this._messageRegistry.get(i);t_(e,"aria-describedby",r.messageElement.id),e.setAttribute(Vh,this._id),r.referenceCount++}_removeMessageReference(e,i){let r=this._messageRegistry.get(i);r.referenceCount--,qh(e,"aria-describedby",r.messageElement.id),e.removeAttribute(Vh)}_isElementDescribedByMessage(e,i){let r=Hh(e,"aria-describedby"),s=this._messageRegistry.get(i),a=s&&s.messageElement.id;return!!a&&r.indexOf(a)!=-1}_canBeDescribed(e,i){if(!this._isElementNode(e))return!1;if(i&&typeof i=="object")return!0;let r=i==null?"":`${i}`.trim(),s=e.getAttribute("aria-label");return r?!s||s.trim()!==r:!1}_isElementNode(e){return e.nodeType===this._document.ELEMENT_NODE}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function Kg(n,t){return typeof n=="string"?`${t||""}/${n}`:n}function kS(n,t){n.id||(n.id=`${AS}-${t}-${Zg++}`)}var FF=200,Xg=class{_letterKeyStream=new me;_items=[];_selectedItemIndex=-1;_pressedLetters=[];_skipPredicateFn;_selectedItem=new me;selectedItem=this._selectedItem;constructor(t,e){let i=typeof e?.debounceInterval=="number"?e.debounceInterval:FF;e?.skipPredicate&&(this._skipPredicateFn=e.skipPredicate),this.setItems(t),this._setupKeyHandler(i)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(t){this._selectedItemIndex=t}setItems(t){this._items=t}handleKey(t){let e=t.keyCode;t.key&&t.key.length===1?this._letterKeyStream.next(t.key.toLocaleUpperCase()):(e>=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(t){this._letterKeyStream.pipe(Et(e=>this._pressedLetters.push(e)),Ui(t),st(()=>this._pressedLetters.length>0),Le(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(e=>{for(let i=1;it.disabled;constructor(t,e){this._items=t,t instanceof Do?this._itemChangesSubscription=t.changes.subscribe(i=>this._itemsChanged(i.toArray())):Ta(t)&&(this._effectRef=Xd(()=>this._itemsChanged(t()),{injector:e}))}tabOut=new me;change=new me;skipPredicate(t){return this._skipPredicateFn=t,this}withWrap(t=!0){return this._wrap=t,this}withVerticalOrientation(t=!0){return this._vertical=t,this}withHorizontalOrientation(t){return this._horizontal=t,this}withAllowedModifierKeys(t){return this._allowedModifierKeys=t,this}withTypeAhead(t=200){this._typeaheadSubscription.unsubscribe();let e=this._getItemsArray();return this._typeahead=new Xg(e,{debounceInterval:typeof t=="number"?t:void 0,skipPredicate:i=>this._skipPredicateFn(i)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(i=>{this.setActiveItem(i)}),this}cancelTypeahead(){return this._typeahead?.reset(),this}withHomeAndEnd(t=!0){return this._homeAndEnd=t,this}withPageUpDown(t=!0,e=10){return this._pageUpAndDown={enabled:t,delta:e},this}setActiveItem(t){let e=this._activeItem();this.updateActiveItem(t),this._activeItem()!==e&&this.change.next(this._activeItemIndex)}onKeydown(t){let e=t.keyCode,r=["altKey","ctrlKey","metaKey","shiftKey"].every(s=>!t[s]||this._allowedModifierKeys.indexOf(s)>-1);switch(e){case 9:this.tabOut.next();return;case 40:if(this._vertical&&r){this.setNextItemActive();break}else return;case 38:if(this._vertical&&r){this.setPreviousItemActive();break}else return;case 39:if(this._horizontal&&r){this._horizontal==="rtl"?this.setPreviousItemActive():this.setNextItemActive();break}else return;case 37:if(this._horizontal&&r){this._horizontal==="rtl"?this.setNextItemActive():this.setPreviousItemActive();break}else return;case 36:if(this._homeAndEnd&&r){this.setFirstItemActive();break}else return;case 35:if(this._homeAndEnd&&r){this.setLastItemActive();break}else return;case 33:if(this._pageUpAndDown.enabled&&r){let s=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(s>0?s:0,1);break}else return;case 34:if(this._pageUpAndDown.enabled&&r){let s=this._activeItemIndex+this._pageUpAndDown.delta,a=this._getItemsArray().length;this._setActiveItemByIndex(s-1&&i!==this._activeItemIndex&&(this._activeItemIndex=i,this._typeahead?.setCurrentSelectedItemIndex(i))}}},Wh=class extends jh{setActiveItem(t){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(t),this.activeItem&&this.activeItem.setActiveStyles()}},Oc=class extends jh{_origin="program";setFocusOrigin(t){return this._origin=t,this}setActiveItem(t){super.setActiveItem(t),this.activeItem&&this.activeItem.focus(this._origin)}};var PF=(()=>{class n{_platform=L(ct);constructor(){}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return $F(e)&&getComputedStyle(e).visibility==="visible"}isTabbable(e){if(!this._platform.isBrowser)return!1;let i=UF(GF(e));if(i&&(MS(i)===-1||!this.isVisible(i)))return!1;let r=e.nodeName.toLowerCase(),s=MS(e);return e.hasAttribute("contenteditable")?s!==-1:r==="iframe"||r==="object"||this._platform.WEBKIT&&this._platform.IOS&&!WF(e)?!1:r==="audio"?e.hasAttribute("controls")?s!==-1:!1:r==="video"?s===-1?!1:s!==null?!0:this._platform.FIREFOX||e.hasAttribute("controls"):e.tabIndex>=0}isFocusable(e,i){return qF(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function UF(n){try{return n.frameElement}catch{return null}}function $F(n){return!!(n.offsetWidth||n.offsetHeight||typeof n.getClientRects=="function"&&n.getClientRects().length)}function VF(n){let t=n.nodeName.toLowerCase();return t==="input"||t==="select"||t==="button"||t==="textarea"}function BF(n){return HF(n)&&n.type=="hidden"}function zF(n){return jF(n)&&n.hasAttribute("href")}function HF(n){return n.nodeName.toLowerCase()=="input"}function jF(n){return n.nodeName.toLowerCase()=="a"}function RS(n){if(!n.hasAttribute("tabindex")||n.tabIndex===void 0)return!1;let t=n.getAttribute("tabindex");return!!(t&&!isNaN(parseInt(t,10)))}function MS(n){if(!RS(n))return null;let t=parseInt(n.getAttribute("tabindex")||"",10);return isNaN(t)?-1:t}function WF(n){let t=n.nodeName.toLowerCase(),e=t==="input"&&n.type;return e==="text"||e==="password"||t==="select"||t==="textarea"}function qF(n){return BF(n)?!1:VF(n)||zF(n)||n.hasAttribute("contenteditable")||RS(n)}function GF(n){return n.ownerDocument&&n.ownerDocument.defaultView||window}var Jg=class{_element;_checker;_ngZone;_document;_injector;_startAnchor;_endAnchor;_hasAttached=!1;startAnchorListener=()=>this.focusLastTabbableElement();endAnchorListener=()=>this.focusFirstTabbableElement();get enabled(){return this._enabled}set enabled(t){this._enabled=t,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}_enabled=!0;constructor(t,e,i,r,s=!1,a){this._element=t,this._checker=e,this._ngZone=i,this._document=r,this._injector=a,s||this.attachAnchors()}destroy(){let t=this._startAnchor,e=this._endAnchor;t&&(t.removeEventListener("focus",this.startAnchorListener),t.remove()),e&&(e.removeEventListener("focus",this.endAnchorListener),e.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return this._hasAttached?!0:(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(t)))})}focusFirstTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(t)))})}focusLastTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(t)))})}_getRegionBoundary(t){let e=this._element.querySelectorAll(`[cdk-focus-region-${t}], [cdkFocusRegion${t}], [cdk-focus-${t}]`);return t=="start"?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(t){let e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(e){if(!this._checker.isFocusable(e)){let i=this._getFirstTabbableElement(e);return i?.focus(t),!!i}return e.focus(t),!0}return this.focusFirstTabbableElement(t)}focusFirstTabbableElement(t){let e=this._getRegionBoundary("start");return e&&e.focus(t),!!e}focusLastTabbableElement(t){let e=this._getRegionBoundary("end");return e&&e.focus(t),!!e}hasAttached(){return this._hasAttached}_getFirstTabbableElement(t){if(this._checker.isFocusable(t)&&this._checker.isTabbable(t))return t;let e=t.children;for(let i=0;i=0;i--){let r=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(r)return r}return null}_createAnchor(){let t=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,t),t.classList.add("cdk-visually-hidden"),t.classList.add("cdk-focus-trap-anchor"),t.setAttribute("aria-hidden","true"),t}_toggleAnchorTabIndex(t,e){t?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(t){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}_executeOnStable(t){this._injector?vi(t,{injector:this._injector}):setTimeout(t)}},KF=(()=>{class n{_checker=L(PF);_ngZone=L(Ne);_document=L(it);_injector=L(gt);constructor(){L(wt).load(os)}create(e,i=!1){return new Jg(e,this._checker,this._ngZone,this._document,i,this._injector)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),LS=(()=>{class n{_elementRef=L(Ae);_focusTrapFactory=L(KF);focusTrap;_previouslyFocusedElement=null;get enabled(){return this.focusTrap?.enabled||!1}set enabled(e){this.focusTrap&&(this.focusTrap.enabled=e)}autoCapture;constructor(){L(ct).isBrowser&&(this.focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement,!0))}ngOnDestroy(){this.focusTrap?.destroy(),this._previouslyFocusedElement&&(this._previouslyFocusedElement.focus(),this._previouslyFocusedElement=null)}ngAfterContentInit(){this.focusTrap?.attachAnchors(),this.autoCapture&&this._captureFocus()}ngDoCheck(){this.focusTrap&&!this.focusTrap.hasAttached()&&this.focusTrap.attachAnchors()}ngOnChanges(e){let i=e.autoCapture;i&&!i.firstChange&&this.autoCapture&&this.focusTrap?.hasAttached()&&this._captureFocus()}_captureFocus(){this._previouslyFocusedElement=qg(),this.focusTrap?.focusInitialElementWhenReady()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdkTrapFocus",""]],inputs:{enabled:[2,"cdkTrapFocus","enabled",be],autoCapture:[2,"cdkTrapFocusAutoCapture","autoCapture",be]},exportAs:["cdkTrapFocus"],features:[Qe,vt]})}return n})();function Gh(n){return n.buttons===0||n.detail===0}function Kh(n){let t=n.touches&&n.touches[0]||n.changedTouches&&n.changedTouches[0];return!!t&&t.identifier===-1&&(t.radiusX==null||t.radiusX===1)&&(t.radiusY==null||t.radiusY===1)}var YF=new ee("cdk-input-modality-detector-options"),QF={ignoreKeys:[18,17,224,91,16]},OS=650,tl=Ai({passive:!0,capture:!0}),ZF=(()=>{class n{_platform=L(ct);modalityDetected;modalityChanged;get mostRecentModality(){return this._modality.value}_mostRecentTarget=null;_modality=new gi(null);_options;_lastTouchMs=0;_onKeydown=e=>{this._options?.ignoreKeys?.some(i=>i===e.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=gn(e))};_onMousedown=e=>{Date.now()-this._lastTouchMs{if(Kh(e)){this._modality.next("keyboard");return}this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=gn(e)};constructor(){let e=L(Ne),i=L(it),r=L(YF,{optional:!0});this._options=j(j({},QF),r),this.modalityDetected=this._modality.pipe(Ao(1)),this.modalityChanged=this.modalityDetected.pipe(An()),this._platform.isBrowser&&e.runOutsideAngular(()=>{i.addEventListener("keydown",this._onKeydown,tl),i.addEventListener("mousedown",this._onMousedown,tl),i.addEventListener("touchstart",this._onTouchstart,tl)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,tl),document.removeEventListener("mousedown",this._onMousedown,tl),document.removeEventListener("touchstart",this._onTouchstart,tl))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),XF=new ee("liveAnnouncerElement",{providedIn:"root",factory:JF});function JF(){return null}var eP=new ee("LIVE_ANNOUNCER_DEFAULT_OPTIONS"),tP=0,NS=(()=>{class n{_ngZone=L(Ne);_defaultOptions=L(eP,{optional:!0});_liveElement;_document=L(it);_previousTimeout;_currentPromise;_currentResolve;constructor(){let e=L(XF,{optional:!0});this._liveElement=e||this._createLiveElement()}announce(e,...i){let r=this._defaultOptions,s,a;return i.length===1&&typeof i[0]=="number"?a=i[0]:[s,a]=i,this.clear(),clearTimeout(this._previousTimeout),s||(s=r&&r.politeness?r.politeness:"polite"),a==null&&r&&(a=r.duration),this._liveElement.setAttribute("aria-live",s),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(o=>this._currentResolve=o)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=e,typeof a=="number"&&(this._previousTimeout=setTimeout(()=>this.clear(),a)),this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){let e="cdk-live-announcer-element",i=this._document.getElementsByClassName(e),r=this._document.createElement("div");for(let s=0;s .cdk-overlay-container [aria-modal="true"]');for(let r=0;r{class n{_ngZone=L(Ne);_platform=L(ct);_inputModalityDetector=L(ZF);_origin=null;_lastFocusOrigin;_windowFocused=!1;_windowFocusTimeoutId;_originTimeoutId;_originFromTouchInteraction=!1;_elementInfo=new Map;_monitoredElementCount=0;_rootNodeFocusListenerCount=new Map;_detectionMode;_windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)};_document=L(it,{optional:!0});_stopInputModalityDetector=new me;constructor(){let e=L(iP,{optional:!0});this._detectionMode=e?.detectionMode||zh.IMMEDIATE}_rootNodeFocusAndBlurListener=e=>{let i=gn(e);for(let r=i;r;r=r.parentElement)e.type==="focus"?this._onFocus(e,r):this._onBlur(e,r)};monitor(e,i=!1){let r=rn(e);if(!this._platform.isBrowser||r.nodeType!==1)return _e();let s=vS(r)||this._getDocument(),a=this._elementInfo.get(r);if(a)return i&&(a.checkChildren=!0),a.subject;let o={checkChildren:i,subject:new me,rootNode:s};return this._elementInfo.set(r,o),this._registerGlobalListeners(o),o.subject}stopMonitoring(e){let i=rn(e),r=this._elementInfo.get(i);r&&(r.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(r))}focusVia(e,i,r){let s=rn(e),a=this._getDocument().activeElement;s===a?this._getClosestElementsInfo(s).forEach(([o,l])=>this._originChanged(o,i,l)):(this._setOrigin(i),typeof s.focus=="function"&&s.focus(r))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:e&&this._isLastInteractionFromInputLabel(e)?"mouse":"program"}_shouldBeAttributedToTouch(e){return this._detectionMode===zh.EVENTUAL||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused",i==="touch"),e.classList.toggle("cdk-keyboard-focused",i==="keyboard"),e.classList.toggle("cdk-mouse-focused",i==="mouse"),e.classList.toggle("cdk-program-focused",i==="program")}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{if(this._origin=e,this._originFromTouchInteraction=e==="touch"&&i,this._detectionMode===zh.IMMEDIATE){clearTimeout(this._originTimeoutId);let r=this._originFromTouchInteraction?OS:1;this._originTimeoutId=setTimeout(()=>this._origin=null,r)}})}_onFocus(e,i){let r=this._elementInfo.get(i),s=gn(e);!r||!r.checkChildren&&i!==s||this._originChanged(i,this._getFocusOrigin(s),r)}_onBlur(e,i){let r=this._elementInfo.get(i);!r||r.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(r,null))}_emitOrigin(e,i){e.subject.observers.length&&this._ngZone.run(()=>e.subject.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;let i=e.rootNode,r=this._rootNodeFocusListenerCount.get(i)||0;r||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,Bh),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,Bh)}),this._rootNodeFocusListenerCount.set(i,r+1),++this._monitoredElementCount===1&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(qe(this._stopInputModalityDetector)).subscribe(s=>{this._setOrigin(s,!0)}))}_removeGlobalListeners(e){let i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){let r=this._rootNodeFocusListenerCount.get(i);r>1?this._rootNodeFocusListenerCount.set(i,r-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,Bh),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,Bh),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,r){this._setClasses(e,i),this._emitOrigin(r,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){let i=[];return this._elementInfo.forEach((r,s)=>{(s===e||r.checkChildren&&s.contains(e))&&i.push([s,r])}),i}_isLastInteractionFromInputLabel(e){let{_mostRecentTarget:i,mostRecentModality:r}=this._inputModalityDetector;if(r!=="mouse"||!i||i===e||e.nodeName!=="INPUT"&&e.nodeName!=="TEXTAREA"||e.disabled)return!1;let s=e.labels;if(s){for(let a=0;a{class n{_elementRef=L(Ae);_focusMonitor=L(Un);_monitorSubscription;_focusOrigin=null;cdkFocusChange=new oe;constructor(){}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){let e=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(e,e.nodeType===1&&e.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return n})(),Ba=function(n){return n[n.NONE=0]="NONE",n[n.BLACK_ON_WHITE=1]="BLACK_ON_WHITE",n[n.WHITE_ON_BLACK=2]="WHITE_ON_BLACK",n}(Ba||{}),TS="cdk-high-contrast-black-on-white",ES="cdk-high-contrast-white-on-black",Yg="cdk-high-contrast-active",i_=(()=>{class n{_platform=L(ct);_hasCheckedHighContrastMode;_document=L(it);_breakpointSubscription;constructor(){this._breakpointSubscription=L(SS).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return Ba.NONE;let e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);let i=this._document.defaultView||window,r=i&&i.getComputedStyle?i.getComputedStyle(e):null,s=(r&&r.backgroundColor||"").replace(/ /g,"");switch(e.remove(),s){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return Ba.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return Ba.BLACK_ON_WHITE}return Ba.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){let e=this._document.body.classList;e.remove(Yg,TS,ES),this._hasCheckedHighContrastMode=!0;let i=this.getHighContrastMode();i===Ba.BLACK_ON_WHITE?e.add(Yg,TS):i===Ba.WHITE_ON_BLACK&&e.add(Yg,ES)}}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Qh=(()=>{class n{constructor(){L(i_)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[$h]})}return n})(),Qg={},Ft=(()=>{class n{_appId=L(S0);getId(e){return this._appId!=="ng"&&(e+=this._appId),Qg.hasOwnProperty(e)||(Qg[e]=0),`${e}${Qg[e]++}`}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var nP=new ee("cdk-dir-doc",{providedIn:"root",factory:rP});function rP(){return L(it)}var sP=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;function aP(n){let t=n?.toLowerCase()||"";return t==="auto"&&typeof navigator<"u"&&navigator?.language?sP.test(navigator.language)?"rtl":"ltr":t==="rtl"?"rtl":"ltr"}var ui=(()=>{class n{value="ltr";change=new oe;constructor(){let e=L(nP,{optional:!0});if(e){let i=e.body?e.body.dir:null,r=e.documentElement?e.documentElement.dir:null;this.value=aP(i||r||"ltr")}}ngOnDestroy(){this.change.complete()}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Zs=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({})}return n})();var oP=["text"],lP=[[["mat-icon"]],"*"],cP=["mat-icon","*"];function uP(n,t){if(n&1&&ne(0,"mat-pseudo-checkbox",1),n&2){let e=Y();z("disabled",e.disabled)("state",e.selected?"checked":"unchecked")}}function dP(n,t){if(n&1&&ne(0,"mat-pseudo-checkbox",3),n&2){let e=Y();z("disabled",e.disabled)}}function hP(n,t){if(n&1&&(N(0,"span",4),B(1),F()),n&2){let e=Y();$(),Ye("(",e.group.label,")")}}var mP=["mat-internal-form-field",""],fP=["*"];var Ue=(()=>{class n{constructor(){L(i_)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Zs,Zs]})}return n})(),ja=class{_defaultMatcher;ngControl;_parentFormGroup;_parentForm;_stateChanges;errorState=!1;matcher;constructor(t,e,i,r,s){this._defaultMatcher=t,this.ngControl=e,this._parentFormGroup=i,this._parentForm=r,this._stateChanges=s}updateErrorState(){let t=this.errorState,e=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,r=this.ngControl?this.ngControl.control:null,s=i?.isErrorState(r,e)??!1;s!==t&&(this.errorState=s,this._stateChanges.next())}},FS=new ee("MAT_DATE_LOCALE",{providedIn:"root",factory:pP});function pP(){return L(YC)}var il="Method not implemented",sn=class{locale;_localeChanges=new me;localeChanges=this._localeChanges;setTime(t,e,i,r){throw new Error(il)}getHours(t){throw new Error(il)}getMinutes(t){throw new Error(il)}getSeconds(t){throw new Error(il)}parseTime(t,e){throw new Error(il)}addSeconds(t,e){throw new Error(il)}getValidDateOrNull(t){return this.isDateInstance(t)&&this.isValid(t)?t:null}deserialize(t){return t==null||this.isDateInstance(t)&&this.isValid(t)?t:this.invalid()}setLocale(t){this.locale=t,this._localeChanges.next()}compareDate(t,e){return this.getYear(t)-this.getYear(e)||this.getMonth(t)-this.getMonth(e)||this.getDate(t)-this.getDate(e)}compareTime(t,e){return this.getHours(t)-this.getHours(e)||this.getMinutes(t)-this.getMinutes(e)||this.getSeconds(t)-this.getSeconds(e)}sameDate(t,e){if(t&&e){let i=this.isValid(t),r=this.isValid(e);return i&&r?!this.compareDate(t,e):i==r}return t==e}sameTime(t,e){if(t&&e){let i=this.isValid(t),r=this.isValid(e);return i&&r?!this.compareTime(t,e):i==r}return t==e}clampDate(t,e,i){return e&&this.compareDate(t,e)<0?e:i&&this.compareDate(t,i)>0?i:t}},nl=new ee("mat-date-formats"),gP=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))?)?$/,_P=/^(\d?\d)[:.](\d?\d)(?:[:.](\d?\d))?\s*(AM|PM)?$/i;function n_(n,t){let e=Array(n);for(let i=0;i{class n extends sn{useUtcForDisplay=!1;_matDateLocale=L(FS,{optional:!0});constructor(){super();let e=L(FS,{optional:!0});e!==void 0&&(this._matDateLocale=e),super.setLocale(this._matDateLocale)}getYear(e){return e.getFullYear()}getMonth(e){return e.getMonth()}getDate(e){return e.getDate()}getDayOfWeek(e){return e.getDay()}getMonthNames(e){let i=new Intl.DateTimeFormat(this.locale,{month:e,timeZone:"utc"});return n_(12,r=>this._format(i,new Date(2017,r,1)))}getDateNames(){let e=new Intl.DateTimeFormat(this.locale,{day:"numeric",timeZone:"utc"});return n_(31,i=>this._format(e,new Date(2017,0,i+1)))}getDayOfWeekNames(e){let i=new Intl.DateTimeFormat(this.locale,{weekday:e,timeZone:"utc"});return n_(7,r=>this._format(i,new Date(2017,0,r+1)))}getYearName(e){let i=new Intl.DateTimeFormat(this.locale,{year:"numeric",timeZone:"utc"});return this._format(i,e)}getFirstDayOfWeek(){if(typeof Intl<"u"&&Intl.Locale){let e=new Intl.Locale(this.locale),i=(e.getWeekInfo?.()||e.weekInfo)?.firstDay??0;return i===7?0:i}return 0}getNumDaysInMonth(e){return this.getDate(this._createDateWithOverflow(this.getYear(e),this.getMonth(e)+1,0))}clone(e){return new Date(e.getTime())}createDate(e,i,r){let s=this._createDateWithOverflow(e,i,r);return s.getMonth()!=i,s}today(){return new Date}parse(e,i){return typeof e=="number"?new Date(e):e?new Date(Date.parse(e)):null}format(e,i){if(!this.isValid(e))throw Error("NativeDateAdapter: Cannot format invalid date.");let r=new Intl.DateTimeFormat(this.locale,$e(j({},i),{timeZone:"utc"}));return this._format(r,e)}addCalendarYears(e,i){return this.addCalendarMonths(e,i*12)}addCalendarMonths(e,i){let r=this._createDateWithOverflow(this.getYear(e),this.getMonth(e)+i,this.getDate(e));return this.getMonth(r)!=((this.getMonth(e)+i)%12+12)%12&&(r=this._createDateWithOverflow(this.getYear(r),this.getMonth(r),0)),r}addCalendarDays(e,i){return this._createDateWithOverflow(this.getYear(e),this.getMonth(e),this.getDate(e)+i)}toIso8601(e){return[e.getUTCFullYear(),this._2digit(e.getUTCMonth()+1),this._2digit(e.getUTCDate())].join("-")}deserialize(e){if(typeof e=="string"){if(!e)return null;if(gP.test(e)){let i=new Date(e);if(this.isValid(i))return i}}return super.deserialize(e)}isDateInstance(e){return e instanceof Date}isValid(e){return!isNaN(e.getTime())}invalid(){return new Date(NaN)}setTime(e,i,r,s){let a=this.clone(e);return a.setHours(i,r,s,0),a}getHours(e){return e.getHours()}getMinutes(e){return e.getMinutes()}getSeconds(e){return e.getSeconds()}parseTime(e,i){if(typeof e!="string")return e instanceof Date?new Date(e.getTime()):null;let r=e.trim();if(r.length===0)return null;let s=this._parseTimeString(r);if(s===null){let a=r.replace(/[^0-9:(AM|PM)]/gi,"").trim();a.length>0&&(s=this._parseTimeString(a))}return s||this.invalid()}addSeconds(e,i){return new Date(e.getTime()+i*1e3)}_createDateWithOverflow(e,i,r){let s=new Date;return s.setFullYear(e,i,r),s.setHours(0,0,0,0),s}_2digit(e){return("00"+e).slice(-2)}_format(e,i){let r=new Date;return r.setUTCFullYear(i.getFullYear(),i.getMonth(),i.getDate()),r.setUTCHours(i.getHours(),i.getMinutes(),i.getSeconds(),i.getMilliseconds()),e.format(r)}_parseTimeString(e){let i=e.toUpperCase().match(_P);if(i){let r=parseInt(i[1]),s=parseInt(i[2]),a=i[3]==null?void 0:parseInt(i[3]),o=i[4];if(r===12?r=o==="AM"?0:r:o==="PM"&&(r+=12),r_(r,0,23)&&r_(s,0,59)&&(a==null||r_(a,0,59)))return this.setTime(this.today(),r,s,a||0)}return null}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})();function r_(n,t,e){return!isNaN(n)&&n>=t&&n<=e}var bP={parse:{dateInput:null,timeInput:null},display:{dateInput:{year:"numeric",month:"numeric",day:"numeric"},timeInput:{hour:"numeric",minute:"numeric"},monthYearLabel:{year:"numeric",month:"short"},dateA11yLabel:{year:"numeric",month:"long",day:"numeric"},monthYearA11yLabel:{year:"numeric",month:"long"},timeOptionLabel:{hour:"numeric",minute:"numeric"}}};var c_=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({providers:[yP()]})}return n})();function yP(n=bP){return[{provide:sn,useClass:vP},{provide:nl,useValue:n}]}var $c=(()=>{class n{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Di=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["structural-styles"]],decls:0,vars:0,template:function(i,r){},styles:['.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}}'],encapsulation:2,changeDetection:0})}return n})();var _n=function(n){return n[n.FADING_IN=0]="FADING_IN",n[n.VISIBLE=1]="VISIBLE",n[n.FADING_OUT=2]="FADING_OUT",n[n.HIDDEN=3]="HIDDEN",n}(_n||{}),o_=class{_renderer;element;config;_animationForciblyDisabledThroughCss;state=_n.HIDDEN;constructor(t,e,i,r=!1){this._renderer=t,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=r}fadeOut(){this._renderer.fadeOutRipple(this)}},PS=Ai({passive:!0,capture:!0}),l_=class{_events=new Map;addHandler(t,e,i,r){let s=this._events.get(e);if(s){let a=s.get(i);a?a.add(r):s.set(i,new Set([r]))}else this._events.set(e,new Map([[i,new Set([r])]])),t.runOutsideAngular(()=>{document.addEventListener(e,this._delegateEventHandler,PS)})}removeHandler(t,e,i){let r=this._events.get(t);if(!r)return;let s=r.get(e);s&&(s.delete(i),s.size===0&&r.delete(e),r.size===0&&(this._events.delete(t),document.removeEventListener(t,this._delegateEventHandler,PS)))}_delegateEventHandler=t=>{let e=gn(t);e&&this._events.get(t.type)?.forEach((i,r)=>{(r===e||r.contains(e))&&i.forEach(s=>s.handleEvent(t))})}},Xh={enterDuration:225,exitDuration:150},CP=800,US=Ai({passive:!0,capture:!0}),$S=["mousedown","touchstart"],VS=["mouseup","mouseleave","touchend","touchcancel"],wP=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["ng-component"]],hostAttrs:["mat-ripple-style-loader",""],decls:0,vars:0,template:function(i,r){},styles:[".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface) 10%, transparent))}@media(forced-colors: active){.mat-ripple-element{display:none}}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none}"],encapsulation:2,changeDetection:0})}return n})(),Jh=class n{_target;_ngZone;_platform;_containerElement;_triggerElement;_isPointerDown=!1;_activeRipples=new Map;_mostRecentTransientRipple;_lastTouchStartEvent;_pointerUpEventsRegistered=!1;_containerRect;static _eventManager=new l_;constructor(t,e,i,r,s){this._target=t,this._ngZone=e,this._platform=r,r.isBrowser&&(this._containerElement=rn(i)),s&&s.get(wt).load(wP)}fadeInRipple(t,e,i={}){let r=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),s=j(j({},Xh),i.animation);i.centered&&(t=r.left+r.width/2,e=r.top+r.height/2);let a=i.radius||xP(t,e,r),o=t-r.left,l=e-r.top,c=s.enterDuration,u=document.createElement("div");u.classList.add("mat-ripple-element"),u.style.left=`${o-a}px`,u.style.top=`${l-a}px`,u.style.height=`${a*2}px`,u.style.width=`${a*2}px`,i.color!=null&&(u.style.backgroundColor=i.color),u.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(u);let d=window.getComputedStyle(u),h=d.transitionProperty,m=d.transitionDuration,f=h==="none"||m==="0s"||m==="0s, 0s"||r.width===0&&r.height===0,g=new o_(this,u,i,f);u.style.transform="scale3d(1, 1, 1)",g.state=_n.FADING_IN,i.persistent||(this._mostRecentTransientRipple=g);let v=null;return!f&&(c||s.exitDuration)&&this._ngZone.runOutsideAngular(()=>{let w=()=>{v&&(v.fallbackTimer=null),clearTimeout(k),this._finishRippleTransition(g)},C=()=>this._destroyRipple(g),k=setTimeout(C,c+100);u.addEventListener("transitionend",w),u.addEventListener("transitioncancel",C),v={onTransitionEnd:w,onTransitionCancel:C,fallbackTimer:k}}),this._activeRipples.set(g,v),(f||!c)&&this._finishRippleTransition(g),g}fadeOutRipple(t){if(t.state===_n.FADING_OUT||t.state===_n.HIDDEN)return;let e=t.element,i=j(j({},Xh),t.config.animation);e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",t.state=_n.FADING_OUT,(t._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(t)}fadeOutAll(){this._getActiveRipples().forEach(t=>t.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(t=>{t.config.persistent||t.fadeOut()})}setupTriggerEvents(t){let e=rn(t);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,$S.forEach(i=>{n._eventManager.addHandler(this._ngZone,i,e,this)}))}handleEvent(t){t.type==="mousedown"?this._onMousedown(t):t.type==="touchstart"?this._onTouchStart(t):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{VS.forEach(e=>{this._triggerElement.addEventListener(e,this,US)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(t){t.state===_n.FADING_IN?this._startFadeOutTransition(t):t.state===_n.FADING_OUT&&this._destroyRipple(t)}_startFadeOutTransition(t){let e=t===this._mostRecentTransientRipple,{persistent:i}=t.config;t.state=_n.VISIBLE,!i&&(!e||!this._isPointerDown)&&t.fadeOut()}_destroyRipple(t){let e=this._activeRipples.get(t)??null;this._activeRipples.delete(t),this._activeRipples.size||(this._containerRect=null),t===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),t.state=_n.HIDDEN,e!==null&&(t.element.removeEventListener("transitionend",e.onTransitionEnd),t.element.removeEventListener("transitioncancel",e.onTransitionCancel),e.fallbackTimer!==null&&clearTimeout(e.fallbackTimer)),t.element.remove()}_onMousedown(t){let e=Gh(t),i=this._lastTouchStartEvent&&Date.now(){let e=t.state===_n.VISIBLE||t.config.terminateOnPointerUp&&t.state===_n.FADING_IN;!t.config.persistent&&e&&t.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){let t=this._triggerElement;t&&($S.forEach(e=>n._eventManager.removeHandler(e,t,this)),this._pointerUpEventsRegistered&&(VS.forEach(e=>t.removeEventListener(e,this,US)),this._pointerUpEventsRegistered=!1))}};function xP(n,t,e){let i=Math.max(Math.abs(n-e.left),Math.abs(n-e.right)),r=Math.max(Math.abs(t-e.top),Math.abs(t-e.bottom));return Math.sqrt(i*i+r*r)}var tm=new ee("mat-ripple-global-options"),yn=(()=>{class n{_elementRef=L(Ae);_animationMode=L(Ot,{optional:!0});color;unbounded;centered;radius=0;animation;get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}_disabled=!1;get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}_trigger;_rippleRenderer;_globalOptions;_isInitialized=!1;constructor(){let e=L(Ne),i=L(ct),r=L(tm,{optional:!0}),s=L(gt);this._globalOptions=r||{},this._rippleRenderer=new Jh(this,e,this._elementRef,i,s)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:j(j(j({},this._globalOptions.animation),this._animationMode==="NoopAnimations"?{enterDuration:0,exitDuration:0}:{}),this.animation),terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(e,i=0,r){return typeof e=="number"?this._rippleRenderer.fadeInRipple(e,i,j(j({},this.rippleConfig),r)):this._rippleRenderer.fadeInRipple(0,0,j(j({},this.rippleConfig),e))}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,r){i&2&&ke("mat-ripple-unbounded",r.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return n})(),cs=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,Ue]})}return n})(),SP=(()=>{class n{_animationMode=L(Ot,{optional:!0});state="unchecked";disabled=!1;appearance="full";constructor(){}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,r){i&2&&ke("mat-pseudo-checkbox-indeterminate",r.state==="indeterminate")("mat-pseudo-checkbox-checked",r.state==="checked")("mat-pseudo-checkbox-disabled",r.disabled)("mat-pseudo-checkbox-minimal",r.appearance==="minimal")("mat-pseudo-checkbox-full",r.appearance==="full")("_mat-animation-noopable",r._animationMode==="NoopAnimations")},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(i,r){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-minimal-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-primary))}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full{border-color:var(--mat-full-pseudo-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-full-pseudo-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-full-pseudo-checkbox-selected-icon-color, var(--mat-sys-primary));border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-full-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-full-pseudo-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-full-pseudo-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0})}return n})(),kP=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue]})}return n})(),im=new ee("MAT_OPTION_PARENT_COMPONENT"),nm=new ee("MatOptgroup");var em=class{source;isUserInput;constructor(t,e=!1){this.source=t,this.isUserInput=e}},ar=(()=>{class n{_element=L(Ae);_changeDetectorRef=L(Xe);_parent=L(im,{optional:!0});group=L(nm,{optional:!0});_signalDisableRipple=!1;_selected=!1;_active=!1;_disabled=!1;_mostRecentViewValue="";get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}value;id=L(Ft).getId("mat-option-");get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(e){this._disabled=e}get disableRipple(){return this._signalDisableRipple?this._parent.disableRipple():!!this._parent?.disableRipple}get hideSingleSelectionIndicator(){return!!(this._parent&&this._parent.hideSingleSelectionIndicator)}onSelectionChange=new oe;_text;_stateChanges=new me;constructor(){L(wt).load(Di),L(wt).load(os),this._signalDisableRipple=!!this._parent&&Ta(this._parent.disableRipple)}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(e=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}deselect(e=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}focus(e,i){let r=this._getHostElement();typeof r.focus=="function"&&r.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(e){(e.keyCode===13||e.keyCode===32)&&!Vi(e)&&(this._selectViaInteraction(),e.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=this.multiple?!this._selected:!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){let e=this.viewValue;e!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=e)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(e=!1){this.onSelectionChange.emit(new em(this,e))}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-option"]],viewQuery:function(i,r){if(i&1&&Be(oP,7),i&2){let s;Te(s=Ee())&&(r._text=s.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,r){i&1&&J("click",function(){return r._selectViaInteraction()})("keydown",function(a){return r._handleKeydown(a)}),i&2&&(Rn("id",r.id),Me("aria-selected",r.selected)("aria-disabled",r.disabled.toString()),ke("mdc-list-item--selected",r.selected)("mat-mdc-option-multiple",r.multiple)("mat-mdc-option-active",r.active)("mdc-list-item--disabled",r.disabled))},inputs:{value:"value",id:"id",disabled:[2,"disabled","disabled",be]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],features:[Qe],ngContentSelectors:cP,decls:8,vars:5,consts:[["text",""],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],[1,"mdc-list-item__primary-text"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,r){i&1&&(tt(lP),le(0,uP,1,2,"mat-pseudo-checkbox",1),Fe(1),N(2,"span",2,0),Fe(4,1),F(),le(5,dP,1,1,"mat-pseudo-checkbox",3)(6,hP,2,1,"span",4),ne(7,"div",5)),i&2&&(et(r.multiple?0:-1),$(5),et(!r.multiple&&r.selected&&!r.hideSingleSelectionIndicator?5:-1),$(),et(r.group&&r.group._inert?6:-1),$(),z("matRippleTrigger",r._getHostElement())("matRippleDisabled",r.disabled||r.disableRipple))},dependencies:[SP,yn],styles:['.mat-mdc-option{-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;min-height:48px;padding:0 16px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-option-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-option-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-option-label-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-option-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-option-label-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-option:focus.mdc-list-item,.mat-mdc-option.mat-mdc-option-active.mdc-list-item{background-color:var(--mat-option-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));outline:0}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple){background-color:var(--mat-option-selected-state-layer-color, var(--mat-sys-secondary-container))}.mat-mdc-option .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option.mdc-list-item{align-items:center;background:rgba(0,0,0,0)}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}@media(forced-colors: active){.mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{right:auto;left:16px}}.mat-mdc-option-multiple{--mdc-list-list-item-selected-container-color:var(--mdc-list-list-item-container-color, transparent)}.mat-mdc-option-active .mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return n})();function u_(n,t,e){if(e.length){let i=t.toArray(),r=e.toArray(),s=0;for(let a=0;ae+i?Math.max(0,n-i+t):e}var rl=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[cs,Ue,kP]})}return n})(),BS={capture:!0},zS=["focus","mousedown","mouseenter","touchstart"],s_="mat-ripple-loader-uninitialized",a_="mat-ripple-loader-class-name",HS="mat-ripple-loader-centered",Zh="mat-ripple-loader-disabled",jS=(()=>{class n{_document=L(it,{optional:!0});_animationMode=L(Ot,{optional:!0});_globalRippleOptions=L(tm,{optional:!0});_platform=L(ct);_ngZone=L(Ne);_injector=L(gt);_hosts=new Map;constructor(){this._ngZone.runOutsideAngular(()=>{for(let e of zS)this._document?.addEventListener(e,this._onInteraction,BS)})}ngOnDestroy(){let e=this._hosts.keys();for(let i of e)this.destroyRipple(i);for(let i of zS)this._document?.removeEventListener(i,this._onInteraction,BS)}configureRipple(e,i){e.setAttribute(s_,this._globalRippleOptions?.namespace??""),(i.className||!e.hasAttribute(a_))&&e.setAttribute(a_,i.className||""),i.centered&&e.setAttribute(HS,""),i.disabled&&e.setAttribute(Zh,"")}setDisabled(e,i){let r=this._hosts.get(e);r?(r.target.rippleDisabled=i,!i&&!r.hasSetUpEvents&&(r.hasSetUpEvents=!0,r.renderer.setupTriggerEvents(e))):i?e.setAttribute(Zh,""):e.removeAttribute(Zh)}_onInteraction=e=>{let i=gn(e);if(i instanceof HTMLElement){let r=i.closest(`[${s_}="${this._globalRippleOptions?.namespace??""}"]`);r&&this._createRipple(r)}};_createRipple(e){if(!this._document||this._hosts.has(e))return;e.querySelector(".mat-ripple")?.remove();let i=this._document.createElement("span");i.classList.add("mat-ripple",e.getAttribute(a_)),e.append(i);let r=this._animationMode==="NoopAnimations",s=this._globalRippleOptions,a=r?0:s?.animation?.enterDuration??Xh.enterDuration,o=r?0:s?.animation?.exitDuration??Xh.exitDuration,l={rippleDisabled:r||s?.disabled||e.hasAttribute(Zh),rippleConfig:{centered:e.hasAttribute(HS),terminateOnPointerUp:s?.terminateOnPointerUp,animation:{enterDuration:a,exitDuration:o}}},c=new Jh(l,this._ngZone,i,this._platform,this._injector),u=!l.rippleDisabled;u&&c.setupTriggerEvents(e),this._hosts.set(e,{target:l,renderer:c,hasSetUpEvents:u}),e.removeAttribute(s_)}destroyRipple(e){let i=this._hosts.get(e);i&&(i.renderer._removeTriggerEvents(),this._hosts.delete(e))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),sl=(()=>{class n{labelPosition;static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,r){i&2&&ke("mdc-form-field--align-end",r.labelPosition==="before")},inputs:{labelPosition:"labelPosition"},attrs:mP,ngContentSelectors:fP,decls:1,vars:0,template:function(i,r){i&1&&(tt(),Fe(0))},styles:[".mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0}"],encapsulation:2,changeDetection:0})}return n})();var MP=["*"],rm;function TP(){if(rm===void 0&&(rm=null,typeof window<"u")){let n=window;n.trustedTypes!==void 0&&(rm=n.trustedTypes.createPolicy("angular#components",{createHTML:t=>t}))}return rm}function Vc(n){return TP()?.createHTML(n)||n}function WS(n){return Error(`Unable to find icon with the name "${n}"`)}function EP(){return Error("Could not find HttpClient for use with Angular Material icons. Please add provideHttpClient() to your providers.")}function qS(n){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${n}".`)}function GS(n){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${n}".`)}var us=class{url;svgText;options;svgElement;constructor(t,e,i){this.url=t,this.svgText=e,this.options=i}},IP=(()=>{class n{_httpClient;_sanitizer;_errorHandler;_document;_svgIconConfigs=new Map;_iconSetConfigs=new Map;_cachedIconsByUrl=new Map;_inProgressUrlFetches=new Map;_fontCssClassesByAlias=new Map;_resolvers=[];_defaultFontSetClass=["material-icons","mat-ligature-font"];constructor(e,i,r,s){this._httpClient=e,this._sanitizer=i,this._errorHandler=s,this._document=r}addSvgIcon(e,i,r){return this.addSvgIconInNamespace("",e,i,r)}addSvgIconLiteral(e,i,r){return this.addSvgIconLiteralInNamespace("",e,i,r)}addSvgIconInNamespace(e,i,r,s){return this._addSvgIconConfig(e,i,new us(r,null,s))}addSvgIconResolver(e){return this._resolvers.push(e),this}addSvgIconLiteralInNamespace(e,i,r,s){let a=this._sanitizer.sanitize(wr.HTML,r);if(!a)throw GS(r);let o=Vc(a);return this._addSvgIconConfig(e,i,new us("",o,s))}addSvgIconSet(e,i){return this.addSvgIconSetInNamespace("",e,i)}addSvgIconSetLiteral(e,i){return this.addSvgIconSetLiteralInNamespace("",e,i)}addSvgIconSetInNamespace(e,i,r){return this._addSvgIconSetConfig(e,new us(i,null,r))}addSvgIconSetLiteralInNamespace(e,i,r){let s=this._sanitizer.sanitize(wr.HTML,i);if(!s)throw GS(i);let a=Vc(s);return this._addSvgIconSetConfig(e,new us("",a,r))}registerFontClassAlias(e,i=e){return this._fontCssClassesByAlias.set(e,i),this}classNameForFontAlias(e){return this._fontCssClassesByAlias.get(e)||e}setDefaultFontSetClass(...e){return this._defaultFontSetClass=e,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(e){let i=this._sanitizer.sanitize(wr.RESOURCE_URL,e);if(!i)throw qS(e);let r=this._cachedIconsByUrl.get(i);return r?_e(sm(r)):this._loadSvgIconFromConfig(new us(e,null)).pipe(Et(s=>this._cachedIconsByUrl.set(i,s)),Le(s=>sm(s)))}getNamedSvgIcon(e,i=""){let r=KS(i,e),s=this._svgIconConfigs.get(r);if(s)return this._getSvgFromConfig(s);if(s=this._getIconConfigFromResolvers(i,e),s)return this._svgIconConfigs.set(r,s),this._getSvgFromConfig(s);let a=this._iconSetConfigs.get(i);return a?this._getSvgFromIconSetConfigs(e,a):er(WS(r))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(e){return e.svgText?_e(sm(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe(Le(i=>sm(i)))}_getSvgFromIconSetConfigs(e,i){let r=this._extractIconWithNameFromAnySet(e,i);if(r)return _e(r);let s=i.filter(a=>!a.svgText).map(a=>this._loadSvgIconSetFromConfig(a).pipe(Zi(o=>{let c=`Loading icon set URL: ${this._sanitizer.sanitize(wr.RESOURCE_URL,a.url)} failed: ${o.message}`;return this._errorHandler.handleError(new Error(c)),_e(null)})));return To(s).pipe(Le(()=>{let a=this._extractIconWithNameFromAnySet(e,i);if(!a)throw WS(e);return a}))}_extractIconWithNameFromAnySet(e,i){for(let r=i.length-1;r>=0;r--){let s=i[r];if(s.svgText&&s.svgText.toString().indexOf(e)>-1){let a=this._svgElementFromConfig(s),o=this._extractSvgIconFromSet(a,e,s.options);if(o)return o}}return null}_loadSvgIconFromConfig(e){return this._fetchIcon(e).pipe(Et(i=>e.svgText=i),Le(()=>this._svgElementFromConfig(e)))}_loadSvgIconSetFromConfig(e){return e.svgText?_e(null):this._fetchIcon(e).pipe(Et(i=>e.svgText=i))}_extractSvgIconFromSet(e,i,r){let s=e.querySelector(`[id="${i}"]`);if(!s)return null;let a=s.cloneNode(!0);if(a.removeAttribute("id"),a.nodeName.toLowerCase()==="svg")return this._setSvgAttributes(a,r);if(a.nodeName.toLowerCase()==="symbol")return this._setSvgAttributes(this._toSvgElement(a),r);let o=this._svgElementFromString(Vc(""));return o.appendChild(a),this._setSvgAttributes(o,r)}_svgElementFromString(e){let i=this._document.createElement("DIV");i.innerHTML=e;let r=i.querySelector("svg");if(!r)throw Error(" tag not found");return r}_toSvgElement(e){let i=this._svgElementFromString(Vc("")),r=e.attributes;for(let s=0;sVc(c)),Io(()=>this._inProgressUrlFetches.delete(a)),IC());return this._inProgressUrlFetches.set(a,l),l}_addSvgIconConfig(e,i,r){return this._svgIconConfigs.set(KS(e,i),r),this}_addSvgIconSetConfig(e,i){let r=this._iconSetConfigs.get(e);return r?r.push(i):this._iconSetConfigs.set(e,[i]),this}_svgElementFromConfig(e){if(!e.svgElement){let i=this._svgElementFromString(e.svgText);this._setSvgAttributes(i,e.options),e.svgElement=i}return e.svgElement}_getIconConfigFromResolvers(e,i){for(let r=0;rt?t.pathname+t.search:""}}var QS=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],OP=QS.map(n=>`[${n}]`).join(", "),NP=/^url\(['"]?#(.*?)['"]?\)$/,$n=(()=>{class n{_elementRef=L(Ae);_iconRegistry=L(IP);_location=L(RP);_errorHandler=L(zd);_defaultColor;get color(){return this._color||this._defaultColor}set color(e){this._color=e}_color;inline=!1;get svgIcon(){return this._svgIcon}set svgIcon(e){e!==this._svgIcon&&(e?this._updateSvgIcon(e):this._svgIcon&&this._clearSvgElement(),this._svgIcon=e)}_svgIcon;get fontSet(){return this._fontSet}set fontSet(e){let i=this._cleanupFontValue(e);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}_fontSet;get fontIcon(){return this._fontIcon}set fontIcon(e){let i=this._cleanupFontValue(e);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}_fontIcon;_previousFontSetClass=[];_previousFontIconClass;_svgName;_svgNamespace;_previousPath;_elementsWithExternalReferences;_currentIconFetch=Mt.EMPTY;constructor(){let e=L(new $i("aria-hidden"),{optional:!0}),i=L(DP,{optional:!0});i&&(i.color&&(this.color=this._defaultColor=i.color),i.fontSet&&(this.fontSet=i.fontSet)),e||this._elementRef.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(e){if(!e)return["",""];let i=e.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${e}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){let e=this._elementsWithExternalReferences;if(e&&e.size){let i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(e){this._clearSvgElement();let i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(e),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(e)}_clearSvgElement(){let e=this._elementRef.nativeElement,i=e.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){let r=e.childNodes[i];(r.nodeType!==1||r.nodeName.toLowerCase()==="svg")&&r.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;let e=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(r=>r.length>0);this._previousFontSetClass.forEach(r=>e.classList.remove(r)),i.forEach(r=>e.classList.add(r)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&e.classList.remove(this._previousFontIconClass),this.fontIcon&&e.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(e){return typeof e=="string"?e.trim().split(" ")[0]:e}_prependPathToReferences(e){let i=this._elementsWithExternalReferences;i&&i.forEach((r,s)=>{r.forEach(a=>{s.setAttribute(a.name,`url('${e}#${a.value}')`)})})}_cacheChildrenWithExternalReferences(e){let i=e.querySelectorAll(OP),r=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let s=0;s{let o=i[s],l=o.getAttribute(a),c=l?l.match(NP):null;if(c){let u=r.get(o);u||(u=[],r.set(o,u)),u.push({name:a,value:c[1]})}})}_updateSvgIcon(e){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),e){let[i,r]=this._splitIconName(e);i&&(this._svgNamespace=i),r&&(this._svgName=r),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(r,i).pipe(jt(1)).subscribe(s=>this._setSvgElement(s),s=>{let a=`Error retrieving icon ${i}:${r}! ${s.message}`;this._errorHandler.handleError(new Error(a))})}}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:10,hostBindings:function(i,r){i&2&&(Me("data-mat-icon-type",r._usingFontIcon()?"font":"svg")("data-mat-icon-name",r._svgName||r.fontIcon)("data-mat-icon-namespace",r._svgNamespace||r.fontSet)("fontIcon",r._usingFontIcon()?r.fontIcon:null),bt(r.color?"mat-"+r.color:""),ke("mat-icon-inline",r.inline)("mat-icon-no-color",r.color!=="primary"&&r.color!=="accent"&&r.color!=="warn"))},inputs:{color:"color",inline:[2,"inline","inline",be],svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],features:[Qe],ngContentSelectors:MP,decls:1,vars:0,template:function(i,r){i&1&&(tt(),Fe(0))},styles:["mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color, inherit)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0})}return n})(),Bc=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,Ue]})}return n})();var ZS=(()=>{class n{constructor(e,i,r){if(this.translateService=e,this.fhirConfigService=i,this.hashUrlRedirectionService=r,this.version=window.MATCHBOX_VERSION,r.isHashUrl()&&r.redirectHashUrl(),e.setDefaultLang("de"),e.use(e.getBrowserLang()),location.origin==="http://localhost:4200")console.log("note: using local dev mag system for "+location.origin),i.changeFhirMicroService("http://localhost:8080/matchboxv3/fhir");else{let a=window.MATCHBOX_BASE_PATH+"/fhir";i.changeFhirMicroService(a),console.log("fhir endpoint "+a)}}static{this.\u0275fac=function(i){return new(i||n)(Se(Dc),Se(Fn),Se(Nh))}}static{this.\u0275cmp=he({type:n,selectors:[["app-root"]],standalone:!1,decls:43,vars:1,consts:[["routerLink","/",1,"logo-container"],["alt","Matchbox logo","height","40","src","assets/matchbox_logo_color.png","width","95"],[1,"version"],["routerLink","/"],["routerLink","/CapabilityStatement"],["routerLink","/igs"],["routerLink","/mappinglanguage"],["routerLink","/transform"],["routerLink","/validate"],["routerLink","/settings"],[1,"mat-typography"]],template:function(i,r){i&1&&(N(0,"header")(1,"div",0),ne(2,"img",1),N(3,"span",2),B(4),F()(),N(5,"nav")(6,"div",3)(7,"mat-icon"),B(8,"home"),F(),N(9,"span"),B(10,"Home"),F()(),N(11,"div",4)(12,"mat-icon"),B(13,"info"),F(),N(14,"span"),B(15,"CapabilityStatement"),F()(),N(16,"div",5)(17,"mat-icon"),B(18,"info"),F(),N(19,"span"),B(20,"IGs"),F()(),N(21,"div",6)(22,"mat-icon"),B(23,"search"),F(),N(24,"span"),B(25,"FHIR Mapping"),F()(),N(26,"div",7)(27,"mat-icon"),B(28,"transform"),F(),N(29,"span"),B(30,"Transform"),F()(),N(31,"div",8)(32,"mat-icon"),B(33,"rule"),F(),N(34,"span"),B(35,"Validate"),F()(),N(36,"div",9)(37,"mat-icon"),B(38,"settings"),F(),N(39,"span"),B(40,"Settings"),F()()()(),N(41,"main",10),ne(42,"router-outlet"),F()),i&2&&($(4),Ye("v",r.version,""))},dependencies:[$n,lg,Ch],styles:[".example-fill-remaining-space[_ngcontent-%COMP%]{flex:1 1 auto}mat-toolbar[_ngcontent-%COMP%]{padding-left:0}mat-toolbar[_ngcontent-%COMP%] .home-link[_ngcontent-%COMP%]{height:100%;display:flex;justify-content:center;align-items:center;cursor:pointer}mat-toolbar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%]{display:flex;height:100%;width:160px;justify-content:center;align-items:center}mat-toolbar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:calc(100% - 1.2em)}header[_ngcontent-%COMP%]{background:#97d6ba;display:flex;flex-wrap:wrap;flex:0 1 auto;padding:10px 2em;justify-content:space-between}header[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%]{display:inline-block}header[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%] .version[_ngcontent-%COMP%]{color:#2e7d73;font-size:.9em;display:inline-block;margin:4px 0 0 10px;vertical-align:top}header[_ngcontent-%COMP%] nav[_ngcontent-%COMP%]{display:flex;margin-top:10px}header[_ngcontent-%COMP%] nav[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:inline-block;margin:0 1rem;cursor:pointer;color:#3d5c73}header[_ngcontent-%COMP%] nav[_ngcontent-%COMP%] div[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:8px;vertical-align:middle;color:#d2eade}main[_ngcontent-%COMP%]{width:100%;margin:0 auto}@media (max-width: 1140px){header[_ngcontent-%COMP%] nav[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{margin:0 7px}header[_ngcontent-%COMP%] nav[_ngcontent-%COMP%] div[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:4px;font-size:18px;width:18px;height:18px}}"]})}}return n})();var Sk=Os(m_()),WQ=Os(ek()),qQ=Os(ik());var Wt=class n{constructor(t,e){this.operationOutcome=e,this.issues=t??[]}static fromOperationOutcome(t){let e=t.issue?.map(i=>cm.fromOoIssue(i));return new n(e,t)}static fromMatchboxError(t){let e=new n;return e.issues.push(new cm("fatal","matchbox",t,void 0,void 0,void 0,void 0)),e}},cm=class n{constructor(t,e,i,r,s,a,o,l,c){this.sliceInfo=[],this.severity=t,this.code=e,this.text=i,this.expression=r,this.line=s,this.col=a,this.sliceInfo=o??[],this.markdown=l,this.details=c,l&&this.text.includes("```markdown")&&(this.text=this.text.substring(11,this.text.length-3))}static fromOoIssue(t){let e;t.expression&&t.expression.length?e=t.expression[0]:t.location&&t.location.length&&(e=t.location[0]);let i=t.diagnostics?.indexOf("Slice info: 1.)"),r,s=null;i>=0?(r=t.diagnostics.substring(0,i).trimEnd(),s=t.diagnostics.substring(i+15).trimStart().split(/\d+[.][)]/)):r=t.diagnostics;let a=n.getExtensionStringValue(t,"http://hl7.org/fhir/StructureDefinition/rendering-style")=="markdown",o=t.details?t.details.text:void 0;return new n(t.severity,t.code,r,e,n.getLineNo(t),n.getColNo(t),s,a,o)}static getLineNo(t){let e=n.getExtensionIntValue(t,"http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line");return e&&e>0?e:void 0}static getColNo(t){let e=n.getExtensionIntValue(t,"http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col");return e&&e>0?e:void 0}static getExtensionIntValue(t,e){if(t.extension){for(let i of t.extension)if(i.url===e)return i.valueInteger}}static getExtensionStringValue(t,e){if(t.extension){for(let i of t.extension)if(i.url===e)return i.valueString}}};var FP=["determinateSpinner"];function PP(n,t){if(n&1&&(Qt(),N(0,"svg",11),ne(1,"circle",12),F()),n&2){let e=Y();Me("viewBox",e._viewBox()),$(),ai("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),Me("r",e._circleRadius())}}var UP=new ee("mat-progress-spinner-default-options",{providedIn:"root",factory:$P});function $P(){return{diameter:nk}}var nk=100,VP=10,Xs=(()=>{class n{_elementRef=L(Ae);_noopAnimations;get color(){return this._color||this._defaultColor}set color(e){this._color=e}_color;_defaultColor="primary";_determinateCircle;constructor(){let e=L(Ot,{optional:!0}),i=L(UP);this._noopAnimations=e==="NoopAnimations"&&!!i&&!i._forceAnimations,this.mode=this._elementRef.nativeElement.nodeName.toLowerCase()==="mat-spinner"?"indeterminate":"determinate",i&&(i.color&&(this.color=this._defaultColor=i.color),i.diameter&&(this.diameter=i.diameter),i.strokeWidth&&(this.strokeWidth=i.strokeWidth))}mode;get value(){return this.mode==="determinate"?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,e||0))}_value=0;get diameter(){return this._diameter}set diameter(e){this._diameter=e||0}_diameter=nk;get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=e||0}_strokeWidth;_circleRadius(){return(this.diameter-VP)/2}_viewBox(){let e=this._circleRadius()*2+this.strokeWidth;return`0 0 ${e} ${e}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return this.mode==="determinate"?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,r){if(i&1&&Be(FP,5),i&2){let s;Te(s=Ee())&&(r._determinateCircle=s.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,r){i&2&&(Me("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow",r.mode==="determinate"?r.value:null)("mode",r.mode),bt("mat-"+r.color),ai("width",r.diameter,"px")("height",r.diameter,"px")("--mdc-circular-progress-size",r.diameter+"px")("--mdc-circular-progress-active-indicator-width",r.diameter+"px"),ke("_mat-animation-noopable",r._noopAnimations)("mdc-circular-progress--indeterminate",r.mode==="indeterminate"))},inputs:{color:"color",mode:"mode",value:[2,"value","value",zt],diameter:[2,"diameter","diameter",zt],strokeWidth:[2,"strokeWidth","strokeWidth",zt]},exportAs:["matProgressSpinner"],features:[Qe],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(i,r){if(i&1&&(le(0,PP,2,8,"ng-template",null,0,Ea),N(2,"div",2,1),Qt(),N(4,"svg",3),ne(5,"circle",4),F()(),Xr(),N(6,"div",5)(7,"div",6)(8,"div",7),Ro(9,8),F(),N(10,"div",9),Ro(11,8),F(),N(12,"div",10),Ro(13,8),F()()()),i&2){let s=Zt(1);$(4),Me("viewBox",r._viewBox()),$(),ai("stroke-dasharray",r._strokeCircumference(),"px")("stroke-dashoffset",r._strokeDashOffset(),"px")("stroke-width",r._circleStrokeWidth(),"%"),Me("r",r._circleRadius()),$(4),z("ngTemplateOutlet",s),$(2),z("ngTemplateOutlet",s),$(2),z("ngTemplateOutlet",s)}},dependencies:[eh],styles:[".mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width, 4px)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color, var(--mat-sys-primary))}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}"],encapsulation:2,changeDetection:0})}return n})();var zc=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue]})}return n})();function g_(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var qa=g_();function ck(n){qa=n}var Wc={exec:()=>null};function It(n,t=""){let e=typeof n=="string"?n:n.source,i={replace:(r,s)=>{let a=typeof s=="string"?s:s.source;return a=a.replace(Bi.caret,"$1"),e=e.replace(r,a),i},getRegex:()=>new RegExp(e,t)};return i}var Bi={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:n=>new RegExp(`^( {0,3}${n})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}#`),htmlBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}<(?:[a-z].*>|!--)`,"i")},BP=/^(?:[ \t]*(?:\n|$))+/,zP=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,HP=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Gc=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,jP=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,uk=/(?:[*+-]|\d{1,9}[.)])/,dk=It(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,uk).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),__=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,WP=/^[^\n]+/,v_=/(?!\s*\])(?:\\.|[^\[\]\\])+/,qP=It(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",v_).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),GP=It(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,uk).getRegex(),mm="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",b_=/|$))/,KP=It("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",b_).replace("tag",mm).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),hk=It(__).replace("hr",Gc).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",mm).getRegex(),YP=It(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",hk).getRegex(),y_={blockquote:YP,code:zP,def:qP,fences:HP,heading:jP,hr:Gc,html:KP,lheading:dk,list:GP,newline:BP,paragraph:hk,table:Wc,text:WP},rk=It("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Gc).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",mm).getRegex(),QP=$e(j({},y_),{table:rk,paragraph:It(__).replace("hr",Gc).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",rk).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",mm).getRegex()}),ZP=$e(j({},y_),{html:It(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",b_).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Wc,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:It(__).replace("hr",Gc).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",dk).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()}),mk=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,XP=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,fk=/^( {2,}|\\)\n(?!\s*$)/,JP=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,i3=It(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,Kc).getRegex(),n3=It("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,Kc).getRegex(),r3=It("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,Kc).getRegex(),s3=It(/\\([punct])/,"gu").replace(/punct/g,Kc).getRegex(),a3=It(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),o3=It(b_).replace("(?:-->|$)","-->").getRegex(),l3=It("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",o3).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),hm=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,c3=It(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",hm).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),pk=It(/^!?\[(label)\]\[(ref)\]/).replace("label",hm).replace("ref",v_).getRegex(),gk=It(/^!?\[(ref)\](?:\[\])?/).replace("ref",v_).getRegex(),u3=It("reflink|nolink(?!\\()","g").replace("reflink",pk).replace("nolink",gk).getRegex(),C_={_backpedal:Wc,anyPunctuation:s3,autolink:a3,blockSkip:t3,br:fk,code:XP,del:Wc,emStrongLDelim:i3,emStrongRDelimAst:n3,emStrongRDelimUnd:r3,escape:mk,link:c3,nolink:gk,punctuation:e3,reflink:pk,reflinkSearch:u3,tag:l3,text:JP,url:Wc},d3=$e(j({},C_),{link:It(/^!?\[(label)\]\((.*?)\)/).replace("label",hm).getRegex(),reflink:It(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",hm).getRegex()}),f_=$e(j({},C_),{escape:It(mk).replace("])","~|])").getRegex(),url:It(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},sk=n=>m3[n];function Er(n,t){if(t){if(Bi.escapeTest.test(n))return n.replace(Bi.escapeReplace,sk)}else if(Bi.escapeTestNoEncode.test(n))return n.replace(Bi.escapeReplaceNoEncode,sk);return n}function ak(n){try{n=encodeURI(n).replace(Bi.percentDecode,"%")}catch{return null}return n}function ok(n,t){let e=n.replace(Bi.findPipe,(s,a,o)=>{let l=!1,c=a;for(;--c>=0&&o[c]==="\\";)l=!l;return l?"|":" |"}),i=e.split(Bi.splitPipe),r=0;if(i[0].trim()||i.shift(),i.length>0&&!i[i.length-1].trim()&&i.pop(),t)if(i.length>t)i.splice(t);else for(;i.length{let a=s.match(e.other.beginningSpace);if(a===null)return s;let[o]=a;return o.length>=r.length?s.slice(r.length):s}).join(` -`)}var ll=class{options;rules;lexer;constructor(t){this.options=t||qa}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let i=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?i:jc(i,` -`)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let i=e[0],r=p3(i,e[3]||"",this.rules);return{type:"code",raw:i,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:r}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let i=e[2].trim();if(this.rules.other.endingHash.test(i)){let r=jc(i,"#");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(i=r.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:i,tokens:this.lexer.inline(i)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:jc(e[0],` -`)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let i=jc(e[0],` -`).split(` -`),r="",s="",a=[];for(;i.length>0;){let o=!1,l=[],c;for(c=0;c1,s={type:"list",raw:"",ordered:r,start:r?+i.slice(0,-1):"",loose:!1,items:[]};i=r?`\\d{1,9}\\${i.slice(-1)}`:`\\${i}`,this.options.pedantic&&(i=r?i:"[*+-]");let a=this.rules.other.listItemRegex(i),o=!1;for(;t;){let l=!1,c="",u="";if(!(e=a.exec(t))||this.rules.block.hr.test(t))break;c=e[0],t=t.substring(c.length);let d=e[2].split(` -`,1)[0].replace(this.rules.other.listReplaceTabs,w=>" ".repeat(3*w.length)),h=t.split(` -`,1)[0],m=!d.trim(),f=0;if(this.options.pedantic?(f=2,u=d.trimStart()):m?f=e[1].length+1:(f=e[2].search(this.rules.other.nonSpaceChar),f=f>4?1:f,u=d.slice(f),f+=e[1].length),m&&this.rules.other.blankLine.test(h)&&(c+=h+` -`,t=t.substring(h.length+1),l=!0),!l){let w=this.rules.other.nextBulletRegex(f),C=this.rules.other.hrRegex(f),k=this.rules.other.fencesBeginRegex(f),x=this.rules.other.headingBeginRegex(f),y=this.rules.other.htmlBeginRegex(f);for(;t;){let E=t.split(` -`,1)[0],T;if(h=E,this.options.pedantic?(h=h.replace(this.rules.other.listReplaceNesting," "),T=h):T=h.replace(this.rules.other.tabCharGlobal," "),k.test(h)||x.test(h)||y.test(h)||w.test(h)||C.test(h))break;if(T.search(this.rules.other.nonSpaceChar)>=f||!h.trim())u+=` -`+T.slice(f);else{if(m||d.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||k.test(d)||x.test(d)||C.test(d))break;u+=` -`+h}!m&&!h.trim()&&(m=!0),c+=E+` -`,t=t.substring(E.length+1),d=T.slice(f)}}s.loose||(o?s.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(o=!0));let g=null,v;this.options.gfm&&(g=this.rules.other.listIsTask.exec(u),g&&(v=g[0]!=="[ ] ",u=u.replace(this.rules.other.listReplaceTask,""))),s.items.push({type:"list_item",raw:c,task:!!g,checked:v,loose:!1,text:u,tokens:[]}),s.raw+=c}s.items[s.items.length-1].raw=s.items[s.items.length-1].raw.trimEnd(),s.items[s.items.length-1].text=s.items[s.items.length-1].text.trimEnd(),s.raw=s.raw.trimEnd();for(let l=0;ld.type==="space"),u=c.length>0&&c.some(d=>this.rules.other.anyLine.test(d.raw));s.loose=u}if(s.loose)for(let l=0;l({text:l,tokens:this.lexer.inline(l),header:!1,align:a.align[c]})));return a}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let i=e[1].charAt(e[1].length-1)===` -`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:i,tokens:this.lexer.inline(i)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let i=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(i)){if(!this.rules.other.endAngleBracket.test(i))return;let a=jc(i.slice(0,-1),"\\");if((i.length-a.length)%2===0)return}else{let a=f3(e[2],"()");if(a>-1){let l=(e[0].indexOf("!")===0?5:4)+e[1].length+a;e[2]=e[2].substring(0,a),e[0]=e[0].substring(0,l).trim(),e[3]=""}}let r=e[2],s="";if(this.options.pedantic){let a=this.rules.other.pedanticHrefTitle.exec(r);a&&(r=a[1],s=a[3])}else s=e[3]?e[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(i)?r=r.slice(1):r=r.slice(1,-1)),lk(e,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:s&&s.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let i;if((i=this.rules.inline.reflink.exec(t))||(i=this.rules.inline.nolink.exec(t))){let r=(i[2]||i[1]).replace(this.rules.other.multipleSpaceGlobal," "),s=e[r.toLowerCase()];if(!s){let a=i[0].charAt(0);return{type:"text",raw:a,text:a}}return lk(i,s,i[0],this.lexer,this.rules)}}emStrong(t,e,i=""){let r=this.rules.inline.emStrongLDelim.exec(t);if(!r||r[3]&&i.match(this.rules.other.unicodeAlphaNumeric))return;if(!(r[1]||r[2]||"")||!i||this.rules.inline.punctuation.exec(i)){let a=[...r[0]].length-1,o,l,c=a,u=0,d=r[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,e=e.slice(-1*t.length+a);(r=d.exec(e))!=null;){if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!o)continue;if(l=[...o].length,r[3]||r[4]){c+=l;continue}else if((r[5]||r[6])&&a%3&&!((a+l)%3)){u+=l;continue}if(c-=l,c>0)continue;l=Math.min(l,l+c+u);let h=[...r[0]][0].length,m=t.slice(0,a+r.index+h+l);if(Math.min(a,l)%2){let g=m.slice(1,-1);return{type:"em",raw:m,text:g,tokens:this.lexer.inlineTokens(g)}}let f=m.slice(2,-2);return{type:"strong",raw:m,text:f,tokens:this.lexer.inlineTokens(f)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let i=e[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(i),s=this.rules.other.startingSpaceChar.test(i)&&this.rules.other.endingSpaceChar.test(i);return r&&s&&(i=i.substring(1,i.length-1)),{type:"codespan",raw:e[0],text:i}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){let e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let i,r;return e[2]==="@"?(i=e[1],r="mailto:"+i):(i=e[1],r=i),{type:"link",raw:e[0],text:i,href:r,tokens:[{type:"text",raw:i,text:i}]}}}url(t){let e;if(e=this.rules.inline.url.exec(t)){let i,r;if(e[2]==="@")i=e[0],r="mailto:"+i;else{let s;do s=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(s!==e[0]);i=e[0],e[1]==="www."?r="http://"+e[0]:r=e[0]}return{type:"link",raw:e[0],text:i,href:r,tokens:[{type:"text",raw:i,text:i}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let i=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:i}}}},or=class n{tokens;options;state;tokenizer;inlineQueue;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||qa,this.options.tokenizer=this.options.tokenizer||new ll,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let e={other:Bi,block:dm.normal,inline:Hc.normal};this.options.pedantic?(e.block=dm.pedantic,e.inline=Hc.pedantic):this.options.gfm&&(e.block=dm.gfm,this.options.breaks?e.inline=Hc.breaks:e.inline=Hc.gfm),this.tokenizer.rules=e}static get rules(){return{block:dm,inline:Hc}}static lex(t,e){return new n(e).lex(t)}static lexInline(t,e){return new n(e).inlineTokens(t)}lex(t){t=t.replace(Bi.carriageReturn,` -`),this.blockTokens(t,this.tokens);for(let e=0;e(r=o.call({lexer:this},t,e))?(t=t.substring(r.raw.length),e.push(r),!0):!1))){if(r=this.tokenizer.space(t)){t=t.substring(r.raw.length),r.raw.length===1&&e.length>0?e[e.length-1].raw+=` -`:e.push(r);continue}if(r=this.tokenizer.code(t)){t=t.substring(r.raw.length),s=e[e.length-1],s&&(s.type==="paragraph"||s.type==="text")?(s.raw+=` -`+r.raw,s.text+=` -`+r.text,this.inlineQueue[this.inlineQueue.length-1].src=s.text):e.push(r);continue}if(r=this.tokenizer.fences(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.heading(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.hr(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.blockquote(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.list(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.html(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.def(t)){t=t.substring(r.raw.length),s=e[e.length-1],s&&(s.type==="paragraph"||s.type==="text")?(s.raw+=` -`+r.raw,s.text+=` -`+r.raw,this.inlineQueue[this.inlineQueue.length-1].src=s.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title});continue}if(r=this.tokenizer.table(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.lheading(t)){t=t.substring(r.raw.length),e.push(r);continue}if(a=t,this.options.extensions&&this.options.extensions.startBlock){let o=1/0,l=t.slice(1),c;this.options.extensions.startBlock.forEach(u=>{c=u.call({lexer:this},l),typeof c=="number"&&c>=0&&(o=Math.min(o,c))}),o<1/0&&o>=0&&(a=t.substring(0,o+1))}if(this.state.top&&(r=this.tokenizer.paragraph(a))){s=e[e.length-1],i&&s?.type==="paragraph"?(s.raw+=` -`+r.raw,s.text+=` -`+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=s.text):e.push(r),i=a.length!==t.length,t=t.substring(r.raw.length);continue}if(r=this.tokenizer.text(t)){t=t.substring(r.raw.length),s=e[e.length-1],s&&s.type==="text"?(s.raw+=` -`+r.raw,s.text+=` -`+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=s.text):e.push(r);continue}if(t){let o="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(o);break}else throw new Error(o)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){let i,r,s,a=t,o,l,c;if(this.tokens.links){let u=Object.keys(this.tokens.links);if(u.length>0)for(;(o=this.tokenizer.rules.inline.reflinkSearch.exec(a))!=null;)u.includes(o[0].slice(o[0].lastIndexOf("[")+1,-1))&&(a=a.slice(0,o.index)+"["+"a".repeat(o[0].length-2)+"]"+a.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(o=this.tokenizer.rules.inline.blockSkip.exec(a))!=null;)a=a.slice(0,o.index)+"["+"a".repeat(o[0].length-2)+"]"+a.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(o=this.tokenizer.rules.inline.anyPunctuation.exec(a))!=null;)a=a.slice(0,o.index)+"++"+a.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;t;)if(l||(c=""),l=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(u=>(i=u.call({lexer:this},t,e))?(t=t.substring(i.raw.length),e.push(i),!0):!1))){if(i=this.tokenizer.escape(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.tag(t)){t=t.substring(i.raw.length),r=e[e.length-1],e.push(i);continue}if(i=this.tokenizer.link(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(i.raw.length),r=e[e.length-1],r&&i.type==="text"&&r.type==="text"?(r.raw+=i.raw,r.text+=i.text):e.push(i);continue}if(i=this.tokenizer.emStrong(t,a,c)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.codespan(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.br(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.del(t)){t=t.substring(i.raw.length),e.push(i);continue}if(i=this.tokenizer.autolink(t)){t=t.substring(i.raw.length),e.push(i);continue}if(!this.state.inLink&&(i=this.tokenizer.url(t))){t=t.substring(i.raw.length),e.push(i);continue}if(s=t,this.options.extensions&&this.options.extensions.startInline){let u=1/0,d=t.slice(1),h;this.options.extensions.startInline.forEach(m=>{h=m.call({lexer:this},d),typeof h=="number"&&h>=0&&(u=Math.min(u,h))}),u<1/0&&u>=0&&(s=t.substring(0,u+1))}if(i=this.tokenizer.inlineText(s)){t=t.substring(i.raw.length),i.raw.slice(-1)!=="_"&&(c=i.raw.slice(-1)),l=!0,r=e[e.length-1],r&&r.type==="text"?(r.raw+=i.raw,r.text+=i.text):e.push(i);continue}if(t){let u="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(u);break}else throw new Error(u)}}return e}},Ir=class{options;parser;constructor(t){this.options=t||qa}space(t){return""}code({text:t,lang:e,escaped:i}){let r=(e||"").match(Bi.notSpaceStart)?.[0],s=t.replace(Bi.endingNewline,"")+` -`;return r?'
'+(i?s:Er(s,!0))+`
-`:"
"+(i?s:Er(s,!0))+`
-`}blockquote({tokens:t}){return`
-${this.parser.parse(t)}
-`}html({text:t}){return t}heading({tokens:t,depth:e}){return`${this.parser.parseInline(t)} -`}hr(t){return`
-`}list(t){let e=t.ordered,i=t.start,r="";for(let o=0;o -`+r+" -`}listitem(t){let e="";if(t.task){let i=this.checkbox({checked:!!t.checked});t.loose?t.tokens.length>0&&t.tokens[0].type==="paragraph"?(t.tokens[0].text=i+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&t.tokens[0].tokens[0].type==="text"&&(t.tokens[0].tokens[0].text=i+" "+Er(t.tokens[0].tokens[0].text),t.tokens[0].tokens[0].escaped=!0)):t.tokens.unshift({type:"text",raw:i+" ",text:i+" ",escaped:!0}):e+=i+" "}return e+=this.parser.parse(t.tokens,!!t.loose),`
  • ${e}
  • -`}checkbox({checked:t}){return"'}paragraph({tokens:t}){return`

    ${this.parser.parseInline(t)}

    -`}table(t){let e="",i="";for(let s=0;s${r}`),` - -`+e+` -`+r+`
    -`}tablerow({text:t}){return` -${t} -`}tablecell(t){let e=this.parser.parseInline(t.tokens),i=t.header?"th":"td";return(t.align?`<${i} align="${t.align}">`:`<${i}>`)+e+` -`}strong({tokens:t}){return`${this.parser.parseInline(t)}`}em({tokens:t}){return`${this.parser.parseInline(t)}`}codespan({text:t}){return`${Er(t,!0)}`}br(t){return"
    "}del({tokens:t}){return`${this.parser.parseInline(t)}`}link({href:t,title:e,tokens:i}){let r=this.parser.parseInline(i),s=ak(t);if(s===null)return r;t=s;let a='",a}image({href:t,title:e,text:i}){let r=ak(t);if(r===null)return Er(i);t=r;let s=`${i}{let o=s[a].flat(1/0);i=i.concat(this.walkTokens(o,e))}):s.tokens&&(i=i.concat(this.walkTokens(s.tokens,e)))}}return i}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(i=>{let r=j({},i);if(r.async=this.defaults.async||r.async||!1,i.extensions&&(i.extensions.forEach(s=>{if(!s.name)throw new Error("extension name required");if("renderer"in s){let a=e.renderers[s.name];a?e.renderers[s.name]=function(...o){let l=s.renderer.apply(this,o);return l===!1&&(l=a.apply(this,o)),l}:e.renderers[s.name]=s.renderer}if("tokenizer"in s){if(!s.level||s.level!=="block"&&s.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let a=e[s.level];a?a.unshift(s.tokenizer):e[s.level]=[s.tokenizer],s.start&&(s.level==="block"?e.startBlock?e.startBlock.push(s.start):e.startBlock=[s.start]:s.level==="inline"&&(e.startInline?e.startInline.push(s.start):e.startInline=[s.start]))}"childTokens"in s&&s.childTokens&&(e.childTokens[s.name]=s.childTokens)}),r.extensions=e),i.renderer){let s=this.defaults.renderer||new Ir(this.defaults);for(let a in i.renderer){if(!(a in s))throw new Error(`renderer '${a}' does not exist`);if(["options","parser"].includes(a))continue;let o=a,l=i.renderer[o],c=s[o];s[o]=(...u)=>{let d=l.apply(s,u);return d===!1&&(d=c.apply(s,u)),d||""}}r.renderer=s}if(i.tokenizer){let s=this.defaults.tokenizer||new ll(this.defaults);for(let a in i.tokenizer){if(!(a in s))throw new Error(`tokenizer '${a}' does not exist`);if(["options","rules","lexer"].includes(a))continue;let o=a,l=i.tokenizer[o],c=s[o];s[o]=(...u)=>{let d=l.apply(s,u);return d===!1&&(d=c.apply(s,u)),d}}r.tokenizer=s}if(i.hooks){let s=this.defaults.hooks||new ol;for(let a in i.hooks){if(!(a in s))throw new Error(`hook '${a}' does not exist`);if(["options","block"].includes(a))continue;let o=a,l=i.hooks[o],c=s[o];ol.passThroughHooks.has(a)?s[o]=u=>{if(this.defaults.async)return Promise.resolve(l.call(s,u)).then(h=>c.call(s,h));let d=l.call(s,u);return c.call(s,d)}:s[o]=(...u)=>{let d=l.apply(s,u);return d===!1&&(d=c.apply(s,u)),d}}r.hooks=s}if(i.walkTokens){let s=this.defaults.walkTokens,a=i.walkTokens;r.walkTokens=function(o){let l=[];return l.push(a.call(this,o)),s&&(l=l.concat(s.call(this,o))),l}}this.defaults=j(j({},this.defaults),r)}),this}setOptions(t){return this.defaults=j(j({},this.defaults),t),this}lexer(t,e){return or.lex(t,e??this.defaults)}parser(t,e){return lr.parse(t,e??this.defaults)}parseMarkdown(t){return(i,r)=>{let s=j({},r),a=j(j({},this.defaults),s),o=this.onError(!!a.silent,!!a.async);if(this.defaults.async===!0&&s.async===!1)return o(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof i>"u"||i===null)return o(new Error("marked(): input parameter is undefined or null"));if(typeof i!="string")return o(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(i)+", string expected"));a.hooks&&(a.hooks.options=a,a.hooks.block=t);let l=a.hooks?a.hooks.provideLexer():t?or.lex:or.lexInline,c=a.hooks?a.hooks.provideParser():t?lr.parse:lr.parseInline;if(a.async)return Promise.resolve(a.hooks?a.hooks.preprocess(i):i).then(u=>l(u,a)).then(u=>a.hooks?a.hooks.processAllTokens(u):u).then(u=>a.walkTokens?Promise.all(this.walkTokens(u,a.walkTokens)).then(()=>u):u).then(u=>c(u,a)).then(u=>a.hooks?a.hooks.postprocess(u):u).catch(o);try{a.hooks&&(i=a.hooks.preprocess(i));let u=l(i,a);a.hooks&&(u=a.hooks.processAllTokens(u)),a.walkTokens&&this.walkTokens(u,a.walkTokens);let d=c(u,a);return a.hooks&&(d=a.hooks.postprocess(d)),d}catch(u){return o(u)}}}onError(t,e){return i=>{if(i.message+=` -Please report this to https://github.com/markedjs/marked.`,t){let r="

    An error occurred:

    "+Er(i.message+"",!0)+"
    ";return e?Promise.resolve(r):r}if(e)return Promise.reject(i);throw i}}},Wa=new p_;function ft(n,t){return Wa.parse(n,t)}ft.options=ft.setOptions=function(n){return Wa.setOptions(n),ft.defaults=Wa.defaults,ck(ft.defaults),ft};ft.getDefaults=g_;ft.defaults=qa;ft.use=function(...n){return Wa.use(...n),ft.defaults=Wa.defaults,ck(ft.defaults),ft};ft.walkTokens=function(n,t){return Wa.walkTokens(n,t)};ft.parseInline=Wa.parseInline;ft.Parser=lr;ft.parser=lr.parse;ft.Renderer=Ir;ft.TextRenderer=qc;ft.Lexer=or;ft.lexer=or.lex;ft.Tokenizer=ll;ft.Hooks=ol;ft.parse=ft;var hQ=ft.options,mQ=ft.setOptions,fQ=ft.use,pQ=ft.walkTokens,gQ=ft.parseInline;var _Q=lr.parse,vQ=or.lex;var g3=["*"],_3="Copy",v3="Copied",b3=(()=>{class n{constructor(){this._buttonClick$=new me,this.copied$=this._buttonClick$.pipe(Dt(()=>ti(_e(!0),Vd(3e3).pipe(Bd(!1)))),An(),Ps(1)),this.copiedText$=this.copied$.pipe(Gt(!1),Le(e=>e?v3:_3))}onCopyToClipboardClick(){this._buttonClick$.next()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=he({type:n,selectors:[["markdown-clipboard"]],decls:4,vars:7,consts:[[1,"markdown-clipboard-button",3,"click"]],template:function(i,r){i&1&&(N(0,"button",0),Ln(1,"async"),J("click",function(){return r.onCopyToClipboardClick()}),B(2),Ln(3,"async"),F()),i&2&&(ke("copied",ir(1,3,r.copied$)),$(2),Ke(ir(3,5,r.copiedText$)))},dependencies:[Lo],encapsulation:2,changeDetection:0})}}return n})(),y3=new ee("CLIPBOARD_OPTIONS");var w_=function(n){return n.CommandLine="command-line",n.LineHighlight="line-highlight",n.LineNumbers="line-numbers",n}(w_||{}),_k=new ee("MARKED_EXTENSIONS"),C3=new ee("MARKED_OPTIONS"),w3=new ee("MERMAID_OPTIONS"),x3="[ngx-markdown] When using the `emoji` attribute you *have to* include Emoji-Toolkit files to `angular.json` or use imports. See README for more information",S3="[ngx-markdown] When using the `katex` attribute you *have to* include KaTeX files to `angular.json` or use imports. See README for more information",k3="[ngx-markdown] When using the `mermaid` attribute you *have to* include Mermaid files to `angular.json` or use imports. See README for more information",M3="[ngx-markdown] When using the `clipboard` attribute you *have to* include Clipboard files to `angular.json` or use imports. See README for more information",T3="[ngx-markdown] When using the `clipboard` attribute you *have to* provide the `viewContainerRef` parameter to `MarkdownService.render()` function",E3="[ngx-markdown] When using the `src` attribute you *have to* pass the `HttpClient` as a parameter of the `forRoot` method. See README for more information",vk=new ee("SECURITY_CONTEXT");var bk=(()=>{class n{get options(){return this._options}set options(e){this._options=j(j({},this.DEFAULT_MARKED_OPTIONS),e)}get renderer(){return this.options.renderer}set renderer(e){this.options.renderer=e}constructor(e,i,r,s,a,o,l,c){this.clipboardOptions=e,this.extensions=i,this.mermaidOptions=s,this.platform=a,this.securityContext=o,this.http=l,this.sanitizer=c,this.DEFAULT_MARKED_OPTIONS={renderer:new Ir},this.DEFAULT_KATEX_OPTIONS={delimiters:[{left:"$$",right:"$$",display:!0},{left:"$",right:"$",display:!1},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}]},this.DEFAULT_MERMAID_OPTIONS={startOnLoad:!1},this.DEFAULT_CLIPBOARD_OPTIONS={buttonComponent:void 0},this.DEFAULT_PARSE_OPTIONS={decodeHtml:!1,inline:!1,emoji:!1,mermaid:!1,markedOptions:void 0,disableSanitizer:!1},this.DEFAULT_RENDER_OPTIONS={clipboard:!1,clipboardOptions:void 0,katex:!1,katexOptions:void 0,mermaid:!1,mermaidOptions:void 0},this._reload$=new me,this.reload$=this._reload$.asObservable(),this.options=r}parse(e,i=this.DEFAULT_PARSE_OPTIONS){let{decodeHtml:r,inline:s,emoji:a,mermaid:o,disableSanitizer:l}=i,c=j(j({},this.options),i.markedOptions),u=c.renderer||this.renderer||new Ir;this.extensions&&(this.renderer=this.extendsRendererForExtensions(u)),o&&(this.renderer=this.extendsRendererForMermaid(u));let d=this.trimIndentation(e),h=r?this.decodeHtml(d):d,m=a?this.parseEmoji(h):h,f=this.parseMarked(m,c,s);return(l?f:this.sanitizer.sanitize(this.securityContext,f))||""}render(e,i=this.DEFAULT_RENDER_OPTIONS,r){let{clipboard:s,clipboardOptions:a,katex:o,katexOptions:l,mermaid:c,mermaidOptions:u}=i;o&&this.renderKatex(e,j(j({},this.DEFAULT_KATEX_OPTIONS),l)),c&&this.renderMermaid(e,j(j(j({},this.DEFAULT_MERMAID_OPTIONS),this.mermaidOptions),u)),s&&this.renderClipboard(e,r,j(j(j({},this.DEFAULT_CLIPBOARD_OPTIONS),this.clipboardOptions),a)),this.highlight(e)}reload(){this._reload$.next()}getSource(e){if(!this.http)throw new Error(E3);return this.http.get(e,{responseType:"text"}).pipe(Le(i=>this.handleExtension(e,i)))}highlight(e){if(!ts(this.platform)||typeof Prism>"u"||typeof Prism.highlightAllUnder>"u")return;e||(e=document);let i=e.querySelectorAll('pre code:not([class*="language-"])');Array.prototype.forEach.call(i,r=>r.classList.add("language-none")),Prism.highlightAllUnder(e)}decodeHtml(e){if(!ts(this.platform))return e;let i=document.createElement("textarea");return i.innerHTML=e,i.value}extendsRendererForExtensions(e){let i=e;return i.\u0275NgxMarkdownRendererExtendedForExtensions===!0||(this.extensions?.length>0&&ft.use(...this.extensions),i.\u0275NgxMarkdownRendererExtendedForExtensions=!0),e}extendsRendererForMermaid(e){let i=e;if(i.\u0275NgxMarkdownRendererExtendedForMermaid===!0)return e;let r=e.code;return e.code=s=>s.lang==="mermaid"?`
    ${s.text}
    `:r(s),i.\u0275NgxMarkdownRendererExtendedForMermaid=!0,e}handleExtension(e,i){let r=e.lastIndexOf("://"),s=r>-1?e.substring(r+4):e,a=s.lastIndexOf("/"),o=a>-1?s.substring(a+1).split("?")[0]:"",l=o.lastIndexOf("."),c=l>-1?o.substring(l+1):"";return c&&c!=="md"?"```"+c+` -`+i+"\n```":i}parseMarked(e,i,r=!1){if(i.renderer){let s=j({},i.renderer);delete s.\u0275NgxMarkdownRendererExtendedForExtensions,delete s.\u0275NgxMarkdownRendererExtendedForMermaid,delete i.renderer,ft.use({renderer:s})}return r?ft.parseInline(e,i):ft.parse(e,i)}parseEmoji(e){if(!ts(this.platform))return e;if(typeof joypixels>"u"||typeof joypixels.shortnameToUnicode>"u")throw new Error(x3);return joypixels.shortnameToUnicode(e)}renderKatex(e,i){if(ts(this.platform)){if(typeof katex>"u"||typeof renderMathInElement>"u")throw new Error(S3);renderMathInElement(e,i)}}renderClipboard(e,i,r){if(!ts(this.platform))return;if(typeof ClipboardJS>"u")throw new Error(M3);if(!i)throw new Error(T3);let{buttonComponent:s,buttonTemplate:a}=r,o=e.querySelectorAll("pre");for(let l=0;ld.classList.add("hover"),u.onmouseleave=()=>d.classList.remove("hover");let h;if(s){let f=i.createComponent(s);h=f.hostView,f.changeDetectorRef.markForCheck()}else if(a)h=i.createEmbeddedView(a);else{let f=i.createComponent(b3);h=f.hostView,f.changeDetectorRef.markForCheck()}let m;h.rootNodes.forEach(f=>{d.appendChild(f),m=new ClipboardJS(f,{text:()=>c.innerText})}),h.onDestroy(()=>m.destroy())}}renderMermaid(e,i=this.DEFAULT_MERMAID_OPTIONS){if(!ts(this.platform))return;if(typeof mermaid>"u"||typeof mermaid.initialize>"u")throw new Error(k3);let r=e.querySelectorAll(".mermaid");r.length!==0&&(mermaid.initialize(i),mermaid.run({nodes:r}))}trimIndentation(e){if(!e)return"";let i;return e.split(` -`).map(r=>{let s=i;return r.length>0&&(s=isNaN(s)?r.search(/\S|$/):Math.min(r.search(/\S|$/),s)),isNaN(i)&&(i=s),s?r.substring(s):r}).join(` -`)}static{this.\u0275fac=function(i){return new(i||n)(Oe(y3,8),Oe(_k,8),Oe(C3,8),Oe(w3,8),Oe(Hd),Oe(vk),Oe(js,8),Oe(Ws))}}static{this.\u0275prov=se({token:n,factory:n.\u0275fac})}}return n})(),yk=(()=>{class n{get disableSanitizer(){return this._disableSanitizer}set disableSanitizer(e){this._disableSanitizer=this.coerceBooleanProperty(e)}get inline(){return this._inline}set inline(e){this._inline=this.coerceBooleanProperty(e)}get clipboard(){return this._clipboard}set clipboard(e){this._clipboard=this.coerceBooleanProperty(e)}get emoji(){return this._emoji}set emoji(e){this._emoji=this.coerceBooleanProperty(e)}get katex(){return this._katex}set katex(e){this._katex=this.coerceBooleanProperty(e)}get mermaid(){return this._mermaid}set mermaid(e){this._mermaid=this.coerceBooleanProperty(e)}get lineHighlight(){return this._lineHighlight}set lineHighlight(e){this._lineHighlight=this.coerceBooleanProperty(e)}get lineNumbers(){return this._lineNumbers}set lineNumbers(e){this._lineNumbers=this.coerceBooleanProperty(e)}get commandLine(){return this._commandLine}set commandLine(e){this._commandLine=this.coerceBooleanProperty(e)}constructor(e,i,r){this.element=e,this.markdownService=i,this.viewContainerRef=r,this.error=new oe,this.load=new oe,this.ready=new oe,this._clipboard=!1,this._commandLine=!1,this._disableSanitizer=!1,this._emoji=!1,this._inline=!1,this._katex=!1,this._lineHighlight=!1,this._lineNumbers=!1,this._mermaid=!1,this.destroyed$=new me}ngOnChanges(){this.loadContent()}loadContent(){if(this.data!=null){this.handleData();return}if(this.src!=null){this.handleSrc();return}}ngAfterViewInit(){!this.data&&!this.src&&this.handleTransclusion(),this.markdownService.reload$.pipe(qe(this.destroyed$)).subscribe(()=>this.loadContent())}ngOnDestroy(){this.destroyed$.next(),this.destroyed$.complete()}render(e,i=!1){return Pt(this,null,function*(){let r={decodeHtml:i,inline:this.inline,emoji:this.emoji,mermaid:this.mermaid,disableSanitizer:this.disableSanitizer},s={clipboard:this.clipboard,clipboardOptions:this.getClipboardOptions(),katex:this.katex,katexOptions:this.katexOptions,mermaid:this.mermaid,mermaidOptions:this.mermaidOptions},a=yield this.markdownService.parse(e,r);this.element.nativeElement.innerHTML=a,this.handlePlugins(),this.markdownService.render(this.element.nativeElement,s,this.viewContainerRef),this.ready.emit()})}coerceBooleanProperty(e){return e!=null&&`${String(e)}`!="false"}getClipboardOptions(){if(this.clipboardButtonComponent||this.clipboardButtonTemplate)return{buttonComponent:this.clipboardButtonComponent,buttonTemplate:this.clipboardButtonTemplate}}handleData(){this.render(this.data)}handleSrc(){this.markdownService.getSource(this.src).subscribe({next:e=>{this.render(e).then(()=>{this.load.emit(e)})},error:e=>this.error.emit(e)})}handleTransclusion(){this.render(this.element.nativeElement.innerHTML,!0)}handlePlugins(){this.commandLine&&(this.setPluginClass(this.element.nativeElement,w_.CommandLine),this.setPluginOptions(this.element.nativeElement,{dataFilterOutput:this.filterOutput,dataHost:this.host,dataPrompt:this.prompt,dataOutput:this.output,dataUser:this.user})),this.lineHighlight&&this.setPluginOptions(this.element.nativeElement,{dataLine:this.line,dataLineOffset:this.lineOffset}),this.lineNumbers&&(this.setPluginClass(this.element.nativeElement,w_.LineNumbers),this.setPluginOptions(this.element.nativeElement,{dataStart:this.start}))}setPluginClass(e,i){let r=e.querySelectorAll("pre");for(let s=0;s{let o=i[a];if(o){let l=this.toLispCase(a);r.item(s).setAttribute(l,o.toString())}})}toLispCase(e){let i=e.match(/([A-Z])/g);if(!i)return e;let r=e.toString();for(let s=0,a=i.length;s{let i=A3(e)?$e(j({},e),{multi:!0}):{provide:_k,useValue:e,multi:!0};return[...t,i]},[])}var Ck=(()=>{class n{static forRoot(e){return{ngModule:n,providers:[I3(e)]}}static forChild(){return{ngModule:n}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=ge({type:n})}static{this.\u0275inj=pe({imports:[es]})}}return n})();var L3=n=>({clickable:n});function O3(n,t){if(n&1&&(N(0,"span",9),B(1),F()),n&2){let e=Y().$implicit;$(),Ke(e.details)}}function N3(n,t){if(n&1&&(N(0,"p"),B(1),F()),n&2){let e=Y().$implicit;$(),Ke(e.text)}}function F3(n,t){if(n&1&&ne(0,"markdown",10),n&2){let e=Y().$implicit;z("data",e.text)}}function P3(n,t){if(n&1&&(N(0,"li",12),B(1),F()),n&2){let e=t.$implicit;$(),Ye(" ",e," ")}}function U3(n,t){if(n&1&&(N(0,"ol"),le(1,P3,2,1,"li",11),F()),n&2){let e=Y().$implicit;$(),z("ngForOf",e.sliceInfo)}}function $3(n,t){if(n&1){let e=We();N(0,"li",3),J("click",function(){let r=te(e).$implicit,s=Y(2);return ie(s.select.emit(r))}),N(1,"span",4),B(2),F(),ne(3,"span",5)(4,"br"),le(5,O3,2,1,"span",6)(6,N3,2,1,"p",7)(7,F3,1,1,"markdown",8)(8,U3,2,1,"ol",7),F()}if(n&2){let e=t.$implicit,i=Y(2);Kd("issue ",e.severity,""),$(2),Ke(e.severity),$(),z("innerHtml",i.getTemplateHeaderLine(e),nc),$(2),z("ngIf",e.details),$(),z("ngIf",!e.markdown),$(),z("ngIf",e.markdown),$(),z("ngIf",e.sliceInfo.length)}}function V3(n,t){if(n&1&&(N(0,"ul",1),le(1,$3,9,9,"li",2),F()),n&2){let e=Y();z("ngClass",zs(2,L3,e.reactsToClick)),$(),z("ngForOf",e.result.issues)}}var wk=["fatal","error","warning","information"],cl=(()=>{class n{set operationResult(e){this.result=e,this.result&&this.result.issues.length&&this.result.issues.sort(n.sortIssues)}constructor(e){this.sanitized=e,this.select=new oe,this.reactsToClick=!1}ngOnInit(){this.reactsToClick=this.select.observed}static sortIssues(e,i){if(e.markdown)return-1;if(i.markdown)return 1;let r=wk.indexOf(e.severity)-wk.indexOf(i.severity);return r!==0?r:(e.line??0)-(i.line??0)}getTemplateHeaderLine(e){let i="";e.code&&(i+=` [${e.code}]`),i+=": ";let r=[];return e.line&&r.push(`line ${e.line}`),e.col&&r.push(`column ${e.col}`),e.expression&&r.push(`in ${e.expression}`),r.length&&(i+=r.join(", ")+":"),this.sanitized.bypassSecurityTrustHtml(i)}static{this.\u0275fac=function(i){return new(i||n)(Se(Ws))}}static{this.\u0275cmp=he({type:n,selectors:[["app-operation-result"]],inputs:{operationResult:"operationResult"},outputs:{select:"select"},standalone:!1,decls:1,vars:1,consts:[[3,"ngClass",4,"ngIf"],[3,"ngClass"],[3,"class","click",4,"ngFor","ngForOf"],[3,"click"],[1,"severity"],[3,"innerHtml"],["class","details",4,"ngIf"],[4,"ngIf"],[3,"data",4,"ngIf"],[1,"details"],[3,"data"],["class","slice",4,"ngFor","ngForOf"],[1,"slice"]],template:function(i,r){i&1&&le(0,V3,2,4,"ul",0),i&2&&z("ngIf",r.result)},dependencies:[On,kr,yi,yk],styles:[".card-maps[_ngcontent-%COMP%]{margin-bottom:10px}.app-ace-editor[_ngcontent-%COMP%]{border:2px solid #f8f9fa;box-shadow:0 .5rem 1rem #00000026}ul[_ngcontent-%COMP%]{list-style:none;padding:0}.clickable[_ngcontent-%COMP%] .issue[_ngcontent-%COMP%]{cursor:pointer}.issue[_ngcontent-%COMP%]{border:1px solid #e1e1e1;background:#fbfbfb;border-radius:5px;padding:5px 8px;--color: #000;border-left:4px solid var(--color);margin-bottom:4px}.issue[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:2px 0 0}.issue[_ngcontent-%COMP%] .severity[_ngcontent-%COMP%]{color:var(--color);font-weight:600}.issue.fatal[_ngcontent-%COMP%], .issue.error[_ngcontent-%COMP%]{--color: #d9534f}.issue.warning[_ngcontent-%COMP%]{--color: #f0ad4e}.issue.information[_ngcontent-%COMP%]{--color: #4ca8de}.issue[_ngcontent-%COMP%] .details[_ngcontent-%COMP%]{font-weight:700;font-size:large}[_nghost-%COMP%] .issue .code{font-size:.9em;color:#636363}[_nghost-%COMP%] .issue>span>code{background:#e1e1e1;border-radius:4px;padding:2px 4px;font-family:courier,monospace} .ace-highlight-fatal{position:absolute;background:#c30;opacity:.4} .ace-highlight-error{position:absolute;background:#f96;opacity:.4} .ace-highlight-warning{position:absolute;background:#fc0;opacity:.4} .ace-highlight-information{position:absolute;background:#9c3;opacity:.4}"]})}}return n})();function B3(n,t){n&1&&ne(0,"mat-spinner")}function z3(n,t){if(n&1&&ne(0,"app-operation-result",4),n&2){let e=Y();z("operationResult",e.operationResult)}}var xk=4,kk=(()=>{class n{constructor(e){this.data=e,this.capabilityStatement=null,this.operationResult=null,this.loading=!0,this.client=e.getFhirClient()}ngAfterViewInit(){this.client.capabilityStatement().then(e=>{this.loading=!1,this.operationResult=null,this.editor=Sk.default.edit("code"),this.editor.setReadOnly(!0),this.editor.setValue(JSON.stringify(e,null,xk),-1),this.editor.getSession().setMode("ace/mode/json"),this.editor.setTheme("ace/theme/textmate"),this.editor.commands.removeCommand("find"),this.editor.setOptions({maxLines:1e4,tabSize:xk,wrap:!0,useWorker:!1}),this.editor.resize(!0)}).catch(e=>{console.error(e),this.loading=!1,this.capabilityStatement=null,this.editor&&(this.editor.destroy(),this.editor.container.remove()),this.editor=null,e.response?.data?this.operationResult=Wt.fromOperationOutcome(e.response.data):this.operationResult=Wt.fromMatchboxError(e.message)})}static{this.\u0275fac=function(i){return new(i||n)(Se(Fn))}}static{this.\u0275cmp=he({type:n,selectors:[["app-capability-statement"]],standalone:!1,decls:10,vars:3,consts:[["id","capability-statement",1,"white-block"],[4,"ngIf"],["id","code"],[3,"operationResult",4,"ngIf"],[3,"operationResult"]],template:function(i,r){i&1&&(N(0,"div",0)(1,"h2"),B(2,"CapabilityStatement"),F(),N(3,"p"),B(4," CapabilityStatement of the server: "),N(5,"code"),B(6),F()(),le(7,B3,1,0,"mat-spinner",1),ne(8,"div",2),le(9,z3,1,1,"app-operation-result",3),F()),i&2&&($(6),Ke(r.client.baseUrl),$(),z("ngIf",r.loading),$(2),z("ngIf",r.operationResult))},dependencies:[yi,Xs,cl],encapsulation:2})}}return n})();var H3=["*"];var j3=[[["","mat-card-avatar",""],["","matCardAvatar",""]],[["mat-card-title"],["mat-card-subtitle"],["","mat-card-title",""],["","mat-card-subtitle",""],["","matCardTitle",""],["","matCardSubtitle",""]],"*"],W3=["[mat-card-avatar], [matCardAvatar]",`mat-card-title, mat-card-subtitle, - [mat-card-title], [mat-card-subtitle], - [matCardTitle], [matCardSubtitle]`,"*"],q3=new ee("MAT_CARD_CONFIG"),ul=(()=>{class n{appearance;constructor(){let e=L(q3,{optional:!0});this.appearance=e?.appearance||"raised"}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,r){i&2&&ke("mat-mdc-card-outlined",r.appearance==="outlined")("mdc-card--outlined",r.appearance==="outlined")},inputs:{appearance:"appearance"},exportAs:["matCard"],ngContentSelectors:H3,decls:1,vars:0,template:function(i,r){i&1&&(tt(),Fe(0))},styles:['.mat-mdc-card{display:flex;flex-direction:column;box-sizing:border-box;position:relative;border-style:solid;border-width:0;background-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium));box-shadow:var(--mdc-elevated-card-container-elevation, var(--mat-sys-level1))}.mat-mdc-card::after{position:absolute;top:0;left:0;width:100%;height:100%;border:solid 1px rgba(0,0,0,0);content:"";display:block;pointer-events:none;box-sizing:border-box;border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium))}.mat-mdc-card-outlined{background-color:var(--mdc-outlined-card-container-color, var(--mat-sys-surface));border-radius:var(--mdc-outlined-card-container-shape, var(--mat-sys-corner-medium));border-width:var(--mdc-outlined-card-outline-width, 1px);border-color:var(--mdc-outlined-card-outline-color, var(--mat-sys-outline-variant));box-shadow:var(--mdc-outlined-card-container-elevation, var(--mat-sys-level0))}.mat-mdc-card-outlined::after{border:none}.mdc-card__media{position:relative;box-sizing:border-box;background-repeat:no-repeat;background-position:center;background-size:cover}.mdc-card__media::before{display:block;content:""}.mdc-card__media:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__media:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mat-mdc-card-actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font, var(--mat-sys-title-large-font));line-height:var(--mat-card-title-text-line-height, var(--mat-sys-title-large-line-height));font-size:var(--mat-card-title-text-size, var(--mat-sys-title-large-size));letter-spacing:var(--mat-card-title-text-tracking, var(--mat-sys-title-large-tracking));font-weight:var(--mat-card-title-text-weight, var(--mat-sys-title-large-weight))}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color, var(--mat-sys-on-surface));font-family:var(--mat-card-subtitle-text-font, var(--mat-sys-title-medium-font));line-height:var(--mat-card-subtitle-text-line-height, var(--mat-sys-title-medium-line-height));font-size:var(--mat-card-subtitle-text-size, var(--mat-sys-title-medium-size));letter-spacing:var(--mat-card-subtitle-text-tracking, var(--mat-sys-title-medium-tracking));font-weight:var(--mat-card-subtitle-text-weight, var(--mat-sys-title-medium-weight))}.mat-mdc-card-title,.mat-mdc-card-subtitle{display:block;margin:0}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle{padding:16px 16px 0}.mat-mdc-card-header{display:flex;padding:16px 16px 0}.mat-mdc-card-content{display:block;padding:0 16px}.mat-mdc-card-content:first-child{padding-top:16px}.mat-mdc-card-content:last-child{padding-bottom:16px}.mat-mdc-card-title-group{display:flex;justify-content:space-between;width:100%}.mat-mdc-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;margin-bottom:16px;object-fit:cover}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title{line-height:normal}.mat-mdc-card-sm-image{width:80px;height:80px}.mat-mdc-card-md-image{width:112px;height:112px}.mat-mdc-card-lg-image{width:152px;height:152px}.mat-mdc-card-xl-image{width:240px;height:240px}.mat-mdc-card-subtitle~.mat-mdc-card-title,.mat-mdc-card-title~.mat-mdc-card-subtitle,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-title-group .mat-mdc-card-title,.mat-mdc-card-title-group .mat-mdc-card-subtitle{padding-top:0}.mat-mdc-card-content>:last-child:not(.mat-mdc-card-footer){margin-bottom:0}.mat-mdc-card-actions-align-end{justify-content:flex-end}'],encapsulation:2,changeDetection:0})}return n})(),fm=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-card-title"],["","mat-card-title",""],["","matCardTitle",""]],hostAttrs:[1,"mat-mdc-card-title"]})}return n})();var dl=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-card-content"]],hostAttrs:[1,"mat-mdc-card-content"]})}return n})(),Mk=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-card-subtitle"],["","mat-card-subtitle",""],["","matCardSubtitle",""]],hostAttrs:[1,"mat-mdc-card-subtitle"]})}return n})(),pm=(()=>{class n{align="start";static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-card-actions"]],hostAttrs:[1,"mat-mdc-card-actions","mdc-card__actions"],hostVars:2,hostBindings:function(i,r){i&2&&ke("mat-mdc-card-actions-align-end",r.align==="end")},inputs:{align:"align"},exportAs:["matCardActions"]})}return n})(),gm=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-card-header"]],hostAttrs:[1,"mat-mdc-card-header"],ngContentSelectors:W3,decls:4,vars:0,consts:[[1,"mat-mdc-card-header-text"]],template:function(i,r){i&1&&(tt(j3),Fe(0),N(1,"div",0),Fe(2,1),F(),Fe(3,2))},encapsulation:2,changeDetection:0})}return n})(),Tk=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-card-footer"]],hostAttrs:[1,"mat-mdc-card-footer"]})}return n})();var S_=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,Ue]})}return n})();var Yc=class{_attachedHost;attach(t){return this._attachedHost=t,t.attach(this)}detach(){let t=this._attachedHost;t!=null&&(this._attachedHost=null,t.detach())}get isAttached(){return this._attachedHost!=null}setAttachedHost(t){this._attachedHost=t}},Ga=class extends Yc{component;viewContainerRef;injector;componentFactoryResolver;projectableNodes;constructor(t,e,i,r,s){super(),this.component=t,this.viewContainerRef=e,this.injector=i,this.projectableNodes=s}},ds=class extends Yc{templateRef;viewContainerRef;context;injector;constructor(t,e,i,r){super(),this.templateRef=t,this.viewContainerRef=e,this.context=i,this.injector=r}get origin(){return this.templateRef.elementRef}attach(t,e=this.context){return this.context=e,super.attach(t)}detach(){return this.context=void 0,super.detach()}},k_=class extends Yc{element;constructor(t){super(),this.element=t instanceof Ae?t.nativeElement:t}},vm=class{_attachedPortal;_disposeFn;_isDisposed=!1;hasAttached(){return!!this._attachedPortal}attach(t){if(t instanceof Ga)return this._attachedPortal=t,this.attachComponentPortal(t);if(t instanceof ds)return this._attachedPortal=t,this.attachTemplatePortal(t);if(this.attachDomPortal&&t instanceof k_)return this._attachedPortal=t,this.attachDomPortal(t)}attachDomPortal=null;detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(t){this._disposeFn=t}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}};var bm=class extends vm{outletElement;_appRef;_defaultInjector;_document;constructor(t,e,i,r,s){super(),this.outletElement=t,this._appRef=i,this._defaultInjector=r,this._document=s}attachComponentPortal(t){let e;if(t.viewContainerRef){let i=t.injector||t.viewContainerRef.injector,r=i.get(k0,null,{optional:!0})||void 0;e=t.viewContainerRef.createComponent(t.component,{index:t.viewContainerRef.length,injector:i,ngModuleRef:r,projectableNodes:t.projectableNodes||void 0}),this.setDisposeFn(()=>e.destroy())}else e=Jd(t.component,{elementInjector:t.injector||this._defaultInjector||gt.NULL,environmentInjector:this._appRef.injector,projectableNodes:t.projectableNodes||void 0}),this._appRef.attachView(e.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(e.hostView),e.destroy()});return this.outletElement.appendChild(this._getComponentRootNode(e)),this._attachedPortal=t,e}attachTemplatePortal(t){let e=t.viewContainerRef,i=e.createEmbeddedView(t.templateRef,t.context,{injector:t.injector});return i.rootNodes.forEach(r=>this.outletElement.appendChild(r)),i.detectChanges(),this.setDisposeFn(()=>{let r=e.indexOf(i);r!==-1&&e.remove(r)}),this._attachedPortal=t,i}attachDomPortal=t=>{let e=t.element;e.parentNode;let i=this._document.createComment("dom-portal");e.parentNode.insertBefore(i,e),this.outletElement.appendChild(e),this._attachedPortal=t,super.setDisposeFn(()=>{i.parentNode&&i.parentNode.replaceChild(e,i)})};dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(t){return t.hostView.rootNodes[0]}};var Ek=(()=>{class n extends ds{constructor(){let e=L(Dn),i=L(bi);super(e,i)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[Nt]})}return n})();var Ka=(()=>{class n extends vm{_moduleRef=L(k0,{optional:!0});_document=L(it);_viewContainerRef=L(bi);_isInitialized=!1;_attachedRef;constructor(){super()}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}attached=new oe;get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(e){e.setAttachedHost(this);let i=e.viewContainerRef!=null?e.viewContainerRef:this._viewContainerRef,r=i.createComponent(e.component,{index:i.length,injector:e.injector||i.injector,projectableNodes:e.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0});return i!==this._viewContainerRef&&this._getRootNode().appendChild(r.hostView.rootNodes[0]),super.setDisposeFn(()=>r.destroy()),this._attachedPortal=e,this._attachedRef=r,this.attached.emit(r),r}attachTemplatePortal(e){e.setAttachedHost(this);let i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}attachDomPortal=e=>{let i=e.element;i.parentNode;let r=this._document.createComment("dom-portal");e.setAttachedHost(this),i.parentNode.insertBefore(r,i),this._getRootNode().appendChild(i),this._attachedPortal=e,super.setDisposeFn(()=>{r.parentNode&&r.parentNode.replaceChild(i,r)})};_getRootNode(){let e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[Nt]})}return n})();var ym=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({})}return n})();var Ze=function(n){return n[n.State=0]="State",n[n.Transition=1]="Transition",n[n.Sequence=2]="Sequence",n[n.Group=3]="Group",n[n.Animate=4]="Animate",n[n.Keyframes=5]="Keyframes",n[n.Style=6]="Style",n[n.Trigger=7]="Trigger",n[n.Reference=8]="Reference",n[n.AnimateChild=9]="AnimateChild",n[n.AnimateRef=10]="AnimateRef",n[n.Query=11]="Query",n[n.Stagger=12]="Stagger",n}(Ze||{}),Ar="*";function zi(n,t){return{type:Ze.Trigger,name:n,definitions:t,options:{}}}function ei(n,t=null){return{type:Ze.Animate,styles:t,timings:n}}function Ik(n,t=null){return{type:Ze.Sequence,steps:n,options:t}}function ht(n){return{type:Ze.Style,styles:n,offset:null}}function di(n,t,e){return{type:Ze.State,name:n,styles:t,options:e}}function M_(n){return{type:Ze.Keyframes,steps:n}}function Yt(n,t,e=null){return{type:Ze.Transition,expr:n,animation:t,options:e}}function Ak(n=null){return{type:Ze.AnimateChild,options:n}}function Dk(n,t,e=null){return{type:Ze.Query,selector:n,animation:t,options:e}}var Js=class{_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_originalOnDoneFns=[];_originalOnStartFns=[];_started=!1;_destroyed=!1;_finished=!1;_position=0;parentPlayer=null;totalTime;constructor(t=0,e=0){this.totalTime=t+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(t){this._position=this.totalTime?t*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(t){let e=t=="start"?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}},Qc=class{_onDoneFns=[];_onStartFns=[];_finished=!1;_started=!1;_destroyed=!1;_onDestroyFns=[];parentPlayer=null;totalTime=0;players;constructor(t){this.players=t;let e=0,i=0,r=0,s=this.players.length;s==0?queueMicrotask(()=>this._onFinish()):this.players.forEach(a=>{a.onDone(()=>{++e==s&&this._onFinish()}),a.onDestroy(()=>{++i==s&&this._onDestroy()}),a.onStart(()=>{++r==s&&this._onStart()})}),this.totalTime=this.players.reduce((a,o)=>Math.max(a,o.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this.players.forEach(t=>t.init())}onStart(t){this._onStartFns.push(t)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(t=>t()),this._onStartFns=[])}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(t=>t.play())}pause(){this.players.forEach(t=>t.pause())}restart(){this.players.forEach(t=>t.restart())}finish(){this._onFinish(),this.players.forEach(t=>t.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(t=>t.destroy()),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this.players.forEach(t=>t.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(t){let e=t*this.totalTime;this.players.forEach(i=>{let r=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(r)})}getPosition(){let t=this.players.reduce((e,i)=>e===null||i.totalTime>e.totalTime?i:e,null);return t!=null?t.getPosition():0}beforeDestroy(){this.players.forEach(t=>{t.beforeDestroy&&t.beforeDestroy()})}triggerCallback(t){let e=t=="start"?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}},Cm="!";var wm=class{_multiple;_emitChanges;compareWith;_selection=new Set;_deselectedToEmit=[];_selectedToEmit=[];_selected;get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}changed=new me;constructor(t=!1,e,i=!0,r){this._multiple=t,this._emitChanges=i,this.compareWith=r,e&&e.length&&(t?e.forEach(s=>this._markSelected(s)):this._markSelected(e[0]),this._selectedToEmit.length=0)}select(...t){this._verifyValueAssignment(t),t.forEach(i=>this._markSelected(i));let e=this._hasQueuedChanges();return this._emitChangeEvent(),e}deselect(...t){this._verifyValueAssignment(t),t.forEach(i=>this._unmarkSelected(i));let e=this._hasQueuedChanges();return this._emitChangeEvent(),e}setSelection(...t){this._verifyValueAssignment(t);let e=this.selected,i=new Set(t);t.forEach(s=>this._markSelected(s)),e.filter(s=>!i.has(this._getConcreteValue(s,i))).forEach(s=>this._unmarkSelected(s));let r=this._hasQueuedChanges();return this._emitChangeEvent(),r}toggle(t){return this.isSelected(t)?this.deselect(t):this.select(t)}clear(t=!0){this._unmarkAll();let e=this._hasQueuedChanges();return t&&this._emitChangeEvent(),e}isSelected(t){return this._selection.has(this._getConcreteValue(t))}isEmpty(){return this._selection.size===0}hasValue(){return!this.isEmpty()}sort(t){this._multiple&&this.selected&&this._selected.sort(t)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(t){t=this._getConcreteValue(t),this.isSelected(t)||(this._multiple||this._unmarkAll(),this.isSelected(t)||this._selection.add(t),this._emitChanges&&this._selectedToEmit.push(t))}_unmarkSelected(t){t=this._getConcreteValue(t),this.isSelected(t)&&(this._selection.delete(t),this._emitChanges&&this._deselectedToEmit.push(t))}_unmarkAll(){this.isEmpty()||this._selection.forEach(t=>this._unmarkSelected(t))}_verifyValueAssignment(t){t.length>1&&this._multiple}_hasQueuedChanges(){return!!(this._deselectedToEmit.length||this._selectedToEmit.length)}_getConcreteValue(t,e){if(this.compareWith){e=e??this._selection;for(let i of e)if(this.compareWith(t,i))return i;return t}else return t}};var Rk=(()=>{class n{_listeners=[];notify(e,i){for(let r of this._listeners)r(e,i)}listen(e){return this._listeners.push(e),()=>{this._listeners=this._listeners.filter(i=>e!==i)}}ngOnDestroy(){this._listeners=[]}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var K3=20,hl=(()=>{class n{_ngZone=L(Ne);_platform=L(ct);_document=L(it,{optional:!0});constructor(){}_scrolled=new me;_globalSubscription=null;_scrolledCount=0;scrollContainers=new Map;register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){let i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=K3){return this._platform.isBrowser?new Jn(i=>{this._globalSubscription||this._addGlobalListener();let r=e>0?this._scrolled.pipe(ic(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{r.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):_e()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){let r=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(st(s=>!s||r.indexOf(s)>-1))}getAncestorScrollContainers(e){let i=[];return this.scrollContainers.forEach((r,s)=>{this._scrollableContainsElement(s,e)&&i.push(s)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let r=rn(i),s=e.getElementRef().nativeElement;do if(r==s)return!0;while(r=r.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>{let e=this._getWindow();return Qr(e.document,"scroll").subscribe(()=>this._scrolled.next())})}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),T_=(()=>{class n{elementRef=L(Ae);scrollDispatcher=L(hl);ngZone=L(Ne);dir=L(ui,{optional:!0});_destroyed=new me;_elementScrolled=new Jn(e=>this.ngZone.runOutsideAngular(()=>Qr(this.elementRef.nativeElement,"scroll").pipe(qe(this._destroyed)).subscribe(e)));constructor(){}ngOnInit(){this.scrollDispatcher.register(this)}ngOnDestroy(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(e){let i=this.elementRef.nativeElement,r=this.dir&&this.dir.value=="rtl";e.left==null&&(e.left=r?e.end:e.start),e.right==null&&(e.right=r?e.start:e.end),e.bottom!=null&&(e.top=i.scrollHeight-i.clientHeight-e.bottom),r&&Jo()!=sr.NORMAL?(e.left!=null&&(e.right=i.scrollWidth-i.clientWidth-e.left),Jo()==sr.INVERTED?e.left=e.right:Jo()==sr.NEGATED&&(e.left=e.right?-e.right:e.right)):e.right!=null&&(e.left=i.scrollWidth-i.clientWidth-e.right),this._applyScrollToOptions(e)}_applyScrollToOptions(e){let i=this.elementRef.nativeElement;Ph()?i.scrollTo(e):(e.top!=null&&(i.scrollTop=e.top),e.left!=null&&(i.scrollLeft=e.left))}measureScrollOffset(e){let i="left",r="right",s=this.elementRef.nativeElement;if(e=="top")return s.scrollTop;if(e=="bottom")return s.scrollHeight-s.clientHeight-s.scrollTop;let a=this.dir&&this.dir.value=="rtl";return e=="start"?e=a?r:i:e=="end"&&(e=a?i:r),a&&Jo()==sr.INVERTED?e==i?s.scrollWidth-s.clientWidth-s.scrollLeft:s.scrollLeft:a&&Jo()==sr.NEGATED?e==i?s.scrollLeft+s.scrollWidth-s.clientWidth:-s.scrollLeft:e==i?s.scrollLeft:s.scrollWidth-s.clientWidth-s.scrollLeft}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]})}return n})(),Y3=20,Bn=(()=>{class n{_platform=L(ct);_viewportSize;_change=new me;_changeListener=e=>{this._change.next(e)};_document=L(it,{optional:!0});constructor(){L(Ne).runOutsideAngular(()=>{if(this._platform.isBrowser){let i=this._getWindow();i.addEventListener("resize",this._changeListener),i.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){let e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();let e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){let e=this.getViewportScrollPosition(),{width:i,height:r}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+r,right:e.left+i,height:r,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};let e=this._document,i=this._getWindow(),r=e.documentElement,s=r.getBoundingClientRect(),a=-s.top||e.body.scrollTop||i.scrollY||r.scrollTop||0,o=-s.left||e.body.scrollLeft||i.scrollX||r.scrollLeft||0;return{top:a,left:o}}change(e=Y3){return e>0?this._change.pipe(ic(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){let e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Vn=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({})}return n})(),Zc=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Zs,Vn,Zs,Vn]})}return n})();var Lk=Ph(),E_=class{_viewportRuler;_previousHTMLStyles={top:"",left:""};_previousScrollPosition;_isEnabled=!1;_document;constructor(t,e){this._viewportRuler=t,this._document=e}attach(){}enable(){if(this._canBeEnabled()){let t=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=t.style.left||"",this._previousHTMLStyles.top=t.style.top||"",t.style.left=Jt(-this._previousScrollPosition.left),t.style.top=Jt(-this._previousScrollPosition.top),t.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){let t=this._document.documentElement,e=this._document.body,i=t.style,r=e.style,s=i.scrollBehavior||"",a=r.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,t.classList.remove("cdk-global-scrollblock"),Lk&&(i.scrollBehavior=r.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),Lk&&(i.scrollBehavior=s,r.scrollBehavior=a)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;let e=this._document.body,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}};var I_=class{_scrollDispatcher;_ngZone;_viewportRuler;_config;_scrollSubscription=null;_overlayRef;_initialScrollPosition;constructor(t,e,i,r){this._scrollDispatcher=t,this._ngZone=e,this._viewportRuler=i,this._config=r}attach(t){this._overlayRef,this._overlayRef=t}enable(){if(this._scrollSubscription)return;let t=this._scrollDispatcher.scrolled(0).pipe(st(e=>!e||!this._overlayRef.overlayElement.contains(e.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=t.subscribe(()=>{let e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=t.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}_detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}},xm=class{enable(){}disable(){}attach(){}};function A_(n,t){return t.some(e=>{let i=n.bottome.bottom,s=n.righte.right;return i||r||s||a})}function Ok(n,t){return t.some(e=>{let i=n.tope.bottom,s=n.lefte.right;return i||r||s||a})}var D_=class{_scrollDispatcher;_viewportRuler;_ngZone;_config;_scrollSubscription=null;_overlayRef;constructor(t,e,i,r){this._scrollDispatcher=t,this._viewportRuler=e,this._ngZone=i,this._config=r}attach(t){this._overlayRef,this._overlayRef=t}enable(){if(!this._scrollSubscription){let t=this._config?this._config.scrollThrottle:0;this._scrollSubscription=this._scrollDispatcher.scrolled(t).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){let e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:r}=this._viewportRuler.getViewportSize();A_(e,[{width:i,height:r,bottom:r,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}})}}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}},Z3=(()=>{class n{_scrollDispatcher=L(hl);_viewportRuler=L(Bn);_ngZone=L(Ne);_document=L(it);constructor(){}noop=()=>new xm;close=e=>new I_(this._scrollDispatcher,this._ngZone,this._viewportRuler,e);block=()=>new E_(this._viewportRuler,this._document);reposition=e=>new D_(this._scrollDispatcher,this._viewportRuler,this._ngZone,e);static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Qa=class{positionStrategy;scrollStrategy=new xm;panelClass="";hasBackdrop=!1;backdropClass="cdk-overlay-dark-backdrop";width;height;minWidth;minHeight;maxWidth;maxHeight;direction;disposeOnNavigation=!1;constructor(t){if(t){let e=Object.keys(t);for(let i of e)t[i]!==void 0&&(this[i]=t[i])}}};var R_=class{connectionPair;scrollableViewProperties;constructor(t,e){this.connectionPair=t,this.scrollableViewProperties=e}};var Vk=(()=>{class n{_attachedOverlays=[];_document=L(it);_isAttached;constructor(){}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){let i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),this._attachedOverlays.length===0&&this.detach()}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),X3=(()=>{class n extends Vk{_ngZone=L(Ne,{optional:!0});add(e){super.add(e),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}_keydownListener=e=>{let i=this._attachedOverlays;for(let r=i.length-1;r>-1;r--)if(i[r]._keydownEvents.observers.length>0){let s=i[r]._keydownEvents;this._ngZone?this._ngZone.run(()=>s.next(e)):s.next(e);break}};static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),J3=(()=>{class n extends Vk{_platform=L(ct);_ngZone=L(Ne,{optional:!0});_cursorOriginalValue;_cursorStyleIsSet=!1;_pointerDownEventTarget;add(e){if(super.add(e),!this._isAttached){let i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){let e=this._document.body;e.removeEventListener("pointerdown",this._pointerDownListener,!0),e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(e){e.addEventListener("pointerdown",this._pointerDownListener,!0),e.addEventListener("click",this._clickListener,!0),e.addEventListener("auxclick",this._clickListener,!0),e.addEventListener("contextmenu",this._clickListener,!0)}_pointerDownListener=e=>{this._pointerDownEventTarget=gn(e)};_clickListener=e=>{let i=gn(e),r=e.type==="click"&&this._pointerDownEventTarget?this._pointerDownEventTarget:i;this._pointerDownEventTarget=null;let s=this._attachedOverlays.slice();for(let a=s.length-1;a>-1;a--){let o=s[a];if(o._outsidePointerEvents.observers.length<1||!o.hasAttached())continue;if(Nk(o.overlayElement,i)||Nk(o.overlayElement,r))break;let l=o._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>l.next(e)):l.next(e)}};static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function Nk(n,t){let e=typeof ShadowRoot<"u"&&ShadowRoot,i=t;for(;i;){if(i===n)return!0;i=e&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}var Bk=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["ng-component"]],hostAttrs:["cdk-overlay-style-loader",""],decls:0,vars:0,template:function(i,r){},styles:[".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}"],encapsulation:2,changeDetection:0})}return n})(),zk=(()=>{class n{_platform=L(ct);_containerElement;_document=L(it);_styleLoader=L(wt);constructor(){}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._loadStyles(),this._containerElement||this._createContainer(),this._containerElement}_createContainer(){let e="cdk-overlay-container";if(this._platform.isBrowser||Gg()){let r=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let s=0;sthis._backdropClick.next(t);_backdropTransitionendHandler=t=>{this._disposeBackdrop(t.target)};_previousHostParent;_keydownEvents=new me;_outsidePointerEvents=new me;_renders=new me;_afterRenderRef;_afterNextRenderRef;constructor(t,e,i,r,s,a,o,l,c,u=!1,d){this._portalOutlet=t,this._host=e,this._pane=i,this._config=r,this._ngZone=s,this._keyboardDispatcher=a,this._document=o,this._location=l,this._outsideClickDispatcher=c,this._animationsDisabled=u,this._injector=d,r.scrollStrategy&&(this._scrollStrategy=r.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=r.positionStrategy,this._afterRenderRef=nr(()=>jd(()=>{this._renders.next()},{injector:this._injector}))}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(t){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);let e=this._portalOutlet.attach(t);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._afterNextRenderRef?.destroy(),this._afterNextRenderRef=vi(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),typeof e?.onDestroy=="function"&&e.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();let t=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),t}dispose(){let t=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=null,t&&this._detachments.next(),this._detachments.complete(),this._afterRenderRef.destroy(),this._renders.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(t){t!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=t,this.hasAttached()&&(t.attach(this),this.updatePosition()))}updateSize(t){this._config=j(j({},this._config),t),this._updateElementSize()}setDirection(t){this._config=$e(j({},this._config),{direction:t}),this._updateElementDirection()}addPanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!0)}removePanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!1)}getDirection(){let t=this._config.direction;return t?typeof t=="string"?t:t.value:"ltr"}updateScrollStrategy(t){t!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=t,this.hasAttached()&&(t.attach(this),t.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;let t=this._pane.style;t.width=Jt(this._config.width),t.height=Jt(this._config.height),t.minWidth=Jt(this._config.minWidth),t.minHeight=Jt(this._config.minHeight),t.maxWidth=Jt(this._config.maxWidth),t.maxHeight=Jt(this._config.maxHeight)}_togglePointerEvents(t){this._pane.style.pointerEvents=t?"":"none"}_attachBackdrop(){let t="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(t)})}):this._backdropElement.classList.add(t)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){let t=this._backdropElement;if(t){if(this._animationsDisabled){this._disposeBackdrop(t);return}t.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{t.addEventListener("transitionend",this._backdropTransitionendHandler)}),t.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(t)},500))}}_toggleClasses(t,e,i){let r=el(e||[]).filter(s=>!!s);r.length&&(i?t.classList.add(...r):t.classList.remove(...r))}_detachContentWhenEmpty(){this._ngZone.runOutsideAngular(()=>{let t=this._renders.pipe(qe(ti(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||this._pane.children.length===0)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),t.unsubscribe())})})}_disposeScrollStrategy(){let t=this._scrollStrategy;t&&(t.disable(),t.detach&&t.detach())}_disposeBackdrop(t){t&&(t.removeEventListener("click",this._backdropClickHandler),t.removeEventListener("transitionend",this._backdropTransitionendHandler),t.remove(),this._backdropElement===t&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}},Fk="cdk-overlay-connected-position-bounding-box",eU=/([A-Za-z%]+)$/,Sm=class{_viewportRuler;_document;_platform;_overlayContainer;_overlayRef;_isInitialRender;_lastBoundingBoxSize={width:0,height:0};_isPushed=!1;_canPush=!0;_growAfterOpen=!1;_hasFlexibleDimensions=!0;_positionLocked=!1;_originRect;_overlayRect;_viewportRect;_containerRect;_viewportMargin=0;_scrollables=[];_preferredPositions=[];_origin;_pane;_isDisposed;_boundingBox;_lastPosition;_lastScrollVisibility;_positionChanges=new me;_resizeSubscription=Mt.EMPTY;_offsetX=0;_offsetY=0;_transformOriginSelector;_appliedPanelClasses=[];_previousPushAmount;positionChanges=this._positionChanges;get positions(){return this._preferredPositions}constructor(t,e,i,r,s){this._viewportRuler=e,this._document=i,this._platform=r,this._overlayContainer=s,this.setOrigin(t)}attach(t){this._overlayRef&&this._overlayRef,this._validatePositions(),t.hostElement.classList.add(Fk),this._overlayRef=t,this._boundingBox=t.hostElement,this._pane=t.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition){this.reapplyLastPosition();return}this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let t=this._originRect,e=this._overlayRect,i=this._viewportRect,r=this._containerRect,s=[],a;for(let o of this._preferredPositions){let l=this._getOriginPoint(t,r,o),c=this._getOverlayPoint(l,e,o),u=this._getOverlayFit(c,e,i,o);if(u.isCompletelyWithinViewport){this._isPushed=!1,this._applyPosition(o,l);return}if(this._canFitWithFlexibleDimensions(u,c,i)){s.push({position:o,origin:l,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(l,o)});continue}(!a||a.overlayFit.visibleAreal&&(l=u,o=c)}this._isPushed=!1,this._applyPosition(o.position,o.origin);return}if(this._canPush){this._isPushed=!0,this._applyPosition(a.position,a.originPoint);return}this._applyPosition(a.position,a.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&Ya(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(Fk),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;let t=this._lastPosition;if(t){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let e=this._getOriginPoint(this._originRect,this._containerRect,t);this._applyPosition(t,e)}else this.apply()}withScrollableContainers(t){return this._scrollables=t,this}withPositions(t){return this._preferredPositions=t,t.indexOf(this._lastPosition)===-1&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(t){return this._viewportMargin=t,this}withFlexibleDimensions(t=!0){return this._hasFlexibleDimensions=t,this}withGrowAfterOpen(t=!0){return this._growAfterOpen=t,this}withPush(t=!0){return this._canPush=t,this}withLockedPosition(t=!0){return this._positionLocked=t,this}setOrigin(t){return this._origin=t,this}withDefaultOffsetX(t){return this._offsetX=t,this}withDefaultOffsetY(t){return this._offsetY=t,this}withTransformOriginOn(t){return this._transformOriginSelector=t,this}_getOriginPoint(t,e,i){let r;if(i.originX=="center")r=t.left+t.width/2;else{let a=this._isRtl()?t.right:t.left,o=this._isRtl()?t.left:t.right;r=i.originX=="start"?a:o}e.left<0&&(r-=e.left);let s;return i.originY=="center"?s=t.top+t.height/2:s=i.originY=="top"?t.top:t.bottom,e.top<0&&(s-=e.top),{x:r,y:s}}_getOverlayPoint(t,e,i){let r;i.overlayX=="center"?r=-e.width/2:i.overlayX==="start"?r=this._isRtl()?-e.width:0:r=this._isRtl()?0:-e.width;let s;return i.overlayY=="center"?s=-e.height/2:s=i.overlayY=="top"?0:-e.height,{x:t.x+r,y:t.y+s}}_getOverlayFit(t,e,i,r){let s=Uk(e),{x:a,y:o}=t,l=this._getOffset(r,"x"),c=this._getOffset(r,"y");l&&(a+=l),c&&(o+=c);let u=0-a,d=a+s.width-i.width,h=0-o,m=o+s.height-i.height,f=this._subtractOverflows(s.width,u,d),g=this._subtractOverflows(s.height,h,m),v=f*g;return{visibleArea:v,isCompletelyWithinViewport:s.width*s.height===v,fitsInViewportVertically:g===s.height,fitsInViewportHorizontally:f==s.width}}_canFitWithFlexibleDimensions(t,e,i){if(this._hasFlexibleDimensions){let r=i.bottom-e.y,s=i.right-e.x,a=Pk(this._overlayRef.getConfig().minHeight),o=Pk(this._overlayRef.getConfig().minWidth),l=t.fitsInViewportVertically||a!=null&&a<=r,c=t.fitsInViewportHorizontally||o!=null&&o<=s;return l&&c}return!1}_pushOverlayOnScreen(t,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:t.x+this._previousPushAmount.x,y:t.y+this._previousPushAmount.y};let r=Uk(e),s=this._viewportRect,a=Math.max(t.x+r.width-s.width,0),o=Math.max(t.y+r.height-s.height,0),l=Math.max(s.top-i.top-t.y,0),c=Math.max(s.left-i.left-t.x,0),u=0,d=0;return r.width<=s.width?u=c||-a:u=t.xf&&!this._isInitialRender&&!this._growAfterOpen&&(a=t.y-f/2)}let l=e.overlayX==="start"&&!r||e.overlayX==="end"&&r,c=e.overlayX==="end"&&!r||e.overlayX==="start"&&r,u,d,h;if(c)h=i.width-t.x+this._viewportMargin*2,u=t.x-this._viewportMargin;else if(l)d=t.x,u=i.right-t.x;else{let m=Math.min(i.right-t.x+i.left,t.x),f=this._lastBoundingBoxSize.width;u=m*2,d=t.x-m,u>f&&!this._isInitialRender&&!this._growAfterOpen&&(d=t.x-f/2)}return{top:a,left:d,bottom:o,right:h,width:u,height:s}}_setBoundingBoxStyles(t,e){let i=this._calculateBoundingBoxRect(t,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));let r={};if(this._hasExactPosition())r.top=r.left="0",r.bottom=r.right=r.maxHeight=r.maxWidth="",r.width=r.height="100%";else{let s=this._overlayRef.getConfig().maxHeight,a=this._overlayRef.getConfig().maxWidth;r.height=Jt(i.height),r.top=Jt(i.top),r.bottom=Jt(i.bottom),r.width=Jt(i.width),r.left=Jt(i.left),r.right=Jt(i.right),e.overlayX==="center"?r.alignItems="center":r.alignItems=e.overlayX==="end"?"flex-end":"flex-start",e.overlayY==="center"?r.justifyContent="center":r.justifyContent=e.overlayY==="bottom"?"flex-end":"flex-start",s&&(r.maxHeight=Jt(s)),a&&(r.maxWidth=Jt(a))}this._lastBoundingBoxSize=i,Ya(this._boundingBox.style,r)}_resetBoundingBoxStyles(){Ya(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){Ya(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(t,e){let i={},r=this._hasExactPosition(),s=this._hasFlexibleDimensions,a=this._overlayRef.getConfig();if(r){let u=this._viewportRuler.getViewportScrollPosition();Ya(i,this._getExactOverlayY(e,t,u)),Ya(i,this._getExactOverlayX(e,t,u))}else i.position="static";let o="",l=this._getOffset(e,"x"),c=this._getOffset(e,"y");l&&(o+=`translateX(${l}px) `),c&&(o+=`translateY(${c}px)`),i.transform=o.trim(),a.maxHeight&&(r?i.maxHeight=Jt(a.maxHeight):s&&(i.maxHeight="")),a.maxWidth&&(r?i.maxWidth=Jt(a.maxWidth):s&&(i.maxWidth="")),Ya(this._pane.style,i)}_getExactOverlayY(t,e,i){let r={top:"",bottom:""},s=this._getOverlayPoint(e,this._overlayRect,t);if(this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),t.overlayY==="bottom"){let a=this._document.documentElement.clientHeight;r.bottom=`${a-(s.y+this._overlayRect.height)}px`}else r.top=Jt(s.y);return r}_getExactOverlayX(t,e,i){let r={left:"",right:""},s=this._getOverlayPoint(e,this._overlayRect,t);this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i));let a;if(this._isRtl()?a=t.overlayX==="end"?"left":"right":a=t.overlayX==="end"?"right":"left",a==="right"){let o=this._document.documentElement.clientWidth;r.right=`${o-(s.x+this._overlayRect.width)}px`}else r.left=Jt(s.x);return r}_getScrollVisibility(){let t=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(r=>r.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:Ok(t,i),isOriginOutsideView:A_(t,i),isOverlayClipped:Ok(e,i),isOverlayOutsideView:A_(e,i)}}_subtractOverflows(t,...e){return e.reduce((i,r)=>i-Math.max(r,0),t)}_getNarrowedViewportRect(){let t=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+t-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:t-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return this._overlayRef.getDirection()==="rtl"}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(t,e){return e==="x"?t.offsetX==null?this._offsetX:t.offsetX:t.offsetY==null?this._offsetY:t.offsetY}_validatePositions(){}_addPanelClasses(t){this._pane&&el(t).forEach(e=>{e!==""&&this._appliedPanelClasses.indexOf(e)===-1&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(t=>{this._pane.classList.remove(t)}),this._appliedPanelClasses=[])}_getOriginRect(){let t=this._origin;if(t instanceof Ae)return t.nativeElement.getBoundingClientRect();if(t instanceof Element)return t.getBoundingClientRect();let e=t.width||0,i=t.height||0;return{top:t.y,bottom:t.y+i,left:t.x,right:t.x+e,height:i,width:e}}};function Ya(n,t){for(let e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);return n}function Pk(n){if(typeof n!="number"&&n!=null){let[t,e]=n.split(eU);return!e||e==="px"?parseFloat(t):null}return n||null}function Uk(n){return{top:Math.floor(n.top),right:Math.floor(n.right),bottom:Math.floor(n.bottom),left:Math.floor(n.left),width:Math.floor(n.width),height:Math.floor(n.height)}}function tU(n,t){return n===t?!0:n.isOriginClipped===t.isOriginClipped&&n.isOriginOutsideView===t.isOriginOutsideView&&n.isOverlayClipped===t.isOverlayClipped&&n.isOverlayOutsideView===t.isOverlayOutsideView}var $k="cdk-global-overlay-wrapper",O_=class{_overlayRef;_cssPosition="static";_topOffset="";_bottomOffset="";_alignItems="";_xPosition="";_xOffset="";_width="";_height="";_isDisposed=!1;attach(t){let e=t.getConfig();this._overlayRef=t,this._width&&!e.width&&t.updateSize({width:this._width}),this._height&&!e.height&&t.updateSize({height:this._height}),t.hostElement.classList.add($k),this._isDisposed=!1}top(t=""){return this._bottomOffset="",this._topOffset=t,this._alignItems="flex-start",this}left(t=""){return this._xOffset=t,this._xPosition="left",this}bottom(t=""){return this._topOffset="",this._bottomOffset=t,this._alignItems="flex-end",this}right(t=""){return this._xOffset=t,this._xPosition="right",this}start(t=""){return this._xOffset=t,this._xPosition="start",this}end(t=""){return this._xOffset=t,this._xPosition="end",this}width(t=""){return this._overlayRef?this._overlayRef.updateSize({width:t}):this._width=t,this}height(t=""){return this._overlayRef?this._overlayRef.updateSize({height:t}):this._height=t,this}centerHorizontally(t=""){return this.left(t),this._xPosition="center",this}centerVertically(t=""){return this.top(t),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;let t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:r,height:s,maxWidth:a,maxHeight:o}=i,l=(r==="100%"||r==="100vw")&&(!a||a==="100%"||a==="100vw"),c=(s==="100%"||s==="100vh")&&(!o||o==="100%"||o==="100vh"),u=this._xPosition,d=this._xOffset,h=this._overlayRef.getConfig().direction==="rtl",m="",f="",g="";l?g="flex-start":u==="center"?(g="center",h?f=d:m=d):h?u==="left"||u==="end"?(g="flex-end",m=d):(u==="right"||u==="start")&&(g="flex-start",f=d):u==="left"||u==="start"?(g="flex-start",m=d):(u==="right"||u==="end")&&(g="flex-end",f=d),t.position=this._cssPosition,t.marginLeft=l?"0":m,t.marginTop=c?"0":this._topOffset,t.marginBottom=this._bottomOffset,t.marginRight=l?"0":f,e.justifyContent=g,e.alignItems=c?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;let t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove($k),i.justifyContent=i.alignItems=t.marginTop=t.marginBottom=t.marginLeft=t.marginRight=t.position="",this._overlayRef=null,this._isDisposed=!0}},iU=(()=>{class n{_viewportRuler=L(Bn);_document=L(it);_platform=L(ct);_overlayContainer=L(zk);constructor(){}global(){return new O_}flexibleConnectedTo(e){return new Sm(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),ii=(()=>{class n{scrollStrategies=L(Z3);_overlayContainer=L(zk);_positionBuilder=L(iU);_keyboardDispatcher=L(X3);_injector=L(gt);_ngZone=L(Ne);_document=L(it);_directionality=L(ui);_location=L(Ia);_outsideClickDispatcher=L(J3);_animationsModuleType=L(Ot,{optional:!0});_idGenerator=L(Ft);_appRef;_styleLoader=L(wt);constructor(){}create(e){this._styleLoader.load(Bk);let i=this._createHostElement(),r=this._createPaneElement(i),s=this._createPortalOutlet(r),a=new Qa(e);return a.direction=a.direction||this._directionality.value,new L_(s,i,r,a,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,this._animationsModuleType==="NoopAnimations",this._injector.get(Zr))}position(){return this._positionBuilder}_createPaneElement(e){let i=this._document.createElement("div");return i.id=this._idGenerator.getId("cdk-overlay-"),i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){let e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(tr)),new bm(e,null,this._appRef,this._injector,this._document)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),nU=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],Hk=new ee("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{let n=L(ii);return()=>n.scrollStrategies.reposition()}}),Xc=(()=>{class n{elementRef=L(Ae);constructor(){}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]})}return n})(),N_=(()=>{class n{_overlay=L(ii);_dir=L(ui,{optional:!0});_overlayRef;_templatePortal;_backdropSubscription=Mt.EMPTY;_attachSubscription=Mt.EMPTY;_detachSubscription=Mt.EMPTY;_positionSubscription=Mt.EMPTY;_offsetX;_offsetY;_position;_scrollStrategyFactory=L(Hk);_disposeOnNavigation=!1;_ngZone=L(Ne);origin;positions;positionStrategy;get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}width;height;minWidth;minHeight;backdropClass;panelClass;viewportMargin=0;scrollStrategy;open=!1;disableClose=!1;transformOriginSelector;hasBackdrop=!1;lockPosition=!1;flexibleDimensions=!1;growAfterOpen=!1;push=!1;get disposeOnNavigation(){return this._disposeOnNavigation}set disposeOnNavigation(e){this._disposeOnNavigation=e}backdropClick=new oe;positionChange=new oe;attach=new oe;detach=new oe;overlayKeydown=new oe;overlayOutsideClick=new oe;constructor(){let e=L(Dn),i=L(bi);this._templatePortal=new ds(e,i),this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=nU);let e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),i.keyCode===27&&!this.disableClose&&!Vi(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{let r=this._getOriginElement(),s=gn(i);(!r||r!==s&&!r.contains(s))&&this.overlayOutsideClick.next(i)})}_buildConfig(){let e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Qa({direction:this._dir||"ltr",positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation});return(this.width||this.width===0)&&(i.width=this.width),(this.height||this.height===0)&&(i.height=this.height),(this.minWidth||this.minWidth===0)&&(i.minWidth=this.minWidth),(this.minHeight||this.minHeight===0)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){let i=this.positions.map(r=>({originX:r.originX,originY:r.originY,overlayX:r.overlayX,overlayY:r.overlayY,offsetX:r.offsetX||this.offsetX,offsetY:r.offsetY||this.offsetY,panelClass:r.panelClass||void 0}));return e.setOrigin(this._getOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){let e=this._overlay.position().flexibleConnectedTo(this._getOrigin());return this._updatePositionStrategy(e),e}_getOrigin(){return this.origin instanceof Xc?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof Xc?this.origin.elementRef.nativeElement:this.origin instanceof Ae?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(AC(()=>this.positionChange.observers.length>0)).subscribe(e=>{this._ngZone.run(()=>this.positionChange.emit(e)),this.positionChange.observers.length===0&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",be],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",be],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",be],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",be],push:[2,"cdkConnectedOverlayPush","push",be],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",be]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[Qe,vt]})}return n})();function rU(n){return()=>n.scrollStrategies.reposition()}var sU={provide:Hk,deps:[ii],useFactory:rU},Dr=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({providers:[ii,sU],imports:[Zs,ym,Zc,Zc]})}return n})();var aU=["mat-menu-item",""],oU=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],lU=["mat-icon, [matMenuItemIcon]","*"];function cU(n,t){n&1&&(Qt(),N(0,"svg",2),ne(1,"polygon",3),F())}var uU=new ee("MAT_MENU_PANEL"),km=(()=>{class n{_elementRef=L(Ae);_document=L(it);_focusMonitor=L(Un);_parentMenu=L(uU,{optional:!0});_changeDetectorRef=L(Xe);role="menuitem";disabled=!1;disableRipple=!1;_hovered=new me;_focused=new me;_highlighted=!1;_triggersSubmenu=!1;constructor(){L(wt).load(Di),this._parentMenu?.addItem?.(this)}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){let e=this._elementRef.nativeElement.cloneNode(!0),i=e.querySelectorAll("mat-icon, .material-icons");for(let r=0;r enter",ei("120ms cubic-bezier(0, 0, 0.2, 1)",ht({opacity:1,transform:"scale(1)"}))),Yt("* => void",ei("100ms 25ms linear",ht({opacity:0})))]),fadeInItems:zi("fadeInItems",[di("showing",ht({opacity:1})),Yt("void => *",[ht({opacity:0}),ei("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},yX=jk.fadeInItems,CX=jk.transformMenu;var dU=new ee("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{let n=L(ii);return()=>n.scrollStrategies.reposition()}});function hU(n){return()=>n.scrollStrategies.reposition()}var mU={provide:dU,deps:[ii],useFactory:hU};var F_=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({providers:[mU],imports:[cs,Ue,Dr,Vn,Ue]})}return n})();var qk=(()=>{class n{constructor(){this.version=window.MATCHBOX_VERSION}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=he({type:n,selectors:[["app-home"]],standalone:!1,decls:31,vars:1,consts:[[1,"primary"],["mat-menu-item","","routerLink","/validate"],["mat-menu-item","","routerLink","/igs"],["mat-menu-item","","routerLink","/settings"],["href","https://fhirpath-lab.com/fml","target","_blank"],["href","https://tx.fhir.org/tx-reg/","target","_blank"],["href","https://www.ahdis.ch","rel","external nofollow noopener","target","_blank"]],template:function(i,r){i&1&&(N(0,"mat-card",0)(1,"mat-card-content")(2,"button",1)(3,"mat-icon"),B(4,"rule"),F(),N(5,"span"),B(6,"Validate resource"),F()(),N(7,"button",2)(8,"mat-icon"),B(9,"info"),F(),N(10,"span"),B(11,"Installed IGs"),F()(),N(12,"button",3)(13,"mat-icon"),B(14,"settings"),F(),N(15,"span"),B(16,"Settings"),F()(),N(17,"p"),B(18,"Other tools:"),F(),N(19,"ul")(20,"li")(21,"a",4),B(22,"Select matchbox in Fhirpath Lab top right to use FML with our test instance"),F()(),N(23,"li")(24,"a",5),B(25,"FHIR Tx Server Registry"),F()()()(),N(26,"mat-card-footer")(27,"p"),B(28),N(29,"a",6),B(30," contact"),F()()()()),i&2&&($(28),Ye(" Matchbox version: ",r.version," | "))},dependencies:[ul,dl,Tk,$n,km,Ch],styles:["mat-card.primary[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-right:20px}mat-card.primary[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%] button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:8px;vertical-align:middle;color:#68c39a}mat-card.primary[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:30px 0 15px}mat-card.primary[_ngcontent-%COMP%] mat-card-footer[_ngcontent-%COMP%]{padding:0 1.5rem 1.5rem}"]})}}return n})();var Jk=(()=>{class n{_renderer;_elementRef;onChange=e=>{};onTouched=()=>{};constructor(e,i){this._renderer=e,this._elementRef=i}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static \u0275fac=function(i){return new(i||n)(Se(rc),Se(Ae))};static \u0275dir=xe({type:n})}return n})(),fU=(()=>{class n extends Jk{static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275dir=xe({type:n,features:[Nt]})}return n})(),hs=new ee("");var pU={provide:hs,useExisting:Ii(()=>Rr),multi:!0};function gU(){let n=A0()?A0().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}var _U=new ee(""),Rr=(()=>{class n extends Jk{_compositionMode;_composing=!1;constructor(e,i,r){super(e,i),this._compositionMode=r,this._compositionMode==null&&(this._compositionMode=!gU())}writeValue(e){let i=e??"";this.setProperty("value",i)}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static \u0275fac=function(i){return new(i||n)(Se(rc),Se(Ae),Se(_U,8))};static \u0275dir=xe({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,r){i&1&&J("input",function(a){return r._handleInput(a.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(a){return r._compositionEnd(a.target.value)})},standalone:!1,features:[at([pU]),Nt]})}return n})();function ea(n){return n==null||(typeof n=="string"||Array.isArray(n))&&n.length===0}function eM(n){return n!=null&&typeof n.length=="number"}var ia=new ee(""),Nm=new ee(""),vU=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Cn=class{static min(t){return bU(t)}static max(t){return yU(t)}static required(t){return CU(t)}static requiredTrue(t){return wU(t)}static email(t){return xU(t)}static minLength(t){return SU(t)}static maxLength(t){return kU(t)}static pattern(t){return MU(t)}static nullValidator(t){return tM(t)}static compose(t){return oM(t)}static composeAsync(t){return lM(t)}};function bU(n){return t=>{if(ea(t.value)||ea(n))return null;let e=parseFloat(t.value);return!isNaN(e)&&e{if(ea(t.value)||ea(n))return null;let e=parseFloat(t.value);return!isNaN(e)&&e>n?{max:{max:n,actual:t.value}}:null}}function CU(n){return ea(n.value)?{required:!0}:null}function wU(n){return n.value===!0?null:{required:!0}}function xU(n){return ea(n.value)||vU.test(n.value)?null:{email:!0}}function SU(n){return t=>ea(t.value)||!eM(t.value)?null:t.value.lengtheM(t.value)&&t.value.length>n?{maxlength:{requiredLength:n,actualLength:t.value.length}}:null}function MU(n){if(!n)return tM;let t,e;return typeof n=="string"?(e="",n.charAt(0)!=="^"&&(e+="^"),e+=n,n.charAt(n.length-1)!=="$"&&(e+="$"),t=new RegExp(e)):(e=n.toString(),t=n),i=>{if(ea(i.value))return null;let r=i.value;return t.test(r)?null:{pattern:{requiredPattern:e,actualValue:r}}}}function tM(n){return null}function iM(n){return n!=null}function nM(n){return Gd(n)?_i(n):n}function rM(n){let t={};return n.forEach(e=>{t=e!=null?j(j({},t),e):t}),Object.keys(t).length===0?null:t}function sM(n,t){return t.map(e=>e(n))}function TU(n){return!n.validate}function aM(n){return n.map(t=>TU(t)?t:e=>t.validate(e))}function oM(n){if(!n)return null;let t=n.filter(iM);return t.length==0?null:function(e){return rM(sM(e,t))}}function B_(n){return n!=null?oM(aM(n)):null}function lM(n){if(!n)return null;let t=n.filter(iM);return t.length==0?null:function(e){let i=sM(e,t).map(nM);return To(i).pipe(Le(rM))}}function z_(n){return n!=null?lM(aM(n)):null}function Gk(n,t){return n===null?[t]:Array.isArray(n)?[...n,t]:[n,t]}function cM(n){return n._rawValidators}function uM(n){return n._rawAsyncValidators}function P_(n){return n?Array.isArray(n)?n:[n]:[]}function Tm(n,t){return Array.isArray(n)?n.includes(t):n===t}function Kk(n,t){let e=P_(t);return P_(n).forEach(r=>{Tm(e,r)||e.push(r)}),e}function Yk(n,t){return P_(t).filter(e=>!Tm(n,e))}var Em=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=B_(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=z_(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t=void 0){this.control&&this.control.reset(t)}hasError(t,e){return this.control?this.control.hasError(t,e):!1}getError(t,e){return this.control?this.control.getError(t,e):null}},Za=class extends Em{name;get formDirective(){return null}get path(){return null}},cr=class extends Em{_parent=null;name=null;valueAccessor=null},U_=class{_cd;constructor(t){this._cd=t}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}},EU={"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"},$X=$e(j({},EU),{"[class.ng-submitted]":"isSubmitted"}),Lr=(()=>{class n extends U_{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(Se(cr,2))};static \u0275dir=xe({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){i&2&&ke("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},standalone:!1,features:[Nt]})}return n})();var eu="VALID",Mm="INVALID",ml="PENDING",tu="DISABLED",ta=class{},Im=class extends ta{value;source;constructor(t,e){super(),this.value=t,this.source=e}},nu=class extends ta{pristine;source;constructor(t,e){super(),this.pristine=t,this.source=e}},ru=class extends ta{touched;source;constructor(t,e){super(),this.touched=t,this.source=e}},fl=class extends ta{status;source;constructor(t,e){super(),this.status=t,this.source=e}},$_=class extends ta{source;constructor(t){super(),this.source=t}},V_=class extends ta{source;constructor(t){super(),this.source=t}};function dM(n){return(Fm(n)?n.validators:n)||null}function IU(n){return Array.isArray(n)?B_(n):n||null}function hM(n,t){return(Fm(t)?t.asyncValidators:n)||null}function AU(n){return Array.isArray(n)?z_(n):n||null}function Fm(n){return n!=null&&!Array.isArray(n)&&typeof n=="object"}function DU(n,t,e){let i=n.controls;if(!(t?Object.keys(i):i).length)throw new je(1e3,"");if(!i[e])throw new je(1001,"")}function RU(n,t,e){n._forEachChild((i,r)=>{if(e[r]===void 0)throw new je(1002,"")})}var Am=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(t,e){this._assignValidators(t),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get status(){return nr(this.statusReactive)}set status(t){nr(()=>this.statusReactive.set(t))}_status=Jr(()=>this.statusReactive());statusReactive=Xi(void 0);get valid(){return this.status===eu}get invalid(){return this.status===Mm}get pending(){return this.status==ml}get disabled(){return this.status===tu}get enabled(){return this.status!==tu}errors;get pristine(){return nr(this.pristineReactive)}set pristine(t){nr(()=>this.pristineReactive.set(t))}_pristine=Jr(()=>this.pristineReactive());pristineReactive=Xi(!0);get dirty(){return!this.pristine}get touched(){return nr(this.touchedReactive)}set touched(t){nr(()=>this.touchedReactive.set(t))}_touched=Jr(()=>this.touchedReactive());touchedReactive=Xi(!1);get untouched(){return!this.touched}_events=new me;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(Kk(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(Kk(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(Yk(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(Yk(t,this._rawAsyncValidators))}hasValidator(t){return Tm(this._rawValidators,t)}hasAsyncValidator(t){return Tm(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){let e=this.touched===!1;this.touched=!0;let i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsTouched($e(j({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new ru(!0,i))}markAllAsTouched(t={}){this.markAsTouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(t))}markAsUntouched(t={}){let e=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=t.sourceControl??this;this._forEachChild(r=>{r.markAsUntouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:i})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,i),e&&t.emitEvent!==!1&&this._events.next(new ru(!1,i))}markAsDirty(t={}){let e=this.pristine===!0;this.pristine=!1;let i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsDirty($e(j({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new nu(!1,i))}markAsPristine(t={}){let e=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=t.sourceControl??this;this._forEachChild(r=>{r.markAsPristine({onlySelf:!0,emitEvent:t.emitEvent})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t,i),e&&t.emitEvent!==!1&&this._events.next(new nu(!0,i))}markAsPending(t={}){this.status=ml;let e=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new fl(this.status,e)),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.markAsPending($e(j({},t),{sourceControl:e}))}disable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=tu,this.errors=null,this._forEachChild(r=>{r.disable($e(j({},t),{onlySelf:!0}))}),this._updateValue();let i=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new Im(this.value,i)),this._events.next(new fl(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors($e(j({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(r=>r(!0))}enable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=eu,this._forEachChild(i=>{i.enable($e(j({},t),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors($e(j({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t,e){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine({},e),this._parent._updateTouched({},e))}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===eu||this.status===ml)&&this._runAsyncValidator(i,t.emitEvent)}let e=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new Im(this.value,e)),this._events.next(new fl(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity($e(j({},t),{sourceControl:e}))}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?tu:eu}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t,e){if(this.asyncValidator){this.status=ml,this._hasOwnPendingAsyncValidator={emitEvent:e!==!1};let i=nM(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(r=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(r,{emitEvent:e,shouldHaveEmitted:t})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let t=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,t}return!1}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(e.emitEvent!==!1,this,e.shouldHaveEmitted)}get(t){let e=t;return e==null||(Array.isArray(e)||(e=e.split(".")),e.length===0)?null:e.reduce((i,r)=>i&&i._find(r),this)}getError(t,e){let i=e?this.get(e):this;return i&&i.errors?i.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t,e,i){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),(t||i)&&this._events.next(new fl(this.status,e)),this._parent&&this._parent._updateControlsErrors(t,e,i)}_initObservables(){this.valueChanges=new oe,this.statusChanges=new oe}_calculateStatus(){return this._allControlsDisabled()?tu:this.errors?Mm:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(ml)?ml:this._anyControlsHaveStatus(Mm)?Mm:eu}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t,e){let i=!this._anyControlsDirty(),r=this.pristine!==i;this.pristine=i,this._parent&&!t.onlySelf&&this._parent._updatePristine(t,e),r&&this._events.next(new nu(this.pristine,e))}_updateTouched(t={},e){this.touched=this._anyControlsTouched(),this._events.next(new ru(this.touched,e)),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,e)}_onDisabledChange=[];_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){Fm(t)&&t.updateOn!=null&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){let e=this._parent&&this._parent.dirty;return!t&&!!e&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=IU(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=AU(this._rawAsyncValidators)}},Dm=class extends Am{constructor(t,e,i){super(dM(e),hM(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e,i={}){this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){RU(this,!0,t),Object.keys(t).forEach(i=>{DU(this,!0,i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t!=null&&(Object.keys(t).forEach(i=>{let r=this.controls[i];r&&r.patchValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild((i,r)=>{i.reset(t?t[r]:null,{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(t,e,i)=>(t[i]=e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(e,i)=>i._syncPendingControls()?!0:e);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(e=>{let i=this.controls[e];i&&t(i,e)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(let[e,i]of Object.entries(this.controls))if(this.contains(e)&&t(i))return!0;return!1}_reduceValue(){let t={};return this._reduceChildren(t,(e,i,r)=>((i.enabled||this.disabled)&&(e[r]=i.value),e))}_reduceChildren(t,e){let i=t;return this._forEachChild((r,s)=>{i=e(i,r,s)}),i}_allControlsDisabled(){for(let t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}};var pl=new ee("CallSetDisabledState",{providedIn:"root",factory:()=>Pm}),Pm="always";function LU(n,t){return[...t.path,n]}function su(n,t,e=Pm){H_(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||e==="always")&&t.valueAccessor.setDisabledState?.(n.disabled),NU(n,t),PU(n,t),FU(n,t),OU(n,t)}function Rm(n,t,e=!0){let i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),Om(n,t),n&&(t._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function Lm(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function OU(n,t){if(t.valueAccessor.setDisabledState){let e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}function H_(n,t){let e=cM(n);t.validator!==null?n.setValidators(Gk(e,t.validator)):typeof e=="function"&&n.setValidators([e]);let i=uM(n);t.asyncValidator!==null?n.setAsyncValidators(Gk(i,t.asyncValidator)):typeof i=="function"&&n.setAsyncValidators([i]);let r=()=>n.updateValueAndValidity();Lm(t._rawValidators,r),Lm(t._rawAsyncValidators,r)}function Om(n,t){let e=!1;if(n!==null){if(t.validator!==null){let r=cM(n);if(Array.isArray(r)&&r.length>0){let s=r.filter(a=>a!==t.validator);s.length!==r.length&&(e=!0,n.setValidators(s))}}if(t.asyncValidator!==null){let r=uM(n);if(Array.isArray(r)&&r.length>0){let s=r.filter(a=>a!==t.asyncValidator);s.length!==r.length&&(e=!0,n.setAsyncValidators(s))}}}let i=()=>{};return Lm(t._rawValidators,i),Lm(t._rawAsyncValidators,i),e}function NU(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,n.updateOn==="change"&&mM(n,t)})}function FU(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,n.updateOn==="blur"&&n._pendingChange&&mM(n,t),n.updateOn!=="submit"&&n.markAsTouched()})}function mM(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function PU(n,t){let e=(i,r)=>{t.valueAccessor.writeValue(i),r&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}function fM(n,t){n==null,H_(n,t)}function UU(n,t){return Om(n,t)}function pM(n,t){if(!n.hasOwnProperty("model"))return!1;let e=n.model;return e.isFirstChange()?!0:!Object.is(t,e.currentValue)}function $U(n){return Object.getPrototypeOf(n.constructor)===fU}function gM(n,t){n._syncPendingControls(),t.forEach(e=>{let i=e.control;i.updateOn==="submit"&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function _M(n,t){if(!t)return null;Array.isArray(t);let e,i,r;return t.forEach(s=>{s.constructor===Rr?e=s:$U(s)?i=s:r=s}),r||i||e||null}function VU(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}var BU={provide:Za,useExisting:Ii(()=>au)},iu=Promise.resolve(),au=(()=>{class n extends Za{callSetDisabledState;get submitted(){return nr(this.submittedReactive)}_submitted=Jr(()=>this.submittedReactive());submittedReactive=Xi(!1);_directives=new Set;form;ngSubmit=new oe;options;constructor(e,i,r){super(),this.callSetDisabledState=r,this.form=new Dm({},B_(e),z_(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){iu.then(()=>{let i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),su(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){iu.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){iu.then(()=>{let i=this._findContainer(e.path),r=new Dm({});fM(r,e),i.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){iu.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){iu.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submittedReactive.set(!0),gM(this.form,this._directives),this.ngSubmit.emit(e),e?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submittedReactive.set(!1)}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}static \u0275fac=function(i){return new(i||n)(Se(ia,10),Se(Nm,10),Se(pl,8))};static \u0275dir=xe({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){i&1&&J("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[at([BU]),Nt]})}return n})();function Qk(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}function Zk(n){return typeof n=="object"&&n!==null&&Object.keys(n).length===2&&"value"in n&&"disabled"in n}var Or=class extends Am{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(t=null,e,i){super(dM(e),hM(i,e)),this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Fm(e)&&(e.nonNullable||e.initialValueIsDefault)&&(Zk(t)?this.defaultValue=t.value:this.defaultValue=t)}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&e.emitModelToViewChange!==!1&&this._onChange.forEach(i=>i(this.value,e.emitViewToModelChange!==!1)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=this.defaultValue,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){Qk(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){Qk(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(t){Zk(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}},ms=Or,zU=n=>n instanceof Or;var HU={provide:cr,useExisting:Ii(()=>j_)},Xk=Promise.resolve(),j_=(()=>{class n extends cr{_changeDetectorRef;callSetDisabledState;control=new Or;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new oe;constructor(e,i,r,s,a,o){super(),this._changeDetectorRef=a,this.callSetDisabledState=o,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=_M(this,s)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){let i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),pM(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){su(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(e){Xk.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){let i=e.isDisabled.currentValue,r=i!==0&&be(i);Xk.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?LU(e,this._parent):[e]}static \u0275fac=function(i){return new(i||n)(Se(Za,9),Se(ia,10),Se(Nm,10),Se(hs,10),Se(Xe,8),Se(pl,8))};static \u0275dir=xe({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[at([HU]),Nt,vt]})}return n})();var vM=new ee(""),jU={provide:cr,useExisting:Ii(()=>ur)},ur=(()=>{class n extends cr{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(e){}model;update=new oe;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,r,s,a){super(),this._ngModelWarningConfig=s,this.callSetDisabledState=a,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=_M(this,r)}ngOnChanges(e){if(this._isControlChanged(e)){let i=e.form.previousValue;i&&Rm(i,this,!1),su(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}pM(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&Rm(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static \u0275fac=function(i){return new(i||n)(Se(ia,10),Se(Nm,10),Se(hs,10),Se(vM,8),Se(pl,8))};static \u0275dir=xe({type:n,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],standalone:!1,features:[at([jU]),Nt,vt]})}return n})(),WU={provide:Za,useExisting:Ii(()=>ou)},ou=(()=>{class n extends Za{callSetDisabledState;get submitted(){return nr(this._submittedReactive)}set submitted(e){this._submittedReactive.set(e)}_submitted=Jr(()=>this._submittedReactive());_submittedReactive=Xi(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];form=null;ngSubmit=new oe;constructor(e,i,r){super(),this.callSetDisabledState=r,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Om(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){let i=this.form.get(e.path);return su(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){Rm(e.control||null,e,!1),VU(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){return this._submittedReactive.set(!0),gM(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new $_(this.control)),e?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this._submittedReactive.set(!1),this.form._events.next(new V_(this.form))}_updateDomValue(){this.directives.forEach(e=>{let i=e.control,r=this.form.get(e.path);i!==r&&(Rm(i||null,e),zU(r)&&(su(r,e,this.callSetDisabledState),e.control=r))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){let i=this.form.get(e.path);fM(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){let i=this.form.get(e.path);i&&UU(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){H_(this.form,this),this._oldForm&&Om(this._oldForm,this)}_checkFormPresent(){this.form}static \u0275fac=function(i){return new(i||n)(Se(ia,10),Se(Nm,10),Se(pl,8))};static \u0275dir=xe({type:n,selectors:[["","formGroup",""]],hostBindings:function(i,r){i&1&&J("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[at([WU]),Nt,vt]})}return n})();var bM=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({})}return n})();var W_=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:pl,useValue:e.callSetDisabledState??Pm}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[bM]})}return n})(),lu=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:vM,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:pl,useValue:e.callSetDisabledState??Pm}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[bM]})}return n})();var LM=Os(Dh());var q_=class{_box;_destroyed=new me;_resizeSubject=new me;_resizeObserver;_elementObservables=new Map;constructor(t){this._box=t,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(e=>this._resizeSubject.next(e)))}observe(t){return this._elementObservables.has(t)||this._elementObservables.set(t,new Jn(e=>{let i=this._resizeSubject.subscribe(e);return this._resizeObserver?.observe(t,{box:this._box}),()=>{this._resizeObserver?.unobserve(t),i.unsubscribe(),this._elementObservables.delete(t)}}).pipe(st(e=>e.some(i=>i.target===t)),Ps({bufferSize:1,refCount:!0}),qe(this._destroyed))),this._elementObservables.get(t)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}},Um=(()=>{class n{_observers=new Map;_ngZone=L(Ne);constructor(){typeof ResizeObserver<"u"}ngOnDestroy(){for(let[,e]of this._observers)e.destroy();this._observers.clear(),typeof ResizeObserver<"u"}observe(e,i){let r=i?.box||"content-box";return this._observers.has(r)||this._observers.set(r,new q_(r)),this._observers.get(r).observe(e)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var qU=["notch"],GU=["matFormFieldNotchedOutline",""],KU=["*"],YU=["textField"],QU=["iconPrefixContainer"],ZU=["textPrefixContainer"],XU=["iconSuffixContainer"],JU=["textSuffixContainer"],e$=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],t$=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function i$(n,t){n&1&&ne(0,"span",21)}function n$(n,t){if(n&1&&(N(0,"label",20),Fe(1,1),le(2,i$,1,0,"span",21),F()),n&2){let e=Y(2);z("floating",e._shouldLabelFloat())("monitorResize",e._hasOutline())("id",e._labelId),Me("for",e._control.disableAutomaticLabeling?null:e._control.id),$(2),et(!e.hideRequiredMarker&&e._control.required?2:-1)}}function r$(n,t){if(n&1&&le(0,n$,3,5,"label",20),n&2){let e=Y();et(e._hasFloatingLabel()?0:-1)}}function s$(n,t){n&1&&ne(0,"div",7)}function a$(n,t){}function o$(n,t){if(n&1&&le(0,a$,0,0,"ng-template",13),n&2){Y(2);let e=Zt(1);z("ngTemplateOutlet",e)}}function l$(n,t){if(n&1&&(N(0,"div",9),le(1,o$,1,1,null,13),F()),n&2){let e=Y();z("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat()),$(),et(e._forceDisplayInfixLabel()?-1:1)}}function c$(n,t){n&1&&(N(0,"div",10,2),Fe(2,2),F())}function u$(n,t){n&1&&(N(0,"div",11,3),Fe(2,3),F())}function d$(n,t){}function h$(n,t){if(n&1&&le(0,d$,0,0,"ng-template",13),n&2){Y();let e=Zt(1);z("ngTemplateOutlet",e)}}function m$(n,t){n&1&&(N(0,"div",14,4),Fe(2,4),F())}function f$(n,t){n&1&&(N(0,"div",15,5),Fe(2,5),F())}function p$(n,t){n&1&&ne(0,"div",16)}function g$(n,t){if(n&1&&(N(0,"div",18),Fe(1,6),F()),n&2){let e=Y();z("@transitionMessages",e._subscriptAnimationState)}}function _$(n,t){if(n&1&&(N(0,"mat-hint",22),B(1),F()),n&2){let e=Y(2);z("id",e._hintLabelId),$(),Ke(e.hintLabel)}}function v$(n,t){if(n&1&&(N(0,"div",19),le(1,_$,2,2,"mat-hint",22),Fe(2,7),ne(3,"div",23),Fe(4,8),F()),n&2){let e=Y();z("@transitionMessages",e._subscriptAnimationState),$(),et(e.hintLabel?1:-1)}}var na=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-label"]]})}return n})(),MM=new ee("MatError"),_l=(()=>{class n{id=L(Ft).getId("mat-mdc-error-");constructor(){L(new $i("aria-live"),{optional:!0})||L(Ae).nativeElement.setAttribute("aria-live","polite")}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-error"],["","matError",""]],hostAttrs:["aria-atomic","true",1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(i,r){i&2&&Rn("id",r.id)},inputs:{id:"id"},features:[at([{provide:MM,useExisting:n}])]})}return n})(),gl=(()=>{class n{align="start";id=L(Ft).getId("mat-mdc-hint-");static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,r){i&2&&(Rn("id",r.id),Me("align",null),ke("mat-mdc-form-field-hint-end",r.align==="end"))},inputs:{align:"align",id:"id"}})}return n})(),b$=new ee("MatPrefix");var y$=new ee("MatSuffix");var TM=new ee("FloatingLabelParent"),yM=(()=>{class n{_elementRef=L(Ae);get floating(){return this._floating}set floating(e){this._floating=e,this.monitorResize&&this._handleResize()}_floating=!1;get monitorResize(){return this._monitorResize}set monitorResize(e){this._monitorResize=e,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}_monitorResize=!1;_resizeObserver=L(Um);_ngZone=L(Ne);_parent=L(TM);_resizeSubscription=new Mt;constructor(){}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return C$(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,r){i&2&&ke("mdc-floating-label--float-above",r.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"}})}return n})();function C$(n){let t=n;if(t.offsetParent!==null)return t.scrollWidth;let e=t.cloneNode(!0);e.style.setProperty("position","absolute"),e.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(e);let i=e.scrollWidth;return e.remove(),i}var CM="mdc-line-ripple--active",$m="mdc-line-ripple--deactivating",wM=(()=>{class n{_elementRef=L(Ae);constructor(){L(Ne).runOutsideAngular(()=>{this._elementRef.nativeElement.addEventListener("transitionend",this._handleTransitionEnd)})}activate(){let e=this._elementRef.nativeElement.classList;e.remove($m),e.add(CM)}deactivate(){this._elementRef.nativeElement.classList.add($m)}_handleTransitionEnd=e=>{let i=this._elementRef.nativeElement.classList,r=i.contains($m);e.propertyName==="opacity"&&r&&i.remove(CM,$m)};ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._handleTransitionEnd)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]})}return n})(),xM=(()=>{class n{_elementRef=L(Ae);_ngZone=L(Ne);open=!1;_notch;constructor(){}ngAfterViewInit(){let e=this._elementRef.nativeElement.querySelector(".mdc-floating-label");e?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),typeof requestAnimationFrame=="function"&&(e.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>e.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(e){!this.open||!e?this._notch.nativeElement.style.width="":this._notch.nativeElement.style.width=`calc(${e}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,r){if(i&1&&Be(qU,5),i&2){let s;Te(s=Ee())&&(r._notch=s.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,r){i&2&&ke("mdc-notched-outline--notched",r.open)},inputs:{open:[0,"matFormFieldNotchedOutlineOpen","open"]},attrs:GU,ngContentSelectors:KU,decls:5,vars:0,consts:[["notch",""],[1,"mat-mdc-notch-piece","mdc-notched-outline__leading"],[1,"mat-mdc-notch-piece","mdc-notched-outline__notch"],[1,"mat-mdc-notch-piece","mdc-notched-outline__trailing"]],template:function(i,r){i&1&&(tt(),ne(0,"div",1),N(1,"div",2,0),Fe(3),F(),ne(4,"div",3))},encapsulation:2,changeDetection:0})}return n})(),w$={transitionMessages:zi("transitionMessages",[di("enter",ht({opacity:1,transform:"translateY(0%)"})),Yt("void => enter",[ht({opacity:0,transform:"translateY(-5px)"}),ei("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])},uu=(()=>{class n{value;stateChanges;id;placeholder;ngControl;focused;empty;shouldLabelFloat;required;disabled;errorState;controlType;autofilled;userAriaDescribedBy;disableAutomaticLabeling;static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n})}return n})();var du=new ee("MatFormField"),x$=new ee("MAT_FORM_FIELD_DEFAULT_OPTIONS"),SM="fill",S$="auto",kM="fixed",k$="translateY(-50%)",zn=(()=>{class n{_elementRef=L(Ae);_changeDetectorRef=L(Xe);_dir=L(ui);_platform=L(ct);_idGenerator=L(Ft);_defaults=L(x$,{optional:!0});_animationMode=L(Ot,{optional:!0});_textField;_iconPrefixContainer;_textPrefixContainer;_iconSuffixContainer;_textSuffixContainer;_floatingLabel;_notchedOutline;_lineRipple;_formFieldControl;_prefixChildren;_suffixChildren;_errorChildren;_hintChildren;_labelChild=HC(na);get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=Pn(e)}_hideRequiredMarker=!1;color="primary";get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||S$}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}_floatLabel;get appearance(){return this._appearance}set appearance(e){let i=this._appearance,r=e||this._defaults?.appearance||SM;this._appearance=r,this._appearance==="outline"&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdate=!0)}_appearance=SM;get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||kM}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||kM}_subscriptSizing=null;get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}_hintLabel="";_hasIconPrefix=!1;_hasTextPrefix=!1;_hasIconSuffix=!1;_hasTextSuffix=!1;_labelId=this._idGenerator.getId("mat-mdc-form-field-label-");_hintLabelId=this._idGenerator.getId("mat-mdc-hint-");_subscriptAnimationState="";get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}_destroyed=new me;_isFocused=null;_explicitFormFieldControl;_needsOutlineLabelOffsetUpdate=!1;_previousControl=null;_stateChanges;_valueChanges;_describedByChanges;_injector=L(gt);constructor(){let e=this._defaults;e&&(e.appearance&&(this.appearance=e.appearance),this._hideRequiredMarker=!!e?.hideRequiredMarker,e.color&&(this.color=e.color))}ngAfterViewInit(){this._updateFocusState(),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl(),this._control!==this._previousControl&&(this._initializeControl(this._previousControl),this._previousControl=this._control)}ngOnDestroy(){this._stateChanges?.unsubscribe(),this._valueChanges?.unsubscribe(),this._describedByChanges?.unsubscribe(),this._destroyed.next(),this._destroyed.complete()}getLabelId=Jr(()=>this._hasFloatingLabel()?this._labelId:null);getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(e){let i=this._control,r="mat-mdc-form-field-type-";e&&this._elementRef.nativeElement.classList.remove(r+e.controlType),i.controlType&&this._elementRef.nativeElement.classList.add(r+i.controlType),this._stateChanges?.unsubscribe(),this._stateChanges=i.stateChanges.subscribe(()=>{this._updateFocusState(),this._changeDetectorRef.markForCheck()}),this._describedByChanges?.unsubscribe(),this._describedByChanges=i.stateChanges.pipe(Gt([void 0,void 0]),Le(()=>[i.errorState,i.userAriaDescribedBy]),w0(),st(([[s,a],[o,l]])=>s!==o||a!==l)).subscribe(()=>this._syncDescribedByIds()),this._valueChanges?.unsubscribe(),i.ngControl&&i.ngControl.valueChanges&&(this._valueChanges=i.ngControl.valueChanges.pipe(qe(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck()))}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(e=>!e._isText),this._hasTextPrefix=!!this._prefixChildren.find(e=>e._isText),this._hasIconSuffix=!!this._suffixChildren.find(e=>!e._isText),this._hasTextSuffix=!!this._suffixChildren.find(e=>e._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),ti(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){this._control}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||this._isFocused===null)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0),jd(()=>{this._needsOutlineLabelOffsetUpdate&&(this._needsOutlineLabelOffsetUpdate=!1,this._updateOutlineLabelOffset())},{injector:this._injector}),this._dir.change.pipe(qe(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0)}_shouldAlwaysFloat(){return this.floatLabel==="always"}_hasOutline(){return this.appearance==="outline"}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel=Jr(()=>!!this._labelChild());_shouldLabelFloat(){return this._hasFloatingLabel()?this._control.shouldLabelFloat||this._shouldAlwaysFloat():!1}_shouldForward(e){let i=this._control?this._control.ngControl:null;return i&&i[e]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){!this._hasOutline()||!this._floatingLabel||!this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(0):this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth())}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){this._hintChildren}_syncDescribedByIds(){if(this._control){let e=[];if(this._control.userAriaDescribedBy&&typeof this._control.userAriaDescribedBy=="string"&&e.push(...this._control.userAriaDescribedBy.split(" ")),this._getDisplayedMessages()==="hint"){let i=this._hintChildren?this._hintChildren.find(s=>s.align==="start"):null,r=this._hintChildren?this._hintChildren.find(s=>s.align==="end"):null;i?e.push(i.id):this._hintLabel&&e.push(this._hintLabelId),r&&e.push(r.id)}else this._errorChildren&&e.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(e)}}_updateOutlineLabelOffset(){if(!this._hasOutline()||!this._floatingLabel)return;let e=this._floatingLabel.element;if(!(this._iconPrefixContainer||this._textPrefixContainer)){e.style.transform="";return}if(!this._isAttachedToDom()){this._needsOutlineLabelOffsetUpdate=!0;return}let i=this._iconPrefixContainer?.nativeElement,r=this._textPrefixContainer?.nativeElement,s=this._iconSuffixContainer?.nativeElement,a=this._textSuffixContainer?.nativeElement,o=i?.getBoundingClientRect().width??0,l=r?.getBoundingClientRect().width??0,c=s?.getBoundingClientRect().width??0,u=a?.getBoundingClientRect().width??0,d=this._dir.value==="rtl"?"-1":"1",h=`${o+l}px`,f=`calc(${d} * (${h} + var(--mat-mdc-form-field-label-offset-x, 0px)))`;e.style.transform=`var( - --mat-mdc-form-field-label-transform, - ${k$} translateX(${f}) - )`;let g=o+l+c+u;this._elementRef.nativeElement.style.setProperty("--mat-form-field-notch-max-width",`calc(100% - ${g}px)`)}_isAttachedToDom(){let e=this._elementRef.nativeElement;if(e.getRootNode){let i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-form-field"]],contentQueries:function(i,r,s){if(i&1&&(qC(s,r._labelChild,na,5),Rt(s,uu,5),Rt(s,b$,5),Rt(s,y$,5),Rt(s,MM,5),Rt(s,gl,5)),i&2){GC();let a;Te(a=Ee())&&(r._formFieldControl=a.first),Te(a=Ee())&&(r._prefixChildren=a),Te(a=Ee())&&(r._suffixChildren=a),Te(a=Ee())&&(r._errorChildren=a),Te(a=Ee())&&(r._hintChildren=a)}},viewQuery:function(i,r){if(i&1&&(Be(YU,5),Be(QU,5),Be(ZU,5),Be(XU,5),Be(JU,5),Be(yM,5),Be(xM,5),Be(wM,5)),i&2){let s;Te(s=Ee())&&(r._textField=s.first),Te(s=Ee())&&(r._iconPrefixContainer=s.first),Te(s=Ee())&&(r._textPrefixContainer=s.first),Te(s=Ee())&&(r._iconSuffixContainer=s.first),Te(s=Ee())&&(r._textSuffixContainer=s.first),Te(s=Ee())&&(r._floatingLabel=s.first),Te(s=Ee())&&(r._notchedOutline=s.first),Te(s=Ee())&&(r._lineRipple=s.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(i,r){i&2&&ke("mat-mdc-form-field-label-always-float",r._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",r._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",r._hasIconSuffix)("mat-form-field-invalid",r._control.errorState)("mat-form-field-disabled",r._control.disabled)("mat-form-field-autofilled",r._control.autofilled)("mat-form-field-no-animations",r._animationMode==="NoopAnimations")("mat-form-field-appearance-fill",r.appearance=="fill")("mat-form-field-appearance-outline",r.appearance=="outline")("mat-form-field-hide-placeholder",r._hasFloatingLabel()&&!r._shouldLabelFloat())("mat-focused",r._control.focused)("mat-primary",r.color!=="accent"&&r.color!=="warn")("mat-accent",r.color==="accent")("mat-warn",r.color==="warn")("ng-untouched",r._shouldForward("untouched"))("ng-touched",r._shouldForward("touched"))("ng-pristine",r._shouldForward("pristine"))("ng-dirty",r._shouldForward("dirty"))("ng-valid",r._shouldForward("valid"))("ng-invalid",r._shouldForward("invalid"))("ng-pending",r._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[at([{provide:du,useExisting:n},{provide:TM,useExisting:n}])],ngContentSelectors:t$,decls:18,vars:21,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],["textSuffixContainer",""],["iconSuffixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,r){if(i&1){let s=We();tt(e$),le(0,r$,1,1,"ng-template",null,0,Ea),N(2,"div",6,1),J("click",function(o){return te(s),ie(r._control.onContainerClick(o))}),le(4,s$,1,0,"div",7),N(5,"div",8),le(6,l$,2,2,"div",9)(7,c$,3,0,"div",10)(8,u$,3,0,"div",11),N(9,"div",12),le(10,h$,1,1,null,13),Fe(11),F(),le(12,m$,3,0,"div",14)(13,f$,3,0,"div",15),F(),le(14,p$,1,0,"div",16),F(),N(15,"div",17),le(16,g$,2,1,"div",18)(17,v$,5,2,"div",19),F()}if(i&2){let s;$(2),ke("mdc-text-field--filled",!r._hasOutline())("mdc-text-field--outlined",r._hasOutline())("mdc-text-field--no-label",!r._hasFloatingLabel())("mdc-text-field--disabled",r._control.disabled)("mdc-text-field--invalid",r._control.errorState),$(2),et(!r._hasOutline()&&!r._control.disabled?4:-1),$(2),et(r._hasOutline()?6:-1),$(),et(r._hasIconPrefix?7:-1),$(),et(r._hasTextPrefix?8:-1),$(2),et(!r._hasOutline()||r._forceDisplayInfixLabel()?10:-1),$(2),et(r._hasTextSuffix?12:-1),$(),et(r._hasIconSuffix?13:-1),$(),et(r._hasOutline()?-1:14),$(),ke("mat-mdc-form-field-subscript-dynamic-size",r.subscriptSizing==="dynamic"),$(),et((s=r._getDisplayedMessages())==="error"?16:s==="hint"?17:-1)}},dependencies:[yM,xM,eh,wM,gl],styles:['.mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-moz-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-webkit-input-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive:-ms-input-placeholder{opacity:0}.mdc-text-field--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-filled-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-outlined-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color, var(--mat-sys-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 4%, transparent))}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)));padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px);padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}@media(forced-colors: active){.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-filled-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-filled-text-field-hover-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-filled-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-filled-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-filled-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-filled-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-filled-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-filled-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-outlined-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-outlined-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-outlined-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-outlined-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-outlined-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-outlined-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-outline-color, var(--mat-sys-outline));border-width:var(--mdc-outlined-text-field-outline-width, 1px)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-hover-outline-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-focus-outline-color, var(--mat-sys-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-hover-outline-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-focus-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mdc-outlined-text-field-focus-outline-width, 2px)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),100% - max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))*2)}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none;--mat-form-field-notch-max-width: 100%}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1;border-bottom-width:var(--mdc-filled-text-field-active-indicator-height, 1px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color, var(--mat-sys-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color, var(--mat-sys-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height, 2px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color, var(--mat-sys-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color, var(--mat-sys-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all;will-change:auto}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto;will-change:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height, 56px);padding-top:var(--mat-form-field-filled-with-label-container-padding-top, 24px);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom, 8px)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding, 16px);padding-bottom:var(--mat-form-field-container-vertical-padding, 16px)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height, 56px)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height, 56px) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block;color:var(--mat-form-field-error-text-color, var(--mat-sys-error))}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-sys-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-sys-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-sys-body-small-weight))}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color, var(--mat-sys-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity, 0)}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color, var(--mat-sys-neutral10))}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color, color-mix(in srgb, var(--mat-sys-neutral10) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none;color:var(--mat-form-field-enabled-select-arrow-color, var(--mat-sys-on-surface-variant))}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select.mat-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}@media(forced-colors: active){.mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}}@media(forced-colors: active){.mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-sys-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size)*var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-sys-error))}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color, var(--mat-sys-on-error-container))}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color, var(--mat-sys-error))}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field-infix:has(textarea[cols]){width:auto}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}'],encapsulation:2,data:{animation:[w$.transitionMessages]},changeDetection:0})}return n})(),ra=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,$h,Ue]})}return n})();var IM=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["ng-component"]],hostAttrs:["cdk-text-field-style-loader",""],decls:0,vars:0,template:function(i,r){},styles:["textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}"],encapsulation:2,changeDetection:0})}return n})(),EM=Ai({passive:!0}),AM=(()=>{class n{_platform=L(ct);_ngZone=L(Ne);_styleLoader=L(wt);_monitoredElements=new Map;constructor(){}monitor(e){if(!this._platform.isBrowser)return In;this._styleLoader.load(IM);let i=rn(e),r=this._monitoredElements.get(i);if(r)return r.subject;let s=new me,a="cdk-text-field-autofilled",o=l=>{l.animationName==="cdk-text-field-autofill-start"&&!i.classList.contains(a)?(i.classList.add(a),this._ngZone.run(()=>s.next({target:l.target,isAutofilled:!0}))):l.animationName==="cdk-text-field-autofill-end"&&i.classList.contains(a)&&(i.classList.remove(a),this._ngZone.run(()=>s.next({target:l.target,isAutofilled:!1})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",o,EM),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:s,unlisten:()=>{i.removeEventListener("animationstart",o,EM)}}),s}stopMonitoring(e){let i=rn(e),r=this._monitoredElements.get(i);r&&(r.unlisten(),r.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((e,i)=>this.stopMonitoring(i))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var DM=(()=>{class n{_elementRef=L(Ae);_platform=L(ct);_ngZone=L(Ne);_previousValue;_initialHeight;_destroyed=new me;_minRows;_maxRows;_enabled=!0;_previousMinRows=-1;_textareaElement;get minRows(){return this._minRows}set minRows(e){this._minRows=ls(e),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(e){this._maxRows=ls(e),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(e){this._enabled!==e&&((this._enabled=e)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(e){this._cachedPlaceholderHeight=void 0,e?this._textareaElement.setAttribute("placeholder",e):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}_cachedLineHeight;_cachedPlaceholderHeight;_document=L(it,{optional:!0});_hasFocus;_isViewInited=!1;constructor(){L(wt).load(IM),this._textareaElement=this._elementRef.nativeElement}_setMinHeight(){let e=this.minRows&&this._cachedLineHeight?`${this.minRows*this._cachedLineHeight}px`:null;e&&(this._textareaElement.style.minHeight=e)}_setMaxHeight(){let e=this.maxRows&&this._cachedLineHeight?`${this.maxRows*this._cachedLineHeight}px`:null;e&&(this._textareaElement.style.maxHeight=e)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{let e=this._getWindow();Qr(e,"resize").pipe(ic(16),qe(this._destroyed)).subscribe(()=>this.resizeToFitContent(!0)),this._textareaElement.addEventListener("focus",this._handleFocusEvent),this._textareaElement.addEventListener("blur",this._handleFocusEvent)}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._textareaElement.removeEventListener("focus",this._handleFocusEvent),this._textareaElement.removeEventListener("blur",this._handleFocusEvent),this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let e=this._textareaElement.cloneNode(!1);e.rows=1,e.style.position="absolute",e.style.visibility="hidden",e.style.border="none",e.style.padding="0",e.style.height="",e.style.minHeight="",e.style.maxHeight="",e.style.overflow="hidden",this._textareaElement.parentNode.appendChild(e),this._cachedLineHeight=e.clientHeight,e.remove(),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){let e=this._textareaElement,i=e.style.marginBottom||"",r=this._platform.FIREFOX,s=r&&this._hasFocus,a=r?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";s&&(e.style.marginBottom=`${e.clientHeight}px`),e.classList.add(a);let o=e.scrollHeight-4;return e.classList.remove(a),s&&(e.style.marginBottom=i),o}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||this._cachedPlaceholderHeight!=null)return;if(!this.placeholder){this._cachedPlaceholderHeight=0;return}let e=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=e}_handleFocusEvent=e=>{this._hasFocus=e.type==="focus"};ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(e=!1){if(!this._enabled||(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),!this._cachedLineHeight))return;let i=this._elementRef.nativeElement,r=i.value;if(!e&&this._minRows===this._previousMinRows&&r===this._previousValue)return;let s=this._measureScrollHeight(),a=Math.max(s,this._cachedPlaceholderHeight||0);i.style.height=`${a}px`,this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(()=>this._scrollToCaretPosition(i)):setTimeout(()=>this._scrollToCaretPosition(i))}),this._previousValue=r,this._previousMinRows=this._minRows}reset(){this._initialHeight!==void 0&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_scrollToCaretPosition(e){let{selectionStart:i,selectionEnd:r}=e;!this._destroyed.isStopped&&this._hasFocus&&e.setSelectionRange(i,r)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,r){i&1&&J("input",function(){return r._noopInputHandler()})},inputs:{minRows:[0,"cdkAutosizeMinRows","minRows"],maxRows:[0,"cdkAutosizeMaxRows","maxRows"],enabled:[2,"cdkTextareaAutosize","enabled",be],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"],features:[Qe]})}return n})(),RM=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({})}return n})();var T$=new ee("MAT_INPUT_VALUE_ACCESSOR"),E$=["button","checkbox","file","hidden","image","radio","range","reset","submit"],I$=new ee("MAT_INPUT_CONFIG"),vl=(()=>{class n{_elementRef=L(Ae);_platform=L(ct);ngControl=L(cr,{optional:!0,self:!0});_autofillMonitor=L(AM);_ngZone=L(Ne);_formField=L(du,{optional:!0});_uid=L(Ft).getId("mat-input-");_previousNativeValue;_inputValueAccessor;_signalBasedValueAccessor;_previousPlaceholder;_errorStateTracker;_webkitBlinkWheelListenerAttached=!1;_config=L(I$,{optional:!0});_formFieldDescribedBy;_isServer;_isNativeSelect;_isTextarea;_isInFormField;focused=!1;stateChanges=new me;controlType="mat-input";autofilled=!1;get disabled(){return this._disabled}set disabled(e){this._disabled=Pn(e),this.focused&&(this.focused=!1,this.stateChanges.next())}_disabled=!1;get id(){return this._id}set id(e){this._id=e||this._uid}_id;placeholder;name;get required(){return this._required??this.ngControl?.control?.hasValidator(Cn.required)??!1}set required(e){this._required=Pn(e)}_required;get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&Wg().has(this._type)&&(this._elementRef.nativeElement.type=this._type),this._ensureWheelDefaultBehavior()}_type="text";get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}userAriaDescribedBy;get value(){return this._signalBasedValueAccessor?this._signalBasedValueAccessor.value():this._inputValueAccessor.value}set value(e){e!==this.value&&(this._signalBasedValueAccessor?this._signalBasedValueAccessor.value.set(e):this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=Pn(e)}_readonly=!1;disabledInteractive;get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}_neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(e=>Wg().has(e));constructor(){let e=L(au,{optional:!0}),i=L(ou,{optional:!0}),r=L($c),s=L(T$,{optional:!0,self:!0}),a=this._elementRef.nativeElement,o=a.nodeName.toLowerCase();s?Ta(s.value)?this._signalBasedValueAccessor=s:this._inputValueAccessor=s:this._inputValueAccessor=a,this._previousNativeValue=this.value,this.id=this.id,this._platform.IOS&&this._ngZone.runOutsideAngular(()=>{a.addEventListener("keyup",this._iOSKeyupListener)}),this._errorStateTracker=new ja(r,this.ngControl,i,e,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect=o==="select",this._isTextarea=o==="textarea",this._isInFormField=!!this._formField,this.disabledInteractive=this._config?.disabledInteractive||!1,this._isNativeSelect&&(this.controlType=a.multiple?"mat-native-select-multiple":"mat-native-select"),this._signalBasedValueAccessor&&Xd(()=>{this._signalBasedValueAccessor.value(),this.stateChanges.next()})}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(e=>{this.autofilled=e.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._platform.IOS&&this._elementRef.nativeElement.removeEventListener("keyup",this._iOSKeyupListener),this._webkitBlinkWheelListenerAttached&&this._elementRef.nativeElement.removeEventListener("wheel",this._webkitBlinkWheelListener)}ngDoCheck(){this.ngControl&&(this.updateErrorState(),this.ngControl.disabled!==null&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(e){this._elementRef.nativeElement.focus(e)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(e){if(e!==this.focused){if(!this._isNativeSelect&&e&&this.disabled&&this.disabledInteractive){let i=this._elementRef.nativeElement;i.type==="number"?(i.type="text",i.setSelectionRange(0,0),i.type="number"):i.setSelectionRange(0,0)}this.focused=e,this.stateChanges.next()}}_onInput(){}_dirtyCheckNativeValue(){let e=this._elementRef.nativeElement.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this.stateChanges.next())}_dirtyCheckPlaceholder(){let e=this._getPlaceholder();if(e!==this._previousPlaceholder){let i=this._elementRef.nativeElement;this._previousPlaceholder=e,e?i.setAttribute("placeholder",e):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){E$.indexOf(this._type)>-1}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let e=this._elementRef.nativeElement.validity;return e&&e.badInput}get empty(){return!this._isNeverEmpty()&&!this._elementRef.nativeElement.value&&!this._isBadInput()&&!this.autofilled}get shouldLabelFloat(){if(this._isNativeSelect){let e=this._elementRef.nativeElement,i=e.options[0];return this.focused||e.multiple||!this.empty||!!(e.selectedIndex>-1&&i&&i.label)}else return this.focused&&!this.disabled||!this.empty}setDescribedByIds(e){let i=this._elementRef.nativeElement,r=i.getAttribute("aria-describedby"),s;if(r){let a=this._formFieldDescribedBy||e;s=e.concat(r.split(" ").filter(o=>o&&!a.includes(o)))}else s=e;this._formFieldDescribedBy=e,s.length?i.setAttribute("aria-describedby",s.join(" ")):i.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){let e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}_iOSKeyupListener=e=>{let i=e.target;!i.value&&i.selectionStart===0&&i.selectionEnd===0&&(i.setSelectionRange(1,1),i.setSelectionRange(0,0))};_webkitBlinkWheelListener=()=>{};_ensureWheelDefaultBehavior(){!this._webkitBlinkWheelListenerAttached&&this._type==="number"&&(this._platform.BLINK||this._platform.WEBKIT)&&(this._ngZone.runOutsideAngular(()=>{this._elementRef.nativeElement.addEventListener("wheel",this._webkitBlinkWheelListener)}),this._webkitBlinkWheelListenerAttached=!0),this._webkitBlinkWheelListenerAttached&&this._type!=="number"&&(this._elementRef.nativeElement.removeEventListener("wheel",this._webkitBlinkWheelListener),this._webkitBlinkWheelListenerAttached=!0)}_getReadonlyAttribute(){return this._isNativeSelect?null:this.readonly||this.disabled&&this.disabledInteractive?"true":null}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:21,hostBindings:function(i,r){i&1&&J("focus",function(){return r._focusChanged(!0)})("blur",function(){return r._focusChanged(!1)})("input",function(){return r._onInput()}),i&2&&(Rn("id",r.id)("disabled",r.disabled&&!r.disabledInteractive)("required",r.required),Me("name",r.name||null)("readonly",r._getReadonlyAttribute())("aria-disabled",r.disabled&&r.disabledInteractive?"true":null)("aria-invalid",r.empty&&r.required?null:r.errorState)("aria-required",r.required)("id",r.id),ke("mat-input-server",r._isServer)("mat-mdc-form-field-textarea-control",r._isInFormField&&r._isTextarea)("mat-mdc-form-field-input-control",r._isInFormField)("mat-mdc-input-disabled-interactive",r.disabledInteractive)("mdc-text-field__input",r._isInFormField)("mat-mdc-native-select-inline",r._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly",disabledInteractive:[2,"disabledInteractive","disabledInteractive",be]},exportAs:["matInput"],features:[at([{provide:uu,useExisting:n}]),Qe,vt]})}return n})(),G_=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,ra,ra,RM,Ue]})}return n})();function A$(n,t){if(n&1&&(N(0,"li"),B(1),F()),n&2){let e=t.$implicit;$(),Ye(" ",e.diagnostics," ")}}function D$(n,t){if(n&1&&(N(0,"mat-error")(1,"ul"),le(2,A$,2,1,"li",7),F()()),n&2){let e=Y();$(2),z("ngForOf",e.operationOutcome.issue)}}function R$(n,t){if(n&1&&(N(0,"mat-hint"),B(1),F()),n&2){let e=Y();$(),Ye("Successfully created on server: ",e.structureMap.url," ")}}function L$(n,t){if(n&1&&(N(0,"li"),B(1),F()),n&2){let e=t.$implicit;$(),Ye(" ",e.diagnostics," ")}}function O$(n,t){if(n&1&&(N(0,"mat-error")(1,"ul"),le(2,L$,2,1,"li",7),F()()),n&2){let e=Y();$(2),z("ngForOf",e.operationOutcomeTransformed.issue)}}var Bm=class n{static{this.log=(0,LM.default)("app:")}constructor(t,e){this.cd=t,this.data=e,this.client=e.getFhirClient(),this.source=new ms,this.map=new ms,this.structureMap=null,this.map.valueChanges.pipe(Ui(1e3),An()).subscribe(i=>{n.log("create StructureMap"),this.client.create({resourceType:"StructureMap",body:i,headers:{accept:"application/fhir+json","content-type":"text/fhir-mapping"}}).then(r=>{this.operationOutcome=null,this.structureMap=r,this.transform()}).catch(r=>{this.structureMap=null,this.operationOutcome=r.response.data})}),this.source.valueChanges.pipe(Ui(1e3),An()).subscribe(i=>this.transform())}transform(){n.log("transform Source");let t=JSON.parse(this.source.value);this.structureMap!=null&&this.client.operation({name:"transform?source="+encodeURIComponent(this.structureMap.url),resourceType:"StructureMap",input:t}).then(e=>{this.operationOutcomeTransformed=null,this.transformed=e}).catch(e=>{this.transformed=null,this.operationOutcomeTransformed=e.response.data})}ngOnInit(){}fileSource(t){let e=new FileReader;if(t.target.files&&t.target.files.length){let[i]=t.target.files;e.readAsText(i),e.onload=()=>{this.source.setValue(e.result),this.cd.markForCheck()}}}fileChange(t){let e=new FileReader;if(t.target.files&&t.target.files.length){let[i]=t.target.files;e.readAsText(i),e.onload=()=>{this.map.setValue(e.result),this.cd.markForCheck()}}}static{this.\u0275fac=function(e){return new(e||n)(Se(Xe),Se(Fn))}}static{this.\u0275cmp=he({type:n,selectors:[["app-mapping-language"]],standalone:!1,decls:31,vars:8,consts:[[1,"card-maps"],[1,"fixtextarea"],["accept",".json","placeholder","Upload source","type","file",3,"change"],["cols","400","matNativeControl","","rows","15",3,"formControl"],["accept",".map","placeholder","Upload map","type","file",3,"change"],["cols","400","matNativeControl","","rows","20",3,"formControl"],[4,"ngIf"],[4,"ngFor","ngForOf"]],template:function(e,i){e&1&&(N(0,"mat-card",0)(1,"mat-card-content")(2,"mat-card-header")(3,"mat-card-title"),B(4,"Source"),F()(),N(5,"mat-form-field",1)(6,"mat-card-actions")(7,"input",2),J("change",function(s){return i.fileSource(s)}),F()(),N(8,"textarea",3),B(9," "),F()()()(),N(10,"mat-card",0)(11,"mat-card-content")(12,"mat-card-header")(13,"mat-card-title"),B(14,"FHIR Mapping Language map"),F()(),N(15,"mat-form-field",1)(16,"mat-card-actions")(17,"input",4),J("change",function(s){return i.fileChange(s)}),F()(),N(18,"textarea",5),B(19," "),F()(),le(20,D$,3,1,"mat-error",6)(21,R$,2,1,"mat-hint",6),F()(),N(22,"mat-card",0)(23,"mat-card-content")(24,"mat-card-header")(25,"mat-card-title"),B(26,"Transformed"),F()(),le(27,O$,3,1,"mat-error",6),N(28,"pre"),B(29),Ln(30,"json"),F()()()),e&2&&($(8),z("formControl",i.source),$(10),z("formControl",i.map),$(2),z("ngIf",i.operationOutcome),$(),z("ngIf",i.structureMap),$(6),z("ngIf",i.operationOutcomeTransformed),$(2),Ke(ir(30,6,i.transformed)))},dependencies:[kr,yi,Rr,Lr,ur,ul,pm,dl,gm,fm,zn,gl,_l,vl,nw],styles:[".fixtextarea[_ngcontent-%COMP%]{display:inline}.card-maps[_ngcontent-%COMP%]{margin-bottom:10px}"]})}};var OM=(()=>{class n{constructor(){this.version=window.MATCHBOX_VERSION}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=he({type:n,selectors:[["app-settings"]],standalone:!1,decls:12,vars:1,consts:[["id","settings",1,"white-block"],["href","https://github.com/ahdis/matchbox","rel","external nofollow noopener","target","_blank"]],template:function(i,r){i&1&&(N(0,"div",0)(1,"h2"),B(2,"Matchbox settings"),F(),N(3,"h5"),B(4),F(),N(5,"p")(6,"em"),B(7,"There are no configurable settings here right now"),F()(),N(8,"p"),B(9," Source code: "),N(10,"a",1),B(11,"github.com/ahdis/matchbox"),F()()()),i&2&&($(4),Ye("Version ",r.version,""))},encapsulation:2})}}return n})();var N$=new ee("mat-autocomplete-scroll-strategy",{providedIn:"root",factory:()=>{let n=L(ii);return()=>n.scrollStrategies.reposition()}});function F$(n){return()=>n.scrollStrategies.reposition()}var P$={provide:N$,deps:[ii],useFactory:F$};var Y_=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({providers:[P$],imports:[Dr,rl,Ue,Vn,rl,Ue]})}return n})();var U$=["mat-button",""],$$=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],V$=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"];var B$="@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button{outline:solid 1px}}";var z$=["mat-icon-button",""],H$=["*"];var j$=new ee("MAT_BUTTON_CONFIG");var W$=[{attribute:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{attribute:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{attribute:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{attribute:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{attribute:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],NM=(()=>{class n{_elementRef=L(Ae);_platform=L(ct);_ngZone=L(Ne);_animationMode=L(Ot,{optional:!0});_focusMonitor=L(Un);_rippleLoader=L(jS);_isFab=!1;color;get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=e,this._updateRippleDisabled()}_disableRipple=!1;get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._updateRippleDisabled()}_disabled=!1;ariaDisabled;disabledInteractive;constructor(){L(wt).load(Di);let e=L(j$,{optional:!0}),i=this._elementRef.nativeElement,r=i.classList;this.disabledInteractive=e?.disabledInteractive??!1,this.color=e?.color??null,this._rippleLoader?.configureRipple(i,{className:"mat-mdc-button-ripple"});for(let{attribute:s,mdcClasses:a}of W$)i.hasAttribute(s)&&r.add(...a)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(e="program",i){e?this._focusMonitor.focusVia(this._elementRef.nativeElement,e,i):this._elementRef.nativeElement.focus(i)}_getAriaDisabled(){return this.ariaDisabled!=null?this.ariaDisabled:this.disabled&&this.disabledInteractive?!0:null}_getDisabledAttribute(){return this.disabledInteractive||!this.disabled?null:!0}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,inputs:{color:"color",disableRipple:[2,"disableRipple","disableRipple",be],disabled:[2,"disabled","disabled",be],ariaDisabled:[2,"aria-disabled","ariaDisabled",be],disabledInteractive:[2,"disabledInteractive","disabledInteractive",be]},features:[Qe]})}return n})();var fs=(()=>{class n extends NM{static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275cmp=he({type:n,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:14,hostBindings:function(i,r){i&2&&(Me("disabled",r._getDisabledAttribute())("aria-disabled",r._getAriaDisabled()),bt(r.color?"mat-"+r.color:""),ke("mat-mdc-button-disabled",r.disabled)("mat-mdc-button-disabled-interactive",r.disabledInteractive)("_mat-animation-noopable",r._animationMode==="NoopAnimations")("mat-unthemed",!r.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[Nt],attrs:U$,ngContentSelectors:V$,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,r){i&1&&(tt($$),ne(0,"span",0),Fe(1),N(2,"span",1),Fe(3,1),F(),Fe(4,2),ne(5,"span",2)(6,"span",3)),i&2&&ke("mdc-button__ripple",!r._isFab)("mdc-fab__ripple",r._isFab)},styles:['.mat-mdc-button-base{text-decoration:none}.mdc-button{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__label{position:relative}.mat-mdc-button{padding:0 var(--mat-text-button-horizontal-padding, 12px);height:var(--mdc-text-button-container-height, 40px);font-family:var(--mdc-text-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-text-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-text-button-label-text-transform);font-weight:var(--mdc-text-button-label-text-weight, var(--mat-sys-label-large-weight))}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, var(--mat-sys-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 16px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display, block)}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-filled-button-container-height, 40px);font-family:var(--mdc-filled-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-filled-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-filled-button-label-text-transform);font-weight:var(--mdc-filled-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-filled-button-horizontal-padding, 24px)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color, var(--mat-sys-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-unelevated-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display, block)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, var(--mat-sys-on-primary));background-color:var(--mdc-filled-button-container-color, var(--mat-sys-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-filled-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:var(--mdc-protected-button-container-elevation-shadow, var(--mat-sys-level1));height:var(--mdc-protected-button-container-height, 40px);font-family:var(--mdc-protected-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-protected-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-protected-button-label-text-transform);font-weight:var(--mdc-protected-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-protected-button-horizontal-padding, 24px)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-raised-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-raised-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display, block)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, var(--mat-sys-primary));background-color:var(--mdc-protected-button-container-color, var(--mat-sys-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow, var(--mat-sys-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-protected-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow, var(--mat-sys-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-outlined-button-container-height, 40px);font-family:var(--mdc-outlined-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-outlined-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-outlined-button-label-text-transform);font-weight:var(--mdc-outlined-button-label-text-weight, var(--mat-sys-label-large-weight));border-radius:var(--mdc-outlined-button-container-shape, var(--mat-sys-corner-full));border-width:var(--mdc-outlined-button-outline-width, 1px);padding:0 var(--mat-outlined-button-horizontal-padding, 24px)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-outlined-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display, block)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, var(--mat-sys-primary));border-color:var(--mdc-outlined-button-outline-color, var(--mat-sys-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:var(--mdc-outlined-button-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button .mdc-button__ripple{border-width:var(--mdc-outlined-button-outline-width, 1px);border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-focus-indicator,.mat-mdc-unelevated-button .mat-focus-indicator,.mat-mdc-raised-button .mat-focus-indicator,.mat-mdc-outlined-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-focus-indicator::before,.mat-mdc-raised-button:focus .mat-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-focus-indicator::before{content:""}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-focus-indicator::before,.mat-mdc-raised-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)}',"@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button{outline:solid 1px}}"],encapsulation:2,changeDetection:0})}return n})();var Xa=(()=>{class n extends NM{constructor(){super(),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["button","mat-icon-button",""]],hostVars:14,hostBindings:function(i,r){i&2&&(Me("disabled",r._getDisabledAttribute())("aria-disabled",r._getAriaDisabled()),bt(r.color?"mat-"+r.color:""),ke("mat-mdc-button-disabled",r.disabled)("mat-mdc-button-disabled-interactive",r.disabledInteractive)("_mat-animation-noopable",r._animationMode==="NoopAnimations")("mat-unthemed",!r.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[Nt],attrs:z$,ngContentSelectors:H$,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,r){i&1&&(tt(),ne(0,"span",0),Fe(1),ne(2,"span",1)(3,"span",2))},styles:['.mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:50%;flex-shrink:0;text-align:center;width:var(--mdc-icon-button-state-layer-size, 40px);height:var(--mdc-icon-button-state-layer-size, 40px);padding:calc(calc(var(--mdc-icon-button-state-layer-size, 40px) - var(--mdc-icon-button-icon-size, 24px)) / 2);font-size:var(--mdc-icon-button-icon-size, 24px);color:var(--mdc-icon-button-icon-color, var(--mat-sys-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus .mat-focus-indicator::before{content:""}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface-variant) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-icon-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-icon-button-touch-target-display, block)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-icon-button-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mdc-icon-button-icon-size, 24px);height:var(--mdc-icon-button-icon-size, 24px);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button[hidden]{display:none}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}',B$],encapsulation:2,changeDetection:0})}return n})();var ps=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,cs,Ue]})}return n})();var G$=["input"],K$=["label"],Y$=["*"],Q$=new ee("mat-checkbox-default-options",{providedIn:"root",factory:PM});function PM(){return{color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1}}var Ri=function(n){return n[n.Init=0]="Init",n[n.Checked=1]="Checked",n[n.Unchecked=2]="Unchecked",n[n.Indeterminate=3]="Indeterminate",n}(Ri||{}),Z$={provide:hs,useExisting:Ii(()=>bl),multi:!0},Q_=class{source;checked},FM=PM(),bl=(()=>{class n{_elementRef=L(Ae);_changeDetectorRef=L(Xe);_ngZone=L(Ne);_animationMode=L(Ot,{optional:!0});_options=L(Q$,{optional:!0});focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){let i=new Q_;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return`${this.id||this._uniqueId}-input`}required;labelPosition="after";name=null;change=new oe;indeterminateChange=new oe;value;disableRipple;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=Ri.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){L(wt).load(Di);let e=L(new $i("tabindex"),{optional:!0});this._options=this._options||FM,this.color=this._options.color||FM.color,this.tabIndex=e==null?0:parseInt(e)||0,this.id=this._uniqueId=L(Ft).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??!1}ngOnChanges(e){e.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(e){e!=this.checked&&(this._checked=e,this._changeDetectorRef.markForCheck())}_checked=!1;get disabled(){return this._disabled}set disabled(e){e!==this.disabled&&(this._disabled=e,this._changeDetectorRef.markForCheck())}_disabled=!1;get indeterminate(){return this._indeterminate}set indeterminate(e){let i=e!=this._indeterminate;this._indeterminate=e,i&&(this._indeterminate?this._transitionCheckState(Ri.Indeterminate):this._transitionCheckState(this.checked?Ri.Checked:Ri.Unchecked),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_indeterminate=!1;_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(e){this.checked=!!e}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}validate(e){return this.required&&e.value!==!0?{required:!0}:null}registerOnValidatorChange(e){this._validatorChangeFn=e}_transitionCheckState(e){let i=this._currentCheckState,r=this._getAnimationTargetElement();if(!(i===e||!r)&&(this._currentAnimationClass&&r.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){r.classList.add(this._currentAnimationClass);let s=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{r.classList.remove(s)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){let e=this._options?.clickAction;!this.disabled&&e!=="noop"?(this.indeterminate&&e!=="check"&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?Ri.Checked:Ri.Unchecked),this._emitChangeEvent()):(this.disabled&&this.disabledInteractive||!this.disabled&&e==="noop")&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate)}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if(this._animationMode==="NoopAnimations")return"";switch(e){case Ri.Init:if(i===Ri.Checked)return this._animationClasses.uncheckedToChecked;if(i==Ri.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case Ri.Unchecked:return i===Ri.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case Ri.Checked:return i===Ri.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case Ri.Indeterminate:return i===Ri.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){let i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-checkbox"]],viewQuery:function(i,r){if(i&1&&(Be(G$,5),Be(K$,5)),i&2){let s;Te(s=Ee())&&(r._inputElement=s.first),Te(s=Ee())&&(r._labelElement=s.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(i,r){i&2&&(Rn("id",r.id),Me("tabindex",null)("aria-label",null)("aria-labelledby",null),bt(r.color?"mat-"+r.color:"mat-accent"),ke("_mat-animation-noopable",r._animationMode==="NoopAnimations")("mdc-checkbox--disabled",r.disabled)("mat-mdc-checkbox-disabled",r.disabled)("mat-mdc-checkbox-checked",r.checked)("mat-mdc-checkbox-disabled-interactive",r.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",be],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",be],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",be],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?void 0:zt(e)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",be],checked:[2,"checked","checked",be],disabled:[2,"disabled","disabled",be],indeterminate:[2,"indeterminate","indeterminate",be]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[at([Z$,{provide:ia,useExisting:n,multi:!0}]),Qe,vt],ngContentSelectors:Y$,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,r){if(i&1){let s=We();tt(),N(0,"div",3),J("click",function(o){return te(s),ie(r._preventBubblingFromLabel(o))}),N(1,"div",4,0)(3,"div",5),J("click",function(){return te(s),ie(r._onTouchTargetClick())}),F(),N(4,"input",6,1),J("blur",function(){return te(s),ie(r._onBlur())})("click",function(){return te(s),ie(r._onInputClick())})("change",function(o){return te(s),ie(r._onInteractionEvent(o))}),F(),ne(6,"div",7),N(7,"div",8),Qt(),N(8,"svg",9),ne(9,"path",10),F(),Xr(),ne(10,"div",11),F(),ne(11,"div",12),F(),N(12,"label",13,2),Fe(14),F()()}if(i&2){let s=Zt(2);z("labelPosition",r.labelPosition),$(4),ke("mdc-checkbox--selected",r.checked),z("checked",r.checked)("indeterminate",r.indeterminate)("disabled",r.disabled&&!r.disabledInteractive)("id",r.inputId)("required",r.required)("tabIndex",r.disabled&&!r.disabledInteractive?-1:r.tabIndex),Me("aria-label",r.ariaLabel||null)("aria-labelledby",r.ariaLabelledby)("aria-describedby",r.ariaDescribedby)("aria-checked",r.indeterminate?"mixed":null)("aria-controls",r.ariaControls)("aria-disabled",r.disabled&&r.disabledInteractive?!0:null)("aria-expanded",r.ariaExpanded)("aria-owns",r.ariaOwns)("name",r.name)("value",r.value),$(7),z("matRippleTrigger",s)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),$(),z("for",r.inputId)}},dependencies:[yn,sl],styles:['.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom;padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover .mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:hover .mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active .mdc-checkbox__native-control~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mdc-checkbox__ripple{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;width:var(--mdc-checkbox-state-layer-size, 40px);height:var(--mdc-checkbox-state-layer-size, 40px);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox--disabled{cursor:default;pointer-events:none}@media(forced-colors: active){.mdc-checkbox--disabled{opacity:.5}}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mdc-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox:hover .mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover .mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable .mdc-checkbox *,.mat-mdc-checkbox._mat-animation-noopable .mdc-checkbox *::before{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox .mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox .mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display, block)}.mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return n})();var hu=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[bl,Ue,Ue]})}return n})();var X$=["mat-calendar-body",""];function J$(n,t){return this._trackRow(t)}var WM=(n,t)=>t.id;function eV(n,t){if(n&1&&(N(0,"tr",0)(1,"td",3),B(2),F()()),n&2){let e=Y();$(),ai("padding-top",e._cellPadding)("padding-bottom",e._cellPadding),Me("colspan",e.numCols),$(),Ye(" ",e.label," ")}}function tV(n,t){if(n&1&&(N(0,"td",3),B(1),F()),n&2){let e=Y(2);ai("padding-top",e._cellPadding)("padding-bottom",e._cellPadding),Me("colspan",e._firstRowOffset),$(),Ye(" ",e._firstRowOffset>=e.labelMinRequiredCells?e.label:""," ")}}function iV(n,t){if(n&1){let e=We();N(0,"td",6)(1,"button",7),J("click",function(r){let s=te(e).$implicit,a=Y(2);return ie(a._cellClicked(s,r))})("focus",function(r){let s=te(e).$implicit,a=Y(2);return ie(a._emitActiveDateChange(s,r))}),N(2,"span",8),B(3),F(),ne(4,"span",9),F()()}if(n&2){let e=t.$implicit,i=t.$index,r=Y().$index,s=Y();ai("width",s._cellWidth)("padding-top",s._cellPadding)("padding-bottom",s._cellPadding),Me("data-mat-row",r)("data-mat-col",i),$(),ke("mat-calendar-body-disabled",!e.enabled)("mat-calendar-body-active",s._isActiveCell(r,i))("mat-calendar-body-range-start",s._isRangeStart(e.compareValue))("mat-calendar-body-range-end",s._isRangeEnd(e.compareValue))("mat-calendar-body-in-range",s._isInRange(e.compareValue))("mat-calendar-body-comparison-bridge-start",s._isComparisonBridgeStart(e.compareValue,r,i))("mat-calendar-body-comparison-bridge-end",s._isComparisonBridgeEnd(e.compareValue,r,i))("mat-calendar-body-comparison-start",s._isComparisonStart(e.compareValue))("mat-calendar-body-comparison-end",s._isComparisonEnd(e.compareValue))("mat-calendar-body-in-comparison-range",s._isInComparisonRange(e.compareValue))("mat-calendar-body-preview-start",s._isPreviewStart(e.compareValue))("mat-calendar-body-preview-end",s._isPreviewEnd(e.compareValue))("mat-calendar-body-in-preview",s._isInPreview(e.compareValue)),z("ngClass",e.cssClasses)("tabindex",s._isActiveCell(r,i)?0:-1),Me("aria-label",e.ariaLabel)("aria-disabled",!e.enabled||null)("aria-pressed",s._isSelected(e.compareValue))("aria-current",s.todayValue===e.compareValue?"date":null)("aria-describedby",s._getDescribedby(e.compareValue)),$(),ke("mat-calendar-body-selected",s._isSelected(e.compareValue))("mat-calendar-body-comparison-identical",s._isComparisonIdentical(e.compareValue))("mat-calendar-body-today",s.todayValue===e.compareValue),$(),Ye(" ",e.displayValue," ")}}function nV(n,t){if(n&1&&(N(0,"tr",1),le(1,tV,2,6,"td",4),xr(2,iV,5,48,"td",5,WM),F()),n&2){let e=t.$implicit,i=t.$index,r=Y();$(),et(i===0&&r._firstRowOffset?1:-1),$(),Sr(e)}}function rV(n,t){if(n&1&&(N(0,"th",2)(1,"span",6),B(2),F(),N(3,"span",3),B(4),F()()),n&2){let e=t.$implicit;$(2),Ke(e.long),$(2),Ke(e.narrow)}}var sV=["*"];function aV(n,t){}function oV(n,t){if(n&1){let e=We();N(0,"mat-month-view",4),Bs("activeDateChange",function(r){te(e);let s=Y();return Vs(s.activeDate,r)||(s.activeDate=r),ie(r)}),J("_userSelection",function(r){te(e);let s=Y();return ie(s._dateSelected(r))})("dragStarted",function(r){te(e);let s=Y();return ie(s._dragStarted(r))})("dragEnded",function(r){te(e);let s=Y();return ie(s._dragEnded(r))}),F()}if(n&2){let e=Y();$s("activeDate",e.activeDate),z("selected",e.selected)("dateFilter",e.dateFilter)("maxDate",e.maxDate)("minDate",e.minDate)("dateClass",e.dateClass)("comparisonStart",e.comparisonStart)("comparisonEnd",e.comparisonEnd)("startDateAccessibleName",e.startDateAccessibleName)("endDateAccessibleName",e.endDateAccessibleName)("activeDrag",e._activeDrag)}}function lV(n,t){if(n&1){let e=We();N(0,"mat-year-view",5),Bs("activeDateChange",function(r){te(e);let s=Y();return Vs(s.activeDate,r)||(s.activeDate=r),ie(r)}),J("monthSelected",function(r){te(e);let s=Y();return ie(s._monthSelectedInYearView(r))})("selectedChange",function(r){te(e);let s=Y();return ie(s._goToDateInView(r,"month"))}),F()}if(n&2){let e=Y();$s("activeDate",e.activeDate),z("selected",e.selected)("dateFilter",e.dateFilter)("maxDate",e.maxDate)("minDate",e.minDate)("dateClass",e.dateClass)}}function cV(n,t){if(n&1){let e=We();N(0,"mat-multi-year-view",6),Bs("activeDateChange",function(r){te(e);let s=Y();return Vs(s.activeDate,r)||(s.activeDate=r),ie(r)}),J("yearSelected",function(r){te(e);let s=Y();return ie(s._yearSelectedInMultiYearView(r))})("selectedChange",function(r){te(e);let s=Y();return ie(s._goToDateInView(r,"year"))}),F()}if(n&2){let e=Y();$s("activeDate",e.activeDate),z("selected",e.selected)("dateFilter",e.dateFilter)("maxDate",e.maxDate)("minDate",e.minDate)("dateClass",e.dateClass)}}function uV(n,t){}var dV=["button"],hV=[[["","matDatepickerToggleIcon",""]]],mV=["[matDatepickerToggleIcon]"];function fV(n,t){n&1&&(Qt(),N(0,"svg",2),ne(1,"path",3),F())}var pu=(()=>{class n{changes=new me;calendarLabel="Calendar";openCalendarLabel="Open calendar";closeCalendarLabel="Close calendar";prevMonthLabel="Previous month";nextMonthLabel="Next month";prevYearLabel="Previous year";nextYearLabel="Next year";prevMultiYearLabel="Previous 24 years";nextMultiYearLabel="Next 24 years";switchToMonthViewLabel="Choose date";switchToMultiYearViewLabel="Choose month and year";startDateLabel="Start date";endDateLabel="End date";formatYearRange(e,i){return`${e} \u2013 ${i}`}formatYearRangeLabel(e,i){return`${e} to ${i}`}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),pV=0,fu=class{value;displayValue;ariaLabel;enabled;cssClasses;compareValue;rawValue;id=pV++;constructor(t,e,i,r,s={},a=t,o){this.value=t,this.displayValue=e,this.ariaLabel=i,this.enabled=r,this.cssClasses=s,this.compareValue=a,this.rawValue=o}},$M=Ai({passive:!1,capture:!0}),sa=Ai({passive:!0,capture:!0}),Hm=Ai({passive:!0}),yl=(()=>{class n{_elementRef=L(Ae);_ngZone=L(Ne);_platform=L(ct);_skipNextFocus;_focusActiveCellAfterViewChecked=!1;label;rows;todayValue;startValue;endValue;labelMinRequiredCells;numCols=7;activeCell=0;ngAfterViewChecked(){this._focusActiveCellAfterViewChecked&&(this._focusActiveCell(),this._focusActiveCellAfterViewChecked=!1)}isRange=!1;cellAspectRatio=1;comparisonStart;comparisonEnd;previewStart=null;previewEnd=null;startDateAccessibleName;endDateAccessibleName;selectedValueChange=new oe;previewChange=new oe;activeDateChange=new oe;dragStarted=new oe;dragEnded=new oe;_firstRowOffset;_cellPadding;_cellWidth;_startDateLabelId;_endDateLabelId;_didDragSinceMouseDown=!1;_injector=L(gt);_trackRow=e=>e;constructor(){let e=L(Ft);this._startDateLabelId=e.getId("mat-calendar-body-start-"),this._endDateLabelId=e.getId("mat-calendar-body-start-"),L(wt).load(Di),this._ngZone.runOutsideAngular(()=>{let i=this._elementRef.nativeElement;i.addEventListener("touchmove",this._touchmoveHandler,$M),i.addEventListener("mouseenter",this._enterHandler,sa),i.addEventListener("focus",this._enterHandler,sa),i.addEventListener("mouseleave",this._leaveHandler,sa),i.addEventListener("blur",this._leaveHandler,sa),i.addEventListener("mousedown",this._mousedownHandler,Hm),i.addEventListener("touchstart",this._mousedownHandler,Hm),this._platform.isBrowser&&(window.addEventListener("mouseup",this._mouseupHandler),window.addEventListener("touchend",this._touchendHandler))})}_cellClicked(e,i){this._didDragSinceMouseDown||e.enabled&&this.selectedValueChange.emit({value:e.value,event:i})}_emitActiveDateChange(e,i){e.enabled&&this.activeDateChange.emit({value:e.value,event:i})}_isSelected(e){return this.startValue===e||this.endValue===e}ngOnChanges(e){let i=e.numCols,{rows:r,numCols:s}=this;(e.rows||i)&&(this._firstRowOffset=r&&r.length&&r[0].length?s-r[0].length:0),(e.cellAspectRatio||i||!this._cellPadding)&&(this._cellPadding=`${50*this.cellAspectRatio/s}%`),(i||!this._cellWidth)&&(this._cellWidth=`${100/s}%`)}ngOnDestroy(){let e=this._elementRef.nativeElement;e.removeEventListener("touchmove",this._touchmoveHandler,$M),e.removeEventListener("mouseenter",this._enterHandler,sa),e.removeEventListener("focus",this._enterHandler,sa),e.removeEventListener("mouseleave",this._leaveHandler,sa),e.removeEventListener("blur",this._leaveHandler,sa),e.removeEventListener("mousedown",this._mousedownHandler,Hm),e.removeEventListener("touchstart",this._mousedownHandler,Hm),this._platform.isBrowser&&(window.removeEventListener("mouseup",this._mouseupHandler),window.removeEventListener("touchend",this._touchendHandler))}_isActiveCell(e,i){let r=e*this.numCols+i;return e&&(r-=this._firstRowOffset),r==this.activeCell}_focusActiveCell(e=!0){vi(()=>{setTimeout(()=>{let i=this._elementRef.nativeElement.querySelector(".mat-calendar-body-active");i&&(e||(this._skipNextFocus=!0),i.focus())})},{injector:this._injector})}_scheduleFocusActiveCellAfterViewChecked(){this._focusActiveCellAfterViewChecked=!0}_isRangeStart(e){return J_(e,this.startValue,this.endValue)}_isRangeEnd(e){return ev(e,this.startValue,this.endValue)}_isInRange(e){return tv(e,this.startValue,this.endValue,this.isRange)}_isComparisonStart(e){return J_(e,this.comparisonStart,this.comparisonEnd)}_isComparisonBridgeStart(e,i,r){if(!this._isComparisonStart(e)||this._isRangeStart(e)||!this._isInRange(e))return!1;let s=this.rows[i][r-1];if(!s){let a=this.rows[i-1];s=a&&a[a.length-1]}return s&&!this._isRangeEnd(s.compareValue)}_isComparisonBridgeEnd(e,i,r){if(!this._isComparisonEnd(e)||this._isRangeEnd(e)||!this._isInRange(e))return!1;let s=this.rows[i][r+1];if(!s){let a=this.rows[i+1];s=a&&a[0]}return s&&!this._isRangeStart(s.compareValue)}_isComparisonEnd(e){return ev(e,this.comparisonStart,this.comparisonEnd)}_isInComparisonRange(e){return tv(e,this.comparisonStart,this.comparisonEnd,this.isRange)}_isComparisonIdentical(e){return this.comparisonStart===this.comparisonEnd&&e===this.comparisonStart}_isPreviewStart(e){return J_(e,this.previewStart,this.previewEnd)}_isPreviewEnd(e){return ev(e,this.previewStart,this.previewEnd)}_isInPreview(e){return tv(e,this.previewStart,this.previewEnd,this.isRange)}_getDescribedby(e){return this.isRange?this.startValue===e&&this.endValue===e?`${this._startDateLabelId} ${this._endDateLabelId}`:this.startValue===e?this._startDateLabelId:this.endValue===e?this._endDateLabelId:null:null}_enterHandler=e=>{if(this._skipNextFocus&&e.type==="focus"){this._skipNextFocus=!1;return}if(e.target&&this.isRange){let i=this._getCellFromElement(e.target);i&&this._ngZone.run(()=>this.previewChange.emit({value:i.enabled?i:null,event:e}))}};_touchmoveHandler=e=>{if(!this.isRange)return;let i=VM(e),r=i?this._getCellFromElement(i):null;i!==e.target&&(this._didDragSinceMouseDown=!0),X_(e.target)&&e.preventDefault(),this._ngZone.run(()=>this.previewChange.emit({value:r?.enabled?r:null,event:e}))};_leaveHandler=e=>{this.previewEnd!==null&&this.isRange&&(e.type!=="blur"&&(this._didDragSinceMouseDown=!0),e.target&&this._getCellFromElement(e.target)&&!(e.relatedTarget&&this._getCellFromElement(e.relatedTarget))&&this._ngZone.run(()=>this.previewChange.emit({value:null,event:e})))};_mousedownHandler=e=>{if(!this.isRange)return;this._didDragSinceMouseDown=!1;let i=e.target&&this._getCellFromElement(e.target);!i||!this._isInRange(i.compareValue)||this._ngZone.run(()=>{this.dragStarted.emit({value:i.rawValue,event:e})})};_mouseupHandler=e=>{if(!this.isRange)return;let i=X_(e.target);if(!i){this._ngZone.run(()=>{this.dragEnded.emit({value:null,event:e})});return}i.closest(".mat-calendar-body")===this._elementRef.nativeElement&&this._ngZone.run(()=>{let r=this._getCellFromElement(i);this.dragEnded.emit({value:r?.rawValue??null,event:e})})};_touchendHandler=e=>{let i=VM(e);i&&this._mouseupHandler({target:i})};_getCellFromElement(e){let i=X_(e);if(i){let r=i.getAttribute("data-mat-row"),s=i.getAttribute("data-mat-col");if(r&&s)return this.rows[parseInt(r)][parseInt(s)]}return null}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["","mat-calendar-body",""]],hostAttrs:[1,"mat-calendar-body"],inputs:{label:"label",rows:"rows",todayValue:"todayValue",startValue:"startValue",endValue:"endValue",labelMinRequiredCells:"labelMinRequiredCells",numCols:"numCols",activeCell:"activeCell",isRange:"isRange",cellAspectRatio:"cellAspectRatio",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd",previewStart:"previewStart",previewEnd:"previewEnd",startDateAccessibleName:"startDateAccessibleName",endDateAccessibleName:"endDateAccessibleName"},outputs:{selectedValueChange:"selectedValueChange",previewChange:"previewChange",activeDateChange:"activeDateChange",dragStarted:"dragStarted",dragEnded:"dragEnded"},exportAs:["matCalendarBody"],features:[vt],attrs:X$,decls:7,vars:5,consts:[["aria-hidden","true"],["role","row"],[1,"mat-calendar-body-hidden-label",3,"id"],[1,"mat-calendar-body-label"],[1,"mat-calendar-body-label",3,"paddingTop","paddingBottom"],["role","gridcell",1,"mat-calendar-body-cell-container",3,"width","paddingTop","paddingBottom"],["role","gridcell",1,"mat-calendar-body-cell-container"],["type","button",1,"mat-calendar-body-cell",3,"click","focus","ngClass","tabindex"],[1,"mat-calendar-body-cell-content","mat-focus-indicator"],["aria-hidden","true",1,"mat-calendar-body-cell-preview"]],template:function(i,r){i&1&&(le(0,eV,3,6,"tr",0),xr(1,nV,4,1,"tr",1,J$,!0),N(3,"span",2),B(4),F(),N(5,"span",2),B(6),F()),i&2&&(et(r._firstRowOffset.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){color:var(--mat-datepicker-calendar-date-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:var(--mat-datepicker-calendar-date-today-disabled-state-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mat-calendar-body-disabled{opacity:.5}}.mat-calendar-body-cell-content{top:5%;left:5%;z-index:1;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:90%;height:90%;line-height:1;border-width:1px;border-style:solid;border-radius:999px;color:var(--mat-datepicker-calendar-date-text-color, var(--mat-sys-on-surface));border-color:var(--mat-datepicker-calendar-date-outline-color, transparent)}.mat-calendar-body-cell-content.mat-focus-indicator{position:absolute}@media(forced-colors: active){.mat-calendar-body-cell-content{border:none}}.cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:var(--mat-datepicker-calendar-date-focus-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}@media(hover: hover){.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:var(--mat-datepicker-calendar-date-hover-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}}.mat-calendar-body-selected{background-color:var(--mat-datepicker-calendar-date-selected-state-background-color, var(--mat-sys-primary));color:var(--mat-datepicker-calendar-date-selected-state-text-color, var(--mat-sys-on-primary))}.mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:var(--mat-datepicker-calendar-date-selected-disabled-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-calendar-body-selected.mat-calendar-body-today{box-shadow:inset 0 0 0 1px var(--mat-datepicker-calendar-date-today-selected-state-outline-color, var(--mat-sys-primary))}.mat-calendar-body-in-range::before{background:var(--mat-datepicker-calendar-date-in-range-state-background-color, var(--mat-sys-primary-container))}.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range::before{background:var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color, var(--mat-sys-tertiary-container))}.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range::before{background:var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color, var(--mat-sys-tertiary-container))}.mat-calendar-body-comparison-bridge-start::before,[dir=rtl] .mat-calendar-body-comparison-bridge-end::before{background:linear-gradient(to right, var(--mat-datepicker-calendar-date-in-range-state-background-color, var(--mat-sys-primary-container)) 50%, var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color, var(--mat-sys-tertiary-container)) 50%)}.mat-calendar-body-comparison-bridge-end::before,[dir=rtl] .mat-calendar-body-comparison-bridge-start::before{background:linear-gradient(to left, var(--mat-datepicker-calendar-date-in-range-state-background-color, var(--mat-sys-primary-container)) 50%, var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color, var(--mat-sys-tertiary-container)) 50%)}.mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after{background:var(--mat-datepicker-calendar-date-in-overlap-range-state-background-color, var(--mat-sys-secondary-container))}.mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:var(--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color, var(--mat-sys-secondary))}@media(forced-colors: active){.mat-datepicker-popup:not(:empty),.mat-calendar-body-cell:not(.mat-calendar-body-in-range) .mat-calendar-body-selected{outline:solid 1px}.mat-calendar-body-today{outline:dotted 1px}.mat-calendar-body-cell::before,.mat-calendar-body-cell::after,.mat-calendar-body-selected{background:none}.mat-calendar-body-in-range::before,.mat-calendar-body-comparison-bridge-start::before,.mat-calendar-body-comparison-bridge-end::before{border-top:solid 1px;border-bottom:solid 1px}.mat-calendar-body-range-start::before{border-left:solid 1px}[dir=rtl] .mat-calendar-body-range-start::before{border-left:0;border-right:solid 1px}.mat-calendar-body-range-end::before{border-right:solid 1px}[dir=rtl] .mat-calendar-body-range-end::before{border-right:0;border-left:solid 1px}.mat-calendar-body-in-comparison-range::before{border-top:dashed 1px;border-bottom:dashed 1px}.mat-calendar-body-comparison-start::before{border-left:dashed 1px}[dir=rtl] .mat-calendar-body-comparison-start::before{border-left:0;border-right:dashed 1px}.mat-calendar-body-comparison-end::before{border-right:dashed 1px}[dir=rtl] .mat-calendar-body-comparison-end::before{border-right:0;border-left:dashed 1px}}'],encapsulation:2,changeDetection:0})}return n})();function Z_(n){return n?.nodeName==="TD"}function X_(n){let t;return Z_(n)?t=n:Z_(n.parentNode)?t=n.parentNode:Z_(n.parentNode?.parentNode)&&(t=n.parentNode.parentNode),t?.getAttribute("data-mat-row")!=null?t:null}function J_(n,t,e){return e!==null&&t!==e&&n=t&&n===e}function tv(n,t,e,i){return i&&t!==null&&e!==null&&t!==e&&n>=t&&n<=e}function VM(n){let t=n.changedTouches[0];return document.elementFromPoint(t.clientX,t.clientY)}var Hn=class{start;end;_disableStructuralEquivalency;constructor(t,e){this.start=t,this.end=e}},jm=(()=>{class n{selection;_adapter;_selectionChanged=new me;selectionChanged=this._selectionChanged;constructor(e,i){this.selection=e,this._adapter=i,this.selection=e}updateSelection(e,i){let r=this.selection;this.selection=e,this._selectionChanged.next({selection:e,source:i,oldValue:r})}ngOnDestroy(){this._selectionChanged.complete()}_isValidDateInstance(e){return this._adapter.isDateInstance(e)&&this._adapter.isValid(e)}static \u0275fac=function(i){Wd()};static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})(),gV=(()=>{class n extends jm{constructor(e){super(null,e)}add(e){super.updateSelection(e,this)}isValid(){return this.selection!=null&&this._isValidDateInstance(this.selection)}isComplete(){return this.selection!=null}clone(){let e=new n(this._adapter);return e.updateSelection(this.selection,this),e}static \u0275fac=function(i){return new(i||n)(Oe(sn))};static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})();function _V(n,t){return n||new gV(t)}var vV={provide:jm,deps:[[new Us,new ka,jm],sn],useFactory:_V};var qM=new ee("MAT_DATE_RANGE_SELECTION_STRATEGY");var iv=7,bV=0,BM=(()=>{class n{_changeDetectorRef=L(Xe);_dateFormats=L(nl,{optional:!0});_dateAdapter=L(sn,{optional:!0});_dir=L(ui,{optional:!0});_rangeStrategy=L(qM,{optional:!0});_rerenderSubscription=Mt.EMPTY;_selectionKeyPressed;get activeDate(){return this._activeDate}set activeDate(e){let i=this._activeDate,r=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(r,this.minDate,this.maxDate),this._hasSameMonthAndYear(i,this._activeDate)||this._init()}_activeDate;get selected(){return this._selected}set selected(e){e instanceof Hn?this._selected=e:this._selected=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e)),this._setRanges(this._selected)}_selected;get minDate(){return this._minDate}set minDate(e){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_minDate;get maxDate(){return this._maxDate}set maxDate(e){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_maxDate;dateFilter;dateClass;comparisonStart;comparisonEnd;startDateAccessibleName;endDateAccessibleName;activeDrag=null;selectedChange=new oe;_userSelection=new oe;dragStarted=new oe;dragEnded=new oe;activeDateChange=new oe;_matCalendarBody;_monthLabel;_weeks;_firstWeekOffset;_rangeStart;_rangeEnd;_comparisonRangeStart;_comparisonRangeEnd;_previewStart;_previewEnd;_isRange;_todayDate;_weekdays;constructor(){L(wt).load(os),this._activeDate=this._dateAdapter.today()}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe(Gt(null)).subscribe(()=>this._init())}ngOnChanges(e){let i=e.comparisonStart||e.comparisonEnd;i&&!i.firstChange&&this._setRanges(this.selected),e.activeDrag&&!this.activeDrag&&this._clearPreview()}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_dateSelected(e){let i=e.value,r=this._getDateFromDayOfMonth(i),s,a;this._selected instanceof Hn?(s=this._getDateInCurrentMonth(this._selected.start),a=this._getDateInCurrentMonth(this._selected.end)):s=a=this._getDateInCurrentMonth(this._selected),(s!==i||a!==i)&&this.selectedChange.emit(r),this._userSelection.emit({value:r,event:e.event}),this._clearPreview(),this._changeDetectorRef.markForCheck()}_updateActiveDate(e){let i=e.value,r=this._activeDate;this.activeDate=this._getDateFromDayOfMonth(i),this._dateAdapter.compareDate(r,this.activeDate)&&this.activeDateChange.emit(this._activeDate)}_handleCalendarBodyKeydown(e){let i=this._activeDate,r=this._isRtl();switch(e.keyCode){case 37:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,r?1:-1);break;case 39:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,r?-1:1);break;case 38:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,-7);break;case 40:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,7);break;case 36:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,1-this._dateAdapter.getDate(this._activeDate));break;case 35:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,this._dateAdapter.getNumDaysInMonth(this._activeDate)-this._dateAdapter.getDate(this._activeDate));break;case 33:this.activeDate=e.altKey?this._dateAdapter.addCalendarYears(this._activeDate,-1):this._dateAdapter.addCalendarMonths(this._activeDate,-1);break;case 34:this.activeDate=e.altKey?this._dateAdapter.addCalendarYears(this._activeDate,1):this._dateAdapter.addCalendarMonths(this._activeDate,1);break;case 13:case 32:this._selectionKeyPressed=!0,this._canSelect(this._activeDate)&&e.preventDefault();return;case 27:this._previewEnd!=null&&!Vi(e)&&(this._clearPreview(),this.activeDrag?this.dragEnded.emit({value:null,event:e}):(this.selectedChange.emit(null),this._userSelection.emit({value:null,event:e})),e.preventDefault(),e.stopPropagation());return;default:return}this._dateAdapter.compareDate(i,this.activeDate)&&(this.activeDateChange.emit(this.activeDate),this._focusActiveCellAfterViewChecked()),e.preventDefault()}_handleCalendarBodyKeyup(e){(e.keyCode===32||e.keyCode===13)&&(this._selectionKeyPressed&&this._canSelect(this._activeDate)&&this._dateSelected({value:this._dateAdapter.getDate(this._activeDate),event:e}),this._selectionKeyPressed=!1)}_init(){this._setRanges(this.selected),this._todayDate=this._getCellCompareValue(this._dateAdapter.today()),this._monthLabel=this._dateFormats.display.monthLabel?this._dateAdapter.format(this.activeDate,this._dateFormats.display.monthLabel):this._dateAdapter.getMonthNames("short")[this._dateAdapter.getMonth(this.activeDate)].toLocaleUpperCase();let e=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),this._dateAdapter.getMonth(this.activeDate),1);this._firstWeekOffset=(iv+this._dateAdapter.getDayOfWeek(e)-this._dateAdapter.getFirstDayOfWeek())%iv,this._initWeekdays(),this._createWeekCells(),this._changeDetectorRef.markForCheck()}_focusActiveCell(e){this._matCalendarBody._focusActiveCell(e)}_focusActiveCellAfterViewChecked(){this._matCalendarBody._scheduleFocusActiveCellAfterViewChecked()}_previewChanged({event:e,value:i}){if(this._rangeStrategy){let r=i?i.rawValue:null,s=this._rangeStrategy.createPreview(r,this.selected,e);if(this._previewStart=this._getCellCompareValue(s.start),this._previewEnd=this._getCellCompareValue(s.end),this.activeDrag&&r){let a=this._rangeStrategy.createDrag?.(this.activeDrag.value,this.selected,r,e);a&&(this._previewStart=this._getCellCompareValue(a.start),this._previewEnd=this._getCellCompareValue(a.end))}this._changeDetectorRef.detectChanges()}}_dragEnded(e){if(this.activeDrag)if(e.value){let i=this._rangeStrategy?.createDrag?.(this.activeDrag.value,this.selected,e.value,e.event);this.dragEnded.emit({value:i??null,event:e.event})}else this.dragEnded.emit({value:null,event:e.event})}_getDateFromDayOfMonth(e){return this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),this._dateAdapter.getMonth(this.activeDate),e)}_initWeekdays(){let e=this._dateAdapter.getFirstDayOfWeek(),i=this._dateAdapter.getDayOfWeekNames("narrow"),s=this._dateAdapter.getDayOfWeekNames("long").map((a,o)=>({long:a,narrow:i[o],id:bV++}));this._weekdays=s.slice(e).concat(s.slice(0,e))}_createWeekCells(){let e=this._dateAdapter.getNumDaysInMonth(this.activeDate),i=this._dateAdapter.getDateNames();this._weeks=[[]];for(let r=0,s=this._firstWeekOffset;r=0)&&(!this.maxDate||this._dateAdapter.compareDate(e,this.maxDate)<=0)&&(!this.dateFilter||this.dateFilter(e))}_getDateInCurrentMonth(e){return e&&this._hasSameMonthAndYear(e,this.activeDate)?this._dateAdapter.getDate(e):null}_hasSameMonthAndYear(e,i){return!!(e&&i&&this._dateAdapter.getMonth(e)==this._dateAdapter.getMonth(i)&&this._dateAdapter.getYear(e)==this._dateAdapter.getYear(i))}_getCellCompareValue(e){if(e){let i=this._dateAdapter.getYear(e),r=this._dateAdapter.getMonth(e),s=this._dateAdapter.getDate(e);return new Date(i,r,s).getTime()}return null}_isRtl(){return this._dir&&this._dir.value==="rtl"}_setRanges(e){e instanceof Hn?(this._rangeStart=this._getCellCompareValue(e.start),this._rangeEnd=this._getCellCompareValue(e.end),this._isRange=!0):(this._rangeStart=this._rangeEnd=this._getCellCompareValue(e),this._isRange=!1),this._comparisonRangeStart=this._getCellCompareValue(this.comparisonStart),this._comparisonRangeEnd=this._getCellCompareValue(this.comparisonEnd)}_canSelect(e){return!this.dateFilter||this.dateFilter(e)}_clearPreview(){this._previewStart=this._previewEnd=null}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-month-view"]],viewQuery:function(i,r){if(i&1&&Be(yl,5),i&2){let s;Te(s=Ee())&&(r._matCalendarBody=s.first)}},inputs:{activeDate:"activeDate",selected:"selected",minDate:"minDate",maxDate:"maxDate",dateFilter:"dateFilter",dateClass:"dateClass",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd",startDateAccessibleName:"startDateAccessibleName",endDateAccessibleName:"endDateAccessibleName",activeDrag:"activeDrag"},outputs:{selectedChange:"selectedChange",_userSelection:"_userSelection",dragStarted:"dragStarted",dragEnded:"dragEnded",activeDateChange:"activeDateChange"},exportAs:["matMonthView"],features:[vt],decls:8,vars:14,consts:[["role","grid",1,"mat-calendar-table"],[1,"mat-calendar-table-header"],["scope","col"],["aria-hidden","true"],["colspan","7",1,"mat-calendar-table-header-divider"],["mat-calendar-body","",3,"selectedValueChange","activeDateChange","previewChange","dragStarted","dragEnded","keyup","keydown","label","rows","todayValue","startValue","endValue","comparisonStart","comparisonEnd","previewStart","previewEnd","isRange","labelMinRequiredCells","activeCell","startDateAccessibleName","endDateAccessibleName"],[1,"cdk-visually-hidden"]],template:function(i,r){i&1&&(N(0,"table",0)(1,"thead",1)(2,"tr"),xr(3,rV,5,2,"th",2,WM),F(),N(5,"tr",3),ne(6,"th",4),F()(),N(7,"tbody",5),J("selectedValueChange",function(a){return r._dateSelected(a)})("activeDateChange",function(a){return r._updateActiveDate(a)})("previewChange",function(a){return r._previewChanged(a)})("dragStarted",function(a){return r.dragStarted.emit(a)})("dragEnded",function(a){return r._dragEnded(a)})("keyup",function(a){return r._handleCalendarBodyKeyup(a)})("keydown",function(a){return r._handleCalendarBodyKeydown(a)}),F()()),i&2&&($(3),Sr(r._weekdays),$(4),z("label",r._monthLabel)("rows",r._weeks)("todayValue",r._todayDate)("startValue",r._rangeStart)("endValue",r._rangeEnd)("comparisonStart",r._comparisonRangeStart)("comparisonEnd",r._comparisonRangeEnd)("previewStart",r._previewStart)("previewEnd",r._previewEnd)("isRange",r._isRange)("labelMinRequiredCells",3)("activeCell",r._dateAdapter.getDate(r.activeDate)-1)("startDateAccessibleName",r.startDateAccessibleName)("endDateAccessibleName",r.endDateAccessibleName))},dependencies:[yl],encapsulation:2,changeDetection:0})}return n})(),wn=24,nv=4,zM=(()=>{class n{_changeDetectorRef=L(Xe);_dateAdapter=L(sn,{optional:!0});_dir=L(ui,{optional:!0});_rerenderSubscription=Mt.EMPTY;_selectionKeyPressed;get activeDate(){return this._activeDate}set activeDate(e){let i=this._activeDate,r=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(r,this.minDate,this.maxDate),GM(this._dateAdapter,i,this._activeDate,this.minDate,this.maxDate)||this._init()}_activeDate;get selected(){return this._selected}set selected(e){e instanceof Hn?this._selected=e:this._selected=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e)),this._setSelectedYear(e)}_selected;get minDate(){return this._minDate}set minDate(e){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_minDate;get maxDate(){return this._maxDate}set maxDate(e){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_maxDate;dateFilter;dateClass;selectedChange=new oe;yearSelected=new oe;activeDateChange=new oe;_matCalendarBody;_years;_todayYear;_selectedYear;constructor(){this._dateAdapter,this._activeDate=this._dateAdapter.today()}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe(Gt(null)).subscribe(()=>this._init())}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_init(){this._todayYear=this._dateAdapter.getYear(this._dateAdapter.today());let i=this._dateAdapter.getYear(this._activeDate)-mu(this._dateAdapter,this.activeDate,this.minDate,this.maxDate);this._years=[];for(let r=0,s=[];rthis._createCellForYear(a))),s=[]);this._changeDetectorRef.markForCheck()}_yearSelected(e){let i=e.value,r=this._dateAdapter.createDate(i,0,1),s=this._getDateFromYear(i);this.yearSelected.emit(r),this.selectedChange.emit(s)}_updateActiveDate(e){let i=e.value,r=this._activeDate;this.activeDate=this._getDateFromYear(i),this._dateAdapter.compareDate(r,this.activeDate)&&this.activeDateChange.emit(this.activeDate)}_handleCalendarBodyKeydown(e){let i=this._activeDate,r=this._isRtl();switch(e.keyCode){case 37:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,r?1:-1);break;case 39:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,r?-1:1);break;case 38:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,-nv);break;case 40:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,nv);break;case 36:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,-mu(this._dateAdapter,this.activeDate,this.minDate,this.maxDate));break;case 35:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,wn-mu(this._dateAdapter,this.activeDate,this.minDate,this.maxDate)-1);break;case 33:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?-wn*10:-wn);break;case 34:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?wn*10:wn);break;case 13:case 32:this._selectionKeyPressed=!0;break;default:return}this._dateAdapter.compareDate(i,this.activeDate)&&this.activeDateChange.emit(this.activeDate),this._focusActiveCellAfterViewChecked(),e.preventDefault()}_handleCalendarBodyKeyup(e){(e.keyCode===32||e.keyCode===13)&&(this._selectionKeyPressed&&this._yearSelected({value:this._dateAdapter.getYear(this._activeDate),event:e}),this._selectionKeyPressed=!1)}_getActiveCell(){return mu(this._dateAdapter,this.activeDate,this.minDate,this.maxDate)}_focusActiveCell(){this._matCalendarBody._focusActiveCell()}_focusActiveCellAfterViewChecked(){this._matCalendarBody._scheduleFocusActiveCellAfterViewChecked()}_getDateFromYear(e){let i=this._dateAdapter.getMonth(this.activeDate),r=this._dateAdapter.getNumDaysInMonth(this._dateAdapter.createDate(e,i,1));return this._dateAdapter.createDate(e,i,Math.min(this._dateAdapter.getDate(this.activeDate),r))}_createCellForYear(e){let i=this._dateAdapter.createDate(e,0,1),r=this._dateAdapter.getYearName(i),s=this.dateClass?this.dateClass(i,"multi-year"):void 0;return new fu(e,r,r,this._shouldEnableYear(e),s)}_shouldEnableYear(e){if(e==null||this.maxDate&&e>this._dateAdapter.getYear(this.maxDate)||this.minDate&&e{class n{_changeDetectorRef=L(Xe);_dateFormats=L(nl,{optional:!0});_dateAdapter=L(sn,{optional:!0});_dir=L(ui,{optional:!0});_rerenderSubscription=Mt.EMPTY;_selectionKeyPressed;get activeDate(){return this._activeDate}set activeDate(e){let i=this._activeDate,r=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(r,this.minDate,this.maxDate),this._dateAdapter.getYear(i)!==this._dateAdapter.getYear(this._activeDate)&&this._init()}_activeDate;get selected(){return this._selected}set selected(e){e instanceof Hn?this._selected=e:this._selected=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e)),this._setSelectedMonth(e)}_selected;get minDate(){return this._minDate}set minDate(e){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_minDate;get maxDate(){return this._maxDate}set maxDate(e){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_maxDate;dateFilter;dateClass;selectedChange=new oe;monthSelected=new oe;activeDateChange=new oe;_matCalendarBody;_months;_yearLabel;_todayMonth;_selectedMonth;constructor(){this._activeDate=this._dateAdapter.today()}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe(Gt(null)).subscribe(()=>this._init())}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_monthSelected(e){let i=e.value,r=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),i,1);this.monthSelected.emit(r);let s=this._getDateFromMonth(i);this.selectedChange.emit(s)}_updateActiveDate(e){let i=e.value,r=this._activeDate;this.activeDate=this._getDateFromMonth(i),this._dateAdapter.compareDate(r,this.activeDate)&&this.activeDateChange.emit(this.activeDate)}_handleCalendarBodyKeydown(e){let i=this._activeDate,r=this._isRtl();switch(e.keyCode){case 37:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,r?1:-1);break;case 39:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,r?-1:1);break;case 38:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,-4);break;case 40:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,4);break;case 36:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,-this._dateAdapter.getMonth(this._activeDate));break;case 35:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,11-this._dateAdapter.getMonth(this._activeDate));break;case 33:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?-10:-1);break;case 34:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?10:1);break;case 13:case 32:this._selectionKeyPressed=!0;break;default:return}this._dateAdapter.compareDate(i,this.activeDate)&&(this.activeDateChange.emit(this.activeDate),this._focusActiveCellAfterViewChecked()),e.preventDefault()}_handleCalendarBodyKeyup(e){(e.keyCode===32||e.keyCode===13)&&(this._selectionKeyPressed&&this._monthSelected({value:this._dateAdapter.getMonth(this._activeDate),event:e}),this._selectionKeyPressed=!1)}_init(){this._setSelectedMonth(this.selected),this._todayMonth=this._getMonthInCurrentYear(this._dateAdapter.today()),this._yearLabel=this._dateAdapter.getYearName(this.activeDate);let e=this._dateAdapter.getMonthNames("short");this._months=[[0,1,2,3],[4,5,6,7],[8,9,10,11]].map(i=>i.map(r=>this._createCellForMonth(r,e[r]))),this._changeDetectorRef.markForCheck()}_focusActiveCell(){this._matCalendarBody._focusActiveCell()}_focusActiveCellAfterViewChecked(){this._matCalendarBody._scheduleFocusActiveCellAfterViewChecked()}_getMonthInCurrentYear(e){return e&&this._dateAdapter.getYear(e)==this._dateAdapter.getYear(this.activeDate)?this._dateAdapter.getMonth(e):null}_getDateFromMonth(e){let i=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),e,1),r=this._dateAdapter.getNumDaysInMonth(i);return this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),e,Math.min(this._dateAdapter.getDate(this.activeDate),r))}_createCellForMonth(e,i){let r=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),e,1),s=this._dateAdapter.format(r,this._dateFormats.display.monthYearA11yLabel),a=this.dateClass?this.dateClass(r,"year"):void 0;return new fu(e,i.toLocaleUpperCase(),s,this._shouldEnableMonth(e),a)}_shouldEnableMonth(e){let i=this._dateAdapter.getYear(this.activeDate);if(e==null||this._isYearAndMonthAfterMaxDate(i,e)||this._isYearAndMonthBeforeMinDate(i,e))return!1;if(!this.dateFilter)return!0;let r=this._dateAdapter.createDate(i,e,1);for(let s=r;this._dateAdapter.getMonth(s)==e;s=this._dateAdapter.addCalendarDays(s,1))if(this.dateFilter(s))return!0;return!1}_isYearAndMonthAfterMaxDate(e,i){if(this.maxDate){let r=this._dateAdapter.getYear(this.maxDate),s=this._dateAdapter.getMonth(this.maxDate);return e>r||e===r&&i>s}return!1}_isYearAndMonthBeforeMinDate(e,i){if(this.minDate){let r=this._dateAdapter.getYear(this.minDate),s=this._dateAdapter.getMonth(this.minDate);return e{class n{_intl=L(pu);calendar=L(rv);_dateAdapter=L(sn,{optional:!0});_dateFormats=L(nl,{optional:!0});constructor(){L(wt).load(os);let e=L(Xe);this.calendar.stateChanges.subscribe(()=>e.markForCheck())}get periodButtonText(){return this.calendar.currentView=="month"?this._dateAdapter.format(this.calendar.activeDate,this._dateFormats.display.monthYearLabel).toLocaleUpperCase():this.calendar.currentView=="year"?this._dateAdapter.getYearName(this.calendar.activeDate):this._intl.formatYearRange(...this._formatMinAndMaxYearLabels())}get periodButtonDescription(){return this.calendar.currentView=="month"?this._dateAdapter.format(this.calendar.activeDate,this._dateFormats.display.monthYearLabel).toLocaleUpperCase():this.calendar.currentView=="year"?this._dateAdapter.getYearName(this.calendar.activeDate):this._intl.formatYearRangeLabel(...this._formatMinAndMaxYearLabels())}get periodButtonLabel(){return this.calendar.currentView=="month"?this._intl.switchToMultiYearViewLabel:this._intl.switchToMonthViewLabel}get prevButtonLabel(){return{month:this._intl.prevMonthLabel,year:this._intl.prevYearLabel,"multi-year":this._intl.prevMultiYearLabel}[this.calendar.currentView]}get nextButtonLabel(){return{month:this._intl.nextMonthLabel,year:this._intl.nextYearLabel,"multi-year":this._intl.nextMultiYearLabel}[this.calendar.currentView]}currentPeriodClicked(){this.calendar.currentView=this.calendar.currentView=="month"?"multi-year":"month"}previousClicked(){this.calendar.activeDate=this.calendar.currentView=="month"?this._dateAdapter.addCalendarMonths(this.calendar.activeDate,-1):this._dateAdapter.addCalendarYears(this.calendar.activeDate,this.calendar.currentView=="year"?-1:-wn)}nextClicked(){this.calendar.activeDate=this.calendar.currentView=="month"?this._dateAdapter.addCalendarMonths(this.calendar.activeDate,1):this._dateAdapter.addCalendarYears(this.calendar.activeDate,this.calendar.currentView=="year"?1:wn)}previousEnabled(){return this.calendar.minDate?!this.calendar.minDate||!this._isSameView(this.calendar.activeDate,this.calendar.minDate):!0}nextEnabled(){return!this.calendar.maxDate||!this._isSameView(this.calendar.activeDate,this.calendar.maxDate)}_isSameView(e,i){return this.calendar.currentView=="month"?this._dateAdapter.getYear(e)==this._dateAdapter.getYear(i)&&this._dateAdapter.getMonth(e)==this._dateAdapter.getMonth(i):this.calendar.currentView=="year"?this._dateAdapter.getYear(e)==this._dateAdapter.getYear(i):GM(this._dateAdapter,e,i,this.calendar.minDate,this.calendar.maxDate)}_formatMinAndMaxYearLabels(){let i=this._dateAdapter.getYear(this.calendar.activeDate)-mu(this._dateAdapter,this.calendar.activeDate,this.calendar.minDate,this.calendar.maxDate),r=i+wn-1,s=this._dateAdapter.getYearName(this._dateAdapter.createDate(i,0,1)),a=this._dateAdapter.getYearName(this._dateAdapter.createDate(r,0,1));return[s,a]}_periodButtonLabelId=L(Ft).getId("mat-calendar-period-label-");static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-calendar-header"]],exportAs:["matCalendarHeader"],ngContentSelectors:sV,decls:17,vars:11,consts:[[1,"mat-calendar-header"],[1,"mat-calendar-controls"],["aria-live","polite",1,"cdk-visually-hidden",3,"id"],["mat-button","","type","button",1,"mat-calendar-period-button",3,"click"],["aria-hidden","true"],["viewBox","0 0 10 5","focusable","false","aria-hidden","true",1,"mat-calendar-arrow"],["points","0,0 5,5 10,0"],[1,"mat-calendar-spacer"],["mat-icon-button","","type","button",1,"mat-calendar-previous-button",3,"click","disabled"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button",1,"mat-calendar-next-button",3,"click","disabled"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"]],template:function(i,r){i&1&&(tt(),N(0,"div",0)(1,"div",1)(2,"span",2),B(3),F(),N(4,"button",3),J("click",function(){return r.currentPeriodClicked()}),N(5,"span",4),B(6),F(),Qt(),N(7,"svg",5),ne(8,"polygon",6),F()(),Xr(),ne(9,"div",7),Fe(10),N(11,"button",8),J("click",function(){return r.previousClicked()}),Qt(),N(12,"svg",9),ne(13,"path",10),F()(),Xr(),N(14,"button",11),J("click",function(){return r.nextClicked()}),Qt(),N(15,"svg",9),ne(16,"path",12),F()()()()),i&2&&($(2),z("id",r._periodButtonLabelId),$(),Ke(r.periodButtonDescription),$(),Me("aria-label",r.periodButtonLabel)("aria-describedby",r._periodButtonLabelId),$(2),Ke(r.periodButtonText),$(),ke("mat-calendar-invert",r.calendar.currentView!=="month"),$(4),z("disabled",!r.previousEnabled()),Me("aria-label",r.prevButtonLabel),$(3),z("disabled",!r.nextEnabled()),Me("aria-label",r.nextButtonLabel))},dependencies:[fs,Xa],encapsulation:2,changeDetection:0})}return n})(),rv=(()=>{class n{_dateAdapter=L(sn,{optional:!0});_dateFormats=L(nl,{optional:!0});_changeDetectorRef=L(Xe);headerComponent;_calendarHeaderPortal;_intlChanges;_moveFocusOnNextTick=!1;get startAt(){return this._startAt}set startAt(e){this._startAt=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_startAt;startView="month";get selected(){return this._selected}set selected(e){e instanceof Hn?this._selected=e:this._selected=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_selected;get minDate(){return this._minDate}set minDate(e){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_minDate;get maxDate(){return this._maxDate}set maxDate(e){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_maxDate;dateFilter;dateClass;comparisonStart;comparisonEnd;startDateAccessibleName;endDateAccessibleName;selectedChange=new oe;yearSelected=new oe;monthSelected=new oe;viewChanged=new oe(!0);_userSelection=new oe;_userDragDrop=new oe;monthView;yearView;multiYearView;get activeDate(){return this._clampedActiveDate}set activeDate(e){this._clampedActiveDate=this._dateAdapter.clampDate(e,this.minDate,this.maxDate),this.stateChanges.next(),this._changeDetectorRef.markForCheck()}_clampedActiveDate;get currentView(){return this._currentView}set currentView(e){let i=this._currentView!==e?e:null;this._currentView=e,this._moveFocusOnNextTick=!0,this._changeDetectorRef.markForCheck(),i&&this.viewChanged.emit(i)}_currentView;_activeDrag=null;stateChanges=new me;constructor(){this._intlChanges=L(pu).changes.subscribe(()=>{this._changeDetectorRef.markForCheck(),this.stateChanges.next()})}ngAfterContentInit(){this._calendarHeaderPortal=new Ga(this.headerComponent||YM),this.activeDate=this.startAt||this._dateAdapter.today(),this._currentView=this.startView}ngAfterViewChecked(){this._moveFocusOnNextTick&&(this._moveFocusOnNextTick=!1,this.focusActiveCell())}ngOnDestroy(){this._intlChanges.unsubscribe(),this.stateChanges.complete()}ngOnChanges(e){let i=e.minDate&&!this._dateAdapter.sameDate(e.minDate.previousValue,e.minDate.currentValue)?e.minDate:void 0,r=e.maxDate&&!this._dateAdapter.sameDate(e.maxDate.previousValue,e.maxDate.currentValue)?e.maxDate:void 0,s=i||r||e.dateFilter;if(s&&!s.firstChange){let a=this._getCurrentViewComponent();a&&(this._moveFocusOnNextTick=!0,this._changeDetectorRef.detectChanges(),a._init())}this.stateChanges.next()}focusActiveCell(){this._getCurrentViewComponent()._focusActiveCell(!1)}updateTodaysDate(){this._getCurrentViewComponent()._init()}_dateSelected(e){let i=e.value;(this.selected instanceof Hn||i&&!this._dateAdapter.sameDate(i,this.selected))&&this.selectedChange.emit(i),this._userSelection.emit(e)}_yearSelectedInMultiYearView(e){this.yearSelected.emit(e)}_monthSelectedInYearView(e){this.monthSelected.emit(e)}_goToDateInView(e,i){this.activeDate=e,this.currentView=i}_dragStarted(e){this._activeDrag=e}_dragEnded(e){this._activeDrag&&(e.value&&this._userDragDrop.emit(e),this._activeDrag=null)}_getCurrentViewComponent(){return this.monthView||this.yearView||this.multiYearView}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-calendar"]],viewQuery:function(i,r){if(i&1&&(Be(BM,5),Be(HM,5),Be(zM,5)),i&2){let s;Te(s=Ee())&&(r.monthView=s.first),Te(s=Ee())&&(r.yearView=s.first),Te(s=Ee())&&(r.multiYearView=s.first)}},hostAttrs:[1,"mat-calendar"],inputs:{headerComponent:"headerComponent",startAt:"startAt",startView:"startView",selected:"selected",minDate:"minDate",maxDate:"maxDate",dateFilter:"dateFilter",dateClass:"dateClass",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd",startDateAccessibleName:"startDateAccessibleName",endDateAccessibleName:"endDateAccessibleName"},outputs:{selectedChange:"selectedChange",yearSelected:"yearSelected",monthSelected:"monthSelected",viewChanged:"viewChanged",_userSelection:"_userSelection",_userDragDrop:"_userDragDrop"},exportAs:["matCalendar"],features:[at([vV]),vt],decls:5,vars:2,consts:[[3,"cdkPortalOutlet"],["cdkMonitorSubtreeFocus","","tabindex","-1",1,"mat-calendar-content"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","comparisonStart","comparisonEnd","startDateAccessibleName","endDateAccessibleName","activeDrag"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass"],[3,"activeDateChange","_userSelection","dragStarted","dragEnded","activeDate","selected","dateFilter","maxDate","minDate","dateClass","comparisonStart","comparisonEnd","startDateAccessibleName","endDateAccessibleName","activeDrag"],[3,"activeDateChange","monthSelected","selectedChange","activeDate","selected","dateFilter","maxDate","minDate","dateClass"],[3,"activeDateChange","yearSelected","selectedChange","activeDate","selected","dateFilter","maxDate","minDate","dateClass"]],template:function(i,r){if(i&1&&(le(0,aV,0,0,"ng-template",0),N(1,"div",1),le(2,oV,1,11,"mat-month-view",2)(3,lV,1,6,"mat-year-view",3)(4,cV,1,6,"mat-multi-year-view",3),F()),i&2){let s;z("cdkPortalOutlet",r._calendarHeaderPortal),$(2),et((s=r.currentView)==="month"?2:s==="year"?3:s==="multi-year"?4:-1)}},dependencies:[Ka,Yh,BM,HM,zM],styles:['.mat-calendar{display:block;line-height:normal;font-family:var(--mat-datepicker-calendar-text-font, var(--mat-sys-body-medium-font));font-size:var(--mat-datepicker-calendar-text-size, var(--mat-sys-body-medium-size))}.mat-calendar-header{padding:8px 8px 0 8px}.mat-calendar-content{padding:0 8px 8px 8px;outline:none}.mat-calendar-controls{display:flex;align-items:center;margin:5% calc(4.7142857143% - 16px)}.mat-calendar-spacer{flex:1 1 auto}.mat-calendar-period-button{min-width:0;margin:0 8px;font-size:var(--mat-datepicker-calendar-period-button-text-size, var(--mat-sys-title-small-size));font-weight:var(--mat-datepicker-calendar-period-button-text-weight, var(--mat-sys-title-small-weight));--mdc-text-button-label-text-color:var(--mat-datepicker-calendar-period-button-text-color, var(--mat-sys-on-surface-variant))}.mat-calendar-arrow{display:inline-block;width:10px;height:5px;margin:0 0 0 5px;vertical-align:middle;fill:var(--mat-datepicker-calendar-period-button-icon-color, var(--mat-sys-on-surface-variant))}.mat-calendar-arrow.mat-calendar-invert{transform:rotate(180deg)}[dir=rtl] .mat-calendar-arrow{margin:0 5px 0 0}@media(forced-colors: active){.mat-calendar-arrow{fill:CanvasText}}.mat-datepicker-content .mat-calendar-previous-button:not(.mat-mdc-button-disabled),.mat-datepicker-content .mat-calendar-next-button:not(.mat-mdc-button-disabled){color:var(--mat-datepicker-calendar-navigation-button-icon-color, var(--mat-sys-on-surface-variant))}[dir=rtl] .mat-calendar-previous-button,[dir=rtl] .mat-calendar-next-button{transform:rotate(180deg)}.mat-calendar-table{border-spacing:0;border-collapse:collapse;width:100%}.mat-calendar-table-header th{text-align:center;padding:0 0 8px 0;color:var(--mat-datepicker-calendar-header-text-color, var(--mat-sys-on-surface-variant));font-size:var(--mat-datepicker-calendar-header-text-size, var(--mat-sys-title-small-size));font-weight:var(--mat-datepicker-calendar-header-text-weight, var(--mat-sys-title-small-weight))}.mat-calendar-table-header-divider{position:relative;height:1px}.mat-calendar-table-header-divider::after{content:"";position:absolute;top:0;left:-8px;right:-8px;height:1px;background:var(--mat-datepicker-calendar-header-divider-color, transparent)}.mat-calendar-body-cell-content::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)}.mat-calendar-body-cell:focus .mat-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return n})(),jM={transformPanel:zi("transformPanel",[Yt("void => enter-dropdown",ei("120ms cubic-bezier(0, 0, 0.2, 1)",M_([ht({opacity:0,transform:"scale(1, 0.8)"}),ht({opacity:1,transform:"scale(1, 1)"})]))),Yt("void => enter-dialog",ei("150ms cubic-bezier(0, 0, 0.2, 1)",M_([ht({opacity:0,transform:"scale(0.7)"}),ht({transform:"none",opacity:1})]))),Yt("* => void",ei("100ms linear",ht({opacity:0})))]),fadeInCalendar:zi("fadeInCalendar",[di("void",ht({opacity:0})),di("enter",ht({opacity:1})),Yt("void => *",ei("120ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)"))])},CV=new ee("mat-datepicker-scroll-strategy",{providedIn:"root",factory:()=>{let n=L(ii);return()=>n.scrollStrategies.reposition()}});function wV(n){return()=>n.scrollStrategies.reposition()}var xV={provide:CV,deps:[ii],useFactory:wV},SV=(()=>{class n{_elementRef=L(Ae);_changeDetectorRef=L(Xe);_globalModel=L(jm);_dateAdapter=L(sn);_rangeSelectionStrategy=L(qM,{optional:!0});_subscriptions=new Mt;_model;_calendar;color;datepicker;comparisonStart;comparisonEnd;startDateAccessibleName;endDateAccessibleName;_isAbove;_animationState;_animationDone=new me;_isAnimating=!1;_closeButtonText;_closeButtonFocused;_actionsPortal=null;_dialogLabelId;constructor(){L(wt).load(os);let e=L(pu);this._closeButtonText=e.closeCalendarLabel}ngOnInit(){this._animationState=this.datepicker.touchUi?"enter-dialog":"enter-dropdown"}ngAfterViewInit(){this._subscriptions.add(this.datepicker.stateChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})),this._calendar.focusActiveCell()}ngOnDestroy(){this._subscriptions.unsubscribe(),this._animationDone.complete()}_handleUserSelection(e){let i=this._model.selection,r=e.value,s=i instanceof Hn;if(s&&this._rangeSelectionStrategy){let a=this._rangeSelectionStrategy.selectionFinished(r,i,e.event);this._model.updateSelection(a,this)}else r&&(s||!this._dateAdapter.sameDate(r,i))&&this._model.add(r);(!this._model||this._model.isComplete())&&!this._actionsPortal&&this.datepicker.close()}_handleUserDragDrop(e){this._model.updateSelection(e.value,this)}_startExitAnimation(){this._animationState="void",this._changeDetectorRef.markForCheck()}_handleAnimationEvent(e){this._isAnimating=e.phaseName==="start",this._isAnimating||this._animationDone.next()}_getSelected(){return this._model.selection}_applyPendingSelection(){this._model!==this._globalModel&&this._globalModel.updateSelection(this._model.selection,this)}_assignActions(e,i){this._model=e?this._globalModel.clone():this._globalModel,this._actionsPortal=e,i&&this._changeDetectorRef.detectChanges()}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-datepicker-content"]],viewQuery:function(i,r){if(i&1&&Be(rv,5),i&2){let s;Te(s=Ee())&&(r._calendar=s.first)}},hostAttrs:[1,"mat-datepicker-content"],hostVars:5,hostBindings:function(i,r){i&1&&jC("@transformPanel.start",function(a){return r._handleAnimationEvent(a)})("@transformPanel.done",function(a){return r._handleAnimationEvent(a)}),i&2&&(Yd("@transformPanel",r._animationState),bt(r.color?"mat-"+r.color:""),ke("mat-datepicker-content-touch",r.datepicker.touchUi))},inputs:{color:"color"},exportAs:["matDatepickerContent"],decls:5,vars:27,consts:[["cdkTrapFocus","","role","dialog",1,"mat-datepicker-content-container"],[3,"yearSelected","monthSelected","viewChanged","_userSelection","_userDragDrop","id","startAt","startView","minDate","maxDate","dateFilter","headerComponent","selected","dateClass","comparisonStart","comparisonEnd","startDateAccessibleName","endDateAccessibleName"],[3,"cdkPortalOutlet"],["type","button","mat-raised-button","",1,"mat-datepicker-close-button",3,"focus","blur","click","color"]],template:function(i,r){if(i&1&&(N(0,"div",0)(1,"mat-calendar",1),J("yearSelected",function(a){return r.datepicker._selectYear(a)})("monthSelected",function(a){return r.datepicker._selectMonth(a)})("viewChanged",function(a){return r.datepicker._viewChanged(a)})("_userSelection",function(a){return r._handleUserSelection(a)})("_userDragDrop",function(a){return r._handleUserDragDrop(a)}),F(),le(2,uV,0,0,"ng-template",2),N(3,"button",3),J("focus",function(){return r._closeButtonFocused=!0})("blur",function(){return r._closeButtonFocused=!1})("click",function(){return r.datepicker.close()}),B(4),F()()),i&2){let s;ke("mat-datepicker-content-container-with-custom-header",r.datepicker.calendarHeaderComponent)("mat-datepicker-content-container-with-actions",r._actionsPortal),Me("aria-modal",!0)("aria-labelledby",(s=r._dialogLabelId)!==null&&s!==void 0?s:void 0),$(),bt(r.datepicker.panelClass),z("id",r.datepicker.id)("startAt",r.datepicker.startAt)("startView",r.datepicker.startView)("minDate",r.datepicker._getMinDate())("maxDate",r.datepicker._getMaxDate())("dateFilter",r.datepicker._getDateFilter())("headerComponent",r.datepicker.calendarHeaderComponent)("selected",r._getSelected())("dateClass",r.datepicker.dateClass)("comparisonStart",r.comparisonStart)("comparisonEnd",r.comparisonEnd)("@fadeInCalendar","enter")("startDateAccessibleName",r.startDateAccessibleName)("endDateAccessibleName",r.endDateAccessibleName),$(),z("cdkPortalOutlet",r._actionsPortal),$(),ke("cdk-visually-hidden",!r._closeButtonFocused),z("color",r.color||"primary"),$(),Ke(r._closeButtonText)}},dependencies:[LS,rv,Ka,fs],styles:[".mat-datepicker-content{display:block;border-radius:4px;background-color:var(--mat-datepicker-calendar-container-background-color, var(--mat-sys-surface-container-high));color:var(--mat-datepicker-calendar-container-text-color, var(--mat-sys-on-surface));box-shadow:var(--mat-datepicker-calendar-container-elevation-shadow, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12));border-radius:var(--mat-datepicker-calendar-container-shape, var(--mat-sys-corner-large))}.mat-datepicker-content .mat-calendar{width:296px;height:354px}.mat-datepicker-content .mat-datepicker-content-container-with-custom-header .mat-calendar{height:auto}.mat-datepicker-content .mat-datepicker-close-button{position:absolute;top:100%;left:0;margin-top:8px}.ng-animating .mat-datepicker-content .mat-datepicker-close-button{display:none}.mat-datepicker-content-container{display:flex;flex-direction:column;justify-content:space-between}.mat-datepicker-content-touch{display:block;max-height:80vh;box-shadow:var(--mat-datepicker-calendar-container-touch-elevation-shadow, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12));border-radius:var(--mat-datepicker-calendar-container-touch-shape, var(--mat-sys-corner-extra-large));position:relative;overflow:visible}.mat-datepicker-content-touch .mat-datepicker-content-container{min-height:312px;max-height:788px;min-width:250px;max-width:750px}.mat-datepicker-content-touch .mat-calendar{width:100%;height:auto}@media all and (orientation: landscape){.mat-datepicker-content-touch .mat-datepicker-content-container{width:64vh;height:80vh}}@media all and (orientation: portrait){.mat-datepicker-content-touch .mat-datepicker-content-container{width:80vw;height:100vw}.mat-datepicker-content-touch .mat-datepicker-content-container-with-actions{height:115vw}}"],encapsulation:2,data:{animation:[jM.transformPanel,jM.fadeInCalendar]},changeDetection:0})}return n})();var kV=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","matDatepickerToggleIcon",""]]})}return n})(),MV=(()=>{class n{_intl=L(pu);_changeDetectorRef=L(Xe);_stateChanges=Mt.EMPTY;datepicker;tabIndex;ariaLabel;get disabled(){return this._disabled===void 0&&this.datepicker?this.datepicker.disabled:!!this._disabled}set disabled(e){this._disabled=e}_disabled;disableRipple;_customIcon;_button;constructor(){let e=L(new $i("tabindex"),{optional:!0}),i=Number(e);this.tabIndex=i||i===0?i:null}ngOnChanges(e){e.datepicker&&this._watchStateChanges()}ngOnDestroy(){this._stateChanges.unsubscribe()}ngAfterContentInit(){this._watchStateChanges()}_open(e){this.datepicker&&!this.disabled&&(this.datepicker.open(),e.stopPropagation())}_watchStateChanges(){let e=this.datepicker?this.datepicker.stateChanges:_e(),i=this.datepicker&&this.datepicker.datepickerInput?this.datepicker.datepickerInput.stateChanges:_e(),r=this.datepicker?ti(this.datepicker.openedStream,this.datepicker.closedStream):_e();this._stateChanges.unsubscribe(),this._stateChanges=ti(this._intl.changes,e,i,r).subscribe(()=>this._changeDetectorRef.markForCheck())}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-datepicker-toggle"]],contentQueries:function(i,r,s){if(i&1&&Rt(s,kV,5),i&2){let a;Te(a=Ee())&&(r._customIcon=a.first)}},viewQuery:function(i,r){if(i&1&&Be(dV,5),i&2){let s;Te(s=Ee())&&(r._button=s.first)}},hostAttrs:[1,"mat-datepicker-toggle"],hostVars:8,hostBindings:function(i,r){i&1&&J("click",function(a){return r._open(a)}),i&2&&(Me("tabindex",null)("data-mat-calendar",r.datepicker?r.datepicker.id:null),ke("mat-datepicker-toggle-active",r.datepicker&&r.datepicker.opened)("mat-accent",r.datepicker&&r.datepicker.color==="accent")("mat-warn",r.datepicker&&r.datepicker.color==="warn"))},inputs:{datepicker:[0,"for","datepicker"],tabIndex:"tabIndex",ariaLabel:[0,"aria-label","ariaLabel"],disabled:[2,"disabled","disabled",be],disableRipple:"disableRipple"},exportAs:["matDatepickerToggle"],features:[Qe,vt],ngContentSelectors:mV,decls:4,vars:6,consts:[["button",""],["mat-icon-button","","type","button",3,"disabled","disableRipple"],["viewBox","0 0 24 24","width","24px","height","24px","fill","currentColor","focusable","false","aria-hidden","true",1,"mat-datepicker-toggle-default-icon"],["d","M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"]],template:function(i,r){i&1&&(tt(hV),N(0,"button",1,0),le(2,fV,2,0,":svg:svg",2),Fe(3),F()),i&2&&(z("disabled",r.disabled)("disableRipple",r.disableRipple),Me("aria-haspopup",r.datepicker?"dialog":null)("aria-label",r.ariaLabel||r._intl.openCalendarLabel)("tabindex",r.disabled?-1:r.tabIndex),$(2),et(r._customIcon?-1:2))},dependencies:[Xa],styles:[".mat-datepicker-toggle{pointer-events:auto;color:var(--mat-datepicker-toggle-icon-color, var(--mat-sys-on-surface-variant))}.mat-datepicker-toggle-active{color:var(--mat-datepicker-toggle-active-state-icon-color, var(--mat-sys-on-surface-variant))}@media(forced-colors: active){.mat-datepicker-toggle-default-icon{color:CanvasText}}"],encapsulation:2,changeDetection:0})}return n})();var sv=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({providers:[pu,xV],imports:[ps,Dr,Qh,ym,Ue,SV,MV,YM,Vn]})}return n})();var QM=(()=>{class n{get vertical(){return this._vertical}set vertical(e){this._vertical=Pn(e)}_vertical=!1;get inset(){return this._inset}set inset(e){this._inset=Pn(e)}_inset=!1;static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,r){i&2&&(Me("aria-orientation",r.vertical?"vertical":"horizontal"),ke("mat-divider-vertical",r.vertical)("mat-divider-horizontal",!r.vertical)("mat-divider-inset",r.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(i,r){},styles:[".mat-divider{display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color, var(--mat-sys-outline));border-top-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color, var(--mat-sys-outline));border-right-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}"],encapsulation:2,changeDetection:0})}return n})(),gu=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,Ue]})}return n})();var EV=["trigger"],IV=["panel"],AV=[[["mat-select-trigger"]],"*"],DV=["mat-select-trigger","*"];function RV(n,t){if(n&1&&(N(0,"span",4),B(1),F()),n&2){let e=Y();$(),Ke(e.placeholder)}}function LV(n,t){n&1&&Fe(0)}function OV(n,t){if(n&1&&(N(0,"span",11),B(1),F()),n&2){let e=Y(2);$(),Ke(e.triggerValue)}}function NV(n,t){if(n&1&&(N(0,"span",5),le(1,LV,1,0)(2,OV,2,1,"span",11),F()),n&2){let e=Y();$(),et(e.customTrigger?1:2)}}function FV(n,t){if(n&1){let e=We();N(0,"div",12,1),J("@transformPanel.done",function(r){te(e);let s=Y();return ie(s._panelDoneAnimatingStream.next(r.toState))})("keydown",function(r){te(e);let s=Y();return ie(s._handleKeydown(r))}),Fe(2,1),F()}if(n&2){let e=Y();Kd("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",e._getPanelTheme(),""),z("ngClass",e.panelClass)("@transformPanel","showing"),Me("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}var PV={transformPanelWrap:zi("transformPanelWrap",[Yt("* => void",Dk("@transformPanel",[Ak()],{optional:!0}))]),transformPanel:zi("transformPanel",[di("void",ht({opacity:0,transform:"scale(1, 0.8)"})),Yt("void => showing",ei("120ms cubic-bezier(0, 0, 0.2, 1)",ht({opacity:1,transform:"scale(1, 1)"}))),Yt("* => void",ei("100ms linear",ht({opacity:0})))])};var ZM=new ee("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{let n=L(ii);return()=>n.scrollStrategies.reposition()}});function UV(n){return()=>n.scrollStrategies.reposition()}var $V=new ee("MAT_SELECT_CONFIG"),VV={provide:ZM,deps:[ii],useFactory:UV},XM=new ee("MatSelectTrigger"),av=class{source;value;constructor(t,e){this.source=t,this.value=e}},aa=(()=>{class n{_viewportRuler=L(Bn);_changeDetectorRef=L(Xe);_elementRef=L(Ae);_dir=L(ui,{optional:!0});_idGenerator=L(Ft);_parentFormField=L(du,{optional:!0});ngControl=L(cr,{self:!0,optional:!0});_liveAnnouncer=L(NS);_defaultOptions=L($V,{optional:!0});options;optionGroups;customTrigger;_positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}];_scrollOptionIntoView(e){let i=this.options.toArray()[e];if(i){let r=this.panel.nativeElement,s=u_(e,this.options,this.optionGroups),a=i._getHostElement();e===0&&s===1?r.scrollTop=0:r.scrollTop=d_(a.offsetTop,a.offsetHeight,r.scrollTop,r.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new av(this,e)}_scrollStrategyFactory=L(ZM);_panelOpen=!1;_compareWith=(e,i)=>e===i;_uid=this._idGenerator.getId("mat-select-");_triggerAriaLabelledBy=null;_previousControl;_destroy=new me;_errorStateTracker;stateChanges=new me;disableAutomaticLabeling=!0;userAriaDescribedBy;_selectionModel;_keyManager;_preferredOverlayOrigin;_overlayWidth;_onChange=()=>{};_onTouched=()=>{};_valueId=this._idGenerator.getId("mat-select-value-");_panelDoneAnimatingStream=new me;_scrollStrategy;_overlayPanelClass=this._defaultOptions?.overlayPanelClass||"";get focused(){return this._focused||this._panelOpen}_focused=!1;controlType="mat-select";trigger;panel;_overlayDir;panelClass;disabled=!1;disableRipple=!1;tabIndex=0;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._syncParentProperties()}_hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1;get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}_placeholder;get required(){return this._required??this.ngControl?.control?.hasValidator(Cn.required)??!1}set required(e){this._required=e,this.stateChanges.next()}_required;get multiple(){return this._multiple}set multiple(e){this._selectionModel,this._multiple=e}_multiple=!1;disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1;get compareWith(){return this._compareWith}set compareWith(e){this._compareWith=e,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(e){this._assignValue(e)&&this._onChange(e)}_value;ariaLabel="";ariaLabelledby;get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}typeaheadDebounceInterval;sortComparator;get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}_id;get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto";_initialized=new me;optionSelectionChanges=Ns(()=>{let e=this.options;return e?e.changes.pipe(Gt(e),Dt(()=>ti(...e.map(i=>i.onSelectionChange)))):this._initialized.pipe(Dt(()=>this.optionSelectionChanges))});openedChange=new oe;_openedStream=this.openedChange.pipe(st(e=>e),Le(()=>{}));_closedStream=this.openedChange.pipe(st(e=>!e),Le(()=>{}));selectionChange=new oe;valueChange=new oe;constructor(){let e=L($c),i=L(au,{optional:!0}),r=L(ou,{optional:!0}),s=L(new $i("tabindex"),{optional:!0});this.ngControl&&(this.ngControl.valueAccessor=this),this._defaultOptions?.typeaheadDebounceInterval!=null&&(this.typeaheadDebounceInterval=this._defaultOptions.typeaheadDebounceInterval),this._errorStateTracker=new ja(e,this.ngControl,r,i,this.stateChanges),this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=s==null?0:parseInt(s)||0,this.id=this.id}ngOnInit(){this._selectionModel=new wm(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(An(),qe(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen)),this._viewportRuler.change().pipe(qe(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}ngAfterContentInit(){this._initialized.next(),this._initialized.complete(),this._initKeyManager(),this._selectionModel.changed.pipe(qe(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(Gt(null),qe(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){let e=this._getTriggerAriaLabelledby(),i=this.ngControl;if(e!==this._triggerAriaLabelledBy){let r=this._elementRef.nativeElement;this._triggerAriaLabelledBy=e,e?r.setAttribute("aria-labelledby",e):r.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(this._previousControl!==void 0&&i.disabled!==null&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(e){(e.disabled||e.userAriaDescribedBy)&&this.stateChanges.next(),e.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this.typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._applyModalPanelOwnership(),this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_trackedModal=null;_applyModalPanelOwnership(){let e=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!e)return;let i=`${this.id}-panel`;this._trackedModal&&qh(this._trackedModal,"aria-owns",i),t_(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){if(!this._trackedModal)return;let e=`${this.id}-panel`;qh(this._trackedModal,"aria-owns",e),this._trackedModal=null}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched(),this.stateChanges.next())}writeValue(e){this._assignValue(e)}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){let e=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&e.reverse(),e.join(", ")}return this._selectionModel.selected[0].viewValue}updateErrorState(){this._errorStateTracker.updateErrorState()}_isRtl(){return this._dir?this._dir.value==="rtl":!1}_handleKeydown(e){this.disabled||(this.panelOpen?this._handleOpenKeydown(e):this._handleClosedKeydown(e))}_handleClosedKeydown(e){let i=e.keyCode,r=i===40||i===38||i===37||i===39,s=i===13||i===32,a=this._keyManager;if(!a.isTyping()&&s&&!Vi(e)||(this.multiple||e.altKey)&&r)e.preventDefault(),this.open();else if(!this.multiple){let o=this.selected;a.onKeydown(e);let l=this.selected;l&&o!==l&&this._liveAnnouncer.announce(l.viewValue,1e4)}}_handleOpenKeydown(e){let i=this._keyManager,r=e.keyCode,s=r===40||r===38,a=i.isTyping();if(s&&e.altKey)e.preventDefault(),this.close();else if(!a&&(r===13||r===32)&&i.activeItem&&!Vi(e))e.preventDefault(),i.activeItem._selectViaInteraction();else if(!a&&this._multiple&&r===65&&e.ctrlKey){e.preventDefault();let o=this.options.some(l=>!l.disabled&&!l.selected);this.options.forEach(l=>{l.disabled||(o?l.select():l.deselect())})}else{let o=i.activeItemIndex;i.onKeydown(e),this._multiple&&s&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==o&&i.activeItem._selectViaInteraction()}}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(jt(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(e){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&e)Array.isArray(e),e.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{let i=this._selectOptionByValue(e);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(e){let i=this.options.find(r=>{if(this._selectionModel.isSelected(r))return!1;try{return r.value!=null&&this._compareWith(r.value,e)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(e){return e!==this._value||this._multiple&&Array.isArray(e)?(this.options&&this._setSelectionByValue(e),this._value=e,!0):!1}_skipPredicate=e=>this.panelOpen?!1:e.disabled;_getOverlayWidth(e){return this.panelWidth==="auto"?(e instanceof Xc?e.elementRef:e||this._elementRef).nativeElement.getBoundingClientRect().width:this.panelWidth===null?"":this.panelWidth}_syncParentProperties(){if(this.options)for(let e of this.options)e._changeDetectorRef.markForCheck()}_initKeyManager(){this._keyManager=new Wh(this.options).withTypeAhead(this.typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){let e=ti(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(qe(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),ti(...this.options.map(i=>i._stateChanges)).pipe(qe(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){let r=this._selectionModel.isSelected(e);e.value==null&&!this._multiple?(e.deselect(),this._selectionModel.clear(),this.value!=null&&this._propagateChanges(e.value)):(r!==e.selected&&(e.selected?this._selectionModel.select(e):this._selectionModel.deselect(e)),i&&this._keyManager.setActiveItem(e),this.multiple&&(this._sortValues(),i&&this.focus())),r!==this._selectionModel.isSelected(e)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){let e=this.options.toArray();this._selectionModel.sort((i,r)=>this.sortComparator?this.sortComparator(i,r,e):e.indexOf(i)-e.indexOf(r)),this.stateChanges.next()}}_propagateChanges(e){let i;this.multiple?i=this.selected.map(r=>r.value):i=this.selected?this.selected.value:e,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let e=-1;for(let i=0;i0}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;let e=this._parentFormField?.getLabelId()||null,i=e?e+" ":"";return this.ariaLabelledby?i+this.ariaLabelledby:e}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;let e=this._parentFormField?.getLabelId(),i=(e?e+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(e){this.openedChange.emit(e)}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-select"]],contentQueries:function(i,r,s){if(i&1&&(Rt(s,XM,5),Rt(s,ar,5),Rt(s,nm,5)),i&2){let a;Te(a=Ee())&&(r.customTrigger=a.first),Te(a=Ee())&&(r.options=a),Te(a=Ee())&&(r.optionGroups=a)}},viewQuery:function(i,r){if(i&1&&(Be(EV,5),Be(IV,5),Be(N_,5)),i&2){let s;Te(s=Ee())&&(r.trigger=s.first),Te(s=Ee())&&(r.panel=s.first),Te(s=Ee())&&(r._overlayDir=s.first)}},hostAttrs:["role","combobox","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,r){i&1&&J("keydown",function(a){return r._handleKeydown(a)})("focus",function(){return r._onFocus()})("blur",function(){return r._onBlur()}),i&2&&(Me("id",r.id)("tabindex",r.disabled?-1:r.tabIndex)("aria-controls",r.panelOpen?r.id+"-panel":null)("aria-expanded",r.panelOpen)("aria-label",r.ariaLabel||null)("aria-required",r.required.toString())("aria-disabled",r.disabled.toString())("aria-invalid",r.errorState)("aria-activedescendant",r._getAriaActiveDescendant()),ke("mat-mdc-select-disabled",r.disabled)("mat-mdc-select-invalid",r.errorState)("mat-mdc-select-required",r.required)("mat-mdc-select-empty",r.empty)("mat-mdc-select-multiple",r.multiple))},inputs:{userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[2,"disabled","disabled",be],disableRipple:[2,"disableRipple","disableRipple",be],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:zt(e)],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",be],placeholder:"placeholder",required:[2,"required","required",be],multiple:[2,"multiple","multiple",be],disableOptionCentering:[2,"disableOptionCentering","disableOptionCentering",be],compareWith:"compareWith",value:"value",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[2,"typeaheadDebounceInterval","typeaheadDebounceInterval",zt],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],features:[at([{provide:uu,useExisting:n},{provide:im,useExisting:n}]),Qe,vt],ngContentSelectors:DV,decls:11,vars:8,consts:[["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],["panel",""],["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],[1,"mat-mdc-select-value"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false","aria-hidden","true"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"backdropClick","attach","detach","cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"keydown","ngClass"]],template:function(i,r){if(i&1){let s=We();tt(AV),N(0,"div",2,0),J("click",function(){return te(s),ie(r.open())}),N(3,"div",3),le(4,RV,2,1,"span",4)(5,NV,3,1,"span",5),F(),N(6,"div",6)(7,"div",7),Qt(),N(8,"svg",8),ne(9,"path",9),F()()()(),le(10,FV,3,9,"ng-template",10),J("backdropClick",function(){return te(s),ie(r.close())})("attach",function(){return te(s),ie(r._onAttached())})("detach",function(){return te(s),ie(r.close())})}if(i&2){let s=Zt(1);$(3),Me("id",r._valueId),$(),et(r.empty?4:5),$(6),z("cdkConnectedOverlayPanelClass",r._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",r._scrollStrategy)("cdkConnectedOverlayOrigin",r._preferredOverlayOrigin||s)("cdkConnectedOverlayOpen",r.panelOpen)("cdkConnectedOverlayPositions",r._positions)("cdkConnectedOverlayWidth",r._overlayWidth)}},dependencies:[Xc,N_,On],styles:['.mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color, var(--mat-sys-on-surface));font-family:var(--mat-select-trigger-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-select-trigger-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-select-trigger-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-select-trigger-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-select-trigger-text-tracking, var(--mat-sys-body-large-tracking))}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color, var(--mat-sys-error))}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}@media(forced-colors: active){.mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .mat-mdc-select-arrow svg{fill:GrayText}}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color, var(--mat-sys-surface-container))}@media(forced-colors: active){div.mat-mdc-select-panel{outline:solid 1px}}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}div.mat-mdc-select-panel .mat-mdc-option{--mdc-list-list-item-container-color: var(--mat-select-panel-background-color)}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color, var(--mat-sys-on-surface-variant))}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform, translateY(-8px))}'],encapsulation:2,data:{animation:[PV.transformPanel]},changeDetection:0})}return n})(),JM=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-select-trigger"]],features:[at([{provide:XM,useExisting:n}])]})}return n})(),_u=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({providers:[VV],imports:[Dr,rl,Ue,Vn,ra,rl,Ue]})}return n})();var BV=["tooltip"],nT=20;var rT=new ee("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{let n=L(ii);return()=>n.scrollStrategies.reposition({scrollThrottle:nT})}});function zV(n){return()=>n.scrollStrategies.reposition({scrollThrottle:nT})}var HV={provide:rT,deps:[ii],useFactory:zV};function jV(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}var WV=new ee("mat-tooltip-default-options",{providedIn:"root",factory:jV});var tT="tooltip-panel",iT=Ai({passive:!0}),qV=8,GV=8,KV=24,YV=200,Wm=(()=>{class n{_overlay=L(ii);_elementRef=L(Ae);_scrollDispatcher=L(hl);_viewContainerRef=L(bi);_ngZone=L(Ne);_platform=L(ct);_ariaDescriber=L(DS);_focusMonitor=L(Un);_dir=L(ui);_injector=L(gt);_defaultOptions=L(WV,{optional:!0});_overlayRef;_tooltipInstance;_portal;_position="below";_positionAtOrigin=!1;_disabled=!1;_tooltipClass;_scrollStrategy=L(rT);_viewInitialized=!1;_pointerExitEventsInitialized=!1;_tooltipComponent=QV;_viewportMargin=8;_currentPosition;_cssClassPrefix="mat-mdc";_ariaDescriptionPending;get position(){return this._position}set position(e){e!==this._position&&(this._position=e,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(e){this._positionAtOrigin=Pn(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){let i=Pn(e);this._disabled!==i&&(this._disabled=i,i?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=ls(e)}_showDelay;get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=ls(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}_hideDelay;touchGestures="auto";get message(){return this._message}set message(e){let i=this._message;this._message=e!=null?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(i)}_message="";get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}_passiveListeners=[];_document=L(it);_touchstartTimeout=null;_destroyed=new me;constructor(){let e=this._defaultOptions;e&&(this._showDelay=e.showDelay,this._hideDelay=e.hideDelay,e.position&&(this.position=e.position),e.positionAtOrigin&&(this.positionAtOrigin=e.positionAtOrigin),e.touchGestures&&(this.touchGestures=e.touchGestures),e.tooltipClass&&(this.tooltipClass=e.tooltipClass)),this._dir.change.pipe(qe(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)}),this._viewportMargin=qV}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(qe(this._destroyed)).subscribe(e=>{e?e==="keyboard"&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){let e=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,r])=>{e.removeEventListener(i,r,iT)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(e,this.message,"tooltip"),this._focusMonitor.stopMonitoring(e)}show(e=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible()){this._tooltipInstance?._cancelPendingAnimations();return}let r=this._createOverlay(i);this._detach(),this._portal=this._portal||new Ga(this._tooltipComponent,this._viewContainerRef);let s=this._tooltipInstance=r.attach(this._portal).instance;s._triggerElement=this._elementRef.nativeElement,s._mouseLeaveHideDelay=this._hideDelay,s.afterHidden().pipe(qe(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),s.show(e)}hide(e=this.hideDelay){let i=this._tooltipInstance;i&&(i.isVisible()?i.hide(e):(i._cancelPendingAnimations(),this._detach()))}toggle(e){this._isTooltipVisible()?this.hide():this.show(void 0,e)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(e){if(this._overlayRef){let s=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&s._origin instanceof Ae)return this._overlayRef;this._detach()}let i=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),r=this._overlay.position().flexibleConnectedTo(this.positionAtOrigin?e||this._elementRef:this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return r.positionChanges.pipe(qe(this._destroyed)).subscribe(s=>{this._updateCurrentPositionClass(s.connectionPair),this._tooltipInstance&&s.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:r,panelClass:`${this._cssClassPrefix}-${tT}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(qe(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(qe(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(qe(this._destroyed)).subscribe(s=>{this._isTooltipVisible()&&s.keyCode===27&&!Vi(s)&&(s.preventDefault(),s.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(e){let i=e.getConfig().positionStrategy,r=this._getOrigin(),s=this._getOverlayPosition();i.withPositions([this._addOffset(j(j({},r.main),s.main)),this._addOffset(j(j({},r.fallback),s.fallback))])}_addOffset(e){let i=GV,r=!this._dir||this._dir.value=="ltr";return e.originY==="top"?e.offsetY=-i:e.originY==="bottom"?e.offsetY=i:e.originX==="start"?e.offsetX=r?-i:i:e.originX==="end"&&(e.offsetX=r?i:-i),e}_getOrigin(){let e=!this._dir||this._dir.value=="ltr",i=this.position,r;i=="above"||i=="below"?r={originX:"center",originY:i=="above"?"top":"bottom"}:i=="before"||i=="left"&&e||i=="right"&&!e?r={originX:"start",originY:"center"}:(i=="after"||i=="right"&&e||i=="left"&&!e)&&(r={originX:"end",originY:"center"});let{x:s,y:a}=this._invertPosition(r.originX,r.originY);return{main:r,fallback:{originX:s,originY:a}}}_getOverlayPosition(){let e=!this._dir||this._dir.value=="ltr",i=this.position,r;i=="above"?r={overlayX:"center",overlayY:"bottom"}:i=="below"?r={overlayX:"center",overlayY:"top"}:i=="before"||i=="left"&&e||i=="right"&&!e?r={overlayX:"end",overlayY:"center"}:(i=="after"||i=="right"&&e||i=="left"&&!e)&&(r={overlayX:"start",overlayY:"center"});let{x:s,y:a}=this._invertPosition(r.overlayX,r.overlayY);return{main:r,fallback:{overlayX:s,overlayY:a}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),vi(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e,this._tooltipInstance._markForCheck())}_invertPosition(e,i){return this.position==="above"||this.position==="below"?i==="top"?i="bottom":i==="bottom"&&(i="top"):e==="end"?e="start":e==="start"&&(e="end"),{x:e,y:i}}_updateCurrentPositionClass(e){let{overlayY:i,originX:r,originY:s}=e,a;if(i==="center"?this._dir&&this._dir.value==="rtl"?a=r==="end"?"left":"right":a=r==="start"?"left":"right":a=i==="bottom"&&s==="top"?"above":"below",a!==this._currentPosition){let o=this._overlayRef;if(o){let l=`${this._cssClassPrefix}-${tT}-`;o.removePanelClass(l+this._currentPosition),o.addPanelClass(l+a)}this._currentPosition=a}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",e=>{this._setupPointerExitEventsIfNeeded();let i;e.x!==void 0&&e.y!==void 0&&(i=e),this.show(void 0,i)}]):this.touchGestures!=="off"&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",e=>{let i=e.targetTouches?.[0],r=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout);let s=500;this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,r)},this._defaultOptions?.touchLongPressShowDelay??s)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;let e=[];if(this._platformSupportsMouseEvents())e.push(["mouseleave",i=>{let r=i.relatedTarget;(!r||!this._overlayRef?.overlayElement.contains(r))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if(this.touchGestures!=="off"){this._disableNativeGesturesIfNecessary();let i=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions?.touchendHideDelay)};e.push(["touchend",i],["touchcancel",i])}this._addListeners(e),this._passiveListeners.push(...e)}_addListeners(e){e.forEach(([i,r])=>{this._elementRef.nativeElement.addEventListener(i,r,iT)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(e){if(this._isTooltipVisible()){let i=this._document.elementFromPoint(e.clientX,e.clientY),r=this._elementRef.nativeElement;i!==r&&!r.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){let e=this.touchGestures;if(e!=="off"){let i=this._elementRef.nativeElement,r=i.style;(e==="on"||i.nodeName!=="INPUT"&&i.nodeName!=="TEXTAREA")&&(r.userSelect=r.msUserSelect=r.webkitUserSelect=r.MozUserSelect="none"),(e==="on"||!i.draggable)&&(r.webkitUserDrag="none"),r.touchAction="none",r.webkitTapHighlightColor="transparent"}}_syncAriaDescription(e){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,e,"tooltip"),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,r){i&2&&ke("mat-mdc-tooltip-disabled",r.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]})}return n})(),QV=(()=>{class n{_changeDetectorRef=L(Xe);_elementRef=L(Ae);_isMultiline=!1;message;tooltipClass;_showTimeoutId;_hideTimeoutId;_triggerElement;_mouseLeaveHideDelay;_animationsDisabled;_tooltip;_closeOnInteraction=!1;_isVisible=!1;_onHide=new me;_showAnimation="mat-mdc-tooltip-show";_hideAnimation="mat-mdc-tooltip-hide";constructor(){let e=L(Ot,{optional:!0});this._animationsDisabled=e==="NoopAnimations"}show(e){this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},e)}hide(e){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},e)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:e}){(!e||!this._triggerElement.contains(e))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){let e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>KV&&e.width>=YV}_handleAnimationEnd({animationName:e}){(e===this._showAnimation||e===this._hideAnimation)&&this._finalizeAnimation(e===this._showAnimation)}_cancelPendingAnimations(){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(e){e?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(e){let i=this._tooltip.nativeElement,r=this._showAnimation,s=this._hideAnimation;if(i.classList.remove(e?s:r),i.classList.add(e?r:s),this._isVisible!==e&&(this._isVisible=e,this._changeDetectorRef.markForCheck()),e&&!this._animationsDisabled&&typeof getComputedStyle=="function"){let a=getComputedStyle(i);(a.getPropertyValue("animation-duration")==="0s"||a.getPropertyValue("animation-name")==="none")&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-tooltip-component"]],viewQuery:function(i,r){if(i&1&&Be(BV,7),i&2){let s;Te(s=Ee())&&(r._tooltip=s.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(i,r){i&1&&J("mouseleave",function(a){return r._handleMouseLeave(a)})},decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(i,r){if(i&1){let s=We();N(0,"div",1,0),J("animationend",function(o){return te(s),ie(r._handleAnimationEnd(o))}),N(2,"div",2),B(3),F()()}i&2&&(ke("mdc-tooltip--multiline",r._isMultiline),z("ngClass",r.tooltipClass),$(3),Ke(r.message))},dependencies:[On],styles:['.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mdc-plain-tooltip-container-color, var(--mat-sys-inverse-surface));color:var(--mdc-plain-tooltip-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-plain-tooltip-container-shape, var(--mat-sys-corner-extra-small));font-family:var(--mdc-plain-tooltip-supporting-text-font, var(--mat-sys-body-small-font));font-size:var(--mdc-plain-tooltip-supporting-text-size, var(--mat-sys-body-small-size));font-weight:var(--mdc-plain-tooltip-supporting-text-weight, var(--mat-sys-body-small-weight));line-height:var(--mdc-plain-tooltip-supporting-text-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, var(--mat-sys-body-small-tracking))}.mat-mdc-tooltip-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}return n})();var qm=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({providers:[HV],imports:[Qh,Dr,Ue,Ue,Vn]})}return n})();function XV(n,t){if(n&1&&(N(0,"mat-option",17),B(1),F()),n&2){let e=t.$implicit;z("value",e),$(),Ye(" ",e," ")}}function JV(n,t){if(n&1){let e=We();N(0,"mat-form-field",14)(1,"mat-select",16,0),J("selectionChange",function(r){te(e);let s=Y(2);return ie(s._changePageSize(r.value))}),xr(3,XV,2,2,"mat-option",17,sc),F(),N(5,"div",18),J("click",function(){te(e);let r=Zt(2);return ie(r.open())}),F()()}if(n&2){let e=Y(2);z("appearance",e._formFieldAppearance)("color",e.color),$(),z("value",e.pageSize)("disabled",e.disabled)("aria-labelledby",e._pageSizeLabelId)("panelClass",e.selectConfig.panelClass||"")("disableOptionCentering",e.selectConfig.disableOptionCentering),$(2),Sr(e._displayedPageSizeOptions)}}function e4(n,t){if(n&1&&(N(0,"div",15),B(1),F()),n&2){let e=Y(2);$(),Ke(e.pageSize)}}function t4(n,t){if(n&1&&(N(0,"div",3)(1,"div",13),B(2),F(),le(3,JV,6,7,"mat-form-field",14)(4,e4,2,1,"div",15),F()),n&2){let e=Y();$(),Me("id",e._pageSizeLabelId),$(),Ye(" ",e._intl.itemsPerPageLabel," "),$(),et(e._displayedPageSizeOptions.length>1?3:-1),$(),et(e._displayedPageSizeOptions.length<=1?4:-1)}}function i4(n,t){if(n&1){let e=We();N(0,"button",19),J("click",function(){te(e);let r=Y();return ie(r.firstPage())}),Qt(),N(1,"svg",8),ne(2,"path",20),F()()}if(n&2){let e=Y();z("matTooltip",e._intl.firstPageLabel)("matTooltipDisabled",e._previousButtonsDisabled())("matTooltipPosition","above")("disabled",e._previousButtonsDisabled()),Me("aria-label",e._intl.firstPageLabel)}}function n4(n,t){if(n&1){let e=We();N(0,"button",21),J("click",function(){te(e);let r=Y();return ie(r.lastPage())}),Qt(),N(1,"svg",8),ne(2,"path",22),F()()}if(n&2){let e=Y();z("matTooltip",e._intl.lastPageLabel)("matTooltipDisabled",e._nextButtonsDisabled())("matTooltipPosition","above")("disabled",e._nextButtonsDisabled()),Me("aria-label",e._intl.lastPageLabel)}}var Gm=(()=>{class n{changes=new me;itemsPerPageLabel="Items per page:";nextPageLabel="Next page";previousPageLabel="Previous page";firstPageLabel="First page";lastPageLabel="Last page";getRangeLabel=(e,i,r)=>{if(r==0||i==0)return`0 of ${r}`;r=Math.max(r,0);let s=e*i,a=s{class n{_intl;_changeDetectorRef;_formFieldAppearance;_pageSizeLabelId=L(Ft).getId("mat-paginator-page-size-label-");_intlChanges;_isInitialized=!1;_initializedStream=new $d(1);color;get pageIndex(){return this._pageIndex}set pageIndex(e){this._pageIndex=Math.max(e||0,0),this._changeDetectorRef.markForCheck()}_pageIndex=0;get length(){return this._length}set length(e){this._length=e||0,this._changeDetectorRef.markForCheck()}_length=0;get pageSize(){return this._pageSize}set pageSize(e){this._pageSize=Math.max(e||0,0),this._updateDisplayedPageSizeOptions()}_pageSize;get pageSizeOptions(){return this._pageSizeOptions}set pageSizeOptions(e){this._pageSizeOptions=(e||[]).map(i=>zt(i,0)),this._updateDisplayedPageSizeOptions()}_pageSizeOptions=[];hidePageSize=!1;showFirstLastButtons=!1;selectConfig={};disabled=!1;page=new oe;_displayedPageSizeOptions;initialized=this._initializedStream;constructor(e,i,r){if(this._intl=e,this._changeDetectorRef=i,this._intlChanges=e.changes.subscribe(()=>this._changeDetectorRef.markForCheck()),r){let{pageSize:s,pageSizeOptions:a,hidePageSize:o,showFirstLastButtons:l}=r;s!=null&&(this._pageSize=s),a!=null&&(this._pageSizeOptions=a),o!=null&&(this.hidePageSize=o),l!=null&&(this.showFirstLastButtons=l)}this._formFieldAppearance=r?.formFieldAppearance||"outline"}ngOnInit(){this._isInitialized=!0,this._updateDisplayedPageSizeOptions(),this._initializedStream.next()}ngOnDestroy(){this._initializedStream.complete(),this._intlChanges.unsubscribe()}nextPage(){if(!this.hasNextPage())return;let e=this.pageIndex;this.pageIndex=this.pageIndex+1,this._emitPageEvent(e)}previousPage(){if(!this.hasPreviousPage())return;let e=this.pageIndex;this.pageIndex=this.pageIndex-1,this._emitPageEvent(e)}firstPage(){if(!this.hasPreviousPage())return;let e=this.pageIndex;this.pageIndex=0,this._emitPageEvent(e)}lastPage(){if(!this.hasNextPage())return;let e=this.pageIndex;this.pageIndex=this.getNumberOfPages()-1,this._emitPageEvent(e)}hasPreviousPage(){return this.pageIndex>=1&&this.pageSize!=0}hasNextPage(){let e=this.getNumberOfPages()-1;return this.pageIndexe-i),this._changeDetectorRef.markForCheck())}_emitPageEvent(e){this.page.emit({previousPageIndex:e,pageIndex:this.pageIndex,pageSize:this.pageSize,length:this.length})}static \u0275fac=function(i){return new(i||n)(Se(Gm),Se(Xe),Se(o4,8))};static \u0275cmp=he({type:n,selectors:[["mat-paginator"]],hostAttrs:["role","group",1,"mat-mdc-paginator"],inputs:{color:"color",pageIndex:[2,"pageIndex","pageIndex",zt],length:[2,"length","length",zt],pageSize:[2,"pageSize","pageSize",zt],pageSizeOptions:"pageSizeOptions",hidePageSize:[2,"hidePageSize","hidePageSize",be],showFirstLastButtons:[2,"showFirstLastButtons","showFirstLastButtons",be],selectConfig:"selectConfig",disabled:[2,"disabled","disabled",be]},outputs:{page:"page"},exportAs:["matPaginator"],features:[Qe],decls:14,vars:14,consts:[["selectRef",""],[1,"mat-mdc-paginator-outer-container"],[1,"mat-mdc-paginator-container"],[1,"mat-mdc-paginator-page-size"],[1,"mat-mdc-paginator-range-actions"],["aria-live","polite",1,"mat-mdc-paginator-range-label"],["mat-icon-button","","type","button","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled"],["mat-icon-button","","type","button","disabledInteractive","",1,"mat-mdc-paginator-navigation-previous",3,"click","matTooltip","matTooltipDisabled","matTooltipPosition","disabled"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true",1,"mat-mdc-paginator-icon"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button","disabledInteractive","",1,"mat-mdc-paginator-navigation-next",3,"click","matTooltip","matTooltipDisabled","matTooltipPosition","disabled"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],["mat-icon-button","","type","button","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","matTooltipPosition","disabled"],[1,"mat-mdc-paginator-page-size-label"],[1,"mat-mdc-paginator-page-size-select",3,"appearance","color"],[1,"mat-mdc-paginator-page-size-value"],["hideSingleSelectionIndicator","",3,"selectionChange","value","disabled","aria-labelledby","panelClass","disableOptionCentering"],[3,"value"],[1,"mat-mdc-paginator-touch-target",3,"click"],["mat-icon-button","","type","button","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"click","matTooltip","matTooltipDisabled","matTooltipPosition","disabled"],["d","M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"],["mat-icon-button","","type","button","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"click","matTooltip","matTooltipDisabled","matTooltipPosition","disabled"],["d","M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"]],template:function(i,r){i&1&&(N(0,"div",1)(1,"div",2),le(2,t4,5,4,"div",3),N(3,"div",4)(4,"div",5),B(5),F(),le(6,i4,3,5,"button",6),N(7,"button",7),J("click",function(){return r.previousPage()}),Qt(),N(8,"svg",8),ne(9,"path",9),F()(),Xr(),N(10,"button",10),J("click",function(){return r.nextPage()}),Qt(),N(11,"svg",8),ne(12,"path",11),F()(),le(13,n4,3,5,"button",12),F()()()),i&2&&($(2),et(r.hidePageSize?-1:2),$(3),Ye(" ",r._intl.getRangeLabel(r.pageIndex,r.pageSize,r.length)," "),$(),et(r.showFirstLastButtons?6:-1),$(),z("matTooltip",r._intl.previousPageLabel)("matTooltipDisabled",r._previousButtonsDisabled())("matTooltipPosition","above")("disabled",r._previousButtonsDisabled()),Me("aria-label",r._intl.previousPageLabel),$(3),z("matTooltip",r._intl.nextPageLabel)("matTooltipDisabled",r._nextButtonsDisabled())("matTooltipPosition","above")("disabled",r._nextButtonsDisabled()),Me("aria-label",r._intl.nextPageLabel),$(3),et(r.showFirstLastButtons?13:-1))},dependencies:[zn,aa,ar,Xa,Wm],styles:[".mat-mdc-paginator{display:block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-paginator-container-text-color, var(--mat-sys-on-surface));background-color:var(--mat-paginator-container-background-color, var(--mat-sys-surface));font-family:var(--mat-paginator-container-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-paginator-container-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-paginator-container-text-size, var(--mat-sys-body-small-size));font-weight:var(--mat-paginator-container-text-weight, var(--mat-sys-body-small-weight));letter-spacing:var(--mat-paginator-container-text-tracking, var(--mat-sys-body-small-tracking));--mat-form-field-container-height:var(--mat-paginator-form-field-container-height, 40px);--mat-form-field-container-vertical-padding:var(--mat-paginator-form-field-container-vertical-padding, 8px)}.mat-mdc-paginator .mat-mdc-select-value{font-size:var(--mat-paginator-select-trigger-text-size, var(--mat-sys-body-small-size))}.mat-mdc-paginator .mat-mdc-form-field-subscript-wrapper{display:none}.mat-mdc-paginator .mat-mdc-select{line-height:1.5}.mat-mdc-paginator-outer-container{display:flex}.mat-mdc-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap;width:100%;min-height:var(--mat-paginator-container-size, 56px)}.mat-mdc-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-mdc-paginator-page-size{margin-right:0;margin-left:8px}.mat-mdc-paginator-page-size-label{margin:0 4px}.mat-mdc-paginator-page-size-select{margin:0 4px;width:84px}.mat-mdc-paginator-range-label{margin:0 32px 0 24px}.mat-mdc-paginator-range-actions{display:flex;align-items:center}.mat-mdc-paginator-icon{display:inline-block;width:28px;fill:var(--mat-paginator-enabled-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button[aria-disabled] .mat-mdc-paginator-icon{fill:var(--mat-paginator-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}[dir=rtl] .mat-mdc-paginator-icon{transform:rotate(180deg)}@media(forced-colors: active){.mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon,.mat-mdc-paginator-icon{fill:currentColor;fill:CanvasText}.mat-mdc-paginator-range-actions .mat-mdc-icon-button{outline:solid 1px}}.mat-mdc-paginator-touch-target{display:var(--mat-paginator-touch-target-display, block);position:absolute;top:50%;left:50%;width:84px;height:48px;background-color:rgba(0,0,0,0);transform:translate(-50%, -50%);cursor:pointer}"],encapsulation:2,changeDetection:0})}return n})(),ov=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({providers:[s4],imports:[ps,_u,qm,l4]})}return n})();var c4=["input"],u4=["formField"],d4=["*"],lv=class{source;value;constructor(t,e){this.source=t,this.value=e}};var h4=new ee("MatRadioGroup"),m4=new ee("mat-radio-default-options",{providedIn:"root",factory:f4});function f4(){return{color:"accent",disabledInteractive:!1}}var p4=(()=>{class n{_elementRef=L(Ae);_changeDetector=L(Xe);_focusMonitor=L(Un);_radioDispatcher=L(Rk);_defaultOptions=L(m4,{optional:!0});_ngZone=L(Ne);_uniqueId=L(Ft).getId("mat-radio-");id=this._uniqueId;name;ariaLabel;ariaLabelledby;ariaDescribedby;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(e){this._checked!==e&&(this._checked=e,e&&this.radioGroup&&this.radioGroup.value!==this.value?this.radioGroup.selected=this:!e&&this.radioGroup&&this.radioGroup.value===this.value&&(this.radioGroup.selected=null),e&&this._radioDispatcher.notify(this.id,this.name),this._changeDetector.markForCheck())}get value(){return this._value}set value(e){this._value!==e&&(this._value=e,this.radioGroup!==null&&(this.checked||(this.checked=this.radioGroup.value===e),this.checked&&(this.radioGroup.selected=this)))}get labelPosition(){return this._labelPosition||this.radioGroup&&this.radioGroup.labelPosition||"after"}set labelPosition(e){this._labelPosition=e}_labelPosition;get disabled(){return this._disabled||this.radioGroup!==null&&this.radioGroup.disabled}set disabled(e){this._setDisabled(e)}get required(){return this._required||this.radioGroup&&this.radioGroup.required}set required(e){this._required=e}get color(){return this._color||this.radioGroup&&this.radioGroup.color||this._defaultOptions&&this._defaultOptions.color||"accent"}set color(e){this._color=e}_color;get disabledInteractive(){return this._disabledInteractive||this.radioGroup!==null&&this.radioGroup.disabledInteractive}set disabledInteractive(e){this._disabledInteractive=e}_disabledInteractive;change=new oe;radioGroup;get inputId(){return`${this.id||this._uniqueId}-input`}_checked=!1;_disabled;_required;_value=null;_removeUniqueSelectionListener=()=>{};_previousTabIndex;_inputElement;_rippleTrigger;_noopAnimations;_injector=L(gt);constructor(){L(wt).load(Di);let e=L(h4,{optional:!0}),i=L(Ot,{optional:!0}),r=L(new $i("tabindex"),{optional:!0});this.radioGroup=e,this._noopAnimations=i==="NoopAnimations",this._disabledInteractive=this._defaultOptions?.disabledInteractive??!1,r&&(this.tabIndex=zt(r,0))}focus(e,i){i?this._focusMonitor.focusVia(this._inputElement,i,e):this._inputElement.nativeElement.focus(e)}_markForCheck(){this._changeDetector.markForCheck()}ngOnInit(){this.radioGroup&&(this.checked=this.radioGroup.value===this._value,this.checked&&(this.radioGroup.selected=this),this.name=this.radioGroup.name),this._removeUniqueSelectionListener=this._radioDispatcher.listen((e,i)=>{e!==this.id&&i===this.name&&(this.checked=!1)})}ngDoCheck(){this._updateTabIndex()}ngAfterViewInit(){this._updateTabIndex(),this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{!e&&this.radioGroup&&this.radioGroup._touch()}),this._ngZone.runOutsideAngular(()=>{this._inputElement.nativeElement.addEventListener("click",this._onInputClick)})}ngOnDestroy(){this._inputElement?.nativeElement.removeEventListener("click",this._onInputClick),this._focusMonitor.stopMonitoring(this._elementRef),this._removeUniqueSelectionListener()}_emitChangeEvent(){this.change.emit(new lv(this,this._value))}_isRippleDisabled(){return this.disableRipple||this.disabled}_onInputInteraction(e){if(e.stopPropagation(),!this.checked&&!this.disabled){let i=this.radioGroup&&this.value!==this.radioGroup.value;this.checked=!0,this._emitChangeEvent(),this.radioGroup&&(this.radioGroup._controlValueAccessorChangeFn(this.value),i&&this.radioGroup._emitChangeEvent())}}_onTouchTargetClick(e){this._onInputInteraction(e),(!this.disabled||this.disabledInteractive)&&this._inputElement?.nativeElement.focus()}_setDisabled(e){this._disabled!==e&&(this._disabled=e,this._changeDetector.markForCheck())}_onInputClick=e=>{this.disabled&&this.disabledInteractive&&e.preventDefault()};_updateTabIndex(){let e=this.radioGroup,i;if(!e||!e.selected||this.disabled?i=this.tabIndex:i=e.selected===this?this.tabIndex:-1,i!==this._previousTabIndex){let r=this._inputElement?.nativeElement;r&&(r.setAttribute("tabindex",i+""),this._previousTabIndex=i,vi(()=>{queueMicrotask(()=>{e&&e.selected&&e.selected!==this&&document.activeElement===r&&(e.selected?._inputElement.nativeElement.focus(),document.activeElement===r&&this._inputElement.nativeElement.blur())})},{injector:this._injector}))}}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-radio-button"]],viewQuery:function(i,r){if(i&1&&(Be(c4,5),Be(u4,7,Ae)),i&2){let s;Te(s=Ee())&&(r._inputElement=s.first),Te(s=Ee())&&(r._rippleTrigger=s.first)}},hostAttrs:[1,"mat-mdc-radio-button"],hostVars:19,hostBindings:function(i,r){i&1&&J("focus",function(){return r._inputElement.nativeElement.focus()}),i&2&&(Me("id",r.id)("tabindex",null)("aria-label",null)("aria-labelledby",null)("aria-describedby",null),ke("mat-primary",r.color==="primary")("mat-accent",r.color==="accent")("mat-warn",r.color==="warn")("mat-mdc-radio-checked",r.checked)("mat-mdc-radio-disabled",r.disabled)("mat-mdc-radio-disabled-interactive",r.disabledInteractive)("_mat-animation-noopable",r._noopAnimations))},inputs:{id:"id",name:"name",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],disableRipple:[2,"disableRipple","disableRipple",be],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:zt(e)],checked:[2,"checked","checked",be],value:"value",labelPosition:"labelPosition",disabled:[2,"disabled","disabled",be],required:[2,"required","required",be],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",be]},outputs:{change:"change"},exportAs:["matRadioButton"],features:[Qe],ngContentSelectors:d4,decls:13,vars:17,consts:[["formField",""],["input",""],["mat-internal-form-field","",3,"labelPosition"],[1,"mdc-radio"],[1,"mat-mdc-radio-touch-target",3,"click"],["type","radio",1,"mdc-radio__native-control",3,"change","id","checked","disabled","required"],[1,"mdc-radio__background"],[1,"mdc-radio__outer-circle"],[1,"mdc-radio__inner-circle"],["mat-ripple","",1,"mat-radio-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mat-ripple-element","mat-radio-persistent-ripple"],[1,"mdc-label",3,"for"]],template:function(i,r){if(i&1){let s=We();tt(),N(0,"div",2,0)(2,"div",3)(3,"div",4),J("click",function(o){return te(s),ie(r._onTouchTargetClick(o))}),F(),N(4,"input",5,1),J("change",function(o){return te(s),ie(r._onInputInteraction(o))}),F(),N(6,"div",6),ne(7,"div",7)(8,"div",8),F(),N(9,"div",9),ne(10,"div",10),F()(),N(11,"label",11),Fe(12),F()()}i&2&&(z("labelPosition",r.labelPosition),$(2),ke("mdc-radio--disabled",r.disabled),$(2),z("id",r.inputId)("checked",r.checked)("disabled",r.disabled&&!r.disabledInteractive)("required",r.required),Me("name",r.name)("value",r.value)("aria-label",r.ariaLabel)("aria-labelledby",r.ariaLabelledby)("aria-describedby",r.ariaDescribedby)("aria-disabled",r.disabled&&r.disabledInteractive?"true":null),$(5),z("matRippleTrigger",r._rippleTrigger.nativeElement)("matRippleDisabled",r._isRippleDisabled())("matRippleCentered",!0),$(2),z("for",r.inputId))},dependencies:[yn,sl],styles:['.mat-mdc-radio-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-radio-button .mdc-radio{display:inline-block;position:relative;flex:0 0 auto;box-sizing:content-box;width:20px;height:20px;cursor:pointer;will-change:opacity,transform,border-color,color;padding:calc((var(--mdc-radio-state-layer-size, 40px) - 20px)/2)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled]):not(:focus)~.mdc-radio__background::before{opacity:.04;transform:scale(1)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled])~.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-hover-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-hover-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio:active .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-pressed-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mdc-radio:active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-pressed-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__background{display:inline-block;position:relative;box-sizing:border-box;width:20px;height:20px}.mat-mdc-radio-button .mdc-radio__background::before{position:absolute;transform:scale(0, 0);border-radius:50%;opacity:0;pointer-events:none;content:"";transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);width:var(--mdc-radio-state-layer-size, 40px);height:var(--mdc-radio-state-layer-size, 40px);top:calc(-1*(var(--mdc-radio-state-layer-size, 40px) - 20px)/2);left:calc(-1*(var(--mdc-radio-state-layer-size, 40px) - 20px)/2)}.mat-mdc-radio-button .mdc-radio__outer-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;border-width:2px;border-style:solid;border-radius:50%;transition:border-color 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-radio-button .mdc-radio__inner-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;transform:scale(0, 0);border-width:10px;border-style:solid;border-radius:50%;transition:transform 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-radio-button .mdc-radio__native-control{position:absolute;margin:0;padding:0;opacity:0;top:0;right:0;left:0;cursor:inherit;z-index:1;width:var(--mdc-radio-state-layer-size, 40px);height:var(--mdc-radio-state-layer-size, 40px)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background{transition:opacity 90ms cubic-bezier(0, 0, 0.2, 1),transform 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{transition:transform 90ms cubic-bezier(0, 0, 0.2, 1),border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:focus+.mdc-radio__background::before{transform:scale(1);opacity:.12;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 1),transform 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-unselected-icon-opacity, 0.38)}.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background{cursor:default}.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-selected-icon-opacity, 0.38)}.mat-mdc-radio-button .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-radio-button .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__native-control:enabled:focus:checked+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:enabled:focus:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-focus-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle{transform:scale(0.5);transition:transform 90ms cubic-bezier(0, 0, 0.2, 1),border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled{pointer-events:auto}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-unselected-icon-opacity, 0.38)}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled:hover .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled:hover .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:checked:focus+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:checked:focus+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-selected-icon-opacity, 0.38)}.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__background::before,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__outer-circle,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__inner-circle{transition:none !important}.mat-mdc-radio-button .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button.mat-mdc-radio-checked .mat-ripple-element,.mat-mdc-radio-button.mat-mdc-radio-checked .mdc-radio__background::before{background-color:var(--mat-radio-checked-ripple-color, var(--mat-sys-primary))}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mat-ripple-element,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mat-internal-form-field{color:var(--mat-radio-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-radio-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-radio-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-radio-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-radio-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-radio-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-radio-button .mdc-radio--disabled+label{color:var(--mat-radio-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-radio-button .mat-radio-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:50%}.mat-mdc-radio-button .mat-radio-ripple .mat-ripple-element{opacity:.14}.mat-mdc-radio-button .mat-radio-ripple::before{border-radius:50%}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:focus:enabled:not(:checked)~.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button.cdk-focused .mat-focus-indicator::before{content:""}.mat-mdc-radio-disabled{cursor:default;pointer-events:none}.mat-mdc-radio-disabled.mat-mdc-radio-disabled-interactive{pointer-events:auto}.mat-mdc-radio-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-radio-touch-target-display, block)}[dir=rtl] .mat-mdc-radio-touch-target{left:auto;right:50%;transform:translate(50%, -50%)}'],encapsulation:2,changeDetection:0})}return n})(),cv=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,cs,p4,Ue]})}return n})();var g4=["switch"],_4=["*"];function v4(n,t){n&1&&(N(0,"span",10),Qt(),N(1,"svg",12),ne(2,"path",13),F(),N(3,"svg",14),ne(4,"path",15),F()())}var b4=new ee("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1,disabledInteractive:!1})}),y4={provide:hs,useExisting:Ii(()=>sT),multi:!0},Km=class{source;checked;constructor(t,e){this.source=t,this.checked=e}},sT=(()=>{class n{_elementRef=L(Ae);_focusMonitor=L(Un);_changeDetectorRef=L(Xe);defaults=L(b4);_onChange=e=>{};_onTouched=()=>{};_validatorOnChange=()=>{};_uniqueId;_checked=!1;_createChangeEvent(e){return new Km(this,e)}_labelId;get buttonId(){return`${this.id||this._uniqueId}-button`}_switchElement;focus(){this._switchElement.nativeElement.focus()}_noopAnimations;_focused;name=null;id;labelPosition="after";ariaLabel=null;ariaLabelledby=null;ariaDescribedby;required;color;disabled=!1;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(e){this._checked=e,this._changeDetectorRef.markForCheck()}hideIcon;disabledInteractive;change=new oe;toggleChange=new oe;get inputId(){return`${this.id||this._uniqueId}-input`}constructor(){L(wt).load(Di);let e=L(new $i("tabindex"),{optional:!0}),i=this.defaults,r=L(Ot,{optional:!0});this.tabIndex=e==null?0:parseInt(e)||0,this.color=i.color||"accent",this._noopAnimations=r==="NoopAnimations",this.id=this._uniqueId=L(Ft).getId("mat-mdc-slide-toggle-"),this.hideIcon=i.hideIcon??!1,this.disabledInteractive=i.disabledInteractive??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{e==="keyboard"||e==="program"?(this._focused=!0,this._changeDetectorRef.markForCheck()):e||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(e){e.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(e){this.checked=!!e}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}validate(e){return this.required&&e.value!==!0?{required:!0}:null}registerOnValidatorChange(e){this._validatorOnChange=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.disabled||(this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new Km(this,this.checked))))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-slide-toggle"]],viewQuery:function(i,r){if(i&1&&Be(g4,5),i&2){let s;Te(s=Ee())&&(r._switchElement=s.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,r){i&2&&(Rn("id",r.id),Me("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),bt(r.color?"mat-"+r.color:""),ke("mat-mdc-slide-toggle-focused",r._focused)("mat-mdc-slide-toggle-checked",r.checked)("_mat-animation-noopable",r._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],required:[2,"required","required",be],color:"color",disabled:[2,"disabled","disabled",be],disableRipple:[2,"disableRipple","disableRipple",be],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:zt(e)],checked:[2,"checked","checked",be],hideIcon:[2,"hideIcon","hideIcon",be],disabledInteractive:[2,"disabledInteractive","disabledInteractive",be]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],features:[at([y4,{provide:ia,useExisting:n,multi:!0}]),Qe,vt],ngContentSelectors:_4,decls:13,vars:27,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(i,r){if(i&1){let s=We();tt(),N(0,"div",1)(1,"button",2,0),J("click",function(){return te(s),ie(r._handleClick())}),ne(3,"span",3),N(4,"span",4)(5,"span",5)(6,"span",6),ne(7,"span",7),F(),N(8,"span",8),ne(9,"span",9),F(),le(10,v4,5,0,"span",10),F()()(),N(11,"label",11),J("click",function(o){return te(s),ie(o.stopPropagation())}),Fe(12),F()()}if(i&2){let s=Zt(2);z("labelPosition",r.labelPosition),$(),ke("mdc-switch--selected",r.checked)("mdc-switch--unselected",!r.checked)("mdc-switch--checked",r.checked)("mdc-switch--disabled",r.disabled)("mat-mdc-slide-toggle-disabled-interactive",r.disabledInteractive),z("tabIndex",r.disabled&&!r.disabledInteractive?-1:r.tabIndex)("disabled",r.disabled&&!r.disabledInteractive),Me("id",r.buttonId)("name",r.name)("aria-label",r.ariaLabel)("aria-labelledby",r._getAriaLabelledBy())("aria-describedby",r.ariaDescribedby)("aria-required",r.required||null)("aria-checked",r.checked)("aria-disabled",r.disabled&&r.disabledInteractive?"true":null),$(8),z("matRippleTrigger",s)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),$(),et(r.hideIcon?-1:10),$(),z("for",r.buttonId),Me("id",r._labelId)}},dependencies:[yn,sl],styles:['.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative;width:var(--mdc-switch-track-width, 52px)}.mdc-switch.mdc-switch--disabled{cursor:default;pointer-events:none}.mdc-switch.mat-mdc-slide-toggle-disabled-interactive{pointer-events:auto}.mdc-switch__track{overflow:hidden;position:relative;width:100%;height:var(--mdc-switch-track-height, 32px);border-radius:var(--mdc-switch-track-shape, var(--mat-sys-corner-full))}.mdc-switch--disabled.mdc-switch .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity, 0.12)}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%;border-width:var(--mat-switch-track-outline-width, 2px);border-color:var(--mat-switch-track-outline-color, var(--mat-sys-outline))}.mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track::after{border-width:var(--mat-switch-selected-track-outline-width, 2px);border-color:var(--mat-switch-selected-track-outline-color, transparent)}.mdc-switch--disabled .mdc-switch__track::before,.mdc-switch--disabled .mdc-switch__track::after{border-width:var(--mat-switch-disabled-unselected-track-outline-width, 2px);border-color:var(--mat-switch-disabled-unselected-track-outline-color, var(--mat-sys-on-surface))}@media(forced-colors: active){.mdc-switch__track{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0);background:var(--mdc-switch-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch--selected .mdc-switch__track::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color, var(--mat-sys-surface-variant))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::before,.mdc-switch.mdc-switch--disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch__track::after{transform:translateX(-100%);background:var(--mdc-switch-selected-track-color, var(--mat-sys-primary))}[dir=rtl] .mdc-switch__track::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::after{transform:translateX(0)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color, var(--mat-sys-primary))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::after,.mdc-switch.mdc-switch--disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color, var(--mat-sys-on-surface))}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0);width:calc(100% - var(--mdc-switch-handle-width))}[dir=rtl] .mdc-switch__handle-track{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto;transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1);width:var(--mdc-switch-handle-width);height:var(--mdc-switch-handle-height);border-radius:var(--mdc-switch-handle-shape, var(--mat-sys-corner-full))}[dir=rtl] .mdc-switch__handle{left:auto;right:0}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size, 16px);height:var(--mat-switch-unselected-handle-size, 16px);margin:var(--mat-switch-unselected-handle-horizontal-margin, 0 8px)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-unselected-with-icon-handle-horizontal-margin, 0 4px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size, 24px);height:var(--mat-switch-selected-handle-size, 24px);margin:var(--mat-switch-selected-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-selected-with-icon-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-switch-with-icon-handle-size, 24px);height:var(--mat-switch-with-icon-handle-size, 24px)}.mat-mdc-slide-toggle .mdc-switch:active:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-switch-pressed-handle-size, 28px);height:var(--mat-switch-pressed-handle-size, 28px)}.mat-mdc-slide-toggle .mdc-switch--selected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin, 0 22px)}.mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin, 0 2px)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-selected-handle-opacity, 1)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-unselected-handle-opacity, 0.38)}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media(forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color, var(--mat-sys-on-primary))}.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color, var(--mat-sys-primary-container))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:hover:not(:focus):not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:focus:not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:active .mdc-switch__handle::after,.mdc-switch--selected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color, var(--mat-sys-surface))}.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color, var(--mat-sys-outline))}.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color, var(--mat-sys-on-surface))}.mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__shadow,.mdc-switch.mdc-switch--disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1;width:var(--mdc-switch-state-layer-size, 40px);height:var(--mdc-switch-state-layer-size, 40px)}.mdc-switch__ripple::after{content:"";opacity:0}.mdc-switch--disabled .mdc-switch__ripple::after{display:none}.mat-mdc-slide-toggle-disabled-interactive .mdc-switch__ripple::after{display:block}.mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:75ms opacity cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:focus .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:active .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:hover:not(:focus) .mdc-switch__ripple::after,.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-pressed-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-selected-pressed-state-layer-color, var(--mat-sys-primary));opacity:var(--mdc-switch-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch__icons{position:relative;height:100%;width:100%;z-index:1}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity, 0.38)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity, 0.38)}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size, 16px);height:var(--mdc-switch-unselected-icon-size, 16px);fill:var(--mdc-switch-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size, 16px);height:var(--mdc-switch-selected-icon-size, 16px);fill:var(--mdc-switch-selected-icon-color, var(--mat-sys-on-primary-container))}.mdc-switch--selected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color, var(--mat-sys-on-surface))}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle{-webkit-user-select:none;user-select:none;display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-internal-form-field{color:var(--mat-switch-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-switch-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-switch-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-switch-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-switch-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-switch-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)}'],encapsulation:2,changeDetection:0})}return n})();var uv=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[sT,Ue,Ue]})}return n})();var dv=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,cs]})}return n})();var aT=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Zc]})}return n})();var hv=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,aT,Ue]})}return n})();var gv=["*"];function C4(n,t){n&1&&Fe(0)}var w4=["tabListContainer"],x4=["tabList"],S4=["tabListInner"],k4=["nextPaginator"],M4=["previousPaginator"],T4=n=>({animationDuration:n}),E4=(n,t)=>({value:n,params:t});function I4(n,t){}var A4=["tabBodyWrapper"],D4=["tabHeader"];function R4(n,t){}function L4(n,t){if(n&1&&le(0,R4,0,0,"ng-template",12),n&2){let e=Y().$implicit;z("cdkPortalOutlet",e.templateLabel)}}function O4(n,t){if(n&1&&B(0),n&2){let e=Y().$implicit;Ke(e.textLabel)}}function N4(n,t){if(n&1){let e=We();N(0,"div",7,2),J("click",function(){let r=te(e),s=r.$implicit,a=r.$index,o=Y(),l=Zt(1);return ie(o._handleClick(s,l,a))})("cdkFocusChange",function(r){let s=te(e).$index,a=Y();return ie(a._tabFocusChanged(r,s))}),ne(2,"span",8)(3,"div",9),N(4,"span",10)(5,"span",11),le(6,L4,1,1,null,12)(7,O4,1,1),F()()()}if(n&2){let e=t.$implicit,i=t.$index,r=Zt(1),s=Y();bt(e.labelClass),ke("mdc-tab--active",s.selectedIndex===i),z("id",s._getTabLabelId(i))("disabled",e.disabled)("fitInkBarToContent",s.fitInkBarToContent),Me("tabIndex",s._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",s._tabs.length)("aria-controls",s._getTabContentId(i))("aria-selected",s.selectedIndex===i)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),$(3),z("matRippleTrigger",r)("matRippleDisabled",e.disabled||s.disableRipple),$(3),et(e.templateLabel?6:7)}}function F4(n,t){n&1&&Fe(0)}function P4(n,t){if(n&1){let e=We();N(0,"mat-tab-body",13),J("_onCentered",function(){te(e);let r=Y();return ie(r._removeTabBodyWrapperHeight())})("_onCentering",function(r){te(e);let s=Y();return ie(s._setTabBodyWrapperHeight(r))}),F()}if(n&2){let e=t.$implicit,i=t.$index,r=Y();bt(e.bodyClass),ke("mat-mdc-tab-body-active",r.selectedIndex===i),z("id",r._getTabContentId(i))("content",e.content)("position",e.position)("origin",e.origin)("animationDuration",r.animationDuration)("preserveContent",r.preserveContent),Me("tabindex",r.contentTabIndex!=null&&r.selectedIndex===i?r.contentTabIndex:null)("aria-labelledby",r._getTabLabelId(i))("aria-hidden",r.selectedIndex!==i)}}var U4=new ee("MatTabContent"),$4=(()=>{class n{template=L(Dn);constructor(){}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","matTabContent",""]],features:[at([{provide:U4,useExisting:n}])]})}return n})(),V4=new ee("MatTabLabel"),cT=new ee("MAT_TAB"),B4=(()=>{class n extends Ek{_closestTab=L(cT,{optional:!0});static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275dir=xe({type:n,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[at([{provide:V4,useExisting:n}]),Nt]})}return n})(),uT=new ee("MAT_TAB_GROUP"),_v=(()=>{class n{_viewContainerRef=L(bi);_closestTabGroup=L(uT,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new me;position=null;origin=null;isActive=!1;constructor(){L(wt).load(Di)}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new ds(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-tab"]],contentQueries:function(i,r,s){if(i&1&&(Rt(s,B4,5),Rt(s,$4,7,Dn)),i&2){let a;Te(a=Ee())&&(r.templateLabel=a.first),Te(a=Ee())&&(r._explicitContent=a.first)}},viewQuery:function(i,r){if(i&1&&Be(Dn,7),i&2){let s;Te(s=Ee())&&(r._implicitContent=s.first)}},hostAttrs:["hidden",""],inputs:{disabled:[2,"disabled","disabled",be],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},exportAs:["matTab"],features:[at([{provide:cT,useExisting:n}]),Qe,vt],ngContentSelectors:gv,decls:1,vars:0,template:function(i,r){i&1&&(tt(),le(0,C4,1,0,"ng-template"))},encapsulation:2})}return n})(),mv="mdc-tab-indicator--active",oT="mdc-tab-indicator--no-transition",fv=class{_items;_currentItem;constructor(t){this._items=t}hide(){this._items.forEach(t=>t.deactivateInkBar())}alignToElement(t){let e=this._items.find(r=>r.elementRef.nativeElement===t),i=this._currentItem;if(e!==i&&(i?.deactivateInkBar(),e)){let r=i?.elementRef.nativeElement.getBoundingClientRect?.();e.activateInkBar(r),this._currentItem=e}}},z4=(()=>{class n{_elementRef=L(Ae);_inkBarElement;_inkBarContentElement;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(e){this._fitToContent!==e&&(this._fitToContent=e,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(e){let i=this._elementRef.nativeElement;if(!e||!i.getBoundingClientRect||!this._inkBarContentElement){i.classList.add(mv);return}let r=i.getBoundingClientRect(),s=e.width/r.width,a=e.left-r.left;i.classList.add(oT),this._inkBarContentElement.style.setProperty("transform",`translateX(${a}px) scaleX(${s})`),i.getBoundingClientRect(),i.classList.remove(oT),i.classList.add(mv),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(mv)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){let e=this._elementRef.nativeElement.ownerDocument||document,i=this._inkBarElement=e.createElement("span"),r=this._inkBarContentElement=e.createElement("span");i.className="mdc-tab-indicator",r.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",i.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){this._inkBarElement;let e=this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement;e.appendChild(this._inkBarElement)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",be]},features:[Qe]})}return n})();var dT=(()=>{class n extends z4{elementRef=L(Ae);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275dir=xe({type:n,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,r){i&2&&(Me("aria-disabled",!!r.disabled),ke("mat-mdc-tab-disabled",r.disabled))},inputs:{disabled:[2,"disabled","disabled",be]},features:[Qe,Nt]})}return n})(),lT=Ai({passive:!0}),H4=650,j4=100,W4=(()=>{class n{_elementRef=L(Ae);_changeDetectorRef=L(Xe);_viewportRuler=L(Bn);_dir=L(ui,{optional:!0});_ngZone=L(Ne);_platform=L(ct);_animationMode=L(Ot,{optional:!0});_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new me;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged;_keyManager;_currentTextContent;_stopScrolling=new me;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){let i=isNaN(e)?0:e;this._selectedIndex!=i&&(this._selectedIndexChanged=!0,this._selectedIndex=i,this._keyManager&&this._keyManager.updateActiveItem(i))}_selectedIndex=0;selectFocusedIndex=new oe;indexFocused=new oe;_sharedResizeObserver=L(Um);_injector=L(gt);constructor(){this._ngZone.runOutsideAngular(()=>{Qr(this._elementRef.nativeElement,"mouseleave").pipe(qe(this._destroyed)).subscribe(()=>this._stopInterval())})}ngAfterViewInit(){Qr(this._previousPaginator.nativeElement,"touchstart",lT).pipe(qe(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("before")}),Qr(this._nextPaginator.nativeElement,"touchstart",lT).pipe(qe(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("after")})}ngAfterContentInit(){let e=this._dir?this._dir.change:_e("ltr"),i=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(Ui(32),qe(this._destroyed)),r=this._viewportRuler.change(150).pipe(qe(this._destroyed)),s=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new Oc(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(this._selectedIndex),vi(s,{injector:this._injector}),ti(e,r,i,this._items.changes,this._itemsResized()).pipe(qe(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),s()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(a=>{this.indexFocused.emit(a),this._setTabFocus(a)})}_itemsResized(){return typeof ResizeObserver!="function"?In:this._items.changes.pipe(Gt(this._items),Dt(e=>new Jn(i=>this._ngZone.runOutsideAngular(()=>{let r=new ResizeObserver(s=>i.next(s));return e.forEach(s=>r.observe(s.elementRef.nativeElement)),()=>{r.disconnect()}}))),Ao(1),st(e=>e.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!Vi(e))switch(e.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){let i=this._items.get(this.focusIndex);i&&!i.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(e))}break;default:this._keyManager.onKeydown(e)}}_onContentChanges(){let e=this._elementRef.nativeElement.textContent;e!==this._currentTextContent&&(this._currentTextContent=e||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(e){!this._isValidIndex(e)||this.focusIndex===e||!this._keyManager||this._keyManager.setActiveItem(e)}_isValidIndex(e){return this._items?!!this._items.toArray()[e]:!0}_setTabFocus(e){if(this._showPaginationControls&&this._scrollToLabel(e),this._items&&this._items.length){this._items.toArray()[e].focus();let i=this._tabListContainer.nativeElement;this._getLayoutDirection()=="ltr"?i.scrollLeft=0:i.scrollLeft=i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;let e=this.scrollDistance,i=this._getLayoutDirection()==="ltr"?-e:e;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(e){this._scrollTo(e)}_scrollHeader(e){let i=this._tabListContainer.nativeElement.offsetWidth,r=(e=="before"?-1:1)*i/3;return this._scrollTo(this._scrollDistance+r)}_handlePaginatorClick(e){this._stopInterval(),this._scrollHeader(e)}_scrollToLabel(e){if(this.disablePagination)return;let i=this._items?this._items.toArray()[e]:null;if(!i)return;let r=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:s,offsetWidth:a}=i.elementRef.nativeElement,o,l;this._getLayoutDirection()=="ltr"?(o=s,l=o+a):(l=this._tabListInner.nativeElement.offsetWidth-s,o=l-a);let c=this.scrollDistance,u=this.scrollDistance+r;ou&&(this.scrollDistance+=Math.min(l-u,o-c))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{let e=this._tabListInner.nativeElement.scrollWidth,i=this._elementRef.nativeElement.offsetWidth,r=e-i>=5;r||(this.scrollDistance=0),r!==this._showPaginationControls&&(this._showPaginationControls=r,this._changeDetectorRef.markForCheck())}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=this.scrollDistance==0,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){let e=this._tabListInner.nativeElement.scrollWidth,i=this._tabListContainer.nativeElement.offsetWidth;return e-i||0}_alignInkBarToSelectedTab(){let e=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=e?e.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(e,i){i&&i.button!=null&&i.button!==0||(this._stopInterval(),Vd(H4,j4).pipe(qe(ti(this._stopScrolling,this._destroyed))).subscribe(()=>{let{maxScrollDistance:r,distance:s}=this._scrollHeader(e);(s===0||s>=r)&&this._stopInterval()}))}_scrollTo(e){if(this.disablePagination)return{maxScrollDistance:0,distance:0};let i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,e)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,inputs:{disablePagination:[2,"disablePagination","disablePagination",be],selectedIndex:[2,"selectedIndex","selectedIndex",zt]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"},features:[Qe]})}return n})(),q4=(()=>{class n extends W4{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new fv(this._items),super.ngAfterContentInit()}_itemSelected(e){e.preventDefault()}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})();static \u0275cmp=he({type:n,selectors:[["mat-tab-header"]],contentQueries:function(i,r,s){if(i&1&&Rt(s,dT,4),i&2){let a;Te(a=Ee())&&(r._items=a)}},viewQuery:function(i,r){if(i&1&&(Be(w4,7),Be(x4,7),Be(S4,7),Be(k4,5),Be(M4,5)),i&2){let s;Te(s=Ee())&&(r._tabListContainer=s.first),Te(s=Ee())&&(r._tabList=s.first),Te(s=Ee())&&(r._tabListInner=s.first),Te(s=Ee())&&(r._nextPaginator=s.first),Te(s=Ee())&&(r._previousPaginator=s.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(i,r){i&2&&ke("mat-mdc-tab-header-pagination-controls-enabled",r._showPaginationControls)("mat-mdc-tab-header-rtl",r._getLayoutDirection()=="rtl")},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],disableRipple:[2,"disableRipple","disableRipple",be]},features:[Qe,Nt],ngContentSelectors:gv,decls:13,vars:10,consts:[["previousPaginator",""],["tabListContainer",""],["tabList",""],["tabListInner",""],["nextPaginator",""],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"click","mousedown","touchend","matRippleDisabled"],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],[1,"mat-mdc-tab-labels"],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"mousedown","click","touchend","matRippleDisabled"]],template:function(i,r){if(i&1){let s=We();tt(),N(0,"div",5,0),J("click",function(){return te(s),ie(r._handlePaginatorClick("before"))})("mousedown",function(o){return te(s),ie(r._handlePaginatorPress("before",o))})("touchend",function(){return te(s),ie(r._stopInterval())}),ne(2,"div",6),F(),N(3,"div",7,1),J("keydown",function(o){return te(s),ie(r._handleKeydown(o))}),N(5,"div",8,2),J("cdkObserveContent",function(){return te(s),ie(r._onContentChanges())}),N(7,"div",9,3),Fe(9),F()()(),N(10,"div",10,4),J("mousedown",function(o){return te(s),ie(r._handlePaginatorPress("after",o))})("click",function(){return te(s),ie(r._handlePaginatorClick("after"))})("touchend",function(){return te(s),ie(r._stopInterval())}),ne(12,"div",6),F()}i&2&&(ke("mat-mdc-tab-header-pagination-disabled",r._disableScrollBefore),z("matRippleDisabled",r._disableScrollBefore||r.disableRipple),$(3),ke("_mat-animation-noopable",r._animationMode==="NoopAnimations"),$(2),Me("aria-label",r.ariaLabel||null)("aria-labelledby",r.ariaLabelledby||null),$(5),ke("mat-mdc-tab-header-pagination-disabled",r._disableScrollAfter),z("matRippleDisabled",r._disableScrollAfter||r.disableRipple))},dependencies:[yn,CS],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;outline:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height, 1px);border-bottom-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-header-divider-height, 1px);border-top-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mdc-secondary-navigation-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}}"],encapsulation:2})}return n})(),G4=new ee("MAT_TABS_CONFIG"),K4={translateTab:zi("translateTab",[di("center, void, left-origin-center, right-origin-center",ht({transform:"none",visibility:"visible"})),di("left",ht({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),di("right",ht({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),Yt("* => left, * => right, left => center, right => center",ei("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),Yt("void => left-origin-center",[ht({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),ei("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),Yt("void => right-origin-center",[ht({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),ei("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])},Y4=(()=>{class n extends Ka{_host=L(hT);_centeringSub=Mt.EMPTY;_leavingSub=Mt.EMPTY;constructor(){super()}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(Gt(this._host._isCenterPosition(this._host._position))).subscribe(e=>{this._host._content&&e&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","matTabBodyHost",""]],features:[Nt]})}return n})(),hT=(()=>{class n{_elementRef=L(Ae);_dir=L(ui,{optional:!0});_positionIndex;_dirChangeSubscription=Mt.EMPTY;_position;_translateTabComplete=new me;_onCentering=new oe;_beforeCentering=new oe;_afterLeavingCenter=new oe;_onCentered=new oe(!0);_portalHost;_content;origin;animationDuration="500ms";preserveContent=!1;set position(e){this._positionIndex=e,this._computePositionAnimationState()}constructor(){if(this._dir){let e=L(Xe);this._dirChangeSubscription=this._dir.change.subscribe(i=>{this._computePositionAnimationState(i),e.markForCheck()})}this._translateTabComplete.subscribe(e=>{this._isCenterPosition(e.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(e.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}ngOnInit(){this._position=="center"&&this.origin!=null&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(e){let i=this._isCenterPosition(e.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_isCenterPosition(e){return e=="center"||e=="left-origin-center"||e=="right-origin-center"}_computePositionAnimationState(e=this._getLayoutDirection()){this._positionIndex<0?this._position=e=="ltr"?"left":"right":this._positionIndex>0?this._position=e=="ltr"?"right":"left":this._position="center"}_computePositionFromOrigin(e){let i=this._getLayoutDirection();return i=="ltr"&&e<=0||i=="rtl"&&e>0?"left-origin-center":"right-origin-center"}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-tab-body"]],viewQuery:function(i,r){if(i&1&&Be(Ka,5),i&2){let s;Te(s=Ee())&&(r._portalHost=s.first)}},hostAttrs:[1,"mat-mdc-tab-body"],inputs:{_content:[0,"content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"},decls:3,vars:6,consts:[["content",""],["cdkScrollable","",1,"mat-mdc-tab-body-content"],["matTabBodyHost",""]],template:function(i,r){if(i&1){let s=We();N(0,"div",1,0),J("@translateTab.start",function(o){return te(s),ie(r._onTranslateTabStarted(o))})("@translateTab.done",function(o){return te(s),ie(r._translateTabComplete.next(o))}),le(2,I4,0,0,"ng-template",2),F()}i&2&&z("@translateTab",Qd(3,E4,r._position,zs(1,T4,r.animationDuration)))},dependencies:[Y4,T_],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[K4.translateTab]}})}return n})(),Q4=!0,mT=(()=>{class n{_elementRef=L(Ae);_changeDetectorRef=L(Xe);_animationMode=L(Ot,{optional:!0});_allTabs;_tabBodyWrapper;_tabHeader;_tabs=new Do;_indexToSelect=0;_lastFocusedTabIndex=null;_tabBodyWrapperHeight=0;_tabsSubscription=Mt.EMPTY;_tabLabelSubscription=Mt.EMPTY;color;get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(e){this._fitInkBarToContent=e,this._changeDetectorRef.markForCheck()}_fitInkBarToContent=!1;stretchTabs=!0;alignTabs=null;dynamicHeight=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){this._indexToSelect=isNaN(e)?null:e}_selectedIndex=null;headerPosition="above";get animationDuration(){return this._animationDuration}set animationDuration(e){let i=e+"";this._animationDuration=/^\d+$/.test(i)?e+"ms":i}_animationDuration;get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(e){this._contentTabIndex=isNaN(e)?null:e}_contentTabIndex;disablePagination=!1;disableRipple=!1;preserveContent=!1;get backgroundColor(){return this._backgroundColor}set backgroundColor(e){if(!Q4)throw new Error("mat-tab-group background color must be set through the Sass theming API");let i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),e&&i.add("mat-tabs-with-background",`mat-background-${e}`),this._backgroundColor=e}_backgroundColor;ariaLabel;ariaLabelledby;selectedIndexChange=new oe;focusChange=new oe;animationDone=new oe;selectedTabChange=new oe(!0);_groupId;_isServer=!L(ct).isBrowser;constructor(){let e=L(G4,{optional:!0});this._groupId=L(Ft).getId("mat-tab-group-"),this.animationDuration=e&&e.animationDuration?e.animationDuration:"500ms",this.disablePagination=e&&e.disablePagination!=null?e.disablePagination:!1,this.dynamicHeight=e&&e.dynamicHeight!=null?e.dynamicHeight:!1,e?.contentTabIndex!=null&&(this.contentTabIndex=e.contentTabIndex),this.preserveContent=!!e?.preserveContent,this.fitInkBarToContent=e&&e.fitInkBarToContent!=null?e.fitInkBarToContent:!1,this.stretchTabs=e&&e.stretchTabs!=null?e.stretchTabs:!0,this.alignTabs=e&&e.alignTabs!=null?e.alignTabs:null}ngAfterContentChecked(){let e=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=e){let i=this._selectedIndex==null;if(!i){this.selectedTabChange.emit(this._createChangeEvent(e));let r=this._tabBodyWrapper.nativeElement;r.style.minHeight=r.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((r,s)=>r.isActive=s===e),i||(this.selectedIndexChange.emit(e),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,r)=>{i.position=r-e,this._selectedIndex!=null&&i.position==0&&!i.origin&&(i.origin=e-this._selectedIndex)}),this._selectedIndex!==e&&(this._selectedIndex=e,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{let e=this._clampTabIndex(this._indexToSelect);if(e===this._selectedIndex){let i=this._tabs.toArray(),r;for(let s=0;s{i[e].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(e))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(Gt(this._allTabs)).subscribe(e=>{this._tabs.reset(e.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(e){let i=this._tabHeader;i&&(i.focusIndex=e)}_focusChanged(e){this._lastFocusedTabIndex=e,this.focusChange.emit(this._createChangeEvent(e))}_createChangeEvent(e){let i=new pv;return i.index=e,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[e]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=ti(...this._tabs.map(e=>e._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(e){return Math.min(this._tabs.length-1,Math.max(e||0,0))}_getTabLabelId(e){return`${this._groupId}-label-${e}`}_getTabContentId(e){return`${this._groupId}-content-${e}`}_setTabBodyWrapperHeight(e){if(!this.dynamicHeight||!this._tabBodyWrapperHeight)return;let i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=e+"px")}_removeTabBodyWrapperHeight(){let e=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=e.clientHeight,e.style.height="",this.animationDone.emit()}_handleClick(e,i,r){i.focusIndex=r,e.disabled||(this.selectedIndex=r)}_getTabIndex(e){let i=this._lastFocusedTabIndex??this.selectedIndex;return e===i?0:-1}_tabFocusChanged(e,i){e&&e!=="mouse"&&e!=="touch"&&(this._tabHeader.focusIndex=i)}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=he({type:n,selectors:[["mat-tab-group"]],contentQueries:function(i,r,s){if(i&1&&Rt(s,_v,5),i&2){let a;Te(a=Ee())&&(r._allTabs=a)}},viewQuery:function(i,r){if(i&1&&(Be(A4,5),Be(D4,5)),i&2){let s;Te(s=Ee())&&(r._tabBodyWrapper=s.first),Te(s=Ee())&&(r._tabHeader=s.first)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:11,hostBindings:function(i,r){i&2&&(Me("mat-align-tabs",r.alignTabs),bt("mat-"+(r.color||"primary")),ai("--mat-tab-animation-duration",r.animationDuration),ke("mat-mdc-tab-group-dynamic-height",r.dynamicHeight)("mat-mdc-tab-group-inverted-header",r.headerPosition==="below")("mat-mdc-tab-group-stretch-tabs",r.stretchTabs))},inputs:{color:"color",fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",be],stretchTabs:[2,"mat-stretch-tabs","stretchTabs",be],alignTabs:[0,"mat-align-tabs","alignTabs"],dynamicHeight:[2,"dynamicHeight","dynamicHeight",be],selectedIndex:[2,"selectedIndex","selectedIndex",zt],headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:[2,"contentTabIndex","contentTabIndex",zt],disablePagination:[2,"disablePagination","disablePagination",be],disableRipple:[2,"disableRipple","disableRipple",be],preserveContent:[2,"preserveContent","preserveContent",be],backgroundColor:"backgroundColor",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"]},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},exportAs:["matTabGroup"],features:[at([{provide:uT,useExisting:n}]),Qe],ngContentSelectors:gv,decls:9,vars:8,consts:[["tabHeader",""],["tabBodyWrapper",""],["tabNode",""],[3,"indexFocused","selectFocusedIndex","selectedIndex","disableRipple","disablePagination","aria-label","aria-labelledby"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"id","mdc-tab--active","class","disabled","fitInkBarToContent"],[1,"mat-mdc-tab-body-wrapper"],["role","tabpanel",3,"id","mat-mdc-tab-body-active","class","content","position","origin","animationDuration","preserveContent"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"click","cdkFocusChange","id","disabled","fitInkBarToContent"],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"_onCentered","_onCentering","id","content","position","origin","animationDuration","preserveContent"]],template:function(i,r){if(i&1){let s=We();tt(),N(0,"mat-tab-header",3,0),J("indexFocused",function(o){return te(s),ie(r._focusChanged(o))})("selectFocusedIndex",function(o){return te(s),ie(r.selectedIndex=o)}),xr(2,N4,8,17,"div",4,sc),F(),le(4,F4,1,0),N(5,"div",5,1),xr(7,P4,1,13,"mat-tab-body",6,sc),F()}i&2&&(z("selectedIndex",r.selectedIndex||0)("disableRipple",r.disableRipple)("disablePagination",r.disablePagination)("aria-label",r.ariaLabel)("aria-labelledby",r.ariaLabelledby),$(2),Sr(r._tabs),$(2),et(r._isServer?4:-1),$(),ke("_mat-animation-noopable",r._animationMode==="NoopAnimations"),$(2),Sr(r._tabs))},dependencies:[q4,dT,Yh,yn,Ka,hT],styles:['.mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;height:var(--mdc-secondary-navigation-tab-container-height, 48px);font-family:var(--mat-tab-header-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-header-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-header-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-header-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-header-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-tab-indicator-active-indicator-height, 2px);border-radius:var(--mdc-tab-indicator-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color, var(--mat-sys-on-surface));display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}'],encapsulation:2})}return n})(),pv=class{index;tab};var vv=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,Ue]})}return n})();var bv=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({imports:[Ue,Ue]})}return n})();var X4=[es,oc,W_,lu,Cg,Y_,ps,S_,hu,gu,ra,Bc,G_,F_,ov,_u,dv,uv,hv,bv,vv,sv,c_,cv,zc];var fT=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=ge({type:n})}static{this.\u0275inj=pe({imports:[X4,es,oc,W_,lu,Cg,Y_,ps,S_,hu,gu,ra,Bc,G_,F_,ov,_u,dv,uv,hv,bv,vv,sv,c_,cv,zc]})}}return n})();var PA=Os(FA());var UA=(()=>{class n{evaluate(e,i){return(0,PA.evaluate)(e,i,null)}evaluateToString(e,i){let r=this.evaluate(e,i);return r&&r instanceof Array&&r.length===1?r[0]:null}getOauthUriToken(e){return this.evaluateToString(e,"rest.security.extension.where(url='http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris').extension.where(url='token').valueUri")}getOauthUriAuthorize(e){return this.evaluateToString(e,"rest.security.extension.where(url='http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris').extension.where(url='authorize').valueUri")}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var JH=()=>({"background-color":"lightyellow"}),e7=()=>({});function t7(n,t){if(n&1){let e=We();N(0,"tr",9),J("click",function(){let r=te(e).$implicit,s=Y();return ie(s.selectRow(r))}),N(1,"td"),B(2),F(),N(3,"td",10),B(4),F(),N(5,"td",10),B(6),F()()}if(n&2){let e=t.$implicit,i=Y();z("ngStyle",i.isCurrent(e)?I0(4,JH):I0(5,e7)),$(2),Ke(e.packageId),$(2),Ke(e.version),$(2),Ke(e.title)}}function i7(n,t){if(n&1){let e=We();Ji(0),B(1,"\xA0 "),N(2,"button",6),J("click",function(){te(e);let r=Y();return ie(r.onUpdate())}),B(3,"Update"),F(),en()}}function n7(n,t){if(n&1){let e=We();Ji(0),B(1,"\xA0 "),N(2,"button",6),J("click",function(){te(e);let r=Y();return ie(r.onDelete())}),B(3,"Delete"),F(),en()}}function r7(n,t){n&1&&(Ji(0),ne(1,"mat-progress-spinner",11),en())}function s7(n,t){if(n&1&&ne(0,"app-operation-result",14),n&2){let e=Y(2);z("operationResult",e.operationResult)}}function a7(n,t){if(n&1&&(N(0,"div",12)(1,"h2"),B(2,"Result of the last operation"),F(),le(3,s7,1,1,"app-operation-result",13),F()),n&2){let e=Y();$(3),z("ngIf",e.operationResult)}}var $A=(()=>{class n{constructor(e,i){this.data=e,this.fhirPathService=i,this.update=!1,this.operationResult=null,this.query={_sort:"title",_count:1e4},this.client=e.getFhirClient(),this.addPackageId=new ms("",[Cn.required,Cn.minLength(1)]),this.addVersion=new ms("current",[Cn.required,Cn.minLength(1)]),this.addUrl=new ms("url"),this.search()}search(){this.client.search({resourceType:"ImplementationGuide",searchParams:this.query}).then(e=>{let i=e;this.igs=i.entry.map(r=>r.resource),this.selection=void 0,this.addPackageId.setValue(""),this.addVersion.setValue(""),this.addUrl.setValue("")}).catch(e=>{this.errorMessage="Error accessing FHIR server",e.response?.data?this.operationResult=Wt.fromOperationOutcome(e.response.data):this.operationResult=Wt.fromMatchboxError(e.message)}),this.update=!1}getPackageUrl(e){return this.fhirPathService.evaluateToString(e,"extension.where(url='http://ahdis.ch/fhir/extension/packageUrl').valueUri")}isCurrent(e){return this.fhirPathService.evaluateToString(e,"meta.tag.where(system='http://matchbox.health/fhir/CodeSystem/tag').code")==="current"}selectRow(e){this.selection=e,this.addPackageId.setValue(this.selection.packageId),this.addUrl.setValue(this.getPackageUrl(e));let i=this.selection.version;i&&i.endsWith(" (last)")&&(i=i.substring(0,i.length-7)),this.addVersion.setValue(i)}onSubmit(){if(this.errorMessage=null,this.addPackageId.invalid||this.addVersion.invalid){this.errorMessage="Please provide package name";return}let e=this.addPackageId.value.trim();e.indexOf("#")>0&&(e.substring(0,e.indexOf("#")-1),this.addVersion.setValue(e.substring(0,e.indexOf("#")+1))),this.addPackageId.setValue(e);let i=this.addVersion.value.trim();this.addVersion.setValue(i),this.update=!0,this.client.create({resourceType:"ImplementationGuide",body:{resourceType:"ImplementationGuide",name:e,version:i,packageId:e,url:this.addUrl.value},options:{headers:{Prefer:"return=OperationOutcome"}}}).then(r=>{this.errorMessage="Created Implementation Guide "+this.addPackageId.value,this.operationResult=Wt.fromOperationOutcome(r),this.search()}).catch(r=>{this.errorMessage="Error creating Implementation Guide "+this.addPackageId.value,r.response?.data?this.operationResult=Wt.fromOperationOutcome(r.response.data):this.operationResult=Wt.fromMatchboxError(r.message),this.update=!1})}onUpdate(){this.errorMessage=null,this.selection.name=this.addPackageId.value,this.selection.version=this.addVersion.value,this.selection.packageId=this.addPackageId.value,this.selection.url=this.addUrl.value,this.update=!0,this.client.update({resourceType:this.selection.resourceType,id:this.selection.id,body:this.selection,options:{headers:{Prefer:"return=OperationOutcome"}}}).then(e=>{this.errorMessage="Updated Implementation Guide "+this.selection.packageId,this.operationResult=Wt.fromOperationOutcome(e),this.search()}).catch(e=>{this.errorMessage="Error updating Implementation Guide "+this.selection.packageId,e.response?.data?this.operationResult=Wt.fromOperationOutcome(e.response.data):this.operationResult=Wt.fromMatchboxError(e.message),this.update=!1})}onDelete(){this.errorMessage=null,this.update=!0,this.client.delete({resourceType:this.selection.resourceType,id:this.selection.id,options:{headers:{Prefer:"return=OperationOutcome","X-Cascade":"delete"}}}).then(e=>{this.errorMessage="Deleted Implementation Guide Resource "+this.selection.packageId,this.operationResult=Wt.fromOperationOutcome(e),this.search()}).catch(e=>{this.errorMessage="Error deleting Implementation Guide "+this.selection.packageId,e.response?.data?this.operationResult=Wt.fromOperationOutcome(e.response.data):this.operationResult=Wt.fromMatchboxError(e.message),this.update=!1})}static{this.\u0275fac=function(i){return new(i||n)(Se(Fn),Se(UA))}}static{this.\u0275cmp=he({type:n,selectors:[["app-igs"]],standalone:!1,decls:40,vars:8,consts:[[1,"white-block","card-igs"],[3,"ngStyle","click",4,"ngFor","ngForOf"],[1,"white-block","Search","card-igs"],["matInput","",3,"formControl"],[2,"width","50vw"],["href","https://packages.fhir.org"],["type","submit",3,"click"],[4,"ngIf"],["class","white-block logs",4,"ngIf"],[3,"click","ngStyle"],[1,"secondary"],["mode","indeterminate"],[1,"white-block","logs"],[3,"operationResult",4,"ngIf"],[3,"operationResult"]],template:function(i,r){i&1&&(N(0,"div",0)(1,"h2"),B(2,"ImplementationGuides installed on the server"),F(),N(3,"table")(4,"thead")(5,"tr")(6,"th"),B(7,"Package"),F(),N(8,"th"),B(9,"Version"),F(),N(10,"th"),B(11,"Title"),F()()(),N(12,"tbody"),le(13,t7,7,6,"tr",1),F()()(),N(14,"div",2)(15,"h3"),B(16,"Install an ImplementationGuide"),F(),N(17,"mat-form-field")(18,"mat-label"),B(19,"PackageId"),F(),ne(20,"input",3),F(),B(21," \xA0 "),N(22,"mat-form-field")(23,"mat-label"),B(24,"Version"),F(),ne(25,"input",3),F(),B(26," \xA0 "),N(27,"mat-form-field",4)(28,"mat-label"),B(29,"Package url (optional, use only if not available through "),N(30,"a",5),B(31,"packages.fhir.org"),F(),B(32,") "),F(),ne(33,"input",3),F(),N(34,"button",6),J("click",function(){return r.onSubmit()}),B(35,"Upload"),F(),le(36,i7,4,0,"ng-container",7)(37,n7,4,0,"ng-container",7),F(),le(38,r7,2,0,"ng-container",7)(39,a7,4,1,"div",8)),i&2&&($(13),z("ngForOf",r.igs),$(7),z("formControl",r.addPackageId),$(5),z("formControl",r.addVersion),$(8),z("formControl",r.addUrl),$(3),z("ngIf",r.selection),$(),z("ngIf",r.selection),$(),z("ngIf",r.update),$(),z("ngIf",r.errorMessage))},dependencies:[kr,yi,tw,Rr,Lr,ur,zn,na,vl,Xs,cl],styles:[".secondary[_ngcontent-%COMP%]{color:#6b7280}table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse}table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-bottom:1px solid rgb(209,213,219);padding-bottom:1rem}table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-bottom:1px solid rgb(229,231,235);padding-top:1rem;padding-bottom:1rem}table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:hover{background:#eee}.mat-form-field.url[_ngcontent-%COMP%]{width:200px}.mat-table[_ngcontent-%COMP%]{margin:1rem}.mat-table[_ngcontent-%COMP%] .mat-row[_ngcontent-%COMP%]{cursor:pointer}.mat-table[_ngcontent-%COMP%] .mat-cell[_ngcontent-%COMP%], .mat-table[_ngcontent-%COMP%] .mat-header-cell[_ngcontent-%COMP%]{padding-left:.5rem;padding-right:.5rem}.mat-table[_ngcontent-%COMP%] .mat-cell.title[_ngcontent-%COMP%], .mat-table[_ngcontent-%COMP%] .mat-header-cell.title[_ngcontent-%COMP%]{flex:2;justify-content:flex-end}.mat-table[_ngcontent-%COMP%] .mat-cell[_ngcontent-%COMP%]:first-child, .mat-table[_ngcontent-%COMP%] .mat-header-cell[_ngcontent-%COMP%]:first-child{padding-left:1rem}.mat-table[_ngcontent-%COMP%] .mat-cell[_ngcontent-%COMP%]:last-child, .mat-table[_ngcontent-%COMP%] .mat-header-cell[_ngcontent-%COMP%]:last-child{padding-right:1rem}.card-igs[_ngcontent-%COMP%]{margin-bottom:10px}"]})}}return n})();var o7=["searchSelectInput"],l7=["innerSelectSearch"],c7=[[["",8,"mat-select-search-custom-header-content"]],[["","ngxMatSelectSearchClear",""]],[["","ngxMatSelectNoEntriesFound",""]]],u7=[".mat-select-search-custom-header-content","[ngxMatSelectSearchClear]","[ngxMatSelectNoEntriesFound]"],d7=(n,t)=>({"mat-select-search-inner-multiple":n,"mat-select-search-inner-toggle-all":t});function h7(n,t){if(n&1){let e=We();N(0,"mat-checkbox",12),J("change",function(r){te(e);let s=Y();return ie(s._emitSelectAllBooleanToParent(r.checked))}),F()}if(n&2){let e=Y();z("color",e.matFormField==null?null:e.matFormField.color)("checked",e.toggleAllCheckboxChecked)("indeterminate",e.toggleAllCheckboxIndeterminate)("matTooltip",e.toggleAllCheckboxTooltipMessage)("matTooltipPosition",e.toggleAllCheckboxTooltipPosition)}}function m7(n,t){n&1&&ne(0,"mat-spinner",13)}function f7(n,t){n&1&&Fe(0,1,["*ngIf","clearIcon; else defaultIcon"])}function p7(n,t){if(n&1&&(N(0,"mat-icon",16),B(1),F()),n&2){let e=Y(2);z("svgIcon",e.closeSvgIcon),$(),Ye(" ",e.closeSvgIcon?null:e.closeIcon," ")}}function g7(n,t){if(n&1){let e=We();N(0,"button",14),J("click",function(){te(e);let r=Y();return ie(r._reset(!0))}),le(1,f7,1,0,"ng-content",15)(2,p7,2,2,"ng-template",null,2,Ea),F()}if(n&2){let e=Zt(3),i=Y();$(),z("ngIf",i.clearIcon)("ngIfElse",e)}}function _7(n,t){n&1&&Fe(0,2,["*ngIf","noEntriesFound; else defaultNoEntriesFound"])}function v7(n,t){if(n&1&&B(0),n&2){let e=Y(2);Ke(e.noEntriesFoundLabel)}}function b7(n,t){if(n&1&&(N(0,"div",17),le(1,_7,1,0,"ng-content",15)(2,v7,1,1,"ng-template",null,3,Ea),F()),n&2){let e=Zt(3),i=Y();$(),z("ngIf",i.noEntriesFound)("ngIfElse",e)}}var y7=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=xe({type:n,selectors:[["","ngxMatSelectSearchClear",""]],standalone:!1}),n})(),C7=["ariaLabel","clearSearchInput","closeIcon","closeSvgIcon","disableInitialFocus","disableScrollToActiveOnOptionsChanged","enableClearOnEscapePressed","hideClearSearchButton","noEntriesFoundLabel","placeholderLabel","preventHomeEndKeyPropagation","searching"],w7=new ee("mat-selectsearch-default-options"),x7=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=xe({type:n,selectors:[["","ngxMatSelectNoEntriesFound",""]],standalone:!1}),n})(),Ep=(()=>{class n{constructor(e,i,r,s,a,o){this.matSelect=e,this.changeDetectorRef=i,this._viewportRuler=r,this.matOption=s,this.matFormField=a,this.placeholderLabel="Suche",this.type="text",this.closeIcon="close",this.noEntriesFoundLabel="Keine Optionen gefunden",this.clearSearchInput=!0,this.searching=!1,this.disableInitialFocus=!1,this.enableClearOnEscapePressed=!1,this.preventHomeEndKeyPropagation=!1,this.disableScrollToActiveOnOptionsChanged=!1,this.ariaLabel="dropdown search",this.showToggleAllCheckbox=!1,this.toggleAllCheckboxChecked=!1,this.toggleAllCheckboxIndeterminate=!1,this.toggleAllCheckboxTooltipMessage="",this.toggleAllCheckboxTooltipPosition="below",this.hideClearSearchButton=!1,this.alwaysRestoreSelectedOptionsMulti=!1,this.recreateValuesArray=!1,this.toggleAll=new oe,this.onTouched=l=>{},this._options$=new gi(null),this.optionsList$=this._options$.pipe(Dt(l=>l?l.changes.pipe(Le(c=>c.toArray()),Gt(l.toArray())):_e(null))),this.optionsLength$=this.optionsList$.pipe(Le(l=>l?l.length:0)),this._formControl=new Or("",{nonNullable:!0}),this._showNoEntriesFound$=yr([this._formControl.valueChanges,this.optionsLength$]).pipe(Le(([l,c])=>!!(this.noEntriesFoundLabel&&l&&c===this.getOptionsLengthOffset()))),this._onDestroy=new me,this.applyDefaultOptions(o)}get value(){return this._formControl.value}set _options(e){this._options$.next(e)}get _options(){return this._options$.getValue()}applyDefaultOptions(e){if(e)for(let i of C7)e.hasOwnProperty(i)&&(this[i]=e[i])}ngOnInit(){this.matOption?(this.matOption.disabled=!0,this.matOption._getHostElement().classList.add("contains-mat-select-search"),this.matOption._getHostElement().setAttribute("role","presentation")):console.error(" must be placed inside a element"),this.matSelect.openedChange.pipe(Eo(1),qe(this._onDestroy)).subscribe(e=>{e?(this.updateInputWidth(),this.disableInitialFocus||this._focus()):this.clearSearchInput&&this._reset()}),this.matSelect.openedChange.pipe(jt(1),Dt(e=>{this._options=this.matSelect.options;let i=this._options.toArray()[this.getOptionsLengthOffset()];return this._options.changes.pipe(Et(()=>{setTimeout(()=>{let r=this._options.toArray(),s=r[this.getOptionsLengthOffset()],a=this.matSelect._keyManager;a&&this.matSelect.panelOpen&&s&&((!i||!this.matSelect.compareWith(i.value,s.value)||!a.activeItem||!r.find(l=>this.matSelect.compareWith(l.value,a.activeItem?.value)))&&a.setActiveItem(this.getOptionsLengthOffset()),setTimeout(()=>{this.updateInputWidth()})),i=s})}))})).pipe(qe(this._onDestroy)).subscribe(),this._showNoEntriesFound$.pipe(qe(this._onDestroy)).subscribe(e=>{this.matOption&&(e?this.matOption._getHostElement().classList.add("mat-select-search-no-entries-found"):this.matOption._getHostElement().classList.remove("mat-select-search-no-entries-found"))}),this._viewportRuler.change().pipe(qe(this._onDestroy)).subscribe(()=>{this.matSelect.panelOpen&&this.updateInputWidth()}),this.initMultipleHandling(),this.optionsList$.pipe(qe(this._onDestroy)).subscribe(()=>{this.changeDetectorRef.markForCheck()})}_emitSelectAllBooleanToParent(e){this.toggleAll.emit(e)}ngOnDestroy(){this._onDestroy.next(),this._onDestroy.complete()}_isToggleAllCheckboxVisible(){return this.matSelect.multiple&&this.showToggleAllCheckbox}_handleKeydown(e){(e.key&&e.key.length===1||this.preventHomeEndKeyPropagation&&(e.key==="Home"||e.key==="End"))&&e.stopPropagation(),this.matSelect.multiple&&e.key&&e.key==="Enter"&&setTimeout(()=>this._focus()),this.enableClearOnEscapePressed&&e.key==="Escape"&&this.value&&(this._reset(!0),e.stopPropagation())}_handleKeyup(e){if(e.key==="ArrowUp"||e.key==="ArrowDown"){let i=this.matSelect._getAriaActiveDescendant(),r=this._options.toArray().findIndex(s=>s.id===i);r!==-1&&(this.unselectActiveDescendant(),this.activeDescendant=this._options.toArray()[r]._getHostElement(),this.activeDescendant.setAttribute("aria-selected","true"),this.searchSelectInput.nativeElement.setAttribute("aria-activedescendant",i))}}writeValue(e){this._lastExternalInputValue=e,this._formControl.setValue(e),this.changeDetectorRef.markForCheck()}onBlur(){this.unselectActiveDescendant(),this.onTouched()}registerOnChange(e){this._formControl.valueChanges.pipe(st(i=>i!==this._lastExternalInputValue),Et(()=>this._lastExternalInputValue=void 0),qe(this._onDestroy)).subscribe(e)}registerOnTouched(e){this.onTouched=e}_focus(){if(!this.searchSelectInput||!this.matSelect.panel)return;let e=this.matSelect.panel.nativeElement,i=e.scrollTop;this.searchSelectInput.nativeElement.focus(),e.scrollTop=i}_reset(e){this._formControl.setValue(""),e&&this._focus()}initMultipleHandling(){if(!this.matSelect.ngControl){this.matSelect.multiple&&console.error("the mat-select containing ngx-mat-select-search must have a ngModel or formControl directive when multiple=true");return}this.previousSelectedValues=this.matSelect.ngControl.value,this.matSelect.ngControl.valueChanges&&this.matSelect.ngControl.valueChanges.pipe(qe(this._onDestroy)).subscribe(e=>{let i=!1;if(this.matSelect.multiple&&(this.alwaysRestoreSelectedOptionsMulti||this._formControl.value&&this._formControl.value.length)&&this.previousSelectedValues&&Array.isArray(this.previousSelectedValues)){(!e||!Array.isArray(e))&&(e=[]);let r=this.matSelect.options.map(s=>s.value);this.previousSelectedValues.forEach(s=>{!e.some(a=>this.matSelect.compareWith(a,s))&&!r.some(a=>this.matSelect.compareWith(a,s))&&(this.recreateValuesArray?e=[...e,s]:e.push(s),i=!0)})}this.previousSelectedValues=e,i&&this.matSelect._onChange(e)})}updateInputWidth(){if(!this.innerSelectSearch||!this.innerSelectSearch.nativeElement)return;let e=this.innerSelectSearch.nativeElement,i=null;for(;e&&e.parentElement;)if(e=e.parentElement,e.classList.contains("mat-select-panel")){i=e;break}i&&(this.innerSelectSearch.nativeElement.style.width=i.clientWidth+"px")}getOptionsLengthOffset(){return this.matOption?1:0}unselectActiveDescendant(){this.activeDescendant?.removeAttribute("aria-selected"),this.searchSelectInput.nativeElement.removeAttribute("aria-activedescendant")}}return n.\u0275fac=function(e){return new(e||n)(Se(aa),Se(Xe),Se(Bn),Se(ar,8),Se(zn,8),Se(w7,8))},n.\u0275cmp=he({type:n,selectors:[["ngx-mat-select-search"]],contentQueries:function(e,i,r){if(e&1&&(Rt(r,y7,5),Rt(r,x7,5)),e&2){let s;Te(s=Ee())&&(i.clearIcon=s.first),Te(s=Ee())&&(i.noEntriesFound=s.first)}},viewQuery:function(e,i){if(e&1&&(Be(o7,7,Ae),Be(l7,7,Ae)),e&2){let r;Te(r=Ee())&&(i.searchSelectInput=r.first),Te(r=Ee())&&(i.innerSelectSearch=r.first)}},inputs:{placeholderLabel:"placeholderLabel",type:"type",closeIcon:"closeIcon",closeSvgIcon:"closeSvgIcon",noEntriesFoundLabel:"noEntriesFoundLabel",clearSearchInput:"clearSearchInput",searching:"searching",disableInitialFocus:"disableInitialFocus",enableClearOnEscapePressed:"enableClearOnEscapePressed",preventHomeEndKeyPropagation:"preventHomeEndKeyPropagation",disableScrollToActiveOnOptionsChanged:"disableScrollToActiveOnOptionsChanged",ariaLabel:"ariaLabel",showToggleAllCheckbox:"showToggleAllCheckbox",toggleAllCheckboxChecked:"toggleAllCheckboxChecked",toggleAllCheckboxIndeterminate:"toggleAllCheckboxIndeterminate",toggleAllCheckboxTooltipMessage:"toggleAllCheckboxTooltipMessage",toggleAllCheckboxTooltipPosition:"toggleAllCheckboxTooltipPosition",hideClearSearchButton:"hideClearSearchButton",alwaysRestoreSelectedOptionsMulti:"alwaysRestoreSelectedOptionsMulti",recreateValuesArray:"recreateValuesArray"},outputs:{toggleAll:"toggleAll"},standalone:!1,features:[at([{provide:hs,useExisting:Ii(()=>n),multi:!0}])],ngContentSelectors:u7,decls:13,vars:14,consts:[["innerSelectSearch",""],["searchSelectInput",""],["defaultIcon",""],["defaultNoEntriesFound",""],["matInput","",1,"mat-select-search-input","mat-select-search-hidden"],[1,"mat-select-search-inner","mat-typography","mat-datepicker-content","mat-tab-header",3,"ngClass"],[1,"mat-select-search-inner-row"],["class","mat-select-search-toggle-all-checkbox","matTooltipClass","ngx-mat-select-search-toggle-all-tooltip",3,"color","checked","indeterminate","matTooltip","matTooltipPosition","change",4,"ngIf"],["autocomplete","off",1,"mat-select-search-input",3,"keydown","keyup","blur","type","formControl","placeholder"],["class","mat-select-search-spinner","diameter","16",4,"ngIf"],["mat-icon-button","","aria-label","Clear","class","mat-select-search-clear",3,"click",4,"ngIf"],["class","mat-select-search-no-entries-found",4,"ngIf"],["matTooltipClass","ngx-mat-select-search-toggle-all-tooltip",1,"mat-select-search-toggle-all-checkbox",3,"change","color","checked","indeterminate","matTooltip","matTooltipPosition"],["diameter","16",1,"mat-select-search-spinner"],["mat-icon-button","","aria-label","Clear",1,"mat-select-search-clear",3,"click"],[4,"ngIf","ngIfElse"],[3,"svgIcon"],[1,"mat-select-search-no-entries-found"]],template:function(e,i){if(e&1){let r=We();tt(c7),ne(0,"input",4),N(1,"div",5,0)(3,"div",6),le(4,h7,1,5,"mat-checkbox",7),N(5,"input",8,1),J("keydown",function(a){return te(r),ie(i._handleKeydown(a))})("keyup",function(a){return te(r),ie(i._handleKeyup(a))})("blur",function(){return te(r),ie(i.onBlur())}),F(),le(7,m7,1,0,"mat-spinner",9)(8,g7,4,2,"button",10),Fe(9),F(),ne(10,"mat-divider"),F(),le(11,b7,4,2,"div",11),Ln(12,"async")}e&2&&($(),z("ngClass",Qd(11,d7,i.matSelect.multiple,i._isToggleAllCheckboxVisible())),$(3),z("ngIf",i._isToggleAllCheckboxVisible()),$(),z("type",i.type)("formControl",i._formControl)("placeholder",i.placeholderLabel),Me("aria-label",i.ariaLabel),$(2),z("ngIf",i.searching),$(),z("ngIf",!i.hideClearSearchButton&&i.value&&!i.searching),$(3),z("ngIf",ir(12,9,i._showNoEntriesFound$)))},dependencies:[On,yi,Rr,Lr,ur,Xa,bl,$n,Xs,Wm,QM,Lo],styles:[".mat-select-search-hidden[_ngcontent-%COMP%]{visibility:hidden}.mat-select-search-inner[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;z-index:100;font-size:inherit;box-shadow:none;background-color:var(--mat-select-panel-background-color)}.mat-select-search-inner.mat-select-search-inner-multiple.mat-select-search-inner-toggle-all[_ngcontent-%COMP%] .mat-select-search-inner-row[_ngcontent-%COMP%]{display:flex;align-items:center}.mat-select-search-input[_ngcontent-%COMP%]{box-sizing:border-box;width:100%;border:none;font-family:inherit;font-size:inherit;color:currentColor;outline:none;background-color:var(--mat-select-panel-background-color);padding:0 44px 0 16px;height:calc(3em - 1px);line-height:calc(3em - 1px)}[dir=rtl][_nghost-%COMP%] .mat-select-search-input[_ngcontent-%COMP%], [dir=rtl] [_nghost-%COMP%] .mat-select-search-input[_ngcontent-%COMP%]{padding-right:16px;padding-left:44px}.mat-select-search-inner-toggle-all[_ngcontent-%COMP%] .mat-select-search-input[_ngcontent-%COMP%]{padding-left:5px}.mat-select-search-no-entries-found[_ngcontent-%COMP%]{padding-top:8px}.mat-select-search-clear[_ngcontent-%COMP%]{position:absolute;right:4px;top:0}[dir=rtl][_nghost-%COMP%] .mat-select-search-clear[_ngcontent-%COMP%], [dir=rtl] [_nghost-%COMP%] .mat-select-search-clear[_ngcontent-%COMP%]{right:auto;left:4px}.mat-select-search-spinner[_ngcontent-%COMP%]{position:absolute;right:16px;top:calc(50% - 8px)}[dir=rtl][_nghost-%COMP%] .mat-select-search-spinner[_ngcontent-%COMP%], [dir=rtl] [_nghost-%COMP%] .mat-select-search-spinner[_ngcontent-%COMP%]{right:auto;left:16px} .mat-mdc-option[aria-disabled=true].contains-mat-select-search{position:sticky;top:-8px;z-index:1;opacity:1;margin-top:-8px;pointer-events:all} .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-icon{margin-right:0;margin-left:0} .mat-mdc-option[aria-disabled=true].contains-mat-select-search mat-pseudo-checkbox{display:none} .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mdc-list-item__primary-text{opacity:1}.mat-select-search-toggle-all-checkbox[_ngcontent-%COMP%]{padding-left:5px}[dir=rtl][_nghost-%COMP%] .mat-select-search-toggle-all-checkbox[_ngcontent-%COMP%], [dir=rtl] [_nghost-%COMP%] .mat-select-search-toggle-all-checkbox[_ngcontent-%COMP%]{padding-left:0;padding-right:5px}"],changeDetection:0}),n})();var VA=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ge({type:n}),n.\u0275inj=pe({imports:[es,lu,ps,hu,Bc,zc,qm,gu]}),n})();var Ip=(()=>{class n{constructor(){this.addFiles=new oe,this.dragCounter=0}checkStatus(e){if(!e.ok)throw new Error(`HTTP ${e.status} - ${e.statusText}`);return e}onDrop(e){e.preventDefault(),this.dragCounter=0;let i=e.target.files||e.dataTransfer.items;if(i)for(let s=0;s0))},dependencies:[fs,$n],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column}.attachment-field[_ngcontent-%COMP%]{border-radius:5px;background:#f0f3f6}.attachment-field[_ngcontent-%COMP%] .attachment-entry[_ngcontent-%COMP%]{border-bottom:1px solid #dedede;display:flex;align-items:center;height:40px}.attachment-field[_ngcontent-%COMP%] .attachment-entry[_ngcontent-%COMP%] .attachment-name[_ngcontent-%COMP%]{flex:1;padding:0 1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-field[_ngcontent-%COMP%] .attachment-entry[_ngcontent-%COMP%] .attachment-size[_ngcontent-%COMP%]:last-child{margin-right:1rem}.attachment-field[_ngcontent-%COMP%] .attachment-entry[_ngcontent-%COMP%] .mat-icon-button[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;line-height:inherit}.attachment-field[_ngcontent-%COMP%] .drop-zone[_ngcontent-%COMP%]{text-align:center;padding:2rem;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.attachment-field[_ngcontent-%COMP%] .drop-zone[_ngcontent-%COMP%]:first-child{border-top-left-radius:5px;border-top-right-radius:5px}.attachment-field[_ngcontent-%COMP%] .drop-zone.file-over[_ngcontent-%COMP%]{background:#e1e7ed}.attachment-field[_ngcontent-%COMP%] .drop-zone[_ngcontent-%COMP%] .spacer[_ngcontent-%COMP%]{line-height:3rem}.attachment-field[_ngcontent-%COMP%] .drop-zone[_ngcontent-%COMP%] .bold-text[_ngcontent-%COMP%]{font-weight:700}"],changeDetection:0})}}return n})();function S7(n,t){if(n&1&&(N(0,"mat-option",12),B(1),F()),n&2){let e=t.$implicit;WC("value",e.url),$(),Ye("",e.title?e.title:e.name," ")}}function k7(n,t){if(n&1&&(N(0,"li"),B(1),F()),n&2){let e=t.$implicit;$(),Ye(" ",e.diagnostics," ")}}function M7(n,t){if(n&1&&(N(0,"mat-error")(1,"ul"),le(2,k7,2,1,"li",14),F()()),n&2){let e=Y(2);$(2),z("ngForOf",e.operationOutcomeTransformed.issue)}}function T7(n,t){if(n&1&&(N(0,"mat-card",0)(1,"mat-card-header")(2,"mat-card-title"),B(3,"Transformed"),F()(),N(4,"mat-card-content"),le(5,M7,3,1,"mat-error",13),N(6,"pre"),ne(7,"code",2),F()()()),n&2){let e=Y();$(5),z("ngIf",e.operationOutcomeTransformed),$(2),z("highlight",e.getMapped())}}var HA=(()=>{class n{constructor(e){this.allStructureMaps=[],this.filteredStructureMaps=new $d(1),this.structureMapFilterControl=new Or(""),this.structureMapControl=new Or(null),this.map=null,this.model=null,this.client=e.getFhirClient(),this.client.operation({name:"list",resourceType:"StructureMap",method:"GET"}).then(i=>{this.setMaps(i),this.filteredStructureMaps.next(this.allStructureMaps.slice())}),this.structureMapControl.valueChanges.pipe(Ui(400),An()).subscribe(i=>{this.map={canonical:i}}),this.structureMapFilterControl.valueChanges.subscribe(()=>this.filterStructureMaps())}transform(){if(this.resource!=null&&this.map!=null){let e={resourceType:"Parameters",parameter:[{name:"resource",valueString:this.resource}]};"canonical"in this.map?e.parameter.push({name:"source",valueString:this.map.canonical}):e.parameter.push({name:"map",valueString:this.map.content}),this.model!=null&&e.parameter.push({name:"model",valueString:this.model}),this.client.operation({name:"transform",resourceType:"StructureMap",input:e,options:{headers:{"content-type":"application/fhir+json"}}}).then(i=>{this.operationOutcomeTransformed=null,this.transformed=i}).catch(i=>{this.transformed=null,this.operationOutcomeTransformed=i.response.data})}}getResource(){return this.resource}getMapped(){return JSON.stringify(this.transformed,null,2)}setMaps(e){this.allStructureMaps=e.entry.map(i=>i.resource)}setResource(e){this.transformed=null,(e.contentType==="application/json"||e.name.endsWith(".json"))&&(this.mimeType="application/fhir+json"),(e.contentType==="application/xml"||e.name.endsWith(".xml"))&&(this.mimeType="application/fhir+xml");let i=new FileReader;i.readAsText(e.blob),i.onload=()=>{this.resource=i.result}}setMapContent(e){let i=new FileReader;i.readAsText(e.blob),i.onload=()=>{this.map={content:i.result}}}setModelContent(e){let i=new FileReader;i.readAsText(e.blob),i.onload=()=>{this.model=i.result}}filterStructureMaps(){if(!this.allStructureMaps||this.allStructureMaps.length===0)return;let e=this.structureMapFilterControl.value;if(!e){this.filteredStructureMaps.next(this.allStructureMaps.slice());return}e=e.toLowerCase(),this.filteredStructureMaps.next(this.allStructureMaps.filter(i=>i.title.toLowerCase().indexOf(e)>-1))}static{this.\u0275fac=function(i){return new(i||n)(Se(Fn))}}static{this.\u0275cmp=he({type:n,selectors:[["app-transform"]],standalone:!1,decls:46,vars:7,consts:[[1,"card-maps"],[3,"addFiles"],["lineNumbers","","language","json",3,"highlight"],["label","By reference"],[1,"tab-content","flex"],["appearance","fill"],[3,"formControl"],[3,"value",4,"ngFor","ngForOf"],["label","By uploading"],[1,"tab-content"],["mat-stroked-button","",3,"click"],["class","card-maps",4,"ngIf"],[3,"value"],[4,"ngIf"],[4,"ngFor","ngForOf"]],template:function(i,r){i&1&&(N(0,"h2"),B(1,"Transform a resource with the $transform operation"),F(),N(2,"mat-card",0)(3,"mat-card-header")(4,"mat-card-title"),B(5,"The resource"),F()(),N(6,"mat-card-content")(7,"app-upload",1),J("addFiles",function(a){return r.setResource(a)}),F(),N(8,"pre"),ne(9,"code",2),F()()(),N(10,"mat-card",0)(11,"mat-card-header")(12,"mat-card-title"),B(13,"The map"),F(),N(14,"mat-card-subtitle"),B(15,"Choose a StructureMap to use for the transformation"),F()(),N(16,"mat-card-content")(17,"mat-tab-group")(18,"mat-tab",3)(19,"div",4)(20,"mat-form-field",5)(21,"mat-label"),B(22,"The map to use:"),F(),N(23,"mat-select",6)(24,"mat-option"),ne(25,"ngx-mat-select-search",6),F(),le(26,S7,2,2,"mat-option",7),Ln(27,"async"),F()()()(),N(28,"mat-tab",8)(29,"div",9),B(30," Provide a StructureMap to use for the transformation (JSON or XML): "),N(31,"app-upload",1),J("addFiles",function(a){return r.setMapContent(a)}),F()()()()()(),N(32,"mat-card",0)(33,"mat-card-header")(34,"mat-card-title"),B(35,"The model(s)"),F()(),N(36,"mat-card-content"),B(37," Provide a StructureDefinition or Bundle of StructureDefinitions resource that are imported by the map (JSON or XML): "),N(38,"app-upload",1),J("addFiles",function(a){return r.setModelContent(a)}),F()()(),N(39,"mat-card",0)(40,"mat-card-content")(41,"button",10),J("click",function(){return r.transform()}),N(42,"mat-icon"),B(43,"transform"),F(),B(44," Transform "),F()()(),le(45,T7,8,2,"mat-card",11)),i&2&&($(9),z("highlight",r.getResource()),$(14),z("formControl",r.structureMapControl),$(2),z("formControl",r.structureMapFilterControl),$(),z("ngForOf",ir(27,5,r.filteredStructureMaps)),$(19),z("ngIf",r.transformed||r.operationOutcomeTransformed))},dependencies:[kr,yi,Lr,ur,ar,fs,ul,dl,gm,Mk,fm,zn,na,_l,$n,aa,_v,mT,hw,Ep,fw,Ip,Lo],styles:[".card-maps[_ngcontent-%COMP%]{margin-bottom:10px}.tab-content[_ngcontent-%COMP%]{padding:2em 1em 0}mat-select[_ngcontent-%COMP%]{width:100%}.tab-content.flex[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center}.tab-content.flex[_ngcontent-%COMP%] .form-field-label[_ngcontent-%COMP%]{white-space:nowrap}.tab-content.flex[_ngcontent-%COMP%] .form-field-label[_ngcontent-%COMP%] + mat-form-field[_ngcontent-%COMP%]{margin-left:10px}.tab-content.flex[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}"]})}}return n})();function Wl(n){let t=n.length;for(;--t>=0;)n[t]=0}var E7=0,ED=1,I7=2,A7=3,D7=258,k1=29,Sd=256,gd=Sd+1+k1,zl=30,M1=19,ID=2*gd+1,ho=15,i1=16,R7=7,T1=256,AD=16,DD=17,RD=18,g1=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Np=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),L7=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),LD=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),O7=512,Ds=new Array((gd+2)*2);Wl(Ds);var md=new Array(zl*2);Wl(md);var _d=new Array(O7);Wl(_d);var vd=new Array(D7-A7+1);Wl(vd);var E1=new Array(k1);Wl(E1);var Fp=new Array(zl);Wl(Fp);function n1(n,t,e,i,r){this.static_tree=n,this.extra_bits=t,this.extra_base=e,this.elems=i,this.max_length=r,this.has_stree=n&&n.length}var OD,ND,FD;function r1(n,t){this.dyn_tree=n,this.max_code=0,this.stat_desc=t}var PD=n=>n<256?_d[n]:_d[256+(n>>>7)],bd=(n,t)=>{n.pending_buf[n.pending++]=t&255,n.pending_buf[n.pending++]=t>>>8&255},un=(n,t,e)=>{n.bi_valid>i1-e?(n.bi_buf|=t<>i1-n.bi_valid,n.bi_valid+=e-i1):(n.bi_buf|=t<{un(n,e[t*2],e[t*2+1])},UD=(n,t)=>{let e=0;do e|=n&1,n>>>=1,e<<=1;while(--t>0);return e>>>1},N7=n=>{n.bi_valid===16?(bd(n,n.bi_buf),n.bi_buf=0,n.bi_valid=0):n.bi_valid>=8&&(n.pending_buf[n.pending++]=n.bi_buf&255,n.bi_buf>>=8,n.bi_valid-=8)},F7=(n,t)=>{let e=t.dyn_tree,i=t.max_code,r=t.stat_desc.static_tree,s=t.stat_desc.has_stree,a=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,l=t.stat_desc.max_length,c,u,d,h,m,f,g=0;for(h=0;h<=ho;h++)n.bl_count[h]=0;for(e[n.heap[n.heap_max]*2+1]=0,c=n.heap_max+1;cl&&(h=l,g++),e[u*2+1]=h,!(u>i)&&(n.bl_count[h]++,m=0,u>=o&&(m=a[u-o]),f=e[u*2],n.opt_len+=f*(h+m),s&&(n.static_len+=f*(r[u*2+1]+m)));if(g!==0){do{for(h=l-1;n.bl_count[h]===0;)h--;n.bl_count[h]--,n.bl_count[h+1]+=2,n.bl_count[l]--,g-=2}while(g>0);for(h=l;h!==0;h--)for(u=n.bl_count[h];u!==0;)d=n.heap[--c],!(d>i)&&(e[d*2+1]!==h&&(n.opt_len+=(h-e[d*2+1])*e[d*2],e[d*2+1]=h),u--)}},$D=(n,t,e)=>{let i=new Array(ho+1),r=0,s,a;for(s=1;s<=ho;s++)r=r+e[s-1]<<1,i[s]=r;for(a=0;a<=t;a++){let o=n[a*2+1];o!==0&&(n[a*2]=UD(i[o]++,o))}},P7=()=>{let n,t,e,i,r,s=new Array(ho+1);for(e=0,i=0;i>=7;i{let t;for(t=0;t{n.bi_valid>8?bd(n,n.bi_buf):n.bi_valid>0&&(n.pending_buf[n.pending++]=n.bi_buf),n.bi_buf=0,n.bi_valid=0},jA=(n,t,e,i)=>{let r=t*2,s=e*2;return n[r]{let i=n.heap[e],r=e<<1;for(;r<=n.heap_len&&(r{let i,r,s=0,a,o;if(n.sym_next!==0)do i=n.pending_buf[n.sym_buf+s++]&255,i+=(n.pending_buf[n.sym_buf+s++]&255)<<8,r=n.pending_buf[n.sym_buf+s++],i===0?qr(n,r,t):(a=vd[r],qr(n,a+Sd+1,t),o=g1[a],o!==0&&(r-=E1[a],un(n,r,o)),i--,a=PD(i),qr(n,a,e),o=Np[a],o!==0&&(i-=Fp[a],un(n,i,o)));while(s{let e=t.dyn_tree,i=t.stat_desc.static_tree,r=t.stat_desc.has_stree,s=t.stat_desc.elems,a,o,l=-1,c;for(n.heap_len=0,n.heap_max=ID,a=0;a>1;a>=1;a--)s1(n,e,a);c=s;do a=n.heap[1],n.heap[1]=n.heap[n.heap_len--],s1(n,e,1),o=n.heap[1],n.heap[--n.heap_max]=a,n.heap[--n.heap_max]=o,e[c*2]=e[a*2]+e[o*2],n.depth[c]=(n.depth[a]>=n.depth[o]?n.depth[a]:n.depth[o])+1,e[a*2+1]=e[o*2+1]=c,n.heap[1]=c++,s1(n,e,1);while(n.heap_len>=2);n.heap[--n.heap_max]=n.heap[1],F7(n,t),$D(e,l,n.bl_count)},qA=(n,t,e)=>{let i,r=-1,s,a=t[0*2+1],o=0,l=7,c=4;for(a===0&&(l=138,c=3),t[(e+1)*2+1]=65535,i=0;i<=e;i++)s=a,a=t[(i+1)*2+1],!(++o{let i,r=-1,s,a=t[0*2+1],o=0,l=7,c=4;for(a===0&&(l=138,c=3),i=0;i<=e;i++)if(s=a,a=t[(i+1)*2+1],!(++o{let t;for(qA(n,n.dyn_ltree,n.l_desc.max_code),qA(n,n.dyn_dtree,n.d_desc.max_code),_1(n,n.bl_desc),t=M1-1;t>=3&&n.bl_tree[LD[t]*2+1]===0;t--);return n.opt_len+=3*(t+1)+5+5+4,t},$7=(n,t,e,i)=>{let r;for(un(n,t-257,5),un(n,e-1,5),un(n,i-4,4),r=0;r{let t=4093624447,e;for(e=0;e<=31;e++,t>>>=1)if(t&1&&n.dyn_ltree[e*2]!==0)return 0;if(n.dyn_ltree[9*2]!==0||n.dyn_ltree[10*2]!==0||n.dyn_ltree[13*2]!==0)return 1;for(e=32;e{KA||(P7(),KA=!0),n.l_desc=new r1(n.dyn_ltree,OD),n.d_desc=new r1(n.dyn_dtree,ND),n.bl_desc=new r1(n.bl_tree,FD),n.bi_buf=0,n.bi_valid=0,VD(n)},zD=(n,t,e,i)=>{un(n,(E7<<1)+(i?1:0),3),BD(n),bd(n,e),bd(n,~e),e&&n.pending_buf.set(n.window.subarray(t,t+e),n.pending),n.pending+=e},z7=n=>{un(n,ED<<1,3),qr(n,T1,Ds),N7(n)},H7=(n,t,e,i)=>{let r,s,a=0;n.level>0?(n.strm.data_type===2&&(n.strm.data_type=V7(n)),_1(n,n.l_desc),_1(n,n.d_desc),a=U7(n),r=n.opt_len+3+7>>>3,s=n.static_len+3+7>>>3,s<=r&&(r=s)):r=s=e+5,e+4<=r&&t!==-1?zD(n,t,e,i):n.strategy===4||s===r?(un(n,(ED<<1)+(i?1:0),3),WA(n,Ds,md)):(un(n,(I7<<1)+(i?1:0),3),$7(n,n.l_desc.max_code+1,n.d_desc.max_code+1,a+1),WA(n,n.dyn_ltree,n.dyn_dtree)),VD(n),i&&BD(n)},j7=(n,t,e)=>(n.pending_buf[n.sym_buf+n.sym_next++]=t,n.pending_buf[n.sym_buf+n.sym_next++]=t>>8,n.pending_buf[n.sym_buf+n.sym_next++]=e,t===0?n.dyn_ltree[e*2]++:(n.matches++,t--,n.dyn_ltree[(vd[e]+Sd+1)*2]++,n.dyn_dtree[PD(t)*2]++),n.sym_next===n.sym_end),W7=B7,q7=zD,G7=H7,K7=j7,Y7=z7,Q7={_tr_init:W7,_tr_stored_block:q7,_tr_flush_block:G7,_tr_tally:K7,_tr_align:Y7},Z7=(n,t,e,i)=>{let r=n&65535|0,s=n>>>16&65535|0,a=0;for(;e!==0;){a=e>2e3?2e3:e,e-=a;do r=r+t[i++]|0,s=s+r|0;while(--a);r%=65521,s%=65521}return r|s<<16|0},yd=Z7,X7=()=>{let n,t=[];for(var e=0;e<256;e++){n=e;for(var i=0;i<8;i++)n=n&1?3988292384^n>>>1:n>>>1;t[e]=n}return t},J7=new Uint32Array(X7()),e8=(n,t,e,i)=>{let r=J7,s=i+e;n^=-1;for(let a=i;a>>8^r[(n^t[a])&255];return n^-1},fi=e8,po={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},vo={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:t8,_tr_stored_block:v1,_tr_flush_block:i8,_tr_tally:ya,_tr_align:n8}=Q7,{Z_NO_FLUSH:Ca,Z_PARTIAL_FLUSH:r8,Z_FULL_FLUSH:s8,Z_FINISH:Qn,Z_BLOCK:YA,Z_OK:Ti,Z_STREAM_END:QA,Z_STREAM_ERROR:Gr,Z_DATA_ERROR:a8,Z_BUF_ERROR:a1,Z_DEFAULT_COMPRESSION:o8,Z_FILTERED:l8,Z_HUFFMAN_ONLY:Ap,Z_RLE:c8,Z_FIXED:u8,Z_DEFAULT_STRATEGY:d8,Z_UNKNOWN:h8,Z_DEFLATED:$p}=vo,m8=9,f8=15,p8=8,g8=29,_8=256,b1=_8+1+g8,v8=30,b8=19,y8=2*b1+1,C8=15,ut=3,ba=258,Kr=ba+ut+1,w8=32,Hl=42,I1=57,y1=69,C1=73,w1=91,x1=103,mo=113,dd=666,Ki=1,ql=2,go=3,Gl=4,x8=3,fo=(n,t)=>(n.msg=po[t],t),ZA=n=>n*2-(n>4?9:0),va=n=>{let t=n.length;for(;--t>=0;)n[t]=0},S8=n=>{let t,e,i,r=n.w_size;t=n.hash_size,i=t;do e=n.head[--i],n.head[i]=e>=r?e-r:0;while(--t);t=r,i=t;do e=n.prev[--i],n.prev[i]=e>=r?e-r:0;while(--t)},k8=(n,t,e)=>(t<{let t=n.state,e=t.pending;e>n.avail_out&&(e=n.avail_out),e!==0&&(n.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+e),n.next_out),n.next_out+=e,t.pending_out+=e,n.total_out+=e,n.avail_out-=e,t.pending-=e,t.pending===0&&(t.pending_out=0))},kn=(n,t)=>{i8(n,n.block_start>=0?n.block_start:-1,n.strstart-n.block_start,t),n.block_start=n.strstart,Sn(n.strm)},yt=(n,t)=>{n.pending_buf[n.pending++]=t},ud=(n,t)=>{n.pending_buf[n.pending++]=t>>>8&255,n.pending_buf[n.pending++]=t&255},S1=(n,t,e,i)=>{let r=n.avail_in;return r>i&&(r=i),r===0?0:(n.avail_in-=r,t.set(n.input.subarray(n.next_in,n.next_in+r),e),n.state.wrap===1?n.adler=yd(n.adler,t,r,e):n.state.wrap===2&&(n.adler=fi(n.adler,t,r,e)),n.next_in+=r,n.total_in+=r,r)},HD=(n,t)=>{let e=n.max_chain_length,i=n.strstart,r,s,a=n.prev_length,o=n.nice_match,l=n.strstart>n.w_size-Kr?n.strstart-(n.w_size-Kr):0,c=n.window,u=n.w_mask,d=n.prev,h=n.strstart+ba,m=c[i+a-1],f=c[i+a];n.prev_length>=n.good_match&&(e>>=2),o>n.lookahead&&(o=n.lookahead);do if(r=t,!(c[r+a]!==f||c[r+a-1]!==m||c[r]!==c[i]||c[++r]!==c[i+1])){i+=2,r++;do;while(c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&ia){if(n.match_start=t,a=s,s>=o)break;m=c[i+a-1],f=c[i+a]}}while((t=d[t&u])>l&&--e!==0);return a<=n.lookahead?a:n.lookahead},jl=n=>{let t=n.w_size,e,i,r;do{if(i=n.window_size-n.lookahead-n.strstart,n.strstart>=t+(t-Kr)&&(n.window.set(n.window.subarray(t,t+t-i),0),n.match_start-=t,n.strstart-=t,n.block_start-=t,n.insert>n.strstart&&(n.insert=n.strstart),S8(n),i+=t),n.strm.avail_in===0)break;if(e=S1(n.strm,n.window,n.strstart+n.lookahead,i),n.lookahead+=e,n.lookahead+n.insert>=ut)for(r=n.strstart-n.insert,n.ins_h=n.window[r],n.ins_h=wa(n,n.ins_h,n.window[r+1]);n.insert&&(n.ins_h=wa(n,n.ins_h,n.window[r+ut-1]),n.prev[r&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=r,r++,n.insert--,!(n.lookahead+n.insert{let e=n.pending_buf_size-5>n.w_size?n.w_size:n.pending_buf_size-5,i,r,s,a=0,o=n.strm.avail_in;do{if(i=65535,s=n.bi_valid+42>>3,n.strm.avail_outr+n.strm.avail_in&&(i=r+n.strm.avail_in),i>s&&(i=s),i>8,n.pending_buf[n.pending-2]=~i,n.pending_buf[n.pending-1]=~i>>8,Sn(n.strm),r&&(r>i&&(r=i),n.strm.output.set(n.window.subarray(n.block_start,n.block_start+r),n.strm.next_out),n.strm.next_out+=r,n.strm.avail_out-=r,n.strm.total_out+=r,n.block_start+=r,i-=r),i&&(S1(n.strm,n.strm.output,n.strm.next_out,i),n.strm.next_out+=i,n.strm.avail_out-=i,n.strm.total_out+=i)}while(a===0);return o-=n.strm.avail_in,o&&(o>=n.w_size?(n.matches=2,n.window.set(n.strm.input.subarray(n.strm.next_in-n.w_size,n.strm.next_in),0),n.strstart=n.w_size,n.insert=n.strstart):(n.window_size-n.strstart<=o&&(n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,n.insert>n.strstart&&(n.insert=n.strstart)),n.window.set(n.strm.input.subarray(n.strm.next_in-o,n.strm.next_in),n.strstart),n.strstart+=o,n.insert+=o>n.w_size-n.insert?n.w_size-n.insert:o),n.block_start=n.strstart),n.high_waters&&n.block_start>=n.w_size&&(n.block_start-=n.w_size,n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,s+=n.w_size,n.insert>n.strstart&&(n.insert=n.strstart)),s>n.strm.avail_in&&(s=n.strm.avail_in),s&&(S1(n.strm,n.window,n.strstart,s),n.strstart+=s,n.insert+=s>n.w_size-n.insert?n.w_size-n.insert:s),n.high_water>3,s=n.pending_buf_size-s>65535?65535:n.pending_buf_size-s,e=s>n.w_size?n.w_size:s,r=n.strstart-n.block_start,(r>=e||(r||t===Qn)&&t!==Ca&&n.strm.avail_in===0&&r<=s)&&(i=r>s?s:r,a=t===Qn&&n.strm.avail_in===0&&i===r?1:0,v1(n,n.block_start,i,a),n.block_start+=i,Sn(n.strm)),a?go:Ki)},o1=(n,t)=>{let e,i;for(;;){if(n.lookahead=ut&&(n.ins_h=wa(n,n.ins_h,n.window[n.strstart+ut-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),e!==0&&n.strstart-e<=n.w_size-Kr&&(n.match_length=HD(n,e)),n.match_length>=ut)if(i=ya(n,n.strstart-n.match_start,n.match_length-ut),n.lookahead-=n.match_length,n.match_length<=n.max_lazy_match&&n.lookahead>=ut){n.match_length--;do n.strstart++,n.ins_h=wa(n,n.ins_h,n.window[n.strstart+ut-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart;while(--n.match_length!==0);n.strstart++}else n.strstart+=n.match_length,n.match_length=0,n.ins_h=n.window[n.strstart],n.ins_h=wa(n,n.ins_h,n.window[n.strstart+1]);else i=ya(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++;if(i&&(kn(n,!1),n.strm.avail_out===0))return Ki}return n.insert=n.strstart{let e,i,r;for(;;){if(n.lookahead=ut&&(n.ins_h=wa(n,n.ins_h,n.window[n.strstart+ut-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),n.prev_length=n.match_length,n.prev_match=n.match_start,n.match_length=ut-1,e!==0&&n.prev_length4096)&&(n.match_length=ut-1)),n.prev_length>=ut&&n.match_length<=n.prev_length){r=n.strstart+n.lookahead-ut,i=ya(n,n.strstart-1-n.prev_match,n.prev_length-ut),n.lookahead-=n.prev_length-1,n.prev_length-=2;do++n.strstart<=r&&(n.ins_h=wa(n,n.ins_h,n.window[n.strstart+ut-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart);while(--n.prev_length!==0);if(n.match_available=0,n.match_length=ut-1,n.strstart++,i&&(kn(n,!1),n.strm.avail_out===0))return Ki}else if(n.match_available){if(i=ya(n,0,n.window[n.strstart-1]),i&&kn(n,!1),n.strstart++,n.lookahead--,n.strm.avail_out===0)return Ki}else n.match_available=1,n.strstart++,n.lookahead--}return n.match_available&&(i=ya(n,0,n.window[n.strstart-1]),n.match_available=0),n.insert=n.strstart{let e,i,r,s,a=n.window;for(;;){if(n.lookahead<=ba){if(jl(n),n.lookahead<=ba&&t===Ca)return Ki;if(n.lookahead===0)break}if(n.match_length=0,n.lookahead>=ut&&n.strstart>0&&(r=n.strstart-1,i=a[r],i===a[++r]&&i===a[++r]&&i===a[++r])){s=n.strstart+ba;do;while(i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&rn.lookahead&&(n.match_length=n.lookahead)}if(n.match_length>=ut?(e=ya(n,1,n.match_length-ut),n.lookahead-=n.match_length,n.strstart+=n.match_length,n.match_length=0):(e=ya(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++),e&&(kn(n,!1),n.strm.avail_out===0))return Ki}return n.insert=0,t===Qn?(kn(n,!0),n.strm.avail_out===0?go:Gl):n.sym_next&&(kn(n,!1),n.strm.avail_out===0)?Ki:ql},T8=(n,t)=>{let e;for(;;){if(n.lookahead===0&&(jl(n),n.lookahead===0)){if(t===Ca)return Ki;break}if(n.match_length=0,e=ya(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++,e&&(kn(n,!1),n.strm.avail_out===0))return Ki}return n.insert=0,t===Qn?(kn(n,!0),n.strm.avail_out===0?go:Gl):n.sym_next&&(kn(n,!1),n.strm.avail_out===0)?Ki:ql};function Wr(n,t,e,i,r){this.good_length=n,this.max_lazy=t,this.nice_length=e,this.max_chain=i,this.func=r}var hd=[new Wr(0,0,0,0,jD),new Wr(4,4,8,4,o1),new Wr(4,5,16,8,o1),new Wr(4,6,32,32,o1),new Wr(4,4,16,16,Vl),new Wr(8,16,32,32,Vl),new Wr(8,16,128,128,Vl),new Wr(8,32,128,256,Vl),new Wr(32,128,258,1024,Vl),new Wr(32,258,258,4096,Vl)],E8=n=>{n.window_size=2*n.w_size,va(n.head),n.max_lazy_match=hd[n.level].max_lazy,n.good_match=hd[n.level].good_length,n.nice_match=hd[n.level].nice_length,n.max_chain_length=hd[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=ut-1,n.match_available=0,n.ins_h=0};function I8(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=$p,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(y8*2),this.dyn_dtree=new Uint16Array((2*v8+1)*2),this.bl_tree=new Uint16Array((2*b8+1)*2),va(this.dyn_ltree),va(this.dyn_dtree),va(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(C8+1),this.heap=new Uint16Array(2*b1+1),va(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*b1+1),va(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var kd=n=>{if(!n)return 1;let t=n.state;return!t||t.strm!==n||t.status!==Hl&&t.status!==I1&&t.status!==y1&&t.status!==C1&&t.status!==w1&&t.status!==x1&&t.status!==mo&&t.status!==dd?1:0},WD=n=>{if(kd(n))return fo(n,Gr);n.total_in=n.total_out=0,n.data_type=h8;let t=n.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?I1:t.wrap?Hl:mo,n.adler=t.wrap===2?0:1,t.last_flush=-2,t8(t),Ti},qD=n=>{let t=WD(n);return t===Ti&&E8(n.state),t},A8=(n,t)=>kd(n)||n.state.wrap!==2?Gr:(n.state.gzhead=t,Ti),GD=(n,t,e,i,r,s)=>{if(!n)return Gr;let a=1;if(t===o8&&(t=6),i<0?(a=0,i=-i):i>15&&(a=2,i-=16),r<1||r>m8||e!==$p||i<8||i>15||t<0||t>9||s<0||s>u8||i===8&&a!==1)return fo(n,Gr);i===8&&(i=9);let o=new I8;return n.state=o,o.strm=n,o.status=Hl,o.wrap=a,o.gzhead=null,o.w_bits=i,o.w_size=1<GD(n,t,$p,f8,p8,d8),R8=(n,t)=>{if(kd(n)||t>YA||t<0)return n?fo(n,Gr):Gr;let e=n.state;if(!n.output||n.avail_in!==0&&!n.input||e.status===dd&&t!==Qn)return fo(n,n.avail_out===0?a1:Gr);let i=e.last_flush;if(e.last_flush=t,e.pending!==0){if(Sn(n),n.avail_out===0)return e.last_flush=-1,Ti}else if(n.avail_in===0&&ZA(t)<=ZA(i)&&t!==Qn)return fo(n,a1);if(e.status===dd&&n.avail_in!==0)return fo(n,a1);if(e.status===Hl&&e.wrap===0&&(e.status=mo),e.status===Hl){let r=$p+(e.w_bits-8<<4)<<8,s=-1;if(e.strategy>=Ap||e.level<2?s=0:e.level<6?s=1:e.level===6?s=2:s=3,r|=s<<6,e.strstart!==0&&(r|=w8),r+=31-r%31,ud(e,r),e.strstart!==0&&(ud(e,n.adler>>>16),ud(e,n.adler&65535)),n.adler=1,e.status=mo,Sn(n),e.pending!==0)return e.last_flush=-1,Ti}if(e.status===I1){if(n.adler=0,yt(e,31),yt(e,139),yt(e,8),e.gzhead)yt(e,(e.gzhead.text?1:0)+(e.gzhead.hcrc?2:0)+(e.gzhead.extra?4:0)+(e.gzhead.name?8:0)+(e.gzhead.comment?16:0)),yt(e,e.gzhead.time&255),yt(e,e.gzhead.time>>8&255),yt(e,e.gzhead.time>>16&255),yt(e,e.gzhead.time>>24&255),yt(e,e.level===9?2:e.strategy>=Ap||e.level<2?4:0),yt(e,e.gzhead.os&255),e.gzhead.extra&&e.gzhead.extra.length&&(yt(e,e.gzhead.extra.length&255),yt(e,e.gzhead.extra.length>>8&255)),e.gzhead.hcrc&&(n.adler=fi(n.adler,e.pending_buf,e.pending,0)),e.gzindex=0,e.status=y1;else if(yt(e,0),yt(e,0),yt(e,0),yt(e,0),yt(e,0),yt(e,e.level===9?2:e.strategy>=Ap||e.level<2?4:0),yt(e,x8),e.status=mo,Sn(n),e.pending!==0)return e.last_flush=-1,Ti}if(e.status===y1){if(e.gzhead.extra){let r=e.pending,s=(e.gzhead.extra.length&65535)-e.gzindex;for(;e.pending+s>e.pending_buf_size;){let o=e.pending_buf_size-e.pending;if(e.pending_buf.set(e.gzhead.extra.subarray(e.gzindex,e.gzindex+o),e.pending),e.pending=e.pending_buf_size,e.gzhead.hcrc&&e.pending>r&&(n.adler=fi(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex+=o,Sn(n),e.pending!==0)return e.last_flush=-1,Ti;r=0,s-=o}let a=new Uint8Array(e.gzhead.extra);e.pending_buf.set(a.subarray(e.gzindex,e.gzindex+s),e.pending),e.pending+=s,e.gzhead.hcrc&&e.pending>r&&(n.adler=fi(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=C1}if(e.status===C1){if(e.gzhead.name){let r=e.pending,s;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(n.adler=fi(n.adler,e.pending_buf,e.pending-r,r)),Sn(n),e.pending!==0)return e.last_flush=-1,Ti;r=0}e.gzindexr&&(n.adler=fi(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=w1}if(e.status===w1){if(e.gzhead.comment){let r=e.pending,s;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(n.adler=fi(n.adler,e.pending_buf,e.pending-r,r)),Sn(n),e.pending!==0)return e.last_flush=-1,Ti;r=0}e.gzindexr&&(n.adler=fi(n.adler,e.pending_buf,e.pending-r,r))}e.status=x1}if(e.status===x1){if(e.gzhead.hcrc){if(e.pending+2>e.pending_buf_size&&(Sn(n),e.pending!==0))return e.last_flush=-1,Ti;yt(e,n.adler&255),yt(e,n.adler>>8&255),n.adler=0}if(e.status=mo,Sn(n),e.pending!==0)return e.last_flush=-1,Ti}if(n.avail_in!==0||e.lookahead!==0||t!==Ca&&e.status!==dd){let r=e.level===0?jD(e,t):e.strategy===Ap?T8(e,t):e.strategy===c8?M8(e,t):hd[e.level].func(e,t);if((r===go||r===Gl)&&(e.status=dd),r===Ki||r===go)return n.avail_out===0&&(e.last_flush=-1),Ti;if(r===ql&&(t===r8?n8(e):t!==YA&&(v1(e,0,0,!1),t===s8&&(va(e.head),e.lookahead===0&&(e.strstart=0,e.block_start=0,e.insert=0))),Sn(n),n.avail_out===0))return e.last_flush=-1,Ti}return t!==Qn?Ti:e.wrap<=0?QA:(e.wrap===2?(yt(e,n.adler&255),yt(e,n.adler>>8&255),yt(e,n.adler>>16&255),yt(e,n.adler>>24&255),yt(e,n.total_in&255),yt(e,n.total_in>>8&255),yt(e,n.total_in>>16&255),yt(e,n.total_in>>24&255)):(ud(e,n.adler>>>16),ud(e,n.adler&65535)),Sn(n),e.wrap>0&&(e.wrap=-e.wrap),e.pending!==0?Ti:QA)},L8=n=>{if(kd(n))return Gr;let t=n.state.status;return n.state=null,t===mo?fo(n,a8):Ti},O8=(n,t)=>{let e=t.length;if(kd(n))return Gr;let i=n.state,r=i.wrap;if(r===2||r===1&&i.status!==Hl||i.lookahead)return Gr;if(r===1&&(n.adler=yd(n.adler,t,e,0)),i.wrap=0,e>=i.w_size){r===0&&(va(i.head),i.strstart=0,i.block_start=0,i.insert=0);let l=new Uint8Array(i.w_size);l.set(t.subarray(e-i.w_size,e),0),t=l,e=i.w_size}let s=n.avail_in,a=n.next_in,o=n.input;for(n.avail_in=e,n.next_in=0,n.input=t,jl(i);i.lookahead>=ut;){let l=i.strstart,c=i.lookahead-(ut-1);do i.ins_h=wa(i,i.ins_h,i.window[l+ut-1]),i.prev[l&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=l,l++;while(--c);i.strstart=l,i.lookahead=ut-1,jl(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=ut-1,i.match_available=0,n.next_in=a,n.input=o,n.avail_in=s,i.wrap=r,Ti},N8=D8,F8=GD,P8=qD,U8=WD,$8=A8,V8=R8,B8=L8,z8=O8,H8="pako deflate (from Nodeca project)",fd={deflateInit:N8,deflateInit2:F8,deflateReset:P8,deflateResetKeep:U8,deflateSetHeader:$8,deflate:V8,deflateEnd:B8,deflateSetDictionary:z8,deflateInfo:H8},j8=(n,t)=>Object.prototype.hasOwnProperty.call(n,t),W8=function(n){let t=Array.prototype.slice.call(arguments,1);for(;t.length;){let e=t.shift();if(e){if(typeof e!="object")throw new TypeError(e+"must be non-object");for(let i in e)j8(e,i)&&(n[i]=e[i])}}return n},q8=n=>{let t=0;for(let i=0,r=n.length;i=252?6:n>=248?5:n>=240?4:n>=224?3:n>=192?2:1;Cd[254]=Cd[254]=1;var G8=n=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(n);let t,e,i,r,s,a=n.length,o=0;for(r=0;r>>6,t[s++]=128|e&63):e<65536?(t[s++]=224|e>>>12,t[s++]=128|e>>>6&63,t[s++]=128|e&63):(t[s++]=240|e>>>18,t[s++]=128|e>>>12&63,t[s++]=128|e>>>6&63,t[s++]=128|e&63);return t},K8=(n,t)=>{if(t<65534&&n.subarray&&KD)return String.fromCharCode.apply(null,n.length===t?n:n.subarray(0,t));let e="";for(let i=0;i{let e=t||n.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(n.subarray(0,t));let i,r,s=new Array(e*2);for(r=0,i=0;i4){s[r++]=65533,i+=o-1;continue}for(a&=o===2?31:o===3?15:7;o>1&&i1){s[r++]=65533;continue}a<65536?s[r++]=a:(a-=65536,s[r++]=55296|a>>10&1023,s[r++]=56320|a&1023)}return K8(s,r)},Q8=(n,t)=>{t=t||n.length,t>n.length&&(t=n.length);let e=t-1;for(;e>=0&&(n[e]&192)===128;)e--;return e<0||e===0?t:e+Cd[n[e]]>t?e:t},wd={string2buf:G8,buf2string:Y8,utf8border:Q8};function Z8(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var YD=Z8,QD=Object.prototype.toString,{Z_NO_FLUSH:X8,Z_SYNC_FLUSH:J8,Z_FULL_FLUSH:ej,Z_FINISH:tj,Z_OK:Pp,Z_STREAM_END:ij,Z_DEFAULT_COMPRESSION:nj,Z_DEFAULT_STRATEGY:rj,Z_DEFLATED:sj}=vo;function Md(n){this.options=Vp.assign({level:nj,method:sj,chunkSize:16384,windowBits:15,memLevel:8,strategy:rj},n||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new YD,this.strm.avail_out=0;let e=fd.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(e!==Pp)throw new Error(po[e]);if(t.header&&fd.deflateSetHeader(this.strm,t.header),t.dictionary){let i;if(typeof t.dictionary=="string"?i=wd.string2buf(t.dictionary):QD.call(t.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(t.dictionary):i=t.dictionary,e=fd.deflateSetDictionary(this.strm,i),e!==Pp)throw new Error(po[e]);this._dict_set=!0}}Md.prototype.push=function(n,t){let e=this.strm,i=this.options.chunkSize,r,s;if(this.ended)return!1;for(t===~~t?s=t:s=t===!0?tj:X8,typeof n=="string"?e.input=wd.string2buf(n):QD.call(n)==="[object ArrayBuffer]"?e.input=new Uint8Array(n):e.input=n,e.next_in=0,e.avail_in=e.input.length;;){if(e.avail_out===0&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),(s===J8||s===ej)&&e.avail_out<=6){this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;continue}if(r=fd.deflate(e,s),r===ij)return e.next_out>0&&this.onData(e.output.subarray(0,e.next_out)),r=fd.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Pp;if(e.avail_out===0){this.onData(e.output);continue}if(s>0&&e.next_out>0){this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;continue}if(e.avail_in===0)break}return!0};Md.prototype.onData=function(n){this.chunks.push(n)};Md.prototype.onEnd=function(n){n===Pp&&(this.result=Vp.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};function A1(n,t){let e=new Md(t);if(e.push(n,!0),e.err)throw e.msg||po[e.err];return e.result}function aj(n,t){return t=t||{},t.raw=!0,A1(n,t)}function oj(n,t){return t=t||{},t.gzip=!0,A1(n,t)}var lj=Md,cj=A1,uj=aj,dj=oj,hj=vo,mj={Deflate:lj,deflate:cj,deflateRaw:uj,gzip:dj,constants:hj},Dp=16209,fj=16191,pj=function(t,e){let i,r,s,a,o,l,c,u,d,h,m,f,g,v,w,C,k,x,y,E,T,M,D,_,p=t.state;i=t.next_in,D=t.input,r=i+(t.avail_in-5),s=t.next_out,_=t.output,a=s-(e-t.avail_out),o=s+(t.avail_out-257),l=p.dmax,c=p.wsize,u=p.whave,d=p.wnext,h=p.window,m=p.hold,f=p.bits,g=p.lencode,v=p.distcode,w=(1<>>24,m>>>=x,f-=x,x=k>>>16&255,x===0)_[s++]=k&65535;else if(x&16){y=k&65535,x&=15,x&&(f>>=x,f-=x),f<15&&(m+=D[i++]<>>24,m>>>=x,f-=x,x=k>>>16&255,x&16){if(E=k&65535,x&=15,fl){t.msg="invalid distance too far back",p.mode=Dp;break e}if(m>>>=x,f-=x,x=s-a,E>x){if(x=E-x,x>u&&p.sane){t.msg="invalid distance too far back",p.mode=Dp;break e}if(T=0,M=h,d===0){if(T+=c-x,x2;)_[s++]=M[T++],_[s++]=M[T++],_[s++]=M[T++],y-=3;y&&(_[s++]=M[T++],y>1&&(_[s++]=M[T++]))}else{T=s-E;do _[s++]=_[T++],_[s++]=_[T++],_[s++]=_[T++],y-=3;while(y>2);y&&(_[s++]=_[T++],y>1&&(_[s++]=_[T++]))}}else if(x&64){t.msg="invalid distance code",p.mode=Dp;break e}else{k=v[(k&65535)+(m&(1<>3,i-=y,f-=y<<3,m&=(1<{let l=o.bits,c=0,u=0,d=0,h=0,m=0,f=0,g=0,v=0,w=0,C=0,k,x,y,E,T,M=null,D,_=new Uint16Array(Bl+1),p=new Uint16Array(Bl+1),b=null,S,I,A;for(c=0;c<=Bl;c++)_[c]=0;for(u=0;u=1&&_[h]===0;h--);if(m>h&&(m=h),h===0)return r[s++]=1<<24|64<<16|0,r[s++]=1<<24|64<<16|0,o.bits=1,0;for(d=1;d0&&(n===eD||h!==1))return-1;for(p[1]=0,c=1;cXA||n===tD&&w>JA)return 1;for(;;){S=c-g,a[u]+1=D?(I=b[a[u]-D],A=M[a[u]-D]):(I=96,A=0),k=1<>g)+x]=S<<24|I<<16|A|0;while(x!==0);for(k=1<>=1;if(k!==0?(C&=k-1,C+=k):C=0,u++,--_[c]===0){if(c===h)break;c=t[e+a[u]]}if(c>m&&(C&E)!==y){for(g===0&&(g=m),T+=d,f=c-g,v=1<XA||n===tD&&w>JA)return 1;y=C&E,r[y]=m<<24|f<<16|T-s|0}}return C!==0&&(r[T+C]=c-g<<24|64<<16|0),o.bits=m,0},pd=yj,Cj=0,ZD=1,XD=2,{Z_FINISH:iD,Z_BLOCK:wj,Z_TREES:Rp,Z_OK:_o,Z_STREAM_END:xj,Z_NEED_DICT:Sj,Z_STREAM_ERROR:Zn,Z_DATA_ERROR:JD,Z_MEM_ERROR:eR,Z_BUF_ERROR:kj,Z_DEFLATED:nD}=vo,Bp=16180,rD=16181,sD=16182,aD=16183,oD=16184,lD=16185,cD=16186,uD=16187,dD=16188,hD=16189,Up=16190,As=16191,c1=16192,mD=16193,u1=16194,fD=16195,pD=16196,gD=16197,_D=16198,Lp=16199,Op=16200,vD=16201,bD=16202,yD=16203,CD=16204,wD=16205,d1=16206,xD=16207,SD=16208,Ht=16209,tR=16210,iR=16211,Mj=852,Tj=592,Ej=15,Ij=Ej,kD=n=>(n>>>24&255)+(n>>>8&65280)+((n&65280)<<8)+((n&255)<<24);function Aj(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var bo=n=>{if(!n)return 1;let t=n.state;return!t||t.strm!==n||t.modeiR?1:0},nR=n=>{if(bo(n))return Zn;let t=n.state;return n.total_in=n.total_out=t.total=0,n.msg="",t.wrap&&(n.adler=t.wrap&1),t.mode=Bp,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(Mj),t.distcode=t.distdyn=new Int32Array(Tj),t.sane=1,t.back=-1,_o},rR=n=>{if(bo(n))return Zn;let t=n.state;return t.wsize=0,t.whave=0,t.wnext=0,nR(n)},sR=(n,t)=>{let e;if(bo(n))return Zn;let i=n.state;return t<0?(e=0,t=-t):(e=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?Zn:(i.window!==null&&i.wbits!==t&&(i.window=null),i.wrap=e,i.wbits=t,rR(n))},aR=(n,t)=>{if(!n)return Zn;let e=new Aj;n.state=e,e.strm=n,e.window=null,e.mode=Bp;let i=sR(n,t);return i!==_o&&(n.state=null),i},Dj=n=>aR(n,Ij),MD=!0,h1,m1,Rj=n=>{if(MD){h1=new Int32Array(512),m1=new Int32Array(32);let t=0;for(;t<144;)n.lens[t++]=8;for(;t<256;)n.lens[t++]=9;for(;t<280;)n.lens[t++]=7;for(;t<288;)n.lens[t++]=8;for(pd(ZD,n.lens,0,288,h1,0,n.work,{bits:9}),t=0;t<32;)n.lens[t++]=5;pd(XD,n.lens,0,32,m1,0,n.work,{bits:5}),MD=!1}n.lencode=h1,n.lenbits=9,n.distcode=m1,n.distbits=5},oR=(n,t,e,i)=>{let r,s=n.state;return s.window===null&&(s.wsize=1<=s.wsize?(s.window.set(t.subarray(e-s.wsize,e),0),s.wnext=0,s.whave=s.wsize):(r=s.wsize-s.wnext,r>i&&(r=i),s.window.set(t.subarray(e-i,e-i+r),s.wnext),i-=r,i?(s.window.set(t.subarray(e-i,e),0),s.wnext=i,s.whave=s.wsize):(s.wnext+=r,s.wnext===s.wsize&&(s.wnext=0),s.whave{let e,i,r,s,a,o,l,c,u,d,h,m,f,g,v=0,w,C,k,x,y,E,T,M,D=new Uint8Array(4),_,p,b=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(bo(n)||!n.output||!n.input&&n.avail_in!==0)return Zn;e=n.state,e.mode===As&&(e.mode=c1),a=n.next_out,r=n.output,l=n.avail_out,s=n.next_in,i=n.input,o=n.avail_in,c=e.hold,u=e.bits,d=o,h=l,M=_o;e:for(;;)switch(e.mode){case Bp:if(e.wrap===0){e.mode=c1;break}for(;u<16;){if(o===0)break e;o--,c+=i[s++]<>>8&255,e.check=fi(e.check,D,2,0),c=0,u=0,e.mode=rD;break}if(e.head&&(e.head.done=!1),!(e.wrap&1)||(((c&255)<<8)+(c>>8))%31){n.msg="incorrect header check",e.mode=Ht;break}if((c&15)!==nD){n.msg="unknown compression method",e.mode=Ht;break}if(c>>>=4,u-=4,T=(c&15)+8,e.wbits===0&&(e.wbits=T),T>15||T>e.wbits){n.msg="invalid window size",e.mode=Ht;break}e.dmax=1<>8&1),e.flags&512&&e.wrap&4&&(D[0]=c&255,D[1]=c>>>8&255,e.check=fi(e.check,D,2,0)),c=0,u=0,e.mode=sD;case sD:for(;u<32;){if(o===0)break e;o--,c+=i[s++]<>>8&255,D[2]=c>>>16&255,D[3]=c>>>24&255,e.check=fi(e.check,D,4,0)),c=0,u=0,e.mode=aD;case aD:for(;u<16;){if(o===0)break e;o--,c+=i[s++]<>8),e.flags&512&&e.wrap&4&&(D[0]=c&255,D[1]=c>>>8&255,e.check=fi(e.check,D,2,0)),c=0,u=0,e.mode=oD;case oD:if(e.flags&1024){for(;u<16;){if(o===0)break e;o--,c+=i[s++]<>>8&255,e.check=fi(e.check,D,2,0)),c=0,u=0}else e.head&&(e.head.extra=null);e.mode=lD;case lD:if(e.flags&1024&&(m=e.length,m>o&&(m=o),m&&(e.head&&(T=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Uint8Array(e.head.extra_len)),e.head.extra.set(i.subarray(s,s+m),T)),e.flags&512&&e.wrap&4&&(e.check=fi(e.check,i,m,s)),o-=m,s+=m,e.length-=m),e.length))break e;e.length=0,e.mode=cD;case cD:if(e.flags&2048){if(o===0)break e;m=0;do T=i[s+m++],e.head&&T&&e.length<65536&&(e.head.name+=String.fromCharCode(T));while(T&&m>9&1,e.head.done=!0),n.adler=e.check=0,e.mode=As;break;case hD:for(;u<32;){if(o===0)break e;o--,c+=i[s++]<>>=u&7,u-=u&7,e.mode=d1;break}for(;u<3;){if(o===0)break e;o--,c+=i[s++]<>>=1,u-=1,c&3){case 0:e.mode=mD;break;case 1:if(Rj(e),e.mode=Lp,t===Rp){c>>>=2,u-=2;break e}break;case 2:e.mode=pD;break;case 3:n.msg="invalid block type",e.mode=Ht}c>>>=2,u-=2;break;case mD:for(c>>>=u&7,u-=u&7;u<32;){if(o===0)break e;o--,c+=i[s++]<>>16^65535)){n.msg="invalid stored block lengths",e.mode=Ht;break}if(e.length=c&65535,c=0,u=0,e.mode=u1,t===Rp)break e;case u1:e.mode=fD;case fD:if(m=e.length,m){if(m>o&&(m=o),m>l&&(m=l),m===0)break e;r.set(i.subarray(s,s+m),a),o-=m,s+=m,l-=m,a+=m,e.length-=m;break}e.mode=As;break;case pD:for(;u<14;){if(o===0)break e;o--,c+=i[s++]<>>=5,u-=5,e.ndist=(c&31)+1,c>>>=5,u-=5,e.ncode=(c&15)+4,c>>>=4,u-=4,e.nlen>286||e.ndist>30){n.msg="too many length or distance symbols",e.mode=Ht;break}e.have=0,e.mode=gD;case gD:for(;e.have>>=3,u-=3}for(;e.have<19;)e.lens[b[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,_={bits:e.lenbits},M=pd(Cj,e.lens,0,19,e.lencode,0,e.work,_),e.lenbits=_.bits,M){n.msg="invalid code lengths set",e.mode=Ht;break}e.have=0,e.mode=_D;case _D:for(;e.have>>24,C=v>>>16&255,k=v&65535,!(w<=u);){if(o===0)break e;o--,c+=i[s++]<>>=w,u-=w,e.lens[e.have++]=k;else{if(k===16){for(p=w+2;u>>=w,u-=w,e.have===0){n.msg="invalid bit length repeat",e.mode=Ht;break}T=e.lens[e.have-1],m=3+(c&3),c>>>=2,u-=2}else if(k===17){for(p=w+3;u>>=w,u-=w,T=0,m=3+(c&7),c>>>=3,u-=3}else{for(p=w+7;u>>=w,u-=w,T=0,m=11+(c&127),c>>>=7,u-=7}if(e.have+m>e.nlen+e.ndist){n.msg="invalid bit length repeat",e.mode=Ht;break}for(;m--;)e.lens[e.have++]=T}}if(e.mode===Ht)break;if(e.lens[256]===0){n.msg="invalid code -- missing end-of-block",e.mode=Ht;break}if(e.lenbits=9,_={bits:e.lenbits},M=pd(ZD,e.lens,0,e.nlen,e.lencode,0,e.work,_),e.lenbits=_.bits,M){n.msg="invalid literal/lengths set",e.mode=Ht;break}if(e.distbits=6,e.distcode=e.distdyn,_={bits:e.distbits},M=pd(XD,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,_),e.distbits=_.bits,M){n.msg="invalid distances set",e.mode=Ht;break}if(e.mode=Lp,t===Rp)break e;case Lp:e.mode=Op;case Op:if(o>=6&&l>=258){n.next_out=a,n.avail_out=l,n.next_in=s,n.avail_in=o,e.hold=c,e.bits=u,pj(n,h),a=n.next_out,r=n.output,l=n.avail_out,s=n.next_in,i=n.input,o=n.avail_in,c=e.hold,u=e.bits,e.mode===As&&(e.back=-1);break}for(e.back=0;v=e.lencode[c&(1<>>24,C=v>>>16&255,k=v&65535,!(w<=u);){if(o===0)break e;o--,c+=i[s++]<>x)],w=v>>>24,C=v>>>16&255,k=v&65535,!(x+w<=u);){if(o===0)break e;o--,c+=i[s++]<>>=x,u-=x,e.back+=x}if(c>>>=w,u-=w,e.back+=w,e.length=k,C===0){e.mode=wD;break}if(C&32){e.back=-1,e.mode=As;break}if(C&64){n.msg="invalid literal/length code",e.mode=Ht;break}e.extra=C&15,e.mode=vD;case vD:if(e.extra){for(p=e.extra;u>>=e.extra,u-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=bD;case bD:for(;v=e.distcode[c&(1<>>24,C=v>>>16&255,k=v&65535,!(w<=u);){if(o===0)break e;o--,c+=i[s++]<>x)],w=v>>>24,C=v>>>16&255,k=v&65535,!(x+w<=u);){if(o===0)break e;o--,c+=i[s++]<>>=x,u-=x,e.back+=x}if(c>>>=w,u-=w,e.back+=w,C&64){n.msg="invalid distance code",e.mode=Ht;break}e.offset=k,e.extra=C&15,e.mode=yD;case yD:if(e.extra){for(p=e.extra;u>>=e.extra,u-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){n.msg="invalid distance too far back",e.mode=Ht;break}e.mode=CD;case CD:if(l===0)break e;if(m=h-l,e.offset>m){if(m=e.offset-m,m>e.whave&&e.sane){n.msg="invalid distance too far back",e.mode=Ht;break}m>e.wnext?(m-=e.wnext,f=e.wsize-m):f=e.wnext-m,m>e.length&&(m=e.length),g=e.window}else g=r,f=a-e.offset,m=e.length;m>l&&(m=l),l-=m,e.length-=m;do r[a++]=g[f++];while(--m);e.length===0&&(e.mode=Op);break;case wD:if(l===0)break e;r[a++]=e.length,l--,e.mode=Op;break;case d1:if(e.wrap){for(;u<32;){if(o===0)break e;o--,c|=i[s++]<{if(bo(n))return Zn;let t=n.state;return t.window&&(t.window=null),n.state=null,_o},Nj=(n,t)=>{if(bo(n))return Zn;let e=n.state;return e.wrap&2?(e.head=t,t.done=!1,_o):Zn},Fj=(n,t)=>{let e=t.length,i,r,s;return bo(n)||(i=n.state,i.wrap!==0&&i.mode!==Up)?Zn:i.mode===Up&&(r=1,r=yd(r,t,e,0),r!==i.check)?JD:(s=oR(n,t,e,e),s?(i.mode=tR,eR):(i.havedict=1,_o))},Pj=rR,Uj=sR,$j=nR,Vj=Dj,Bj=aR,zj=Lj,Hj=Oj,jj=Nj,Wj=Fj,qj="pako inflate (from Nodeca project)",Rs={inflateReset:Pj,inflateReset2:Uj,inflateResetKeep:$j,inflateInit:Vj,inflateInit2:Bj,inflate:zj,inflateEnd:Hj,inflateGetHeader:jj,inflateSetDictionary:Wj,inflateInfo:qj};function Gj(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var Kj=Gj,lR=Object.prototype.toString,{Z_NO_FLUSH:Yj,Z_FINISH:Qj,Z_OK:xd,Z_STREAM_END:f1,Z_NEED_DICT:p1,Z_STREAM_ERROR:Zj,Z_DATA_ERROR:TD,Z_MEM_ERROR:Xj}=vo;function Td(n){this.options=Vp.assign({chunkSize:1024*64,windowBits:15,to:""},n||{});let t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(n&&n.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new YD,this.strm.avail_out=0;let e=Rs.inflateInit2(this.strm,t.windowBits);if(e!==xd)throw new Error(po[e]);if(this.header=new Kj,Rs.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=wd.string2buf(t.dictionary):lR.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(e=Rs.inflateSetDictionary(this.strm,t.dictionary),e!==xd)))throw new Error(po[e])}Td.prototype.push=function(n,t){let e=this.strm,i=this.options.chunkSize,r=this.options.dictionary,s,a,o;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?Qj:Yj,lR.call(n)==="[object ArrayBuffer]"?e.input=new Uint8Array(n):e.input=n,e.next_in=0,e.avail_in=e.input.length;;){for(e.avail_out===0&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),s=Rs.inflate(e,a),s===p1&&r&&(s=Rs.inflateSetDictionary(e,r),s===xd?s=Rs.inflate(e,a):s===TD&&(s=p1));e.avail_in>0&&s===f1&&e.state.wrap>0&&n[e.next_in]!==0;)Rs.inflateReset(e),s=Rs.inflate(e,a);switch(s){case Zj:case TD:case p1:case Xj:return this.onEnd(s),this.ended=!0,!1}if(o=e.avail_out,e.next_out&&(e.avail_out===0||s===f1))if(this.options.to==="string"){let l=wd.utf8border(e.output,e.next_out),c=e.next_out-l,u=wd.buf2string(e.output,l);e.next_out=c,e.avail_out=i-c,c&&e.output.set(e.output.subarray(l,l+c),0),this.onData(u)}else this.onData(e.output.length===e.next_out?e.output:e.output.subarray(0,e.next_out));if(!(s===xd&&o===0)){if(s===f1)return s=Rs.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(e.avail_in===0)break}}return!0};Td.prototype.onData=function(n){this.chunks.push(n)};Td.prototype.onEnd=function(n){n===xd&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Vp.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};function D1(n,t){let e=new Td(t);if(e.push(n),e.err)throw e.msg||po[e.err];return e.result}function Jj(n,t){return t=t||{},t.raw=!0,D1(n,t)}var e9=Td,t9=D1,i9=Jj,n9=D1,r9=vo,s9={Inflate:e9,inflate:t9,inflateRaw:i9,ungzip:n9,constants:r9},{Deflate:a9,deflate:o9,deflateRaw:l9,gzip:c9}=mj,{Inflate:u9,inflate:d9,inflateRaw:h9,ungzip:m9}=s9,f9=a9,p9=o9,g9=l9,_9=c9,v9=u9,b9=d9,y9=h9,C9=m9,w9=vo,cR={Deflate:f9,deflate:p9,deflateRaw:g9,gzip:_9,Inflate:v9,inflate:b9,inflateRaw:y9,ungzip:C9,constants:w9};var FR=Os(dR()),PR=Os(m_());var yo=class{constructor(t,e,i,r=[],s=null){this.extractedProfiles=[],this.validationParameters=[],this.loading=!1,this.filename=t,this.resource=e,this.validationParameters=r,i?this.mimetype=i:t.endsWith(".json")?this.mimetype="application/fhir+json":this.mimetype="application/fhir+xml",this.date=new Date,this.validationProfile=s;try{this.mimetype==="application/fhir+json"?this.extractJsonInfo():this.extractXmlInfo()}catch(a){console.error("Error parsing resource to validate: ",a)}}getErrors(){if(this.result)return this.result.issues.filter(t=>t.severity==="error"||t.severity==="fatal").length}getWarnings(){if(this.result)return this.result.issues.filter(t=>t.severity==="warning").length}getInfos(){if(this.result)return this.result.issues.filter(t=>t.severity==="information").length}setOperationOutcome(t){this.result=Wt.fromOperationOutcome(t)}setAiRecommendation(t){this.aiRecommendation=t.text.div}extractJsonInfo(){let t=JSON.parse(this.resource);t?.resourceType&&(this.resourceType=t.resourceType,this.resourceId=t.id),t.meta?.profile&&this.extractedProfiles.push(...t.meta.profile)}extractXmlInfo(){let t=this.resource.indexOf("",e);if(e0&&(r=r.substring(0,s)),s=r.indexOf(":"),s>0&&(r=r.substring(s+1)),this.resourceType=r;let a=this.resource.indexOf("profile",i);if(a>0){let o=this.resource.indexOf('value="',a)+7,l=this.resource.indexOf('"',o);oi.valueString!==void 0).map(i=>i.valueString);this.formControl.setValue(e.join(` -`))}else this.formControl.setValue(t.extension[0].valueString)}},Ed=class{constructor(t,e){this.name=t,this.value=e}};var Hp=class{};var hR=["toast-component",""];function x9(n,t){if(n&1){let e=We();N(0,"button",5),J("click",function(){te(e);let r=Y();return ie(r.remove())}),N(1,"span",6),B(2,"\xD7"),F()()}}function S9(n,t){if(n&1&&(Ji(0),B(1),en()),n&2){let e=Y(2);$(),Ye("[",e.duplicatesCount+1,"]")}}function k9(n,t){if(n&1&&(N(0,"div"),B(1),le(2,S9,2,1,"ng-container",4),F()),n&2){let e=Y();bt(e.options.titleClass),Me("aria-label",e.title),$(),Ye(" ",e.title," "),$(),z("ngIf",e.duplicatesCount)}}function M9(n,t){if(n&1&&ne(0,"div",7),n&2){let e=Y();bt(e.options.messageClass),z("innerHTML",e.message,nc)}}function T9(n,t){if(n&1&&(N(0,"div",8),B(1),F()),n&2){let e=Y();bt(e.options.messageClass),Me("aria-label",e.message),$(),Ye(" ",e.message," ")}}function E9(n,t){if(n&1&&(N(0,"div"),ne(1,"div",9),F()),n&2){let e=Y();$(),ai("width",e.width()+"%")}}function I9(n,t){if(n&1){let e=We();N(0,"button",5),J("click",function(){te(e);let r=Y();return ie(r.remove())}),N(1,"span",6),B(2,"\xD7"),F()()}}function A9(n,t){if(n&1&&(Ji(0),B(1),en()),n&2){let e=Y(2);$(),Ye("[",e.duplicatesCount+1,"]")}}function D9(n,t){if(n&1&&(N(0,"div"),B(1),le(2,A9,2,1,"ng-container",4),F()),n&2){let e=Y();bt(e.options.titleClass),Me("aria-label",e.title),$(),Ye(" ",e.title," "),$(),z("ngIf",e.duplicatesCount)}}function R9(n,t){if(n&1&&ne(0,"div",7),n&2){let e=Y();bt(e.options.messageClass),z("innerHTML",e.message,nc)}}function L9(n,t){if(n&1&&(N(0,"div",8),B(1),F()),n&2){let e=Y();bt(e.options.messageClass),Me("aria-label",e.message),$(),Ye(" ",e.message," ")}}function O9(n,t){if(n&1&&(N(0,"div"),ne(1,"div",9),F()),n&2){let e=Y();$(),ai("width",e.width()+"%")}}var L1=class{_attachedHost;component;viewContainerRef;injector;constructor(t,e){this.component=t,this.injector=e}attach(t,e){return this._attachedHost=t,t.attach(this,e)}detach(){let t=this._attachedHost;if(t)return this._attachedHost=void 0,t.detach()}get isAttached(){return this._attachedHost!=null}setAttachedHost(t){this._attachedHost=t}},O1=class{_attachedPortal;_disposeFn;attach(t,e){return this._attachedPortal=t,this.attachComponentPortal(t,e)}detach(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)}setDisposeFn(t){this._disposeFn=t}},N1=class{_overlayRef;componentInstance;duplicatesCount=0;_afterClosed=new me;_activate=new me;_manualClose=new me;_resetTimeout=new me;_countDuplicate=new me;constructor(t){this._overlayRef=t}manualClose(){this._manualClose.next(),this._manualClose.complete()}manualClosed(){return this._manualClose.asObservable()}timeoutReset(){return this._resetTimeout.asObservable()}countDuplicate(){return this._countDuplicate.asObservable()}close(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()}afterClosed(){return this._afterClosed.asObservable()}isInactive(){return this._activate.isStopped}activate(){this._activate.next(),this._activate.complete()}afterActivate(){return this._activate.asObservable()}onDuplicate(t,e){t&&this._resetTimeout.next(),e&&this._countDuplicate.next(++this.duplicatesCount)}},Kl=class{toastId;config;message;title;toastType;toastRef;_onTap=new me;_onAction=new me;constructor(t,e,i,r,s,a){this.toastId=t,this.config=e,this.message=i,this.title=r,this.toastType=s,this.toastRef=a,this.toastRef.afterClosed().subscribe(()=>{this._onAction.complete(),this._onTap.complete()})}triggerTap(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()}onTap(){return this._onTap.asObservable()}triggerAction(t){this._onAction.next(t)}onAction(){return this._onAction.asObservable()}},mR={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,includeTitleDuplicates:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing"},fR=new ee("ToastConfig"),F1=class extends O1{_hostDomElement;_componentFactoryResolver;_appRef;constructor(t,e,i){super(),this._hostDomElement=t,this._componentFactoryResolver=e,this._appRef=i}attachComponentPortal(t,e){let i=this._componentFactoryResolver.resolveComponentFactory(t.component),r;return r=i.create(t.injector),this._appRef.attachView(r.hostView),this.setDisposeFn(()=>{this._appRef.detachView(r.hostView),r.destroy()}),e?this._hostDomElement.insertBefore(this._getComponentRootNode(r),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(r)),r}_getComponentRootNode(t){return t.hostView.rootNodes[0]}},N9=(()=>{class n{_document=L(it);_containerElement;ngOnDestroy(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){let e=this._document.createElement("div");e.classList.add("overlay-container"),e.setAttribute("aria-live","polite"),this._document.body.appendChild(e),this._containerElement=e}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),P1=class{_portalHost;constructor(t){this._portalHost=t}attach(t,e=!0){return this._portalHost.attach(t,e)}detach(){return this._portalHost.detach()}},F9=(()=>{class n{_overlayContainer=L(N9);_componentFactoryResolver=L(UC);_appRef=L(tr);_document=L(it);_paneElements=new Map;create(e,i){return this._createOverlayRef(this.getPaneElement(e,i))}getPaneElement(e="",i){return this._paneElements.get(i)||this._paneElements.set(i,{}),this._paneElements.get(i)[e]||(this._paneElements.get(i)[e]=this._createPaneElement(e,i)),this._paneElements.get(i)[e]}_createPaneElement(e,i){let r=this._document.createElement("div");return r.id="toast-container",r.classList.add(e),r.classList.add("toast-container"),i?i.getContainerElement().appendChild(r):this._overlayContainer.getContainerElement().appendChild(r),r}_createPortalHost(e){return new F1(e,this._componentFactoryResolver,this._appRef)}_createOverlayRef(e){return new P1(this._createPortalHost(e))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),jp=(()=>{class n{overlay;_injector;sanitizer;ngZone;toastrConfig;currentlyActive=0;toasts=[];overlayContainer;previousToastMessage;index=0;constructor(e,i,r,s,a){this.overlay=i,this._injector=r,this.sanitizer=s,this.ngZone=a,this.toastrConfig=j(j({},e.default),e.config),e.config.iconClasses&&(this.toastrConfig.iconClasses=j(j({},e.default.iconClasses),e.config.iconClasses))}show(e,i,r={},s=""){return this._preBuildNotification(s,e,i,this.applyConfig(r))}success(e,i,r={}){let s=this.toastrConfig.iconClasses.success||"";return this._preBuildNotification(s,e,i,this.applyConfig(r))}error(e,i,r={}){let s=this.toastrConfig.iconClasses.error||"";return this._preBuildNotification(s,e,i,this.applyConfig(r))}info(e,i,r={}){let s=this.toastrConfig.iconClasses.info||"";return this._preBuildNotification(s,e,i,this.applyConfig(r))}warning(e,i,r={}){let s=this.toastrConfig.iconClasses.warning||"";return this._preBuildNotification(s,e,i,this.applyConfig(r))}clear(e){for(let i of this.toasts)if(e!==void 0){if(i.toastId===e){i.toastRef.manualClose();return}}else i.toastRef.manualClose()}remove(e){let i=this._findToast(e);if(!i||(i.activeToast.toastRef.close(),this.toasts.splice(i.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length))return!1;if(this.currentlyActivethis._buildNotification(e,i,r,s)):this._buildNotification(e,i,r,s)}_buildNotification(e,i,r,s){if(!s.toastComponent)throw new Error("toastComponent required");let a=this.findDuplicate(r,i,this.toastrConfig.resetTimeoutOnDuplicate&&s.timeOut>0,this.toastrConfig.countDuplicates);if((this.toastrConfig.includeTitleDuplicates&&r||i)&&this.toastrConfig.preventDuplicates&&a!==null)return a;this.previousToastMessage=i;let o=!1;this.toastrConfig.maxOpened&&this.currentlyActive>=this.toastrConfig.maxOpened&&(o=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));let l=this.overlay.create(s.positionClass,this.overlayContainer);this.index=this.index+1;let c=i;i&&s.enableHtml&&(c=this.sanitizer.sanitize(wr.HTML,i));let u=new N1(l),d=new Kl(this.index,s,c,r,e,u),h=[{provide:Kl,useValue:d}],m=gt.create({providers:h,parent:this._injector}),f=new L1(s.toastComponent,m),g=l.attach(f,s.newestOnTop);u.componentInstance=g.instance;let v={toastId:this.index,title:r||"",message:i||"",toastRef:u,onShown:u.afterActivate(),onHidden:u.afterClosed(),onTap:d.onTap(),onAction:d.onAction(),portal:g};return o||(this.currentlyActive=this.currentlyActive+1,setTimeout(()=>{v.toastRef.activate()})),this.toasts.push(v),v}static \u0275fac=function(i){return new(i||n)(Oe(fR),Oe(F9),Oe(gt),Oe(Ws),Oe(Ne))};static \u0275prov=se({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),P9=(()=>{class n{toastrService;toastPackage;ngZone;message;title;options;duplicatesCount;originalTimeout;width=Xi(-1);toastClasses="";state;get _state(){return this.state()}get displayStyle(){if(this.state().value==="inactive")return"none"}timeout;intervalId;hideTime;sub;sub1;sub2;sub3;constructor(e,i,r){this.toastrService=e,this.toastPackage=i,this.ngZone=r,this.message=i.message,this.title=i.title,this.options=i.config,this.originalTimeout=i.config.timeOut,this.toastClasses=`${i.toastType} ${i.config.toastClass}`,this.sub=i.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=i.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=i.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=i.toastRef.countDuplicate().subscribe(s=>{this.duplicatesCount=s}),this.state=Xi({value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}})}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state.update(e=>$e(j({},e),{value:"active"})),!(this.options.disableTimeOut===!0||this.options.disableTimeOut==="timeOut")&&this.options.timeOut&&(this.outsideTimeout(()=>this.remove(),this.options.timeOut),this.hideTime=new Date().getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}updateProgress(){if(this.width()===0||this.width()===100||!this.options.timeOut)return;let e=new Date().getTime(),i=this.hideTime-e;this.width.set(i/this.options.timeOut*100),this.options.progressAnimation==="increasing"&&this.width.update(r=>100-r),this.width()<=0&&this.width.set(0),this.width()>=100&&this.width.set(100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state.update(e=>$e(j({},e),{value:"active"})),this.outsideTimeout(()=>this.remove(),this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=new Date().getTime()+(this.options.timeOut||0),this.width.set(-1),this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10)}remove(){this.state().value!=="removed"&&(clearTimeout(this.timeout),this.state.update(e=>$e(j({},e),{value:"removed"})),this.outsideTimeout(()=>this.toastrService.remove(this.toastPackage.toastId),+this.toastPackage.config.easeTime))}tapToast(){this.state().value!=="removed"&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){this.state().value!=="removed"&&this.options.disableTimeOut!=="extendedTimeOut"&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width.set(0))}delayedHideToast(){this.options.disableTimeOut===!0||this.options.disableTimeOut==="extendedTimeOut"||this.options.extendedTimeOut===0||this.state().value==="removed"||(this.outsideTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=new Date().getTime()+(this.options.timeOut||0),this.width.set(-1),this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}outsideTimeout(e,i){this.ngZone?this.ngZone.runOutsideAngular(()=>this.timeout=setTimeout(()=>this.runInsideAngular(e),i)):this.timeout=setTimeout(()=>e(),i)}outsideInterval(e,i){this.ngZone?this.ngZone.runOutsideAngular(()=>this.intervalId=setInterval(()=>this.runInsideAngular(e),i)):this.intervalId=setInterval(()=>e(),i)}runInsideAngular(e){this.ngZone?this.ngZone.run(()=>e()):e()}static \u0275fac=function(i){return new(i||n)(Se(jp),Se(Kl),Se(Ne))};static \u0275cmp=he({type:n,selectors:[["","toast-component",""]],hostVars:5,hostBindings:function(i,r){i&1&&J("click",function(){return r.tapToast()})("mouseenter",function(){return r.stickAround()})("mouseleave",function(){return r.delayedHideToast()}),i&2&&(Yd("@flyInOut",r._state),bt(r.toastClasses),ai("display",r.displayStyle))},attrs:hR,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(i,r){i&1&&le(0,x9,3,0,"button",0)(1,k9,3,5,"div",1)(2,M9,1,3,"div",2)(3,T9,2,4,"div",3)(4,E9,2,2,"div",4),i&2&&(z("ngIf",r.options.closeButton),$(),z("ngIf",r.title),$(),z("ngIf",r.message&&r.options.enableHtml),$(),z("ngIf",r.message&&!r.options.enableHtml),$(),z("ngIf",r.options.progressBar))},dependencies:[yi],encapsulation:2,data:{animation:[zi("flyInOut",[di("inactive",ht({opacity:0})),di("active",ht({opacity:1})),di("removed",ht({opacity:0})),Yt("inactive => active",ei("{{ easeTime }}ms {{ easing }}")),Yt("active => removed",ei("{{ easeTime }}ms {{ easing }}"))])]},changeDetection:0})}return n})(),U9=$e(j({},mR),{toastComponent:P9}),$9=(n={})=>Ma([{provide:fR,useValue:{default:U9,config:n}}]),pR=(()=>{class n{static forRoot(e={}){return{ngModule:n,providers:[$9(e)]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({})}return n})();var V9=(()=>{class n{toastrService;toastPackage;appRef;message;title;options;duplicatesCount;originalTimeout;width=Xi(-1);toastClasses="";get displayStyle(){return this.state()==="inactive"?"none":null}state=Xi("inactive");timeout;intervalId;hideTime;sub;sub1;sub2;sub3;constructor(e,i,r){this.toastrService=e,this.toastPackage=i,this.appRef=r,this.message=i.message,this.title=i.title,this.options=i.config,this.originalTimeout=i.config.timeOut,this.toastClasses=`${i.toastType} ${i.config.toastClass}`,this.sub=i.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=i.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=i.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=i.toastRef.countDuplicate().subscribe(s=>{this.duplicatesCount=s})}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state.set("active"),!(this.options.disableTimeOut===!0||this.options.disableTimeOut==="timeOut")&&this.options.timeOut&&(this.timeout=setTimeout(()=>{this.remove()},this.options.timeOut),this.hideTime=new Date().getTime()+this.options.timeOut,this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10))),this.options.onActivateTick&&this.appRef.tick()}updateProgress(){if(this.width()===0||this.width()===100||!this.options.timeOut)return;let e=new Date().getTime(),i=this.hideTime-e;this.width.set(i/this.options.timeOut*100),this.options.progressAnimation==="increasing"&&this.width.update(r=>100-r),this.width()<=0&&this.width.set(0),this.width()>=100&&this.width.set(100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state.set("active"),this.options.timeOut=this.originalTimeout,this.timeout=setTimeout(()=>this.remove(),this.originalTimeout),this.hideTime=new Date().getTime()+(this.originalTimeout||0),this.width.set(-1),this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10))}remove(){this.state()!=="removed"&&(clearTimeout(this.timeout),this.state.set("removed"),this.timeout=setTimeout(()=>this.toastrService.remove(this.toastPackage.toastId)))}tapToast(){this.state()!=="removed"&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){this.state()!=="removed"&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width.set(0))}delayedHideToast(){this.options.disableTimeOut===!0||this.options.disableTimeOut==="extendedTimeOut"||this.options.extendedTimeOut===0||this.state()==="removed"||(this.timeout=setTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=new Date().getTime()+(this.options.timeOut||0),this.width.set(-1),this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10)))}static \u0275fac=function(i){return new(i||n)(Se(jp),Se(Kl),Se(tr))};static \u0275cmp=he({type:n,selectors:[["","toast-component",""]],hostVars:4,hostBindings:function(i,r){i&1&&J("click",function(){return r.tapToast()})("mouseenter",function(){return r.stickAround()})("mouseleave",function(){return r.delayedHideToast()}),i&2&&(bt(r.toastClasses),ai("display",r.displayStyle))},attrs:hR,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(i,r){i&1&&le(0,I9,3,0,"button",0)(1,D9,3,5,"div",1)(2,R9,1,3,"div",2)(3,L9,2,4,"div",3)(4,O9,2,2,"div",4),i&2&&(z("ngIf",r.options.closeButton),$(),z("ngIf",r.title),$(),z("ngIf",r.message&&r.options.enableHtml),$(),z("ngIf",r.message&&!r.options.enableHtml),$(),z("ngIf",r.options.progressBar))},dependencies:[yi],encapsulation:2,changeDetection:0})}return n})(),Eoe=$e(j({},mR),{toastComponent:V9});var Wp=class{constructor(t,e){this.editor=t,this.indentSpace=e,this.editor.setReadOnly(!0),this.editor.setTheme("ace/theme/textmate"),this.editor.commands.removeCommand("find"),this.editor.setOptions({tabSize:this.indentSpace,wrap:!0,useWorker:!1,useSvgGutterIcons:!1})}clearAnnotations(){this.editor.session.clearAnnotations()}setAnnotations(t){let e=t.filter(i=>i.line).map(i=>{let r;switch(i.severity){case"fatal":case"error":r="error";break;case"warning":r="warning";break;case"information":r="info";break}return{row:i.line-1,column:i.col,text:i.text,type:r}});this.editor.session.setAnnotations(e)}updateEditorIssues(t){this.clearAnnotations(),t?.result&&this.setAnnotations(t.result.issues)}scrollToIssueLocation(t){this.editor.gotoLine(t.line,t.col,!0),this.editor.scrollToLine(t.line,!1,!0,()=>{})}clearContent(){this.editor.setValue("",-1)}updateCodeEditorContent(t,e){if(!t){this.clearContent(),this.clearAnnotations();return}e==Yl.RESOURCE_CONTENT?(this.editor.setValue(t.resource,-1),t.mimetype==="application/fhir+json"?this.editor.getSession().setMode("ace/mode/json"):t.mimetype==="application/fhir+xml"&&this.editor.getSession().setMode("ace/mode/xml"),this.updateEditorIssues(t)):(t.result!==void 0&&"operationOutcome"in t.result?(this.editor.setValue(JSON.stringify(t.result.operationOutcome,null,this.indentSpace),-1),this.editor.getSession().setMode("ace/mode/json")):this.clearContent(),this.clearAnnotations())}};var CR="3.7.7",z9=CR,Zl=typeof Buffer=="function",gR=typeof TextDecoder=="function"?new TextDecoder:void 0,_R=typeof TextEncoder=="function"?new TextEncoder:void 0,H9="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Id=Array.prototype.slice.call(H9),qp=(n=>{let t={};return n.forEach((e,i)=>t[e]=i),t})(Id),j9=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,Ei=String.fromCharCode.bind(String),vR=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):n=>new Uint8Array(Array.prototype.slice.call(n,0)),wR=n=>n.replace(/=/g,"").replace(/[+\/]/g,t=>t=="+"?"-":"_"),xR=n=>n.replace(/[^A-Za-z0-9\+\/]/g,""),SR=n=>{let t,e,i,r,s="",a=n.length%3;for(let o=0;o255||(i=n.charCodeAt(o++))>255||(r=n.charCodeAt(o++))>255)throw new TypeError("invalid character found");t=e<<16|i<<8|r,s+=Id[t>>18&63]+Id[t>>12&63]+Id[t>>6&63]+Id[t&63]}return a?s.slice(0,a-3)+"===".substring(a):s},V1=typeof btoa=="function"?n=>btoa(n):Zl?n=>Buffer.from(n,"binary").toString("base64"):SR,U1=Zl?n=>Buffer.from(n).toString("base64"):n=>{let e=[];for(let i=0,r=n.length;it?wR(U1(n)):U1(n),W9=n=>{if(n.length<2){var t=n.charCodeAt(0);return t<128?n:t<2048?Ei(192|t>>>6)+Ei(128|t&63):Ei(224|t>>>12&15)+Ei(128|t>>>6&63)+Ei(128|t&63)}else{var t=65536+(n.charCodeAt(0)-55296)*1024+(n.charCodeAt(1)-56320);return Ei(240|t>>>18&7)+Ei(128|t>>>12&63)+Ei(128|t>>>6&63)+Ei(128|t&63)}},q9=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,kR=n=>n.replace(q9,W9),bR=Zl?n=>Buffer.from(n,"utf8").toString("base64"):_R?n=>U1(_R.encode(n)):n=>V1(kR(n)),Ql=(n,t=!1)=>t?wR(bR(n)):bR(n),yR=n=>Ql(n,!0),G9=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,K9=n=>{switch(n.length){case 4:var t=(7&n.charCodeAt(0))<<18|(63&n.charCodeAt(1))<<12|(63&n.charCodeAt(2))<<6|63&n.charCodeAt(3),e=t-65536;return Ei((e>>>10)+55296)+Ei((e&1023)+56320);case 3:return Ei((15&n.charCodeAt(0))<<12|(63&n.charCodeAt(1))<<6|63&n.charCodeAt(2));default:return Ei((31&n.charCodeAt(0))<<6|63&n.charCodeAt(1))}},MR=n=>n.replace(G9,K9),TR=n=>{if(n=n.replace(/\s+/g,""),!j9.test(n))throw new TypeError("malformed base64.");n+="==".slice(2-(n.length&3));let t,e="",i,r;for(let s=0;s>16&255):r===64?Ei(t>>16&255,t>>8&255):Ei(t>>16&255,t>>8&255,t&255);return e},B1=typeof atob=="function"?n=>atob(xR(n)):Zl?n=>Buffer.from(n,"base64").toString("binary"):TR,ER=Zl?n=>vR(Buffer.from(n,"base64")):n=>vR(B1(n).split("").map(t=>t.charCodeAt(0))),IR=n=>ER(AR(n)),Y9=Zl?n=>Buffer.from(n,"base64").toString("utf8"):gR?n=>gR.decode(ER(n)):n=>MR(B1(n)),AR=n=>xR(n.replace(/[-_]/g,t=>t=="-"?"+":"/")),$1=n=>Y9(AR(n)),Q9=n=>{if(typeof n!="string")return!1;let t=n.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t)},DR=n=>({value:n,enumerable:!1,writable:!0,configurable:!0}),RR=function(){let n=(t,e)=>Object.defineProperty(String.prototype,t,DR(e));n("fromBase64",function(){return $1(this)}),n("toBase64",function(t){return Ql(this,t)}),n("toBase64URI",function(){return Ql(this,!0)}),n("toBase64URL",function(){return Ql(this,!0)}),n("toUint8Array",function(){return IR(this)})},LR=function(){let n=(t,e)=>Object.defineProperty(Uint8Array.prototype,t,DR(e));n("toBase64",function(t){return Gp(this,t)}),n("toBase64URI",function(){return Gp(this,!0)}),n("toBase64URL",function(){return Gp(this,!0)})},Z9=()=>{RR(),LR()},z1={version:CR,VERSION:z9,atob:B1,atobPolyfill:TR,btoa:V1,btoaPolyfill:SR,fromBase64:$1,toBase64:Ql,encode:Ql,encodeURI:yR,encodeURL:yR,utob:kR,btou:MR,decode:$1,isValid:Q9,fromUint8Array:Gp,toUint8Array:IR,extendString:RR,extendUint8Array:LR,extendBuiltins:Z9};var OR=(()=>{class n{transform(e,...i){return e.sort((r,s)=>r.param.type==s.param.type?r.param.name.localeCompare(s.param.name):r.param.type.localeCompare(s.param.type)),console.log(e.map(r=>`${r.param.type} ${r.param.name}`)),e}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=qd({name:"sortSettings",type:n,pure:!0})}}return n})();var NR=n=>({active:n}),J9=n=>({selected:n});function eW(n,t){if(n&1&&(Ji(0),N(1,"span"),B(2),F(),B(3," (from "),N(4,"em"),B(5),F(),B(6,") "),en()),n&2){let e=Y(2);$(2),Ke(e.currentResource.resourceType),$(3),Ke(e.currentResource.filename)}}function tW(n,t){n&1&&(N(0,"em"),B(1,"none"),F())}function iW(n,t){if(n&1&&(N(0,"mat-select-trigger")(1,"span",27)(2,"span",28),B(3),F(),N(4,"span",29),B(5),F()(),N(6,"span",30)(7,"span",31),B(8),F()()()),n&2){let e=t.ngIf;$(3),E0("",e.igId,"#",e.igVersion,""),$(),z("title",e.title),$(),Ke(e.title),$(3),Ke(e.canonical)}}function nW(n,t){if(n&1&&(N(0,"mat-option",21)(1,"span",27)(2,"span",28),B(3),F(),N(4,"span",29),B(5),F()(),N(6,"span",30)(7,"span",31),B(8),F()()()),n&2){let e=t.$implicit;z("value",e.canonical),$(3),E0("",e.igId,"#",e.igVersion,""),$(),z("title",e.title),$(),Ke(e.title),$(3),Ke(e.canonical)}}function rW(n,t){n&1&&(N(0,"mat-error"),B(1,"Please choose a profile"),F())}function sW(n,t){if(n&1&&(N(0,"mat-option",21),B(1),F()),n&2){let e=t.$implicit;z("value",e),$(),Ye(" ",e," ")}}function aW(n,t){if(n&1){let e=We();N(0,"span",32)(1,"mat-icon",33),J("click",function(){te(e);let r=Y(2);return ie(r.profileLocked=!r.profileLocked)}),B(2,"lock_open"),F(),N(3,"span",34),B(4,"profile unlocked"),F()()}}function oW(n,t){if(n&1){let e=We();N(0,"span",35)(1,"mat-icon",36),J("click",function(){te(e);let r=Y(2);return ie(r.profileLocked=!r.profileLocked)}),B(2,"lock_close"),F(),N(3,"span",37),B(4,"profile locked"),F()()}}function lW(n,t){if(n&1){let e=We();N(0,"button",25),J("click",function(){te(e);let r=Y(2);return ie(r.onAiAnalyzeButtonClick())}),B(1,"Analyze Operation Outcome with AI"),F()}}function cW(n,t){if(n&1){let e=We();Ji(0),N(1,"app-upload",14),J("addFiles",function(r){te(e);let s=Y();return ie(s.onFileSelected(r))}),F(),N(2,"p",15),B(3," Current resource loaded: "),le(4,eW,7,2,"ng-container",3)(5,tW,2,0,"em",3),F(),N(6,"div",16)(7,"mat-form-field")(8,"mat-label"),B(9,"Validation profile (required)"),F(),N(10,"mat-select",17),Bs("ngModelChange",function(r){te(e);let s=Y();return Vs(s.selectedProfile,r)||(s.selectedProfile=r),ie(r)}),le(11,iW,9,5,"mat-select-trigger",3),N(12,"mat-option")(13,"ngx-mat-select-search",18),Bs("ngModelChange",function(r){te(e);let s=Y();return Vs(s.profileFilter,r)||(s.profileFilter=r),ie(r)}),J("ngModelChange",function(){te(e);let r=Y();return ie(r.updateProfileFilter())}),F()(),le(14,nW,9,6,"mat-option",19),F(),le(15,rW,2,0,"mat-error",3),N(16,"mat-hint"),B(17,"A profile is required to validate against."),F()()(),N(18,"div",16)(19,"mat-form-field")(20,"mat-label"),B(21,"Validation IG"),F(),N(22,"mat-select",20),Bs("ngModelChange",function(r){te(e);let s=Y();return Vs(s.selectedIg,r)||(s.selectedIg=r),ie(r)}),N(23,"mat-option",21)(24,"em"),B(25,"Automatic selection"),F()(),le(26,sW,2,2,"mat-option",19),F(),N(27,"mat-hint"),B(28,"A specific IG version may be specified."),F()()(),N(29,"div",22),le(30,aW,5,0,"span",23)(31,oW,5,0,"span",24),N(32,"button",25),J("click",function(){te(e);let r=Y();return ie(r.onValidationButtonClick())}),B(33,"Validate"),F(),le(34,lW,2,0,"button",26),F(),en()}if(n&2){let e=Y();$(4),z("ngIf",e.currentResource),$(),z("ngIf",!e.currentResource),$(5),$s("ngModel",e.selectedProfile),$(),z("ngIf",e.supportedProfiles.get(e.selectedProfile)),$(2),$s("ngModel",e.profileFilter),$(),z("ngForOf",e.filteredProfiles),$(),z("ngIf",e.profileControl.hasError("required")),$(7),$s("ngModel",e.selectedIg),$(),z("value",e.AUTO_IG_SELECTION),$(3),z("ngForOf",e.installedIgs),$(4),z("ngIf",!e.profileLocked),$(),z("ngIf",e.profileLocked),$(3),z("ngIf",e.showAIAnalyzeButton)}}function uW(n,t){if(n&1&&(N(0,"mat-form-field",41)(1,"mat-label"),B(2),F(),ne(3,"input",42),F()),n&2){let e=Y().$implicit;$(2),Ke(e.param.name),$(),z("formControl",e.formControl)}}function dW(n,t){if(n&1&&(N(0,"mat-form-field",41)(1,"mat-label"),B(2),F(),ne(3,"textarea",43),F()),n&2){let e=Y().$implicit;$(2),Ke(e.param.name),$(),z("formControl",e.formControl)}}function hW(n,t){if(n&1&&(N(0,"mat-checkbox",44),B(1),F()),n&2){let e=Y().$implicit;z("formControl",e.formControl),$(),Ye(" ",e.param.name," ")}}function mW(n,t){if(n&1&&(N(0,"div",16),le(1,uW,4,2,"mat-form-field",39)(2,dW,4,2,"mat-form-field",39)(3,hW,2,2,"mat-checkbox",40),F()),n&2){let e=t.$implicit;$(),z("ngIf",e.param.type==="string"&&e.param.max==="1"),$(),z("ngIf",e.param.type==="string"&&e.param.max==="*"),$(),z("ngIf",e.param.type==="boolean")}}function fW(n,t){if(n&1&&(Ji(0),le(1,mW,4,3,"div",38),Ln(2,"sortSettings"),en()),n&2){let e=Y();$(),z("ngForOf",ir(2,1,e.Array.from(e.validatorSettings.values())))}}function pW(n,t){n&1&&ne(0,"mat-spinner",52)}function gW(n,t){if(n&1&&(Ji(0),N(1,"mat-icon",53),B(2,"error"),F(),B(3),ne(4,"br"),N(5,"mat-icon",54),B(6,"warning"),F(),B(7),ne(8,"br"),N(9,"mat-icon",55),B(10,"info"),F(),B(11),en()),n&2){let e=Y().$implicit;$(3),Ye(" ",e.result?e.getErrors():"-",""),$(4),Ye(" ",e.result?e.getWarnings():"-",""),$(4),Ye(" ",e.result?e.getInfos():"-"," ")}}function _W(n,t){if(n&1){let e=We();N(0,"tr",45),J("click",function(){let r=te(e).$implicit,s=Y();return ie(s.show(r))}),N(1,"td",46),B(2),ne(3,"br"),N(4,"time"),B(5),Ln(6,"date"),F(),ne(7,"at"),F(),N(8,"td",46),B(9),ne(10,"br"),B(11),F(),N(12,"td",47),le(13,pW,1,0,"mat-spinner",11)(14,gW,12,3,"ng-container",3),F(),N(15,"td",48)(16,"mat-icon",49),J("click",function(){let r=te(e).$implicit,s=Y();return ie(s.removeEntryFromHistory(r))}),B(17,"delete"),F(),N(18,"a",50),J("click",function(r){let s=te(e).$implicit,a=Y();return ie(a.copyDirectLink(r,s))}),N(19,"mat-icon",51),B(20,"content_copy"),F()()()()}if(n&2){let e=t.$implicit,i=Y();z("ngClass",zs(11,J9,e===i.selectedEntry)),$(2),Ye(" ",e.filename,""),$(3),Ke(KC(6,8,e.date,"HH:mm:ss")),$(4),Ye(" ",e.validationProfile,""),$(2),Ye(" ",e.ig," "),$(2),z("ngIf",e.loading),$(),z("ngIf",!e.loading),$(4),z("href",i.getDirectLink(e),FC)}}function vW(n,t){if(n&1&&(N(0,"dl")(1,"dt"),B(2,"Filename"),F(),N(3,"dd"),B(4),F(),N(5,"dt"),B(6,"Profile"),F(),N(7,"dd"),B(8),F(),N(9,"dt"),B(10,"IG"),F(),N(11,"dd"),B(12),F()()),n&2){let e=Y();$(4),Ke(e.selectedEntry.filename),$(4),Ke(e.selectedEntry.validationProfile),$(4),Ke(e.selectedEntry.ig)}}function bW(n,t){if(n&1){let e=We();N(0,"app-operation-result",56),J("select",function(r){te(e);let s=Y();return ie(s.scrollToIssueLocation(r))}),F()}if(n&2){let e=Y();z("operationResult",e.selectedEntry.result)}}function yW(n,t){n&1&&ne(0,"mat-spinner",52)}var CW=2,UR=(()=>{class n{constructor(e,i,r){this.cd=i,this.toastr=r,this.AUTO_IG_SELECTION="AUTOMATIC",this.CodeEditorContent=Yl,this.Array=Array,this.validationEntries=[],this.selectedEntry=null,this.installedIgs=new Set,this.supportedProfiles=new Map,this.validatorSettings=new Map,this.filteredProfiles=new Set,this.profileFilter="",this.selectedIg=this.AUTO_IG_SELECTION,this.profileControl=new Or(null,Cn.required),this.profileLocked=!1,this.editorContent=Yl.RESOURCE_CONTENT,this.showSettings=!1,this.currentResource=null,this.showAIAnalyzeButton=!1,this.client=e.getFhirClient();let s=this.client.read({resourceType:"OperationDefinition",id:"-s-validate"}),a=this.client.search({resourceType:"ImplementationGuide",searchParams:{_sort:"title",_count:1e3}});Promise.all([s,a]).then(o=>{this.analyzeValidateOperationDefinition(o[0]),o[1].entry?.map(l=>l.resource).map(l=>`${l.packageId}#${l.version}`).sort().forEach(l=>this.installedIgs.add(l))}).catch(o=>{this.showErrorToast("Network error",o.message),console.error(o)})}ngAfterViewInit(){this.editor=new Wp(PR.default.edit("editor"),CW),this.analyzeUrlForValidation().then()}onFileSelected(e){if(e.name.endsWith(".tgz")){try{this.validateExamplesInPackage(e.blob)}catch(i){this.showErrorToast("Unexpected error",i.message),console.error(i)}return}try{this.selectedIg=this.AUTO_IG_SELECTION;let i=new FileReader;i.readAsText(e.blob),i.onload=()=>{this.cd.markForCheck(),this.validateResource(e.blob.name,i.result,e.contentType,!this.profileLocked)}}catch(i){this.showErrorToast("Unexpected error",i.message),console.error(i)}}validateResource(e,i,r,s){let a;try{if(a=new yo(e,i,r,this.getCurrentValidationSettings()),this.currentResource=new Kp(e,r,i,a.resourceType),s){var o=!1;for(let l of a.extractedProfiles)if(this.supportedProfiles.has(l)){this.selectedProfile=l,o=!0;break}o||(this.selectedProfile="http://hl7.org/fhir/StructureDefinition/"+a.resourceType)}a.validationProfile=this.selectedProfile,a.validationProfile?(this.validationEntries.unshift(a),this.show(a),this.runValidation(a)):this.showWarnToast("No profile selected","Please select a profile for validation")}catch(l){this.showErrorToast("Error parsing the file",l.message),console.error(l),a&&(a.result=Wt.fromMatchboxError("Error while processing the resource for validation: "+l.message));return}}validateExamplesInPackage(e){this.selectedProfile=null,this.selectedIg=this.AUTO_IG_SELECTION;let i=new FileReader;i.readAsArrayBuffer(e),i.onload=()=>{if(this.package=i.result,this.cd.markForCheck(),this.package!=null){let r=cR.inflate(new Uint8Array(this.package)),s=new Array,a=this;(0,FR.default)(r.buffer).then(o=>{s.forEach(l=>{a.validationEntries.unshift(l),a.runValidation(l)})},o=>{this.showErrorToast("Unexpected error",o),console.error(o)},o=>{if(o.name?.indexOf("package.json")>=0,o.name?.indexOf("example")>=0&&o.name?.indexOf(".index.json")==-1){let l=o.name;l.startsWith("package/example/")&&(l=l.substring(16)),l.startsWith("example/")&&(l=l.substring(8));let c=new TextDecoder("utf-8"),u=new yo(l,c.decode(o.buffer),"application/fhir+json",this.getCurrentValidationSettings());s.push(u)}})}}}clearAllEntries(){this.selectedProfile=null,this.selectedIg=this.AUTO_IG_SELECTION,this.show(void 0),this.validationEntries.splice(0,this.validationEntries.length)}runValidation(e){if(this.selectedProfile!=null&&!this.profileLocked&&(e.extractedProfiles.includes(this.selectedProfile)||e.extractedProfiles.push(this.selectedProfile),e.validationProfile=this.selectedProfile),this.selectedIg!=this.AUTO_IG_SELECTION&&(this.selectedIg.endsWith(" (last)")?e.ig=this.selectedIg.substring(0,this.selectedIg.length-7):e.ig=this.selectedIg),!e.validationProfile){this.showErrorToast("Validation failed","No profile was selected"),console.error("No profile selected, won't run validation");return}let i=new URLSearchParams;i.set("profile",e.validationProfile),e.ig&&i.set("ig",e.ig);for(let r of e.validationParameters)i.append(r.name,r.value);e.loading=!0,this.client.operation({name:"validate?"+i.toString(),resourceType:void 0,input:e.resource,options:{headers:{accept:"application/fhir+json","content-type":e.mimetype}}}).then(r=>{e.loading=!1,e.setOperationOutcome(r),e===this.selectedEntry&&this.editor.updateCodeEditorContent(this.selectedEntry,this.editorContent)}).catch(r=>{console.error(r),e.loading=!1,r?.response?.data?.resourceType==="OperationOutcome"?(e.setOperationOutcome(r?.response?.data),e===this.selectedEntry&&this.editor.updateCodeEditorContent(this.selectedEntry,this.editorContent)):"message"in r?(this.showErrorToast("Unexpected error",r.message),e.result=Wt.fromMatchboxError("Error while sending the validation request: "+r.message),console.error(r)):(this.showErrorToast("Unknown error","Unknown error while sending the validation request"),e.result=Wt.fromMatchboxError("Unknown error while sending the validation request"),console.error(r))})}show(e){this.selectedEntry=e,this.editor.updateCodeEditorContent(this.selectedEntry,this.editorContent),e!=null&&(this.currentResource=new Kp(e.filename,e.mimetype,e.resource,e.resourceType))}removeEntryFromHistory(e){e===this.selectedEntry&&this.show(null);let i=this.validationEntries.indexOf(e);this.validationEntries.splice(i,1)}onValidationButtonClick(){let e=new yo(this.currentResource.filename,this.currentResource.content,this.currentResource.contentType,this.getCurrentValidationSettings(),this.selectedProfile);this.selectedIg!=this.AUTO_IG_SELECTION&&(e.ig=this.selectedIg),this.validationEntries.unshift(e),this.show(e),this.runValidation(e)}onAiAnalyzeButtonClick(){let e={name:"analyzeOutcomeWithAI",value:"true"},i=this.getCurrentValidationSettings();i.push(e);let r=new yo(this.currentResource.filename,this.currentResource.content,this.currentResource.contentType,i,this.selectedProfile);this.selectedIg!=this.AUTO_IG_SELECTION&&(r.ig=this.selectedIg),this.validationEntries.unshift(r),this.show(r),this.runValidation(r)}toggleSettings(){this.showSettings=!this.showSettings}scrollToIssueLocation(e){e.line&&this.editorContent==Yl.RESOURCE_CONTENT&&this.editor.scrollToIssueLocation(e)}updateProfileFilter(){let e=this.profileFilter.toLowerCase();this.filteredProfiles=new Set([...this.supportedProfiles.values()].filter(i=>i.title.toLocaleLowerCase().includes(e)||i.canonical.toLocaleLowerCase().includes(e)).values())}getDirectLink(e){let i=new URL(document.location.href);i.searchParams.forEach(s=>{i.searchParams.delete(s)});let r=new URLSearchParams;r.set("resource",z1.encodeURI(e.resource)),r.set("profile",e.validationProfile),e.ig&&r.set("ig",e.ig);for(let s of e.validationParameters)r.set(s.name,s.value);return i.hash=r.toString(),i.toString()}copyDirectLink(e,i){if("clipboard"in navigator){e.preventDefault();let r=this.getDirectLink(i);navigator.clipboard.writeText(r).then(()=>{})}}getExtensionStringValue(e,i){return this.getExtension(e,i)?.valueString??""}getExtensionBoolValue(e,i){return this.getExtension(e,i)?.valueBoolean??!1}getExtension(e,i){for(let r=0;r0)if(r.param.type==="string"&&r.param.max==="*"){let o=r.formControl.value.toString().split(` -`).filter(l=>l.trim().length>0);for(let l of o)e.push(new Ed(r.param.name,l.trim()))}else e.push(new Ed(r.param.name,r.formControl.value.toString()));return e}showErrorToast(e,i){this.toastr.error(i,e,{closeButton:!0,timeOut:5e3})}showWarnToast(e,i){this.toastr.warning(i,e,{closeButton:!0,timeOut:5e3})}analyzeValidateOperationDefinition(e){e.parameter?.forEach(i=>{i.name=="profile"&&(i._targetProfile?.forEach(r=>{let s=new Hp;s.canonical=this.getExtensionStringValue(r,"sd-canonical"),s.title=this.getExtensionStringValue(r,"sd-title"),s.igId=this.getExtensionStringValue(r,"ig-id"),s.igVersion=this.getExtensionStringValue(r,"ig-version"),s.isCurrent=!1,this.getExtensionBoolValue(r,"ig-current")?s.isCurrent=!0:s.canonical+=`|${s.igVersion}`,this.supportedProfiles.set(s.canonical,s)}),this.updateProfileFilter()),i.name=="llmProvider"&&i.extension&&(this.showAIAnalyzeButton=!0)}),e.parameter.filter(i=>i.use=="in"&&i.name!="resource"&&i.name!="profile"&&i.name!="ig"&&i.name!="llmProvider").forEach(i=>{this.validatorSettings.set(i.name,new zp(i))})}analyzeUrlForValidation(){return Pt(this,null,function*(){if(!window.location.hash)return;let e=new URLSearchParams(window.location.hash.substring(1));if(e.has("resource")){let i=!1;e.has("profile")&&(this.selectedProfile=e.get("profile"),i=!0);let r=z1.decode(e.get("resource")),s="application/fhir+json";r.startsWith("<")&&(s="application/fhir+xml");let a;e.has("filename")?a=e.get("filename"):a=`provided.${s.split("+")[1]}`;for(let[o,l]of e)o==="resource"||o==="profile"||o==="filename"||this.validatorSettings.has(o)&&this.validatorSettings.get(o).formControl.setValue(l);this.validateResource(a,r,s,!i&&!this.profileLocked),this.toastr.info("Validation","The validation of your resource has started",{closeButton:!0,timeOut:3e3})}})}static{this.\u0275fac=function(i){return new(i||n)(Se(Fn),Se(Xe),Se(jp))}}static{this.\u0275cmp=he({type:n,selectors:[["app-validate"]],standalone:!1,decls:39,vars:12,consts:[[1,"row"],[1,"card-maps","white-block"],["mat-menu-item","","title","Edit validation parameters",1,"setting",3,"click"],[4,"ngIf"],[1,"mat-table"],[1,"mat-header-row"],[1,"mat-header-cell"],["class","mat-row",3,"ngClass","click",4,"ngFor","ngForOf"],["mat-raised-button","","type","submit",3,"click"],[1,"row","row-full-height"],[3,"operationResult","select",4,"ngIf"],["diameter","30",4,"ngIf"],[1,"editor-content-selector",3,"click","ngClass"],["id","editor"],[3,"addFiles"],[1,"current"],[1,"form-field-group"],["id","select-profile","name","selectProfile","placeholder","Validate against specific Profile",3,"ngModelChange","ngModel"],["placeholderLabel","Find a profile\u2026","noEntriesFoundLabel","'no matching profile found'",3,"ngModelChange","ngModel"],[3,"value",4,"ngFor","ngForOf"],["name","selectIg","placeholder","Validate against specific Implementation Guide",3,"ngModelChange","ngModel"],[3,"value"],[1,"buttons"],["class","profile-lock unlocked",4,"ngIf"],["class","profile-lock locked",4,"ngIf"],["color","primary","mat-raised-button","",3,"click"],["color","primary","mat-raised-button","",3,"click",4,"ngIf"],[1,"profile-select-option-line1"],[1,"ig"],[1,"title",3,"title"],[1,"profile-select-option-line2"],[1,"canonical"],[1,"profile-lock","unlocked"],["title","Lock the profile",3,"click"],["title","The profile will be updated automatically when validating a new resource"],[1,"profile-lock","locked"],["title","Unlock the profile",3,"click"],["title","The profile won't be updated when validating a new resource"],["class","form-field-group",4,"ngFor","ngForOf"],["class","column50",4,"ngIf"],[3,"formControl",4,"ngIf"],[1,"column50"],["matInput","",3,"formControl"],["matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","3","cdkAutosizeMaxRows","10",3,"formControl"],[3,"formControl"],[1,"mat-row",3,"click","ngClass"],[1,"mat-cell"],[1,"issues","mat-cell"],[1,"actions","mat-cell"],["aria-label","Remove","title","Remove from history",1,"delete",3,"click"],["target","_blank","title","Copy a direct link to this validation",3,"click","href"],["aria-label","Copy",1,"copy"],["diameter","30"],["inline","",1,"error"],["inline","",1,"warning"],["inline","",1,"info"],[3,"select","operationResult"]],template:function(i,r){i&1&&(N(0,"div",0)(1,"div",1)(2,"button",2),J("click",function(){return r.toggleSettings()}),N(3,"mat-icon"),B(4,"settings"),F()(),N(5,"h2"),B(6,"Validate FHIR Resource"),F(),le(7,cW,35,13,"ng-container",3)(8,fW,3,3,"ng-container",3),F(),N(9,"div",1)(10,"h2"),B(11,"Validation history"),F(),N(12,"table",4)(13,"tr",5)(14,"th",6),B(15,"Resource"),F(),N(16,"th",6),B(17,"Profile/IG"),F(),N(18,"th",6),B(19,"Issues"),F(),N(20,"th",6),B(21,"Actions"),F()(),le(22,_W,21,13,"tr",7),F(),N(23,"mat-card-actions")(24,"button",8),J("click",function(){return r.clearAllEntries()}),B(25,"Clear history"),F()()()(),N(26,"div",9)(27,"div",1)(28,"h2"),B(29,"Result of the validation"),F(),le(30,vW,13,3,"dl",3)(31,bW,1,1,"app-operation-result",10)(32,yW,1,0,"mat-spinner",11),F(),N(33,"div",1)(34,"span",12),J("click",function(){return r.changeCodeEditorContent(r.CodeEditorContent.RESOURCE_CONTENT)}),B(35,"Validated resource"),F(),N(36,"span",12),J("click",function(){return r.changeCodeEditorContent(r.CodeEditorContent.OPERATION_OUTCOME)}),B(37,"Operation outcome"),F(),ne(38,"div",13),F()()),i&2&&($(7),z("ngIf",!r.showSettings),$(),z("ngIf",r.showSettings),$(14),z("ngForOf",r.validationEntries),$(8),z("ngIf",r.selectedEntry),$(),z("ngIf",r.selectedEntry&&r.selectedEntry.result),$(),z("ngIf",r.selectedEntry&&r.selectedEntry.loading),$(2),z("ngClass",zs(8,NR,r.editorContent==r.CodeEditorContent.RESOURCE_CONTENT)),$(2),z("ngClass",zs(10,NR,r.editorContent==r.CodeEditorContent.OPERATION_OUTCOME)))},dependencies:[On,kr,yi,Rr,Lr,j_,ur,ar,fs,pm,bl,zn,na,gl,_l,$n,vl,DM,km,aa,JM,Xs,Ep,cl,Ip,iw,OR],styles:["[_nghost-%COMP%]{margin:0 auto;min-width:1400px;width:100%}button.setting[_ngcontent-%COMP%]{float:right}button.setting[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{vertical-align:middle}p.current[_ngcontent-%COMP%]{margin:10px 0}p.current[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-weight:500}mat-hint[_ngcontent-%COMP%]{color:#7db99e}p.error[_ngcontent-%COMP%]{color:#d9534f;margin-top:20px}p.error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{vertical-align:middle}.row[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-self:stretch;margin:1em auto;min-width:1400px;width:100%;justify-content:space-evenly}.row[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{width:46%}.mat-table[_ngcontent-%COMP%] .mat-cell[_ngcontent-%COMP%], .mat-table[_ngcontent-%COMP%] .mat-header-cell[_ngcontent-%COMP%]{padding-left:.5rem;padding-right:.5rem}table[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{background:#d8f1e6}table[_ngcontent-%COMP%] .mat-row[_ngcontent-%COMP%]{cursor:pointer}table[_ngcontent-%COMP%] td.issues[_ngcontent-%COMP%]{font-size:12px;line-height:12px;color:#818181}table[_ngcontent-%COMP%] td.issues[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:12px;height:12px;margin-right:2px;vertical-align:bottom}table[_ngcontent-%COMP%] td.issues[_ngcontent-%COMP%] mat-icon.error[_ngcontent-%COMP%]{color:#d9534f}table[_ngcontent-%COMP%] td.issues[_ngcontent-%COMP%] mat-icon.warning[_ngcontent-%COMP%]{color:#f0ad4e}table[_ngcontent-%COMP%] td.issues[_ngcontent-%COMP%] mat-icon.info[_ngcontent-%COMP%]{color:#4ca8de}table[_ngcontent-%COMP%] td.actions[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:24px}table[_ngcontent-%COMP%] td.actions[_ngcontent-%COMP%] mat-icon.delete[_ngcontent-%COMP%]{color:#d9534f;margin-right:.2em}table[_ngcontent-%COMP%] td.actions[_ngcontent-%COMP%] mat-icon.copy[_ngcontent-%COMP%]{color:#4ab183}.form-field-group[_ngcontent-%COMP%]{padding-left:1rem;padding-right:1rem;display:flex;flex-direction:row}.form-field-group[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}.button-row[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:1rem}.card-maps[_ngcontent-%COMP%]{padding:8px 16px}.row-full-height[_ngcontent-%COMP%] .card-maps[_ngcontent-%COMP%]{height:96vh;max-height:96vh;overflow-y:auto}#editor[_ngcontent-%COMP%]{height:calc(100% - 50px)}.column50[_ngcontent-%COMP%]{width:40%}.profile-select-option-line1[_ngcontent-%COMP%]{display:inline-block;white-space:nowrap;width:100%}.profile-select-option-line1[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{display:block;width:auto;text-overflow:ellipsis;padding-right:6px;overflow:hidden}.profile-select-option-line1[_ngcontent-%COMP%] .ig[_ngcontent-%COMP%]{display:block;float:right;width:max-content;color:#7bc7a5}.profile-select-option-line2[_ngcontent-%COMP%]{clear:right;display:inline-block;white-space:nowrap;width:100%;font-size:.8rem;line-height:.8rem}.profile-select-option-line2[_ngcontent-%COMP%] .canonical[_ngcontent-%COMP%]{font-family:monospace,serif;color:#778d9d;letter-spacing:0px}mat-option[_ngcontent-%COMP%]:nth-child(odd){background-color:#f9f9f9}mat-option[_ngcontent-%COMP%]{padding:4px 8px;border-bottom:1px solid rgba(0,0,0,.05);line-height:normal} .mdc-list-item__primary-text{width:100%}.editor-content-selector[_ngcontent-%COMP%]{display:inline-block;font-size:1.4em;margin:.3em 1em .6em 0;border-bottom:3px solid #d2eade;cursor:pointer;color:#5a5f5c;padding-bottom:2px}.editor-content-selector.active[_ngcontent-%COMP%]{border-bottom:3px solid #97d6ba;cursor:default;color:#000}.buttons[_ngcontent-%COMP%]{margin:20px 0 10px 10px}.profile-lock[_ngcontent-%COMP%]{float:right;display:block;width:150px;line-height:3em}.profile-lock[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{cursor:pointer;vertical-align:middle;margin-right:5px;color:#7099bd}.profile-lock[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{cursor:help;text-decoration:underline dashed}.profile-lock.locked[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#d9534f}.profile-lock.unlocked[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#6eb394}"]})}}return n})(),Kp=class{constructor(t,e,i,r){this.filename=t,this.contentType=e,this.content=i,this.resourceType=r}},Yl=function(n){return n[n.RESOURCE_CONTENT=0]="RESOURCE_CONTENT",n[n.OPERATION_OUTCOME=1]="OPERATION_OUTCOME",n}(Yl||{});var Yp=class{validateSignature(t){return Promise.resolve(null)}validateAtHash(t){return Promise.resolve(!0)}},Qp=class{};var Ad=class{},wW=(()=>{class n extends Ad{now(){return Date.now()}new(){return new Date}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=Ut(n)))(r||n)}})()}static{this.\u0275prov=se({token:n,factory:n.\u0275fac})}}return n})();var Zp=class{},Xp=class{},xW=(()=>{class n{constructor(){this.data=new Map}getItem(e){return this.data.get(e)}removeItem(e){this.data.delete(e)}setItem(e,i){this.data.set(e,i)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=se({token:n,factory:n.\u0275fac})}}return n})();var Dd=class{constructor(t){this.type=t}},Yi=class extends Dd{constructor(t,e=null){super(t),this.info=e}},gr=class extends Dd{constructor(t,e=null){super(t),this.info=e}},qt=class extends Dd{constructor(t,e,i=null){super(t),this.reason=e,this.params=i}};function $R(n){let t=n.replace(/-/g,"+").replace(/_/g,"/");return decodeURIComponent(atob(t).split("").map(function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)}).join(""))}function VR(n){return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}var Xl=class{constructor(t){this.clientId="",this.redirectUri="",this.postLogoutRedirectUri="",this.redirectUriAsPostLogoutRedirectUriFallback=!0,this.loginUrl="",this.scope="openid profile",this.resource="",this.rngUrl="",this.oidc=!0,this.requestAccessToken=!0,this.options=null,this.issuer="",this.logoutUrl="",this.clearHashAfterLogin=!0,this.tokenEndpoint=null,this.revocationEndpoint=null,this.customTokenParameters=[],this.userinfoEndpoint=null,this.responseType="",this.showDebugInformation=!1,this.silentRefreshRedirectUri="",this.silentRefreshMessagePrefix="",this.silentRefreshShowIFrame=!1,this.siletRefreshTimeout=1e3*20,this.silentRefreshTimeout=1e3*20,this.dummyClientSecret="",this.requireHttps="remoteOnly",this.strictDiscoveryDocumentValidation=!0,this.jwks=null,this.customQueryParams=null,this.silentRefreshIFrameName="angular-oauth-oidc-silent-refresh-iframe",this.timeoutFactor=.75,this.sessionChecksEnabled=!1,this.sessionCheckIntervall=3*1e3,this.sessionCheckIFrameUrl=null,this.sessionCheckIFrameName="angular-oauth-oidc-check-session-iframe",this.disableAtHashCheck=!1,this.skipSubjectCheck=!1,this.useIdTokenHintForSilentRefresh=!1,this.skipIssuerCheck=!1,this.nonceStateSeparator=";",this.useHttpBasicAuth=!1,this.decreaseExpirationBySec=0,this.waitForTokenInMsec=0,this.disablePKCE=!1,this.preserveRequestedRoute=!1,this.disableIdTokenTimer=!1,this.checkOrigin=!1,this.openUri=e=>{location.href=e},t&&Object.assign(this,t)}},Co=class{encodeKey(t){return encodeURIComponent(t)}encodeValue(t){return encodeURIComponent(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}},Jp=class{};var BR=(()=>{class n{getHashFragmentParams(e){let i=e||window.location.hash;if(i=decodeURIComponent(i),i.indexOf("#")!==0)return{};let r=i.indexOf("?");return r>-1?i=i.substr(r+1):i=i.substr(1),this.parseQueryString(i)}parseQueryString(e){let i={},r,s,a,o,l,c;if(e===null)return i;let u=e.split("&");for(let d=0;d=64;){for(s=t[0],a=t[1],o=t[2],l=t[3],c=t[4],u=t[5],d=t[6],h=t[7],f=0;f<16;f++)g=i+f*4,n[f]=(e[g]&255)<<24|(e[g+1]&255)<<16|(e[g+2]&255)<<8|e[g+3]&255;for(f=16;f<64;f++)m=n[f-2],v=(m>>>17|m<<15)^(m>>>19|m<<13)^m>>>10,m=n[f-15],w=(m>>>7|m<<25)^(m>>>18|m<<14)^m>>>3,n[f]=(v+n[f-7]|0)+(w+n[f-16]|0);for(f=0;f<64;f++)v=(((c>>>6|c<<26)^(c>>>11|c<<21)^(c>>>25|c<<7))+(c&u^~c&d)|0)+(h+(kW[f]+n[f]|0)|0)|0,w=((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+(s&a^s&o^a&o)|0,h=d,d=u,u=c,c=l+v|0,l=o,o=a,a=s,s=v+w|0;t[0]+=s,t[1]+=a,t[2]+=o,t[3]+=l,t[4]+=c,t[5]+=u,t[6]+=d,t[7]+=h,i+=64,r-=64}return i}var j1=class{constructor(){this.digestLength=zR,this.blockSize=SW,this.state=new Int32Array(8),this.temp=new Int32Array(64),this.buffer=new Uint8Array(128),this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this.reset()}reset(){return this.state[0]=1779033703,this.state[1]=3144134277,this.state[2]=1013904242,this.state[3]=2773480762,this.state[4]=1359893119,this.state[5]=2600822924,this.state[6]=528734635,this.state[7]=1541459225,this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this}clean(){for(let t=0;t0){for(;this.bufferLength<64&&e>0;)this.buffer[this.bufferLength++]=t[i++],e--;this.bufferLength===64&&(H1(this.temp,this.state,this.buffer,0,64),this.bufferLength=0)}for(e>=64&&(i=H1(this.temp,this.state,t,i,e),e%=64);e>0;)this.buffer[this.bufferLength++]=t[i++],e--;return this}finish(t){if(!this.finished){let e=this.bytesHashed,i=this.bufferLength,r=e/536870912|0,s=e<<3,a=e%64<56?64:128;this.buffer[i]=128;for(let o=i+1;o>>24&255,this.buffer[a-7]=r>>>16&255,this.buffer[a-6]=r>>>8&255,this.buffer[a-5]=r>>>0&255,this.buffer[a-4]=s>>>24&255,this.buffer[a-3]=s>>>16&255,this.buffer[a-2]=s>>>8&255,this.buffer[a-1]=s>>>0&255,H1(this.temp,this.state,this.buffer,0,a),this.finished=!0}for(let e=0;e<8;e++)t[e*4+0]=this.state[e]>>>24&255,t[e*4+1]=this.state[e]>>>16&255,t[e*4+2]=this.state[e]>>>8&255,t[e*4+3]=this.state[e]>>>0&255;return this}digest(){let t=new Uint8Array(this.digestLength);return this.finish(t),t}_saveState(t){for(let e=0;e{class n{calcHash(e,i){return Pt(this,null,function*(){return EW(MW(TW(e)))})}toHashString2(e){let i="";for(let r of e)i+=String.fromCharCode(r);return i}toHashString(e){let i=new Uint8Array(e),r="";for(let s of i)r+=String.fromCharCode(s);return r}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=se({token:n,factory:n.\u0275fac})}}return n})(),HR=(()=>{class n extends Xl{constructor(e,i,r,s,a,o,l,c,u,d){super(),this.ngZone=e,this.http=i,this.config=a,this.urlHelper=o,this.logger=l,this.crypto=c,this.dateTimeService=d,this.discoveryDocumentLoaded=!1,this.state="",this.eventsSubject=new me,this.discoveryDocumentLoadedSubject=new me,this.grantTypesSupported=[],this.inImplicitFlow=!1,this.saveNoncesInLocalStorage=!1,this.debug("angular-oauth2-oidc v10"),this.document=u,a||(a={}),this.discoveryDocumentLoaded$=this.discoveryDocumentLoadedSubject.asObservable(),this.events=this.eventsSubject.asObservable(),s&&(this.tokenValidationHandler=s),a&&this.configure(a);try{r?this.setStorage(r):typeof sessionStorage<"u"&&this.setStorage(sessionStorage)}catch(h){console.error("No OAuthStorage provided and cannot access default (sessionStorage).Consider providing a custom OAuthStorage implementation in your module.",h)}if(this.checkLocalStorageAccessable()){let h=window?.navigator?.userAgent;(h?.includes("MSIE ")||h?.includes("Trident"))&&(this.saveNoncesInLocalStorage=!0)}this.setupRefreshTimer()}checkLocalStorageAccessable(){if(typeof window>"u")return!1;let e="test";try{return typeof window.localStorage>"u"?!1:(localStorage.setItem(e,e),localStorage.removeItem(e),!0)}catch{return!1}}configure(e){Object.assign(this,new Xl,e),this.config=Object.assign({},new Xl,e),this.sessionChecksEnabled&&this.setupSessionCheck(),this.configChanged()}configChanged(){this.setupRefreshTimer()}restartSessionChecksIfStillLoggedIn(){this.hasValidIdToken()&&this.initSessionCheck()}restartRefreshTimerIfStillLoggedIn(){this.setupExpirationTimers()}setupSessionCheck(){this.events.pipe(st(e=>e.type==="token_received")).subscribe(()=>{this.initSessionCheck()})}setupAutomaticSilentRefresh(e={},i,r=!0){let s=!0;this.clearAutomaticRefreshTimer(),this.automaticRefreshSubscription=this.events.pipe(Et(a=>{a.type==="token_received"?s=!0:a.type==="logout"&&(s=!1)}),st(a=>a.type==="token_expires"&&(i==null||i==="any"||a.info===i)),Ui(1e3)).subscribe(()=>{s&&this.refreshInternal(e,r).catch(()=>{this.debug("Automatic silent refresh did not work")})}),this.restartRefreshTimerIfStillLoggedIn()}refreshInternal(e,i){return!this.useSilentRefresh&&this.responseType==="code"?this.refreshToken():this.silentRefresh(e,i)}loadDiscoveryDocumentAndTryLogin(e=null){return this.loadDiscoveryDocument().then(()=>this.tryLogin(e))}loadDiscoveryDocumentAndLogin(e=null){return e=e||{},this.loadDiscoveryDocumentAndTryLogin(e).then(()=>{if(!this.hasValidIdToken()||!this.hasValidAccessToken()){let i=typeof e.state=="string"?e.state:"";return this.initLoginFlow(i),!1}else return!0})}debug(...e){this.showDebugInformation&&this.logger.debug(...e)}validateUrlFromDiscoveryDocument(e){let i=[],r=this.validateUrlForHttps(e),s=this.validateUrlAgainstIssuer(e);return r||i.push("https for all urls required. Also for urls received by discovery."),s||i.push("Every url in discovery document has to start with the issuer url.Also see property strictDiscoveryDocumentValidation."),i}validateUrlForHttps(e){if(!e)return!0;let i=e.toLowerCase();return this.requireHttps===!1||(i.match(/^http:\/\/localhost($|[:/])/)||i.match(/^http:\/\/localhost($|[:/])/))&&this.requireHttps==="remoteOnly"?!0:i.startsWith("https://")}assertUrlNotNullAndCorrectProtocol(e,i){if(!e)throw new Error(`'${i}' should not be null`);if(!this.validateUrlForHttps(e))throw new Error(`'${i}' must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).`)}validateUrlAgainstIssuer(e){return!this.strictDiscoveryDocumentValidation||!e?!0:e.toLowerCase().startsWith(this.issuer.toLowerCase())}setupRefreshTimer(){if(typeof window>"u"){this.debug("timer not supported on this plattform");return}(this.hasValidIdToken()||this.hasValidAccessToken())&&(this.clearAccessTokenTimer(),this.clearIdTokenTimer(),this.setupExpirationTimers()),this.tokenReceivedSubscription&&this.tokenReceivedSubscription.unsubscribe(),this.tokenReceivedSubscription=this.events.pipe(st(e=>e.type==="token_received")).subscribe(()=>{this.clearAccessTokenTimer(),this.clearIdTokenTimer(),this.setupExpirationTimers()})}setupExpirationTimers(){this.hasValidAccessToken()&&this.setupAccessTokenTimer(),!this.disableIdTokenTimer&&this.hasValidIdToken()&&this.setupIdTokenTimer()}setupAccessTokenTimer(){let e=this.getAccessTokenExpiration(),i=this.getAccessTokenStoredAt(),r=this.calcTimeout(i,e);this.ngZone.runOutsideAngular(()=>{this.accessTokenTimeoutSubscription=_e(new gr("token_expires","access_token")).pipe(Eo(r)).subscribe(s=>{this.ngZone.run(()=>{this.eventsSubject.next(s)})})})}setupIdTokenTimer(){let e=this.getIdTokenExpiration(),i=this.getIdTokenStoredAt(),r=this.calcTimeout(i,e);this.ngZone.runOutsideAngular(()=>{this.idTokenTimeoutSubscription=_e(new gr("token_expires","id_token")).pipe(Eo(r)).subscribe(s=>{this.ngZone.run(()=>{this.eventsSubject.next(s)})})})}stopAutomaticRefresh(){this.clearAccessTokenTimer(),this.clearIdTokenTimer(),this.clearAutomaticRefreshTimer()}clearAccessTokenTimer(){this.accessTokenTimeoutSubscription&&this.accessTokenTimeoutSubscription.unsubscribe()}clearIdTokenTimer(){this.idTokenTimeoutSubscription&&this.idTokenTimeoutSubscription.unsubscribe()}clearAutomaticRefreshTimer(){this.automaticRefreshSubscription&&this.automaticRefreshSubscription.unsubscribe()}calcTimeout(e,i){let r=this.dateTimeService.now(),s=(i-e)*this.timeoutFactor-(r-e),a=Math.max(0,s),o=2147483647;return a>o?o:a}setStorage(e){this._storage=e,this.configChanged()}loadDiscoveryDocument(e=null){return new Promise((i,r)=>{if(e||(e=this.issuer||"",e.endsWith("/")||(e+="/"),e+=".well-known/openid-configuration"),!this.validateUrlForHttps(e)){r("issuer must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");return}this.http.get(e).subscribe(s=>{if(!this.validateDiscoveryDocument(s)){this.eventsSubject.next(new qt("discovery_document_validation_error",null)),r("discovery_document_validation_error");return}this.loginUrl=s.authorization_endpoint,this.logoutUrl=s.end_session_endpoint||this.logoutUrl,this.grantTypesSupported=s.grant_types_supported,this.issuer=s.issuer,this.tokenEndpoint=s.token_endpoint,this.userinfoEndpoint=s.userinfo_endpoint||this.userinfoEndpoint,this.jwksUri=s.jwks_uri,this.sessionCheckIFrameUrl=s.check_session_iframe||this.sessionCheckIFrameUrl,this.discoveryDocumentLoaded=!0,this.discoveryDocumentLoadedSubject.next(s),this.revocationEndpoint=s.revocation_endpoint||this.revocationEndpoint,this.sessionChecksEnabled&&this.restartSessionChecksIfStillLoggedIn(),this.loadJwks().then(a=>{let o={discoveryDocument:s,jwks:a},l=new Yi("discovery_document_loaded",o);this.eventsSubject.next(l),i(l)}).catch(a=>{this.eventsSubject.next(new qt("discovery_document_load_error",a)),r(a)})},s=>{this.logger.error("error loading discovery document",s),this.eventsSubject.next(new qt("discovery_document_load_error",s)),r(s)})})}loadJwks(){return new Promise((e,i)=>{this.jwksUri?this.http.get(this.jwksUri).subscribe(r=>{this.jwks=r,e(r)},r=>{this.logger.error("error loading jwks",r),this.eventsSubject.next(new qt("jwks_load_error",r)),i(r)}):e(null)})}validateDiscoveryDocument(e){let i;return!this.skipIssuerCheck&&e.issuer!==this.issuer?(this.logger.error("invalid issuer in discovery document","expected: "+this.issuer,"current: "+e.issuer),!1):(i=this.validateUrlFromDiscoveryDocument(e.authorization_endpoint),i.length>0?(this.logger.error("error validating authorization_endpoint in discovery document",i),!1):(i=this.validateUrlFromDiscoveryDocument(e.end_session_endpoint),i.length>0?(this.logger.error("error validating end_session_endpoint in discovery document",i),!1):(i=this.validateUrlFromDiscoveryDocument(e.token_endpoint),i.length>0&&this.logger.error("error validating token_endpoint in discovery document",i),i=this.validateUrlFromDiscoveryDocument(e.revocation_endpoint),i.length>0&&this.logger.error("error validating revocation_endpoint in discovery document",i),i=this.validateUrlFromDiscoveryDocument(e.userinfo_endpoint),i.length>0?(this.logger.error("error validating userinfo_endpoint in discovery document",i),!1):(i=this.validateUrlFromDiscoveryDocument(e.jwks_uri),i.length>0?(this.logger.error("error validating jwks_uri in discovery document",i),!1):(this.sessionChecksEnabled&&!e.check_session_iframe&&this.logger.warn("sessionChecksEnabled is activated but discovery document does not contain a check_session_iframe field"),!0)))))}fetchTokenUsingPasswordFlowAndLoadUserProfile(e,i,r=new Hs){return this.fetchTokenUsingPasswordFlow(e,i,r).then(()=>this.loadUserProfile())}loadUserProfile(){if(!this.hasValidAccessToken())throw new Error("Can not load User Profile without access_token");if(!this.validateUrlForHttps(this.userinfoEndpoint))throw new Error("userinfoEndpoint must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");return new Promise((e,i)=>{let r=new Hs().set("Authorization","Bearer "+this.getAccessToken());this.http.get(this.userinfoEndpoint,{headers:r,observe:"response",responseType:"text"}).subscribe(s=>{if(this.debug("userinfo received",JSON.stringify(s)),s.headers.get("content-type").startsWith("application/json")){let a=JSON.parse(s.body),o=this.getIdentityClaims()||{};if(!this.skipSubjectCheck&&this.oidc&&(!o.sub||a.sub!==o.sub)){i(`if property oidc is true, the received user-id (sub) has to be the user-id of the user that has logged in with oidc. -if you are not using oidc but just oauth2 password flow set oidc to false`);return}a=Object.assign({},o,a),this._storage.setItem("id_token_claims_obj",JSON.stringify(a)),this.eventsSubject.next(new Yi("user_profile_loaded")),e({info:a})}else this.debug("userinfo is not JSON, treating it as JWE/JWS"),this.eventsSubject.next(new Yi("user_profile_loaded")),e(JSON.parse(s.body))},s=>{this.logger.error("error loading user info",s),this.eventsSubject.next(new qt("user_profile_load_error",s)),i(s)})})}fetchTokenUsingPasswordFlow(e,i,r=new Hs){let s={username:e,password:i};return this.fetchTokenUsingGrant("password",s,r)}fetchTokenUsingGrant(e,i,r=new Hs){this.assertUrlNotNullAndCorrectProtocol(this.tokenEndpoint,"tokenEndpoint");let s=new Oo({encoder:new Co}).set("grant_type",e).set("scope",this.scope);if(this.useHttpBasicAuth){let a=btoa(`${this.clientId}:${this.dummyClientSecret}`);r=r.set("Authorization","Basic "+a)}if(this.useHttpBasicAuth||(s=s.set("client_id",this.clientId)),!this.useHttpBasicAuth&&this.dummyClientSecret&&(s=s.set("client_secret",this.dummyClientSecret)),this.customQueryParams)for(let a of Object.getOwnPropertyNames(this.customQueryParams))s=s.set(a,this.customQueryParams[a]);for(let a of Object.keys(i))s=s.set(a,i[a]);return r=r.set("Content-Type","application/x-www-form-urlencoded"),new Promise((a,o)=>{this.http.post(this.tokenEndpoint,s,{headers:r}).subscribe(l=>{this.debug("tokenResponse",l),this.storeAccessTokenResponse(l.access_token,l.refresh_token,l.expires_in||this.fallbackAccessTokenExpirationTimeInSec,l.scope,this.extractRecognizedCustomParameters(l)),this.oidc&&l.id_token&&this.processIdToken(l.id_token,l.access_token).then(c=>{this.storeIdToken(c),a(l)}),this.eventsSubject.next(new Yi("token_received")),a(l)},l=>{this.logger.error("Error performing ${grantType} flow",l),this.eventsSubject.next(new qt("token_error",l)),o(l)})})}refreshToken(){return this.assertUrlNotNullAndCorrectProtocol(this.tokenEndpoint,"tokenEndpoint"),new Promise((e,i)=>{let r=new Oo({encoder:new Co}).set("grant_type","refresh_token").set("scope",this.scope).set("refresh_token",this._storage.getItem("refresh_token")),s=new Hs().set("Content-Type","application/x-www-form-urlencoded");if(this.useHttpBasicAuth){let a=btoa(`${this.clientId}:${this.dummyClientSecret}`);s=s.set("Authorization","Basic "+a)}if(this.useHttpBasicAuth||(r=r.set("client_id",this.clientId)),!this.useHttpBasicAuth&&this.dummyClientSecret&&(r=r.set("client_secret",this.dummyClientSecret)),this.customQueryParams)for(let a of Object.getOwnPropertyNames(this.customQueryParams))r=r.set(a,this.customQueryParams[a]);this.http.post(this.tokenEndpoint,r,{headers:s}).pipe(Dt(a=>this.oidc&&a.id_token?_i(this.processIdToken(a.id_token,a.access_token,!0)).pipe(Et(o=>this.storeIdToken(o)),Le(()=>a)):_e(a))).subscribe(a=>{this.debug("refresh tokenResponse",a),this.storeAccessTokenResponse(a.access_token,a.refresh_token,a.expires_in||this.fallbackAccessTokenExpirationTimeInSec,a.scope,this.extractRecognizedCustomParameters(a)),this.eventsSubject.next(new Yi("token_received")),this.eventsSubject.next(new Yi("token_refreshed")),e(a)},a=>{this.logger.error("Error refreshing token",a),this.eventsSubject.next(new qt("token_refresh_error",a)),i(a)})})}removeSilentRefreshEventListener(){this.silentRefreshPostMessageEventListener&&(window.removeEventListener("message",this.silentRefreshPostMessageEventListener),this.silentRefreshPostMessageEventListener=null)}setupSilentRefreshEventListener(){this.removeSilentRefreshEventListener(),this.silentRefreshPostMessageEventListener=e=>{let i=this.processMessageEventMessage(e);this.checkOrigin&&e.origin!==location.origin&&console.error("wrong origin requested silent refresh!"),this.tryLogin({customHashFragment:i,preventClearHashAfterLogin:!0,customRedirectUri:this.silentRefreshRedirectUri||this.redirectUri}).catch(r=>this.debug("tryLogin during silent refresh failed",r))},window.addEventListener("message",this.silentRefreshPostMessageEventListener)}silentRefresh(e={},i=!0){let r=this.getIdentityClaims()||{};if(this.useIdTokenHintForSilentRefresh&&this.hasValidIdToken()&&(e.id_token_hint=this.getIdToken()),!this.validateUrlForHttps(this.loginUrl))throw new Error("loginUrl must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");if(typeof this.document>"u")throw new Error("silent refresh is not supported on this platform");let s=this.document.getElementById(this.silentRefreshIFrameName);s&&this.document.body.removeChild(s),this.silentRefreshSubject=r.sub;let a=this.document.createElement("iframe");a.id=this.silentRefreshIFrameName,this.setupSilentRefreshEventListener();let o=this.silentRefreshRedirectUri||this.redirectUri;this.createLoginUrl(null,null,o,i,e).then(d=>{a.setAttribute("src",d),this.silentRefreshShowIFrame||(a.style.display="none"),this.document.body.appendChild(a)});let l=this.events.pipe(st(d=>d instanceof qt),hn()),c=this.events.pipe(st(d=>d.type==="token_received"),hn()),u=_e(new qt("silent_refresh_timeout",null)).pipe(Eo(this.silentRefreshTimeout));return MC([l,c,u]).pipe(Le(d=>{if(d instanceof qt)throw d.type==="silent_refresh_timeout"?this.eventsSubject.next(d):(d=new qt("silent_refresh_error",d),this.eventsSubject.next(d)),d;return d.type==="token_received"&&(d=new Yi("silently_refreshed"),this.eventsSubject.next(d)),d})).toPromise()}initImplicitFlowInPopup(e){return this.initLoginFlowInPopup(e)}initLoginFlowInPopup(e){return e=e||{},this.createLoginUrl(null,null,this.silentRefreshRedirectUri,!1,{display:"popup"}).then(i=>new Promise((r,s)=>{let o=null;e.windowRef?e.windowRef&&!e.windowRef.closed&&(o=e.windowRef,o.location.href=i):o=window.open(i,"ngx-oauth2-oidc-login",this.calculatePopupFeatures(e));let l,c=f=>{this.tryLogin({customHashFragment:f,preventClearHashAfterLogin:!0,customRedirectUri:this.silentRefreshRedirectUri}).then(()=>{d(),r(!0)},g=>{d(),s(g)})},u=()=>{(!o||o.closed)&&(d(),s(new qt("popup_closed",{})))};o?l=window.setInterval(u,500):s(new qt("popup_blocked",{}));let d=()=>{window.clearInterval(l),window.removeEventListener("storage",m),window.removeEventListener("message",h),o!==null&&o.close(),o=null},h=f=>{let g=this.processMessageEventMessage(f);g&&g!==null?(window.removeEventListener("storage",m),c(g)):console.log("false event firing")},m=f=>{f.key==="auth_hash"&&(window.removeEventListener("message",h),c(f.newValue))};window.addEventListener("message",h),window.addEventListener("storage",m)}))}calculatePopupFeatures(e){let i=e.height||470,r=e.width||500,s=window.screenLeft+(window.outerWidth-r)/2,a=window.screenTop+(window.outerHeight-i)/2;return`location=no,toolbar=no,width=${r},height=${i},top=${a},left=${s}`}processMessageEventMessage(e){let i="#";if(this.silentRefreshMessagePrefix&&(i+=this.silentRefreshMessagePrefix),!e||!e.data||typeof e.data!="string")return;let r=e.data;if(r.startsWith(i))return"#"+r.substr(i.length)}canPerformSessionCheck(){return this.sessionChecksEnabled?this.sessionCheckIFrameUrl?this.getSessionState()?!(typeof this.document>"u"):(console.warn("sessionChecksEnabled is activated but there is no session_state"),!1):(console.warn("sessionChecksEnabled is activated but there is no sessionCheckIFrameUrl"),!1):!1}setupSessionCheckEventListener(){this.removeSessionCheckEventListener(),this.sessionCheckEventListener=e=>{let i=e.origin.toLowerCase(),r=this.issuer.toLowerCase();if(this.debug("sessionCheckEventListener"),!r.startsWith(i)){this.debug("sessionCheckEventListener","wrong origin",i,"expected",r,"event",e);return}switch(e.data){case"unchanged":this.ngZone.run(()=>{this.handleSessionUnchanged()});break;case"changed":this.ngZone.run(()=>{this.handleSessionChange()});break;case"error":this.ngZone.run(()=>{this.handleSessionError()});break}this.debug("got info from session check inframe",e)},this.ngZone.runOutsideAngular(()=>{window.addEventListener("message",this.sessionCheckEventListener)})}handleSessionUnchanged(){this.debug("session check","session unchanged"),this.eventsSubject.next(new gr("session_unchanged"))}handleSessionChange(){this.eventsSubject.next(new gr("session_changed")),this.stopSessionCheckTimer(),!this.useSilentRefresh&&this.responseType==="code"?this.refreshToken().then(()=>{this.debug("token refresh after session change worked")}).catch(()=>{this.debug("token refresh did not work after session changed"),this.eventsSubject.next(new gr("session_terminated")),this.logOut(!0)}):this.silentRefreshRedirectUri?(this.silentRefresh().catch(()=>this.debug("silent refresh failed after session changed")),this.waitForSilentRefreshAfterSessionChange()):(this.eventsSubject.next(new gr("session_terminated")),this.logOut(!0))}waitForSilentRefreshAfterSessionChange(){this.events.pipe(st(e=>e.type==="silently_refreshed"||e.type==="silent_refresh_timeout"||e.type==="silent_refresh_error"),hn()).subscribe(e=>{e.type!=="silently_refreshed"&&(this.debug("silent refresh did not work after session changed"),this.eventsSubject.next(new gr("session_terminated")),this.logOut(!0))})}handleSessionError(){this.stopSessionCheckTimer(),this.eventsSubject.next(new gr("session_error"))}removeSessionCheckEventListener(){this.sessionCheckEventListener&&(window.removeEventListener("message",this.sessionCheckEventListener),this.sessionCheckEventListener=null)}initSessionCheck(){if(!this.canPerformSessionCheck())return;let e=this.document.getElementById(this.sessionCheckIFrameName);e&&this.document.body.removeChild(e);let i=this.document.createElement("iframe");i.id=this.sessionCheckIFrameName,this.setupSessionCheckEventListener();let r=this.sessionCheckIFrameUrl;i.setAttribute("src",r),i.style.display="none",this.document.body.appendChild(i),this.startSessionCheckTimer()}startSessionCheckTimer(){this.stopSessionCheckTimer(),this.ngZone.runOutsideAngular(()=>{this.sessionCheckTimer=setInterval(this.checkSession.bind(this),this.sessionCheckIntervall)})}stopSessionCheckTimer(){this.sessionCheckTimer&&(clearInterval(this.sessionCheckTimer),this.sessionCheckTimer=null)}checkSession(){let e=this.document.getElementById(this.sessionCheckIFrameName);e||this.logger.warn("checkSession did not find iframe",this.sessionCheckIFrameName);let i=this.getSessionState();i||this.stopSessionCheckTimer();let r=this.clientId+" "+i;e.contentWindow.postMessage(r,this.issuer)}createLoginUrl(){return Pt(this,arguments,function*(e="",i="",r="",s=!1,a={}){let o=this,l;r?l=r:l=this.redirectUri;let c=yield this.createAndSaveNonce();if(e?e=c+this.config.nonceStateSeparator+encodeURIComponent(e):e=c,!this.requestAccessToken&&!this.oidc)throw new Error("Either requestAccessToken or oidc or both must be true");this.config.responseType?this.responseType=this.config.responseType:this.oidc&&this.requestAccessToken?this.responseType="id_token token":this.oidc&&!this.requestAccessToken?this.responseType="id_token":this.responseType="token";let u=o.loginUrl.indexOf("?")>-1?"&":"?",d=o.scope;this.oidc&&!d.match(/(^|\s)openid($|\s)/)&&(d="openid "+d);let h=o.loginUrl+u+"response_type="+encodeURIComponent(o.responseType)+"&client_id="+encodeURIComponent(o.clientId)+"&state="+encodeURIComponent(e)+"&redirect_uri="+encodeURIComponent(l)+"&scope="+encodeURIComponent(d);if(this.responseType.includes("code")&&!this.disablePKCE){let[m,f]=yield this.createChallangeVerifierPairForPKCE();this.saveNoncesInLocalStorage&&typeof window.localStorage<"u"?localStorage.setItem("PKCE_verifier",f):this._storage.setItem("PKCE_verifier",f),h+="&code_challenge="+m,h+="&code_challenge_method=S256"}i&&(h+="&login_hint="+encodeURIComponent(i)),o.resource&&(h+="&resource="+encodeURIComponent(o.resource)),o.oidc&&(h+="&nonce="+encodeURIComponent(c)),s&&(h+="&prompt=none");for(let m of Object.keys(a))h+="&"+encodeURIComponent(m)+"="+encodeURIComponent(a[m]);if(this.customQueryParams)for(let m of Object.getOwnPropertyNames(this.customQueryParams))h+="&"+m+"="+encodeURIComponent(this.customQueryParams[m]);return h})}initImplicitFlowInternal(e="",i=""){if(this.inImplicitFlow)return;if(this.inImplicitFlow=!0,!this.validateUrlForHttps(this.loginUrl))throw new Error("loginUrl must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");let r={},s=null;typeof i=="string"?s=i:typeof i=="object"&&(r=i),this.createLoginUrl(e,s,null,!1,r).then(this.config.openUri).catch(a=>{console.error("Error in initImplicitFlow",a),this.inImplicitFlow=!1})}initImplicitFlow(e="",i=""){this.loginUrl!==""?this.initImplicitFlowInternal(e,i):this.events.pipe(st(r=>r.type==="discovery_document_loaded")).subscribe(()=>this.initImplicitFlowInternal(e,i))}resetImplicitFlow(){this.inImplicitFlow=!1}callOnTokenReceivedIfExists(e){let i=this;if(e.onTokenReceived){let r={idClaims:i.getIdentityClaims(),idToken:i.getIdToken(),accessToken:i.getAccessToken(),state:i.state};e.onTokenReceived(r)}}storeAccessTokenResponse(e,i,r,s,a){if(this._storage.setItem("access_token",e),s&&!Array.isArray(s)?this._storage.setItem("granted_scopes",JSON.stringify(s.split(" "))):s&&Array.isArray(s)&&this._storage.setItem("granted_scopes",JSON.stringify(s)),this._storage.setItem("access_token_stored_at",""+this.dateTimeService.now()),r){let o=r*1e3,c=this.dateTimeService.new().getTime()+o;this._storage.setItem("expires_at",""+c)}i&&this._storage.setItem("refresh_token",i),a&&a.forEach((o,l)=>{this._storage.setItem(l,o)})}tryLogin(e=null){return this.config.responseType==="code"?this.tryLoginCodeFlow(e).then(()=>!0):this.tryLoginImplicitFlow(e)}parseQueryString(e){return!e||e.length===0?{}:(e.charAt(0)==="?"&&(e=e.substr(1)),this.urlHelper.parseQueryString(e))}tryLoginCodeFlow(e=null){return Pt(this,null,function*(){e=e||{};let i=e.customHashFragment?e.customHashFragment.substring(1):window.location.search,r=this.getCodePartsFromUrl(i),s=r.code,a=r.state,o=r.session_state;if(!e.preventClearHashAfterLogin){let u=location.origin+location.pathname+location.search.replace(/code=[^&$]*/,"").replace(/scope=[^&$]*/,"").replace(/state=[^&$]*/,"").replace(/session_state=[^&$]*/,"").replace(/^\?&/,"?").replace(/&$/,"").replace(/^\?$/,"").replace(/&+/g,"&").replace(/\?&/,"?").replace(/\?$/,"")+location.hash;history.replaceState(null,window.name,u)}let[l,c]=this.parseState(a);if(this.state=c,r.error){this.debug("error trying to login"),this.handleLoginError(e,r);let u=new qt("code_error",{},r);return this.eventsSubject.next(u),Promise.reject(u)}if(!e.disableNonceCheck){if(!l)return this.saveRequestedRoute(),Promise.resolve();if(!e.disableOAuth2StateCheck&&!this.validateNonce(l)){let d=new qt("invalid_nonce_in_state",null);return this.eventsSubject.next(d),Promise.reject(d)}}return this.storeSessionState(o),s&&(yield this.getTokenFromCode(s,e),this.restoreRequestedRoute()),Promise.resolve()})}saveRequestedRoute(){this.config.preserveRequestedRoute&&this._storage.setItem("requested_route",window.location.pathname+window.location.search)}restoreRequestedRoute(){let e=this._storage.getItem("requested_route");e&&history.replaceState(null,"",window.location.origin+e)}getCodePartsFromUrl(e){return!e||e.length===0?this.urlHelper.getHashFragmentParams():(e.charAt(0)==="?"&&(e=e.substr(1)),this.urlHelper.parseQueryString(e))}getTokenFromCode(e,i){let r=new Oo({encoder:new Co}).set("grant_type","authorization_code").set("code",e).set("redirect_uri",i.customRedirectUri||this.redirectUri);if(!this.disablePKCE){let s;this.saveNoncesInLocalStorage&&typeof window.localStorage<"u"?s=localStorage.getItem("PKCE_verifier"):s=this._storage.getItem("PKCE_verifier"),s?r=r.set("code_verifier",s):console.warn("No PKCE verifier found in oauth storage!")}return this.fetchAndProcessToken(r,i)}fetchAndProcessToken(e,i){i=i||{},this.assertUrlNotNullAndCorrectProtocol(this.tokenEndpoint,"tokenEndpoint");let r=new Hs().set("Content-Type","application/x-www-form-urlencoded");if(this.useHttpBasicAuth){let s=btoa(`${this.clientId}:${this.dummyClientSecret}`);r=r.set("Authorization","Basic "+s)}return this.useHttpBasicAuth||(e=e.set("client_id",this.clientId)),!this.useHttpBasicAuth&&this.dummyClientSecret&&(e=e.set("client_secret",this.dummyClientSecret)),new Promise((s,a)=>{if(this.customQueryParams)for(let o of Object.getOwnPropertyNames(this.customQueryParams))e=e.set(o,this.customQueryParams[o]);this.http.post(this.tokenEndpoint,e,{headers:r}).subscribe(o=>{this.debug("refresh tokenResponse",o),this.storeAccessTokenResponse(o.access_token,o.refresh_token,o.expires_in||this.fallbackAccessTokenExpirationTimeInSec,o.scope,this.extractRecognizedCustomParameters(o)),this.oidc&&o.id_token?this.processIdToken(o.id_token,o.access_token,i.disableNonceCheck).then(l=>{this.storeIdToken(l),this.eventsSubject.next(new Yi("token_received")),this.eventsSubject.next(new Yi("token_refreshed")),s(o)}).catch(l=>{this.eventsSubject.next(new qt("token_validation_error",l)),console.error("Error validating tokens"),console.error(l),a(l)}):(this.eventsSubject.next(new Yi("token_received")),this.eventsSubject.next(new Yi("token_refreshed")),s(o))},o=>{console.error("Error getting token",o),this.eventsSubject.next(new qt("token_refresh_error",o)),a(o)})})}tryLoginImplicitFlow(e=null){e=e||{};let i;e.customHashFragment?i=this.urlHelper.getHashFragmentParams(e.customHashFragment):i=this.urlHelper.getHashFragmentParams(),this.debug("parsed url",i);let r=i.state,[s,a]=this.parseState(r);if(this.state=a,i.error){this.debug("error trying to login"),this.handleLoginError(e,i);let d=new qt("token_error",{},i);return this.eventsSubject.next(d),Promise.reject(d)}let o=i.access_token,l=i.id_token,c=i.session_state,u=i.scope;if(!this.requestAccessToken&&!this.oidc)return Promise.reject("Either requestAccessToken or oidc (or both) must be true.");if(this.requestAccessToken&&!o||this.requestAccessToken&&!e.disableOAuth2StateCheck&&!r||this.oidc&&!l)return Promise.resolve(!1);if(this.sessionChecksEnabled&&!c&&this.logger.warn("session checks (Session Status Change Notification) were activated in the configuration but the id_token does not contain a session_state claim"),this.requestAccessToken&&!e.disableNonceCheck&&!this.validateNonce(s)){let h=new qt("invalid_nonce_in_state",null);return this.eventsSubject.next(h),Promise.reject(h)}return this.requestAccessToken&&this.storeAccessTokenResponse(o,null,i.expires_in||this.fallbackAccessTokenExpirationTimeInSec,u),this.oidc?this.processIdToken(l,o,e.disableNonceCheck).then(d=>e.validationHandler?e.validationHandler({accessToken:o,idClaims:d.idTokenClaims,idToken:d.idToken,state:r}).then(()=>d):d).then(d=>(this.storeIdToken(d),this.storeSessionState(c),this.clearHashAfterLogin&&!e.preventClearHashAfterLogin&&this.clearLocationHash(),this.eventsSubject.next(new Yi("token_received")),this.callOnTokenReceivedIfExists(e),this.inImplicitFlow=!1,!0)).catch(d=>(this.eventsSubject.next(new qt("token_validation_error",d)),this.logger.error("Error validating tokens"),this.logger.error(d),Promise.reject(d))):(this.eventsSubject.next(new Yi("token_received")),this.clearHashAfterLogin&&!e.preventClearHashAfterLogin&&this.clearLocationHash(),this.callOnTokenReceivedIfExists(e),Promise.resolve(!0))}parseState(e){let i=e,r="";if(e){let s=e.indexOf(this.config.nonceStateSeparator);s>-1&&(i=e.substr(0,s),r=e.substr(s+this.config.nonceStateSeparator.length))}return[i,r]}validateNonce(e){let i;return this.saveNoncesInLocalStorage&&typeof window.localStorage<"u"?i=localStorage.getItem("nonce"):i=this._storage.getItem("nonce"),i!==e?(console.error("Validating access_token failed, wrong state/nonce.",i,e),!1):!0}storeIdToken(e){this._storage.setItem("id_token",e.idToken),this._storage.setItem("id_token_claims_obj",e.idTokenClaimsJson),this._storage.setItem("id_token_expires_at",""+e.idTokenExpiresAt),this._storage.setItem("id_token_stored_at",""+this.dateTimeService.now())}storeSessionState(e){this._storage.setItem("session_state",e)}getSessionState(){return this._storage.getItem("session_state")}handleLoginError(e,i){e.onLoginError&&e.onLoginError(i),this.clearHashAfterLogin&&!e.preventClearHashAfterLogin&&this.clearLocationHash()}getClockSkewInMsec(e=6e5){return!this.clockSkewInSec&&this.clockSkewInSec!==0?e:this.clockSkewInSec*1e3}processIdToken(e,i,r=!1){let s=e.split("."),a=this.padBase64(s[0]),o=$R(a),l=JSON.parse(o),c=this.padBase64(s[1]),u=$R(c),d=JSON.parse(u),h;if(this.saveNoncesInLocalStorage&&typeof window.localStorage<"u"?h=localStorage.getItem("nonce"):h=this._storage.getItem("nonce"),Array.isArray(d.aud)){if(d.aud.every(C=>C!==this.clientId)){let C="Wrong audience: "+d.aud.join(",");return this.logger.warn(C),Promise.reject(C)}}else if(d.aud!==this.clientId){let C="Wrong audience: "+d.aud;return this.logger.warn(C),Promise.reject(C)}if(!d.sub){let C="No sub claim in id_token";return this.logger.warn(C),Promise.reject(C)}if(this.sessionChecksEnabled&&this.silentRefreshSubject&&this.silentRefreshSubject!==d.sub){let C=`After refreshing, we got an id_token for another user (sub). Expected sub: ${this.silentRefreshSubject}, received sub: ${d.sub}`;return this.logger.warn(C),Promise.reject(C)}if(!d.iat){let C="No iat claim in id_token";return this.logger.warn(C),Promise.reject(C)}if(!this.skipIssuerCheck&&d.iss!==this.issuer){let C="Wrong issuer: "+d.iss;return this.logger.warn(C),Promise.reject(C)}if(!r&&d.nonce!==h){let C="Wrong nonce: "+d.nonce;return this.logger.warn(C),Promise.reject(C)}if(Object.prototype.hasOwnProperty.call(this,"responseType")&&(this.responseType==="code"||this.responseType==="id_token")&&(this.disableAtHashCheck=!0),!this.disableAtHashCheck&&this.requestAccessToken&&!d.at_hash){let C="An at_hash is needed!";return this.logger.warn(C),Promise.reject(C)}let m=this.dateTimeService.now(),f=d.iat*1e3,g=d.exp*1e3,v=this.getClockSkewInMsec();if(f-v>=m||g+v-this.decreaseExpirationBySec<=m){let C="Token has expired";return console.error(C),console.error({now:m,issuedAtMSec:f,expiresAtMSec:g}),Promise.reject(C)}let w={accessToken:i,idToken:e,jwks:this.jwks,idTokenClaims:d,idTokenHeader:l,loadKeys:()=>this.loadJwks()};return this.disableAtHashCheck?this.checkSignature(w).then(()=>({idToken:e,idTokenClaims:d,idTokenClaimsJson:u,idTokenHeader:l,idTokenHeaderJson:o,idTokenExpiresAt:g})):this.checkAtHash(w).then(C=>{if(!this.disableAtHashCheck&&this.requestAccessToken&&!C){let k="Wrong at_hash";return this.logger.warn(k),Promise.reject(k)}return this.checkSignature(w).then(()=>{let k=!this.disableAtHashCheck,x={idToken:e,idTokenClaims:d,idTokenClaimsJson:u,idTokenHeader:l,idTokenHeaderJson:o,idTokenExpiresAt:g};return k?this.checkAtHash(w).then(y=>{if(this.requestAccessToken&&!y){let E="Wrong at_hash";return this.logger.warn(E),Promise.reject(E)}else return x}):x})})}getIdentityClaims(){let e=this._storage.getItem("id_token_claims_obj");return e?JSON.parse(e):null}getGrantedScopes(){let e=this._storage.getItem("granted_scopes");return e?JSON.parse(e):null}getIdToken(){return this._storage?this._storage.getItem("id_token"):null}padBase64(e){for(;e.length%4!==0;)e+="=";return e}getAccessToken(){return this._storage?this._storage.getItem("access_token"):null}getRefreshToken(){return this._storage?this._storage.getItem("refresh_token"):null}getAccessTokenExpiration(){return this._storage.getItem("expires_at")?parseInt(this._storage.getItem("expires_at"),10):null}getAccessTokenStoredAt(){return parseInt(this._storage.getItem("access_token_stored_at"),10)}getIdTokenStoredAt(){return parseInt(this._storage.getItem("id_token_stored_at"),10)}getIdTokenExpiration(){return this._storage.getItem("id_token_expires_at")?parseInt(this._storage.getItem("id_token_expires_at"),10):null}hasValidAccessToken(){if(this.getAccessToken()){let e=this._storage.getItem("expires_at"),i=this.dateTimeService.new();return!(e&&parseInt(e,10)-this.decreaseExpirationBySec=0&&this._storage.getItem(e)!==null?JSON.parse(this._storage.getItem(e)):null}authorizationHeader(){return"Bearer "+this.getAccessToken()}logOut(e={},i=""){let r=!1;typeof e=="boolean"&&(r=e,e={});let s=this.getIdToken();if(this._storage.removeItem("access_token"),this._storage.removeItem("id_token"),this._storage.removeItem("refresh_token"),this.saveNoncesInLocalStorage?(localStorage.removeItem("nonce"),localStorage.removeItem("PKCE_verifier")):(this._storage.removeItem("nonce"),this._storage.removeItem("PKCE_verifier")),this._storage.removeItem("expires_at"),this._storage.removeItem("id_token_claims_obj"),this._storage.removeItem("id_token_expires_at"),this._storage.removeItem("id_token_stored_at"),this._storage.removeItem("access_token_stored_at"),this._storage.removeItem("granted_scopes"),this._storage.removeItem("session_state"),this.config.customTokenParameters&&this.config.customTokenParameters.forEach(o=>this._storage.removeItem(o)),this.silentRefreshSubject=null,this.eventsSubject.next(new gr("logout")),!this.logoutUrl||r)return;let a;if(!this.validateUrlForHttps(this.logoutUrl))throw new Error("logoutUrl must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");if(this.logoutUrl.indexOf("{{")>-1)a=this.logoutUrl.replace(/\{\{id_token\}\}/,encodeURIComponent(s)).replace(/\{\{client_id\}\}/,encodeURIComponent(this.clientId));else{let o=new Oo({encoder:new Co});s&&(o=o.set("id_token_hint",s));let l=this.postLogoutRedirectUri||this.redirectUriAsPostLogoutRedirectUriFallback&&this.redirectUri||"";l&&(o=o.set("post_logout_redirect_uri",l),i&&(o=o.set("state",i)));for(let c in e)o=o.set(c,e[c]);a=this.logoutUrl+(this.logoutUrl.indexOf("?")>-1?"&":"?")+o.toString()}this.config.openUri(a)}createAndSaveNonce(){let e=this;return this.createNonce().then(function(i){return e.saveNoncesInLocalStorage&&typeof window.localStorage<"u"?localStorage.setItem("nonce",i):e._storage.setItem("nonce",i),i})}ngOnDestroy(){this.clearAccessTokenTimer(),this.clearIdTokenTimer(),this.removeSilentRefreshEventListener();let e=this.document.getElementById(this.silentRefreshIFrameName);e&&e.remove(),this.stopSessionCheckTimer(),this.removeSessionCheckEventListener();let i=this.document.getElementById(this.sessionCheckIFrameName);i&&i.remove()}createNonce(){return new Promise(e=>{if(this.rngUrl)throw new Error("createNonce with rng-web-api has not been implemented so far");let i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",r=45,s="",a=typeof self>"u"?null:self.crypto||self.msCrypto;if(a){let o=new Uint8Array(r);a.getRandomValues(o),o.map||(o.map=Array.prototype.map),o=o.map(l=>i.charCodeAt(l%i.length)),s=String.fromCharCode.apply(null,o)}else for(;0r.type==="discovery_document_loaded")).subscribe(()=>this.initCodeFlowInternal(e,i))}initCodeFlowInternal(e="",i={}){if(!this.validateUrlForHttps(this.loginUrl))throw new Error("loginUrl must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");let r={},s=null;typeof i=="string"?s=i:typeof i=="object"&&(r=i),this.createLoginUrl(e,s,null,!1,r).then(this.config.openUri).catch(a=>{console.error("Error in initAuthorizationCodeFlow"),console.error(a)})}createChallangeVerifierPairForPKCE(){return Pt(this,null,function*(){if(!this.crypto)throw new Error("PKCE support for code flow needs a CryptoHander. Did you import the OAuthModule using forRoot() ?");let e=yield this.createNonce(),i=yield this.crypto.calcHash(e,"sha-256");return[VR(i),e]})}extractRecognizedCustomParameters(e){let i=new Map;return this.config.customTokenParameters&&this.config.customTokenParameters.forEach(r=>{e[r]&&i.set(r,JSON.stringify(e[r]))}),i}revokeTokenAndLogout(e={},i=!1){let r=this.revocationEndpoint,s=this.getAccessToken(),a=this.getRefreshToken();if(!s)return Promise.resolve();let o=new Oo({encoder:new Co}),l=new Hs().set("Content-Type","application/x-www-form-urlencoded");if(this.useHttpBasicAuth){let c=btoa(`${this.clientId}:${this.dummyClientSecret}`);l=l.set("Authorization","Basic "+c)}if(this.useHttpBasicAuth||(o=o.set("client_id",this.clientId)),!this.useHttpBasicAuth&&this.dummyClientSecret&&(o=o.set("client_secret",this.dummyClientSecret)),this.customQueryParams)for(let c of Object.getOwnPropertyNames(this.customQueryParams))o=o.set(c,this.customQueryParams[c]);return new Promise((c,u)=>{let d,h;if(s){let m=o.set("token",s).set("token_type_hint","access_token");d=this.http.post(r,m,{headers:l})}else d=_e(null);if(a){let m=o.set("token",a).set("token_type_hint","refresh_token");h=this.http.post(r,m,{headers:l})}else h=_e(null);i&&(d=d.pipe(Zi(m=>m.status===0?_e(null):er(m))),h=h.pipe(Zi(m=>m.status===0?_e(null):er(m)))),yr([d,h]).subscribe(m=>{this.logOut(e),c(m),this.logger.info("Token successfully revoked")},m=>{this.logger.error("Error revoking token",m),this.eventsSubject.next(new qt("token_revoke_error",m)),u(m)})})}clearLocationHash(){location.hash!=""&&(location.hash="")}static{this.\u0275fac=function(i){return new(i||n)(Oe(Ne),Oe(js),Oe(Xp,8),Oe(Jp,8),Oe(Xl,8),Oe(BR),Oe(Zp),Oe(e0,8),Oe(it),Oe(Ad))}}static{this.\u0275prov=se({token:n,factory:n.\u0275fac})}}return n})(),t0=class{},W1=class{handleError(t){return er(t)}},AW=(()=>{class n{constructor(e,i,r){this.oAuthService=e,this.errorHandler=i,this.moduleConfig=r}checkUrl(e){return this.moduleConfig.resourceServer.customUrlValidation?this.moduleConfig.resourceServer.customUrlValidation(e):this.moduleConfig.resourceServer.allowedUrls?!!this.moduleConfig.resourceServer.allowedUrls.find(i=>e.toLowerCase().startsWith(i.toLowerCase())):!0}intercept(e,i){let r=e.url.toLowerCase();return!this.moduleConfig||!this.moduleConfig.resourceServer||!this.checkUrl(r)?i.handle(e):this.moduleConfig.resourceServer.sendAccessToken?ti(_e(this.oAuthService.getAccessToken()).pipe(st(a=>!!a)),this.oAuthService.events.pipe(st(a=>a.type==="token_received"),kC(this.oAuthService.waitForTokenInMsec||0),Zi(()=>_e(null)),Le(()=>this.oAuthService.getAccessToken()))).pipe(jt(1),Pi(a=>{if(a){let o="Bearer "+a,l=e.headers.set("Authorization",o);e=e.clone({headers:l})}return i.handle(e).pipe(Zi(o=>this.errorHandler.handleError(o)))})):i.handle(e).pipe(Zi(a=>this.errorHandler.handleError(a)))}static{this.\u0275fac=function(i){return new(i||n)(Oe(HR),Oe(t0),Oe(Qp,8))}}static{this.\u0275prov=se({token:n,factory:n.\u0275fac})}}return n})();function DW(){return console}function RW(){return typeof sessionStorage<"u"?sessionStorage:new xW}function LW(n=null,t=Yp){return Ma([HR,BR,{provide:Zp,useFactory:DW},{provide:Xp,useFactory:RW},{provide:Jp,useClass:t},{provide:e0,useClass:IW},{provide:t0,useClass:W1},{provide:Qp,useValue:n},{provide:sw,useClass:AW,multi:!0},{provide:Ad,useClass:wW}])}var jR=(()=>{class n{static forRoot(e=null,i=Yp){return{ngModule:n,providers:[LW(e,i)]}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=ge({type:n})}static{this.\u0275inj=pe({imports:[es]})}}return n})();var tle=new ee("AUTH_CONFIG");function WR(n){return new je(3e3,!1)}function OW(){return new je(3100,!1)}function NW(){return new je(3101,!1)}function FW(n){return new je(3001,!1)}function PW(n){return new je(3003,!1)}function UW(n){return new je(3004,!1)}function $W(n,t){return new je(3005,!1)}function VW(){return new je(3006,!1)}function BW(){return new je(3007,!1)}function zW(n,t){return new je(3008,!1)}function HW(n){return new je(3002,!1)}function jW(n,t,e,i,r){return new je(3010,!1)}function WW(){return new je(3011,!1)}function qW(){return new je(3012,!1)}function GW(){return new je(3200,!1)}function KW(){return new je(3202,!1)}function YW(){return new je(3013,!1)}function QW(n){return new je(3014,!1)}function ZW(n){return new je(3015,!1)}function XW(n){return new je(3016,!1)}function JW(n,t){return new je(3404,!1)}function eq(n){return new je(3502,!1)}function tq(n){return new je(3503,!1)}function iq(){return new je(3300,!1)}function nq(n){return new je(3504,!1)}function rq(n){return new je(3301,!1)}function sq(n,t){return new je(3302,!1)}function aq(n){return new je(3303,!1)}function oq(n,t){return new je(3400,!1)}function lq(n){return new je(3401,!1)}function cq(n){return new je(3402,!1)}function uq(n,t){return new je(3505,!1)}function xa(n){switch(n.length){case 0:return new Js;case 1:return n[0];default:return new Qc(n)}}function sL(n,t,e=new Map,i=new Map){let r=[],s=[],a=-1,o=null;if(t.forEach(l=>{let c=l.get("offset"),u=c==a,d=u&&o||new Map;l.forEach((h,m)=>{let f=m,g=h;if(m!=="offset")switch(f=n.normalizePropertyName(f,r),g){case Cm:g=e.get(m);break;case Ar:g=i.get(m);break;default:g=n.normalizeStyleValue(m,f,g,r);break}d.set(f,g)}),u||s.push(d),o=d,a=c}),r.length)throw eq(r);return s}function mC(n,t,e,i){switch(t){case"start":n.onStart(()=>i(e&&q1(e,"start",n)));break;case"done":n.onDone(()=>i(e&&q1(e,"done",n)));break;case"destroy":n.onDestroy(()=>i(e&&q1(e,"destroy",n)));break}}function q1(n,t,e){let i=e.totalTime,r=!!e.disabled,s=fC(n.element,n.triggerName,n.fromState,n.toState,t||n.phaseName,i??n.totalTime,r),a=n._data;return a!=null&&(s._data=a),s}function fC(n,t,e,i,r="",s=0,a){return{element:n,triggerName:t,fromState:e,toState:i,phaseName:r,totalTime:s,disabled:!!a}}function Tn(n,t,e){let i=n.get(t);return i||n.set(t,i=e),i}function qR(n){let t=n.indexOf(":"),e=n.substring(1,t),i=n.slice(t+1);return[e,i]}var dq=typeof document>"u"?null:document.documentElement;function pC(n){let t=n.parentNode||n.host||null;return t===dq?null:t}function hq(n){return n.substring(1,6)=="ebkit"}var wo=null,GR=!1;function mq(n){wo||(wo=fq()||{},GR=wo.style?"WebkitAppearance"in wo.style:!1);let t=!0;return wo.style&&!hq(n)&&(t=n in wo.style,!t&&GR&&(t="Webkit"+n.charAt(0).toUpperCase()+n.slice(1)in wo.style)),t}function fq(){return typeof document<"u"?document.body:null}function aL(n,t){for(;t;){if(t===n)return!0;t=pC(t)}return!1}function oL(n,t,e){if(e)return Array.from(n.querySelectorAll(t));let i=n.querySelector(t);return i?[i]:[]}var gC=(()=>{class n{validateStyleProperty(e){return mq(e)}containsElement(e,i){return aL(e,i)}getParentElement(e){return pC(e)}query(e,i,r){return oL(e,i,r)}computeStyle(e,i,r){return r||""}animate(e,i,r,s,a,o=[],l){return new Js(r,s)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})(),ko=class{static NOOP=new gC},Mo=class{};var pq=1e3,lL="{{",gq="}}",cL="ng-enter",X1="ng-leave",i0="ng-trigger",o0=".ng-trigger",KR="ng-animating",J1=".ng-animating";function Ls(n){if(typeof n=="number")return n;let t=n.match(/^(-?[\.\d]+)(m?s)/);return!t||t.length<2?0:eC(parseFloat(t[1]),t[2])}function eC(n,t){switch(t){case"s":return n*pq;default:return n}}function l0(n,t,e){return n.hasOwnProperty("duration")?n:_q(n,t,e)}function _q(n,t,e){let i=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i,r,s=0,a="";if(typeof n=="string"){let o=n.match(i);if(o===null)return t.push(WR(n)),{duration:0,delay:0,easing:""};r=eC(parseFloat(o[1]),o[2]);let l=o[3];l!=null&&(s=eC(parseFloat(l),o[4]));let c=o[5];c&&(a=c)}else r=n;if(!e){let o=!1,l=t.length;r<0&&(t.push(OW()),o=!0),s<0&&(t.push(NW()),o=!0),o&&t.splice(l,0,WR(n))}return{duration:r,delay:s,easing:a}}function vq(n){return n.length?n[0]instanceof Map?n:n.map(t=>new Map(Object.entries(t))):[]}function Yr(n,t,e){t.forEach((i,r)=>{let s=_C(r);e&&!e.has(r)&&e.set(r,n.style[s]),n.style[s]=i})}function So(n,t){t.forEach((e,i)=>{let r=_C(i);n.style[r]=""})}function Rd(n){return Array.isArray(n)?n.length==1?n[0]:Ik(n):n}function bq(n,t,e){let i=t.params||{},r=uL(n);r.length&&r.forEach(s=>{i.hasOwnProperty(s)||e.push(FW(s))})}var tC=new RegExp(`${lL}\\s*(.+?)\\s*${gq}`,"g");function uL(n){let t=[];if(typeof n=="string"){let e;for(;e=tC.exec(n);)t.push(e[1]);tC.lastIndex=0}return t}function Od(n,t,e){let i=`${n}`,r=i.replace(tC,(s,a)=>{let o=t[a];return o==null&&(e.push(PW(a)),o=""),o.toString()});return r==i?n:r}var yq=/-+([a-z0-9])/g;function _C(n){return n.replace(yq,(...t)=>t[1].toUpperCase())}function Cq(n,t){return n===0||t===0}function wq(n,t,e){if(e.size&&t.length){let i=t[0],r=[];if(e.forEach((s,a)=>{i.has(a)||r.push(a),i.set(a,s)}),r.length)for(let s=1;sa.set(o,vC(n,o)))}}return t}function Mn(n,t,e){switch(t.type){case Ze.Trigger:return n.visitTrigger(t,e);case Ze.State:return n.visitState(t,e);case Ze.Transition:return n.visitTransition(t,e);case Ze.Sequence:return n.visitSequence(t,e);case Ze.Group:return n.visitGroup(t,e);case Ze.Animate:return n.visitAnimate(t,e);case Ze.Keyframes:return n.visitKeyframes(t,e);case Ze.Style:return n.visitStyle(t,e);case Ze.Reference:return n.visitReference(t,e);case Ze.AnimateChild:return n.visitAnimateChild(t,e);case Ze.AnimateRef:return n.visitAnimateRef(t,e);case Ze.Query:return n.visitQuery(t,e);case Ze.Stagger:return n.visitStagger(t,e);default:throw UW(t.type)}}function vC(n,t){return window.getComputedStyle(n)[t]}var xq=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]),c0=class extends Mo{normalizePropertyName(t,e){return _C(t)}normalizeStyleValue(t,e,i,r){let s="",a=i.toString().trim();if(xq.has(e)&&i!==0&&i!=="0")if(typeof i=="number")s="px";else{let o=i.match(/^[+-]?[\d\.]+([a-z]*)$/);o&&o[1].length==0&&r.push($W(t,i))}return a+s}};var u0="*";function Sq(n,t){let e=[];return typeof n=="string"?n.split(/\s*,\s*/).forEach(i=>kq(i,e,t)):e.push(n),e}function kq(n,t,e){if(n[0]==":"){let l=Mq(n,e);if(typeof l=="function"){t.push(l);return}n=l}let i=n.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(i==null||i.length<4)return e.push(ZW(n)),t;let r=i[1],s=i[2],a=i[3];t.push(YR(r,a));let o=r==u0&&a==u0;s[0]=="<"&&!o&&t.push(YR(a,r))}function Mq(n,t){switch(n){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}var n0=new Set(["true","1"]),r0=new Set(["false","0"]);function YR(n,t){let e=n0.has(n)||r0.has(n),i=n0.has(t)||r0.has(t);return(r,s)=>{let a=n==u0||n==r,o=t==u0||t==s;return!a&&e&&typeof r=="boolean"&&(a=r?n0.has(n):r0.has(n)),!o&&i&&typeof s=="boolean"&&(o=s?n0.has(t):r0.has(t)),a&&o}}var dL=":self",Tq=new RegExp(`s*${dL}s*,?`,"g");function hL(n,t,e,i){return new iC(n).build(t,e,i)}var QR="",iC=class{_driver;constructor(t){this._driver=t}build(t,e,i){let r=new nC(e);return this._resetContextStyleTimingState(r),Mn(this,Rd(t),r)}_resetContextStyleTimingState(t){t.currentQuerySelector=QR,t.collectedStyles=new Map,t.collectedStyles.set(QR,new Map),t.currentTime=0}visitTrigger(t,e){let i=e.queryCount=0,r=e.depCount=0,s=[],a=[];return t.name.charAt(0)=="@"&&e.errors.push(VW()),t.definitions.forEach(o=>{if(this._resetContextStyleTimingState(e),o.type==Ze.State){let l=o,c=l.name;c.toString().split(/\s*,\s*/).forEach(u=>{l.name=u,s.push(this.visitState(l,e))}),l.name=c}else if(o.type==Ze.Transition){let l=this.visitTransition(o,e);i+=l.queryCount,r+=l.depCount,a.push(l)}else e.errors.push(BW())}),{type:Ze.Trigger,name:t.name,states:s,transitions:a,queryCount:i,depCount:r,options:null}}visitState(t,e){let i=this.visitStyle(t.styles,e),r=t.options&&t.options.params||null;if(i.containsDynamicStyles){let s=new Set,a=r||{};i.styles.forEach(o=>{o instanceof Map&&o.forEach(l=>{uL(l).forEach(c=>{a.hasOwnProperty(c)||s.add(c)})})}),s.size&&e.errors.push(zW(t.name,[...s.values()]))}return{type:Ze.State,name:t.name,style:i,options:r?{params:r}:null}}visitTransition(t,e){e.queryCount=0,e.depCount=0;let i=Mn(this,Rd(t.animation),e),r=Sq(t.expr,e.errors);return{type:Ze.Transition,matchers:r,animation:i,queryCount:e.queryCount,depCount:e.depCount,options:xo(t.options)}}visitSequence(t,e){return{type:Ze.Sequence,steps:t.steps.map(i=>Mn(this,i,e)),options:xo(t.options)}}visitGroup(t,e){let i=e.currentTime,r=0,s=t.steps.map(a=>{e.currentTime=i;let o=Mn(this,a,e);return r=Math.max(r,e.currentTime),o});return e.currentTime=r,{type:Ze.Group,steps:s,options:xo(t.options)}}visitAnimate(t,e){let i=Dq(t.timings,e.errors);e.currentAnimateTimings=i;let r,s=t.styles?t.styles:ht({});if(s.type==Ze.Keyframes)r=this.visitKeyframes(s,e);else{let a=t.styles,o=!1;if(!a){o=!0;let c={};i.easing&&(c.easing=i.easing),a=ht(c)}e.currentTime+=i.duration+i.delay;let l=this.visitStyle(a,e);l.isEmptyStep=o,r=l}return e.currentAnimateTimings=null,{type:Ze.Animate,timings:i,style:r,options:null}}visitStyle(t,e){let i=this._makeStyleAst(t,e);return this._validateStyleAst(i,e),i}_makeStyleAst(t,e){let i=[],r=Array.isArray(t.styles)?t.styles:[t.styles];for(let o of r)typeof o=="string"?o===Ar?i.push(o):e.errors.push(HW(o)):i.push(new Map(Object.entries(o)));let s=!1,a=null;return i.forEach(o=>{if(o instanceof Map&&(o.has("easing")&&(a=o.get("easing"),o.delete("easing")),!s)){for(let l of o.values())if(l.toString().indexOf(lL)>=0){s=!0;break}}}),{type:Ze.Style,styles:i,easing:a,offset:t.offset,containsDynamicStyles:s,options:null}}_validateStyleAst(t,e){let i=e.currentAnimateTimings,r=e.currentTime,s=e.currentTime;i&&s>0&&(s-=i.duration+i.delay),t.styles.forEach(a=>{typeof a!="string"&&a.forEach((o,l)=>{let c=e.collectedStyles.get(e.currentQuerySelector),u=c.get(l),d=!0;u&&(s!=r&&s>=u.startTime&&r<=u.endTime&&(e.errors.push(jW(l,u.startTime,u.endTime,s,r)),d=!1),s=u.startTime),d&&c.set(l,{startTime:s,endTime:r}),e.options&&bq(o,e.options,e.errors)})})}visitKeyframes(t,e){let i={type:Ze.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(WW()),i;let r=1,s=0,a=[],o=!1,l=!1,c=0,u=t.steps.map(w=>{let C=this._makeStyleAst(w,e),k=C.offset!=null?C.offset:Aq(C.styles),x=0;return k!=null&&(s++,x=C.offset=k),l=l||x<0||x>1,o=o||x0&&s{let k=h>0?C==m?1:h*C:a[C],x=k*v;e.currentTime=f+g.delay+x,g.duration=x,this._validateStyleAst(w,e),w.offset=k,i.styles.push(w)}),i}visitReference(t,e){return{type:Ze.Reference,animation:Mn(this,Rd(t.animation),e),options:xo(t.options)}}visitAnimateChild(t,e){return e.depCount++,{type:Ze.AnimateChild,options:xo(t.options)}}visitAnimateRef(t,e){return{type:Ze.AnimateRef,animation:this.visitReference(t.animation,e),options:xo(t.options)}}visitQuery(t,e){let i=e.currentQuerySelector,r=t.options||{};e.queryCount++,e.currentQuery=t;let[s,a]=Eq(t.selector);e.currentQuerySelector=i.length?i+" "+s:s,Tn(e.collectedStyles,e.currentQuerySelector,new Map);let o=Mn(this,Rd(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:Ze.Query,selector:s,limit:r.limit||0,optional:!!r.optional,includeSelf:a,animation:o,originalSelector:t.selector,options:xo(t.options)}}visitStagger(t,e){e.currentQuery||e.errors.push(YW());let i=t.timings==="full"?{duration:0,delay:0,easing:"full"}:l0(t.timings,e.errors,!0);return{type:Ze.Stagger,animation:Mn(this,Rd(t.animation),e),timings:i,options:null}}};function Eq(n){let t=!!n.split(/\s*,\s*/).find(e=>e==dL);return t&&(n=n.replace(Tq,"")),n=n.replace(/@\*/g,o0).replace(/@\w+/g,e=>o0+"-"+e.slice(1)).replace(/:animating/g,J1),[n,t]}function Iq(n){return n?j({},n):null}var nC=class{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(t){this.errors=t}};function Aq(n){if(typeof n=="string")return null;let t=null;if(Array.isArray(n))n.forEach(e=>{if(e instanceof Map&&e.has("offset")){let i=e;t=parseFloat(i.get("offset")),i.delete("offset")}});else if(n instanceof Map&&n.has("offset")){let e=n;t=parseFloat(e.get("offset")),e.delete("offset")}return t}function Dq(n,t){if(n.hasOwnProperty("duration"))return n;if(typeof n=="number"){let s=l0(n,t).duration;return G1(s,0,"")}let e=n;if(e.split(/\s+/).some(s=>s.charAt(0)=="{"&&s.charAt(1)=="{")){let s=G1(0,0,"");return s.dynamic=!0,s.strValue=e,s}let r=l0(e,t);return G1(r.duration,r.delay,r.easing)}function xo(n){return n?(n=j({},n),n.params&&(n.params=Iq(n.params))):n={},n}function G1(n,t,e){return{duration:n,delay:t,easing:e}}function bC(n,t,e,i,r,s,a=null,o=!1){return{type:1,element:n,keyframes:t,preStyleProps:e,postStyleProps:i,duration:r,delay:s,totalTime:r+s,easing:a,subTimeline:o}}var Nd=class{_map=new Map;get(t){return this._map.get(t)||[]}append(t,e){let i=this._map.get(t);i||this._map.set(t,i=[]),i.push(...e)}has(t){return this._map.has(t)}clear(){this._map.clear()}},Rq=1,Lq=":enter",Oq=new RegExp(Lq,"g"),Nq=":leave",Fq=new RegExp(Nq,"g");function mL(n,t,e,i,r,s=new Map,a=new Map,o,l,c=[]){return new rC().buildKeyframes(n,t,e,i,r,s,a,o,l,c)}var rC=class{buildKeyframes(t,e,i,r,s,a,o,l,c,u=[]){c=c||new Nd;let d=new sC(t,e,c,r,s,u,[]);d.options=l;let h=l.delay?Ls(l.delay):0;d.currentTimeline.delayNextStep(h),d.currentTimeline.setStyles([a],null,d.errors,l),Mn(this,i,d);let m=d.timelines.filter(f=>f.containsAnimation());if(m.length&&o.size){let f;for(let g=m.length-1;g>=0;g--){let v=m[g];if(v.element===e){f=v;break}}f&&!f.allowOnlyTimelineStyles()&&f.setStyles([o],null,d.errors,l)}return m.length?m.map(f=>f.buildKeyframes()):[bC(e,[],[],[],0,h,"",!1)]}visitTrigger(t,e){}visitState(t,e){}visitTransition(t,e){}visitAnimateChild(t,e){let i=e.subInstructions.get(e.element);if(i){let r=e.createSubContext(t.options),s=e.currentTimeline.currentTime,a=this._visitSubInstructions(i,r,r.options);s!=a&&e.transformIntoNewTimeline(a)}e.previousNode=t}visitAnimateRef(t,e){let i=e.createSubContext(t.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([t.options,t.animation.options],e,i),this.visitReference(t.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=t}_applyAnimationRefDelays(t,e,i){for(let r of t){let s=r?.delay;if(s){let a=typeof s=="number"?s:Ls(Od(s,r?.params??{},e.errors));i.delayNextStep(a)}}}_visitSubInstructions(t,e,i){let s=e.currentTimeline.currentTime,a=i.duration!=null?Ls(i.duration):null,o=i.delay!=null?Ls(i.delay):null;return a!==0&&t.forEach(l=>{let c=e.appendInstructionToTimeline(l,a,o);s=Math.max(s,c.duration+c.delay)}),s}visitReference(t,e){e.updateOptions(t.options,!0),Mn(this,t.animation,e),e.previousNode=t}visitSequence(t,e){let i=e.subContextCount,r=e,s=t.options;if(s&&(s.params||s.delay)&&(r=e.createSubContext(s),r.transformIntoNewTimeline(),s.delay!=null)){r.previousNode.type==Ze.Style&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=d0);let a=Ls(s.delay);r.delayNextStep(a)}t.steps.length&&(t.steps.forEach(a=>Mn(this,a,r)),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>i&&r.transformIntoNewTimeline()),e.previousNode=t}visitGroup(t,e){let i=[],r=e.currentTimeline.currentTime,s=t.options&&t.options.delay?Ls(t.options.delay):0;t.steps.forEach(a=>{let o=e.createSubContext(t.options);s&&o.delayNextStep(s),Mn(this,a,o),r=Math.max(r,o.currentTimeline.currentTime),i.push(o.currentTimeline)}),i.forEach(a=>e.currentTimeline.mergeTimelineCollectedStyles(a)),e.transformIntoNewTimeline(r),e.previousNode=t}_visitTiming(t,e){if(t.dynamic){let i=t.strValue,r=e.params?Od(i,e.params,e.errors):i;return l0(r,e.errors)}else return{duration:t.duration,delay:t.delay,easing:t.easing}}visitAnimate(t,e){let i=e.currentAnimateTimings=this._visitTiming(t.timings,e),r=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),r.snapshotCurrentStyles());let s=t.style;s.type==Ze.Keyframes?this.visitKeyframes(s,e):(e.incrementTime(i.duration),this.visitStyle(s,e),r.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t}visitStyle(t,e){let i=e.currentTimeline,r=e.currentAnimateTimings;!r&&i.hasCurrentStyleProperties()&&i.forwardFrame();let s=r&&r.easing||t.easing;t.isEmptyStep?i.applyEmptyStep(s):i.setStyles(t.styles,s,e.errors,e.options),e.previousNode=t}visitKeyframes(t,e){let i=e.currentAnimateTimings,r=e.currentTimeline.duration,s=i.duration,o=e.createSubContext().currentTimeline;o.easing=i.easing,t.styles.forEach(l=>{let c=l.offset||0;o.forwardTime(c*s),o.setStyles(l.styles,l.easing,e.errors,e.options),o.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(o),e.transformIntoNewTimeline(r+s),e.previousNode=t}visitQuery(t,e){let i=e.currentTimeline.currentTime,r=t.options||{},s=r.delay?Ls(r.delay):0;s&&(e.previousNode.type===Ze.Style||i==0&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=d0);let a=i,o=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!r.optional,e.errors);e.currentQueryTotal=o.length;let l=null;o.forEach((c,u)=>{e.currentQueryIndex=u;let d=e.createSubContext(t.options,c);s&&d.delayNextStep(s),c===e.element&&(l=d.currentTimeline),Mn(this,t.animation,d),d.currentTimeline.applyStylesToKeyframe();let h=d.currentTimeline.currentTime;a=Math.max(a,h)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(a),l&&(e.currentTimeline.mergeTimelineCollectedStyles(l),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t}visitStagger(t,e){let i=e.parentContext,r=e.currentTimeline,s=t.timings,a=Math.abs(s.duration),o=a*(e.currentQueryTotal-1),l=a*e.currentQueryIndex;switch(s.duration<0?"reverse":s.easing){case"reverse":l=o-l;break;case"full":l=i.currentStaggerTime;break}let u=e.currentTimeline;l&&u.delayNextStep(l);let d=u.currentTime;Mn(this,t.animation,e),e.previousNode=t,i.currentStaggerTime=r.currentTime-d+(r.startTime-i.currentTimeline.startTime)}},d0={},sC=class n{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=d0;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(t,e,i,r,s,a,o,l){this._driver=t,this.element=e,this.subInstructions=i,this._enterClassName=r,this._leaveClassName=s,this.errors=a,this.timelines=o,this.currentTimeline=l||new h0(this._driver,e,0),o.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(t,e){if(!t)return;let i=t,r=this.options;i.duration!=null&&(r.duration=Ls(i.duration)),i.delay!=null&&(r.delay=Ls(i.delay));let s=i.params;if(s){let a=r.params;a||(a=this.options.params={}),Object.keys(s).forEach(o=>{(!e||!a.hasOwnProperty(o))&&(a[o]=Od(s[o],a,this.errors))})}}_copyOptions(){let t={};if(this.options){let e=this.options.params;if(e){let i=t.params={};Object.keys(e).forEach(r=>{i[r]=e[r]})}}return t}createSubContext(t=null,e,i){let r=e||this.element,s=new n(this._driver,r,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(r,i||0));return s.previousNode=this.previousNode,s.currentAnimateTimings=this.currentAnimateTimings,s.options=this._copyOptions(),s.updateOptions(t),s.currentQueryIndex=this.currentQueryIndex,s.currentQueryTotal=this.currentQueryTotal,s.parentContext=this,this.subContextCount++,s}transformIntoNewTimeline(t){return this.previousNode=d0,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(t,e,i){let r={duration:e??t.duration,delay:this.currentTimeline.currentTime+(i??0)+t.delay,easing:""},s=new aC(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,r,t.stretchStartingKeyframe);return this.timelines.push(s),r}incrementTime(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)}delayNextStep(t){t>0&&this.currentTimeline.delayNextStep(t)}invokeQuery(t,e,i,r,s,a){let o=[];if(r&&o.push(this.element),t.length>0){t=t.replace(Oq,"."+this._enterClassName),t=t.replace(Fq,"."+this._leaveClassName);let l=i!=1,c=this._driver.query(this.element,t,l);i!==0&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),o.push(...c)}return!s&&o.length==0&&a.push(QW(e)),o}},h0=class n{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(t,e,i,r){this._driver=t,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=r,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(t){let e=this._keyframes.size===1&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t}fork(t,e){return this.applyStylesToKeyframe(),new n(this._driver,t,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=Rq,this._loadKeyframe()}forwardTime(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()}_updateStyle(t,e){this._localTimelineStyles.set(t,e),this._globalTimelineStyles.set(t,e),this._styleSummary.set(t,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(t){t&&this._previousKeyframe.set("easing",t);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||Ar),this._currentKeyframe.set(e,Ar);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(t,e,i,r){e&&this._previousKeyframe.set("easing",e);let s=r&&r.params||{},a=Pq(t,this._globalTimelineStyles);for(let[o,l]of a){let c=Od(l,s,i);this._pendingStyles.set(o,c),this._localTimelineStyles.has(o)||this._backFill.set(o,this._globalTimelineStyles.get(o)??Ar),this._updateStyle(o,c)}}applyStylesToKeyframe(){this._pendingStyles.size!=0&&(this._pendingStyles.forEach((t,e)=>{this._currentKeyframe.set(e,t)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((t,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,t)}))}snapshotCurrentStyles(){for(let[t,e]of this._localTimelineStyles)this._pendingStyles.set(t,e),this._updateStyle(t,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){let t=[];for(let e in this._currentKeyframe)t.push(e);return t}mergeTimelineCollectedStyles(t){t._styleSummary.forEach((e,i)=>{let r=this._styleSummary.get(i);(!r||e.time>r.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();let t=new Set,e=new Set,i=this._keyframes.size===1&&this.duration===0,r=[];this._keyframes.forEach((o,l)=>{let c=new Map([...this._backFill,...o]);c.forEach((u,d)=>{u===Cm?t.add(d):u===Ar&&e.add(d)}),i||c.set("offset",l/this.duration),r.push(c)});let s=[...t.values()],a=[...e.values()];if(i){let o=r[0],l=new Map(o);o.set("offset",0),l.set("offset",1),r=[o,l]}return bC(this.element,r,s,a,this.duration,this.startTime,this.easing,!1)}},aC=class extends h0{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(t,e,i,r,s,a,o=!1){super(t,e,a.delay),this.keyframes=i,this.preStyleProps=r,this.postStyleProps=s,this._stretchStartingKeyframe=o,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let t=this.keyframes,{delay:e,duration:i,easing:r}=this.timings;if(this._stretchStartingKeyframe&&e){let s=[],a=i+e,o=e/a,l=new Map(t[0]);l.set("offset",0),s.push(l);let c=new Map(t[0]);c.set("offset",ZR(o)),s.push(c);let u=t.length-1;for(let d=1;d<=u;d++){let h=new Map(t[d]),m=h.get("offset"),f=e+m*i;h.set("offset",ZR(f/a)),s.push(h)}i=a,e=0,r="",t=s}return bC(this.element,t,this.preStyleProps,this.postStyleProps,i,e,r,!0)}};function ZR(n,t=3){let e=Math.pow(10,t-1);return Math.round(n*e)/e}function Pq(n,t){let e=new Map,i;return n.forEach(r=>{if(r==="*"){i??=t.keys();for(let s of i)e.set(s,Ar)}else for(let[s,a]of r)e.set(s,a)}),e}function XR(n,t,e,i,r,s,a,o,l,c,u,d,h){return{type:0,element:n,triggerName:t,isRemovalTransition:r,fromState:e,fromStyles:s,toState:i,toStyles:a,timelines:o,queriedElements:l,preStyleProps:c,postStyleProps:u,totalTime:d,errors:h}}var K1={},m0=class{_triggerName;ast;_stateStyles;constructor(t,e,i){this._triggerName=t,this.ast=e,this._stateStyles=i}match(t,e,i,r){return Uq(this.ast.matchers,t,e,i,r)}buildStyles(t,e,i){let r=this._stateStyles.get("*");return t!==void 0&&(r=this._stateStyles.get(t?.toString())||r),r?r.buildStyles(e,i):new Map}build(t,e,i,r,s,a,o,l,c,u){let d=[],h=this.ast.options&&this.ast.options.params||K1,m=o&&o.params||K1,f=this.buildStyles(i,m,d),g=l&&l.params||K1,v=this.buildStyles(r,g,d),w=new Set,C=new Map,k=new Map,x=r==="void",y={params:fL(g,h),delay:this.ast.options?.delay},E=u?[]:mL(t,e,this.ast.animation,s,a,f,v,y,c,d),T=0;return E.forEach(M=>{T=Math.max(M.duration+M.delay,T)}),d.length?XR(e,this._triggerName,i,r,x,f,v,[],[],C,k,T,d):(E.forEach(M=>{let D=M.element,_=Tn(C,D,new Set);M.preStyleProps.forEach(b=>_.add(b));let p=Tn(k,D,new Set);M.postStyleProps.forEach(b=>p.add(b)),D!==e&&w.add(D)}),XR(e,this._triggerName,i,r,x,f,v,E,[...w.values()],C,k,T))}};function Uq(n,t,e,i,r){return n.some(s=>s(t,e,i,r))}function fL(n,t){let e=j({},t);return Object.entries(n).forEach(([i,r])=>{r!=null&&(e[i]=r)}),e}var oC=class{styles;defaultParams;normalizer;constructor(t,e,i){this.styles=t,this.defaultParams=e,this.normalizer=i}buildStyles(t,e){let i=new Map,r=fL(t,this.defaultParams);return this.styles.styles.forEach(s=>{typeof s!="string"&&s.forEach((a,o)=>{a&&(a=Od(a,r,e));let l=this.normalizer.normalizePropertyName(o,e);a=this.normalizer.normalizeStyleValue(o,l,a,e),i.set(o,a)})}),i}};function $q(n,t,e){return new lC(n,t,e)}var lC=class{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(t,e,i){this.name=t,this.ast=e,this._normalizer=i,e.states.forEach(r=>{let s=r.options&&r.options.params||{};this.states.set(r.name,new oC(r.style,s,i))}),JR(this.states,"true","1"),JR(this.states,"false","0"),e.transitions.forEach(r=>{this.transitionFactories.push(new m0(t,r,this.states))}),this.fallbackTransition=Vq(t,this.states,this._normalizer)}get containsQueries(){return this.ast.queryCount>0}matchTransition(t,e,i,r){return this.transitionFactories.find(a=>a.match(t,e,i,r))||null}matchStyles(t,e,i){return this.fallbackTransition.buildStyles(t,e,i)}};function Vq(n,t,e){let i=[(a,o)=>!0],r={type:Ze.Sequence,steps:[],options:null},s={type:Ze.Transition,animation:r,matchers:i,options:null,queryCount:0,depCount:0};return new m0(n,s,t)}function JR(n,t,e){n.has(t)?n.has(e)||n.set(e,n.get(t)):n.has(e)&&n.set(t,n.get(e))}var Bq=new Nd,cC=class{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i}register(t,e){let i=[],r=[],s=hL(this._driver,e,i,r);if(i.length)throw tq(i);r.length&&void 0,this._animations.set(t,s)}_buildPlayer(t,e,i){let r=t.element,s=sL(this._normalizer,t.keyframes,e,i);return this._driver.animate(r,s,t.duration,t.delay,t.easing,[],!0)}create(t,e,i={}){let r=[],s=this._animations.get(t),a,o=new Map;if(s?(a=mL(this._driver,e,s,cL,X1,new Map,new Map,i,Bq,r),a.forEach(u=>{let d=Tn(o,u.element,new Map);u.postStyleProps.forEach(h=>d.set(h,null))})):(r.push(iq()),a=[]),r.length)throw nq(r);o.forEach((u,d)=>{u.forEach((h,m)=>{u.set(m,this._driver.computeStyle(d,m,Ar))})});let l=a.map(u=>{let d=o.get(u.element);return this._buildPlayer(u,new Map,d)}),c=xa(l);return this._playersById.set(t,c),c.onDestroy(()=>this.destroy(t)),this.players.push(c),c}destroy(t){let e=this._getPlayer(t);e.destroy(),this._playersById.delete(t);let i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(t){let e=this._playersById.get(t);if(!e)throw rq(t);return e}listen(t,e,i,r){let s=fC(e,"","","");return mC(this._getPlayer(t),i,s,r),()=>{}}command(t,e,i,r){if(i=="register"){this.register(t,r[0]);return}if(i=="create"){let a=r[0]||{};this.create(t,e,a);return}let s=this._getPlayer(t);switch(i){case"play":s.play();break;case"pause":s.pause();break;case"reset":s.reset();break;case"restart":s.restart();break;case"finish":s.finish();break;case"init":s.init();break;case"setPosition":s.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(t);break}}},eL="ng-animate-queued",zq=".ng-animate-queued",Y1="ng-animate-disabled",Hq=".ng-animate-disabled",jq="ng-star-inserted",Wq=".ng-star-inserted",qq=[],pL={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Gq={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},_r="__ng_removed",Fd=class{namespaceId;value;options;get params(){return this.options.params}constructor(t,e=""){this.namespaceId=e;let i=t&&t.hasOwnProperty("value"),r=i?t.value:t;if(this.value=Yq(r),i){let s=t,{value:a}=s,o=wC(s,["value"]);this.options=o}else this.options={};this.options.params||(this.options.params={})}absorbOptions(t){let e=t.params;if(e){let i=this.options.params;Object.keys(e).forEach(r=>{i[r]==null&&(i[r]=e[r])})}}},Ld="void",Q1=new Fd(Ld),uC=class{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(t,e,i){this.id=t,this.hostElement=e,this._engine=i,this._hostClassName="ng-tns-"+t,Xn(e,this._hostClassName)}listen(t,e,i,r){if(!this._triggers.has(e))throw sq(i,e);if(i==null||i.length==0)throw aq(e);if(!Qq(i))throw oq(i,e);let s=Tn(this._elementListeners,t,[]),a={name:e,phase:i,callback:r};s.push(a);let o=Tn(this._engine.statesByElement,t,new Map);return o.has(e)||(Xn(t,i0),Xn(t,i0+"-"+e),o.set(e,Q1)),()=>{this._engine.afterFlush(()=>{let l=s.indexOf(a);l>=0&&s.splice(l,1),this._triggers.has(e)||o.delete(e)})}}register(t,e){return this._triggers.has(t)?!1:(this._triggers.set(t,e),!0)}_getTrigger(t){let e=this._triggers.get(t);if(!e)throw lq(t);return e}trigger(t,e,i,r=!0){let s=this._getTrigger(e),a=new Pd(this.id,e,t),o=this._engine.statesByElement.get(t);o||(Xn(t,i0),Xn(t,i0+"-"+e),this._engine.statesByElement.set(t,o=new Map));let l=o.get(e),c=new Fd(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&l&&c.absorbOptions(l.options),o.set(e,c),l||(l=Q1),!(c.value===Ld)&&l.value===c.value){if(!Jq(l.params,c.params)){let g=[],v=s.matchStyles(l.value,l.params,g),w=s.matchStyles(c.value,c.params,g);g.length?this._engine.reportError(g):this._engine.afterFlush(()=>{So(t,v),Yr(t,w)})}return}let h=Tn(this._engine.playersByElement,t,[]);h.forEach(g=>{g.namespaceId==this.id&&g.triggerName==e&&g.queued&&g.destroy()});let m=s.matchTransition(l.value,c.value,t,c.params),f=!1;if(!m){if(!r)return;m=s.fallbackTransition,f=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:m,fromState:l,toState:c,player:a,isFallbackTransition:f}),f||(Xn(t,eL),a.onStart(()=>{Jl(t,eL)})),a.onDone(()=>{let g=this.players.indexOf(a);g>=0&&this.players.splice(g,1);let v=this._engine.playersByElement.get(t);if(v){let w=v.indexOf(a);w>=0&&v.splice(w,1)}}),this.players.push(a),h.push(a),a}deregister(t){this._triggers.delete(t),this._engine.statesByElement.forEach(e=>e.delete(t)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(r=>r.name!=t))})}clearElementCache(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);let e=this._engine.playersByElement.get(t);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(t))}_signalRemovalForInnerTriggers(t,e){let i=this._engine.driver.query(t,o0,!0);i.forEach(r=>{if(r[_r])return;let s=this._engine.fetchNamespacesByElement(r);s.size?s.forEach(a=>a.triggerLeaveAnimation(r,e,!1,!0)):this.clearElementCache(r)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(r=>this.clearElementCache(r)))}triggerLeaveAnimation(t,e,i,r){let s=this._engine.statesByElement.get(t),a=new Map;if(s){let o=[];if(s.forEach((l,c)=>{if(a.set(c,l.value),this._triggers.has(c)){let u=this.trigger(t,c,Ld,r);u&&o.push(u)}}),o.length)return this._engine.markElementAsRemoved(this.id,t,!0,e,a),i&&xa(o).onDone(()=>this._engine.processLeaveNode(t)),!0}return!1}prepareLeaveAnimationListeners(t){let e=this._elementListeners.get(t),i=this._engine.statesByElement.get(t);if(e&&i){let r=new Set;e.forEach(s=>{let a=s.name;if(r.has(a))return;r.add(a);let l=this._triggers.get(a).fallbackTransition,c=i.get(a)||Q1,u=new Fd(Ld),d=new Pd(this.id,a,t);this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:a,transition:l,fromState:c,toState:u,player:d,isFallbackTransition:!0})})}}removeNode(t,e){let i=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,e),this.triggerLeaveAnimation(t,e,!0))return;let r=!1;if(i.totalAnimations){let s=i.players.length?i.playersByQueriedElement.get(t):[];if(s&&s.length)r=!0;else{let a=t;for(;a=a.parentNode;)if(i.statesByElement.get(a)){r=!0;break}}}if(this.prepareLeaveAnimationListeners(t),r)i.markElementAsRemoved(this.id,t,!1,e);else{let s=t[_r];(!s||s===pL)&&(i.afterFlush(()=>this.clearElementCache(t)),i.destroyInnerAnimations(t),i._onRemovalComplete(t,e))}}insertNode(t,e){Xn(t,this._hostClassName)}drainQueuedTransitions(t){let e=[];return this._queue.forEach(i=>{let r=i.player;if(r.destroyed)return;let s=i.element,a=this._elementListeners.get(s);a&&a.forEach(o=>{if(o.name==i.triggerName){let l=fC(s,i.triggerName,i.fromState.value,i.toState.value);l._data=t,mC(i.player,o.phase,l,o.callback)}}),r.markedForDestroy?this._engine.afterFlush(()=>{r.destroy()}):e.push(i)}),this._queue=[],e.sort((i,r)=>{let s=i.transition.ast.depCount,a=r.transition.ast.depCount;return s==0||a==0?s-a:this._engine.driver.containsElement(i.element,r.element)?1:-1})}destroy(t){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,t)}},dC=class{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(t,e)=>{};_onRemovalComplete(t,e){this.onRemovalComplete(t,e)}constructor(t,e,i){this.bodyNode=t,this.driver=e,this._normalizer=i}get queuedPlayers(){let t=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&t.push(i)})}),t}createNamespace(t,e){let i=new uC(t,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[t]=i}_balanceNamespaceList(t,e){let i=this._namespaceList,r=this.namespacesByHostElement;if(i.length-1>=0){let a=!1,o=this.driver.getParentElement(e);for(;o;){let l=r.get(o);if(l){let c=i.indexOf(l);i.splice(c+1,0,t),a=!0;break}o=this.driver.getParentElement(o)}a||i.unshift(t)}else i.push(t);return r.set(e,t),t}register(t,e){let i=this._namespaceLookup[t];return i||(i=this.createNamespace(t,e)),i}registerTrigger(t,e,i){let r=this._namespaceLookup[t];r&&r.register(e,i)&&this.totalAnimations++}destroy(t,e){t&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{let i=this._fetchNamespace(t);this.namespacesByHostElement.delete(i.hostElement);let r=this._namespaceList.indexOf(i);r>=0&&this._namespaceList.splice(r,1),i.destroy(e),delete this._namespaceLookup[t]}))}_fetchNamespace(t){return this._namespaceLookup[t]}fetchNamespacesByElement(t){let e=new Set,i=this.statesByElement.get(t);if(i){for(let r of i.values())if(r.namespaceId){let s=this._fetchNamespace(r.namespaceId);s&&e.add(s)}}return e}trigger(t,e,i,r){if(s0(e)){let s=this._fetchNamespace(t);if(s)return s.trigger(e,i,r),!0}return!1}insertNode(t,e,i,r){if(!s0(e))return;let s=e[_r];if(s&&s.setForRemoval){s.setForRemoval=!1,s.setForMove=!0;let a=this.collectedLeaveElements.indexOf(e);a>=0&&this.collectedLeaveElements.splice(a,1)}if(t){let a=this._fetchNamespace(t);a&&a.insertNode(e,i)}r&&this.collectEnterElement(e)}collectEnterElement(t){this.collectedEnterElements.push(t)}markElementAsDisabled(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),Xn(t,Y1)):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),Jl(t,Y1))}removeNode(t,e,i){if(s0(e)){let r=t?this._fetchNamespace(t):null;r?r.removeNode(e,i):this.markElementAsRemoved(t,e,!1,i);let s=this.namespacesByHostElement.get(e);s&&s.id!==t&&s.removeNode(e,i)}else this._onRemovalComplete(e,i)}markElementAsRemoved(t,e,i,r,s){this.collectedLeaveElements.push(e),e[_r]={namespaceId:t,setForRemoval:r,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:s}}listen(t,e,i,r,s){return s0(e)?this._fetchNamespace(t).listen(e,i,r,s):()=>{}}_buildInstruction(t,e,i,r,s){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,i,r,t.fromState.options,t.toState.options,e,s)}destroyInnerAnimations(t){let e=this.driver.query(t,o0,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),this.playersByQueriedElement.size!=0&&(e=this.driver.query(t,J1,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(t){let e=this.playersByElement.get(t);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(t){let e=this.playersByQueriedElement.get(t);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(t=>{if(this.players.length)return xa(this.players).onDone(()=>t());t()})}processLeaveNode(t){let e=t[_r];if(e&&e.setForRemoval){if(t[_r]=pL,e.namespaceId){this.destroyInnerAnimations(t);let i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(t)}this._onRemovalComplete(t,e.setForRemoval)}t.classList?.contains(Y1)&&this.markElementAsDisabled(t,!1),this.driver.query(t,Hq,!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(t=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,r)=>this._balanceNamespaceList(i,r)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){let i=this._whenQuietFns;this._whenQuietFns=[],e.length?xa(e).onDone(()=>{i.forEach(r=>r())}):i.forEach(r=>r())}}reportError(t){throw cq(t)}_flushAnimations(t,e){let i=new Nd,r=[],s=new Map,a=[],o=new Map,l=new Map,c=new Map,u=new Set;this.disabledNodes.forEach(R=>{u.add(R);let O=this.driver.query(R,zq,!0);for(let U=0;U{let U=cL+g++;f.set(O,U),R.forEach(P=>Xn(P,U))});let v=[],w=new Set,C=new Set;for(let R=0;Rw.add(P)):C.add(O))}let k=new Map,x=nL(h,Array.from(w));x.forEach((R,O)=>{let U=X1+g++;k.set(O,U),R.forEach(P=>Xn(P,U))}),t.push(()=>{m.forEach((R,O)=>{let U=f.get(O);R.forEach(P=>Jl(P,U))}),x.forEach((R,O)=>{let U=k.get(O);R.forEach(P=>Jl(P,U))}),v.forEach(R=>{this.processLeaveNode(R)})});let y=[],E=[];for(let R=this._namespaceList.length-1;R>=0;R--)this._namespaceList[R].drainQueuedTransitions(e).forEach(U=>{let P=U.player,W=U.element;if(y.push(P),this.collectedEnterElements.length){let ve=W[_r];if(ve&&ve.setForMove){if(ve.previousTriggersValues&&ve.previousTriggersValues.has(U.triggerName)){let ae=ve.previousTriggersValues.get(U.triggerName),we=this.statesByElement.get(U.element);if(we&&we.has(U.triggerName)){let Ie=we.get(U.triggerName);Ie.value=ae,we.set(U.triggerName,Ie)}}P.destroy();return}}let V=!d||!this.driver.containsElement(d,W),K=k.get(W),Q=f.get(W),q=this._buildInstruction(U,i,Q,K,V);if(q.errors&&q.errors.length){E.push(q);return}if(V){P.onStart(()=>So(W,q.fromStyles)),P.onDestroy(()=>Yr(W,q.toStyles)),r.push(P);return}if(U.isFallbackTransition){P.onStart(()=>So(W,q.fromStyles)),P.onDestroy(()=>Yr(W,q.toStyles)),r.push(P);return}let ce=[];q.timelines.forEach(ve=>{ve.stretchStartingKeyframe=!0,this.disabledNodes.has(ve.element)||ce.push(ve)}),q.timelines=ce,i.append(W,q.timelines);let Re={instruction:q,player:P,element:W};a.push(Re),q.queriedElements.forEach(ve=>Tn(o,ve,[]).push(P)),q.preStyleProps.forEach((ve,ae)=>{if(ve.size){let we=l.get(ae);we||l.set(ae,we=new Set),ve.forEach((Ie,rt)=>we.add(rt))}}),q.postStyleProps.forEach((ve,ae)=>{let we=c.get(ae);we||c.set(ae,we=new Set),ve.forEach((Ie,rt)=>we.add(rt))})});if(E.length){let R=[];E.forEach(O=>{R.push(uq(O.triggerName,O.errors))}),y.forEach(O=>O.destroy()),this.reportError(R)}let T=new Map,M=new Map;a.forEach(R=>{let O=R.element;i.has(O)&&(M.set(O,O),this._beforeAnimationBuild(R.player.namespaceId,R.instruction,T))}),r.forEach(R=>{let O=R.element;this._getPreviousPlayers(O,!1,R.namespaceId,R.triggerName,null).forEach(P=>{Tn(T,O,[]).push(P),P.destroy()})});let D=v.filter(R=>rL(R,l,c)),_=new Map;iL(_,this.driver,C,c,Ar).forEach(R=>{rL(R,l,c)&&D.push(R)});let b=new Map;m.forEach((R,O)=>{iL(b,this.driver,new Set(R),l,Cm)}),D.forEach(R=>{let O=_.get(R),U=b.get(R);_.set(R,new Map([...O?.entries()??[],...U?.entries()??[]]))});let S=[],I=[],A={};a.forEach(R=>{let{element:O,player:U,instruction:P}=R;if(i.has(O)){if(u.has(O)){U.onDestroy(()=>Yr(O,P.toStyles)),U.disabled=!0,U.overrideTotalTime(P.totalTime),r.push(U);return}let W=A;if(M.size>1){let K=O,Q=[];for(;K=K.parentNode;){let q=M.get(K);if(q){W=q;break}Q.push(K)}Q.forEach(q=>M.set(q,W))}let V=this._buildAnimation(U.namespaceId,P,T,s,b,_);if(U.setRealPlayer(V),W===A)S.push(U);else{let K=this.playersByElement.get(W);K&&K.length&&(U.parentPlayer=xa(K)),r.push(U)}}else So(O,P.fromStyles),U.onDestroy(()=>Yr(O,P.toStyles)),I.push(U),u.has(O)&&r.push(U)}),I.forEach(R=>{let O=s.get(R.element);if(O&&O.length){let U=xa(O);R.setRealPlayer(U)}}),r.forEach(R=>{R.parentPlayer?R.syncPlayerEvents(R.parentPlayer):R.destroy()});for(let R=0;R!V.destroyed);W.length?Zq(this,O,W):this.processLeaveNode(O)}return v.length=0,S.forEach(R=>{this.players.push(R),R.onDone(()=>{R.destroy();let O=this.players.indexOf(R);this.players.splice(O,1)}),R.play()}),S}afterFlush(t){this._flushFns.push(t)}afterFlushAnimationsDone(t){this._whenQuietFns.push(t)}_getPreviousPlayers(t,e,i,r,s){let a=[];if(e){let o=this.playersByQueriedElement.get(t);o&&(a=o)}else{let o=this.playersByElement.get(t);if(o){let l=!s||s==Ld;o.forEach(c=>{c.queued||!l&&c.triggerName!=r||a.push(c)})}}return(i||r)&&(a=a.filter(o=>!(i&&i!=o.namespaceId||r&&r!=o.triggerName))),a}_beforeAnimationBuild(t,e,i){let r=e.triggerName,s=e.element,a=e.isRemovalTransition?void 0:t,o=e.isRemovalTransition?void 0:r;for(let l of e.timelines){let c=l.element,u=c!==s,d=Tn(i,c,[]);this._getPreviousPlayers(c,u,a,o,e.toState).forEach(m=>{let f=m.getRealPlayer();f.beforeDestroy&&f.beforeDestroy(),m.destroy(),d.push(m)})}So(s,e.fromStyles)}_buildAnimation(t,e,i,r,s,a){let o=e.triggerName,l=e.element,c=[],u=new Set,d=new Set,h=e.timelines.map(f=>{let g=f.element;u.add(g);let v=g[_r];if(v&&v.removedBeforeQueried)return new Js(f.duration,f.delay);let w=g!==l,C=Xq((i.get(g)||qq).map(T=>T.getRealPlayer())).filter(T=>{let M=T;return M.element?M.element===g:!1}),k=s.get(g),x=a.get(g),y=sL(this._normalizer,f.keyframes,k,x),E=this._buildPlayer(f,y,C);if(f.subTimeline&&r&&d.add(g),w){let T=new Pd(t,o,g);T.setRealPlayer(E),c.push(T)}return E});c.forEach(f=>{Tn(this.playersByQueriedElement,f.element,[]).push(f),f.onDone(()=>Kq(this.playersByQueriedElement,f.element,f))}),u.forEach(f=>Xn(f,KR));let m=xa(h);return m.onDestroy(()=>{u.forEach(f=>Jl(f,KR)),Yr(l,e.toStyles)}),d.forEach(f=>{Tn(r,f,[]).push(m)}),m}_buildPlayer(t,e,i){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,i):new Js(t.duration,t.delay)}},Pd=class{namespaceId;triggerName;element;_player=new Js;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(t,e,i){this.namespaceId=t,this.triggerName=e,this.element=i}setRealPlayer(t){this._containsRealPlayer||(this._player=t,this._queuedCallbacks.forEach((e,i)=>{e.forEach(r=>mC(t,i,void 0,r))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(t){this.totalTime=t}syncPlayerEvents(t){let e=this._player;e.triggerCallback&&t.onStart(()=>e.triggerCallback("start")),t.onDone(()=>this.finish()),t.onDestroy(()=>this.destroy())}_queueEvent(t,e){Tn(this._queuedCallbacks,t,[]).push(e)}onDone(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)}onStart(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)}onDestroy(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)}init(){this._player.init()}hasStarted(){return this.queued?!1:this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(t){this.queued||this._player.setPosition(t)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(t){let e=this._player;e.triggerCallback&&e.triggerCallback(t)}};function Kq(n,t,e){let i=n.get(t);if(i){if(i.length){let r=i.indexOf(e);i.splice(r,1)}i.length==0&&n.delete(t)}return i}function Yq(n){return n??null}function s0(n){return n&&n.nodeType===1}function Qq(n){return n=="start"||n=="done"}function tL(n,t){let e=n.style.display;return n.style.display=t??"none",e}function iL(n,t,e,i,r){let s=[];e.forEach(l=>s.push(tL(l)));let a=[];i.forEach((l,c)=>{let u=new Map;l.forEach(d=>{let h=t.computeStyle(c,d,r);u.set(d,h),(!h||h.length==0)&&(c[_r]=Gq,a.push(c))}),n.set(c,u)});let o=0;return e.forEach(l=>tL(l,s[o++])),a}function nL(n,t){let e=new Map;if(n.forEach(o=>e.set(o,[])),t.length==0)return e;let i=1,r=new Set(t),s=new Map;function a(o){if(!o)return i;let l=s.get(o);if(l)return l;let c=o.parentNode;return e.has(c)?l=c:r.has(c)?l=i:l=a(c),s.set(o,l),l}return t.forEach(o=>{let l=a(o);l!==i&&e.get(l).push(o)}),e}function Xn(n,t){n.classList?.add(t)}function Jl(n,t){n.classList?.remove(t)}function Zq(n,t,e){xa(e).onDone(()=>n.processLeaveNode(t))}function Xq(n){let t=[];return gL(n,t),t}function gL(n,t){for(let e=0;er.add(s)):t.set(n,i),e.delete(n),!0}var ec=class{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(t,e)=>{};constructor(t,e,i){this._driver=e,this._normalizer=i,this._transitionEngine=new dC(t.body,e,i),this._timelineEngine=new cC(t.body,e,i),this._transitionEngine.onRemovalComplete=(r,s)=>this.onRemovalComplete(r,s)}registerTrigger(t,e,i,r,s){let a=t+"-"+r,o=this._triggerCache[a];if(!o){let l=[],c=[],u=hL(this._driver,s,l,c);if(l.length)throw JW(r,l);c.length&&void 0,o=$q(r,u,this._normalizer),this._triggerCache[a]=o}this._transitionEngine.registerTrigger(e,r,o)}register(t,e){this._transitionEngine.register(t,e)}destroy(t,e){this._transitionEngine.destroy(t,e)}onInsert(t,e,i,r){this._transitionEngine.insertNode(t,e,i,r)}onRemove(t,e,i){this._transitionEngine.removeNode(t,e,i)}disableAnimations(t,e){this._transitionEngine.markElementAsDisabled(t,e)}process(t,e,i,r){if(i.charAt(0)=="@"){let[s,a]=qR(i),o=r;this._timelineEngine.command(s,e,a,o)}else this._transitionEngine.trigger(t,e,i,r)}listen(t,e,i,r,s){if(i.charAt(0)=="@"){let[a,o]=qR(i);return this._timelineEngine.listen(a,e,o,s)}return this._transitionEngine.listen(t,e,i,r,s)}flush(t=-1){this._transitionEngine.flush(t)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(t){this._transitionEngine.afterFlushAnimationsDone(t)}};function eG(n,t){let e=null,i=null;return Array.isArray(t)&&t.length?(e=Z1(t[0]),t.length>1&&(i=Z1(t[t.length-1]))):t instanceof Map&&(e=Z1(t)),e||i?new tG(n,e,i):null}var tG=(()=>{class n{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(e,i,r){this._element=e,this._startStyles=i,this._endStyles=r;let s=n.initialStylesByElement.get(e);s||n.initialStylesByElement.set(e,s=new Map),this._initialStyles=s}start(){this._state<1&&(this._startStyles&&Yr(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Yr(this._element,this._initialStyles),this._endStyles&&(Yr(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(n.initialStylesByElement.delete(this._element),this._startStyles&&(So(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(So(this._element,this._endStyles),this._endStyles=null),Yr(this._element,this._initialStyles),this._state=3)}}return n})();function Z1(n){let t=null;return n.forEach((e,i)=>{iG(i)&&(t=t||new Map,t.set(i,e))}),t}function iG(n){return n==="display"||n==="position"}var f0=class{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(t,e,i,r){this.element=t,this.keyframes=e,this.options=i,this._specialStyles=r,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;let t=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=t.length?t[t.length-1]:new Map;let e=()=>this._onFinish();this.domPlayer.addEventListener("finish",e),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",e)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(t){let e=[];return t.forEach(i=>{e.push(Object.fromEntries(i))}),e}_triggerWebAnimation(t,e,i){return t.animate(this._convertKeyframesToObject(e),i)}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(t=>t()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}setPosition(t){this.domPlayer===void 0&&this.init(),this.domPlayer.currentTime=t*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){let t=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,r)=>{r!=="offset"&&t.set(r,this._finished?i:vC(this.element,r))}),this.currentSnapshot=t}triggerCallback(t){let e=t==="start"?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}},p0=class{validateStyleProperty(t){return!0}validateAnimatableStyleProperty(t){return!0}containsElement(t,e){return aL(t,e)}getParentElement(t){return pC(t)}query(t,e,i){return oL(t,e,i)}computeStyle(t,e,i){return vC(t,e)}animate(t,e,i,r,s,a=[]){let o=r==0?"both":"forwards",l={duration:i,delay:r,fill:o};s&&(l.easing=s);let c=new Map,u=a.filter(m=>m instanceof f0);Cq(i,r)&&u.forEach(m=>{m.currentSnapshot.forEach((f,g)=>c.set(g,f))});let d=vq(e).map(m=>new Map(m));d=wq(t,d,c);let h=eG(t,d);return new f0(t,d,l,h)}};var a0="@",_L="@.disabled",g0=class{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(t,e,i,r){this.namespaceId=t,this.delegate=e,this.engine=i,this._onDestroy=r}get data(){return this.delegate.data}destroyNode(t){this.delegate.destroyNode?.(t)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}appendChild(t,e){this.delegate.appendChild(t,e),this.engine.onInsert(this.namespaceId,e,t,!1)}insertBefore(t,e,i,r=!0){this.delegate.insertBefore(t,e,i),this.engine.onInsert(this.namespaceId,e,t,r)}removeChild(t,e,i){this.parentNode(e)&&this.engine.onRemove(this.namespaceId,e,this.delegate)}selectRootElement(t,e){return this.delegate.selectRootElement(t,e)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setAttribute(t,e,i,r){this.delegate.setAttribute(t,e,i,r)}removeAttribute(t,e,i){this.delegate.removeAttribute(t,e,i)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,i,r){this.delegate.setStyle(t,e,i,r)}removeStyle(t,e,i){this.delegate.removeStyle(t,e,i)}setProperty(t,e,i){e.charAt(0)==a0&&e==_L?this.disableAnimations(t,!!i):this.delegate.setProperty(t,e,i)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,i){return this.delegate.listen(t,e,i)}disableAnimations(t,e){this.engine.disableAnimations(t,e)}},hC=class extends g0{factory;constructor(t,e,i,r,s){super(e,i,r,s),this.factory=t,this.namespaceId=e}setProperty(t,e,i){e.charAt(0)==a0?e.charAt(1)=="."&&e==_L?(i=i===void 0?!0:!!i,this.disableAnimations(t,i)):this.engine.process(this.namespaceId,t,e.slice(1),i):this.delegate.setProperty(t,e,i)}listen(t,e,i){if(e.charAt(0)==a0){let r=nG(t),s=e.slice(1),a="";return s.charAt(0)!=a0&&([s,a]=rG(s)),this.engine.listen(this.namespaceId,r,s,a,o=>{let l=o._data||-1;this.factory.scheduleListenerCallback(l,i,o)})}return this.delegate.listen(t,e,i)}};function nG(n){switch(n){case"body":return document.body;case"document":return document;case"window":return window;default:return n}}function rG(n){let t=n.indexOf("."),e=n.substring(0,t),i=n.slice(t+1);return[e,i]}var _0=class{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(t,e,i){this.delegate=t,this.engine=e,this._zone=i,e.onRemovalComplete=(r,s)=>{s?.removeChild(null,r)}}createRenderer(t,e){let i="",r=this.delegate.createRenderer(t,e);if(!t||!e?.data?.animation){let c=this._rendererCache,u=c.get(r);if(!u){let d=()=>c.delete(r);u=new g0(i,r,this.engine,d),c.set(r,u)}return u}let s=e.id,a=e.id+"-"+this._currentId;this._currentId++,this.engine.register(a,t);let o=c=>{Array.isArray(c)?c.forEach(o):this.engine.registerTrigger(s,a,t,c.name,c)};return e.data.animation.forEach(o),new hC(this,a,r,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(t,e,i){if(t>=0&&te(i));return}let r=this._animationCallbacksBuffer;r.length==0&&queueMicrotask(()=>{this._zone.run(()=>{r.forEach(s=>{let[a,o]=s;a(o)}),this._animationCallbacksBuffer=[]})}),r.push([e,i])}end(){this._cdRecurDepth--,this._cdRecurDepth==0&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}};var aG=(()=>{class n extends ec{constructor(e,i,r){super(e,i,r)}ngOnDestroy(){this.flush()}static \u0275fac=function(i){return new(i||n)(Oe(it),Oe(ko),Oe(Mo))};static \u0275prov=se({token:n,factory:n.\u0275fac})}return n})();function oG(){return new c0}function lG(n,t,e){return new _0(n,t,e)}var bL=[{provide:Mo,useFactory:oG},{provide:ec,useClass:aG},{provide:VC,useFactory:lG,deps:[lw,ec,Ne]}],vL=[{provide:ko,useFactory:()=>new p0},{provide:Ot,useValue:"BrowserAnimations"},...bL],cG=[{provide:ko,useClass:gC},{provide:Ot,useValue:"NoopAnimations"},...bL],yL=(()=>{class n{static withConfig(e){return{ngModule:n,providers:e.disableAnimations?cG:vL}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=ge({type:n});static \u0275inj=pe({providers:vL,imports:[oc]})}return n})();var uG=[{path:"",component:qk},{path:"mappinglanguage",component:Bm},{path:"CapabilityStatement",component:kk},{path:"igs",component:$A},{path:"settings",component:OM},{path:"transform",component:HA},{path:"validate",component:UR}];function dG(n){return new Eh(n,"./assets/i18n/",".json")}var CL=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=ge({type:n,bootstrap:[ZS]})}static{this.\u0275inj=pe({providers:[ux({loader:{provide:rs,useFactory:dG,deps:[js]}}),{provide:dw,useValue:{coreLibraryLoader:()=>import("./chunk-I6QVUCPC.js"),lineNumbersLoader:()=>import("./chunk-JS5THRTJ.js"),languages:{json:()=>import("./chunk-L46DWUZA.js"),xml:()=>import("./chunk-DY3RCVMQ.js")}}},aw(ow()),Nh,{provide:XC,useValue:window.MATCHBOX_BASE_PATH}],imports:[fT,mw,ox.forRoot(uG,{useHash:!1}),jR.forRoot(),VA,yL,pR.forRoot(),Ck.forRoot()]})}}return n})();var wL={production:!0};wL.production&&void 0;cw().bootstrapModule(CL).catch(n=>console.log(n)); diff --git a/matchbox-server/src/main/resources/static/browser/main-M5IISGXR.js b/matchbox-server/src/main/resources/static/browser/main-M5IISGXR.js new file mode 100644 index 00000000000..6cbc1106e4c --- /dev/null +++ b/matchbox-server/src/main/resources/static/browser/main-M5IISGXR.js @@ -0,0 +1,1175 @@ +import{$ as bw,$a as xe,$b as Pw,A as vc,Aa as Di,Ab as Dw,Ac as qw,B as Ai,Ba as Do,Bb as X,Bc as Gw,C as Zr,Ca as lh,Cb as Y,Cc as Jr,D as Ii,Da as ch,Db as Qe,Dc as es,E as rg,Ea as ot,Eb as Fe,Ec as Kw,F as Vt,Fa as xw,Fb as Rw,Fc as Yw,G as mw,Ga as lg,Gb as Et,Gc as Qw,H as To,Ha as uh,Hb as Pe,Hc as kc,I as mr,Ia as Yt,Ib as ke,Ic as zs,J as Eo,Ja as pr,Jb as Me,Jc as Fo,K as ln,Ka as wc,Kb as Lw,Kc as yr,L as sg,La as Sw,Lb as Ow,Lc as Zw,M as fw,Ma as kw,Mb as jt,Mc as Xw,N as ag,Na as $,Nb as B,Nc as Jw,O as pw,Oa as Mn,Ob as He,Oc as ex,P as gw,Pa as Mw,Pb as je,Pc as Hs,Q as Ps,Qa as Ri,Qb as Lo,Qc as tx,R as Ao,Ra as Rt,Rb as Us,Rc as ix,S as Bt,Sa as Ae,Sb as $s,Sc as nx,T as Mt,Ta as dh,Tb as Vs,U as Ye,Ua as ui,Ub as Nw,Uc as rx,V as _w,Va as Tw,Vb as rt,W as kt,Wa as cg,Wb as dg,X as Be,Xa as Ew,Xb as Oo,Y as Ci,Ya as hh,Yb as Fw,Z as ee,Za as le,Zb as En,_ as de,_a as he,_b as Kn,a as St,aa as J,ab as mh,ac as Ma,b as cw,ba as og,bb as Tt,bc as hg,c as dr,ca as Re,cb as oe,cc as Uw,d as tg,da as R,db as Aw,dc as $w,e as ig,ea as Io,eb as fh,ec as Ge,f as ue,fa as yc,fb as ug,fc as _e,g as ci,ga as Sa,gb as Iw,gc as Ft,h as ah,ha as cn,hb as Gn,hc as Yn,i as on,ia as fr,ib as Se,ic as br,j as si,ja as mt,jb as j,jc as gh,k as ge,ka as re,kb as Jt,kc as _h,l as qn,la as se,lb as ye,lc as Vw,m as Ns,ma as Ht,mb as ft,mc as Ze,n as uw,na as Xr,nb as ph,nc as mg,o as dw,oa as Dt,ob as Je,oc as Bw,p as Ne,pa as vw,pb as xc,pc as Sc,q as hr,qa as ut,qb as gr,qc as zw,r as yi,ra as un,rb as _r,rc as Hw,s as ng,sa as yw,sb as P,sc as Bs,t as xa,ta as Cw,tb as U,tc as jw,u as Fs,ua as ce,ub as te,uc as An,v as Mo,va as De,vb as qi,vc as vr,w as oh,wa as Cc,wb as Gi,wc as di,x as Kt,xa as ww,xb as Ro,xc as Ww,y as it,ya as Te,yb as ze,yc as bh,z as hw,za as ka,zb as Tn,zc as No}from"./chunk-JL4BMBRH.js";import{a as H,b as Le,c as ow,d as lw,e as Q,f as Os,g as Lt}from"./chunk-TSRGIXR5.js";var oS=Q((VK,aS)=>{"use strict";aS.exports=n=>encodeURIComponent(n).replace(/[!'()*]/g,t=>`%${t.charCodeAt(0).toString(16).toUpperCase()}`)});var hS=Q((BK,dS)=>{"use strict";var uS="%[a-f0-9]{2}",lS=new RegExp("("+uS+")|([^%]+?)","gi"),cS=new RegExp("("+uS+")+","gi");function Xg(n,t){try{return[decodeURIComponent(n.join(""))]}catch{}if(n.length===1)return n;t=t||1;var e=n.slice(0,t),i=n.slice(t);return Array.prototype.concat.call([],Xg(e),Xg(i))}function ZF(n){try{return decodeURIComponent(n)}catch{for(var t=n.match(lS)||[],e=1;e{"use strict";mS.exports=(n,t)=>{if(!(typeof n=="string"&&typeof t=="string"))throw new TypeError("Expected the arguments to be of type `string`");if(t==="")return[n];let e=n.indexOf(t);return e===-1?[n]:[n.slice(0,e),n.slice(e+t.length)]}});var gS=Q((HK,pS)=>{"use strict";pS.exports=function(n,t){for(var e={},i=Object.keys(n),r=Array.isArray(t),s=0;s{"use strict";var JF=oS(),eP=hS(),bS=fS(),tP=gS(),iP=n=>n==null,Jg=Symbol("encodeFragmentIdentifier");function nP(n){switch(n.arrayFormat){case"index":return t=>(e,i)=>{let r=e.length;return i===void 0||n.skipNull&&i===null||n.skipEmptyString&&i===""?e:i===null?[...e,[Wt(t,n),"[",r,"]"].join("")]:[...e,[Wt(t,n),"[",Wt(r,n),"]=",Wt(i,n)].join("")]};case"bracket":return t=>(e,i)=>i===void 0||n.skipNull&&i===null||n.skipEmptyString&&i===""?e:i===null?[...e,[Wt(t,n),"[]"].join("")]:[...e,[Wt(t,n),"[]=",Wt(i,n)].join("")];case"colon-list-separator":return t=>(e,i)=>i===void 0||n.skipNull&&i===null||n.skipEmptyString&&i===""?e:i===null?[...e,[Wt(t,n),":list="].join("")]:[...e,[Wt(t,n),":list=",Wt(i,n)].join("")];case"comma":case"separator":case"bracket-separator":{let t=n.arrayFormat==="bracket-separator"?"[]=":"=";return e=>(i,r)=>r===void 0||n.skipNull&&r===null||n.skipEmptyString&&r===""?i:(r=r===null?"":r,i.length===0?[[Wt(e,n),t,Wt(r,n)].join("")]:[[i,Wt(r,n)].join(n.arrayFormatSeparator)])}default:return t=>(e,i)=>i===void 0||n.skipNull&&i===null||n.skipEmptyString&&i===""?e:i===null?[...e,Wt(t,n)]:[...e,[Wt(t,n),"=",Wt(i,n)].join("")]}}function rP(n){let t;switch(n.arrayFormat){case"index":return(e,i,r)=>{if(t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),!t){r[e]=i;return}r[e]===void 0&&(r[e]={}),r[e][t[1]]=i};case"bracket":return(e,i,r)=>{if(t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),!t){r[e]=i;return}if(r[e]===void 0){r[e]=[i];return}r[e]=[].concat(r[e],i)};case"colon-list-separator":return(e,i,r)=>{if(t=/(:list)$/.exec(e),e=e.replace(/:list$/,""),!t){r[e]=i;return}if(r[e]===void 0){r[e]=[i];return}r[e]=[].concat(r[e],i)};case"comma":case"separator":return(e,i,r)=>{let s=typeof i=="string"&&i.includes(n.arrayFormatSeparator),a=typeof i=="string"&&!s&&rs(i,n).includes(n.arrayFormatSeparator);i=a?rs(i,n):i;let o=s||a?i.split(n.arrayFormatSeparator).map(l=>rs(l,n)):i===null?i:rs(i,n);r[e]=o};case"bracket-separator":return(e,i,r)=>{let s=/(\[\])$/.test(e);if(e=e.replace(/\[\]$/,""),!s){r[e]=i&&rs(i,n);return}let a=i===null?[]:i.split(n.arrayFormatSeparator).map(o=>rs(o,n));if(r[e]===void 0){r[e]=a;return}r[e]=[].concat(r[e],a)};default:return(e,i,r)=>{if(r[e]===void 0){r[e]=i;return}r[e]=[].concat(r[e],i)}}}function vS(n){if(typeof n!="string"||n.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function Wt(n,t){return t.encode?t.strict?JF(n):encodeURIComponent(n):n}function rs(n,t){return t.decode?eP(n):n}function yS(n){return Array.isArray(n)?n.sort():typeof n=="object"?yS(Object.keys(n)).sort((t,e)=>Number(t)-Number(e)).map(t=>n[t]):n}function CS(n){let t=n.indexOf("#");return t!==-1&&(n=n.slice(0,t)),n}function sP(n){let t="",e=n.indexOf("#");return e!==-1&&(t=n.slice(e)),t}function wS(n){n=CS(n);let t=n.indexOf("?");return t===-1?"":n.slice(t+1)}function _S(n,t){return t.parseNumbers&&!Number.isNaN(Number(n))&&typeof n=="string"&&n.trim()!==""?n=Number(n):t.parseBooleans&&n!==null&&(n.toLowerCase()==="true"||n.toLowerCase()==="false")&&(n=n.toLowerCase()==="true"),n}function xS(n,t){t=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},t),vS(t.arrayFormatSeparator);let e=rP(t),i=Object.create(null);if(typeof n!="string"||(n=n.trim().replace(/^[?#&]/,""),!n))return i;for(let r of n.split("&")){if(r==="")continue;let[s,a]=bS(t.decode?r.replace(/\+/g," "):r,"=");a=a===void 0?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?a:rs(a,t),e(rs(s,t),a,i)}for(let r of Object.keys(i)){let s=i[r];if(typeof s=="object"&&s!==null)for(let a of Object.keys(s))s[a]=_S(s[a],t);else i[r]=_S(s,t)}return t.sort===!1?i:(t.sort===!0?Object.keys(i).sort():Object.keys(i).sort(t.sort)).reduce((r,s)=>{let a=i[s];return a&&typeof a=="object"&&!Array.isArray(a)?r[s]=yS(a):r[s]=a,r},Object.create(null))}Yi.extract=wS;Yi.parse=xS;Yi.stringify=(n,t)=>{if(!n)return"";t=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},t),vS(t.arrayFormatSeparator);let e=a=>t.skipNull&&iP(n[a])||t.skipEmptyString&&n[a]==="",i=nP(t),r={};for(let a of Object.keys(n))e(a)||(r[a]=n[a]);let s=Object.keys(r);return t.sort!==!1&&s.sort(t.sort),s.map(a=>{let o=n[a];return o===void 0?"":o===null?Wt(a,t):Array.isArray(o)?o.length===0&&t.arrayFormat==="bracket-separator"?Wt(a,t)+"[]":o.reduce(i(a),[]).join("&"):Wt(a,t)+"="+Wt(o,t)}).filter(a=>a.length>0).join("&")};Yi.parseUrl=(n,t)=>{t=Object.assign({decode:!0},t);let[e,i]=bS(n,"#");return Object.assign({url:e.split("?")[0]||"",query:xS(wS(n),t)},t&&t.parseFragmentIdentifier&&i?{fragmentIdentifier:rs(i,t)}:{})};Yi.stringifyUrl=(n,t)=>{t=Object.assign({encode:!0,strict:!0,[Jg]:!0},t);let e=CS(n.url).split("?")[0]||"",i=Yi.extract(n.url),r=Yi.parse(i,{sort:!1}),s=Object.assign(r,n.query),a=Yi.stringify(s,t);a&&(a=`?${a}`);let o=sP(n.url);return n.fragmentIdentifier&&(o=`#${t[Jg]?Wt(n.fragmentIdentifier,t):n.fragmentIdentifier}`),`${e}${a}${o}`};Yi.pick=(n,t,e)=>{e=Object.assign({parseFragmentIdentifier:!0,[Jg]:!1},e);let{url:i,query:r,fragmentIdentifier:s}=Yi.parseUrl(n,e);return Yi.stringifyUrl({url:i,query:tP(r,t),fragmentIdentifier:s},e)};Yi.exclude=(n,t,e)=>{let i=Array.isArray(t)?r=>!t.includes(r):(r,s)=>!t(r,s);return Yi.pick(n,i,e)}});var MS=Q((t_,kS)=>{t_=kS.exports=aP;t_.getSerialize=SS;function aP(n,t,e,i){return JSON.stringify(n,SS(t,i),e)}function SS(n,t){var e=[],i=[];return t==null&&(t=function(r,s){return e[0]===s?"[Circular ~]":"[Circular ~."+i.slice(0,e.indexOf(s)).join(".")+"]"}),function(r,s){if(e.length>0){var a=e.indexOf(this);~a?e.splice(a+1):e.push(this),~a?i.splice(a,1/0,r):i.push(r),~e.indexOf(s)&&(s=t.call(this,r,s))}else e.push(s);return n==null?s:n.call(this,r,s)}}});var ES=Q((WK,TS)=>{var Xo=1e3,Jo=Xo*60,el=Jo*60,Pa=el*24,oP=Pa*7,lP=Pa*365.25;TS.exports=function(n,t){t=t||{};var e=typeof n;if(e==="string"&&n.length>0)return cP(n);if(e==="number"&&isFinite(n))return t.long?dP(n):uP(n);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(n))};function cP(n){if(n=String(n),!(n.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(n);if(t){var e=parseFloat(t[1]),i=(t[2]||"ms").toLowerCase();switch(i){case"years":case"year":case"yrs":case"yr":case"y":return e*lP;case"weeks":case"week":case"w":return e*oP;case"days":case"day":case"d":return e*Pa;case"hours":case"hour":case"hrs":case"hr":case"h":return e*el;case"minutes":case"minute":case"mins":case"min":case"m":return e*Jo;case"seconds":case"second":case"secs":case"sec":case"s":return e*Xo;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return e;default:return}}}}function uP(n){var t=Math.abs(n);return t>=Pa?Math.round(n/Pa)+"d":t>=el?Math.round(n/el)+"h":t>=Jo?Math.round(n/Jo)+"m":t>=Xo?Math.round(n/Xo)+"s":n+"ms"}function dP(n){var t=Math.abs(n);return t>=Pa?em(n,t,Pa,"day"):t>=el?em(n,t,el,"hour"):t>=Jo?em(n,t,Jo,"minute"):t>=Xo?em(n,t,Xo,"second"):n+" ms"}function em(n,t,e,i){var r=t>=e*1.5;return Math.round(n/e)+" "+i+(r?"s":"")}});var IS=Q((qK,AS)=>{function hP(n){e.debug=e,e.default=e,e.coerce=l,e.disable=a,e.enable=r,e.enabled=o,e.humanize=ES(),e.destroy=c,Object.keys(n).forEach(u=>{e[u]=n[u]}),e.names=[],e.skips=[],e.formatters={};function t(u){let d=0;for(let h=0;h{if(A==="%%")return"%";x++;let E=e.formatters[T];if(typeof E=="function"){let L=g[x];A=E.call(y,L),g.splice(x,1),x--}return A}),e.formatArgs.call(y,g),(y.log||e.log).apply(y,g)}return p.namespace=u,p.useColors=e.useColors(),p.color=e.selectColor(u),p.extend=i,p.destroy=e.destroy,Object.defineProperty(p,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(m!==e.namespaces&&(m=e.namespaces,f=e.enabled(u)),f),set:g=>{h=g}}),typeof e.init=="function"&&e.init(p),p}function i(u,d){let h=e(this.namespace+(typeof d>"u"?":":d)+u);return h.log=this.log,h}function r(u){e.save(u),e.namespaces=u,e.names=[],e.skips=[];let d=(typeof u=="string"?u:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let h of d)h[0]==="-"?e.skips.push(h.slice(1)):e.names.push(h)}function s(u,d){let h=0,m=0,f=-1,p=0;for(;h"-"+d)].join(",");return e.enable(""),u}function o(u){for(let d of e.skips)if(s(u,d))return!1;for(let d of e.names)if(s(u,d))return!0;return!1}function l(u){return u instanceof Error?u.stack||u.message:u}function c(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return e.enable(e.load()),e}AS.exports=hP});var im=Q((Qi,tm)=>{Qi.formatArgs=fP;Qi.save=pP;Qi.load=gP;Qi.useColors=mP;Qi.storage=_P();Qi.destroy=(()=>{let n=!1;return()=>{n||(n=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Qi.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function mP(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let n;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(n=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(n[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function fP(n){if(n[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+n[0]+(this.useColors?"%c ":" ")+"+"+tm.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;n.splice(1,0,t,"color: inherit");let e=0,i=0;n[0].replace(/%[a-zA-Z%]/g,r=>{r!=="%%"&&(e++,r==="%c"&&(i=e))}),n.splice(i,0,t)}Qi.log=console.debug||console.log||(()=>{});function pP(n){try{n?Qi.storage.setItem("debug",n):Qi.storage.removeItem("debug")}catch{}}function gP(){let n;try{n=Qi.storage.getItem("debug")||Qi.storage.getItem("DEBUG")}catch{}return!n&&typeof process<"u"&&"env"in process&&(n=process.env.DEBUG),n}function _P(){try{return localStorage}catch{}}tm.exports=IS()(Qi);var{formatters:bP}=tm.exports;bP.j=function(n){try{return JSON.stringify(n)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var i_=Q((GK,RS)=>{var vP=MS(),ss=im()("fhir-kit-client:error"),tl=im()("fhir-kit-client:info");function nm(n){return vP(n)}function DS(n){return n.raw&&typeof n.raw=="function"?nm(n.raw()):nm(n)}function yP(n){ss.enabled&&(ss("!!! Error"),n.response&&ss(` Status: ${n.response.status}`),n.config&&(ss(` ${n.config.method.toUpperCase()}: ${n.config.url}`),ss(` Headers: ${DS(n.config.headers)}`)),n.response&&n.response.data&&ss(nm(n.response.data)),ss("!!! Request Error"))}function CP(n,t,e){tl.enabled&&(t&&tl(`Request: ${n.toUpperCase()} ${t.toString()}`),tl(`Request Headers: ${DS(e)}`))}function wP(n){tl.enabled&&(tl(`Response: ${n.status}`),n.data&&tl(nm(n.data)))}function xP(n){ss.enabled&&ss(n)}RS.exports={logRequestError:yP,logRequestInfo:CP,logResponseInfo:wP,logError:xP}});var OS=Q((KK,LS)=>{var SP="http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris",{logError:kP}=i_();function MP(n){let t={};try{return n.rest.forEach(e=>{e.security.extension.find(r=>r.url===SP).extension.forEach(r=>{switch(r.url){case"authorize":t.authorizeUrl=new URL(r.valueUri);break;case"token":t.tokenUrl=new URL(r.valueUri);break;case"register":t.registerUrl=new URL(r.valueUri);break;case"manage":t.manageUrl=new URL(r.valueUri);break;default:}})}),t}catch(e){return kP(e),t}}function TP(n){let{authorization_endpoint:t,token_endpoint:e,registration_endpoint:i}=n;return{authorizeUrl:t&&new URL(t),tokenUrl:e&&new URL(e),registerUrl:i&&new URL(i)}}LS.exports={authFromCapability:MP,authFromWellKnown:TP}});var NS=Q((n_,r_)=>{(function(n,t){typeof n_=="object"&&typeof r_<"u"?r_.exports=t():typeof define=="function"&&define.amd?define(t):n.ES6Promise=t()})(n_,function(){"use strict";function n(Z){var me=typeof Z;return Z!==null&&(me==="object"||me==="function")}function t(Z){return typeof Z=="function"}var e=void 0;Array.isArray?e=Array.isArray:e=function(Z){return Object.prototype.toString.call(Z)==="[object Array]"};var i=e,r=0,s=void 0,a=void 0,o=function(me,ve){x[r]=me,x[r+1]=ve,r+=2,r===2&&(a?a(C):T())};function l(Z){a=Z}function c(Z){o=Z}var u=typeof window<"u"?window:void 0,d=u||{},h=d.MutationObserver||d.WebKitMutationObserver,m=typeof self>"u"&&typeof process<"u"&&{}.toString.call(process)==="[object process]",f=typeof Uint8ClampedArray<"u"&&typeof importScripts<"u"&&typeof MessageChannel<"u";function p(){return function(){return process.nextTick(C)}}function g(){return typeof s<"u"?function(){s(C)}:k()}function y(){var Z=0,me=new h(C),ve=document.createTextNode("");return me.observe(ve,{characterData:!0}),function(){ve.data=Z=++Z%2}}function w(){var Z=new MessageChannel;return Z.port1.onmessage=C,function(){return Z.port2.postMessage(0)}}function k(){var Z=setTimeout;return function(){return Z(C,1)}}var x=new Array(1e3);function C(){for(var Z=0;Z{(function(n){var t=function(e){var i=typeof globalThis<"u"&&globalThis||typeof n<"u"&&n||typeof global<"u"&&global||{},r={searchParams:"URLSearchParams"in i,iterable:"Symbol"in i&&"iterator"in Symbol,blob:"FileReader"in i&&"Blob"in i&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in i,arrayBuffer:"ArrayBuffer"in i};function s(v){return v&&DataView.prototype.isPrototypeOf(v)}if(r.arrayBuffer)var a=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],o=ArrayBuffer.isView||function(v){return v&&a.indexOf(Object.prototype.toString.call(v))>-1};function l(v){if(typeof v!="string"&&(v=String(v)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(v)||v==="")throw new TypeError('Invalid character in header field name: "'+v+'"');return v.toLowerCase()}function c(v){return typeof v!="string"&&(v=String(v)),v}function u(v){var _={next:function(){var b=v.shift();return{done:b===void 0,value:b}}};return r.iterable&&(_[Symbol.iterator]=function(){return _}),_}function d(v){this.map={},v instanceof d?v.forEach(function(_,b){this.append(b,_)},this):Array.isArray(v)?v.forEach(function(_){if(_.length!=2)throw new TypeError("Headers constructor: expected name/value pair to be length 2, found"+_.length);this.append(_[0],_[1])},this):v&&Object.getOwnPropertyNames(v).forEach(function(_){this.append(_,v[_])},this)}d.prototype.append=function(v,_){v=l(v),_=c(_);var b=this.map[v];this.map[v]=b?b+", "+_:_},d.prototype.delete=function(v){delete this.map[l(v)]},d.prototype.get=function(v){return v=l(v),this.has(v)?this.map[v]:null},d.prototype.has=function(v){return this.map.hasOwnProperty(l(v))},d.prototype.set=function(v,_){this.map[l(v)]=c(_)},d.prototype.forEach=function(v,_){for(var b in this.map)this.map.hasOwnProperty(b)&&v.call(_,this.map[b],b,this)},d.prototype.keys=function(){var v=[];return this.forEach(function(_,b){v.push(b)}),u(v)},d.prototype.values=function(){var v=[];return this.forEach(function(_){v.push(_)}),u(v)},d.prototype.entries=function(){var v=[];return this.forEach(function(_,b){v.push([b,_])}),u(v)},r.iterable&&(d.prototype[Symbol.iterator]=d.prototype.entries);function h(v){if(!v._noBody){if(v.bodyUsed)return Promise.reject(new TypeError("Already read"));v.bodyUsed=!0}}function m(v){return new Promise(function(_,b){v.onload=function(){_(v.result)},v.onerror=function(){b(v.error)}})}function f(v){var _=new FileReader,b=m(_);return _.readAsArrayBuffer(v),b}function p(v){var _=new FileReader,b=m(_),M=/charset=([A-Za-z0-9_-]+)/.exec(v.type),I=M?M[1]:"utf-8";return _.readAsText(v,I),b}function g(v){for(var _=new Uint8Array(v),b=new Array(_.length),M=0;M<_.length;M++)b[M]=String.fromCharCode(_[M]);return b.join("")}function y(v){if(v.slice)return v.slice(0);var _=new Uint8Array(v.byteLength);return _.set(new Uint8Array(v)),_.buffer}function w(){return this.bodyUsed=!1,this._initBody=function(v){this.bodyUsed=this.bodyUsed,this._bodyInit=v,v?typeof v=="string"?this._bodyText=v:r.blob&&Blob.prototype.isPrototypeOf(v)?this._bodyBlob=v:r.formData&&FormData.prototype.isPrototypeOf(v)?this._bodyFormData=v:r.searchParams&&URLSearchParams.prototype.isPrototypeOf(v)?this._bodyText=v.toString():r.arrayBuffer&&r.blob&&s(v)?(this._bodyArrayBuffer=y(v.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):r.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(v)||o(v))?this._bodyArrayBuffer=y(v):this._bodyText=v=Object.prototype.toString.call(v):(this._noBody=!0,this._bodyText=""),this.headers.get("content-type")||(typeof v=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):r.searchParams&&URLSearchParams.prototype.isPrototypeOf(v)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},r.blob&&(this.blob=function(){var v=h(this);if(v)return v;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))}),this.arrayBuffer=function(){if(this._bodyArrayBuffer){var v=h(this);return v||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}else{if(r.blob)return this.blob().then(f);throw new Error("could not read as ArrayBuffer")}},this.text=function(){var v=h(this);if(v)return v;if(this._bodyBlob)return p(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(g(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},r.formData&&(this.formData=function(){return this.text().then(A)}),this.json=function(){return this.text().then(JSON.parse)},this}var k=["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PUT","TRACE"];function x(v){var _=v.toUpperCase();return k.indexOf(_)>-1?_:v}function C(v,_){if(!(this instanceof C))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');_=_||{};var b=_.body;if(v instanceof C){if(v.bodyUsed)throw new TypeError("Already read");this.url=v.url,this.credentials=v.credentials,_.headers||(this.headers=new d(v.headers)),this.method=v.method,this.mode=v.mode,this.signal=v.signal,!b&&v._bodyInit!=null&&(b=v._bodyInit,v.bodyUsed=!0)}else this.url=String(v);if(this.credentials=_.credentials||this.credentials||"same-origin",(_.headers||!this.headers)&&(this.headers=new d(_.headers)),this.method=x(_.method||this.method||"GET"),this.mode=_.mode||this.mode||null,this.signal=_.signal||this.signal||function(){if("AbortController"in i){var D=new AbortController;return D.signal}}(),this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&b)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(b),(this.method==="GET"||this.method==="HEAD")&&(_.cache==="no-store"||_.cache==="no-cache")){var M=/([?&])_=[^&]*/;if(M.test(this.url))this.url=this.url.replace(M,"$1_="+new Date().getTime());else{var I=/\?/;this.url+=(I.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}C.prototype.clone=function(){return new C(this,{body:this._bodyInit})};function A(v){var _=new FormData;return v.trim().split("&").forEach(function(b){if(b){var M=b.split("="),I=M.shift().replace(/\+/g," "),D=M.join("=").replace(/\+/g," ");_.append(decodeURIComponent(I),decodeURIComponent(D))}}),_}function T(v){var _=new d,b=v.replace(/\r?\n[\t ]+/g," ");return b.split("\r").map(function(M){return M.indexOf(` +`)===0?M.substr(1,M.length):M}).forEach(function(M){var I=M.split(":"),D=I.shift().trim();if(D){var O=I.join(":").trim();try{_.append(D,O)}catch(N){console.warn("Response "+N.message)}}}),_}w.call(C.prototype);function E(v,_){if(!(this instanceof E))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');if(_||(_={}),this.type="default",this.status=_.status===void 0?200:_.status,this.status<200||this.status>599)throw new RangeError("Failed to construct 'Response': The status provided (0) is outside the range [200, 599].");this.ok=this.status>=200&&this.status<300,this.statusText=_.statusText===void 0?"":""+_.statusText,this.headers=new d(_.headers),this.url=_.url||"",this._initBody(v)}w.call(E.prototype),E.prototype.clone=function(){return new E(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new d(this.headers),url:this.url})},E.error=function(){var v=new E(null,{status:200,statusText:""});return v.ok=!1,v.status=0,v.type="error",v};var L=[301,302,303,307,308];E.redirect=function(v,_){if(L.indexOf(_)===-1)throw new RangeError("Invalid status code");return new E(null,{status:_,headers:{location:v}})},e.DOMException=i.DOMException;try{new e.DOMException}catch{e.DOMException=function(_,b){this.message=_,this.name=b;var M=Error(_);this.stack=M.stack},e.DOMException.prototype=Object.create(Error.prototype),e.DOMException.prototype.constructor=e.DOMException}function S(v,_){return new Promise(function(b,M){var I=new C(v,_);if(I.signal&&I.signal.aborted)return M(new e.DOMException("Aborted","AbortError"));var D=new XMLHttpRequest;function O(){D.abort()}D.onload=function(){var z={statusText:D.statusText,headers:T(D.getAllResponseHeaders()||"")};I.url.indexOf("file://")===0&&(D.status<200||D.status>599)?z.status=200:z.status=D.status,z.url="responseURL"in D?D.responseURL:z.headers.get("X-Request-URL");var V="response"in D?D.response:D.responseText;setTimeout(function(){b(new E(V,z))},0)},D.onerror=function(){setTimeout(function(){M(new TypeError("Network request failed"))},0)},D.ontimeout=function(){setTimeout(function(){M(new TypeError("Network request timed out"))},0)},D.onabort=function(){setTimeout(function(){M(new e.DOMException("Aborted","AbortError"))},0)};function N(z){try{return z===""&&i.location.href?i.location.href:z}catch{return z}}if(D.open(I.method,N(I.url),!0),I.credentials==="include"?D.withCredentials=!0:I.credentials==="omit"&&(D.withCredentials=!1),"responseType"in D&&(r.blob?D.responseType="blob":r.arrayBuffer&&(D.responseType="arraybuffer")),_&&typeof _.headers=="object"&&!(_.headers instanceof d||i.Headers&&_.headers instanceof i.Headers)){var F=[];Object.getOwnPropertyNames(_.headers).forEach(function(z){F.push(l(z)),D.setRequestHeader(z,c(_.headers[z]))}),I.headers.forEach(function(z,V){F.indexOf(V)===-1&&D.setRequestHeader(V,z)})}else I.headers.forEach(function(z,V){D.setRequestHeader(V,z)});I.signal&&(I.signal.addEventListener("abort",O),D.onreadystatechange=function(){D.readyState===4&&I.signal.removeEventListener("abort",O)}),D.send(typeof I._bodyInit>"u"?null:I._bodyInit)})}return S.polyfill=!0,i.fetch||(i.fetch=S,i.Headers=d,i.Request=C,i.Response=E),e.Headers=d,e.Request=C,e.Response=E,e.fetch=S,Object.defineProperty(e,"__esModule",{value:!0}),e}({})})(typeof self<"u"?self:FS)});var a_=Q((ZK,s_)=>{s_.exports=US;s_.exports.HttpsAgent=US;function US(){}});var qS=Q((XK,WS)=>{NS().polyfill();PS();var{logRequestError:EP,logRequestInfo:zS,logResponseInfo:AP}=i_(),IP={accept:"application/fhir+json"},$S="__response",VS="__request",o_=!1,HS,jS;try{HS=a_(),jS=a_().HttpsAgent,o_=!0}catch{zS("HTTP Agent is not available")}var Kc=new WeakMap;function DP(n,t={}){let e={baseUrl:n,agentOptions:t};return o_?(Kc.get(e)||(n.startsWith("https")?Kc.set(e,{agent:new jS(t)}):Kc.set(e,{agent:new HS(t)})),Kc.get(e)):{}}function BS({status:n,data:t,method:e,headers:i,url:r}){let s={response:{status:n,data:t},config:{method:e,url:r,headers:i}};return EP(s),s}function RP(n){return typeof n=="string"?n:JSON.stringify(n)}WS.exports=class rm{static lcKeys(t){return t&&Object.keys(t).reduce((e,i)=>(e[i.toLowerCase()]=t[i],e),{})}constructor({baseUrl:t,customHeaders:e={},requestOptions:i={},requestSigner:r=void 0}){this.baseUrl=t,this.customHeaders=e,this.baseRequestOptions=i,this.requestSigner=r}set baseUrl(t){if(!t)throw new Error("baseUrl cannot be blank");if(typeof t!="string")throw new Error("baseUrl must be a string");this.baseUrlValue=t}get baseUrl(){return this.baseUrlValue}static responseFor(t){return t[$S]}static requestFor(t){return t[VS]}set bearerToken(t){let e=`Bearer ${t}`;this.authHeader={authorization:e}}requestBuilder(t,e,i,r){let s=Le(H(H({},this.baseRequestOptions),i),{method:t,body:RP(r)}),a={};return o_||(a={keepalive:Object.prototype.hasOwnProperty.call(s,"keepalive")?s.keepalive:!0}),Object.assign(s,a,{headers:new Headers(this.mergeHeaders(i.headers))},DP(this.baseUrl,s)),this.requestSigner&&this.requestSigner(e,s),new Request(e,s)}request(s,a){return Lt(this,arguments,function*(t,e,i={},r){let o=this.expandUrl(e),l=this.requestBuilder(t,o,i,r);zS(t,o,l.headers);let c=yield fetch(l),{status:u,headers:d}=c;AP({status:u,response:c});let h=yield c.text(),m={};if(h)try{m=JSON.parse(h)}catch{throw m=h,BS({status:u,data:m,method:t,headers:d,url:o})}if(!c.ok)throw BS({status:u,data:m,method:t,headers:d,url:o});return Object.defineProperty(m,$S,{writable:!1,enumerable:!1,value:c}),Object.defineProperty(m,VS,{writable:!1,enumerable:!1,value:l}),m})}get(t,e){return Lt(this,null,function*(){return this.request("GET",t,e)})}delete(t,e){return Lt(this,null,function*(){return this.request("DELETE",t,e)})}put(r,s){return Lt(this,arguments,function*(t,e,i={}){let a=H({"content-type":"application/fhir+json"},rm.lcKeys(i.headers)),o=Le(H({},i),{headers:a});return this.request("PUT",t,o,e)})}post(r,s){return Lt(this,arguments,function*(t,e,i={}){let a=H({"content-type":"application/fhir+json"},rm.lcKeys(i.headers)),o=Le(H({},i),{headers:a});return this.request("POST",t,o,e)})}patch(t,e,i){return Lt(this,null,function*(){return this.request("PATCH",t,i,e)})}expandUrl(t=""){return t.toLowerCase().startsWith("http")?t:this.baseUrl.endsWith("/")&&t.startsWith("/")?this.baseUrl+t.slice(1):this.baseUrl.endsWith("/")||t.startsWith("/")?this.baseUrl+t:`${this.baseUrl}/${t}`}mergeHeaders(t){let{lcKeys:e}=rm;return H(H(H(H({},e(IP)),e(this.authHeader)),e(this.customHeaders)),e(t))}}});var KS=Q((eY,GS)=>{GS.exports={fhirReferenceRegEx:/^((http|https):\/\/([A-Za-z0-9\\.:%$]*\/)*)?(Account|ActivityDefinition|AdverseEvent|AllergyIntolerance|Appointment|AppointmentResponse|AuditEvent|Basic|Binary|BiologicallyDerivedProduct|BodySite|BodyStructure|Bundle|CapabilityStatement|CarePlan|CareTeam|CatalogEntry|ChargeItem|ChargeItemDefinition|Claim|ClaimResponse|ClinicalImpression|CodeSystem|Communication|CommunicationRequest|CompartmentDefinition|Composition|ConceptMap|Condition|Conformance|Consent|Contract|Coverage|CoverageEligibilityRequest|CoverageEligibilityResponse|DataElement|DecisionSupportRule|DecisionSupportServiceModule|DetectedIssue|Device|DeviceComponent|DeviceDefinition|DeviceMetric|DeviceRequest|DeviceUseRequest|DeviceUseStatement|DiagnosticOrder|DiagnosticReport|DiagnosticRequest|DocumentManifest|DocumentReference|EffectEvidenceSynthesis|EligibilityRequest|EligibilityResponse|Encounter|Endpoint|EnrollmentRequest|EnrollmentResponse|EntryDefinition|EpisodeOfCare|EventDefinition|Evidence|EvidenceVariable|ExampleScenario|ExpansionProfile|ExplanationOfBenefit|FamilyMemberHistory|Flag|Goal|GraphDefinition|Group|GuidanceRequest|GuidanceResponse|HealthcareService|ImagingExcerpt|ImagingManifest|ImagingObjectSelection|ImagingStudy|Immunization|ImmunizationEvaluation|ImmunizationRecommendation|ImplementationGuide|ImplementationGuideInput|ImplementationGuideOutput|InsurancePlan|Invoice|ItemInstance|Library|Linkage|List|Location|Measure|MeasureReport|Media|Medication|MedicationAdministration|MedicationDispense|MedicationKnowledge|MedicationOrder|MedicationRequest|MedicationStatement|MedicinalProduct|MedicinalProductAuthorization|MedicinalProductClinicals|MedicinalProductContraindication|MedicinalProductDeviceSpec|MedicinalProductIndication|MedicinalProductIngredient|MedicinalProductInteraction|MedicinalProductManufactured|MedicinalProductPackaged|MedicinalProductPharmaceutical|MedicinalProductUndesirableEffect|MessageDefinition|MessageHeader|ModuleDefinition|ModuleMetadata|MolecularSequence|NamingSystem|NutritionOrder|NutritionRequest|Observation|ObservationDefinition|OccupationalData|OperationDefinition|OperationOutcome|Order|OrderResponse|OrderSet|Organization|OrganizationAffiliation|OrganizationRole|Patient|PaymentNotice|PaymentReconciliation|Person|PlanDefinition|Practitioner|PractitionerRole|Procedure|ProcedureRequest|ProcessRequest|ProcessResponse|ProductPlan|Protocol|Provenance|Questionnaire|QuestionnaireResponse|ReferralRequest|RelatedPerson|RequestGroup|ResearchDefinition|ResearchElementDefinition|ResearchStudy|ResearchSubject|RiskAssessment|RiskEvidenceSynthesis|Schedule|SearchParameter|Sequence|ServiceDefinition|ServiceRequest|Slot|Specimen|SpecimenDefinition|StructureDefinition|StructureMap|Subscription|Substance|SubstanceNucleicAcid|SubstancePolymer|SubstanceProtein|SubstanceReferenceInformation|SubstanceSourceMaterial|SubstanceSpecification|SupplyDelivery|SupplyRequest|Task|TerminologyCapabilities|TestReport|TestScript|UserSession|ValueSet|VerificationResult|VisionPrescription)\/[A-Za-z0-9\-.]{1,256}(\/_history\/[A-Za-z0-9\-.]{1,256})?$/}});var l_=Q((tY,QS)=>{var LP=e_(),{fhirReferenceRegEx:YS}=KS();function OP(n){if(!n.match(YS))throw new Error(`${n} is not a recognized FHIR reference`);let t,e=n;n.startsWith("http")&&([,t]=YS.exec(n),e=n.slice(t.length),t.endsWith("/")&&(t=t.slice(0,-1)));let[i,r]=e.split("/");return{baseUrl:t,resourceType:i,id:r}}function NP(n){return!n.startsWith("/")&&!n.includes(":")&&/\S/.test(n)}function FP(n){if(n instanceof Object&&Object.keys(n).length>0)return LP.stringify(n)}QS.exports={createQueryString:FP,splitReference:OP,validResourceType:NP}});var c_=Q((iY,ZS)=>{var PP=(n,t)=>{if(Object.prototype.hasOwnProperty.call(n,"resourceType")){console.warn("WARNING: positional parameters for pagination methods are deprecated and will be removed in the next major version. Call with ({ bundle, options }) rather than (bundle, headers)");let e={bundle:n};return t&&(e.options={headers:t}),e}return n},UP=(n,t)=>t?(console.warn("WARNING: headers is deprecated and will be removed in the next major version. Use options.headers instead."),console.warn(JSON.stringify(t,null," ")),H({headers:t},n)):n;ZS.exports={deprecateHeaders:UP,deprecatePaginationArgs:PP}});var JS=Q((rY,XS)=>{var{splitReference:$P}=l_(),{deprecateHeaders:u_}=c_();XS.exports=class{constructor(n){this.client=n}resolve(){return Lt(this,arguments,function*({reference:n,context:t,headers:e,options:i={}}={}){return t===void 0?n.startsWith("http")?this.resolveAbsoluteReference(n,u_(i,e)):this.client.httpClient.get(n,u_(i,e)):n.startsWith("#")?this.resolveContainedReference(n,t):this.resolveBundleReference(n,t,u_(i,e))})}resolveAbsoluteReference(n,t){return Lt(this,null,function*(){if(n.startsWith(this.client.baseUrl))return this.client.httpClient.get(n,t);let{baseUrl:e,resourceType:i,id:r}=$P(n),s=d_();return new s({baseUrl:e}).read({resourceType:i,id:r,options:t})})}resolveContainedReference(n,t){if(t.contained){let e=n.slice(1),i=t.contained.find(r=>r.id===e);if(i)return i}throw new Error(`Unable to resolve contained reference: ${n}`)}resolveBundleReference(n,t,e){return Lt(this,null,function*(){let i=new RegExp(`(^|/)${n}$`),r=t.entry.find(s=>i.test(s.fullUrl));return r?r.resource:this.resolve({reference:n,options:e})})}}});var tk=Q((oY,ek)=>{var h_=class{constructor(t){this.httpClient=t}nextPage(t,{headers:e}={}){let i=t.link.find(r=>r.relation==="next");return i?this.httpClient.get(i.url,{headers:e}):void 0}prevPage(t,{headers:e}={}){let i=t.link.find(r=>r.relation.match(/^prev(ious)?$/));return i?this.httpClient.get(i.url,{headers:e}):void 0}};ek.exports=h_});var nk=Q((lY,ik)=>{"use strict";var m_=typeof self<"u"?self:typeof window<"u"?window:void 0;if(!m_)throw new Error("Unable to find global scope. Are you sure this is running in the browser?");if(!m_.AbortController)throw new Error('Could not find "AbortController" in the global scope. You need to polyfill it first');ik.exports.AbortController=m_.AbortController});var sk=Q((cY,rk)=>{var{AbortController:VP}=nk(),sm=class{constructor(){this.controller=new VP,this.resolving=!1}addSignalOption(t){return H({signal:this.controller.signal},t)}safeAbort(){this.resolving||this.controller.abort()}},f_=class{constructor(){this.jobs=[],this.numJobs=0}buildJob(){let t=new sm;return this.numJobs=this.jobs.push(t),t}safeAbortOthers(t){t.resolving=!0;for(let e=0,i=this.numJobs;e{var p_=class{constructor(t){this.capabilityStatement=t}serverCan(t){return this.supportFor({capabilityType:"interaction",where:{code:t}})}resourceCan(t,e){return this.supportFor({resourceType:t,capabilityType:"interaction",where:{code:e}})}serverSearch(t){return this.supportFor({capabilityType:"searchParam",where:{name:t}})}resourceSearch(t,e){return this.supportFor({resourceType:t,capabilityType:"searchParam",where:{name:e}})}supportFor({resourceType:t,capabilityType:e,where:i}={}){let r;if(t?r=this.resourceCapabilities({resourceType:t}):r=this.serverCapabilities(),!r)return!1;let s=r[e];if(i&&s){let a=Object.keys(i)[0];return s.find(l=>l[a]===i[a])!==void 0}return s!==void 0}interactionsFor({resourceType:t}={}){let e=this.resourceCapabilities({resourceType:t});return e===void 0?[]:e.interaction.map(i=>i.code)}searchParamsFor({resourceType:t}={}){let e=this.resourceCapabilities({resourceType:t});return e===void 0?[]:e.searchParam===void 0?[]:e.searchParam.map(i=>i.name)}resourceCapabilities({resourceType:t}={}){return this.serverCapabilities().resource.find(r=>r.type===t)}capabilityContents({resourceType:t,capabilityType:e}={}){let i=this.resourceCapabilities({resourceType:t});if(i!==void 0)return i[e]}serverCapabilities(){return this.capabilityStatement.rest.find(t=>t.mode==="server")}};ak.exports=p_});var d_=Q((hY,b_)=>{var BP=e_(),{authFromCapability:zP,authFromWellKnown:lk}=OS(),g_=qS(),HP=JS(),jP=tk(),{createQueryString:ck,validResourceType:Zi}=l_(),{FetchQueue:WP}=sk(),{deprecatePaginationArgs:uk,deprecateHeaders:zt}=c_(),qP=ok(),__=class{constructor({baseUrl:t,customHeaders:e,requestOptions:i,requestSigner:r,bearerToken:s}={}){this.httpClient=new g_({baseUrl:t,customHeaders:e,requestOptions:i,requestSigner:r}),s&&(this.httpClient.bearerToken=s),this.resolver=new HP(this),this.pagination=new jP(this.httpClient)}static httpFor(t){return{request:g_.requestFor(t),response:g_.responseFor(t)}}get baseUrl(){return this.httpClient&&this.httpClient.baseUrl}set baseUrl(t){this.httpClient&&(this.httpClient.baseUrl=t)}get customHeaders(){return this.httpClient.customHeaders}set customHeaders(t){this.httpClient.customHeaders=t}set bearerToken(t){this.httpClient.bearerToken=t}resolve({reference:t,context:e,headers:i,options:r={}}={}){return this.resolver.resolve({reference:t,context:e,options:zt(r,i)})}smartAuthMetadata(){return Lt(this,arguments,function*({headers:t,options:e={}}={}){let i={options:zt(e,t)};i.options.headers||(i.options.headers={}),i.options.headers.accept="application/fhir+json,application/json";let r=this.baseUrl.replace(/\/*$/,"/"),s=new WP,a=s.buildJob(),o=s.buildJob(),l=s.buildJob(),c=[];return new Promise((u,d)=>{function h(m){c.push(m)===s.numJobs&&d(new Error(c.map(f=>f.message).join("; ")))}this.httpClient.request("GET",`${r}.well-known/smart-configuration`,o.addSignalOption(i)).then(m=>(s.safeAbortOthers(o),u(lk(m)))).catch(m=>h(m)),this.capabilityStatement(a.addSignalOption(i)).then(m=>(s.safeAbortOthers(a),u(zP(m)))).catch(m=>h(m)),this.httpClient.request("GET",`${r}.well-known/openid-configuration`,l.addSignalOption(i)).then(m=>(s.safeAbortOthers(l),u(lk(m)))).catch(m=>h(m))})})}capabilityStatement({headers:t,options:e={}}={}){return this.metadata||(this.metadata=this.httpClient.get("metadata",zt(e,t))),this.metadata}request(t,{method:e="GET",options:i={},body:r}={}){return i.method&&i.method!==e&&console.warn(`WARNING: 'options.method' has been specified: ${i.method} but will be ignored. Use 'method' instead.`),this.httpClient.request(e,t,i,r)}read({resourceType:t,id:e,headers:i,options:r={}}={}){if(!Zi(t))throw new Error("Invalid resourceType",t);return this.httpClient.get(`${t}/${e}`,zt(r,i))}vread({resourceType:t,id:e,version:i,headers:r,options:s={}}={}){if(!Zi(t))throw new Error("Invalid resourceType",t);return this.httpClient.get(`${t}/${e}/_history/${i}`,zt(s,r))}create({resourceType:t,body:e,headers:i,options:r={}}={}){if(!Zi(t))throw new Error("Invalid resourceType",t);return this.httpClient.post(t,e,zt(r,i))}delete({resourceType:t,id:e,headers:i,options:r={}}={}){if(!Zi(t))throw new Error("Invalid resourceType",t);return this.httpClient.delete(`${t}/${e}`,zt(r,i))}update({resourceType:t,id:e,searchParams:i,body:r,headers:s,options:a={}}={}){if(!Zi(t))throw new Error("Invalid resourceType",t);if(e&&i)throw new Error("Conditional update with search params cannot be with id",t);if(i){let o=ck(i);return this.httpClient.put(`${t}?${o}`,r,zt(a,s))}return this.httpClient.put(`${t}/${e}`,r,zt(a,s))}patch({resourceType:t,id:e,JSONPatch:i,headers:r,options:s={}}={}){if(!Zi(t))throw new Error("Invalid resourceType",t);let a=zt(s,r).headers||{},o=Le(H({},a),{"Content-Type":"application/json-patch+json"});return this.httpClient.patch(`${t}/${e}`,i,Le(H({},s),{headers:o}))}batch({body:t,headers:e,options:i={}}={}){return this.httpClient.post("/",t,zt(i,e))}transaction({body:t,headers:e,options:i={}}={}){return this.httpClient.post("/",t,zt(i,e))}operation({name:t,resourceType:e,id:i,method:r="POST",input:s,options:a={}}={}){let o=["/"];if(e){if(!Zi(e))throw new Error("Invalid resourceType",e);o.push(`${e}/`)}if(i&&o.push(`${i}/`),o.push(`${t.startsWith("$")?t:`$${t}`}`),r.toUpperCase()==="POST")return this.httpClient.post(o.join(""),s,a);if(r.toUpperCase()==="GET")return s&&o.push(`?${BP.stringify(s)}`),this.httpClient.get(o.join(""),a)}nextPage(t,e){let{bundle:i,options:r={}}=uk(t,e);return this.pagination.nextPage(i,r)}prevPage(t,e){let{bundle:i,options:r={}}=uk(t,e);return this.pagination.prevPage(i,r)}search({resourceType:t,compartment:e,searchParams:i,headers:r,options:s={}}={}){if(t&&!Zi(t))throw new Error("Invalid resourceType",t);if(e&&t)return this.compartmentSearch({resourceType:t,compartment:e,searchParams:i,options:zt(s,r)});if(t)return this.resourceSearch({resourceType:t,searchParams:i,options:zt(s,r)});if(i instanceof Object&&Object.keys(i).length>0)return this.systemSearch({searchParams:i,options:zt(s,r)});throw new Error("search requires either searchParams or a resourceType")}resourceSearch({resourceType:t,searchParams:e,headers:i,options:r={}}={}){if(!Zi(t))throw new Error("Invalid resourceType",t);let s=t;return r.postSearch&&(s+="/_search"),this.baseSearch({searchPath:s,searchParams:e,headers:i,options:r})}systemSearch({searchParams:t,headers:e,options:i={}}={}){return this.baseSearch({searchPath:"/_search",searchParams:t,headers:e,options:i})}compartmentSearch({resourceType:t,compartment:e,searchParams:i,headers:r,options:s={}}={}){if(!Zi(t))throw new Error("Invalid resourceType",t);let{resourceType:a,id:o}=e;if(!Zi(a))throw new Error("Invalid compartmentType",a);let l=`/${a}/${o}/${t}`;return s.postSearch&&(l+="/_search"),this.baseSearch({searchPath:l,searchParams:i,headers:r,options:s})}baseSearch({searchPath:t,searchParams:e,headers:i,options:r}){let s=ck(e),a=zt(r,i),o=r.postSearch?"postSearch":"getSearch";return this[o](t,s,a)}postSearch(t,e,i){let s=H(H({},{"Content-Type":"application/x-www-form-urlencoded"}),i.headers),a=Le(H({},i),{headers:s});return this.httpClient.post(t,e,a)}getSearch(t,e,i){let r=t;return e&&(r+=`?${e}`),this.httpClient.get(r,i)}history({resourceType:t,id:e,headers:i,options:r={}}={}){if(t&&!Zi(t))throw new Error("Invalid resourceType",t);return e&&t?this.resourceHistory({resourceType:t,id:e,options:zt(r,i)}):t?this.typeHistory({resourceType:t,options:zt(r,i)}):this.systemHistory({options:zt(r,i)})}resourceHistory({resourceType:t,id:e,headers:i,options:r={}}={}){if(!Zi(t))throw new Error("Invalid resourceType",t);return this.httpClient.get(`${t}/${e}/_history`,zt(r,i))}typeHistory({resourceType:t,headers:e,options:i={}}={}){if(!Zi(t))throw new Error("Invalid resourceType",t);return this.httpClient.get(`${t}/_history`,zt(i,e))}systemHistory({headers:t,options:e={}}={}){return this.httpClient.get("_history",zt(e,t))}};b_.exports=__;b_.exports.CapabilityTool=qP});var D_=Q((Gk,Cm)=>{(function(){var n="ace",t=function(){return this}();if(!t&&typeof window<"u"&&(t=window),!n&&typeof requirejs<"u")return;var e=function(l,c,u){if(typeof l!="string"){e.original?e.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(u=c),e.modules[l]||(e.payloads[l]=u,e.modules[l]=null)};e.modules={},e.payloads={};var i=function(l,c,u){if(typeof c=="string"){var d=a(l,c);if(d!=null)return u&&u(),d}else if(Object.prototype.toString.call(c)==="[object Array]"){for(var h=[],m=0,f=c.length;ma.length)&&(s=a.length),s-=r.length;var o=a.indexOf(r,s);return o!==-1&&o===s}),String.prototype.repeat||i(String.prototype,"repeat",function(r){for(var s="",a=this;r>0;)r&1&&(s+=a),(r>>=1)&&(a+=a);return s}),String.prototype.includes||i(String.prototype,"includes",function(r,s){return this.indexOf(r,s)!=-1}),Object.assign||(Object.assign=function(r){if(r==null)throw new TypeError("Cannot convert undefined or null to object");for(var s=Object(r),a=1;a>>0,o=arguments[1],l=o>>0,c=l<0?Math.max(a+l,0):Math.min(l,a),u=arguments[2],d=u===void 0?a:u>>0,h=d<0?Math.max(a+d,0):Math.min(d,a);c0;)a&1&&(o+=s),(a>>=1)&&(s+=s);return o};var i=/^\s\s*/,r=/\s\s*$/;t.stringTrimLeft=function(s){return s.replace(i,"")},t.stringTrimRight=function(s){return s.replace(r,"")},t.copyObject=function(s){var a={};for(var o in s)a[o]=s[o];return a},t.copyArray=function(s){for(var a=[],o=0,l=s.length;o65535?2:1}});ace.define("ace/lib/useragent",["require","exports","module"],function(n,t,e){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};var i=typeof navigator=="object"?navigator:{},r=(/mac|win|linux/i.exec(i.platform)||["other"])[0].toLowerCase(),s=i.userAgent||"",a=i.appName||"";t.isWin=r=="win",t.isMac=r=="mac",t.isLinux=r=="linux",t.isIE=a=="Microsoft Internet Explorer"||a.indexOf("MSAppHost")>=0?parseFloat((s.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((s.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=s.match(/ Gecko\/\d+/),t.isOpera=typeof opera=="object"&&Object.prototype.toString.call(window.opera)=="[object Opera]",t.isWebKit=parseFloat(s.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(s.split(" Chrome/")[1])||void 0,t.isSafari=parseFloat(s.split(" Safari/")[1])&&!t.isChrome||void 0,t.isEdge=parseFloat(s.split(" Edge/")[1])||void 0,t.isAIR=s.indexOf("AdobeAIR")>=0,t.isAndroid=s.indexOf("Android")>=0,t.isChromeOS=s.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(s)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid});ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(n,t,e){"use strict";var i=n("./useragent"),r="http://www.w3.org/1999/xhtml";t.buildDom=function u(d,h,m){if(typeof d=="string"&&d){var f=document.createTextNode(d);return h&&h.appendChild(f),f}if(!Array.isArray(d))return d&&d.appendChild&&h&&h.appendChild(d),d;if(typeof d[0]!="string"||!d[0]){for(var p=[],g=0;g"u")){if(a){if(h)o();else if(h===!1)return a.push([u,d])}if(!s){var m=h;!h||!h.getRootNode?m=document:(m=h.getRootNode(),(!m||m==h)&&(m=document));var f=m.ownerDocument||m;if(d&&t.hasCssString(d,m))return null;d&&(u+=` +/*# sourceURL=ace/css/`+d+" */");var p=t.createElement("style");p.appendChild(f.createTextNode(u)),d&&(p.id=d),m==f&&(m=t.getDocumentHead(f)),m.insertBefore(p,m.firstChild)}}}if(t.importCssString=l,t.importCssStylsheet=function(u,d){t.buildDom(["link",{rel:"stylesheet",href:u}],t.getDocumentHead(d))},t.$fixPositionBug=function(u){var d=u.getBoundingClientRect();if(u.style.left){var h=parseFloat(u.style.left),m=+d.left;Math.abs(h-m)>1&&(u.style.left=2*h-m+"px")}if(u.style.right){var h=parseFloat(u.style.right),m=window.innerWidth-d.right;Math.abs(h-m)>1&&(u.style.right=2*h-m+"px")}if(u.style.top){var h=parseFloat(u.style.top),m=+d.top;Math.abs(h-m)>1&&(u.style.top=2*h-m+"px")}if(u.style.bottom){var h=parseFloat(u.style.bottom),m=window.innerHeight-d.bottom;Math.abs(h-m)>1&&(u.style.bottom=2*h-m+"px")}},t.scrollbarWidth=function(u){var d=t.createElement("ace_inner");d.style.width="100%",d.style.minWidth="0px",d.style.height="200px",d.style.display="block";var h=t.createElement("ace_outer"),m=h.style;m.position="absolute",m.left="-10000px",m.overflow="hidden",m.width="200px",m.minWidth="0px",m.height="150px",m.display="block",h.appendChild(d);var f=u&&u.documentElement||document&&document.documentElement;if(!f)return 0;f.appendChild(h);var p=d.offsetWidth;m.overflow="scroll";var g=d.offsetWidth;return p===g&&(g=h.clientWidth),f.removeChild(h),p-g},t.computedStyle=function(u,d){return window.getComputedStyle(u,"")||{}},t.setStyle=function(u,d,h){u[d]!==h&&(u[d]=h)},t.HAS_CSS_ANIMATION=!1,t.HAS_CSS_TRANSFORMS=!1,t.HI_DPI=i.isWin?typeof window<"u"&&window.devicePixelRatio>=1.5:!0,i.isChromeOS&&(t.HI_DPI=!1),typeof document<"u"){var c=document.createElement("div");t.HI_DPI&&c.style.transform!==void 0&&(t.HAS_CSS_TRANSFORMS=!0),!i.isEdge&&typeof c.style.animationName<"u"&&(t.HAS_CSS_ANIMATION=!0),c=null}t.HAS_CSS_TRANSFORMS?t.translate=function(u,d,h){u.style.transform="translate("+Math.round(d)+"px, "+Math.round(h)+"px)"}:t.translate=function(u,d,h){u.style.top=Math.round(h)+"px",u.style.left=Math.round(d)+"px"}});ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(n,t,e){"use strict";var i=n("./dom");t.get=function(r,s){var a=new XMLHttpRequest;a.open("GET",r,!0),a.onreadystatechange=function(){a.readyState===4&&s(a.responseText)},a.send(null)},t.loadScript=function(r,s){var a=i.getDocumentHead(),o=document.createElement("script");o.src=r,a.appendChild(o),o.onload=o.onreadystatechange=function(l,c){(c||!o.readyState||o.readyState=="loaded"||o.readyState=="complete")&&(o=o.onload=o.onreadystatechange=null,c||s())}},t.qualifyURL=function(r){var s=document.createElement("a");return s.href=r,s.href}});ace.define("ace/lib/oop",["require","exports","module"],function(n,t,e){"use strict";t.inherits=function(i,r){i.super_=r,i.prototype=Object.create(r.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(i,r){for(var s in r)i[s]=r[s];return i},t.implement=function(i,r){t.mixin(i,r)}});ace.define("ace/lib/event_emitter",["require","exports","module"],function(n,t,e){"use strict";var i={},r=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};i._emit=i._dispatchEvent=function(a,o){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var l=this._eventRegistry[a]||[],c=this._defaultHandlers[a];if(!(!l.length&&!c)){(typeof o!="object"||!o)&&(o={}),o.type||(o.type=a),o.stopPropagation||(o.stopPropagation=r),o.preventDefault||(o.preventDefault=s),l=l.slice();for(var u=0;u1&&(p=m[m.length-2]);var y=o[h+"Path"];return y==null?y=o.basePath:f=="/"&&(h=f=""),y&&y.slice(-1)!="/"&&(y+="/"),y+h+f+p+this.get("suffix")},t.setModuleUrl=function(d,h){return o.$moduleUrls[d]=h};var l=function(d,h){if(d==="ace/theme/textmate"||d==="./theme/textmate")return h(null,n("./theme/textmate"));if(c)return c(d,h);console.error("loader is not configured")},c;t.setLoader=function(d){c=d},t.dynamicModules=Object.create(null),t.$loading={},t.$loaded={},t.loadModule=function(d,h){var m;if(Array.isArray(d))var f=d[0],p=d[1];else if(typeof d=="string")var p=d;var g=function(y){if(y&&!t.$loading[p])return h&&h(y);if(t.$loading[p]||(t.$loading[p]=[]),t.$loading[p].push(h),!(t.$loading[p].length>1)){var w=function(){l(p,function(k,x){x&&(t.$loaded[p]=x),t._emit("load.module",{name:p,module:x});var C=t.$loading[p];t.$loading[p]=null,C.forEach(function(A){A&&A(x)})})};if(!t.get("packaged"))return w();r.loadScript(t.moduleUrl(p,f),w),u()}};if(t.dynamicModules[p])t.dynamicModules[p]().then(function(y){y.default?g(y.default):g(y)});else{try{m=this.$require(p)}catch{}g(m||t.$loaded[p])}},t.$require=function(d){if(typeof e.require=="function"){var h="require";return e[h](d)}},t.setModuleLoader=function(d,h){t.dynamicModules[d]=h};var u=function(){!o.basePath&&!o.workerPath&&!o.modePath&&!o.themePath&&!Object.keys(o.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),u=function(){})};t.version="1.43.5"});ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],function(n,t,e){"use strict";n("./lib/fixoldbrowsers");var i=n("./config");i.setLoader(function(o,l){n([o],function(c){l(null,c)})});var r=function(){return this||typeof window<"u"&&window}();e.exports=function(o){i.init=s,i.$require=n,o.require=n,typeof define=="function"&&(o.define=define)},s(!0);function s(o){if(!(!r||!r.document)){i.set("packaged",o||n.packaged||e.packaged||r.define&&define.packaged);var l={},c="",u=document.currentScript||document._currentScript,d=u&&u.ownerDocument||document;u&&u.src&&(c=u.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var h=d.getElementsByTagName("script"),m=0;m ["+this.end.row+"/"+this.end.column+"]"},r.prototype.contains=function(s,a){return this.compare(s,a)==0},r.prototype.compareRange=function(s){var a,o=s.end,l=s.start;return a=this.compare(o.row,o.column),a==1?(a=this.compare(l.row,l.column),a==1?2:a==0?1:0):a==-1?-2:(a=this.compare(l.row,l.column),a==-1?-1:a==1?42:0)},r.prototype.comparePoint=function(s){return this.compare(s.row,s.column)},r.prototype.containsRange=function(s){return this.comparePoint(s.start)==0&&this.comparePoint(s.end)==0},r.prototype.intersects=function(s){var a=this.compareRange(s);return a==-1||a==0||a==1},r.prototype.isEnd=function(s,a){return this.end.row==s&&this.end.column==a},r.prototype.isStart=function(s,a){return this.start.row==s&&this.start.column==a},r.prototype.setStart=function(s,a){typeof s=="object"?(this.start.column=s.column,this.start.row=s.row):(this.start.row=s,this.start.column=a)},r.prototype.setEnd=function(s,a){typeof s=="object"?(this.end.column=s.column,this.end.row=s.row):(this.end.row=s,this.end.column=a)},r.prototype.inside=function(s,a){return this.compare(s,a)==0?!(this.isEnd(s,a)||this.isStart(s,a)):!1},r.prototype.insideStart=function(s,a){return this.compare(s,a)==0?!this.isEnd(s,a):!1},r.prototype.insideEnd=function(s,a){return this.compare(s,a)==0?!this.isStart(s,a):!1},r.prototype.compare=function(s,a){return!this.isMultiLine()&&s===this.start.row?athis.end.column?1:0:sthis.end.row?1:this.start.row===s?a>=this.start.column?0:-1:this.end.row===s?a<=this.end.column?0:1:0},r.prototype.compareStart=function(s,a){return this.start.row==s&&this.start.column==a?-1:this.compare(s,a)},r.prototype.compareEnd=function(s,a){return this.end.row==s&&this.end.column==a?1:this.compare(s,a)},r.prototype.compareInside=function(s,a){return this.end.row==s&&this.end.column==a?1:this.start.row==s&&this.start.column==a?-1:this.compare(s,a)},r.prototype.clipRows=function(s,a){if(this.end.row>a)var o={row:a+1,column:0};else if(this.end.rowa)var l={row:a+1,column:0};else if(this.start.row1?(A++,A>4&&(A=1)):A=1,r.isIE){var b=Math.abs(_.clientX-T)>5||Math.abs(_.clientY-E)>5;(!L||b)&&(A=1),L&&clearTimeout(L),L=setTimeout(function(){L=null},w[A-1]||600),A==1&&(T=_.clientX,E=_.clientY)}if(_._clicks=A,k[x]("mousedown",_),A>4)A=0;else if(A>1)return k[x](S[A],_)}Array.isArray(y)||(y=[y]),y.forEach(function(_){d(_,"mousedown",v,C)})};function m(y){return 0|(y.ctrlKey?1:0)|(y.altKey?2:0)|(y.shiftKey?4:0)|(y.metaKey?8:0)}t.getModifierString=function(y){return i.KEY_MODS[m(y)]};function f(y,w,k){var x=m(w);if(!k&&w.code&&(k=i.$codeToKeyCode[w.code]||k),!r.isMac&&s){if(w.getModifierState&&(w.getModifierState("OS")||w.getModifierState("Win"))&&(x|=8),s.altGr)if((3&x)!=3)s.altGr=0;else return;if(k===18||k===17){var C=w.location;if(k===17&&C===1)s[k]==1&&(a=w.timeStamp);else if(k===18&&x===3&&C===2){var A=w.timeStamp-a;A<50&&(s.altGr=!0)}}}if(k in i.MODIFIER_KEYS&&(k=-1),!(!x&&k===13&&w.location===3&&(y(w,x,-k),w.defaultPrevented))){if(r.isChromeOS&&x&8){if(y(w,x,k),w.defaultPrevented)return;x&=-9}return!x&&!(k in i.FUNCTION_KEYS)&&!(k in i.PRINTABLE_KEYS)?!1:y(w,x,k)}}t.addCommandKeyListener=function(y,w,k){var x=null;d(y,"keydown",function(C){s[C.keyCode]=(s[C.keyCode]||0)+1;var A=f(w,C,C.keyCode);return x=C.defaultPrevented,A},k),d(y,"keypress",function(C){x&&(C.ctrlKey||C.altKey||C.shiftKey||C.metaKey)&&(t.stopEvent(C),x=null)},k),d(y,"keyup",function(C){s[C.keyCode]=null},k),s||(p(),d(window,"focus",p))};function p(){s=Object.create(null)}if(typeof window=="object"&&window.postMessage&&!r.isOldIE){var g=1;t.nextTick=function(y,w){w=w||window;var k="zero-timeout-message-"+g++,x=function(C){C.data==k&&(t.stopPropagation(C),h(w,"message",x),y())};d(w,"message",x),w.postMessage(k,"*")}}t.$idleBlocked=!1,t.onIdle=function(y,w){return setTimeout(function k(){t.$idleBlocked?setTimeout(k,100):y()},w)},t.$idleBlockId=null,t.blockIdle=function(y){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout(function(){t.$idleBlocked=!1},y||100)},t.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(y){setTimeout(y,17)}});ace.define("ace/clipboard",["require","exports","module"],function(n,t,e){"use strict";var i;e.exports={lineMode:!1,pasteCancelled:function(){return i&&i>Date.now()-50?!0:i=!1},cancel:function(){i=Date.now()}}});ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(n,t,e){"use strict";var i=n("../lib/event"),r=n("../config").nls,s=n("../lib/useragent"),a=n("../lib/dom"),o=n("../lib/lang"),l=n("../clipboard"),c=s.isChrome<18,u=s.isIE,d=s.isChrome>63,h=400,m=n("../lib/keys"),f=m.KEY_MODS,p=s.isIOS,g=p?/\s/:/\n/,y=s.isMobile,w=function(){function k(x,C){var A=this;this.host=C,this.text=a.createElement("textarea"),this.text.className="ace_text-input",this.text.setAttribute("wrap","off"),this.text.setAttribute("autocomplete","off"),this.text.setAttribute("autocorrect","off"),this.text.setAttribute("autocapitalize","off"),this.text.setAttribute("spellcheck","false"),this.text.style.opacity="0",x.insertBefore(this.text,x.firstChild),this.copied=!1,this.pasted=!1,this.inComposition=!1,this.sendingText=!1,this.tempStyle="",y||(this.text.style.fontSize="1px"),this.commandMode=!1,this.ignoreFocusEvents=!1,this.lastValue="",this.lastSelectionStart=0,this.lastSelectionEnd=0,this.lastRestoreEnd=0,this.rowStart=Number.MAX_SAFE_INTEGER,this.rowEnd=Number.MIN_SAFE_INTEGER,this.numberOfExtraLines=0;try{this.$isFocused=document.activeElement===this.text}catch{}this.cancelComposition=this.cancelComposition.bind(this),this.setAriaOptions({role:"textbox"}),i.addListener(this.text,"blur",function(T){A.ignoreFocusEvents||(C.onBlur(T),A.$isFocused=!1)},C),i.addListener(this.text,"focus",function(T){if(!A.ignoreFocusEvents){if(A.$isFocused=!0,s.isEdge)try{if(!document.hasFocus())return}catch{}C.onFocus(T),s.isEdge?setTimeout(A.resetSelection.bind(A)):A.resetSelection()}},C),this.$focusScroll=!1,C.on("beforeEndOperation",function(){var T=C.curOp,E=T&&T.command&&T.command.name;if(E!="insertstring"){var L=E&&(T.docChanged||T.selectionChanged);A.inComposition&&L&&(A.lastValue=A.text.value="",A.onCompositionEnd()),A.resetSelection()}}),C.on("changeSelection",this.setAriaLabel.bind(this)),this.resetSelection=p?this.$resetSelectionIOS:this.$resetSelection,this.$isFocused&&C.onFocus(),this.inputHandler=null,this.afterContextMenu=!1,i.addCommandKeyListener(this.text,function(T,E,L){if(!A.inComposition)return C.onCommandKey(T,E,L)},C),i.addListener(this.text,"select",this.onSelect.bind(this),C),i.addListener(this.text,"input",this.onInput.bind(this),C),i.addListener(this.text,"cut",this.onCut.bind(this),C),i.addListener(this.text,"copy",this.onCopy.bind(this),C),i.addListener(this.text,"paste",this.onPaste.bind(this),C),(!("oncut"in this.text)||!("oncopy"in this.text)||!("onpaste"in this.text))&&i.addListener(x,"keydown",function(T){if(!(s.isMac&&!T.metaKey||!T.ctrlKey))switch(T.keyCode){case 67:A.onCopy(T);break;case 86:A.onPaste(T);break;case 88:A.onCut(T);break}},C),this.syncComposition=o.delayedCall(this.onCompositionUpdate.bind(this),50).schedule.bind(null,null),i.addListener(this.text,"compositionstart",this.onCompositionStart.bind(this),C),i.addListener(this.text,"compositionupdate",this.onCompositionUpdate.bind(this),C),i.addListener(this.text,"keyup",this.onKeyup.bind(this),C),i.addListener(this.text,"keydown",this.syncComposition.bind(this),C),i.addListener(this.text,"compositionend",this.onCompositionEnd.bind(this),C),this.closeTimeout,i.addListener(this.text,"mouseup",this.$onContextMenu.bind(this),C),i.addListener(this.text,"mousedown",function(T){T.preventDefault(),A.onContextMenuClose()},C),i.addListener(C.renderer.scroller,"contextmenu",this.$onContextMenu.bind(this),C),i.addListener(this.text,"contextmenu",this.$onContextMenu.bind(this),C),p&&this.addIosSelectionHandler(x,C,this.text)}return k.prototype.addIosSelectionHandler=function(x,C,A){var T=this,E=null,L=!1;A.addEventListener("keydown",function(v){E&&clearTimeout(E),L=!0},!0),A.addEventListener("keyup",function(v){E=setTimeout(function(){L=!1},100)},!0);var S=function(v){if(document.activeElement===A&&!(L||T.inComposition||C.$mouseHandler.isMousePressed)&&!T.copied){var _=A.selectionStart,b=A.selectionEnd,M=null,I=0;if(_==0?M=m.up:_==1?M=m.home:b>T.lastSelectionEnd&&T.lastValue[b]==` +`?M=m.end:_T.lastSelectionEnd&&T.lastValue.slice(0,b).split(` +`).length>2?M=m.down:b>T.lastSelectionEnd&&T.lastValue[b-1]==" "?(M=m.right,I=f.option):(b>T.lastSelectionEnd||b==T.lastSelectionEnd&&T.lastSelectionEnd!=T.lastSelectionStart&&_==b)&&(M=m.right),_!==b&&(I|=f.shift),M){var D=C.onCommandKey({},I,M);if(!D&&C.commands){M=m.keyCodeToString(M);var O=C.commands.findKeyCommand(I,M);O&&C.execCommand(O)}T.lastSelectionStart=_,T.lastSelectionEnd=b,T.resetSelection("")}}};document.addEventListener("selectionchange",S),C.on("destroy",function(){document.removeEventListener("selectionchange",S)})},k.prototype.onContextMenuClose=function(){var x=this;clearTimeout(this.closeTimeout),this.closeTimeout=setTimeout(function(){x.tempStyle&&(x.text.style.cssText=x.tempStyle,x.tempStyle=""),x.host.renderer.$isMousePressed=!1,x.host.renderer.$keepTextAreaAtCursor&&x.host.renderer.$moveTextAreaToCursor()},0)},k.prototype.$onContextMenu=function(x){this.host.textInput.onContextMenu(x),this.onContextMenuClose()},k.prototype.onKeyup=function(x){x.keyCode==27&&this.text.value.lengthh+100||g.test(A)||y&&this.lastSelectionStart<1&&this.lastSelectionStart==this.lastSelectionEnd)&&this.resetSelection()},k.prototype.sendText=function(x,C){if(this.afterContextMenu&&(this.afterContextMenu=!1),this.pasted)return this.resetSelection(),x&&this.host.onPaste(x),this.pasted=!1,"";for(var A=this.text.selectionStart,T=this.text.selectionEnd,E=this.lastSelectionStart,L=this.lastValue.length-this.lastSelectionEnd,S=x,v=x.length-A,_=x.length-T,b=0;E>0&&this.lastValue[b]==x[b];)b++,E--;for(S=S.slice(b),b=1;L>0&&this.lastValue.length-b>this.lastSelectionStart-1&&this.lastValue[this.lastValue.length-b]==x[x.length-b];)b++,L--;v-=b-1,_-=b-1;var M=S.length-b+1;if(M<0&&(E=-M,M=0),S=S.slice(0,M),!C&&!S&&!v&&!E&&!L&&!_)return"";this.sendingText=!0;var I=!1;return s.isAndroid&&S==". "&&(S=" ",I=!0),S&&!E&&!L&&!v&&!_||this.commandMode?this.host.onTextInput(S):this.host.onTextInput(S,{extendLeft:E,extendRight:L,restoreStart:v,restoreEnd:_}),this.sendingText=!1,this.lastValue=x,this.lastSelectionStart=A,this.lastSelectionEnd=T,this.lastRestoreEnd=_,I?` +`:S},k.prototype.onSelect=function(x){var C=this;if(!this.inComposition){var A=function(T){return T.selectionStart===0&&T.selectionEnd>=C.lastValue.length&&T.value===C.lastValue&&C.lastValue&&T.selectionEnd!==C.lastSelectionEnd};this.copied?this.copied=!1:A(this.text)?(this.host.selectAll(),this.resetSelection()):y&&this.text.selectionStart!=this.lastSelectionStart&&this.resetSelection()}},k.prototype.$resetSelectionIOS=function(x){if(!(!this.$isFocused||this.copied&&!x||this.sendingText)){x||(x="");var C=` + ab`+x+`cde fg +`;C!=this.text.value&&(this.text.value=this.lastValue=C);var A=4,T=4+(x.length||(this.host.selection.isEmpty()?0:1));(this.lastSelectionStart!=A||this.lastSelectionEnd!=T)&&this.text.setSelectionRange(A,T),this.lastSelectionStart=A,this.lastSelectionEnd=T}},k.prototype.$resetSelection=function(){var x=this;if(!(this.inComposition||this.sendingText)&&!(!this.$isFocused&&!this.afterContextMenu)){this.inComposition=!0;var C=0,A=0,T="",E=function(O,N){for(var F=N,z=1;z<=O-x.rowStart&&z<2*x.numberOfExtraLines+1;z++)F+=x.host.session.getLine(O-z).length+1;return F};if(this.host.session){var L=this.host.selection,S=L.getRange(),v=L.cursor.row;v===this.rowEnd+1?(this.rowStart=this.rowEnd+1,this.rowEnd=this.rowStart+2*this.numberOfExtraLines):v===this.rowStart-1?(this.rowEnd=this.rowStart-1,this.rowStart=this.rowEnd-2*this.numberOfExtraLines):(vthis.rowEnd+1)&&(this.rowStart=v>this.numberOfExtraLines?v-this.numberOfExtraLines:0,this.rowEnd=v>this.numberOfExtraLines?v+this.numberOfExtraLines:2*this.numberOfExtraLines);for(var _=[],b=this.rowStart;b<=this.rowEnd;b++)_.push(this.host.session.getLine(b));if(T=_.join(` +`),C=E(S.start.row,S.start.column),A=E(S.end.row,S.end.column),S.start.rowthis.rowEnd){var I=this.host.session.getLine(this.rowEnd+1);A=S.end.row>this.rowEnd+1?I.length:S.end.column,A+=T.length+1,T=T+` +`+I}else y&&v>0&&(T=` +`+T,A+=1,C+=1);T.length>h&&(C1),u.preventDefault()},c.prototype.startSelect=function(u,d){u=u||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var h=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?h.selection.selectToPosition(u):d||h.selection.moveToPosition(u),d||this.select(),h.setStyle("ace_selecting"),this.setState("select"))},c.prototype.select=function(){var u,d=this.editor,h=d.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var m=this.$clickSelection.comparePoint(h);if(m==-1)u=this.$clickSelection.end;else if(m==1)u=this.$clickSelection.start;else{var f=l(this.$clickSelection,h,d.session);h=f.cursor,u=f.anchor}d.selection.setSelectionAnchor(u.row,u.column)}d.selection.selectToPosition(h),d.renderer.scrollCursorIntoView()},c.prototype.extendSelectionBy=function(u){var d,h=this.editor,m=h.renderer.screenToTextCoordinates(this.x,this.y),f=h.selection[u](m.row,m.column);if(this.$clickSelection){var p=this.$clickSelection.comparePoint(f.start),g=this.$clickSelection.comparePoint(f.end);if(p==-1&&g<=0)d=this.$clickSelection.end,(f.end.row!=m.row||f.end.column!=m.column)&&(m=f.start);else if(g==1&&p>=0)d=this.$clickSelection.start,(f.start.row!=m.row||f.start.column!=m.column)&&(m=f.end);else if(p==-1&&g==1)m=f.end,d=f.start;else{var y=l(this.$clickSelection,m,h.session);m=y.cursor,d=y.anchor}h.selection.setSelectionAnchor(d.row,d.column)}h.selection.selectToPosition(m),h.renderer.scrollCursorIntoView()},c.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},c.prototype.focusWait=function(){var u=o(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),d=Date.now();(u>r||d-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},c.prototype.onDoubleClick=function(u){var d=u.getDocumentPosition(),h=this.editor,m=h.session,f=m.getBracketRange(d);f?(f.isEmpty()&&(f.start.column--,f.end.column++),this.setState("select")):(f=h.selection.getWordRange(d.row,d.column),this.setState("selectByWords")),this.$clickSelection=f,this.select()},c.prototype.onTripleClick=function(u){var d=u.getDocumentPosition(),h=this.editor;this.setState("selectByLines");var m=h.getSelectionRange();m.isMultiLine()&&m.contains(d.row,d.column)?(this.$clickSelection=h.selection.getLineRange(m.start.row),this.$clickSelection.end=h.selection.getLineRange(m.end.row).end):this.$clickSelection=h.selection.getLineRange(d.row),this.select()},c.prototype.onQuadClick=function(u){var d=this.editor;d.selectAll(),this.$clickSelection=d.getSelectionRange(),this.setState("selectAll")},c.prototype.onMouseWheel=function(u){if(!u.getAccelKey()){u.getShiftKey()&&u.wheelY&&!u.wheelX&&(u.wheelX=u.wheelY,u.wheelY=0);var d=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var h=this.$lastScroll,m=u.domEvent.timeStamp,f=m-h.t,p=f?u.wheelX/f:h.vx,g=f?u.wheelY/f:h.vy;f=1&&d.renderer.isScrollableBy(u.wheelX*u.speed,0)&&(w=!0),y<=1&&d.renderer.isScrollableBy(0,u.wheelY*u.speed)&&(w=!0),w)h.allowed=m;else if(m-h.alloweds.clientHeight;a||r.preventDefault()}});ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range","ace/lib/scroll"],function(n,t,e){"use strict";var i=this&&this.__extends||function(){var f=function(p,g){return f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(y,w){y.__proto__=w}||function(y,w){for(var k in w)Object.prototype.hasOwnProperty.call(w,k)&&(y[k]=w[k])},f(p,g)};return function(p,g){if(typeof g!="function"&&g!==null)throw new TypeError("Class extends value "+String(g)+" is not a constructor or null");f(p,g);function y(){this.constructor=p}p.prototype=g===null?Object.create(g):(y.prototype=g.prototype,new y)}}(),r=this&&this.__values||function(f){var p=typeof Symbol=="function"&&Symbol.iterator,g=p&&f[p],y=0;if(g)return g.call(f);if(f&&typeof f.length=="number")return{next:function(){return f&&y>=f.length&&(f=void 0),{value:f&&f[y++],done:!f}}};throw new TypeError(p?"Object is not iterable.":"Symbol.iterator is not defined.")},s=n("./lib/dom"),a=n("./lib/event"),o=n("./range").Range,l=n("./lib/scroll").preventParentScroll,c="ace_tooltip",u=function(){function f(p){this.isOpen=!1,this.$element=null,this.$parentNode=p}return f.prototype.$init=function(){return this.$element=s.createElement("div"),this.$element.className=c,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},f.prototype.getElement=function(){return this.$element||this.$init()},f.prototype.setText=function(p){this.getElement().textContent=p},f.prototype.setHtml=function(p){this.getElement().innerHTML=p},f.prototype.setPosition=function(p,g){this.getElement().style.left=p+"px",this.getElement().style.top=g+"px"},f.prototype.setClassName=function(p){s.addCssClass(this.getElement(),p)},f.prototype.setTheme=function(p){this.theme&&(this.theme.isDark&&s.removeCssClass(this.getElement(),"ace_dark"),this.theme.cssClass&&s.removeCssClass(this.getElement(),this.theme.cssClass)),p.isDark&&s.addCssClass(this.getElement(),"ace_dark"),p.cssClass&&s.addCssClass(this.getElement(),p.cssClass),this.theme={isDark:p.isDark,cssClass:p.cssClass}},f.prototype.show=function(p,g,y){p!=null&&this.setText(p),g!=null&&y!=null&&this.setPosition(g,y),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},f.prototype.hide=function(p){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=c,this.isOpen=!1)},f.prototype.getHeight=function(){return this.getElement().offsetHeight},f.prototype.getWidth=function(){return this.getElement().offsetWidth},f.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},f}(),d=function(){function f(){this.popups=[]}return f.prototype.addPopup=function(p){this.popups.push(p),this.updatePopups()},f.prototype.removePopup=function(p){var g=this.popups.indexOf(p);g!==-1&&(this.popups.splice(g,1),this.updatePopups())},f.prototype.updatePopups=function(){var p,g,y,w;this.popups.sort(function(v,_){return _.priority-v.priority});var k=[];try{for(var x=r(this.popups),C=x.next();!C.done;C=x.next()){var A=C.value,T=!0;try{for(var E=(y=void 0,r(k)),L=E.next();!L.done;L=E.next()){var S=L.value;if(this.doPopupsOverlap(S,A)){T=!1;break}}}catch(v){y={error:v}}finally{try{L&&!L.done&&(w=E.return)&&w.call(E)}finally{if(y)throw y.error}}T?k.push(A):A.hide()}}catch(v){p={error:v}}finally{try{C&&!C.done&&(g=x.return)&&g.call(x)}finally{if(p)throw p.error}}},f.prototype.doPopupsOverlap=function(p,g){var y=p.getElement().getBoundingClientRect(),w=g.getElement().getBoundingClientRect();return y.leftw.left&&y.topw.top},f}(),h=new d;t.popupManager=h,t.Tooltip=u;var m=function(f){i(p,f);function p(g){g===void 0&&(g=document.body);var y=f.call(this,g)||this;y.timeout=void 0,y.lastT=0,y.idleTime=350,y.lastEvent=void 0,y.onMouseOut=y.onMouseOut.bind(y),y.onMouseMove=y.onMouseMove.bind(y),y.waitForHover=y.waitForHover.bind(y),y.hide=y.hide.bind(y);var w=y.getElement();return w.style.whiteSpace="pre-wrap",w.style.pointerEvents="auto",w.addEventListener("mouseout",y.onMouseOut),w.tabIndex=-1,w.addEventListener("blur",function(){w.contains(document.activeElement)||this.hide()}.bind(y)),w.addEventListener("wheel",l),y}return p.prototype.addToEditor=function(g){g.on("mousemove",this.onMouseMove),g.on("mousedown",this.hide);var y=g.renderer.getMouseEventTarget();y&&typeof y.removeEventListener=="function"&&y.addEventListener("mouseout",this.onMouseOut,!0)},p.prototype.removeFromEditor=function(g){g.off("mousemove",this.onMouseMove),g.off("mousedown",this.hide);var y=g.renderer.getMouseEventTarget();y&&typeof y.removeEventListener=="function"&&y.removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},p.prototype.onMouseMove=function(g,y){this.lastEvent=g,this.lastT=Date.now();var w=y.$mouseHandler.isMousePressed;if(this.isOpen){var k=this.lastEvent&&this.lastEvent.getDocumentPosition();(!this.range||!this.range.contains(k.row,k.column)||w||this.isOutsideOfText(this.lastEvent))&&this.hide()}this.timeout||w||(this.lastEvent=g,this.timeout=setTimeout(this.waitForHover,this.idleTime))},p.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var g=Date.now()-this.lastT;if(this.idleTime-g>10){this.timeout=setTimeout(this.waitForHover,this.idleTime-g);return}this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor)},p.prototype.isOutsideOfText=function(g){var y=g.editor,w=g.getDocumentPosition(),k=y.session.getLine(w.row);if(w.column==k.length){var x=y.renderer.pixelToScreenCoordinates(g.clientX,g.clientY),C=y.session.documentToScreenPosition(w.row,w.column);if(C.column!=x.column||C.row!=x.row)return!0}return!1},p.prototype.setDataProvider=function(g){this.$gatherData=g},p.prototype.showForRange=function(g,y,w,k){if(!(k&&k!=this.lastEvent)&&!(this.isOpen&&document.activeElement==this.getElement())){var x=g.renderer;this.isOpen||(h.addPopup(this),this.$registerCloseEvents(),this.setTheme(x.theme)),this.isOpen=!0,this.range=o.fromPoints(y.start,y.end);var C=x.textToScreenCoordinates(y.start.row,y.start.column),A=x.scroller.getBoundingClientRect();C.pageX=h.length&&(h=void 0),{value:h&&h[p++],done:!h}}};throw new TypeError(m?"Object is not iterable.":"Symbol.iterator is not defined.")},s=n("../lib/dom"),a=n("./mouse_event").MouseEvent,o=n("../tooltip").HoverTooltip,l=n("../config").nls,c=n("../range").Range;function u(h){var m=h.editor,f=m.renderer.$gutterLayer;h.$tooltip=new d(m),h.$tooltip.addToEditor(m),h.$tooltip.setDataProvider(function(p,g){var y=p.getDocumentPosition().row;h.$tooltip.showTooltip(y)}),h.editor.setDefaultHandler("guttermousedown",function(p){if(!(!m.isFocused()||p.getButton()!=0)){var g=f.getRegion(p);if(g!="foldWidgets"){var y=p.getDocumentPosition().row,w=m.session.selection;if(p.getShiftKey())w.selectTo(y,0);else{if(p.domEvent.detail==2)return m.selectAll(),p.preventDefault();h.$clickSelection=m.selection.getLineRange(y)}return h.setState("selectByLines"),h.captureMouse(p),p.preventDefault()}}})}t.GutterHandler=u;var d=function(h){i(m,h);function m(f){var p=h.call(this,f.container)||this;p.id="gt"+ ++m.$uid,p.editor=f,p.visibleTooltipRow;var g=p.getElement();return g.setAttribute("role","tooltip"),g.setAttribute("id",p.id),g.style.pointerEvents="auto",p.idleTime=50,p.onDomMouseMove=p.onDomMouseMove.bind(p),p.onDomMouseOut=p.onDomMouseOut.bind(p),p.setClassName("ace_gutter-tooltip"),p}return m.prototype.onDomMouseMove=function(f){var p=new a(f,this.editor);this.onMouseMove(p,this.editor)},m.prototype.onDomMouseOut=function(f){var p=new a(f,this.editor);this.onMouseOut(p)},m.prototype.addToEditor=function(f){var p=f.renderer.$gutter;p.addEventListener("mousemove",this.onDomMouseMove),p.addEventListener("mouseout",this.onDomMouseOut),h.prototype.addToEditor.call(this,f)},m.prototype.removeFromEditor=function(f){var p=f.renderer.$gutter;p.removeEventListener("mousemove",this.onDomMouseMove),p.removeEventListener("mouseout",this.onDomMouseOut),h.prototype.removeFromEditor.call(this,f)},m.prototype.destroy=function(){this.editor&&this.removeFromEditor(this.editor),h.prototype.destroy.call(this)},Object.defineProperty(m,"annotationLabels",{get:function(){return{error:{singular:l("gutter-tooltip.aria-label.error.singular","error"),plural:l("gutter-tooltip.aria-label.error.plural","errors")},security:{singular:l("gutter-tooltip.aria-label.security.singular","security finding"),plural:l("gutter-tooltip.aria-label.security.plural","security findings")},warning:{singular:l("gutter-tooltip.aria-label.warning.singular","warning"),plural:l("gutter-tooltip.aria-label.warning.plural","warnings")},info:{singular:l("gutter-tooltip.aria-label.info.singular","information message"),plural:l("gutter-tooltip.aria-label.info.plural","information messages")},hint:{singular:l("gutter-tooltip.aria-label.hint.singular","suggestion"),plural:l("gutter-tooltip.aria-label.hint.plural","suggestions")}}},enumerable:!1,configurable:!0}),m.prototype.showTooltip=function(f){var p,g=this.editor.renderer.$gutterLayer,y=g.$annotations[f],w;y?w={displayText:Array.from(y.displayText),type:Array.from(y.type)}:w={displayText:[],type:[]};var k=g.session.getFoldLine(f);if(k&&g.$showFoldedAnnotations){for(var x={error:[],security:[],warning:[],info:[],hint:[]},C={error:1,security:2,warning:3,info:4,hint:5},A,T=f+1;T<=k.end.row;T++)if(g.$annotations[T])for(var E=0;E2)return g.childNodes[2]}},m.prototype.$findCellByRow=function(f){return this.editor.renderer.$gutterLayer.$lines.cells.find(function(p){return p.row===f})},m.prototype.hide=function(f){if(this.isOpen){if(this.$element.removeAttribute("aria-live"),this.visibleTooltipRow!=null){var p=this.$findLinkedAnnotationNode(this.visibleTooltipRow);p&&p.removeAttribute("aria-describedby")}this.visibleTooltipRow=void 0,this.editor._signal("hideGutterTooltip",this),h.prototype.hide.call(this,f)}},m.annotationsToSummaryString=function(f){var p,g,y=[],w=["error","security","warning","info","hint"];try{for(var k=r(w),x=k.next();!x.done;x=k.next()){var C=x.value;if(f[C].length){var A=f[C].length===1?m.annotationLabels[C].singular:m.annotationLabels[C].plural;y.push("".concat(f[C].length," ").concat(A))}}}catch(T){p={error:T}}finally{try{x&&!x.done&&(g=k.return)&&g.call(k)}finally{if(p)throw p.error}}return y.join(", ")},m.prototype.isOutsideOfText=function(f){var p=f.editor,g=p.renderer.$gutter.getBoundingClientRect();return!(f.clientX>=g.left&&f.clientX<=g.right&&f.clientY>=g.top&&f.clientY<=g.bottom)},m}(o);d.$uid=0,t.GutterTooltip=d});ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(n,t,e){"use strict";var i=n("../lib/dom"),r=n("../lib/event"),s=n("../lib/useragent"),a=200,o=200,l=5;function c(d){var h=d.editor,m=i.createElement("div");m.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",m.textContent="\xA0";var f=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];f.forEach(function(V){d[V]=this[V]},this),h.on("mousedown",this.onMouseDown.bind(d));var p=h.container,g,y,w,k,x,C,A=0,T,E,L,S,v;this.onDragStart=function(V){if(this.cancelDrag||!p.draggable){var K=this;return setTimeout(function(){K.startSelect(),K.captureMouse(V)},0),V.preventDefault()}x=h.getSelectionRange();var W=V.dataTransfer;W.effectAllowed=h.getReadOnly()?"copy":"copyMove",h.container.appendChild(m),W.setDragImage&&W.setDragImage(m,0,0),setTimeout(function(){h.container.removeChild(m)}),W.clearData(),W.setData("Text",h.session.getTextRange()),E=!0,this.setState("drag")},this.onDragEnd=function(V){if(p.draggable=!1,E=!1,this.setState(null),!h.getReadOnly()){var K=V.dataTransfer.dropEffect;!T&&K=="move"&&h.session.remove(h.getSelectionRange()),h.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(V){if(!(h.getReadOnly()||!F(V.dataTransfer)))return y=V.clientX,w=V.clientY,g||I(),A++,V.dataTransfer.dropEffect=T=z(V),r.preventDefault(V)},this.onDragOver=function(V){if(!(h.getReadOnly()||!F(V.dataTransfer)))return y=V.clientX,w=V.clientY,g||(I(),A++),O!==null&&(O=null),V.dataTransfer.dropEffect=T=z(V),r.preventDefault(V)},this.onDragLeave=function(V){if(A--,A<=0&&g)return D(),T=null,r.preventDefault(V)},this.onDrop=function(V){if(C){var K=V.dataTransfer;if(E)switch(T){case"move":x.contains(C.row,C.column)?x={start:C,end:C}:x=h.moveText(x,C);break;case"copy":x=h.moveText(x,C,!0);break}else{var W=K.getData("Text");x={start:C,end:h.session.insert(C,W)},h.focus(),T=null}return D(),r.preventDefault(V)}},r.addListener(p,"dragstart",this.onDragStart.bind(d),h),r.addListener(p,"dragend",this.onDragEnd.bind(d),h),r.addListener(p,"dragenter",this.onDragEnter.bind(d),h),r.addListener(p,"dragover",this.onDragOver.bind(d),h),r.addListener(p,"dragleave",this.onDragLeave.bind(d),h),r.addListener(p,"drop",this.onDrop.bind(d),h);function _(V,K){var W=Date.now(),q=!K||V.row!=K.row,ae=!K||V.column!=K.column;if(!S||q||ae)h.moveCursorToPosition(V),S=W,v={x:y,y:w};else{var pe=u(v.x,v.y,y,w);pe>l?S=null:W-S>=o&&(h.renderer.scrollCursorIntoView(),S=null)}}function b(V,K){var W=Date.now(),q=h.renderer.layerConfig.lineHeight,ae=h.renderer.layerConfig.characterWidth,pe=h.renderer.scroller.getBoundingClientRect(),ie={x:{left:y-pe.left,right:pe.right-y},y:{top:w-pe.top,bottom:pe.bottom-w}},ne=Math.min(ie.x.left,ie.x.right),Ee=Math.min(ie.y.top,ie.y.bottom),we={row:V.row,column:V.column};ne/ae<=2&&(we.column+=ie.x.left=a&&h.renderer.scrollCursorIntoView(we):L=W:L=null}function M(){var V=C;C=h.renderer.screenToTextCoordinates(y,w),_(C,V),b(C,V)}function I(){x=h.selection.toOrientedRange(),g=h.session.addMarker(x,"ace_selection",h.getSelectionStyle()),h.clearSelection(),h.isFocused()&&h.renderer.$cursorLayer.setBlinking(!1),clearInterval(k),M(),k=setInterval(M,20),A=0,r.addListener(document,"mousemove",N)}function D(){clearInterval(k),h.session.removeMarker(g),g=null,h.selection.fromOrientedRange(x),h.isFocused()&&!E&&h.$resetCursorStyle(),x=null,C=null,A=0,L=null,S=null,r.removeListener(document,"mousemove",N)}var O=null;function N(){O==null&&(O=setTimeout(function(){O!=null&&g&&D()},20))}function F(V){var K=V.types;return!K||Array.prototype.some.call(K,function(W){return W=="text/plain"||W=="Text"})}function z(V){var K=["copy","copymove","all","uninitialized"],W=["move","copymove","linkmove","all","uninitialized"],q=s.isMac?V.altKey:V.ctrlKey,ae="uninitialized";try{ae=V.dataTransfer.effectAllowed.toLowerCase()}catch{}var pe="none";return q&&K.indexOf(ae)>=0?pe="copy":W.indexOf(ae)>=0?pe="move":K.indexOf(ae)>=0&&(pe="copy"),pe}}(function(){this.dragWait=function(){var d=Date.now()-this.mousedownEvent.time;d>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var d=this.editor.container;d.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(d){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var d=this.editor,h=d.container;h.draggable=!0,d.renderer.$cursorLayer.setBlinking(!1),d.setStyle("ace_dragging");var m=s.isWin?"default":"move";d.renderer.setCursorStyle(m),this.setState("dragReady")},this.onMouseDrag=function(d){var h=this.editor.container;if(s.isIE&&this.state=="dragReady"){var m=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);m>3&&h.dragDrop()}if(this.state==="dragWait"){var m=u(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);m>0&&(h.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(d){if(this.$dragEnabled){this.mousedownEvent=d;var h=this.editor,m=d.inSelection(),f=d.getButton(),p=d.domEvent.detail||1;if(p===1&&f===0&&m){if(d.editor.inMultiSelectMode&&(d.getAccelKey()||d.getShiftKey()))return;this.mousedownEvent.time=Date.now();var g=d.domEvent.target||d.domEvent.srcElement;if("unselectable"in g&&(g.unselectable="on"),h.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var y=h.container;y.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(d,this.onMouseDrag.bind(this)),d.defaultPrevented=!0}}}}).call(c.prototype);function u(d,h,m,f){return Math.sqrt(Math.pow(m-d,2)+Math.pow(f-h,2))}t.DragdropHandler=c});ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],function(n,t,e){"use strict";var i=n("./mouse_event").MouseEvent,r=n("../lib/event"),s=n("../lib/dom");t.addTouchListeners=function(a,o){var l="scroll",c,u,d,h,m,f,p=0,g,y=0,w=0,k=0,x,C;function A(){var _=window.navigator&&window.navigator.clipboard,b=!1,M=function(){var O=o.getCopyText(),N=o.session.getUndoManager().hasUndo();C.replaceChild(s.buildDom(b?["span",!O&&I("selectall")&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],O&&I("copy")&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],O&&I("cut")&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],_&&I("paste")&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],N&&I("undo")&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],I("find")&&["span",{class:"ace_mobile-button",action:"find"},"Find"],I("openCommandPalette")&&["span",{class:"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),C.firstChild)},I=function(O){return o.commands.canExecute(O,o)},D=function(O){var N=O.target.getAttribute("action");if(N=="more"||!b)return b=!b,M();N=="paste"?_.readText().then(function(F){o.execCommand(N,F)}):N&&((N=="cut"||N=="copy")&&(_?_.writeText(o.getCopyText()):document.execCommand("copy")),o.execCommand(N)),C.firstChild.style.display="none",b=!1,N!="openCommandPalette"&&o.focus()};C=s.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(O){l="menu",O.stopPropagation(),O.preventDefault(),o.textInput.focus()},ontouchend:function(O){O.stopPropagation(),O.preventDefault(),D(O)},onclick:D},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],o.container)}function T(){if(!o.getOption("enableMobileMenu")){C&&E();return}C||A();var _=o.selection.cursor,b=o.renderer.textToScreenCoordinates(_.row,_.column),M=o.renderer.textToScreenCoordinates(0,0).pageX,I=o.renderer.scrollLeft,D=o.container.getBoundingClientRect();C.style.top=b.pageY-D.top-3+"px",b.pageX-D.left=2?o.selection.getLineRange(g.row):o.session.getBracketRange(g);_&&!_.isEmpty()?o.selection.setRange(_):o.selection.selectWord(),l="wait"}r.addListener(a,"contextmenu",function(_){if(x){var b=o.textInput.getElement();b.focus()}},o),r.addListener(a,"touchstart",function(_){var b=_.touches;if(m||b.length>1){clearTimeout(m),m=null,d=-1,l="zoom";return}x=o.$mouseHandler.isMousePressed=!0;var M=o.renderer.layerConfig.lineHeight,I=o.renderer.layerConfig.lineHeight,D=_.timeStamp;h=D;var O=b[0],N=O.clientX,F=O.clientY;Math.abs(c-N)+Math.abs(u-F)>M&&(d=-1),c=_.clientX=N,u=_.clientY=F,w=k=0;var z=new i(_,o);if(g=z.getDocumentPosition(),D-d<500&&b.length==1&&!p)y++,_.preventDefault(),_.button=0,S();else{y=0;var V=o.selection.cursor,K=o.selection.isEmpty()?V:o.selection.anchor,W=o.renderer.$cursorLayer.getPixelPosition(V,!0),q=o.renderer.$cursorLayer.getPixelPosition(K,!0),ae=o.renderer.scroller.getBoundingClientRect(),pe=o.renderer.layerConfig.offset,ie=o.renderer.scrollLeft,ne=function(qe,_t){return qe=qe/I,_t=_t/M-.75,qe*qe+_t*_t};if(_.clientXwe?"cursor":"anchor"),we<3.5?l="anchor":Ee<3.5?l="cursor":l="scroll",m=setTimeout(L,450)}d=D},o),r.addListener(a,"touchend",function(_){x=o.$mouseHandler.isMousePressed=!1,f&&clearInterval(f),l=="zoom"?(l="",p=0):m?(o.selection.moveToPosition(g),p=0,T()):l=="scroll"?(v(),E()):T(),clearTimeout(m),m=null},o),r.addListener(a,"touchmove",function(_){m&&(clearTimeout(m),m=null);var b=_.touches;if(!(b.length>1||l=="zoom")){var M=b[0],I=c-M.clientX,D=u-M.clientY;if(l=="wait")if(I*I+D*D>4)l="cursor";else return _.preventDefault();c=M.clientX,u=M.clientY,_.clientX=M.clientX,_.clientY=M.clientY;var O=_.timeStamp,N=O-h;if(h=O,l=="scroll"){var F=new i(_,o);F.speed=1,F.wheelX=I,F.wheelY=D,10*Math.abs(I)0)if(Qr==16){for(ct=ur;ct-1){for(ct=ur;ct=0&&we[me]==L;me--)ne[me]=s}}}function W(ie,ne,Ee){if(!(a=ie){for(_t=qe+1;_t=ie;)_t++;for(Ct=qe,We=_t-1;Ct=ne.length||(_t=Ee[we-1])!=k&&_t!=x||(Ct=ne[we+1])!=k&&Ct!=x?C:(o&&(Ct=x),Ct==_t?Ct:C);case v:return _t=we>0?Ee[we-1]:A,_t==k&&we+10&&Ee[we-1]==k)return k;if(o)return C;for(Nt=we+1,We=ne.length;Nt=1425&&Qr<=2303||Qr==64286;if(_t=ne[Nt],So&&(_t==w||_t==E))return w}return we<1||(_t=ne[we-1])==A?C:Ee[we-1];case A:return o=!1,c=!0,s;case T:return u=!0,C;case M:case I:case O:case N:case D:o=!1;case F:return C}}function ae(ie){var ne=ie.charCodeAt(0),Ee=ne>>8;return Ee==0?ne>191?y:z[ne]:Ee==5?/[\u0591-\u05f4]/.test(ie)?w:y:Ee==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(ie)?b:/[\u0660-\u0669\u066b-\u066c]/.test(ie)?x:ne==1642?_:/[\u06f0-\u06f9]/.test(ie)?k:E:Ee==32&&ne<=8287?V[ne&255]:Ee==254&&ne>=65136?E:C}function pe(ie){return ie>="\u064B"&&ie<="\u0655"}t.L=y,t.R=w,t.EN=k,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="\xB7",t.doBidiReorder=function(ie,ne,Ee){if(ie.length<2)return{};var we=ie.split(""),qe=new Array(we.length),_t=new Array(we.length),Ct=[];s=Ee?g:p,K(we,Ct,we.length,ne);for(var We=0;WeE&&ne[We]0&&we[We-1]==="\u0644"&&/\u0622|\u0623|\u0625|\u0627/.test(we[We])&&(Ct[We-1]=Ct[We]=t.R_H,We++);we[we.length-1]===t.DOT&&(Ct[we.length-1]=t.B),we[0]==="\u202B"&&(Ct[0]=t.RLE);for(var We=0;We=0&&(l=this.session.$docRowCache[u])}return l},o.prototype.getSplitIndex=function(){var l=0,c=this.session.$screenRowCache;if(c.length)for(var u,d=this.session.$getRowCacheIndex(c,this.currentRow);this.currentRow-l>0&&(u=this.session.$getRowCacheIndex(c,this.currentRow-l-1),u===d);)d=u,l++;else l=this.currentRow;return l},o.prototype.updateRowLine=function(l,c){l===void 0&&(l=this.getDocumentRow());var u=l===this.session.getLength()-1,d=u?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(l),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var h=this.session.$wrapData[l];h&&(c===void 0&&(c=this.getSplitIndex()),c>0&&h.length?(this.wrapIndent=h.indent,this.wrapOffset=this.wrapIndent*this.charWidths[i.L],this.line=cc?this.session.getOverwrite()?l:l-1:c,d=i.getVisualFromLogicalIdx(u,this.bidiMap),h=this.bidiMap.bidiLevels,m=0;!this.session.getOverwrite()&&l<=c&&h[d]%2!==0&&d++;for(var f=0;fc&&h[d]%2===0&&(m+=this.charWidths[h[d]]),this.wrapIndent&&(m+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(m+=this.rtlLineOffset),m},o.prototype.getSelections=function(l,c){var u=this.bidiMap,d=u.bidiLevels,h,m=[],f=0,p=Math.min(l,c)-this.wrapIndent,g=Math.max(l,c)-this.wrapIndent,y=!1,w=!1,k=0;this.wrapIndent&&(f+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var x,C=0;C=p&&xd+f/2;){if(d+=f,h===m.length-1){f=0;break}f=this.charWidths[m[++h]]}return h>0&&m[h-1]%2!==0&&m[h]%2===0?(u0&&m[h-1]%2===0&&m[h]%2!==0?c=1+(u>d?this.bidiMap.logicalFromVisual[h]:this.bidiMap.logicalFromVisual[h-1]):this.isRtlDir&&h===m.length-1&&f===0&&m[h-1]%2===0||!this.isRtlDir&&h===0&&m[h]%2!==0?c=1+this.bidiMap.logicalFromVisual[h]:(h>0&&m[h-1]%2!==0&&f!==0&&h--,c=this.bidiMap.logicalFromVisual[h]),c===0&&this.isRtlDir&&c++,c+this.wrapIndent},o}();t.BidiHandler=a});ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(n,t,e){"use strict";var i=n("./lib/oop"),r=n("./lib/lang"),s=n("./lib/event_emitter").EventEmitter,a=n("./range").Range,o=function(){function l(c){this.session=c,this.doc=c.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var u=this;this.cursor.on("change",function(d){u.$cursorChanged=!0,u.$silent||u._emit("changeCursor"),!u.$isEmpty&&!u.$silent&&u._emit("changeSelection"),!u.$keepDesiredColumnOnChange&&d.old.column!=d.value.column&&(u.$desiredColumn=null)}),this.anchor.on("change",function(){u.$anchorChanged=!0,!u.$isEmpty&&!u.$silent&&u._emit("changeSelection")})}return l.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},l.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},l.prototype.getCursor=function(){return this.lead.getPosition()},l.prototype.setAnchor=function(c,u){this.$isEmpty=!1,this.anchor.setPosition(c,u)},l.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},l.prototype.getSelectionLead=function(){return this.lead.getPosition()},l.prototype.isBackwards=function(){var c=this.anchor,u=this.lead;return c.row>u.row||c.row==u.row&&c.column>u.column},l.prototype.getRange=function(){var c=this.anchor,u=this.lead;return this.$isEmpty?a.fromPoints(u,u):this.isBackwards()?a.fromPoints(u,c):a.fromPoints(c,u)},l.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},l.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},l.prototype.setRange=function(c,u){var d=u?c.end:c.start,h=u?c.start:c.end;this.$setSelection(d.row,d.column,h.row,h.column)},l.prototype.$setSelection=function(c,u,d,h){if(!this.$silent){var m=this.$isEmpty,f=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(c,u),this.cursor.setPosition(d,h),this.$isEmpty=!a.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||m!=this.$isEmpty||f)&&this._emit("changeSelection")}},l.prototype.$moveSelection=function(c){var u=this.lead;this.$isEmpty&&this.setSelectionAnchor(u.row,u.column),c.call(this)},l.prototype.selectTo=function(c,u){this.$moveSelection(function(){this.moveCursorTo(c,u)})},l.prototype.selectToPosition=function(c){this.$moveSelection(function(){this.moveCursorToPosition(c)})},l.prototype.moveTo=function(c,u){this.clearSelection(),this.moveCursorTo(c,u)},l.prototype.moveToPosition=function(c){this.clearSelection(),this.moveCursorToPosition(c)},l.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},l.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},l.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},l.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},l.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},l.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},l.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},l.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},l.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},l.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},l.prototype.getWordRange=function(c,u){if(typeof u>"u"){var d=c||this.lead;c=d.row,u=d.column}return this.session.getWordRange(c,u)},l.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},l.prototype.selectAWord=function(){var c=this.getCursor(),u=this.session.getAWordRange(c.row,c.column);this.setSelectionRange(u)},l.prototype.getLineRange=function(c,u){var d=typeof c=="number"?c:this.lead.row,h,m=this.session.getFoldLine(d);return m?(d=m.start.row,h=m.end.row):h=d,u===!0?new a(d,0,h,this.session.getLine(h).length):new a(d,0,h+1,0)},l.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},l.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},l.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},l.prototype.wouldMoveIntoSoftTab=function(c,u,d){var h=c.column,m=c.column+u;return d<0&&(h=c.column-u,m=c.column),this.session.isTabStop(c)&&this.doc.getLine(c.row).slice(h,m).split(" ").length-1==u},l.prototype.moveCursorLeft=function(){var c=this.lead.getPosition(),u;if(u=this.session.getFoldAt(c.row,c.column,-1))this.moveCursorTo(u.start.row,u.start.column);else if(c.column===0)c.row>0&&this.moveCursorTo(c.row-1,this.doc.getLine(c.row-1).length);else{var d=this.session.getTabSize();this.wouldMoveIntoSoftTab(c,d,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-d):this.moveCursorBy(0,-1)}},l.prototype.moveCursorRight=function(){var c=this.lead.getPosition(),u;if(u=this.session.getFoldAt(c.row,c.column,1))this.moveCursorTo(u.end.row,u.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(u.column=h)}}this.moveCursorTo(u.row,u.column)},l.prototype.moveCursorFileEnd=function(){var c=this.doc.getLength()-1,u=this.doc.getLine(c).length;this.moveCursorTo(c,u)},l.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},l.prototype.moveCursorLongWordRight=function(){var c=this.lead.row,u=this.lead.column,d=this.doc.getLine(c),h=d.substring(u);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var m=this.session.getFoldAt(c,u,1);if(m){this.moveCursorTo(m.end.row,m.end.column);return}if(this.session.nonTokenRe.exec(h)&&(u+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,h=d.substring(u)),u>=d.length){this.moveCursorTo(c,d.length),this.moveCursorRight(),c0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(m)&&(u-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(c,u)},l.prototype.$shortWordEndIndex=function(c){var u=0,d,h=/\s/,m=this.session.tokenRe;if(m.lastIndex=0,this.session.tokenRe.exec(c))u=this.session.tokenRe.lastIndex;else{for(;(d=c[u])&&h.test(d);)u++;if(u<1){for(m.lastIndex=0;(d=c[u])&&!m.test(d);)if(m.lastIndex=0,u++,h.test(d))if(u>2){u--;break}else{for(;(d=c[u])&&h.test(d);)u++;if(u>2)break}}}return m.lastIndex=0,u},l.prototype.moveCursorShortWordRight=function(){var c=this.lead.row,u=this.lead.column,d=this.doc.getLine(c),h=d.substring(u),m=this.session.getFoldAt(c,u,1);if(m)return this.moveCursorTo(m.end.row,m.end.column);if(u==d.length){var f=this.doc.getLength();do c++,h=this.doc.getLine(c);while(c0&&/^\s*$/.test(h));u=h.length,/\s+$/.test(h)||(h="")}var m=r.stringReverse(h),f=this.$shortWordEndIndex(m);return this.moveCursorTo(c,u-f)},l.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},l.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},l.prototype.moveCursorBy=function(c,u){var d=this.session.documentToScreenPosition(this.lead.row,this.lead.column),h;if(u===0&&(c!==0&&(this.session.$bidiHandler.isBidiRow(d.row,this.lead.row)?(h=this.session.$bidiHandler.getPosLeft(d.column),d.column=Math.round(h/this.session.$bidiHandler.charWidths[0])):h=d.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?d.column=this.$desiredColumn:this.$desiredColumn=d.column),c!=0&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var m=this.session.lineWidgets[this.lead.row];c<0?c-=m.rowsAbove||0:c>0&&(c+=m.rowCount-(m.rowsAbove||0))}var f=this.session.screenToDocumentPosition(d.row+c,d.column,h);c!==0&&u===0&&f.row===this.lead.row&&(f.column,this.lead.column),this.moveCursorTo(f.row,f.column+u,u===0)},l.prototype.moveCursorToPosition=function(c){this.moveCursorTo(c.row,c.column)},l.prototype.moveCursorTo=function(c,u,d){var h=this.session.getFoldAt(c,u,1);h&&(c=h.start.row,u=h.start.column),this.$keepDesiredColumnOnChange=!0;var m=this.session.getLine(c);/[\uDC00-\uDFFF]/.test(m.charAt(u))&&m.charAt(u-1)&&(this.lead.row==c&&this.lead.column==u+1?u=u-1:u=u+1),this.lead.setPosition(c,u),this.$keepDesiredColumnOnChange=!1,d||(this.$desiredColumn=null)},l.prototype.moveCursorToScreen=function(c,u,d){var h=this.session.screenToDocumentPosition(c,u);this.moveCursorTo(h.row,h.column,d)},l.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},l.prototype.fromOrientedRange=function(c){this.setSelectionRange(c,c.cursor==c.start),this.$desiredColumn=c.desiredColumn||this.$desiredColumn},l.prototype.toOrientedRange=function(c){var u=this.getRange();return c?(c.start.column=u.start.column,c.start.row=u.start.row,c.end.column=u.end.column,c.end.row=u.end.row):c=u,c.cursor=this.isBackwards()?c.start:c.end,c.desiredColumn=this.$desiredColumn,c},l.prototype.getRangeOfMovements=function(c){var u=this.getCursor();try{c(this);var d=this.getCursor();return a.fromPoints(u,d)}catch{return a.fromPoints(u,u)}finally{this.moveCursorToPosition(u)}},l.prototype.toJSON=function(){if(this.rangeCount)var c=this.ranges.map(function(u){var d=u.clone();return d.isBackwards=u.cursor==u.start,d});else{var c=this.getRange();c.isBackwards=this.isBackwards()}return c},l.prototype.fromJSON=function(c){if(c.start==null)if(this.rangeList&&c.length>1){this.toSingleRange(c[0]);for(var u=c.length;u--;){var d=a.fromPoints(c[u].start,c[u].end);c[u].isBackwards&&(d.cursor=d.start),this.addRange(d,!0)}return}else c=c[0];this.rangeList&&this.toSingleRange(c),this.setSelectionRange(c,c.isBackwards)},l.prototype.isEqual=function(c){if((c.length||this.rangeCount)&&c.length!=this.rangeCount)return!1;if(!c.length||!this.ranges)return this.getRange().isEqual(c);for(var u=this.ranges.length;u--;)if(!this.ranges[u].isEqual(c[u]))return!1;return!0},l}();o.prototype.setSelectionAnchor=o.prototype.setAnchor,o.prototype.getSelectionAnchor=o.prototype.getAnchor,o.prototype.setSelectionRange=o.prototype.setRange,i.implement(o.prototype,s),t.Selection=o});ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],function(n,t,e){"use strict";var i=n("./lib/report_error").reportError,r=2e3,s=function(){function a(o){this.splitRegex,this.states=o,this.regExps={},this.matchMappings={};for(var l in this.states){for(var c=this.states[l],u=[],d=0,h=this.matchMappings[l]={defaultToken:"text"},m="g",f=[],p=0;p1?g.onMatch=this.$applyToken:g.onMatch=g.token),w>1&&(/\\\d/.test(g.regex)?y=g.regex.replace(/\\([0-9]+)/g,function(k,x){return"\\"+(parseInt(x,10)+d+1)}):(w=1,y=this.removeCapturingGroups(g.regex)),!g.splitRegex&&typeof g.token!="string"&&f.push(g)),h[d]=p,d+=w,u.push(y),g.onMatch||(g.onMatch=null)}}u.length||(h[0]=0,u.push("$")),f.forEach(function(k){k.splitRegex=this.createSplitterRegexp(k.regex,m)},this),this.regExps[l]=new RegExp("("+u.join(")|(")+")|($)",m)}}return a.prototype.$setMaxTokenCount=function(o){r=o|0},a.prototype.$applyToken=function(o){var l=this.splitRegex.exec(o).slice(1),c=this.token.apply(this,l);if(typeof c=="string")return[{type:c,value:o}];for(var u=[],d=0,h=c.length;dg){var T=o.substring(g,A-C.length);w.type==k?w.value+=T:(w.type&&p.push(w),w={type:k,value:T})}for(var E=0;Er){for(y>2*o.length&&this.reportError("infinite loop with in ace tokenizer",{startState:l,line:o});g1&&c[0]!==u&&c.unshift("#tmp",u),{tokens:p,state:c.length?c:u}},a}();s.prototype.reportError=i,t.Tokenizer=s});ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],function(n,t,e){"use strict";var i=n("../lib/deep_copy").deepCopy,r;r=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}},function(){this.addRules=function(o,l){if(!l){for(var c in o)this.$rules[c]=o[c];return}for(var c in o){for(var u=o[c],d=0;d=this.$rowTokens.length;){if(this.$row+=1,a||(a=this.$session.getLength()),this.$row>=a)return this.$row=a-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},s.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},s.prototype.getCurrentTokenRow=function(){return this.$row},s.prototype.getCurrentTokenColumn=function(){var a=this.$rowTokens,o=this.$tokenIndex,l=a[o].start;if(l!==void 0)return l;for(l=0;o>0;)o-=1,l+=a[o].value.length;return l},s.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},s.prototype.getCurrentTokenRange=function(){var a=this.$rowTokens[this.$tokenIndex],o=this.getCurrentTokenColumn();return new i(this.$row,o,this.$row,o+a.value.length)},s}();t.TokenIterator=r});ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(n,t,e){"use strict";var i=n("../../lib/oop"),r=n("../behaviour").Behaviour,s=n("../../token_iterator").TokenIterator,a=n("../../lib/lang"),o=["text","paren.rparen","rparen","paren","punctuation.operator"],l=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],c,u={},d={'"':'"',"'":"'"},h=function(p){var g=-1;if(p.multiSelect&&(g=p.selection.index,u.rangeCount!=p.multiSelect.rangeCount&&(u={rangeCount:p.multiSelect.rangeCount})),u[g])return c=u[g];c=u[g]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},m=function(p,g,y,w){var k=p.end.row-p.start.row;return{text:y+g+w,selection:[0,p.start.column+1,k,p.end.column+(k?0:1)]}},f;f=function(p){p=p||{},this.add("braces","insertion",function(g,y,w,k,x){var C=w.getCursorPosition(),A=k.doc.getLine(C.row);if(x=="{"){h(w);var T=w.getSelectionRange(),E=k.doc.getTextRange(T),L=k.getTokenAt(C.row,C.column);if(E!==""&&E!=="{"&&w.getWrapBehavioursEnabled())return m(T,E,"{","}");if(L&&/(?:string)\.quasi|\.xml/.test(L.type)){var S=[/tag\-(?:open|name)/,/attribute\-name/];return S.some(function(O){return O.test(L.type)})||/(string)\.quasi/.test(L.type)&&L.value[C.column-L.start-1]!=="$"?void 0:(f.recordAutoInsert(w,k,"}"),{text:"{}",selection:[1,1]})}else if(f.isSaneInsertion(w,k))return/[\]\}\)]/.test(A[C.column])||w.inMultiSelectMode||p.braces?(f.recordAutoInsert(w,k,"}"),{text:"{}",selection:[1,1]}):(f.recordMaybeInsert(w,k,"{"),{text:"{",selection:[1,1]})}else if(x=="}"){h(w);var v=A.substring(C.column,C.column+1);if(v=="}"){var _=k.$findOpeningBracket("}",{column:C.column+1,row:C.row});if(_!==null&&f.isAutoInsertedClosing(C,A,x))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(x==` +`||x==`\r +`){h(w);var b="";f.isMaybeInsertedClosing(C,A)&&(b=a.stringRepeat("}",c.maybeInsertedBrackets),f.clearMaybeInsertedClosing());var v=A.substring(C.column,C.column+1);if(v==="}"){var M=k.findMatchingBracket({row:C.row,column:C.column+1},"}");if(!M)return null;var I=this.$getIndent(k.getLine(M.row))}else if(b)var I=this.$getIndent(A);else{f.clearMaybeInsertedClosing();return}var D=I+k.getTabString();return{text:` +`+D+` +`+I+b,selection:[1,D.length,1,D.length]}}else f.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(g,y,w,k,x){var C=k.doc.getTextRange(x);if(!x.isMultiLine()&&C=="{"){h(w);var A=k.doc.getLine(x.start.row),T=A.substring(x.end.column,x.end.column+1);if(T=="}")return x.end.column++,x;c.maybeInsertedBrackets--}}),this.add("parens","insertion",function(g,y,w,k,x){if(x=="("){h(w);var C=w.getSelectionRange(),A=k.doc.getTextRange(C);if(A!==""&&w.getWrapBehavioursEnabled())return m(C,A,"(",")");if(f.isSaneInsertion(w,k))return f.recordAutoInsert(w,k,")"),{text:"()",selection:[1,1]}}else if(x==")"){h(w);var T=w.getCursorPosition(),E=k.doc.getLine(T.row),L=E.substring(T.column,T.column+1);if(L==")"){var S=k.$findOpeningBracket(")",{column:T.column+1,row:T.row});if(S!==null&&f.isAutoInsertedClosing(T,E,x))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(g,y,w,k,x){var C=k.doc.getTextRange(x);if(!x.isMultiLine()&&C=="("){h(w);var A=k.doc.getLine(x.start.row),T=A.substring(x.start.column+1,x.start.column+2);if(T==")")return x.end.column++,x}}),this.add("brackets","insertion",function(g,y,w,k,x){if(x=="["){h(w);var C=w.getSelectionRange(),A=k.doc.getTextRange(C);if(A!==""&&w.getWrapBehavioursEnabled())return m(C,A,"[","]");if(f.isSaneInsertion(w,k))return f.recordAutoInsert(w,k,"]"),{text:"[]",selection:[1,1]}}else if(x=="]"){h(w);var T=w.getCursorPosition(),E=k.doc.getLine(T.row),L=E.substring(T.column,T.column+1);if(L=="]"){var S=k.$findOpeningBracket("]",{column:T.column+1,row:T.row});if(S!==null&&f.isAutoInsertedClosing(T,E,x))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(g,y,w,k,x){var C=k.doc.getTextRange(x);if(!x.isMultiLine()&&C=="["){h(w);var A=k.doc.getLine(x.start.row),T=A.substring(x.start.column+1,x.start.column+2);if(T=="]")return x.end.column++,x}}),this.add("string_dquotes","insertion",function(g,y,w,k,x){var C=k.$mode.$quotes||d;if(x.length==1&&C[x]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(x)!=-1)return;h(w);var A=x,T=w.getSelectionRange(),E=k.doc.getTextRange(T);if(E!==""&&(E.length!=1||!C[E])&&w.getWrapBehavioursEnabled())return m(T,E,A,A);if(!E){var L=w.getCursorPosition(),S=k.doc.getLine(L.row),v=S.substring(L.column-1,L.column),_=S.substring(L.column,L.column+1),b=k.getTokenAt(L.row,L.column),M=k.getTokenAt(L.row,L.column+1);if(v=="\\"&&b&&/escape/.test(b.type))return null;var I=b&&/string|escape/.test(b.type),D=!M||/string|escape/.test(M.type),O;if(_==A)O=I!==D,O&&/string\.end/.test(M.type)&&(O=!1);else{if(I&&!D||I&&D)return null;var N=k.$mode.tokenRe;N.lastIndex=0;var F=N.test(v);N.lastIndex=0;var z=N.test(_),V=k.$mode.$pairQuotesAfter,K=V&&V[A]&&V[A].test(v);if(!K&&F||z||_&&!/[\s;,.})\]\\]/.test(_))return null;var W=S[L.column-2];if(v==A&&(W==A||N.test(W)))return null;O=!0}return{text:O?A+A:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(g,y,w,k,x){var C=k.$mode.$quotes||d,A=k.doc.getTextRange(x);if(!x.isMultiLine()&&C.hasOwnProperty(A)){h(w);var T=k.doc.getLine(x.start.row),E=T.substring(x.start.column+1,x.start.column+2);if(E==A)return x.end.column++,x}}),p.closeDocComment!==!1&&this.add("doc comment end","insertion",function(g,y,w,k,x){if(g==="doc-start"&&(x===` +`||x===`\r +`)&&w.selection.isEmpty()){var C=w.getCursorPosition();if(C.column===0)return;for(var A=k.doc.getLine(C.row),T=k.doc.getLine(C.row+1),E=k.getTokens(C.row),L=0,S=0;S=C.column){if(L===C.column){if(!/\.doc/.test(v.type))return;if(/\*\//.test(v.value)){var _=E[S+1];if(!_||!/\.doc/.test(_.type))return}}var b=C.column-(L-v.value.length),M=v.value.indexOf("*/"),I=v.value.indexOf("/**",M>-1?M+2:0);if(I!==-1&&b>I&&b=M&&b<=I||!/\.doc/.test(v.type))return;break}}var D=this.$getIndent(A);if(/\s*\*/.test(T))return/^\s*\*/.test(A)?{text:x+D+"* ",selection:[1,2+D.length,1,2+D.length]}:{text:x+D+" * ",selection:[1,3+D.length,1,3+D.length]};if(/\/\*\*/.test(A.substring(0,C.column)))return{text:x+D+" * "+x+" "+D+"*/",selection:[1,4+D.length,1,4+D.length]}}})},f.isSaneInsertion=function(p,g){var y=p.getCursorPosition(),w=new s(g,y.row,y.column);if(!this.$matchTokenType(w.getCurrentToken()||"text",o)){if(/[)}\]]/.test(p.session.getLine(y.row)[y.column]))return!0;var k=new s(g,y.row,y.column+1);if(!this.$matchTokenType(k.getCurrentToken()||"text",o))return!1}return w.stepForward(),w.getCurrentTokenRow()!==y.row||this.$matchTokenType(w.getCurrentToken()||"text",l)},f.$matchTokenType=function(p,g){return g.indexOf(p.type||p)>-1},f.recordAutoInsert=function(p,g,y){var w=p.getCursorPosition(),k=g.doc.getLine(w.row);this.isAutoInsertedClosing(w,k,c.autoInsertedLineEnd[0])||(c.autoInsertedBrackets=0),c.autoInsertedRow=w.row,c.autoInsertedLineEnd=y+k.substr(w.column),c.autoInsertedBrackets++},f.recordMaybeInsert=function(p,g,y){var w=p.getCursorPosition(),k=g.doc.getLine(w.row);this.isMaybeInsertedClosing(w,k)||(c.maybeInsertedBrackets=0),c.maybeInsertedRow=w.row,c.maybeInsertedLineStart=k.substr(0,w.column)+y,c.maybeInsertedLineEnd=k.substr(w.column),c.maybeInsertedBrackets++},f.isAutoInsertedClosing=function(p,g,y){return c.autoInsertedBrackets>0&&p.row===c.autoInsertedRow&&y===c.autoInsertedLineEnd[0]&&g.substr(p.column)===c.autoInsertedLineEnd},f.isMaybeInsertedClosing=function(p,g){return c.maybeInsertedBrackets>0&&p.row===c.maybeInsertedRow&&g.substr(p.column)===c.maybeInsertedLineEnd&&g.substr(0,p.column)==c.maybeInsertedLineStart},f.popAutoInsertedClosing=function(){c.autoInsertedLineEnd=c.autoInsertedLineEnd.substr(1),c.autoInsertedBrackets--},f.clearMaybeInsertedClosing=function(){c&&(c.maybeInsertedBrackets=0,c.maybeInsertedRow=-1)},i.inherits(f,r),t.CstyleBehaviour=f});ace.define("ace/unicode",["require","exports","module"],function(n,t,e){"use strict";for(var i=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],r=0,s=[],a=0;a2?W%x!=x-1:W%x==0}}else{if(!this.blockComment)return!1;var A=this.blockComment.start,T=this.blockComment.end,E=new RegExp("^(\\s*)(?:"+l.escapeRegExp(A)+")"),L=new RegExp("(?:"+l.escapeRegExp(T)+")\\s*$"),S=function(O,N){_(O,N)||(!y||/\S/.test(O))&&(g.insertInLine({row:N,column:O.length},T),g.insertInLine({row:N,column:k},A))},v=function(O,N){var F;(F=O.match(L))&&g.removeInLine(N,O.length-F[0].length,O.length),(F=O.match(E))&&g.removeInLine(N,F[1].length,F[0].length)},_=function(O,N){if(E.test(O))return!0;for(var F=m.getTokens(N),z=0;zO.length&&(D=O.length)}),k==1/0&&(k=D,y=!1,w=!1),C&&k%x!=0&&(k=Math.floor(k/x)*x),I(w?v:S)},this.toggleBlockComment=function(h,m,f,p){var g=this.blockComment;if(g){!g.start&&g[0]&&(g=g[0]);var y=new c(m,p.row,p.column),w=y.getCurrentToken(),k=m.selection,x=m.selection.toOrientedRange(),C,A;if(w&&/comment/.test(w.type)){for(var T,E;w&&/comment/.test(w.type);){var L=w.value.indexOf(g.start);if(L!=-1){var S=y.getCurrentTokenRow(),v=y.getCurrentTokenColumn()+L;T=new u(S,v,S,v+g.start.length);break}w=y.stepBackward()}for(var y=new c(m,p.row,p.column),w=y.getCurrentToken();w&&/comment/.test(w.type);){var L=w.value.indexOf(g.end);if(L!=-1){var S=y.getCurrentTokenRow(),v=y.getCurrentTokenColumn()+L;E=new u(S,v,S,v+g.end.length);break}w=y.stepForward()}E&&m.remove(E),T&&(m.remove(T),C=T.start.row,A=-g.start.length)}else A=g.start.length,C=f.start.row,m.insert(f.end,g.end),m.insert(f.start,g.start);x.start.row==C&&(x.start.column+=A),x.end.row==C&&(x.end.column+=A),m.selection.fromOrientedRange(x)}},this.getNextLineIndent=function(h,m,f){return this.$getIndent(m)},this.checkOutdent=function(h,m,f){return!1},this.autoOutdent=function(h,m,f){},this.$getIndent=function(h){return h.match(/^\s*/)[0]},this.createWorker=function(h){return null},this.createModeDelegates=function(h){this.$embeds=[],this.$modes={};for(var m in h)if(h[m]){var f=h[m],p=f.prototype.$id,g=i.$modes[p];g||(i.$modes[p]=g=new f),i.$modes[m]||(i.$modes[m]=g),this.$embeds.push(m),this.$modes[m]=g}for(var y=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],w=function(x){(function(C){var A=y[x],T=C[A];C[y[x]]=function(){return this.$delegator(A,arguments,T)}})(k)},k=this,m=0;mo[l].column&&l++,d.unshift(l,0),o.splice.apply(o,d),this.$updateRows()}}},s.prototype.$updateRows=function(){var a=this.session.lineWidgets;if(a){var o=!0;a.forEach(function(l,c){if(l)for(o=!1,l.row=c;l.$oldWidget;)l.$oldWidget.row=c,l=l.$oldWidget}),o&&(this.session.lineWidgets=null)}},s.prototype.$registerLineWidget=function(a){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var o=this.session.lineWidgets[a.row];return o&&(a.$oldWidget=o,o.el&&o.el.parentNode&&(o.el.parentNode.removeChild(o.el),o._inDocument=!1)),this.session.lineWidgets[a.row]=a,a},s.prototype.addLineWidget=function(a){if(this.$registerLineWidget(a),a.session=this.session,!this.editor)return a;var o=this.editor.renderer;a.html&&!a.el&&(a.el=i.createElement("div"),a.el.innerHTML=a.html),a.text&&!a.el&&(a.el=i.createElement("div"),a.el.textContent=a.text),a.el&&(i.addCssClass(a.el,"ace_lineWidgetContainer"),a.className&&i.addCssClass(a.el,a.className),a.el.style.position="absolute",a.el.style.zIndex="5",o.container.appendChild(a.el),a._inDocument=!0,a.coverGutter||(a.el.style.zIndex="3"),a.pixelHeight==null&&(a.pixelHeight=a.el.offsetHeight)),a.rowCount==null&&(a.rowCount=a.pixelHeight/o.layerConfig.lineHeight);var l=this.session.getFoldAt(a.row,0);if(a.$fold=l,l){var c=this.session.lineWidgets;a.row==l.end.row&&!c[l.start.row]?c[l.start.row]=a:a.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:a.row}}}),this.$updateRows(),this.renderWidgets(null,o),this.onWidgetChanged(a),a},s.prototype.removeLineWidget=function(a){if(a._inDocument=!1,a.session=null,a.el&&a.el.parentNode&&a.el.parentNode.removeChild(a.el),a.editor&&a.editor.destroy)try{a.editor.destroy()}catch{}if(this.session.lineWidgets){var o=this.session.lineWidgets[a.row];if(o==a)this.session.lineWidgets[a.row]=a.$oldWidget,a.$oldWidget&&this.onWidgetChanged(a.$oldWidget);else for(;o;){if(o.$oldWidget==a){o.$oldWidget=a.$oldWidget;break}o=o.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:a.row}}}),this.$updateRows()},s.prototype.getWidgetsAtRow=function(a){for(var o=this.session.lineWidgets,l=o&&o[a],c=[];l;)c.push(l),l=l.$oldWidget;return c},s.prototype.onWidgetChanged=function(a){this.session._changedWidgets.push(a),this.editor&&this.editor.renderer.updateFull()},s.prototype.measureWidgets=function(a,o){var l=this.session._changedWidgets,c=o.layerConfig;if(!(!l||!l.length)){for(var u=1/0,d=0;d0&&!c[u];)u--;this.firstRow=l.firstRow,this.lastRow=l.lastRow,o.$cursorLayer.config=l;for(var h=u;h<=d;h++){var m=c[h];if(!(!m||!m.el)){if(m.hidden){m.el.style.top=-100-(m.pixelHeight||0)+"px";continue}m._inDocument||(m._inDocument=!0,o.container.appendChild(m.el));var f=o.$cursorLayer.getPixelPosition({row:h,column:0},!0).top;m.coverLine||(f+=l.lineHeight*this.session.getRowLineCount(m.row)),m.el.style.top=f-l.offset+"px";var p=m.coverGutter?0:o.gutterWidth;m.fixedWidth||(p-=o.scrollLeft),m.el.style.left=p+"px",m.fullWidth&&m.screenWidth&&(m.el.style.minWidth=l.width+2*l.padding+"px"),m.fixedWidth?m.el.style.right=o.scrollBar.getWidth()+"px":m.el.style.right=""}}}},s}();t.LineWidgets=r});ace.define("ace/apply_delta",["require","exports","module"],function(n,t,e){"use strict";function i(a,o){throw console.log("Invalid Delta:",a),"Invalid Delta: "+o}function r(a,o){return o.row>=0&&o.row=0&&o.column<=a[o.row].length}function s(a,o){o.action!="insert"&&o.action!="remove"&&i(o,"delta.action must be 'insert' or 'remove'"),o.lines instanceof Array||i(o,"delta.lines must be an Array"),(!o.start||!o.end)&&i(o,"delta.start/end must be an present");var l=o.start;r(a,o.start)||i(o,"delta.start must be contained in document");var c=o.end;o.action=="remove"&&!r(a,c)&&i(o,"delta.end must contained in document for 'remove' actions");var u=c.row-l.row,d=c.column-(u==0?l.column:0);(u!=o.lines.length-1||o.lines[u].length!=d)&&i(o,"delta.range must match delta lines")}t.applyDelta=function(a,o,l){var c=o.start.row,u=o.start.column,d=a[c]||"";switch(o.action){case"insert":var h=o.lines;if(h.length===1)a[c]=d.substring(0,u)+o.lines[0]+d.substring(u);else{var m=[c,1].concat(o.lines);a.splice.apply(a,m),a[c]=d.substring(0,u)+a[c],a[c+o.lines.length-1]+=d.substring(u)}break;case"remove":var f=o.end.column,p=o.end.row;c===p?a[c]=d.substring(0,u)+d.substring(f):a.splice(c,p-c+1,d.substring(0,u)+a[p].substring(f));break}}});ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(n,t,e){"use strict";var i=n("./lib/oop"),r=n("./lib/event_emitter").EventEmitter,s=function(){function l(c,u,d){this.$onChange=this.onChange.bind(this),this.attach(c),typeof u!="number"?this.setPosition(u.row,u.column):this.setPosition(u,d)}return l.prototype.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},l.prototype.getDocument=function(){return this.document},l.prototype.onChange=function(c){if(!(c.start.row==c.end.row&&c.start.row!=this.row)&&!(c.start.row>this.row)){var u=o(c,{row:this.row,column:this.column},this.$insertRight);this.setPosition(u.row,u.column,!0)}},l.prototype.setPosition=function(c,u,d){var h;if(d?h={row:c,column:u}:h=this.$clipPositionToDocument(c,u),!(this.row==h.row&&this.column==h.column)){var m={row:this.row,column:this.column};this.row=h.row,this.column=h.column,this._signal("change",{old:m,value:h})}},l.prototype.detach=function(){this.document.off("change",this.$onChange)},l.prototype.attach=function(c){this.document=c||this.document,this.document.on("change",this.$onChange)},l.prototype.$clipPositionToDocument=function(c,u){var d={};return c>=this.document.getLength()?(d.row=Math.max(0,this.document.getLength()-1),d.column=this.document.getLine(d.row).length):c<0?(d.row=0,d.column=0):(d.row=c,d.column=Math.min(this.document.getLine(d.row).length,Math.max(0,u))),u<0&&(d.column=0),d},l}();s.prototype.$insertRight=!1,i.implement(s.prototype,r);function a(l,c,u){var d=u?l.column<=c.column:l.column=h&&(u=h-1,d=void 0);var m=this.getLine(u);return d==null&&(d=m.length),d=Math.min(Math.max(d,0),m.length),{row:u,column:d}},c.prototype.clonePos=function(u){return{row:u.row,column:u.column}},c.prototype.pos=function(u,d){return{row:u,column:d}},c.prototype.$clipPosition=function(u){var d=this.getLength();return u.row>=d?(u.row=Math.max(0,d-1),u.column=this.getLine(d-1).length):(u.row=Math.max(0,u.row),u.column=Math.min(Math.max(u.column,0),this.getLine(u.row).length)),u},c.prototype.insertFullLines=function(u,d){u=Math.min(Math.max(u,0),this.getLength());var h=0;u0,m=d=0&&this.applyDelta({start:this.pos(u,this.getLine(u).length),end:this.pos(u+1,0),action:"remove",lines:["",""]})},c.prototype.replace=function(u,d){if(u instanceof a||(u=a.fromPoints(u.start,u.end)),d.length===0&&u.isEmpty())return u.start;if(d==this.getTextRange(u))return u.end;this.remove(u);var h;return d?h=this.insert(u.start,d):h=u.start,h},c.prototype.applyDeltas=function(u){for(var d=0;d=0;d--)this.revertDelta(u[d])},c.prototype.applyDelta=function(u,d){var h=u.action=="insert";(h?u.lines.length<=1&&!u.lines[0]:!a.comparePoints(u.start,u.end))||(h&&u.lines.length>2e4?this.$splitAndapplyLargeDelta(u,2e4):(r(this.$lines,u,d),this._signal("change",u)))},c.prototype.$safeApplyDelta=function(u){var d=this.$lines.length;(u.action=="remove"&&u.start.row20){c.running=setTimeout(c.$worker,20);break}}c.currentLine=d,h==-1&&(h=d),f<=h&&c.fireUpdateEvent(f,h)}}}return a.prototype.setTokenizer=function(o){this.tokenizer=o,this.lines=[],this.states=[],this.start(0)},a.prototype.setDocument=function(o){this.doc=o,this.lines=[],this.states=[],this.stop()},a.prototype.fireUpdateEvent=function(o,l){var c={first:o,last:l};this._signal("update",{data:c})},a.prototype.start=function(o){this.currentLine=Math.min(o||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},a.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},a.prototype.$updateOnChange=function(o){var l=o.start.row,c=o.end.row-l;if(c===0)this.lines[l]=null;else if(o.action=="remove")this.lines.splice(l,c+1,null),this.states.splice(l,c+1,null);else{var u=Array(c+1);u.unshift(l,1),this.lines.splice.apply(this.lines,u),this.states.splice.apply(this.states,u)}this.currentLine=Math.min(l,this.currentLine,this.doc.getLength()),this.stop()},a.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},a.prototype.getTokens=function(o){return this.lines[o]||this.$tokenizeRow(o)},a.prototype.getState=function(o){return this.currentLine==o&&this.$tokenizeRow(o),this.states[o]||"start"},a.prototype.$tokenizeRow=function(o){var l=this.doc.getLine(o),c=this.states[o-1],u=this.tokenizer.getLineTokens(l,c,o);return this.states[o]+""!=u.state+""?(this.states[o]=u.state,this.lines[o+1]=null,this.currentLine>o+1&&(this.currentLine=o+1)):this.currentLine==o&&(this.currentLine=o+1),this.lines[o]=u.tokens},a.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},a}();i.implement(s.prototype,r),t.BackgroundTokenizer=s});ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],function(n,t,e){"use strict";var i=n("./lib/lang"),r=n("./range").Range,s=function(){function a(o,l,c){c===void 0&&(c="text"),this.setRegexp(o),this.clazz=l,this.type=c,this.docLen=0}return a.prototype.setRegexp=function(o){this.regExp+""!=o+""&&(this.regExp=o,this.cache=[])},a.prototype.update=function(o,l,c,u){if(this.regExp){for(var d=u.firstRow,h=u.lastRow,m={},f=c.$editor&&c.$editor.$search,p=f&&f.$isMultilineSearch(c.$editor.getLastSearchOptions()),g=d;g<=h;g++){var y=this.cache[g];if(y==null||c.getValue().length!=this.docLen){if(p){y=[];var w=f.$multiLineForward(c,this.regExp,g,h);if(w){var k=w.endRow<=h?w.endRow-1:h;k>g&&(g=k),y.push(new r(w.startRow,w.startCol,w.endRow,w.endCol))}y.length>this.MAX_RANGES&&(y=y.slice(0,this.MAX_RANGES))}else y=i.getMatchOffsets(c.getLine(g),this.regExp),y.length>this.MAX_RANGES&&(y=y.slice(0,this.MAX_RANGES)),y=y.map(function(T){return new r(g,T.offset,g,T.offset+T.length)});this.cache[g]=y.length?y:""}if(y.length!==0)for(var x=y.length;x--;){var C=y[x].toScreenRange(c),A=C.toString();m[A]||(m[A]=!0,l.drawSingleLineMarker(o,C,this.clazz,u))}}this.docLen=c.getValue().length}},a}();s.prototype.MAX_RANGES=500,t.SearchHighlight=s});ace.define("ace/undomanager",["require","exports","module","ace/range"],function(n,t,e){"use strict";var i=function(){function C(){this.$keepRedoStack,this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return C.prototype.addSession=function(A){this.$session=A},C.prototype.add=function(A,T,E){if(!this.$fromUndo&&A!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),T===!1||!this.lastDeltas){this.lastDeltas=[];var L=this.$undoStack.length;L>this.$undoDepth-1&&this.$undoStack.splice(0,L-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),A.id=this.$rev=++this.$maxRev}(A.action=="remove"||A.action=="insert")&&(this.$lastDelta=A),this.lastDeltas.push(A)}},C.prototype.addSelection=function(A,T){this.selections.push({value:A,rev:T||this.$rev})},C.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},C.prototype.markIgnored=function(A,T){T==null&&(T=this.$rev+1);for(var E=this.$undoStack,L=E.length;L--;){var S=E[L][0];if(S.id<=A)break;S.id0},C.prototype.canRedo=function(){return this.$redoStack.length>0},C.prototype.bookmark=function(A){A==null&&(A=this.$rev),this.mark=A},C.prototype.isAtBookmark=function(){return this.$rev===this.mark},C.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},C.prototype.fromJSON=function(A){this.reset(),this.$undoStack=A.$undoStack,this.$redoStack=A.$redoStack},C.prototype.$prettyPrint=function(A){return A?d(A):d(this.$undoStack)+` +--- +`+d(this.$redoStack)},C}();i.prototype.hasUndo=i.prototype.canUndo,i.prototype.hasRedo=i.prototype.canRedo,i.prototype.isClean=i.prototype.isAtBookmark,i.prototype.markClean=i.prototype.bookmark;function r(C,A){for(var T=A;T--;){var E=C[T];if(E&&!E[0].ignore){for(;T0){_.row+=L,_.column+=_.row==E.row?S:0;continue}!A&&M<=0&&(_.row=T.row,_.column=T.column,M===0&&(_.bias=1))}}}function c(C){return{row:C.row,column:C.column}}function u(C){return{start:c(C.start),end:c(C.end),action:C.action,lines:C.lines.slice()}}function d(C){if(C=C||this,Array.isArray(C))return C.map(d).join(` +`);var A="";return C.action?(A=C.action=="insert"?"+":"-",A+="["+C.lines+"]"):C.value&&(Array.isArray(C.value)?A=C.value.map(h).join(` +`):A=h(C.value)),C.start&&(A+=h(C)),(C.id||C.rev)&&(A+=" ("+(C.id||C.rev)+")"),A}function h(C){return C.start.row+":"+C.start.column+"=>"+C.end.row+":"+C.end.column}function m(C,A){var T=C.action=="insert",E=A.action=="insert";if(T&&E)if(a(A.start,C.end)>=0)g(A,C,-1);else if(a(A.start,C.start)<=0)g(C,A,1);else return null;else if(T&&!E)if(a(A.start,C.end)>=0)g(A,C,-1);else if(a(A.end,C.start)<=0)g(C,A,-1);else return null;else if(!T&&E)if(a(A.start,C.start)>=0)g(A,C,1);else if(a(A.start,C.start)<=0)g(C,A,1);else return null;else if(!T&&!E)if(a(A.start,C.start)>=0)g(A,C,1);else if(a(A.end,C.start)<=0)g(C,A,-1);else return null;return[A,C]}function f(C,A){for(var T=C.length;T--;)for(var E=0;E=0?g(C,A,-1):(a(C.start,A.start)<=0||g(C,s.fromPoints(A.start,C.start),-1),g(A,C,1));else if(!T&&E)a(A.start,C.end)>=0?g(A,C,-1):(a(A.start,C.start)<=0||g(A,s.fromPoints(C.start,A.start),-1),g(C,A,1));else if(!T&&!E)if(a(A.start,C.end)>=0)g(A,C,-1);else if(a(A.end,C.start)<=0)g(C,A,-1);else{var L,S;return a(C.start,A.start)<0&&(L=C,C=w(C,A.start)),a(C.end,A.end)>0&&(S=w(C,A.end)),y(A.end,C.start,C.end,-1),S&&!L&&(C.lines=S.lines,C.start=S.start,C.end=S.end,S=C),[A,L,S].filter(Boolean)}return[A,C]}function g(C,A,T){y(C.start,A.start,A.end,T),y(C.end,A.start,A.end,T)}function y(C,A,T,E){C.row==(E==1?A:T).row&&(C.column+=E*(T.column-A.column)),C.row+=E*(T.row-A.row)}function w(C,A){var T=C.lines,E=C.end;C.end=c(A);var L=C.end.row-C.start.row,S=T.splice(L,T.length),v=L?A.column:A.column-C.start.column;T.push(S[0].substring(0,v)),S[0]=S[0].substr(v);var _={start:c(A),end:E,lines:S,action:C.action};return _}function k(C,A){A=u(A);for(var T=C.length;T--;){for(var E=C[T],L=0;Lthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(a),this.folds.sort(function(o,l){return-o.range.compareEnd(l.start.row,l.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else if(a.end.row==this.start.row)this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");a.foldLine=this},s.prototype.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},s.prototype.walk=function(a,o,l){var c=0,u=this.folds,d,h,m,f=!0;o==null&&(o=this.end.row,l=this.end.column);for(var p=0;p0)){var f=r(o,h.start);return m===0?l&&f!==0?-d-2:d:f>0||f===0&&!l?d:-d-1}}return-d-1},a.prototype.add=function(o){var l=!o.isEmpty(),c=this.pointIndex(o.start,l);c<0&&(c=-c-1);var u=this.pointIndex(o.end,l,c);return u<0?u=-u-1:u++,this.ranges.splice(c,u-c,o)},a.prototype.addList=function(o){for(var l=[],c=o.length;c--;)l.push.apply(l,this.add(o[c]));return l},a.prototype.substractPoint=function(o){var l=this.pointIndex(o);if(l>=0)return this.ranges.splice(l,1)},a.prototype.merge=function(){var o=[],l=this.ranges;l=l.sort(function(m,f){return r(m.start,f.start)});for(var c=l[0],u,d=1;d=0},a.prototype.containsPoint=function(o){return this.pointIndex(o)>=0},a.prototype.rangeAtPoint=function(o){var l=this.pointIndex(o);if(l>=0)return this.ranges[l]},a.prototype.clipRows=function(o,l){var c=this.ranges;if(c[0].start.row>l||c[c.length-1].start.row=u)break}if(o.action=="insert")for(var g=d-u,y=-l.column+c.column;mu)break;if(p.start.row==u&&p.start.column>=l.column&&(p.start.column==l.column&&this.$bias<=0||(p.start.column+=y,p.start.row+=g)),p.end.row==u&&p.end.column>=l.column){if(p.end.column==l.column&&this.$bias<0)continue;p.end.column==l.column&&y>0&&mp.start.column&&p.end.column==h[m+1].start.column&&(p.end.column-=y),p.end.column+=y,p.end.row+=g}}else for(var g=u-d,y=l.column-c.column;md)break;p.end.rowl.column)&&(p.end.column=l.column,p.end.row=l.row):(p.end.column+=y,p.end.row+=g):p.end.row>d&&(p.end.row+=g),p.start.rowl.column)&&(p.start.column=l.column,p.start.row=l.row):(p.start.column+=y,p.start.row+=g):p.start.row>d&&(p.start.row+=g)}if(g!=0&&m=c)return m;if(m.end.row>c)return null}return null},this.getNextFoldLine=function(c,u){var d=this.$foldData,h=0;for(u&&(h=d.indexOf(u)),h==-1&&(h=0),h;h=c)return m}return null},this.getFoldedRowCount=function(c,u){for(var d=this.$foldData,h=u-c+1,m=0;m=u){g=c?h-=u-g:h=0);break}else p>=c&&(g>=c?h-=p-g:h-=p-c+1)}return h},this.$addFoldLine=function(c){return this.$foldData.push(c),this.$foldData.sort(function(u,d){return u.start.row-d.start.row}),c},this.addFold=function(c,u){var d=this.$foldData,h=!1,m;c instanceof s?m=c:(m=new s(u,c),m.collapseChildren=u.collapseChildren),this.$clipRangeToDocument(m.range);var f=m.start.row,p=m.start.column,g=m.end.row,y=m.end.column,w=this.getFoldAt(f,p,1),k=this.getFoldAt(g,y,-1);if(w&&k==w)return w.addSubFold(m);w&&!w.range.isStart(f,p)&&this.removeFold(w),k&&!k.range.isEnd(g,y)&&this.removeFold(k);var x=this.getFoldsInRange(m.range);x.length>0&&(this.removeFolds(x),m.collapseChildren||x.forEach(function(E){m.addSubFold(E)}));for(var C=0;C0&&this.foldAll(c.start.row+1,c.end.row,c.collapseChildren-1),c.subFolds=[]},this.expandFolds=function(c){c.forEach(function(u){this.expandFold(u)},this)},this.unfold=function(c,u){var d,h;if(c==null)d=new i(0,0,this.getLength(),0),u==null&&(u=!0);else if(typeof c=="number")d=new i(c,0,c,this.getLine(c).length);else if("row"in c)d=i.fromPoints(c,c);else{if(Array.isArray(c))return h=[],c.forEach(function(f){h=h.concat(this.unfold(f))},this),h;d=c}h=this.getFoldsInRangeList(d);for(var m=h;h.length==1&&i.comparePoints(h[0].start,d.start)<0&&i.comparePoints(h[0].end,d.end)>0;)this.expandFolds(h),h=this.getFoldsInRangeList(d);if(u!=!1?this.removeFolds(h):this.expandFolds(h),m.length)return m},this.isRowFolded=function(c,u){return!!this.getFoldLine(c,u)},this.getRowFoldEnd=function(c,u){var d=this.getFoldLine(c,u);return d?d.end.row:c},this.getRowFoldStart=function(c,u){var d=this.getFoldLine(c,u);return d?d.start.row:c},this.getFoldDisplayLine=function(c,u,d,h,m){h==null&&(h=c.start.row),m==null&&(m=0),u==null&&(u=c.end.row),d==null&&(d=this.getLine(u).length);var f=this.doc,p="";return c.walk(function(g,y,w,k){if(!(yw)break;while(m&&p.test(m.type));m=h.stepBackward()}else m=h.getCurrentToken();return g.end.row=h.getCurrentTokenRow(),g.end.column=h.getCurrentTokenColumn(),g.start.row==g.end.row&&g.start.column>g.end.column?void 0:g}},this.foldAll=function(c,u,d,h){d==null&&(d=1e5);var m=this.foldWidgets;if(m){u=u||this.getLength(),c=c||0;for(var f=c;f=c&&(f=p.end.row,p.collapseChildren=d,this.addFold("...",p))}}},this.foldToLevel=function(c){for(this.foldAll();c-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var c=this;this.foldAll(null,null,null,function(u){for(var d=c.getTokens(u),h=0;h=0;){var f=d[h];if(f==null&&(f=d[h]=this.getFoldWidget(h)),f=="start"){var p=this.getFoldWidgetRange(h);if(m||(m=p),p&&p.end.row>=c)break}h--}return{range:h!==-1&&p,firstRange:m}},this.onFoldWidgetClick=function(c,u){u instanceof o&&(u=u.domEvent);var d={children:u.shiftKey,all:u.ctrlKey||u.metaKey,siblings:u.altKey},h=this.$toggleFoldWidget(c,d);if(!h){var m=u.target||u.srcElement;m&&/ace_fold-widget/.test(m.className)&&(m.className+=" ace_invalid")}},this.$toggleFoldWidget=function(c,u){if(this.getFoldWidget){var d=this.getFoldWidget(c),h=this.getLine(c),m=d==="end"?-1:1,f=this.getFoldAt(c,m===-1?0:h.length,m);if(f)return u.children||u.all?this.removeFold(f):this.expandFold(f),f;var p=this.getFoldWidgetRange(c,!0);if(p&&!p.isMultiLine()&&(f=this.getFoldAt(p.start.row,p.start.column,1),f&&p.isEqual(f.range)))return this.removeFold(f),f;if(u.siblings){var g=this.getParentFoldRangeData(c);if(g.range)var y=g.range.start.row+1,w=g.range.end.row;this.foldAll(y,w,u.all?1e4:0)}else u.children?(w=p?p.end.row:this.getLength(),this.foldAll(c+1,w,u.all?1e4:0)):p&&(u.all&&(p.collapseChildren=1e4),this.addFold("...",p));return p}},this.toggleFoldWidget=function(c){var u=this.selection.getCursor().row;u=this.getRowFoldStart(u);var d=this.$toggleFoldWidget(u,{});if(!d){var h=this.getParentFoldRangeData(u,!0);if(d=h.range||h.firstRange,d){u=d.start.row;var m=this.getFoldAt(u,this.getLine(u).length,1);m?this.removeFold(m):this.addFold("...",d)}}},this.updateFoldWidgets=function(c){var u=c.start.row,d=c.end.row-u;if(d===0)this.foldWidgets[u]=null;else if(c.action=="remove")this.foldWidgets.splice(u,d+1,null);else{var h=Array(d+1);h.unshift(u,1),this.foldWidgets.splice.apply(this.foldWidgets,h)}},this.tokenizerUpdateFoldWidgets=function(c){var u=c.data;u.first!=u.last&&this.foldWidgets.length>u.first&&this.foldWidgets.splice(u.first,this.foldWidgets.length)}}t.Folding=l});ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(n,t,e){"use strict";var i=n("../token_iterator").TokenIterator,r=n("../range").Range;function s(){this.findMatchingBracket=function(a,o){if(a.column==0)return null;var l=o||this.getLine(a.row).charAt(a.column-1);if(l=="")return null;var c=l.match(/([\(\[\{])|([\)\]\}])/);return c?c[1]?this.$findClosingBracket(c[1],a):this.$findOpeningBracket(c[2],a):null},this.getBracketRange=function(a){var o=this.getLine(a.row),l=!0,c,u=o.charAt(a.column-1),d=u&&u.match(/([\(\[\{])|([\)\]\}])/);if(d||(u=o.charAt(a.column),a={row:a.row,column:a.column+1},d=u&&u.match(/([\(\[\{])|([\)\]\}])/),l=!1),!d)return null;if(d[1]){var h=this.$findClosingBracket(d[1],a);if(!h)return null;c=r.fromPoints(a,h),l||(c.end.column++,c.start.column--),c.cursor=c.end}else{var h=this.$findOpeningBracket(d[2],a);if(!h)return null;c=r.fromPoints(h,a),l||(c.start.column++,c.end.column--),c.cursor=c.start}return c},this.getMatchingBracketRanges=function(a,o){var l=this.getLine(a.row),c=/([\(\[\{])|([\)\]\}])/,u=!o&&l.charAt(a.column-1),d=u&&u.match(c);if(d||(u=(o===void 0||o)&&l.charAt(a.column),a={row:a.row,column:a.column+1},d=u&&u.match(c)),!d)return null;var h=new r(a.row,a.column-1,a.row,a.column),m=d[1]?this.$findClosingBracket(d[1],a):this.$findOpeningBracket(d[2],a);if(!m)return[h];var f=new r(m.row,m.column,m.row,m.column+1);return[h,f]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(a,o,l){var c=this.$brackets[a],u=1,d=new i(this,o.row,o.column),h=d.getCurrentToken();if(h||(h=d.stepForward()),!!h){l||(l=new RegExp("(\\.?"+h.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var m=o.column-d.getCurrentTokenColumn()-2,f=h.value;;){for(;m>=0;){var p=f.charAt(m);if(p==c){if(u-=1,u==0)return{row:d.getCurrentTokenRow(),column:m+d.getCurrentTokenColumn()}}else p==a&&(u+=1);m-=1}do h=d.stepBackward();while(h&&!l.test(h.type));if(h==null)break;f=h.value,m=f.length-1}return null}},this.$findClosingBracket=function(a,o,l){var c=this.$brackets[a],u=1,d=new i(this,o.row,o.column),h=d.getCurrentToken();if(h||(h=d.stepForward()),!!h){l||(l=new RegExp("(\\.?"+h.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var m=o.column-d.getCurrentTokenColumn();;){for(var f=h.value,p=f.length;m"?c=!0:o.type.indexOf("tag-name")!==-1&&(l=!0));while(o&&!l);return o},this.$findClosingTag=function(a,o){var l,c=o.value,u=o.value,d=0,h=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);o=a.stepForward();var m=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+o.value.length),f=!1;do{if(l=o,l.type.indexOf("tag-close")!==-1&&!f){var p=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);f=!0}if(o=a.stepForward(),o){if(o.value===">"&&!f){var p=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);f=!0}if(o.type.indexOf("tag-name")!==-1){if(c=o.value,u===c){if(l.value==="<")d++;else if(l.value==="")var w=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);else return}}}else if(u===c&&o.value==="/>"&&(d--,d<0))var g=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+2),y=g,w=y,p=new r(m.end.row,m.end.column,m.end.row,m.end.column+1)}}while(o&&d>=0);if(h&&p&&g&&w&&m&&y)return{openTag:new r(h.start.row,h.start.column,p.end.row,p.end.column),closeTag:new r(g.start.row,g.start.column,w.end.row,w.end.column),openTagName:m,closeTagName:y}},this.$findOpeningTag=function(a,o){var l=a.getCurrentToken(),c=o.value,u=0,d=a.getCurrentTokenRow(),h=a.getCurrentTokenColumn(),m=h+2,f=new r(d,h,d,m);a.stepForward();var p=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+o.value.length);if(o.type.indexOf("tag-close")===-1&&(o=a.stepForward()),!(!o||o.value!==">")){var g=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);a.stepBackward(),a.stepBackward();do if(o=l,d=a.getCurrentTokenRow(),h=a.getCurrentTokenColumn(),m=h+o.value.length,l=a.stepBackward(),o){if(o.type.indexOf("tag-name")!==-1){if(c===o.value)if(l.value==="<"){if(u++,u>0){var y=new r(d,h,d,m),w=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);do o=a.stepForward();while(o&&o.value!==">");var k=new r(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1)}}else l.value===""){for(var x=0,C=l;C;){if(C.type.indexOf("tag-name")!==-1&&C.value===c){u--;break}else if(C.value==="<")break;C=a.stepBackward(),x++}for(var A=0;Ab&&(this.$docRowCache.splice(b,_),this.$screenRowCache.splice(b,_))},S.prototype.$getRowCacheIndex=function(v,_){for(var b=0,M=v.length-1;b<=M;){var I=b+M>>1,D=v[I];if(_>D)b=I+1;else if(_=_));D++);return M=b[D],M?(M.index=D,M.start=I-M.value.length,M):null},S.prototype.setUndoManager=function(v){if(this.$undoManager=v,this.$informUndoManager&&this.$informUndoManager.cancel(),v){var _=this;v.addSession(this),this.$syncInformUndoManager=function(){_.$informUndoManager.cancel(),_.mergeUndoDeltas=!1},this.$informUndoManager=r.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},S.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},S.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},S.prototype.getTabString=function(){return this.getUseSoftTabs()?r.stringRepeat(" ",this.getTabSize()):" "},S.prototype.setUseSoftTabs=function(v){this.setOption("useSoftTabs",v)},S.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},S.prototype.setTabSize=function(v){this.setOption("tabSize",v)},S.prototype.getTabSize=function(){return this.$tabSize},S.prototype.isTabStop=function(v){return this.$useSoftTabs&&v.column%this.$tabSize===0},S.prototype.setNavigateWithinSoftTabs=function(v){this.setOption("navigateWithinSoftTabs",v)},S.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},S.prototype.setOverwrite=function(v){this.setOption("overwrite",v)},S.prototype.getOverwrite=function(){return this.$overwrite},S.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},S.prototype.addGutterDecoration=function(v,_){this.$decorations[v]||(this.$decorations[v]=""),this.$decorations[v]+=" "+_,this._signal("changeBreakpoint",{})},S.prototype.removeGutterCustomWidget=function(v){this.$editor&&this.$editor.renderer.$gutterLayer.$removeCustomWidget(v)},S.prototype.addGutterCustomWidget=function(v,_){this.$editor&&this.$editor.renderer.$gutterLayer.$addCustomWidget(v,_)},S.prototype.removeGutterDecoration=function(v,_){this.$decorations[v]=(this.$decorations[v]||"").replace(" "+_,""),this._signal("changeBreakpoint",{})},S.prototype.getBreakpoints=function(){return this.$breakpoints},S.prototype.setBreakpoints=function(v){this.$breakpoints=[];for(var _=0;_0&&(M=!!b.charAt(_-1).match(this.tokenRe)),M||(M=!!b.charAt(_).match(this.tokenRe)),M)var I=this.tokenRe;else if(/^\s+$/.test(b.slice(_-1,_+1)))var I=/\s/;else var I=this.nonTokenRe;var D=_;if(D>0){do D--;while(D>=0&&b.charAt(D).match(I));D++}for(var O=_;Ov&&(v=_.screenWidth)}),this.lineWidgetWidth=v},S.prototype.$computeWidth=function(v){if(this.$modified||v){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var _=this.doc.getAllLines(),b=this.$rowLengthCache,M=0,I=0,D=this.$foldData[I],O=D?D.start.row:1/0,N=_.length,F=0;FO){if(F=D.end.row+1,F>=N)break;D=this.$foldData[I++],O=D?D.start.row:1/0}b[F]==null&&(b[F]=this.$getStringScreenWidth(_[F])[0]),b[F]>M&&(M=b[F])}this.screenWidth=M}},S.prototype.getLine=function(v){return this.doc.getLine(v)},S.prototype.getLines=function(v,_){return this.doc.getLines(v,_)},S.prototype.getLength=function(){return this.doc.getLength()},S.prototype.getTextRange=function(v){return this.doc.getTextRange(v||this.selection.getRange())},S.prototype.insert=function(v,_){return this.doc.insert(v,_)},S.prototype.remove=function(v){return this.doc.remove(v)},S.prototype.removeFullLines=function(v,_){return this.doc.removeFullLines(v,_)},S.prototype.undoChanges=function(v,_){if(v.length){this.$fromUndo=!0;for(var b=v.length-1;b!=-1;b--){var M=v[b];M.action=="insert"||M.action=="remove"?this.doc.revertDelta(M):M.folds&&this.addFolds(M.folds)}!_&&this.$undoSelect&&(v.selectionBefore?this.selection.fromJSON(v.selectionBefore):this.selection.setRange(this.$getUndoSelection(v,!0))),this.$fromUndo=!1}},S.prototype.redoChanges=function(v,_){if(v.length){this.$fromUndo=!0;for(var b=0;bv.end.column&&(D.start.column+=N),D.end.row==v.end.row&&D.end.column>v.end.column&&(D.end.column+=N)),O&&D.start.row>=v.end.row&&(D.start.row+=O,D.end.row+=O)}if(D.end=this.insert(D.start,M),I.length){var F=v.start,z=D.start,O=z.row-F.row,N=z.column-F.column;this.addFolds(I.map(function(W){return W=W.clone(),W.start.row==F.row&&(W.start.column+=N),W.end.row==F.row&&(W.end.column+=N),W.start.row+=O,W.end.row+=O,W}))}return D},S.prototype.indentRows=function(v,_,b){b=b.replace(/\t/g,this.getTabString());for(var M=v;M<=_;M++)this.doc.insertInLine({row:M,column:0},b)},S.prototype.outdentRows=function(v){for(var _=v.collapseRows(),b=new u(0,0,0,0),M=this.getTabSize(),I=_.start.row;I<=_.end.row;++I){var D=this.getLine(I);b.start.row=I,b.end.row=I;for(var O=0;O0){var M=this.getRowFoldEnd(_+b);if(M>this.doc.getLength()-1)return 0;var I=M-_}else{v=this.$clipRowToDocument(v),_=this.$clipRowToDocument(_);var I=_-v+1}var D=new u(v,0,_,Number.MAX_VALUE),O=this.getFoldsInRange(D).map(function(F){return F=F.clone(),F.start.row+=I,F.end.row+=I,F}),N=b==0?this.doc.getLines(v,_):this.doc.removeFullLines(v,_);return this.doc.insertFullLines(v+I,N),O.length&&this.addFolds(O),I},S.prototype.moveLinesUp=function(v,_){return this.$moveLines(v,_,-1)},S.prototype.moveLinesDown=function(v,_){return this.$moveLines(v,_,1)},S.prototype.duplicateLines=function(v,_){return this.$moveLines(v,_,0)},S.prototype.$clipRowToDocument=function(v){return Math.max(0,Math.min(v,this.doc.getLength()-1))},S.prototype.$clipColumnToRow=function(v,_){return _<0?0:Math.min(this.doc.getLine(v).length,_)},S.prototype.$clipPositionToDocument=function(v,_){if(_=Math.max(0,_),v<0)v=0,_=0;else{var b=this.doc.getLength();v>=b?(v=b-1,_=this.doc.getLine(b-1).length):_=Math.min(this.doc.getLine(v).length,_)}return{row:v,column:_}},S.prototype.$clipRangeToDocument=function(v){v.start.row<0?(v.start.row=0,v.start.column=0):v.start.column=this.$clipColumnToRow(v.start.row,v.start.column);var _=this.doc.getLength()-1;return v.end.row>_?(v.end.row=_,v.end.column=this.doc.getLine(_).length):v.end.column=this.$clipColumnToRow(v.end.row,v.end.column),v},S.prototype.setUseWrapMode=function(v){if(v!=this.$useWrapMode){if(this.$useWrapMode=v,this.$modified=!0,this.$resetRowCache(0),v){var _=this.getLength();this.$wrapData=Array(_),this.$updateWrapData(0,_-1)}this._signal("changeWrapMode")}},S.prototype.getUseWrapMode=function(){return this.$useWrapMode},S.prototype.setWrapLimitRange=function(v,_){(this.$wrapLimitRange.min!==v||this.$wrapLimitRange.max!==_)&&(this.$wrapLimitRange={min:v,max:_},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},S.prototype.adjustWrapLimit=function(v,_){var b=this.$wrapLimitRange;b.max<0&&(b={min:_,max:_});var M=this.$constrainWrapLimit(v,b.min,b.max);return M!=this.$wrapLimit&&M>1?(this.$wrapLimit=M,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},S.prototype.$constrainWrapLimit=function(v,_,b){return _&&(v=Math.max(_,v)),b&&(v=Math.min(b,v)),v},S.prototype.getWrapLimit=function(){return this.$wrapLimit},S.prototype.setWrapLimit=function(v){this.setWrapLimitRange(v,v)},S.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},S.prototype.$updateInternalDataOnChange=function(v){var _=this.$useWrapMode,b=v.action,M=v.start,I=v.end,D=M.row,O=I.row,N=O-D,F=null;if(this.$updating=!0,N!=0)if(b==="remove"){this[_?"$wrapData":"$rowLengthCache"].splice(D,N);var z=this.$foldData;F=this.getFoldsInRange(v),this.removeFolds(F);var V=this.getFoldLine(I.row),K=0;if(V){V.addRemoveChars(I.row,I.column,M.column-I.column),V.shiftRow(-N);var W=this.getFoldLine(D);W&&W!==V&&(W.merge(V),V=W),K=z.indexOf(V)+1}for(K;K=I.row&&V.shiftRow(-N)}O=D}else{var q=Array(N);q.unshift(D,0);var ae=_?this.$wrapData:this.$rowLengthCache;ae.splice.apply(ae,q);var z=this.$foldData,V=this.getFoldLine(D),K=0;if(V){var pe=V.range.compareInside(M.row,M.column);pe==0?(V=V.split(M.row,M.column),V&&(V.shiftRow(N),V.addRemoveChars(O,0,I.column-M.column))):pe==-1&&(V.addRemoveChars(D,0,I.column-M.column),V.shiftRow(N)),K=z.indexOf(V)+1}for(K;K=D&&V.shiftRow(N)}}else{N=Math.abs(v.start.column-v.end.column),b==="remove"&&(F=this.getFoldsInRange(v),this.removeFolds(F),N=-N);var V=this.getFoldLine(D);V&&V.addRemoveChars(D,M.column,N)}return _&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,_?this.$updateWrapData(D,O):this.$updateRowLengthCache(D,O),F},S.prototype.$updateRowLengthCache=function(v,_){this.$rowLengthCache[v]=null,this.$rowLengthCache[_]=null},S.prototype.$updateWrapData=function(v,_){var b=this.doc.getAllLines(),M=this.getTabSize(),I=this.$wrapData,D=this.$wrapLimit,O,N,F=v;for(_=Math.min(_,b.length-1);F<=_;)N=this.getFoldLine(F,N),N?(O=[],N.walk(function(z,V,K,W){var q;if(z!=null){q=this.$getDisplayTokens(z,O.length),q[0]=k;for(var ae=1;ae_-W;){var q=D+_-W;if(v[q-1]>=A&&v[q]>=A){K(q);continue}if(v[q]==k||v[q]==x){for(q;q!=D-1&&v[q]!=k;q--);if(q>D){K(q);continue}for(q=D+_,q;q>2)),D-1);q>ae&&v[q]ae&&v[q]ae&&v[q]==C;)q--}else for(;q>ae&&v[q]ae){K(++q);continue}q=D+_,v[q]==w&&q--,K(q-W)}return M},S.prototype.$getDisplayTokens=function(v,_){var b=[],M;_=_||0;for(var I=0;I39&&D<48||D>57&&D<64?b.push(C):D>=4352&&L(D)?b.push(y,w):b.push(y)}return b},S.prototype.$getStringScreenWidth=function(v,_,b){if(_==0)return[0,0];_==null&&(_=1/0),b=b||0;var M,I;for(I=0;I=4352&&L(M)?b+=2:b+=1,!(b>_));I++);return[b,I]},S.prototype.getRowLength=function(v){var _=1;return this.lineWidgets&&(_+=this.lineWidgets[v]&&this.lineWidgets[v].rowCount||0),!this.$useWrapMode||!this.$wrapData[v]?_:this.$wrapData[v].length+_},S.prototype.getRowLineCount=function(v){return!this.$useWrapMode||!this.$wrapData[v]?1:this.$wrapData[v].length+1},S.prototype.getRowWrapIndent=function(v){if(this.$useWrapMode){var _=this.screenToDocumentPosition(v,Number.MAX_VALUE),b=this.$wrapData[_.row];return b.length&&b[0]<_.column?b.indent:0}else return 0},S.prototype.getScreenLastRowColumn=function(v){var _=this.screenToDocumentPosition(v,Number.MAX_VALUE);return this.documentToScreenColumn(_.row,_.column)},S.prototype.getDocumentLastRowColumn=function(v,_){var b=this.documentToScreenRow(v,_);return this.getScreenLastRowColumn(b)},S.prototype.getDocumentLastRowColumnPosition=function(v,_){var b=this.documentToScreenRow(v,_);return this.screenToDocumentPosition(b,Number.MAX_VALUE/10)},S.prototype.getRowSplitData=function(v){if(this.$useWrapMode)return this.$wrapData[v]},S.prototype.getScreenTabSize=function(v){return this.$tabSize-(v%this.$tabSize|0)},S.prototype.screenToDocumentRow=function(v,_){return this.screenToDocumentPosition(v,_).row},S.prototype.screenToDocumentColumn=function(v,_){return this.screenToDocumentPosition(v,_).column},S.prototype.screenToDocumentPosition=function(v,_,b){if(v<0)return{row:0,column:0};var M,I=0,D=0,O,N=0,F=0,z=this.$screenRowCache,V=this.$getRowCacheIndex(z,v),K=z.length;if(K&&V>=0)var N=z[V],I=this.$docRowCache[V],W=v>z[K-1];else var W=!K;for(var q=this.getLength()-1,ae=this.getNextFoldLine(I),pe=ae?ae.start.row:1/0;N<=v&&(F=this.getRowLength(I),!(N+F>v||I>=q));)N+=F,I++,I>pe&&(I=ae.end.row+1,ae=this.getNextFoldLine(I,ae),pe=ae?ae.start.row:1/0),W&&(this.$docRowCache.push(I),this.$screenRowCache.push(N));if(ae&&ae.start.row<=I)M=this.getFoldDisplayLine(ae),I=ae.start.row;else{if(N+F<=v||I>q)return{row:q,column:this.getLine(q).length};M=this.getLine(I),ae=null}var ie=0,ne=Math.floor(v-N);if(this.$useWrapMode){var Ee=this.$wrapData[I];Ee&&(O=Ee[ne],ne>0&&Ee.length&&(ie=Ee.indent,D=Ee[ne-1]||Ee[Ee.length-1],M=M.substring(D)))}return b!==void 0&&this.$bidiHandler.isBidiRow(N+ne,I,ne)&&(_=this.$bidiHandler.offsetToCol(b)),D+=this.$getStringScreenWidth(M,_-ie)[1],this.$useWrapMode&&D>=O&&(D=O-1),ae?ae.idxToPosition(D):{row:I,column:D}},S.prototype.documentToScreenPosition=function(v,_){if(typeof _>"u")var b=this.$clipPositionToDocument(v.row,v.column);else b=this.$clipPositionToDocument(v,_);v=b.row,_=b.column;var M=0,I=null,D=null;D=this.getFoldAt(v,_,1),D&&(v=D.start.row,_=D.start.column);var O,N=0,F=this.$docRowCache,z=this.$getRowCacheIndex(F,v),V=F.length;if(V&&z>=0)var N=F[z],M=this.$screenRowCache[z],K=v>F[V-1];else var K=!V;for(var W=this.getNextFoldLine(N),q=W?W.start.row:1/0;N=q){if(O=W.end.row+1,O>v)break;W=this.getNextFoldLine(O,W),q=W?W.start.row:1/0}else O=N+1;M+=this.getRowLength(N),N=O,K&&(this.$docRowCache.push(N),this.$screenRowCache.push(M))}var ae="";W&&N>=q?(ae=this.getFoldDisplayLine(W,v,_),I=W.start.row):(ae=this.getLine(v).substring(0,_),I=v);var pe=0;if(this.$useWrapMode){var ie=this.$wrapData[I];if(ie){for(var ne=0;ae.length>=ie[ne];)M++,ne++;ae=ae.substring(ie[ne-1]||0,ae.length),pe=ne>0?ie.indent:0}}return this.lineWidgets&&this.lineWidgets[N]&&this.lineWidgets[N].rowsAbove&&(M+=this.lineWidgets[N].rowsAbove),{row:M,column:pe+this.$getStringScreenWidth(ae)[0]}},S.prototype.documentToScreenColumn=function(v,_){return this.documentToScreenPosition(v,_).column},S.prototype.documentToScreenRow=function(v,_){return this.documentToScreenPosition(v,_).row},S.prototype.getScreenLength=function(){var v=0,_=null;if(this.$useWrapMode)for(var I=this.$wrapData.length,D=0,M=0,_=this.$foldData[M++],O=_?_.start.row:1/0;DO&&(D=_.end.row+1,_=this.$foldData[M++],O=_?_.start.row:1/0)}else{v=this.getLength();for(var b=this.$foldData,M=0;Mb));D++);return[M,D]})},S.prototype.getPrecedingCharacter=function(){var v=this.selection.getCursor();if(v.column===0)return v.row===0?"":this.doc.getNewLineCharacter();var _=this.getLine(v.row);return _[v.column-1]},S.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.endOperation(),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection&&(this.selection.off("changeCursor",this.$onSelectionChange),this.selection.off("changeSelection",this.$onSelectionChange)),this.selection.detach()},S}();g.$uid=0,g.prototype.$modes=a.$modes,g.prototype.getValue=g.prototype.toString,g.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},g.prototype.$overwrite=!1,g.prototype.$mode=null,g.prototype.$modeId=null,g.prototype.$scrollTop=0,g.prototype.$scrollLeft=0,g.prototype.$wrapLimit=80,g.prototype.$useWrapMode=!1,g.prototype.$wrapLimitRange={min:null,max:null},g.prototype.lineWidgets=null,g.prototype.isFullWidth=L,i.implement(g.prototype,o);var y=1,w=2,k=3,x=4,C=9,A=10,T=11,E=12;function L(S){return S<4352?!1:S>=4352&&S<=4447||S>=4515&&S<=4519||S>=4602&&S<=4607||S>=9001&&S<=9002||S>=11904&&S<=11929||S>=11931&&S<=12019||S>=12032&&S<=12245||S>=12272&&S<=12283||S>=12288&&S<=12350||S>=12353&&S<=12438||S>=12441&&S<=12543||S>=12549&&S<=12589||S>=12593&&S<=12686||S>=12688&&S<=12730||S>=12736&&S<=12771||S>=12784&&S<=12830||S>=12832&&S<=12871||S>=12880&&S<=13054||S>=13056&&S<=19903||S>=19968&&S<=42124||S>=42128&&S<=42182||S>=43360&&S<=43388||S>=44032&&S<=55203||S>=55216&&S<=55238||S>=55243&&S<=55291||S>=63744&&S<=64255||S>=65040&&S<=65049||S>=65072&&S<=65106||S>=65108&&S<=65126||S>=65128&&S<=65131||S>=65281&&S<=65376||S>=65504&&S<=65510}n("./edit_session/folding").Folding.call(g.prototype),n("./edit_session/bracket_match").BracketMatch.call(g.prototype),a.defineOptions(g.prototype,"session",{wrap:{set:function(S){if(!S||S=="off"?S=!1:S=="free"?S=!0:S=="printMargin"?S=-1:typeof S=="string"&&(S=parseInt(S,10)||!1),this.$wrap!=S)if(this.$wrap=S,!S)this.setUseWrapMode(!1);else{var v=typeof S=="number"?S:null;this.setWrapLimitRange(v,v),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(S){S=S=="auto"?this.$mode.type!="text":S!="text",S!=this.$wrapAsCode&&(this.$wrapAsCode=S,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(S){this.$useWorker=S,this.$stopWorker(),S&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(S){S=parseInt(S),S>0&&this.$tabSize!==S&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=S,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(S){this.setFoldStyle(S)},handlesSet:!0},overwrite:{set:function(S){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(S){this.doc.setNewLineMode(S)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(S){this.setMode(S)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=g});ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(n,t,e){"use strict";var i=n("./lib/lang"),r=n("./lib/oop"),s=n("./range").Range,a=function(){function u(){this.$options={}}return u.prototype.set=function(d){return r.mixin(this.$options,d),this},u.prototype.getOptions=function(){return i.copyObject(this.$options)},u.prototype.setOptions=function(d){this.$options=d},u.prototype.find=function(d){var h=this.$options,m=this.$matchIterator(d,h);if(!m)return!1;var f=null;return m.forEach(function(p,g,y,w){return f=new s(p,g,y,w),g==w&&h.start&&h.start.start&&h.skipCurrent!=!1&&f.isEqual(h.start)?(f=null,!1):!0}),f},u.prototype.findAll=function(d){var h=this.$options;if(!h.needle)return[];this.$assembleRegExp(h);var m=h.range,f=m?d.getLines(m.start.row,m.end.row):d.doc.getAllLines(),p=[],g=h.re;if(h.$isMultiLine){var y=g.length,w=f.length-y,k;e:for(var x=g.offset||0;x<=w;x++){for(var C=0;CE||(p.push(k=new s(x,E,x+y-1,L)),y>2&&(x=x+y-2))}}else for(var S,v=0;vv&&(v=b),p.push(new s(S.startRow,S.startCol,S.endRow,S.endCol))}}else{S=i.getMatchOffsets(f[v],g);for(var C=0;CD&&p[C].end.row==O;)C--;for(p=p.slice(v,C+1),v=0,C=p.length;v=p){m+="\\";break}var y=d.charCodeAt(f);switch(y){case h.Backslash:m+="\\";break;case h.n:m+=` +`;break;case h.t:m+=" ";break}continue}if(g===h.DollarSign){if(f++,f>=p){m+="$";break}var w=d.charCodeAt(f);if(w===h.DollarSign){m+="$$";continue}if(w===h.Digit0||w===h.Ampersand){m+="$&";continue}if(h.Digit1<=w&&w<=h.Digit9){m+="$"+d[f];continue}}m+=d[f]}return m||d},u.prototype.replace=function(d,h){var m=this.$options,f=this.$assembleRegExp(m);if(m.$isMultiLine)return h;if(f){var p=this.$isMultilineSearch(m);p&&(d=d.replace(/\r\n|\r|\n/g,` +`));var g=f.exec(d);if(!g||!p&&g[0].length!=d.length)return null;if(h=m.regExp?this.parseReplaceString(h):h.replace(/\$/g,"$$$$"),h=d.replace(f,h),m.preserveCase){h=h.split("");for(var y=Math.min(d.length,d.length);y--;){var w=d[y];w&&w.toLowerCase()!=w?h[y]=h[y].toUpperCase():h[y]=h[y].toLowerCase()}h=h.join("")}return h}},u.prototype.$assembleRegExp=function(d,h){if(d.needle instanceof RegExp)return d.re=d.needle;var m=d.needle;if(!d.needle)return d.re=!1;d.regExp||(m=i.escapeRegExp(m));var f=d.caseSensitive?"gm":"gmi";try{new RegExp(m,"u"),d.$supportsUnicodeFlag=!0,f+="u"}catch{d.$supportsUnicodeFlag=!1}if(d.wholeWord&&(m=o(m,d)),d.$isMultiLine=!h&&/[\n\r]/.test(m),d.$isMultiLine)return d.re=this.$assembleMultilineRegExp(m,f);try{var p=new RegExp(m,f)}catch{p=!1}return d.re=p},u.prototype.$assembleMultilineRegExp=function(d,h){for(var m=d.replace(/\r\n|\r|\n/g,`$ +^`).split(` +`),f=[],p=0;pf);w++){var k=d.getLine(y++);p=p==null?k:p+` +`+k}var x=h.exec(p);if(h.lastIndex=0,x){var C=p.slice(0,x.index).split(` +`),A=x[0].split(` +`),T=m+C.length-1,E=C[C.length-1].length,L=T+A.length-1,S=A.length==1?E+A[0].length:A[A.length-1].length;return{startRow:T,startCol:E,endRow:L,endCol:S}}}return null},u.prototype.$multiLineBackward=function(d,h,m,f,p){for(var g,y=c(d,f),w=d.getLine(f).length-m,k=f;k>=p;){for(var x=0;x=p;x++){var C=d.getLine(k--);g=g==null?C:C+` +`+g}var A=l(g,h,w);if(A){var T=g.slice(0,A.index).split(` +`),E=A[0].split(` +`),L=k+T.length,S=T[T.length-1].length,v=L+E.length-1,_=E.length==1?S+E[0].length:E[E.length-1].length;return{startRow:L,startCol:S,endRow:v,endCol:_}}}return null},u.prototype.$matchIterator=function(d,h){var m=this.$assembleRegExp(h);if(!m)return!1;var f=this.$isMultilineSearch(h),p=this.$multiLineForward,g=this.$multiLineBackward,y=h.backwards==!0,w=h.skipCurrent!=!1,k=m.unicode,x=h.range,C=h.start;C||(C=x?x[y?"end":"start"]:d.selection.getRange()),C.start&&(C=C[w!=y?"end":"start"]);var A=x?x.start.row:0,T=x?x.end.row:d.getLength()-1;if(y)var E=function(v){var _=C.row;if(!S(_,C.column,v)){for(_--;_>=A;_--)if(S(_,Number.MAX_VALUE,v))return;if(h.wrap!=!1){for(_=T,A=C.row;_>=A;_--)if(S(_,Number.MAX_VALUE,v))return}}};else var E=function(_){var b=C.row;if(!S(b,C.column,_)){for(b=b+1;b<=T;b++)if(S(b,0,_))return;if(h.wrap!=!1){for(b=A,T=C.row;b<=T;b++)if(S(b,0,_))return}}};if(h.$isMultiLine)var L=m.length,S=function(v,_,b){var M=y?v-L+1:v;if(!(M<0||M+L>d.getLength())){var I=d.getLine(M),D=I.search(m[0]);if(!(!y&&D<_||D===-1)){for(var O=1;O_)&&b(M,D,M+L-1,N))return!0}}};else if(y)var S=function(_,b,M){if(f){var I=g(d,m,b,_,A);if(!I)return!1;if(M(I.startRow,I.startCol,I.endRow,I.endCol))return!0}else{var D=d.getLine(_),O=[],N,F=0;for(m.lastIndex=0;N=m.exec(D);){var z=N[0].length;if(F=N.index,!z){if(F>=D.length)break;m.lastIndex=F+=i.skipEmptyMatch(D,F,k)}if(N.index+z>b)break;O.push(N.index,z)}for(var V=O.length-1;V>=0;V-=2){var K=O[V-1],z=O[V];if(M(_,K,_,K+z))return!0}}};else var S=function(_,b,M){if(m.lastIndex=b,f){var I=p(d,m,_,T);if(I){var D=I.endRow<=T?I.endRow-1:T;D>_&&(_=D)}if(!I)return!1;if(M(I.startRow,I.startCol,I.endRow,I.endCol))return!0}else for(var O=d.getLine(_),N,F;F=m.exec(O);){var z=F[0].length;if(N=F.index,M(_,N,_,N+z))return!0;if(!z&&(m.lastIndex=N+=i.skipEmptyMatch(O,N,k),N>=O.length))return!1}};return{forEach:E}},u}();function o(u,d){var h=i.supportsLookbehind();function m(y,w){w===void 0&&(w=!0);var k=h&&d.$supportsUnicodeFlag?new RegExp("[\\p{L}\\p{N}_]","u"):new RegExp("\\w");return k.test(y)||d.regExp?h&&d.$supportsUnicodeFlag?w?"(?<=^|[^\\p{L}\\p{N}_])":"(?=[^\\p{L}\\p{N}_]|$)":"\\b":""}var f=Array.from(u),p=f[0],g=f[f.length-1];return m(p)+u+m(g,!1)}function l(u,d,h){for(var m=null,f=0;f<=u.length;){d.lastIndex=f;var p=d.exec(u);if(!p)break;var g=p.index+p[0].length;if(g>u.length-h)break;(!m||g>m.index+m[0].length)&&(m=p),f=p.index+1}return m}function c(u,d){var h=5e3,m={row:d,column:0},f=u.doc.positionToIndex(m),p=f+h,g=u.doc.indexToPosition(p),y=g.row;return y+1}t.Search=a});ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(n,t,e){"use strict";var i=this&&this.__extends||function(){var u=function(d,h){return u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(m,f){m.__proto__=f}||function(m,f){for(var p in f)Object.prototype.hasOwnProperty.call(f,p)&&(m[p]=f[p])},u(d,h)};return function(d,h){if(typeof h!="function"&&h!==null)throw new TypeError("Class extends value "+String(h)+" is not a constructor or null");u(d,h);function m(){this.constructor=d}d.prototype=h===null?Object.create(h):(m.prototype=h.prototype,new m)}}(),r=n("../lib/keys"),s=n("../lib/useragent"),a=r.KEY_MODS,o=function(){function u(d,h){this.$init(d,h,!1)}return u.prototype.$init=function(d,h,m){this.platform=h||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(d),this.$singleCommand=m},u.prototype.addCommand=function(d){this.commands[d.name]&&this.removeCommand(d),this.commands[d.name]=d,d.bindKey&&this._buildKeyHash(d)},u.prototype.removeCommand=function(d,h){var m=d&&(typeof d=="string"?d:d.name);d=this.commands[m],h||delete this.commands[m];var f=this.commandKeyBinding;for(var p in f){var g=f[p];if(g==d)delete f[p];else if(Array.isArray(g)){var y=g.indexOf(d);y!=-1&&(g.splice(y,1),g.length==1&&(f[p]=g[0]))}}},u.prototype.bindKey=function(d,h,m){if(typeof d=="object"&&d&&(m==null&&(m=d.position),d=d[this.platform]),!!d){if(typeof h=="function")return this.addCommand({exec:h,bindKey:d,name:h.name||d});d.split("|").forEach(function(f){var p="";if(f.indexOf(" ")!=-1){var g=f.split(/\s+/);f=g.pop(),g.forEach(function(k){var x=this.parseKeys(k),C=a[x.hashId]+x.key;p+=(p?" ":"")+C,this._addCommandToBinding(p,"chainKeys")},this),p+=" "}var y=this.parseKeys(f),w=a[y.hashId]+y.key;this._addCommandToBinding(p+w,h,m)},this)}},u.prototype._addCommandToBinding=function(d,h,m){var f=this.commandKeyBinding,p;if(!h)delete f[d];else if(!f[d]||this.$singleCommand)f[d]=h;else{Array.isArray(f[d])?(p=f[d].indexOf(h))!=-1&&f[d].splice(p,1):f[d]=[f[d]],typeof m!="number"&&(m=l(h));var g=f[d];for(p=0;pm)break}g.splice(p,0,h)}},u.prototype.addCommands=function(d){d&&Object.keys(d).forEach(function(h){var m=d[h];if(m){if(typeof m=="string")return this.bindKey(m,h);typeof m=="function"&&(m={exec:m}),typeof m=="object"&&(m.name||(m.name=h),this.addCommand(m))}},this)},u.prototype.removeCommands=function(d){Object.keys(d).forEach(function(h){this.removeCommand(d[h])},this)},u.prototype.bindKeys=function(d){Object.keys(d).forEach(function(h){this.bindKey(h,d[h])},this)},u.prototype._buildKeyHash=function(d){this.bindKey(d.bindKey,d)},u.prototype.parseKeys=function(d){var h=d.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(w){return w}),m=h.pop(),f=r[m];if(r.FUNCTION_KEYS[f])m=r.FUNCTION_KEYS[f].toLowerCase();else if(h.length){if(h.length==1&&h[0]=="shift")return{key:m.toUpperCase(),hashId:-1}}else return{key:m,hashId:-1};for(var p=0,g=h.length;g--;){var y=r.KEY_MODS[h[g]];if(y==null)return typeof console<"u"&&console.error("invalid modifier "+h[g]+" in "+d),!1;p|=y}return{key:m,hashId:p}},u.prototype.findKeyCommand=function(d,h){var m=a[d]+h;return this.commandKeyBinding[m]},u.prototype.handleKeyboard=function(d,h,m,f){if(!(f<0)){var p=a[h]+m,g=this.commandKeyBinding[p];return d.$keyChain&&(d.$keyChain+=" "+p,g=this.commandKeyBinding[d.$keyChain]||g),g&&(g=="chainKeys"||g[g.length-1]=="chainKeys")?(d.$keyChain=d.$keyChain||p,{command:"null"}):(d.$keyChain&&((!h||h==4)&&m.length==1?d.$keyChain=d.$keyChain.slice(0,-p.length-1):(h==-1||f>0)&&(d.$keyChain="")),{command:g})}},u.prototype.getStatusText=function(d,h){return h.$keyChain||""},u}();function l(u){return typeof u=="object"&&u.bindKey&&u.bindKey.position||(u.isDefault?-100:0)}var c=function(u){i(d,u);function d(h,m){var f=u.call(this,h,m)||this;return f.$singleCommand=!0,f}return d}(o);c.call=function(u,d,h){o.prototype.$init.call(u,d,h,!0)},o.call=function(u,d,h){o.prototype.$init.call(u,d,h,!1)},t.HashHandler=c,t.MultiHashHandler=o});ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(n,t,e){"use strict";var i=this&&this.__extends||function(){var l=function(c,u){return l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,h){d.__proto__=h}||function(d,h){for(var m in h)Object.prototype.hasOwnProperty.call(h,m)&&(d[m]=h[m])},l(c,u)};return function(c,u){if(typeof u!="function"&&u!==null)throw new TypeError("Class extends value "+String(u)+" is not a constructor or null");l(c,u);function d(){this.constructor=c}c.prototype=u===null?Object.create(u):(d.prototype=u.prototype,new d)}}(),r=n("../lib/oop"),s=n("../keyboard/hash_handler").MultiHashHandler,a=n("../lib/event_emitter").EventEmitter,o=function(l){i(c,l);function c(u,d){var h=l.call(this,d,u)||this;return h.byName=h.commands,h.setDefaultHandler("exec",function(m){return m.args?m.command.exec(m.editor,m.args,m.event,!1):m.command.exec(m.editor,{},m.event,!0)}),h}return c.prototype.exec=function(u,d,h){if(Array.isArray(u)){for(var m=u.length;m--;)if(this.exec(u[m],d,h))return!0;return!1}typeof u=="string"&&(u=this.commands[u]);var f={editor:d,command:u,args:h};return this.canExecute(u,d)?(f.returnValue=this._emit("exec",f),this._signal("afterExec",f),f.returnValue!==!1):(this._signal("commandUnavailable",f),!1)},c.prototype.canExecute=function(u,d){return typeof u=="string"&&(u=this.commands[u]),!(!u||d&&d.$readOnly&&!u.readOnly||this.$checkCommandState!=!1&&u.isAvailable&&!u.isAvailable(d))},c.prototype.toggleRecording=function(u){if(!this.$inReplay)return u&&u._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(d){this.macro.push([d.command,d.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},c.prototype.replay=function(u){if(!(this.$inReplay||!this.macro)){if(this.recording)return this.toggleRecording(u);try{this.$inReplay=!0,this.macro.forEach(function(d){typeof d=="string"?this.exec(d,u):this.exec(d[0],u,d[1])},this)}finally{this.$inReplay=!1}}},c.prototype.trimMacro=function(u){return u.map(function(d){return typeof d[0]!="string"&&(d[0]=d[0].name),d[1]||(d=d[0]),d})},c}(s);r.implement(o.prototype,a),t.CommandManager=o});ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(n,t,e){"use strict";var i=n("../lib/lang"),r=n("../config"),s=n("../range").Range;function a(l,c){return{win:l,mac:c}}t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:a("Ctrl-,","Command-,"),exec:function(l){r.loadModule("ace/ext/settings_menu",function(c){c.init(l),l.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:a("Alt-E","F4"),exec:function(l){r.loadModule("ace/ext/error_marker",function(c){c.showErrorMarker(l,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:a("Alt-Shift-E","Shift-F4"),exec:function(l){r.loadModule("ace/ext/error_marker",function(c){c.showErrorMarker(l,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:a("Ctrl-A","Command-A"),exec:function(l){l.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:a(null,"Ctrl-L"),exec:function(l){l.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:a("Ctrl-L","Command-L"),exec:function(l,c){typeof c=="number"&&!isNaN(c)&&l.gotoLine(c),l.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:a("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(l){l.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:a("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(l){l.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:a("F2","F2"),exec:function(l){l.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:a("Alt-F2","Alt-F2"),exec:function(l){l.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(l){l.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(l){l.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:a("Alt-0","Command-Option-0"),exec:function(l){l.session.foldAll(),l.session.unfold(l.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:a("Alt-Shift-0","Command-Option-Shift-0"),exec:function(l){l.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:a("Ctrl-K","Command-G"),exec:function(l){l.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:a("Ctrl-Shift-K","Command-Shift-G"),exec:function(l){l.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:a("Alt-K","Ctrl-G"),exec:function(l){l.selection.isEmpty()?l.selection.selectWord():l.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:a("Alt-Shift-K","Ctrl-Shift-G"),exec:function(l){l.selection.isEmpty()?l.selection.selectWord():l.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:a("Ctrl-F","Command-F"),exec:function(l){r.loadModule("ace/ext/searchbox",function(c){c.Search(l)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(l){l.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:a("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(l){l.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:a("Ctrl-Home","Command-Home|Command-Up"),exec:function(l){l.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:a("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(l){l.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:a("Up","Up|Ctrl-P"),exec:function(l,c){l.navigateUp(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:a("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(l){l.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:a("Ctrl-End","Command-End|Command-Down"),exec:function(l){l.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:a("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(l){l.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:a("Down","Down|Ctrl-N"),exec:function(l,c){l.navigateDown(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:a("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(l){l.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:a("Ctrl-Left","Option-Left"),exec:function(l){l.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:a("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(l){l.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:a("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(l){l.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:a("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(l){l.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:a("Left","Left|Ctrl-B"),exec:function(l,c){l.navigateLeft(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:a("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(l){l.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:a("Ctrl-Right","Option-Right"),exec:function(l){l.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:a("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(l){l.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:a("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(l){l.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:a("Shift-Right","Shift-Right"),exec:function(l){l.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:a("Right","Right|Ctrl-F"),exec:function(l,c){l.navigateRight(c.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(l){l.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:a(null,"Option-PageDown"),exec:function(l){l.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:a("PageDown","PageDown|Ctrl-V"),exec:function(l){l.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(l){l.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:a(null,"Option-PageUp"),exec:function(l){l.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(l){l.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:a("Ctrl-Up",null),exec:function(l){l.renderer.scrollBy(0,-2*l.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:a("Ctrl-Down",null),exec:function(l){l.renderer.scrollBy(0,2*l.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(l){l.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(l){l.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:a("Ctrl-Alt-E","Command-Option-E"),exec:function(l){l.commands.toggleRecording(l)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:a("Ctrl-Shift-E","Command-Shift-E"),exec:function(l){l.commands.replay(l)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:a("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(l){l.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:a("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(l){l.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:a("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(l){l.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:a(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(l){},readOnly:!0},{name:"cut",description:"Cut",exec:function(l){var c=l.$copyWithEmptySelection&&l.selection.isEmpty(),u=c?l.selection.getLineRange():l.selection.getRange();l._emit("cut",u),u.isEmpty()||l.session.remove(u),l.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(l,c){l.$handlePaste(c)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:a("Ctrl-D","Command-D"),exec:function(l){l.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:a("Ctrl-Shift-D","Command-Shift-D"),exec:function(l){l.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:a("Ctrl-Alt-S","Command-Alt-S"),exec:function(l){l.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:a("Ctrl-/","Command-/"),exec:function(l){l.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:a("Ctrl-Shift-/","Command-Shift-/"),exec:function(l){l.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:a("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(l){l.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:a("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(l){l.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:a("Ctrl-H","Command-Option-F"),exec:function(l){r.loadModule("ace/ext/searchbox",function(c){c.Search(l,!0)})}},{name:"undo",description:"Undo",bindKey:a("Ctrl-Z","Command-Z"),exec:function(l){l.undo()}},{name:"redo",description:"Redo",bindKey:a("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(l){l.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:a("Alt-Shift-Up","Command-Option-Up"),exec:function(l){l.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:a("Alt-Up","Option-Up"),exec:function(l){l.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:a("Alt-Shift-Down","Command-Option-Down"),exec:function(l){l.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:a("Alt-Down","Option-Down"),exec:function(l){l.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:a("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(l){l.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:a("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(l){l.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:a("Shift-Delete",null),exec:function(l){if(l.selection.isEmpty())l.remove("left");else return!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:a("Alt-Backspace","Command-Backspace"),exec:function(l){l.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:a("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(l){l.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:a("Ctrl-Shift-Backspace",null),exec:function(l){var c=l.selection.getRange();c.start.column=0,l.session.remove(c)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:a("Ctrl-Shift-Delete",null),exec:function(l){var c=l.selection.getRange();c.end.column=Number.MAX_VALUE,l.session.remove(c)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:a("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(l){l.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:a("Ctrl-Delete","Alt-Delete"),exec:function(l){l.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:a("Shift-Tab","Shift-Tab"),exec:function(l){l.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:a("Tab","Tab"),exec:function(l){l.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:a("Ctrl-[","Ctrl-["),exec:function(l){l.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:a("Ctrl-]","Ctrl-]"),exec:function(l){l.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(l,c){l.insert(c)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(l,c){l.insert(i.stringRepeat(c.text||"",c.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:a(null,"Ctrl-O"),exec:function(l){l.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:a("Alt-Shift-X","Ctrl-T"),exec:function(l){l.transposeLetters()},multiSelectAction:function(l){l.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:a("Ctrl-U","Ctrl-U"),exec:function(l){l.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:a("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(l){l.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:a(null,null),exec:function(l){l.autoIndent()},scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:a("Ctrl-Shift-L","Command-Shift-L"),exec:function(l){var c=l.selection.getRange();c.start.column=c.end.column=0,c.end.row++,l.selection.setRange(c,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:a("Ctrl+F3","F3"),exec:function(l){l.openLink()}},{name:"joinlines",description:"Join lines",bindKey:a(null,null),exec:function(l){for(var c=l.selection.isBackwards(),u=c?l.selection.getSelectionLead():l.selection.getSelectionAnchor(),d=c?l.selection.getSelectionAnchor():l.selection.getSelectionLead(),h=l.session.doc.getLine(u.row).length,m=l.session.doc.getTextRange(l.selection.getRange()),f=m.replace(/\n\s*/," ").length,p=l.session.doc.getLine(u.row),g=u.row+1;g<=d.row+1;g++){var y=i.stringTrimLeft(i.stringTrimRight(l.session.doc.getLine(g)));y.length!==0&&(y=" "+y),p+=y}d.row+10?(l.selection.moveCursorTo(u.row,u.column),l.selection.selectTo(u.row,u.column+f)):(h=l.session.doc.getLine(u.row).length>h?h+1:h,l.selection.moveCursorTo(u.row,h))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:a(null,null),exec:function(l){var c=l.session.doc.getLength()-1,u=l.session.doc.getLine(c).length,d=l.selection.rangeList.ranges,h=[];d.length<1&&(d=[l.selection.getRange()]);for(var m=0;m0||o+l=0&&this.$isCustomWidgetVisible(o-l))return o-l;if(o+l<=this.lines.getLength()-1&&this.$isCustomWidgetVisible(o+l))return o+l;if(o-l>=0&&this.$isFoldWidgetVisible(o-l))return o-l;if(o+l<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(o+l))return o+l}return null},a.prototype.$findNearestAnnotation=function(o){if(this.$isAnnotationVisible(o))return o;for(var l=0;o-l>0||o+l=0&&this.$isAnnotationVisible(o-l))return o-l;if(o+l<=this.lines.getLength()-1&&this.$isAnnotationVisible(o+l))return o+l}return null},a.prototype.$focusFoldWidget=function(o){if(o!=null){var l=this.$getFoldWidget(o);l.classList.add(this.editor.renderer.keyboardFocusClassName),l.focus()}},a.prototype.$focusCustomWidget=function(o){if(o!=null){var l=this.$getCustomWidget(o);l&&(l.classList.add(this.editor.renderer.keyboardFocusClassName),l.focus())}},a.prototype.$focusAnnotation=function(o){if(o!=null){var l=this.$getAnnotation(o);l.classList.add(this.editor.renderer.keyboardFocusClassName),l.focus()}},a.prototype.$blurFoldWidget=function(o){var l=this.$getFoldWidget(o);l.classList.remove(this.editor.renderer.keyboardFocusClassName),l.blur()},a.prototype.$blurCustomWidget=function(o){var l=this.$getCustomWidget(o);l&&(l.classList.remove(this.editor.renderer.keyboardFocusClassName),l.blur())},a.prototype.$blurAnnotation=function(o){var l=this.$getAnnotation(o);l.classList.remove(this.editor.renderer.keyboardFocusClassName),l.blur()},a.prototype.$moveFoldWidgetUp=function(){for(var o=this.activeRowIndex;o>0;)if(o--,this.$isFoldWidgetVisible(o)||this.$isCustomWidgetVisible(o)){this.$blurFoldWidget(this.activeRowIndex),this.$blurCustomWidget(this.activeRowIndex),this.activeRowIndex=o,this.$isFoldWidgetVisible(o)?this.$focusFoldWidget(this.activeRowIndex):this.$focusCustomWidget(this.activeRowIndex);return}},a.prototype.$moveFoldWidgetDown=function(){for(var o=this.activeRowIndex;o0;)if(o--,this.$isAnnotationVisible(o)){this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=o,this.$focusAnnotation(this.activeRowIndex);return}},a.prototype.$moveAnnotationDown=function(){for(var o=this.activeRowIndex;o=_.length&&(_=void 0),{value:_&&_[I++],done:!_}}};throw new TypeError(b?"Object is not iterable.":"Symbol.iterator is not defined.")},r=n("./lib/oop"),s=n("./lib/dom"),a=n("./lib/lang"),o=n("./lib/useragent"),l=n("./keyboard/textinput").TextInput,c=n("./mouse/mouse_handler").MouseHandler,u=n("./mouse/fold_handler").FoldHandler,d=n("./keyboard/keybinding").KeyBinding,h=n("./edit_session").EditSession,m=n("./search").Search,f=n("./range").Range,p=n("./lib/event_emitter").EventEmitter,g=n("./commands/command_manager").CommandManager,y=n("./commands/default_commands").commands,w=n("./config"),k=n("./token_iterator").TokenIterator,x=n("./keyboard/gutter_handler").GutterKeyboardHandler,C=n("./config").nls,A=n("./clipboard"),T=n("./lib/keys"),E=n("./lib/event"),L=n("./tooltip").HoverTooltip,S=function(){function _(b,M,I){this.id="editor"+ ++_.$uid,this.session,this.$toDestroy=[];var D=b.getContainerElement();this.container=D,this.renderer=b,this.commands=new g(o.isMac?"mac":"win",y),typeof document=="object"&&(this.textInput=new l(b.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new c(this),new u(this)),this.keyBinding=new d(this),this.$search=new m().set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=a.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(O,N){N._$emitInputEvent.schedule(31)}),this.setSession(M||I&&I.session||new h("")),w.resetOptions(this),I&&this.setOptions(I),w._signal("editor",this)}return _.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0)},_.prototype.startOperation=function(b){this.session.startOperation(b)},_.prototype.endOperation=function(b){this.session.endOperation(b)},_.prototype.onStartOperation=function(b){this.curOp=this.session.curOp,this.curOp.scrollTop=this.renderer.scrollTop,this.prevOp=this.session.prevOp,b||(this.previousCommand=null)},_.prototype.onEndOperation=function(b){if(this.curOp&&this.session){if(b&&b.returnValue===!1){this.curOp=null;return}if(this._signal("beforeEndOperation"),!this.curOp)return;var M=this.curOp.command,I=M&&M.scrollIntoView;if(I){switch(I){case"center-animate":I="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var D=this.selection.getRange(),O=this.renderer.layerConfig;(D.start.row>=O.lastRow||D.end.row<=O.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:break}I=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.$lastSel=this.session.selection.toJSON(),this.prevOp=this.curOp,this.curOp=null}},_.prototype.$historyTracker=function(b){if(this.$mergeUndoDeltas){var M=this.prevOp,I=this.$mergeableCommands,D=M.command&&b.command.name==M.command.name;if(b.command.name=="insertstring"){var O=b.args;this.mergeNextCommand===void 0&&(this.mergeNextCommand=!0),D=D&&this.mergeNextCommand&&(!/\s/.test(O)||/\s/.test(M.args)),this.mergeNextCommand=!0}else D=D&&I.indexOf(b.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(D=!1),D?this.session.mergeUndoDeltas=!0:I.indexOf(b.command.name)!==-1&&(this.sequenceStartTime=Date.now())}},_.prototype.setKeyboardHandler=function(b,M){if(b&&typeof b=="string"&&b!="ace"){this.$keybindingId=b;var I=this;w.loadModule(["keybinding",b],function(D){I.$keybindingId==b&&I.keyBinding.setKeyboardHandler(D&&D.handler),M&&M()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(b),M&&M()},_.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},_.prototype.setSession=function(b){if(this.session!=b){this.curOp&&this.endOperation(),this.curOp={};var M=this.session;if(M){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange),this.session.off("startOperation",this.$onStartOperation),this.session.off("endOperation",this.$onEndOperation);var I=this.session.getSelection();I.off("changeCursor",this.$onCursorChange),I.off("changeSelection",this.$onSelectionChange)}this.session=b,b?(this.$onDocumentChange=this.onDocumentChange.bind(this),b.on("change",this.$onDocumentChange),this.renderer.setSession(b),this.$onChangeMode=this.onChangeMode.bind(this),b.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),b.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),b.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),b.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),b.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),b.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=b.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.$onStartOperation=this.onStartOperation.bind(this),this.session.on("startOperation",this.$onStartOperation),this.$onEndOperation=this.onEndOperation.bind(this),this.session.on("endOperation",this.$onEndOperation),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(b)),this._signal("changeSession",{session:b,oldSession:M}),this.curOp=null,M&&M._signal("changeEditor",{oldEditor:this}),M&&(M.$editor=null),b&&b._signal("changeEditor",{editor:this}),b&&(b.$editor=this),b&&!b.destroyed&&b.bgTokenizer.scheduleStart()}},_.prototype.getSession=function(){return this.session},_.prototype.setValue=function(b,M){return this.session.doc.setValue(b),M?M==1?this.navigateFileEnd():M==-1&&this.navigateFileStart():this.selectAll(),b},_.prototype.getValue=function(){return this.session.getValue()},_.prototype.getSelection=function(){return this.selection},_.prototype.resize=function(b){this.renderer.onResize(b)},_.prototype.setTheme=function(b,M){this.renderer.setTheme(b,M)},_.prototype.getTheme=function(){return this.renderer.getTheme()},_.prototype.setStyle=function(b,M){this.renderer.setStyle(b,M)},_.prototype.unsetStyle=function(b){this.renderer.unsetStyle(b)},_.prototype.getFontSize=function(){return this.getOption("fontSize")||s.computedStyle(this.container).fontSize},_.prototype.setFontSize=function(b){this.setOption("fontSize",b)},_.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var b=this;this.$highlightPending=!0,setTimeout(function(){b.$highlightPending=!1;var M=b.session;if(!(!M||M.destroyed)){M.$bracketHighlight&&(M.$bracketHighlight.markerIds.forEach(function(W){M.removeMarker(W)}),M.$bracketHighlight=null);var I=b.getCursorPosition(),D=b.getKeyboardHandler(),O=D&&D.$getDirectionForHighlight&&D.$getDirectionForHighlight(b),N=M.getMatchingBracketRanges(I,O);if(!N){var F=new k(M,I.row,I.column),z=F.getCurrentToken();if(z&&/\b(?:tag-open|tag-name)/.test(z.type)){var V=M.getMatchingTags(I);V&&(N=[V.openTagName.isEmpty()?V.openTag:V.openTagName,V.closeTagName.isEmpty()?V.closeTag:V.closeTagName])}}if(!N&&M.$mode.getMatching&&(N=M.$mode.getMatching(b.session)),!N){b.getHighlightIndentGuides()&&b.renderer.$textLayer.$highlightIndentGuide();return}var K="ace_bracket";Array.isArray(N)?N.length==1&&(K="ace_error_bracket"):N=[N],N.length==2&&(f.comparePoints(N[0].end,N[1].start)==0?N=[f.fromPoints(N[0].start,N[1].end)]:f.comparePoints(N[0].start,N[1].end)==0&&(N=[f.fromPoints(N[1].start,N[0].end)])),M.$bracketHighlight={ranges:N,markerIds:N.map(function(W){return M.addMarker(W,K,"text")})},b.getHighlightIndentGuides()&&b.renderer.$textLayer.$highlightIndentGuide()}},50)}},_.prototype.focus=function(){this.textInput.focus()},_.prototype.isFocused=function(){return this.textInput.isFocused()},_.prototype.blur=function(){this.textInput.blur()},_.prototype.onFocus=function(b){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",b))},_.prototype.onBlur=function(b){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",b))},_.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},_.prototype.onDocumentChange=function(b){var M=this.session.$useWrapMode,I=b.start.row==b.end.row?b.end.row:1/0;this.renderer.updateLines(b.start.row,I,M),this._signal("change",b),this.$cursorChange()},_.prototype.onTokenizerUpdate=function(b){var M=b.data;this.renderer.updateLines(M.first,M.last)},_.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},_.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},_.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},_.prototype.$updateHighlightActiveLine=function(){var b=this.getSession(),M;if(this.$highlightActiveLine&&((this.$selectionStyle!="line"||!this.selection.isMultiLine())&&(M=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(M=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(M=!1)),b.$highlightLineMarker&&!M)b.removeMarker(b.$highlightLineMarker.id),b.$highlightLineMarker=null;else if(!b.$highlightLineMarker&&M){var I=new f(M.row,M.column,M.row,1/0);I.id=b.addMarker(I,"ace_active-line","screenLine"),b.$highlightLineMarker=I}else M&&(b.$highlightLineMarker.start.row=M.row,b.$highlightLineMarker.end.row=M.row,b.$highlightLineMarker.start.column=M.column,b._signal("changeBackMarker"))},_.prototype.onSelectionChange=function(b){var M=this.session;if(M.$selectionMarker&&M.removeMarker(M.$selectionMarker),M.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var I=this.selection.getRange(),D=this.getSelectionStyle();M.$selectionMarker=M.addMarker(I,"ace_selection",D)}var O=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(O),this._signal("changeSelection")},_.prototype.$getSelectionHighLightRegexp=function(){var b=this.session,M=this.getSelectionRange();if(!(M.isEmpty()||M.isMultiLine())){var I=M.start.column,D=M.end.column,O=b.getLine(M.start.row),N=O.substring(I,D);if(!(N.length>5e3||!/[\w\d]/.test(N))){var F=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:N}),z=O.substring(I-1,D+1);if(F.test(z))return F}}},_.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},_.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},_.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},_.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},_.prototype.onChangeMode=function(b){this.renderer.updateText(),this._emit("changeMode",b)},_.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},_.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},_.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},_.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},_.prototype.getCopyText=function(){var b=this.getSelectedText(),M=this.session.doc.getNewLineCharacter(),I=!1;if(!b&&this.$copyWithEmptySelection){I=!0;for(var D=this.selection.getAllRanges(),O=0;OW.search(/\S|$/)){var z=W.substr(O.column).search(/\S|$/);I.doc.removeInLine(O.row,O.column,O.column+z)}}this.clearSelection();var V=O.column,K=I.getState(O.row),W=I.getLine(O.row),q=D.checkOutdent(K,W,b);if(I.insert(O,b),N&&N.selection&&(N.selection.length==2?this.selection.setSelectionRange(new f(O.row,V+N.selection[0],O.row,V+N.selection[1])):this.selection.setSelectionRange(new f(O.row+N.selection[0],N.selection[1],O.row+N.selection[2],N.selection[3]))),this.$enableAutoIndent){if(I.getDocument().isNewLine(b)){var ae=D.getNextLineIndent(K,W.slice(0,O.column),I.getTabString());I.insert({row:O.row+1,column:0},ae)}q&&D.autoOutdent(K,I,O.row)}},_.prototype.autoIndent=function(){for(var b=this.session,M=b.getMode(),I=this.selection.isEmpty()?[new f(0,0,b.doc.getLength()-1,0)]:this.selection.getAllRanges(),D="",O="",N="",F=b.getTabString(),z=0;z0&&(D=b.getState(W-1),O=b.getLine(W-1),N=M.getNextLineIndent(D,O,F));var q=b.getLine(W),ae=M.$getIndent(q);if(N!==ae){if(ae.length>0){var pe=new f(W,0,W,ae.length);b.remove(pe)}N.length>0&&b.insert({row:W,column:0},N)}M.autoOutdent(D,b,W)}},_.prototype.onTextInput=function(b,M){if(!M)return this.keyBinding.onTextInput(b);this.startOperation({command:{name:"insertstring"}});var I=this.applyComposition.bind(this,b,M);this.selection.rangeCount?this.forEachSelection(I):I(),this.endOperation()},_.prototype.applyComposition=function(b,M){if(M.extendLeft||M.extendRight){var I=this.selection.getRange();I.start.column-=M.extendLeft,I.end.column+=M.extendRight,I.start.column<0&&(I.start.row--,I.start.column+=this.session.getLine(I.start.row).length+1),this.selection.setRange(I),!b&&!I.isEmpty()&&this.remove()}if((b||!this.selection.isEmpty())&&this.insert(b,!0),M.restoreStart||M.restoreEnd){var I=this.selection.getRange();I.start.column-=M.restoreStart,I.end.column-=M.restoreEnd,this.selection.setRange(I)}},_.prototype.onCommandKey=function(b,M,I){return this.keyBinding.onCommandKey(b,M,I)},_.prototype.setOverwrite=function(b){this.session.setOverwrite(b)},_.prototype.getOverwrite=function(){return this.session.getOverwrite()},_.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},_.prototype.setScrollSpeed=function(b){this.setOption("scrollSpeed",b)},_.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},_.prototype.setDragDelay=function(b){this.setOption("dragDelay",b)},_.prototype.getDragDelay=function(){return this.getOption("dragDelay")},_.prototype.setSelectionStyle=function(b){this.setOption("selectionStyle",b)},_.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},_.prototype.setHighlightActiveLine=function(b){this.setOption("highlightActiveLine",b)},_.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},_.prototype.setHighlightGutterLine=function(b){this.setOption("highlightGutterLine",b)},_.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},_.prototype.setHighlightSelectedWord=function(b){this.setOption("highlightSelectedWord",b)},_.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},_.prototype.setAnimatedScroll=function(b){this.renderer.setAnimatedScroll(b)},_.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},_.prototype.setShowInvisibles=function(b){this.renderer.setShowInvisibles(b)},_.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},_.prototype.setDisplayIndentGuides=function(b){this.renderer.setDisplayIndentGuides(b)},_.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},_.prototype.setHighlightIndentGuides=function(b){this.renderer.setHighlightIndentGuides(b)},_.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},_.prototype.setShowPrintMargin=function(b){this.renderer.setShowPrintMargin(b)},_.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},_.prototype.setPrintMarginColumn=function(b){this.renderer.setPrintMarginColumn(b)},_.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},_.prototype.setReadOnly=function(b){this.setOption("readOnly",b)},_.prototype.getReadOnly=function(){return this.getOption("readOnly")},_.prototype.setBehavioursEnabled=function(b){this.setOption("behavioursEnabled",b)},_.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},_.prototype.setWrapBehavioursEnabled=function(b){this.setOption("wrapBehavioursEnabled",b)},_.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},_.prototype.setShowFoldWidgets=function(b){this.setOption("showFoldWidgets",b)},_.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},_.prototype.setFadeFoldWidgets=function(b){this.setOption("fadeFoldWidgets",b)},_.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},_.prototype.remove=function(b){this.selection.isEmpty()&&(b=="left"?this.selection.selectLeft():this.selection.selectRight());var M=this.getSelectionRange();if(this.getBehavioursEnabled()){var I=this.session,D=I.getState(M.start.row),O=I.getMode().transformAction(D,"deletion",this,I,M);if(M.end.column===0){var N=I.getTextRange(M);if(N[N.length-1]==` +`){var F=I.getLine(M.end.row);/^\s+$/.test(F)&&(M.end.column=F.length)}}O&&(M=O)}this.session.remove(M),this.clearSelection()},_.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},_.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},_.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},_.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var b=this.getSelectionRange();b.start.column==b.end.column&&b.start.row==b.end.row&&(b.end.column=0,b.end.row++),this.session.remove(b),this.clearSelection()},_.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var b=this.getCursorPosition();this.insert(` +`),this.moveCursorToPosition(b)},_.prototype.setGhostText=function(b,M){this.renderer.setGhostText(b,M)},_.prototype.removeGhostText=function(){this.renderer.removeGhostText()},_.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var b=this.getCursorPosition(),M=b.column;if(M!==0){var I=this.session.getLine(b.row),D,O;Mz.toLowerCase()?1:0});for(var O=new f(0,0,0,0),D=b.first;D<=b.last;D++){var N=M.getLine(D);O.start.row=D,O.end.row=D,O.end.column=N.length,M.replace(O,I[D-b.first])}},_.prototype.toggleCommentLines=function(){var b=this.session.getState(this.getCursorPosition().row),M=this.$getSelectedRows();this.session.getMode().toggleCommentLines(b,this.session,M.first,M.last)},_.prototype.toggleBlockComment=function(){var b=this.getCursorPosition(),M=this.session.getState(b.row),I=this.getSelectionRange();this.session.getMode().toggleBlockComment(M,this.session,I,b)},_.prototype.getNumberAt=function(b,M){var I=/[\-]?[0-9]+(?:\.[0-9]+)?/g;I.lastIndex=0;for(var D=this.session.getLine(b);I.lastIndex=M){var N={value:O[0],start:O.index,end:O.index+O[0].length};return N}}return null},_.prototype.modifyNumber=function(b){var M=this.selection.getCursor().row,I=this.selection.getCursor().column,D=new f(M,I-1,M,I),O=this.session.getTextRange(D);if(!isNaN(parseFloat(O))&&isFinite(O)){var N=this.getNumberAt(M,I);if(N){var F=N.value.indexOf(".")>=0?N.start+N.value.indexOf(".")+1:N.end,z=N.start+N.value.length-F,V=parseFloat(N.value);V*=Math.pow(10,z),F!==N.end&&I=F&&N<=z&&(I=we,V.selection.clearSelection(),V.moveCursorTo(b,F+D),V.selection.selectTo(b,z+D)),F=z});for(var K=this.$toggleWordPairs,W,q=0;q=z&&F<=V&&ae.match(/((?:https?|ftp):\/\/[\S]+)/)){K=ae.replace(/[\s:.,'";}\]]+$/,"");break}z=V}}catch(pe){I={error:pe}}finally{try{q&&!q.done&&(D=W.return)&&D.call(W)}finally{if(I)throw I.error}}return K},_.prototype.openLink=function(){var b=this.selection.getCursor(),M=this.findLinkAt(b.row,b.column);return M&&window.open(M,"_blank"),M!=null},_.prototype.removeLines=function(){var b=this.$getSelectedRows();this.session.removeFullLines(b.first,b.last),this.clearSelection()},_.prototype.duplicateSelection=function(){var b=this.selection,M=this.session,I=b.getRange(),D=b.isBackwards();if(I.isEmpty()){var O=I.start.row;M.duplicateLines(O,O)}else{var N=D?I.start:I.end,F=M.insert(N,M.getTextRange(I));I.start=N,I.end=F,b.setSelectionRange(I,D)}},_.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},_.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},_.prototype.moveText=function(b,M,I){return this.session.moveText(b,M,I)},_.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},_.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},_.prototype.$moveLines=function(b,M){var I,D,O=this.selection;if(!O.inMultiSelectMode||this.inVirtualSelectionMode){var N=O.toOrientedRange();I=this.$getSelectedRows(N),D=this.session.$moveLines(I.first,I.last,M?0:b),M&&b==-1&&(D=0),N.moveBy(D,0),O.fromOrientedRange(N)}else{var F=O.rangeList.ranges;O.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var z=0,V=0,K=F.length,W=0;Wpe+1)break;pe=ie.last}for(W--,z=this.session.$moveLines(ae,pe,M?0:b),M&&b==-1&&(q=W+1);q<=W;)F[q].moveBy(z,0),q++;M||(z=0),V+=z}O.fromOrientedRange(O.ranges[0]),O.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},_.prototype.$getSelectedRows=function(b){return b=(b||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(b.start.row),last:this.session.getRowFoldEnd(b.end.row)}},_.prototype.onCompositionStart=function(b){this.renderer.showComposition(b)},_.prototype.onCompositionUpdate=function(b){this.renderer.setCompositionText(b)},_.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},_.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},_.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},_.prototype.isRowVisible=function(b){return b>=this.getFirstVisibleRow()&&b<=this.getLastVisibleRow()},_.prototype.isRowFullyVisible=function(b){return b>=this.renderer.getFirstFullyVisibleRow()&&b<=this.renderer.getLastFullyVisibleRow()},_.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},_.prototype.$moveByPage=function(b,M){var I=this.renderer,D=this.renderer.layerConfig,O=b*Math.floor(D.height/D.lineHeight);M===!0?this.selection.$moveSelection(function(){this.moveCursorBy(O,0)}):M===!1&&(this.selection.moveCursorBy(O,0),this.selection.clearSelection());var N=I.scrollTop;I.scrollBy(0,O*D.lineHeight),M!=null&&I.scrollCursorIntoView(null,.5),I.animateScrolling(N)},_.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},_.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},_.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},_.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},_.prototype.scrollPageDown=function(){this.$moveByPage(1)},_.prototype.scrollPageUp=function(){this.$moveByPage(-1)},_.prototype.scrollToRow=function(b){this.renderer.scrollToRow(b)},_.prototype.scrollToLine=function(b,M,I,D){this.renderer.scrollToLine(b,M,I,D)},_.prototype.centerSelection=function(){var b=this.getSelectionRange(),M={row:Math.floor(b.start.row+(b.end.row-b.start.row)/2),column:Math.floor(b.start.column+(b.end.column-b.start.column)/2)};this.renderer.alignCursor(M,.5)},_.prototype.getCursorPosition=function(){return this.selection.getCursor()},_.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},_.prototype.getSelectionRange=function(){return this.selection.getRange()},_.prototype.selectAll=function(){this.selection.selectAll()},_.prototype.clearSelection=function(){this.selection.clearSelection()},_.prototype.moveCursorTo=function(b,M){this.selection.moveCursorTo(b,M)},_.prototype.moveCursorToPosition=function(b){this.selection.moveCursorToPosition(b)},_.prototype.jumpToMatching=function(b,M){var I=this.getCursorPosition(),D=new k(this.session,I.row,I.column),O=D.getCurrentToken(),N=0;O&&O.type.indexOf("tag-name")!==-1&&(O=D.stepBackward());var F=O||D.stepForward();if(F){var z,V=!1,K={},W=I.column-F.start,q,ae={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(F.value.match(/[{}()\[\]]/g)){for(;W1?K[F.value]++:O.value==="=0;--N)this.$tryReplace(I[N],b)&&D++;return this.selection.setSelectionRange(O),D},_.prototype.$tryReplace=function(b,M){var I=this.session.getTextRange(b);return M=this.$search.replace(I,M),M!==null?(b.end=this.session.replace(b,M),b):null},_.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},_.prototype.find=function(b,M,I){M||(M={}),typeof b=="string"||b instanceof RegExp?M.needle=b:typeof b=="object"&&r.mixin(M,b);var D=this.selection.getRange();M.needle==null&&(b=this.session.getTextRange(D)||this.$search.$options.needle,b||(D=this.session.getWordRange(D.start.row,D.start.column),b=this.session.getTextRange(D)),this.$search.set({needle:b})),this.$search.set(M),M.start||this.$search.set({start:D});var O=this.$search.find(this.session);if(M.preventScroll)return O;if(O)return this.revealRange(O,I),O;M.backwards?D.start=D.end:D.end=D.start,this.selection.setRange(D)},_.prototype.findNext=function(b,M){this.find({skipCurrent:!0,backwards:!1},b,M)},_.prototype.findPrevious=function(b,M){this.find(b,{skipCurrent:!0,backwards:!0},M)},_.prototype.revealRange=function(b,M){this.session.unfold(b),this.selection.setSelectionRange(b);var I=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(b.start,b.end,.5),M!==!1&&this.renderer.animateScrolling(I)},_.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},_.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},_.prototype.destroy=function(){this.destroyed=!0,this.$toDestroy&&(this.$toDestroy.forEach(function(b){b.destroy()}),this.$toDestroy=[]),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},_.prototype.setAutoScrollEditorIntoView=function(b){if(b){var M,I=this,D=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var O=this.$scrollAnchor;O.style.cssText="position:absolute",this.container.insertBefore(O,this.container.firstChild);var N=this.on("changeSelection",function(){D=!0}),F=this.renderer.on("beforeRender",function(){D&&(M=I.renderer.container.getBoundingClientRect())}),z=this.renderer.on("afterRender",function(){if(D&&M&&(I.isFocused()||I.searchBox&&I.searchBox.isFocused())){var V=I.renderer,K=V.$cursorLayer.$pixelPos,W=V.layerConfig,q=K.top-W.offset;K.top>=0&&q+M.top<0?D=!0:K.topwindow.innerHeight?D=!1:D=null,D!=null&&(O.style.top=q+"px",O.style.left=K.left+"px",O.style.height=W.lineHeight+"px",O.scrollIntoView(D)),D=M=null}});this.setAutoScrollEditorIntoView=function(V){V||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",N),this.renderer.off("afterRender",z),this.renderer.off("beforeRender",F))}}},_.prototype.$resetCursorStyle=function(){var b=this.$cursorStyle||"ace",M=this.renderer.$cursorLayer;M&&(M.setSmoothBlinking(/smooth/.test(b)),M.isBlinking=!this.$readOnly&&b!="wide",s.setCssClass(M.element,"ace_slim-cursors",/slim/.test(b)))},_.prototype.prompt=function(b,M,I){var D=this;w.loadModule("ace/ext/prompt",function(O){O.prompt(D,b,M,I)})},_}();S.$uid=0,S.prototype.curOp=null,S.prototype.prevOp={},S.prototype.$mergeableCommands=["backspace","del","insertstring"],S.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],r.implement(S.prototype,p),w.defineOptions(S.prototype,"editor",{selectionStyle:{set:function(_){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:_})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(_){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(_){var b=this;if(this.textInput.setReadOnly(_),!this.destroyed){this.$resetCursorStyle(),this.$readOnlyCallback||(this.$readOnlyCallback=function(I){var D=!1;if(I&&I.type=="keydown"){if(I&&I.key&&!I.ctrlKey&&!I.metaKey&&(I.key==" "&&I.preventDefault(),D=I.key.length==1),!D)return}else I&&I.type!=="exec"&&(D=!0);if(D){b.hoverTooltip||(b.hoverTooltip=new L);var O=s.createElement("div");O.textContent=C("editor.tooltip.disable-editing","Editing is disabled"),b.hoverTooltip.isOpen||b.hoverTooltip.showForRange(b,b.getSelectionRange(),O)}else b.hoverTooltip&&b.hoverTooltip.isOpen&&b.hoverTooltip.hide()});var M=this.textInput.getElement();_?(E.addListener(M,"keydown",this.$readOnlyCallback,this),this.commands.on("exec",this.$readOnlyCallback),this.commands.on("commandUnavailable",this.$readOnlyCallback)):(E.removeListener(M,"keydown",this.$readOnlyCallback),this.commands.off("exec",this.$readOnlyCallback),this.commands.off("commandUnavailable",this.$readOnlyCallback),this.hoverTooltip&&(this.hoverTooltip.destroy(),this.hoverTooltip=null))}},initialValue:!1},copyWithEmptySelection:{set:function(_){this.textInput.setCopyWithEmptySelection(_)},initialValue:!1},cursorStyle:{set:function(_){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(_){this.setAutoScrollEditorIntoView(_)}},keyboardHandler:{set:function(_){this.setKeyboardHandler(_)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(_){this.session.setValue(_)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(_){this.setSession(_)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(_){this.renderer.$gutterLayer.setShowLineNumbers(_),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),_&&this.$relativeLineNumbers?v.attach(this):v.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(_){this.$showLineNumbers&&_?v.attach(this):v.detach(this)}},placeholder:{set:function(_){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var b=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(b&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),s.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(!b&&!this.renderer.placeholderNode){this.renderer.on("afterRender",this.$updatePlaceholder),s.addCssClass(this.container,"ace_hasPlaceholder");var M=s.createElement("div");M.className="ace_placeholder",M.textContent=this.$placeholder||"",this.renderer.placeholderNode=M,this.renderer.content.appendChild(this.renderer.placeholderNode)}else!b&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"")}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(_){var b={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(D){D.blur(),D.renderer.scroller.focus()},readOnly:!0},M=function(D){if(D.target==this.renderer.scroller&&D.keyCode===T.enter){D.preventDefault();var O=this.getCursorPosition().row;this.isRowVisible(O)||this.scrollToLine(O,!0,!0),this.focus()}},I;_?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(o.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",C("editor.scroller.aria-roledescription","editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",C("editor.scroller.aria-label","Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",M.bind(this)),this.commands.addCommand(b),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",C("editor.gutter.aria-roledescription","editor gutter")),this.renderer.$gutter.setAttribute("aria-label",C("editor.gutter.aria-label","Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),I||(I=new x(this)),I.addListener(),this.textInput.setAriaOptions({setLabel:!0})):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",M.bind(this)),this.commands.removeCommand(b),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),I&&I.removeListener())},initialValue:!1},textInputAriaLabel:{set:function(_){this.$textInputAriaLabel=_},initialValue:""},enableMobileMenu:{set:function(_){this.$enableMobileMenu=_},initialValue:!0},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var v={getText:function(_,b){return(Math.abs(_.selection.lead.row-b)||b+1+(b<9?"\xB7":""))+""},getWidth:function(_,b,M){return Math.max(b.toString().length,(M.lastRow+1).toString().length,2)*M.characterWidth},update:function(_,b){b.renderer.$loop.schedule(b.renderer.CHANGE_GUTTER)},attach:function(_){_.renderer.$gutterLayer.$renderer=this,_.on("changeSelection",this.update),this.update(null,_)},detach:function(_){_.renderer.$gutterLayer.$renderer==this&&(_.renderer.$gutterLayer.$renderer=null),_.off("changeSelection",this.update),this.update(null,_)}};t.Editor=S});ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(n,t,e){"use strict";var i=n("../lib/dom"),r=function(){function s(a,o){this.element=a,this.canvasHeight=o||5e5,this.element.style.height=this.canvasHeight*2+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return s.prototype.moveContainer=function(a){i.translate(this.element,0,-(a.firstRowScreen*a.lineHeight%this.canvasHeight)-a.offset*this.$offsetCoefficient)},s.prototype.pageChanged=function(a,o){return Math.floor(a.firstRowScreen*a.lineHeight/this.canvasHeight)!==Math.floor(o.firstRowScreen*o.lineHeight/this.canvasHeight)},s.prototype.computeLineTop=function(a,o,l){var c=o.firstRowScreen*o.lineHeight,u=Math.floor(c/this.canvasHeight),d=l.documentToScreenRow(a,0)*o.lineHeight;return d-u*this.canvasHeight},s.prototype.computeLineHeight=function(a,o,l){return o.lineHeight*l.getRowLineCount(a)},s.prototype.getLength=function(){return this.cells.length},s.prototype.get=function(a){return this.cells[a]},s.prototype.shift=function(){this.$cacheCell(this.cells.shift())},s.prototype.pop=function(){this.$cacheCell(this.cells.pop())},s.prototype.push=function(a){if(Array.isArray(a)){this.cells.push.apply(this.cells,a);for(var o=i.createFragment(this.element),l=0;ly&&(x=g.end.row+1,g=m.getNextFoldLine(x,g),y=g?g.start.row:1/0),x>p){for(;this.$lines.getLength()>k+1;)this.$lines.pop();break}w=this.$lines.get(++k),w?w.row=x:(w=this.$lines.createCell(x,h,this.session,u),this.$lines.push(w)),this.$renderCell(w,h,g,x),x++}this._signal("afterRender"),this.$updateGutterWidth(h),this.$showCursorMarker&&this.$highlightGutterLine&&this.$updateCursorMarker()},d.prototype.$updateGutterWidth=function(h){var m=this.session,f=m.gutterRenderer||this.$renderer,p=m.$firstLineNumber,g=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||m.$useWrapMode)&&(g=m.getLength()+p-1);var y=f?f.getWidth(m,g,h):g.toString().length*h.characterWidth,w=this.$padding||this.$computePadding();y+=w.left+w.right,y!==this.gutterWidth&&!isNaN(y)&&(this.gutterWidth=y,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",y))},d.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var h=this.session.selection.getCursor();this.$cursorRow!==h.row&&(this.$cursorRow=h.row)}},d.prototype.updateLineHighlight=function(){if(this.$showCursorMarker&&this.$updateCursorMarker(),!!this.$highlightGutterLine){var h=this.session.selection.cursor.row;if(this.$cursorRow=h,!(this.$cursorCell&&this.$cursorCell.row==h)){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var m=this.$lines.cells;this.$cursorCell=null;for(var f=0;f=this.$cursorRow){if(p.row>this.$cursorRow){var g=this.session.getFoldLine(this.$cursorRow);if(f>0&&g&&g.start.row==m[f-1].row)p=m[f-1];else break}p.element.className="ace_gutter-active-line "+p.element.className,this.$cursorCell=p;break}}}}},d.prototype.$updateCursorMarker=function(){if(this.session){var h=this.session;this.$highlightElement||(this.$highlightElement=i.createElement("div"),this.$highlightElement.className="ace_gutter-cursor",this.$highlightElement.style.pointerEvents="none",this.element.appendChild(this.$highlightElement));var m=h.selection.cursor,f=this.config,p=this.$lines,g=f.firstRowScreen*f.lineHeight,y=Math.floor(g/p.canvasHeight),w=h.documentToScreenRow(m)*f.lineHeight,k=w-y*p.canvasHeight;i.setStyle(this.$highlightElement.style,"height",f.lineHeight+"px"),i.setStyle(this.$highlightElement.style,"top",k+"px")}},d.prototype.scrollLines=function(h){var m=this.config;if(this.config=h,this.$updateCursorRow(),this.$lines.pageChanged(m,h))return this.update(h);this.$lines.moveContainer(h);var f=Math.min(h.lastRow+h.gutterOffset,this.session.getLength()-1),p=this.oldLastRow;if(this.oldLastRow=f,!m||p0;g--)this.$lines.shift();if(p>f)for(var g=this.session.getFoldedRowCount(f+1,p);g>0;g--)this.$lines.pop();h.firstRowp&&this.$lines.push(this.$renderLines(h,p+1,f)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(h)},d.prototype.$renderLines=function(h,m,f){for(var p=[],g=m,y=this.session.getNextFoldLine(g),w=y?y.start.row:1/0;g>w&&(g=y.end.row+1,y=this.session.getNextFoldLine(g,y),w=y?y.start.row:1/0),!(g>f);){var k=this.$lines.createCell(g,h,this.session,u);this.$renderCell(k,h,y,g),p.push(k),g++}return p},d.prototype.$renderCell=function(h,m,f,p){var g=h.element,y=this.session,w=g.childNodes[0],k=g.childNodes[1],x=g.childNodes[2],C=g.childNodes[3],A=x.firstChild,T=y.$firstLineNumber,E=y.$breakpoints,L=y.$decorations,S=y.gutterRenderer||this.$renderer,v=this.$showFoldWidgets&&y.foldWidgets,_=f?f.start.row:Number.MAX_VALUE,b=m.lineHeight+"px",M=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",I=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",D=(S?S.getText(y,p):p+T).toString();if(this.$highlightGutterLine&&(p==this.$cursorRow||f&&p=_&&this.$cursorRow<=f.end.row)&&(M+="ace_gutter-active-line ",this.$cursorCell!=h&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=h)),E[p]&&(M+=E[p]),L[p]&&(M+=L[p]),this.$annotations[p]&&p!==_&&(M+=this.$annotations[p].className),v){var O=v[p];O==null&&(O=v[p]=y.getFoldWidget(p))}if(O){var N="ace_fold-widget ace_"+O,F=O=="start"&&p==_&&pm[p].row)){for(;f<=p;){var g=Math.floor((f+p)/2),y=m[g];if(y.row>h)p=g-1;else if(y.rowf.right-m.right)return"foldWidgets"},d}();c.prototype.$fixedWidth=!1,c.prototype.$highlightGutterLine=!0,c.prototype.$renderer=void 0,c.prototype.$showLineNumbers=!0,c.prototype.$showFoldWidgets=!0,r.implement(c.prototype,a);function u(d){var h=document.createTextNode("");d.appendChild(h);var m=i.createElement("span");d.appendChild(m);var f=i.createElement("span");d.appendChild(f);var p=i.createElement("span");return f.appendChild(p),d}t.Gutter=c});ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(n,t,e){"use strict";var i=n("../range").Range,r=n("../lib/dom"),s=function(){function o(l){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",l.appendChild(this.element)}return o.prototype.setPadding=function(l){this.$padding=l},o.prototype.setSession=function(l){this.session=l},o.prototype.setMarkers=function(l){this.markers=l},o.prototype.elt=function(l,c){var u=this.i!=-1&&this.element.childNodes[this.i];u?this.i++:(u=document.createElement("div"),this.element.appendChild(u),this.i=-1),u.style.cssText=c,u.className=l},o.prototype.update=function(l){if(l){this.config=l,this.i=0;var c;for(var u in this.markers){var d=this.markers[u];if(!d.range){d.update(c,this,this.session,l);continue}var h=d.range.clipRows(l.firstRow,l.lastRow);if(!h.isEmpty())if(h=h.toScreenRange(this.session),d.renderer){var m=this.$getTop(h.start.row,l),f=this.$padding+h.start.column*l.characterWidth;d.renderer(c,h,f,m,l)}else d.type=="fullLine"?this.drawFullLineMarker(c,h,d.clazz,l):d.type=="screenLine"?this.drawScreenLineMarker(c,h,d.clazz,l):h.isMultiLine()?d.type=="text"?this.drawTextMarker(c,h,d.clazz,l):this.drawMultiLineMarker(c,h,d.clazz,l):this.drawSingleLineMarker(c,h,d.clazz+" ace_start ace_br15",l)}if(this.i!=-1)for(;this.ik,g==p),d,g==p?0:1,h)},o.prototype.drawMultiLineMarker=function(l,c,u,d,h){var m=this.$padding,f=d.lineHeight,p=this.$getTop(c.start.row,d),g=m+c.start.column*d.characterWidth;if(h=h||"",this.session.$bidiHandler.isBidiRow(c.start.row)){var y=c.clone();y.end.row=y.start.row,y.end.column=this.session.getLine(y.start.row).length,this.drawBidiSingleLineMarker(l,y,u+" ace_br1 ace_start",d,null,h)}else this.elt(u+" ace_br1 ace_start","height:"+f+"px;right:"+m+"px;top:"+p+"px;left:"+g+"px;"+(h||""));if(this.session.$bidiHandler.isBidiRow(c.end.row)){var y=c.clone();y.start.row=y.end.row,y.start.column=0,this.drawBidiSingleLineMarker(l,y,u+" ace_br12",d,null,h)}else{p=this.$getTop(c.end.row,d);var w=c.end.column*d.characterWidth;this.elt(u+" ace_br12","height:"+f+"px;width:"+w+"px;top:"+p+"px;left:"+m+"px;"+(h||""))}if(f=(c.end.row-c.start.row-1)*d.lineHeight,!(f<=0)){p=this.$getTop(c.start.row+1,d);var k=(c.start.column?1:0)|(c.end.column?0:8);this.elt(u+(k?" ace_br"+k:""),"height:"+f+"px;right:"+m+"px;top:"+p+"px;left:"+m+"px;"+(h||""))}},o.prototype.drawSingleLineMarker=function(l,c,u,d,h,m){if(this.session.$bidiHandler.isBidiRow(c.start.row))return this.drawBidiSingleLineMarker(l,c,u,d,h,m);var f=d.lineHeight,p=(c.end.column+(h||0)-c.start.column)*d.characterWidth,g=this.$getTop(c.start.row,d),y=this.$padding+c.start.column*d.characterWidth;this.elt(u,"height:"+f+"px;width:"+p+"px;top:"+g+"px;left:"+y+"px;"+(m||""))},o.prototype.drawBidiSingleLineMarker=function(l,c,u,d,h,m){var f=d.lineHeight,p=this.$getTop(c.start.row,d),g=this.$padding,y=this.session.$bidiHandler.getSelections(c.start.column,c.end.column);y.forEach(function(w){this.elt(u,"height:"+f+"px;width:"+(w.width+(h||0))+"px;top:"+p+"px;left:"+(g+w.left)+"px;"+(m||""))},this)},o.prototype.drawFullLineMarker=function(l,c,u,d,h){var m=this.$getTop(c.start.row,d),f=d.lineHeight;c.start.row!=c.end.row&&(f+=this.$getTop(c.end.row,d)-m),this.elt(u,"height:"+f+"px;top:"+m+"px;left:0;right:0;"+(h||""))},o.prototype.drawScreenLineMarker=function(l,c,u,d,h){var m=this.$getTop(c.start.row,d),f=d.lineHeight;this.elt(u,"height:"+f+"px;top:"+m+"px;left:0;right:0;"+(h||""))},o}();s.prototype.$padding=0;function a(o,l,c,u){return(o?1:0)|(l?2:0)|(c?4:0)|(u?8:0)}t.Marker=s});ace.define("ace/layer/text_util",["require","exports","module"],function(n,t,e){var i=new Set(["text","rparen","lparen"]);t.isTextToken=function(r){return i.has(r)}});ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],function(n,t,e){"use strict";var i=n("../lib/oop"),r=n("../lib/dom"),s=n("../lib/lang"),a=n("./lines").Lines,o=n("../lib/event_emitter").EventEmitter,l=n("../config").nls,c=n("./text_util").isTextToken,u=function(){function d(h){this.dom=r,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",h.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new a(this.element)}return d.prototype.$updateEolChar=function(){var h=this.session.doc,m=h.getNewLineCharacter()==` +`&&h.getNewLineMode()!="windows",f=m?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=f)return this.EOL_CHAR=f,!0},d.prototype.setPadding=function(h){this.$padding=h,this.element.style.margin="0 "+h+"px"},d.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},d.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},d.prototype.$setFontMetrics=function(h){this.$fontMetrics=h,this.$fontMetrics.on("changeCharacterSize",function(m){this._signal("changeCharacterSize",m)}.bind(this)),this.$pollSizeChanges()},d.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},d.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},d.prototype.setSession=function(h){this.session=h,h&&this.$computeTabString()},d.prototype.setShowInvisibles=function(h){return this.showInvisibles==h?!1:(this.showInvisibles=h,typeof h=="string"?(this.showSpaces=/tab/i.test(h),this.showTabs=/space/i.test(h),this.showEOL=/eol/i.test(h)):this.showSpaces=this.showTabs=this.showEOL=h,this.$computeTabString(),!0)},d.prototype.setDisplayIndentGuides=function(h){return this.displayIndentGuides==h?!1:(this.displayIndentGuides=h,this.$computeTabString(),!0)},d.prototype.setHighlightIndentGuides=function(h){return this.$highlightIndentGuides===h?!1:(this.$highlightIndentGuides=h,h)},d.prototype.$computeTabString=function(){var h=this.session.getTabSize();this.tabSize=h;for(var m=this.$tabStrings=[0],f=1;fA&&(x=C.end.row+1,C=this.session.getNextFoldLine(x,C),A=C?C.start.row:1/0),!(x>g);){var T=y[w++];if(T){this.dom.removeChildren(T),this.$renderLine(T,x,x==A?C:!1),k&&(T.style.top=this.$lines.computeLineTop(x,h,this.session)+"px");var E=h.lineHeight*this.session.getRowLength(x)+"px";T.style.height!=E&&(k=!0,T.style.height=E)}x++}if(k)for(;w0;g--)this.$lines.shift();if(m.lastRow>h.lastRow)for(var g=this.session.getFoldedRowCount(h.lastRow+1,m.lastRow);g>0;g--)this.$lines.pop();h.firstRowm.lastRow&&this.$lines.push(this.$renderLinesFragment(h,m.lastRow+1,h.lastRow)),this.$highlightIndentGuide()},d.prototype.$renderLinesFragment=function(h,m,f){for(var p=[],g=m,y=this.session.getNextFoldLine(g),w=y?y.start.row:1/0;g>w&&(g=y.end.row+1,y=this.session.getNextFoldLine(g,y),w=y?y.start.row:1/0),!(g>f);){var k=this.$lines.createCell(g,h,this.session),x=k.element;this.dom.removeChildren(x),r.setStyle(x.style,"height",this.$lines.computeLineHeight(g,h,this.session)+"px"),r.setStyle(x.style,"top",this.$lines.computeLineTop(g,h,this.session)+"px"),this.$renderLine(x,g,g==w?y:!1),this.$useLineGroups()?x.className="ace_line_group":x.className="ace_line",p.push(k),g++}return p},d.prototype.update=function(h){this.$lines.moveContainer(h),this.config=h;for(var m=h.firstRow,f=h.lastRow,p=this.$lines;p.getLength();)p.pop();p.push(this.$renderLinesFragment(h,m,f))},d.prototype.$renderToken=function(h,m,f,p){for(var g=this,y=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069\u2060\u2061\u2062\u2063\u2064\u206A\u206B\u206B\u206C\u206D\u206E\u206F]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,w=this.dom.createFragment(this.element),k,x=0;k=y.exec(p);){var C=k[1],A=k[2],T=k[3],E=k[4],L=k[5];if(!(!g.showSpaces&&A)){var S=x!=k.index?p.slice(x,k.index):"";if(x=k.index+k[0].length,S&&w.appendChild(this.dom.createTextNode(S,this.element)),C){var v=g.session.getScreenTabSize(m+k.index),_=g.$tabStrings[v].cloneNode(!0);_.charCount=1,w.appendChild(_),m+=v-1}else if(A)if(g.showSpaces){var b=this.dom.createElement("span");b.className="ace_invisible ace_invisible_space",b.textContent=s.stringRepeat(g.SPACE_CHAR,A.length),w.appendChild(b)}else w.appendChild(this.dom.createTextNode(A,this.element));else if(T){var b=this.dom.createElement("span");b.className="ace_invisible ace_invisible_space ace_invalid",b.textContent=s.stringRepeat(g.SPACE_CHAR,T.length),w.appendChild(b)}else if(E){m+=1;var b=this.dom.createElement("span");b.style.width=g.config.characterWidth*2+"px",b.className=g.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",b.textContent=g.showSpaces?g.SPACE_CHAR:E,w.appendChild(b)}else if(L){m+=1;var b=this.dom.createElement("span");b.style.width=g.config.characterWidth*2+"px",b.className="ace_cjk",b.textContent=L,w.appendChild(b)}}}if(w.appendChild(this.dom.createTextNode(x?p.slice(x):p,this.element)),c(f.type))h.appendChild(w);else{var M="ace_"+f.type.replace(/\./g," ace_"),b=this.dom.createElement("span");f.type=="fold"&&(b.style.width=f.value.length*this.config.characterWidth+"px",b.setAttribute("title",l("inline-fold.closed.title","Unfold code"))),b.className=M,b.appendChild(w),h.appendChild(b)}return m+p.length},d.prototype.renderIndentGuide=function(h,m,f){var p=m.search(this.$indentGuideRe);if(p<=0||p>=f)return m;if(m[0]==" "){p-=p%this.tabSize;for(var g=p/this.tabSize,y=0;yy[w].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}}if(!this.$highlightIndentGuideMarker.end&&h[m.row]!==""&&m.column===h[m.row].length){this.$highlightIndentGuideMarker.dir=1;for(var w=m.row+1;w0)p=h.element.childNodes[0];else return;var g=p.childNodes;if(g){var y=g[m-1];y&&y.classList&&y.classList.contains("ace_indent-guide")&&y.classList.add("ace_indent-guide-active")}}},d.prototype.$renderHighlightIndentGuide=function(){if(this.$lines){var h=this.$lines.cells;this.$clearActiveIndentGuide();var m=this.$highlightIndentGuideMarker.indentLevel;if(m!==0)if(this.$highlightIndentGuideMarker.dir===1)for(var f=0;f=this.$highlightIndentGuideMarker.start+1){if(p.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(p,m)}}else for(var f=h.length-1;f>=0;f--){var p=h[f];if(this.$highlightIndentGuideMarker.end&&p.row=y;){w=this.$renderToken(k,w,C,A.substring(0,y-p)),A=A.substring(y-p),p=y,k=this.$createLineElement(),h.appendChild(k);var T=this.dom.createTextNode(s.stringRepeat("\xA0",f.indent),this.element);T.charCount=0,k.appendChild(T),g++,w=0,y=f[g]||Number.MAX_VALUE}A.length!=0&&(p+=A.length,w=this.$renderToken(k,w,C,A))}}f[f.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(k,w,null,"",!0)},d.prototype.$renderSimpleLine=function(h,m){for(var f=0,p=0;pthis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(h,f,g,y);f=this.$renderToken(h,f,g,y)}}},d.prototype.$renderOverflowMessage=function(h,m,f,p,g){f&&this.$renderToken(h,m,f,p.slice(0,this.MAX_LINE_LENGTH-m));var y=this.dom.createElement("span");y.className="ace_inline_button ace_keyword ace_toggle_wrap",y.textContent=g?"":"",h.appendChild(y)},d.prototype.$renderLine=function(h,m,f){if(!f&&f!=!1&&(f=this.session.getFoldLine(m)),f)var p=this.$getFoldLineTokens(m,f);else var p=this.session.getTokens(m);var g=h;if(p.length){var y=this.session.getRowSplitData(m);if(y&&y.length){this.$renderWrappedLine(h,p,y);var g=h.lastChild}else{var g=h;this.$useLineGroups()&&(g=this.$createLineElement(),h.appendChild(g)),this.$renderSimpleLine(g,p)}}else this.$useLineGroups()&&(g=this.$createLineElement(),h.appendChild(g));if(this.showEOL&&g){f&&(m=f.end.row);var w=this.dom.createElement("span");w.className="ace_invisible ace_invisible_eol",w.textContent=m==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,g.appendChild(w)}},d.prototype.$getFoldLineTokens=function(h,m){var f=this.session,p=[];function g(w,k,x){for(var C=0,A=0;A+w[C].value.lengthx-k&&(T=T.substring(0,x-k)),p.push({type:w[C].type,value:T}),A=k+T.length,C+=1}for(;Ax?p.push({type:w[C].type,value:T.substring(0,x-A)}):p.push(w[C]),A+=T.length,C+=1}}var y=f.getTokens(h);return m.walk(function(w,k,x,C,A){w!=null?p.push({type:"fold",value:w}):(A&&(y=f.getTokens(k)),y.length&&g(y,C,x))},m.end.row,this.session.getLine(m.end.row).length),p},d.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},d}();u.prototype.EOF_CHAR="\xB6",u.prototype.EOL_CHAR_LF="\xAC",u.prototype.EOL_CHAR_CRLF="\xA4",u.prototype.EOL_CHAR=u.prototype.EOL_CHAR_LF,u.prototype.TAB_CHAR="\u2014",u.prototype.SPACE_CHAR="\xB7",u.prototype.$padding=0,u.prototype.MAX_LINE_LENGTH=1e4,u.prototype.showInvisibles=!1,u.prototype.showSpaces=!1,u.prototype.showTabs=!1,u.prototype.showEOL=!1,u.prototype.displayIndentGuides=!0,u.prototype.$highlightIndentGuides=!0,u.prototype.$tabStrings=[],u.prototype.destroy={},u.prototype.onChangeTabSize=u.prototype.$computeTabString,i.implement(u.prototype,o),t.Text=u});ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(n,t,e){"use strict";var i=n("../lib/dom"),r=function(){function s(a){this.element=i.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),i.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return s.prototype.$updateOpacity=function(a){for(var o=this.cursors,l=o.length;l--;)i.setStyle(o[l].style,"opacity",a?"":"0")},s.prototype.$startCssAnimation=function(){for(var a=this.cursors,o=a.length;o--;)a[o].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&i.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},s.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,i.removeCssClass(this.element,"ace_animate-blinking")},s.prototype.setPadding=function(a){this.$padding=a},s.prototype.setSession=function(a){this.session=a},s.prototype.setBlinking=function(a){a!=this.isBlinking&&(this.isBlinking=a,this.restartTimer())},s.prototype.setBlinkInterval=function(a){a!=this.blinkInterval&&(this.blinkInterval=a,this.restartTimer())},s.prototype.setSmoothBlinking=function(a){a!=this.smoothBlinking&&(this.smoothBlinking=a,i.setCssClass(this.element,"ace_smooth-blinking",a),this.$updateCursors(!0),this.restartTimer())},s.prototype.addCursor=function(){var a=i.createElement("div");return a.className="ace_cursor",this.element.appendChild(a),this.cursors.push(a),a},s.prototype.removeCursor=function(){if(this.cursors.length>1){var a=this.cursors.pop();return a.parentNode.removeChild(a),a}},s.prototype.hideCursor=function(){this.isVisible=!1,i.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},s.prototype.showCursor=function(){this.isVisible=!0,i.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},s.prototype.restartTimer=function(){var a=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,i.removeCssClass(this.element,"ace_smooth-blinking")),a(!0),!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&i.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),i.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var o=function(){this.timeoutId=setTimeout(function(){a(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){a(!0),o()},this.blinkInterval),o()}},s.prototype.getPixelPosition=function(a,o){if(!this.config||!this.session)return{left:0,top:0};a||(a=this.session.selection.getCursor());var l=this.session.documentToScreenPosition(a),c=this.$padding+(this.session.$bidiHandler.isBidiRow(l.row,a.row)?this.session.$bidiHandler.getPosLeft(l.column):l.column*this.config.characterWidth),u=(l.row-(o?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:c,top:u}},s.prototype.isCursorInView=function(a,o){return a.top>=0&&a.topa.height+a.offset||d.top<0)&&l>1)){var h=this.cursors[c++]||this.addCursor(),m=h.style;this.drawCursor?this.drawCursor(h,d,a,o[l],this.session):this.isCursorInView(d,a)?(i.setStyle(m,"display","block"),i.translate(h,d.left,d.top),i.setStyle(m,"width",Math.round(a.characterWidth)+"px"),i.setStyle(m,"height",a.lineHeight+"px")):i.setStyle(m,"display","none")}}for(;this.cursors.length>c;)this.removeCursor();var f=this.session.getOverwrite();this.$setOverwrite(f),this.$pixelPos=d,this.restartTimer()},s.prototype.$setOverwrite=function(a){a!=this.overwrite&&(this.overwrite=a,a?i.addCssClass(this.element,"ace_overwrite-cursors"):i.removeCssClass(this.element,"ace_overwrite-cursors"))},s.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},s}();r.prototype.$padding=0,r.prototype.drawCursor=null,t.Cursor=r});ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(n,t,e){"use strict";var i=this&&this.__extends||function(){var h=function(m,f){return h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(p,g){p.__proto__=g}||function(p,g){for(var y in g)Object.prototype.hasOwnProperty.call(g,y)&&(p[y]=g[y])},h(m,f)};return function(m,f){if(typeof f!="function"&&f!==null)throw new TypeError("Class extends value "+String(f)+" is not a constructor or null");h(m,f);function p(){this.constructor=m}m.prototype=f===null?Object.create(f):(p.prototype=f.prototype,new p)}}(),r=n("./lib/oop"),s=n("./lib/dom"),a=n("./lib/event"),o=n("./lib/event_emitter").EventEmitter,l=32768,c=function(){function h(m,f){this.element=s.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+f,this.inner=s.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent="\xA0",this.element.appendChild(this.inner),m.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addListener(this.element,"scroll",this.onScroll.bind(this)),a.addListener(this.element,"mousedown",a.preventDefault)}return h.prototype.setVisible=function(m){this.element.style.display=m?"":"none",this.isVisible=m,this.coeff=1},h}();r.implement(c.prototype,o);var u=function(h){i(m,h);function m(f,p){var g=h.call(this,f,"-v")||this;return g.scrollTop=0,g.scrollHeight=0,p.$scrollbarWidth=g.width=s.scrollbarWidth(f.ownerDocument),g.inner.style.width=g.element.style.width=(g.width||15)+5+"px",g.$minWidth=0,g}return m.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,this.coeff!=1){var f=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-f)/(this.coeff-f)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},m.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},m.prototype.setHeight=function(f){this.element.style.height=f+"px"},m.prototype.setScrollHeight=function(f){this.scrollHeight=f,f>l?(this.coeff=l/f,f=l):this.coeff!=1&&(this.coeff=1),this.inner.style.height=f+"px"},m.prototype.setScrollTop=function(f){this.scrollTop!=f&&(this.skipEvent=!0,this.scrollTop=f,this.element.scrollTop=f*this.coeff)},m}(c);u.prototype.setInnerHeight=u.prototype.setScrollHeight;var d=function(h){i(m,h);function m(f,p){var g=h.call(this,f,"-h")||this;return g.scrollLeft=0,g.height=p.$scrollbarWidth,g.inner.style.height=g.element.style.height=(g.height||15)+5+"px",g}return m.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},m.prototype.getHeight=function(){return this.isVisible?this.height:0},m.prototype.setWidth=function(f){this.element.style.width=f+"px"},m.prototype.setInnerWidth=function(f){this.inner.style.width=f+"px"},m.prototype.setScrollWidth=function(f){this.inner.style.width=f+"px"},m.prototype.setScrollLeft=function(f){this.scrollLeft!=f&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=f)},m}(c);t.ScrollBar=u,t.ScrollBarV=u,t.ScrollBarH=d,t.VScrollBar=u,t.HScrollBar=d});ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(n,t,e){"use strict";var i=this&&this.__extends||function(){var d=function(h,m){return d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,p){f.__proto__=p}||function(f,p){for(var g in p)Object.prototype.hasOwnProperty.call(p,g)&&(f[g]=p[g])},d(h,m)};return function(h,m){if(typeof m!="function"&&m!==null)throw new TypeError("Class extends value "+String(m)+" is not a constructor or null");d(h,m);function f(){this.constructor=h}h.prototype=m===null?Object.create(m):(f.prototype=m.prototype,new f)}}(),r=n("./lib/oop"),s=n("./lib/dom"),a=n("./lib/event"),o=n("./lib/event_emitter").EventEmitter;s.importCssString(`.ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{ + position: absolute; + background: rgba(128, 128, 128, 0.6); + -moz-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid #bbb; + border-radius: 2px; + z-index: 8; +} +.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h { + position: absolute; + z-index: 6; + background: none; + overflow: hidden!important; +} +.ace_editor>.ace_sb-v { + z-index: 6; + right: 0; + top: 0; + width: 12px; +} +.ace_editor>.ace_sb-v div { + z-index: 8; + right: 0; + width: 100%; +} +.ace_editor>.ace_sb-h { + bottom: 0; + left: 0; + height: 12px; +} +.ace_editor>.ace_sb-h div { + bottom: 0; + height: 100%; +} +.ace_editor>.ace_sb_grabbed { + z-index: 8; + background: #000; +}`,"ace_scrollbar.css",!1);var l=function(){function d(h,m){this.element=s.createElement("div"),this.element.className="ace_sb"+m,this.inner=s.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,h.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return d.prototype.setVisible=function(h){this.element.style.display=h?"":"none",this.isVisible=h,this.coeff=1},d}();r.implement(l.prototype,o);var c=function(d){i(h,d);function h(m,f){var p=d.call(this,m,"-v")||this;return p.scrollTop=0,p.scrollHeight=0,p.parent=m,p.width=p.VScrollWidth,p.renderer=f,p.inner.style.width=p.element.style.width=(p.width||15)+"px",p.$minWidth=0,p}return h.prototype.onMouseDown=function(m,f){if(m==="mousedown"&&!(a.getButton(f)!==0||f.detail===2)){if(f.target===this.inner){var p=this,g=f.clientY,y=function(E){g=E.clientY},w=function(){clearInterval(A)},k=f.clientY,x=this.thumbTop,C=function(){if(g!==void 0){var E=p.scrollTopFromThumbTop(x+g-k);E!==p.scrollTop&&p._emit("scroll",{data:E})}};a.capture(this.inner,y,w);var A=setInterval(C,20);return a.preventDefault(f)}var T=f.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(T)}),a.preventDefault(f)}},h.prototype.getHeight=function(){return this.height},h.prototype.scrollTopFromThumbTop=function(m){var f=m*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return f=f>>0,f<0?f=0:f>this.pageHeight-this.viewHeight&&(f=this.pageHeight-this.viewHeight),f},h.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},h.prototype.setHeight=function(m){this.height=Math.max(0,m),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},h.prototype.setScrollHeight=function(m,f){this.pageHeight===m&&!f||(this.pageHeight=m,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},h.prototype.setScrollTop=function(m){this.scrollTop=m,m<0&&(m=0),this.thumbTop=m*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},h}(l);c.prototype.setInnerHeight=c.prototype.setScrollHeight;var u=function(d){i(h,d);function h(m,f){var p=d.call(this,m,"-h")||this;return p.scrollLeft=0,p.scrollWidth=0,p.height=p.HScrollHeight,p.inner.style.height=p.element.style.height=(p.height||12)+"px",p.renderer=f,p}return h.prototype.onMouseDown=function(m,f){if(m==="mousedown"&&!(a.getButton(f)!==0||f.detail===2)){if(f.target===this.inner){var p=this,g=f.clientX,y=function(E){g=E.clientX},w=function(){clearInterval(A)},k=f.clientX,x=this.thumbLeft,C=function(){if(g!==void 0){var E=p.scrollLeftFromThumbLeft(x+g-k);E!==p.scrollLeft&&p._emit("scroll",{data:E})}};a.capture(this.inner,y,w);var A=setInterval(C,20);return a.preventDefault(f)}var T=f.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(T)}),a.preventDefault(f)}},h.prototype.getHeight=function(){return this.isVisible?this.height:0},h.prototype.scrollLeftFromThumbLeft=function(m){var f=m*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return f=f>>0,f<0?f=0:f>this.pageWidth-this.viewWidth&&(f=this.pageWidth-this.viewWidth),f},h.prototype.setWidth=function(m){this.width=Math.max(0,m),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},h.prototype.setScrollWidth=function(m,f){this.pageWidth===m&&!f||(this.pageWidth=m,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},h.prototype.setScrollLeft=function(m){this.scrollLeft=m,m<0&&(m=0),this.thumbLeft=m*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},h}(l);u.prototype.setInnerWidth=u.prototype.setScrollWidth,t.ScrollBar=c,t.ScrollBarV=c,t.ScrollBarH=u,t.VScrollBar=c,t.HScrollBar=u});ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(n,t,e){"use strict";var i=n("./lib/event"),r=function(){function s(a,o){this.onRender=a,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=o||window;var l=this;this._flush=function(c){l.pending=!1;var u=l.changes;if(u&&(i.blockIdle(100),l.changes=0,l.onRender(u)),l.changes){if(l.$recursionLimit--<0)return;l.schedule()}else l.$recursionLimit=2}}return s.prototype.schedule=function(a){this.changes=this.changes|a,this.changes&&!this.pending&&(i.nextFrame(this._flush),this.pending=!0)},s.prototype.clear=function(a){var o=this.changes;return this.changes=0,o},s}();t.RenderLoop=r});ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(n,t,e){var i=n("../lib/oop"),r=n("../lib/dom"),s=n("../lib/lang"),a=n("../lib/event"),o=n("../lib/useragent"),l=n("../lib/event_emitter").EventEmitter,c=512,u=typeof ResizeObserver=="function",d=200,h=function(){function m(f){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),f.appendChild(this.el),this.$measureNode.textContent=s.stringRepeat("X",c),this.$characterSize={width:0,height:0},u?this.$addObserver():this.checkForSizeChanges()}return m.prototype.$setMeasureNodeStyles=function(f,p){f.width=f.height="auto",f.left=f.top="0px",f.visibility="hidden",f.position="absolute",f.whiteSpace="pre",o.isIE<8?f["font-family"]="inherit":f.font="inherit",f.overflow=p?"hidden":"visible"},m.prototype.checkForSizeChanges=function(f){if(f===void 0&&(f=this.$measureSizes()),f&&(this.$characterSize.width!==f.width||this.$characterSize.height!==f.height)){this.$measureNode.style.fontWeight="bold";var p=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=f,this.charSizes=Object.create(null),this.allowBoldFonts=p&&p.width===f.width&&p.height===f.height,this._emit("changeCharacterSize",{data:f})}},m.prototype.$addObserver=function(){var f=this;this.$observer=new window.ResizeObserver(function(p){f.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},m.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var f=this;return this.$pollSizeChangesTimer=a.onIdle(function p(){f.checkForSizeChanges(),a.onIdle(p,500)},500)},m.prototype.setPolling=function(f){f?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},m.prototype.$measureSizes=function(f){var p={height:(f||this.$measureNode).clientHeight,width:(f||this.$measureNode).clientWidth/c};return p.width===0||p.height===0?null:p},m.prototype.$measureCharWidth=function(f){this.$main.textContent=s.stringRepeat(f,c);var p=this.$main.getBoundingClientRect();return p.width/c},m.prototype.getCharacterWidth=function(f){var p=this.charSizes[f];return p===void 0&&(p=this.charSizes[f]=this.$measureCharWidth(f)/this.$characterSize.width),p},m.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},m.prototype.$getZoom=function(f){return!f||!f.parentElement?1:(Number(window.getComputedStyle(f).zoom)||1)*this.$getZoom(f.parentElement)},m.prototype.$initTransformMeasureNodes=function(){var f=function(p,g){return["div",{style:"position: absolute;top:"+p+"px;left:"+g+"px;"}]};this.els=r.buildDom([f(0,0),f(d,0),f(0,d),f(d,d)],this.el)},m.prototype.transformCoordinates=function(f,p){if(f){var g=this.$getZoom(this.el);f=x(1/g,f)}function y(N,F,z){var V=N[1]*F[0]-N[0]*F[1];return[(-F[1]*z[0]+F[0]*z[1])/V,(+N[1]*z[0]-N[0]*z[1])/V]}function w(N,F){return[N[0]-F[0],N[1]-F[1]]}function k(N,F){return[N[0]+F[0],N[1]+F[1]]}function x(N,F){return[N*F[0],N*F[1]]}this.els||this.$initTransformMeasureNodes();function C(N){var F=N.getBoundingClientRect();return[F.left,F.top]}var A=C(this.els[0]),T=C(this.els[1]),E=C(this.els[2]),L=C(this.els[3]),S=y(w(L,T),w(L,E),w(k(T,E),k(L,A))),v=x(1+S[0],w(T,A)),_=x(1+S[1],w(E,A));if(p){var b=p,M=S[0]*b[0]/d+S[1]*b[1]/d+1,I=k(x(b[0],v),x(b[1],_));return k(x(1/M/d,I),A)}var D=w(f,A),O=y(w(v,x(S[0],D)),w(_,x(S[1],D)),D);return x(d,O)},m}();h.prototype.$characterSize={width:0,height:0},i.implement(h.prototype,l),t.FontMetrics=h});ace.define("ace/css/editor-css",["require","exports","module"],function(n,t,e){e.exports=` +.ace_br1 {border-top-left-radius : 3px;} +.ace_br2 {border-top-right-radius : 3px;} +.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;} +.ace_br4 {border-bottom-right-radius: 3px;} +.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;} +.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;} +.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;} +.ace_br8 {border-bottom-left-radius : 3px;} +.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;} +.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;} +.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;} +.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} +.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} +.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} +.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} + + +.ace_editor { + position: relative; + overflow: hidden; + padding: 0; + font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'Source Code Pro', 'source-code-pro', monospace; + direction: ltr; + text-align: left; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + forced-color-adjust: none; +} + +.ace_scroller { + position: absolute; + overflow: hidden; + top: 0; + bottom: 0; + background-color: inherit; + -ms-user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + user-select: none; + cursor: text; +} + +.ace_content { + position: absolute; + box-sizing: border-box; + min-width: 100%; + contain: style size layout; + font-variant-ligatures: no-common-ligatures; +} +.ace_invisible { + font-variant-ligatures: none; +} + +.ace_keyboard-focus:focus { + box-shadow: inset 0 0 0 2px #5E9ED6; + outline: none; +} + +.ace_dragging .ace_scroller:before{ + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + content: ''; + background: rgba(250, 250, 250, 0.01); + z-index: 1000; +} +.ace_dragging.ace_dark .ace_scroller:before{ + background: rgba(0, 0, 0, 0.01); +} + +.ace_gutter { + position: absolute; + overflow : hidden; + width: auto; + top: 0; + bottom: 0; + left: 0; + cursor: default; + z-index: 4; + -ms-user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + user-select: none; + contain: style size layout; +} + +.ace_gutter-active-line { + position: absolute; + left: 0; + right: 0; +} + +.ace_scroller.ace_scroll-left:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset; + pointer-events: none; +} + +.ace_gutter-cell, .ace_gutter-cell_svg-icons { + position: absolute; + top: 0; + left: 0; + right: 0; + padding-left: 19px; + padding-right: 6px; + background-repeat: no-repeat; +} + +.ace_gutter-cell_svg-icons .ace_gutter_annotation { + margin-left: -14px; + float: left; +} + +.ace_gutter-cell .ace_gutter_annotation { + margin-left: -19px; + float: left; +} + +.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold, .ace_gutter-cell.ace_security, .ace_icon.ace_security, .ace_icon.ace_security_fold { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg=="); + background-repeat: no-repeat; + background-position: 2px center; +} + +.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg=="); + background-repeat: no-repeat; + background-position: 2px center; +} + +.ace_gutter-cell.ace_info, .ace_icon.ace_info, .ace_gutter-cell.ace_hint, .ace_icon.ace_hint { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII="); + background-repeat: no-repeat; + background-position: 2px center; +} + +.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info, .ace_dark .ace_gutter-cell.ace_hint, .ace_dark .ace_icon.ace_hint { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC"); +} + +.ace_icon_svg.ace_error { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+"); + background-color: crimson; +} +.ace_icon_svg.ace_security { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0iZGFya29yYW5nZSIgZmlsbD0ibm9uZSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgogICAgICAgIDxwYXRoIGNsYXNzPSJzdHJva2UtbGluZWpvaW4tcm91bmQiIGQ9Ik04IDE0LjgzMDdDOCAxNC44MzA3IDIgMTIuOTA0NyAyIDguMDg5OTJWMy4yNjU0OEM1LjMxIDMuMjY1NDggNy45ODk5OSAxLjM0OTE4IDcuOTg5OTkgMS4zNDkxOEM3Ljk4OTk5IDEuMzQ5MTggMTAuNjkgMy4yNjU0OCAxNCAzLjI2NTQ4VjguMDg5OTJDMTQgMTIuOTA0NyA4IDE0LjgzMDcgOCAxNC44MzA3WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yIDguMDg5OTJWMy4yNjU0OEM1LjMxIDMuMjY1NDggNy45ODk5OSAxLjM0OTE4IDcuOTg5OTkgMS4zNDkxOCIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMy45OSA4LjA4OTkyVjMuMjY1NDhDMTAuNjggMy4yNjU0OCA4IDEuMzQ5MTggOCAxLjM0OTE4Ii8+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTggNFY5Ii8+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTggMTBWMTIiLz4KICAgIDwvZz4KPC9zdmc+"); + background-color: crimson; +} +.ace_icon_svg.ace_warning { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg=="); + background-color: darkorange; +} +.ace_icon_svg.ace_info { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg=="); + background-color: royalblue; +} +.ace_icon_svg.ace_hint { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0ic2lsdmVyIiBmaWxsPSJub25lIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CiAgICAgICAgPHBhdGggY2xhc3M9InN0cm9rZS1saW5lam9pbi1yb3VuZCIgZD0iTTYgMTRIMTAiLz4KICAgICAgICA8cGF0aCBkPSJNOCAxMUg5QzkgOS40NzAwMiAxMiA4LjU0MDAyIDEyIDUuNzYwMDJDMTIuMDIgNC40MDAwMiAxMS4zOSAzLjM2MDAyIDEwLjQzIDIuNjcwMDJDOSAxLjY0MDAyIDcuMDAwMDEgMS42NDAwMiA1LjU3MDAxIDIuNjcwMDJDNC42MTAwMSAzLjM2MDAyIDMuOTggNC40MDAwMiA0IDUuNzYwMDJDNCA4LjU0MDAyIDcuMDAwMDEgOS40NzAwMiA3LjAwMDAxIDExSDhaIi8+CiAgICA8L2c+Cjwvc3ZnPg=="); + background-color: silver; +} + +.ace_icon_svg.ace_error_fold { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4="); + background-color: crimson; +} +.ace_icon_svg.ace_security_fold { + -webkit-mask-image: url("data:image/svg+xml;base64,CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTcgMTQiIGZpbGw9Im5vbmUiPgogICAgPHBhdGggZD0iTTEwLjAwMDEgMTMuNjk5MkMxMC4wMDAxIDEzLjY5OTIgMTEuOTI0MSAxMy40NzYzIDEzIDEyLjY5OTJDMTQuNDEzOSAxMS42NzgxIDE2IDEwLjUgMTYuMTI1MSA2LjgxMTI2VjIuNTg5ODdDMTYuMTI1MSAyLjU0NzY4IDE2LjEyMjEgMi41MDYxOSAxNi4xMTY0IDIuNDY1NTlWMS43MTQ4NUgxNS4yNDE0TDE1LjIzMDcgMS43MTQ4NEwxNC42MjUxIDEuNjk5MjJWNi44MTEyM0MxNC42MjUxIDguNTEwNjEgMTQuNjI1MSA5LjQ2NDYxIDEyLjc4MjQgMTEuNzIxQzEyLjE1ODYgMTIuNDg0OCAxMC4wMDAxIDEzLjY5OTIgMTAuMDAwMSAxMy42OTkyWiIgZmlsbD0iY3JpbXNvbiIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTcuMzM2MDkgMC4zNjc0NzVDNy4wMzIxNCAwLjE1MjY1MiA2LjYyNTQ4IDAuMTUzNjE0IDYuMzIyNTMgMC4zNjk5OTdMNi4zMDg2OSAwLjM3OTU1NEM2LjI5NTUzIDAuMzg4NTg4IDYuMjczODggMC40MDMyNjYgNi4yNDQxNyAwLjQyMjc4OUM2LjE4NDcxIDAuNDYxODYgNi4wOTMyMSAwLjUyMDE3MSA1Ljk3MzEzIDAuNTkxMzczQzUuNzMyNTEgMC43MzQwNTkgNS4zNzk5IDAuOTI2ODY0IDQuOTQyNzkgMS4xMjAwOUM0LjA2MTQ0IDEuNTA5NyAyLjg3NTQxIDEuODgzNzcgMS41ODk4NCAxLjg4Mzc3SDAuNzE0ODQ0VjIuNzU4NzdWNi45ODAxNUMwLjcxNDg0NCA5LjQ5Mzc0IDIuMjg4NjYgMTEuMTk3MyAzLjcwMjU0IDEyLjIxODVDNC40MTg0NSAxMi43MzU1IDUuMTI4NzQgMTMuMTA1MyA1LjY1NzMzIDEzLjM0NTdDNS45MjI4NCAxMy40NjY0IDYuMTQ1NjYgMTMuNTU1OSA2LjMwNDY1IDEzLjYxNjFDNi4zODQyMyAxMy42NDYyIDYuNDQ4MDUgMTMuNjY5IDYuNDkzNDkgMTMuNjg0OEM2LjUxNjIyIDEzLjY5MjcgNi41MzQzOCAxMy42OTg5IDYuNTQ3NjQgMTMuNzAzM0w2LjU2MzgyIDEzLjcwODdMNi41NjkwOCAxMy43MTA0TDYuNTcwOTkgMTMuNzExTDYuODM5ODQgMTMuNzUzM0w2LjU3MjQyIDEzLjcxMTVDNi43NDYzMyAxMy43NjczIDYuOTMzMzUgMTMuNzY3MyA3LjEwNzI3IDEzLjcxMTVMNy4xMDg3IDEzLjcxMUw3LjExMDYxIDEzLjcxMDRMNy4xMTU4NyAxMy43MDg3TDcuMTMyMDUgMTMuNzAzM0M3LjE0NTMxIDEzLjY5ODkgNy4xNjM0NiAxMy42OTI3IDcuMTg2MTkgMTMuNjg0OEM3LjIzMTY0IDEzLjY2OSA3LjI5NTQ2IDEzLjY0NjIgNy4zNzUwMyAxMy42MTYxQzcuNTM0MDMgMTMuNTU1OSA3Ljc1Njg1IDEzLjQ2NjQgOC4wMjIzNiAxMy4zNDU3QzguNTUwOTUgMTMuMTA1MyA5LjI2MTIzIDEyLjczNTUgOS45NzcxNSAxMi4yMTg1QzExLjM5MSAxMS4xOTczIDEyLjk2NDggOS40OTM3NyAxMi45NjQ4IDYuOTgwMThWMi43NTg4QzEyLjk2NDggMi43MTY2IDEyLjk2MTkgMi42NzUxMSAxMi45NTYxIDIuNjM0NTFWMS44ODM3N0gxMi4wODExQzEyLjA3NzUgMS44ODM3NyAxMi4wNzQgMS44ODM3NyAxMi4wNzA0IDEuODgzNzdDMTAuNzk3OSAxLjg4MDA0IDkuNjE5NjIgMS41MTEwMiA4LjczODk0IDEuMTI0ODZDOC43MzUzNCAxLjEyMzI3IDguNzMxNzQgMS4xMjE2OCA4LjcyODE0IDEuMTIwMDlDOC4yOTEwMyAwLjkyNjg2NCA3LjkzODQyIDAuNzM0MDU5IDcuNjk3NzkgMC41OTEzNzNDNy41Nzc3MiAwLjUyMDE3MSA3LjQ4NjIyIDAuNDYxODYgNy40MjY3NiAwLjQyMjc4OUM3LjM5NzA1IDAuNDAzMjY2IDcuMzc1MzkgMC4zODg1ODggNy4zNjIyNCAwLjM3OTU1NEw3LjM0ODk2IDAuMzcwMzVDNy4zNDg5NiAwLjM3MDM1IDcuMzQ4NDcgMC4zNzAwMiA3LjM0NTYzIDAuMzc0MDU0TDcuMzM3NzkgMC4zNjg2NTlMNy4zMzYwOSAwLjM2NzQ3NVpNOC4wMzQ3MSAyLjcyNjkxQzguODYwNCAzLjA5MDYzIDkuOTYwNjYgMy40NjMwOSAxMS4yMDYxIDMuNTg5MDdWNi45ODAxNUgxMS4yMTQ4QzExLjIxNDggOC42Nzk1MyAxMC4xNjM3IDkuOTI1MDcgOC45NTI1NCAxMC43OTk4QzguMzU1OTUgMTEuMjMwNiA3Ljc1Mzc0IDExLjU0NTQgNy4yOTc5NiAxMS43NTI3QzcuMTE2NzEgMTEuODM1MSA2Ljk2MDYyIDExLjg5OTYgNi44Mzk4NCAxMS45NDY5QzYuNzE5MDYgMTEuODk5NiA2LjU2Mjk3IDExLjgzNTEgNi4zODE3MyAxMS43NTI3QzUuOTI1OTUgMTEuNTQ1NCA1LjMyMzczIDExLjIzMDYgNC43MjcxNSAxMC43OTk4QzMuNTE2MDMgOS45MjUwNyAyLjQ2NDg0IDguNjc5NTUgMi40NjQ4NCA2Ljk4MDE4VjMuNTg5MDlDMy43MTczOCAzLjQ2MjM5IDQuODIzMDggMy4wODYzOSA1LjY1MDMzIDIuNzIwNzFDNi4xNDIyOCAyLjUwMzI0IDYuNTQ0ODUgMi4yODUzNyA2LjgzMjU0IDIuMTE2MjRDNy4xMjE4MSAyLjI4NTM1IDcuNTI3IDIuNTAzNTIgOC4wMjE5NiAyLjcyMTMxQzguMDI2MiAyLjcyMzE3IDguMDMwNDUgMi43MjUwNCA4LjAzNDcxIDIuNzI2OTFaTTUuOTY0ODQgMy40MDE0N1Y3Ljc3NjQ3SDcuNzE0ODRWMy40MDE0N0g1Ljk2NDg0Wk01Ljk2NDg0IDEwLjQwMTVWOC42NTE0N0g3LjcxNDg0VjEwLjQwMTVINS45NjQ4NFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4="); + background-color: crimson; +} +.ace_icon_svg.ace_warning_fold { + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4="); + background-color: darkorange; +} + +.ace_scrollbar { + contain: strict; + position: absolute; + right: 0; + bottom: 0; + z-index: 6; +} + +.ace_scrollbar-inner { + position: absolute; + cursor: text; + left: 0; + top: 0; +} + +.ace_scrollbar-v{ + overflow-x: hidden; + overflow-y: scroll; + top: 0; +} + +.ace_scrollbar-h { + overflow-x: scroll; + overflow-y: hidden; + left: 0; +} + +.ace_print-margin { + position: absolute; + height: 100%; +} + +.ace_text-input { + position: absolute; + z-index: 0; + width: 0.5em; + height: 1em; + opacity: 0; + background: transparent; + -moz-appearance: none; + appearance: none; + border: none; + resize: none; + outline: none; + overflow: hidden; + font: inherit; + padding: 0 1px; + margin: 0 -1px; + contain: strict; + -ms-user-select: text; + -moz-user-select: text; + -webkit-user-select: text; + user-select: text; + /*with \`pre-line\` chrome inserts   instead of space*/ + white-space: pre!important; +} +.ace_text-input.ace_composition { + background: transparent; + color: inherit; + z-index: 1000; + opacity: 1; +} +.ace_composition_placeholder { color: transparent } +.ace_composition_marker { + border-bottom: 1px solid; + position: absolute; + border-radius: 0; + margin-top: 1px; +} + +[ace_nocontext=true] { + transform: none!important; + filter: none!important; + clip-path: none!important; + mask : none!important; + contain: none!important; + perspective: none!important; + mix-blend-mode: initial!important; + z-index: auto; +} + +.ace_layer { + z-index: 1; + position: absolute; + overflow: hidden; + /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/ + word-wrap: normal; + white-space: pre; + height: 100%; + width: 100%; + box-sizing: border-box; + /* setting pointer-events: auto; on node under the mouse, which changes + during scroll, will break mouse wheel scrolling in Safari */ + pointer-events: none; +} + +.ace_gutter-layer { + position: relative; + width: auto; + text-align: right; + pointer-events: auto; + height: 1000000px; + contain: style size layout; +} + +.ace_text-layer { + font: inherit !important; + position: absolute; + height: 1000000px; + width: 1000000px; + contain: style size layout; +} + +.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group { + contain: style size layout; + position: absolute; + top: 0; + left: 0; + right: 0; +} + +.ace_hidpi .ace_text-layer, +.ace_hidpi .ace_gutter-layer, +.ace_hidpi .ace_content, +.ace_hidpi .ace_gutter { + contain: strict; +} +.ace_hidpi .ace_text-layer > .ace_line, +.ace_hidpi .ace_text-layer > .ace_line_group { + contain: strict; +} + +.ace_cjk { + display: inline-block; + text-align: center; +} + +.ace_cursor-layer { + z-index: 4; +} + +.ace_cursor { + z-index: 4; + position: absolute; + box-sizing: border-box; + border-left: 2px solid; + /* workaround for smooth cursor repaintng whole screen in chrome */ + transform: translatez(0); +} + +.ace_multiselect .ace_cursor { + border-left-width: 1px; +} + +.ace_slim-cursors .ace_cursor { + border-left-width: 1px; +} + +.ace_overwrite-cursors .ace_cursor { + border-left-width: 0; + border-bottom: 1px solid; +} + +.ace_hidden-cursors .ace_cursor { + opacity: 0.2; +} + +.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor { + opacity: 0; +} + +.ace_smooth-blinking .ace_cursor { + transition: opacity 0.18s; +} + +.ace_animate-blinking .ace_cursor { + animation-duration: 1000ms; + animation-timing-function: step-end; + animation-name: blink-ace-animate; + animation-iteration-count: infinite; +} + +.ace_animate-blinking.ace_smooth-blinking .ace_cursor { + animation-duration: 1000ms; + animation-timing-function: ease-in-out; + animation-name: blink-ace-animate-smooth; +} + +@keyframes blink-ace-animate { + from, to { opacity: 1; } + 60% { opacity: 0; } +} + +@keyframes blink-ace-animate-smooth { + from, to { opacity: 1; } + 45% { opacity: 1; } + 60% { opacity: 0; } + 85% { opacity: 0; } +} + +.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack { + position: absolute; + z-index: 3; +} + +.ace_marker-layer .ace_selection { + position: absolute; + z-index: 5; +} + +.ace_marker-layer .ace_bracket { + position: absolute; + z-index: 6; +} + +.ace_marker-layer .ace_error_bracket { + position: absolute; + border-bottom: 1px solid #DE5555; + border-radius: 0; +} + +.ace_marker-layer .ace_active-line { + position: absolute; + z-index: 2; +} + +.ace_marker-layer .ace_selected-word { + position: absolute; + z-index: 4; + box-sizing: border-box; +} + +.ace_line .ace_fold { + box-sizing: border-box; + + display: inline-block; + height: 11px; + margin-top: -2px; + vertical-align: middle; + + background-image: + url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="), + url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII="); + background-repeat: no-repeat, repeat-x; + background-position: center center, top left; + color: transparent; + + border: 1px solid black; + border-radius: 2px; + + cursor: pointer; + pointer-events: auto; +} + +.ace_dark .ace_fold { +} + +.ace_fold:hover{ + background-image: + url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="), + url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC"); +} + +.ace_tooltip { + background-color: #f5f5f5; + border: 1px solid gray; + border-radius: 1px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); + color: black; + padding: 3px 4px; + position: fixed; + z-index: 999999; + box-sizing: border-box; + cursor: default; + white-space: pre-wrap; + word-wrap: break-word; + line-height: normal; + font-style: normal; + font-weight: normal; + letter-spacing: normal; + pointer-events: none; + overflow: auto; + max-width: min(33em, 66vw); + overscroll-behavior: contain; +} +.ace_tooltip pre { + white-space: pre-wrap; +} + +.ace_tooltip.ace_dark { + background-color: #636363; + color: #fff; +} + +.ace_tooltip:focus { + outline: 1px solid #5E9ED6; +} + +.ace_icon { + display: inline-block; + width: 18px; + vertical-align: top; +} + +.ace_icon_svg { + display: inline-block; + width: 12px; + vertical-align: top; + -webkit-mask-repeat: no-repeat; + -webkit-mask-size: 12px; + -webkit-mask-position: center; +} + +.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons { + padding-right: 13px; +} + +.ace_fold-widget, .ace_custom-widget { + box-sizing: border-box; + + margin: 0 -12px 0 1px; + display: none; + width: 11px; + vertical-align: top; + + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg=="); + background-repeat: no-repeat; + background-position: center; + + border-radius: 3px; + + border: 1px solid transparent; + cursor: pointer; + pointer-events: auto; +} + +.ace_custom-widget { + background: none; +} + +.ace_folding-enabled .ace_fold-widget { + display: inline-block; +} + +.ace_fold-widget.ace_end { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg=="); +} + +.ace_fold-widget.ace_closed { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA=="); +} + +.ace_fold-widget:hover { + border: 1px solid rgba(0, 0, 0, 0.3); + background-color: rgba(255, 255, 255, 0.2); + box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7); +} + +.ace_fold-widget:active { + border: 1px solid rgba(0, 0, 0, 0.4); + background-color: rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8); +} +/** + * Dark version for fold widgets + */ +.ace_dark .ace_fold-widget { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC"); +} +.ace_dark .ace_fold-widget.ace_end { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg=="); +} +.ace_dark .ace_fold-widget.ace_closed { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg=="); +} +.ace_dark .ace_fold-widget:hover { + box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); + background-color: rgba(255, 255, 255, 0.1); +} +.ace_dark .ace_fold-widget:active { + box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); +} + +.ace_inline_button { + border: 1px solid lightgray; + display: inline-block; + margin: -1px 8px; + padding: 0 5px; + pointer-events: auto; + cursor: pointer; +} +.ace_inline_button:hover { + border-color: gray; + background: rgba(200,200,200,0.2); + display: inline-block; + pointer-events: auto; +} + +.ace_fold-widget.ace_invalid { + background-color: #FFB4B4; + border-color: #DE5555; +} + +.ace_fade-fold-widgets .ace_fold-widget { + transition: opacity 0.4s ease 0.05s; + opacity: 0; +} + +.ace_fade-fold-widgets:hover .ace_fold-widget { + transition: opacity 0.05s ease 0.05s; + opacity:1; +} + +.ace_underline { + text-decoration: underline; +} + +.ace_bold { + font-weight: bold; +} + +.ace_nobold .ace_bold { + font-weight: normal; +} + +.ace_italic { + font-style: italic; +} + + +.ace_error-marker { + background-color: rgba(255, 0, 0,0.2); + position: absolute; + z-index: 9; +} + +.ace_highlight-marker { + background-color: rgba(255, 255, 0,0.2); + position: absolute; + z-index: 8; +} + +.ace_mobile-menu { + position: absolute; + line-height: 1.5; + border-radius: 4px; + -ms-user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + user-select: none; + background: white; + box-shadow: 1px 3px 2px grey; + border: 1px solid #dcdcdc; + color: black; +} +.ace_dark > .ace_mobile-menu { + background: #333; + color: #ccc; + box-shadow: 1px 3px 2px grey; + border: 1px solid #444; + +} +.ace_mobile-button { + padding: 2px; + cursor: pointer; + overflow: hidden; +} +.ace_mobile-button:hover { + background-color: #eee; + opacity:1; +} +.ace_mobile-button:active { + background-color: #ddd; +} + +.ace_placeholder { + position: relative; + font-family: arial; + transform: scale(0.9); + transform-origin: left; + white-space: pre; + opacity: 0.7; + margin: 0 10px; + z-index: 1; +} + +.ace_ghost_text { + opacity: 0.5; + font-style: italic; +} + +.ace_ghost_text_container > div { + white-space: pre; +} + +.ghost_text_line_wrapped::after { + content: "\u21A9"; + position: absolute; +} + +.ace_lineWidgetContainer.ace_ghost_text { + margin: 0px 4px +} + +.ace_screenreader-only { + position:absolute; + left:-10000px; + top:auto; + width:1px; + height:1px; + overflow:hidden; +} + +.ace_hidden_token { + display: none; +}`});ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(n,t,e){"use strict";var i=n("../lib/dom"),r=n("../lib/oop"),s=n("../lib/event_emitter").EventEmitter,a=function(){function o(l,c){this.renderer=c,this.pixelRatio=1,this.maxHeight=c.layerConfig.maxHeight,this.lineHeight=c.layerConfig.lineHeight,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},this.setScrollBarV(l)}return o.prototype.$createCanvas=function(){this.canvas=i.createElement("canvas"),this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7",this.canvas.style.position="absolute"},o.prototype.setScrollBarV=function(l){this.$createCanvas(),this.scrollbarV=l,l.element.appendChild(this.canvas),this.setDimensions()},o.prototype.$updateDecorators=function(l){if(typeof this.canvas.getContext!="function")return;var c=this.renderer.theme.isDark===!0?this.colors.dark:this.colors.light;this.setDimensions(l);var u=this.canvas.getContext("2d");function d(v,_){return v.priority<_.priority?-1:v.priority>_.priority?1:0}var h=this.renderer.session.$annotations;if(u.clearRect(0,0,this.canvas.width,this.canvas.height),h){var m={info:1,warning:2,error:3};h.forEach(function(v){v.priority=m[v.type]||null}),h=h.sort(d);for(var f=0;fthis.canvasHeight&&(x=this.canvasHeight-C);var A=x-C,T=x+C,E=T-A;u.fillStyle=c[h[f].type]||null,u.fillRect(0,A,Math.round(this.oneZoneWidth-1),E)}}var L=this.renderer.session.selection.getCursor();if(L){var S=Math.round(this.getVerticalOffsetForRow(L.row)*this.heightRatio);u.fillStyle="rgba(0, 0, 0, 0.5)",u.fillRect(0,S,this.canvasWidth,2)}},o.prototype.getVerticalOffsetForRow=function(l){l=l|0;var c=this.renderer.session.documentToScreenRow(l,0)*this.lineHeight;return c},o.prototype.setDimensions=function(l){l=l||this.renderer.layerConfig,this.maxHeight=l.maxHeight,this.lineHeight=l.lineHeight,this.canvasHeight=l.height,this.canvasWidth=this.scrollbarV.width||this.canvasWidth,this.setZoneWidth(),this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.maxHeightE&&(this.$changedLines.firstRow=E),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},T.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},T.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},T.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},T.prototype.updateFull=function(E){E?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},T.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},T.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},T.prototype.onResize=function(E,L,S,v){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=E?1:0;var _=this.container;v||(v=_.clientHeight||_.scrollHeight),!v&&this.$maxLines&&this.lineHeight>1&&(!_.style.height||_.style.height=="0px")&&(_.style.height="1px",v=_.clientHeight||_.scrollHeight),S||(S=_.clientWidth||_.scrollWidth);var b=this.$updateCachedSize(E,L,S,v);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!S&&!v)return this.resizing=0;E&&(this.$gutterLayer.$padding=null),E?this.$renderChanges(b|this.$changes,!0):this.$loop.schedule(b|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},T.prototype.$updateCachedSize=function(E,L,S,v){v-=this.$extraHeight||0;var _=0,b=this.$size,M={width:b.width,height:b.height,scrollerHeight:b.scrollerHeight,scrollerWidth:b.scrollerWidth};if(v&&(E||b.height!=v)&&(b.height=v,_|=this.CHANGE_SIZE,b.scrollerHeight=b.height,this.$horizScroll&&(b.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(b.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",_=_|this.CHANGE_SCROLL),S&&(E||b.width!=S)){_|=this.CHANGE_SIZE,b.width=S,L==null&&(L=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=L,r.setStyle(this.scrollBarH.element.style,"left",L+"px"),r.setStyle(this.scroller.style,"left",L+this.margin.left+"px"),b.scrollerWidth=Math.max(0,S-L-this.scrollBarV.getWidth()-this.margin.h),r.setStyle(this.$gutter.style,"left",this.margin.left+"px");var I=this.scrollBarV.getWidth()+"px";r.setStyle(this.scrollBarH.element.style,"right",I),r.setStyle(this.scroller.style,"right",I),r.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(b.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||E)&&(_|=this.CHANGE_FULL)}return b.$dirty=!S||!v,_&&this._signal("resize",M),_},T.prototype.onGutterResize=function(E){var L=this.$showGutter?E:0;L!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,L,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},T.prototype.adjustWrapLimit=function(){var E=this.$size.scrollerWidth-this.$padding*2,L=Math.floor(E/this.characterWidth);return this.session.adjustWrapLimit(L,this.$showPrintMargin&&this.$printMarginColumn)},T.prototype.setAnimatedScroll=function(E){this.setOption("animatedScroll",E)},T.prototype.getAnimatedScroll=function(){return this.$animatedScroll},T.prototype.setShowInvisibles=function(E){this.setOption("showInvisibles",E),this.session.$bidiHandler.setShowInvisibles(E)},T.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},T.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},T.prototype.setDisplayIndentGuides=function(E){this.setOption("displayIndentGuides",E)},T.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},T.prototype.setHighlightIndentGuides=function(E){this.setOption("highlightIndentGuides",E)},T.prototype.setShowPrintMargin=function(E){this.setOption("showPrintMargin",E)},T.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},T.prototype.setPrintMarginColumn=function(E){this.setOption("printMarginColumn",E)},T.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},T.prototype.getShowGutter=function(){return this.getOption("showGutter")},T.prototype.setShowGutter=function(E){return this.setOption("showGutter",E)},T.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},T.prototype.setFadeFoldWidgets=function(E){this.setOption("fadeFoldWidgets",E)},T.prototype.setHighlightGutterLine=function(E){this.setOption("highlightGutterLine",E)},T.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},T.prototype.$updatePrintMargin=function(){if(!(!this.$showPrintMargin&&!this.$printMarginEl)){if(!this.$printMarginEl){var E=r.createElement("div");E.className="ace_layer ace_print-margin-layer",this.$printMarginEl=r.createElement("div"),this.$printMarginEl.className="ace_print-margin",E.appendChild(this.$printMarginEl),this.content.insertBefore(E,this.content.firstChild)}var L=this.$printMarginEl.style;L.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",L.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()}},T.prototype.getContainerElement=function(){return this.container},T.prototype.getMouseEventTarget=function(){return this.scroller},T.prototype.getTextAreaContainer=function(){return this.container},T.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var E=this.textarea.style,L=this.$composition;if(!this.$keepTextAreaAtCursor&&!L){r.translate(this.textarea,-100,0);return}var S=this.$cursorLayer.$pixelPos;if(S){L&&L.markerRange&&(S=this.$cursorLayer.getPixelPosition(L.markerRange.start,!0));var v=this.layerConfig,_=S.top,b=S.left;_-=v.offset;var M=L&&L.useTextareaForIME||x.isMobile?this.lineHeight:1;if(_<0||_>v.height-M){r.translate(this.textarea,0,0);return}var I=1,D=this.$size.height-M;if(!L)_+=this.lineHeight;else if(L.useTextareaForIME){var O=this.textarea.value;I=this.characterWidth*this.session.$getStringScreenWidth(O)[0]}else _+=this.lineHeight+2;b-=this.scrollLeft,b>this.$size.scrollerWidth-I&&(b=this.$size.scrollerWidth-I),b+=this.gutterWidth+this.margin.left,r.setStyle(E,"height",M+"px"),r.setStyle(E,"width",I+"px"),r.translate(this.textarea,Math.min(b,this.$size.scrollerWidth-I),Math.min(_,D))}}},T.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},T.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},T.prototype.getLastFullyVisibleRow=function(){var E=this.layerConfig,L=E.lastRow,S=this.session.documentToScreenRow(L,0)*E.lineHeight;return S-this.session.getScrollTop()>E.height-E.lineHeight?L-1:L},T.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},T.prototype.setPadding=function(E){this.$padding=E,this.$textLayer.setPadding(E),this.$cursorLayer.setPadding(E),this.$markerFront.setPadding(E),this.$markerBack.setPadding(E),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},T.prototype.setScrollMargin=function(E,L,S,v){var _=this.scrollMargin;_.top=E|0,_.bottom=L|0,_.right=v|0,_.left=S|0,_.v=_.top+_.bottom,_.h=_.left+_.right,_.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-_.top),this.updateFull()},T.prototype.setMargin=function(E,L,S,v){var _=this.margin;_.top=E|0,_.bottom=L|0,_.right=v|0,_.left=S|0,_.v=_.top+_.bottom,_.h=_.left+_.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},T.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},T.prototype.setHScrollBarAlwaysVisible=function(E){this.setOption("hScrollBarAlwaysVisible",E)},T.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},T.prototype.setVScrollBarAlwaysVisible=function(E){this.setOption("vScrollBarAlwaysVisible",E)},T.prototype.$updateScrollBarV=function(){var E=this.layerConfig.maxHeight,L=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(E-=(L-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>E-L&&(E=this.scrollTop+L,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(E+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},T.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},T.prototype.freeze=function(){this.$frozen=!0},T.prototype.unfreeze=function(){this.$frozen=!1},T.prototype.$renderChanges=function(E,L){if(this.$changes&&(E|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!E&&!L){this.$changes|=E;return}if(this.$size.$dirty)return this.$changes|=E,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",E),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var S=this.layerConfig;if(E&this.CHANGE_FULL||E&this.CHANGE_SIZE||E&this.CHANGE_TEXT||E&this.CHANGE_LINES||E&this.CHANGE_SCROLL||E&this.CHANGE_H_SCROLL){if(E|=this.$computeLayerConfig()|this.$loop.clear(),S.firstRow!=this.layerConfig.firstRow&&S.firstRowScreen==this.layerConfig.firstRowScreen){var v=this.scrollTop+(S.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;v>0&&(this.scrollTop=v,E=E|this.CHANGE_SCROLL,E|=this.$computeLayerConfig()|this.$loop.clear())}S=this.layerConfig,this.$updateScrollBarV(),E&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),r.translate(this.content,-this.scrollLeft,-S.offset);var _=S.width+2*this.$padding+"px",b=S.minHeight+"px";r.setStyle(this.content.style,"width",_),r.setStyle(this.content.style,"height",b)}if(E&this.CHANGE_H_SCROLL&&(r.translate(this.content,-this.scrollLeft,-S.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),E&this.CHANGE_FULL){this.$changedLines=null,this.$textLayer.update(S),this.$showGutter&&this.$gutterLayer.update(S),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(S),this.$markerBack.update(S),this.$markerFront.update(S),this.$cursorLayer.update(S),this.$moveTextAreaToCursor(),this._signal("afterRender",E);return}if(E&this.CHANGE_SCROLL){this.$changedLines=null,E&this.CHANGE_TEXT||E&this.CHANGE_LINES?this.$textLayer.update(S):this.$textLayer.scrollLines(S),this.$showGutter&&(E&this.CHANGE_GUTTER||E&this.CHANGE_LINES?this.$gutterLayer.update(S):this.$gutterLayer.scrollLines(S)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(S),this.$markerBack.update(S),this.$markerFront.update(S),this.$cursorLayer.update(S),this.$moveTextAreaToCursor(),this._signal("afterRender",E);return}E&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(S),this.$showGutter&&this.$gutterLayer.update(S),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(S)):E&this.CHANGE_LINES?((this.$updateLines()||E&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(S),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(S)):E&this.CHANGE_TEXT||E&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(S),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(S)):E&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(S),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(S)),E&this.CHANGE_CURSOR&&(this.$cursorLayer.update(S),this.$moveTextAreaToCursor()),E&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(S),E&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(S),this._signal("afterRender",E)},T.prototype.$autosize=function(){var E=this.session.getScreenLength()*this.lineHeight,L=this.$maxLines*this.lineHeight,S=Math.min(L,Math.max((this.$minLines||1)*this.lineHeight,E))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(S+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&S>this.$maxPixelHeight&&(S=this.$maxPixelHeight);var v=S<=2*this.lineHeight,_=!v&&E>L;if(S!=this.desiredHeight||this.$size.height!=this.desiredHeight||_!=this.$vScroll){_!=this.$vScroll&&(this.$vScroll=_,this.scrollBarV.setVisible(_));var b=this.container.clientWidth;this.container.style.height=S+"px",this.$updateCachedSize(!0,this.$gutterWidth,b,S),this.desiredHeight=S,this._signal("autosize")}},T.prototype.$computeLayerConfig=function(){var E=this.session,L=this.$size,S=L.height<=2*this.lineHeight,v=this.session.getScreenLength(),_=v*this.lineHeight,b=this.$getLongestLine(),M=!S&&(this.$hScrollBarAlwaysVisible||L.scrollerWidth-b-2*this.$padding<0),I=this.$horizScroll!==M;I&&(this.$horizScroll=M,this.scrollBarH.setVisible(M));var D=this.$vScroll;this.$maxLines&&this.lineHeight>1&&(this.$autosize(),S=L.height<=2*this.lineHeight);var O=L.scrollerHeight+this.lineHeight,N=!this.$maxLines&&this.$scrollPastEnd?(L.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;_+=N;var F=this.scrollMargin;this.session.setScrollTop(Math.max(-F.top,Math.min(this.scrollTop,_-L.scrollerHeight+F.bottom))),this.session.setScrollLeft(Math.max(-F.left,Math.min(this.scrollLeft,b+2*this.$padding-L.scrollerWidth+F.right)));var z=!S&&(this.$vScrollBarAlwaysVisible||L.scrollerHeight-_+N<0||this.scrollTop>F.top),V=D!==z;V&&(this.$vScroll=z,this.scrollBarV.setVisible(z));var K=this.scrollTop%this.lineHeight,W=Math.ceil(O/this.lineHeight)-1,q=Math.max(0,Math.round((this.scrollTop-K)/this.lineHeight)),ae=q+W,pe,ie,ne=this.lineHeight;q=E.screenToDocumentRow(q,0);var Ee=E.getFoldLine(q);Ee&&(q=Ee.start.row),pe=E.documentToScreenRow(q,0),ie=E.getRowLength(q)*ne,ae=Math.min(E.screenToDocumentRow(ae,0),E.getLength()-1),O=L.scrollerHeight+E.getRowLength(ae)*ne+ie,K=this.scrollTop-pe*ne,K<0&&pe>0&&(pe=Math.max(0,pe+Math.floor(K/ne)),K=this.scrollTop-pe*ne);var we=0;return(this.layerConfig.width!=b||I)&&(we=this.CHANGE_H_SCROLL),(I||V)&&(we|=this.$updateCachedSize(!0,this.gutterWidth,L.width,L.height),this._signal("scrollbarVisibilityChanged"),V&&(b=this.$getLongestLine())),this.layerConfig={width:b,padding:this.$padding,firstRow:q,firstRowScreen:pe,lastRow:ae,lineHeight:ne,characterWidth:this.characterWidth,minHeight:O,maxHeight:_,offset:K,gutterOffset:ne?Math.max(0,Math.ceil((K+L.height-L.scrollerHeight)/ne)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(b-this.$padding),we},T.prototype.$updateLines=function(){if(this.$changedLines){var E=this.$changedLines.firstRow,L=this.$changedLines.lastRow;this.$changedLines=null;var S=this.layerConfig;if(!(E>S.lastRow+1)&&!(Lthis.$textLayer.MAX_LINE_LENGTH&&(E=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(E*this.characterWidth))},T.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},T.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},T.prototype.addGutterDecoration=function(E,L){this.$gutterLayer.addGutterDecoration(E,L)},T.prototype.removeGutterDecoration=function(E,L){this.$gutterLayer.removeGutterDecoration(E,L)},T.prototype.updateBreakpoints=function(E){this._rows=E,this.$loop.schedule(this.CHANGE_GUTTER)},T.prototype.setAnnotations=function(E){this.$gutterLayer.setAnnotations(E),this.$loop.schedule(this.CHANGE_GUTTER)},T.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},T.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},T.prototype.showCursor=function(){this.$cursorLayer.showCursor()},T.prototype.scrollSelectionIntoView=function(E,L,S){this.scrollCursorIntoView(E,S),this.scrollCursorIntoView(L,S)},T.prototype.scrollCursorIntoView=function(E,L,S){if(this.$size.scrollerHeight!==0){var v=this.$cursorLayer.getPixelPosition(E),_=v.left,b=v.top,M=S&&S.top||0,I=S&&S.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var D=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;D+M>b?(L&&D+M>b+this.lineHeight&&(b-=L*this.$size.scrollerHeight),b===0&&(b=-this.scrollMargin.top),this.session.setScrollTop(b)):D+this.$size.scrollerHeight-I=1-this.scrollMargin.top||L>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||E<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||E>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},T.prototype.pixelToScreenCoordinates=function(E,L){var S;if(this.$hasCssTransforms){S={top:0,left:0};var v=this.$fontMetrics.transformCoordinates([E,L]);E=v[1]-this.gutterWidth-this.margin.left,L=v[0]}else S=this.scroller.getBoundingClientRect();var _=E+this.scrollLeft-S.left-this.$padding,b=_/this.characterWidth,M=Math.floor((L+this.scrollTop-S.top)/this.lineHeight),I=this.$blockCursor?Math.floor(b):Math.round(b);return{row:M,column:I,side:b-I>0?1:-1,offsetX:_}},T.prototype.screenToTextCoordinates=function(E,L){var S;if(this.$hasCssTransforms){S={top:0,left:0};var v=this.$fontMetrics.transformCoordinates([E,L]);E=v[1]-this.gutterWidth-this.margin.left,L=v[0]}else S=this.scroller.getBoundingClientRect();var _=E+this.scrollLeft-S.left-this.$padding,b=_/this.characterWidth,M=this.$blockCursor?Math.floor(b):Math.round(b),I=Math.floor((L+this.scrollTop-S.top)/this.lineHeight);return this.session.screenToDocumentPosition(I,Math.max(M,0),_)},T.prototype.textToScreenCoordinates=function(E,L){var S=this.scroller.getBoundingClientRect(),v=this.session.documentToScreenPosition(E,L),_=this.$padding+(this.session.$bidiHandler.isBidiRow(v.row,E)?this.session.$bidiHandler.getPosLeft(v.column):Math.round(v.column*this.characterWidth)),b=v.row*this.lineHeight;return{pageX:S.left+_-this.scrollLeft,pageY:S.top+b-this.scrollTop}},T.prototype.visualizeFocus=function(){r.addCssClass(this.container,"ace_focus")},T.prototype.visualizeBlur=function(){r.removeCssClass(this.container,"ace_focus")},T.prototype.showComposition=function(E){this.$composition=E,E.cssText||(E.cssText=this.textarea.style.cssText),E.useTextareaForIME==null&&(E.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(r.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):E.markerId=this.session.addMarker(E.markerRange,"ace_composition_marker","text")},T.prototype.setCompositionText=function(E){var L=this.session.selection.cursor;this.addToken(E,"composition_placeholder",L.row,L.column),this.$moveTextAreaToCursor()},T.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),r.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var E=this.session.selection.cursor;this.removeExtraToken(E.row,E.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},T.prototype.setGhostText=function(E,L){var S=this.session.selection.cursor,v=L||{row:S.row,column:S.column};this.removeGhostText();var _=this.$calculateWrappedTextChunks(E,v);this.addToken(_[0].text,"ghost_text",v.row,v.column),this.$ghostText={text:E,position:{row:v.row,column:v.column}};var b=r.createElement("div");if(_.length>1){var M=this.hideTokensAfterPosition(v.row,v.column),I;_.slice(1).forEach(function(V){var K=r.createElement("div"),W=r.createElement("span");W.className="ace_ghost_text",V.wrapped&&(K.className="ghost_text_line_wrapped"),V.text.length===0&&(V.text=" "),W.appendChild(r.createTextNode(V.text)),K.appendChild(W),b.appendChild(K),I=K}),M.forEach(function(V){var K=r.createElement("span");C(V.type)||(K.className="ace_"+V.type.replace(/\./g," ace_")),K.appendChild(r.createTextNode(V.value)),I.appendChild(K)}),this.$ghostTextWidget={el:b,row:v.row,column:v.column,className:"ace_ghost_text_container"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var D=this.$cursorLayer.getPixelPosition(v,!0),O=this.container,N=O.getBoundingClientRect().height,F=_.length*this.lineHeight,z=F0){var O=0;D.push(_[M].length);for(var N=0;N1||Math.abs(E.$size.height-v)>1?E.$resizeTimer.delay():E.$resizeTimer.cancel()}),this.$resizeObserver.observe(this.container)}},T}();A.prototype.CHANGE_CURSOR=1,A.prototype.CHANGE_MARKER=2,A.prototype.CHANGE_GUTTER=4,A.prototype.CHANGE_SCROLL=8,A.prototype.CHANGE_LINES=16,A.prototype.CHANGE_TEXT=32,A.prototype.CHANGE_SIZE=64,A.prototype.CHANGE_MARKER_BACK=128,A.prototype.CHANGE_MARKER_FRONT=256,A.prototype.CHANGE_FULL=512,A.prototype.CHANGE_H_SCROLL=1024,A.prototype.$changes=0,A.prototype.$padding=null,A.prototype.$frozen=!1,A.prototype.STEPS=8,i.implement(A.prototype,y),a.defineOptions(A.prototype,"renderer",{useResizeObserver:{set:function(T){!T&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):T&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(T){this.$textLayer.setShowInvisibles(T)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(T){typeof T=="number"&&(this.$printMarginColumn=T),this.$showPrintMargin=!!T,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(T){this.$gutter.style.display=T?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(T){this.$gutterLayer.$useSvgGutterIcons=T},initialValue:!1},showFoldedAnnotations:{set:function(T){this.$gutterLayer.$showFoldedAnnotations=T},initialValue:!1},fadeFoldWidgets:{set:function(T){r.setCssClass(this.$gutter,"ace_fade-fold-widgets",T)},initialValue:!1},showFoldWidgets:{set:function(T){this.$gutterLayer.setShowFoldWidgets(T),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(T){this.$textLayer.setDisplayIndentGuides(T)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(T){this.$textLayer.setHighlightIndentGuides(T)==!0?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(T){this.$gutterLayer.setHighlightGutterLine(T),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(T){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(T){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(T){typeof T=="number"&&(T=T+"px"),this.container.style.fontSize=T,this.updateFontSize()},initialValue:12},fontFamily:{set:function(T){this.container.style.fontFamily=T,this.updateFontSize()}},maxLines:{set:function(T){this.updateFull()}},minLines:{set:function(T){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(T){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(T){T=+T||0,this.$scrollPastEnd!=T&&(this.$scrollPastEnd=T,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(T){this.$gutterLayer.$fixedWidth=!!T,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(T){this.$updateCustomScrollbar(T)},initialValue:!1},theme:{set:function(T){this.setTheme(T)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!x.isMobile&&!x.isIE}}),t.VirtualRenderer=A});ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(n,t,e){"use strict";var i=n("../lib/oop"),r=n("../lib/net"),s=n("../lib/event_emitter").EventEmitter,a=n("../config");function o(d){var h="importScripts('"+r.qualifyURL(d)+"');";try{return new Blob([h],{type:"application/javascript"})}catch{var m=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,f=new m;return f.append(h),f.getBlob("application/javascript")}}function l(d){if(typeof Worker>"u")return{postMessage:function(){},terminate:function(){}};if(a.get("loadWorkerFromBlob")){var h=o(d),m=window.URL||window.webkitURL,f=m.createObjectURL(h);return new Worker(f)}return new Worker(d)}var c=function(d){d.postMessage||(d=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=d,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){i.implement(this,s),this.$createWorkerFromOldConfig=function(d,h,m,f,p){if(n.nameToUrl&&!n.toUrl&&(n.toUrl=n.nameToUrl),a.get("packaged")||!n.toUrl)f=f||a.moduleUrl(h,"worker");else{var g=this.$normalizePath;f=f||g(n.toUrl("ace/worker/worker.js",null,"_"));var y={};d.forEach(function(w){y[w]=g(n.toUrl(w,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=l(f),p&&this.send("importScripts",p),this.$worker.postMessage({init:!0,tlns:y,module:h,classname:m}),this.$worker},this.onMessage=function(d){var h=d.data;switch(h.type){case"event":this._signal(h.name,{data:h.data});break;case"call":var m=this.callbacks[h.id];m&&(m(h.data),delete this.callbacks[h.id]);break;case"error":this.reportError(h.data);break;case"log":window.console&&console.log&&console.log.apply(console,h.data);break}},this.reportError=function(d){window.console&&console.error&&console.error(d)},this.$normalizePath=function(d){return r.qualifyURL(d)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(d){d.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(d,h){this.$worker.postMessage({command:d,args:h})},this.call=function(d,h,m){if(m){var f=this.callbackId++;this.callbacks[f]=m,h.push(f)}this.send(d,h)},this.emit=function(d,h){try{h.data&&h.data.err&&(h.data.err={message:h.data.err.message,stack:h.data.err.stack,code:h.data.err.code}),this.$worker&&this.$worker.postMessage({event:d,data:{data:h.data}})}catch(m){console.error(m.stack)}},this.attachToDocument=function(d){this.$doc&&this.terminate(),this.$doc=d,this.call("setValue",[d.getValue()]),d.on("change",this.changeListener,!0)},this.changeListener=function(d){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),d.action=="insert"?this.deltaQueue.push(d.start,d.lines):this.deltaQueue.push(d.start,d.end)},this.$sendDeltaQueue=function(){var d=this.deltaQueue;d&&(this.deltaQueue=null,d.length>50&&d.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:d}))}}).call(c.prototype);var u=function(d,h,m){var f=null,p=!1,g=Object.create(s),y=[],w=new c({messageBuffer:y,terminate:function(){},postMessage:function(x){y.push(x),f&&(p?setTimeout(k):k())}});w.setEmitSync=function(x){p=x};var k=function(){var x=y.shift();x.command?f[x.command].apply(f,x.args):x.event&&g._signal(x.event,x.data)};return g.postMessage=function(x){w.onMessage({data:x})},g.callback=function(x,C){this.postMessage({type:"call",id:C,data:x})},g.emit=function(x,C){this.postMessage({type:"event",name:x,data:C})},a.loadModule(["worker",h],function(x){for(f=new x[m](g);y.length;)k()}),w};t.UIWorkerClient=u,t.WorkerClient=c,t.createWorker=l});ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(n,t,e){"use strict";var i=n("./range").Range,r=n("./lib/event_emitter").EventEmitter,s=n("./lib/oop"),a=function(){function o(l,c,u,d,h,m){var f=this;this.length=c,this.session=l,this.doc=l.getDocument(),this.mainClass=h,this.othersClass=m,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=d,this.$onCursorChange=function(){setTimeout(function(){f.onCursorChange()})},this.$pos=u;var p=l.getUndoManager().$undoStack||l.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=p.length,this.setup(),l.selection.on("changeCursor",this.$onCursorChange)}return o.prototype.setup=function(){var l=this,c=this.doc,u=this.session;this.selectionBefore=u.selection.toJSON(),u.selection.inMultiSelectMode&&u.selection.toSingleRange(),this.pos=c.createAnchor(this.$pos.row,this.$pos.column);var d=this.pos;d.$insertRight=!0,d.detach(),d.markerId=u.addMarker(new i(d.row,d.column,d.row,d.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(h){var m=c.createAnchor(h.row,h.column);m.$insertRight=!0,m.detach(),l.others.push(m)}),u.setUndoSelect(!1)},o.prototype.showOtherMarkers=function(){if(!this.othersActive){var l=this.session,c=this;this.othersActive=!0,this.others.forEach(function(u){u.markerId=l.addMarker(new i(u.row,u.column,u.row,u.column+c.length),c.othersClass,null,!1)})}},o.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var l=0;l=this.pos.column&&c.start.column<=this.pos.column+this.length+1,h=c.start.column-this.pos.column;if(this.updateAnchors(l),d&&(this.length+=u),d&&!this.session.$fromUndo){if(l.action==="insert")for(var m=this.others.length-1;m>=0;m--){var f=this.others[m],p={row:f.row,column:f.column+h};this.doc.insertMergedLines(p,l.lines)}else if(l.action==="remove")for(var m=this.others.length-1;m>=0;m--){var f=this.others[m],p={row:f.row,column:f.column+h};this.doc.remove(new i(p.row,p.column,p.row,p.column-u))}}this.$updating=!1,this.updateMarkers()}},o.prototype.updateAnchors=function(l){this.pos.onChange(l);for(var c=this.others.length;c--;)this.others[c].onChange(l);this.updateMarkers()},o.prototype.updateMarkers=function(){if(!this.$updating){var l=this,c=this.session,u=function(h,m){c.removeMarker(h.markerId),h.markerId=c.addMarker(new i(h.row,h.column,h.row,h.column+l.length),m,null,!1)};u(this.pos,this.mainClass);for(var d=this.others.length;d--;)u(this.others[d],this.othersClass)}},o.prototype.onCursorChange=function(l){if(!(this.$updating||!this.session)){var c=this.session.selection.getCursor();c.row===this.pos.row&&c.column>=this.pos.column&&c.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",l)):(this.hideOtherMarkers(),this._emit("cursorLeave",l))}},o.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},o.prototype.cancel=function(){if(this.$undoStackDepth!==-1){for(var l=this.session.getUndoManager(),c=(l.$undoStack||l.$undostack).length-this.$undoStackDepth,u=0;u1?r.multiSelect.joinSelections():r.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(r){r.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(r){r.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(r){r.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(r){r.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(r){return r&&r.inMultiSelectMode}}];var i=n("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new i(t.multiSelectCommands)});ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(n,t,e){var i=n("./range_list").RangeList,r=n("./range").Range,s=n("./selection").Selection,a=n("./mouse/multi_select_handler").onMouseDown,o=n("./lib/event"),l=n("./lib/lang"),c=n("./commands/multi_select_commands");t.commands=c.defaultCommands.concat(c.multiSelectCommands);var u=n("./search").Search,d=new u;function h(w,k,x){return d.$options.wrap=!0,d.$options.needle=k,d.$options.backwards=x==-1,d.find(w)}var m=n("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(m.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(w,k){if(w){if(!this.inMultiSelectMode&&this.rangeCount===0){var x=this.toOrientedRange();if(this.rangeList.add(x),this.rangeList.add(w),this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),k||this.fromOrientedRange(w);this.rangeList.removeAll(),this.rangeList.add(x),this.$onAddRange(x)}w.cursor||(w.cursor=w.end);var C=this.rangeList.add(w);return this.$onAddRange(w),C.length&&this.$onRemoveRange(C),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),k||this.fromOrientedRange(w)}},this.toSingleRange=function(w){w=w||this.ranges[0];var k=this.rangeList.removeAll();k.length&&this.$onRemoveRange(k),w&&this.fromOrientedRange(w)},this.substractPoint=function(w){var k=this.rangeList.substractPoint(w);if(k)return this.$onRemoveRange(k),k[0]},this.mergeOverlappingRanges=function(){var w=this.rangeList.merge();w.length&&this.$onRemoveRange(w)},this.$onAddRange=function(w){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(w),this._signal("addRange",{range:w})},this.$onRemoveRange=function(w){if(this.rangeCount=this.rangeList.ranges.length,this.rangeCount==1&&this.inMultiSelectMode){var k=this.rangeList.ranges.pop();w.push(k),this.rangeCount=0}for(var x=w.length;x--;){var C=this.ranges.indexOf(w[x]);this.ranges.splice(C,1)}this._signal("removeRange",{ranges:w}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),k=k||this.ranges[0],k&&!k.isEqual(this.getRange())&&this.fromOrientedRange(k)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new i,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var w=this.ranges.length?this.ranges:[this.getRange()],k=[],x=0;x1){var w=this.rangeList.ranges,k=w[w.length-1],x=r.fromPoints(w[0].start,k.end);this.toSingleRange(),this.setSelectionRange(x,k.cursor==k.start)}else{var C=this.session.documentToScreenPosition(this.cursor),A=this.session.documentToScreenPosition(this.anchor),T=this.rectangularRangeBlock(C,A);T.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(w,k,x){var C=[],A=w.column0;)O--;if(O>0)for(var N=0;C[N].isEmpty();)N++;for(var F=O;F>=N;F--)C[F].isEmpty()&&C.splice(F,1)}return C}}.call(s.prototype);var f=n("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(w){w.cursor||(w.cursor=w.end);var k=this.getSelectionStyle();return w.marker=this.session.addMarker(w,"ace_selection",k),this.session.$selectionMarkers.push(w),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,w},this.removeSelectionMarker=function(w){if(w.marker){this.session.removeMarker(w.marker);var k=this.session.$selectionMarkers.indexOf(w);k!=-1&&this.session.$selectionMarkers.splice(k,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(w){for(var k=this.session.$selectionMarkers,x=w.length;x--;){var C=w[x];if(C.marker){this.session.removeMarker(C.marker);var A=k.indexOf(C);A!=-1&&k.splice(A,1)}}this.session.selectionMarkerCount=k.length},this.$onAddRange=function(w){this.addSelectionMarker(w.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(w){this.removeSelectionMarkers(w.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(w){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(c.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(w){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(c.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(w){var k=w.command,x=w.editor;if(x.multiSelect){if(k.multiSelectAction)k.multiSelectAction=="forEach"?C=x.forEachSelection(k,w.args):k.multiSelectAction=="forEachLine"?C=x.forEachSelection(k,w.args,!0):k.multiSelectAction=="single"?(x.exitMultiSelectMode(),C=k.exec(x,w.args||{})):C=k.multiSelectAction(x,w.args||{});else{var C=k.exec(x,w.args||{});x.multiSelect.addRange(x.multiSelect.toOrientedRange()),x.multiSelect.mergeOverlappingRanges()}return C}},this.forEachSelection=function(w,k,x){if(!this.inVirtualSelectionMode){var C=x&&x.keepOrder,A=x==!0||x&&x.$byLines,T=this.session,E=this.selection,L=E.rangeList,S=(C?E:L).ranges,v;if(!S.length)return w.exec?w.exec(this,k||{}):w(this,k||{});var _=E._eventRegistry;E._eventRegistry={};var b=new s(T);this.inVirtualSelectionMode=!0;for(var M=S.length;M--;){if(A)for(;M>0&&S[M].start.row==S[M-1].end.row;)M--;b.fromOrientedRange(S[M]),b.index=M,this.selection=T.selection=b;var I=w.exec?w.exec(this,k||{}):w(this,k||{});!v&&I!==void 0&&(v=I),b.toOrientedRange(S[M])}b.detach(),this.selection=T.selection=E,this.inVirtualSelectionMode=!1,E._eventRegistry=_,E.mergeOverlappingRanges(),E.ranges[0]&&E.fromOrientedRange(E.ranges[0]);var D=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),D&&D.from==D.to&&this.renderer.animateScrolling(D.from),v}},this.exitMultiSelectMode=function(){!this.inMultiSelectMode||this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getSelectedText=function(){var w="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var k=this.multiSelect.rangeList.ranges,x=[],C=0;C0);E<0&&(E=0),L>=v&&(L=v-1)}var b=this.session.removeFullLines(E,L);b=this.$reAlignText(b,S),this.session.insert({row:E,column:0},b.join(` +`)+` +`),S||(T.start.column=0,T.end.column=b[b.length-1].length),this.selection.setRange(T)}else{A.forEach(function(O){k.substractPoint(O.cursor)});var M=0,I=1/0,D=x.map(function(O){var N=O.cursor,F=w.getLine(N.row),z=F.substr(N.column).search(/\S/g);return z==-1&&(z=0),N.column>M&&(M=N.column),zV?w.insert(F,l.stringRepeat(" ",z-V)):w.remove(new r(F.row,F.column,F.row,F.column-z+V)),O.start.column=O.end.column=M,O.start.row=O.end.row=F.row,O.cursor=O.end}),k.fromOrientedRange(x[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(w,k){var x=!0,C=!0,A,T,E;return w.map(function(b){var M=b.match(/(\s*)(.*?)(\s*)([=:].*)/);return M?A==null?(A=M[1].length,T=M[2].length,E=M[3].length,M):(A+T+E!=M[1].length+M[2].length+M[3].length&&(C=!1),A!=M[1].length&&(x=!1),A>M[1].length&&(A=M[1].length),TM[3].length&&(E=M[3].length),M):[b]}).map(k?S:x?C?v:S:_);function L(b){return l.stringRepeat(" ",b)}function S(b){return b[2]?L(A)+b[2]+L(T-b[2].length+E)+b[4].replace(/^([=:])\s+/,"$1 "):b[0]}function v(b){return b[2]?L(A+T-b[2].length)+b[2]+L(E)+b[4].replace(/^([=:])\s+/,"$1 "):b[0]}function _(b){return b[2]?L(A)+b[2]+L(E)+b[4].replace(/^([=:])\s+/,"$1 "):b[0]}}}).call(f.prototype);function p(w,k){return w.row==k.row&&w.column==k.column}t.onSessionChange=function(w){var k=w.session;k&&!k.multiSelect&&(k.$selectionMarkers=[],k.selection.$initRangeList(),k.multiSelect=k.selection),this.multiSelect=k&&k.multiSelect;var x=w.oldSession;x&&(x.multiSelect.off("addRange",this.$onAddRange),x.multiSelect.off("removeRange",this.$onRemoveRange),x.multiSelect.off("multiSelect",this.$onMultiSelect),x.multiSelect.off("singleSelect",this.$onSingleSelect),x.multiSelect.lead.off("change",this.$checkMultiselectChange),x.multiSelect.anchor.off("change",this.$checkMultiselectChange)),k&&(k.multiSelect.on("addRange",this.$onAddRange),k.multiSelect.on("removeRange",this.$onRemoveRange),k.multiSelect.on("multiSelect",this.$onMultiSelect),k.multiSelect.on("singleSelect",this.$onSingleSelect),k.multiSelect.lead.on("change",this.$checkMultiselectChange),k.multiSelect.anchor.on("change",this.$checkMultiselectChange)),k&&this.inMultiSelectMode!=k.selection.inMultiSelectMode&&(k.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())};function g(w){w.$multiselectOnSessionChange||(w.$onAddRange=w.$onAddRange.bind(w),w.$onRemoveRange=w.$onRemoveRange.bind(w),w.$onMultiSelect=w.$onMultiSelect.bind(w),w.$onSingleSelect=w.$onSingleSelect.bind(w),w.$multiselectOnSessionChange=t.onSessionChange.bind(w),w.$checkMultiselectChange=w.$checkMultiselectChange.bind(w),w.$multiselectOnSessionChange(w),w.on("changeSession",w.$multiselectOnSessionChange),w.on("mousedown",a),w.commands.addCommands(c.defaultCommands),y(w))}function y(w){if(!w.textInput)return;var k=w.textInput.getElement(),x=!1;o.addListener(k,"keydown",function(A){var T=A.keyCode==18&&!(A.ctrlKey||A.shiftKey||A.metaKey);w.$blockSelectEnabled&&T?x||(w.renderer.setMouseCursor("crosshair"),x=!0):x&&C()},w),o.addListener(k,"keyup",C,w),o.addListener(k,"blur",C,w);function C(A){x&&(w.renderer.setMouseCursor(""),x=!1)}}t.MultiSelect=g,n("./config").defineOptions(f.prototype,"editor",{enableMultiselect:{set:function(w){g(this),w?this.on("mousedown",a):this.off("mousedown",a)},value:!0},enableBlockSelect:{set:function(w){this.$blockSelectEnabled=w},value:!0}})});ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(n,t,e){"use strict";var i=n("../../range").Range,r=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(s,a,o){var l=s.getLine(o);return this.foldingStartMarker.test(l)?"start":a=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(l)?"end":""},this.getFoldWidgetRange=function(s,a,o){return null},this.indentationBlock=function(s,a,o){var l=/\S/,c=s.getLine(a),u=c.search(l);if(u!=-1){for(var d=o||c.length,h=s.getLength(),m=a,f=a;++am){var y=s.getLine(f).length;return new i(m,d,f,y)}}},this.openingBracketBlock=function(s,a,o,l,c){var u={row:o,column:l+1},d=s.$findClosingBracket(a,u,c);if(d){var h=s.foldWidgets[d.row];return h==null&&(h=s.getFoldWidget(d.row)),h=="start"&&d.row>u.row&&(d.row--,d.column=s.getLine(d.row).length),i.fromPoints(u,d)}},this.closingBracketBlock=function(s,a,o,l,c){var u={row:o,column:l},d=s.$findOpeningBracket(a,u);if(d)return d.column++,u.column--,i.fromPoints(d,u)}}).call(r.prototype)});ace.define("ace/ext/error_marker",["require","exports","module","ace/lib/dom","ace/range","ace/config"],function(n,t,e){"use strict";var i=n("../lib/dom"),r=n("../range").Range,s=n("../config").nls;function a(l,c,u){for(var d=0,h=l.length-1;d<=h;){var m=d+h>>1,f=u(c,l[m]);if(f>0)d=m+1;else if(f<0)h=m-1;else return m}return-(d+1)}function o(l,c,u){var d=l.getAnnotations().sort(r.comparePoints);if(d.length){var h=a(d,{row:c,column:-1},r.comparePoints);h<0&&(h=-h-1),h>=d.length?h=u>0?0:d.length-1:h===0&&u<0&&(h=d.length-1);var m=d[h];if(!(!m||!u)){if(m.row===c){do m=d[h+=u];while(m&&m.row===c);if(!m)return d.slice()}var f=[];c=m.row;do f[u<0?"unshift":"push"](m),m=d[h+=u];while(m&&m.row==c);return f.length&&f}}}t.showErrorMarker=function(l,c){var u=l.session,d=l.getCursorPosition(),h=d.row,m=u.widgetManager.getWidgetsAtRow(h).filter(function(A){return A.type=="errorMarker"})[0];m?m.destroy():h-=c;var f=o(u,h,c),p;if(f){var g=f[0];d.column=(g.pos&&typeof g.column!="number"?g.pos.sc:g.column)||0,d.row=g.row,p=l.renderer.$gutterLayer.$annotations[d.row]}else{if(m)return;p={displayText:[s("error-marker.good-state","Looks good!")],className:"ace_ok"}}l.session.unfold(d.row),l.selection.moveToPosition(d);var y={row:d.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},w=y.el.appendChild(i.createElement("div")),k=y.el.appendChild(i.createElement("div"));k.className="error_widget_arrow "+p.className;var x=l.renderer.$cursorLayer.getPixelPosition(d).left;k.style.left=x+l.renderer.gutterWidth-5+"px",y.el.className="error_widget_wrapper",w.className="error_widget "+p.className,p.displayText.forEach(function(A,T){w.appendChild(i.createTextNode(A)),T{ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(n,t,e){"use strict";var i=n("../lib/oop"),r=n("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};i.inherits(s,r),t.JsonHighlightRules=s});ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(n,t,e){"use strict";var i=n("../range").Range,r=function(){};(function(){this.checkOutdent=function(s,a){return/^\s+$/.test(s)?/^\s*\}/.test(a):!1},this.autoOutdent=function(s,a){var o=s.getLine(a),l=o.match(/^(\s*\})/);if(!l)return 0;var c=l[1].length,u=s.findMatchingBracket({row:a,column:c});if(!u||u.row==a)return 0;var d=this.$getIndent(s.getLine(u.row));s.replace(new i(a,0,a,c-1),d)},this.$getIndent=function(s){return s.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r});ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(n,t,e){"use strict";var i=n("../../lib/oop"),r=n("../../range").Range,s=n("./fold_mode").FoldMode,a=t.FoldMode=function(o){o&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+o.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+o.end)))};i.inherits(a,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(o,l,c){var u=o.getLine(c);if(this.singleLineBlockCommentRe.test(u)&&!this.startRegionRe.test(u)&&!this.tripleStarBlockCommentRe.test(u))return"";var d=this._getFoldWidgetBase(o,l,c);return!d&&this.startRegionRe.test(u)?"start":d},this.getFoldWidgetRange=function(o,l,c,u){var d=o.getLine(c);if(this.startRegionRe.test(d))return this.getCommentRegionBlock(o,d,c);var f=d.match(this.foldingStartMarker);if(f){var h=f.index;if(f[1])return this.openingBracketBlock(o,f[1],c,h);var m=o.getCommentFoldRange(c,h+f[0].length,1);return m&&!m.isMultiLine()&&(u?m=this.getSectionRange(o,c):l!="all"&&(m=null)),m}if(l!=="markbegin"){var f=d.match(this.foldingStopMarker);if(f){var h=f.index+f[0].length;return f[1]?this.closingBracketBlock(o,f[1],c,h):o.getCommentFoldRange(c,h,-1)}}},this.getSectionRange=function(o,l){var c=o.getLine(l),u=c.search(/\S/),d=l,h=c.length;l=l+1;for(var m=l,f=o.getLength();++lp)break;var g=this.getFoldWidgetRange(o,"all",l);if(g){if(g.start.row<=d)break;if(g.isMultiLine())l=g.end.row;else if(u==p)break}m=l}}return new r(d,h,m,o.getLine(m).length)},this.getCommentRegionBlock=function(o,l,c){for(var u=l.search(/\s*$/),d=o.getLength(),h=c,m=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,f=1;++ch)return new r(h,u,g,l.length)}}.call(a.prototype)});ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle","ace/worker/worker_client"],function(n,t,e){"use strict";var i=n("../lib/oop"),r=n("./text").Mode,s=n("./json_highlight_rules").JsonHighlightRules,a=n("./matching_brace_outdent").MatchingBraceOutdent,o=n("./folding/cstyle").FoldMode,l=n("../worker/worker_client").WorkerClient,c=function(){this.HighlightRules=s,this.$outdent=new a,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new o};i.inherits(c,r),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(u,d,h){var m=this.$getIndent(d);if(u=="start"){var f=d.match(/^.*[\{\(\[]\s*$/);f&&(m+=h)}return m},this.checkOutdent=function(u,d,h){return this.$outdent.checkOutdent(d,h)},this.autoOutdent=function(u,d,h){this.$outdent.autoOutdent(d,h)},this.createWorker=function(u){var d=new l(["ace"],"ace/mode/json_worker","JsonWorker");return d.attachToDocument(u.getDocument()),d.on("annotate",function(h){u.setAnnotations(h.data)}),d.on("terminate",function(){u.clearAnnotations()}),d},this.$id="ace/mode/json"}.call(c.prototype),t.Mode=c});(function(){ace.require(["ace/mode/json"],function(n){typeof wm=="object"&&typeof Kk=="object"&&wm&&(wm.exports=n)})})()});var Zk=Q((Qk,xm)=>{ace.define("ace/theme/textmate",["require","exports","module","ace/theme/textmate-css","ace/lib/dom"],function(n,t,e){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText=n("./textmate-css"),t.$id="ace/theme/textmate";var i=n("../lib/dom");i.importCssString(t.cssText,t.cssClass,!1)});(function(){ace.require(["ace/theme/textmate"],function(n){typeof xm=="object"&&typeof Qk=="object"&&xm&&(xm.exports=n)})})()});var SE=Q((ice,jB)=>{jB.exports={name:"fhirpath",version:"3.18.0",description:"A FHIRPath engine",main:"src/fhirpath.js",types:"src/fhirpath.d.ts",dependencies:{"@lhncbc/ucum-lhc":"^5.0.0",antlr4:"~4.9.3",commander:"^2.18.0","date-fns":"^1.30.1","js-yaml":"^3.13.1"},devDependencies:{"@babel/core":"^7.21.4","@babel/eslint-parser":"^7.17.0","@babel/preset-env":"^7.16.11","babel-loader":"^8.2.3",benny:"github:caderek/benny#0ad058d3c7ef0b488a8fe9ae3519159fc7f36bb6",bestzip:"^2.2.0","copy-webpack-plugin":"^12.0.2",cypress:"^13.7.2",eslint:"^8.10.0",fhir:"^4.10.3",grunt:"^1.5.2","grunt-cli":"^1.4.3","grunt-text-replace":"^0.4.0","jasmine-spec-reporter":"^4.2.1",jest:"^29.7.0","jit-grunt":"^0.10.0",lodash:"^4.17.21",open:"^8.4.0",rimraf:"^3.0.0",tmp:"0.0.33",tsd:"^0.31.1",webpack:"^5.11.1","webpack-bundle-analyzer":"^4.4.2","webpack-cli":"^4.9.1",xml2js:"^0.5.0",yargs:"^15.1.0"},engines:{node:">=8.9.0"},tsd:{directory:"test/typescript"},scripts:{preinstall:"node bin/install-demo.js",postinstall:`echo "Building the Benny package based on a pull request which fixes an issue with 'statusShift'... " && (cd node_modules/benny && npm i && npm run build > /dev/null) || echo "Building the Benny package is completed."`,generateParser:'cd src/parser; rimraf ./generated/*; java -Xmx500M -cp "../../antlr-4.9.3-complete.jar:$CLASSPATH" org.antlr.v4.Tool -o generated -Dlanguage=JavaScript FHIRPath.g4; grunt updateParserRequirements',build:"cd browser-build && webpack && rimraf fhirpath.zip && bestzip fhirpath.zip LICENSE.md fhirpath.min.js fhirpath.r5.min.js fhirpath.r4.min.js fhirpath.stu3.min.js fhirpath.dstu2.min.js && rimraf LICENSE.md","test:unit":"node --use_strict node_modules/.bin/jest && TZ=America/New_York node --use_strict node_modules/.bin/jest && TZ=Europe/Paris node --use_strict node_modules/.bin/jest","test:unit:debug":"echo 'open chrome chrome://inspect/' && node --inspect node_modules/.bin/jest --runInBand","build:demo":"npm run build && cd demo && npm run build","test:e2e":"npm run build:demo && cypress run","test:tsd":"tsd",test:'npm run lint && npm run test:tsd && npm run test:unit && npm run test:e2e && echo "For tests specific to IE 11, open browser-build/test/index.html in IE 11, and confirm that the tests on that page pass."',lint:"eslint src/parser/index.js src/*.js converter/","compare-performance":"node ./test/benchmark.js"},bin:{fhirpath:"bin/fhirpath"},files:["CHANGELOG.md","bin","fhir-context","src"],repository:"github:HL7/fhirpath.js",license:"SEE LICENSE in LICENSE.md"}});var ki=Q((nce,EE)=>{function WB(n){return n===null?"null":n}function kE(n){return Array.isArray(n)?"["+n.map(WB).join(", ")+"]":"null"}String.prototype.seed=String.prototype.seed||Math.round(Math.random()*Math.pow(2,32));String.prototype.hashCode=function(){let n=this.toString(),t,e,i=n.length&3,r=n.length-i,s=String.prototype.seed,a=3432918353,o=461845907,l=0;for(;l>>16)*a&65535)<<16)&4294967295,e=e<<15|e>>>17,e=(e&65535)*o+(((e>>>16)*o&65535)<<16)&4294967295,s^=e,s=s<<13|s>>>19,t=(s&65535)*5+(((s>>>16)*5&65535)<<16)&4294967295,s=(t&65535)+27492+(((t>>>16)+58964&65535)<<16);switch(e=0,i){case 3:e^=(n.charCodeAt(l+2)&255)<<16;case 2:e^=(n.charCodeAt(l+1)&255)<<8;case 1:e^=n.charCodeAt(l)&255,e=(e&65535)*a+(((e>>>16)*a&65535)<<16)&4294967295,e=e<<15|e>>>17,e=(e&65535)*o+(((e>>>16)*o&65535)<<16)&4294967295,s^=e}return s^=n.length,s^=s>>>16,s=(s&65535)*2246822507+(((s>>>16)*2246822507&65535)<<16)&4294967295,s^=s>>>13,s=(s&65535)*3266489909+(((s>>>16)*3266489909&65535)<<16)&4294967295,s^=s>>>16,s>>>0};function ME(n,t){return n?n.equals(t):n==t}function TE(n){return n?n.hashCode():-1}var Jb=class{constructor(t,e){this.data={},this.hashFunction=t||TE,this.equalsFunction=e||ME}add(t){let i="hash_"+this.hashFunction(t);if(i in this.data){let r=this.data[i];for(let s=0;s>>17,i=i*461845907,this.count=this.count+1;let r=this.hash^i;r=r<<13|r>>>19,r=r*5+3864292196,this.hash=r}}}finish(){let t=this.hash^this.count*4;return t=t^t>>>16,t=t*2246822507,t=t^t>>>13,t=t*3266489909,t=t^t>>>16,t}};function qB(){let n=new Fu;return n.update.apply(n,arguments),n.finish()}function GB(n,t){return n=n.replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r"),t&&(n=n.replace(/ /g,"\xB7")),n}function KB(n){return n.replace(/\w\S*/g,function(t){return t.charAt(0).toUpperCase()+t.substr(1)})}function YB(n,t){if(!Array.isArray(n)||!Array.isArray(t))return!1;if(n===t)return!0;if(n.length!==t.length)return!1;for(let e=0;e{var nv=(()=>{class n{constructor(){this.source=null,this.type=null,this.channel=null,this.start=null,this.stop=null,this.tokenIndex=null,this.line=null,this.column=null,this._text=null}getTokenSource(){return this.source[0]}getInputStream(){return this.source[1]}get text(){return this._text}set text(e){this._text=e}}return n.INVALID_TYPE=0,n.EPSILON=-2,n.MIN_USER_TOKEN_TYPE=1,n.EOF=-1,n.DEFAULT_CHANNEL=0,n.HIDDEN_CHANNEL=1,n})(),QB=(()=>{class n extends nv{constructor(e,i,r,s,a){super(),this.source=e!==void 0?e:n.EMPTY_SOURCE,this.type=i!==void 0?i:null,this.channel=r!==void 0?r:nv.DEFAULT_CHANNEL,this.start=s!==void 0?s:-1,this.stop=a!==void 0?a:-1,this.tokenIndex=-1,this.source[0]!==null?(this.line=e[0].line,this.column=e[0].column):this.column=-1}clone(){let e=new n(this.source,this.type,this.channel,this.start,this.stop);return e.tokenIndex=this.tokenIndex,e.line=this.line,e.column=this.column,e.text=this.text,e}toString(){let e=this.text;return e!==null?e=e.replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t"):e="","[@"+this.tokenIndex+","+this.start+":"+this.stop+"='"+e+"',<"+this.type+">"+(this.channel>0?",channel="+this.channel:"")+","+this.line+":"+this.column+"]"}get text(){if(this._text!==null)return this._text;let e=this.getInputStream();if(e===null)return null;let i=e.size;return this.start"}set text(e){this._text=e}}return n.EMPTY_SOURCE=[null,null],n})();AE.exports={Token:nv,CommonToken:QB}});var gs=Q((sce,IE)=>{var Zt=(()=>{class n{constructor(){this.atn=null,this.stateNumber=n.INVALID_STATE_NUMBER,this.stateType=null,this.ruleIndex=0,this.epsilonOnlyTransitions=!1,this.transitions=[],this.nextTokenWithinRule=null}toString(){return this.stateNumber}equals(e){return e instanceof n?this.stateNumber===e.stateNumber:!1}isNonGreedyExitState(){return!1}addTransition(e,i){i===void 0&&(i=-1),this.transitions.length===0?this.epsilonOnlyTransitions=e.isEpsilon:this.epsilonOnlyTransitions!==e.isEpsilon&&(this.epsilonOnlyTransitions=!1),i===-1?this.transitions.push(e):this.transitions.splice(i,1,e)}}return n.INVALID_TYPE=0,n.BASIC=1,n.RULE_START=2,n.BLOCK_START=3,n.PLUS_BLOCK_START=4,n.STAR_BLOCK_START=5,n.TOKEN_START=6,n.RULE_STOP=7,n.BLOCK_END=8,n.STAR_LOOP_BACK=9,n.STAR_LOOP_ENTRY=10,n.PLUS_LOOP_BACK=11,n.LOOP_END=12,n.serializationNames=["INVALID","BASIC","RULE_START","BLOCK_START","PLUS_BLOCK_START","STAR_BLOCK_START","TOKEN_START","RULE_STOP","BLOCK_END","STAR_LOOP_BACK","STAR_LOOP_ENTRY","PLUS_LOOP_BACK","LOOP_END"],n.INVALID_STATE_NUMBER=-1,n})(),rv=class extends Zt{constructor(){super(),this.stateType=Zt.BASIC}},Qa=class extends Zt{constructor(){return super(),this.decision=-1,this.nonGreedy=!1,this}},Ol=class extends Qa{constructor(){return super(),this.endState=null,this}},sv=class extends Ol{constructor(){return super(),this.stateType=Zt.BLOCK_START,this}},av=class extends Zt{constructor(){return super(),this.stateType=Zt.BLOCK_END,this.startState=null,this}},ov=class extends Zt{constructor(){return super(),this.stateType=Zt.RULE_STOP,this}},lv=class extends Zt{constructor(){return super(),this.stateType=Zt.RULE_START,this.stopState=null,this.isPrecedenceRule=!1,this}},cv=class extends Qa{constructor(){return super(),this.stateType=Zt.PLUS_LOOP_BACK,this}},uv=class extends Ol{constructor(){return super(),this.stateType=Zt.PLUS_BLOCK_START,this.loopBackState=null,this}},dv=class extends Ol{constructor(){return super(),this.stateType=Zt.STAR_BLOCK_START,this}},hv=class extends Zt{constructor(){return super(),this.stateType=Zt.STAR_LOOP_BACK,this}},mv=class extends Qa{constructor(){return super(),this.stateType=Zt.STAR_LOOP_ENTRY,this.loopBackState=null,this.isPrecedenceDecision=null,this}},fv=class extends Zt{constructor(){return super(),this.stateType=Zt.LOOP_END,this.loopBackState=null,this}},pv=class extends Qa{constructor(){return super(),this.stateType=Zt.TOKEN_START,this}};IE.exports={ATNState:Zt,BasicState:rv,DecisionState:Qa,BlockStartState:Ol,BlockEndState:av,LoopEndState:fv,RuleStartState:lv,RuleStopState:ov,TokensStartState:pv,PlusLoopbackState:cv,StarLoopbackState:hv,StarLoopEntryState:mv,PlusBlockStartState:uv,StarBlockStartState:dv,BasicBlockStartState:sv}});var Nl=Q((oce,LE)=>{var{Set:DE,Hash:ZB,equalArrays:RE}=ki(),Fi=class n{hashCode(){let t=new ZB;return this.updateHashCode(t),t.finish()}evaluate(t,e){}evalPrecedence(t,e){return this}static andContext(t,e){if(t===null||t===n.NONE)return e;if(e===null||e===n.NONE)return t;let i=new gv(t,e);return i.opnds.length===1?i.opnds[0]:i}static orContext(t,e){if(t===null)return e;if(e===null)return t;if(t===n.NONE||e===n.NONE)return n.NONE;let i=new _v(t,e);return i.opnds.length===1?i.opnds[0]:i}},Sf=class n extends Fi{constructor(t,e,i){super(),this.ruleIndex=t===void 0?-1:t,this.predIndex=e===void 0?-1:e,this.isCtxDependent=i===void 0?!1:i}evaluate(t,e){let i=this.isCtxDependent?e:null;return t.sempred(i,this.ruleIndex,this.predIndex)}updateHashCode(t){t.update(this.ruleIndex,this.predIndex,this.isCtxDependent)}equals(t){return this===t?!0:t instanceof n?this.ruleIndex===t.ruleIndex&&this.predIndex===t.predIndex&&this.isCtxDependent===t.isCtxDependent:!1}toString(){return"{"+this.ruleIndex+":"+this.predIndex+"}?"}};Fi.NONE=new Sf;var Pu=class n extends Fi{constructor(t){super(),this.precedence=t===void 0?0:t}evaluate(t,e){return t.precpred(e,this.precedence)}evalPrecedence(t,e){return t.precpred(e,this.precedence)?Fi.NONE:null}compareTo(t){return this.precedence-t.precedence}updateHashCode(t){t.update(this.precedence)}equals(t){return this===t?!0:t instanceof n?this.precedence===t.precedence:!1}toString(){return"{"+this.precedence+">=prec}?"}static filterPrecedencePredicates(t){let e=[];return t.values().map(function(i){i instanceof n&&e.push(i)}),e}},gv=class n extends Fi{constructor(t,e){super();let i=new DE;t instanceof n?t.opnds.map(function(s){i.add(s)}):i.add(t),e instanceof n?e.opnds.map(function(s){i.add(s)}):i.add(e);let r=Pu.filterPrecedencePredicates(i);if(r.length>0){let s=null;r.map(function(a){(s===null||a.precedencee.toString());return(t.length>3?t.slice(3):t).join("&&")}},_v=class n extends Fi{constructor(t,e){super();let i=new DE;t instanceof n?t.opnds.map(function(s){i.add(s)}):i.add(t),e instanceof n?e.opnds.map(function(s){i.add(s)}):i.add(e);let r=Pu.filterPrecedencePredicates(i);if(r.length>0){let s=r.sort(function(o,l){return o.compareTo(l)}),a=s[s.length-1];i.add(a)}this.opnds=Array.from(i.values())}equals(t){return this===t?!0:t instanceof n?RE(this.opnds,t.opnds):!1}updateHashCode(t){t.update(this.opnds,"OR")}evaluate(t,e){for(let i=0;ie.toString());return(t.length>3?t.slice(3):t).join("||")}};LE.exports={SemanticContext:Fi,PrecedencePredicate:Pu,Predicate:Sf}});var Uu=Q((lce,vv)=>{var{DecisionState:XB}=gs(),{SemanticContext:OE}=Nl(),{Hash:NE}=ki();function FE(n,t){if(n===null){let e={state:null,alt:null,context:null,semanticContext:null};return t&&(e.reachesIntoOuterContext=0),e}else{let e={};return e.state=n.state||null,e.alt=n.alt===void 0?null:n.alt,e.context=n.context||null,e.semanticContext=n.semanticContext||null,t&&(e.reachesIntoOuterContext=n.reachesIntoOuterContext||0,e.precedenceFilterSuppressed=n.precedenceFilterSuppressed||!1),e}}var kf=class n{constructor(t,e){this.checkContext(t,e),t=FE(t),e=FE(e,!0),this.state=t.state!==null?t.state:e.state,this.alt=t.alt!==null?t.alt:e.alt,this.context=t.context!==null?t.context:e.context,this.semanticContext=t.semanticContext!==null?t.semanticContext:e.semanticContext!==null?e.semanticContext:OE.NONE,this.reachesIntoOuterContext=e.reachesIntoOuterContext,this.precedenceFilterSuppressed=e.precedenceFilterSuppressed}checkContext(t,e){(t.context===null||t.context===void 0)&&(e===null||e.context===null||e.context===void 0)&&(this.context=null)}hashCode(){let t=new NE;return this.updateHashCode(t),t.finish()}updateHashCode(t){t.update(this.state.stateNumber,this.alt,this.context,this.semanticContext)}equals(t){return this===t?!0:t instanceof n?this.state.stateNumber===t.state.stateNumber&&this.alt===t.alt&&(this.context===null?t.context===null:this.context.equals(t.context))&&this.semanticContext.equals(t.semanticContext)&&this.precedenceFilterSuppressed===t.precedenceFilterSuppressed:!1}hashCodeForConfigSet(){let t=new NE;return t.update(this.state.stateNumber,this.alt,this.semanticContext),t.finish()}equalsForConfigSet(t){return this===t?!0:t instanceof n?this.state.stateNumber===t.state.stateNumber&&this.alt===t.alt&&this.semanticContext.equals(t.semanticContext):!1}toString(){return"("+this.state+","+this.alt+(this.context!==null?",["+this.context.toString()+"]":"")+(this.semanticContext!==OE.NONE?","+this.semanticContext.toString():"")+(this.reachesIntoOuterContext>0?",up="+this.reachesIntoOuterContext:"")+")"}},bv=class n extends kf{constructor(t,e){super(t,e);let i=t.lexerActionExecutor||null;return this.lexerActionExecutor=i||(e!==null?e.lexerActionExecutor:null),this.passedThroughNonGreedyDecision=e!==null?this.checkNonGreedyDecision(e,this.state):!1,this.hashCodeForConfigSet=n.prototype.hashCode,this.equalsForConfigSet=n.prototype.equals,this}updateHashCode(t){t.update(this.state.stateNumber,this.alt,this.context,this.semanticContext,this.passedThroughNonGreedyDecision,this.lexerActionExecutor)}equals(t){return this===t||t instanceof n&&this.passedThroughNonGreedyDecision===t.passedThroughNonGreedyDecision&&(this.lexerActionExecutor?this.lexerActionExecutor.equals(t.lexerActionExecutor):!t.lexerActionExecutor)&&super.equals(t)}checkNonGreedyDecision(t,e){return t.passedThroughNonGreedyDecision||e instanceof XB&&e.nonGreedy}};vv.exports.ATNConfig=kf;vv.exports.LexerATNConfig=bv});var Ji=Q((cce,PE)=>{var{Token:$u}=Qt(),Mi=class n{constructor(t,e){this.start=t,this.stop=e}clone(){return new n(this.start,this.stop)}contains(t){return t>=this.start&&tthis.addInterval(e),this),this}reduce(t){if(t=i.stop?(this.intervals.splice(t+1,1),this.reduce(t)):e.stop>=i.start&&(this.intervals[t]=new Mi(e.start,i.stop),this.intervals.splice(t+1,1))}}complement(t,e){let i=new n;return i.addInterval(new Mi(t,e+1)),this.intervals!==null&&this.intervals.forEach(r=>i.removeRange(r)),i}contains(t){if(this.intervals===null)return!1;for(let e=0;er.start&&t.stop=r.stop?(this.intervals.splice(e,1),e=e-1):t.start"):t.push("'"+String.fromCharCode(i.start)+"'"):t.push("'"+String.fromCharCode(i.start)+"'..'"+String.fromCharCode(i.stop-1)+"'")}return t.length>1?"{"+t.join(", ")+"}":t[0]}toIndexString(){let t=[];for(let e=0;e"):t.push(i.start.toString()):t.push(i.start.toString()+".."+(i.stop-1).toString())}return t.length>1?"{"+t.join(", ")+"}":t[0]}toTokenString(t,e){let i=[];for(let r=0;r1?"{"+i.join(", ")+"}":i[0]}elementName(t,e,i){return i===$u.EOF?"":i===$u.EPSILON?"":t[i]||e[i]}get length(){return this.intervals.map(t=>t.length).reduce((t,e)=>t+e)}};PE.exports={Interval:Mi,IntervalSet:yv}});var Fl=Q((uce,UE)=>{var{Token:JB}=Qt(),{IntervalSet:Iv}=Ji(),{Predicate:e6,PrecedencePredicate:t6}=Nl(),Xe=class{constructor(t){if(t==null)throw"target cannot be null.";this.target=t,this.isEpsilon=!1,this.label=null}};Xe.EPSILON=1;Xe.RANGE=2;Xe.RULE=3;Xe.PREDICATE=4;Xe.ATOM=5;Xe.ACTION=6;Xe.SET=7;Xe.NOT_SET=8;Xe.WILDCARD=9;Xe.PRECEDENCE=10;Xe.serializationNames=["INVALID","EPSILON","RANGE","RULE","PREDICATE","ATOM","ACTION","SET","NOT_SET","WILDCARD","PRECEDENCE"];Xe.serializationTypes={EpsilonTransition:Xe.EPSILON,RangeTransition:Xe.RANGE,RuleTransition:Xe.RULE,PredicateTransition:Xe.PREDICATE,AtomTransition:Xe.ATOM,ActionTransition:Xe.ACTION,SetTransition:Xe.SET,NotSetTransition:Xe.NOT_SET,WildcardTransition:Xe.WILDCARD,PrecedencePredicateTransition:Xe.PRECEDENCE};var Cv=class extends Xe{constructor(t,e){super(t),this.label_=e,this.label=this.makeLabel(),this.serializationType=Xe.ATOM}makeLabel(){let t=new Iv;return t.addOne(this.label_),t}matches(t,e,i){return this.label_===t}toString(){return this.label_}},wv=class extends Xe{constructor(t,e,i,r){super(t),this.ruleIndex=e,this.precedence=i,this.followState=r,this.serializationType=Xe.RULE,this.isEpsilon=!0}matches(t,e,i){return!1}},xv=class extends Xe{constructor(t,e){super(t),this.serializationType=Xe.EPSILON,this.isEpsilon=!0,this.outermostPrecedenceReturn=e}matches(t,e,i){return!1}toString(){return"epsilon"}},Sv=class extends Xe{constructor(t,e,i){super(t),this.serializationType=Xe.RANGE,this.start=e,this.stop=i,this.label=this.makeLabel()}makeLabel(){let t=new Iv;return t.addRange(this.start,this.stop),t}matches(t,e,i){return t>=this.start&&t<=this.stop}toString(){return"'"+String.fromCharCode(this.start)+"'..'"+String.fromCharCode(this.stop)+"'"}},Vu=class extends Xe{constructor(t){super(t)}},kv=class extends Vu{constructor(t,e,i,r){super(t),this.serializationType=Xe.PREDICATE,this.ruleIndex=e,this.predIndex=i,this.isCtxDependent=r,this.isEpsilon=!0}matches(t,e,i){return!1}getPredicate(){return new e6(this.ruleIndex,this.predIndex,this.isCtxDependent)}toString(){return"pred_"+this.ruleIndex+":"+this.predIndex}},Mv=class extends Xe{constructor(t,e,i,r){super(t),this.serializationType=Xe.ACTION,this.ruleIndex=e,this.actionIndex=i===void 0?-1:i,this.isCtxDependent=r===void 0?!1:r,this.isEpsilon=!0}matches(t,e,i){return!1}toString(){return"action_"+this.ruleIndex+":"+this.actionIndex}},Mf=class extends Xe{constructor(t,e){super(t),this.serializationType=Xe.SET,e!=null?this.label=e:(this.label=new Iv,this.label.addOne(JB.INVALID_TYPE))}matches(t,e,i){return this.label.contains(t)}toString(){return this.label.toString()}},Tv=class extends Mf{constructor(t,e){super(t,e),this.serializationType=Xe.NOT_SET}matches(t,e,i){return t>=e&&t<=i&&!super.matches(t,e,i)}toString(){return"~"+super.toString()}},Ev=class extends Xe{constructor(t){super(t),this.serializationType=Xe.WILDCARD}matches(t,e,i){return t>=e&&t<=i}toString(){return"."}},Av=class extends Vu{constructor(t,e){super(t),this.serializationType=Xe.PRECEDENCE,this.precedence=e,this.isEpsilon=!0}matches(t,e,i){return!1}getPredicate(){return new t6(this.precedence)}toString(){return this.precedence+" >= _p"}};UE.exports={Transition:Xe,AtomTransition:Cv,SetTransition:Mf,NotSetTransition:Tv,RuleTransition:wv,ActionTransition:Mv,EpsilonTransition:xv,RangeTransition:Sv,WildcardTransition:Ev,PredicateTransition:kv,PrecedencePredicateTransition:Av,AbstractPredicateTransition:Vu}});var Za=Q((dce,BE)=>{var{Token:i6}=Qt(),{Interval:$E}=Ji(),VE=new $E(-1,-2),Dv=class{},Rv=class extends Dv{constructor(){super()}},Tf=class extends Rv{constructor(){super()}},Lv=class extends Tf{constructor(){super()}getRuleContext(){throw new Error("missing interface implementation")}},Pl=class extends Tf{constructor(){super()}},Ef=class extends Pl{constructor(){super()}},Ov=class{visit(t){return Array.isArray(t)?t.map(function(e){return e.accept(this)},this):t.accept(this)}visitChildren(t){return t.children?this.visit(t.children):null}visitTerminal(t){}visitErrorNode(t){}},Nv=class{visitTerminal(t){}visitErrorNode(t){}enterEveryRule(t){}exitEveryRule(t){}},Af=class extends Pl{constructor(t){super(),this.parentCtx=null,this.symbol=t}getChild(t){return null}getSymbol(){return this.symbol}getParent(){return this.parentCtx}getPayload(){return this.symbol}getSourceInterval(){if(this.symbol===null)return VE;let t=this.symbol.tokenIndex;return new $E(t,t)}getChildCount(){return 0}accept(t){return t.visitTerminal(this)}getText(){return this.symbol.text}toString(){return this.symbol.type===i6.EOF?"":this.symbol.text}},Fv=class extends Af{constructor(t){super(t)}isErrorNode(){return!0}accept(t){return t.visitErrorNode(this)}},Bu=class{walk(t,e){if(e instanceof Ef||e.isErrorNode!==void 0&&e.isErrorNode())t.visitErrorNode(e);else if(e instanceof Pl)t.visitTerminal(e);else{this.enterRule(t,e);for(let r=0;r{var n6=ki(),{Token:r6}=Qt(),{ErrorNode:s6,TerminalNode:zE,RuleNode:HE}=Za(),_s={toStringTree:function(n,t,e){t=t||null,e=e||null,e!==null&&(t=e.ruleNames);let i=_s.getNodeText(n,t);i=n6.escapeWhitespace(i,!1);let r=n.getChildCount();if(r===0)return i;let s="("+i+" ";r>0&&(i=_s.toStringTree(n.getChild(0),t),s=s.concat(i));for(let a=1;a{var{RuleNode:a6}=Za(),{INVALID_INTERVAL:o6}=Za(),l6=Pv(),Uv=class extends a6{constructor(t,e){super(),this.parentCtx=t||null,this.invokingState=e||-1}depth(){let t=0,e=this;for(;e!==null;)e=e.parentCtx,t+=1;return t}isEmpty(){return this.invokingState===-1}getSourceInterval(){return o6}getRuleContext(){return this}getPayload(){return this}getText(){return this.getChildCount()===0?"":this.children.map(function(t){return t.getText()}).join("")}getAltNumber(){return 0}setAltNumber(t){}getChild(t){return null}getChildCount(){return 0}accept(t){return t.visitChildren(this)}toStringTree(t,e){return l6.toStringTree(this,t,e)}toString(t,e){t=t||null,e=e||null;let i=this,r="[";for(;i!==null&&i!==e;){if(t===null)i.isEmpty()||(r+=i.invokingState);else{let s=i.ruleIndex,a=s>=0&&s{var qE=If(),{Hash:KE,Map:YE,equalArrays:GE}=ki(),ht=class n{constructor(t){this.cachedHashCode=t}isEmpty(){return this===n.EMPTY}hasEmptyPath(){return this.getReturnState(this.length-1)===n.EMPTY_RETURN_STATE}hashCode(){return this.cachedHashCode}updateHashCode(t){t.update(this.cachedHashCode)}};ht.EMPTY=null;ht.EMPTY_RETURN_STATE=2147483647;ht.globalNodeCount=1;ht.id=ht.globalNodeCount;var $v=class{constructor(){this.cache=new YE}add(t){if(t===ht.EMPTY)return ht.EMPTY;let e=this.cache.get(t)||null;return e!==null?e:(this.cache.put(t,t),t)}get(t){return this.cache.get(t)||null}get length(){return this.cache.length}},Pn=class n extends ht{constructor(t,e){let i=0,r=new KE;t!==null?r.update(t,e):r.update(1),i=r.finish(),super(i),this.parentCtx=t,this.returnState=e}getParent(t){return this.parentCtx}getReturnState(t){return this.returnState}equals(t){return this===t?!0:t instanceof n?this.hashCode()!==t.hashCode()||this.returnState!==t.returnState?!1:this.parentCtx==null?t.parentCtx==null:this.parentCtx.equals(t.parentCtx):!1}toString(){let t=this.parentCtx===null?"":this.parentCtx.toString();return t.length===0?this.returnState===ht.EMPTY_RETURN_STATE?"$":""+this.returnState:""+this.returnState+" "+t}get length(){return 1}static create(t,e){return e===ht.EMPTY_RETURN_STATE&&t===null?ht.EMPTY:new n(t,e)}},zu=class extends Pn{constructor(){super(null,ht.EMPTY_RETURN_STATE)}isEmpty(){return!0}getParent(t){return null}getReturnState(t){return this.returnState}equals(t){return this===t}toString(){return"$"}};ht.EMPTY=new zu;var Lr=class n extends ht{constructor(t,e){let i=new KE;i.update(t,e);let r=i.finish();return super(r),this.parents=t,this.returnStates=e,this}isEmpty(){return this.returnStates[0]===ht.EMPTY_RETURN_STATE}getParent(t){return this.parents[t]}getReturnState(t){return this.returnStates[t]}equals(t){return this===t?!0:t instanceof n?this.hashCode()!==t.hashCode()?!1:GE(this.returnStates,t.returnStates)&&GE(this.parents,t.parents):!1}toString(){if(this.isEmpty())return"[]";{let t="[";for(let e=0;e0&&(t=t+", "),this.returnStates[e]===ht.EMPTY_RETURN_STATE){t=t+"$";continue}t=t+this.returnStates[e],this.parents[e]!==null?t=t+" "+this.parents[e]:t=t+"null"}return t+"]"}}get length(){return this.returnStates.length}};function QE(n,t){if(t==null&&(t=qE.EMPTY),t.parentCtx===null||t===qE.EMPTY)return ht.EMPTY;let e=QE(n,t.parentCtx),r=n.states[t.invokingState].transitions[0];return Pn.create(e,r.followState.stateNumber)}function Vv(n,t,e,i){if(n===t)return n;if(n instanceof Pn&&t instanceof Pn)return c6(n,t,e,i);if(e){if(n instanceof zu)return n;if(t instanceof zu)return t}return n instanceof Pn&&(n=new Lr([n.getParent()],[n.returnState])),t instanceof Pn&&(t=new Lr([t.getParent()],[t.returnState])),d6(n,t,e,i)}function c6(n,t,e,i){if(i!==null){let s=i.get(n,t);if(s!==null||(s=i.get(t,n),s!==null))return s}let r=u6(n,t,e);if(r!==null)return i!==null&&i.set(n,t,r),r;if(n.returnState===t.returnState){let s=Vv(n.parentCtx,t.parentCtx,e,i);if(s===n.parentCtx)return n;if(s===t.parentCtx)return t;let a=Pn.create(s,n.returnState);return i!==null&&i.set(n,t,a),a}else{let s=null;if((n===t||n.parentCtx!==null&&n.parentCtx===t.parentCtx)&&(s=n.parentCtx),s!==null){let c=[n.returnState,t.returnState];n.returnState>t.returnState&&(c[0]=t.returnState,c[1]=n.returnState);let u=[s,s],d=new Lr(u,c);return i!==null&&i.set(n,t,d),d}let a=[n.returnState,t.returnState],o=[n.parentCtx,t.parentCtx];n.returnState>t.returnState&&(a[0]=t.returnState,a[1]=n.returnState,o=[t.parentCtx,n.parentCtx]);let l=new Lr(o,a);return i!==null&&i.set(n,t,l),l}}function u6(n,t,e){if(e){if(n===ht.EMPTY||t===ht.EMPTY)return ht.EMPTY}else{if(n===ht.EMPTY&&t===ht.EMPTY)return ht.EMPTY;if(n===ht.EMPTY){let i=[t.returnState,ht.EMPTY_RETURN_STATE],r=[t.parentCtx,null];return new Lr(r,i)}else if(t===ht.EMPTY){let i=[n.returnState,ht.EMPTY_RETURN_STATE],r=[n.parentCtx,null];return new Lr(r,i)}}return null}function d6(n,t,e,i){if(i!==null){let u=i.get(n,t);if(u!==null||(u=i.get(t,n),u!==null))return u}let r=0,s=0,a=0,o=[],l=[];for(;r{var{Set:JE,BitSet:e2}=ki(),{Token:Xa}=Qt(),{ATNConfig:m6}=Uu(),{IntervalSet:t2}=Ji(),{RuleStopState:f6}=gs(),{RuleTransition:p6,NotSetTransition:g6,WildcardTransition:_6,AbstractPredicateTransition:b6}=Fl(),{predictionContextFromRuleContext:v6,PredictionContext:i2,SingletonPredictionContext:y6}=bs(),Df=class n{constructor(t){this.atn=t}getDecisionLookahead(t){if(t===null)return null;let e=t.transitions.length,i=[];for(let r=0;r{var C6=Bv(),{IntervalSet:w6}=Ji(),{Token:Ul}=Qt(),x6=(()=>{class n{constructor(e,i){this.grammarType=e,this.maxTokenType=i,this.states=[],this.decisionToState=[],this.ruleToStartState=[],this.ruleToStopState=null,this.modeNameToStartState={},this.ruleToTokenType=null,this.lexerActions=null,this.modeToStartState=[]}nextTokensInContext(e,i){return new C6(this).LOOK(e,null,i)}nextTokensNoContext(e){return e.nextTokenWithinRule!==null||(e.nextTokenWithinRule=this.nextTokensInContext(e,null),e.nextTokenWithinRule.readOnly=!0),e.nextTokenWithinRule}nextTokens(e,i){return i===void 0?this.nextTokensNoContext(e):this.nextTokensInContext(e,i)}addState(e){e!==null&&(e.atn=this,e.stateNumber=this.states.length),this.states.push(e)}removeState(e){this.states[e.stateNumber]=null}defineDecisionState(e){return this.decisionToState.push(e),e.decision=this.decisionToState.length-1,e.decision}getDecisionState(e){return this.decisionToState.length===0?null:this.decisionToState[e]}getExpectedTokens(e,i){if(e<0||e>=this.states.length)throw"Invalid state number.";let r=this.states[e],s=this.nextTokens(r);if(!s.contains(Ul.EPSILON))return s;let a=new w6;for(a.addSet(s),a.removeOne(Ul.EPSILON);i!==null&&i.invokingState>=0&&s.contains(Ul.EPSILON);){let l=this.states[i.invokingState].transitions[0];s=this.nextTokens(l.followState),a.addSet(s),a.removeOne(Ul.EPSILON),i=i.parentCtx}return s.contains(Ul.EPSILON)&&a.addOne(Ul.EOF),a}}return n.INVALID_ALT_NUMBER=0,n})();r2.exports=x6});var a2=Q((_ce,s2)=>{s2.exports={LEXER:0,PARSER:1}});var zv=Q((bce,o2)=>{var $l=class{constructor(t){t===void 0&&(t=null),this.readOnly=!1,this.verifyATN=t===null?!0:t.verifyATN,this.generateRuleBypassTransitions=t===null?!1:t.generateRuleBypassTransitions}};$l.defaultOptions=new $l;$l.defaultOptions.readOnly=!0;o2.exports=$l});var Yv=Q((vce,l2)=>{var vs={CHANNEL:0,CUSTOM:1,MODE:2,MORE:3,POP_MODE:4,PUSH_MODE:5,SKIP:6,TYPE:7},tr=class{constructor(t){this.actionType=t,this.isPositionDependent=!1}hashCode(){let t=new Hash;return this.updateHashCode(t),t.finish()}updateHashCode(t){t.update(this.actionType)}equals(t){return this===t}},Hu=class extends tr{constructor(){super(vs.SKIP)}execute(t){t.skip()}toString(){return"skip"}};Hu.INSTANCE=new Hu;var Hv=class n extends tr{constructor(t){super(vs.TYPE),this.type=t}execute(t){t.type=this.type}updateHashCode(t){t.update(this.actionType,this.type)}equals(t){return this===t?!0:t instanceof n?this.type===t.type:!1}toString(){return"type("+this.type+")"}},jv=class n extends tr{constructor(t){super(vs.PUSH_MODE),this.mode=t}execute(t){t.pushMode(this.mode)}updateHashCode(t){t.update(this.actionType,this.mode)}equals(t){return this===t?!0:t instanceof n?this.mode===t.mode:!1}toString(){return"pushMode("+this.mode+")"}},ju=class extends tr{constructor(){super(vs.POP_MODE)}execute(t){t.popMode()}toString(){return"popMode"}};ju.INSTANCE=new ju;var Wu=class extends tr{constructor(){super(vs.MORE)}execute(t){t.more()}toString(){return"more"}};Wu.INSTANCE=new Wu;var Wv=class n extends tr{constructor(t){super(vs.MODE),this.mode=t}execute(t){t.mode(this.mode)}updateHashCode(t){t.update(this.actionType,this.mode)}equals(t){return this===t?!0:t instanceof n?this.mode===t.mode:!1}toString(){return"mode("+this.mode+")"}},qv=class n extends tr{constructor(t,e){super(vs.CUSTOM),this.ruleIndex=t,this.actionIndex=e,this.isPositionDependent=!0}execute(t){t.action(null,this.ruleIndex,this.actionIndex)}updateHashCode(t){t.update(this.actionType,this.ruleIndex,this.actionIndex)}equals(t){return this===t?!0:t instanceof n?this.ruleIndex===t.ruleIndex&&this.actionIndex===t.actionIndex:!1}},Gv=class n extends tr{constructor(t){super(vs.CHANNEL),this.channel=t}execute(t){t._channel=this.channel}updateHashCode(t){t.update(this.actionType,this.channel)}equals(t){return this===t?!0:t instanceof n?this.channel===t.channel:!1}toString(){return"channel("+this.channel+")"}},Kv=class n extends tr{constructor(t,e){super(e.actionType),this.offset=t,this.action=e,this.isPositionDependent=!0}execute(t){this.action.execute(t)}updateHashCode(t){t.update(this.actionType,this.offset,this.action)}equals(t){return this===t?!0:t instanceof n?this.offset===t.offset&&this.action===t.action:!1}};l2.exports={LexerActionType:vs,LexerSkipAction:Hu,LexerChannelAction:Gv,LexerCustomAction:qv,LexerIndexedCustomAction:Kv,LexerMoreAction:Wu,LexerTypeAction:Hv,LexerPushModeAction:jv,LexerPopModeAction:ju,LexerModeAction:Wv}});var ay=Q((yce,_2)=>{var{Token:Qv}=Qt(),S6=Ja(),Rf=a2(),{ATNState:Pi,BasicState:c2,DecisionState:k6,BlockStartState:Zv,BlockEndState:Xv,LoopEndState:Vl,RuleStartState:u2,RuleStopState:qu,TokensStartState:M6,PlusLoopbackState:d2,StarLoopbackState:Jv,StarLoopEntryState:Bl,PlusBlockStartState:ey,StarBlockStartState:ty,BasicBlockStartState:h2}=gs(),{Transition:Or,AtomTransition:iy,SetTransition:T6,NotSetTransition:E6,RuleTransition:m2,RangeTransition:f2,ActionTransition:A6,EpsilonTransition:Gu,WildcardTransition:I6,PredicateTransition:D6,PrecedencePredicateTransition:R6}=Fl(),{IntervalSet:L6}=Ji(),O6=zv(),{LexerActionType:sa,LexerSkipAction:N6,LexerChannelAction:F6,LexerCustomAction:P6,LexerMoreAction:U6,LexerTypeAction:$6,LexerPushModeAction:V6,LexerPopModeAction:B6,LexerModeAction:z6}=Yv(),H6="AADB8D7E-AEEF-4415-AD2B-8204D6CF042E",sy="59627784-3BE5-417A-B9EB-8131A7286089",ny=[H6,sy],p2=3,g2=sy;function Lf(n,t){let e=[];return e[n-1]=t,e.map(function(i){return t})}var ry=class{constructor(t){t==null&&(t=O6.defaultOptions),this.deserializationOptions=t,this.stateFactories=null,this.actionFactories=null}isFeatureSupported(t,e){let i=ny.indexOf(t);return i<0?!1:ny.indexOf(e)>=i}deserialize(t){this.reset(t),this.checkVersion(),this.checkUUID();let e=this.readATN();this.readStates(e),this.readRules(e),this.readModes(e);let i=[];return this.readSets(e,i,this.readInt.bind(this)),this.isFeatureSupported(sy,this.uuid)&&this.readSets(e,i,this.readInt32.bind(this)),this.readEdges(e,i),this.readDecisions(e),this.readLexerActions(e),this.markPrecedenceDecisions(e),this.verifyATN(e),this.deserializationOptions.generateRuleBypassTransitions&&e.grammarType===Rf.PARSER&&(this.generateRuleBypassTransitions(e),this.verifyATN(e)),e}reset(t){let e=function(r){let s=r.charCodeAt(0);return s>1?s-2:s+65534},i=t.split("").map(e);i[0]=t.charCodeAt(0),this.data=i,this.pos=0}checkVersion(){let t=this.readInt();if(t!==p2)throw"Could not deserialize ATN with version "+t+" (expected "+p2+")."}checkUUID(){let t=this.readUUID();if(ny.indexOf(t)<0)throw""+t+g2,g2;this.uuid=t}readATN(){let t=this.readInt(),e=this.readInt();return new S6(t,e)}readStates(t){let e,i,r,s=[],a=[],o=this.readInt();for(let u=0;u0;)s.addTransition(c.transitions[u-1]),c.transitions=c.transitions.slice(-1);t.ruleToStartState[e].addTransition(new Gu(s)),a.addTransition(new Gu(l));let d=new c2;t.addState(d),d.addTransition(new iy(a,t.ruleToTokenType[e])),s.addTransition(new Gu(d))}stateIsEndStateFor(t,e){if(t.ruleIndex!==e||!(t instanceof Bl))return null;let i=t.transitions[t.transitions.length-1].target;return i instanceof Vl&&i.epsilonOnlyTransitions&&i.transitions[0].target instanceof qu?t:null}markPrecedenceDecisions(t){for(let e=0;e=0):this.checkCondition(i.transitions.length<=1||i instanceof qu)}}checkCondition(t,e){if(!t)throw e==null&&(e="IllegalState"),e}readInt(){return this.data[this.pos++]}readInt32(){let t=this.readInt(),e=this.readInt();return t|e<<16}readLong(){let t=this.readInt32(),e=this.readInt32();return t&4294967295|e<<32}readUUID(){let t=[];for(let e=7;e>=0;e--){let i=this.readInt();t[2*e+1]=i&255,t[2*e]=i>>8&255}return Ti[t[0]]+Ti[t[1]]+Ti[t[2]]+Ti[t[3]]+"-"+Ti[t[4]]+Ti[t[5]]+"-"+Ti[t[6]]+Ti[t[7]]+"-"+Ti[t[8]]+Ti[t[9]]+"-"+Ti[t[10]]+Ti[t[11]]+Ti[t[12]]+Ti[t[13]]+Ti[t[14]]+Ti[t[15]]}edgeFactory(t,e,i,r,s,a,o,l){let c=t.states[r];switch(e){case Or.EPSILON:return new Gu(c);case Or.RANGE:return o!==0?new f2(c,Qv.EOF,a):new f2(c,s,a);case Or.RULE:return new m2(t.states[s],a,o,c);case Or.PREDICATE:return new D6(c,s,a,o!==0);case Or.PRECEDENCE:return new R6(c,s);case Or.ATOM:return o!==0?new iy(c,Qv.EOF):new iy(c,s);case Or.ACTION:return new A6(c,s,a,o!==0);case Or.SET:return new T6(c,l[s]);case Or.NOT_SET:return new E6(c,l[s]);case Or.WILDCARD:return new I6(c);default:throw"The specified transition type: "+e+" is not valid."}}stateFactory(t,e){if(this.stateFactories===null){let i=[];i[Pi.INVALID_TYPE]=null,i[Pi.BASIC]=()=>new c2,i[Pi.RULE_START]=()=>new u2,i[Pi.BLOCK_START]=()=>new h2,i[Pi.PLUS_BLOCK_START]=()=>new ey,i[Pi.STAR_BLOCK_START]=()=>new ty,i[Pi.TOKEN_START]=()=>new M6,i[Pi.RULE_STOP]=()=>new qu,i[Pi.BLOCK_END]=()=>new Xv,i[Pi.STAR_LOOP_BACK]=()=>new Jv,i[Pi.STAR_LOOP_ENTRY]=()=>new Bl,i[Pi.PLUS_LOOP_BACK]=()=>new d2,i[Pi.LOOP_END]=()=>new Vl,this.stateFactories=i}if(t>this.stateFactories.length||this.stateFactories[t]===null)throw"The specified state type "+t+" is not valid.";{let i=this.stateFactories[t]();if(i!==null)return i.ruleIndex=e,i}}lexerActionFactory(t,e,i){if(this.actionFactories===null){let r=[];r[sa.CHANNEL]=(s,a)=>new F6(s),r[sa.CUSTOM]=(s,a)=>new P6(s,a),r[sa.MODE]=(s,a)=>new z6(s),r[sa.MORE]=(s,a)=>U6.INSTANCE,r[sa.POP_MODE]=(s,a)=>B6.INSTANCE,r[sa.PUSH_MODE]=(s,a)=>new V6(s),r[sa.SKIP]=(s,a)=>N6.INSTANCE,r[sa.TYPE]=(s,a)=>new $6(s),this.actionFactories=r}if(t>this.actionFactories.length||this.actionFactories[t]===null)throw"The specified lexer action type "+t+" is not valid.";return this.actionFactories[t](e,i)}};function j6(){let n=[];for(let t=0;t<256;t++)n[t]=(t+256).toString(16).substr(1).toUpperCase();return n}var Ti=j6();_2.exports=ry});var Qu=Q((Cce,b2)=>{var Ku=class{syntaxError(t,e,i,r,s,a){}reportAmbiguity(t,e,i,r,s,a,o){}reportAttemptingFullContext(t,e,i,r,s,a){}reportContextSensitivity(t,e,i,r,s,a){}},Yu=class extends Ku{constructor(){super()}syntaxError(t,e,i,r,s,a){console.error("line "+i+":"+r+" "+s)}};Yu.INSTANCE=new Yu;var oy=class extends Ku{constructor(t){if(super(),t===null)throw"delegates";return this.delegates=t,this}syntaxError(t,e,i,r,s,a){this.delegates.map(o=>o.syntaxError(t,e,i,r,s,a))}reportAmbiguity(t,e,i,r,s,a,o){this.delegates.map(l=>l.reportAmbiguity(t,e,i,r,s,a,o))}reportAttemptingFullContext(t,e,i,r,s,a){this.delegates.map(o=>o.reportAttemptingFullContext(t,e,i,r,s,a))}reportContextSensitivity(t,e,i,r,s,a){this.delegates.map(o=>o.reportContextSensitivity(t,e,i,r,s,a))}};b2.exports={ErrorListener:Ku,ConsoleErrorListener:Yu,ProxyErrorListener:oy}});var cy=Q((wce,v2)=>{var{Token:ly}=Qt(),{ConsoleErrorListener:W6}=Qu(),{ProxyErrorListener:q6}=Qu(),G6=(()=>{class n{constructor(){this._listeners=[W6.INSTANCE],this._interp=null,this._stateNumber=-1}checkVersion(e){let i="4.9.3";i!==e&&console.log("ANTLR runtime and generated code versions disagree: "+i+"!="+e)}addErrorListener(e){this._listeners.push(e)}removeErrorListeners(){this._listeners=[]}getLiteralNames(){return Object.getPrototypeOf(this).constructor.literalNames||[]}getSymbolicNames(){return Object.getPrototypeOf(this).constructor.symbolicNames||[]}getTokenNames(){if(!this.tokenNames){let e=this.getLiteralNames(),i=this.getSymbolicNames(),r=e.length>i.length?e.length:i.length;this.tokenNames=[];for(let s=0;s";let i=e.text;return i===null&&(e.type===ly.EOF?i="":i="<"+e.type+">"),i=i.replace(` +`,"\\n").replace("\r","\\r").replace(" ","\\t"),"'"+i+"'"}getErrorListenerDispatch(){return new q6(this._listeners)}sempred(e,i,r){return!0}precpred(e,i){return!0}get state(){return this._stateNumber}set state(e){this._stateNumber=e}}return n.tokenTypeMapCache={},n.ruleIndexMapCache={},n})();v2.exports=G6});var w2=Q((xce,C2)=>{var y2=Qt().CommonToken,uy=class{},Zu=class extends uy{constructor(t){super(),this.copyText=t===void 0?!1:t}create(t,e,i,r,s,a,o,l){let c=new y2(t,e,r,s,a);return c.line=o,c.column=l,i!==null?c.text=i:this.copyText&&t[1]!==null&&(c.text=t[1].getText(s,a)),c}createThin(t,e){let i=new y2(null,t);return i.text=e,i}};Zu.DEFAULT=new Zu;C2.exports=Zu});var ir=Q((Sce,x2)=>{var{PredicateTransition:K6}=Fl(),{Interval:Y6}=Ji().Interval,eo=class n extends Error{constructor(t){if(super(t.message),Error.captureStackTrace)Error.captureStackTrace(this,n);else var e=new Error().stack;this.message=t.message,this.recognizer=t.recognizer,this.input=t.input,this.ctx=t.ctx,this.offendingToken=null,this.offendingState=-1,this.recognizer!==null&&(this.offendingState=this.recognizer.state)}getExpectedTokens(){return this.recognizer!==null?this.recognizer.atn.getExpectedTokens(this.offendingState,this.ctx):null}toString(){return this.message}},dy=class extends eo{constructor(t,e,i,r){super({message:"",recognizer:t,input:e,ctx:null}),this.startIndex=i,this.deadEndConfigs=r}toString(){let t="";return this.startIndex>=0&&this.startIndex{var{Token:Ui}=Qt(),Z6=cy(),X6=w2(),{RecognitionException:J6}=ir(),{LexerNoViableAltException:ez}=ir(),Nr=class n extends Z6{constructor(t){super(),this._input=t,this._factory=X6.DEFAULT,this._tokenFactorySourcePair=[this,t],this._interp=null,this._token=null,this._tokenStartCharIndex=-1,this._tokenStartLine=-1,this._tokenStartColumn=-1,this._hitEOF=!1,this._channel=Ui.DEFAULT_CHANNEL,this._type=Ui.INVALID_TYPE,this._modeStack=[],this._mode=n.DEFAULT_MODE,this._text=null}reset(){this._input!==null&&this._input.seek(0),this._token=null,this._type=Ui.INVALID_TYPE,this._channel=Ui.DEFAULT_CHANNEL,this._tokenStartCharIndex=-1,this._tokenStartColumn=-1,this._tokenStartLine=-1,this._text=null,this._hitEOF=!1,this._mode=n.DEFAULT_MODE,this._modeStack=[],this._interp.reset()}nextToken(){if(this._input===null)throw"nextToken requires a non-null input stream.";let t=this._input.mark();try{for(;;){if(this._hitEOF)return this.emitEOF(),this._token;this._token=null,this._channel=Ui.DEFAULT_CHANNEL,this._tokenStartCharIndex=this._input.index,this._tokenStartColumn=this._interp.column,this._tokenStartLine=this._interp.line,this._text=null;let e=!1;for(;;){this._type=Ui.INVALID_TYPE;let i=n.SKIP;try{i=this._interp.match(this._input,this._mode)}catch(r){if(r instanceof J6)this.notifyListeners(r),this.recover(r);else throw console.log(r.stack),r}if(this._input.LA(1)===Ui.EOF&&(this._hitEOF=!0),this._type===Ui.INVALID_TYPE&&(this._type=i),this._type===n.SKIP){e=!0;break}if(this._type!==n.MORE)break}if(!e)return this._token===null&&this.emit(),this._token}}finally{this._input.release(t)}}skip(){this._type=n.SKIP}more(){this._type=n.MORE}mode(t){this._mode=t}pushMode(t){this._interp.debug&&console.log("pushMode "+t),this._modeStack.push(this._mode),this.mode(t)}popMode(){if(this._modeStack.length===0)throw"Empty Stack";return this._interp.debug&&console.log("popMode back to "+this._modeStack.slice(0,-1)),this.mode(this._modeStack.pop()),this._mode}emitToken(t){this._token=t}emit(){let t=this._factory.create(this._tokenFactorySourcePair,this._type,this._text,this._channel,this._tokenStartCharIndex,this.getCharIndex()-1,this._tokenStartLine,this._tokenStartColumn);return this.emitToken(t),t}emitEOF(){let t=this.column,e=this.line,i=this._factory.create(this._tokenFactorySourcePair,Ui.EOF,null,Ui.DEFAULT_CHANNEL,this._input.index,this._input.index-1,e,t);return this.emitToken(i),i}getCharIndex(){return this._input.index}getAllTokens(){let t=[],e=this.nextToken();for(;e.type!==Ui.EOF;)t.push(e),e=this.nextToken();return t}notifyListeners(t){let e=this._tokenStartCharIndex,i=this._input.index,r=this._input.getText(e,i),s="token recognition error at: '"+this.getErrorDisplay(r)+"'";this.getErrorListenerDispatch().syntaxError(this,null,this._tokenStartLine,this._tokenStartColumn,s,t)}getErrorDisplay(t){let e=[];for(let i=0;i":t===` +`?"\\n":t===" "?"\\t":t==="\r"?"\\r":t}getCharErrorDisplay(t){return"'"+this.getErrorDisplayForChar(t)+"'"}recover(t){this._input.LA(1)!==Ui.EOF&&(t instanceof ez?this._interp.consume(this._input):this._input.consume())}get inputStream(){return this._input}set inputStream(t){this._input=null,this._tokenFactorySourcePair=[this,this._input],this.reset(),this._input=t,this._tokenFactorySourcePair=[this,this._input]}get sourceName(){return this._input.sourceName}get type(){return this._type}set type(t){this._type=t}get line(){return this._interp.line}set line(t){this._interp.line=t}get column(){return this._interp.column}set column(t){this._interp.column=t}get text(){return this._text!==null?this._text:this._interp.getText(this._input)}set text(t){this._text=t}};Nr.DEFAULT_MODE=0;Nr.MORE=-2;Nr.SKIP=-3;Nr.DEFAULT_TOKEN_CHANNEL=Ui.DEFAULT_CHANNEL;Nr.HIDDEN=Ui.HIDDEN_CHANNEL;Nr.MIN_CHAR_VALUE=0;Nr.MAX_CHAR_VALUE=1114111;S2.exports=Nr});var io=Q((Mce,M2)=>{var tz=Ja(),to=ki(),{SemanticContext:k2}=Nl(),{merge:iz}=bs();function nz(n){return n.hashCodeForConfigSet()}function rz(n,t){return n===t?!0:n===null||t===null?!1:n.equalsForConfigSet(t)}var Of=class n{constructor(t){this.configLookup=new to.Set(nz,rz),this.fullCtx=t===void 0?!0:t,this.readOnly=!1,this.configs=[],this.uniqueAlt=0,this.conflictingAlts=null,this.hasSemanticContext=!1,this.dipsIntoOuterContext=!1,this.cachedHashCode=-1}add(t,e){if(e===void 0&&(e=null),this.readOnly)throw"This set is readonly";t.semanticContext!==k2.NONE&&(this.hasSemanticContext=!0),t.reachesIntoOuterContext>0&&(this.dipsIntoOuterContext=!0);let i=this.configLookup.add(t);if(i===t)return this.cachedHashCode=-1,this.configs.push(t),!0;let r=!this.fullCtx,s=iz(i.context,t.context,r,e);return i.reachesIntoOuterContext=Math.max(i.reachesIntoOuterContext,t.reachesIntoOuterContext),t.precedenceFilterSuppressed&&(i.precedenceFilterSuppressed=!0),i.context=s,!0}getStates(){let t=new to.Set;for(let e=0;e{var{ATNConfigSet:sz}=io(),{Hash:az,Set:oz}=ki(),_y=class{constructor(t,e){this.alt=e,this.pred=t}toString(){return"("+this.pred+", "+this.alt+")"}},by=class n{constructor(t,e){return t===null&&(t=-1),e===null&&(e=new sz),this.stateNumber=t,this.configs=e,this.edges=null,this.isAcceptState=!1,this.prediction=0,this.lexerActionExecutor=null,this.requiresFullContext=!1,this.predicates=null,this}getAltSet(){let t=new oz;if(this.configs!==null)for(let e=0;e",this.predicates!==null?t=t+this.predicates:t=t+this.prediction),t}hashCode(){let t=new az;return t.update(this.configs),t.finish()}};T2.exports={DFAState:by,PredPrediction:_y}});var vy=Q((Ece,E2)=>{var{DFAState:lz}=zl(),{ATNConfigSet:cz}=io(),{getCachedPredictionContext:uz}=bs(),{Map:dz}=ki(),Nf=class{constructor(t,e){return this.atn=t,this.sharedContextCache=e,this}getCachedContext(t){if(this.sharedContextCache===null)return t;let e=new dz;return uz(t,this.sharedContextCache,e)}};Nf.ERROR=new lz(2147483647,new cz);E2.exports=Nf});var I2=Q((Ace,A2)=>{var{hashStuff:hz}=ki(),{LexerIndexedCustomAction:yy}=Yv(),Cy=class n{constructor(t){return this.lexerActions=t===null?[]:t,this.cachedHashCode=hz(t),this}fixOffsetBeforeMatch(t){let e=null;for(let i=0;i{var{Token:Hl}=Qt(),Ff=Xu(),mz=Ja(),Pf=vy(),{DFAState:fz}=zl(),{OrderedATNConfigSet:D2}=io(),{PredictionContext:wy}=bs(),{SingletonPredictionContext:pz}=bs(),{RuleStopState:R2}=gs(),{LexerATNConfig:Fr}=Uu(),{Transition:aa}=Fl(),gz=I2(),{LexerNoViableAltException:_z}=ir();function L2(n){n.index=-1,n.line=0,n.column=-1,n.dfaState=null}var xy=class{constructor(){L2(this)}reset(){L2(this)}},bz=(()=>{class n extends Pf{constructor(e,i,r,s){super(i,s),this.decisionToDFA=r,this.recog=e,this.startIndex=-1,this.line=1,this.column=0,this.mode=Ff.DEFAULT_MODE,this.prevAccept=new xy}copyState(e){this.column=e.column,this.line=e.line,this.mode=e.mode,this.startIndex=e.startIndex}match(e,i){this.match_calls+=1,this.mode=i;let r=e.mark();try{this.startIndex=e.index,this.prevAccept.reset();let s=this.decisionToDFA[i];return s.s0===null?this.matchATN(e):this.execATN(e,s.s0)}finally{e.release(r)}}reset(){this.prevAccept.reset(),this.startIndex=-1,this.line=1,this.column=0,this.mode=Ff.DEFAULT_MODE}matchATN(e){let i=this.atn.modeToStartState[this.mode];n.debug&&console.log("matchATN mode "+this.mode+" start: "+i);let r=this.mode,s=this.computeStartState(e,i),a=s.hasSemanticContext;s.hasSemanticContext=!1;let o=this.addDFAState(s);a||(this.decisionToDFA[this.mode].s0=o);let l=this.execATN(e,o);return n.debug&&console.log("DFA after matchATN: "+this.decisionToDFA[r].toLexerString()),l}execATN(e,i){n.debug&&console.log("start state closure="+i.configs),i.isAcceptState&&this.captureSimState(this.prevAccept,e,i);let r=e.LA(1),s=i;for(;;){n.debug&&console.log("execATN loop starting closure: "+s.configs);let a=this.getExistingTargetState(s,r);if(a===null&&(a=this.computeTargetState(e,s,r)),a===Pf.ERROR||(r!==Hl.EOF&&this.consume(e),a.isAcceptState&&(this.captureSimState(this.prevAccept,e,a),r===Hl.EOF)))break;r=e.LA(1),s=a}return this.failOrAccept(this.prevAccept,e,s.configs,r)}getExistingTargetState(e,i){if(e.edges===null||in.MAX_DFA_EDGE)return null;let r=e.edges[i-n.MIN_DFA_EDGE];return r===void 0&&(r=null),n.debug&&r!==null&&console.log("reuse state "+e.stateNumber+" edge to "+r.stateNumber),r}computeTargetState(e,i,r){let s=new D2;return this.getReachableConfigSet(e,i.configs,s,r),s.items.length===0?(s.hasSemanticContext||this.addDFAEdge(i,r,Pf.ERROR),Pf.ERROR):this.addDFAEdge(i,r,null,s)}failOrAccept(e,i,r,s){if(this.prevAccept.dfaState!==null){let a=e.dfaState.lexerActionExecutor;return this.accept(i,a,this.startIndex,e.index,e.line,e.column),e.dfaState.prediction}else{if(s===Hl.EOF&&i.index===this.startIndex)return Hl.EOF;throw new _z(this.recog,i,this.startIndex,r)}}getReachableConfigSet(e,i,r,s){let a=mz.INVALID_ALT_NUMBER;for(let o=0;on.MAX_DFA_EDGE||(n.debug&&console.log("EDGE "+e+" -> "+r+" upon "+i),e.edges===null&&(e.edges=[]),e.edges[i-n.MIN_DFA_EDGE]=r),r}addDFAState(e){let i=new fz(null,e),r=null;for(let l=0;l{var{Map:vz,BitSet:Sy,AltDict:yz,hashStuff:Cz}=ki(),F2=Ja(),{RuleStopState:P2}=gs(),{ATNConfigSet:wz}=io(),{ATNConfig:xz}=Uu(),{SemanticContext:Sz}=Nl(),Pr={SLL:0,LL:1,LL_EXACT_AMBIG_DETECTION:2,hasSLLConflictTerminatingPrediction:function(n,t){if(Pr.allConfigsInRuleStopStates(t))return!0;if(n===Pr.SLL&&t.hasSemanticContext){let i=new wz;for(let r=0;r1)return!0;return!1},allSubsetsEqual:function(n){let t=null;for(let e=0;e{var B2=If(),$f=Za(),kz=$f.INVALID_INTERVAL,$2=$f.TerminalNode,Mz=$f.TerminalNodeImpl,V2=$f.ErrorNodeImpl,Tz=Ji().Interval,Uf=class extends B2{constructor(t,e){t=t||null,e=e||null,super(t,e),this.ruleIndex=-1,this.children=null,this.start=null,this.stop=null,this.exception=null}copyFrom(t){this.parentCtx=t.parentCtx,this.invokingState=t.invokingState,this.children=null,this.start=t.start,this.stop=t.stop,t.children&&(this.children=[],t.children.map(function(e){e instanceof V2&&(this.children.push(e),e.parentCtx=this)},this))}enterRule(t){}exitRule(t){}addChild(t){return this.children===null&&(this.children=[]),this.children.push(t),t}removeLastChild(){this.children!==null&&this.children.pop()}addTokenNode(t){let e=new Mz(t);return this.addChild(e),e.parentCtx=this,e}addErrorNode(t){let e=new V2(t);return this.addChild(e),e.parentCtx=this,e}getChild(t,e){if(e=e||null,this.children===null||t<0||t>=this.children.length)return null;if(e===null)return this.children[t];for(let i=0;i=this.children.length)return null;for(let i=0;i{var td=ki(),{Set:H2,BitSet:j2,DoubleDict:Ez}=td,hi=Ja(),{ATNState:Vf,RuleStopState:Ju}=gs(),{ATNConfig:Ei}=Uu(),{ATNConfigSet:no}=io(),{Token:ys}=Qt(),{DFAState:Ty,PredPrediction:Az}=zl(),ed=vy(),mi=ky(),W2=If(),Lce=My(),{SemanticContext:oa}=Nl(),{PredictionContext:q2}=bs(),{Interval:Ey}=Ji(),{Transition:la,SetTransition:Iz,NotSetTransition:Dz,RuleTransition:Rz,ActionTransition:Lz}=Fl(),{NoViableAltException:Oz}=ir(),{SingletonPredictionContext:Nz,predictionContextFromRuleContext:Fz}=bs(),Ay=class extends ed{constructor(t,e,i,r){super(e,r),this.parser=t,this.decisionToDFA=i,this.predictionMode=mi.LL,this._input=null,this._startIndex=0,this._outerContext=null,this._dfa=null,this.mergeCache=null,this.debug=!1,this.debug_closure=!1,this.debug_add=!1,this.debug_list_atn_decisions=!1,this.dfa_debug=!1,this.retry_debug=!1}reset(){}adaptivePredict(t,e,i){(this.debug||this.debug_list_atn_decisions)&&console.log("adaptivePredict decision "+e+" exec LA(1)=="+this.getLookaheadName(t)+" line "+t.LT(1).line+":"+t.LT(1).column),this._input=t,this._startIndex=t.index,this._outerContext=i;let r=this.decisionToDFA[e];this._dfa=r;let s=t.mark(),a=t.index;try{let o;if(r.precedenceDfa?o=r.getPrecedenceStartState(this.parser.getPrecedence()):o=r.s0,o===null){i===null&&(i=W2.EMPTY),(this.debug||this.debug_list_atn_decisions)&&console.log("predictATN decision "+r.decision+" exec LA(1)=="+this.getLookaheadName(t)+", outerContext="+i.toString(this.parser.ruleNames));let u=this.computeStartState(r.atnStartState,W2.EMPTY,!1);r.precedenceDfa?(r.s0.configs=u,u=this.applyPrecedenceFilter(u),o=this.addDFAState(r,new Ty(null,u)),r.setPrecedenceStartState(this.parser.getPrecedence(),o)):(o=this.addDFAState(r,new Ty(null,u)),r.s0=o)}let l=this.execATN(r,o,t,a,i);return this.debug&&console.log("DFA after predictATN: "+r.toString(this.parser.literalNames,this.parser.symbolicNames)),l}finally{this._dfa=null,this.mergeCache=null,t.seek(a),t.release(s)}}execATN(t,e,i,r,s){(this.debug||this.debug_list_atn_decisions)&&console.log("execATN decision "+t.decision+" exec LA(1)=="+this.getLookaheadName(i)+" line "+i.LT(1).line+":"+i.LT(1).column);let a,o=e;this.debug&&console.log("s0 = "+e);let l=i.LA(1);for(;;){let c=this.getExistingTargetState(o,l);if(c===null&&(c=this.computeTargetState(t,o,l)),c===ed.ERROR){let u=this.noViableAlt(i,s,o.configs,r);if(i.seek(r),a=this.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(o.configs,s),a!==hi.INVALID_ALT_NUMBER)return a;throw u}if(c.requiresFullContext&&this.predictionMode!==mi.SLL){let u=null;if(c.predicates!==null){this.debug&&console.log("DFA state has preds in DFA sim LL failover");let m=i.index;if(m!==r&&i.seek(r),u=this.evalSemanticContext(c.predicates,s,!0),u.length===1)return this.debug&&console.log("Full LL avoided"),u.minValue();m!==r&&i.seek(m)}this.dfa_debug&&console.log("ctx sensitive state "+s+" in "+c);let h=this.computeStartState(t.atnStartState,s,!0);return this.reportAttemptingFullContext(t,u,c.configs,r,i.index),a=this.execATNWithFullContext(t,c,h,i,r,s),a}if(c.isAcceptState){if(c.predicates===null)return c.prediction;let u=i.index;i.seek(r);let d=this.evalSemanticContext(c.predicates,s,!0);if(d.length===0)throw this.noViableAlt(i,s,c.configs,r);return d.length===1||this.reportAmbiguity(t,c,r,u,!1,d,c.configs),d.minValue()}o=c,l!==ys.EOF&&(i.consume(),l=i.LA(1))}}getExistingTargetState(t,e){let i=t.edges;return i===null?null:i[e+1]||null}computeTargetState(t,e,i){let r=this.computeReachSet(e.configs,i,!1);if(r===null)return this.addDFAEdge(t,e,i,ed.ERROR),ed.ERROR;let s=new Ty(null,r),a=this.getUniqueAlt(r);if(this.debug){let o=mi.getConflictingAltSubsets(r);console.log("SLL altSubSets="+td.arrayToString(o)+", configs="+r+", predict="+a+", allSubsetsConflict="+mi.allSubsetsConflict(o)+", conflictingAlts="+this.getConflictingAlts(r))}return a!==hi.INVALID_ALT_NUMBER?(s.isAcceptState=!0,s.configs.uniqueAlt=a,s.prediction=a):mi.hasSLLConflictTerminatingPrediction(this.predictionMode,r)&&(s.configs.conflictingAlts=this.getConflictingAlts(r),s.requiresFullContext=!0,s.isAcceptState=!0,s.prediction=s.configs.conflictingAlts.minValue()),s.isAcceptState&&s.configs.hasSemanticContext&&(this.predicateDFAState(s,this.atn.getDecisionState(t.decision)),s.predicates!==null&&(s.prediction=hi.INVALID_ALT_NUMBER)),s=this.addDFAEdge(t,e,i,s),s}predicateDFAState(t,e){let i=e.transitions.length,r=this.getConflictingAltsOrUniqueAlt(t.configs),s=this.getPredsForAmbigAlts(r,t.configs,i);s!==null?(t.predicates=this.getPredicatePredictions(r,s),t.prediction=hi.INVALID_ALT_NUMBER):t.prediction=r.minValue()}execATNWithFullContext(t,e,i,r,s,a){(this.debug||this.debug_list_atn_decisions)&&console.log("execATNWithFullContext "+i);let o=!0,l=!1,c,u=i;r.seek(s);let d=r.LA(1),h=-1;for(;;){if(c=this.computeReachSet(u,d,o),c===null){let f=this.noViableAlt(r,a,u,s);r.seek(s);let p=this.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(u,a);if(p!==hi.INVALID_ALT_NUMBER)return p;throw f}let m=mi.getConflictingAltSubsets(c);if(this.debug&&console.log("LL altSubSets="+m+", predict="+mi.getUniqueAlt(m)+", resolvesToJustOneViableAlt="+mi.resolvesToJustOneViableAlt(m)),c.uniqueAlt=this.getUniqueAlt(c),c.uniqueAlt!==hi.INVALID_ALT_NUMBER){h=c.uniqueAlt;break}else if(this.predictionMode!==mi.LL_EXACT_AMBIG_DETECTION){if(h=mi.resolvesToJustOneViableAlt(m),h!==hi.INVALID_ALT_NUMBER)break}else if(mi.allSubsetsConflict(m)&&mi.allSubsetsEqual(m)){l=!0,h=mi.getSingleViableAlt(m);break}u=c,d!==ys.EOF&&(r.consume(),d=r.LA(1))}return c.uniqueAlt!==hi.INVALID_ALT_NUMBER?(this.reportContextSensitivity(t,h,c,s,r.index),h):(this.reportAmbiguity(t,e,s,r.index,l,null,c),h)}computeReachSet(t,e,i){this.debug&&console.log("in computeReachSet, starting closure: "+t),this.mergeCache===null&&(this.mergeCache=new Ez);let r=new no(i),s=null;for(let o=0;o0&&(a=this.getAltThatFinishedDecisionEntryRule(s),a!==hi.INVALID_ALT_NUMBER)?a:hi.INVALID_ALT_NUMBER}getAltThatFinishedDecisionEntryRule(t){let e=[];for(let i=0;i0||r.state instanceof Ju&&r.context.hasEmptyPath())&&e.indexOf(r.alt)<0&&e.push(r.alt)}return e.length===0?hi.INVALID_ALT_NUMBER:Math.min.apply(null,e)}splitAccordingToSemanticValidity(t,e){let i=new no(t.fullCtx),r=new no(t.fullCtx);for(let s=0;s50))throw"problem";if(t.state instanceof Ju)if(t.context.isEmpty())if(s){e.add(t,this.mergeCache);return}else this.debug&&console.log("FALLING off rule "+this.getRuleName(t.state.ruleIndex));else{for(let l=0;l=0&&(m+=1)}this.closureCheckingStopState(h,e,i,d,s,m,o)}}}canDropLoopEntryEdgeInLeftRecursiveRule(t){let e=t.state;if(e.stateType!==Vf.STAR_LOOP_ENTRY||e.stateType!==Vf.STAR_LOOP_ENTRY||!e.isPrecedenceDecision||t.context.isEmpty()||t.context.hasEmptyPath())return!1;let i=t.context.length;for(let o=0;o=0?this.parser.ruleNames[t]:""}getEpsilonTarget(t,e,i,r,s,a){switch(e.serializationType){case la.RULE:return this.ruleTransition(t,e);case la.PRECEDENCE:return this.precedenceTransition(t,e,i,r,s);case la.PREDICATE:return this.predTransition(t,e,i,r,s);case la.ACTION:return this.actionTransition(t,e);case la.EPSILON:return new Ei({state:e.target},t);case la.ATOM:case la.RANGE:case la.SET:return a&&e.matches(ys.EOF,0,1)?new Ei({state:e.target},t):null;default:return null}}actionTransition(t,e){if(this.debug){let i=e.actionIndex===-1?65535:e.actionIndex;console.log("ACTION edge "+e.ruleIndex+":"+i)}return new Ei({state:e.target},t)}precedenceTransition(t,e,i,r,s){this.debug&&(console.log("PRED (collectPredicates="+i+") "+e.precedence+">=_p, ctx dependent=true"),this.parser!==null&&console.log("context surrounding pred is "+td.arrayToString(this.parser.getRuleInvocationStack())));let a=null;if(i&&r)if(s){let o=this._input.index;this._input.seek(this._startIndex);let l=e.getPredicate().evaluate(this.parser,this._outerContext);this._input.seek(o),l&&(a=new Ei({state:e.target},t))}else{let o=oa.andContext(t.semanticContext,e.getPredicate());a=new Ei({state:e.target,semanticContext:o},t)}else a=new Ei({state:e.target},t);return this.debug&&console.log("config from pred transition="+a),a}predTransition(t,e,i,r,s){this.debug&&(console.log("PRED (collectPredicates="+i+") "+e.ruleIndex+":"+e.predIndex+", ctx dependent="+e.isCtxDependent),this.parser!==null&&console.log("context surrounding pred is "+td.arrayToString(this.parser.getRuleInvocationStack())));let a=null;if(i&&(e.isCtxDependent&&r||!e.isCtxDependent))if(s){let o=this._input.index;this._input.seek(this._startIndex);let l=e.getPredicate().evaluate(this.parser,this._outerContext);this._input.seek(o),l&&(a=new Ei({state:e.target},t))}else{let o=oa.andContext(t.semanticContext,e.getPredicate());a=new Ei({state:e.target,semanticContext:o},t)}else a=new Ei({state:e.target},t);return this.debug&&console.log("config from pred transition="+a),a}ruleTransition(t,e){this.debug&&console.log("CALL rule "+this.getRuleName(e.target.ruleIndex)+", ctx="+t.context);let i=e.followState,r=Nz.create(t.context,i.stateNumber);return new Ei({state:e.target,context:r},t)}getConflictingAlts(t){let e=mi.getConflictingAltSubsets(t);return mi.getAlts(e)}getConflictingAltsOrUniqueAlt(t){let e=null;return t.uniqueAlt!==hi.INVALID_ALT_NUMBER?(e=new j2,e.add(t.uniqueAlt)):e=t.conflictingAlts,e}getTokenName(t){if(t===ys.EOF)return"EOF";if(this.parser!==null&&this.parser.literalNames!==null)if(t>=this.parser.literalNames.length&&t>=this.parser.symbolicNames.length)console.log(""+t+" ttype out of range: "+this.parser.literalNames),console.log(""+this.parser.getInputStream().getTokens());else return(this.parser.literalNames[t]||this.parser.symbolicNames[t])+"<"+t+">";return""+t}getLookaheadName(t){return this.getTokenName(t.LA(1))}dumpDeadEndConfigs(t){console.log("dead end configs: ");let e=t.getDeadEndConfigs();for(let i=0;i0){let a=r.state.transitions[0];a instanceof AtomTransition?s="Atom "+this.getTokenName(a.label):a instanceof Iz&&(s=(a instanceof Dz?"~":"")+"Set "+a.set)}console.error(r.toString(this.parser,!0)+":"+s)}}noViableAlt(t,e,i,r){return new Oz(this.parser,t,t.get(r),t.LT(1),i,e)}getUniqueAlt(t){let e=hi.INVALID_ALT_NUMBER;for(let i=0;i "+r+" upon "+this.getTokenName(i)),r===null)return null;if(r=this.addDFAState(t,r),e===null||i<-1||i>this.atn.maxTokenType)return r;if(e.edges===null&&(e.edges=[]),e.edges[i+1]=r,this.debug){let s=this.parser===null?null:this.parser.literalNames,a=this.parser===null?null:this.parser.symbolicNames;console.log(`DFA= +`+t.toString(s,a))}return r}addDFAState(t,e){if(e===ed.ERROR)return e;let i=t.states.get(e);return i!==null?i:(e.stateNumber=t.states.length,e.configs.readOnly||(e.configs.optimizeConfigs(this),e.configs.setReadonly(!0)),t.states.add(e),this.debug&&console.log("adding new DFA state: "+e),e)}reportAttemptingFullContext(t,e,i,r,s){if(this.debug||this.retry_debug){let a=new Ey(r,s+1);console.log("reportAttemptingFullContext decision="+t.decision+":"+i+", input="+this.parser.getTokenStream().getText(a))}this.parser!==null&&this.parser.getErrorListenerDispatch().reportAttemptingFullContext(this.parser,t,r,s,e,i)}reportContextSensitivity(t,e,i,r,s){if(this.debug||this.retry_debug){let a=new Ey(r,s+1);console.log("reportContextSensitivity decision="+t.decision+":"+i+", input="+this.parser.getTokenStream().getText(a))}this.parser!==null&&this.parser.getErrorListenerDispatch().reportContextSensitivity(this.parser,t,r,s,e,i)}reportAmbiguity(t,e,i,r,s,a,o){if(this.debug||this.retry_debug){let l=new Ey(i,r+1);console.log("reportAmbiguity "+a+":"+o+", input="+this.parser.getTokenStream().getText(l))}this.parser!==null&&this.parser.getErrorListenerDispatch().reportAmbiguity(this.parser,t,i,r,s,a,o)}};G2.exports=Ay});var Y2=Q(jl=>{jl.ATN=Ja();jl.ATNDeserializer=ay();jl.LexerATNSimulator=N2();jl.ParserATNSimulator=K2();jl.PredictionMode=ky()});var Iy=Q(()=>{String.prototype.codePointAt||function(){"use strict";var n=function(){let e;try{let i={},r=Object.defineProperty;e=r(i,i,i)&&r}catch{}return e}();let t=function(e){if(this==null)throw TypeError();let i=String(this),r=i.length,s=e?Number(e):0;if(s!==s&&(s=0),s<0||s>=r)return;let a=i.charCodeAt(s),o;return a>=55296&&a<=56319&&r>s+1&&(o=i.charCodeAt(s+1),o>=56320&&o<=57343)?(a-55296)*1024+o-56320+65536:a};n?n(String.prototype,"codePointAt",{value:t,configurable:!0,writable:!0}):String.prototype.codePointAt=t}()});var id=Q((Uce,Q2)=>{var Pz=ki(),Bf=class{constructor(t,e,i){this.dfa=t,this.literalNames=e||[],this.symbolicNames=i||[]}toString(){if(this.dfa.s0===null)return null;let t="",e=this.dfa.sortedStates();for(let i=0;i"),t=t.concat(this.getStateString(o)),t=t.concat(` +`))}}}return t.length===0?null:t}getEdgeLabel(t){return t===0?"EOF":this.literalNames!==null||this.symbolicNames!==null?this.literalNames[t-1]||this.symbolicNames[t-1]:String.fromCharCode(t-1)}getStateString(t){let e=(t.isAcceptState?":":"")+"s"+t.stateNumber+(t.requiresFullContext?"^":"");return t.isAcceptState?t.predicates!==null?e+"=>"+Pz.arrayToString(t.predicates):e+"=>"+t.prediction.toString():e}},Dy=class extends Bf{constructor(t){super(t,null)}getEdgeLabel(t){return"'"+String.fromCharCode(t)+"'"}};Q2.exports={DFASerializer:Bf,LexerDFASerializer:Dy}});var tA=Q(($ce,eA)=>{var{Set:Z2}=ki(),{DFAState:X2}=zl(),{StarLoopEntryState:Uz}=gs(),{ATNConfigSet:J2}=io(),{DFASerializer:$z}=id(),{LexerDFASerializer:Vz}=id(),Ry=class{constructor(t,e){if(e===void 0&&(e=0),this.atnStartState=t,this.decision=e,this._states=new Z2,this.s0=null,this.precedenceDfa=!1,t instanceof Uz&&t.isPrecedenceDecision){this.precedenceDfa=!0;let i=new X2(null,new J2);i.edges=[],i.isAcceptState=!1,i.requiresFullContext=!1,this.s0=i}}getPrecedenceStartState(t){if(!this.precedenceDfa)throw"Only precedence DFAs may contain a precedence start state.";return t<0||t>=this.s0.edges.length?null:this.s0.edges[t]||null}setPrecedenceStartState(t,e){if(!this.precedenceDfa)throw"Only precedence DFAs may contain a precedence start state.";t<0||(this.s0.edges[t]=e)}setPrecedenceDfa(t){if(this.precedenceDfa!==t){if(this._states=new Z2,t){let e=new X2(null,new J2);e.edges=[],e.isAcceptState=!1,e.requiresFullContext=!1,this.s0=e}else this.s0=null;this.precedenceDfa=t}}sortedStates(){return this._states.values().sort(function(e,i){return e.stateNumber-i.stateNumber})}toString(t,e){return t=t||null,e=e||null,this.s0===null?"":new $z(this,t,e).toString()}toLexerString(){return this.s0===null?"":new Vz(this).toString()}get states(){return this._states}};eA.exports=Ry});var iA=Q(nd=>{nd.DFA=tA();nd.DFASerializer=id().DFASerializer;nd.LexerDFASerializer=id().LexerDFASerializer;nd.PredPrediction=zl().PredPrediction});var Ly=Q(()=>{String.fromCodePoint||function(){let n=function(){let r;try{let s={},a=Object.defineProperty;r=a(s,s,s)&&a}catch{}return r}(),t=String.fromCharCode,e=Math.floor,i=function(r){let a=[],o,l,c=-1,u=arguments.length;if(!u)return"";let d="";for(;++c1114111||e(h)!==h)throw RangeError("Invalid code point: "+h);h<=65535?a.push(h):(h-=65536,o=(h>>10)+55296,l=h%1024+56320,a.push(o,l)),(c+1===u||a.length>16384)&&(d+=t.apply(null,a),a.length=0)}return d};n?n(String,"fromCodePoint",{value:i,configurable:!0,writable:!0}):String.fromCodePoint=i}()});var rA=Q((Hce,nA)=>{var Bz=Za(),zz=Pv();nA.exports=Le(H({},Bz),{Trees:zz})});var aA=Q((Wce,sA)=>{var{BitSet:Hz}=ki(),{ErrorListener:jz}=Qu(),{Interval:Oy}=Ji(),Ny=class extends jz{constructor(t){super(),t=t||!0,this.exactOnly=t}reportAmbiguity(t,e,i,r,s,a,o){if(this.exactOnly&&!s)return;let l="reportAmbiguity d="+this.getDecisionDescription(t,e)+": ambigAlts="+this.getConflictingAlts(a,o)+", input='"+t.getTokenStream().getText(new Oy(i,r))+"'";t.notifyErrorListeners(l)}reportAttemptingFullContext(t,e,i,r,s,a){let o="reportAttemptingFullContext d="+this.getDecisionDescription(t,e)+", input='"+t.getTokenStream().getText(new Oy(i,r))+"'";t.notifyErrorListeners(o)}reportContextSensitivity(t,e,i,r,s,a){let o="reportContextSensitivity d="+this.getDecisionDescription(t,e)+", input='"+t.getTokenStream().getText(new Oy(i,r))+"'";t.notifyErrorListeners(o)}getDecisionDescription(t,e){let i=e.decision,r=e.atnStartState.ruleIndex,s=t.ruleNames;if(r<0||r>=s.length)return""+i;let a=s[r]||null;return a===null||a.length===0?""+i:`${i} (${a})`}getConflictingAlts(t,e){if(t!==null)return t;let i=new Hz;for(let r=0;r{var{Token:ca}=Qt(),{NoViableAltException:Wz,InputMismatchException:zf,FailedPredicateException:qz,ParseCancellationException:Gz}=ir(),{ATNState:ro}=gs(),{Interval:Kz,IntervalSet:oA}=Ji(),Fy=class{reset(t){}recoverInline(t){}recover(t,e){}sync(t){}inErrorRecoveryMode(t){}reportError(t){}},Hf=class extends Fy{constructor(){super(),this.errorRecoveryMode=!1,this.lastErrorIndex=-1,this.lastErrorStates=null,this.nextTokensContext=null,this.nextTokenState=0}reset(t){this.endErrorCondition(t)}beginErrorCondition(t){this.errorRecoveryMode=!0}inErrorRecoveryMode(t){return this.errorRecoveryMode}endErrorCondition(t){this.errorRecoveryMode=!1,this.lastErrorStates=null,this.lastErrorIndex=-1}reportMatch(t){this.endErrorCondition(t)}reportError(t,e){this.inErrorRecoveryMode(t)||(this.beginErrorCondition(t),e instanceof Wz?this.reportNoViableAlternative(t,e):e instanceof zf?this.reportInputMismatch(t,e):e instanceof qz?this.reportFailedPredicate(t,e):(console.log("unknown recognition error type: "+e.constructor.name),console.log(e.stack),t.notifyErrorListeners(e.getOffendingToken(),e.getMessage(),e)))}recover(t,e){this.lastErrorIndex===t.getInputStream().index&&this.lastErrorStates!==null&&this.lastErrorStates.indexOf(t.state)>=0&&t.consume(),this.lastErrorIndex=t._input.index,this.lastErrorStates===null&&(this.lastErrorStates=[]),this.lastErrorStates.push(t.state);let i=this.getErrorRecoverySet(t);this.consumeUntil(t,i)}sync(t){if(this.inErrorRecoveryMode(t))return;let e=t._interp.atn.states[t.state],i=t.getTokenStream().LA(1),r=t.atn.nextTokens(e);if(r.contains(i)){this.nextTokensContext=null,this.nextTokenState=ro.INVALID_STATE_NUMBER;return}else if(r.contains(ca.EPSILON)){this.nextTokensContext===null&&(this.nextTokensContext=t._ctx,this.nextTokensState=t._stateNumber);return}switch(e.stateType){case ro.BLOCK_START:case ro.STAR_BLOCK_START:case ro.PLUS_BLOCK_START:case ro.STAR_LOOP_ENTRY:if(this.singleTokenDeletion(t)!==null)return;throw new zf(t);case ro.PLUS_LOOP_BACK:case ro.STAR_LOOP_BACK:this.reportUnwantedToken(t);let s=new oA;s.addSet(t.getExpectedTokens());let a=s.addSet(this.getErrorRecoverySet(t));this.consumeUntil(t,a);break;default:}}reportNoViableAlternative(t,e){let i=t.getTokenStream(),r;i!==null?e.startToken.type===ca.EOF?r="":r=i.getText(new Kz(e.startToken.tokenIndex,e.offendingToken.tokenIndex)):r="";let s="no viable alternative at input "+this.escapeWSAndQuote(r);t.notifyErrorListeners(s,e.offendingToken,e)}reportInputMismatch(t,e){let i="mismatched input "+this.getTokenErrorDisplay(e.offendingToken)+" expecting "+e.getExpectedTokens().toString(t.literalNames,t.symbolicNames);t.notifyErrorListeners(i,e.offendingToken,e)}reportFailedPredicate(t,e){let r="rule "+t.ruleNames[t._ctx.ruleIndex]+" "+e.message;t.notifyErrorListeners(r,e.offendingToken,e)}reportUnwantedToken(t){if(this.inErrorRecoveryMode(t))return;this.beginErrorCondition(t);let e=t.getCurrentToken(),i=this.getTokenErrorDisplay(e),r=this.getExpectedTokens(t),s="extraneous input "+i+" expecting "+r.toString(t.literalNames,t.symbolicNames);t.notifyErrorListeners(s,e,null)}reportMissingToken(t){if(this.inErrorRecoveryMode(t))return;this.beginErrorCondition(t);let e=t.getCurrentToken(),r="missing "+this.getExpectedTokens(t).toString(t.literalNames,t.symbolicNames)+" at "+this.getTokenErrorDisplay(e);t.notifyErrorListeners(r,e,null)}recoverInline(t){let e=this.singleTokenDeletion(t);if(e!==null)return t.consume(),e;if(this.singleTokenInsertion(t))return this.getMissingSymbol(t);throw new zf(t)}singleTokenInsertion(t){let e=t.getTokenStream().LA(1),i=t._interp.atn,s=i.states[t.state].transitions[0].target;return i.nextTokens(s,t._ctx).contains(e)?(this.reportMissingToken(t),!0):!1}singleTokenDeletion(t){let e=t.getTokenStream().LA(2);if(this.getExpectedTokens(t).contains(e)){this.reportUnwantedToken(t),t.consume();let r=t.getCurrentToken();return this.reportMatch(t),r}else return null}getMissingSymbol(t){let e=t.getCurrentToken(),r=this.getExpectedTokens(t).first(),s;r===ca.EOF?s="":s="";let a=e,o=t.getTokenStream().LT(-1);return a.type===ca.EOF&&o!==null&&(a=o),t.getTokenFactory().create(a.source,r,s,ca.DEFAULT_CHANNEL,-1,-1,a.line,a.column)}getExpectedTokens(t){return t.getExpectedTokens()}getTokenErrorDisplay(t){if(t===null)return"";let e=t.text;return e===null&&(t.type===ca.EOF?e="":e="<"+t.type+">"),this.escapeWSAndQuote(e)}escapeWSAndQuote(t){return t=t.replace(/\n/g,"\\n"),t=t.replace(/\r/g,"\\r"),t=t.replace(/\t/g,"\\t"),"'"+t+"'"}getErrorRecoverySet(t){let e=t._interp.atn,i=t._ctx,r=new oA;for(;i!==null&&i.invokingState>=0;){let a=e.states[i.invokingState].transitions[0],o=e.nextTokens(a.followState);r.addSet(o),i=i.parentCtx}return r.removeOne(ca.EPSILON),r}consumeUntil(t,e){let i=t.getTokenStream().LA(1);for(;i!==ca.EOF&&!e.contains(i);)t.consume(),i=t.getTokenStream().LA(1)}},Py=class extends Hf{constructor(){super()}recover(t,e){let i=t._ctx;for(;i!==null;)i.exception=e,i=i.parentCtx;throw new Gz(e)}recoverInline(t){this.recover(t,new zf(t))}sync(t){}};lA.exports={BailErrorStrategy:Py,DefaultErrorStrategy:Hf}});var cA=Q((Gce,Ur)=>{Ur.exports.RecognitionException=ir().RecognitionException;Ur.exports.NoViableAltException=ir().NoViableAltException;Ur.exports.LexerNoViableAltException=ir().LexerNoViableAltException;Ur.exports.InputMismatchException=ir().InputMismatchException;Ur.exports.FailedPredicateException=ir().FailedPredicateException;Ur.exports.DiagnosticErrorListener=aA();Ur.exports.BailErrorStrategy=jf().BailErrorStrategy;Ur.exports.DefaultErrorStrategy=jf().DefaultErrorStrategy;Ur.exports.ErrorListener=Qu().ErrorListener});var dA=Q((Kce,uA)=>{var{Token:Yz}=Qt();Iy();Ly();var Uy=class{constructor(t,e){if(this.name="",this.strdata=t,this.decodeToUnicodeCodePoints=e||!1,this._index=0,this.data=[],this.decodeToUnicodeCodePoints)for(let i=0;i=this._size)throw"cannot consume EOF";this._index+=1}LA(t){if(t===0)return 0;t<0&&(t+=1);let e=this._index+t-1;return e<0||e>=this._size?Yz.EOF:this.data[e]}LT(t){return this.LA(t)}mark(){return-1}release(t){}seek(t){if(t<=this._index){this._index=t;return}this._index=Math.min(t,this._size)}getText(t,e){if(e>=this._size&&(e=this._size-1),t>=this._size)return"";if(this.decodeToUnicodeCodePoints){let i="";for(let r=t;r<=e;r++)i+=String.fromCodePoint(this.data[r]);return i}else return this.strdata.slice(t,e+1)}toString(){return this.strdata}get index(){return this._index}get size(){return this._size}};uA.exports=Uy});var mA=Q((Yce,hA)=>{var{Token:so}=Qt(),$y=Xu(),{Interval:Qz}=Ji(),Vy=class{},By=class extends Vy{constructor(t){super(),this.tokenSource=t,this.tokens=[],this.index=-1,this.fetchedEOF=!1}mark(){return 0}release(t){}reset(){this.seek(0)}seek(t){this.lazyInit(),this.index=this.adjustSeekIndex(t)}get(t){return this.lazyInit(),this.tokens[t]}consume(){let t=!1;if(this.index>=0?this.fetchedEOF?t=this.index0?this.fetch(e)>=e:!0}fetch(t){if(this.fetchedEOF)return 0;for(let e=0;e=this.tokens.length&&(e=this.tokens.length-1);for(let s=t;s=this.tokens.length?this.tokens[this.tokens.length-1]:this.tokens[e]}adjustSeekIndex(t){return t}lazyInit(){this.index===-1&&this.setup()}setup(){this.sync(0),this.index=this.adjustSeekIndex(0)}setTokenSource(t){this.tokenSource=t,this.tokens=[],this.index=-1,this.fetchedEOF=!1}nextTokenOnChannel(t,e){if(this.sync(t),t>=this.tokens.length)return-1;let i=this.tokens[t];for(;i.channel!==this.channel;){if(i.type===so.EOF)return-1;t+=1,this.sync(t),i=this.tokens[t]}return t}previousTokenOnChannel(t,e){for(;t>=0&&this.tokens[t].channel!==e;)t-=1;return t}getHiddenTokensToRight(t,e){if(e===void 0&&(e=-1),this.lazyInit(),t<0||t>=this.tokens.length)throw""+t+" not in 0.."+this.tokens.length-1;let i=this.nextTokenOnChannel(t+1,$y.DEFAULT_TOKEN_CHANNEL),r=t+1,s=i===-1?this.tokens.length-1:i;return this.filterForChannel(r,s,e)}getHiddenTokensToLeft(t,e){if(e===void 0&&(e=-1),this.lazyInit(),t<0||t>=this.tokens.length)throw""+t+" not in 0.."+this.tokens.length-1;let i=this.previousTokenOnChannel(t-1,$y.DEFAULT_TOKEN_CHANNEL);if(i===t-1)return null;let r=i+1,s=t-1;return this.filterForChannel(r,s,e)}filterForChannel(t,e,i){let r=[];for(let s=t;s=this.tokens.length&&(i=this.tokens.length-1);let r="";for(let s=e;s{var fA=Qt().Token,Zz=mA(),zy=class extends Zz{constructor(t,e){super(t),this.channel=e===void 0?fA.DEFAULT_CHANNEL:e}adjustSeekIndex(t){return this.nextTokenOnChannel(t,this.channel)}LB(t){if(t===0||this.index-t<0)return null;let e=this.index,i=1;for(;i<=t;)e=this.previousTokenOnChannel(e-1,this.channel),i+=1;return e<0?null:this.tokens[e]}LT(t){if(this.lazyInit(),t===0)return null;if(t<0)return this.LB(-t);let e=this.index,i=1;for(;i{var{Token:rd}=Qt(),{ParseTreeListener:Xz,TerminalNode:Jz,ErrorNode:e5}=Za(),t5=cy(),{DefaultErrorStrategy:i5}=jf(),n5=ay(),r5=zv(),s5=Xu(),Hy=class extends Xz{constructor(t){super(),this.parser=t}enterEveryRule(t){console.log("enter "+this.parser.ruleNames[t.ruleIndex]+", LT(1)="+this.parser._input.LT(1).text)}visitTerminal(t){console.log("consume "+t.symbol+" rule "+this.parser.ruleNames[this.parser._ctx.ruleIndex])}exitEveryRule(t){console.log("exit "+this.parser.ruleNames[t.ruleIndex]+", LT(1)="+this.parser._input.LT(1).text)}},a5=(()=>{class n extends t5{constructor(e){super(),this._input=null,this._errHandler=new i5,this._precedenceStack=[],this._precedenceStack.push(0),this._ctx=null,this.buildParseTrees=!0,this._tracer=null,this._parseListeners=null,this._syntaxErrors=0,this.setInputStream(e)}reset(){this._input!==null&&this._input.seek(0),this._errHandler.reset(this),this._ctx=null,this._syntaxErrors=0,this.setTrace(!1),this._precedenceStack=[],this._precedenceStack.push(0),this._interp!==null&&this._interp.reset()}match(e){let i=this.getCurrentToken();return i.type===e?(this._errHandler.reportMatch(this),this.consume()):(i=this._errHandler.recoverInline(this),this.buildParseTrees&&i.tokenIndex===-1&&this._ctx.addErrorNode(i)),i}matchWildcard(){let e=this.getCurrentToken();return e.type>0?(this._errHandler.reportMatch(this),this.consume()):(e=this._errHandler.recoverInline(this),this._buildParseTrees&&e.tokenIndex===-1&&this._ctx.addErrorNode(e)),e}getParseListeners(){return this._parseListeners||[]}addParseListener(e){if(e===null)throw"listener";this._parseListeners===null&&(this._parseListeners=[]),this._parseListeners.push(e)}removeParseListener(e){if(this._parseListeners!==null){let i=this._parseListeners.indexOf(e);i>=0&&this._parseListeners.splice(i,1),this._parseListeners.length===0&&(this._parseListeners=null)}}removeParseListeners(){this._parseListeners=null}triggerEnterRuleEvent(){if(this._parseListeners!==null){let e=this._ctx;this._parseListeners.forEach(function(i){i.enterEveryRule(e),e.enterRule(i)})}}triggerExitRuleEvent(){if(this._parseListeners!==null){let e=this._ctx;this._parseListeners.slice(0).reverse().forEach(function(i){e.exitRule(i),i.exitEveryRule(e)})}}getTokenFactory(){return this._input.tokenSource._factory}setTokenFactory(e){this._input.tokenSource._factory=e}getATNWithBypassAlts(){let e=this.getSerializedATN();if(e===null)throw"The current parser does not support an ATN with bypass alternatives.";let i=this.bypassAltsAtnCache[e];if(i===null){let r=new r5;r.generateRuleBypassTransitions=!0,i=new n5(r).deserialize(e),this.bypassAltsAtnCache[e]=i}return i}compileParseTreePattern(e,i,r){if(r=r||null,r===null&&this.getTokenStream()!==null){let a=this.getTokenStream().tokenSource;a instanceof s5&&(r=a)}if(r===null)throw"Parser can't discover a lexer to use";return new ParseTreePatternMatcher(r,this).compile(e,i)}getInputStream(){return this.getTokenStream()}setInputStream(e){this.setTokenStream(e)}getTokenStream(){return this._input}setTokenStream(e){this._input=null,this.reset(),this._input=e}getCurrentToken(){return this._input.LT(1)}notifyErrorListeners(e,i,r){i=i||null,r=r||null,i===null&&(i=this.getCurrentToken()),this._syntaxErrors+=1;let s=i.line,a=i.column;this.getErrorListenerDispatch().syntaxError(this,i,s,a,e,r)}consume(){let e=this.getCurrentToken();e.type!==rd.EOF&&this.getInputStream().consume();let i=this._parseListeners!==null&&this._parseListeners.length>0;if(this.buildParseTrees||i){let r;this._errHandler.inErrorRecoveryMode(this)?r=this._ctx.addErrorNode(e):r=this._ctx.addTokenNode(e),r.invokingState=this.state,i&&this._parseListeners.forEach(function(s){r instanceof e5||r.isErrorNode!==void 0&&r.isErrorNode()?s.visitErrorNode(r):r instanceof Jz&&s.visitTerminal(r)})}return e}addContextToParseTree(){this._ctx.parentCtx!==null&&this._ctx.parentCtx.addChild(this._ctx)}enterRule(e,i,r){this.state=i,this._ctx=e,this._ctx.start=this._input.LT(1),this.buildParseTrees&&this.addContextToParseTree(),this.triggerEnterRuleEvent()}exitRule(){this._ctx.stop=this._input.LT(-1),this.triggerExitRuleEvent(),this.state=this._ctx.invokingState,this._ctx=this._ctx.parentCtx}enterOuterAlt(e,i){e.setAltNumber(i),this.buildParseTrees&&this._ctx!==e&&this._ctx.parentCtx!==null&&(this._ctx.parentCtx.removeLastChild(),this._ctx.parentCtx.addChild(e)),this._ctx=e}getPrecedence(){return this._precedenceStack.length===0?-1:this._precedenceStack[this._precedenceStack.length-1]}enterRecursionRule(e,i,r,s){this.state=i,this._precedenceStack.push(s),this._ctx=e,this._ctx.start=this._input.LT(1),this.triggerEnterRuleEvent()}pushNewRecursionContext(e,i,r){let s=this._ctx;s.parentCtx=e,s.invokingState=i,s.stop=this._input.LT(-1),this._ctx=e,this._ctx.start=s.start,this.buildParseTrees&&this._ctx.addChild(s),this.triggerEnterRuleEvent()}unrollRecursionContexts(e){this._precedenceStack.pop(),this._ctx.stop=this._input.LT(-1);let i=this._ctx,r=this.getParseListeners();if(r!==null&&r.length>0)for(;this._ctx!==e;)this.triggerExitRuleEvent(),this._ctx=this._ctx.parentCtx;else this._ctx=e;i.parentCtx=e,this.buildParseTrees&&e!==null&&e.addChild(i)}getInvokingContext(e){let i=this._ctx;for(;i!==null;){if(i.ruleIndex===e)return i;i=i.parentCtx}return null}precpred(e,i){return i>=this._precedenceStack[this._precedenceStack.length-1]}inContext(e){return!1}isExpectedToken(e){let i=this._interp.atn,r=this._ctx,s=i.states[this.state],a=i.nextTokens(s);if(a.contains(e))return!0;if(!a.contains(rd.EPSILON))return!1;for(;r!==null&&r.invokingState>=0&&a.contains(rd.EPSILON);){let l=i.states[r.invokingState].transitions[0];if(a=i.nextTokens(l.followState),a.contains(e))return!0;r=r.parentCtx}return!!(a.contains(rd.EPSILON)&&e===rd.EOF)}getExpectedTokens(){return this._interp.atn.getExpectedTokens(this.state,this._ctx)}getExpectedTokensWithinCurrentRule(){let e=this._interp.atn,i=e.states[this.state];return e.nextTokens(i)}getRuleIndex(e){let i=this.getRuleIndexMap()[e];return i!==null?i:-1}getRuleInvocationStack(e){e=e||null,e===null&&(e=this._ctx);let i=[];for(;e!==null;){let r=e.ruleIndex;r<0?i.push("n/a"):i.push(this.ruleNames[r]),e=e.parentCtx}return i}getDFAStrings(){return this._interp.decisionToDFA.toString()}dumpDFA(){let e=!1;for(let i=0;i0&&(e&&console.log(),this.printer.println("Decision "+r.decision+":"),this.printer.print(r.toString(this.literalNames,this.symbolicNames)),e=!0)}}getSourceName(){return this._input.sourceName}setTrace(e){e?(this._tracer!==null&&this.removeParseListener(this._tracer),this._tracer=new Hy(this),this.addParseListener(this._tracer)):(this.removeParseListener(this._tracer),this._tracer=null)}}return n.bypassAltsAtnCache={},n})();_A.exports=a5});var sd=Q(ii=>{ii.atn=Y2();ii.codepointat=Iy();ii.dfa=iA();ii.fromcodepoint=Ly();ii.tree=rA();ii.error=cA();ii.Token=Qt().Token;ii.CommonToken=Qt().CommonToken;ii.InputStream=dA();ii.CommonTokenStream=gA();ii.Lexer=Xu();ii.Parser=bA();var o5=bs();ii.PredictionContextCache=o5.PredictionContextCache;ii.ParserRuleContext=My();ii.Interval=Ji().Interval;ii.IntervalSet=Ji().IntervalSet;ii.Utils=ki();ii.LL1Analyzer=Bv().LL1Analyzer});var yA=Q((Jce,vA)=>{var Wl=sd(),l5=["\u608B\uA72A\u8133\uB9ED\u417C\u3BE7\u7786","\u5964A\u0203\b  ","   \x07",` \x07\b \b  + +\v \v`,"\f \f\r \r  ","    ","   ","    ","\x1B \x1B  ",'   ! !" "#'," #$ $% %& &' '( () )","* *+ +, ,- -. ./ /0 0","1 12 23 34 45 56 67 7","8 89 9: :; ;< <= => >","? ?@ @A AB BC CD D","","\x07\x07\b",`\b     + + + +`,"\v\v\f\f\r\r\r","","","","","","","\x1B","\x1B\x1B\x1B",""," ",' !!!!!"""','"""##$$$$$',"$%%%%%%%&","&&&&&&''((","((())))))*","****++++,,",",,,-------",".......///","/////////0","0000011111","1122222233","3334444445","5555555666","6666677777","7777777788","8888888888",`88\u0183 +88\u0185 +88\u0187 +888\u018A`,` +89999:::::`,`::::::\u019A +:\r::\u019B`,`:\u019E +::\u01A0 +::\u01A2 +::::`,`:::::\u01AB +:;;\u01AE +;`,`;\x07;\u01B1 +;\f;;\u01B4\v;<<<\x07`,`<\u01B9 +<\f<<\u01BC\v<<<==`,`=\x07=\u01C3 +=\f==\u01C6\v===>`,`>\u01CB +>\r>>\u01CC>>>\u01D1 +>\r>>\u01D2`,`>\u01D5 +>??\u01D8 +?\r??\u01D9?`,`?@@@@\x07@\u01E2 +@\f@@\u01E5\v`,"@@@@@@AAAA\x07",`A\u01F0 +A\fAA\u01F3\vAAABB`,`BB\u01FA +BCCCCCCD`,"D\u01E3E\x07 \v",`\x07\r\b  +\v\f\r\x1B`,"!#%')+","-/13\x1B579;= ?!A",`"C#E$G%I&K'M(O)Q*S+U,W-Y.[/]0_1a2c3e4g5i6k7m8o9q:su;w}`,"?\x7F@\x81A\x83\x85\x87\f","2;--//C\\aac|2;C\\aac|",'^^bb))\v\f""',`\f\f +))11^^bbhhppttvv2;CHch\u0214`,"","\x07 ","\v\r","","","","\x1B","!","#%","')+","-/","13","57","9;","=?A","CE","GI","KM","OQ","SUW","Y[","]_","ac","eg","ikm","oq","uw","y{","}\x7F","\x81\x89","\x8B\x07\x8D"," \x8F\v\x91","\r\x93\x95","\x97\x9B","\x9F\xA1","\xA3\x1B\xA6","\xA8\xAA","!\xAD#\xB0%\xB3","'\xB5)\xB7","+\xBA-\xBD","/\xC01\xC9","3\xCD5\xD0","7\xD49\xDC;\xDE","=\xE0?\xE2","A\xE4C\xE9","E\xEFG\xF1","I\xF7K\xFE","M\u0105O\u0107Q\u010C","S\u0112U\u0117","W\u011BY\u0120","[\u0127]\u012E","_\u013Aa\u0140","c\u0147e\u014Dg\u0152","i\u0158k\u0160","m\u0168o\u0175","q\u018Bs\u018F","u\u01ADw\u01B5","y\u01BF{\u01CA}\u01D7","\x7F\u01DD\x81\u01EB","\x83\u01F6\x85\u01FB","\x87\u0201\x89\x8A","\x070\x8A\x8B\x8C","\x07]\x8C\x8D\x8E","\x07_\x8E\b\x8F\x90\x07",`-\x90 +\x91\x92\x07/`,"\x92\f\x93\x94\x07,","\x94\x95\x96\x071","\x96\x97\x98\x07f","\x98\x99\x07k\x99\x9A\x07x\x9A","\x9B\x9C\x07o\x9C","\x9D\x07q\x9D\x9E\x07f\x9E","\x9F\xA0\x07(\xA0","\xA1\xA2\x07~\xA2","\xA3\xA4\x07>\xA4\xA5","\x07?\xA5\xA6\xA7","\x07>\xA7\xA8\xA9","\x07@\xA9\xAA\xAB","\x07@\xAB\xAC\x07?\xAC ","\xAD\xAE\x07k\xAE\xAF\x07u",'\xAF"\xB0\xB1\x07c',"\xB1\xB2\x07u\xB2$\xB3","\xB4\x07?\xB4&\xB5\xB6","\x07\x80\xB6(\xB7\xB8","\x07#\xB8\xB9\x07?\xB9*","\xBA\xBB\x07#\xBB\xBC\x07\x80","\xBC,\xBD\xBE\x07k","\xBE\xBF\x07p\xBF.","\xC0\xC1\x07e\xC1\xC2\x07q\xC2","\xC3\x07p\xC3\xC4\x07v\xC4\xC5","\x07c\xC5\xC6\x07k\xC6\xC7\x07","p\xC7\xC8\x07u\xC80","\xC9\xCA\x07c\xCA\xCB\x07p","\xCB\xCC\x07f\xCC2\xCD","\xCE\x07q\xCE\xCF\x07t\xCF4","\xD0\xD1\x07z\xD1\xD2\x07","q\xD2\xD3\x07t\xD36","\xD4\xD5\x07k\xD5\xD6\x07o","\xD6\xD7\x07r\xD7\xD8\x07n\xD8","\xD9\x07k\xD9\xDA\x07g\xDA\xDB","\x07u\xDB8\xDC\xDD\x07","*\xDD:\xDE\xDF\x07+","\xDF<\xE0\xE1\x07}","\xE1>\xE2\xE3\x07\x7F","\xE3@\xE4\xE5\x07v\xE5","\xE6\x07t\xE6\xE7\x07w\xE7\xE8","\x07g\xE8B\xE9\xEA\x07","h\xEA\xEB\x07c\xEB\xEC\x07n","\xEC\xED\x07u\xED\xEE\x07g","\xEED\xEF\xF0\x07'\xF0","F\xF1\xF2\x07&\xF2\xF3","\x07v\xF3\xF4\x07j\xF4\xF5\x07","k\xF5\xF6\x07u\xF6H","\xF7\xF8\x07&\xF8\xF9\x07k","\xF9\xFA\x07p\xFA\xFB\x07f\xFB","\xFC\x07g\xFC\xFD\x07z\xFDJ","\xFE\xFF\x07&\xFF\u0100\x07","v\u0100\u0101\x07q\u0101\u0102\x07v","\u0102\u0103\x07c\u0103\u0104\x07n","\u0104L\u0105\u0106\x07.\u0106","N\u0107\u0108\x07{\u0108\u0109","\x07g\u0109\u010A\x07c\u010A\u010B\x07","t\u010BP\u010C\u010D\x07o","\u010D\u010E\x07q\u010E\u010F\x07p","\u010F\u0110\x07v\u0110\u0111\x07j\u0111","R\u0112\u0113\x07y\u0113\u0114","\x07g\u0114\u0115\x07g\u0115\u0116\x07","m\u0116T\u0117\u0118\x07f","\u0118\u0119\x07c\u0119\u011A\x07{","\u011AV\u011B\u011C\x07j\u011C","\u011D\x07q\u011D\u011E\x07w\u011E\u011F","\x07t\u011FX\u0120\u0121\x07","o\u0121\u0122\x07k\u0122\u0123\x07p","\u0123\u0124\x07w\u0124\u0125\x07v","\u0125\u0126\x07g\u0126Z\u0127","\u0128\x07u\u0128\u0129\x07g\u0129\u012A","\x07e\u012A\u012B\x07q\u012B\u012C\x07","p\u012C\u012D\x07f\u012D\\","\u012E\u012F\x07o\u012F\u0130\x07k","\u0130\u0131\x07n\u0131\u0132\x07n\u0132","\u0133\x07k\u0133\u0134\x07u\u0134\u0135","\x07g\u0135\u0136\x07e\u0136\u0137\x07","q\u0137\u0138\x07p\u0138\u0139\x07f","\u0139^\u013A\u013B\x07{","\u013B\u013C\x07g\u013C\u013D\x07c\u013D","\u013E\x07t\u013E\u013F\x07u\u013F`","\u0140\u0141\x07o\u0141\u0142\x07","q\u0142\u0143\x07p\u0143\u0144\x07v","\u0144\u0145\x07j\u0145\u0146\x07u","\u0146b\u0147\u0148\x07y\u0148","\u0149\x07g\u0149\u014A\x07g\u014A\u014B","\x07m\u014B\u014C\x07u\u014Cd","\u014D\u014E\x07f\u014E\u014F\x07c","\u014F\u0150\x07{\u0150\u0151\x07u","\u0151f\u0152\u0153\x07j\u0153","\u0154\x07q\u0154\u0155\x07w\u0155\u0156","\x07t\u0156\u0157\x07u\u0157h","\u0158\u0159\x07o\u0159\u015A\x07k","\u015A\u015B\x07p\u015B\u015C\x07w","\u015C\u015D\x07v\u015D\u015E\x07g\u015E","\u015F\x07u\u015Fj\u0160\u0161","\x07u\u0161\u0162\x07g\u0162\u0163\x07","e\u0163\u0164\x07q\u0164\u0165\x07p","\u0165\u0166\x07f\u0166\u0167\x07u","\u0167l\u0168\u0169\x07o\u0169","\u016A\x07k\u016A\u016B\x07n\u016B\u016C","\x07n\u016C\u016D\x07k\u016D\u016E\x07","u\u016E\u016F\x07g\u016F\u0170\x07e","\u0170\u0171\x07q\u0171\u0172\x07p","\u0172\u0173\x07f\u0173\u0174\x07u\u0174","n\u0175\u0176\x07B\u0176\u0177"," \u0177\u0178 \u0178\u0179 ","\u0179\u0186 \u017A\u017B\x07/","\u017B\u017C \u017C\u0184 ","\u017D\u017E\x07/\u017E\u017F \u017F","\u0182 \u0180\u0181\x07V\u0181\u0183","s:\u0182\u0180\u0182\u0183","\u0183\u0185\u0184\u017D","\u0184\u0185\u0185\u0187","\u0186\u017A\u0186\u0187","\u0187\u0189\u0188\u018A\x07","\\\u0189\u0188\u0189\u018A","\u018Ap\u018B\u018C\x07","B\u018C\u018D\x07V\u018D\u018Es:","\u018Er\u018F\u0190 \u0190","\u01A1 \u0191\u0192\x07<\u0192\u0193"," \u0193\u019F \u0194\u0195\x07","<\u0195\u0196 \u0196\u019D ","\u0197\u0199\x070\u0198\u019A ","\u0199\u0198\u019A\u019B","\u019B\u0199\u019B\u019C","\u019C\u019E\u019D\u0197","\u019D\u019E\u019E\u01A0","\u019F\u0194\u019F\u01A0","\u01A0\u01A2\u01A1\u0191","\u01A1\u01A2\u01A2\u01AA","\u01A3\u01AB\x07\\\u01A4\u01A5 \u01A5","\u01A6 \u01A6\u01A7 \u01A7\u01A8","\x07<\u01A8\u01A9 \u01A9\u01AB ","\u01AA\u01A3\u01AA\u01A4","\u01AA\u01AB\u01ABt","\u01AC\u01AE \u01AD\u01AC","\u01AE\u01B2\u01AF\u01B1 ","\u01B0\u01AF\u01B1\u01B4","\u01B2\u01B0\u01B2\u01B3","\u01B3v\u01B4\u01B2","\u01B5\u01BA\x07b\u01B6\u01B9\x83",`B\u01B7\u01B9 +\u01B8\u01B6`,"\u01B8\u01B7\u01B9\u01BC","\u01BA\u01B8\u01BA\u01BB","\u01BB\u01BD\u01BC\u01BA","\u01BD\u01BE\x07b\u01BEx","\u01BF\u01C4\x07)\u01C0\u01C3\x83B\u01C1",`\u01C3 +\x07\u01C2\u01C0\u01C2`,"\u01C1\u01C3\u01C6\u01C4","\u01C2\u01C4\u01C5\u01C5","\u01C7\u01C6\u01C4\u01C7","\u01C8\x07)\u01C8z\u01C9\u01CB"," \u01CA\u01C9\u01CB\u01CC","\u01CC\u01CA\u01CC\u01CD","\u01CD\u01D4\u01CE\u01D0","\x070\u01CF\u01D1 \u01D0\u01CF","\u01D1\u01D2\u01D2\u01D0","\u01D2\u01D3\u01D3\u01D5","\u01D4\u01CE\u01D4\u01D5","\u01D5|\u01D6\u01D8 \b","\u01D7\u01D6\u01D8\u01D9","\u01D9\u01D7\u01D9\u01DA","\u01DA\u01DB\u01DB\u01DC\b?","\u01DC~\u01DD\u01DE\x071\u01DE","\u01DF\x07,\u01DF\u01E3\u01E0","\u01E2\v\u01E1\u01E0\u01E2","\u01E5\u01E3\u01E4\u01E3","\u01E1\u01E4\u01E6\u01E5","\u01E3\u01E6\u01E7\x07,\u01E7","\u01E8\x071\u01E8\u01E9\u01E9","\u01EA\b@\u01EA\x80\u01EB\u01EC","\x071\u01EC\u01ED\x071\u01ED\u01F1",`\u01EE\u01F0 + \u01EF\u01EE`,"\u01F0\u01F3\u01F1\u01EF","\u01F1\u01F2\u01F2\u01F4","\u01F3\u01F1\u01F4\u01F5\bA","\u01F5\x82\u01F6\u01F9\x07^",`\u01F7\u01FA +\u01F8\u01FA\x85C\u01F9`,"\u01F7\u01F9\u01F8\u01FA","\x84\u01FB\u01FC\x07w\u01FC","\u01FD\x87D\u01FD\u01FE\x87D\u01FE\u01FF","\x87D\u01FF\u0200\x87D\u0200\x86","\u0201\u0202 \v\u0202\x88","\u0182\u0184\u0186\u0189\u019B\u019D\u019F","\u01A1\u01AA\u01AD\u01B0\u01B2\u01B8\u01BA\u01C2\u01C4\u01CC\u01D2\u01D4","\u01D9\u01E3\u01F1\u01F9"].join(""),jy=new Wl.atn.ATNDeserializer().deserialize(l5),c5=jy.decisionToState.map((n,t)=>new Wl.dfa.DFA(n,t)),Ie=class extends Wl.Lexer{static grammarFileName="FHIRPath.g4";static channelNames=["DEFAULT_TOKEN_CHANNEL","HIDDEN"];static modeNames=["DEFAULT_MODE"];static literalNames=[null,"'.'","'['","']'","'+'","'-'","'*'","'/'","'div'","'mod'","'&'","'|'","'<='","'<'","'>'","'>='","'is'","'as'","'='","'~'","'!='","'!~'","'in'","'contains'","'and'","'or'","'xor'","'implies'","'('","')'","'{'","'}'","'true'","'false'","'%'","'$this'","'$index'","'$total'","','","'year'","'month'","'week'","'day'","'hour'","'minute'","'second'","'millisecond'","'years'","'months'","'weeks'","'days'","'hours'","'minutes'","'seconds'","'milliseconds'"];static symbolicNames=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"DATETIME","TIME","IDENTIFIER","DELIMITEDIDENTIFIER","STRING","NUMBER","WS","COMMENT","LINE_COMMENT"];static ruleNames=["T__0","T__1","T__2","T__3","T__4","T__5","T__6","T__7","T__8","T__9","T__10","T__11","T__12","T__13","T__14","T__15","T__16","T__17","T__18","T__19","T__20","T__21","T__22","T__23","T__24","T__25","T__26","T__27","T__28","T__29","T__30","T__31","T__32","T__33","T__34","T__35","T__36","T__37","T__38","T__39","T__40","T__41","T__42","T__43","T__44","T__45","T__46","T__47","T__48","T__49","T__50","T__51","T__52","T__53","DATETIME","TIME","TIMEFORMAT","IDENTIFIER","DELIMITEDIDENTIFIER","STRING","NUMBER","WS","COMMENT","LINE_COMMENT","ESC","UNICODE","HEX"];constructor(t){super(t),this._interp=new Wl.atn.LexerATNSimulator(this,jy,c5,new Wl.PredictionContextCache)}get atn(){return jy}};Ie.EOF=Wl.Token.EOF;Ie.T__0=1;Ie.T__1=2;Ie.T__2=3;Ie.T__3=4;Ie.T__4=5;Ie.T__5=6;Ie.T__6=7;Ie.T__7=8;Ie.T__8=9;Ie.T__9=10;Ie.T__10=11;Ie.T__11=12;Ie.T__12=13;Ie.T__13=14;Ie.T__14=15;Ie.T__15=16;Ie.T__16=17;Ie.T__17=18;Ie.T__18=19;Ie.T__19=20;Ie.T__20=21;Ie.T__21=22;Ie.T__22=23;Ie.T__23=24;Ie.T__24=25;Ie.T__25=26;Ie.T__26=27;Ie.T__27=28;Ie.T__28=29;Ie.T__29=30;Ie.T__30=31;Ie.T__31=32;Ie.T__32=33;Ie.T__33=34;Ie.T__34=35;Ie.T__35=36;Ie.T__36=37;Ie.T__37=38;Ie.T__38=39;Ie.T__39=40;Ie.T__40=41;Ie.T__41=42;Ie.T__42=43;Ie.T__43=44;Ie.T__44=45;Ie.T__45=46;Ie.T__46=47;Ie.T__47=48;Ie.T__48=49;Ie.T__49=50;Ie.T__50=51;Ie.T__51=52;Ie.T__52=53;Ie.T__53=54;Ie.DATETIME=55;Ie.TIME=56;Ie.IDENTIFIER=57;Ie.DELIMITEDIDENTIFIER=58;Ie.STRING=59;Ie.NUMBER=60;Ie.WS=61;Ie.COMMENT=62;Ie.LINE_COMMENT=63;vA.exports=Ie});var qy=Q((eue,CA)=>{var u5=sd(),Wy=class extends u5.tree.ParseTreeListener{enterEntireExpression(t){}exitEntireExpression(t){}enterIndexerExpression(t){}exitIndexerExpression(t){}enterPolarityExpression(t){}exitPolarityExpression(t){}enterAdditiveExpression(t){}exitAdditiveExpression(t){}enterMultiplicativeExpression(t){}exitMultiplicativeExpression(t){}enterUnionExpression(t){}exitUnionExpression(t){}enterOrExpression(t){}exitOrExpression(t){}enterAndExpression(t){}exitAndExpression(t){}enterMembershipExpression(t){}exitMembershipExpression(t){}enterInequalityExpression(t){}exitInequalityExpression(t){}enterInvocationExpression(t){}exitInvocationExpression(t){}enterEqualityExpression(t){}exitEqualityExpression(t){}enterImpliesExpression(t){}exitImpliesExpression(t){}enterTermExpression(t){}exitTermExpression(t){}enterTypeExpression(t){}exitTypeExpression(t){}enterInvocationTerm(t){}exitInvocationTerm(t){}enterLiteralTerm(t){}exitLiteralTerm(t){}enterExternalConstantTerm(t){}exitExternalConstantTerm(t){}enterParenthesizedTerm(t){}exitParenthesizedTerm(t){}enterNullLiteral(t){}exitNullLiteral(t){}enterBooleanLiteral(t){}exitBooleanLiteral(t){}enterStringLiteral(t){}exitStringLiteral(t){}enterNumberLiteral(t){}exitNumberLiteral(t){}enterDateTimeLiteral(t){}exitDateTimeLiteral(t){}enterTimeLiteral(t){}exitTimeLiteral(t){}enterQuantityLiteral(t){}exitQuantityLiteral(t){}enterExternalConstant(t){}exitExternalConstant(t){}enterMemberInvocation(t){}exitMemberInvocation(t){}enterFunctionInvocation(t){}exitFunctionInvocation(t){}enterThisInvocation(t){}exitThisInvocation(t){}enterIndexInvocation(t){}exitIndexInvocation(t){}enterTotalInvocation(t){}exitTotalInvocation(t){}enterFunctn(t){}exitFunctn(t){}enterParamList(t){}exitParamList(t){}enterQuantity(t){}exitQuantity(t){}enterUnit(t){}exitUnit(t){}enterDateTimePrecision(t){}exitDateTimePrecision(t){}enterPluralDateTimePrecision(t){}exitPluralDateTimePrecision(t){}enterTypeSpecifier(t){}exitTypeSpecifier(t){}enterQualifiedIdentifier(t){}exitQualifiedIdentifier(t){}enterIdentifier(t){}exitIdentifier(t){}};CA.exports=Wy});var xA=Q((tue,wA)=>{var Ve=sd(),be=qy(),d5=["\u608B\uA72A\u8133\uB9ED\u417C\u3BE7\u7786","\u5964A\x9C  ","   \x07 \x07",`\b \b  + +\v \v\f \f`,"\r \r   ","",`( +`,"","","","","","\x07",`P +\fS\v`,"\\",` +`,`f +`,`k +\x07\x07`,`\x07\x07\x07\x07r +\x07\b`,`\b\b\bw +\b\b\b   \x07`,` ~ + \f  \x81\v  + + +\x85 + +`,`\v\v\v\v\x8A +\v`,"\f\f\r\r",`\x07\x95 +\f\x98`,"\v",`\b +\f`,"\x07\b\v","\x07\f\f","\x1B",'"#)018',";<\xAD '","[\be",` +g\fqs`,"z\x82","\x89\x8B","\x8D\x8F","\x91\x99",' !!"\x07','"#$\b$(',"%& &(\r'#","'%(Q",")*\f\f*+ +P\r,-\f\v",`-. .P\f/0\f +`,"01\x07\r1P\v23\f ",`34 4P +56\f\x076`,"7 7P\b89\f9:"," \x07:P\x07;<\f","<=\x07=P>?\f","?@ \b@PAB\f","BC\x07CPDE\f","EF\x07FP\f\x07GH\f","HI\x07IJJK\x07","KPLM\f\bMN ","NPO)O,","O/O2O5","O8O;","O>OAOD","OGOLPS","QOQRR","SQT\\\f\x07",`U\\\bV\\ +WX\x07`,"XYYZ\x07Z\\","[T[U","[V[W\\\x07",`]^\x07 ^f\x07!_f +`,"`f\x07=af\x07>bf\x079cf\x07",`:df +e]e_`,"e`ea","ebeced","f gj\x07$hk","ik\x07=jhji","k\vlr","mr\bnr\x07%or\x07&","pr\x07'qlqm","qnqoqp","r\rsttv","\x07uw vu","vwwxxy\x07","yz\x7F","{|\x07(|~}{","~\x81\x7F}","\x7F\x80\x80","\x81\x7F\x82\x84\x07>","\x83\x85\v\x84\x83","\x84\x85\x85","\x86\x8A\f\x87\x8A\r\x88","\x8A\x07=\x89\x86\x89","\x87\x89\x88\x8A","\x8B\x8C \v\x8C","\x8D\x8E \f\x8E","\x8F\x90\x90\x1B","\x91\x96\x92\x93","\x07\x93\x95\x94\x92","\x95\x98\x96\x94","\x96\x97\x97","\x98\x96\x99\x9A"," \r\x9A'OQ[ejqv","\x7F\x84\x89\x96"].join(""),Gy=new Ve.atn.ATNDeserializer().deserialize(d5),h5=Gy.decisionToState.map((n,t)=>new Ve.dfa.DFA(n,t)),m5=new Ve.PredictionContextCache,G=class n extends Ve.Parser{static grammarFileName="FHIRPath.g4";static literalNames=[null,"'.'","'['","']'","'+'","'-'","'*'","'/'","'div'","'mod'","'&'","'|'","'<='","'<'","'>'","'>='","'is'","'as'","'='","'~'","'!='","'!~'","'in'","'contains'","'and'","'or'","'xor'","'implies'","'('","')'","'{'","'}'","'true'","'false'","'%'","'$this'","'$index'","'$total'","','","'year'","'month'","'week'","'day'","'hour'","'minute'","'second'","'millisecond'","'years'","'months'","'weeks'","'days'","'hours'","'minutes'","'seconds'","'milliseconds'"];static symbolicNames=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"DATETIME","TIME","IDENTIFIER","DELIMITEDIDENTIFIER","STRING","NUMBER","WS","COMMENT","LINE_COMMENT"];static ruleNames=["entireExpression","expression","term","literal","externalConstant","invocation","functn","paramList","quantity","unit","dateTimePrecision","pluralDateTimePrecision","typeSpecifier","qualifiedIdentifier","identifier"];constructor(t){super(t),this._interp=new Ve.atn.ParserATNSimulator(this,Gy,h5,m5),this.ruleNames=n.ruleNames,this.literalNames=n.literalNames,this.symbolicNames=n.symbolicNames}get atn(){return Gy}sempred(t,e,i){switch(e){case 1:return this.expression_sempred(t,i);default:throw"No predicate with index:"+e}}expression_sempred(t,e){switch(e){case 0:return this.precpred(this._ctx,10);case 1:return this.precpred(this._ctx,9);case 2:return this.precpred(this._ctx,8);case 3:return this.precpred(this._ctx,7);case 4:return this.precpred(this._ctx,5);case 5:return this.precpred(this._ctx,4);case 6:return this.precpred(this._ctx,3);case 7:return this.precpred(this._ctx,2);case 8:return this.precpred(this._ctx,1);case 9:return this.precpred(this._ctx,13);case 10:return this.precpred(this._ctx,12);case 11:return this.precpred(this._ctx,6);default:throw"No predicate with index:"+e}}entireExpression(){let t=new Wf(this,this._ctx,this.state);this.enterRule(t,0,n.RULE_entireExpression);try{this.enterOuterAlt(t,1),this.state=30,this.expression(0),this.state=31,this.match(n.EOF)}catch(e){if(e instanceof Ve.error.RecognitionException)t.exception=e,this._errHandler.reportError(this,e),this._errHandler.recover(this,e);else throw e}finally{this.exitRule()}return t}expression(t){t===void 0&&(t=0);let e=this._ctx,i=this.state,r=new Ue(this,this._ctx,i),s=r,a=2;this.enterRecursionRule(r,2,n.RULE_expression,t);var o=0;try{switch(this.enterOuterAlt(r,1),this.state=37,this._errHandler.sync(this),this._input.LA(1)){case n.T__15:case n.T__16:case n.T__21:case n.T__22:case n.T__27:case n.T__29:case n.T__31:case n.T__32:case n.T__33:case n.T__34:case n.T__35:case n.T__36:case n.DATETIME:case n.TIME:case n.IDENTIFIER:case n.DELIMITEDIDENTIFIER:case n.STRING:case n.NUMBER:r=new rp(this,r),this._ctx=r,s=r,this.state=34,this.term();break;case n.T__3:case n.T__4:r=new Gf(this,r),this._ctx=r,s=r,this.state=35,o=this._input.LA(1),o===n.T__3||o===n.T__4?(this._errHandler.reportMatch(this),this.consume()):this._errHandler.recoverInline(this),this.state=36,this.expression(11);break;default:throw new Ve.error.NoViableAltException(this)}this._ctx.stop=this._input.LT(-1),this.state=79,this._errHandler.sync(this);for(var l=this._interp.adaptivePredict(this._input,2,this._ctx);l!=2&&l!=Ve.atn.ATN.INVALID_ALT_NUMBER;){if(l===1){this._parseListeners!==null&&this.triggerExitRuleEvent(),s=r,this.state=77,this._errHandler.sync(this);var c=this._interp.adaptivePredict(this._input,1,this._ctx);switch(c){case 1:if(r=new Yf(this,new Ue(this,e,i)),this.pushNewRecursionContext(r,a,n.RULE_expression),this.state=39,!this.precpred(this._ctx,10))throw new Ve.error.FailedPredicateException(this,"this.precpred(this._ctx, 10)");this.state=40,o=this._input.LA(1),(o&-32)==0&&(1<{var wp=sd(),f5=yA(),p5=xA(),SA=qy(),Ky=class extends wp.error.ErrorListener{constructor(t){super(),this.errors=t}syntaxError(t,e,i,r,s,a){this.errors.push([t,e,i,r,s,a])}},g5=function(n){var t=new wp.InputStream(n),e=new f5(t),i=new wp.CommonTokenStream(e),r=new p5(i);r.buildParseTrees=!0;var s=[],a=new Ky(s);e.removeErrorListeners(),e.addErrorListener(a),r.removeErrorListeners(),r.addErrorListener(a);var o=r.entireExpression();class l extends SA{constructor(){super()}}var c={},u,d=[c];for(let f of Object.getOwnPropertyNames(SA.prototype))f.startsWith("enter")?l.prototype[f]=function(p){let g=d[d.length-1];u={type:f.slice(5)},u.text=p.getText(),g.children||(g.children=[]),g.children.push(u),d.push(u),u.terminalNodeText=[];for(let w of p.children)w.symbol&&u.terminalNodeText.push(w.getText())}:f.startsWith("exit")&&(l.prototype[f]=function(){d.pop()});var h=new l;if(wp.tree.ParseTreeWalker.DEFAULT.walk(h,o),s.length>0){let f=[];for(let p=0,g=s.length;p{var TA=6e4;EA.exports=function(t){var e=new Date(t.getTime()),i=e.getTimezoneOffset();e.setSeconds(0,0);var r=e.getTime()%TA;return i*TA+r}});var DA=Q((rue,IA)=>{function _5(n){return n instanceof Date}IA.exports=_5});var pd=Q((sue,LA)=>{var Yy=AA(),b5=DA(),Qy=36e5,Zy=6e4,v5=2,y5=/[T ]/,C5=/:/,w5=/^(\d{2})$/,x5=[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],S5=/^(\d{4})/,k5=[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],M5=/^-(\d{2})$/,T5=/^-?(\d{3})$/,E5=/^-?(\d{2})-?(\d{2})$/,A5=/^-?W(\d{2})$/,I5=/^-?W(\d{2})-?(\d{1})$/,D5=/^(\d{2}([.,]\d*)?)$/,R5=/^(\d{2}):?(\d{2}([.,]\d*)?)$/,L5=/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,O5=/([Z+-].*)$/,N5=/^(Z)$/,F5=/^([+-])(\d{2})$/,P5=/^([+-])(\d{2}):?(\d{2})$/;function U5(n,t){if(b5(n))return new Date(n.getTime());if(typeof n!="string")return new Date(n);var e=t||{},i=e.additionalDigits;i==null?i=v5:i=Number(i);var r=$5(n),s=V5(r.date,i),a=s.year,o=s.restDateString,l=B5(o,a);if(l){var c=l.getTime(),u=0,d;if(r.time&&(u=z5(r.time)),r.timezone)d=H5(r.timezone)*Zy;else{var h=c+u,m=new Date(h);d=Yy(m);var f=new Date(h);f.setDate(m.getDate()+1);var p=Yy(f)-Yy(m);p>0&&(d+=p)}return new Date(c+u+d)}else return new Date(n)}function $5(n){var t={},e=n.split(y5),i;if(C5.test(e[0])?(t.date=null,i=e[0]):(t.date=e[0],i=e[1]),i){var r=O5.exec(i);r?(t.time=i.replace(r[1],""),t.timezone=r[1]):t.time=i}return t}function V5(n,t){var e=x5[t],i=k5[t],r;if(r=S5.exec(n)||i.exec(n),r){var s=r[1];return{year:parseInt(s,10),restDateString:n.slice(s.length)}}if(r=w5.exec(n)||e.exec(n),r){var a=r[1];return{year:parseInt(a,10)*100,restDateString:n.slice(a.length)}}return{year:null}}function B5(n,t){if(t===null)return null;var e,i,r,s;if(n.length===0)return i=new Date(0),i.setUTCFullYear(t),i;if(e=M5.exec(n),e)return i=new Date(0),r=parseInt(e[1],10)-1,i.setUTCFullYear(t,r),i;if(e=T5.exec(n),e){i=new Date(0);var a=parseInt(e[1],10);return i.setUTCFullYear(t,0,a),i}if(e=E5.exec(n),e){i=new Date(0),r=parseInt(e[1],10)-1;var o=parseInt(e[2],10);return i.setUTCFullYear(t,r,o),i}if(e=A5.exec(n),e)return s=parseInt(e[1],10)-1,RA(t,s);if(e=I5.exec(n),e){s=parseInt(e[1],10)-1;var l=parseInt(e[2],10)-1;return RA(t,s,l)}return null}function z5(n){var t,e,i;if(t=D5.exec(n),t)return e=parseFloat(t[1].replace(",",".")),e%24*Qy;if(t=R5.exec(n),t)return e=parseInt(t[1],10),i=parseFloat(t[2].replace(",",".")),e%24*Qy+i*Zy;if(t=L5.exec(n),t){e=parseInt(t[1],10),i=parseInt(t[2],10);var r=parseFloat(t[3].replace(",","."));return e%24*Qy+i*Zy+r*1e3}return null}function H5(n){var t,e;return t=N5.exec(n),t?0:(t=F5.exec(n),t?(e=parseInt(t[2],10)*60,t[1]==="+"?-e:e):(t=P5.exec(n),t?(e=parseInt(t[2],10)*60+parseInt(t[3],10),t[1]==="+"?-e:e):0))}function RA(n,t,e){t=t||0,e=e||0;var i=new Date(0);i.setUTCFullYear(n,0,4);var r=i.getUTCDay()||7,s=t*7+e+1-r;return i.setUTCDate(i.getUTCDate()+s),i}LA.exports=U5});var gd=Q((aue,OA)=>{var j5=pd();function W5(n,t){var e=j5(n).getTime(),i=Number(t);return new Date(e+i)}OA.exports=W5});var Xy=Q((oue,NA)=>{var q5=gd(),G5=6e4;function K5(n,t){var e=Number(t);return q5(n,e*G5)}NA.exports=K5});var ua=Q(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});xp.Ucum=void 0;var Y5={dimLen_:7,validOps_:[".","/"],codeSep_:": ",valMsgStart_:"Did you mean ",valMsgEnd_:"?",cnvMsgStart_:"We assumed you meant ",cnvMsgEnd_:".",openEmph_:" ->",closeEmph_:"<- ",openEmphHTML_:' ',closeEmphHTML_:" ",bracesMsg_:"FYI - annotations (text in curly braces {}) are ignored, except that an annotation without a leading symbol implies the default unit 1 (the unity).",needMoleWeightMsg_:"Did you wish to convert between mass and moles? The molecular weight of the substance represented by the units is required to perform the conversion.",csvCols_:{"case-sensitive code":"csCode_","LOINC property":"loincProperty_","name (display)":"name_",synonyms:"synonyms_",source:"source_",category:"category_",Guidance:"guidance_"},inputKey_:"case-sensitive code",specUnits_:{"B[10.nV]":"specialUnitOne","[m/s2/Hz^(1/2)]":"specialUnitTwo"}};xp.Ucum=Y5});var FA=Q(Sp=>{"use strict";Object.defineProperty(Sp,"__esModule",{value:!0});Sp.Prefix=void 0;var cue=ua(),Jy=class{constructor(t){if(t.code_===void 0||t.code_===null||t.name_===void 0||t.name_===null||t.value_===void 0||t.value_===null||t.exp_===void 0)throw new Error("Prefix constructor called missing one or more parameters. Prefix codes (cs or ci), name, value and exponent must all be specified and all but the exponent must not be null.");this.code_=t.code_,this.ciCode_=t.ciCode_,this.name_=t.name_,this.printSymbol_=t.printSymbol_,typeof t.value_=="string"?this.value_=parseFloat(t.value_):this.value_=t.value_,this.exp_=t.exp_}getValue(){return this.value_}getCode(){return this.code_}getCiCode(){return this.ciCode_}getName(){return this.name_}getPrintSymbol(){return this.printSymbol_}getExp(){return this.exp_}equals(t){return this.code_===t.code_&&this.ciCode_===t.ciCode_&&this.name_===t.name_&&this.printSymbol_===t.printSymbol_&&this.value_===t.value_&&this.exp_===t.exp_}};Sp.Prefix=Jy});var e1=Q(ql=>{"use strict";Object.defineProperty(ql,"__esModule",{value:!0});ql.PrefixTables=ql.PrefixTablesFactory=void 0;var kp=class{constructor(){this.byCode_={},this.byValue_={}}prefixCount(){return Object.keys(this.byCode_).length}allPrefixesByValue(){let t="",e=Object.keys(this.byValue_),i=e.length;for(let r=0;r{"use strict";Object.defineProperty(Mp,"__esModule",{value:!0});Mp.default=void 0;var t1=class{constructor(){this.funcs={},this.funcs.cel={cnvTo:function(t){return t-273.15},cnvFrom:function(t){return t+273.15}},this.funcs.degf={cnvTo:function(t){return t-459.67},cnvFrom:function(t){return t+459.67}},this.funcs.degre={cnvTo:function(t){return t-273.15},cnvFrom:function(t){return t+273.15}},this.funcs.ph={cnvTo:function(t){return-Math.log(t)/Math.LN10},cnvFrom:function(t){return Math.pow(10,-t)}},this.funcs.ln={cnvTo:function(t){return Math.log(t)},cnvFrom:function(t){return Math.exp(t)}},this.funcs["2ln"]={cnvTo:function(t){return 2*Math.log(t)},cnvFrom:function(t){return Math.exp(t/2)}},this.funcs.lg={cnvTo:function(t){return Math.log(t)/Math.LN10},cnvFrom:function(t){return Math.pow(10,t)}},this.funcs["10lg"]={cnvTo:function(t){return 10*Math.log(t)/Math.LN10},cnvFrom:function(t){return Math.pow(10,t/10)}},this.funcs["20lg"]={cnvTo:function(t){return 20*Math.log(t)/Math.LN10},cnvFrom:function(t){return Math.pow(10,t/20)}},this.funcs["2lg"]={cnvTo:function(t){return 2*Math.log(t)/Math.LN10},cnvFrom:function(t){return Math.pow(10,t/2)}},this.funcs.lgtimes2=this.funcs["2lg"],this.funcs.ld={cnvTo:function(t){return Math.log(t)/Math.LN2},cnvFrom:function(t){return Math.pow(2,t)}},this.funcs["100tan"]={cnvTo:function(t){return Math.tan(t)*100},cnvFrom:function(t){return Math.atan(t/100)}},this.funcs.tanTimes100=this.funcs["100tan"],this.funcs.sqrt={cnvTo:function(t){return Math.sqrt(t)},cnvFrom:function(t){return t*t}},this.funcs.inv={cnvTo:function(t){return 1/t},cnvFrom:function(t){return 1/t}},this.funcs.hpX={cnvTo:function(t){return-this.funcs.lg(t)},cnvFrom:function(t){return Math.pow(10,-t)}},this.funcs.hpC={cnvTo:function(t){return-this.func.ln(t)/this.funcs.ln(100)},cnvFrom:function(t){return Math.pow(100,-t)}},this.funcs.hpM={cnvTo:function(t){return-this.funcs.ln(t)/this.funcs.ln(1e3)},cnvFrom:function(t){return Math.pow(1e3,-t)}},this.funcs.hpQ={cnvTo:function(t){return-this.funcs.ln(t)/this.funcs.ln(5e4)},cnvFrom:function(t){return Math.pow(5e4,-t)}}}forName(t){t=t.toLowerCase();let e=this.funcs[t];if(e===null)throw new Error(`Requested function ${t} is not defined`);return e}isDefined(t){return t=t.toLowerCase(),this.funcs[t]!==null}},X5=new t1;Mp.default=X5});var ao=Q(Ep=>{"use strict";Object.defineProperty(Ep,"__esModule",{value:!0});Ep.UnitTables=void 0;var Tp=ua().Ucum,i1=class{constructor(){this.unitNames_={},this.unitCodes_={},this.codeOrder_=[],this.unitStrings_={},this.unitDimensions_={},this.unitSynonyms_={},this.massDimIndex_=0,this.dimVecIndexToBaseUnit_={}}unitsCount(){return Object.keys(this.unitCodes_).length}addUnit(t){t.name_&&this.addUnitName(t),this.addUnitCode(t),this.addUnitString(t);try{t.dim_.getProperty("dimVec_")&&this.addUnitDimension(t)}catch{}if(t.isBase_){let i=t.dim_.dimVec_,r;for(let s=0,a=i.length;r==null&&s=1&&(i=t.substr(e+Tp.codeSep_.length),t=t.substr(0,e));let r=this.unitNames_[t];if(r){let s=r.length;if(i&&s>1){let a=0;for(;r[a].csCode_!==i&&a0&&(i+=e),t[d]==="dim_")u.dim_!==null&&u.dim_!==void 0&&u.dim_.dimVec_ instanceof Array?i+="["+u.dim_.dimVec_.join(",")+"]":i+="";else{let h=u[t[d]];typeof h=="string"?i+=h.replace(/[\n\r]/g," "):i+=h}i+=`\r +`}}return i}printUnits(t,e){t===void 0&&(t=!1),e===void 0&&(e="|");let i="",r=this.codeOrder_.length,s="csCode"+e;t&&(s+="ciCode"+e),s+="name"+e,t&&(s+="isBase"+e),s+="magnitude"+e+"dimension"+e+"from unit(s)"+e+"value"+e+"function"+e,t&&(s+="property"+e+"printSymbol"+e+"synonyms"+e+"source"+e+"class"+e+"isMetric"+e+"variable"+e+"isSpecial"+e+"isAbitrary"+e),s+="comment",i=s+` +`;for(let a=0;a{"use strict";Object.defineProperty(_d,"__esModule",{value:!0});_d.isNumericString=iH;_d.isIntegerUnit=nH;_d.getSynonyms=rH;var tH=ao().UnitTables;function iH(n){let t=""+n;return!isNaN(t)&&!isNaN(parseFloat(t))}function nH(n){return/^\d+$/.test(n)}function rH(n){let t={},e=tH.getInstance(),i={};if(i=e.getUnitBySynonym(n),!i.units)t.status=i.status,t.msg=i.msg;else{t.status="succeeded";let r=i.units.length;t.units=[];for(let s=0;s{"use strict";UA.exports=Number.isFinite||function(n){return!(typeof n!="number"||n!==n||n===1/0||n===-1/0)}});var n1=Q((gue,VA)=>{var sH=$A();VA.exports=Number.isInteger||function(n){return typeof n=="number"&&sH(n)&&Math.floor(n)===n}});var BA=Q(Dp=>{"use strict";Object.defineProperty(Dp,"__esModule",{value:!0});Dp.Dimension=void 0;var en=ua(),Ip=n1(),r1=class n{constructor(t){if(en.Ucum.dimLen_===0)throw new Error("Dimension.setDimensionLen must be called before Dimension constructor");if(t==null)this.assignZero();else if(t instanceof Array){if(t.length!==en.Ucum.dimLen_)throw new Error(`Parameter error, incorrect length of vector passed to Dimension constructor, vector = ${JSON.stringify(t)}`);this.dimVec_=[];for(let e=0;e=en.Ucum.dimLen_)throw new Error("Parameter error, invalid element number specified for Dimension constructor");this.assignZero(),this.dimVec_[t]=1}}setElementAt(t,e){if(!Ip(t)||t<0||t>=en.Ucum.dimLen_)throw new Error(`Dimension.setElementAt called with an invalid index position (${t})`);this.dimVec_||this.assignZero(),e==null&&(e=1),this.dimVec_[t]=e}getElementAt(t){if(!Ip(t)||t<0||t>=en.Ucum.dimLen_)throw new Error(`Dimension.getElementAt called with an invalid index position (${t})`);let e=null;return this.dimVec_&&(e=this.dimVec_[t]),e}getProperty(t){let e=t.charAt(t.length-1)==="_"?t:t+"_";return this[e]}toString(){let t=null;return this.dimVec_&&(t="["+this.dimVec_.join(", ")+"]"),t}add(t){if(!t instanceof n)throw new Error(`Dimension.add called with an invalid parameter - ${typeof t} instead of a Dimension object`);if(this.dimVec_&&t.dimVec_)for(let e=0;e{"use strict";Object.defineProperty(Rp,"__esModule",{value:!0});Rp.Unit=void 0;var zA=lH(PA()),aH=oH(Ap());function HA(){if(typeof WeakMap!="function")return null;var n=new WeakMap;return HA=function(){return n},n}function oH(n){if(n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=HA();if(t&&t.has(n))return t.get(n);var e={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)){var s=i?Object.getOwnPropertyDescriptor(n,r):null;s&&(s.get||s.set)?Object.defineProperty(e,r,s):e[r]=n[r]}return e.default=n,t&&t.set(n,e),e}function lH(n){return n&&n.__esModule?n:{default:n}}var cH=ua().Ucum,xs=BA().Dimension,s1,a1=n1(),o1=class n{constructor(t={}){this.isBase_=t.isBase_||!1,this.name_=t.name_||"",this.csCode_=t.csCode_||"",this.ciCode_=t.ciCode_||"",this.property_=t.property_||"",this.magnitude_=t.magnitude_||1,t.dim_===void 0||t.dim_===null?this.dim_=new xs:t.dim_.dimVec_!==void 0?this.dim_=new xs(t.dim_.dimVec_):t.dim_ instanceof xs?this.dim_=t.dim_:t.dim_ instanceof Array||a1(t.dim_)?this.dim_=new xs(t.dim_):this.dim_=new xs,this.printSymbol_=t.printSymbol_||null,this.class_=t.class_||null,this.isMetric_=t.isMetric_||!1,this.variable_=t.variable_||null,this.cnv_=t.cnv_||null,this.cnvPfx_=t.cnvPfx_||1,this.isSpecial_=t.isSpecial_||!1,this.isArbitrary_=t.isArbitrary_||!1,this.moleExp_=t.moleExp_||0,this.synonyms_=t.synonyms_||null,this.source_=t.source_||null,this.loincProperty_=t.loincProperty_||null,this.category_=t.category_||null,this.guidance_=t.guidance_||null,this.csUnitString_=t.csUnitString_||null,this.ciUnitString_=t.ciUnitString_||null,this.baseFactorStr_=t.baseFactorStr_||null,this.baseFactor_=t.baseFactor_||null,this.defError_=t.defError_||!1}assignUnity(){return this.name_="",this.magnitude_=1,this.dim_||(this.dim_=new xs),this.dim_.assignZero(),this.cnv_=null,this.cnvPfx_=1,this}assignVals(t){for(let e in t){let i=!e.charAt(e.length-1)==="_"?e+"_":e;if(this.hasOwnProperty(i))this[i]=t[e];else throw new Error(`Parameter error; ${e} is not a property of a Unit`)}}clone(){let t=new n;return Object.getOwnPropertyNames(this).forEach(e=>{e==="dim_"?this.dim_?t.dim_=this.dim_.clone():t.dim_=null:t[e]=this[e]}),t}assign(t){Object.getOwnPropertyNames(t).forEach(e=>{e==="dim_"?t.dim_?this.dim_=t.dim_.clone():this.dim_=null:this[e]=t[e]})}equals(t){return this.magnitude_===t.magnitude_&&this.cnv_===t.cnv_&&this.cnvPfx_===t.cnvPfx_&&(this.dim_===null&&t.dim_===null||this.dim_.equals(t.dim_))}fullEquals(t){let e=Object.keys(this).sort(),i=Object.keys(t).sort(),r=e.length,s=r===i.length;for(let a=0;a0){let e=t.replace("/","!").replace(".","/").replace("=0;c--){let u=parseInt(a[c]);if(!a1(u)){if((a[c]==="-"||a[c]==="+")&&c--,c{"use strict";Object.defineProperty(Lp,"__esModule",{value:!0});Lp.packArray=fH;Lp.unpackArray=pH;var uH=Array.prototype.push;function dH(n){return Object.prototype.toString.call(n)==="[object Object]"}function c1(n){return Object.keys(n).reduce((t,e)=>(dH(n[e])?uH.apply(t,c1(n[e]).map(i=>[e,...[].concat(i)])):t.push(e),t),[])}function u1(n){return n.map(t=>Array.isArray(t)?t:[t])}function hH(n,t){if(n.join()!==u1(c1(t)).join())throw new Error("Object of unusual structure");return n.map(e=>{let i=t;return e.forEach(r=>{if(i=i[r],i===void 0)throw new Error("Object of unusual structure")}),i})}function mH(n,t){let e={};return n.forEach((i,r)=>{let s=e;for(let a=0;a{gH.exports={license:"The following data (prefixes and units) was generated by the UCUM LHC code from the UCUM data and selected LOINC combinations of UCUM units. The license for the UCUM LHC code (demo and library code as well as the combined units) is located at https://github.com/lhncbc/ucum-lhc/blob/LICENSE.md.",prefixes:{config:["code_","ciCode_","name_","printSymbol_","value_","exp_"],data:[["E","EX","exa","E",1e18,"18"],["G","GA","giga","G",1e9,"9"],["Gi","GIB","gibi","Gi",1073741824,null],["Ki","KIB","kibi","Ki",1024,null],["M","MA","mega","M",1e6,"6"],["Mi","MIB","mebi","Mi",1048576,null],["P","PT","peta","P",1e15,"15"],["T","TR","tera","T",1e12,"12"],["Ti","TIB","tebi","Ti",1099511627776,null],["Y","YA","yotta","Y",1e24,"24"],["Z","ZA","zetta","Z",1e21,"21"],["a","A","atto","a",1e-18,"-18"],["c","C","centi","c",.01,"-2"],["d","D","deci","d",.1,"-1"],["da","DA","deka","da",10,"1"],["f","F","femto","f",1e-15,"-15"],["h","H","hecto","h",100,"2"],["k","K","kilo","k",1e3,"3"],["m","M","milli","m",.001,"-3"],["n","N","nano","n",1e-9,"-9"],["p","P","pico","p",1e-12,"-12"],["u","U","micro","\u03BC",1e-6,"-6"],["y","YO","yocto","y",1e-24,"-24"],["z","ZO","zepto","z",1e-21,"-21"]]},units:{config:["isBase_","name_","csCode_","ciCode_","property_","magnitude_",["dim_","dimVec_"],"printSymbol_","class_","isMetric_","variable_","cnv_","cnvPfx_","isSpecial_","isArbitrary_","moleExp_","synonyms_","source_","loincProperty_","category_","guidance_","csUnitString_","ciUnitString_","baseFactorStr_","baseFactor_","defError_"],data:[[!0,"meter","m","M","length",1,[1,0,0,0,0,0,0],"m",null,!1,"L",null,1,!1,!1,0,"meters; metres; distance","UCUM","Len","Clinical","unit of length = 1.09361 yards",null,null,null,null,!1],[!0,"second - time","s","S","time",1,[0,1,0,0,0,0,0],"s",null,!1,"T",null,1,!1,!1,0,"seconds","UCUM","Time","Clinical","",null,null,null,null,!1],[!0,"gram","g","G","mass",1,[0,0,1,0,0,0,0],"g",null,!1,"M",null,1,!1,!1,0,"grams; gm","UCUM","Mass","Clinical","",null,null,null,null,!1],[!0,"radian","rad","RAD","plane angle",1,[0,0,0,1,0,0,0],"rad",null,!1,"A",null,1,!1,!1,0,"radians","UCUM","Angle","Clinical","unit of angular measure where 1 radian = 1/2\u03C0 turn = 57.296 degrees. ",null,null,null,null,!1],[!0,"degree Kelvin","K","K","temperature",1,[0,0,0,0,1,0,0],"K",null,!1,"C",null,1,!1,!1,0,"Kelvin; degrees","UCUM","Temp","Clinical","absolute, thermodynamic temperature scale ",null,null,null,null,!1],[!0,"coulomb","C","C","electric charge",1,[0,0,0,0,0,1,0],"C",null,!1,"Q",null,1,!1,!1,0,"coulombs","UCUM","","Clinical","defined as amount of 1 electron charge = 6.2415093\xD710^18 e, and equivalent to 1 Ampere-second",null,null,null,null,!1],[!0,"candela","cd","CD","luminous intensity",1,[0,0,0,0,0,0,1],"cd",null,!1,"F",null,1,!1,!1,0,"candelas","UCUM","","Clinical","SI base unit of luminous intensity",null,null,null,null,!1],[!1,"the number ten for arbitrary powers","10*","10*","number",10,[0,0,0,0,0,0,0],"10","dimless",!1,null,null,1,!1,!1,0,"10^; 10 to the arbitrary powers","UCUM","Num","Clinical","10* by itself is the same as 10, but users can add digits after the *. For example, 10*3 = 1000.","1","1","10",10,!1],[!1,"the number ten for arbitrary powers","10^","10^","number",10,[0,0,0,0,0,0,0],"10","dimless",!1,null,null,1,!1,!1,0,"10*; 10 to the arbitrary power","UCUM","Num","Clinical","10* by itself is the same as 10, but users can add digits after the *. For example, 10*3 = 1000.","1","1","10",10,!1],[!1,"the number pi","[pi]","[PI]","number",3.141592653589793,[0,0,0,0,0,0,0],"\u03C0","dimless",!1,null,null,1,!1,!1,0,"\u03C0","UCUM","","Constant","a mathematical constant; the ratio of a circle's circumference to its diameter \u2248 3.14159","1","1","3.1415926535897932384626433832795028841971693993751058209749445923",3.141592653589793,!1],[!1,"","%","%","fraction",.01,[0,0,0,0,0,0,0],"%","dimless",!1,null,null,1,!1,!1,0,"percents","UCUM","FR; NFR; MFR; CFR; SFR Rto; etc. ","Clinical","","10*-2","10*-2","1",1,!1],[!1,"parts per thousand","[ppth]","[PPTH]","fraction",.001,[0,0,0,0,0,0,0],"ppth","dimless",!1,null,null,1,!1,!1,0,"ppth; 10^-3","UCUM","MCnc; MCnt","Clinical",`[ppth] is often used in solution concentrations as 1 g/L or 1 g/kg. + +Can be ambigous and would be better if the metric units was used directly. `,"10*-3","10*-3","1",1,!1],[!1,"parts per million","[ppm]","[PPM]","fraction",1e-6,[0,0,0,0,0,0,0],"ppm","dimless",!1,null,null,1,!1,!1,0,"ppm; 10^-6","UCUM","MCnt; MCnc; SFr","Clinical",`[ppm] is often used in solution concentrations as 1 mg/L or 1 mg/kg. Also used to express mole fractions as 1 mmol/mol. + +[ppm] is also used in nuclear magnetic resonance (NMR) to represent chemical shift - the difference of a measured frequency in parts per million from the reference frequency. + +Can be ambigous and would be better if the metric units was used directly. `,"10*-6","10*-6","1",1,!1],[!1,"parts per billion","[ppb]","[PPB]","fraction",1e-9,[0,0,0,0,0,0,0],"ppb","dimless",!1,null,null,1,!1,!1,0,"ppb; 10^-9","UCUM","MCnt; MCnc; SFr","Clinical",`[ppb] is often used in solution concentrations as 1 ug/L or 1 ug/kg. Also used to express mole fractions as 1 umol/mol. + +Can be ambigous and would be better if the metric units was used directly. `,"10*-9","10*-9","1",1,!1],[!1,"parts per trillion","[pptr]","[PPTR]","fraction",1e-12,[0,0,0,0,0,0,0],"pptr","dimless",!1,null,null,1,!1,!1,0,"pptr; 10^-12","UCUM","MCnt; MCnc; SFr","Clinical",`[pptr] is often used in solution concentrations as 1 ng/L or 1 ng/kg. Also used to express mole fractions as 1 nmol/mol. + +Can be ambigous and would be better if the metric units was used directly. `,"10*-12","10*-12","1",1,!1],[!1,"mole","mol","MOL","amount of substance",60221367e16,[0,0,0,0,0,0,0],"mol","si",!0,null,null,1,!1,!1,1,"moles","UCUM","Sub","Clinical","Measure the number of molecules ","10*23","10*23","6.0221367",6.0221367,!1],[!1,"steradian - solid angle","sr","SR","solid angle",1,[0,0,0,2,0,0,0],"sr","si",!0,null,null,1,!1,!1,0,"square radian; rad2; rad^2","UCUM","Angle","Clinical","unit of solid angle in three-dimensional geometry analagous to radian; used in photometry which measures the perceived brightness of object by human eye (e.g. radiant intensity = watt/steradian)","rad2","RAD2","1",1,!1],[!1,"hertz","Hz","HZ","frequency",1,[0,-1,0,0,0,0,0],"Hz","si",!0,null,null,1,!1,!1,0,"Herz; frequency; frequencies","UCUM","Freq; Num","Clinical","equal to one cycle per second","s-1","S-1","1",1,!1],[!1,"newton","N","N","force",1e3,[1,-2,1,0,0,0,0],"N","si",!0,null,null,1,!1,!1,0,"Newtons","UCUM","Force","Clinical","unit of force with base units kg.m/s2","kg.m/s2","KG.M/S2","1",1,!1],[!1,"pascal","Pa","PAL","pressure",1e3,[-1,-2,1,0,0,0,0],"Pa","si",!0,null,null,1,!1,!1,0,"pascals","UCUM","Pres","Clinical","standard unit of pressure equal to 1 newton per square meter (N/m2)","N/m2","N/M2","1",1,!1],[!1,"joule","J","J","energy",1e3,[2,-2,1,0,0,0,0],"J","si",!0,null,null,1,!1,!1,0,"joules","UCUM","Enrg","Clinical","unit of energy defined as the work required to move an object 1 m with a force of 1 N (N.m) or an electric charge of 1 C through 1 V (C.V), or to produce 1 W for 1 s (W.s) ","N.m","N.M","1",1,!1],[!1,"watt","W","W","power",1e3,[2,-3,1,0,0,0,0],"W","si",!0,null,null,1,!1,!1,0,"watts","UCUM","EngRat","Clinical","unit of power equal to 1 Joule per second (J/s) = kg\u22C5m2\u22C5s\u22123","J/s","J/S","1",1,!1],[!1,"Ampere","A","A","electric current",1,[0,-1,0,0,0,1,0],"A","si",!0,null,null,1,!1,!1,0,"Amperes","UCUM","ElpotRat","Clinical","unit of electric current equal to flow rate of electrons equal to 6.2415\xD710^18 elementary charges moving past a boundary in one second or 1 Coulomb/second","C/s","C/S","1",1,!1],[!1,"volt","V","V","electric potential",1e3,[2,-2,1,0,0,-1,0],"V","si",!0,null,null,1,!1,!1,0,"volts","UCUM","Elpot","Clinical","unit of electric potential (voltage) = 1 Joule per Coulomb (J/C)","J/C","J/C","1",1,!1],[!1,"farad","F","F","electric capacitance",.001,[-2,2,-1,0,0,2,0],"F","si",!0,null,null,1,!1,!1,0,"farads; electric capacitance","UCUM","","Clinical","CGS unit of electric capacitance with base units C/V (Coulomb per Volt)","C/V","C/V","1",1,!1],[!1,"ohm","Ohm","OHM","electric resistance",1e3,[2,-1,1,0,0,-2,0],"\u03A9","si",!0,null,null,1,!1,!1,0,"\u03A9; resistance; ohms","UCUM","","Clinical","unit of electrical resistance with units of Volt per Ampere","V/A","V/A","1",1,!1],[!1,"siemens","S","SIE","electric conductance",.001,[-2,1,-1,0,0,2,0],"S","si",!0,null,null,1,!1,!1,0,"Reciprocal ohm; mho; \u03A9\u22121; conductance","UCUM","","Clinical","unit of electric conductance (the inverse of electrical resistance) equal to ohm^-1","Ohm-1","OHM-1","1",1,!1],[!1,"weber","Wb","WB","magnetic flux",1e3,[2,-1,1,0,0,-1,0],"Wb","si",!0,null,null,1,!1,!1,0,"magnetic flux; webers","UCUM","","Clinical","unit of magnetic flux equal to Volt second","V.s","V.S","1",1,!1],[!1,"degree Celsius","Cel","CEL","temperature",1,[0,0,0,0,1,0,0],"\xB0C","si",!0,null,"Cel",1,!0,!1,0,"\xB0C; degrees","UCUM","Temp","Clinical","","K",null,null,1,!1],[!1,"tesla","T","T","magnetic flux density",1e3,[0,-1,1,0,0,-1,0],"T","si",!0,null,null,1,!1,!1,0,"Teslas; magnetic field","UCUM","","Clinical","SI unit of magnetic field strength for magnetic field B equal to 1 Weber/square meter = 1 kg/(s2*A)","Wb/m2","WB/M2","1",1,!1],[!1,"henry","H","H","inductance",1e3,[2,0,1,0,0,-2,0],"H","si",!0,null,null,1,!1,!1,0,"henries; inductance","UCUM","","Clinical","unit of electrical inductance; usually expressed in millihenrys (mH) or microhenrys (uH).","Wb/A","WB/A","1",1,!1],[!1,"lumen","lm","LM","luminous flux",1,[0,0,0,2,0,0,1],"lm","si",!0,null,null,1,!1,!1,0,"luminous flux; lumens","UCUM","","Clinical","unit of luminous flux defined as 1 lm = 1 cd\u22C5sr (candela times sphere)","cd.sr","CD.SR","1",1,!1],[!1,"lux","lx","LX","illuminance",1,[-2,0,0,2,0,0,1],"lx","si",!0,null,null,1,!1,!1,0,"illuminance; luxes","UCUM","","Clinical","unit of illuminance equal to one lumen per square meter. ","lm/m2","LM/M2","1",1,!1],[!1,"becquerel","Bq","BQ","radioactivity",1,[0,-1,0,0,0,0,0],"Bq","si",!0,null,null,1,!1,!1,0,"activity; radiation; becquerels","UCUM","","Clinical","measure of the atomic radiation rate with units s^-1","s-1","S-1","1",1,!1],[!1,"gray","Gy","GY","energy dose",1,[2,-2,0,0,0,0,0],"Gy","si",!0,null,null,1,!1,!1,0,"absorbed doses; ionizing radiation doses; kerma; grays","UCUM","EngCnt","Clinical","unit of ionizing radiation dose with base units of 1 joule of radiation energy per kilogram of matter","J/kg","J/KG","1",1,!1],[!1,"sievert","Sv","SV","dose equivalent",1,[2,-2,0,0,0,0,0],"Sv","si",!0,null,null,1,!1,!1,0,"sieverts; radiation dose quantities; equivalent doses; effective dose; operational dose; committed dose","UCUM","","Clinical","SI unit for radiation dose equivalent equal to 1 Joule/kilogram.","J/kg","J/KG","1",1,!1],[!1,"degree - plane angle","deg","DEG","plane angle",.017453292519943295,[0,0,0,1,0,0,0],"\xB0","iso1000",!1,null,null,1,!1,!1,0,"\xB0; degree of arc; arc degree; arcdegree; angle","UCUM","Angle","Clinical","one degree is equivalent to \u03C0/180 radians.","[pi].rad/360","[PI].RAD/360","2",2,!1],[!1,"gon","gon","GON","plane angle",.015707963267948967,[0,0,0,1,0,0,0],"\u25A1g","iso1000",!1,null,null,1,!1,!1,0,"gon (grade); gons","UCUM","Angle","Nonclinical","unit of plane angle measurement equal to 1/400 circle","deg","DEG","0.9",.9,!1],[!1,"arc minute","'","'","plane angle",.0002908882086657216,[0,0,0,1,0,0,0],"'","iso1000",!1,null,null,1,!1,!1,0,"arcminutes; arcmin; arc minutes; arc mins","UCUM","Angle","Clinical","equal to 1/60 degree; used in optometry and opthamology (e.g. visual acuity tests)","deg/60","DEG/60","1",1,!1],[!1,"arc second","''","''","plane angle",484813681109536e-20,[0,0,0,1,0,0,0],"''","iso1000",!1,null,null,1,!1,!1,0,"arcseconds; arcsecs","UCUM","Angle","Clinical","equal to 1/60 arcminute = 1/3600 degree; used in optometry and opthamology (e.g. visual acuity tests)","'/60","'/60","1",1,!1],[!1,"Liters","l","L","volume",.001,[3,0,0,0,0,0,0],"l","iso1000",!0,null,null,1,!1,!1,0,"cubic decimeters; decimeters cubed; decimetres; dm3; dm^3; litres; liters, LT ","UCUM","Vol","Clinical",'Because lower case "l" can be read as the number "1", though this is a valid UCUM units. UCUM strongly reccomends using "L"',"dm3","DM3","1",1,!1],[!1,"Liters","L","L","volume",.001,[3,0,0,0,0,0,0],"L","iso1000",!0,null,null,1,!1,!1,0,"cubic decimeters; decimeters cubed; decimetres; dm3; dm^3; litres; liters, LT ","UCUM","Vol","Clinical",'Because lower case "l" can be read as the number "1", though this is a valid UCUM units. UCUM strongly reccomends using "L"',"l",null,"1",1,!1],[!1,"are","ar","AR","area",100,[2,0,0,0,0,0,0],"a","iso1000",!0,null,null,1,!1,!1,0,"100 m2; 100 m^2; 100 square meter; meters squared; metres","UCUM","Area","Clinical","metric base unit for area defined as 100 m^2","m2","M2","100",100,!1],[!1,"minute","min","MIN","time",60,[0,1,0,0,0,0,0],"min","iso1000",!1,null,null,1,!1,!1,0,"minutes","UCUM","Time","Clinical","","s","S","60",60,!1],[!1,"hour","h","HR","time",3600,[0,1,0,0,0,0,0],"h","iso1000",!1,null,null,1,!1,!1,0,"hours; hrs; age","UCUM","Time","Clinical","","min","MIN","60",60,!1],[!1,"day","d","D","time",86400,[0,1,0,0,0,0,0],"d","iso1000",!1,null,null,1,!1,!1,0,"days; age; dy; 24 hours; 24 hrs","UCUM","Time","Clinical","","h","HR","24",24,!1],[!1,"tropical year","a_t","ANN_T","time",31556925216e-3,[0,1,0,0,0,0,0],"at","iso1000",!1,null,null,1,!1,!1,0,"solar years; a tropical; years","UCUM","Time","Clinical","has an average of 365.242181 days but is constantly changing.","d","D","365.24219",365.24219,!1],[!1,"mean Julian year","a_j","ANN_J","time",31557600,[0,1,0,0,0,0,0],"aj","iso1000",!1,null,null,1,!1,!1,0,"mean Julian yr; a julian; years","UCUM","Time","Clinical","has an average of 365.25 days, and in everyday use, has been replaced by the Gregorian year. However, this unit is used in astronomy to calculate light year. ","d","D","365.25",365.25,!1],[!1,"mean Gregorian year","a_g","ANN_G","time",31556952,[0,1,0,0,0,0,0],"ag","iso1000",!1,null,null,1,!1,!1,0,"mean Gregorian yr; a gregorian; years","UCUM","Time","Clinical","has an average of 365.2425 days and is the most internationally used civil calendar.","d","D","365.2425",365.2425,!1],[!1,"year","a","ANN","time",31557600,[0,1,0,0,0,0,0],"a","iso1000",!1,null,null,1,!1,!1,0,"years; a; yr, yrs; annum","UCUM","Time","Clinical","","a_j","ANN_J","1",1,!1],[!1,"week","wk","WK","time",604800,[0,1,0,0,0,0,0],"wk","iso1000",!1,null,null,1,!1,!1,0,"weeks; wks","UCUM","Time","Clinical","","d","D","7",7,!1],[!1,"synodal month","mo_s","MO_S","time",2551442976e-3,[0,1,0,0,0,0,0],"mos","iso1000",!1,null,null,1,!1,!1,0,"Moon; synodic month; lunar month; mo-s; mo s; months; moons","UCUM","Time","Nonclinical","has an average of 29.53 days per month, unit used in astronomy","d","D","29.53059",29.53059,!1],[!1,"mean Julian month","mo_j","MO_J","time",2629800,[0,1,0,0,0,0,0],"moj","iso1000",!1,null,null,1,!1,!1,0,"mo-julian; mo Julian; months","UCUM","Time","Clinical","has an average of 30.435 days per month","a_j/12","ANN_J/12","1",1,!1],[!1,"mean Gregorian month","mo_g","MO_G","time",2629746,[0,1,0,0,0,0,0],"mog","iso1000",!1,null,null,1,!1,!1,0,"months; month-gregorian; mo-gregorian","UCUM","Time","Clinical","has an average 30.436875 days per month and is from the most internationally used civil calendar.","a_g/12","ANN_G/12","1",1,!1],[!1,"month","mo","MO","time",2629800,[0,1,0,0,0,0,0],"mo","iso1000",!1,null,null,1,!1,!1,0,"months; duration","UCUM","Time","Clinical","based on Julian calendar which has an average of 30.435 days per month (this unit is used in astronomy but not in everyday life - see mo_g)","mo_j","MO_J","1",1,!1],[!1,"metric ton","t","TNE","mass",1e6,[0,0,1,0,0,0,0],"t","iso1000",!0,null,null,1,!1,!1,0,"tonnes; megagrams; tons","UCUM","Mass","Nonclinical","equal to 1000 kg used in the US (recognized by NIST as metric ton), and internationally (recognized as tonne)","kg","KG","1e3",1e3,!1],[!1,"bar","bar","BAR","pressure",1e8,[-1,-2,1,0,0,0,0],"bar","iso1000",!0,null,null,1,!1,!1,0,"bars","UCUM","Pres","Nonclinical","unit of pressure equal to 10^5 Pascals, primarily used by meteorologists and in weather forecasting","Pa","PAL","1e5",1e5,!1],[!1,"unified atomic mass unit","u","AMU","mass",16605402e-31,[0,0,1,0,0,0,0],"u","iso1000",!0,null,null,1,!1,!1,0,"unified atomic mass units; amu; Dalton; Da","UCUM","Mass","Clinical","the mass of 1/12 of an unbound Carbon-12 atom nuclide equal to 1.6606x10^-27 kg ","g","G","1.6605402e-24",16605402e-31,!1],[!1,"astronomic unit","AU","ASU","length",149597870691,[1,0,0,0,0,0,0],"AU","iso1000",!1,null,null,1,!1,!1,0,"AU; units","UCUM","Len","Clinical","unit of length used in astronomy for measuring distance in Solar system","Mm","MAM","149597.870691",149597.870691,!1],[!1,"parsec","pc","PRS","length",3085678e10,[1,0,0,0,0,0,0],"pc","iso1000",!0,null,null,1,!1,!1,0,"parsecs","UCUM","Len","Clinical","unit of length equal to 3.26 light years, and used to measure large distances to objects outside our Solar System","m","M","3.085678e16",3085678e10,!1],[!1,"velocity of light in a vacuum","[c]","[C]","velocity",299792458,[1,-1,0,0,0,0,0],"c","const",!0,null,null,1,!1,!1,0,"speed of light","UCUM","Vel","Constant","equal to 299792458 m/s (approximately 3 x 10^8 m/s)","m/s","M/S","299792458",299792458,!1],[!1,"Planck constant","[h]","[H]","action",66260755e-38,[2,-1,1,0,0,0,0],"h","const",!0,null,null,1,!1,!1,0,"Planck's constant","UCUM","","Constant","constant = 6.62607004 \xD7 10-34 m2.kg/s; defined as quantum of action","J.s","J.S","6.6260755e-34",66260755e-41,!1],[!1,"Boltzmann constant","[k]","[K]","(unclassified)",1380658e-26,[2,-2,1,0,-1,0,0],"k","const",!0,null,null,1,!1,!1,0,"k; kB","UCUM","","Constant","physical constant relating energy at the individual particle level with temperature = 1.38064852 \xD710^\u221223 J/K","J/K","J/K","1.380658e-23",1380658e-29,!1],[!1,"permittivity of vacuum - electric","[eps_0]","[EPS_0]","electric permittivity",8854187817000001e-30,[-3,2,-1,0,0,2,0],"\u03B50","const",!0,null,null,1,!1,!1,0,"\u03B50; Electric Constant; vacuum permittivity; permittivity of free space ","UCUM","","Constant","approximately equal to 8.854\u2009\xD7 10^\u221212 F/m (farads per meter)","F/m","F/M","8.854187817e-12",8854187817e-21,!1],[!1,"permeability of vacuum - magnetic","[mu_0]","[MU_0]","magnetic permeability",.0012566370614359172,[1,0,1,0,0,-2,0],"\u03BC0","const",!0,null,null,1,!1,!1,0,"\u03BC0; vacuum permeability; permeability of free space; magnetic constant","UCUM","","Constant","equal to 4\u03C0\xD710^\u22127 N/A2 (Newtons per square ampere) \u2248 1.2566\xD710^\u22126 H/m (Henry per meter)","N/A2","4.[PI].10*-7.N/A2","1",12566370614359173e-22,!1],[!1,"elementary charge","[e]","[E]","electric charge",160217733e-27,[0,0,0,0,0,1,0],"e","const",!0,null,null,1,!1,!1,0,"e; q; electric charges","UCUM","","Constant","the magnitude of the electric charge carried by a single electron or proton \u2248 1.60217\xD710^-19 Coulombs","C","C","1.60217733e-19",160217733e-27,!1],[!1,"electronvolt","eV","EV","energy",160217733e-24,[2,-2,1,0,0,0,0],"eV","iso1000",!0,null,null,1,!1,!1,0,"Electron Volts; electronvolts","UCUM","Eng","Clinical","unit of kinetic energy = 1 V * 1.602\xD710^\u221219 C = 1.6\xD710\u221219 Joules","[e].V","[E].V","1",1,!1],[!1,"electron mass","[m_e]","[M_E]","mass",91093897e-35,[0,0,1,0,0,0,0],"me","const",!0,null,null,1,!1,!1,0,"electron rest mass; me","UCUM","Mass","Constant","approximately equal to 9.10938356 \xD7 10-31 kg; defined as the mass of a stationary electron","g","g","9.1093897e-28",91093897e-35,!1],[!1,"proton mass","[m_p]","[M_P]","mass",16726231e-31,[0,0,1,0,0,0,0],"mp","const",!0,null,null,1,!1,!1,0,"mp; masses","UCUM","Mass","Constant","approximately equal to 1.672622\xD710\u221227 kg","g","g","1.6726231e-24",16726231e-31,!1],[!1,"Newtonian constant of gravitation","[G]","[GC]","(unclassified)",667259e-19,[3,-2,-1,0,0,0,0],"G","const",!0,null,null,1,!1,!1,0,"G; gravitational constant; Newton's constant","UCUM","","Constant","gravitational constant = 6.674\xD710\u221211 N\u22C5m2/kg2","m3.kg-1.s-2","M3.KG-1.S-2","6.67259e-11",667259e-16,!1],[!1,"standard acceleration of free fall","[g]","[G]","acceleration",9.80665,[1,-2,0,0,0,0,0],"gn","const",!0,null,null,1,!1,!1,0,"standard gravity; g; \u02610; \u0261n","UCUM","Accel","Constant","defined by standard = 9.80665 m/s2","m/s2","M/S2","980665e-5",9.80665,!1],[!1,"Torr","Torr","Torr","pressure",133322,[-1,-2,1,0,0,0,0],"Torr","const",!1,null,null,1,!1,!1,0,"torrs","UCUM","Pres","Clinical","1 torr = 1 mmHg; unit used to measure blood pressure","Pa","PAL","133.322",133.322,!1],[!1,"standard atmosphere","atm","ATM","pressure",101325e3,[-1,-2,1,0,0,0,0],"atm","const",!1,null,null,1,!1,!1,0,"reference pressure; atmos; std atmosphere","UCUM","Pres","Clinical","defined as being precisely equal to 101,325 Pa","Pa","PAL","101325",101325,!1],[!1,"light-year","[ly]","[LY]","length",9460730472580800,[1,0,0,0,0,0,0],"l.y.","const",!0,null,null,1,!1,!1,0,"light years; ly","UCUM","Len","Constant","unit of astronomal distance = 5.88\xD710^12 mi","[c].a_j","[C].ANN_J","1",1,!1],[!1,"gram-force","gf","GF","force",9.80665,[1,-2,1,0,0,0,0],"gf","const",!0,null,null,1,!1,!1,0,"Newtons; gram forces","UCUM","Force","Clinical","May be specific to unit related to cardiac output","g.[g]","G.[G]","1",1,!1],[!1,"Kayser","Ky","KY","lineic number",100,[-1,0,0,0,0,0,0],"K","cgs",!0,null,null,1,!1,!1,0,"wavenumbers; kaysers","UCUM","InvLen","Clinical","unit of wavelength equal to cm^-1","cm-1","CM-1","1",1,!1],[!1,"Gal","Gal","GL","acceleration",.01,[1,-2,0,0,0,0,0],"Gal","cgs",!0,null,null,1,!1,!1,0,"galileos; Gals","UCUM","Accel","Clinical","unit of acceleration used in gravimetry; equivalent to cm/s2 ","cm/s2","CM/S2","1",1,!1],[!1,"dyne","dyn","DYN","force",.01,[1,-2,1,0,0,0,0],"dyn","cgs",!0,null,null,1,!1,!1,0,"dynes","UCUM","Force","Clinical","unit of force equal to 10^-5 Newtons","g.cm/s2","G.CM/S2","1",1,!1],[!1,"erg","erg","ERG","energy",1e-4,[2,-2,1,0,0,0,0],"erg","cgs",!0,null,null,1,!1,!1,0,"10^-7 Joules, 10-7 Joules; 100 nJ; 100 nanoJoules; 1 dyne cm; 1 g.cm2/s2","UCUM","Eng","Clinical","unit of energy = 1 dyne centimeter = 10^-7 Joules","dyn.cm","DYN.CM","1",1,!1],[!1,"Poise","P","P","dynamic viscosity",100.00000000000001,[-1,-1,1,0,0,0,0],"P","cgs",!0,null,null,1,!1,!1,0,"dynamic viscosity; poises","UCUM","Visc","Clinical","unit of dynamic viscosity where 1 Poise = 1/10 Pascal second","dyn.s/cm2","DYN.S/CM2","1",1,!1],[!1,"Biot","Bi","BI","electric current",10,[0,-1,0,0,0,1,0],"Bi","cgs",!0,null,null,1,!1,!1,0,"Bi; abamperes; abA","UCUM","ElpotRat","Clinical","equal to 10 amperes","A","A","10",10,!1],[!1,"Stokes","St","ST","kinematic viscosity",9999999999999999e-20,[2,-1,0,0,0,0,0],"St","cgs",!0,null,null,1,!1,!1,0,"kinematic viscosity","UCUM","Visc","Clinical","unit of kimematic viscosity with units cm2/s","cm2/s","CM2/S","1",1,!1],[!1,"Maxwell","Mx","MX","flux of magnetic induction",1e-5,[2,-1,1,0,0,-1,0],"Mx","cgs",!0,null,null,1,!1,!1,0,"magnetix flux; Maxwells","UCUM","","Clinical","unit of magnetic flux","Wb","WB","1e-8",1e-8,!1],[!1,"Gauss","G","GS","magnetic flux density",.1,[0,-1,1,0,0,-1,0],"Gs","cgs",!0,null,null,1,!1,!1,0,"magnetic fields; magnetic flux density; induction; B","UCUM","magnetic","Clinical","CGS unit of magnetic flux density, known as magnetic field B; defined as one maxwell unit per square centimeter (see Oersted for CGS unit for H field)","T","T","1e-4",1e-4,!1],[!1,"Oersted","Oe","OE","magnetic field intensity",79.57747154594767,[-1,-1,0,0,0,1,0],"Oe","cgs",!0,null,null,1,!1,!1,0,"H magnetic B field; Oersteds","UCUM","","Clinical","CGS unit of the auxiliary magnetic field H defined as 1 dyne per unit pole = 1000/4\u03C0 amperes per meter (see Gauss for CGS unit for B field)","A/m","/[PI].A/M","250",79.57747154594767,!1],[!1,"Gilbert","Gb","GB","magnetic tension",.7957747154594768,[0,-1,0,0,0,1,0],"Gb","cgs",!0,null,null,1,!1,!1,0,"Gi; magnetomotive force; Gilberts","UCUM","","Clinical","unit of magnetomotive force (magnetic potential)","Oe.cm","OE.CM","1",1,!1],[!1,"stilb","sb","SB","lum. intensity density",1e4,[-2,0,0,0,0,0,1],"sb","cgs",!0,null,null,1,!1,!1,0,"stilbs","UCUM","","Obsolete","unit of luminance; equal to and replaced by unit candela per square centimeter (cd/cm2)","cd/cm2","CD/CM2","1",1,!1],[!1,"Lambert","Lmb","LMB","brightness",3183.098861837907,[-2,0,0,0,0,0,1],"L","cgs",!0,null,null,1,!1,!1,0,"luminance; lamberts","UCUM","","Clinical","unit of luminance defined as 1 lambert = 1/ \u03C0 candela per square meter","cd/cm2/[pi]","CD/CM2/[PI]","1",1,!1],[!1,"phot","ph","PHT","illuminance",1e-4,[-2,0,0,2,0,0,1],"ph","cgs",!0,null,null,1,!1,!1,0,"phots","UCUM","","Clinical","CGS photometric unit of illuminance, or luminous flux through an area equal to 10000 lumens per square meter = 10000 lux","lx","LX","1e-4",1e-4,!1],[!1,"Curie","Ci","CI","radioactivity",37e9,[0,-1,0,0,0,0,0],"Ci","cgs",!0,null,null,1,!1,!1,0,"curies","UCUM","","Obsolete","unit for measuring atomic disintegration rate; replaced by the Bequerel (Bq) unit","Bq","BQ","37e9",37e9,!1],[!1,"Roentgen","R","ROE","ion dose",258e-9,[0,0,-1,0,0,1,0],"R","cgs",!0,null,null,1,!1,!1,0,"r\xF6ntgen; Roentgens","UCUM","","Clinical","unit of exposure of X-rays and gamma rays in air; unit used primarily in the US but strongly discouraged by NIST","C/kg","C/KG","2.58e-4",258e-6,!1],[!1,"radiation absorbed dose","RAD","[RAD]","energy dose",.01,[2,-2,0,0,0,0,0],"RAD","cgs",!0,null,null,1,!1,!1,0,"doses","UCUM","","Clinical","unit of radiation absorbed dose used primarily in the US with base units 100 ergs per gram of material. Also see the SI unit Gray (Gy).","erg/g","ERG/G","100",100,!1],[!1,"radiation equivalent man","REM","[REM]","dose equivalent",.01,[2,-2,0,0,0,0,0],"REM","cgs",!0,null,null,1,!1,!1,0,"Roentgen Equivalent in Man; rems; dose equivalents","UCUM","","Clinical","unit of equivalent dose which measures the effect of radiation on humans equal to 0.01 sievert. Used primarily in the US. Also see SI unit Sievert (Sv)","RAD","[RAD]","1",1,!1],[!1,"inch","[in_i]","[IN_I]","length",.025400000000000002,[1,0,0,0,0,0,0],"in","intcust",!1,null,null,1,!1,!1,0,"inches; in; international inch; body height","UCUM","Len","Clinical","standard unit for inch in the US and internationally","cm","CM","254e-2",2.54,!1],[!1,"foot","[ft_i]","[FT_I]","length",.3048,[1,0,0,0,0,0,0],"ft","intcust",!1,null,null,1,!1,!1,0,"ft; fts; foot; international foot; feet; international feet; height","UCUM","Len","Clinical","unit used in the US and internationally","[in_i]","[IN_I]","12",12,!1],[!1,"yard","[yd_i]","[YD_I]","length",.9144000000000001,[1,0,0,0,0,0,0],"yd","intcust",!1,null,null,1,!1,!1,0,"international yards; yds; distance","UCUM","Len","Clinical","standard unit used in the US and internationally","[ft_i]","[FT_I]","3",3,!1],[!1,"mile","[mi_i]","[MI_I]","length",1609.344,[1,0,0,0,0,0,0],"mi","intcust",!1,null,null,1,!1,!1,0,"international miles; mi I; statute mile","UCUM","Len","Clinical","standard unit used in the US and internationally","[ft_i]","[FT_I]","5280",5280,!1],[!1,"fathom","[fth_i]","[FTH_I]","depth of water",1.8288000000000002,[1,0,0,0,0,0,0],"fth","intcust",!1,null,null,1,!1,!1,0,"international fathoms","UCUM","Len","Nonclinical","unit used in the US and internationally to measure depth of water; same length as the US fathom","[ft_i]","[FT_I]","6",6,!1],[!1,"nautical mile","[nmi_i]","[NMI_I]","length",1852,[1,0,0,0,0,0,0],"n.mi","intcust",!1,null,null,1,!1,!1,0,"nautical mile; nautical miles; international nautical mile; international nautical miles; nm; n.m.; nmi","UCUM","Len","Nonclinical","standard unit used in the US and internationally","m","M","1852",1852,!1],[!1,"knot","[kn_i]","[KN_I]","velocity",.5144444444444445,[1,-1,0,0,0,0,0],"knot","intcust",!1,null,null,1,!1,!1,0,"kn; kt; international knots","UCUM","Vel","Nonclinical","defined as equal to one nautical mile (1.852 km) per hour","[nmi_i]/h","[NMI_I]/H","1",1,!1],[!1,"square inch","[sin_i]","[SIN_I]","area",.0006451600000000001,[2,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"in2; in^2; inches squared; sq inch; inches squared; international","UCUM","Area","Clinical","standard unit used in the US and internationally","[in_i]2","[IN_I]2","1",1,!1],[!1,"square foot","[sft_i]","[SFT_I]","area",.09290304,[2,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"ft2; ft^2; ft squared; sq ft; feet; international","UCUM","Area","Clinical","standard unit used in the US and internationally","[ft_i]2","[FT_I]2","1",1,!1],[!1,"square yard","[syd_i]","[SYD_I]","area",.8361273600000002,[2,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"yd2; yd^2; sq. yds; yards squared; international","UCUM","Area","Clinical","standard unit used in the US and internationally","[yd_i]2","[YD_I]2","1",1,!1],[!1,"cubic inch","[cin_i]","[CIN_I]","volume",16387064000000006e-21,[3,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"in3; in^3; in*3; inches^3; inches*3; cu. in; cu in; cubic inches; inches cubed; cin","UCUM","Vol","Clinical","standard unit used in the US and internationally","[in_i]3","[IN_I]3","1",1,!1],[!1,"cubic foot","[cft_i]","[CFT_I]","volume",.028316846592000004,[3,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"ft3; ft^3; ft*3; cu. ft; cubic feet; cubed; [ft_i]3; international","UCUM","Vol","Clinical","","[ft_i]3","[FT_I]3","1",1,!1],[!1,"cubic yard","[cyd_i]","[CYD_I]","volume",.7645548579840002,[3,0,0,0,0,0,0],"cu.yd","intcust",!1,null,null,1,!1,!1,0,"cubic yards; cubic yds; cu yards; CYs; yards^3; yd^3; yds^3; yd3; yds3","UCUM","Vol","Nonclinical","standard unit used in the US and internationally","[yd_i]3","[YD_I]3","1",1,!1],[!1,"board foot","[bf_i]","[BF_I]","volume",.0023597372160000006,[3,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"BDFT; FBM; BF; board feet; international","UCUM","Vol","Nonclinical","unit of volume used to measure lumber","[in_i]3","[IN_I]3","144",144,!1],[!1,"cord","[cr_i]","[CR_I]","volume",3.6245563637760005,[3,0,0,0,0,0,0],null,"intcust",!1,null,null,1,!1,!1,0,"crd I; international cords","UCUM","Vol","Nonclinical","unit of measure of dry volume used to measure firewood equal 128 ft3","[ft_i]3","[FT_I]3","128",128,!1],[!1,"mil","[mil_i]","[MIL_I]","length",25400000000000004e-21,[1,0,0,0,0,0,0],"mil","intcust",!1,null,null,1,!1,!1,0,"thou, thousandth; mils; international","UCUM","Len","Clinical","equal to 0.001 international inch","[in_i]","[IN_I]","1e-3",.001,!1],[!1,"circular mil","[cml_i]","[CML_I]","area",5067074790974979e-25,[2,0,0,0,0,0,0],"circ.mil","intcust",!1,null,null,1,!1,!1,0,"circular mils; cml I; international","UCUM","Area","Clinical","","[pi]/4.[mil_i]2","[PI]/4.[MIL_I]2","1",1,!1],[!1,"hand","[hd_i]","[HD_I]","height of horses",.10160000000000001,[1,0,0,0,0,0,0],"hd","intcust",!1,null,null,1,!1,!1,0,"hands; international","UCUM","Len","Nonclinical","used to measure horse height","[in_i]","[IN_I]","4",4,!1],[!1,"foot - US","[ft_us]","[FT_US]","length",.3048006096012192,[1,0,0,0,0,0,0],"ftus","us-lengths",!1,null,null,1,!1,!1,0,"US foot; foot US; us ft; ft us; height; visual distance; feet","UCUM","Len","Obsolete","Better to use [ft_i] which refers to the length used worldwide, including in the US; [ft_us] may be confused with land survey units. ","m/3937","M/3937","1200",1200,!1],[!1,"yard - US","[yd_us]","[YD_US]","length",.9144018288036575,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"US yards; us yds; distance","UCUM","Len; Nrat","Obsolete","Better to use [yd_i] which refers to the length used worldwide, including in the US; [yd_us] refers to unit used in land surveys in the US","[ft_us]","[FT_US]","3",3,!1],[!1,"inch - US","[in_us]","[IN_US]","length",.0254000508001016,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"US inches; in us; us in; inch US","UCUM","Len","Obsolete","Better to use [in_i] which refers to the length used worldwide, including in the US","[ft_us]/12","[FT_US]/12","1",1,!1],[!1,"rod - US","[rd_us]","[RD_US]","length",5.029210058420117,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"US rod; US rods; rd US; US rd","UCUM","Len","Obsolete","","[ft_us]","[FT_US]","16.5",16.5,!1],[!1,"Gunter's chain - US","[ch_us]","[CH_US]","length",20.116840233680467,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"surveyor's chain; Surveyor's chain USA; Gunter\u2019s measurement; surveyor\u2019s measurement; Gunter's Chain USA","UCUM","Len","Obsolete","historical unit used for land survey used only in the US","[rd_us]","[RD_US]","4",4,!1],[!1,"link for Gunter's chain - US","[lk_us]","[LK_US]","length",.20116840233680466,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"Links for Gunter's Chain USA","UCUM","Len","Obsolete","","[ch_us]/100","[CH_US]/100","1",1,!1],[!1,"Ramden's chain - US","[rch_us]","[RCH_US]","length",30.480060960121918,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"Ramsden's chain; engineer's chains","UCUM","Len","Obsolete","distance measuring device used for\xA0land survey","[ft_us]","[FT_US]","100",100,!1],[!1,"link for Ramden's chain - US","[rlk_us]","[RLK_US]","length",.3048006096012192,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"links for Ramsden's chain","UCUM","Len","Obsolete","","[rch_us]/100","[RCH_US]/100","1",1,!1],[!1,"fathom - US","[fth_us]","[FTH_US]","length",1.828803657607315,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"US fathoms; fathom USA; fth us","UCUM","Len","Obsolete","same length as the international fathom - better to use international fathom ([fth_i])","[ft_us]","[FT_US]","6",6,!1],[!1,"furlong - US","[fur_us]","[FUR_US]","length",201.16840233680466,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"US furlongs; fur us","UCUM","Len","Nonclinical","distance unit in horse racing","[rd_us]","[RD_US]","40",40,!1],[!1,"mile - US","[mi_us]","[MI_US]","length",1609.3472186944373,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"U.S. Survey Miles; US statute miles; survey mi; US mi; distance","UCUM","Len","Nonclinical","Better to use [mi_i] which refers to the length used worldwide, including in the US","[fur_us]","[FUR_US]","8",8,!1],[!1,"acre - US","[acr_us]","[ACR_US]","area",4046.872609874252,[2,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"Acre USA Survey; Acre USA; survey acres","UCUM","Area","Nonclinical","an older unit based on pre 1959 US statute lengths that is still sometimes used in the US only for land survey purposes. ","[rd_us]2","[RD_US]2","160",160,!1],[!1,"square rod - US","[srd_us]","[SRD_US]","area",25.292953811714074,[2,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"rod2; rod^2; sq. rod; rods squared","UCUM","Area","Nonclinical","Used only in the US to measure land area, based on US statute land survey length units","[rd_us]2","[RD_US]2","1",1,!1],[!1,"square mile - US","[smi_us]","[SMI_US]","area",2589998470319521e-9,[2,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"mi2; mi^2; sq mi; miles squared","UCUM","Area","Nonclinical","historical unit used only in the US for land survey purposes (based on the US survey mile), not the internationally recognized [mi_i]","[mi_us]2","[MI_US]2","1",1,!1],[!1,"section","[sct]","[SCT]","area",2589998470319521e-9,[2,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"sct; sections","UCUM","Area","Nonclinical","tract of land approximately equal to 1 mile square containing 640 acres","[mi_us]2","[MI_US]2","1",1,!1],[!1,"township","[twp]","[TWP]","area",9323994493150276e-8,[2,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"twp; townships","UCUM","Area","Nonclinical","land measurement equal to 6 mile square","[sct]","[SCT]","36",36,!1],[!1,"mil - US","[mil_us]","[MIL_US]","length",254000508001016e-19,[1,0,0,0,0,0,0],null,"us-lengths",!1,null,null,1,!1,!1,0,"thou, thousandth; mils","UCUM","Len","Obsolete","better to use [mil_i] which is based on the internationally recognized inch","[in_us]","[IN_US]","1e-3",.001,!1],[!1,"inch - British","[in_br]","[IN_BR]","length",.025399980000000003,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"imperial inches; imp in; br in; british inches","UCUM","Len","Obsolete","","cm","CM","2.539998",2.539998,!1],[!1,"foot - British","[ft_br]","[FT_BR]","length",.30479976000000003,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British Foot; Imperial Foot; feet; imp fts; br fts","UCUM","Len","Obsolete","","[in_br]","[IN_BR]","12",12,!1],[!1,"rod - British","[rd_br]","[RD_BR]","length",5.02919604,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British rods; br rd","UCUM","Len","Obsolete","","[ft_br]","[FT_BR]","16.5",16.5,!1],[!1,"Gunter's chain - British","[ch_br]","[CH_BR]","length",20.11678416,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"Gunter's Chain British; Gunters Chain British; Surveyor's Chain British","UCUM","Len","Obsolete","historical unit used for land survey used only in Great Britain","[rd_br]","[RD_BR]","4",4,!1],[!1,"link for Gunter's chain - British","[lk_br]","[LK_BR]","length",.2011678416,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"Links for Gunter's Chain British","UCUM","Len","Obsolete","","[ch_br]/100","[CH_BR]/100","1",1,!1],[!1,"fathom - British","[fth_br]","[FTH_BR]","length",1.82879856,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British fathoms; imperial fathoms; br fth; imp fth","UCUM","Len","Obsolete","","[ft_br]","[FT_BR]","6",6,!1],[!1,"pace - British","[pc_br]","[PC_BR]","length",.7619994000000001,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British paces; br pc","UCUM","Len","Nonclinical","traditional unit of length equal to 152.4 centimeters, or 1.52 meter. ","[ft_br]","[FT_BR]","2.5",2.5,!1],[!1,"yard - British","[yd_br]","[YD_BR]","length",.91439928,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British yards; Br yds; distance","UCUM","Len","Obsolete","","[ft_br]","[FT_BR]","3",3,!1],[!1,"mile - British","[mi_br]","[MI_BR]","length",1609.3427328000002,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"imperial miles; British miles; English statute miles; imp mi, br mi","UCUM","Len","Obsolete","","[ft_br]","[FT_BR]","5280",5280,!1],[!1,"nautical mile - British","[nmi_br]","[NMI_BR]","length",1853.1825408000002,[1,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British nautical miles; Imperial nautical miles; Admiralty miles; n.m. br; imp nm","UCUM","Len","Obsolete","","[ft_br]","[FT_BR]","6080",6080,!1],[!1,"knot - British","[kn_br]","[KN_BR]","velocity",.5147729280000001,[1,-1,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"British knots; kn br; kt","UCUM","Vel","Obsolete","based on obsolete British nautical mile ","[nmi_br]/h","[NMI_BR]/H","1",1,!1],[!1,"acre","[acr_br]","[ACR_BR]","area",4046.850049400269,[2,0,0,0,0,0,0],null,"brit-length",!1,null,null,1,!1,!1,0,"Imperial acres; British; a; ac; ar; acr","UCUM","Area","Nonclinical","the standard unit for acre used in the US and internationally","[yd_br]2","[YD_BR]2","4840",4840,!1],[!1,"gallon - US","[gal_us]","[GAL_US]","fluid volume",.0037854117840000014,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US gallons; US liquid gallon; gal us; Queen Anne's wine gallon","UCUM","Vol","Nonclinical","only gallon unit used in the US; [gal_us] is only used in some other countries in South American and Africa to measure gasoline volume","[in_i]3","[IN_I]3","231",231,!1],[!1,"barrel - US","[bbl_us]","[BBL_US]","fluid volume",.15898729492800007,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"bbl","UCUM","Vol","Nonclinical","[bbl_us] is the standard unit for oil barrel, which is a unit only used in the US to measure the volume oil. ","[gal_us]","[GAL_US]","42",42,!1],[!1,"quart - US","[qt_us]","[QT_US]","fluid volume",.0009463529460000004,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US quarts; us qts","UCUM","Vol","Clinical","Used only in the US","[gal_us]/4","[GAL_US]/4","1",1,!1],[!1,"pint - US","[pt_us]","[PT_US]","fluid volume",.0004731764730000002,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US pints; pint US; liquid pint; pt us; us pt","UCUM","Vol","Clinical","Used only in the US","[qt_us]/2","[QT_US]/2","1",1,!1],[!1,"gill - US","[gil_us]","[GIL_US]","fluid volume",.00011829411825000005,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US gills; gil us","UCUM","Vol","Nonclinical","only used in the context of alcohol volume in the US","[pt_us]/4","[PT_US]/4","1",1,!1],[!1,"fluid ounce - US","[foz_us]","[FOZ_US]","fluid volume",2957352956250001e-20,[3,0,0,0,0,0,0],"oz fl","us-volumes",!1,null,null,1,!1,!1,0,"US fluid ounces; fl ozs; FO; fl. oz.; foz us","UCUM","Vol","Clinical","unit used only in the US","[gil_us]/4","[GIL_US]/4","1",1,!1],[!1,"fluid dram - US","[fdr_us]","[FDR_US]","fluid volume",36966911953125014e-22,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US fluid drams; fdr us","UCUM","Vol","Nonclinical","equal to 1/8 US fluid ounce = 3.69 mL; used informally to mean small amount of liquor, especially Scotch whiskey","[foz_us]/8","[FOZ_US]/8","1",1,!1],[!1,"minim - US","[min_us]","[MIN_US]","fluid volume",6161151992187503e-23,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"min US; US min; \u264F US","UCUM","Vol","Obsolete","","[fdr_us]/60","[FDR_US]/60","1",1,!1],[!1,"cord - US","[crd_us]","[CRD_US]","fluid volume",3.6245563637760005,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US cord; US cords; crd us; us crd","UCUM","Vol","Nonclinical","unit of measure of dry volume used to measure firewood equal 128 ft3 (the same as international cord [cr_i])","[ft_i]3","[FT_I]3","128",128,!1],[!1,"bushel - US","[bu_us]","[BU_US]","dry volume",.035239070166880014,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US bushels; US bsh; US bu","UCUM","Vol","Obsolete","Historical unit of dry volume that is rarely used today","[in_i]3","[IN_I]3","2150.42",2150.42,!1],[!1,"gallon - historical","[gal_wi]","[GAL_WI]","dry volume",.004404883770860002,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"Corn Gallon British; Dry Gallon US; Gallons Historical; Grain Gallon British; Winchester Corn Gallon; historical winchester gallons; wi gal","UCUM","Vol","Obsolete","historical unit of dry volume no longer used","[bu_us]/8","[BU_US]/8","1",1,!1],[!1,"peck - US","[pk_us]","[PK_US]","dry volume",.008809767541720004,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"US pecks; US pk","UCUM","Vol","Nonclinical","unit of dry volume rarely used today (can be used to measure volume of apples)","[bu_us]/4","[BU_US]/4","1",1,!1],[!1,"dry quart - US","[dqt_us]","[DQT_US]","dry volume",.0011012209427150004,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"dry quarts; dry quart US; US dry quart; dry qt; us dry qt; dqt; dqt us","UCUM","Vol","Nonclinical","historical unit of dry volume only in the US, but is rarely used today","[pk_us]/8","[PK_US]/8","1",1,!1],[!1,"dry pint - US","[dpt_us]","[DPT_US]","dry volume",.0005506104713575002,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"dry pints; dry pint US; US dry pint; dry pt; dpt; dpt us","UCUM","Vol","Nonclinical","historical unit of dry volume only in the US, but is rarely used today","[dqt_us]/2","[DQT_US]/2","1",1,!1],[!1,"tablespoon - US","[tbs_us]","[TBS_US]","volume",14786764781250006e-21,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"Tbs; tbsp; tbs us; US tablespoons","UCUM","Vol","Clinical","unit defined as 0.5 US fluid ounces or 3 teaspoons - used only in the US. See [tbs_m] for the unit used internationally and in the US for nutrional labelling. ","[foz_us]/2","[FOZ_US]/2","1",1,!1],[!1,"teaspoon - US","[tsp_us]","[TSP_US]","volume",4928921593750002e-21,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"tsp; t; US teaspoons","UCUM","Vol","Nonclinical","unit defined as 1/6 US fluid ounces - used only in the US. See [tsp_m] for the unit used internationally and in the US for nutrional labelling. ","[tbs_us]/3","[TBS_US]/3","1",1,!1],[!1,"cup - US customary","[cup_us]","[CUP_US]","volume",.0002365882365000001,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"cup us; us cups","UCUM","Vol","Nonclinical","Unit defined as 1/2 US pint or 16 US tablespoons \u2248 236.59 mL, which is not the standard unit defined by the FDA of 240 mL - see [cup_m] (metric cup)","[tbs_us]","[TBS_US]","16",16,!1],[!1,"fluid ounce - metric","[foz_m]","[FOZ_M]","fluid volume",29999999999999997e-21,[3,0,0,0,0,0,0],"oz fl","us-volumes",!1,null,null,1,!1,!1,0,"metric fluid ounces; fozs m; fl ozs m","UCUM","Vol","Clinical","unit used only in the US for nutritional labelling, as set by the FDA","mL","ML","30",30,!1],[!1,"cup - US legal","[cup_m]","[CUP_M]","volume",.00023999999999999998,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"cup m; metric cups","UCUM","Vol","Clinical","standard unit equal to 240 mL used in the US for nutritional labelling, as defined by the FDA. Note that this is different from the US customary cup (236.59 mL) and the metric cup used in Commonwealth nations (250 mL).","mL","ML","240",240,!1],[!1,"teaspoon - metric","[tsp_m]","[TSP_M]","volume",49999999999999996e-22,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"tsp; t; metric teaspoons","UCUM","Vol","Clinical","standard unit used in the US and internationally","mL","mL","5",5,!1],[!1,"tablespoon - metric","[tbs_m]","[TBS_M]","volume",14999999999999999e-21,[3,0,0,0,0,0,0],null,"us-volumes",!1,null,null,1,!1,!1,0,"metric tablespoons; Tbs; tbsp; T; tbs m","UCUM","Vol","Clinical","standard unit used in the US and internationally","mL","mL","15",15,!1],[!1,"gallon- British","[gal_br]","[GAL_BR]","volume",.004546090000000001,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"imperial gallons, UK gallons; British gallons; br gal; imp gal","UCUM","Vol","Nonclinical","Used only in Great Britain and other Commonwealth countries","l","L","4.54609",4.54609,!1],[!1,"peck - British","[pk_br]","[PK_BR]","volume",.009092180000000002,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"imperial pecks; British pecks; br pk; imp pk","UCUM","Vol","Nonclinical","unit of dry volume rarely used today (can be used to measure volume of apples)","[gal_br]","[GAL_BR]","2",2,!1],[!1,"bushel - British","[bu_br]","[BU_BR]","volume",.03636872000000001,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"British bushels; imperial; br bsh; br bu; imp","UCUM","Vol","Obsolete","Historical unit of dry volume that is rarely used today","[pk_br]","[PK_BR]","4",4,!1],[!1,"quart - British","[qt_br]","[QT_BR]","volume",.0011365225000000002,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"British quarts; imperial quarts; br qts","UCUM","Vol","Clinical","Used only in Great Britain and other Commonwealth countries","[gal_br]/4","[GAL_BR]/4","1",1,!1],[!1,"pint - British","[pt_br]","[PT_BR]","volume",.0005682612500000001,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"British pints; imperial pints; pt br; br pt; imp pt; pt imp","UCUM","Vol","Clinical","Used only in Great Britain and other Commonwealth countries","[qt_br]/2","[QT_BR]/2","1",1,!1],[!1,"gill - British","[gil_br]","[GIL_BR]","volume",.00014206531250000003,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"imperial gills; British gills; imp gill, br gill","UCUM","Vol","Nonclinical","only used in the context of alcohol volume in Great Britain","[pt_br]/4","[PT_BR]/4","1",1,!1],[!1,"fluid ounce - British","[foz_br]","[FOZ_BR]","volume",28413062500000005e-21,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"British fluid ounces; Imperial fluid ounces; br fozs; imp fozs; br fl ozs","UCUM","Vol","Clinical","Used only in Great Britain and other Commonwealth countries","[gil_br]/5","[GIL_BR]/5","1",1,!1],[!1,"fluid dram - British","[fdr_br]","[FDR_BR]","volume",35516328125000006e-22,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"British fluid drams; fdr br","UCUM","Vol","Nonclinical","equal to 1/8 Imperial fluid ounce = 3.55 mL; used informally to mean small amount of liquor, especially Scotch whiskey","[foz_br]/8","[FOZ_BR]/8","1",1,!1],[!1,"minim - British","[min_br]","[MIN_BR]","volume",5919388020833334e-23,[3,0,0,0,0,0,0],null,"brit-volumes",!1,null,null,1,!1,!1,0,"min br; br min; \u264F br","UCUM","Vol","Obsolete","","[fdr_br]/60","[FDR_BR]/60","1",1,!1],[!1,"grain","[gr]","[GR]","mass",.06479891,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"gr; grains","UCUM","Mass","Nonclinical","an apothecary measure of mass rarely used today","mg","MG","64.79891",64.79891,!1],[!1,"pound","[lb_av]","[LB_AV]","mass",453.59237,[0,0,1,0,0,0,0],"lb","avoirdupois",!1,null,null,1,!1,!1,0,"avoirdupois pounds, international pounds; av lbs; pounds","UCUM","Mass","Clinical","standard unit used in the US and internationally","[gr]","[GR]","7000",7e3,!1],[!1,"pound force - US","[lbf_av]","[LBF_AV]","force",4448.2216152605,[1,-2,1,0,0,0,0],"lbf","const",!1,null,null,1,!1,!1,0,"lbfs; US lbf; US pound forces","UCUM","Force","Clinical","only rarely needed in health care - see [lb_av] which is the more common unit to express weight","[lb_av].[g]","[LB_AV].[G]","1",1,!1],[!1,"ounce","[oz_av]","[OZ_AV]","mass",28.349523125,[0,0,1,0,0,0,0],"oz","avoirdupois",!1,null,null,1,!1,!1,0,"ounces; international ounces; avoirdupois ounces; av ozs","UCUM","Mass","Clinical","standard unit used in the US and internationally","[lb_av]/16","[LB_AV]/16","1",1,!1],[!1,"Dram mass unit","[dr_av]","[DR_AV]","mass",1.7718451953125,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"Dram; drams avoirdupois; avoidupois dram; international dram","UCUM","Mass","Clinical","unit from the avoirdupois system, which is used in the US and internationally","[oz_av]/16","[OZ_AV]/16","1",1,!1],[!1,"short hundredweight","[scwt_av]","[SCWT_AV]","mass",45359.237,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"hundredweights; s cwt; scwt; avoirdupois","UCUM","Mass","Nonclinical","Used only in the US to equal 100 pounds","[lb_av]","[LB_AV]","100",100,!1],[!1,"long hundredweight","[lcwt_av]","[LCWT_AV]","mass",50802.345440000005,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"imperial hundredweights; imp cwt; lcwt; avoirdupois","UCUM","Mass","Obsolete","","[lb_av]","[LB_AV]","112",112,!1],[!1,"short ton - US","[ston_av]","[STON_AV]","mass",907184.74,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"ton; US tons; avoirdupois tons","UCUM","Mass","Clinical","Used only in the US","[scwt_av]","[SCWT_AV]","20",20,!1],[!1,"long ton - British","[lton_av]","[LTON_AV]","mass",1.0160469088000001e6,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"imperial tons; weight tons; British long tons; long ton avoirdupois","UCUM","Mass","Nonclinical","Used only in Great Britain and other Commonwealth countries","[lcwt_av]","[LCWT_AV]","20",20,!1],[!1,"stone - British","[stone_av]","[STONE_AV]","mass",6350.293180000001,[0,0,1,0,0,0,0],null,"avoirdupois",!1,null,null,1,!1,!1,0,"British stones; avoirdupois","UCUM","Mass","Nonclinical","Used primarily in the UK and Ireland to measure body weight","[lb_av]","[LB_AV]","14",14,!1],[!1,"pennyweight - troy","[pwt_tr]","[PWT_TR]","mass",1.5551738400000001,[0,0,1,0,0,0,0],null,"troy",!1,null,null,1,!1,!1,0,"dwt; denarius weights","UCUM","Mass","Obsolete","historical unit used to measure mass and cost of precious metals","[gr]","[GR]","24",24,!1],[!1,"ounce - troy","[oz_tr]","[OZ_TR]","mass",31.103476800000003,[0,0,1,0,0,0,0],null,"troy",!1,null,null,1,!1,!1,0,"troy ounces; tr ozs","UCUM","Mass","Nonclinical","unit of mass for precious metals and gemstones only","[pwt_tr]","[PWT_TR]","20",20,!1],[!1,"pound - troy","[lb_tr]","[LB_TR]","mass",373.2417216,[0,0,1,0,0,0,0],null,"troy",!1,null,null,1,!1,!1,0,"troy pounds; tr lbs","UCUM","Mass","Nonclinical","only used for weighing precious metals","[oz_tr]","[OZ_TR]","12",12,!1],[!1,"scruple","[sc_ap]","[SC_AP]","mass",1.2959782,[0,0,1,0,0,0,0],null,"apoth",!1,null,null,1,!1,!1,0,"scruples; sc ap","UCUM","Mass","Obsolete","","[gr]","[GR]","20",20,!1],[!1,"dram - apothecary","[dr_ap]","[DR_AP]","mass",3.8879346,[0,0,1,0,0,0,0],null,"apoth",!1,null,null,1,!1,!1,0,"\u0292; drachm; apothecaries drams; dr ap; dram ap","UCUM","Mass","Nonclinical","unit still used in the US occasionally to measure amount of drugs in pharmacies","[sc_ap]","[SC_AP]","3",3,!1],[!1,"ounce - apothecary","[oz_ap]","[OZ_AP]","mass",31.1034768,[0,0,1,0,0,0,0],null,"apoth",!1,null,null,1,!1,!1,0,"apothecary ounces; oz ap; ap ozs; ozs ap","UCUM","Mass","Obsolete","","[dr_ap]","[DR_AP]","8",8,!1],[!1,"pound - apothecary","[lb_ap]","[LB_AP]","mass",373.2417216,[0,0,1,0,0,0,0],null,"apoth",!1,null,null,1,!1,!1,0,"apothecary pounds; apothecaries pounds; ap lb; lb ap; ap lbs; lbs ap","UCUM","Mass","Obsolete","","[oz_ap]","[OZ_AP]","12",12,!1],[!1,"ounce - metric","[oz_m]","[OZ_M]","mass",28,[0,0,1,0,0,0,0],null,"apoth",!1,null,null,1,!1,!1,0,"metric ounces; m ozs","UCUM","Mass","Clinical","see [oz_av] (the avoirdupois ounce) for the standard ounce used internationally; [oz_m] is equal to 28 grams and is based on the apothecaries' system of mass units which is used in some US pharmacies. ","g","g","28",28,!1],[!1,"line","[lne]","[LNE]","length",.002116666666666667,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"British lines; br L; L; l","UCUM","Len","Obsolete","","[in_i]/12","[IN_I]/12","1",1,!1],[!1,"point (typography)","[pnt]","[PNT]","length",.0003527777777777778,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"DTP points; desktop publishing point; pt; pnt","UCUM","Len","Nonclinical","typography unit for typesetter's length","[lne]/6","[LNE]/6","1",1,!1],[!1,"pica (typography)","[pca]","[PCA]","length",.004233333333333334,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"picas","UCUM","Len","Nonclinical","typography unit for typesetter's length","[pnt]","[PNT]","12",12,!1],[!1,"Printer's point (typography)","[pnt_pr]","[PNT_PR]","length",.00035145980000000004,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"pnt pr","UCUM","Len","Nonclinical","typography unit for typesetter's length","[in_i]","[IN_I]","0.013837",.013837,!1],[!1,"Printer's pica (typography)","[pca_pr]","[PCA_PR]","length",.004217517600000001,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"pca pr; Printer's picas","UCUM","Len","Nonclinical","typography unit for typesetter's length","[pnt_pr]","[PNT_PR]","12",12,!1],[!1,"pied","[pied]","[PIED]","length",.3248,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"pieds du roi; Paris foot; royal; French; feet","UCUM","Len","Obsolete","","cm","CM","32.48",32.48,!1],[!1,"pouce","[pouce]","[POUCE]","length",.027066666666666666,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"historical French inches; French royal inches","UCUM","Len","Obsolete","","[pied]/12","[PIED]/12","1",1,!1],[!1,"ligne","[ligne]","[LIGNE]","length",.0022555555555555554,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"Paris lines; lignes","UCUM","Len","Obsolete","","[pouce]/12","[POUCE]/12","1",1,!1],[!1,"didot","[didot]","[DIDOT]","length",.0003759259259259259,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"Didot point; dd; Didots Point; didots; points","UCUM","Len","Obsolete","typography unit for typesetter's length","[ligne]/6","[LIGNE]/6","1",1,!1],[!1,"cicero","[cicero]","[CICERO]","length",.004511111111111111,[1,0,0,0,0,0,0],null,"typeset",!1,null,null,1,!1,!1,0,"Didot's pica; ciceros; picas","UCUM","Len","Obsolete","typography unit for typesetter's length","[didot]","[DIDOT]","12",12,!1],[!1,"degrees Fahrenheit","[degF]","[DEGF]","temperature",.5555555555555556,[0,0,0,0,1,0,0],"\xB0F","heat",!1,null,"degF",1,!0,!1,0,"\xB0F; deg F","UCUM","Temp","Clinical","","K",null,null,.5555555555555556,!1],[!1,"degrees Rankine","[degR]","[degR]","temperature",.5555555555555556,[0,0,0,0,1,0,0],"\xB0R","heat",!1,null,null,1,!1,!1,0,"\xB0R; \xB0Ra; Rankine","UCUM","Temp","Obsolete","Replaced by Kelvin","K/9","K/9","5",5,!1],[!1,"degrees R\xE9aumur","[degRe]","[degRe]","temperature",1.25,[0,0,0,0,1,0,0],"\xB0R\xE9","heat",!1,null,"degRe",1,!0,!1,0,"\xB0R\xE9, \xB0Re, \xB0r; R\xE9aumur; degree Reaumur; Reaumur","UCUM","Temp","Obsolete","replaced by Celsius","K",null,null,1.25,!1],[!1,"calorie at 15\xB0C","cal_[15]","CAL_[15]","energy",4185.8,[2,-2,1,0,0,0,0],"cal15\xB0C","heat",!0,null,null,1,!1,!1,0,"calorie 15 C; cals 15 C; calories at 15 C","UCUM","Enrg","Nonclinical","equal to 4.1855 joules; calorie most often used in engineering","J","J","4.18580",4.1858,!1],[!1,"calorie at 20\xB0C","cal_[20]","CAL_[20]","energy",4181.9,[2,-2,1,0,0,0,0],"cal20\xB0C","heat",!0,null,null,1,!1,!1,0,"calorie 20 C; cal 20 C; calories at 20 C","UCUM","Enrg","Clinical","equal to 4.18190 joules. ","J","J","4.18190",4.1819,!1],[!1,"mean calorie","cal_m","CAL_M","energy",4190.0199999999995,[2,-2,1,0,0,0,0],"calm","heat",!0,null,null,1,!1,!1,0,"mean cals; mean calories","UCUM","Enrg","Clinical","equal to 4.19002 joules. ","J","J","4.19002",4.19002,!1],[!1,"international table calorie","cal_IT","CAL_IT","energy",4186.8,[2,-2,1,0,0,0,0],"calIT","heat",!0,null,null,1,!1,!1,0,"calories IT; IT cals; international steam table calories","UCUM","Enrg","Nonclinical","used in engineering steam tables and defined as 1/860 international watt-hour; equal to 4.1868 joules","J","J","4.1868",4.1868,!1],[!1,"thermochemical calorie","cal_th","CAL_TH","energy",4184,[2,-2,1,0,0,0,0],"calth","heat",!0,null,null,1,!1,!1,0,"thermochemical calories; th cals","UCUM","Enrg","Clinical","equal to 4.184 joules; used as the unit in medicine and biochemistry (equal to cal)","J","J","4.184",4.184,!1],[!1,"calorie","cal","CAL","energy",4184,[2,-2,1,0,0,0,0],"cal","heat",!0,null,null,1,!1,!1,0,"gram calories; small calories","UCUM","Enrg","Clinical","equal to 4.184 joules (the same value as the thermochemical calorie, which is the most common calorie used in medicine and biochemistry)","cal_th","CAL_TH","1",1,!1],[!1,"nutrition label Calories","[Cal]","[CAL]","energy",4184e3,[2,-2,1,0,0,0,0],"Cal","heat",!1,null,null,1,!1,!1,0,"food calories; Cal; kcal","UCUM","Eng","Clinical","","kcal_th","KCAL_TH","1",1,!1],[!1,"British thermal unit at 39\xB0F","[Btu_39]","[BTU_39]","energy",1059670,[2,-2,1,0,0,0,0],"Btu39\xB0F","heat",!1,null,null,1,!1,!1,0,"BTU 39F; BTU 39 F; B.T.U. 39 F; B.Th.U. 39 F; BThU 39 F; British thermal units","UCUM","Eng","Nonclinical","equal to 1.05967 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.05967",1.05967,!1],[!1,"British thermal unit at 59\xB0F","[Btu_59]","[BTU_59]","energy",1054800,[2,-2,1,0,0,0,0],"Btu59\xB0F","heat",!1,null,null,1,!1,!1,0,"BTU 59 F; BTU 59F; B.T.U. 59 F; B.Th.U. 59 F; BThU 59F; British thermal units","UCUM","Eng","Nonclinical","equal to 1.05480 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.05480",1.0548,!1],[!1,"British thermal unit at 60\xB0F","[Btu_60]","[BTU_60]","energy",1054680,[2,-2,1,0,0,0,0],"Btu60\xB0F","heat",!1,null,null,1,!1,!1,0,"BTU 60 F; BTU 60F; B.T.U. 60 F; B.Th.U. 60 F; BThU 60 F; British thermal units 60 F","UCUM","Eng","Nonclinical","equal to 1.05468 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.05468",1.05468,!1],[!1,"mean British thermal unit","[Btu_m]","[BTU_M]","energy",1055870,[2,-2,1,0,0,0,0],"Btum","heat",!1,null,null,1,!1,!1,0,"BTU mean; B.T.U. mean; B.Th.U. mean; BThU mean; British thermal units mean; ","UCUM","Eng","Nonclinical","equal to 1.05587 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.05587",1.05587,!1],[!1,"international table British thermal unit","[Btu_IT]","[BTU_IT]","energy",105505585262e-5,[2,-2,1,0,0,0,0],"BtuIT","heat",!1,null,null,1,!1,!1,0,"BTU IT; B.T.U. IT; B.Th.U. IT; BThU IT; British thermal units IT","UCUM","Eng","Nonclinical","equal to 1.055 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.05505585262",1.05505585262,!1],[!1,"thermochemical British thermal unit","[Btu_th]","[BTU_TH]","energy",1054350,[2,-2,1,0,0,0,0],"Btuth","heat",!1,null,null,1,!1,!1,0,"BTU Th; B.T.U. Th; B.Th.U. Th; BThU Th; thermochemical British thermal units","UCUM","Eng","Nonclinical","equal to 1.054350 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","kJ","kJ","1.054350",1.05435,!1],[!1,"British thermal unit","[Btu]","[BTU]","energy",1054350,[2,-2,1,0,0,0,0],"btu","heat",!1,null,null,1,!1,!1,0,"BTU; B.T.U. ; B.Th.U.; BThU; British thermal units","UCUM","Eng","Nonclinical","equal to the thermochemical British thermal unit equal to 1.054350 kJ; used as a measure of power in the electric power, steam generation, heating, and air conditioning industries","[Btu_th]","[BTU_TH]","1",1,!1],[!1,"horsepower - mechanical","[HP]","[HP]","power",745699.8715822703,[2,-3,1,0,0,0,0],null,"heat",!1,null,null,1,!1,!1,0,"imperial horsepowers","UCUM","EngRat","Nonclinical","refers to mechanical horsepower, which is unit used to measure engine power primarily in the US. ","[ft_i].[lbf_av]/s","[FT_I].[LBF_AV]/S","550",550,!1],[!1,"tex","tex","TEX","linear mass density (of textile thread)",.001,[-1,0,1,0,0,0,0],"tex","heat",!0,null,null,1,!1,!1,0,"linear mass density; texes","UCUM","","Clinical","unit of linear mass density for fibers equal to gram per 1000 meters","g/km","G/KM","1",1,!1],[!1,"Denier (linear mass density)","[den]","[DEN]","linear mass density (of textile thread)",.0001111111111111111,[-1,0,1,0,0,0,0],"den","heat",!1,null,null,1,!1,!1,0,"den; deniers","UCUM","","Nonclinical","equal to the mass in grams per 9000 meters of the fiber (1 denier = 1 strand of silk)","g/9/km","G/9/KM","1",1,!1],[!1,"meter of water column","m[H2O]","M[H2O]","pressure",9806650,[-1,-2,1,0,0,0,0],"m\xA0HO2","clinical",!0,null,null,1,!1,!1,0,"mH2O; m H2O; meters of water column; metres; pressure","UCUM","Pres","Clinical","","kPa","KPAL","980665e-5",9.80665,!1],[!1,"meter of mercury column","m[Hg]","M[HG]","pressure",133322e3,[-1,-2,1,0,0,0,0],"m\xA0Hg","clinical",!0,null,null,1,!1,!1,0,"mHg; m Hg; meters of mercury column; metres; pressure","UCUM","Pres","Clinical","","kPa","KPAL","133.3220",133.322,!1],[!1,"inch of water column","[in_i'H2O]","[IN_I'H2O]","pressure",249088.91000000003,[-1,-2,1,0,0,0,0],"in\xA0HO2","clinical",!1,null,null,1,!1,!1,0,"inches WC; inAq; in H2O; inch of water gauge; iwg; pressure","UCUM","Pres","Clinical","unit of pressure, especially in respiratory and ventilation care","m[H2O].[in_i]/m","M[H2O].[IN_I]/M","1",1,!1],[!1,"inch of mercury column","[in_i'Hg]","[IN_I'HG]","pressure",3.3863788000000003e6,[-1,-2,1,0,0,0,0],"in\xA0Hg","clinical",!1,null,null,1,!1,!1,0,"inHg; in Hg; pressure; inches","UCUM","Pres","Clinical","unit of pressure used in US to measure barometric pressure and occasionally blood pressure (see mm[Hg] for unit used internationally)","m[Hg].[in_i]/m","M[HG].[IN_I]/M","1",1,!1],[!1,"peripheral vascular resistance unit","[PRU]","[PRU]","fluid resistance",133322e6,[-4,-1,1,0,0,0,0],"P.R.U.","clinical",!1,null,null,1,!1,!1,0,"peripheral vascular resistance units; peripheral resistance unit; peripheral resistance units; PRU","UCUM","FldResist","Clinical","used to assess blood flow in the capillaries; equal to 1 mmH.min/mL = 133.3 Pa\xB7min/mL","mm[Hg].s/ml","MM[HG].S/ML","1",1,!1],[!1,"Wood unit","[wood'U]","[WOOD'U]","fluid resistance",799932e4,[-4,-1,1,0,0,0,0],"Wood U.","clinical",!1,null,null,1,!1,!1,0,"hybrid reference units; HRU; mmHg.min/L; vascular resistance","UCUM","Pres","Clinical","simplified unit of measurement for for measuring pulmonary vascular resistance that uses pressure; equal to mmHg.min/L","mm[Hg].min/L","MM[HG].MIN/L","1",1,!1],[!1,"diopter (lens)","[diop]","[DIOP]","refraction of a lens",1,[1,0,0,0,0,0,0],"dpt","clinical",!1,null,"inv",1,!1,!1,0,"diopters; diop; dioptre; dpt; refractive power","UCUM","InvLen","Clinical","unit of optical power of lens represented by inverse meters (m^-1)","m","/M","1",1,!1],[!1,"prism diopter (magnifying power)","[p'diop]","[P'DIOP]","refraction of a prism",1,[0,0,0,1,0,0,0],"PD","clinical",!1,null,"tanTimes100",1,!0,!1,0,"diopters; dioptres; p diops; pdiop; dpt; pdptr; \u0394; cm/m; centimeter per meter; centimetre; metre","UCUM","Angle","Clinical","unit for prism correction in eyeglass prescriptions","rad",null,null,1,!1],[!1,"percent of slope","%[slope]","%[SLOPE]","slope",.017453292519943295,[0,0,0,1,0,0,0],"%","clinical",!1,null,"100tan",1,!0,!1,0,"% slope; %slope; percents slopes","UCUM","VelFr; ElpotRatFr; VelRtoFr; AccelFr","Clinical","","deg",null,null,1,!1],[!1,"mesh","[mesh_i]","[MESH_I]","lineic number",.025400000000000002,[1,0,0,0,0,0,0],null,"clinical",!1,null,"inv",1,!1,!1,0,"meshes","UCUM","NLen (lineic number)","Clinical","traditional unit of length defined as the number of strands or particles per inch","[in_i]","/[IN_I]","1",1,!1],[!1,"French (catheter gauge) ","[Ch]","[CH]","gauge of catheters",.0003333333333333333,[1,0,0,0,0,0,0],"Ch","clinical",!1,null,null,1,!1,!1,0,"Charri\xE8res, French scales; French gauges; Fr, Fg, Ga, FR, Ch","UCUM","Len; Circ; Diam","Clinical","","mm/3","MM/3","1",1,!1],[!1,"drop - metric (1/20 mL)","[drp]","[DRP]","volume",5e-8,[3,0,0,0,0,0,0],"drp","clinical",!1,null,null,1,!1,!1,0,"drop dosing units; metric drops; gtt","UCUM","Vol","Clinical","standard unit used in the US and internationally for clinical medicine but note that although [drp] is defined as 1/20 milliliter, in practice, drop sizes will vary due to external factors","ml/20","ML/20","1",1,!1],[!1,"Hounsfield unit","[hnsf'U]","[HNSF'U]","x-ray attenuation",1,[0,0,0,0,0,0,0],"HF","clinical",!1,null,null,1,!1,!1,0,"HU; units","UCUM","","Clinical","used to measure X-ray attenuation, especially in CT scans.","1","1","1",1,!1],[!1,"Metabolic Equivalent of Task ","[MET]","[MET]","metabolic cost of physical activity",5833333333333334e-26,[3,-1,-1,0,0,0,0],"MET","clinical",!1,null,null,1,!1,!1,0,"metabolic equivalents","UCUM","RelEngRat","Clinical","unit used to measure rate of energy expenditure per power in treadmill and other functional tests","mL/min/kg","ML/MIN/KG","3.5",3.5,!1],[!1,"homeopathic potency of decimal series (retired)","[hp'_X]","[HP'_X]","homeopathic potency (retired)",1,[0,0,0,0,0,0,0],"X","clinical",!1,null,"hpX",1,!0,!1,0,null,"UCUM",null,null,null,"1",null,null,1,!1],[!1,"homeopathic potency of centesimal series (retired)","[hp'_C]","[HP'_C]","homeopathic potency (retired)",1,[0,0,0,0,0,0,0],"C","clinical",!1,null,"hpC",1,!0,!1,0,null,"UCUM",null,null,null,"1",null,null,1,!1],[!1,"homeopathic potency of millesimal series (retired)","[hp'_M]","[HP'_M]","homeopathic potency (retired)",1,[0,0,0,0,0,0,0],"M","clinical",!1,null,"hpM",1,!0,!1,0,null,"UCUM",null,null,null,"1",null,null,1,!1],[!1,"homeopathic potency of quintamillesimal series (retired)","[hp'_Q]","[HP'_Q]","homeopathic potency (retired)",1,[0,0,0,0,0,0,0],"Q","clinical",!1,null,"hpQ",1,!0,!1,0,null,"UCUM",null,null,null,"1",null,null,1,!1],[!1,"homeopathic potency of decimal hahnemannian series","[hp_X]","[HP_X]","homeopathic potency (Hahnemann)",1,[0,0,0,0,0,0,0],"X","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of centesimal hahnemannian series","[hp_C]","[HP_C]","homeopathic potency (Hahnemann)",1,[0,0,0,0,0,0,0],"C","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of millesimal hahnemannian series","[hp_M]","[HP_M]","homeopathic potency (Hahnemann)",1,[0,0,0,0,0,0,0],"M","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of quintamillesimal hahnemannian series","[hp_Q]","[HP_Q]","homeopathic potency (Hahnemann)",1,[0,0,0,0,0,0,0],"Q","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of decimal korsakovian series","[kp_X]","[KP_X]","homeopathic potency (Korsakov)",1,[0,0,0,0,0,0,0],"X","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of centesimal korsakovian series","[kp_C]","[KP_C]","homeopathic potency (Korsakov)",1,[0,0,0,0,0,0,0],"C","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of millesimal korsakovian series","[kp_M]","[KP_M]","homeopathic potency (Korsakov)",1,[0,0,0,0,0,0,0],"M","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"homeopathic potency of quintamillesimal korsakovian series","[kp_Q]","[KP_Q]","homeopathic potency (Korsakov)",1,[0,0,0,0,0,0,0],"Q","clinical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"equivalent","eq","EQ","amount of substance",60221367e16,[0,0,0,0,0,0,0],"eq","chemical",!0,null,null,1,!1,!1,1,"equivalents","UCUM","Sub","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"osmole","osm","OSM","amount of substance (dissolved particles)",60221367e16,[0,0,0,0,0,0,0],"osm","chemical",!0,null,null,1,!1,!1,1,"osmoles; osmols","UCUM","Osmol","Clinical","the number of moles of solute that contribute to the osmotic pressure of a solution","mol","MOL","1",1,!1],[!1,"pH","[pH]","[PH]","acidity",60221366999999994e10,[-3,0,0,0,0,0,0],"pH","chemical",!1,null,"pH",1,!0,!1,0,"pH scale","UCUM","LogCnc","Clinical","Log concentration of H+","mol/l",null,null,1,!1],[!1,"gram percent","g%","G%","mass concentration",1e4,[-3,0,1,0,0,0,0],"g%","chemical",!0,null,null,1,!1,!1,0,"gram %; gram%; grams per deciliter; g/dL; gm per dL; gram percents","UCUM","MCnc","Clinical","equivalent to unit gram per deciliter (g/dL), a unit often used in medical tests to represent solution concentrations","g/dl","G/DL","1",1,!1],[!1,"Svedberg unit","[S]","[S]","sedimentation coefficient",1e-13,[0,1,0,0,0,0,0],"S","chemical",!1,null,null,1,!1,!1,0,"Sv; 10^-13 seconds; 100 fs; 100 femtoseconds","UCUM","Time","Clinical","unit of time used in measuring particle's sedimentation rate, usually after centrifugation. ","s","10*-13.S","1",1e-13,!1],[!1,"high power field (microscope)","[HPF]","[HPF]","view area in microscope",1,[0,0,0,0,0,0,0],"HPF","chemical",!1,null,null,1,!1,!1,0,"HPF","UCUM","Area","Clinical",`area visible under the maximum magnification power of the objective in microscopy (usually 400x) +`,"1","1","1",1,!1],[!1,"low power field (microscope)","[LPF]","[LPF]","view area in microscope",1,[0,0,0,0,0,0,0],"LPF","chemical",!1,null,null,1,!1,!1,0,"LPF; fields","UCUM","Area","Clinical",`area visible under the low magnification of the objective in microscopy (usually 100 x) +`,"1","1","100",100,!1],[!1,"katal","kat","KAT","catalytic activity",60221367e16,[0,-1,0,0,0,0,0],"kat","chemical",!0,null,null,1,!1,!1,1,"mol/secs; moles per second; mol*sec-1; mol*s-1; mol.s-1; katals; catalytic activity; enzymatic; enzyme units; activities","UCUM","CAct","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"enzyme unit","U","U","catalytic activity",100368945e8,[0,-1,0,0,0,0,0],"U","chemical",!0,null,null,1,!1,!1,1,"micromoles per minute; umol/min; umol per minute; umol min-1; enzymatic activity; enzyme activity","UCUM","CAct","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"international unit - arbitrary","[iU]","[IU]","arbitrary",1,[0,0,0,0,0,0,0],"IU","chemical",!0,null,null,1,!1,!0,0,"international units; IE; F2","UCUM","Arb","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","1","1","1",1,!1],[!1,"international unit - arbitrary","[IU]","[IU]","arbitrary",1,[0,0,0,0,0,0,0],"i.U.","chemical",!0,null,null,1,!1,!0,0,"international units; IE; F2","UCUM","Arb","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"arbitary unit","[arb'U]","[ARB'U]","arbitrary",1,[0,0,0,0,0,0,0],"arb. U","chemical",!1,null,null,1,!1,!0,0,"arbitary units; arb units; arbU","UCUM","Arb","Clinical","relative unit of measurement to show the ratio of test measurement to reference measurement","1","1","1",1,!1],[!1,"United States Pharmacopeia unit","[USP'U]","[USP'U]","arbitrary",1,[0,0,0,0,0,0,0],"U.S.P.","chemical",!1,null,null,1,!1,!0,0,"USP U; USP'U","UCUM","Arb","Clinical","a dose unit to express potency of drugs and vitamins defined by the United States Pharmacopoeia; usually 1 USP = 1 IU","1","1","1",1,!1],[!1,"GPL unit","[GPL'U]","[GPL'U]","biologic activity of anticardiolipin IgG",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"GPL Units; GPL U; IgG anticardiolipin units; IgG Phospholipid","UCUM","ACnc; AMass","Clinical","Units for an antiphospholipid test","1","1","1",1,!1],[!1,"MPL unit","[MPL'U]","[MPL'U]","biologic activity of anticardiolipin IgM",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"MPL units; MPL U; MPL'U; IgM anticardiolipin units; IgM Phospholipid Units ","UCUM","ACnc","Clinical","units for antiphospholipid test","1","1","1",1,!1],[!1,"APL unit","[APL'U]","[APL'U]","biologic activity of anticardiolipin IgA",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"APL units; APL U; IgA anticardiolipin; IgA Phospholipid; biologic activity of","UCUM","AMass; ACnc","Clinical","Units for an anti phospholipid syndrome test","1","1","1",1,!1],[!1,"Bethesda unit","[beth'U]","[BETH'U]","biologic activity of factor VIII inhibitor",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"BU","UCUM","ACnc","Clinical","measures of blood coagulation inhibitior for many blood factors","1","1","1",1,!1],[!1,"anti factor Xa unit","[anti'Xa'U]","[ANTI'XA'U]","biologic activity of factor Xa inhibitor (heparin)",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"units","UCUM","ACnc","Clinical","[anti'Xa'U] unit is equivalent to and can be converted to IU/mL. ","1","1","1",1,!1],[!1,"Todd unit","[todd'U]","[TODD'U]","biologic activity antistreptolysin O",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"units","UCUM","InvThres; RtoThres","Clinical","the unit for the results of the testing for antistreptolysin O (ASO)","1","1","1",1,!1],[!1,"Dye unit","[dye'U]","[DYE'U]","biologic activity of amylase",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"units","UCUM","CCnc","Obsolete","equivalent to the Somogyi unit, which is an enzyme unit for amylase but better to use U, the standard enzyme unit for measuring catalytic activity","1","1","1",1,!1],[!1,"Somogyi unit","[smgy'U]","[SMGY'U]","biologic activity of amylase",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"Somogyi units; smgy U","UCUM","CAct","Clinical","measures the enzymatic activity of amylase in blood serum - better to use base units mg/mL ","1","1","1",1,!1],[!1,"Bodansky unit","[bdsk'U]","[BDSK'U]","biologic activity of phosphatase",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"","UCUM","ACnc","Obsolete","Enzyme unit specific to alkaline phosphatase - better to use standard enzyme unit of U","1","1","1",1,!1],[!1,"King-Armstrong unit","[ka'U]","[KA'U]","biologic activity of phosphatase",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"King-Armstrong Units; King units","UCUM","AMass","Obsolete","enzyme units for acid phosphatase - better to use enzyme unit [U]","1","1","1",1,!1],[!1,"Kunkel unit","[knk'U]","[KNK'U]","arbitrary biologic activity",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,null,"UCUM",null,null,null,"1","1","1",1,!1],[!1,"Mac Lagan unit","[mclg'U]","[MCLG'U]","arbitrary biologic activity",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"galactose index; galactose tolerance test; thymol turbidity test unit; mclg U; units; indexes","UCUM","ACnc","Obsolete","unit for liver tests - previously used in thymol turbidity tests for liver disease diagnoses, and now is sometimes referred to in the oral galactose tolerance test","1","1","1",1,!1],[!1,"tuberculin unit","[tb'U]","[TB'U]","biologic activity of tuberculin",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"TU; units","UCUM","Arb","Clinical","amount of tuberculin antigen -usually in reference to a TB skin test ","1","1","1",1,!1],[!1,"50% cell culture infectious dose","[CCID_50]","[CCID_50]","biologic activity (infectivity) of an infectious agent preparation",1,[0,0,0,0,0,0,0],"CCID50","chemical",!1,null,null,1,!1,!0,0,"CCID50; 50% cell culture infective doses","UCUM","NumThres","Clinical","","1","1","1",1,!1],[!1,"50% tissue culture infectious dose","[TCID_50]","[TCID_50]","biologic activity (infectivity) of an infectious agent preparation",1,[0,0,0,0,0,0,0],"TCID50","chemical",!1,null,null,1,!1,!0,0,"TCID50; 50% tissue culture infective dose","UCUM","NumThres","Clinical","","1","1","1",1,!1],[!1,"50% embryo infectious dose","[EID_50]","[EID_50]","biologic activity (infectivity) of an infectious agent preparation",1,[0,0,0,0,0,0,0],"EID50","chemical",!1,null,null,1,!1,!0,0,"EID50; 50% embryo infective doses; EID50 Egg Infective Dosage","UCUM","thresNum","Clinical","","1","1","1",1,!1],[!1,"plaque forming units","[PFU]","[PFU]","amount of an infectious agent",1,[0,0,0,0,0,0,0],"PFU","chemical",!1,null,null,1,!1,!0,0,"PFU","UCUM","ACnc","Clinical","tests usually report unit as number of PFU per unit volume","1","1","1",1,!1],[!1,"focus forming units (cells)","[FFU]","[FFU]","amount of an infectious agent",1,[0,0,0,0,0,0,0],"FFU","chemical",!1,null,null,1,!1,!0,0,"FFU","UCUM","EntNum","Clinical","","1","1","1",1,!1],[!1,"colony forming units","[CFU]","[CFU]","amount of a proliferating organism",1,[0,0,0,0,0,0,0],"CFU","chemical",!1,null,null,1,!1,!0,0,"CFU","UCUM","Num","Clinical","","1","1","1",1,!1],[!1,"index of reactivity (allergen)","[IR]","[IR]","amount of an allergen callibrated through in-vivo testing using the Stallergenes\xAE method.",1,[0,0,0,0,0,0,0],"IR","chemical",!1,null,null,1,!1,!0,0,"IR; indexes","UCUM","Acnc","Clinical","amount of an allergen callibrated through in-vivo testing using the Stallergenes method. Usually reported in tests as IR/mL","1","1","1",1,!1],[!1,"bioequivalent allergen unit","[BAU]","[BAU]","amount of an allergen callibrated through in-vivo testing based on the ID50EAL method of (intradermal dilution for 50mm sum of erythema diameters",1,[0,0,0,0,0,0,0],"BAU","chemical",!1,null,null,1,!1,!0,0,"BAU; Bioequivalent Allergy Units; bioequivalent allergen units","UCUM","Arb","Clinical","","1","1","1",1,!1],[!1,"allergy unit","[AU]","[AU]","procedure defined amount of an allergen using some reference standard",1,[0,0,0,0,0,0,0],"AU","chemical",!1,null,null,1,!1,!0,0,"allergy units; allergen units; AU","UCUM","Arb","Clinical","Most standard test allergy units are reported as [IU] or as %. ","1","1","1",1,!1],[!1,"allergen unit for Ambrosia artemisiifolia","[Amb'a'1'U]","[AMB'A'1'U]","procedure defined amount of the major allergen of ragweed.",1,[0,0,0,0,0,0,0],"Amb a 1 U","chemical",!1,null,null,1,!1,!0,0,"Amb a 1 unit; Antigen E; AgE U; allergen units","UCUM","Arb","Clinical","Amb a 1 is the major allergen in short ragweed, and can be converted Bioequivalent allergen units (BAU) where 350 Amb a 1 U/mL = 100,000 BAU/mL","1","1","1",1,!1],[!1,"protein nitrogen unit (allergen testing)","[PNU]","[PNU]","procedure defined amount of a protein substance",1,[0,0,0,0,0,0,0],"PNU","chemical",!1,null,null,1,!1,!0,0,"protein nitrogen units; PNU","UCUM","Mass","Clinical","defined as 0.01 ug of phosphotungstic acid-precipitable protein nitrogen. Being replaced by bioequivalent allergy units (BAU).","1","1","1",1,!1],[!1,"Limit of flocculation","[Lf]","[LF]","procedure defined amount of an antigen substance",1,[0,0,0,0,0,0,0],"Lf","chemical",!1,null,null,1,!1,!0,0,"Lf doses","UCUM","Arb","Clinical","the antigen content forming 1:1 ratio against 1 unit of antitoxin","1","1","1",1,!1],[!1,"D-antigen unit (polio)","[D'ag'U]","[D'AG'U]","procedure defined amount of a poliomyelitis d-antigen substance",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"DAgU; units","UCUM","Acnc","Clinical","unit of potency of poliovirus vaccine used for poliomyelitis prevention reported as D antigen units/mL. The unit is poliovirus type-specific.","1","1","1",1,!1],[!1,"fibrinogen equivalent units","[FEU]","[FEU]","amount of fibrinogen broken down into the measured d-dimers",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"FEU","UCUM","MCnc","Clinical","Note both the FEU and DDU units are used to report D-dimer measurements. 1 DDU = 1/2 FFU","1","1","1",1,!1],[!1,"ELISA unit","[ELU]","[ELU]","arbitrary ELISA unit",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"Enzyme-Linked Immunosorbent Assay Units; ELU; EL. U","UCUM","ACnc","Clinical","","1","1","1",1,!1],[!1,"Ehrlich units (urobilinogen)","[EU]","[EU]","Ehrlich unit",1,[0,0,0,0,0,0,0],null,"chemical",!1,null,null,1,!1,!0,0,"EU/dL; mg{urobilinogen}/dL","UCUM","ACnc","Clinical","","1","1","1",1,!1],[!1,"neper","Np","NEP","level",1,[0,0,0,0,0,0,0],"Np","levels",!0,null,"ln",1,!0,!1,0,"nepers","UCUM","LogRto","Clinical","logarithmic unit for ratios of measurements of physical field and power quantities, such as gain and loss of electronic signals","1",null,null,1,!1],[!1,"bel","B","B","level",1,[0,0,0,0,0,0,0],"B","levels",!0,null,"lg",1,!0,!1,0,"bels","UCUM","LogRto","Clinical","Logarithm of the ratio of power- or field-type quantities; usually expressed in decibels ","1",null,null,1,!1],[!1,"bel sound pressure","B[SPL]","B[SPL]","pressure level",.019999999999999997,[-1,-2,1,0,0,0,0],"B(SPL)","levels",!0,null,"lgTimes2",1,!0,!1,0,"bel SPL; B SPL; sound pressure bels","UCUM","LogRto","Clinical","used to measure sound level in acoustics","Pa",null,null,19999999999999998e-21,!1],[!1,"bel volt","B[V]","B[V]","electric potential level",1e3,[2,-2,1,0,0,-1,0],"B(V)","levels",!0,null,"lgTimes2",1,!0,!1,0,"bel V; B V; volts bels","UCUM","LogRtoElp","Clinical","used to express power gain in electrical circuits","V",null,null,1,!1],[!1,"bel millivolt","B[mV]","B[MV]","electric potential level",1,[2,-2,1,0,0,-1,0],"B(mV)","levels",!0,null,"lgTimes2",1,!0,!1,0,"bel mV; B mV; millivolt bels; 10^-3V bels; 10*-3V ","UCUM","LogRtoElp","Clinical","used to express power gain in electrical circuits","mV",null,null,1,!1],[!1,"bel microvolt","B[uV]","B[UV]","electric potential level",.001,[2,-2,1,0,0,-1,0],"B(\u03BCV)","levels",!0,null,"lgTimes2",1,!0,!1,0,"bel uV; B uV; microvolts bels; 10^-6V bel; 10*-6V bel","UCUM","LogRto","Clinical","used to express power gain in electrical circuits","uV",null,null,1,!1],[!1,"bel 10 nanovolt","B[10.nV]","B[10.NV]","electric potential level",10000000000000003e-21,[2,-2,1,0,0,-1,0],"B(10 nV)","levels",!0,null,"lgTimes2",1,!0,!1,0,"bel 10 nV; B 10 nV; 10 nanovolts bels","UCUM","LogRtoElp","Clinical","used to express power gain in electrical circuits","nV",null,null,10,!1],[!1,"bel watt","B[W]","B[W]","power level",1e3,[2,-3,1,0,0,0,0],"B(W)","levels",!0,null,"lg",1,!0,!1,0,"bel W; b W; b Watt; Watts bels","UCUM","LogRto","Clinical","used to express power","W",null,null,1,!1],[!1,"bel kilowatt","B[kW]","B[KW]","power level",1e6,[2,-3,1,0,0,0,0],"B(kW)","levels",!0,null,"lg",1,!0,!1,0,"bel kW; B kW; kilowatt bel; kW bel; kW B","UCUM","LogRto","Clinical","used to express power","kW",null,null,1,!1],[!1,"stere","st","STR","volume",1,[3,0,0,0,0,0,0],"st","misc",!0,null,null,1,!1,!1,0,"st\xE8re; m3; cubic meter; m^3; meters cubed; metre","UCUM","Vol","Nonclinical","equal to one cubic meter, usually used for measuring firewood","m3","M3","1",1,!1],[!1,"\xC5ngstr\xF6m","Ao","AO","length",10000000000000002e-26,[1,0,0,0,0,0,0],"\xC5","misc",!1,null,null,1,!1,!1,0,"\xC5; Angstroms; Ao; \xC5ngstr\xF6ms","UCUM","Len","Clinical","equal to 10^-10 meters; used to express wave lengths and atom scaled differences ","nm","NM","0.1",.1,!1],[!1,"barn","b","BRN","action area",10000000000000001e-44,[2,0,0,0,0,0,0],"b","misc",!1,null,null,1,!1,!1,0,"barns","UCUM","Area","Clinical","used in high-energy physics to express cross-sectional areas","fm2","FM2","100",100,!1],[!1,"technical atmosphere","att","ATT","pressure",98066500,[-1,-2,1,0,0,0,0],"at","misc",!1,null,null,1,!1,!1,0,"at; tech atm; tech atmosphere; kgf/cm2; atms; atmospheres","UCUM","Pres","Obsolete","non-SI unit of pressure equal to one kilogram-force per square centimeter","kgf/cm2","KGF/CM2","1",1,!1],[!1,"mho","mho","MHO","electric conductance",.001,[-2,1,-1,0,0,2,0],"mho","misc",!0,null,null,1,!1,!1,0,"siemens; ohm reciprocals; \u03A9^\u22121; \u03A9-1 ","UCUM","","Obsolete","unit of electric conductance (the inverse of electrical resistance) equal to ohm^-1","S","S","1",1,!1],[!1,"pound per square inch","[psi]","[PSI]","pressure",6894757293168359e-9,[-1,-2,1,0,0,0,0],"psi","misc",!1,null,null,1,!1,!1,0,"psi; lb/in2; lb per in2","UCUM","Pres","Clinical","","[lbf_av]/[in_i]2","[LBF_AV]/[IN_I]2","1",1,!1],[!1,"circle - plane angle","circ","CIRC","plane angle",6.283185307179586,[0,0,0,1,0,0,0],"circ","misc",!1,null,null,1,!1,!1,0,"angles; circles","UCUM","Angle","Clinical","","[pi].rad","[PI].RAD","2",2,!1],[!1,"spere - solid angle","sph","SPH","solid angle",12.566370614359172,[0,0,0,2,0,0,0],"sph","misc",!1,null,null,1,!1,!1,0,"speres","UCUM","Angle","Clinical","equal to the solid angle of an entire sphere = 4\u03C0sr (sr = steradian) ","[pi].sr","[PI].SR","4",4,!1],[!1,"metric carat","[car_m]","[CAR_M]","mass",.2,[0,0,1,0,0,0,0],"ctm","misc",!1,null,null,1,!1,!1,0,"carats; ct; car m","UCUM","Mass","Nonclinical","unit of mass for gemstones","g","G","2e-1",.2,!1],[!1,"carat of gold alloys","[car_Au]","[CAR_AU]","mass fraction",.041666666666666664,[0,0,0,0,0,0,0],"ctAu","misc",!1,null,null,1,!1,!1,0,"karats; k; kt; car au; carats","UCUM","MFr","Nonclinical","unit of purity for gold alloys","/24","/24","1",1,!1],[!1,"Smoot","[smoot]","[SMOOT]","length",1.7018000000000002,[1,0,0,0,0,0,0],null,"misc",!1,null,null,1,!1,!1,0,"","UCUM","Len","Nonclinical","prank unit of length from MIT","[in_i]","[IN_I]","67",67,!1],[!1,"meter per square seconds per square root of hertz","[m/s2/Hz^(1/2)]","[M/S2/HZ^(1/2)]","amplitude spectral density",1,[2,-3,0,0,0,0,0],null,"misc",!1,null,"sqrt",1,!0,!1,0,"m/s2/(Hz^.5); m/s2/(Hz^(1/2)); m per s2 per Hz^1/2","UCUM","","Constant",`measures amplitude spectral density, and is equal to the square root of power spectral density + `,"m2/s4/Hz",null,null,1,!1],[!1,"bit - logarithmic","bit_s","BIT_S","amount of information",1,[0,0,0,0,0,0,0],"bits","infotech",!1,null,"ld",1,!0,!1,0,"bit-s; bit s; bit logarithmic","UCUM","LogA","Nonclinical",`defined as the log base 2 of the number of distinct signals; cannot practically be used to express more than 1000 bits + +In information theory, the definition of the amount of self-information and information entropy is often expressed with the binary logarithm (log base 2)`,"1",null,null,1,!1],[!1,"bit","bit","BIT","amount of information",1,[0,0,0,0,0,0,0],"bit","infotech",!0,null,null,1,!1,!1,0,"bits","UCUM","","Nonclinical","dimensionless information unit of 1 used in computing and digital communications","1","1","1",1,!1],[!1,"byte","By","BY","amount of information",8,[0,0,0,0,0,0,0],"B","infotech",!0,null,null,1,!1,!1,0,"bytes","UCUM","","Nonclinical","equal to 8 bits","bit","bit","8",8,!1],[!1,"baud","Bd","BD","signal transmission rate",1,[0,1,0,0,0,0,0],"Bd","infotech",!0,null,"inv",1,!1,!1,0,"Bd; bauds","UCUM","Freq","Nonclinical","unit to express rate in symbols per second or pulses per second. ","s","/s","1",1,!1],[!1,"per twelve hour","/(12.h)","1/(12.HR)","",23148148148148147e-21,[0,-1,0,0,0,0,0],"/h",null,!1,null,null,1,!1,!1,0,"per 12 hours; 12hrs; 12 hrs; /12hrs","LOINC","Rat","Clinical","",null,null,null,null,!1],[!1,"per arbitrary unit","/[arb'U]","1/[ARB'U]","",1,[0,0,0,0,0,0,0],"/arb/ U",null,!1,null,null,1,!1,!0,0,"/arbU","LOINC","InvA ","Clinical","",null,null,null,null,!1],[!1,"per high power field","/[HPF]","1/[HPF]","",1,[0,0,0,0,0,0,0],"/HPF",null,!1,null,null,1,!1,!1,0,"/HPF; per HPF","LOINC","Naric","Clinical","",null,null,null,null,!1],[!1,"per international unit","/[IU]","1/[IU]","",1,[0,0,0,0,0,0,0],"/i/U.",null,!1,null,null,1,!1,!0,0,"international units; /IU; per IU","LOINC","InvA","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)",null,null,null,null,!1],[!1,"per low power field","/[LPF]","1/[LPF]","",1,[0,0,0,0,0,0,0],"/LPF",null,!1,null,null,1,!1,!1,0,"/LPF; per LPF","LOINC","Naric","Clinical","",null,null,null,null,!1],[!1,"per 10 billion ","/10*10","1/(10*10)","",1e-10,[0,0,0,0,0,0,0],"/1010",null,!1,null,null,1,!1,!1,0,"/10^10; per 10*10","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per trillion ","/10*12","1/(10*12)","",1e-12,[0,0,0,0,0,0,0],"/1012",null,!1,null,null,1,!1,!1,0,"/10^12; per 10*12","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per thousand","/10*3","1/(10*3)","",.001,[0,0,0,0,0,0,0],"/103",null,!1,null,null,1,!1,!1,0,"/10^3; per 10*3","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per million","/10*6","1/(10*6)","",1e-6,[0,0,0,0,0,0,0],"/106",null,!1,null,null,1,!1,!1,0,"/10^6; per 10*6;","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per billion","/10*9","1/(10*9)","",1e-9,[0,0,0,0,0,0,0],"/109",null,!1,null,null,1,!1,!1,0,"/10^9; per 10*9","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per 100","/100","1/100","",.01,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"per hundred; 10^2; 10*2","LOINC","NFr","Clinical","used for counting entities, e.g. blood cells; usually these kinds of terms have numerators such as moles or milligrams, and counting that amount per the number in the denominator",null,null,null,null,!1],[!1,"per 100 cells","/100{cells}","1/100","",.01,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"/100 cells; /100cells; per hundred","LOINC","EntMass; EntNum; NFr","Clinical","",null,null,null,null,!1],[!1,"per 100 neutrophils","/100{neutrophils}","1/100","",.01,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"/100 neutrophils; /100neutrophils; per hundred","LOINC","EntMass; EntNum; NFr","Clinical","",null,null,null,null,!1],[!1,"per 100 spermatozoa","/100{spermatozoa}","1/100","",.01,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"/100 spermatozoa; /100spermatozoa; per hundred","LOINC","NFr","Clinical","",null,null,null,null,!1],[!1,"per 100 white blood cells","/100{WBCs}","1/100","",.01,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"/100 WBCs; /100WBCs; per hundred","LOINC","Ratio; NFr","Clinical","",null,null,null,null,!1],[!1,"per year","/a","1/ANN","",3168808781402895e-23,[0,-1,0,0,0,0,0],"/a",null,!1,null,null,1,!1,!1,0,"/Years; /yrs; yearly","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per centimeter of water","/cm[H2O]","1/CM[H2O]","",10197162129779282e-21,[1,2,-1,0,0,0,0],"/cm\xA0HO2",null,!1,null,null,1,!1,!1,0,"/cmH2O; /cm H2O; centimeters; centimetres","LOINC","InvPress","Clinical","",null,null,null,null,!1],[!1,"per day","/d","1/D","",11574074074074073e-21,[0,-1,0,0,0,0,0],"/d",null,!1,null,null,1,!1,!1,0,"/dy; per day","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per deciliter","/dL","1/DL","",1e4,[-3,0,0,0,0,0,0],"/dL",null,!1,null,null,1,!1,!1,0,"per dL; /deciliter; decilitre","LOINC","NCnc","Clinical","",null,null,null,null,!1],[!1,"per gram","/g","1/G","",1,[0,0,-1,0,0,0,0],"/g",null,!1,null,null,1,!1,!1,0,"/gm; /gram; per g","LOINC","NCnt","Clinical","",null,null,null,null,!1],[!1,"per hour","/h","1/HR","",.0002777777777777778,[0,-1,0,0,0,0,0],"/h",null,!1,null,null,1,!1,!1,0,"/hr; /hour; per hr","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per kilogram","/kg","1/KG","",.001,[0,0,-1,0,0,0,0],"/kg",null,!1,null,null,1,!1,!1,0,"per kg; per kilogram","LOINC","NCnt","Clinical","",null,null,null,null,!1],[!1,"per liter","/L","1/L","",1e3,[-3,0,0,0,0,0,0],"/L",null,!1,null,null,1,!1,!1,0,"/liter; litre","LOINC","NCnc","Clinical","",null,null,null,null,!1],[!1,"per square meter","/m2","1/M2","",1,[-2,0,0,0,0,0,0],"/m2",null,!1,null,null,1,!1,!1,0,"/m^2; /m*2; /sq. m; per square meter; meter squared; metre","LOINC","Naric","Clinical","",null,null,null,null,!1],[!1,"per cubic meter","/m3","1/M3","",1,[-3,0,0,0,0,0,0],"/m3",null,!1,null,null,1,!1,!1,0,"/m^3; /m*3; /cu. m; per cubic meter; meter cubed; per m3; metre","LOINC","NCncn","Clinical","",null,null,null,null,!1],[!1,"per milligram","/mg","1/MG","",1e3,[0,0,-1,0,0,0,0],"/mg",null,!1,null,null,1,!1,!1,0,"/milligram; per mg","LOINC","NCnt","Clinical","",null,null,null,null,!1],[!1,"per minute","/min","1/MIN","",.016666666666666666,[0,-1,0,0,0,0,0],"/min",null,!1,null,null,1,!1,!1,0,"/minute; per mins; breaths beats per minute","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per milliliter","/mL","1/ML","",1e6,[-3,0,0,0,0,0,0],"/mL",null,!1,null,null,1,!1,!1,0,"/milliliter; per mL; millilitre","LOINC","NCncn","Clinical","",null,null,null,null,!1],[!1,"per millimeter","/mm","1/MM","",1e3,[-1,0,0,0,0,0,0],"/mm",null,!1,null,null,1,!1,!1,0,"/millimeter; per mm; millimetre","LOINC","InvLen","Clinical","",null,null,null,null,!1],[!1,"per month","/mo","1/MO","",3802570537683474e-22,[0,-1,0,0,0,0,0],"/mo",null,!1,null,null,1,!1,!1,0,"/month; per mo; monthly; month","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per second","/s","1/S","",1,[0,-1,0,0,0,0,0],"/s",null,!1,null,null,1,!1,!1,0,"/second; /sec; per sec; frequency; Hertz; Herz; Hz; becquerels; Bq; s-1; s^-1","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"per enzyme unit","/U","1/U","",9963241120049633e-32,[0,1,0,0,0,0,0],"/U",null,!1,null,null,1,!1,!1,-1,"/enzyme units; per U","LOINC","InvC; NCat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)",null,null,null,null,!1],[!1,"per microliter","/uL","1/UL","",9999999999999999e-7,[-3,0,0,0,0,0,0],"/\u03BCL",null,!1,null,null,1,!1,!1,0,"/microliter; microlitre; /mcl; per uL","LOINC","ACnc","Clinical","",null,null,null,null,!1],[!1,"per week","/wk","1/WK","",16534391534391535e-22,[0,-1,0,0,0,0,0],"/wk",null,!1,null,null,1,!1,!1,0,"/week; per wk; weekly, weeks","LOINC","NRat","Clinical","",null,null,null,null,!1],[!1,"APL unit per milliliter","[APL'U]/mL","[APL'U]/ML","biologic activity of anticardiolipin IgA",1e6,[-3,0,0,0,0,0,0],"/mL","chemical",!1,null,null,1,!1,!0,0,"APL/mL; APL'U/mL; APL U/mL; APL/milliliter; IgA anticardiolipin units per milliliter; IgA Phospholipid Units; millilitre; biologic activity of","LOINC","ACnc","Clinical","Units for an anti phospholipid syndrome test","1","1","1",1,!1],[!1,"arbitrary unit per milliliter","[arb'U]/mL","[ARB'U]/ML","arbitrary",1e6,[-3,0,0,0,0,0,0],"(arb. U)/mL","chemical",!1,null,null,1,!1,!0,0,"arb'U/mL; arbU/mL; arb U/mL; arbitrary units per milliliter; millilitre","LOINC","ACnc","Clinical","relative unit of measurement to show the ratio of test measurement to reference measurement","1","1","1",1,!1],[!1,"colony forming units per liter","[CFU]/L","[CFU]/L","amount of a proliferating organism",1e3,[-3,0,0,0,0,0,0],"CFU/L","chemical",!1,null,null,1,!1,!0,0,"CFU per Liter; CFU/L","LOINC","NCnc","Clinical","","1","1","1",1,!1],[!1,"colony forming units per milliliter","[CFU]/mL","[CFU]/ML","amount of a proliferating organism",1e6,[-3,0,0,0,0,0,0],"CFU/mL","chemical",!1,null,null,1,!1,!0,0,"CFU per mL; CFU/mL","LOINC","NCnc","Clinical","","1","1","1",1,!1],[!1,"foot per foot - US","[ft_us]/[ft_us]","[FT_US]/[FT_US]","length",1,[0,0,0,0,0,0,0],"(ftus)/(ftus)","us-lengths",!1,null,null,1,!1,!1,0,"ft/ft; ft per ft; feet per feet; visual acuity","","LenRto","Clinical","distance ratio to measure 20:20 vision","m/3937","M/3937","1200",1200,!1],[!1,"GPL unit per milliliter","[GPL'U]/mL","[GPL'U]/ML","biologic activity of anticardiolipin IgG",1e6,[-3,0,0,0,0,0,0],"/mL","chemical",!1,null,null,1,!1,!0,0,"GPL U/mL; GPL'U/mL; GPL/mL; GPL U per mL; IgG Phospholipid Units per milliliters; IgG anticardiolipin units; millilitres ","LOINC","ACnc; AMass","Clinical","Units for an antiphospholipid test","1","1","1",1,!1],[!1,"international unit per 2 hour","[IU]/(2.h)","[IU]/(2.HR)","arbitrary",.0001388888888888889,[0,-1,0,0,0,0,0],"(i.U.)/h","chemical",!0,null,null,1,!1,!0,0,"IU/2hrs; IU/2 hours; IU per 2 hrs; international units per 2 hours","LOINC","ARat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per 24 hour","[IU]/(24.h)","[IU]/(24.HR)","arbitrary",11574074074074073e-21,[0,-1,0,0,0,0,0],"(i.U.)/h","chemical",!0,null,null,1,!1,!0,0,"IU/24hr; IU/24 hours; IU per 24 hrs; international units per 24 hours","LOINC","ARat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per day","[IU]/d","[IU]/D","arbitrary",11574074074074073e-21,[0,-1,0,0,0,0,0],"(i.U.)/d","chemical",!0,null,null,1,!1,!0,0,"IU/dy; IU/days; IU per dys; international units per day","LOINC","ARat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per deciliter","[IU]/dL","[IU]/DL","arbitrary",1e4,[-3,0,0,0,0,0,0],"(i.U.)/dL","chemical",!0,null,null,1,!1,!0,0,"IU/dL; IU per dL; international units per deciliters; decilitres","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per gram","[IU]/g","[IU]/G","arbitrary",1,[0,0,-1,0,0,0,0],"(i.U.)/g","chemical",!0,null,null,1,!1,!0,0,"IU/gm; IU/gram; IU per gm; IU per g; international units per gram","LOINC","ACnt","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per hour","[IU]/h","[IU]/HR","arbitrary",.0002777777777777778,[0,-1,0,0,0,0,0],"(i.U.)/h","chemical",!0,null,null,1,!1,!0,0,"IU/hrs; IU per hours; international units per hour","LOINC","ARat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per kilogram","[IU]/kg","[IU]/KG","arbitrary",.001,[0,0,-1,0,0,0,0],"(i.U.)/kg","chemical",!0,null,null,1,!1,!0,0,"IU/kg; IU/kilogram; IU per kg; units","LOINC","ACnt","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per kilogram per day","[IU]/kg/d","([IU]/KG)/D","arbitrary",11574074074074074e-24,[0,-1,-1,0,0,0,0],"((i.U.)/kg)/d","chemical",!0,null,null,1,!1,!0,0,"IU/kg/dy; IU/kg/day; IU/kilogram/day; IU per kg per day; units","LOINC","ACntRat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per liter","[IU]/L","[IU]/L","arbitrary",1e3,[-3,0,0,0,0,0,0],"(i.U.)/L","chemical",!0,null,null,1,!1,!0,0,"IU/L; IU/liter; IU per liter; units; litre","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per minute","[IU]/min","[IU]/MIN","arbitrary",.016666666666666666,[0,-1,0,0,0,0,0],"(i.U.)/min","chemical",!0,null,null,1,!1,!0,0,"IU/min; IU/minute; IU per minute; international units","LOINC","ARat","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"international unit per milliliter","[IU]/mL","[IU]/ML","arbitrary",1e6,[-3,0,0,0,0,0,0],"(i.U.)/mL","chemical",!0,null,null,1,!1,!0,0,"IU/mL; IU per mL; international units per milliliter; millilitre","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"MPL unit per milliliter","[MPL'U]/mL","[MPL'U]/ML","biologic activity of anticardiolipin IgM",1e6,[-3,0,0,0,0,0,0],"/mL","chemical",!1,null,null,1,!1,!0,0,"MPL/mL; MPL U/mL; MPL'U/mL; IgM anticardiolipin units; IgM Phospholipid Units; millilitre ","LOINC","ACnc","Clinical",`units for antiphospholipid test +`,"1","1","1",1,!1],[!1,"number per high power field","{#}/[HPF]","{#}/[HPF]","",1,[0,0,0,0,0,0,0],"/HPF",null,!1,null,null,1,!1,!1,0,"#/HPF; # per HPF; number/HPF; numbers per high power field","LOINC","Naric","Clinical","",null,null,null,null,!1],[!1,"number per low power field","{#}/[LPF]","{#}/[LPF]","",1,[0,0,0,0,0,0,0],"/LPF",null,!1,null,null,1,!1,!1,0,"#/LPF; # per LPF; number/LPF; numbers per low power field","LOINC","Naric","Clinical","",null,null,null,null,!1],[!1,"IgA antiphosphatidylserine unit ","{APS'U}","{APS'U}","",1,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"APS Unit; Phosphatidylserine Antibody IgA Units","LOINC","ACnc","Clinical","unit for antiphospholipid test",null,null,null,null,!1],[!1,"EIA index","{EIA_index}","{EIA_index}","",1,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"enzyme immunoassay index","LOINC","ACnc","Clinical","",null,null,null,null,!1],[!1,"kaolin clotting time","{KCT'U}","{KCT'U}","",1,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"KCT","LOINC","Time","Clinical","sensitive\xA0test to detect\xA0lupus anticoagulants; measured in seconds",null,null,null,null,!1],[!1,"IgM antiphosphatidylserine unit","{MPS'U}","{MPS'U}","",1,[0,0,0,0,0,0,0],null,null,!1,null,null,1,!1,!1,0,"Phosphatidylserine Antibody IgM Measurement ","LOINC","ACnc","Clinical","",null,null,null,null,!1],[!1,"trillion per liter","10*12/L","(10*12)/L","number",1e15,[-3,0,0,0,0,0,0],"(1012)/L","dimless",!1,null,null,1,!1,!1,0,"10^12/L; 10*12 per Liter; trillion per liter; litre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"10^3 (used for cell count)","10*3","10*3","number",1e3,[0,0,0,0,0,0,0],"103","dimless",!1,null,null,1,!1,!1,0,"10^3; thousand","LOINC","Num","Clinical","usually used for counting entities (e.g. blood cells) per volume","1","1","10",10,!1],[!1,"thousand per liter","10*3/L","(10*3)/L","number",1e6,[-3,0,0,0,0,0,0],"(103)/L","dimless",!1,null,null,1,!1,!1,0,"10^3/L; 10*3 per liter; litre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"thousand per milliliter","10*3/mL","(10*3)/ML","number",1e9,[-3,0,0,0,0,0,0],"(103)/mL","dimless",!1,null,null,1,!1,!1,0,"10^3/mL; 10*3 per mL; thousand per milliliter; millilitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"thousand per microliter","10*3/uL","(10*3)/UL","number",9999999999999999e-4,[-3,0,0,0,0,0,0],"(103)/\u03BCL","dimless",!1,null,null,1,!1,!1,0,"10^3/uL; 10*3 per uL; thousand per microliter; microlitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"10 thousand per microliter","10*4/uL","(10*4)/UL","number",1e13,[-3,0,0,0,0,0,0],"(104)/\u03BCL","dimless",!1,null,null,1,!1,!1,0,"10^4/uL; 10*4 per uL; microlitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"10^5 ","10*5","10*5","number",1e5,[0,0,0,0,0,0,0],"105","dimless",!1,null,null,1,!1,!1,0,"one hundred thousand","LOINC","Num","Clinical","","1","1","10",10,!1],[!1,"10^6","10*6","10*6","number",1e6,[0,0,0,0,0,0,0],"106","dimless",!1,null,null,1,!1,!1,0,"","LOINC","Num","Clinical","","1","1","10",10,!1],[!1,"million colony forming unit per liter","10*6.[CFU]/L","((10*6).[CFU])/L","number",1e9,[-3,0,0,0,0,0,0],"((106).CFU)/L","dimless",!1,null,null,1,!1,!0,0,"10*6 CFU/L; 10^6 CFU/L; 10^6CFU; 10^6 CFU per liter; million colony forming units; litre","LOINC","ACnc","Clinical","","1","1","10",10,!1],[!1,"million international unit","10*6.[IU]","(10*6).[IU]","number",1e6,[0,0,0,0,0,0,0],"(106).(i.U.)","dimless",!1,null,null,1,!1,!0,0,"10*6 IU; 10^6 IU; international units","LOINC","arb","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","1","1","10",10,!1],[!1,"million per 24 hour","10*6/(24.h)","(10*6)/(24.HR)","number",11.574074074074074,[0,-1,0,0,0,0,0],"(106)/h","dimless",!1,null,null,1,!1,!1,0,"10*6/24hrs; 10^6/24 hrs; 10*6 per 24 hrs; 10^6 per 24 hours","LOINC","NRat","Clinical","","1","1","10",10,!1],[!1,"million per kilogram","10*6/kg","(10*6)/KG","number",1e3,[0,0,-1,0,0,0,0],"(106)/kg","dimless",!1,null,null,1,!1,!1,0,"10^6/kg; 10*6 per kg; 10*6 per kilogram; millions","LOINC","NCnt","Clinical","","1","1","10",10,!1],[!1,"million per liter","10*6/L","(10*6)/L","number",1e9,[-3,0,0,0,0,0,0],"(106)/L","dimless",!1,null,null,1,!1,!1,0,"10^6/L; 10*6 per Liter; 10^6 per Liter; litre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"million per milliliter","10*6/mL","(10*6)/ML","number",1e12,[-3,0,0,0,0,0,0],"(106)/mL","dimless",!1,null,null,1,!1,!1,0,"10^6/mL; 10*6 per mL; 10*6 per milliliter; millilitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"million per microliter","10*6/uL","(10*6)/UL","number",1e15,[-3,0,0,0,0,0,0],"(106)/\u03BCL","dimless",!1,null,null,1,!1,!1,0,"10^6/uL; 10^6 per uL; 10^6/mcl; 10^6 per mcl; 10^6 per microliter; microlitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"10^8","10*8","10*8","number",1e8,[0,0,0,0,0,0,0],"108","dimless",!1,null,null,1,!1,!1,0,"100 million; one hundred million; 10^8","LOINC","Num","Clinical","","1","1","10",10,!1],[!1,"billion per liter","10*9/L","(10*9)/L","number",1e12,[-3,0,0,0,0,0,0],"(109)/L","dimless",!1,null,null,1,!1,!1,0,"10^9/L; 10*9 per Liter; litre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"billion per milliliter","10*9/mL","(10*9)/ML","number",1e15,[-3,0,0,0,0,0,0],"(109)/mL","dimless",!1,null,null,1,!1,!1,0,"10^9/mL; 10*9 per mL; 10^9 per mL; 10*9 per milliliter; millilitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"billion per microliter","10*9/uL","(10*9)/UL","number",1e18,[-3,0,0,0,0,0,0],"(109)/\u03BCL","dimless",!1,null,null,1,!1,!1,0,"10^9/uL; 10^9 per uL; 10^9/mcl; 10^9 per mcl; 10*9 per uL; 10*9 per mcl; 10*9/mcl; 10^9 per microliter; microlitre","LOINC","NCncn","Clinical","","1","1","10",10,!1],[!1,"10 liter per minute per square meter","10.L/(min.m2)","(10.L)/(MIN.M2)","",.00016666666666666666,[1,-1,0,0,0,0,0],"L/(min.(m2))",null,!1,null,null,1,!1,!1,0,"10 liters per minutes per square meter; 10 L per min per m2; m^2; 10 L/(min*m2); 10L/(min*m^2); litres; sq. meter; metre; meters squared","LOINC","ArVRat","Clinical","",null,null,null,null,!1],[!1,"10 liter per minute","10.L/min","(10.L)/MIN","",.00016666666666666666,[3,-1,0,0,0,0,0],"L/min",null,!1,null,null,1,!1,!1,0,"10 liters per minute; 10 L per min; 10L; 10 L/min; litre","LOINC","VRat","Clinical","",null,null,null,null,!1],[!1,"10 micronewton second per centimeter to the fifth power per square meter","10.uN.s/(cm5.m2)","((10.UN).S)/(CM5.M2)","",1e8,[-6,-1,1,0,0,0,0],"(\u03BCN.s)/(cm5).(m2)",null,!1,null,null,1,!1,!1,0,"dyne seconds per centimeter5 and square meter; dyn.s/(cm5.m2); dyn.s/cm5/m2; cm^5; m^2","LOINC","","Clinical","unit to measure systemic vascular resistance per body surface area",null,null,null,null,!1],[!1,"24 hour","24.h","24.HR","",86400,[0,1,0,0,0,0,0],"h",null,!1,null,null,1,!1,!1,0,"24hrs; 24 hrs; 24 hours; days; dy","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"ampere per meter","A/m","A/M","electric current",1,[-1,-1,0,0,0,1,0],"A/m","si",!0,null,null,1,!1,!1,0,"A/m; amp/meter; magnetic field strength; H; B; amperes per meter; metre","LOINC","","Clinical","unit of magnetic field strength","C/s","C/S","1",1,!1],[!1,"centigram","cg","CG","mass",.01,[0,0,1,0,0,0,0],"cg",null,!1,"M",null,1,!1,!1,0,"centigrams; cg; cgm","LOINC","Mass","Clinical","",null,null,null,null,!1],[!1,"centiliter","cL","CL","volume",1e-5,[3,0,0,0,0,0,0],"cL","iso1000",!0,null,null,1,!1,!1,0,"centiliters; centilitres","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"centimeter","cm","CM","length",.01,[1,0,0,0,0,0,0],"cm",null,!1,"L",null,1,!1,!1,0,"centimeters; centimetres","LOINC","Len","Clinical","",null,null,null,null,!1],[!1,"centimeter of water","cm[H2O]","CM[H2O]","pressure",98066.5,[-1,-2,1,0,0,0,0],"cm\xA0HO2","clinical",!0,null,null,1,!1,!1,0,"cm H2O; cmH2O; centimetres; pressure","LOINC","Pres","Clinical","unit of pressure mostly applies to blood pressure","kPa","KPAL","980665e-5",9.80665,!1],[!1,"centimeter of water per liter per second","cm[H2O]/L/s","(CM[H2O]/L)/S","pressure",98066500,[-4,-3,1,0,0,0,0],"((cm\xA0HO2)/L)/s","clinical",!0,null,null,1,!1,!1,0,"cm[H2O]/(L/s); cm[H2O].s/L; cm H2O/L/sec; cmH2O/L/sec; cmH2O/Liter; cmH2O per L per secs; centimeters of water per liters per second; centimetres; litres; cm[H2O]/(L/s)","LOINC","PresRat","Clinical","unit used to measure mean pulmonary resistance","kPa","KPAL","980665e-5",9.80665,!1],[!1,"centimeter of water per second per meter","cm[H2O]/s/m","(CM[H2O]/S)/M","pressure",98066.5,[-2,-3,1,0,0,0,0],"((cm\xA0HO2)/s)/m","clinical",!0,null,null,1,!1,!1,0,"cm[H2O]/(s.m); cm H2O/s/m; cmH2O; cmH2O/sec/m; cmH2O per secs per meters; centimeters of water per seconds per meter; centimetres; metre","LOINC","PresRat","Clinical","unit used to measure pulmonary pressure time product","kPa","KPAL","980665e-5",9.80665,!1],[!1,"centimeter of mercury","cm[Hg]","CM[HG]","pressure",1333220,[-1,-2,1,0,0,0,0],"cm\xA0Hg","clinical",!0,null,null,1,!1,!1,0,"centimeters of mercury; centimetres; cmHg; cm Hg","LOINC","Pres","Clinical","unit of pressure where 1 cmHg = 10 torr","kPa","KPAL","133.3220",133.322,!1],[!1,"square centimeter","cm2","CM2","length",1e-4,[2,0,0,0,0,0,0],"cm2",null,!1,"L",null,1,!1,!1,0,"cm^2; sq cm; centimeters squared; square centimeters; centimetre; area","LOINC","Area","Clinical","",null,null,null,null,!1],[!1,"square centimeter per second","cm2/s","CM2/S","length",1e-4,[2,-1,0,0,0,0,0],"(cm2)/s",null,!1,"L",null,1,!1,!1,0,"cm^2/sec; square centimeters per second; sq cm per sec; cm2; centimeters squared; centimetres","LOINC","AreaRat","Clinical","",null,null,null,null,!1],[!1,"centipoise","cP","CP","dynamic viscosity",1.0000000000000002,[-1,-1,1,0,0,0,0],"cP","cgs",!0,null,null,1,!1,!1,0,"cps; centiposes","LOINC","Visc","Clinical","unit of dynamic viscosity in the CGS system with base units: 10^\u22123 Pa.s = 1 mPa\xB7.s (1 millipascal second)","dyn.s/cm2","DYN.S/CM2","1",1,!1],[!1,"centistoke","cSt","CST","kinematic viscosity",1e-6,[2,-1,0,0,0,0,0],"cSt","cgs",!0,null,null,1,!1,!1,0,"centistokes","LOINC","Visc","Clinical","unit for kinematic viscosity with base units of mm^2/s (square millimeter per second)","cm2/s","CM2/S","1",1,!1],[!1,"dekaliter per minute","daL/min","DAL/MIN","volume",.00016666666666666666,[3,-1,0,0,0,0,0],"daL/min","iso1000",!0,null,null,1,!1,!1,0,"dekalitres; dekaliters per minute; per min","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"dekaliter per minute per square meter","daL/min/m2","(DAL/MIN)/M2","volume",.00016666666666666666,[1,-1,0,0,0,0,0],"(daL/min)/(m2)","iso1000",!0,null,null,1,!1,!1,0,"daL/min/m^2; daL/minute/m2; sq. meter; dekaliters per minutes per square meter; meter squared; dekalitres; metre","LOINC","ArVRat","Clinical","The area usually is the body surface area used to normalize cardiovascular measures for patient's size","l",null,"1",1,!1],[!1,"decibel","dB","DB","level",1,[0,0,0,0,0,0,0],"dB","levels",!0,null,"lg",.1,!0,!1,0,"decibels","LOINC","LogRto","Clinical","unit most commonly used in acoustics as unit of sound pressure level. (also see B[SPL] or bel sound pressure level). ","1",null,null,1,!1],[!1,"degree per second","deg/s","DEG/S","plane angle",.017453292519943295,[0,-1,0,1,0,0,0],"\xB0/s","iso1000",!1,null,null,1,!1,!1,0,"deg/sec; deg per sec; \xB0/sec; twist rate; angular speed; rotational speed","LOINC","ARat","Clinical","unit of angular (rotational) speed used to express turning rate","[pi].rad/360","[PI].RAD/360","2",2,!1],[!1,"decigram","dg","DG","mass",.1,[0,0,1,0,0,0,0],"dg",null,!1,"M",null,1,!1,!1,0,"decigrams; dgm; 0.1 grams; 1/10 gm","LOINC","Mass","Clinical","equal to 1/10 gram",null,null,null,null,!1],[!1,"deciliter","dL","DL","volume",1e-4,[3,0,0,0,0,0,0],"dL","iso1000",!0,null,null,1,!1,!1,0,"deciliters; decilitres; 0.1 liters; 1/10 L","LOINC","Vol","Clinical","equal to 1/10 liter","l",null,"1",1,!1],[!1,"decimeter","dm","DM","length",.1,[1,0,0,0,0,0,0],"dm",null,!1,"L",null,1,!1,!1,0,"decimeters; decimetres; 0.1 meters; 1/10 m; 10 cm; centimeters","LOINC","Len","Clinical","equal to 1/10 meter or 10 centimeters",null,null,null,null,!1],[!1,"square decimeter per square second","dm2/s2","DM2/S2","length",.010000000000000002,[2,-2,0,0,0,0,0],"(dm2)/(s2)",null,!1,"L",null,1,!1,!1,0,"dm2 per s2; dm^2/s^2; decimeters squared per second squared; sq dm; sq sec","LOINC","EngMass (massic energy)","Clinical","units for energy per unit mass or Joules per kilogram (J/kg = kg.m2/s2/kg = m2/s2) ",null,null,null,null,!1],[!1,"dyne second per centimeter per square meter","dyn.s/(cm.m2)","(DYN.S)/(CM.M2)","force",1,[-2,-1,1,0,0,0,0],"(dyn.s)/(cm.(m2))","cgs",!0,null,null,1,!1,!1,0,"(dyn*s)/(cm*m2); (dyn*s)/(cm*m^2); dyn s per cm per m2; m^2; dyne seconds per centimeters per square meter; centimetres; sq. meter; squared","LOINC","","Clinical","","g.cm/s2","G.CM/S2","1",1,!1],[!1,"dyne second per centimeter","dyn.s/cm","(DYN.S)/CM","force",1,[0,-1,1,0,0,0,0],"(dyn.s)/cm","cgs",!0,null,null,1,!1,!1,0,"(dyn*s)/cm; dyn sec per cm; seconds; centimetre; dyne seconds","LOINC","","Clinical","","g.cm/s2","G.CM/S2","1",1,!1],[!1,"equivalent per liter","eq/L","EQ/L","amount of substance",60221366999999994e10,[-3,0,0,0,0,0,0],"eq/L","chemical",!0,null,null,1,!1,!1,1,"eq/liter; eq/litre; eqs; equivalents per liter; litre","LOINC","SCnc","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"equivalent per milliliter","eq/mL","EQ/ML","amount of substance",60221367e22,[-3,0,0,0,0,0,0],"eq/mL","chemical",!0,null,null,1,!1,!1,1,"equivalent/milliliter; equivalents per milliliter; eq per mL; millilitre","LOINC","SCnc","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"equivalent per millimole","eq/mmol","EQ/MMOL","amount of substance",1e3,[0,0,0,0,0,0,0],"eq/mmol","chemical",!0,null,null,1,!1,!1,0,"equivalent/millimole; equivalents per millimole; eq per mmol","LOINC","SRto","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"equivalent per micromole","eq/umol","EQ/UMOL","amount of substance",1e6,[0,0,0,0,0,0,0],"eq/\u03BCmol","chemical",!0,null,null,1,!1,!1,0,"equivalent/micromole; equivalents per micromole; eq per umol","LOINC","SRto","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"femtogram","fg","FG","mass",1e-15,[0,0,1,0,0,0,0],"fg",null,!1,"M",null,1,!1,!1,0,"fg; fgm; femtograms; weight","LOINC","Mass","Clinical","equal to 10^-15 grams",null,null,null,null,!1],[!1,"femtoliter","fL","FL","volume",1e-18,[3,0,0,0,0,0,0],"fL","iso1000",!0,null,null,1,!1,!1,0,"femtolitres; femtoliters","LOINC","Vol; EntVol","Clinical","equal to 10^-15 liters","l",null,"1",1,!1],[!1,"femtometer","fm","FM","length",1e-15,[1,0,0,0,0,0,0],"fm",null,!1,"L",null,1,!1,!1,0,"femtometres; femtometers","LOINC","Len","Clinical","equal to 10^-15 meters",null,null,null,null,!1],[!1,"femtomole","fmol","FMOL","amount of substance",602213670,[0,0,0,0,0,0,0],"fmol","si",!0,null,null,1,!1,!1,1,"femtomoles","LOINC","EntSub","Clinical","equal to 10^-15 moles","10*23","10*23","6.0221367",6.0221367,!1],[!1,"femtomole per gram","fmol/g","FMOL/G","amount of substance",602213670,[0,0,-1,0,0,0,0],"fmol/g","si",!0,null,null,1,!1,!1,1,"femtomoles; fmol/gm; fmol per gm","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"femtomole per liter","fmol/L","FMOL/L","amount of substance",60221367e4,[-3,0,0,0,0,0,0],"fmol/L","si",!0,null,null,1,!1,!1,1,"femtomoles; fmol per liter; litre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"femtomole per milligram","fmol/mg","FMOL/MG","amount of substance",60221367e4,[0,0,-1,0,0,0,0],"fmol/mg","si",!0,null,null,1,!1,!1,1,"fmol per mg; femtomoles","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"femtomole per milliliter","fmol/mL","FMOL/ML","amount of substance",60221367e7,[-3,0,0,0,0,0,0],"fmol/mL","si",!0,null,null,1,!1,!1,1,"femtomoles; millilitre; fmol per mL; fmol per milliliter","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"gram meter","g.m","G.M","mass",1,[1,0,1,0,0,0,0],"g.m",null,!1,"M",null,1,!1,!1,0,"g*m; gxm; meters; metres","LOINC","Enrg","Clinical","Unit for measuring stroke work (heart work)",null,null,null,null,!1],[!1,"gram per 100 gram","g/(100.g)","G/(100.G)","mass",.01,[0,0,0,0,0,0,0],"g/g",null,!1,"M",null,1,!1,!1,0,"g/100 gm; 100gm; grams per 100 grams; gm per 100 gm","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"gram per 12 hour","g/(12.h)","G/(12.HR)","mass",23148148148148147e-21,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/12hrs; 12 hrs; gm per 12 hrs; 12hrs; grams per 12 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 24 hour","g/(24.h)","G/(24.HR)","mass",11574074074074073e-21,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/24hrs; gm/24 hrs; gm per 24 hrs; 24hrs; grams per 24 hours; gm/dy; gm per dy; grams per day","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 3 days","g/(3.d)","G/(3.D)","mass",3858024691358025e-21,[0,-1,1,0,0,0,0],"g/d",null,!1,"M",null,1,!1,!1,0,"gm/3dy; gm/3 dy; gm per 3 days; grams","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 4 hour","g/(4.h)","G/(4.HR)","mass",6944444444444444e-20,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/4hrs; gm/4 hrs; gm per 4 hrs; 4hrs; grams per 4 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 48 hour","g/(48.h)","G/(48.HR)","mass",5787037037037037e-21,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/48hrs; gm/48 hrs; gm per 48 hrs; 48hrs; grams per 48 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 5 hour","g/(5.h)","G/(5.HR)","mass",5555555555555556e-20,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/5hrs; gm/5 hrs; gm per 5 hrs; 5hrs; grams per 5 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 6 hour","g/(6.h)","G/(6.HR)","mass",46296296296296294e-21,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/6hrs; gm/6 hrs; gm per 6 hrs; 6hrs; grams per 6 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per 72 hour","g/(72.h)","G/(72.HR)","mass",3858024691358025e-21,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/72hrs; gm/72 hrs; gm per 72 hrs; 72hrs; grams per 72 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per cubic centimeter","g/cm3","G/CM3","mass",999999.9999999999,[-3,0,1,0,0,0,0],"g/(cm3)",null,!1,"M",null,1,!1,!1,0,"g/cm^3; gm per cm3; g per cm^3; grams per centimeter cubed; cu. cm; centimetre; g/mL; gram per milliliter; millilitre","LOINC","MCnc","Clinical","g/cm3 = g/mL",null,null,null,null,!1],[!1,"gram per day","g/d","G/D","mass",11574074074074073e-21,[0,-1,1,0,0,0,0],"g/d",null,!1,"M",null,1,!1,!1,0,"gm/dy; gm per dy; grams per day; gm/24hrs; gm/24 hrs; gm per 24 hrs; 24hrs; grams per 24 hours; serving","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per deciliter","g/dL","G/DL","mass",1e4,[-3,0,1,0,0,0,0],"g/dL",null,!1,"M",null,1,!1,!1,0,"gm/dL; gm per dL; grams per deciliter; decilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"gram per gram","g/g","G/G","mass",1,[0,0,0,0,0,0,0],"g/g",null,!1,"M",null,1,!1,!1,0,"gm; grams","LOINC","MRto ","Clinical","",null,null,null,null,!1],[!1,"gram per hour","g/h","G/HR","mass",.0002777777777777778,[0,-1,1,0,0,0,0],"g/h",null,!1,"M",null,1,!1,!1,0,"gm/hr; gm per hr; grams; intake; output","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per hour per square meter","g/h/m2","(G/HR)/M2","mass",.0002777777777777778,[-2,-1,1,0,0,0,0],"(g/h)/(m2)",null,!1,"M",null,1,!1,!1,0,"gm/hr/m2; gm/h/m2; /m^2; sq. m; g per hr per m2; grams per hours per square meter; meter squared; metre","LOINC","ArMRat","Clinical","",null,null,null,null,!1],[!1,"gram per kilogram","g/kg ","G/KG","mass",.001,[0,0,0,0,0,0,0],"g/kg",null,!1,"M",null,1,!1,!1,0,"g per kg; gram per kilograms","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"gram per kilogram per 8 hour ","g/kg/(8.h)","(G/KG)/(8.HR)","mass",3472222222222222e-23,[0,-1,0,0,0,0,0],"(g/kg)/h",null,!1,"M",null,1,!1,!1,0,"g/(8.kg.h); gm/kg/8hrs; 8 hrs; g per kg per 8 hrs; 8hrs; grams per kilograms per 8 hours; shift","LOINC","MCntRat; RelMRat","Clinical","unit often used to describe mass in grams of protein consumed in a 8 hours, divided by the subject's body weight in kilograms. Also used to measure mass dose rate per body mass",null,null,null,null,!1],[!1,"gram per kilogram per day","g/kg/d","(G/KG)/D","mass",11574074074074074e-24,[0,-1,0,0,0,0,0],"(g/kg)/d",null,!1,"M",null,1,!1,!1,0,"g/(kg.d); gm/kg/dy; gm per kg per dy; grams per kilograms per day","LOINC","RelMRat","Clinical","unit often used to describe mass in grams of protein consumed in a day, divided by the subject's body weight in kilograms. Also used to measure mass dose rate per body mass",null,null,null,null,!1],[!1,"gram per kilogram per hour","g/kg/h","(G/KG)/HR","mass",27777777777777776e-23,[0,-1,0,0,0,0,0],"(g/kg)/h",null,!1,"M",null,1,!1,!1,0,"g/(kg.h); g/kg/hr; g per kg per hrs; grams per kilograms per hour","LOINC","MCntRat; RelMRat","Clinical","unit used to measure mass dose rate per body mass",null,null,null,null,!1],[!1,"gram per kilogram per minute","g/kg/min","(G/KG)/MIN","mass",16666666666666667e-21,[0,-1,0,0,0,0,0],"(g/kg)/min",null,!1,"M",null,1,!1,!1,0,"g/(kg.min); g/kg/min; g per kg per min; grams per kilograms per minute","LOINC","MCntRat; RelMRat","Clinical","unit used to measure mass dose rate per body mass",null,null,null,null,!1],[!1,"gram per liter","g/L","G/L","mass",1e3,[-3,0,1,0,0,0,0],"g/L",null,!1,"M",null,1,!1,!1,0,"gm per liter; g/liter; grams per liter; litre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"gram per square meter","g/m2","G/M2","mass",1,[-2,0,1,0,0,0,0],"g/(m2)",null,!1,"M",null,1,!1,!1,0,"g/m^2; gram/square meter; g/sq m; g per m2; g per m^2; grams per square meter; meters squared; metre","LOINC","ArMass","Clinical","Tests measure myocardial mass (heart ventricle system) per body surface area; unit used to measure mass dose per body surface area",null,null,null,null,!1],[!1,"gram per milligram","g/mg","G/MG","mass",1e3,[0,0,0,0,0,0,0],"g/mg",null,!1,"M",null,1,!1,!1,0,"g per mg; grams per milligram","LOINC","MCnt; MRto","Clinical","",null,null,null,null,!1],[!1,"gram per minute","g/min","G/MIN","mass",.016666666666666666,[0,-1,1,0,0,0,0],"g/min",null,!1,"M",null,1,!1,!1,0,"g per min; grams per minute; gram/minute","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"gram per milliliter","g/mL","G/ML","mass",1e6,[-3,0,1,0,0,0,0],"g/mL",null,!1,"M",null,1,!1,!1,0,"g per mL; grams per milliliter; millilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"gram per millimole","g/mmol","G/MMOL","mass",16605401866749388e-37,[0,0,1,0,0,0,0],"g/mmol",null,!1,"M",null,1,!1,!1,-1,"grams per millimole; g per mmol","LOINC","Ratio","Clinical","",null,null,null,null,!1],[!1,"joule per liter","J/L","J/L","energy",1e6,[-1,-2,1,0,0,0,0],"J/L","si",!0,null,null,1,!1,!1,0,"joules per liter; litre; J per L","LOINC","EngCnc","Clinical","","N.m","N.M","1",1,!1],[!1,"degree Kelvin per Watt","K/W","K/W","temperature",.001,[-2,3,-1,0,1,0,0],"K/W",null,!1,"C",null,1,!1,!1,0,"degree Kelvin/Watt; K per W; thermal ohm; thermal resistance; degrees","LOINC","TempEngRat","Clinical","unit for absolute thermal resistance equal to the reciprocal of thermal conductance. Unit used for tests to measure work of breathing",null,null,null,null,!1],[!1,"kilo international unit per liter","k[IU]/L","K[IU]/L","arbitrary",1e6,[-3,0,0,0,0,0,0],"(ki.U.)/L","chemical",!0,null,null,1,!1,!0,0,"kIU/L; kIU per L; kIU per liter; kilo international units; litre; allergens; allergy units","LOINC","ACnc","Clinical","IgE has an WHO reference standard so IgE allergen testing can be reported as k[IU]/L","[iU]","[IU]","1",1,!1],[!1,"kilo international unit per milliliter","k[IU]/mL","K[IU]/ML","arbitrary",1e9,[-3,0,0,0,0,0,0],"(ki.U.)/mL","chemical",!0,null,null,1,!1,!0,0,"kIU/mL; kIU per mL; kIU per milliliter; kilo international units; millilitre; allergens; allergy units","LOINC","ACnc","Clinical","IgE has an WHO reference standard so IgE allergen testing can be reported as k[IU]/mL","[iU]","[IU]","1",1,!1],[!1,"katal per kilogram","kat/kg","KAT/KG","catalytic activity",60221367e13,[0,-1,-1,0,0,0,0],"kat/kg","chemical",!0,null,null,1,!1,!1,1,"kat per kg; katals per kilogram; mol/s/kg; moles per seconds per kilogram","LOINC","CCnt","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"katal per liter","kat/L","KAT/L","catalytic activity",60221366999999994e10,[-3,-1,0,0,0,0,0],"kat/L","chemical",!0,null,null,1,!1,!1,1,"kat per L; katals per liter; litre; mol/s/L; moles per seconds per liter","LOINC","CCnc","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"kilocalorie","kcal","KCAL","energy",4184e3,[2,-2,1,0,0,0,0],"kcal","heat",!0,null,null,1,!1,!1,0,"kilogram calories; large calories; food calories; kcals","LOINC","EngRat","Clinical","It is equal to 1000 calories (equal to 4.184 kJ). But in practical usage, kcal refers to food calories which excludes caloric content in fiber and other constitutes that is not digestible by humans. Also see nutrition label Calories ([Cal])","cal_th","CAL_TH","1",1,!1],[!1,"kilocalorie per 24 hour","kcal/(24.h)","KCAL/(24.HR)","energy",48.425925925925924,[2,-3,1,0,0,0,0],"kcal/h","heat",!0,null,null,1,!1,!1,0,"kcal/24hrs; kcal/24 hrs; kcal per 24hrs; kilocalories per 24 hours; kilojoules; kJ/24hr; kJ/(24.h); kJ/dy; kilojoules per days; intake; calories burned; metabolic rate; food calories","","EngRat","Clinical","","cal_th","CAL_TH","1",1,!1],[!1,"kilocalorie per ounce","kcal/[oz_av]","KCAL/[OZ_AV]","energy",147586.25679704445,[2,-2,0,0,0,0,0],"kcal/oz","heat",!0,null,null,1,!1,!1,0,"kcal/oz; kcal per ozs; large calories per ounces; food calories; servings; international","LOINC","EngCnt","Clinical","used in nutrition to represent calorie of food","cal_th","CAL_TH","1",1,!1],[!1,"kilocalorie per day","kcal/d","KCAL/D","energy",48.425925925925924,[2,-3,1,0,0,0,0],"kcal/d","heat",!0,null,null,1,!1,!1,0,"kcal/dy; kcal per day; kilocalories per days; kilojoules; kJ/dy; kilojoules per days; intake; calories burned; metabolic rate; food calories","LOINC","EngRat","Clinical","unit in nutrition for food intake (measured in calories) in a day","cal_th","CAL_TH","1",1,!1],[!1,"kilocalorie per hour","kcal/h","KCAL/HR","energy",1162.2222222222222,[2,-3,1,0,0,0,0],"kcal/h","heat",!0,null,null,1,!1,!1,0,"kcal/hrs; kcals per hr; intake; kilocalories per hours; kilojoules","LOINC","EngRat","Clinical","used in nutrition to represent caloric requirement or consumption","cal_th","CAL_TH","1",1,!1],[!1,"kilocalorie per kilogram per 24 hour","kcal/kg/(24.h)","(KCAL/KG)/(24.HR)","energy",.04842592592592593,[2,-3,0,0,0,0,0],"(kcal/kg)/h","heat",!0,null,null,1,!1,!1,0,"kcal/kg/24hrs; 24 hrs; kcal per kg per 24hrs; kilocalories per kilograms per 24 hours; kilojoules","LOINC","EngCntRat","Clinical","used in nutrition to represent caloric requirement per day based on subject's body weight in kilograms","cal_th","CAL_TH","1",1,!1],[!1,"kilogram","kg","KG","mass",1e3,[0,0,1,0,0,0,0],"kg",null,!1,"M",null,1,!1,!1,0,"kilograms; kgs","LOINC","Mass","Clinical","",null,null,null,null,!1],[!1,"kilogram meter per second","kg.m/s","(KG.M)/S","mass",1e3,[1,-1,1,0,0,0,0],"(kg.m)/s",null,!1,"M",null,1,!1,!1,0,"kg*m/s; kg.m per sec; kg*m per sec; p; momentum","LOINC","","Clinical","unit for momentum = mass times velocity",null,null,null,null,!1],[!1,"kilogram per second per square meter","kg/(s.m2)","KG/(S.M2)","mass",1e3,[-2,-1,1,0,0,0,0],"kg/(s.(m2))",null,!1,"M",null,1,!1,!1,0,"kg/(s*m2); kg/(s*m^2); kg per s per m2; per sec; per m^2; kilograms per seconds per square meter; meter squared; metre","LOINC","ArMRat","Clinical","",null,null,null,null,!1],[!1,"kilogram per hour","kg/h","KG/HR","mass",.2777777777777778,[0,-1,1,0,0,0,0],"kg/h",null,!1,"M",null,1,!1,!1,0,"kg/hr; kg per hr; kilograms per hour","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"kilogram per liter","kg/L","KG/L","mass",1e6,[-3,0,1,0,0,0,0],"kg/L",null,!1,"M",null,1,!1,!1,0,"kg per liter; litre; kilograms","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"kilogram per square meter","kg/m2","KG/M2","mass",1e3,[-2,0,1,0,0,0,0],"kg/(m2)",null,!1,"M",null,1,!1,!1,0,"kg/m^2; kg/sq. m; kg per m2; per m^2; per sq. m; kilograms; meter squared; metre; BMI","LOINC","Ratio","Clinical","units for body mass index (BMI)",null,null,null,null,!1],[!1,"kilogram per cubic meter","kg/m3","KG/M3","mass",1e3,[-3,0,1,0,0,0,0],"kg/(m3)",null,!1,"M",null,1,!1,!1,0,"kg/m^3; kg/cu. m; kg per m3; per m^3; per cu. m; kilograms; meters cubed; metre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"kilogram per minute","kg/min","KG/MIN","mass",16.666666666666668,[0,-1,1,0,0,0,0],"kg/min",null,!1,"M",null,1,!1,!1,0,"kilogram/minute; kg per min; kilograms per minute","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"kilogram per mole","kg/mol","KG/MOL","mass",16605401866749388e-37,[0,0,1,0,0,0,0],"kg/mol",null,!1,"M",null,1,!1,!1,-1,"kilogram/mole; kg per mol; kilograms per mole","LOINC","SCnt","Clinical","",null,null,null,null,!1],[!1,"kilogram per second","kg/s","KG/S","mass",1e3,[0,-1,1,0,0,0,0],"kg/s",null,!1,"M",null,1,!1,!1,0,"kg/sec; kilogram/second; kg per sec; kilograms; second","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"kiloliter","kL","KL","volume",1,[3,0,0,0,0,0,0],"kL","iso1000",!0,null,null,1,!1,!1,0,"kiloliters; kilolitres; m3; m^3; meters cubed; metre","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"kilometer","km","KM","length",1e3,[1,0,0,0,0,0,0],"km",null,!1,"L",null,1,!1,!1,0,"kilometers; kilometres; distance","LOINC","Len","Clinical","",null,null,null,null,!1],[!1,"kilopascal","kPa","KPAL","pressure",1e6,[-1,-2,1,0,0,0,0],"kPa","si",!0,null,null,1,!1,!1,0,"kilopascals; pressure","LOINC","Pres; PPresDiff","Clinical","","N/m2","N/M2","1",1,!1],[!1,"kilosecond","ks","KS","time",1e3,[0,1,0,0,0,0,0],"ks",null,!1,"T",null,1,!1,!1,0,"kiloseconds; ksec","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"kilo enzyme unit","kU","KU","catalytic activity",100368945e11,[0,-1,0,0,0,0,0],"kU","chemical",!0,null,null,1,!1,!1,1,"units; mmol/min; millimoles per minute","LOINC","CAct","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 kU = 1 mmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"kilo enzyme unit per gram","kU/g","KU/G","catalytic activity",100368945e11,[0,-1,-1,0,0,0,0],"kU/g","chemical",!0,null,null,1,!1,!1,1,"units per grams; kU per gm","LOINC","CCnt","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 kU = 1 mmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"kilo enzyme unit per liter","kU/L","KU/L","catalytic activity",100368945e14,[-3,-1,0,0,0,0,0],"kU/L","chemical",!0,null,null,1,!1,!1,1,"units per liter; litre; enzymatic activity; enzyme activity per volume; activities","LOINC","ACnc; CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 kU = 1 mmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"kilo enzyme unit per milliliter","kU/mL","KU/ML","catalytic activity",100368945e17,[-3,-1,0,0,0,0,0],"kU/mL","chemical",!0,null,null,1,!1,!1,1,"kU per mL; units per milliliter; millilitre; enzymatic activity per volume; enzyme activities","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 kU = 1 mmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"Liters per 24 hour","L/(24.h)","L/(24.HR)","volume",11574074074074074e-24,[3,-1,0,0,0,0,0],"L/h","iso1000",!0,null,null,1,!1,!1,0,"L/24hrs; L/24 hrs; L per 24hrs; liters per 24 hours; day; dy; litres; volume flow rate","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"Liters per 8 hour","L/(8.h)","L/(8.HR)","volume",3472222222222222e-23,[3,-1,0,0,0,0,0],"L/h","iso1000",!0,null,null,1,!1,!1,0,"L/8hrs; L/8 hrs; L per 8hrs; liters per 8 hours; litres; volume flow rate; shift","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"Liters per minute per square meter","L/(min.m2) ","L/(MIN.M2)","volume",16666666666666667e-21,[1,-1,0,0,0,0,0],"L/(min.(m2))","iso1000",!0,null,null,1,!1,!1,0,"L/(min.m2); L/min/m^2; L/min/sq. meter; L per min per m2; m^2; liters per minutes per square meter; meter squared; litres; metre ","LOINC","ArVRat","Clinical","unit for tests that measure cardiac output per body surface area (cardiac index)","l",null,"1",1,!1],[!1,"Liters per day","L/d","L/D","volume",11574074074074074e-24,[3,-1,0,0,0,0,0],"L/d","iso1000",!0,null,null,1,!1,!1,0,"L/dy; L per day; 24hrs; 24 hrs; 24 hours; liters; litres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"Liters per hour","L/h","L/HR","volume",27777777777777776e-23,[3,-1,0,0,0,0,0],"L/h","iso1000",!0,null,null,1,!1,!1,0,"L/hr; L per hr; litres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"Liters per kilogram","L/kg","L/KG","volume",1e-6,[3,0,-1,0,0,0,0],"L/kg","iso1000",!0,null,null,1,!1,!1,0,"L per kg; litre","LOINC","VCnt","Clinical","","l",null,"1",1,!1],[!1,"Liters per liter","L/L","L/L","volume",1,[0,0,0,0,0,0,0],"L/L","iso1000",!0,null,null,1,!1,!1,0,"L per L; liter/liter; litre","LOINC","VFr","Clinical","","l",null,"1",1,!1],[!1,"Liters per minute","L/min","L/MIN","volume",16666666666666667e-21,[3,-1,0,0,0,0,0],"L/min","iso1000",!0,null,null,1,!1,!1,0,"liters per minute; litre","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"Liters per minute per square meter","L/min/m2","(L/MIN)/M2","volume",16666666666666667e-21,[1,-1,0,0,0,0,0],"(L/min)/(m2)","iso1000",!0,null,null,1,!1,!1,0,"L/(min.m2); L/min/m^2; L/min/sq. meter; L per min per m2; m^2; liters per minutes per square meter; meter squared; litres; metre ","","ArVRat","Clinical","unit for tests that measure cardiac output per body surface area (cardiac index)","l",null,"1",1,!1],[!1,"Liters per second","L/s","L/S","volume",.001,[3,-1,0,0,0,0,0],"L/s","iso1000",!0,null,null,1,!1,!1,0,"L per sec; litres","LOINC","VRat","Clinical","unit used often to measure gas flow and peak expiratory flow","l",null,"1",1,!1],[!1,"Liters per second per square second","L/s/s2","(L/S)/S2","volume",.001,[3,-3,0,0,0,0,0],"(L/s)/(s2)","iso1000",!0,null,null,1,!1,!1,0,"L/s/s^2; L/sec/sec2; L/sec/sec^2; L/sec/sq. sec; L per s per s2; L per sec per sec2; s^2; sec^2; liters per seconds per square second; second squared; litres ","LOINC","ArVRat","Clinical","unit for tests that measure cardiac output/body surface area","l",null,"1",1,!1],[!1,"lumen square meter","lm.m2","LM.M2","luminous flux",1,[2,0,0,2,0,0,1],"lm.(m2)","si",!0,null,null,1,!1,!1,0,"lm*m2; lm*m^2; lumen meters squared; lumen sq. meters; metres","LOINC","","Clinical","","cd.sr","CD.SR","1",1,!1],[!1,"meter per second","m/s","M/S","length",1,[1,-1,0,0,0,0,0],"m/s",null,!1,"L",null,1,!1,!1,0,"meter/second; m per sec; meters per second; metres; velocity; speed","LOINC","Vel","Clinical","unit of velocity",null,null,null,null,!1],[!1,"meter per square second","m/s2","M/S2","length",1,[1,-2,0,0,0,0,0],"m/(s2)",null,!1,"L",null,1,!1,!1,0,"m/s^2; m/sq. sec; m per s2; per s^2; meters per square second; second squared; sq second; metres; acceleration","LOINC","Accel","Clinical","unit of acceleration",null,null,null,null,!1],[!1,"milli international unit per liter","m[IU]/L","M[IU]/L","arbitrary",1,[-3,0,0,0,0,0,0],"(mi.U.)/L","chemical",!0,null,null,1,!1,!0,0,"mIU/L; m IU/L; mIU per liter; units; litre","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"milli international unit per milliliter","m[IU]/mL","M[IU]/ML","arbitrary",1000.0000000000001,[-3,0,0,0,0,0,0],"(mi.U.)/mL","chemical",!0,null,null,1,!1,!0,0,"mIU/mL; m IU/mL; mIU per mL; milli international units per milliliter; millilitre","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"square meter","m2","M2","length",1,[2,0,0,0,0,0,0],"m2",null,!1,"L",null,1,!1,!1,0,"m^2; sq m; square meters; meters squared; metres","LOINC","Area","Clinical","unit often used to represent body surface area",null,null,null,null,!1],[!1,"square meter per second","m2/s","M2/S","length",1,[2,-1,0,0,0,0,0],"(m2)/s",null,!1,"L",null,1,!1,!1,0,"m^2/sec; m2 per sec; m^2 per sec; sq m/sec; meters squared/seconds; sq m per sec; meters squared; metres","LOINC","ArRat","Clinical","",null,null,null,null,!1],[!1,"cubic meter per second","m3/s","M3/S","length",1,[3,-1,0,0,0,0,0],"(m3)/s",null,!1,"L",null,1,!1,!1,0,"m^3/sec; m3 per sec; m^3 per sec; cu m/sec; cubic meters per seconds; meters cubed; metres","LOINC","VRat","Clinical","",null,null,null,null,!1],[!1,"milliampere","mA","MA","electric current",.001,[0,-1,0,0,0,1,0],"mA","si",!0,null,null,1,!1,!1,0,"mamp; milliamperes","LOINC","ElpotRat","Clinical","unit of electric current","C/s","C/S","1",1,!1],[!1,"millibar","mbar","MBAR","pressure",1e5,[-1,-2,1,0,0,0,0],"mbar","iso1000",!0,null,null,1,!1,!1,0,"millibars","LOINC","Pres","Clinical","unit of pressure","Pa","PAL","1e5",1e5,!1],[!1,"millibar second per liter","mbar.s/L","(MBAR.S)/L","pressure",1e8,[-4,-1,1,0,0,0,0],"(mbar.s)/L","iso1000",!0,null,null,1,!1,!1,0,"mbar*s/L; mbar.s per L; mbar*s per L; millibar seconds per liter; millibar second per litre","LOINC","","Clinical","unit to measure expiratory resistance","Pa","PAL","1e5",1e5,!1],[!1,"millibar per liter per second","mbar/L/s","(MBAR/L)/S","pressure",1e8,[-4,-3,1,0,0,0,0],"(mbar/L)/s","iso1000",!0,null,null,1,!1,!1,0,"mbar/(L.s); mbar/L/sec; mbar/liter/second; mbar per L per sec; mbar per liter per second; millibars per liters per seconds; litres","LOINC","PresCncRat","Clinical","unit to measure expiratory resistance","Pa","PAL","1e5",1e5,!1],[!1,"milliequivalent","meq","MEQ","amount of substance",60221367e13,[0,0,0,0,0,0,0],"meq","chemical",!0,null,null,1,!1,!1,1,"milliequivalents; meqs","LOINC","Sub","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per 2 hour","meq/(2.h)","MEQ/(2.HR)","amount of substance",836407875e8,[0,-1,0,0,0,0,0],"meq/h","chemical",!0,null,null,1,!1,!1,1,"meq/2hrs; meq/2 hrs; meq per 2 hrs; milliequivalents per 2 hours","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per 24 hour","meq/(24.h)","MEQ/(24.HR)","amount of substance",6970065625e6,[0,-1,0,0,0,0,0],"meq/h","chemical",!0,null,null,1,!1,!1,1,"meq/24hrs; meq/24 hrs; meq per 24 hrs; milliequivalents per 24 hours","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per 8 hour","meq/(8.h)","MEQ/(8.HR)","amount of substance",20910196875e6,[0,-1,0,0,0,0,0],"meq/h","chemical",!0,null,null,1,!1,!1,1,"meq/8hrs; meq/8 hrs; meq per 8 hrs; milliequivalents per 8 hours; shift","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per day","meq/d","MEQ/D","amount of substance",6970065625e6,[0,-1,0,0,0,0,0],"meq/d","chemical",!0,null,null,1,!1,!1,1,"meq/dy; meq per day; milliquivalents per days; meq/24hrs; meq/24 hrs; meq per 24 hrs; milliequivalents per 24 hours","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per deciliter","meq/dL","MEQ/DL","amount of substance",6022136699999999e9,[-3,0,0,0,0,0,0],"meq/dL","chemical",!0,null,null,1,!1,!1,1,"meq per dL; milliequivalents per deciliter; decilitre","LOINC","SCnc","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per gram","meq/g","MEQ/G","amount of substance",60221367e13,[0,0,-1,0,0,0,0],"meq/g","chemical",!0,null,null,1,!1,!1,1,"mgq/gm; meq per gm; milliequivalents per gram","LOINC","MCnt","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per hour","meq/h","MEQ/HR","amount of substance",167281575e9,[0,-1,0,0,0,0,0],"meq/h","chemical",!0,null,null,1,!1,!1,1,"meq/hrs; meq per hrs; milliequivalents per hour","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per kilogram","meq/kg","MEQ/KG","amount of substance",60221367e10,[0,0,-1,0,0,0,0],"meq/kg","chemical",!0,null,null,1,!1,!1,1,"meq per kg; milliequivalents per kilogram","LOINC","SCnt","Clinical","equivalence equals moles per valence; used to measure dose per patient body mass","mol","MOL","1",1,!1],[!1,"milliequivalent per kilogram per hour","meq/kg/h","(MEQ/KG)/HR","amount of substance",167281575e6,[0,-1,-1,0,0,0,0],"(meq/kg)/h","chemical",!0,null,null,1,!1,!1,1,"meq/(kg.h); meq/kg/hr; meq per kg per hr; milliequivalents per kilograms per hour","LOINC","SCntRat","Clinical","equivalence equals moles per valence; unit used to measure dose rate per patient body mass","mol","MOL","1",1,!1],[!1,"milliequivalent per liter","meq/L","MEQ/L","amount of substance",60221367e16,[-3,0,0,0,0,0,0],"meq/L","chemical",!0,null,null,1,!1,!1,1,"milliequivalents per liter; litre; meq per l; acidity","LOINC","SCnc","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per square meter","meq/m2","MEQ/M2","amount of substance",60221367e13,[-2,0,0,0,0,0,0],"meq/(m2)","chemical",!0,null,null,1,!1,!1,1,"meq/m^2; meq/sq. m; milliequivalents per square meter; meter squared; metre","LOINC","ArSub","Clinical","equivalence equals moles per valence; note that the use of m2 in clinical units ofter refers to body surface area","mol","MOL","1",1,!1],[!1,"milliequivalent per minute","meq/min","MEQ/MIN","amount of substance",100368945e11,[0,-1,0,0,0,0,0],"meq/min","chemical",!0,null,null,1,!1,!1,1,"meq per min; milliequivalents per minute","LOINC","SRat","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milliequivalent per milliliter","meq/mL","MEQ/ML","amount of substance",60221367e19,[-3,0,0,0,0,0,0],"meq/mL","chemical",!0,null,null,1,!1,!1,1,"meq per mL; milliequivalents per milliliter; millilitre","LOINC","SCnc","Clinical","equivalence equals moles per valence","mol","MOL","1",1,!1],[!1,"milligram","mg","MG","mass",.001,[0,0,1,0,0,0,0],"mg",null,!1,"M",null,1,!1,!1,0,"milligrams","LOINC","Mass","Clinical","",null,null,null,null,!1],[!1,"milligram per 10 hour","mg/(10.h)","MG/(10.HR)","mass",27777777777777777e-24,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/10hrs; mg/10 hrs; mg per 10 hrs; milligrams per 10 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per 12 hour","mg/(12.h)","MG/(12.HR)","mass",23148148148148148e-24,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/12hrs; mg/12 hrs; per 12 hrs; 12hrs; milligrams per 12 hours","LOINC","MRat","Clinical","units used for tests in urine",null,null,null,null,!1],[!1,"milligram per 2 hour","mg/(2.h)","MG/(2.HR)","mass",13888888888888888e-23,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/2hrs; mg/2 hrs; mg per 2 hrs; 2hrs; milligrams per 2 hours","LOINC","MRat","Clinical","units used for tests in urine",null,null,null,null,!1],[!1,"milligram per 24 hour","mg/(24.h)","MG/(24.HR)","mass",11574074074074074e-24,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/24hrs; mg/24 hrs; milligrams per 24 hours; mg/kg/dy; mg per kg per day; milligrams per kilograms per days","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per 6 hour","mg/(6.h)","MG/(6.HR)","mass",46296296296296295e-24,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/6hrs; mg/6 hrs; mg per 6 hrs; 6hrs; milligrams per 6 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per 72 hour","mg/(72.h)","MG/(72.HR)","mass",3858024691358025e-24,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/72hrs; mg/72 hrs; 72 hrs; 72hrs; milligrams per 72 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per 8 hour","mg/(8.h)","MG/(8.HR)","mass",3472222222222222e-23,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/8hrs; mg/8 hrs; milligrams per 8 hours; shift","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per day","mg/d","MG/D","mass",11574074074074074e-24,[0,-1,1,0,0,0,0],"mg/d",null,!1,"M",null,1,!1,!1,0,"mg/24hrs; mg/24 hrs; milligrams per 24 hours; mg/dy; mg per day; milligrams","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per deciliter","mg/dL","MG/DL","mass",10,[-3,0,1,0,0,0,0],"mg/dL",null,!1,"M",null,1,!1,!1,0,"mg per dL; milligrams per deciliter; decilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"milligram per gram","mg/g","MG/G","mass",.001,[0,0,0,0,0,0,0],"mg/g",null,!1,"M",null,1,!1,!1,0,"mg per gm; milligrams per gram","LOINC","MCnt; MRto","Clinical","",null,null,null,null,!1],[!1,"milligram per hour","mg/h","MG/HR","mass",27777777777777776e-23,[0,-1,1,0,0,0,0],"mg/h",null,!1,"M",null,1,!1,!1,0,"mg/hr; mg per hr; milligrams","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per kilogram","mg/kg","MG/KG","mass",1e-6,[0,0,0,0,0,0,0],"mg/kg",null,!1,"M",null,1,!1,!1,0,"mg per kg; milligrams per kilograms","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"milligram per kilogram per 8 hour","mg/kg/(8.h)","(MG/KG)/(8.HR)","mass",3472222222222222e-26,[0,-1,0,0,0,0,0],"(mg/kg)/h",null,!1,"M",null,1,!1,!1,0,"mg/(8.h.kg); mg/kg/8hrs; mg/kg/8 hrs; mg per kg per 8hrs; 8 hrs; milligrams per kilograms per 8 hours; shift","LOINC","RelMRat; MCntRat","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"milligram per kilogram per day","mg/kg/d","(MG/KG)/D","mass",11574074074074074e-27,[0,-1,0,0,0,0,0],"(mg/kg)/d",null,!1,"M",null,1,!1,!1,0,"mg/(kg.d); mg/(kg.24.h)mg/kg/dy; mg per kg per day; milligrams per kilograms per days; mg/kg/(24.h); mg/kg/24hrs; 24 hrs; 24 hours","LOINC","RelMRat ","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"milligram per kilogram per hour","mg/kg/h","(MG/KG)/HR","mass",27777777777777777e-26,[0,-1,0,0,0,0,0],"(mg/kg)/h",null,!1,"M",null,1,!1,!1,0,"mg/(kg.h); mg/kg/hr; mg per kg per hr; milligrams per kilograms per hour","LOINC","RelMRat; MCntRat","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"milligram per kilogram per minute","mg/kg/min","(MG/KG)/MIN","mass",16666666666666667e-24,[0,-1,0,0,0,0,0],"(mg/kg)/min",null,!1,"M",null,1,!1,!1,0,"mg/(kg.min); mg per kg per min; milligrams per kilograms per minute","LOINC","RelMRat; MCntRat","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"milligram per liter","mg/L","MG/L","mass",1,[-3,0,1,0,0,0,0],"mg/L",null,!1,"M",null,1,!1,!1,0,"mg per l; milligrams per liter; litre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"milligram per square meter","mg/m2","MG/M2","mass",.001,[-2,0,1,0,0,0,0],"mg/(m2)",null,!1,"M",null,1,!1,!1,0,"mg/m^2; mg/sq. m; mg per m2; mg per m^2; mg per sq. milligrams; meter squared; metre","LOINC","ArMass","Clinical","",null,null,null,null,!1],[!1,"milligram per cubic meter","mg/m3","MG/M3","mass",.001,[-3,0,1,0,0,0,0],"mg/(m3)",null,!1,"M",null,1,!1,!1,0,"mg/m^3; mg/cu. m; mg per m3; milligrams per cubic meter; meter cubed; metre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"milligram per milligram","mg/mg","MG/MG","mass",1,[0,0,0,0,0,0,0],"mg/mg",null,!1,"M",null,1,!1,!1,0,"mg per mg; milligrams; milligram/milligram","LOINC","MRto","Clinical","",null,null,null,null,!1],[!1,"milligram per minute","mg/min","MG/MIN","mass",16666666666666667e-21,[0,-1,1,0,0,0,0],"mg/min",null,!1,"M",null,1,!1,!1,0,"mg per min; milligrams per minutes; milligram/minute","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"milligram per milliliter","mg/mL","MG/ML","mass",1000.0000000000001,[-3,0,1,0,0,0,0],"mg/mL",null,!1,"M",null,1,!1,!1,0,"mg per mL; milligrams per milliliters; millilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"milligram per millimole","mg/mmol","MG/MMOL","mass",1660540186674939e-39,[0,0,1,0,0,0,0],"mg/mmol",null,!1,"M",null,1,!1,!1,-1,"mg per mmol; milligrams per millimole; ","LOINC","Ratio","Clinical","",null,null,null,null,!1],[!1,"milligram per week","mg/wk","MG/WK","mass",16534391534391535e-25,[0,-1,1,0,0,0,0],"mg/wk",null,!1,"M",null,1,!1,!1,0,"mg/week; mg per wk; milligrams per weeks; milligram/week","LOINC","Mrat","Clinical","",null,null,null,null,!1],[!1,"milliliter","mL","ML","volume",1e-6,[3,0,0,0,0,0,0],"mL","iso1000",!0,null,null,1,!1,!1,0,"milliliters; millilitres","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 10 hour","mL/(10.h)","ML/(10.HR)","volume",27777777777777777e-27,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/10hrs; ml/10 hrs; mL per 10hrs; 10 hrs; milliliters per 10 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 12 hour","mL/(12.h)","ML/(12.HR)","volume",23148148148148147e-27,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/12hrs; ml/12 hrs; mL per 12hrs; 12 hrs; milliliters per 12 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 2 hour","mL/(2.h)","ML/(2.HR)","volume",13888888888888888e-26,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/2hrs; ml/2 hrs; mL per 2hrs; 2 hrs; milliliters per 2 hours; millilitres ","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 24 hour","mL/(24.h)","ML/(24.HR)","volume",11574074074074074e-27,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/24hrs; ml/24 hrs; mL per 24hrs; 24 hrs; milliliters per 24 hours; millilitres; ml/dy; /day; ml per dy; days; fluid outputs; fluid inputs; flow rate","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 4 hour","mL/(4.h)","ML/(4.HR)","volume",6944444444444444e-26,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/4hrs; ml/4 hrs; mL per 4hrs; 4 hrs; milliliters per 4 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 5 hour","mL/(5.h)","ML/(5.HR)","volume",55555555555555553e-27,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/5hrs; ml/5 hrs; mL per 5hrs; 5 hrs; milliliters per 5 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 6 hour","mL/(6.h)","ML/(6.HR)","volume",46296296296296294e-27,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/6hrs; ml/6 hrs; mL per 6hrs; 6 hrs; milliliters per 6 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 72 hour","mL/(72.h)","ML/(72.HR)","volume",38580246913580245e-28,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/72hrs; ml/72 hrs; mL per 72hrs; 72 hrs; milliliters per 72 hours; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 8 hour","mL/(8.h)","ML/(8.HR)","volume",3472222222222222e-26,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"ml/8hrs; ml/8 hrs; mL per 8hrs; 8 hrs; milliliters per 8 hours; millilitres; shift","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per 8 hour per kilogram","mL/(8.h)/kg","(ML/(8.HR))/KG","volume",3472222222222222e-29,[3,-1,-1,0,0,0,0],"(mL/h)/kg","iso1000",!0,null,null,1,!1,!1,0,"mL/kg/(8.h); ml/8h/kg; ml/8 h/kg; ml/8hr/kg; ml/8 hr/kgr; mL per 8h per kg; 8 h; 8hr; 8 hr; milliliters per 8 hours per kilogram; millilitres; shift","LOINC","VRatCnt","Clinical","unit used to measure renal excretion volume rate per body mass","l",null,"1",1,!1],[!1,"milliliter per square inch (international)","mL/[sin_i]","ML/[SIN_I]","volume",.0015500031000061998,[1,0,0,0,0,0,0],"mL","iso1000",!0,null,null,1,!1,!1,0,"mL/sin; mL/in2; mL/in^2; mL per sin; in2; in^2; sq. in; milliliters per square inch; inch squared","LOINC","ArVol","Clinical","","l",null,"1",1,!1],[!1,"milliliter per centimeter of water","mL/cm[H2O]","ML/CM[H2O]","volume",10197162129779282e-27,[4,2,-1,0,0,0,0],"mL/(cm\xA0HO2)","iso1000",!0,null,null,1,!1,!1,0,"milliliters per centimeter of water; millilitre per centimetre of water; millilitres per centimetre of water; mL/cmH2O; mL/cm H2O; mL per cmH2O; mL per cm H2O","LOINC","Compli","Clinical","unit used to measure dynamic lung compliance","l",null,"1",1,!1],[!1,"milliliter per day","mL/d","ML/D","volume",11574074074074074e-27,[3,-1,0,0,0,0,0],"mL/d","iso1000",!0,null,null,1,!1,!1,0,"ml/day; ml per day; milliliters per day; 24 hours; 24hrs; millilitre;","LOINC","VRat","Clinical","usually used to measure fluid output or input; flow rate","l",null,"1",1,!1],[!1,"milliliter per deciliter","mL/dL","ML/DL","volume",.009999999999999998,[0,0,0,0,0,0,0],"mL/dL","iso1000",!0,null,null,1,!1,!1,0,"mL per dL; millilitres; decilitre; milliliters","LOINC","VFr; VFrDiff","Clinical","","l",null,"1",1,!1],[!1,"milliliter per hour","mL/h","ML/HR","volume",27777777777777777e-26,[3,-1,0,0,0,0,0],"mL/h","iso1000",!0,null,null,1,!1,!1,0,"mL/hr; mL per hr; milliliters per hour; millilitres; fluid intake; fluid output","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per kilogram","mL/kg","ML/KG","volume",9999999999999999e-25,[3,0,-1,0,0,0,0],"mL/kg","iso1000",!0,null,null,1,!1,!1,0,"mL per kg; milliliters per kilogram; millilitres","LOINC","VCnt","Clinical","","l",null,"1",1,!1],[!1,"milliliter per kilogram per 8 hour","mL/kg/(8.h)","(ML/KG)/(8.HR)","volume",3472222222222222e-29,[3,-1,-1,0,0,0,0],"(mL/kg)/h","iso1000",!0,null,null,1,!1,!1,0,"mL/(8.h.kg); mL/kg/8hrs; mL/kg/8 hrs; mL per kg per 8hrs; 8 hrs; milliliters per kilograms per 8 hours; millilitres; shift","LOINC","VCntRat; RelEngRat","Clinical","unit used to measure renal excretion volume rate per body mass","l",null,"1",1,!1],[!1,"milliliter per kilogram per day","mL/kg/d","(ML/KG)/D","volume",11574074074074072e-30,[3,-1,-1,0,0,0,0],"(mL/kg)/d","iso1000",!0,null,null,1,!1,!1,0,"mL/(kg.d); mL/kg/dy; mL per kg per day; milliliters per kilograms per day; mg/kg/24hrs; 24 hrs; per 24 hours millilitres","LOINC","VCntRat; RelEngRat","Clinical","unit used to measure renal excretion volume rate per body mass","l",null,"1",1,!1],[!1,"milliliter per kilogram per hour","mL/kg/h","(ML/KG)/HR","volume",27777777777777774e-29,[3,-1,-1,0,0,0,0],"(mL/kg)/h","iso1000",!0,null,null,1,!1,!1,0,"mL/(kg.h); mL/kg/hr; mL per kg per hr; milliliters per kilograms per hour; millilitres","LOINC","VCntRat; RelEngRat","Clinical","unit used to measure renal excretion volume rate per body mass","l",null,"1",1,!1],[!1,"milliliter per kilogram per minute","mL/kg/min","(ML/KG)/MIN","volume",16666666666666664e-27,[3,-1,-1,0,0,0,0],"(mL/kg)/min","iso1000",!0,null,null,1,!1,!1,0,"mL/(kg.min); mL/kg/dy; mL per kg per day; milliliters per kilograms per day; millilitres","LOINC","RelEngRat","Clinical","used for tests that measure activity metabolic rate compared to standard resting metabolic rate ","l",null,"1",1,!1],[!1,"milliliter per square meter","mL/m2","ML/M2","volume",1e-6,[1,0,0,0,0,0,0],"mL/(m2)","iso1000",!0,null,null,1,!1,!1,0,"mL/m^2; mL/sq. meter; mL per m2; m^2; sq. meter; milliliters per square meter; millilitres; meter squared","LOINC","ArVol","Clinical","used for tests that relate to heart work - e.g. ventricular stroke volume; atrial volume per body surface area","l",null,"1",1,!1],[!1,"milliliter per millibar","mL/mbar","ML/MBAR","volume",1e-11,[4,2,-1,0,0,0,0],"mL/mbar","iso1000",!0,null,null,1,!1,!1,0,"mL per mbar; milliliters per millibar; millilitres","LOINC","","Clinical","unit used to measure dynamic lung compliance","l",null,"1",1,!1],[!1,"milliliter per minute","mL/min","ML/MIN","volume",16666666666666667e-24,[3,-1,0,0,0,0,0],"mL/min","iso1000",!0,null,null,1,!1,!1,0,"mL per min; milliliters; millilitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"milliliter per minute per square meter","mL/min/m2","(ML/MIN)/M2","volume",16666666666666667e-24,[1,-1,0,0,0,0,0],"(mL/min)/(m2)","iso1000",!0,null,null,1,!1,!1,0,"ml/min/m^2; ml/min/sq. meter; mL per min per m2; m^2; sq. meter; milliliters per minutes per square meter; millilitres; metre; meter squared","LOINC","ArVRat","Clinical","unit used to measure volume per body surface area; oxygen consumption index","l",null,"1",1,!1],[!1,"milliliter per millimeter","mL/mm","ML/MM","volume",.001,[2,0,0,0,0,0,0],"mL/mm","iso1000",!0,null,null,1,!1,!1,0,"mL per mm; milliliters per millimeter; millilitres; millimetre","LOINC","Lineic Volume","Clinical","","l",null,"1",1,!1],[!1,"milliliter per second","mL/s","ML/S","volume",1e-6,[3,-1,0,0,0,0,0],"mL/s","iso1000",!0,null,null,1,!1,!1,0,"ml/sec; mL per sec; milliliters per second; millilitres","LOINC","Vel; VelRat; VRat","Clinical","","l",null,"1",1,!1],[!1,"millimeter","mm","MM","length",.001,[1,0,0,0,0,0,0],"mm",null,!1,"L",null,1,!1,!1,0,"millimeters; millimetres; height; length; diameter; thickness; axis; curvature; size","LOINC","Len","Clinical","",null,null,null,null,!1],[!1,"millimeter per hour","mm/h","MM/HR","length",27777777777777776e-23,[1,-1,0,0,0,0,0],"mm/h",null,!1,"L",null,1,!1,!1,0,"mm/hr; mm per hr; millimeters per hour; millimetres","LOINC","Vel","Clinical","unit to measure sedimentation rate",null,null,null,null,!1],[!1,"millimeter per minute","mm/min","MM/MIN","length",16666666666666667e-21,[1,-1,0,0,0,0,0],"mm/min",null,!1,"L",null,1,!1,!1,0,"mm per min; millimeters per minute; millimetres","LOINC","Vel","Clinical","",null,null,null,null,!1],[!1,"millimeter of water","mm[H2O]","MM[H2O]","pressure",9806.65,[-1,-2,1,0,0,0,0],"mm\xA0HO2","clinical",!0,null,null,1,!1,!1,0,"mmH2O; mm H2O; millimeters of water; millimetres","LOINC","Pres","Clinical","","kPa","KPAL","980665e-5",9.80665,!1],[!1,"millimeter of mercury","mm[Hg]","MM[HG]","pressure",133322,[-1,-2,1,0,0,0,0],"mm\xA0Hg","clinical",!0,null,null,1,!1,!1,0,"mmHg; mm Hg; millimeters of mercury; millimetres","LOINC","Pres; PPres; Ratio","Clinical","1 mm[Hg] = 1 torr; unit to measure blood pressure","kPa","KPAL","133.3220",133.322,!1],[!1,"square millimeter","mm2","MM2","length",1e-6,[2,0,0,0,0,0,0],"mm2",null,!1,"L",null,1,!1,!1,0,"mm^2; sq. mm.; sq. millimeters; millimeters squared; millimetres","LOINC","Area","Clinical","",null,null,null,null,!1],[!1,"millimole","mmol","MMOL","amount of substance",60221367e13,[0,0,0,0,0,0,0],"mmol","si",!0,null,null,1,!1,!1,1,"millimoles","LOINC","Sub","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 12 hour","mmol/(12.h)","MMOL/(12.HR)","amount of substance",1394013125e7,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/12hrs; mmol/12 hrs; mmol per 12 hrs; 12hrs; millimoles per 12 hours","LOINC","SRat","Clinical","unit for tests related to urine","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 2 hour","mmol/(2.h)","MMOL/(2.HR)","amount of substance",836407875e8,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/2hrs; mmol/2 hrs; mmol per 2 hrs; 2hrs; millimoles per 2 hours","LOINC","SRat","Clinical","unit for tests related to urine","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 24 hour","mmol/(24.h)","MMOL/(24.HR)","amount of substance",6970065625e6,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/24hrs; mmol/24 hrs; mmol per 24 hrs; 24hrs; millimoles per 24 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 5 hour","mmol/(5.h)","MMOL/(5.HR)","amount of substance",33456315e9,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/5hrs; mmol/5 hrs; mmol per 5 hrs; 5hrs; millimoles per 5 hours","LOINC","SRat","Clinical","unit for tests related to doses","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 6 hour","mmol/(6.h)","MMOL/(6.HR)","amount of substance",278802625e8,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/6hrs; mmol/6 hrs; mmol per 6 hrs; 6hrs; millimoles per 6 hours","LOINC","SRat","Clinical","unit for tests related to urine","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per 8 hour","mmol/(8.h)","MMOL/(8.HR)","amount of substance",20910196875e6,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/8hrs; mmol/8 hrs; mmol per 8 hrs; 8hrs; millimoles per 8 hours; shift","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per day","mmol/d","MMOL/D","amount of substance",6970065625e6,[0,-1,0,0,0,0,0],"mmol/d","si",!0,null,null,1,!1,!1,1,"mmol/24hrs; mmol/24 hrs; mmol per 24 hrs; 24hrs; millimoles per 24 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per deciliter","mmol/dL","MMOL/DL","amount of substance",6022136699999999e9,[-3,0,0,0,0,0,0],"mmol/dL","si",!0,null,null,1,!1,!1,1,"mmol per dL; millimoles; decilitre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per gram","mmol/g","MMOL/G","amount of substance",60221367e13,[0,0,-1,0,0,0,0],"mmol/g","si",!0,null,null,1,!1,!1,1,"mmol per gram; millimoles","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per hour","mmol/h","MMOL/HR","amount of substance",167281575e9,[0,-1,0,0,0,0,0],"mmol/h","si",!0,null,null,1,!1,!1,1,"mmol/hr; mmol per hr; millimoles per hour","LOINC","SRat","Clinical","unit for tests related to urine","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per kilogram","mmol/kg","MMOL/KG","amount of substance",60221367e10,[0,0,-1,0,0,0,0],"mmol/kg","si",!0,null,null,1,!1,!1,1,"mmol per kg; millimoles per kilogram","LOINC","SCnt","Clinical","unit for tests related to stool","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per kilogram per 8 hour","mmol/kg/(8.h)","(MMOL/KG)/(8.HR)","amount of substance",20910196875e3,[0,-1,-1,0,0,0,0],"(mmol/kg)/h","si",!0,null,null,1,!1,!1,1,"mmol/(8.h.kg); mmol/kg/8hrs; mmol/kg/8 hrs; mmol per kg per 8hrs; 8 hrs; millimoles per kilograms per 8 hours; shift","LOINC","CCnt","Clinical","unit used to measure molar dose rate per patient body mass","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per kilogram per day","mmol/kg/d","(MMOL/KG)/D","amount of substance",6970065625e3,[0,-1,-1,0,0,0,0],"(mmol/kg)/d","si",!0,null,null,1,!1,!1,1,"mmol/kg/dy; mmol/kg/day; mmol per kg per dy; millimoles per kilograms per day","LOINC","RelSRat","Clinical","unit used to measure molar dose rate per patient body mass","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per kilogram per hour","mmol/kg/h","(MMOL/KG)/HR","amount of substance",167281575e6,[0,-1,-1,0,0,0,0],"(mmol/kg)/h","si",!0,null,null,1,!1,!1,1,"mmol/kg/hr; mmol per kg per hr; millimoles per kilograms per hour","LOINC","CCnt","Clinical","unit used to measure molar dose rate per patient body mass","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per kilogram per minute","mmol/kg/min","(MMOL/KG)/MIN","amount of substance",100368945e8,[0,-1,-1,0,0,0,0],"(mmol/kg)/min","si",!0,null,null,1,!1,!1,1,"mmol/(kg.min); mmol/kg/min; mmol per kg per min; millimoles per kilograms per minute","LOINC","CCnt","Clinical","unit used to measure molar dose rate per patient body mass; note that the unit for the enzyme unit U = umol/min. mmol/kg/min = kU/kg; ","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per liter","mmol/L","MMOL/L","amount of substance",60221367e16,[-3,0,0,0,0,0,0],"mmol/L","si",!0,null,null,1,!1,!1,1,"mmol per L; millimoles per liter; litre","LOINC","SCnc","Clinical","unit for tests related to doses","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per square meter","mmol/m2","MMOL/M2","amount of substance",60221367e13,[-2,0,0,0,0,0,0],"mmol/(m2)","si",!0,null,null,1,!1,!1,1,"mmol/m^2; mmol/sq. meter; mmol per m2; m^2; sq. meter; millimoles; meter squared; metre","LOINC","ArSub","Clinical","unit used to measure molar dose per patient body surface area","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per minute","mmol/min","MMOL/MIN","amount of substance",100368945e11,[0,-1,0,0,0,0,0],"mmol/min","si",!0,null,null,1,!1,!1,1,"mmol per min; millimoles per minute","LOINC","Srat; CAct","Clinical","unit for the enzyme unit U = umol/min. mmol/min = kU","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per millimole","mmol/mmol","MMOL/MMOL","amount of substance",1,[0,0,0,0,0,0,0],"mmol/mmol","si",!0,null,null,1,!1,!1,0,"mmol per mmol; millimoles per millimole","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per mole","mmol/mol","MMOL/MOL","amount of substance",.001,[0,0,0,0,0,0,0],"mmol/mol","si",!0,null,null,1,!1,!1,0,"mmol per mol; millimoles per mole","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"millimole per second per liter","mmol/s/L","(MMOL/S)/L","amount of substance",60221367e16,[-3,-1,0,0,0,0,0],"(mmol/s)/L","si",!0,null,null,1,!1,!1,1,"mmol/sec/L; mmol per s per L; per sec; millimoles per seconds per liter; litre","LOINC","CCnc ","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per kilogram","mol/kg","MOL/KG","amount of substance",60221367e13,[0,0,-1,0,0,0,0],"mol/kg","si",!0,null,null,1,!1,!1,1,"mol per kg; moles; mols","LOINC","SCnt","Clinical","unit for tests related to stool","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per kilogram per second","mol/kg/s","(MOL/KG)/S","amount of substance",60221367e13,[0,-1,-1,0,0,0,0],"(mol/kg)/s","si",!0,null,null,1,!1,!1,1,"mol/kg/sec; mol per kg per sec; moles per kilograms per second; mols","LOINC","CCnt","Clinical","unit of catalytic activity (mol/s) per mass (kg)","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per liter","mol/L","MOL/L","amount of substance",60221366999999994e10,[-3,0,0,0,0,0,0],"mol/L","si",!0,null,null,1,!1,!1,1,"mol per L; moles per liter; litre; moles; mols","LOINC","SCnc","Clinical","unit often used in tests measuring oxygen content","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per cubic meter","mol/m3","MOL/M3","amount of substance",60221367e16,[-3,0,0,0,0,0,0],"mol/(m3)","si",!0,null,null,1,!1,!1,1,"mol/m^3; mol/cu. m; mol per m3; m^3; cu. meter; mols; moles; meters cubed; metre; mole per kiloliter; kilolitre; mol/kL","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per milliliter","mol/mL","MOL/ML","amount of substance",60221367e22,[-3,0,0,0,0,0,0],"mol/mL","si",!0,null,null,1,!1,!1,1,"mol per mL; moles; millilitre; mols","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per mole","mol/mol","MOL/MOL","amount of substance",1,[0,0,0,0,0,0,0],"mol/mol","si",!0,null,null,1,!1,!1,0,"mol per mol; moles per mol; mols","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"mole per second","mol/s","MOL/S","amount of substance",60221367e16,[0,-1,0,0,0,0,0],"mol/s","si",!0,null,null,1,!1,!1,1,"mol per sec; moles per second; mols","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"milliosmole","mosm","MOSM","amount of substance (dissolved particles)",60221367e13,[0,0,0,0,0,0,0],"mosm","chemical",!0,null,null,1,!1,!1,1,"milliosmoles","LOINC","Osmol","Clinical","equal to 1/1000 of an osmole","mol","MOL","1",1,!1],[!1,"milliosmole per kilogram","mosm/kg","MOSM/KG","amount of substance (dissolved particles)",60221367e10,[0,0,-1,0,0,0,0],"mosm/kg","chemical",!0,null,null,1,!1,!1,1,"mosm per kg; milliosmoles per kilogram","LOINC","Osmol","Clinical","","mol","MOL","1",1,!1],[!1,"milliosmole per liter","mosm/L","MOSM/L","amount of substance (dissolved particles)",60221367e16,[-3,0,0,0,0,0,0],"mosm/L","chemical",!0,null,null,1,!1,!1,1,"mosm per liter; litre; milliosmoles","LOINC","Osmol","Clinical","","mol","MOL","1",1,!1],[!1,"millipascal","mPa","MPAL","pressure",1,[-1,-2,1,0,0,0,0],"mPa","si",!0,null,null,1,!1,!1,0,"millipascals","LOINC","Pres","Clinical","unit of pressure","N/m2","N/M2","1",1,!1],[!1,"millipascal second","mPa.s","MPAL.S","pressure",1,[-1,-1,1,0,0,0,0],"mPa.s","si",!0,null,null,1,!1,!1,0,"mPa*s; millipoise; mP; dynamic viscosity","LOINC","Visc","Clinical","base units for millipoise, a measurement of dynamic viscosity","N/m2","N/M2","1",1,!1],[!1,"megasecond","Ms","MAS","time",1e6,[0,1,0,0,0,0,0],"Ms",null,!1,"T",null,1,!1,!1,0,"megaseconds","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"millisecond","ms","MS","time",.001,[0,1,0,0,0,0,0],"ms",null,!1,"T",null,1,!1,!1,0,"milliseconds; duration","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"milli enzyme unit per gram","mU/g","MU/G","catalytic activity",100368945e5,[0,-1,-1,0,0,0,0],"mU/g","chemical",!0,null,null,1,!1,!1,1,"mU per gm; milli enzyme units per gram; enzyme activity; enzymatic activity per mass","LOINC","CCnt","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 mU = 1 nmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"milli enzyme unit per liter","mU/L","MU/L","catalytic activity",100368945e8,[-3,-1,0,0,0,0,0],"mU/L","chemical",!0,null,null,1,!1,!1,1,"mU per liter; litre; milli enzyme units enzymatic activity per volume; enzyme activity","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 mU = 1 nmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"milli enzyme unit per milligram","mU/mg","MU/MG","catalytic activity",100368945e8,[0,-1,-1,0,0,0,0],"mU/mg","chemical",!0,null,null,1,!1,!1,1,"mU per mg; milli enzyme units per milligram","LOINC","CCnt","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 mU = 1 nmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"milli enzyme unit per milliliter","mU/mL","MU/ML","catalytic activity",100368945e11,[-3,-1,0,0,0,0,0],"mU/mL","chemical",!0,null,null,1,!1,!1,1,"mU per mL; milli enzyme units per milliliter; millilitre; enzymatic activity per volume; enzyme activity","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 mU = 1 nmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"milli enzyme unit per milliliter per minute","mU/mL/min","(MU/ML)/MIN","catalytic activity",167281575e9,[-3,-2,0,0,0,0,0],"(mU/mL)/min","chemical",!0,null,null,1,!1,!1,1,"mU per mL per min; mU per milliliters per minute; millilitres; milli enzyme units; enzymatic activity; enzyme activity","LOINC","CCncRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 mU = 1 nmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"millivolt","mV","MV","electric potential",1,[2,-2,1,0,0,-1,0],"mV","si",!0,null,null,1,!1,!1,0,"millivolts","LOINC","Elpot","Clinical","unit of electric potential (voltage)","J/C","J/C","1",1,!1],[!1,"Newton centimeter","N.cm","N.CM","force",10,[2,-2,1,0,0,0,0],"N.cm","si",!0,null,null,1,!1,!1,0,"N*cm; Ncm; N cm; Newton*centimeters; Newton* centimetres; torque; work","LOINC","","Clinical",`as a measurement of work, N.cm = 1/100 Joules; +note that N.m is the standard unit of measurement for torque (although dimensionally equivalent to Joule), and N.cm can also be thought of as a torqe unit`,"kg.m/s2","KG.M/S2","1",1,!1],[!1,"Newton second","N.s","N.S","force",1e3,[1,-1,1,0,0,0,0],"N.s","si",!0,null,null,1,!1,!1,0,"Newton*seconds; N*s; N s; Ns; impulse; imp","LOINC","","Clinical","standard unit of impulse","kg.m/s2","KG.M/S2","1",1,!1],[!1,"nanogram","ng","NG","mass",1e-9,[0,0,1,0,0,0,0],"ng",null,!1,"M",null,1,!1,!1,0,"nanograms","LOINC","Mass","Clinical","",null,null,null,null,!1],[!1,"nanogram per 24 hour","ng/(24.h)","NG/(24.HR)","mass",11574074074074075e-30,[0,-1,1,0,0,0,0],"ng/h",null,!1,"M",null,1,!1,!1,0,"ng/24hrs; ng/24 hrs; nanograms per 24 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per 8 hour","ng/(8.h)","NG/(8.HR)","mass",34722222222222224e-30,[0,-1,1,0,0,0,0],"ng/h",null,!1,"M",null,1,!1,!1,0,"ng/8hrs; ng/8 hrs; nanograms per 8 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per million","ng/10*6","NG/(10*6)","mass",1e-15,[0,0,1,0,0,0,0],"ng/(106)",null,!1,"M",null,1,!1,!1,0,"ng/10^6; ng per 10*6; 10^6; nanograms","LOINC","MNum","Clinical","",null,null,null,null,!1],[!1,"nanogram per day","ng/d","NG/D","mass",11574074074074075e-30,[0,-1,1,0,0,0,0],"ng/d",null,!1,"M",null,1,!1,!1,0,"ng/dy; ng per day; nanograms ","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per deciliter","ng/dL","NG/DL","mass",1e-5,[-3,0,1,0,0,0,0],"ng/dL",null,!1,"M",null,1,!1,!1,0,"ng per dL; nanograms per deciliter; decilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"nanogram per gram","ng/g","NG/G","mass",1e-9,[0,0,0,0,0,0,0],"ng/g",null,!1,"M",null,1,!1,!1,0,"ng/gm; ng per gm; nanograms per gram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"nanogram per hour","ng/h","NG/HR","mass",2777777777777778e-28,[0,-1,1,0,0,0,0],"ng/h",null,!1,"M",null,1,!1,!1,0,"ng/hr; ng per hr; nanograms per hour","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per kilogram","ng/kg","NG/KG","mass",1e-12,[0,0,0,0,0,0,0],"ng/kg",null,!1,"M",null,1,!1,!1,0,"ng per kg; nanograms per kilogram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"nanogram per kilogram per 8 hour","ng/kg/(8.h)","(NG/KG)/(8.HR)","mass",3472222222222222e-32,[0,-1,0,0,0,0,0],"(ng/kg)/h",null,!1,"M",null,1,!1,!1,0,"ng/(8.h.kg); ng/kg/8hrs; ng/kg/8 hrs; ng per kg per 8hrs; 8 hrs; nanograms per kilograms per 8 hours; shift","LOINC","MRtoRat ","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"nanogram per kilogram per hour","ng/kg/h","(NG/KG)/HR","mass",27777777777777775e-32,[0,-1,0,0,0,0,0],"(ng/kg)/h",null,!1,"M",null,1,!1,!1,0,"ng/(kg.h); ng/kg/hr; ng per kg per hr; nanograms per kilograms per hour","LOINC","MRtoRat ","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"nanogram per kilogram per minute","ng/kg/min","(NG/KG)/MIN","mass",16666666666666667e-30,[0,-1,0,0,0,0,0],"(ng/kg)/min",null,!1,"M",null,1,!1,!1,0,"ng/(kg.min); ng per kg per min; nanograms per kilograms per minute","LOINC","MRtoRat ","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"nanogram per liter","ng/L","NG/L","mass",1e-6,[-3,0,1,0,0,0,0],"ng/L",null,!1,"M",null,1,!1,!1,0,"ng per L; nanograms per liter; litre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"nanogram per square meter","ng/m2","NG/M2","mass",1e-9,[-2,0,1,0,0,0,0],"ng/(m2)",null,!1,"M",null,1,!1,!1,0,"ng/m^2; ng/sq. m; ng per m2; m^2; sq. meter; nanograms; meter squared; metre","LOINC","ArMass","Clinical","unit used to measure mass dose per patient body surface area",null,null,null,null,!1],[!1,"nanogram per milligram","ng/mg","NG/MG","mass",1e-6,[0,0,0,0,0,0,0],"ng/mg",null,!1,"M",null,1,!1,!1,0,"ng per mg; nanograms","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"nanogram per milligram per hour","ng/mg/h","(NG/MG)/HR","mass",27777777777777777e-26,[0,-1,0,0,0,0,0],"(ng/mg)/h",null,!1,"M",null,1,!1,!1,0,"ng/mg/hr; ng per mg per hr; nanograms per milligrams per hour","LOINC","MRtoRat ","Clinical","",null,null,null,null,!1],[!1,"nanogram per minute","ng/min","NG/MIN","mass",16666666666666667e-27,[0,-1,1,0,0,0,0],"ng/min",null,!1,"M",null,1,!1,!1,0,"ng per min; nanograms","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per millliiter","ng/mL","NG/ML","mass",.001,[-3,0,1,0,0,0,0],"ng/mL",null,!1,"M",null,1,!1,!1,0,"ng per mL; nanograms; millilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"nanogram per milliliter per hour","ng/mL/h","(NG/ML)/HR","mass",27777777777777776e-23,[-3,-1,1,0,0,0,0],"(ng/mL)/h",null,!1,"M",null,1,!1,!1,0,"ng/mL/hr; ng per mL per mL; nanograms per milliliter per hour; nanogram per millilitre per hour; nanograms per millilitre per hour; enzymatic activity per volume; enzyme activity per milliliters","LOINC","CCnc","Clinical","tests that measure enzymatic activity",null,null,null,null,!1],[!1,"nanogram per second","ng/s","NG/S","mass",1e-9,[0,-1,1,0,0,0,0],"ng/s",null,!1,"M",null,1,!1,!1,0,"ng/sec; ng per sec; nanograms per second","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"nanogram per enzyme unit","ng/U","NG/U","mass",9963241120049634e-41,[0,1,1,0,0,0,0],"ng/U",null,!1,"M",null,1,!1,!1,-1,"ng per U; nanograms per enzyme unit","LOINC","CMass","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)",null,null,null,null,!1],[!1,"nanokatal","nkat","NKAT","catalytic activity",60221367e7,[0,-1,0,0,0,0,0],"nkat","chemical",!0,null,null,1,!1,!1,1,"nanokatals","LOINC","CAct","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"nanoliter","nL","NL","volume",10000000000000002e-28,[3,0,0,0,0,0,0],"nL","iso1000",!0,null,null,1,!1,!1,0,"nanoliters; nanolitres","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"nanometer","nm","NM","length",1e-9,[1,0,0,0,0,0,0],"nm",null,!1,"L",null,1,!1,!1,0,"nanometers; nanometres","LOINC","Len","Clinical","",null,null,null,null,!1],[!1,"nanometer per second per liter","nm/s/L","(NM/S)/L","length",1e-6,[-2,-1,0,0,0,0,0],"(nm/s)/L",null,!1,"L",null,1,!1,!1,0,"nm/sec/liter; nm/sec/litre; nm per s per l; nm per sec per l; nanometers per second per liter; nanometre per second per litre; nanometres per second per litre","LOINC","VelCnc","Clinical","",null,null,null,null,!1],[!1,"nanomole","nmol","NMOL","amount of substance",60221367e7,[0,0,0,0,0,0,0],"nmol","si",!0,null,null,1,!1,!1,1,"nanomoles","LOINC","Sub","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per 24 hour","nmol/(24.h)","NMOL/(24.HR)","amount of substance",6970065625,[0,-1,0,0,0,0,0],"nmol/h","si",!0,null,null,1,!1,!1,1,"nmol/24hr; nmol/24 hr; nanomoles per 24 hours; nmol/day; nanomoles per day; nmol per day; nanomole/day; nanomol/day","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per day","nmol/d","NMOL/D","amount of substance",6970065625,[0,-1,0,0,0,0,0],"nmol/d","si",!0,null,null,1,!1,!1,1,"nmol/day; nanomoles per day; nmol per day; nanomole/day; nanomol/day; nmol/24hr; nmol/24 hr; nanomoles per 24 hours; ","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per deciliter","nmol/dL","NMOL/DL","amount of substance",60221367e11,[-3,0,0,0,0,0,0],"nmol/dL","si",!0,null,null,1,!1,!1,1,"nmol per dL; nanomoles per deciliter; nanomole per decilitre; nanomoles per decilitre; nanomole/deciliter; nanomole/decilitre; nanomol/deciliter; nanomol/decilitre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per gram","nmol/g","NMOL/G","amount of substance",60221367e7,[0,0,-1,0,0,0,0],"nmol/g","si",!0,null,null,1,!1,!1,1,"nmol per gram; nanomoles per gram; nanomole/gram","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per hour per liter","nmol/h/L","(NMOL/HR)/L","amount of substance",167281575e6,[-3,-1,0,0,0,0,0],"(nmol/h)/L","si",!0,null,null,1,!1,!1,1,"nmol/hrs/L; nmol per hrs per L; nanomoles per hours per liter; litre; enzymatic activity per volume; enzyme activities","LOINC","CCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per liter","nmol/L","NMOL/L","amount of substance",60221367e10,[-3,0,0,0,0,0,0],"nmol/L","si",!0,null,null,1,!1,!1,1,"nmol per L; nanomoles per liter; litre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milligram","nmol/mg","NMOL/MG","amount of substance",60221367e10,[0,0,-1,0,0,0,0],"nmol/mg","si",!0,null,null,1,!1,!1,1,"nmol per mg; nanomoles per milligram","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milligram per hour","nmol/mg/h","(NMOL/MG)/HR","amount of substance",167281575e6,[0,-1,-1,0,0,0,0],"(nmol/mg)/h","si",!0,null,null,1,!1,!1,1,"nmol/mg/hr; nmol per mg per hr; nanomoles per milligrams per hour","LOINC","SCntRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milligram of protein","nmol/mg{prot}","NMOL/MG","amount of substance",60221367e10,[0,0,-1,0,0,0,0],"nmol/mg","si",!0,null,null,1,!1,!1,1,"nanomoles; nmol/mg prot; nmol per mg prot","LOINC","Ratio; CCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per minute","nmol/min","NMOL/MIN","amount of substance",100368945e5,[0,-1,0,0,0,0,0],"nmol/min","si",!0,null,null,1,!1,!1,1,"nmol per min; nanomoles per minute; milli enzyme units; enzyme activity per volume; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. nmol/min = mU (milli enzyme unit)","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per minute per milliliter","nmol/min/mL","(NMOL/MIN)/ML","amount of substance",100368945e11,[-3,-1,0,0,0,0,0],"(nmol/min)/mL","si",!0,null,null,1,!1,!1,1,"nmol per min per mL; nanomoles per minutes per milliliter; millilitre; milli enzyme units per volume; enzyme activity; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. nmol/mL/min = mU/mL","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milliliter","nmol/mL","NMOL/ML","amount of substance",60221367e13,[-3,0,0,0,0,0,0],"nmol/mL","si",!0,null,null,1,!1,!1,1,"nmol per mL; nanomoles per milliliter; millilitre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milliliter per hour","nmol/mL/h","(NMOL/ML)/HR","amount of substance",167281575e9,[-3,-1,0,0,0,0,0],"(nmol/mL)/h","si",!0,null,null,1,!1,!1,1,"nmol/mL/hr; nmol per mL per hr; nanomoles per milliliters per hour; millilitres; milli enzyme units per volume; enzyme activity; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min.","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per milliliter per minute","nmol/mL/min","(NMOL/ML)/MIN","amount of substance",100368945e11,[-3,-1,0,0,0,0,0],"(nmol/mL)/min","si",!0,null,null,1,!1,!1,1,"nmol per mL per min; nanomoles per milliliters per min; millilitres; milli enzyme units per volume; enzyme activity; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. nmol/mL/min = mU/mL","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per millimole","nmol/mmol","NMOL/MMOL","amount of substance",1e-6,[0,0,0,0,0,0,0],"nmol/mmol","si",!0,null,null,1,!1,!1,0,"nmol per mmol; nanomoles per millimole","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per millimole of creatinine","nmol/mmol{creat}","NMOL/MMOL","amount of substance",1e-6,[0,0,0,0,0,0,0],"nmol/mmol","si",!0,null,null,1,!1,!1,0,"nanomoles","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per mole","nmol/mol","NMOL/MOL","amount of substance",1e-9,[0,0,0,0,0,0,0],"nmol/mol","si",!0,null,null,1,!1,!1,0,"nmol per mole; nanomoles","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per nanomole","nmol/nmol","NMOL/NMOL","amount of substance",1,[0,0,0,0,0,0,0],"nmol/nmol","si",!0,null,null,1,!1,!1,0,"nmol per nmol; nanomoles","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per second","nmol/s","NMOL/S","amount of substance",60221367e7,[0,-1,0,0,0,0,0],"nmol/s","si",!0,null,null,1,!1,!1,1,"nmol/sec; nmol per sec; nanomoles per sercond; milli enzyme units; enzyme activity; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min.","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanomole per second per liter","nmol/s/L","(NMOL/S)/L","amount of substance",60221367e10,[-3,-1,0,0,0,0,0],"(nmol/s)/L","si",!0,null,null,1,!1,!1,1,"nmol/sec/L; nmol per s per L; nmol per sec per L; nanomoles per seconds per liter; litre; milli enzyme units per volume; enzyme activity; enzymatic activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min.","10*23","10*23","6.0221367",6.0221367,!1],[!1,"nanosecond","ns","NS","time",1e-9,[0,1,0,0,0,0,0],"ns",null,!1,"T",null,1,!1,!1,0,"nanoseconds","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"nanoenzyme unit per milliliter","nU/mL","NU/ML","catalytic activity",100368945e5,[-3,-1,0,0,0,0,0],"nU/mL","chemical",!0,null,null,1,!1,!1,1,"nU per mL; nanoenzyme units per milliliter; millilitre; enzymatic activity per volume; enzyme activity","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 fU = pmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"Ohm meter","Ohm.m","OHM.M","electric resistance",1e3,[3,-1,1,0,0,-2,0],"\u03A9.m","si",!0,null,null,1,!1,!1,0,"electric resistivity; meters; metres","LOINC","","Clinical","unit of electric resistivity","V/A","V/A","1",1,!1],[!1,"osmole per kilogram","osm/kg","OSM/KG","amount of substance (dissolved particles)",60221367e13,[0,0,-1,0,0,0,0],"osm/kg","chemical",!0,null,null,1,!1,!1,1,"osm per kg; osmoles per kilogram; osmols","LOINC","Osmol","Clinical","","mol","MOL","1",1,!1],[!1,"osmole per liter","osm/L","OSM/L","amount of substance (dissolved particles)",60221366999999994e10,[-3,0,0,0,0,0,0],"osm/L","chemical",!0,null,null,1,!1,!1,1,"osm per L; osmoles per liter; litre; osmols","LOINC","Osmol","Clinical","","mol","MOL","1",1,!1],[!1,"picoampere","pA","PA","electric current",1e-12,[0,-1,0,0,0,1,0],"pA","si",!0,null,null,1,!1,!1,0,"picoamperes","LOINC","","Clinical","equal to 10^-12 amperes","C/s","C/S","1",1,!1],[!1,"picogram","pg","PG","mass",1e-12,[0,0,1,0,0,0,0],"pg",null,!1,"M",null,1,!1,!1,0,"picograms","LOINC","Mass; EntMass","Clinical","",null,null,null,null,!1],[!1,"picogram per deciliter","pg/dL","PG/DL","mass",9999999999999999e-24,[-3,0,1,0,0,0,0],"pg/dL",null,!1,"M",null,1,!1,!1,0,"pg per dL; picograms; decilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"picogram per liter","pg/L","PG/L","mass",1e-9,[-3,0,1,0,0,0,0],"pg/L",null,!1,"M",null,1,!1,!1,0,"pg per L; picograms; litre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"picogram per milligram","pg/mg","PG/MG","mass",1e-9,[0,0,0,0,0,0,0],"pg/mg",null,!1,"M",null,1,!1,!1,0,"pg per mg; picograms","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"picogram per milliliter","pg/mL","PG/ML","mass",1e-6,[-3,0,1,0,0,0,0],"pg/mL",null,!1,"M",null,1,!1,!1,0,"pg per mL; picograms per milliliter; millilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"picogram per millimeter","pg/mm","PG/MM","mass",1e-9,[-1,0,1,0,0,0,0],"pg/mm",null,!1,"M",null,1,!1,!1,0,"pg per mm; picogram/millimeter; picogram/millimetre; picograms per millimeter; millimetre","LOINC","Lineic Mass","Clinical","",null,null,null,null,!1],[!1,"picokatal","pkat","PKAT","catalytic activity",60221367e4,[0,-1,0,0,0,0,0],"pkat","chemical",!0,null,null,1,!1,!1,1,"pkats; picokatals","LOINC","CAct","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"picoliter","pL","PL","volume",1e-15,[3,0,0,0,0,0,0],"pL","iso1000",!0,null,null,1,!1,!1,0,"picoliters; picolitres","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"picometer","pm","PM","length",1e-12,[1,0,0,0,0,0,0],"pm",null,!1,"L",null,1,!1,!1,0,"picometers; picometres","LOINC","Len","Clinical","",null,null,null,null,!1],[!1,"picomole","pmol","PMOL","amount of substance",60221367e4,[0,0,0,0,0,0,0],"pmol","si",!0,null,null,1,!1,!1,1,"picomoles; pmols","LOINC","Sub","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per 24 hour","pmol/(24.h)","PMOL/(24.HR)","amount of substance",6970065625e-3,[0,-1,0,0,0,0,0],"pmol/h","si",!0,null,null,1,!1,!1,1,"pmol/24hrs; pmol/24 hrs; pmol per 24 hrs; 24hrs; days; dy; picomoles per 24 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per day","pmol/d","PMOL/D","amount of substance",6970065625e-3,[0,-1,0,0,0,0,0],"pmol/d","si",!0,null,null,1,!1,!1,1,"pmol/dy; pmol per day; 24 hours; 24hrs; 24 hrs; picomoles","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per deciliter","pmol/dL","PMOL/DL","amount of substance",60221367e8,[-3,0,0,0,0,0,0],"pmol/dL","si",!0,null,null,1,!1,!1,1,"pmol per dL; picomoles per deciliter; decilitre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per gram","pmol/g","PMOL/G","amount of substance",60221367e4,[0,0,-1,0,0,0,0],"pmol/g","si",!0,null,null,1,!1,!1,1,"pmol per gm; picomoles per gram; picomole/gram","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per hour per milliliter ","pmol/h/mL","(PMOL/HR)/ML","amount of substance",167281575e6,[-3,-1,0,0,0,0,0],"(pmol/h)/mL","si",!0,null,null,1,!1,!1,1,"pmol/hrs/mL; pmol per hrs per mL; picomoles per hour per milliliter; millilitre; micro enzyme units per volume; enzymatic activity; enzyme activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. ","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per liter","pmol/L","PMOL/L","amount of substance",60221367e7,[-3,0,0,0,0,0,0],"pmol/L","si",!0,null,null,1,!1,!1,1,"picomole/liter; pmol per L; picomoles; litre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per minute","pmol/min","PMOL/MIN","amount of substance",10036894500,[0,-1,0,0,0,0,0],"pmol/min","si",!0,null,null,1,!1,!1,1,"picomole/minute; pmol per min; picomoles per minute; micro enzyme units; enzymatic activity; enzyme activity","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. pmol/min = uU (micro enzyme unit)","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per milliliter","pmol/mL","PMOL/ML","amount of substance",60221367e10,[-3,0,0,0,0,0,0],"pmol/mL","si",!0,null,null,1,!1,!1,1,"picomole/milliliter; picomole/millilitre; pmol per mL; picomoles; millilitre; picomols; pmols","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picomole per micromole","pmol/umol","PMOL/UMOL","amount of substance",1e-6,[0,0,0,0,0,0,0],"pmol/\u03BCmol","si",!0,null,null,1,!1,!1,0,"pmol/mcgmol; picomole/micromole; pmol per umol; pmol per mcgmol; picomoles ","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"picosecond","ps","PS","time",1e-12,[0,1,0,0,0,0,0],"ps",null,!1,"T",null,1,!1,!1,0,"picoseconds; psec","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"picotesla","pT","PT","magnetic flux density",1e-9,[0,-1,1,0,0,-1,0],"pT","si",!0,null,null,1,!1,!1,0,"picoteslas","LOINC","","Clinical","SI unit of magnetic field strength for magnetic field B","Wb/m2","WB/M2","1",1,!1],[!1,"enzyme unit per 12 hour","U/(12.h)","U/(12.HR)","catalytic activity",23233552083333334e-5,[0,-2,0,0,0,0,0],"U/h","chemical",!0,null,null,1,!1,!1,1,"U/12hrs; U/ 12hrs; U per 12 hrs; 12hrs; enzyme units per 12 hours; enzyme activity; enzymatic activity per time; umol per min per 12 hours; micromoles per minute per 12 hours; umol/min/12hr","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per 2 hour","U/(2.h)","U/(2.HR)","catalytic activity",1394013125e3,[0,-2,0,0,0,0,0],"U/h","chemical",!0,null,null,1,!1,!1,1,"U/2hrs; U/ 2hrs; U per 2 hrs; 2hrs; enzyme units per 2 hours; enzyme activity; enzymatic activity per time; umol per minute per 2 hours; micromoles per minute; umol/min/2hr; umol per min per 2hr","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per 24 hour","U/(24.h)","U/(24.HR)","catalytic activity",11616776041666667e-5,[0,-2,0,0,0,0,0],"U/h","chemical",!0,null,null,1,!1,!1,1,"U/24hrs; U/ 24hrs; U per 24 hrs; 24hrs; enzyme units per 24 hours; enzyme activity; enzymatic activity per time; micromoles per minute per 24 hours; umol/min/24hr; umol per min per 24hr","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per 10","U/10","U/10","catalytic activity",100368945e7,[0,-1,0,0,0,0,0],"U","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/10; U per 10; enzyme units per 10; enzymatic activity; enzyme activity; micromoles per minute; umol/min/10","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per 10 billion","U/10*10","U/(10*10)","catalytic activity",100368945e-2,[0,-1,0,0,0,0,0],"U/(1010)","chemical",!0,null,null,1,!1,!1,1,"U per 10*10; enzyme units per 10*10; U per 10 billion; enzyme units; enzymatic activity; micromoles per minute per 10 billion; umol/min/10*10","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per trillion","U/10*12","U/(10*12)","catalytic activity",10036.8945,[0,-1,0,0,0,0,0],"U/(1012)","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/10*12; U per 10*12; enzyme units per 10*12; enzyme units per trillion; enzymatic activity; micromoles per minute per trillion; umol/min/10*12; umol per min per 10*12","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per million","U/10*6","U/(10*6)","catalytic activity",10036894500,[0,-1,0,0,0,0,0],"U/(106)","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/10*6; U per 10*6; enzyme units per 10*6; enzyme units; enzymatic activity per volume; micromoles per minute per million; umol/min/10*6; umol per min per 10*6","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per billion","U/10*9","U/(10*9)","catalytic activity",100368945e-1,[0,-1,0,0,0,0,0],"U/(109)","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/10*9; U per 10*9; enzyme units per 10*9; enzymatic activity per volume; micromoles per minute per billion; umol/min/10*9; umol per min per 10*9","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per day","U/d","U/D","catalytic activity",11616776041666667e-5,[0,-2,0,0,0,0,0],"U/d","chemical",!0,null,null,1,!1,!1,1,"U/dy; enzyme units per day; enzyme units; enzyme activity; enzymatic activity per time; micromoles per minute per day; umol/min/day; umol per min per day","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per deciliter","U/dL","U/DL","catalytic activity",100368945e12,[-3,-1,0,0,0,0,0],"U/dL","chemical",!0,null,null,1,!1,!1,1,"U per dL; enzyme units per deciliter; decilitre; micromoles per minute per deciliter; umol/min/dL; umol per min per dL","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per gram","U/g","U/G","catalytic activity",100368945e8,[0,-1,-1,0,0,0,0],"U/g","chemical",!0,null,null,1,!1,!1,1,"U/gm; U per gm; enzyme units per gram; micromoles per minute per gram; umol/min/g; umol per min per g","LOINC","CCnt","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per hour","U/h","U/HR","catalytic activity",278802625e4,[0,-2,0,0,0,0,0],"U/h","chemical",!0,null,null,1,!1,!1,1,"U/hr; U per hr; enzyme units per hour; micromoles per minute per hour; umol/min/hr; umol per min per hr","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per liter","U/L","U/L","catalytic activity",100368945e11,[-3,-1,0,0,0,0,0],"U/L","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/liter; enzyme unit/litre; U per L; enzyme units per liter; enzyme unit per litre; micromoles per minute per liter; umol/min/L; umol per min per L","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per minute","U/min","U/MIN","catalytic activity",167281575e6,[0,-2,0,0,0,0,0],"U/min","chemical",!0,null,null,1,!1,!1,1,"enzyme unit/minute; U per min; enzyme units; umol/min/min; micromoles per minute per minute; micromoles per min per min; umol","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per milliliter","U/mL","U/ML","catalytic activity",100368945e14,[-3,-1,0,0,0,0,0],"U/mL","chemical",!0,null,null,1,!1,!1,1,"U per mL; enzyme units per milliliter; millilitre; micromoles per minute per milliliter; umol/min/mL; umol per min per mL","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"enzyme unit per second","U/s","U/S","catalytic activity",100368945e8,[0,-2,0,0,0,0,0],"U/s","chemical",!0,null,null,1,!1,!1,1,"U/sec; U per second; enzyme units per second; micromoles per minute per second; umol/min/sec; umol per min per sec","LOINC","CRat","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min)","umol/min","UMOL/MIN","1",1,!1],[!1,"micro international unit","u[IU]","U[IU]","arbitrary",1e-6,[0,0,0,0,0,0,0],"\u03BCi.U.","chemical",!0,null,null,1,!1,!0,0,"uIU; u IU; microinternational units","LOINC","Arb","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"micro international unit per liter","u[IU]/L","U[IU]/L","arbitrary",.001,[-3,0,0,0,0,0,0],"(\u03BCi.U.)/L","chemical",!0,null,null,1,!1,!0,0,"uIU/L; u IU/L; uIU per L; microinternational units per liter; litre; ","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"micro international unit per milliliter","u[IU]/mL","U[IU]/ML","arbitrary",1,[-3,0,0,0,0,0,0],"(\u03BCi.U.)/mL","chemical",!0,null,null,1,!1,!0,0,"uIU/mL; u IU/mL; uIU per mL; microinternational units per milliliter; millilitre","LOINC","ACnc","Clinical","International units (IU) are analyte and reference specimen specific arbitrary units (held at WHO)","[iU]","[IU]","1",1,!1],[!1,"microequivalent","ueq","UEQ","amount of substance",60221367e10,[0,0,0,0,0,0,0],"\u03BCeq","chemical",!0,null,null,1,!1,!1,1,"microequivalents; 10^-6 equivalents; 10-6 equivalents","LOINC","Sub","Clinical","","mol","MOL","1",1,!1],[!1,"microequivalent per liter","ueq/L","UEQ/L","amount of substance",60221367e13,[-3,0,0,0,0,0,0],"\u03BCeq/L","chemical",!0,null,null,1,!1,!1,1,"ueq per liter; litre; microequivalents","LOINC","MCnc","Clinical","","mol","MOL","1",1,!1],[!1,"microequivalent per milliliter","ueq/mL","UEQ/ML","amount of substance",60221367000000003e7,[-3,0,0,0,0,0,0],"\u03BCeq/mL","chemical",!0,null,null,1,!1,!1,1,"ueq per milliliter; millilitre; microequivalents","LOINC","MCnc","Clinical","","mol","MOL","1",1,!1],[!1,"microgram","ug","UG","mass",1e-6,[0,0,1,0,0,0,0],"\u03BCg",null,!1,"M",null,1,!1,!1,0,"mcg; micrograms; 10^-6 grams; 10-6 grams","LOINC","Mass","Clinical","",null,null,null,null,!1],[!1,"microgram per 100 gram","ug/(100.g)","UG/(100.G)","mass",1e-8,[0,0,0,0,0,0,0],"\u03BCg/g",null,!1,"M",null,1,!1,!1,0,"ug/100gm; ug/100 gm; mcg; ug per 100g; 100 gm; mcg per 100g; micrograms per 100 grams","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"microgram per 24 hour","ug/(24.h)","UG/(24.HR)","mass",11574074074074074e-27,[0,-1,1,0,0,0,0],"\u03BCg/h",null,!1,"M",null,1,!1,!1,0,"ug/24hrs; ug/24 hrs; mcg/24hrs; ug per 24hrs; mcg per 24hrs; 24 hrs; micrograms per 24 hours","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"microgram per 8 hour","ug/(8.h)","UG/(8.HR)","mass",3472222222222222e-26,[0,-1,1,0,0,0,0],"\u03BCg/h",null,!1,"M",null,1,!1,!1,0,"ug/8hrs; ug/8 hrs; mcg/8hrs; ug per 8hrs; mcg per 8hrs; 8 hrs; micrograms per 8 hours; shift","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"microgram per square foot (international)","ug/[sft_i]","UG/[SFT_I]","mass",10763910416709721e-21,[-2,0,1,0,0,0,0],"\u03BCg",null,!1,"M",null,1,!1,!1,0,"ug/sft; ug/ft2; ug/ft^2; ug/sq. ft; micrograms; sq. foot; foot squared","LOINC","ArMass","Clinical","",null,null,null,null,!1],[!1,"microgram per day","ug/d","UG/D","mass",11574074074074074e-27,[0,-1,1,0,0,0,0],"\u03BCg/d",null,!1,"M",null,1,!1,!1,0,"ug/dy; mcg/dy; ug per day; mcg; micrograms per day","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"microgram per deciliter","ug/dL","UG/DL","mass",.009999999999999998,[-3,0,1,0,0,0,0],"\u03BCg/dL",null,!1,"M",null,1,!1,!1,0,"ug per dL; mcg/dl; mcg per dl; micrograms per deciliter; decilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"microgram per gram","ug/g","UG/G","mass",1e-6,[0,0,0,0,0,0,0],"\u03BCg/g",null,!1,"M",null,1,!1,!1,0,"ug per gm; mcg/gm; mcg per g; micrograms per gram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"microgram per hour","ug/h","UG/HR","mass",27777777777777777e-26,[0,-1,1,0,0,0,0],"\u03BCg/h",null,!1,"M",null,1,!1,!1,0,"ug/hr; mcg/hr; mcg per hr; ug per hr; ug per hour; micrograms","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"microgram per kilogram","ug/kg","UG/KG","mass",9999999999999999e-25,[0,0,0,0,0,0,0],"\u03BCg/kg",null,!1,"M",null,1,!1,!1,0,"ug per kg; mcg/kg; mcg per kg; micrograms per kilogram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"microgram per kilogram per 8 hour","ug/kg/(8.h)","(UG/KG)/(8.HR)","mass",3472222222222222e-29,[0,-1,0,0,0,0,0],"(\u03BCg/kg)/h",null,!1,"M",null,1,!1,!1,0,"ug/kg/8hrs; mcg/kg/8hrs; ug/kg/8 hrs; mcg/kg/8 hrs; ug per kg per 8hrs; 8 hrs; mcg per kg per 8hrs; micrograms per kilograms per 8 hours; shift","LOINC","","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"microgram per kilogram per day","ug/kg/d","(UG/KG)/D","mass",11574074074074072e-30,[0,-1,0,0,0,0,0],"(\u03BCg/kg)/d",null,!1,"M",null,1,!1,!1,0,"ug/(kg.d); ug/kg/dy; mcg/kg/day; ug per kg per dy; 24 hours; 24hrs; mcg; kilograms; microgram per kilogram and day","LOINC","","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"microgram per kilogram per hour","ug/kg/h","(UG/KG)/HR","mass",27777777777777774e-29,[0,-1,0,0,0,0,0],"(\u03BCg/kg)/h",null,!1,"M",null,1,!1,!1,0,"ug/(kg.h); ug/kg/hr; mcg/kg/hr; ug per kg per hr; mcg per kg per hr; kilograms","LOINC","","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"microgram per kilogram per minute","ug/kg/min","(UG/KG)/MIN","mass",16666666666666664e-27,[0,-1,0,0,0,0,0],"(\u03BCg/kg)/min",null,!1,"M",null,1,!1,!1,0,"ug/kg/min; ug/kg/min; mcg/kg/min; ug per kg per min; mcg; micrograms per kilograms per minute ","LOINC","","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"microgram per liter","ug/L","UG/L","mass",.001,[-3,0,1,0,0,0,0],"\u03BCg/L",null,!1,"M",null,1,!1,!1,0,"mcg/L; ug per L; mcg; micrograms per liter; litre ","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"microgram per liter per 24 hour","ug/L/(24.h)","(UG/L)/(24.HR)","mass",11574074074074074e-24,[-3,-1,1,0,0,0,0],"(\u03BCg/L)/h",null,!1,"M",null,1,!1,!1,0,"ug/L/24hrs; ug/L/24 hrs; mcg/L/24hrs; ug per L per 24hrs; 24 hrs; day; dy mcg; micrograms per liters per 24 hours; litres","LOINC","","Clinical","unit used to measure mass dose rate per patient body mass",null,null,null,null,!1],[!1,"microgram per square meter","ug/m2","UG/M2","mass",1e-6,[-2,0,1,0,0,0,0],"\u03BCg/(m2)",null,!1,"M",null,1,!1,!1,0,"ug/m^2; ug/sq. m; mcg/m2; mcg/m^2; mcg/sq. m; ug per m2; m^2; sq. meter; mcg; micrograms per square meter; meter squared; metre","LOINC","ArMass","Clinical","unit used to measure mass dose per patient body surface area",null,null,null,null,!1],[!1,"microgram per cubic meter","ug/m3","UG/M3","mass",1e-6,[-3,0,1,0,0,0,0],"\u03BCg/(m3)",null,!1,"M",null,1,!1,!1,0,"ug/m^3; ug/cu. m; mcg/m3; mcg/m^3; mcg/cu. m; ug per m3; ug per m^3; ug per cu. m; mcg; micrograms per cubic meter; meter cubed; metre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"microgram per milligram","ug/mg","UG/MG","mass",.001,[0,0,0,0,0,0,0],"\u03BCg/mg",null,!1,"M",null,1,!1,!1,0,"ug per mg; mcg/mg; mcg per mg; micromilligrams per milligram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"microgram per minute","ug/min","UG/MIN","mass",16666666666666667e-24,[0,-1,1,0,0,0,0],"\u03BCg/min",null,!1,"M",null,1,!1,!1,0,"ug per min; mcg/min; mcg per min; microminutes per minute","LOINC","MRat","Clinical","",null,null,null,null,!1],[!1,"microgram per milliliter","ug/mL","UG/ML","mass",1,[-3,0,1,0,0,0,0],"\u03BCg/mL",null,!1,"M",null,1,!1,!1,0,"ug per mL; mcg/mL; mcg per mL; micrograms per milliliter; millilitre","LOINC","MCnc","Clinical","",null,null,null,null,!1],[!1,"microgram per millimole","ug/mmol","UG/MMOL","mass",1660540186674939e-42,[0,0,1,0,0,0,0],"\u03BCg/mmol",null,!1,"M",null,1,!1,!1,-1,"ug per mmol; mcg/mmol; mcg per mmol; micrograms per millimole","LOINC","Ratio","Clinical","",null,null,null,null,!1],[!1,"microgram per nanogram","ug/ng","UG/NG","mass",999.9999999999999,[0,0,0,0,0,0,0],"\u03BCg/ng",null,!1,"M",null,1,!1,!1,0,"ug per ng; mcg/ng; mcg per ng; micrograms per nanogram","LOINC","MCnt","Clinical","",null,null,null,null,!1],[!1,"microkatal","ukat","UKAT","catalytic activity",60221367e10,[0,-1,0,0,0,0,0],"\u03BCkat","chemical",!0,null,null,1,!1,!1,1,"microkatals; ukats","LOINC","CAct","Clinical","kat is a unit of catalytic activity with base units = mol/s. Rarely used because its units are too large to practically express catalytic activity. See enzyme unit [U] which is the standard unit for catalytic activity.","mol/s","MOL/S","1",1,!1],[!1,"microliter","uL","UL","volume",1e-9,[3,0,0,0,0,0,0],"\u03BCL","iso1000",!0,null,null,1,!1,!1,0,"microliters; microlitres; mcl","LOINC","Vol","Clinical","","l",null,"1",1,!1],[!1,"microliter per 2 hour","uL/(2.h)","UL/(2.HR)","volume",1388888888888889e-28,[3,-1,0,0,0,0,0],"\u03BCL/h","iso1000",!0,null,null,1,!1,!1,0,"uL/2hrs; uL/2 hrs; mcg/2hr; mcg per 2hr; uL per 2hr; uL per 2 hrs; microliters per 2 hours; microlitres ","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"microliter per hour","uL/h","UL/HR","volume",2777777777777778e-28,[3,-1,0,0,0,0,0],"\u03BCL/h","iso1000",!0,null,null,1,!1,!1,0,"uL/hr; mcg/hr; mcg per hr; uL per hr; microliters per hour; microlitres","LOINC","VRat","Clinical","","l",null,"1",1,!1],[!1,"micrometer","um","UM","length",1e-6,[1,0,0,0,0,0,0],"\u03BCm",null,!1,"L",null,1,!1,!1,0,"micrometers; micrometres; \u03BCm; microns","LOINC","Len","Clinical","Unit of length that is usually used in tests related to the eye",null,null,null,null,!1],[!1,"microns per second","um/s","UM/S","length",1e-6,[1,-1,0,0,0,0,0],"\u03BCm/s",null,!1,"L",null,1,!1,!1,0,"um/sec; micron/second; microns/second; um per sec; micrometers per second; micrometres","LOINC","Vel","Clinical","",null,null,null,null,!1],[!1,"micromole","umol","UMOL","amount of substance",60221367e10,[0,0,0,0,0,0,0],"\u03BCmol","si",!0,null,null,1,!1,!1,1,"micromoles; umols","LOINC","Sub","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per 2 hour","umol/(2.h)","UMOL/(2.HR)","amount of substance",836407875e5,[0,-1,0,0,0,0,0],"\u03BCmol/h","si",!0,null,null,1,!1,!1,1,"umol/2hrs; umol/2 hrs; umol per 2 hrs; 2hrs; micromoles per 2 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per 24 hour","umol/(24.h)","UMOL/(24.HR)","amount of substance",6970065625e3,[0,-1,0,0,0,0,0],"\u03BCmol/h","si",!0,null,null,1,!1,!1,1,"umol/24hrs; umol/24 hrs; umol per 24 hrs; per 24hrs; micromoles per 24 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per 8 hour","umol/(8.h)","UMOL/(8.HR)","amount of substance",20910196875e3,[0,-1,0,0,0,0,0],"\u03BCmol/h","si",!0,null,null,1,!1,!1,1,"umol/8hr; umol/8 hr; umol per 8 hr; umol per 8hr; umols per 8hr; umol per 8 hours; micromoles per 8 hours; shift","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per day","umol/d","UMOL/D","amount of substance",6970065625e3,[0,-1,0,0,0,0,0],"\u03BCmol/d","si",!0,null,null,1,!1,!1,1,"umol/day; umol per day; umols per day; umol per days; micromoles per days; umol/24hr; umol/24 hr; umol per 24 hr; umol per 24hr; umols per 24hr; umol per 24 hours; micromoles per 24 hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per deciliter","umol/dL","UMOL/DL","amount of substance",60221367e14,[-3,0,0,0,0,0,0],"\u03BCmol/dL","si",!0,null,null,1,!1,!1,1,"micromole/deciliter; micromole/decilitre; umol per dL; micromoles per deciliters; micromole per decilitres","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per gram","umol/g","UMOL/G","amount of substance",60221367e10,[0,0,-1,0,0,0,0],"\u03BCmol/g","si",!0,null,null,1,!1,!1,1,"micromole/gram; umol per g; micromoles per gram","LOINC","SCnt; Ratio","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per hour","umol/h","UMOL/HR","amount of substance",167281575e6,[0,-1,0,0,0,0,0],"\u03BCmol/h","si",!0,null,null,1,!1,!1,1,"umol/hr; umol per hr; umol per hour; micromoles per hours","LOINC","SRat","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per kilogram","umol/kg","UMOL/KG","amount of substance",60221367e7,[0,0,-1,0,0,0,0],"\u03BCmol/kg","si",!0,null,null,1,!1,!1,1,"umol per kg; micromoles per kilogram","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per liter","umol/L","UMOL/L","amount of substance",60221367e13,[-3,0,0,0,0,0,0],"\u03BCmol/L","si",!0,null,null,1,!1,!1,1,"micromole/liter; micromole/litre; umol per liter; micromoles per liter; litre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per liter per hour","umol/L/h","(UMOL/L)/HR","amount of substance",167281575e9,[-3,-1,0,0,0,0,0],"(\u03BCmol/L)/h","si",!0,null,null,1,!1,!1,1,"umol/liter/hr; umol/litre/hr; umol per L per hr; umol per liter per hour; micromoles per liters per hour; litre","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min; umol/L/h is a derived unit of enzyme units","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per milligram","umol/mg","UMOL/MG","amount of substance",60221367e13,[0,0,-1,0,0,0,0],"\u03BCmol/mg","si",!0,null,null,1,!1,!1,1,"micromole/milligram; umol per mg; micromoles per milligram","LOINC","SCnt","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per minute","umol/min","UMOL/MIN","amount of substance",100368945e8,[0,-1,0,0,0,0,0],"\u03BCmol/min","si",!0,null,null,1,!1,!1,1,"micromole/minute; umol per min; micromoles per minute; enzyme units","LOINC","CAct","Clinical","unit for the enzyme unit U = umol/min","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per minute per gram","umol/min/g","(UMOL/MIN)/G","amount of substance",100368945e8,[0,-1,-1,0,0,0,0],"(\u03BCmol/min)/g","si",!0,null,null,1,!1,!1,1,"umol/min/gm; umol per min per gm; micromoles per minutes per gram; U/g; enzyme units","LOINC","CCnt","Clinical","unit for the enzyme unit U = umol/min. umol/min/g = U/g","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per minute per liter","umol/min/L","(UMOL/MIN)/L","amount of substance",100368945e11,[-3,-1,0,0,0,0,0],"(\u03BCmol/min)/L","si",!0,null,null,1,!1,!1,1,"umol/min/liter; umol/minute/liter; micromoles per minutes per liter; litre; enzyme units; U/L","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. umol/min/L = U/L","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per milliliter","umol/mL","UMOL/ML","amount of substance",60221367000000003e7,[-3,0,0,0,0,0,0],"\u03BCmol/mL","si",!0,null,null,1,!1,!1,1,"umol per mL; micromoles per milliliter; millilitre","LOINC","SCnc","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per milliliter per minute","umol/mL/min","(UMOL/ML)/MIN","amount of substance",100368945e14,[-3,-1,0,0,0,0,0],"(\u03BCmol/mL)/min","si",!0,null,null,1,!1,!1,1,"umol per mL per min; micromoles per milliliters per minute; millilitres","LOINC","CCnc","Clinical","unit for the enzyme unit U = umol/min. umol/mL/min = U/mL","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per millimole","umol/mmol","UMOL/MMOL","amount of substance",.001,[0,0,0,0,0,0,0],"\u03BCmol/mmol","si",!0,null,null,1,!1,!1,0,"umol per mmol; micromoles per millimole","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per mole","umol/mol","UMOL/MOL","amount of substance",1e-6,[0,0,0,0,0,0,0],"\u03BCmol/mol","si",!0,null,null,1,!1,!1,0,"umol per mol; micromoles per mole","LOINC","SRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"micromole per micromole","umol/umol","UMOL/UMOL","amount of substance",1,[0,0,0,0,0,0,0],"\u03BCmol/\u03BCmol","si",!0,null,null,1,!1,!1,0,"umol per umol; micromoles per micromole","LOINC","Srto; SFr; EntSRto","Clinical","","10*23","10*23","6.0221367",6.0221367,!1],[!1,"microOhm","uOhm","UOHM","electric resistance",.001,[2,-1,1,0,0,-2,0],"\u03BC\u03A9","si",!0,null,null,1,!1,!1,0,"microOhms; \xB5\u03A9","LOINC","","Clinical","unit of electric resistance","V/A","V/A","1",1,!1],[!1,"microsecond","us","US","time",1e-6,[0,1,0,0,0,0,0],"\u03BCs",null,!1,"T",null,1,!1,!1,0,"microseconds","LOINC","Time","Clinical","",null,null,null,null,!1],[!1,"micro enzyme unit per gram","uU/g","UU/G","catalytic activity",10036894500,[0,-1,-1,0,0,0,0],"\u03BCU/g","chemical",!0,null,null,1,!1,!1,1,"uU per gm; micro enzyme units per gram; micro enzymatic activity per mass; enzyme activity","LOINC","CCnt","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 uU = 1pmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"micro enzyme unit per liter","uU/L","UU/L","catalytic activity",100368945e5,[-3,-1,0,0,0,0,0],"\u03BCU/L","chemical",!0,null,null,1,!1,!1,1,"uU per L; micro enzyme units per liter; litre; enzymatic activity per volume; enzyme activity ","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 uU = 1pmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"micro enzyme unit per milliliter","uU/mL","UU/ML","catalytic activity",100368945e8,[-3,-1,0,0,0,0,0],"\u03BCU/mL","chemical",!0,null,null,1,!1,!1,1,"uU per mL; micro enzyme units per milliliter; millilitre; enzymatic activity per volume; enzyme activity","LOINC","CCnc","Clinical","1 U is the standard enzyme unit which equals 1 micromole substrate catalyzed per minute (1 umol/min); 1 uU = 1pmol/min","umol/min","UMOL/MIN","1",1,!1],[!1,"microvolt","uV","UV","electric potential",.001,[2,-2,1,0,0,-1,0],"\u03BCV","si",!0,null,null,1,!1,!1,0,"microvolts","LOINC","Elpot","Clinical","unit of electric potential (voltage)","J/C","J/C","1",1,!1]]}}});var KA=Q(Gl=>{"use strict";Object.defineProperty(Gl,"__esModule",{value:!0});Gl.ucumJsonDefs=Gl.UcumJsonDefs=void 0;var _H=FA(),bH=e1(),vH=l1(),qA=ao(),GA=jA().unpackArray,Op=class{loadJsonDefs(){let t=WA();if(t.prefixes=GA(t.prefixes),t.units=GA(t.units),qA.UnitTables.getInstance().unitsCount()===0){let e=bH.PrefixTables.getInstance(),i=t.prefixes,r=i.length;for(let l=0;l{"use strict";Object.defineProperty(Np,"__esModule",{value:!0});Np.UnitString=void 0;var $i=CH(Ap());function YA(){if(typeof WeakMap!="function")return null;var n=new WeakMap;return YA=function(){return n},n}function CH(n){if(n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=YA();if(t&&t.has(n))return t.get(n);var e={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)){var s=i?Object.getOwnPropertyDescriptor(n,r):null;s&&(s.get||s.set)?Object.defineProperty(e,r,s):e[r]=n[r]}return e.default=n,t&&t.set(n,e),e}function QA(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}var fi=ua().Ucum,Kl=l1().Unit,wH=ao().UnitTables,xH=e1().PrefixTables,oo=class n{constructor(){this.utabs_=wH.getInstance(),this.pfxTabs_=xH.getInstance(),this.openEmph_=fi.openEmph_,this.closeEmph_=fi.closeEmph_,this.bracesMsg_="",this.parensFlag_="parens_placeholder",this.pFlagLen_=this.parensFlag_.length,this.braceFlag_="braces_placeholder",this.bFlagLen_=this.braceFlag_.length,this.vcMsgStart_=null,this.vcMsgEnd_=null,this.retMsg_=[],this.parensUnits_=[],this.annotations_=[],this.suggestions=[]}useHTMLInMessages(t){t===void 0||t?(this.openEmph_=fi.openEmphHTML_,this.closeEmph_=fi.closeEmphHTML_):(this.openEmph_=fi.openEmph_,this.closeEmph_=fi.closeEmph_)}useBraceMsgForEachString(t){t===void 0||t?this.bracesMsg_=fi.bracesMsg_:this.bracesMsg_=""}parseString(t,e,i){if(t=t.trim(),t===""||t===null)throw new Error("Please specify a unit expression to be validated.");e==="validate"?(this.vcMsgStart_=fi.valMsgStart_,this.vcMsgEnd_=fi.valMsgEnd_):(this.vcMsgStart_=fi.cnvMsgStart_,this.vcMsgEnd_=fi.cnvMsgEnd_),i===void 0||i===!1?this.suggestions_=null:this.suggestions_=[],this.retMsg_=[],this.parensUnits_=[],this.annotations_=[];let r=t,s=[];if(t=this._getAnnotations(t),this.retMsg_.length>0)s[0]=null,s[1]=null;else{let a=this.retMsg_.length>0,o=null;for(o in fi.specUnits_)for(;t.indexOf(o)!==-1;)t=t.replace(o,fi.specUnits_[o]);if(t.indexOf(" ")>-1)throw new Error("Blank spaces are not allowed in unit expressions.");s=this._parseTheString(t,r);let l=s[0];($i.isIntegerUnit(l)||typeof l=="number")&&(l=new Kl({csCode_:r,ciCode_:r,magnitude_:l,name_:r}),s[0]=l)}return s[2]=this.retMsg_,this.suggestions_&&this.suggestions_.length>0&&(s[3]=this.suggestions_),s}_parseTheString(t,e){let i=null,r=this.retMsg_.length>0,s=this._processParens(t,e);r=s[2];let a=[];if(!r){t=s[0],e=s[1];let o=this._makeUnitsArray(t,e);if(r=o[2],!r){a=o[0],e=o[1];let l=a.length;for(let c=0;c=0){let d=this._getParensUnit(u,e);r||(r=d[1]),r||(a[c].un=d[0])}else{let d=this._makeUnit(u,e);d[0]===null?r=!0:(a[c].un=d[0],e=d[1])}}}}return r||(a[0]===null||a[0]===" "||a[0].un===void 0||a[0].un===null)&&this.retMsg_.length===0&&(this.retMsg_.push(`Unit string (${e}) did not contain anything that could be used to create a unit, or else something that is not handled yet by this package. Sorry`),r=!0),r||(i=this._performUnitArithmetic(a,e)),[i,e]}_getAnnotations(t){let e=t.indexOf("{");for(;e>=0;){let i=t.indexOf("}");if(i<0)this.retMsg_.push("Missing closing brace for annotation starting at "+this.openEmph_+t.substr(e)+this.closeEmph_),e=-1;else{let r=t.substring(e,i+1);if(!n.VALID_ANNOTATION_REGEX.test(r))this.retMsg_.push(n.INVALID_ANNOTATION_CHAR_MSG+this.openEmph_+r+this.closeEmph_),e=-1;else{let s=this.annotations_.length.toString();t=t.replace(r,this.braceFlag_+s+this.braceFlag_),this.annotations_.push(r),e=t.indexOf("{")}}}if(this.retMsg_.length==0){let i=t.indexOf("}");i>=0&&this.retMsg_.push("Missing opening brace for closing brace found at "+this.openEmph_+t.substring(0,i+1)+this.closeEmph_)}return t}_processParens(t,e){let i=[],r=0,s=!1,a=this.parensUnits_.length,o=0;for(;t!==""&&!s;){let l=0,c=0,u=t.indexOf("(");if(u<0){let d=t.indexOf(")");if(d>=0){let h=`Missing open parenthesis for close parenthesis at ${t.substring(0,d+o)}${this.openEmph_}${t.substr(d,1)}${this.closeEmph_}`;d0&&(i[r++]=t.substr(0,u));let h=0,m=u+1;for(;m0&&(c=t.substr(0,l-1));let u=t.lastIndexOf(this.parensFlag_),d=null;u+this.pFlagLen_=0){let m=this._getAnnoText(c,e);if(m[1]||m[2])throw new Error(`Text found before the parentheses (${c}) included an annotation along with other text for parenthetical unit ${s.csCode_}`);t+=m[0],this.retMsg_.push(`The annotation ${m[0]} before the unit code is invalid. +`+this.vcMsgStart_+t+this.vcMsgEnd_)}else this.suggestions_?i=this._getSuggestions(c)!=="succeeded":(this.retMsg_.push(`${c} preceding the unit code ${t} is invalid. Unable to make a substitution.`),i=!0);if(d)if(d.indexOf(this.braceFlag_)>=0){let m=this._getAnnoText(d,e);if(m[1]||m[2])throw new Error(`Text found after the parentheses (${d}) included an annotation along with other text for parenthetical unit ${s.csCode_}`);t+=m[0]}else if($i.isNumericString(d)){s=null;let m=`An exponent (${d}) following a parenthesis is invalid as of revision 1.9 of the UCUM Specification.`;t.match(/\d$/)||(t+=d,m+=` + `+this.vcMsgStart_+t+this.vcMsgEnd_),this.retMsg_.push(m),i=!0}else this.suggestions_?i=this._getSuggestions(c)!=="succeeded":(this.retMsg_.push(`Text ${d} following the unit code ${t} is invalid. Unable to make a substitution.`),i=!0);return i||(s?$i.isIntegerUnit(s)?s=new Kl({csCode_:s,magnitude_:s,name_:s}):s.csCode_=t:s=new Kl({csCode_:t,magnitude_:1,name_:t})),[s,i]}_getAnnoText(t,e){let i=t.indexOf(this.braceFlag_),r=i>0?t.substring(0,i):null;i!==0&&(t=t.substr(i));let s=t.indexOf(this.braceFlag_,1),a=s+this.bFlagLen_=this.annotations_.length)throw new Error(`Processing Error - invalid annotation index ${o} found in ${t} that was created from ${e}`);return t=this.annotations_[l],[t,r,a]}_getSuggestions(t){let e=$i.getSynonyms(t);if(e.status==="succeeded"){let i={};i.msg=`${t} is not a valid UCUM code. We found possible units that might be what was meant:`,i.invalidUnit=t;let r=e.units.length;i.units=[];for(let s=0;s=0){let r=this._getUnitWithAnnotation(t,e);i=r[0],i&&(e=r[1])}else{if(t.indexOf("^")>-1){let r=t.replace("^","*");i=this.utabs_.getUnitByCode(r),i&&(i=i.clone(),i.csCode_=i.csCode_.replace("*","^"),i.ciCode_=i.ciCode_.replace("*","^"))}if(!i){let r="["+t+"]";i=this.utabs_.getUnitByCode(r),i&&(i=i.clone(),e=e.replace(t,r),this.retMsg_.push(`${t} is not a valid unit expression, but ${r} is. +`+this.vcMsgStart_+`${r} (${i.name_})${this.vcMsgEnd_}`))}if(!i){let r=this.utabs_.getUnitByName(t);if(r&&r.length>0){i=r[0].clone();let s="The UCUM code for "+t+" is "+i.csCode_+`. +`+this.vcMsgStart_+i.csCode_+this.vcMsgEnd_,a=!1;for(let c=0;c"+w+"",csCode_:y+w,ciCode_:p+w,printSymbol_:g+""+w+""})}}else if(i=null,this.suggestions_){let h=this._getSuggestions(r)}else this.retMsg_.push(`${r} is not a valid UCUM code.`)}}}return[i,e]}_getUnitWithAnnotation(t,e){let i=null,r=this._getAnnoText(t,e),s=r[0],a=r[1],o=r[2];this.bracesMsg_&&this.retMsg_.indexOf(this.bracesMsg_)===-1&&this.retMsg_.push(this.bracesMsg_);let l=this.retMsg_.length;if(!a&&!o){let c="["+s.substring(1,s.length-1)+"]",u=this._makeUnit(c,e);u[0]?(i=t,this.retMsg_.push(`${s} is a valid unit expression, but did you mean ${c} (${u[0].name_})?`)):this.retMsg_.length>l&&this.retMsg_.pop(),i=new Kl({csCode_:s,ciCode_:s,magnitude_:1,name_:s})}else if(a&&!o)if($i.isIntegerUnit(a))i=a;else{let c=this._makeUnit(a,e);c[0]?(i=c[0],i.csCode_+=s,e=c[1]):this.retMsg_.push(`Unable to find a unit for ${a} that precedes the annotation ${s}.`)}else if(!a&&o)if($i.isIntegerUnit(o))i=o+s,this.retMsg_.push(`The annotation ${s} before the ``${o} is invalid.\n`+this.vcMsgStart_+i+this.vcMsgEnd_);else{let c=this._makeUnit(o,e);c[0]?(i=c[0],i.csCode_+=s,e=i.csCode_,this.retMsg_.push(`The annotation ${s} before the unit code is invalid. +`+this.vcMsgStart_+i.csCode_+this.vcMsgEnd_)):this.retMsg_.push(`Unable to find a unit for ${a} that follows the annotation ${s}.`)}else this.retMsg_.push(`Unable to find a unit for ${a}${s}${o}. +We are not sure how to interpret text both before and after the annotation. Sorry`);return[i,e]}_performUnitArithmetic(t,e){let i=t[0].un;$i.isIntegerUnit(i)&&(i=new Kl({csCode_:i,ciCode_:i,magnitude_:Number(i),name_:i}));let r=t.length,s=!1;for(let a=1;a{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});Pp.UcumLhcUtils=void 0;var SH=KA(),XA=kH(Ap());function JA(){if(typeof WeakMap!="function")return null;var n=new WeakMap;return JA=function(){return n},n}function kH(n){if(n&&n.__esModule)return n;if(n===null||typeof n!="object"&&typeof n!="function")return{default:n};var t=JA();if(t&&t.has(n))return t.get(n);var e={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)){var s=i?Object.getOwnPropertyDescriptor(n,r):null;s&&(s.get||s.set)?Object.defineProperty(e,r,s):e[r]=n[r]}return e.default=n,t&&t.set(n,e),e}var MH=ua().Ucum,Fp=ao().UnitTables,TH=ZA().UnitString,bd=class{constructor(){Fp.getInstance().unitsCount()===0&&SH.ucumJsonDefs.loadJsonDefs(),this.uStrParser_=TH.getInstance()}useHTMLInMessages(t){t===void 0&&(t=!0),this.uStrParser_.useHTMLInMessages(t)}useBraceMsgForEachString(t){t===void 0&&(t=!0),this.uStrParser_.useBraceMsgForEachString(t)}validateUnitString(t,e,i){e===void 0&&(e=!1),i===void 0&&(i="validate");let r=this.getSpecifiedUnit(t,i,e),s=r.unit,a=s?{ucumCode:r.origString,unit:{code:s.csCode_,name:s.name_,guidance:s.guidance_}}:{ucumCode:null};return a.status=r.status,r.suggestions&&(a.suggestions=r.suggestions),a.msg=r.retMsg,a}convertUnitTo(t,e,i,r,s){r===void 0&&(r=!1),s===void 0&&(s=null);let a={status:"failed",toVal:null,msg:[]};if(t&&(t=t.trim()),(!t||t=="")&&(a.status="error",a.msg.push('No "from" unit expression specified.')),this._checkFromVal(e,a),i&&(i=i.trim()),(!i||i=="")&&(a.status="error",a.msg.push('No "to" unit expression specified.')),a.status!=="error")try{let o=null,l=this.getSpecifiedUnit(t,"convert",r);o=l.unit,l.retMsg&&(a.msg=a.msg.concat(l.retMsg)),l.suggestions&&(a.suggestions={},a.suggestions.from=l.suggestions),o||a.msg.push(`Unable to find a unit for ${t}, so no conversion could be performed.`);let c=null;if(l=this.getSpecifiedUnit(i,"convert",r),c=l.unit,l.retMsg&&(a.msg=a.msg.concat(l.retMsg)),l.suggestions&&(a.suggestions||(a.suggestions={}),a.suggestions.to=l.suggestions),c||a.msg.push(`Unable to find a unit for ${i}, so no conversion could be performed.`),o&&c)try{if(!s)a.toVal=c.convertFrom(e,o);else{if(o.moleExp_!==0&&c.moleExp_!==0)throw new Error("A molecular weight was specified but a mass <-> mole conversion cannot be executed for two mole-based units. No conversion was attempted.");if(o.moleExp_===0&&c.moleExp_===0)throw new Error("A molecular weight was specified but a mass <-> mole conversion cannot be executed when neither unit is mole-based. No conversion was attempted.");if(!o.isMoleMassCommensurable(c))throw new Error(`Sorry. ${t} cannot be converted to ${i}.`);o.moleExp_!==0?a.toVal=o.convertMolToMass(e,c,s):a.toVal=o.convertMassToMol(e,c,s)}a.status="succeeded",a.fromUnit=o,a.toUnit=c}catch(u){a.status="failed",a.msg.push(u.message)}}catch(o){o.message==MH.needMoleWeightMsg_?a.status="failed":a.status="error",a.msg.push(o.message)}return a}convertToBaseUnits(t,e){let i={};if(this._checkFromVal(e,i),!i.status){let r=this.getSpecifiedUnit(t,"validate");i={status:r.status=="valid"?"succeeded":r.status};let s=r.unit;if(i.msg=r.retMsg||[],!s)r.retMsg?.length==0&&i.msg.push("Could not find unit information for "+t);else if(s.isArbitrary_)i.msg.push("Arbitrary units cannot be converted to base units or other units."),i.status="failed";else if(i.status=="succeeded"){let a={},o=s.dim_?.dimVec_,l="1";if(o){let d=Fp.getInstance().dimVecIndexToBaseUnit_;for(let h=0,m=o.length;h0&&(e=r.retMsg),!s)e.push(`Could not find unit ${t}.`);else{let a=null,o=s.getProperty("dim_");if(!o)e.push("No commensurable units were found for "+t);else{try{a=o.getProperty("dimVec_")}catch(l){e.push(l.message),l.message==="Dimension does not have requested property(dimVec_)"&&(a=null)}a&&(i=Fp.getInstance().getUnitsByDimension(a))}}return[i,e]}};Pp.UcumLhcUtils=bd;bd.getInstance=function(){return new bd}});var Up=Q(da=>{"use strict";Object.defineProperty(da,"__esModule",{value:!0});da.UnitTables=da.UcumLhcUtils=da.Ucum=void 0;var EH=ua().Ucum;da.Ucum=EH;var AH=eI().UcumLhcUtils;da.UcumLhcUtils=AH;var IH=ao().UnitTables;da.UnitTables=IH});var Vp=Q((kue,sI)=>{var $p={};function tI(n){let t=""+ +n,e=/(\d+)(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/.exec(t);if(!e)return 0;let i=e[2],r=e[3];return Math.max(0,(i==="0"?0:(i||"").length)-(r||0))}function iI(n,t){let e=Math.pow(10,t);return Math.round(n*e)/e}var nI=1e-8,rI=$p.roundToMaxPrecision=function(n){return Math.round(n/nI)*nI};$p.isEquivalent=function(n,t){if(Number.isInteger(n)&&Number.isInteger(t))return n===t;let e=Math.min(tI(n),tI(t));return e===0?Math.round(n)===Math.round(t):iI(n,e)===iI(t,e)};$p.isEqual=function(n,t){return rI(n)===rI(t)};sI.exports=$p});var oI=Q((Mue,aI)=>{var DH=pd();function RH(n){var t=DH(n),e=t.getFullYear(),i=t.getMonth(),r=new Date(0);return r.setFullYear(e,i+1,0),r.setHours(0,0,0,0),r.getDate()}aI.exports=RH});var d1=Q((Tue,lI)=>{var LH=pd(),OH=oI();function NH(n,t){var e=LH(n),i=Number(t),r=e.getMonth()+i,s=new Date(0);s.setFullYear(e.getFullYear(),r,1),s.setHours(0,0,0,0);var a=OH(s);return e.setMonth(r,Math.min(a,e.getDate())),e}lI.exports=NH});var uI=Q((Eue,cI)=>{var FH=d1();function PH(n,t){var e=Number(t);return FH(n,e*12)}cI.exports=PH});var h1=Q((Aue,dI)=>{var UH=pd();function $H(n,t){var e=UH(n),i=Number(t);return e.setDate(e.getDate()+i),e}dI.exports=$H});var mI=Q((Iue,hI)=>{var VH=h1();function BH(n,t){var e=Number(t),i=e*7;return VH(n,i)}hI.exports=BH});var pI=Q((Due,fI)=>{var zH=gd(),HH=36e5;function jH(n,t){var e=Number(t);return zH(n,e*HH)}fI.exports=jH});var _I=Q((Rue,gI)=>{var WH=gd();function qH(n,t){var e=Number(t);return WH(n,e*1e3)}gI.exports=qH});var xn=Q((Lue,SI)=>{var GH=Xy(),Ss=Up().UcumLhcUtils.getInstance(),vd=Vp(),KH="http://unitsofmeasure.org",bI="[0-9][0-9](\\:[0-9][0-9](\\:[0-9][0-9](\\.[0-9]+)?)?)?(Z|(\\+|-)[0-9][0-9]\\:[0-9][0-9])?",vI=new RegExp("^T?"+bI+"$"),yI=new RegExp("^[0-9][0-9][0-9][0-9](-[0-9][0-9](-[0-9][0-9](T"+bI+")?)?)?Z?$"),CI=new RegExp("^[0-9][0-9][0-9][0-9](-[0-9][0-9](-[0-9][0-9])?)?$"),wI=new RegExp("^[0-9][0-9][0-9][0-9](-[0-9][0-9](-[0-9][0-9](T[0-9][0-9](\\:[0-9][0-9](\\:[0-9][0-9](\\.[0-9]+)?))(Z|(\\+|-)[0-9][0-9]\\:[0-9][0-9]))))$"),Yl=class{equals(){return!1}equivalentTo(){return!1}toString(){return this.asStr?this.asStr:super.toString()}toJSON(){return this.toString()}compare(){throw"Comparison not implemented for "+this.constructor.name}plus(){throw"Addition not implemented for "+this.constructor.name}mul(){throw"Multiplication not implemented for "+this.constructor.name}div(){throw"Division not implemented for "+this.constructor.name}},xt=class n extends Yl{constructor(t,e){super(),this.asStr=t+" "+e,this.value=t,this.unit=e}equals(t){if(!(t instanceof this.constructor))return!1;let e=n._calendarDuration2Seconds[this.unit],i=n._calendarDuration2Seconds[t.unit];if(!e!=!i&&(e>1||i>1))return null;if(this.unit===t.unit)return vd.isEqual(this.value,t.value);let r=this._compareYearsAndMonths(t);if(r)return r.isEqual;let s=n.toUcumQuantity(this.value,this.unit),a=n.toUcumQuantity(t.value,t.unit),o=Ss.convertUnitTo(a.unit,a.value,s.unit);return o.status!=="succeeded"?!1:vd.isEqual(s.value,o.toVal)}equivalentTo(t){if(!(t instanceof this.constructor))return!1;if(this.unit===t.unit)return vd.isEquivalent(this.value,t.value);let e=n.getEquivalentUcumUnitCode(this.unit),i=n.getEquivalentUcumUnitCode(t.unit),r=Ss.convertUnitTo(i,t.value,e);return r.status!=="succeeded"?!1:vd.isEquivalent(this.value,r.toVal)}compare(t){if(this.unit===t.unit)return this.value-t.value;let e=n._calendarDuration2Seconds[this.unit],i=n._calendarDuration2Seconds[t.unit];if(!e!=!i&&(e>1||i>1))return null;let r=n.getEquivalentUcumUnitCode(this.unit),s=n.getEquivalentUcumUnitCode(t.unit),a=Ss.convertUnitTo(s,t.value,r);return a.status!=="succeeded"?null:this.value-a.toVal}plus(t){let e=n._yearMonthConversionFactor[this.unit],i=n._yearMonthConversionFactor[t.unit];if(e&&i)return new n(this.value+t.value*i/e,this.unit);let r=n._calendarDuration2Seconds[this.unit],s=n._calendarDuration2Seconds[t.unit];if(!r!=!s&&(r>1||s>1))return null;let a=r?"s":this.unit.replace(yd,""),o=(r||1)*this.value,l=s?"s":t.unit.replace(yd,""),c=(s||1)*t.value,u=Ss.convertUnitTo(l,c,a);return u.status!=="succeeded"||u.fromUnit.isSpecial_||u.toUnit.isSpecial_?null:new n(o+u.toVal,a)}mul(t){let e=n._calendarDuration2Seconds[this.unit],i=n._calendarDuration2Seconds[t.unit];if(e>1&&t.unit!=="'1'"||i>1&&this.unit!=="'1'")return null;let r=this.convToUcumUnits(this,e);if(!r)return null;let s=this.convToUcumUnits(t,i);return s?this.unit==="'1'"?new n(this.value*t.value,t.unit):t.unit==="'1'"?new n(this.value*t.value,this.unit):new n(r.value*s.value,`'(${r.unit}).(${s.unit})'`):null}div(t){if(t.value===0)return null;let e=n._calendarDuration2Seconds[this.unit],i=n._calendarDuration2Seconds[t.unit];if(e)if(i){let l=n._yearMonthConversionFactor[this.unit],c=n._yearMonthConversionFactor[t.unit];if(l&&c)return new n(this.value*l/(t.value*c),"'1'")}else{if(t.unit==="'1'")return new n(this.value/t.value,this.unit);if(e>1)return null}else if(i>1)return null;let r=this.convToUcumUnits(this,e);if(!r)return null;let s=this.convToUcumUnits(t,i);if(!s)return null;let a=s.unit==="1"?r.unit:`(${r.unit})/(${s.unit})`,o=Ss.convertToBaseUnits(a,r.value/s.value);return o.status!=="succeeded"?null:new n(o.magnitude,`'${Object.keys(o.unitToExp).map(l=>l+o.unitToExp[l]).join(".")||"1"}'`)}convToUcumUnits(t,e){if(e)return{value:e*t.value,unit:"s"};{let i=t.unit.replace(yd,""),r=Ss.convertToBaseUnits(i,t.value);return r.status!=="succeeded"||r.fromUnitIsSpecial?null:{value:r.magnitude,unit:Object.keys(r.unitToExp).map(s=>s+r.unitToExp[s]).join(".")||"1"}}}_compareYearsAndMonths(t){let e=n._yearMonthConversionFactor[this.unit],i=n._yearMonthConversionFactor[t.unit];return e&&i?{isEqual:vd.isEqual(this.value*e,t.value*i)}:null}},yd=/^'|'$/g;xt.getEquivalentUcumUnitCode=function(n){return xt.mapTimeUnitsToUCUMCode[n]||n.replace(yd,"")};xt.toUcumQuantity=function(n,t){let e=xt._calendarDuration2Seconds[t];return e?{value:e*n,unit:"s"}:{value:n,unit:t.replace(yd,"")}};xt.convUnitTo=function(n,t,e){let i=xt._yearMonthConversionFactor[n],r=xt._yearMonthConversionFactor[e];if(i&&r)return new xt(i*t/r,e);let s=xt._calendarDuration2Seconds[n],a=xt._calendarDuration2Seconds[e];if(a){if(s)return new xt(s*t/a,e);{let o=Ss.convertUnitTo(n.replace(/^'|'$/g,""),t,"s");if(o.status==="succeeded")return new xt(o.toVal/a,e)}}else{let o=s?Ss.convertUnitTo("s",s*t,e.replace(/^'|'$/g,"")):Ss.convertUnitTo(n.replace(/^'|'$/g,""),t,e.replace(/^'|'$/g,""));if(o.status==="succeeded")return new xt(o.toVal,e)}return null};xt._calendarDuration2Seconds={years:365*24*60*60,months:30*24*60*60,weeks:7*24*60*60,days:24*60*60,hours:60*60,minutes:60,seconds:1,milliseconds:.001,year:365*24*60*60,month:30*24*60*60,week:7*24*60*60,day:24*60*60,hour:60*60,minute:60,second:1,millisecond:.001};xt._yearMonthConversionFactor={years:12,months:1,year:12,month:1};xt.dateTimeArithmeticDurationUnits={years:"year",months:"month",weeks:"week",days:"day",hours:"hour",minutes:"minute",seconds:"second",milliseconds:"millisecond",year:"year",month:"month",week:"week",day:"day",hour:"hour",minute:"minute",second:"second",millisecond:"millisecond","'s'":"second","'ms'":"millisecond"};xt.mapUCUMCodeToTimeUnits={a:"year",mo:"month",wk:"week",d:"day",h:"hour",min:"minute",s:"second",ms:"millisecond"};xt.mapTimeUnitsToUCUMCode=Object.keys(xt.mapUCUMCodeToTimeUnits).reduce(function(n,t){return n[xt.mapUCUMCodeToTimeUnits[t]]=t,n[xt.mapUCUMCodeToTimeUnits[t]+"s"]=t,n},{});var ma=class n extends Yl{constructor(t){super(),this.asStr=t}plus(t){let e=t.unit,i=xt.dateTimeArithmeticDurationUnits[e];if(!i)throw new Error("For date/time arithmetic, the unit of the quantity must be one of the following time-based units: "+Object.keys(xt.dateTimeArithmeticDurationUnits));let r=this.constructor,s=r._timeUnitToDatePrecision[i];if(s===void 0)throw new Error("Unsupported unit for +. The unit should be one of "+Object.keys(r._timeUnitToDatePrecision).join(", ")+".");let a=t.value,o=r===Cd;if((o?s<2:s<5)&&(a=Math.trunc(a)),this._getPrecision()2?new $n(a)._getTimeParts():this._getTimeParts(),c=r>2?new $n(o)._getTimeParts():t._getTimeParts(),u=0;u<=s&&e!==!1;++u)e=l[u]==c[u];e&&(e=void 0)}}return e}equivalentTo(t){var e=t instanceof this.constructor;if(e){var i=this._getPrecision(),r=t._getPrecision();e=i==r,e&&(e=this._getDateObj().getTime()==t._getDateObj().getTime())}return e}compare(t){var e=this._getPrecision(),i=t._getPrecision(),r=e<=i?this._getDateObj().getTime():this._dateAtPrecision(i).getTime(),s=i<=e?t._getDateObj().getTime():t._dateAtPrecision(e).getTime();return e!==i&&r===s?null:r-s}_getPrecision(){return this.precision===void 0&&this._getMatchData(),this.precision}_getMatchData(t,e){if(this.timeMatchData===void 0&&(this.timeMatchData=this.asStr.match(t),this.timeMatchData))for(let i=e;i>=0&&this.precision===void 0;--i)this.timeMatchData[i]&&(this.precision=i);return this.timeMatchData}_getTimeParts(t){var e=[];e=[t[0]];var i=t[4];if(i){let o=e[0];e[0]=o.slice(0,o.length-i.length)}var r=t[1];if(r){let o=e[0];e[0]=o.slice(0,o.length-r.length),e[1]=r;var s=t[2];if(s){e[1]=r.slice(0,r.length-s.length),e[2]=s;var a=t[3];a&&(e[2]=s.slice(0,s.length-a.length),e[3]=a)}}return e}_getDateObj(){if(!this.dateObj){var t=this._getPrecision();this.dateObj=this._dateAtPrecision(t)}return this.dateObj}_createDate(t,e,i,r,s,a,o,l){var c=new Date(t,e,i,r,s,a,o);if(l){var u=c.getTimezoneOffset(),d=0;if(l!="Z"){var h=l.split(":"),m=parseInt(h[0]);d=parseInt(h[1]),m<0&&(d=-d),d+=60*m}c=GH(c,-u-d)}return c}};ma.timeUnitToAddFn={year:uI(),month:d1(),week:mI(),day:h1(),hour:pI(),minute:Xy(),second:_I(),millisecond:gd()};var $n=(()=>{class n extends ma{constructor(e){super(e)}compare(e){if(!(e instanceof n))throw"Invalid comparison of a DateTime with something else";return super.compare(e)}_getMatchData(){return super._getMatchData(yI,5)}_getTimeParts(){if(!this.timeParts){let i=this._getMatchData(),r=i[0];this.timeParts=[r];var e=i[1];if(e){this.timeParts[0]=r.slice(0,r.length-e.length),this.timeParts[1]=e;let s=i[2];if(s){this.timeParts[1]=e.slice(0,e.length-s.length),this.timeParts[2]=s;let a=i[3];a&&(this.timeParts[2]=s.slice(0,s.length-a.length),a[0]==="T"&&(i[3]=a.slice(1)),this.timeParts=this.timeParts.concat(super._getTimeParts(i.slice(3))))}}}return this.timeParts}_dateAtPrecision(e){var i=this._getTimeParts(),r=this._getMatchData()[7],s=this._getPrecision(),a=parseInt(i[0]),o=s>0?parseInt(i[1].slice(1))-1:0,l=s>1?parseInt(i[2].slice(1)):1,c=s>2?parseInt(i[3]):0,u=s>3?parseInt(i[4].slice(1)):0,d=s>4?parseInt(i[5].slice(1)):0,h=i.length>6?parseInt(i[6].slice(1)):0,m=this._createDate(a,o,l,c,u,d,h,r);return e0?m.getMonth():0,l=e>1?m.getDate():1,c=e>2?m.getHours():0,u=e>3?m.getMinutes():0,m=new Date(a,o,l,c,u)),m}}return n.checkString=function(t){let e=new n(t);return e._getMatchData()||(e=null),e},n._timeUnitToDatePrecision={year:0,month:1,week:2,day:2,hour:3,minute:4,second:5,millisecond:6},n._datePrecisionToTimeUnit=["year","month","day","hour","minute","second","millisecond"],n})(),Cd=(()=>{class n extends ma{constructor(e){e[0]=="T"&&(e=e.slice(1)),super(e)}compare(e){if(!(e instanceof n))throw"Invalid comparison of a time with something else";return super.compare(e)}_dateAtPrecision(e){var i=this._getTimeParts(),r=this._getMatchData()[4],s=this._getPrecision(),a=2010,o=0,l=1,c=parseInt(i[0]),u=s>0?parseInt(i[1].slice(1)):0,d=s>1?parseInt(i[2].slice(1)):0,h=i.length>3?parseInt(i[3].slice(1)):0,m=this._createDate(a,o,l,c,u,d,h,r);return r&&(m.setYear(a),m.setMonth(o),m.setDate(l)),e0?m.getMinutes():0,m=new Date(a,o,l,c,u)),m}_getMatchData(){return super._getMatchData(vI,2)}_getTimeParts(){return this.timeParts||(this.timeParts=super._getTimeParts(this._getMatchData())),this.timeParts}}return n.checkString=function(t){let e=new n(t);return e._getMatchData()||(e=null),e},n._timeUnitToDatePrecision={hour:0,minute:1,second:2,millisecond:3},n._datePrecisionToTimeUnit=["hour","minute","second","millisecond"],n})();function ha(n,t){var e=n;return t===3&&n<100&&(e="0"+n),n<10&&(e="0"+e),e}$n.isoDateTime=function(n,t){t===void 0&&(t=5);var e=""+n.getFullYear();if(t>0&&(e+="-"+ha(n.getMonth()+1),t>1&&(e+="-"+ha(n.getDate()),t>2&&(e+="T"+$n.isoTime(n,t-3)))),t>2){var i=n.getTimezoneOffset(),r=i<0?"+":"-";i=Math.abs(i);var s=i%60,a=(i-s)/60;e+=r+ha(a)+":"+ha(s)}return e};$n.isoTime=function(n,t){t===void 0&&(t=2);let e=""+ha(n.getHours());return t>0&&(e+=":"+ha(n.getMinutes()),t>1&&(e+=":"+ha(n.getSeconds()),n.getMilliseconds()&&(e+="."+ha(n.getMilliseconds(),3)))),e};var m1=(()=>{class n extends $n{constructor(e){super(e)}_getMatchData(){return ma.prototype._getMatchData.apply(this,[CI,2])}}return n.checkString=function(t){let e=new n(t);return e._getMatchData()||(e=null),e},n.isoDate=function(t,e){return(e===void 0||e>2)&&(e=2),$n.isoDateTime(t,e)},n})(),xI=(()=>{class n extends $n{constructor(e){super(e)}_getMatchData(){return ma.prototype._getMatchData.apply(this,[wI,5])}}return n.checkString=function(t){let e=new n(t);return e._getMatchData()||(e=null),e},n})(),p1=(()=>{class n{constructor(e,i,r,s,a,o){e?.resourceType&&(r=e.resourceType,a=e.resourceType),this.parentResNode=i||null,this.path=r||null,this.data=e,this._data=s||{},this.fhirNodeDataType=a||null,this.model=o||null}getTypeInfo(){if(!this.typeInfo){let e;this.fhirNodeDataType&&(/^System\.(.*)$/.test(this.fhirNodeDataType)?e=new wn({namespace:wn.System,name:RegExp.$1}):e=new wn({namespace:wn.FHIR,name:this.fhirNodeDataType})),this.typeInfo=e||wn.createByValueInSystemNamespace(this.data)}return this.typeInfo}toJSON(){return JSON.stringify(this.data)}convertData(){if(!this.convertedData){var e=this.data;if(e!=null){let i=wn.typeToClassWithCheckString[this.path];if(i)e=i.checkString(e)||e;else if(wn.isType(this.path,"Quantity",this.model)&&e?.system===KH&&typeof e.value=="number"&&typeof e.code=="string"){if(e.comparator!==void 0)throw new Error("Cannot convert a FHIR.Quantity that has a comparator");e=new xt(e.value,xt.mapUCUMCodeToTimeUnits[e.code]||"'"+e.code+"'")}}this.convertedData=e}return this.convertedData}}return n.makeResNode=function(t,e,i,r,s,a){return t instanceof n?t:new n(t,e,i,r,s,a)},n})(),f1=new Set;["Boolean","String","Integer","Decimal","Date","DateTime","Time","Quantity"].forEach(n=>f1.add(n));var wn=(()=>{class n{constructor({name:e,namespace:i}){this.name=e,this.namespace=i}static model=null;is(e,i){return e instanceof n&&(!this.namespace||!e.namespace||this.namespace===e.namespace)?i&&(!this.namespace||this.namespace===n.FHIR)?n.isType(this.name,e.name,i):this.name===e.name:!1}toString(){return(this.namespace?this.namespace+".":"")+this.name}isValid(e){let i=!1;return this.namespace==="System"?i=f1.has(this.name):this.namespace==="FHIR"?i=e.availableTypes.has(this.name):this.namespace||(i=f1.has(this.name)||e.availableTypes.has(this.name)),i}}return n.typeToClassWithCheckString={date:m1,dateTime:$n,instant:xI,time:Cd},n.isType=function(t,e,i){do if(t===e)return!0;while(t=i?.type2Parent[t]);return!1},n.System="System",n.FHIR="FHIR",n.createByValueInSystemNamespace=function(t){let e=typeof t;return Number.isInteger(t)?e="integer":e==="number"?e="decimal":t instanceof m1?e="date":t instanceof $n?e="dateTime":t instanceof Cd?e="time":t instanceof xt&&(e="Quantity"),e=e.replace(/^\w/,i=>i.toUpperCase()),new n({namespace:n.System,name:e})},n.fromValue=function(t){return t instanceof p1?t.getTypeInfo():n.createByValueInSystemNamespace(t)},n})(),g1=new Set;["instant","time","date","dateTime","base64Binary","decimal","integer64","boolean","string","code","markdown","id","integer","unsignedInt","positiveInt","uri","oid","uuid","canonical","url","Integer","Decimal","String","Date","DateTime","Time"].forEach(n=>g1.add(n));wn.isPrimitive=function(n){return g1.has(n.name)};wn.isPrimitiveValue=function(n){return n instanceof p1?g1.has(n.getTypeInfo().name):typeof n!="object"||n instanceof Yl};function YH(n){return n.map(t=>wn.fromValue(t))}function QH(n,t){if(n.length===0)return[];if(n.length>1)throw new Error("Expected singleton on left side of 'is', got "+JSON.stringify(n));let e=this;return wn.fromValue(n[0]).is(t,e.model)}function ZH(n,t){if(n.length===0)return[];if(n.length>1)throw new Error("Expected singleton on left side of 'as', got "+JSON.stringify(n));let e=this;return wn.fromValue(n[0]).is(t,e.model)?n:[]}SI.exports={FP_Type:Yl,FP_TimeBase:ma,FP_Date:m1,FP_DateTime:$n,FP_Instant:xI,FP_Time:Cd,FP_Quantity:xt,timeRE:vI,dateTimeRE:yI,dateRE:CI,instantRE:wI,ResourceNode:p1,TypeInfo:wn,typeFn:YH,isFn:QH,asFn:ZH}});var Vi=Q((Oue,MI)=>{var It={},XH=xn(),{ResourceNode:Zl}=XH;It.raiseError=function(n,t){throw t=t?t+": ":"",t+n};It.assertOnlyOne=function(n,t){n.length!==1&&It.raiseError("Was expecting only one element but got "+JSON.stringify(n),t)};It.assertType=function(n,t,e){let i=this.valData(n);if(t.indexOf(typeof i)<0){let r=t.length>1?"one of "+t.join(", "):t[0];It.raiseError("Found type '"+typeof n+"' but was expecting "+r,e)}return i};It.isEmpty=function(n){return Array.isArray(n)&&n.length===0};It.isSome=function(n){return n!=null&&!It.isEmpty(n)};It.isTrue=function(n){return n!=null&&(n===!0||n.length===1&&It.valData(n[0])===!0)};It.isCapitalized=function(n){return n&&n[0]===n[0].toUpperCase()};It.capitalize=function(n){return n[0].toUpperCase()+n.substring(1)};It.flatten=function(n){return n.some(t=>t instanceof Promise)?Promise.all(n).then(t=>kI(t)):kI(n)};function kI(n){return[].concat(...n)}It.arraify=function(n){return Array.isArray(n)?n:It.isSome(n)?[n]:[]};It.resolveAndArraify=function(n){return n instanceof Promise?n.then(t=>It.arraify(t)):It.arraify(n)};It.valData=function(n){return n instanceof Zl?n.data:n};It.valDataConverted=function(n){return n instanceof Zl&&(n=n.convertData()),n};It.escapeStringForRegExp=function(n){return n.replace(/[-[\]{}()*+?.,\\/^$|#\s]/g,"\\$&")};It.pushFn=Function.prototype.apply.bind(Array.prototype.push);It.makeChildResNodes=function(n,t,e){let i=n.path+"."+t;if(e){let c=e.pathsDefinedElsewhere[i];c&&(i=c)}let r,s,a=e&&e.choiceTypePaths[i];if(a)for(let c of a){let u=t+c;if(r=n.data?.[u],s=n.data?.["_"+u],r!==void 0||s!==void 0){i+=c;break}}else r=n.data?.[t],s=n.data?.["_"+t],r===void 0&&s===void 0&&(r=n._data[t]),t==="extension"&&(i="Extension");let o=null;e&&(o=e.path2Type[i],i=e.path2TypeWithoutElements[i]||i);let l;if(It.isSome(r)||It.isSome(s))if(Array.isArray(r)){l=r.map((u,d)=>Zl.makeResNode(u,n,i,s&&s[d],o,e));let c=s?.length||0;for(let u=r.length;uZl.makeResNode(null,n,i,c,o,e)):l=[Zl.makeResNode(r,n,i,s,o,e)];else l=[];return l};var Ql={},JH=36e5;It.fetchWithCache=function(n,t){let e=[n,t?JSON.stringify(t):""].join("|"),i=Date.now();for(let r in Ql)i-Ql[r].timestamp>JH&&delete Ql[r];return Ql[e]||(Ql[e]={timestamp:i,promise:Promise.resolve(t?fetch(n,t):fetch(n)).then(r=>{let s=r.headers.get("Content-Type"),a=s.includes("application/json")||s.includes("application/fhir+json");try{return a?r.json().then(o=>r.ok?o:Promise.reject(o)):r.text().then(o=>Promise.reject(o))}catch(o){return Promise.reject(new Error(o))}})}),Ql[e].promise};MI.exports=It});var TI=Q(()=>{var e7=Function.prototype.call.bind(Array.prototype.slice);Number.isInteger=Number.isInteger||function(n){return typeof n=="number"&&isFinite(n)&&Math.floor(n)===n};String.prototype.startsWith||Object.defineProperty(String.prototype,"startsWith",{value:function(n,t){return t=t||0,this.indexOf(n,t)===t}});String.prototype.endsWith||Object.defineProperty(String.prototype,"endsWith",{value:function(n,t){var e=this.toString();(t===void 0||t>e.length)&&(t=e.length),t-=n.length;var i=e.indexOf(n,t);return i!==-1&&i===t}});String.prototype.includes||Object.defineProperty(String.prototype,"includes",{value:function(){return this.indexOf.apply(this,arguments)!==-1}});Object.assign||Object.defineProperty(Object,"assign",{value:function(n){if(n==null)throw new TypeError("Cannot convert undefined or null to object");return e7(arguments,1).reduce(function(t,e){return Object.keys(Object(e)).forEach(function(i){t[i]=e[i]}),t},Object(n))}});typeof btoa>"u"&&(global.btoa=function(n){return new Buffer.from(n,"binary").toString("base64")});typeof atob>"u"&&(global.atob=function(n){return new Buffer.from(n,"base64").toString("binary")})});var _1=Q((Pue,EI)=>{EI.exports={reset:function(){this.nowDate=new Date,this.today=null,this.now=null,this.timeOfDay=null,this.localTimezoneOffset=null},today:null,now:null,timeOfDay:null}});var Bp=Q((Uue,AI)=>{var t7=Up().UcumLhcUtils.getInstance(),{roundToMaxPrecision:i7}=Vp(),{valDataConverted:n7}=Vi(),{FP_Type:r7,FP_Quantity:b1}=xn();function s7(n){return JSON.stringify(v1(n))}function v1(n){if(n=n7(n),n===null)return null;if(typeof n=="number")return i7(n);if(n instanceof Date)return n.toISOString();if(n instanceof b1){let t=b1._yearMonthConversionFactor[n.unit];if(t)return"_!yearMonth!_:"+t*n.value;{let e=b1.toUcumQuantity(n.value,n.unit),i=t7.getSpecifiedUnit(e.unit).unit;return"_!"+i.property_+"!_:"+i.magnitude_*e.value}}else{if(n instanceof r7)return n.toString();if(typeof n=="object")return Array.isArray(n)?n.map(v1):Object.keys(n).sort().reduce((t,e)=>{let i=n[e];return t[e]=v1(i),t},{})}return n}AI.exports=s7});var Xl=Q(($ue,VI)=>{var{FP_Type:II,FP_Quantity:DI,ResourceNode:RI}=xn(),LI=Vp(),OI=Array.prototype.slice,NI=Object.keys,zp=function(n){return Object.prototype.toString.call(n)==="[object Arguments]"};function FI(n){return typeof n=="string"||n instanceof String}function PI(n){return!isNaN(parseFloat(n))&&isFinite(n)}function UI(n){return n.toUpperCase().replace(/\s+/," ")}function rr(n,t,e){let i=n instanceof RI,r=t instanceof RI,s=i?n.convertData():n,a=r?t.convertData():t;if(e||(e={}),s===a)return e.fuzzy||!i||!r||rr(n._data,t._data);if(e.fuzzy){if(FI(s)&&FI(a))return UI(s)===UI(a);if(PI(s)&&PI(a))return LI.isEquivalent(s,a)}else if(typeof s=="number"&&typeof a=="number")return LI.isEqual(s,a)?i&&r?rr(n._data,t._data,e):!0:!1;if(s instanceof Date&&a instanceof Date)return s.getTime()===a.getTime()&&(e.fuzzy||!i||!r||rr(n._data,t._data));if(!s||!a||typeof s!="object"&&typeof a!="object")return s===a&&(e.fuzzy||!i||!r||rr(n._data,t._data));var o=s instanceof II,l=a instanceof II;if(o&&l){if(e.fuzzy)return s.equivalentTo(a);{let c=s.equals(a);return c&&(!i||!r||rr(n._data,t._data)&&rr(n.data?.id,t.data?.id)&&rr(n.data?.extension,t.data?.extension))}}else if(o||l){let c=!1;return typeof s=="number"&&(s=new DI(s,"'1'"),c=!0),typeof a=="number"&&(a=new DI(a,"'1'"),c=!0),c?e.fuzzy?s.equivalentTo(a):s.equals(a):!1}return a7(s,a,e)}function $I(n){return n==null}function a7(n,t,e){var i,r;if($I(n)||$I(t)||n.prototype!==t.prototype)return!1;if(zp(n)||zp(t))return n=zp(n)?OI.call(n):n,t=zp(t)?OI.call(t):t,rr(n,t,e);try{var s=NI(n),a=NI(t)}catch{return!1}if(s.length!=a.length)return!1;for(s.sort(),a.sort(),i=s.length-1;i>=0;i--)if(s[i]!=a[i])return!1;if(s.length===1)return r=s[0],rr(n[r],t[r],e);for(i=s.length-1;i>=0;i--)if(r=s[i],!rr(n[r],t[r],e))return!1;return typeof n==typeof t}VI.exports={deepEqual:rr,maxCollSizeForDeepEqual:6}});var Hp=Q((Vue,WI)=>{var y1=Vi(),{TypeInfo:C1,ResourceNode:o7}=xn(),zI=Bp(),{deepEqual:HI,maxCollSizeForDeepEqual:jI}=Xl(),Bi={};Bi.whereMacro=function(n,t){return n!==!1&&!n?[]:y1.flatten(n.map((e,i)=>{this.$index=i;let r=t(e);return r instanceof Promise?r.then(s=>s[0]?e:[]):r[0]?e:[]}))};Bi.extension=function(n,t){let e=this;return n!==!1&&!n||!t?[]:y1.flatten(n.map((i,r)=>{this.$index=r;let s=i&&(i.data&&i.data.extension||i._data&&i._data.extension);return s?s.filter(a=>a.url===t).map(a=>o7.makeResNode(a,i,"Extension",null,"Extension",e.model)):[]}))};Bi.selectMacro=function(n,t){return n!==!1&&!n?[]:y1.flatten(n.map((e,i)=>(this.$index=i,t(e))))};Bi.repeatMacro=function(n,t,e={res:[],unique:{},hasPrimitive:!1}){if(n!==!1&&!n)return[];let i=[].concat(...n.map(r=>t(r)));return i.some(r=>r instanceof Promise)?Promise.all(i).then(r=>(r=[].concat(...r),r.length?Bi.repeatMacro(BI(r,e),t,e):e.res)):i.length?Bi.repeatMacro(BI(i,e),t,e):e.res};function BI(n,t){let e;return t.hasPrimitive=t.hasPrimitive||n.some(i=>C1.isPrimitiveValue(i)),!t.hasPrimitive&&n.length+t.res.length>jI?(e=n.filter(i=>{let r=zI(i),s=!t.unique[r];return s&&(t.unique[r]=!0),s}),t.res.push.apply(t.res,e)):e=n.filter(i=>{let r=!t.res.some(s=>HI(s,i));return r&&t.res.push(i),r}),e}Bi.singleFn=function(n){if(n.length===1)return n;if(n.length===0)return[];throw new Error("Expected single")};Bi.firstFn=function(n){return n[0]};Bi.lastFn=function(n){return n[n.length-1]};Bi.tailFn=function(n){return n.slice(1,n.length)};Bi.takeFn=function(n,t){return n.slice(0,t)};Bi.skipFn=function(n,t){return n.slice(t,n.length)};Bi.ofTypeFn=function(n,t){let e=this;return n.filter(i=>C1.fromValue(i).is(t,e.model))};Bi.distinctFn=function(n,t=void 0){let e=[];if(n.length>0)if(t=t??n.some(i=>C1.isPrimitiveValue(i)),!t&&n.length>jI){let i={};for(let r=0,s=n.length;r!HI(i,r))}while(n.length)}return e};WI.exports=Bi});var jp=Q((Bue,YI)=>{var $r=Vi(),GI=xn(),{FP_Quantity:ks,TypeInfo:KI}=GI,zi={};zi.iifMacro=function(n,t,e,i){let r=t(n);return r instanceof Promise?r.then(s=>qI(n,s,e,i)):qI(n,r,e,i)};function qI(n,t,e,i){return $r.isTrue(t)?e(n):i?i(n):[]}zi.traceFn=function(n,t,e){let i=e?e(n):null;return i instanceof Promise?i.then(r=>zi.traceFn(n,t,r)):(this.customTraceFn?e?this.customTraceFn(e(n),t??""):this.customTraceFn(n,t??""):e?console.log("TRACE:["+(t||"")+"]",JSON.stringify(e(n),null," ")):console.log("TRACE:["+(t||"")+"]",JSON.stringify(n,null," ")),n)};zi.defineVariable=function(n,t,e){let i=n;if(e&&(i=e(n)),this.definedVars||(this.definedVars={}),t in this.vars||t in this.processedVars)throw new Error("Environment Variable %"+t+" already defined");if(Object.keys(this.definedVars).includes(t))throw new Error("Variable %"+t+" already defined");return this.definedVars[t]=i,n};var l7=/^[+-]?\d+$/;zi.toInteger=function(n){if(n.length!==1)return[];var t=$r.valData(n[0]);return t===!1?0:t===!0?1:typeof t=="number"?Number.isInteger(t)?t:[]:typeof t=="string"&&l7.test(t)?parseInt(t):[]};var c7=/^((\+|-)?\d+(\.\d+)?)\s*(('[^']+')|([a-zA-Z]+))?$/,w1={value:1,unit:5,time:6};zi.toQuantity=function(n,t){let e;if(n.length>1)throw new Error("Could not convert to quantity: input collection contains multiple items");if(n.length===1){if(t){let s=ks._calendarDuration2Seconds[this.unit],a=ks._calendarDuration2Seconds[t];if(!s!=!a&&(s>1||a>1))return null;ks.mapTimeUnitsToUCUMCode[t]||(t=`'${t}'`)}var i=$r.valDataConverted(n[0]);let r;if(typeof i=="number")e=new ks(i,"'1'");else if(i instanceof ks)e=i;else if(typeof i=="boolean")e=new ks(i?1:0,"'1'");else if(typeof i=="string"&&(r=c7.exec(i))){let s=r[w1.value],a=r[w1.unit],o=r[w1.time];(!o||ks.mapTimeUnitsToUCUMCode[o])&&(e=new ks(Number(s),a||o||"'1'"))}e&&t&&e.unit!==t&&(e=ks.convUnitTo(e.unit,e.value,t))}return e||[]};var u7=/^[+-]?\d+(\.\d+)?$/;zi.toDecimal=function(n){if(n.length!==1)return[];var t=$r.valData(n[0]);return t===!1?0:t===!0?1:typeof t=="number"?t:typeof t=="string"&&u7.test(t)?parseFloat(t):[]};zi.toString=function(n){if(n.length!==1)return[];var t=$r.valDataConverted(n[0]);return t==null?[]:t.toString()};function x1(n){let t=n.slice(3);zi["to"+t]=function(e){var i=[];if(e.length>1)throw Error("to "+t+" called for a collection of length "+e.length);if(e.length===1){var r=$r.valData(e[0]);if(typeof r=="string"){var s=GI[n].checkString(r);s&&(i=s)}}return i}}x1("FP_Date");x1("FP_DateTime");x1("FP_Time");var d7=["true","t","yes","y","1","1.0"].reduce((n,t)=>(n[t]=!0,n),{}),h7=["false","f","no","n","0","0.0"].reduce((n,t)=>(n[t]=!0,n),{});zi.toBoolean=function(n){if(n.length!==1)return[];let t=$r.valData(n[0]);switch(typeof t){case"boolean":return t;case"number":if(t===1)return!0;if(t===0)return!1;break;case"string":let e=t.toLowerCase();if(d7[e])return!0;if(h7[e])return!1}return[]};zi.createConvertsToFn=function(n,t){return typeof t=="string"?function(e){return e.length!==1?[]:typeof n(e)===t}:function(e){return e.length!==1?[]:n(e)instanceof t}};var m7={Integer:function(n){if(Number.isInteger(n))return n},Boolean:function(n){return n===!0||n===!1?n:!0},Number:function(n){if(typeof n=="number")return n},String:function(n){if(typeof n=="string")return n},StringOrNumber:function(n){if(typeof n=="string"||typeof n=="number")return n},AnySingletonAtRoot:function(n){return n}};zi.singleton=function(n,t){if(n.length>1)throw new Error("Unexpected collection"+JSON.stringify(n)+"; expected singleton of type "+t);if(n.length===0)return[];let e=$r.valData(n[0]);if(e==null)return[];let i=m7[t];if(i){let r=i(e);if(r!==void 0)return r;throw new Error(`Expected ${t.toLowerCase()}, but got: ${JSON.stringify(n)}`)}throw new Error("Not supported type "+t)};zi.hasValueFn=function(n){return n.length===1&&$r.valData(n[0])!=null&&KI.isPrimitiveValue(n[0])};zi.getValueFn=function(n){if(n.length===1){let t=n[0],e=$r.valData(t);if(e!=null&&KI.isPrimitiveValue(t))return e}return[]};YI.exports=zi});var eD=Q((zue,JI)=>{var Vr=Vi(),{whereMacro:f7,distinctFn:p7}=Hp(),g7=jp(),QI=Bp(),{deepEqual:_7,maxCollSizeForDeepEqual:b7}=Xl(),{TypeInfo:ZI}=xn(),tn={};tn.emptyFn=Vr.isEmpty;tn.notFn=function(n){let t=g7.singleton(n,"Boolean");return typeof t=="boolean"?!t:[]};tn.existsMacro=function(n,t){if(t){let e=f7.call(this,n,t);return e instanceof Promise?e.then(i=>tn.existsMacro(i)):tn.existsMacro(e)}return!Vr.isEmpty(n)};tn.allMacro=function(n,t){let e=[];for(let i=0,r=n.length;ii.some(r=>!Vr.isTrue(r))?[!1]:[!0]):[!0]};tn.allTrueFn=function(n){let t=!0;for(let e=0,i=n.length;eZI.isPrimitiveValue(a))||t.some(a=>ZI.isPrimitiveValue(a)))&&e+i>b7){let a=t.reduce((o,l)=>(o[QI(l)]=!0,o),{});r=!n.some(o=>!a[QI(o)])}else for(let a=0,o=n.length;a_7(l,Vr.valData(c)))}return r}tn.subsetOfFn=function(n,t){return[XI(n,t)]};tn.supersetOfFn=function(n,t){return[XI(t,n)]};tn.isDistinctFn=function(n){return[n.length===p7(n).length]};JI.exports=tn});var S1=Q((Hue,iD)=>{var{FP_Quantity:Xt,FP_Type:wd}=xn(),Br=Vi(),ai={};function Ms(n,t){let e;if(tD(n))e=[];else{if(n.length!==1)throw new Error("Unexpected collection"+JSON.stringify(n)+"; expected singleton of type number");{let i=Br.valData(n[0]);if(i==null)e=[];else if(typeof i=="number")e=t(i);else throw new Error("Expected number, but got "+JSON.stringify(i))}}return e}function tD(n){return typeof n=="number"?!1:n.length===0}ai.amp=function(n,t){return(n||"")+(t||"")};ai.plus=function(n,t){let e;if(n.length===1&&t.length===1){let i=Br.valDataConverted(n[0]),r=Br.valDataConverted(t[0]);i==null||r==null?e=[]:typeof i=="string"&&typeof r=="string"?e=i+r:typeof i=="number"?typeof r=="number"?e=i+r:r instanceof Xt&&(e=new Xt(i,"'1'").plus(r)):i instanceof wd&&(r instanceof Xt?e=i.plus(r):r instanceof wd?e=r.plus(i):typeof r=="number"&&(e=i.plus(new Xt(r,"'1'"))))}if(e===void 0)throw new Error("Cannot "+JSON.stringify(n)+" + "+JSON.stringify(t));return e};ai.minus=function(n,t){if(n.length===1&&t.length===1){let e=Br.valDataConverted(n[0]),i=Br.valDataConverted(t[0]);if(e==null||i==null)return[];if(typeof e=="number"){if(typeof i=="number")return e-i;if(i instanceof Xt)return new Xt(e,"'1'").plus(new Xt(-i.value,i.unit))}if(e instanceof wd){if(i instanceof Xt)return e.plus(new Xt(-i.value,i.unit));if(typeof i=="number")return e.plus(new Xt(-i,"'1'"))}}throw new Error("Cannot "+JSON.stringify(n)+" - "+JSON.stringify(t))};ai.mul=function(n,t){if(n.length===1&&t.length===1){let e=Br.valDataConverted(n[0]),i=Br.valDataConverted(t[0]);if(e==null||i==null)return[];if(typeof e=="number"){if(typeof i=="number")return e*i;if(i instanceof Xt)return new Xt(e,"'1'").mul(i)}if(e instanceof wd){if(i instanceof Xt)return e.mul(i);if(typeof i=="number")return e.mul(new Xt(i,"'1'"))}}throw new Error("Cannot "+JSON.stringify(n)+" * "+JSON.stringify(t))};ai.div=function(n,t){if(n.length===1&&t.length===1){let e=Br.valDataConverted(n[0]),i=Br.valDataConverted(t[0]);if(e==null||i==null)return[];if(typeof e=="number"){if(typeof i=="number")return i===0?[]:e/i;if(i instanceof Xt)return new Xt(e,"'1'").div(i)}if(e instanceof wd){if(i instanceof Xt)return e.div(i);if(typeof i=="number")return e.div(new Xt(i,"'1'"))}}throw new Error("Cannot "+JSON.stringify(n)+" / "+JSON.stringify(t))};ai.intdiv=function(n,t){return t===0?[]:Math.floor(n/t)};ai.mod=function(n,t){return t===0?[]:n%t};ai.abs=function(n){let t;if(tD(n))t=[];else{if(n.length!==1)throw new Error("Unexpected collection"+JSON.stringify(n)+"; expected singleton of type number or Quantity");var e=Br.valData(n[0]);if(e==null)t=[];else if(typeof e=="number")t=Math.abs(e);else if(e instanceof Xt)t=new Xt(Math.abs(e.value),e.unit);else throw new Error("Expected number or Quantity, but got "+JSON.stringify(e||n))}return t};ai.ceiling=function(n){return Ms(n,Math.ceil)};ai.exp=function(n){return Ms(n,Math.exp)};ai.floor=function(n){return Ms(n,Math.floor)};ai.ln=function(n){return Ms(n,Math.log)};ai.log=function(n,t){return Ms(n,e=>Math.log(e)/Math.log(t))};ai.power=function(n,t){return Ms(n,e=>{let i=Math.pow(e,t);return isNaN(i)?[]:i})};ai.round=function(n,t){return Ms(n,e=>{if(t===void 0)return Math.round(e);{let i=Math.pow(10,t);return Math.round(e*i)/i}})};ai.sqrt=function(n){return Ms(n,t=>t<0?[]:Math.sqrt(t))};ai.truncate=function(n){return Ms(n,Math.trunc)};iD.exports=ai});var k1=Q((jue,oD)=>{var sr=Vi(),{deepEqual:nD}=Xl(),rD=xn(),qp=rD.FP_Type,Wp=rD.FP_DateTime,Ts={};function sD(n,t){return sr.isEmpty(n)||sr.isEmpty(t)?[]:nD(n,t)}function aD(n,t){return sr.isEmpty(n)&&sr.isEmpty(t)?[!0]:sr.isEmpty(n)||sr.isEmpty(t)?[]:nD(n,t,{fuzzy:!0})}Ts.equal=function(n,t){return sD(n,t)};Ts.unequal=function(n,t){var e=sD(n,t);return e===void 0?void 0:!e};Ts.equival=function(n,t){return aD(n,t)};Ts.unequival=function(n,t){return!aD(n,t)};function Gp(n,t){if(sr.assertOnlyOne(n,"Singleton was expected"),sr.assertOnlyOne(t,"Singleton was expected"),n=sr.valDataConverted(n[0]),t=sr.valDataConverted(t[0]),n!=null&&t!=null){let e=n instanceof Wp?Wp:n.constructor,i=t instanceof Wp?Wp:t.constructor;e!==i&&sr.raiseError('Type of "'+n+'" ('+e.name+') did not match type of "'+t+'" ('+i.name+")","InequalityExpression")}return[n,t]}Ts.lt=function(n,t){let[e,i]=Gp(n,t);if(e==null||i==null)return[];if(e instanceof qp){let r=e.compare(i);return r===null?[]:r<0}return e0}return e>i};Ts.lte=function(n,t){let[e,i]=Gp(n,t);if(e==null||i==null)return[];if(e instanceof qp){let r=e.compare(i);return r===null?[]:r<=0}return e<=i};Ts.gte=function(n,t){let[e,i]=Gp(n,t);if(e==null||i==null)return[];if(e instanceof qp){let r=e.compare(i);return r===null?[]:r>=0}return e>=i};oD.exports=Ts});var hD=Q((Wue,dD)=>{var zr={},lD=S1(),cD=k1(),Es=Vi();zr.aggregateMacro=function(n,t,e){return n.reduce((i,r,s)=>i instanceof Promise?i.then(a=>(this.$index=s,this.$total=a,this.$total=t(r))):(this.$index=s,this.$total=t(r)),this.$total=e)};zr.countFn=function(n){return n&&n.length?n.length:0};zr.sumFn=function(n){return zr.aggregateMacro.apply(this,[n.slice(1),t=>{let e=Es.arraify(t).filter(r=>Es.valData(r)!=null),i=Es.arraify(this.$total).filter(r=>Es.valData(r)!=null);return e.length===0||i.length===0?[]:lD.plus(e,i)},n[0]])};function uD(n,t){let e;if(n.length===0||Es.valData(n[0])==null)e=[];else{e=[n[0]];for(let i=1;i{var pD={},T1=Vi();pD.weight=function(n){let t=this;if(!t.model?.score)throw new Error("The weight()/ordinal() function is not supported for the current model.");if(n!==!1&&!n)return[];let e=[],i=this.vars.questionnaire||this.processedVars.questionnaire?.data,r=!1;return n.forEach(s=>{if(s?.data){let{score:a,isQuestionnaireResponse:o,value:l,valueType:c}=v7(t,s);if(a!==void 0)e.push(a);else if(o&&l!=null&&c){let u=E7(s);if(i){let d=I7(t.model?.version,i,u);if(d){let h=y7(t,d,l,c);h.score!==void 0?e.push(h.score):(h.answerOption&&l.system||h.answerValueSet)&&(r=mD(e,t,i,h.answerValueSet,l.code,l.system,s)||r)}else throw new Error("Questionnaire item with this linkId were not found: "+s.parentResNode.data.linkId+".")}else throw new Error("%questionnaire is needed but not specified.")}else c==="Coding"&&l?.system&&(r=mD(e,t,null,null,l.code,l.system,s)||r)}}),r?Promise.all(e):e};function v7(n,t){let e=n.model.score.propertyURI,i=n.model.score.extensionURI,r,s,a,o,l;switch(t.path){case"Coding":s=t.parentResNode?.path==="QuestionnaireResponse.item.answer",r=Hr(t.data,i),a=t.data,o="Coding";break;case"Questionnaire.item.answerOption":r=Hr(t.data,i),a=t.data;break;case"QuestionnaireResponse.item.answer":s=!0,l=t.data&&Object.keys(t.data).find(c=>c.length>5&&c.startsWith("value")),l&&(o=l.substring(5),a=t.data[l],r=Hr(t.data["_"+l]||a,i));break;case"ValueSet.compose.include.concept":n.model.score.propertyURI||(r=Hr(t.data,i)),a={code:t.data.code,system:t.parentResNode?.data.system},o="Coding";break;case"ValueSet.expansion.contains":if(e){let c=Sd(t.parentResNode?.data.property,e);r=Yp(t.data,c),a=t.data,o="Coding"}break;case"CodeSystem.concept":if(e){let c=Sd(t.parentResNode?.data.property,e);r=Yp(t.data,c)}else r=Hr(t.data,i);break;default:s=t.parentResNode?.path==="QuestionnaireResponse.item.answer",s&&(r=Hr(t._data||t.data,i),a=t.data,o=T1.capitalize(t.fhirNodeDataType))}return{score:r,isQuestionnaireResponse:s,value:a,valueType:o}}function Hr(n,t){return t&&n?.extension?.find(e=>t.indexOf(e.url)!==-1)?.valueDecimal}function y7(n,t,e,i){let r,s="value"+i;switch(i){case"Attachment":case"Quantity":case"Reference":r=c=>Object.keys(e).find(u=>u!=="extension"&&c[s][u]!==e[u])===void 0;break;case"Coding":r=c=>c.valueCoding?.code===e.code&&c.valueCoding?.system===e.system;break;default:r=c=>c[s]===e}let a=t?.answerOption?.find(r),o=Hr(a,n.model.score.extensionURI),l=t?.answerValueSet;return{score:o,answerOption:a,answerValueSet:l}}var Kp={},C7=36e5;function w7(n,t){Kp[n]={timestamp:Date.now(),value:t}}function x7(n){return Kp[n]&&Date.now()-Kp[n].timestampm.id===u&&m.resourceType==="ValueSet":m=>m.url===i&&m.resourceType==="ValueSet",h=e?.contained?.find(d);if(h)o=T7(t,h,r,s);else if(u)throw new Error("Cannot find a contained value set with id: "+u+".")}s&&(o==null?o=fD(t,e,a,r,s):o instanceof Promise&&(o=o.then(u=>u??fD(t,e,a,r,s))))}w7(c,o)}return o!==void 0&&n.push(o),o instanceof Promise}function fD(n,t,e,i,r){let s=l=>l.url===r&&l.resourceType==="CodeSystem",a=A7(e)?.find(s)||t?.contained?.find(s),o;if(a){let l=n.model?.score.propertyURI;if(l){let c=Sd(a?.property,l);if(c){let u=xd(a?.concept,i);o=Yp(u,c)}}else{let c=n.model?.score.extensionURI;if(c){let u=xd(a?.concept,i);o=Hr(u,c)}}}else o=k7(n,i,r);return o}function k7(n,t,e){let i=n.model?.score.propertyURI,r=n.model?.score.extensionURI,s=M7(n),a=H({headers:{Accept:"application/fhir+json"}},n.signal?{signal:n.signal}:{});return T1.fetchWithCache(`${s}/CodeSystem?`+new URLSearchParams(H({url:e},i?{_elements:"property"}:{})).toString(),a).then(o=>{if(i){let l=Sd(o?.entry?.[0]?.resource?.property,i);if(l)return T1.fetchWithCache(`${s}/CodeSystem/$lookup?`+new URLSearchParams({code:t,system:e,property:l}).toString(),a).then(c=>c.parameter.find(u=>u.name==="property"&&u.part.find(d=>d.name==="code"&&d.valueCode===l))?.part?.find(u=>u.name==="value")?.valueDecimal)}else{let l=xd(o?.entry?.[0]?.resource.concept,t);return Hr(l,r)}})}function M7(n){if(!n.async)throw new Error('The asynchronous function "weight"/"ordinal" is not allowed. To enable asynchronous functions, use the async=true or async="always" option.');let t=n.processedVars.terminologies?.terminologyUrl;if(!t)throw new Error('Option "terminologyUrl" is not specified.');return t}function gD(n,t,e){let i;if(n)for(let r=0;re.uri===t)?.code}function Yp(n,t){return n?.property?.find(e=>e.code===t)?.valueDecimal}function T7(n,t,e,i){let r,s,a=n.model?.score.propertyURI;if(a){let o=Sd(t.expansion?.property,a);o&&(s=gD(t.expansion?.contains,e,i),r=Yp(s,o))}else{let o=n.model?.score.extensionURI,l=t.compose?.include,c=l?.length;for(let u=0;u0&&(i=o.find(l=>l.linkId===a),!i);)o=[].concat(...o.map(l=>[].concat(l.question||[],l.group||[])));for(let l=e.length-2;l>=0&&i;--l)i=i.question?.find(c=>c.linkId===e[l])||i.group?.find(c=>c.linkId===e[l])}else{let o=t.item;for(;o?.length>0&&(i=o.find(l=>l.linkId===a),!i);)o=[].concat(...o.map(l=>l.item||[]));for(let l=e.length-2;l>=0&&i;--l)i=i.item?.find(c=>c.linkId===e[l])}r[s]=i}return i}_D.exports=pD});var xD=Q((Kue,wD)=>{var kd={},{distinctFn:vD}=Hp(),Qp=Bp(),{deepEqual:yD,maxCollSizeForDeepEqual:CD}=Xl(),{TypeInfo:Zp}=xn();kd.union=function(n,t){return vD(n.concat(t))};kd.combineFn=function(n,t){return n.concat(t)};kd.intersect=function(n,t){let e=[],i=n.length,r=t.length;if(i&&r){let s=n.some(a=>Zp.isPrimitiveValue(a))||t.some(a=>Zp.isPrimitiveValue(a));if(!s&&i+r>CD){let a={};t.forEach(o=>{let l=Qp(o);a[l]?r--:a[l]=!0});for(let o=0;o0;++o){let l=n[o],c=Qp(l);a[c]&&(e.push(l),a[c]=!1,r--)}}else e=vD(n,s).filter(a=>t.some(o=>yD(a,o)))}return e};kd.exclude=function(n,t){let e=[],i=n.length,r=t.length;if(!r)return n;if(i)if(!(n.some(a=>Zp.isPrimitiveValue(a))||t.some(a=>Zp.isPrimitiveValue(a)))&&i+r>CD){let a={};t.forEach(o=>{let l=Qp(o);a[l]=!0}),e=n.filter(o=>!a[Qp(o)])}else e=n.filter(a=>!t.some(o=>yD(a,o)));return e};wD.exports=kd});var MD=Q((Yue,kD)=>{var{deepEqual:D7}=Xl(),E1={};function SD(n,t){for(var e=0;e1)throw new Error("Expected singleton on right side of contains, got "+JSON.stringify(t));return SD(n,t)};E1.in=function(n,t){if(n.length==0)return[];if(t.length==0)return!1;if(n.length>1)throw new Error("Expected singleton on right side of in, got "+JSON.stringify(t));return SD(t,n)};kD.exports=E1});var ED=Q((Que,TD)=>{var gt=Vi(),pi=jp(),ni={},A1={};function R7(n){return A1[n]||(A1[n]=n.replace(/\./g,(t,e,i)=>{let s=i.substr(0,e).replace(/\\\\/g,"").replace(/\\[\][]/g,""),a=s[s.length-1]==="\\",o=s.lastIndexOf("["),l=s.lastIndexOf("]");return a||o>l?".":"[^]"})),A1[n]}ni.indexOf=function(n,t){let e=pi.singleton(n,"String");return gt.isEmpty(t)||gt.isEmpty(e)?[]:e.indexOf(t)};ni.substring=function(n,t,e){let i=pi.singleton(n,"String");return gt.isEmpty(i)||gt.isEmpty(t)||t<0||t>=i.length?[]:e===void 0||gt.isEmpty(e)?i.substring(t):i.substring(t,t+e)};ni.startsWith=function(n,t){let e=pi.singleton(n,"String");return gt.isEmpty(t)||gt.isEmpty(e)?[]:e.startsWith(t)};ni.endsWith=function(n,t){let e=pi.singleton(n,"String");return gt.isEmpty(t)||gt.isEmpty(e)?[]:e.endsWith(t)};ni.containsFn=function(n,t){let e=pi.singleton(n,"String");return gt.isEmpty(t)||gt.isEmpty(e)?[]:e.includes(t)};ni.upper=function(n){let t=pi.singleton(n,"String");return gt.isEmpty(t)?[]:t.toUpperCase()};ni.lower=function(n){let t=pi.singleton(n,"String");return gt.isEmpty(t)?[]:t.toLowerCase()};ni.joinFn=function(n,t){let e=[];return n.forEach(i=>{let r=gt.valData(i);if(typeof r=="string")e.push(r);else if(r!=null)throw new Error("Join requires a collection of strings.")}),gt.isEmpty(e)?[]:(t===void 0&&(t=""),e.join(t))};ni.splitFn=function(n,t){let e=pi.singleton(n,"String");return gt.isEmpty(e)?[]:e.split(t)};ni.trimFn=function(n){let t=pi.singleton(n,"String");return gt.isEmpty(t)?[]:t.trim()};ni.encodeFn=function(n,t){let e=pi.singleton(n,"String");return gt.isEmpty(e)?[]:t==="urlbase64"||t==="base64url"?btoa(e).replace(/\+/g,"-").replace(/\//g,"_"):t==="base64"?btoa(e):t==="hex"?Array.from(e).map(i=>i.charCodeAt(0)<128?i.charCodeAt(0).toString(16):encodeURIComponent(i).replace(/%/g,"")).join(""):[]};ni.decodeFn=function(n,t){let e=pi.singleton(n,"String");if(gt.isEmpty(e))return[];if(t==="urlbase64"||t==="base64url")return atob(e.replace(/-/g,"+").replace(/_/g,"/"));if(t==="base64")return atob(e);if(t==="hex"){if(e.length%2!==0)throw new Error("Decode 'hex' requires an even number of characters.");return decodeURIComponent("%"+e.match(/.{2}/g).join("%"))}return[]};var L7=new RegExp("").dotAll===!1;L7?ni.matches=function(n,t){let e=pi.singleton(n,"String");return gt.isEmpty(t)||gt.isEmpty(e)?[]:new RegExp(t,"su").test(e)}:ni.matches=function(n,t){let e=pi.singleton(n,"String");return gt.isEmpty(t)||gt.isEmpty(e)?[]:new RegExp(R7(t),"u").test(e)};ni.replace=function(n,t,e){let i=pi.singleton(n,"String");if(gt.isEmpty(t)||gt.isEmpty(e)||gt.isEmpty(i))return[];let r=new RegExp(gt.escapeStringForRegExp(t),"g");return i.replace(r,e)};ni.replaceMatches=function(n,t,e){let i=pi.singleton(n,"String");if(gt.isEmpty(t)||gt.isEmpty(e)||gt.isEmpty(i))return[];let r=new RegExp(t,"gu");return i.replace(r,e)};ni.length=function(n){let t=pi.singleton(n,"String");return gt.isEmpty(t)?[]:t.length};ni.toChars=function(n){let t=pi.singleton(n,"String");return gt.isEmpty(t)?[]:t.split("")};TD.exports=ni});var ID=Q((Zue,AD)=>{var Xp=Vi(),Md={};Md.children=function(n){let t=this.model;return n.reduce(function(e,i){let r=Xp.valData(i);if(r==null)return e;if(typeof r=="object"){for(var s of Object.keys(r))Xp.pushFn(e,Xp.makeChildResNodes(i,s,t));return e}else return e},[])};Md.descendants=function(n){for(var t=Md.children.call(this,n),e=[];t.length>0;)Xp.pushFn(e,t),t=Md.children.call(this,t);return e};AD.exports=Md});var LD=Q((Xue,RD)=>{var Jp={},D1=xn(),Vn=_1(),DD=D1.FP_Date,I1=D1.FP_DateTime,O7=D1.FP_Time;Jp.now=function(){if(!Vn.now){var n=Vn.nowDate,t=I1.isoDateTime(n);Vn.now=new I1(t)}return Vn.now};Jp.today=function(){if(!Vn.today){var n=Vn.nowDate,t=DD.isoDate(n);Vn.today=new DD(t)}return Vn.today};Jp.timeOfDay=function(){if(!Vn.timeOfDay){let n=Vn.nowDate,t=I1.isoTime(n);Vn.timeOfDay=new O7(t)}return Vn.timeOfDay};RD.exports=Jp});var L1=Q((Jue,ND)=>{var e0=Vi(),R1=class n{constructor(t){this.terminologyUrl=t,this.invocationTable=n.invocationTable}static invocationTable={validateVS:{fn:n.validateVS,arity:{2:["String","AnySingletonAtRoot"],3:["String","AnySingletonAtRoot","String"]}}};static validateVS(t,e,i,r=""){let s=this;if(!s.async)throw new Error('The asynchronous function "validateVS" is not allowed. To enable asynchronous functions, use the async=true or async="always" option.');F7(r);let a={Accept:"application/fhir+json; charset=utf-8"},o={Accept:"application/fhir+json; charset=utf-8","Content-Type":"application/fhir+json; charset=utf-8"},l=new Headers(a),c=`${t[0].terminologyUrl}/ValueSet/$validate-code`,u;if(i.coding){let d={resourceType:"Parameters",parameter:[{name:"url",valueUri:e},{name:"codeableConcept",valueCodeableConcept:i}]};l=new Headers(o),u=e0.fetchWithCache(c+(r?"?"+r:""),H({method:"POST",headers:l,body:JSON.stringify(d)},s.signal?{signal:s.signal}:{}))}else if(typeof i=="string"){let d=new URLSearchParams({url:e});u=e0.fetchWithCache(`${t[0].terminologyUrl}/ValueSet?${d.toString()+(r?"&"+r:"")}`,H({headers:l},s.signal?{signal:s.signal}:{})).then(h=>{let m=h?.entry?.length===1&&(OD(h.entry[0].resource.expansion?.contains)||OD(h.entry[0].resource.compose?.include));if(m){let f=new URLSearchParams({url:e,code:i,system:m});return e0.fetchWithCache(`${c}?${f.toString()+(r?"&"+r:"")}`,H({headers:l},s.signal?{signal:s.signal}:{}))}else throw new Error("The valueset does not have a single code system.")})}else if(i.code){let d=new URLSearchParams({url:e??"",system:i.system??"",code:i.code});u=e0.fetchWithCache(`${c}?${d.toString()+(r?"&"+r:"")}`,H({headers:l},s.signal?{signal:s.signal}:{}))}return u.then(d=>{if(d?.parameter)return d;throw new Error(d)}).catch(()=>{let d=N7(i,e);throw new Error("Failed to check membership: "+d)})}};function N7(n,t){if(typeof n=="string")return n+" - "+t;if(n.code)return n.system+"|"+n.code+" - "+t;if(n.coding)return n.coding.map(e=>e.system+"|"+e.code).join(",")+" - "+t}function F7(n){if(n?.split("&").find(t=>{let e=t.split("=");return e.length<=2&&e.find(i=>encodeURIComponent(decodeURIComponent(i))!==i)}))throw new Error(`"${n}" should be a valid URL-encoded string`)}function OD(n,t=void 0){if(n){for(let e=0;e{var P7=Vi(),U7=L1(),FD={};FD.memberOf=function(n,t){if(!this.async)throw new Error('The asynchronous function "memberOf" is not allowed. To enable asynchronous functions, use the async=true or async="always" option.');if(n.length!==1||n[0]==null)return[];if(typeof t=="string"&&/^https?:\/\/.*/.test(t)){let e=this.processedVars.terminologies;if(!e)throw new Error('Option "terminologyUrl" is not specified.');return U7.validateVS.call(this,[e],t,P7.valData(n[0]),"").then(i=>i.parameter.find(r=>r.name==="result").valueBoolean,()=>[])}return[]};PD.exports=FD});var VD=Q((ide,$D)=>{var Td={};Td.orOp=function(n,t){if(Array.isArray(t)){if(n===!0)return!0;if(n===!1)return[];if(Array.isArray(n))return[]}return Array.isArray(n)?t===!0?!0:[]:n||t};Td.andOp=function(n,t){if(Array.isArray(t)){if(n===!0)return[];if(n===!1)return!1;if(Array.isArray(n))return[]}return Array.isArray(n)?t===!0?[]:!1:n&&t};Td.xorOp=function(n,t){return Array.isArray(n)||Array.isArray(t)?[]:n&&!t||!n&&t};Td.impliesOp=function(n,t){if(Array.isArray(t)){if(n===!0)return[];if(n===!1)return!0;if(Array.isArray(n))return[]}return Array.isArray(n)?t===!0?!0:[]:n===!1?!0:n&&t};$D.exports=Td});var zD=Q((nde,BD)=>{var at=Vi(),{ResourceNode:Hi,TypeInfo:fa,instantRE:$7,timeRE:V7,dateRE:B7,dateTimeRE:z7}=xn(),O1=class n{static invocationTable={Extension:{fn:n.Extension,arity:{2:["String","AnyAtRoot"]}},Identifier:{fn:n.Identifier,arity:{1:["String"],2:["String","String"],3:["String","String","String"],4:["String","String","String","Any"]}},HumanName:{fn:n.HumanName,arity:{1:["String"],2:["String","AnyAtRoot"],3:["String","AnyAtRoot","String"],4:["String","AnyAtRoot","String","String"],5:["String","AnyAtRoot","String","String","String"],6:["String","AnyAtRoot","String","String","String","String"]}},ContactPoint:{fn:n.ContactPoint,arity:{1:["String"],2:["String","String"],3:["String","String","String"]}},Address:{fn:n.Address,arity:{1:["AnyAtRoot"],2:["AnyAtRoot","String"],3:["AnyAtRoot","String","String"],4:["AnyAtRoot","String","String","String"],5:["AnyAtRoot","String","String","String","String"],6:["AnyAtRoot","String","String","String","String","String"],7:["AnyAtRoot","String","String","String","String","String","String"]}},Quantity:{fn:n.Quantity,arity:{1:["String"],2:["String","String"],3:["String","String","StringOrNumber"],4:["String","String","StringOrNumber","String"]}},Coding:{fn:n.Coding,arity:{1:["String"],2:["String","String"],3:["String","String","String"],4:["String","String","String","String"]}},CodeableConcept:{fn:n.CodeableConcept,arity:{1:["AnyAtRoot"],2:["AnyAtRoot","String"]}},create:{fn:n.create,arity:{1:["TypeSpecifier"]}},withExtension:{fn:n.withExtension,arity:{3:["AnyAtRoot","String","AnyAtRoot"]}},withProperty:{fn:n.withProperty,arity:{3:["AnyAtRoot","String","AnyAtRoot"]}}};static{[{type:"string",getValue:function(t){if(typeof t=="string"&&/^[\s\S]+$/.test(t))return String(t);throw new Error(`"${t}" is not a string.`)}},{type:"integer",getValue:t=>{let e=Number(t);if(Number.isInteger(e))return e;throw new Error(`"${t}" is not an integer.`)}},{type:"unsignedInt",getValue:t=>{let e=Number(t);if(Number.isInteger(e)&&e>=0)return e;throw new Error(`"${t}" is not an unsignedInt.`)}},{type:"positiveInt",getValue:t=>{let e=Number(t);if(Number.isInteger(e)&&e>0)return e;throw new Error(`"${t}" is not a positiveInt.`)}},{type:"integer64",getValue:t=>{let e=Number(t);if(Number.isInteger(e))return e;throw new Error(`"${t}" is not an integer.`)}},{type:"markdown",getValue(t){if(typeof t=="string"&&/^[\s\S]+$/.test(t))return t;throw new Error(`"${t}" is not a markdown.`)}},{type:"url",getValue(t){if(typeof t=="string"&&/^\S*$/.test(t))return t;throw new Error(`"${t}" is not a url.`)}},{type:"uri",getValue(t){if(typeof t=="string"&&/^\S*$/.test(t))return t;throw new Error(`"${t}" is not a uri.`)}},{type:"instant",getValue(t){if(typeof t=="string"&&$7.test(t))return t;throw new Error(`"${t}" is not an instant.`)}},{type:"time",getValue(t){if(typeof t=="string"&&V7.test(t))return t;throw new Error(`"${t}" is not a time.`)}},{type:"date",getValue(t){if(typeof t=="string"&&B7.test(t))return t;throw new Error(`"${t}" is not a date.`)}},{type:"dateTime",getValue(t){if(typeof t=="string"&&z7.test(t))return t;throw new Error(`"${t}" is not a dateTime.`)}},{type:"base64Binary",getValue(t){if(typeof t=="string"&&/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t))return t;throw new Error(`"${t}" is not a base64Binary.`)}},{type:"decimal",getValue(t){let e=Number(t);if(Number.isNaN(e))throw new Error(`"${t}" is not an decimal.`);return e}},{type:"boolean",getValue(t){if(t===!0||t==="true")return!0;if(t===!1||t==="false")return!1;throw new Error(`"${t}" is not a boolean.`)}},{type:"code",getValue(t){if(typeof t=="string"&&/^\S+( \S+)*$/.test(t))return t;throw new Error(`"${t}" is not a code.`)}},{type:"id",getValue(t){if(typeof t=="string"&&/^[A-Za-z0-9\-.]{1,64}$/.test(t))return t;throw new Error(`"${t}" is not an id.`)}},{type:"oid",getValue(t){if(typeof t=="string"&&/^urn:oid:[0-2](\.(0|[1-9][0-9]*))+$/.test(t))return t;throw new Error(`"${t}" is not an oid.`)}},{type:"uuid",getValue(t){if(typeof t=="string"&&/^urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/.test(t))return t;throw new Error(`"${t}" is not an uuid.`)}},{type:"canonical",getValue(t){if(typeof t=="string"&&/^\S*$/.test(t))return t;throw new Error(`"${t}" is not an canonical.`)}}].forEach(({type:t,getValue:e})=>{n[t]=function(i,r,s){let a;if(r.length>1)throw new Error("Unexpected collection "+JSON.stringify(r)+` as a value for %factory.${t}(value, extensions)`);if(r.length===0)a=null;else{let l=at.valData(r[0]);if(l==null&&(a=null),typeof l!="object")a=e(l);else throw new Error(`"${l}" is not a ${t}`)}let o=null;return s?.length>0&&(o={extension:s.map(l=>{let c=fa.fromValue(l);if(fa.isType(c.name,"Extension"))return at.valData(l);throw new Error(`Expected "FHIR.Extension", got "${c}"`)})}),Hi.makeResNode(a,null,t,o,t)},n.invocationTable[t]={fn:n[t],arity:{1:["AnyAtRoot"],2:["AnyAtRoot","Any"]}}})}static Extension(t,e,i){if(i.length!==1){if(i.length>1)throw new Error("Unexpected collection "+JSON.stringify(i)+" as a value for %factory.Extension(url, value)");if(i.length===0)throw new Error("Unexpected empty collection "+JSON.stringify(i)+" as a value for %factory.Extension(url, value)")}else return Hi.makeResNode(n.createExtensionObject(e,i[0]),null,"Extension",null,"Extension")}static createExtensionObject(t,e){let i="value"+fa.fromValue(e).name.replace(/^\w/,r=>r.toUpperCase());return{url:t,[i]:at.valData(e)}}static Identifier(t,e,i,r,s){if(s?.length>1)throw new Error("Unexpected collection "+JSON.stringify(s)+" as a type for %factory.Identifier{system, value, use, type)");let a={};if(at.isSome(e)&&(a.system=e),at.isSome(i)&&(a.value=i),at.isSome(r)&&(a.use=r),at.isSome(s)){let o=fa.fromValue(s[0]);if(!fa.isType(o.name,"CodeableConcept"))throw new Error(`Expected "FHIR.CodeableConcept", got "${o}"`);a.type=s[0]}return Hi.makeResNode(a,null,"Identifier",null,"Identifier")}static HumanName(t,e,i,r,s,a,o){let l={};return at.isSome(e)&&(l.family=e),at.isSome(i)&&(l.given=i.map(c=>{let u=at.valData(c);if(typeof u=="string")return u;throw new Error(`Expected string, but got: ${JSON.stringify(u)}`)})),at.isSome(r)&&(l.prefix=r),at.isSome(s)&&(l.suffix=s),at.isSome(a)&&(l.text=a),at.isSome(o)&&(l.use=o),Hi.makeResNode(l,null,"HumanName",null,"HumanName")}static ContactPoint(t,e,i,r){let s={};return at.isSome(e)&&(s.system=e),at.isSome(i)&&(s.value=i),at.isSome(r)&&(s.use=r),Hi.makeResNode(s,null,"ContactPoint",null,"ContactPoint")}static Address(t,e,i,r,s,a,o,l){let c={};return at.isSome(e)&&(c.line=e.map(u=>{let d=at.valData(u);if(typeof d=="string")return d;throw new Error(`Expected string, but got: ${JSON.stringify(d)}`)})),at.isSome(i)&&(c.city=i),at.isSome(r)&&(c.state=r),at.isSome(s)&&(c.postalCode=s),at.isSome(a)&&(c.country=a),at.isSome(o)&&(c.use=o),at.isSome(l)&&(c.type=l),Hi.makeResNode(c,null,"Address",null,"Address")}static Quantity(t,e,i,r,s){let a={};return at.isSome(e)&&(a.system=e),at.isSome(i)&&(a.code=i),at.isSome(r)&&(a.value=Number(r)),at.isSome(s)&&(a.unit=s),Hi.makeResNode(a,null,"Quantity",null,"Quantity")}static Coding(t,e,i,r,s){let a={};return at.isSome(e)&&(a.system=e),at.isSome(i)&&(a.code=i),at.isSome(r)&&(a.display=r),at.isSome(s)&&(a.version=s),Hi.makeResNode(a,null,"Coding",null,"Coding")}static CodeableConcept(t,e,i){let r=e?.length>0?{coding:e.map(s=>{if(s instanceof Hi&&s.getTypeInfo().name==="Coding")return at.valData(s);throw new Error("Unexpected value "+JSON.stringify(s)+"; expected value of type Coding")})}:{};return at.isSome(i)&&(r.text=i),Hi.makeResNode(r,null,"CodeableConcept",null,"CodeableConcept")}static create(t,e){if(e.namespace===fa.System)throw new Error("%factory.create(type) doesn't support system types.");return Hi.makeResNode(null,null,e.name,null,e.name)}static withExtension(t,e,i,r){if(e.length>1)throw new Error("Unexpected collection "+JSON.stringify(e)+" as an instance for %factory.withExtension(instance, url, value)");if(r.length!==1){if(r.length>1)throw new Error("Unexpected collection "+JSON.stringify(r)+" as a value for %factory.withExtension(instance, url, value)");if(r.length===0)throw new Error("Unexpected empty collection "+JSON.stringify(r)+" as a value for %factory.withExtension(instance, url, value)")}if(e.length===0)return[];let s=e[0];if(s instanceof Hi){let a=s.data,o=s._data;return fa.isPrimitive(s.getTypeInfo())?o=Le(H({},s._data||{}),{extension:[...s._data?.extension||[],n.createExtensionObject(i,r[0])]}):a=Le(H({},s.data||{}),{extension:[...s.data?.extension||[],n.createExtensionObject(i,r[0])]}),Hi.makeResNode(a,null,s.path,o,s.fhirNodeDataType)}else throw new Error("Expected a ResourceNode.")}static withProperty(t,e,i,r){if(e.length>1)throw new Error("Unexpected collection "+JSON.stringify(e)+" as an instance for %factory.withProperty(instance, name, value)");if(r.length!==1){if(r.length>1)throw new Error("Unexpected collection "+JSON.stringify(r)+" as a value for %factory.withProperty(instance, name, value)");if(r.length===0)throw new Error("Unexpected empty collection "+JSON.stringify(r)+" as a value for %factory.withProperty(instance, name, value)")}if(e.length===0)return[];let s=e[0];if(s instanceof Hi){let a=s.data,o=s._data;return fa.isPrimitive(s.getTypeInfo())?o=H(Le(H({},s._data||{}),{[i]:at.valData(r[0])}),r[0]?._data?{["_"+i]:r[0]._data}:{}):a=H(Le(H({},s.data||{}),{[i]:at.valData(r[0])}),r[0]?._data?{["_"+i]:r[0]._data}:{}),Hi.makeResNode(a,null,s.path,o,s.fhirNodeDataType)}else throw new Error("Expected a ResourceNode.")}};BD.exports=O1});var nR=Q((sde,iR)=>{var{version:H7}=SE(),j7=MA(),oi=Vi();TI();var W7=_1(),fe={},ar=eD(),Bn=Hp(),Jl=hD(),HD=bD(),Ed=xD(),vt=jp(),pa=k1(),jD=MD(),gi=S1(),_i=ED(),WD=ID(),N1=LD(),q7=UD(),t0=VD(),ec=xn(),{FP_Date:G7,FP_DateTime:GD,FP_Time:KD,FP_Quantity:i0,FP_Type:YD,ResourceNode:$1,TypeInfo:QD}=ec,As=$1.makeResNode,K7=L1(),Y7=zD();fe.invocationTable={memberOf:{fn:q7.memberOf,arity:{1:["String"]}},empty:{fn:ar.emptyFn},not:{fn:ar.notFn},exists:{fn:ar.existsMacro,arity:{0:[],1:["Expr"]}},all:{fn:ar.allMacro,arity:{1:["Expr"]}},allTrue:{fn:ar.allTrueFn},anyTrue:{fn:ar.anyTrueFn},allFalse:{fn:ar.allFalseFn},anyFalse:{fn:ar.anyFalseFn},subsetOf:{fn:ar.subsetOfFn,arity:{1:["AnyAtRoot"]}},supersetOf:{fn:ar.supersetOfFn,arity:{1:["AnyAtRoot"]}},isDistinct:{fn:ar.isDistinctFn},distinct:{fn:Bn.distinctFn},count:{fn:Jl.countFn},where:{fn:Bn.whereMacro,arity:{1:["Expr"]}},extension:{fn:Bn.extension,arity:{1:["String"]}},select:{fn:Bn.selectMacro,arity:{1:["Expr"]}},aggregate:{fn:Jl.aggregateMacro,arity:{1:["Expr"],2:["Expr","AnyAtRoot"]}},sum:{fn:Jl.sumFn},min:{fn:Jl.minFn},max:{fn:Jl.maxFn},avg:{fn:Jl.avgFn},weight:{fn:HD.weight},ordinal:{fn:HD.weight},single:{fn:Bn.singleFn},first:{fn:Bn.firstFn},last:{fn:Bn.lastFn},type:{fn:ec.typeFn,arity:{0:[]}},ofType:{fn:Bn.ofTypeFn,arity:{1:["TypeSpecifier"]}},is:{fn:ec.isFn,arity:{1:["TypeSpecifier"]}},as:{fn:ec.asFn,arity:{1:["TypeSpecifier"]}},tail:{fn:Bn.tailFn},take:{fn:Bn.takeFn,arity:{1:["Integer"]}},skip:{fn:Bn.skipFn,arity:{1:["Integer"]}},combine:{fn:Ed.combineFn,arity:{1:["AnyAtRoot"]}},union:{fn:Ed.union,arity:{1:["AnyAtRoot"]}},intersect:{fn:Ed.intersect,arity:{1:["AnyAtRoot"]}},exclude:{fn:Ed.exclude,arity:{1:["AnyAtRoot"]}},iif:{fn:vt.iifMacro,arity:{2:["Expr","Expr"],3:["Expr","Expr","Expr"]}},trace:{fn:vt.traceFn,arity:{1:["String"],2:["String","Expr"]}},defineVariable:{fn:vt.defineVariable,arity:{1:["String"],2:["String","Expr"]}},toInteger:{fn:vt.toInteger},toDecimal:{fn:vt.toDecimal},toString:{fn:vt.toString},toDate:{fn:vt.toDate},toDateTime:{fn:vt.toDateTime},toTime:{fn:vt.toTime},toBoolean:{fn:vt.toBoolean},toQuantity:{fn:vt.toQuantity,arity:{0:[],1:["String"]}},hasValue:{fn:vt.hasValueFn},getValue:{fn:vt.getValueFn},convertsToBoolean:{fn:vt.createConvertsToFn(vt.toBoolean,"boolean")},convertsToInteger:{fn:vt.createConvertsToFn(vt.toInteger,"number")},convertsToDecimal:{fn:vt.createConvertsToFn(vt.toDecimal,"number")},convertsToString:{fn:vt.createConvertsToFn(vt.toString,"string")},convertsToDate:{fn:vt.createConvertsToFn(vt.toDate,G7)},convertsToDateTime:{fn:vt.createConvertsToFn(vt.toDateTime,GD)},convertsToTime:{fn:vt.createConvertsToFn(vt.toTime,KD)},convertsToQuantity:{fn:vt.createConvertsToFn(vt.toQuantity,i0)},indexOf:{fn:_i.indexOf,arity:{1:["String"]}},substring:{fn:_i.substring,arity:{1:["Integer"],2:["Integer","Integer"]}},startsWith:{fn:_i.startsWith,arity:{1:["String"]}},endsWith:{fn:_i.endsWith,arity:{1:["String"]}},contains:{fn:_i.containsFn,arity:{1:["String"]}},upper:{fn:_i.upper},lower:{fn:_i.lower},replace:{fn:_i.replace,arity:{2:["String","String"]}},matches:{fn:_i.matches,arity:{1:["String"]}},replaceMatches:{fn:_i.replaceMatches,arity:{2:["String","String"]}},length:{fn:_i.length},toChars:{fn:_i.toChars},join:{fn:_i.joinFn,arity:{0:[],1:["String"]}},split:{fn:_i.splitFn,arity:{1:["String"]}},trim:{fn:_i.trimFn},encode:{fn:_i.encodeFn,arity:{1:["String"]}},decode:{fn:_i.decodeFn,arity:{1:["String"]}},abs:{fn:gi.abs},ceiling:{fn:gi.ceiling},exp:{fn:gi.exp},floor:{fn:gi.floor},ln:{fn:gi.ln},log:{fn:gi.log,arity:{1:["Number"]},nullable:!0},power:{fn:gi.power,arity:{1:["Number"]},nullable:!0},round:{fn:gi.round,arity:{0:[],1:["Number"]}},sqrt:{fn:gi.sqrt},truncate:{fn:gi.truncate},now:{fn:N1.now},today:{fn:N1.today},timeOfDay:{fn:N1.timeOfDay},repeat:{fn:Bn.repeatMacro,arity:{1:["Expr"]}},children:{fn:WD.children},descendants:{fn:WD.descendants},"|":{fn:Ed.union,arity:{2:["Any","Any"]}},"=":{fn:pa.equal,arity:{2:["Any","Any"]},nullable:!0},"!=":{fn:pa.unequal,arity:{2:["Any","Any"]},nullable:!0},"~":{fn:pa.equival,arity:{2:["Any","Any"]}},"!~":{fn:pa.unequival,arity:{2:["Any","Any"]}},"<":{fn:pa.lt,arity:{2:["Any","Any"]},nullable:!0},">":{fn:pa.gt,arity:{2:["Any","Any"]},nullable:!0},"<=":{fn:pa.lte,arity:{2:["Any","Any"]},nullable:!0},">=":{fn:pa.gte,arity:{2:["Any","Any"]},nullable:!0},containsOp:{fn:jD.contains,arity:{2:["Any","Any"]}},inOp:{fn:jD.in,arity:{2:["Any","Any"]}},isOp:{fn:ec.isFn,arity:{2:["Any","TypeSpecifier"]}},asOp:{fn:ec.asFn,arity:{2:["Any","TypeSpecifier"]}},"&":{fn:gi.amp,arity:{2:["String","String"]}},"+":{fn:gi.plus,arity:{2:["Any","Any"]},nullable:!0},"-":{fn:gi.minus,arity:{2:["Any","Any"]},nullable:!0},"*":{fn:gi.mul,arity:{2:["Any","Any"]},nullable:!0},"/":{fn:gi.div,arity:{2:["Any","Any"]},nullable:!0},mod:{fn:gi.mod,arity:{2:["Number","Number"]},nullable:!0},div:{fn:gi.intdiv,arity:{2:["Number","Number"]},nullable:!0},or:{fn:t0.orOp,arity:{2:[["Boolean"],["Boolean"]]}},and:{fn:t0.andOp,arity:{2:[["Boolean"],["Boolean"]]}},xor:{fn:t0.xorOp,arity:{2:[["Boolean"],["Boolean"]]}},implies:{fn:t0.impliesOp,arity:{2:[["Boolean"],["Boolean"]]}}};fe.InvocationExpression=function(n,t,e){return e.children.reduce(function(i,r){return fe.doEval(n,i,r)},t)};fe.TermExpression=function(n,t,e){return t&&(t=t.map(i=>i instanceof Object&&i.resourceType?As(i,null,null,null,null,n.model):i)),fe.doEval(n,t,e.children[0])};fe.PolarityExpression=function(n,t,e){var i=e.terminalNodeText[0],r=fe.doEval(n,t,e.children[0]);if(r.length!==1)throw new Error("Unary "+i+" can only be applied to an individual number or Quantity.");if(r[0]instanceof i0)i==="-"&&(r[0]=new i0(-r[0].value,r[0].unit));else if(typeof r[0]=="number"&&!isNaN(r[0]))i==="-"&&(r[0]=-r[0]);else throw new Error("Unary "+i+" can only be applied to a number or Quantity.");return r};fe.TypeSpecifier=function(n,t,e){let i,r,s=e.text.split(".").map(o=>o.replace(/(^`|`$)/g,""));switch(s.length){case 2:[i,r]=s;break;case 1:[r]=s;break;default:throw new Error("Expected TypeSpecifier node, got "+JSON.stringify(e))}let a=new QD({namespace:i,name:r});if(!a.isValid(n.model))throw new Error('"'+a+'" cannot be resolved to a valid type identifier');return a};fe.ExternalConstantTerm=function(n,t,e){let i,r=e.children[0];r.terminalNodeText.length===2?i=ZD(r.terminalNodeText[1]):i=XD(r.children[0].text);let s;if(i in n.vars&&!n.processedUserVarNames.has(i))s=n.vars[i],Array.isArray(s)?s=s.map(a=>a?.__path__?As(a,a.__path__.parentResNode,a.__path__.path,null,a.__path__.fhirNodeDataType,a.__path__.model):a?.resourceType?As(a,null,null,null,null,n.model):a):s=s?.__path__?As(s,s.__path__.parentResNode,s.__path__.path,null,s.__path__.fhirNodeDataType,s.__path__.model):s?.resourceType?As(s,null,null,null,null,n.model):s,n.processedVars[i]=s,n.processedUserVarNames.add(i);else if(i in n.processedVars)s=n.processedVars[i];else if(n.definedVars&&i in n.definedVars)s=n.definedVars[i];else throw new Error("Attempting to access an undefined environment variable: "+i);return s==null?[]:s instanceof Array?s:[s]};fe.LiteralTerm=function(n,t,e){var i=e.children[0];return i?fe.doEval(n,t,i):[e.text]};fe.StringLiteral=function(n,t,e){return[ZD(e.text)]};function ZD(n){return n.replace(/(^'|'$)/g,"").replace(/\\(u\d{4}|.)/g,function(t,e){switch(t){case"\\r":return"\r";case"\\n":return` +`;case"\\t":return" ";case"\\f":return"\f";default:return e.length>1?String.fromCharCode("0x"+e.slice(1)):e}})}fe.BooleanLiteral=function(n,t,e){return e.text==="true"?[!0]:[!1]};fe.QuantityLiteral=function(n,t,e){var i=e.children[0],r=Number(i.terminalNodeText[0]),s=i.children[0],a=s.terminalNodeText[0];return!a&&s.children&&(a=s.children[0].terminalNodeText[0]),[new i0(r,a)]};fe.DateTimeLiteral=function(n,t,e){var i=e.text.slice(1);return[new GD(i)]};fe.TimeLiteral=function(n,t,e){var i=e.text.slice(1);return[new KD(i)]};fe.NumberLiteral=function(n,t,e){return[Number(e.text)]};fe.Identifier=function(n,t,e){return[XD(e.text)]};function XD(n){return n.replace(/(^`|`$)/g,"")}fe.InvocationTerm=function(n,t,e){return fe.doEval(n,t,e.children[0])};fe.MemberInvocation=function(n,t,e){let i=fe.doEval(n,t,e.children[0])[0],r=n.model;return t?t.reduce(function(s,a){return a=As(a,null,a.__path__?.path,null,a.__path__?.fhirNodeDataType,r),a.data?.resourceType===i?s.push(a):oi.pushFn(s,oi.makeChildResNodes(a,i,r)),s},[]):[]};fe.IndexerExpression=function(n,t,e){let i=e.children[0],r=e.children[1];var s=fe.doEval(n,t,i),a=fe.doEval(n,t,r);if(oi.isEmpty(a))return[];var o=parseInt(a[0]);return s&&oi.isSome(o)&&s.length>o&&o>=0?[s[o]]:[]};fe.Functn=function(n,t,e){return e.children.map(function(i){return fe.doEval(n,t,i)})};fe.realizeParams=function(n,t,e){return e&&e[0]&&e[0].children?e[0].children.map(function(i){return fe.doEval(n,t,i)}):[]};function JD(n,t,e,i){if(e==="Expr")return function(s){let a=oi.arraify(s),o=Le(H({},n),{$this:a});return n.definedVars&&(o.definedVars=H({},n.definedVars)),fe.doEval(o,a,i)};if(e==="AnyAtRoot"){let s=n.$this||n.dataRoot,a=Le(H({},n),{$this:s});return n.definedVars&&(a.definedVars=H({},n.definedVars)),fe.doEval(a,s,i)}if(e==="Identifier"){if(i.type==="TermExpression")return i.text;throw new Error("Expected identifier node, got "+JSON.stringify(i))}if(e==="TypeSpecifier")return fe.TypeSpecifier(n,t,i);let r;if(e==="AnySingletonAtRoot"){let s=n.$this||n.dataRoot,a=Le(H({},n),{$this:s});n.definedVars&&(a.definedVars=H({},n.definedVars)),r=fe.doEval(a,s,i)}else{let s=H({},n);if(n.definedVars&&(s.definedVars=H({},n.definedVars)),r=fe.doEval(s,t,i),e==="Any")return r;if(Array.isArray(e)){if(r.length===0)return[];e=e[0]}}return r instanceof Promise?r.then(s=>vt.singleton(s,e)):vt.singleton(r,e)}function Q7(n,t,e,i){var r=n.userInvocationTable&&Object.prototype.hasOwnProperty.call(n.userInvocationTable,t)&&n.userInvocationTable?.[t]||fe.invocationTable[t]||e.length===1&&e[0]?.invocationTable?.[t],s;if(r)if(r.arity){var a=i?i.length:0,o=r.arity[a];if(o){for(var l=[],c=0;ch instanceof Promise)?Promise.all(l).then(h=>(s=r.fn.apply(n,h),oi.resolveAndArraify(s))):(s=r.fn.apply(n,l),oi.resolveAndArraify(s))}else return console.log(t+" wrong arity: got "+a),[]}else{if(i)throw new Error(t+" expects no params");return s=r.fn.call(n,e),oi.resolveAndArraify(s)}else throw new Error("Not implemented: "+t)}function eR(n){return n==null||oi.isEmpty(n)}function V1(n,t,e,i){var r=fe.invocationTable[t];if(r&&r.fn){var s=i?i.length:0;if(s!==2)throw new Error("Infix invoke should have arity 2");var a=r.arity[s];if(a){for(var o=[],l=0;lh instanceof Promise))return Promise.all(o).then(h=>{var m=r.fn.apply(n,h);return oi.arraify(m)});var d=r.fn.apply(n,o);return oi.arraify(d)}else return console.log(t+" wrong arity: got "+s),[]}else throw new Error("Not impl "+t)}fe.FunctionInvocation=function(n,t,e){var i=fe.doEval(n,t,e.children[0]);let r=i[0];i.shift();var s=i&&i[0]&&i[0].children;return Q7(n,r,t,s)};fe.ParamList=function(n,t,e){return e};fe.UnionExpression=function(n,t,e){return V1(n,"|",t,e.children)};fe.ThisInvocation=function(n){return n.$this};fe.TotalInvocation=function(n){return oi.arraify(n.$total)};fe.IndexInvocation=function(n){return oi.arraify(n.$index)};fe.OpExpression=function(n,t,e){var i=e.terminalNodeText[0];return V1(n,i,t,e.children)};fe.AliasOpExpression=function(n){return function(t,e,i){var r=i.terminalNodeText[0],s=n[r];if(!s)throw new Error("Do not know how to alias "+r+" by "+JSON.stringify(n));return V1(t,s,e,i.children)}};fe.NullLiteral=function(){return[]};fe.ParenthesizedTerm=function(n,t,e){return fe.doEval(n,t,e.children[0])};fe.evalTable={BooleanLiteral:fe.BooleanLiteral,EqualityExpression:fe.OpExpression,FunctionInvocation:fe.FunctionInvocation,Functn:fe.Functn,Identifier:fe.Identifier,IndexerExpression:fe.IndexerExpression,InequalityExpression:fe.OpExpression,InvocationExpression:fe.InvocationExpression,AdditiveExpression:fe.OpExpression,MultiplicativeExpression:fe.OpExpression,TypeExpression:fe.AliasOpExpression({is:"isOp",as:"asOp"}),MembershipExpression:fe.AliasOpExpression({contains:"containsOp",in:"inOp"}),NullLiteral:fe.NullLiteral,EntireExpression:fe.InvocationTerm,InvocationTerm:fe.InvocationTerm,LiteralTerm:fe.LiteralTerm,MemberInvocation:fe.MemberInvocation,NumberLiteral:fe.NumberLiteral,ParamList:fe.ParamList,ParenthesizedTerm:fe.ParenthesizedTerm,StringLiteral:fe.StringLiteral,TermExpression:fe.TermExpression,ThisInvocation:fe.ThisInvocation,TotalInvocation:fe.TotalInvocation,IndexInvocation:fe.IndexInvocation,UnionExpression:fe.UnionExpression,OrExpression:fe.OpExpression,ImpliesExpression:fe.OpExpression,AndExpression:fe.OpExpression,XorExpression:fe.OpExpression};fe.doEval=function(n,t,e){return t instanceof Promise?t.then(i=>fe.doEvalSync(n,i,e)):fe.doEvalSync(n,t,e)};fe.doEvalSync=function(n,t,e){let i=fe.evalTable[e.type]||fe[e.type];if(i)return i.call(fe,n,t,e);throw new Error("No "+e.type+" evaluator ")};function P1(n){return j7.parse(n)}function qD(n,t,e,i,r){W7.reset();let s=oi.arraify(n).map(l=>l?.__path__?As(l,l.__path__.parentResNode,l.__path__.path,null,l.__path__.fhirNodeDataType,i):l?.resourceType?As(l,null,null,null,null,i):l),a={dataRoot:s,processedVars:{ucum:"http://unitsofmeasure.org",context:s},processedUserVarNames:new Set,vars:e||{},model:i};if(r.traceFn&&(a.customTraceFn=r.traceFn),r.userInvocationTable&&(a.userInvocationTable=r.userInvocationTable),r.async&&(a.async=r.async),r.terminologyUrl&&(a.processedVars.terminologies=new K7(r.terminologyUrl)),a.processedVars.factory=Y7,r.signal){if(a.signal=r.signal,!a.async)throw new Error('The "signal" option is only supported for asynchronous functions.');if(a.signal.aborted)throw new Error("Evaluation of the expression was aborted before it started.")}let o=fe.doEval(a,s,t.children[0]);return o instanceof Promise?o.then(l=>a.signal?.aborted?Promise.reject(new DOMException("Evaluation of the expression was aborted.","AbortError")):F1(l,i,r)):r.async==="always"?Promise.resolve(F1(o,i,r)):F1(o,i,r)}function F1(n,t,e){return n.reduce((i,r)=>{let s,a,o;return r instanceof $1&&(s=r.path,a=r.fhirNodeDataType,o=r.parentResNode),r=oi.valData(r),r instanceof YD&&e.resolveInternalTypes&&(r=r.toString()),r!=null&&(s&&typeof r=="object"&&!r.__path__&&Object.defineProperty(r,"__path__",{value:{path:s,fhirNodeDataType:a,parentResNode:o,model:t}}),i.push(r)),i},[])}function U1(n){if(Array.isArray(n))for(let t=0,e=n.length;t(i[s].internalStructures?r[s]=i[s]:r[s]=Le(H({},i[s]),{fn:(...a)=>i[s].fn.apply(this,a.map(o=>Array.isArray(o)?o.map(l=>oi.valData(l)):o))}),r),{})),typeof n=="object"){let r=P1(n.expression);return function(s,a,o){if(n.base){let c=t.pathsDefinedElsewhere[n.base]||n.base,u=t&&t.path2Type[c];c=u==="BackboneElement"||u==="Element"?c:u||c,s=As(s,null,c,null,u,t)}let l=o?H(H({},e),o):e;return qD(s,r,a,t,l)}}else{let r=P1(n);return function(s,a,o){let l=o?H(H({},e),o):e;return qD(s,r,a,t,l)}}}function X7(n){return oi.arraify(n).map(t=>{let e=QD.fromValue(t?.__path__?new $1(t,t.__path__?.parentResNode,t.__path__?.path,null,t.__path__?.fhirNodeDataType,t.__path__.model):t);return`${e.namespace}.${e.name}`})}iR.exports={version:H7,parse:P1,compile:tR,evaluate:Z7,resolveInternalTypes:U1,types:X7,ucumUtils:Up().UcumLhcUtils.getInstance(),util:oi}});var RL=Q((_C,DL)=>{(function(n,t){typeof define=="function"&&define.amd?define([],t):typeof _C=="object"?DL.exports=t():n.untar=t()})(_C,function(){"use strict";function n(o){function l(m){for(var f=0,p=c.length;f127){if(a>191&&a<224){if(t>=e.length)throw"UTF-8 decode: incomplete 2-byte sequence";a=(31&a)<<6|63&e[t]}else if(a>223&&a<240){if(t+1>=e.length)throw"UTF-8 decode: incomplete 3-byte sequence";a=(15&a)<<12|(63&e[t])<<6|63&e[++t]}else{if(!(a>239&&a<248))throw"UTF-8 decode: unknown multibyte start 0x"+a.toString(16)+" at index "+(t-1);if(t+2>=e.length)throw"UTF-8 decode: incomplete 4-byte sequence";a=(7&a)<<18|(63&e[t])<<12|(63&e[++t])<<6|63&e[++t]}++t}if(a<=65535)r+=String.fromCharCode(a);else{if(!(a<=1114111))throw"UTF-8 decode: code point 0x"+a.toString(16)+" exceeds UTF-16 reach";a-=65536,r+=String.fromCharCode(a>>10|55296),r+=String.fromCharCode(1023&a|56320)}}return r}function PaxHeader(e){this._fields=e}function TarFile(){}function UntarStream(e){this._bufferView=new DataView(e),this._position=0}function UntarFileStream(e){this._stream=new UntarStream(e),this._globalPaxHeader=null}if(UntarWorker.prototype={onmessage:function(e){try{if("extract"!==e.data.type)throw new Error("Unknown message type: "+e.data.type);this.untarBuffer(e.data.buffer)}catch(r){this.postError(r)}},postError:function(e){this.postMessage({type:"error",data:{message:e.message}})},postLog:function(e,r){this.postMessage({type:"log",data:{level:e,msg:r}})},untarBuffer:function(e){try{for(var r=new UntarFileStream(e);r.hasNext();){var t=r.next();this.postMessage({type:"extract",data:t},[t.buffer])}this.postMessage({type:"complete"})}catch(a){this.postError(a)}},postMessage:function(e,r){self.postMessage(e,r)}},"undefined"!=typeof self){var worker=new UntarWorker;self.onmessage=function(e){worker.onmessage(e)}}PaxHeader.parse=function(e){for(var r=new Uint8Array(e),t=[];r.length>0;){var a=parseInt(decodeUTF8(r.subarray(0,r.indexOf(32)))),n=decodeUTF8(r.subarray(0,a)),i=n.match(/^\\d+ ([^=]+)=(.*)\\n$/);if(null===i)throw new Error("Invalid PAX header data format.");var s=i[1],o=i[2];0===o.length?o=null:null!==o.match(/^\\d+$/)&&(o=parseInt(o));var f={name:s,value:o};t.push(f),r=r.subarray(a)}return new PaxHeader(t)},PaxHeader.prototype={applyHeader:function(e){this._fields.forEach(function(r){var t=r.name,a=r.value;"path"===t?(t="name",void 0!==e.prefix&&delete e.prefix):"linkpath"===t&&(t="linkname"),null===a?delete e[t]:e[t]=a})}},UntarStream.prototype={readString:function(e){for(var r=1,t=e*r,a=[],n=0;n-1&&(r.version=e.readString(2),r.uname=e.readString(32),r.gname=e.readString(32),r.devmajor=parseInt(e.readString(8)),r.devminor=parseInt(e.readString(8)),r.namePrefix=e.readString(155),r.namePrefix.length>0&&(r.name=r.namePrefix+"/"+r.name)),e.position(i),r.type){case"0":case"":r.buffer=e.readBuffer(r.size);break;case"1":break;case"2":break;case"3":break;case"4":break;case"5":break;case"6":break;case"7":break;case"g":t=!0,this._globalPaxHeader=PaxHeader.parse(e.readBuffer(r.size));break;case"x":t=!0,a=PaxHeader.parse(e.readBuffer(r.size))}void 0===r.buffer&&(r.buffer=new ArrayBuffer(0));var s=i+r.size;return r.size%512!==0&&(s+=512-r.size%512),e.position(s),t&&(r=this._readNextFile()),null!==this._globalPaxHeader&&this._globalPaxHeader.applyHeader(r),null!==a&&a.applyHeader(r),r}};'])),t})});var et="primary",$c=Symbol("RouteTitle"),bg=class{params;constructor(t){this.params=t||{}}has(t){return Object.prototype.hasOwnProperty.call(this.params,t)}get(t){if(this.has(t)){let e=this.params[t];return Array.isArray(e)?e[0]:e}return null}getAll(t){if(this.has(t)){let e=this.params[t];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}};function Aa(n){return new bg(n)}function hx(n,t,e){let i=e.path.split("/");if(i.length>n.length||e.pathMatch==="full"&&(t.hasChildren()||i.lengthi[s]===r)}else return n===t}function fx(n){return n.length>0?n[n.length-1]:null}function Ks(n){return Ns(n)?n:fh(n)?si(Promise.resolve(n)):ge(n)}var fN={exact:gx,subset:_x},px={exact:pN,subset:gN,ignored:()=>!0};function sx(n,t,e){return fN[e.paths](n.root,t.root,e.matrixParams)&&px[e.queryParams](n.queryParams,t.queryParams)&&!(e.fragment==="exact"&&n.fragment!==t.fragment)}function pN(n,t){return Cr(n,t)}function gx(n,t,e){if(!Ta(n.segments,t.segments)||!Ch(n.segments,t.segments,e)||n.numberOfChildren!==t.numberOfChildren)return!1;for(let i in t.children)if(!n.children[i]||!gx(n.children[i],t.children[i],e))return!1;return!0}function gN(n,t){return Object.keys(t).length<=Object.keys(n).length&&Object.keys(t).every(e=>mx(n[e],t[e]))}function _x(n,t,e){return bx(n,t,t.segments,e)}function bx(n,t,e,i){if(n.segments.length>e.length){let r=n.segments.slice(0,e.length);return!(!Ta(r,e)||t.hasChildren()||!Ch(r,e,i))}else if(n.segments.length===e.length){if(!Ta(n.segments,e)||!Ch(n.segments,e,i))return!1;for(let r in t.children)if(!n.children[r]||!_x(n.children[r],t.children[r],i))return!1;return!0}else{let r=e.slice(0,n.segments.length),s=e.slice(n.segments.length);return!Ta(n.segments,r)||!Ch(n.segments,r,i)||!n.children[et]?!1:bx(n.children[et],t,s,i)}}function Ch(n,t,e){return t.every((i,r)=>px[e](n[r].parameters,i.parameters))}var xr=class{root;queryParams;fragment;_queryParamMap;constructor(t=new bt([],{}),e={},i=null){this.root=t,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap??=Aa(this.queryParams),this._queryParamMap}toString(){return vN.serialize(this)}},bt=class{segments;children;parent=null;constructor(t,e){this.segments=t,this.children=e,Object.values(e).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return wh(this)}},js=class{path;parameters;_parameterMap;constructor(t,e){this.path=t,this.parameters=e}get parameterMap(){return this._parameterMap??=Aa(this.parameters),this._parameterMap}toString(){return yx(this)}};function _N(n,t){return Ta(n,t)&&n.every((e,i)=>Cr(e.parameters,t[i].parameters))}function Ta(n,t){return n.length!==t.length?!1:n.every((e,i)=>e.path===t[i].path)}function bN(n,t){let e=[];return Object.entries(n.children).forEach(([i,r])=>{i===et&&(e=e.concat(t(r,i)))}),Object.entries(n.children).forEach(([i,r])=>{i!==et&&(e=e.concat(t(r,i)))}),e}var Ia=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:()=>new Ws,providedIn:"root"})}return n})(),Ws=class{parse(t){let e=new Cg(t);return new xr(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(t){let e=`/${Mc(t.root,!0)}`,i=wN(t.queryParams),r=typeof t.fragment=="string"?`#${yN(t.fragment)}`:"";return`${e}${i}${r}`}},vN=new Ws;function wh(n){return n.segments.map(t=>yx(t)).join("/")}function Mc(n,t){if(!n.hasChildren())return wh(n);if(t){let e=n.children[et]?Mc(n.children[et],!1):"",i=[];return Object.entries(n.children).forEach(([r,s])=>{r!==et&&i.push(`${r}:${Mc(s,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}else{let e=bN(n,(i,r)=>r===et?[Mc(n.children[et],!1)]:[`${r}:${Mc(i,!1)}`]);return Object.keys(n.children).length===1&&n.children[et]!=null?`${wh(n)}/${e[0]}`:`${wh(n)}/(${e.join("//")})`}}function vx(n){return encodeURIComponent(n).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function vh(n){return vx(n).replace(/%3B/gi,";")}function yN(n){return encodeURI(n)}function yg(n){return vx(n).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function xh(n){return decodeURIComponent(n)}function ax(n){return xh(n.replace(/\+/g,"%20"))}function yx(n){return`${yg(n.path)}${CN(n.parameters)}`}function CN(n){return Object.entries(n).map(([t,e])=>`;${yg(t)}=${yg(e)}`).join("")}function wN(n){let t=Object.entries(n).map(([e,i])=>Array.isArray(i)?i.map(r=>`${vh(e)}=${vh(r)}`).join("&"):`${vh(e)}=${vh(i)}`).filter(e=>e);return t.length?`?${t.join("&")}`:""}var xN=/^[^\/()?;#]+/;function fg(n){let t=n.match(xN);return t?t[0]:""}var SN=/^[^\/()?;=#]+/;function kN(n){let t=n.match(SN);return t?t[0]:""}var MN=/^[^=?&#]+/;function TN(n){let t=n.match(MN);return t?t[0]:""}var EN=/^[^&#]+/;function AN(n){let t=n.match(EN);return t?t[0]:""}var Cg=class{url;remaining;constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional("/"),this.remaining===""||this.peekStartsWith("?")||this.peekStartsWith("#")?new bt([],{}):new bt([],this.parseChildren())}parseQueryParams(){let t={};if(this.consumeOptional("?"))do this.parseQueryParam(t);while(this.consumeOptional("&"));return t}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(this.remaining==="")return{};this.consumeOptional("/");let t=[];for(this.peekStartsWith("(")||t.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegment());let e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(t.length>0||Object.keys(e).length>0)&&(i[et]=new bt(t,e)),i}parseSegment(){let t=fg(this.remaining);if(t===""&&this.peekStartsWith(";"))throw new Be(4009,!1);return this.capture(t),new js(xh(t),this.parseMatrixParams())}parseMatrixParams(){let t={};for(;this.consumeOptional(";");)this.parseParam(t);return t}parseParam(t){let e=kN(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){let r=fg(this.remaining);r&&(i=r,this.capture(i))}t[xh(e)]=xh(i)}parseQueryParam(t){let e=TN(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){let a=AN(this.remaining);a&&(i=a,this.capture(i))}let r=ax(e),s=ax(i);if(t.hasOwnProperty(r)){let a=t[r];Array.isArray(a)||(a=[a],t[r]=a),a.push(s)}else t[r]=s}parseParens(t){let e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){let i=fg(this.remaining),r=this.remaining[i.length];if(r!=="/"&&r!==")"&&r!==";")throw new Be(4010,!1);let s;i.indexOf(":")>-1?(s=i.slice(0,i.indexOf(":")),this.capture(s),this.capture(":")):t&&(s=et);let a=this.parseChildren();e[s]=Object.keys(a).length===1?a[et]:new bt([],a),this.consumeOptional("//")}return e}peekStartsWith(t){return this.remaining.startsWith(t)}consumeOptional(t){return this.peekStartsWith(t)?(this.remaining=this.remaining.substring(t.length),!0):!1}capture(t){if(!this.consumeOptional(t))throw new Be(4011,!1)}};function Cx(n){return n.segments.length>0?new bt([],{[et]:n}):n}function wx(n){let t={};for(let[i,r]of Object.entries(n.children)){let s=wx(r);if(i===et&&s.segments.length===0&&s.hasChildren())for(let[a,o]of Object.entries(s.children))t[a]=o;else(s.segments.length>0||s.hasChildren())&&(t[i]=s)}let e=new bt(n.segments,t);return IN(e)}function IN(n){if(n.numberOfChildren===1&&n.children[et]){let t=n.children[et];return new bt(n.segments.concat(t.segments),t.children)}return n}function qs(n){return n instanceof xr}function xx(n,t,e=null,i=null){let r=Sx(n);return kx(r,t,e,i)}function Sx(n){let t;function e(s){let a={};for(let l of s.children){let c=e(l);a[l.outlet]=c}let o=new bt(s.url,a);return s===n&&(t=o),o}let i=e(n.root),r=Cx(i);return t??r}function kx(n,t,e,i){let r=n;for(;r.parent;)r=r.parent;if(t.length===0)return pg(r,r,r,e,i);let s=DN(t);if(s.toRoot())return pg(r,r,new bt([],{}),e,i);let a=RN(s,r,n),o=a.processChildren?Ec(a.segmentGroup,a.index,s.commands):Tx(a.segmentGroup,a.index,s.commands);return pg(r,a.segmentGroup,o,e,i)}function kh(n){return typeof n=="object"&&n!=null&&!n.outlets&&!n.segmentPath}function Ic(n){return typeof n=="object"&&n!=null&&n.outlets}function pg(n,t,e,i,r){let s={};i&&Object.entries(i).forEach(([l,c])=>{s[l]=Array.isArray(c)?c.map(u=>`${u}`):`${c}`});let a;n===t?a=e:a=Mx(n,t,e);let o=Cx(wx(a));return new xr(o,s,r)}function Mx(n,t,e){let i={};return Object.entries(n.children).forEach(([r,s])=>{s===t?i[r]=e:i[r]=Mx(s,t,e)}),new bt(n.segments,i)}var Mh=class{isAbsolute;numberOfDoubleDots;commands;constructor(t,e,i){if(this.isAbsolute=t,this.numberOfDoubleDots=e,this.commands=i,t&&i.length>0&&kh(i[0]))throw new Be(4003,!1);let r=i.find(Ic);if(r&&r!==fx(i))throw new Be(4004,!1)}toRoot(){return this.isAbsolute&&this.commands.length===1&&this.commands[0]=="/"}};function DN(n){if(typeof n[0]=="string"&&n.length===1&&n[0]==="/")return new Mh(!0,0,n);let t=0,e=!1,i=n.reduce((r,s,a)=>{if(typeof s=="object"&&s!=null){if(s.outlets){let o={};return Object.entries(s.outlets).forEach(([l,c])=>{o[l]=typeof c=="string"?c.split("/"):c}),[...r,{outlets:o}]}if(s.segmentPath)return[...r,s.segmentPath]}return typeof s!="string"?[...r,s]:a===0?(s.split("/").forEach((o,l)=>{l==0&&o==="."||(l==0&&o===""?e=!0:o===".."?t++:o!=""&&r.push(o))}),r):[...r,s]},[]);return new Mh(e,t,i)}var $o=class{segmentGroup;processChildren;index;constructor(t,e,i){this.segmentGroup=t,this.processChildren=e,this.index=i}};function RN(n,t,e){if(n.isAbsolute)return new $o(t,!0,0);if(!e)return new $o(t,!1,NaN);if(e.parent===null)return new $o(e,!0,0);let i=kh(n.commands[0])?0:1,r=e.segments.length-1+i;return LN(e,r,n.numberOfDoubleDots)}function LN(n,t,e){let i=n,r=t,s=e;for(;s>r;){if(s-=r,i=i.parent,!i)throw new Be(4005,!1);r=i.segments.length}return new $o(i,!1,r-s)}function ON(n){return Ic(n[0])?n[0].outlets:{[et]:n}}function Tx(n,t,e){if(n??=new bt([],{}),n.segments.length===0&&n.hasChildren())return Ec(n,t,e);let i=NN(n,t,e),r=e.slice(i.commandIndex);if(i.match&&i.pathIndexs!==et)&&n.children[et]&&n.numberOfChildren===1&&n.children[et].segments.length===0){let s=Ec(n.children[et],t,e);return new bt(n.segments,s.children)}return Object.entries(i).forEach(([s,a])=>{typeof a=="string"&&(a=[a]),a!==null&&(r[s]=Tx(n.children[s],t,a))}),Object.entries(n.children).forEach(([s,a])=>{i[s]===void 0&&(r[s]=a)}),new bt(n.segments,r)}}function NN(n,t,e){let i=0,r=t,s={match:!1,pathIndex:0,commandIndex:0};for(;r=e.length)return s;let a=n.segments[r],o=e[i];if(Ic(o))break;let l=`${o}`,c=i0&&l===void 0)break;if(l&&c&&typeof c=="object"&&c.outlets===void 0){if(!lx(l,c,a))return s;i+=2}else{if(!lx(l,{},a))return s;i++}r++}return{match:!0,pathIndex:r,commandIndex:i}}function wg(n,t,e){let i=n.segments.slice(0,t),r=0;for(;r{typeof i=="string"&&(i=[i]),i!==null&&(t[e]=wg(new bt([],{}),0,i))}),t}function ox(n){let t={};return Object.entries(n).forEach(([e,i])=>t[e]=`${i}`),t}function lx(n,t,e){return n==e.path&&Cr(t,e.parameters)}var Sh="imperative",ei=function(n){return n[n.NavigationStart=0]="NavigationStart",n[n.NavigationEnd=1]="NavigationEnd",n[n.NavigationCancel=2]="NavigationCancel",n[n.NavigationError=3]="NavigationError",n[n.RoutesRecognized=4]="RoutesRecognized",n[n.ResolveStart=5]="ResolveStart",n[n.ResolveEnd=6]="ResolveEnd",n[n.GuardsCheckStart=7]="GuardsCheckStart",n[n.GuardsCheckEnd=8]="GuardsCheckEnd",n[n.RouteConfigLoadStart=9]="RouteConfigLoadStart",n[n.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",n[n.ChildActivationStart=11]="ChildActivationStart",n[n.ChildActivationEnd=12]="ChildActivationEnd",n[n.ActivationStart=13]="ActivationStart",n[n.ActivationEnd=14]="ActivationEnd",n[n.Scroll=15]="Scroll",n[n.NavigationSkipped=16]="NavigationSkipped",n}(ei||{}),hn=class{id;url;constructor(t,e){this.id=t,this.url=e}},Gs=class extends hn{type=ei.NavigationStart;navigationTrigger;restoredState;constructor(t,e,i="imperative",r=null){super(t,e),this.navigationTrigger=i,this.restoredState=r}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}},In=class extends hn{urlAfterRedirects;type=ei.NavigationEnd;constructor(t,e,i){super(t,e),this.urlAfterRedirects=i}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}},Ki=function(n){return n[n.Redirect=0]="Redirect",n[n.SupersededByNewNavigation=1]="SupersededByNewNavigation",n[n.NoDataFromResolver=2]="NoDataFromResolver",n[n.GuardRejected=3]="GuardRejected",n}(Ki||{}),Bo=function(n){return n[n.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",n[n.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",n}(Bo||{}),wr=class extends hn{reason;code;type=ei.NavigationCancel;constructor(t,e,i,r){super(t,e),this.reason=i,this.code=r}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}},Sr=class extends hn{reason;code;type=ei.NavigationSkipped;constructor(t,e,i,r){super(t,e),this.reason=i,this.code=r}},zo=class extends hn{error;target;type=ei.NavigationError;constructor(t,e,i,r){super(t,e),this.error=i,this.target=r}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}},Dc=class extends hn{urlAfterRedirects;state;type=ei.RoutesRecognized;constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Th=class extends hn{urlAfterRedirects;state;type=ei.GuardsCheckStart;constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Eh=class extends hn{urlAfterRedirects;state;shouldActivate;type=ei.GuardsCheckEnd;constructor(t,e,i,r,s){super(t,e),this.urlAfterRedirects=i,this.state=r,this.shouldActivate=s}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}},Ah=class extends hn{urlAfterRedirects;state;type=ei.ResolveStart;constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Ih=class extends hn{urlAfterRedirects;state;type=ei.ResolveEnd;constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Dh=class{route;type=ei.RouteConfigLoadStart;constructor(t){this.route=t}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}},Rh=class{route;type=ei.RouteConfigLoadEnd;constructor(t){this.route=t}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}},Lh=class{snapshot;type=ei.ChildActivationStart;constructor(t){this.snapshot=t}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Oh=class{snapshot;type=ei.ChildActivationEnd;constructor(t){this.snapshot=t}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Nh=class{snapshot;type=ei.ActivationStart;constructor(t){this.snapshot=t}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Fh=class{snapshot;type=ei.ActivationEnd;constructor(t){this.snapshot=t}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Ho=class{routerEvent;position;anchor;type=ei.Scroll;constructor(t,e,i){this.routerEvent=t,this.position=e,this.anchor=i}toString(){let t=this.position?`${this.position[0]}, ${this.position[1]}`:null;return`Scroll(anchor: '${this.anchor}', position: '${t}')`}},Rc=class{},jo=class{url;navigationBehaviorOptions;constructor(t,e){this.url=t,this.navigationBehaviorOptions=e}};function PN(n,t){return n.providers&&!n._injector&&(n._injector=hh(n.providers,t,`Route: ${n.path}`)),n._injector??t}function Qn(n){return n.outlet||et}function UN(n,t){let e=n.filter(i=>Qn(i)===t);return e.push(...n.filter(i=>Qn(i)!==t)),e}function Vc(n){if(!n)return null;if(n.routeConfig?._injector)return n.routeConfig._injector;for(let t=n.parent;t;t=t.parent){let e=t.routeConfig;if(e?._loadedInjector)return e._loadedInjector;if(e?._injector)return e._injector}return null}var Ph=class{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return Vc(this.route?.snapshot)??this.rootInjector}constructor(t){this.rootInjector=t,this.children=new Da(this.rootInjector)}},Da=(()=>{class n{rootInjector;contexts=new Map;constructor(e){this.rootInjector=e}onChildOutletCreated(e,i){let r=this.getOrCreateContext(e);r.outlet=i,this.contexts.set(e,r)}onChildOutletDestroyed(e){let i=this.getContext(e);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){let e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let i=this.getContext(e);return i||(i=new Ph(this.rootInjector),this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}static \u0275fac=function(i){return new(i||n)(Re(cn))};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Uh=class{_root;constructor(t){this._root=t}get root(){return this._root.value}parent(t){let e=this.pathFromRoot(t);return e.length>1?e[e.length-2]:null}children(t){let e=xg(t,this._root);return e?e.children.map(i=>i.value):[]}firstChild(t){let e=xg(t,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(t){let e=Sg(t,this._root);return e.length<2?[]:e[e.length-2].children.map(r=>r.value).filter(r=>r!==t)}pathFromRoot(t){return Sg(t,this._root).map(e=>e.value)}};function xg(n,t){if(n===t.value)return t;for(let e of t.children){let i=xg(n,e);if(i)return i}return null}function Sg(n,t){if(n===t.value)return[t];for(let e of t.children){let i=Sg(n,e);if(i.length)return i.unshift(t),i}return[]}var dn=class{value;children;constructor(t,e){this.value=t,this.children=e}toString(){return`TreeNode(${this.value})`}};function Uo(n){let t={};return n&&n.children.forEach(e=>t[e.value.outlet]=e),t}var Lc=class extends Uh{snapshot;constructor(t,e){super(t),this.snapshot=e,Rg(this,t)}toString(){return this.snapshot.toString()}};function Ex(n){let t=$N(n),e=new ci([new js("",{})]),i=new ci({}),r=new ci({}),s=new ci({}),a=new ci(""),o=new ts(e,i,s,a,r,et,n,t.root);return o.snapshot=t.root,new Lc(new dn(o,[]),t)}function $N(n){let t={},e={},i={},r="",s=new Ea([],t,i,r,e,et,n,null,{});return new Oc("",new dn(s,[]))}var ts=class{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;constructor(t,e,i,r,s,a,o,l){this.urlSubject=t,this.paramsSubject=e,this.queryParamsSubject=i,this.fragmentSubject=r,this.dataSubject=s,this.outlet=a,this.component=o,this._futureSnapshot=l,this.title=this.dataSubject?.pipe(Ne(c=>c[$c]))??ge(void 0),this.url=t,this.params=e,this.queryParams=i,this.fragment=r,this.data=s}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(Ne(t=>Aa(t))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(Ne(t=>Aa(t))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}};function $h(n,t,e="emptyOnly"){let i,{routeConfig:r}=n;return t!==null&&(e==="always"||r?.path===""||!t.component&&!t.routeConfig?.loadComponent)?i={params:H(H({},t.params),n.params),data:H(H({},t.data),n.data),resolve:H(H(H(H({},n.data),t.data),r?.data),n._resolvedData)}:i={params:H({},n.params),data:H({},n.data),resolve:H(H({},n.data),n._resolvedData??{})},r&&Ix(r)&&(i.resolve[$c]=r.title),i}var Ea=class{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;get title(){return this.data?.[$c]}constructor(t,e,i,r,s,a,o,l,c){this.url=t,this.params=e,this.queryParams=i,this.fragment=r,this.data=s,this.outlet=a,this.component=o,this.routeConfig=l,this._resolve=c}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=Aa(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=Aa(this.queryParams),this._queryParamMap}toString(){let t=this.url.map(i=>i.toString()).join("/"),e=this.routeConfig?this.routeConfig.path:"";return`Route(url:'${t}', path:'${e}')`}},Oc=class extends Uh{url;constructor(t,e){super(e),this.url=t,Rg(this,e)}toString(){return Ax(this._root)}};function Rg(n,t){t.value._routerState=n,t.children.forEach(e=>Rg(n,e))}function Ax(n){let t=n.children.length>0?` { ${n.children.map(Ax).join(", ")} } `:"";return`${n.value}${t}`}function gg(n){if(n.snapshot){let t=n.snapshot,e=n._futureSnapshot;n.snapshot=e,Cr(t.queryParams,e.queryParams)||n.queryParamsSubject.next(e.queryParams),t.fragment!==e.fragment&&n.fragmentSubject.next(e.fragment),Cr(t.params,e.params)||n.paramsSubject.next(e.params),mN(t.url,e.url)||n.urlSubject.next(e.url),Cr(t.data,e.data)||n.dataSubject.next(e.data)}else n.snapshot=n._futureSnapshot,n.dataSubject.next(n._futureSnapshot.data)}function kg(n,t){let e=Cr(n.params,t.params)&&_N(n.url,t.url),i=!n.parent!=!t.parent;return e&&!i&&(!n.parent||kg(n.parent,t.parent))}function Ix(n){return typeof n.title=="string"||n.title===null}var Dx=new J(""),Bc=(()=>{class n{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=et;activateEvents=new ce;deactivateEvents=new ce;attachEvents=new ce;detachEvents=new ce;routerOutletData=ww(void 0);parentContexts=R(Da);location=R(ui);changeDetector=R(Ge);inputBinder=R(zc,{optional:!0});supportsBindingToComponentInputs=!0;ngOnChanges(e){if(e.name){let{firstChange:i,previousValue:r}=e.name;if(i)return;this.isTrackedInParentContexts(r)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(r)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(e){return this.parentContexts.getContext(e)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;let e=this.parentContexts.getContext(this.name);e?.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Be(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Be(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Be(4012,!1);this.location.detach();let e=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(e.instance),e}attach(e,i){this.activated=e,this._activatedRoute=i,this.location.insert(e.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(e.instance)}deactivate(){if(this.activated){let e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,i){if(this.isActivated)throw new Be(4013,!1);this._activatedRoute=e;let r=this.location,a=e.snapshot.component,o=this.parentContexts.getOrCreateContext(this.name).children,l=new Mg(e,o,r.injector,this.routerOutletData);this.activated=r.createComponent(a,{index:r.length,injector:l,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[mt]})}return n})(),Mg=class{route;childContexts;parent;outletData;constructor(t,e,i,r){this.route=t,this.childContexts=e,this.parent=i,this.outletData=r}get(t,e){return t===ts?this.route:t===Da?this.childContexts:t===Dx?this.outletData:this.parent.get(t,e)}},zc=new J(""),Lg=(()=>{class n{outletDataSubscriptions=new Map;bindActivatedRouteToOutletComponent(e){this.unsubscribeFromRouteData(e),this.subscribeToRouteData(e)}unsubscribeFromRouteData(e){this.outletDataSubscriptions.get(e)?.unsubscribe(),this.outletDataSubscriptions.delete(e)}subscribeToRouteData(e){let{activatedRoute:i}=e,r=hr([i.queryParams,i.params,i.data]).pipe(Mt(([s,a,o],l)=>(o=H(H(H({},s),a),o),l===0?ge(o):Promise.resolve(o)))).subscribe(s=>{if(!e.isActivated||!e.activatedComponentRef||e.activatedRoute!==i||i.component===null){this.unsubscribeFromRouteData(e);return}let a=Vw(i.component);if(!a){this.unsubscribeFromRouteData(e);return}for(let{templateName:o}of a.inputs)e.activatedComponentRef.setInput(o,s[o])});this.outletDataSubscriptions.set(e,r)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})(),Og=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["ng-component"]],exportAs:["emptyRouterOutlet"],decls:1,vars:0,template:function(i,r){i&1&&te(0,"router-outlet")},dependencies:[Bc],encapsulation:2})}return n})();function Ng(n){let t=n.children&&n.children.map(Ng),e=t?Le(H({},n),{children:t}):H({},n);return!e.component&&!e.loadComponent&&(t||e.loadChildren)&&e.outlet&&e.outlet!==et&&(e.component=Og),e}function VN(n,t,e){let i=Nc(n,t._root,e?e._root:void 0);return new Lc(i,t)}function Nc(n,t,e){if(e&&n.shouldReuseRoute(t.value,e.value.snapshot)){let i=e.value;i._futureSnapshot=t.value;let r=BN(n,t,e);return new dn(i,r)}else{if(n.shouldAttach(t.value)){let s=n.retrieve(t.value);if(s!==null){let a=s.route;return a.value._futureSnapshot=t.value,a.children=t.children.map(o=>Nc(n,o)),a}}let i=zN(t.value),r=t.children.map(s=>Nc(n,s));return new dn(i,r)}}function BN(n,t,e){return t.children.map(i=>{for(let r of e.children)if(n.shouldReuseRoute(i.value,r.value.snapshot))return Nc(n,i,r);return Nc(n,i)})}function zN(n){return new ts(new ci(n.url),new ci(n.params),new ci(n.queryParams),new ci(n.fragment),new ci(n.data),n.outlet,n.component,n)}var Wo=class{redirectTo;navigationBehaviorOptions;constructor(t,e){this.redirectTo=t,this.navigationBehaviorOptions=e}},Rx="ngNavigationCancelingError";function Vh(n,t){let{redirectTo:e,navigationBehaviorOptions:i}=qs(t)?{redirectTo:t,navigationBehaviorOptions:void 0}:t,r=Lx(!1,Ki.Redirect);return r.url=e,r.navigationBehaviorOptions=i,r}function Lx(n,t){let e=new Error(`NavigationCancelingError: ${n||""}`);return e[Rx]=!0,e.cancellationCode=t,e}function HN(n){return Ox(n)&&qs(n.url)}function Ox(n){return!!n&&n[Rx]}var jN=(n,t,e,i)=>Ne(r=>(new Tg(t,r.targetRouterState,r.currentRouterState,e,i).activate(n),r)),Tg=class{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;constructor(t,e,i,r,s){this.routeReuseStrategy=t,this.futureState=e,this.currState=i,this.forwardEvent=r,this.inputBindingEnabled=s}activate(t){let e=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,i,t),gg(this.futureState.root),this.activateChildRoutes(e,i,t)}deactivateChildRoutes(t,e,i){let r=Uo(e);t.children.forEach(s=>{let a=s.value.outlet;this.deactivateRoutes(s,r[a],i),delete r[a]}),Object.values(r).forEach(s=>{this.deactivateRouteAndItsChildren(s,i)})}deactivateRoutes(t,e,i){let r=t.value,s=e?e.value:null;if(r===s)if(r.component){let a=i.getContext(r.outlet);a&&this.deactivateChildRoutes(t,e,a.children)}else this.deactivateChildRoutes(t,e,i);else s&&this.deactivateRouteAndItsChildren(e,i)}deactivateRouteAndItsChildren(t,e){t.value.component&&this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,e):this.deactivateRouteAndOutlet(t,e)}detachAndStoreRouteSubtree(t,e){let i=e.getContext(t.value.outlet),r=i&&t.value.component?i.children:e,s=Uo(t);for(let a of Object.values(s))this.deactivateRouteAndItsChildren(a,r);if(i&&i.outlet){let a=i.outlet.detach(),o=i.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:a,route:t,contexts:o})}}deactivateRouteAndOutlet(t,e){let i=e.getContext(t.value.outlet),r=i&&t.value.component?i.children:e,s=Uo(t);for(let a of Object.values(s))this.deactivateRouteAndItsChildren(a,r);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(t,e,i){let r=Uo(e);t.children.forEach(s=>{this.activateRoutes(s,r[s.value.outlet],i),this.forwardEvent(new Fh(s.value.snapshot))}),t.children.length&&this.forwardEvent(new Oh(t.value.snapshot))}activateRoutes(t,e,i){let r=t.value,s=e?e.value:null;if(gg(r),r===s)if(r.component){let a=i.getOrCreateContext(r.outlet);this.activateChildRoutes(t,e,a.children)}else this.activateChildRoutes(t,e,i);else if(r.component){let a=i.getOrCreateContext(r.outlet);if(this.routeReuseStrategy.shouldAttach(r.snapshot)){let o=this.routeReuseStrategy.retrieve(r.snapshot);this.routeReuseStrategy.store(r.snapshot,null),a.children.onOutletReAttached(o.contexts),a.attachRef=o.componentRef,a.route=o.route.value,a.outlet&&a.outlet.attach(o.componentRef,o.route.value),gg(o.route.value),this.activateChildRoutes(t,null,a.children)}else a.attachRef=null,a.route=r,a.outlet&&a.outlet.activateWith(r,a.injector),this.activateChildRoutes(t,null,a.children)}else this.activateChildRoutes(t,null,i)}},Bh=class{path;route;constructor(t){this.path=t,this.route=this.path[this.path.length-1]}},Vo=class{component;route;constructor(t,e){this.component=t,this.route=e}};function WN(n,t,e){let i=n._root,r=t?t._root:null;return Tc(i,r,e,[i.value])}function qN(n){let t=n.routeConfig?n.routeConfig.canActivateChild:null;return!t||t.length===0?null:{node:n,guards:t}}function Go(n,t){let e=Symbol(),i=t.get(n,e);return i===e?typeof n=="function"&&!bw(n)?n:t.get(n):i}function Tc(n,t,e,i,r={canDeactivateChecks:[],canActivateChecks:[]}){let s=Uo(t);return n.children.forEach(a=>{GN(a,s[a.value.outlet],e,i.concat([a.value]),r),delete s[a.value.outlet]}),Object.entries(s).forEach(([a,o])=>Ac(o,e.getContext(a),r)),r}function GN(n,t,e,i,r={canDeactivateChecks:[],canActivateChecks:[]}){let s=n.value,a=t?t.value:null,o=e?e.getContext(n.value.outlet):null;if(a&&s.routeConfig===a.routeConfig){let l=KN(a,s,s.routeConfig.runGuardsAndResolvers);l?r.canActivateChecks.push(new Bh(i)):(s.data=a.data,s._resolvedData=a._resolvedData),s.component?Tc(n,t,o?o.children:null,i,r):Tc(n,t,e,i,r),l&&o&&o.outlet&&o.outlet.isActivated&&r.canDeactivateChecks.push(new Vo(o.outlet.component,a))}else a&&Ac(t,o,r),r.canActivateChecks.push(new Bh(i)),s.component?Tc(n,null,o?o.children:null,i,r):Tc(n,null,e,i,r);return r}function KN(n,t,e){if(typeof e=="function")return e(n,t);switch(e){case"pathParamsChange":return!Ta(n.url,t.url);case"pathParamsOrQueryParamsChange":return!Ta(n.url,t.url)||!Cr(n.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!kg(n,t)||!Cr(n.queryParams,t.queryParams);case"paramsChange":default:return!kg(n,t)}}function Ac(n,t,e){let i=Uo(n),r=n.value;Object.entries(i).forEach(([s,a])=>{r.component?t?Ac(a,t.children.getContext(s),e):Ac(a,null,e):Ac(a,t,e)}),r.component?t&&t.outlet&&t.outlet.isActivated?e.canDeactivateChecks.push(new Vo(t.outlet.component,r)):e.canDeactivateChecks.push(new Vo(null,r)):e.canDeactivateChecks.push(new Vo(null,r))}function Hc(n){return typeof n=="function"}function YN(n){return typeof n=="boolean"}function QN(n){return n&&Hc(n.canLoad)}function ZN(n){return n&&Hc(n.canActivate)}function XN(n){return n&&Hc(n.canActivateChild)}function JN(n){return n&&Hc(n.canDeactivate)}function eF(n){return n&&Hc(n.canMatch)}function Nx(n){return n instanceof uw||n?.name==="EmptyError"}var yh=Symbol("INITIAL_VALUE");function qo(){return Mt(n=>hr(n.map(t=>t.pipe(Vt(1),Bt(yh)))).pipe(Ne(t=>{for(let e of t)if(e!==!0){if(e===yh)return yh;if(e===!1||tF(e))return e}return!0}),it(t=>t!==yh),Vt(1)))}function tF(n){return qs(n)||n instanceof Wo}function iF(n,t){return yi(e=>{let{targetSnapshot:i,currentSnapshot:r,guards:{canActivateChecks:s,canDeactivateChecks:a}}=e;return a.length===0&&s.length===0?ge(Le(H({},e),{guardsResult:!0})):nF(a,i,r,n).pipe(yi(o=>o&&YN(o)?rF(i,s,n,t):ge(o)),Ne(o=>Le(H({},e),{guardsResult:o})))})}function nF(n,t,e,i){return si(n).pipe(yi(r=>cF(r.component,r.route,e,t,i)),ln(r=>r!==!0,!0))}function rF(n,t,e,i){return si(t).pipe(Zr(r=>xa(aF(r.route.parent,i),sF(r.route,i),lF(n,r.path,e),oF(n,r.route,e))),ln(r=>r!==!0,!0))}function sF(n,t){return n!==null&&t&&t(new Nh(n)),ge(!0)}function aF(n,t){return n!==null&&t&&t(new Lh(n)),ge(!0)}function oF(n,t,e){let i=t.routeConfig?t.routeConfig.canActivate:null;if(!i||i.length===0)return ge(!0);let r=i.map(s=>Fs(()=>{let a=Vc(t)??e,o=Go(s,a),l=ZN(o)?o.canActivate(t,n):fr(a,()=>o(t,n));return Ks(l).pipe(ln())}));return ge(r).pipe(qo())}function lF(n,t,e){let i=t[t.length-1],s=t.slice(0,t.length-1).reverse().map(a=>qN(a)).filter(a=>a!==null).map(a=>Fs(()=>{let o=a.guards.map(l=>{let c=Vc(a.node)??e,u=Go(l,c),d=XN(u)?u.canActivateChild(i,n):fr(c,()=>u(i,n));return Ks(d).pipe(ln())});return ge(o).pipe(qo())}));return ge(s).pipe(qo())}function cF(n,t,e,i,r){let s=t&&t.routeConfig?t.routeConfig.canDeactivate:null;if(!s||s.length===0)return ge(!0);let a=s.map(o=>{let l=Vc(t)??r,c=Go(o,l),u=JN(c)?c.canDeactivate(n,t,e,i):fr(l,()=>c(n,t,e,i));return Ks(u).pipe(ln())});return ge(a).pipe(qo())}function uF(n,t,e,i){let r=t.canLoad;if(r===void 0||r.length===0)return ge(!0);let s=r.map(a=>{let o=Go(a,n),l=QN(o)?o.canLoad(t,e):fr(n,()=>o(t,e));return Ks(l)});return ge(s).pipe(qo(),Fx(i))}function Fx(n){return cw(kt(t=>{if(typeof t!="boolean")throw Vh(n,t)}),Ne(t=>t===!0))}function dF(n,t,e,i){let r=t.canMatch;if(!r||r.length===0)return ge(!0);let s=r.map(a=>{let o=Go(a,n),l=eF(o)?o.canMatch(t,e):fr(n,()=>o(t,e));return Ks(l)});return ge(s).pipe(qo(),Fx(i))}var Fc=class{segmentGroup;constructor(t){this.segmentGroup=t||null}},Pc=class extends Error{urlTree;constructor(t){super(),this.urlTree=t}};function Po(n){return qn(new Fc(n))}function hF(n){return qn(new Be(4e3,!1))}function mF(n){return qn(Lx(!1,Ki.GuardRejected))}var Eg=class{urlSerializer;urlTree;constructor(t,e){this.urlSerializer=t,this.urlTree=e}lineralizeSegments(t,e){let i=[],r=e.root;for(;;){if(i=i.concat(r.segments),r.numberOfChildren===0)return ge(i);if(r.numberOfChildren>1||!r.children[et])return hF(`${t.redirectTo}`);r=r.children[et]}}applyRedirectCommands(t,e,i,r,s){if(typeof e!="string"){let o=e,{queryParams:l,fragment:c,routeConfig:u,url:d,outlet:h,params:m,data:f,title:p}=r,g=fr(s,()=>o({params:m,data:f,queryParams:l,fragment:c,routeConfig:u,url:d,outlet:h,title:p}));if(g instanceof xr)throw new Pc(g);e=g}let a=this.applyRedirectCreateUrlTree(e,this.urlSerializer.parse(e),t,i);if(e[0]==="/")throw new Pc(a);return a}applyRedirectCreateUrlTree(t,e,i,r){let s=this.createSegmentGroup(t,e.root,i,r);return new xr(s,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(t,e){let i={};return Object.entries(t).forEach(([r,s])=>{if(typeof s=="string"&&s[0]===":"){let o=s.substring(1);i[r]=e[o]}else i[r]=s}),i}createSegmentGroup(t,e,i,r){let s=this.createSegments(t,e.segments,i,r),a={};return Object.entries(e.children).forEach(([o,l])=>{a[o]=this.createSegmentGroup(t,l,i,r)}),new bt(s,a)}createSegments(t,e,i,r){return e.map(s=>s.path[0]===":"?this.findPosParam(t,s,r):this.findOrReturn(s,i))}findPosParam(t,e,i){let r=i[e.path.substring(1)];if(!r)throw new Be(4001,!1);return r}findOrReturn(t,e){let i=0;for(let r of e){if(r.path===t.path)return e.splice(i),r;i++}return t}},Ag={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function fF(n,t,e,i,r){let s=Px(n,t,e);return s.matched?(i=PN(t,i),dF(i,t,e,r).pipe(Ne(a=>a===!0?s:H({},Ag)))):ge(s)}function Px(n,t,e){if(t.path==="**")return pF(e);if(t.path==="")return t.pathMatch==="full"&&(n.hasChildren()||e.length>0)?H({},Ag):{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};let r=(t.matcher||hx)(e,n,t);if(!r)return H({},Ag);let s={};Object.entries(r.posParams??{}).forEach(([o,l])=>{s[o]=l.path});let a=r.consumed.length>0?H(H({},s),r.consumed[r.consumed.length-1].parameters):s;return{matched:!0,consumedSegments:r.consumed,remainingSegments:e.slice(r.consumed.length),parameters:a,positionalParamSegments:r.posParams??{}}}function pF(n){return{matched:!0,parameters:n.length>0?fx(n).parameters:{},consumedSegments:n,remainingSegments:[],positionalParamSegments:{}}}function cx(n,t,e,i){return e.length>0&&bF(n,e,i)?{segmentGroup:new bt(t,_F(i,new bt(e,n.children))),slicedSegments:[]}:e.length===0&&vF(n,e,i)?{segmentGroup:new bt(n.segments,gF(n,e,i,n.children)),slicedSegments:e}:{segmentGroup:new bt(n.segments,n.children),slicedSegments:e}}function gF(n,t,e,i){let r={};for(let s of e)if(Hh(n,t,s)&&!i[Qn(s)]){let a=new bt([],{});r[Qn(s)]=a}return H(H({},i),r)}function _F(n,t){let e={};e[et]=t;for(let i of n)if(i.path===""&&Qn(i)!==et){let r=new bt([],{});e[Qn(i)]=r}return e}function bF(n,t,e){return e.some(i=>Hh(n,t,i)&&Qn(i)!==et)}function vF(n,t,e){return e.some(i=>Hh(n,t,i))}function Hh(n,t,e){return(n.hasChildren()||t.length>0)&&e.pathMatch==="full"?!1:e.path===""}function yF(n,t,e){return t.length===0&&!n.children[e]}var Ig=class{};function CF(n,t,e,i,r,s,a="emptyOnly"){return new Dg(n,t,e,i,r,a,s).recognize()}var wF=31,Dg=class{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(t,e,i,r,s,a,o){this.injector=t,this.configLoader=e,this.rootComponentType=i,this.config=r,this.urlTree=s,this.paramsInheritanceStrategy=a,this.urlSerializer=o,this.applyRedirects=new Eg(this.urlSerializer,this.urlTree)}noMatchError(t){return new Be(4002,`'${t.segmentGroup}'`)}recognize(){let t=cx(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(t).pipe(Ne(({children:e,rootSnapshot:i})=>{let r=new dn(i,e),s=new Oc("",r),a=xx(i,[],this.urlTree.queryParams,this.urlTree.fragment);return a.queryParams=this.urlTree.queryParams,s.url=this.urlSerializer.serialize(a),{state:s,tree:a}}))}match(t){let e=new Ea([],Object.freeze({}),Object.freeze(H({},this.urlTree.queryParams)),this.urlTree.fragment,Object.freeze({}),et,this.rootComponentType,null,{});return this.processSegmentGroup(this.injector,this.config,t,et,e).pipe(Ne(i=>({children:i,rootSnapshot:e})),Ai(i=>{if(i instanceof Pc)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof Fc?this.noMatchError(i):i}))}processSegmentGroup(t,e,i,r,s){return i.segments.length===0&&i.hasChildren()?this.processChildren(t,e,i,s):this.processSegment(t,e,i,i.segments,r,!0,s).pipe(Ne(a=>a instanceof dn?[a]:[]))}processChildren(t,e,i,r){let s=[];for(let a of Object.keys(i.children))a==="primary"?s.unshift(a):s.push(a);return si(s).pipe(Zr(a=>{let o=i.children[a],l=UN(e,a);return this.processSegmentGroup(t,l,o,a,r)}),pw((a,o)=>(a.push(...o),a)),rg(null),fw(),yi(a=>{if(a===null)return Po(i);let o=Ux(a);return xF(o),ge(o)}))}processSegment(t,e,i,r,s,a,o){return si(e).pipe(Zr(l=>this.processSegmentAgainstRoute(l._injector??t,e,l,i,r,s,a,o).pipe(Ai(c=>{if(c instanceof Fc)return ge(null);throw c}))),ln(l=>!!l),Ai(l=>{if(Nx(l))return yF(i,r,s)?ge(new Ig):Po(i);throw l}))}processSegmentAgainstRoute(t,e,i,r,s,a,o,l){return Qn(i)!==a&&(a===et||!Hh(r,s,i))?Po(r):i.redirectTo===void 0?this.matchSegmentAgainstRoute(t,r,i,s,a,l):this.allowRedirects&&o?this.expandSegmentAgainstRouteUsingRedirect(t,r,e,i,s,a,l):Po(r)}expandSegmentAgainstRouteUsingRedirect(t,e,i,r,s,a,o){let{matched:l,parameters:c,consumedSegments:u,positionalParamSegments:d,remainingSegments:h}=Px(e,r,s);if(!l)return Po(e);typeof r.redirectTo=="string"&&r.redirectTo[0]==="/"&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>wF&&(this.allowRedirects=!1));let m=new Ea(s,c,Object.freeze(H({},this.urlTree.queryParams)),this.urlTree.fragment,ux(r),Qn(r),r.component??r._loadedComponent??null,r,dx(r)),f=$h(m,o,this.paramsInheritanceStrategy);m.params=Object.freeze(f.params),m.data=Object.freeze(f.data);let p=this.applyRedirects.applyRedirectCommands(u,r.redirectTo,d,m,t);return this.applyRedirects.lineralizeSegments(r,p).pipe(yi(g=>this.processSegment(t,i,e,g.concat(h),a,!1,o)))}matchSegmentAgainstRoute(t,e,i,r,s,a){let o=fF(e,i,r,t,this.urlSerializer);return i.path==="**"&&(e.children={}),o.pipe(Mt(l=>l.matched?(t=i._injector??t,this.getChildConfig(t,i,r).pipe(Mt(({routes:c})=>{let u=i._loadedInjector??t,{parameters:d,consumedSegments:h,remainingSegments:m}=l,f=new Ea(h,d,Object.freeze(H({},this.urlTree.queryParams)),this.urlTree.fragment,ux(i),Qn(i),i.component??i._loadedComponent??null,i,dx(i)),p=$h(f,a,this.paramsInheritanceStrategy);f.params=Object.freeze(p.params),f.data=Object.freeze(p.data);let{segmentGroup:g,slicedSegments:y}=cx(e,h,m,c);if(y.length===0&&g.hasChildren())return this.processChildren(u,c,g,f).pipe(Ne(k=>new dn(f,k)));if(c.length===0&&y.length===0)return ge(new dn(f,[]));let w=Qn(i)===s;return this.processSegment(u,c,g,y,w?et:s,!0,f).pipe(Ne(k=>new dn(f,k instanceof dn?[k]:[])))}))):Po(e)))}getChildConfig(t,e,i){return e.children?ge({routes:e.children,injector:t}):e.loadChildren?e._loadedRoutes!==void 0?ge({routes:e._loadedRoutes,injector:e._loadedInjector}):uF(t,e,i,this.urlSerializer).pipe(yi(r=>r?this.configLoader.loadChildren(t,e).pipe(kt(s=>{e._loadedRoutes=s.routes,e._loadedInjector=s.injector})):mF(e))):ge({routes:[],injector:t})}};function xF(n){n.sort((t,e)=>t.value.outlet===et?-1:e.value.outlet===et?1:t.value.outlet.localeCompare(e.value.outlet))}function SF(n){let t=n.value.routeConfig;return t&&t.path===""}function Ux(n){let t=[],e=new Set;for(let i of n){if(!SF(i)){t.push(i);continue}let r=t.find(s=>i.value.routeConfig===s.value.routeConfig);r!==void 0?(r.children.push(...i.children),e.add(r)):t.push(i)}for(let i of e){let r=Ux(i.children);t.push(new dn(i.value,r))}return t.filter(i=>!e.has(i))}function ux(n){return n.data||{}}function dx(n){return n.resolve||{}}function kF(n,t,e,i,r,s){return yi(a=>CF(n,t,e,i,a.extractedUrl,r,s).pipe(Ne(({state:o,tree:l})=>Le(H({},a),{targetSnapshot:o,urlAfterRedirects:l}))))}function MF(n,t){return yi(e=>{let{targetSnapshot:i,guards:{canActivateChecks:r}}=e;if(!r.length)return ge(e);let s=new Set(r.map(l=>l.route)),a=new Set;for(let l of s)if(!a.has(l))for(let c of $x(l))a.add(c);let o=0;return si(a).pipe(Zr(l=>s.has(l)?TF(l,i,n,t):(l.data=$h(l,l.parent,n).resolve,ge(void 0))),kt(()=>o++),sg(1),yi(l=>o===a.size?ge(e):on))})}function $x(n){let t=n.children.map(e=>$x(e)).flat();return[n,...t]}function TF(n,t,e,i){let r=n.routeConfig,s=n._resolve;return r?.title!==void 0&&!Ix(r)&&(s[$c]=r.title),EF(s,n,t,i).pipe(Ne(a=>(n._resolvedData=a,n.data=$h(n,n.parent,e).resolve,null)))}function EF(n,t,e,i){let r=vg(n);if(r.length===0)return ge({});let s={};return si(r).pipe(yi(a=>AF(n[a],t,e,i).pipe(ln(),kt(o=>{if(o instanceof Wo)throw Vh(new Ws,o);s[a]=o}))),sg(1),Ne(()=>s),Ai(a=>Nx(a)?on:qn(a)))}function AF(n,t,e,i){let r=Vc(t)??i,s=Go(n,r),a=s.resolve?s.resolve(t,e):fr(r,()=>s(t,e));return Ks(a)}function _g(n){return Mt(t=>{let e=n(t);return e?si(e).pipe(Ne(()=>t)):ge(t)})}var Fg=(()=>{class n{buildTitle(e){let i,r=e.root;for(;r!==void 0;)i=this.getResolvedTitleForRoute(r)??i,r=r.children.find(s=>s.outlet===et);return i}getResolvedTitleForRoute(e){return e.data[$c]}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:()=>R(Vx),providedIn:"root"})}return n})(),Vx=(()=>{class n extends Fg{title;constructor(e){super(),this.title=e}updateTitle(e){let i=this.buildTitle(e);i!==void 0&&this.title.setTitle(i)}static \u0275fac=function(i){return new(i||n)(Re(ex))};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Ra=new J("",{providedIn:"root",factory:()=>({})}),Ko=new J(""),jh=(()=>{class n{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=R(Uw);loadComponent(e){if(this.componentLoaders.get(e))return this.componentLoaders.get(e);if(e._loadedComponent)return ge(e._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(e);let i=Ks(e.loadComponent()).pipe(Ne(zx),kt(s=>{this.onLoadEndListener&&this.onLoadEndListener(e),e._loadedComponent=s}),Eo(()=>{this.componentLoaders.delete(e)})),r=new ig(i,()=>new ue).pipe(tg());return this.componentLoaders.set(e,r),r}loadChildren(e,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return ge({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);let s=Bx(i,this.compiler,e,this.onLoadEndListener).pipe(Eo(()=>{this.childrenLoaders.delete(i)})),a=new ig(s,()=>new ue).pipe(tg());return this.childrenLoaders.set(i,a),a}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function Bx(n,t,e,i){return Ks(n.loadChildren()).pipe(Ne(zx),yi(r=>r instanceof Ew||Array.isArray(r)?ge(r):si(t.compileModuleAsync(r))),Ne(r=>{i&&i(n);let s,a,o=!1;return Array.isArray(r)?(a=r,o=!0):(s=r.create(e).injector,a=s.get(Ko,[],{optional:!0,self:!0}).flat()),{routes:a.map(Ng),injector:s}}))}function IF(n){return n&&typeof n=="object"&&"default"in n}function zx(n){return IF(n)?n.default:n}var Wh=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:()=>R(DF),providedIn:"root"})}return n})(),DF=(()=>{class n{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Pg=new J(""),Ug=new J("");function Hx(n,t,e){let i=n.get(Ug),r=n.get(Ze);return n.get(De).runOutsideAngular(()=>{if(!r.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,new Promise(c=>setTimeout(c));let s,a=new Promise(c=>{s=c}),o=r.startViewTransition(()=>(s(),RF(n))),{onViewTransitionCreated:l}=i;return l&&fr(n,()=>l({transition:o,from:t,to:e})),a})}function RF(n){return new Promise(t=>{Yt({read:()=>setTimeout(t)},{injector:n})})}var $g=new J(""),qh=(()=>{class n{currentNavigation=null;currentTransition=null;lastSuccessfulNavigation=null;events=new ue;transitionAbortSubject=new ue;configLoader=R(jh);environmentInjector=R(cn);destroyRef=R(yw);urlSerializer=R(Ia);rootContexts=R(Da);location=R(Bs);inputBindingEnabled=R(zc,{optional:!0})!==null;titleStrategy=R(Fg);options=R(Ra,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly";urlHandlingStrategy=R(Wh);createViewTransition=R(Pg,{optional:!0});navigationErrorHandler=R($g,{optional:!0});navigationId=0;get hasRequestedNavigation(){return this.navigationId!==0}transitions;afterPreactivation=()=>ge(void 0);rootComponentType=null;destroyed=!1;constructor(){let e=r=>this.events.next(new Dh(r)),i=r=>this.events.next(new Rh(r));this.configLoader.onLoadEndListener=i,this.configLoader.onLoadStartListener=e,this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(e){let i=++this.navigationId;this.transitions?.next(Le(H({},e),{extractedUrl:this.urlHandlingStrategy.extract(e.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,id:i}))}setupNavigations(e){return this.transitions=new ci(null),this.transitions.pipe(it(i=>i!==null),Mt(i=>{let r=!1,s=!1;return ge(i).pipe(Mt(a=>{if(this.navigationId>i.id)return this.cancelNavigationTransition(i,"",Ki.SupersededByNewNavigation),on;this.currentTransition=i,this.currentNavigation={id:a.id,initialUrl:a.rawUrl,extractedUrl:a.extractedUrl,targetBrowserUrl:typeof a.extras.browserUrl=="string"?this.urlSerializer.parse(a.extras.browserUrl):a.extras.browserUrl,trigger:a.source,extras:a.extras,previousNavigation:this.lastSuccessfulNavigation?Le(H({},this.lastSuccessfulNavigation),{previousNavigation:null}):null};let o=!e.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl(),l=a.extras.onSameUrlNavigation??e.onSameUrlNavigation;if(!o&&l!=="reload"){let c="";return this.events.next(new Sr(a.id,this.urlSerializer.serialize(a.rawUrl),c,Bo.IgnoredSameUrlNavigation)),a.resolve(!1),on}if(this.urlHandlingStrategy.shouldProcessUrl(a.rawUrl))return ge(a).pipe(Mt(c=>(this.events.next(new Gs(c.id,this.urlSerializer.serialize(c.extractedUrl),c.source,c.restoredState)),c.id!==this.navigationId?on:Promise.resolve(c))),kF(this.environmentInjector,this.configLoader,this.rootComponentType,e.config,this.urlSerializer,this.paramsInheritanceStrategy),kt(c=>{i.targetSnapshot=c.targetSnapshot,i.urlAfterRedirects=c.urlAfterRedirects,this.currentNavigation=Le(H({},this.currentNavigation),{finalUrl:c.urlAfterRedirects});let u=new Dc(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(u)}));if(o&&this.urlHandlingStrategy.shouldProcessUrl(a.currentRawUrl)){let{id:c,extractedUrl:u,source:d,restoredState:h,extras:m}=a,f=new Gs(c,this.urlSerializer.serialize(u),d,h);this.events.next(f);let p=Ex(this.rootComponentType).snapshot;return this.currentTransition=i=Le(H({},a),{targetSnapshot:p,urlAfterRedirects:u,extras:Le(H({},m),{skipLocationChange:!1,replaceUrl:!1})}),this.currentNavigation.finalUrl=u,ge(i)}else{let c="";return this.events.next(new Sr(a.id,this.urlSerializer.serialize(a.extractedUrl),c,Bo.IgnoredByUrlHandlingStrategy)),a.resolve(!1),on}}),kt(a=>{let o=new Th(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(o)}),Ne(a=>(this.currentTransition=i=Le(H({},a),{guards:WN(a.targetSnapshot,a.currentSnapshot,this.rootContexts)}),i)),iF(this.environmentInjector,a=>this.events.next(a)),kt(a=>{if(i.guardsResult=a.guardsResult,a.guardsResult&&typeof a.guardsResult!="boolean")throw Vh(this.urlSerializer,a.guardsResult);let o=new Eh(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot,!!a.guardsResult);this.events.next(o)}),it(a=>a.guardsResult?!0:(this.cancelNavigationTransition(a,"",Ki.GuardRejected),!1)),_g(a=>{if(a.guards.canActivateChecks.length!==0)return ge(a).pipe(kt(o=>{let l=new Ah(o.id,this.urlSerializer.serialize(o.extractedUrl),this.urlSerializer.serialize(o.urlAfterRedirects),o.targetSnapshot);this.events.next(l)}),Mt(o=>{let l=!1;return ge(o).pipe(MF(this.paramsInheritanceStrategy,this.environmentInjector),kt({next:()=>l=!0,complete:()=>{l||this.cancelNavigationTransition(o,"",Ki.NoDataFromResolver)}}))}),kt(o=>{let l=new Ih(o.id,this.urlSerializer.serialize(o.extractedUrl),this.urlSerializer.serialize(o.urlAfterRedirects),o.targetSnapshot);this.events.next(l)}))}),_g(a=>{let o=l=>{let c=[];l.routeConfig?.loadComponent&&!l.routeConfig._loadedComponent&&c.push(this.configLoader.loadComponent(l.routeConfig).pipe(kt(u=>{l.component=u}),Ne(()=>{})));for(let u of l.children)c.push(...o(u));return c};return hr(o(a.targetSnapshot.root)).pipe(rg(null),Vt(1))}),_g(()=>this.afterPreactivation()),Mt(()=>{let{currentSnapshot:a,targetSnapshot:o}=i,l=this.createViewTransition?.(this.environmentInjector,a.root,o.root);return l?si(l).pipe(Ne(()=>i)):ge(i)}),Ne(a=>{let o=VN(e.routeReuseStrategy,a.targetSnapshot,a.currentRouterState);return this.currentTransition=i=Le(H({},a),{targetRouterState:o}),this.currentNavigation.targetRouterState=o,i}),kt(()=>{this.events.next(new Rc)}),jN(this.rootContexts,e.routeReuseStrategy,a=>this.events.next(a),this.inputBindingEnabled),Vt(1),kt({next:a=>{r=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new In(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects))),this.titleStrategy?.updateTitle(a.targetRouterState.snapshot),a.resolve(!0)},complete:()=>{r=!0}}),Ye(this.transitionAbortSubject.pipe(kt(a=>{throw a}))),Eo(()=>{!r&&!s&&this.cancelNavigationTransition(i,"",Ki.SupersededByNewNavigation),this.currentTransition?.id===i.id&&(this.currentNavigation=null,this.currentTransition=null)}),Ai(a=>{if(this.destroyed)return i.resolve(!1),on;if(s=!0,Ox(a))this.events.next(new wr(i.id,this.urlSerializer.serialize(i.extractedUrl),a.message,a.cancellationCode)),HN(a)?this.events.next(new jo(a.url,a.navigationBehaviorOptions)):i.resolve(!1);else{let o=new zo(i.id,this.urlSerializer.serialize(i.extractedUrl),a,i.targetSnapshot??void 0);try{let l=fr(this.environmentInjector,()=>this.navigationErrorHandler?.(o));if(l instanceof Wo){let{message:c,cancellationCode:u}=Vh(this.urlSerializer,l);this.events.next(new wr(i.id,this.urlSerializer.serialize(i.extractedUrl),c,u)),this.events.next(new jo(l.redirectTo,l.navigationBehaviorOptions))}else throw this.events.next(o),a}catch(l){this.options.resolveNavigationPromiseOnError?i.resolve(!1):i.reject(l)}}return on}))}))}cancelNavigationTransition(e,i,r){let s=new wr(e.id,this.urlSerializer.serialize(e.extractedUrl),i,r);this.events.next(s),e.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){let e=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),i=this.currentNavigation?.targetBrowserUrl??this.currentNavigation?.extractedUrl;return e.toString()!==i?.toString()&&!this.currentNavigation?.extras.skipLocationChange}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function LF(n){return n!==Sh}var jx=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:()=>R(OF),providedIn:"root"})}return n})(),zh=class{shouldDetach(t){return!1}store(t,e){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,e){return t.routeConfig===e.routeConfig}},OF=(()=>{class n extends zh{static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Wx=(()=>{class n{urlSerializer=R(Ia);options=R(Ra,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";location=R(Bs);urlHandlingStrategy=R(Wh);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new xr;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:e,initialUrl:i,targetBrowserUrl:r}){let s=e!==void 0?this.urlHandlingStrategy.merge(e,i):i,a=r??s;return a instanceof xr?this.urlSerializer.serialize(a):a}commitTransition({targetRouterState:e,finalUrl:i,initialUrl:r}){i&&e?(this.currentUrlTree=i,this.rawUrlTree=this.urlHandlingStrategy.merge(i,r),this.routerState=e):this.rawUrlTree=r}routerState=Ex(null);getRouterState(){return this.routerState}stateMemento=this.createStateMemento();updateStateMemento(){this.stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}resetInternalState({finalUrl:e}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e??this.rawUrlTree)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:()=>R(NF),providedIn:"root"})}return n})(),NF=(()=>{class n extends Wx{currentPageId=0;lastSuccessfulId=-1;restoredState(){return this.location.getState()}get browserPageId(){return this.canceledNavigationResolution!=="computed"?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(e){return this.location.subscribe(i=>{i.type==="popstate"&&setTimeout(()=>{e(i.url,i.state,"popstate")})})}handleRouterEvent(e,i){e instanceof Gs?this.updateStateMemento():e instanceof Sr?this.commitTransition(i):e instanceof Dc?this.urlUpdateStrategy==="eager"&&(i.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(i),i)):e instanceof Rc?(this.commitTransition(i),this.urlUpdateStrategy==="deferred"&&!i.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(i),i)):e instanceof wr&&(e.code===Ki.GuardRejected||e.code===Ki.NoDataFromResolver)?this.restoreHistory(i):e instanceof zo?this.restoreHistory(i,!0):e instanceof In&&(this.lastSuccessfulId=e.id,this.currentPageId=this.browserPageId)}setBrowserUrl(e,{extras:i,id:r}){let{replaceUrl:s,state:a}=i;if(this.location.isCurrentPathEqualTo(e)||s){let o=this.browserPageId,l=H(H({},a),this.generateNgRouterState(r,o));this.location.replaceState(e,"",l)}else{let o=H(H({},a),this.generateNgRouterState(r,this.browserPageId+1));this.location.go(e,"",o)}}restoreHistory(e,i=!1){if(this.canceledNavigationResolution==="computed"){let r=this.browserPageId,s=this.currentPageId-r;s!==0?this.location.historyGo(s):this.getCurrentUrlTree()===e.finalUrl&&s===0&&(this.resetInternalState(e),this.resetUrlToCurrentUrlTree())}else this.canceledNavigationResolution==="replace"&&(i&&this.resetInternalState(e),this.resetUrlToCurrentUrlTree())}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return this.canceledNavigationResolution==="computed"?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function Gh(n,t){n.events.pipe(it(e=>e instanceof In||e instanceof wr||e instanceof zo||e instanceof Sr),Ne(e=>e instanceof In||e instanceof Sr?0:(e instanceof wr?e.code===Ki.Redirect||e.code===Ki.SupersededByNewNavigation:!1)?2:1),it(e=>e!==2),Vt(1)).subscribe(()=>{t()})}var FF={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},PF={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"},is=(()=>{class n{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=R(Aw);stateManager=R(Wx);options=R(Ra,{optional:!0})||{};pendingTasks=R(Cw);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=R(qh);urlSerializer=R(Ia);location=R(Bs);urlHandlingStrategy=R(Wh);_events=new ue;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=R(jx);onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=R(Ko,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!R(zc,{optional:!0});constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:e=>{this.console.warn(e)}}),this.subscribeToNavigationEvents()}eventsSubscription=new St;subscribeToNavigationEvents(){let e=this.navigationTransitions.events.subscribe(i=>{try{let r=this.navigationTransitions.currentTransition,s=this.navigationTransitions.currentNavigation;if(r!==null&&s!==null){if(this.stateManager.handleRouterEvent(i,s),i instanceof wr&&i.code!==Ki.Redirect&&i.code!==Ki.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof In)this.navigated=!0;else if(i instanceof jo){let a=i.navigationBehaviorOptions,o=this.urlHandlingStrategy.merge(i.url,r.currentRawUrl),l=H({browserUrl:r.extras.browserUrl,info:r.extras.info,skipLocationChange:r.extras.skipLocationChange,replaceUrl:r.extras.replaceUrl||this.urlUpdateStrategy==="eager"||LF(r.source)},a);this.scheduleNavigation(o,Sh,null,l,{resolve:r.resolve,reject:r.reject,promise:r.promise})}}$F(i)&&this._events.next(i)}catch(r){this.navigationTransitions.transitionAbortSubject.next(r)}});this.eventsSubscription.add(e)}resetRootComponentType(e){this.routerState.root.component=e,this.navigationTransitions.rootComponentType=e}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Sh,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((e,i,r)=>{this.navigateToSyncWithBrowser(e,r,i)})}navigateToSyncWithBrowser(e,i,r){let s={replaceUrl:!0},a=r?.navigationId?r:null;if(r){let l=H({},r);delete l.navigationId,delete l.\u0275routerPageId,Object.keys(l).length!==0&&(s.state=l)}let o=this.parseUrl(e);this.scheduleNavigation(o,i,a,s)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(e){this.config=e.map(Ng),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(e,i={}){let{relativeTo:r,queryParams:s,fragment:a,queryParamsHandling:o,preserveFragment:l}=i,c=l?this.currentUrlTree.fragment:a,u=null;switch(o??this.options.defaultQueryParamsHandling){case"merge":u=H(H({},this.currentUrlTree.queryParams),s);break;case"preserve":u=this.currentUrlTree.queryParams;break;default:u=s||null}u!==null&&(u=this.removeEmptyProps(u));let d;try{let h=r?r.snapshot:this.routerState.snapshot.root;d=Sx(h)}catch{(typeof e[0]!="string"||e[0][0]!=="/")&&(e=[]),d=this.currentUrlTree.root}return kx(d,e,u,c??null)}navigateByUrl(e,i={skipLocationChange:!1}){let r=qs(e)?e:this.parseUrl(e),s=this.urlHandlingStrategy.merge(r,this.rawUrlTree);return this.scheduleNavigation(s,Sh,null,i)}navigate(e,i={skipLocationChange:!1}){return UF(e),this.navigateByUrl(this.createUrlTree(e,i),i)}serializeUrl(e){return this.urlSerializer.serialize(e)}parseUrl(e){try{return this.urlSerializer.parse(e)}catch{return this.urlSerializer.parse("/")}}isActive(e,i){let r;if(i===!0?r=H({},FF):i===!1?r=H({},PF):r=i,qs(e))return sx(this.currentUrlTree,e,r);let s=this.parseUrl(e);return sx(this.currentUrlTree,s,r)}removeEmptyProps(e){return Object.entries(e).reduce((i,[r,s])=>(s!=null&&(i[r]=s),i),{})}scheduleNavigation(e,i,r,s,a){if(this.disposed)return Promise.resolve(!1);let o,l,c;a?(o=a.resolve,l=a.reject,c=a.promise):c=new Promise((d,h)=>{o=d,l=h});let u=this.pendingTasks.add();return Gh(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(u))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:r,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:s,resolve:o,reject:l,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(d=>Promise.reject(d))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function UF(n){for(let t=0;t{class n{router;route;tabIndexAttribute;renderer;el;locationStrategy;href=null;target;queryParams;fragment;queryParamsHandling;state;info;relativeTo;isAnchorElement;subscription;onChanges=new ue;constructor(e,i,r,s,a,o){this.router=e,this.route=i,this.tabIndexAttribute=r,this.renderer=s,this.el=a,this.locationStrategy=o;let l=a.nativeElement.tagName?.toLowerCase();this.isAnchorElement=l==="a"||l==="area",this.isAnchorElement?this.subscription=e.events.subscribe(c=>{c instanceof In&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}preserveFragment=!1;skipLocationChange=!1;replaceUrl=!1;setTabIndexIfNotOnNativeEl(e){this.tabIndexAttribute!=null||this.isAnchorElement||this.applyAttributeValue("tabindex",e)}ngOnChanges(e){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}routerLinkInput=null;set routerLink(e){e==null?(this.routerLinkInput=null,this.setTabIndexIfNotOnNativeEl(null)):(qs(e)?this.routerLinkInput=e:this.routerLinkInput=Array.isArray(e)?e:[e],this.setTabIndexIfNotOnNativeEl("0"))}onClick(e,i,r,s,a){let o=this.urlTree;if(o===null||this.isAnchorElement&&(e!==0||i||r||s||a||typeof this.target=="string"&&this.target!="_self"))return!0;let l={skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info};return this.router.navigateByUrl(o,l),!this.isAnchorElement}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){let e=this.urlTree;this.href=e!==null&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(e)):null;let i=this.href===null?null:kw(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",i)}applyAttributeValue(e,i){let r=this.renderer,s=this.el.nativeElement;i!==null?r.setAttribute(s,e,i):r.removeAttribute(s,e)}get urlTree(){return this.routerLinkInput===null?null:qs(this.routerLinkInput)?this.routerLinkInput:this.router.createUrlTree(this.routerLinkInput,{relativeTo:this.relativeTo!==void 0?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static \u0275fac=function(i){return new(i||n)(Ae(is),Ae(ts),vw("tabindex"),Ae(Rt),Ae(Te),Ae(Sc))};static \u0275dir=xe({type:n,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(i,r){i&1&&X("click",function(a){return r.onClick(a.button,a.ctrlKey,a.shiftKey,a.altKey,a.metaKey)}),i&2&&Se("target",r.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[2,"preserveFragment","preserveFragment",_e],skipLocationChange:[2,"skipLocationChange","skipLocationChange",_e],replaceUrl:[2,"replaceUrl","replaceUrl",_e],routerLink:"routerLink"},features:[mt]})}return n})();var jc=class{};var qx=(()=>{class n{router;injector;preloadingStrategy;loader;subscription;constructor(e,i,r,s){this.router=e,this.injector=i,this.preloadingStrategy=r,this.loader=s}setUpPreloading(){this.subscription=this.router.events.pipe(it(e=>e instanceof In),Zr(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(e,i){let r=[];for(let s of i){s.providers&&!s._injector&&(s._injector=hh(s.providers,e,`Route: ${s.path}`));let a=s._injector??e,o=s._loadedInjector??a;(s.loadChildren&&!s._loadedRoutes&&s.canLoad===void 0||s.loadComponent&&!s._loadedComponent)&&r.push(this.preloadConfig(a,s)),(s.children||s._loadedRoutes)&&r.push(this.processRoutes(o,s.children??s._loadedRoutes))}return si(r).pipe(ng())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{let r;i.loadChildren&&i.canLoad===void 0?r=this.loader.loadChildren(e,i):r=ge(null);let s=r.pipe(yi(a=>a===null?ge(void 0):(i._loadedRoutes=a.routes,i._loadedInjector=a.injector,this.processRoutes(a.injector??e,a.routes))));if(i.loadComponent&&!i._loadedComponent){let a=this.loader.loadComponent(i);return si([s,a]).pipe(ng())}else return s})}static \u0275fac=function(i){return new(i||n)(Re(is),Re(cn),Re(jc),Re(jh))};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Gx=new J(""),VF=(()=>{class n{urlSerializer;transitions;viewportScroller;zone;options;routerEventsSubscription;scrollEventsSubscription;lastId=0;lastSource="imperative";restoredId=0;store={};constructor(e,i,r,s,a={}){this.urlSerializer=e,this.transitions=i,this.viewportScroller=r,this.zone=s,this.options=a,a.scrollPositionRestoration||="disabled",a.anchorScrolling||="disabled"}init(){this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof Gs?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof In?(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment)):e instanceof Sr&&e.code===Bo.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof Ho&&(e.position?this.options.scrollPositionRestoration==="top"?this.viewportScroller.scrollToPosition([0,0]):this.options.scrollPositionRestoration==="enabled"&&this.viewportScroller.scrollToPosition(e.position):e.anchor&&this.options.anchorScrolling==="enabled"?this.viewportScroller.scrollToAnchor(e.anchor):this.options.scrollPositionRestoration!=="disabled"&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(e,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new Ho(e,this.lastSource==="popstate"?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static \u0275fac=function(i){dh()};static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})();function BF(n){return n.routerState.root}function Wc(n,t){return{\u0275kind:n,\u0275providers:t}}function zF(){let n=R(ut);return t=>{let e=n.get(Gn);if(t!==e.components[0])return;let i=n.get(is),r=n.get(Kx);n.get(Bg)===1&&i.initialNavigation(),n.get(Zx,null,og.Optional)?.setUpPreloading(),n.get(Gx,null,og.Optional)?.init(),i.resetRootComponentType(e.componentTypes[0]),r.closed||(r.next(),r.complete(),r.unsubscribe())}}var Kx=new J("",{factory:()=>new ue}),Bg=new J("",{providedIn:"root",factory:()=>1});function Yx(){let n=[{provide:Bg,useValue:0},ug(()=>{let t=R(ut);return t.get(Bw,Promise.resolve()).then(()=>new Promise(i=>{let r=t.get(is),s=t.get(Kx);Gh(r,()=>{i(!0)}),t.get(qh).afterPreactivation=()=>(i(!0),s.closed?ge(void 0):s),r.initialNavigation()}))})];return Wc(2,n)}function Qx(){let n=[ug(()=>{R(is).setUpLocationChangeListener()}),{provide:Bg,useValue:2}];return Wc(3,n)}var Zx=new J("");function Xx(n){return Wc(0,[{provide:Zx,useExisting:qx},{provide:jc,useExisting:n}])}function Jx(){return Wc(8,[Lg,{provide:zc,useExisting:Lg}])}function eS(n){lg("NgRouterViewTransitions");let t=[{provide:Pg,useValue:Hx},{provide:Ug,useValue:H({skipNextTransition:!!n?.skipInitialTransition},n)}];return Wc(9,t)}var tS=[Bs,{provide:Ia,useClass:Ws},is,Da,{provide:ts,useFactory:BF,deps:[is]},jh,[]],zg=(()=>{class n{constructor(){}static forRoot(e,i){return{ngModule:n,providers:[tS,[],{provide:Ko,multi:!0,useValue:e},[],i?.errorHandler?{provide:$g,useValue:i.errorHandler}:[],{provide:Ra,useValue:i||{}},i?.useHash?jF():WF(),HF(),i?.preloadingStrategy?Xx(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?qF(i):[],i?.bindToComponentInputs?Jx().\u0275providers:[],i?.enableViewTransitions?eS().\u0275providers:[],GF()]}}static forChild(e){return{ngModule:n,providers:[{provide:Ko,multi:!0,useValue:e}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({})}return n})();function HF(){return{provide:Gx,useFactory:()=>{let n=R(Kw),t=R(De),e=R(Ra),i=R(qh),r=R(Ia);return e.scrollOffset&&n.setOffset(e.scrollOffset),new VF(r,i,n,t,e)}}}function jF(){return{provide:Sc,useClass:jw}}function WF(){return{provide:Sc,useClass:Hw}}function qF(n){return[n.initialNavigation==="disabled"?Qx().\u0275providers:[],n.initialNavigation==="enabledBlocking"?Yx().\u0275providers:[]]}var Vg=new J("");function GF(){return[{provide:Vg,useFactory:zF},{provide:Iw,multi:!0,useExisting:Vg}]}var ns=class{},Hg=(()=>{class n extends ns{getTranslation(e){return ge({})}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})(),Qo=class{},jg=(()=>{class n{handle(e){return e.key}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})();function Oa(n){return typeof n<"u"&&n!==null}function Jh(n){return Kh(n)&&!Yg(n)&&n!==null}function Kh(n){return typeof n=="object"}function Yg(n){return Array.isArray(n)}function nS(n){return typeof n=="string"}function KF(n){return typeof n=="function"}function Wg(n,t){let e=Object.assign({},n);return Kh(n)?(Kh(n)&&Kh(t)&&Object.keys(t).forEach(i=>{Jh(t[i])?i in n?e[i]=Wg(n[i],t[i]):Object.assign(e,{[i]:t[i]}):Object.assign(e,{[i]:t[i]})}),e):Wg({},t)}function qg(n,t){let e=t.split(".");t="";do t+=e.shift(),Oa(n)&&Oa(n[t])&&(Jh(n[t])||Yg(n[t])||!e.length)?(n=n[t],t=""):e.length?t+=".":n=void 0;while(e.length);return n}function YF(n,t,e){let i=t.split("."),r=n;for(let s=0;s{class n extends Na{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(e,i){if(nS(e))return this.interpolateString(e,i);if(KF(e))return this.interpolateFunction(e,i)}interpolateFunction(e,i){return e(i)}interpolateString(e,i){return i?e.replace(this.templateMatcher,(r,s)=>{let a=qg(i,s);return Oa(a)?a:r}):e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})(),Fa=class{},Kg=(()=>{class n extends Fa{compile(e,i){return e}compileTranslations(e,i){return e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})(),Zo=class{defaultLang;currentLang=this.defaultLang;translations={};langs=[];onTranslationChange=new ce;onLangChange=new ce;onDefaultLangChange=new ce},Yh=new J("ISOLATE_TRANSLATE_SERVICE"),Qh=new J("USE_DEFAULT_LANG"),Zh=new J("DEFAULT_LANGUAGE"),Xh=new J("USE_EXTEND"),qc=n=>Ns(n)?n:ge(n),Gc=(()=>{class n{store;currentLoader;compiler;parser;missingTranslationHandler;useDefaultLang;extend;loadingTranslations;pending=!1;_translationRequests={};lastUseLanguage=null;get onTranslationChange(){return this.store.onTranslationChange}get onLangChange(){return this.store.onLangChange}get onDefaultLangChange(){return this.store.onDefaultLangChange}get defaultLang(){return this.store.defaultLang}set defaultLang(e){this.store.defaultLang=e}get currentLang(){return this.store.currentLang}set currentLang(e){this.store.currentLang=e}get langs(){return this.store.langs}set langs(e){this.store.langs=e}get translations(){return this.store.translations}set translations(e){this.store.translations=e}constructor(e,i,r,s,a,o=!0,l=!1,c=!1,u){this.store=e,this.currentLoader=i,this.compiler=r,this.parser=s,this.missingTranslationHandler=a,this.useDefaultLang=o,this.extend=c,l&&(this.store=new Zo),u&&this.setDefaultLang(u)}setDefaultLang(e){if(e===this.defaultLang)return;let i=this.retrieveTranslations(e);typeof i<"u"?(this.defaultLang==null&&(this.defaultLang=e),i.pipe(Vt(1)).subscribe(()=>{this.changeDefaultLang(e)})):this.changeDefaultLang(e)}getDefaultLang(){return this.defaultLang}use(e){if(this.lastUseLanguage=e,e===this.currentLang)return ge(this.translations[e]);this.currentLang||(this.currentLang=e);let i=this.retrieveTranslations(e);return Ns(i)?(i.pipe(Vt(1)).subscribe(()=>{this.changeLang(e)}),i):(this.changeLang(e),ge(this.translations[e]))}changeLang(e){e===this.lastUseLanguage&&(this.currentLang=e,this.onLangChange.emit({lang:e,translations:this.translations[e]}),this.defaultLang==null&&this.changeDefaultLang(e))}retrieveTranslations(e){if(typeof this.translations[e]>"u"||this.extend)return this._translationRequests[e]=this._translationRequests[e]||this.loadAndCompileTranslations(e),this._translationRequests[e]}getTranslation(e){return this.loadAndCompileTranslations(e)}loadAndCompileTranslations(e){this.pending=!0;let i=this.currentLoader.getTranslation(e).pipe(Ps(1),Vt(1));return this.loadingTranslations=i.pipe(Ne(r=>this.compiler.compileTranslations(r,e)),Ps(1),Vt(1)),this.loadingTranslations.subscribe({next:r=>{this.translations[e]=this.extend&&this.translations[e]?H(H({},r),this.translations[e]):r,this.updateLangs(),this.pending=!1},error:r=>{this.pending=!1}}),i}setTranslation(e,i,r=!1){let s=this.compiler.compileTranslations(i,e);(r||this.extend)&&this.translations[e]?this.translations[e]=Wg(this.translations[e],s):this.translations[e]=s,this.updateLangs(),this.onTranslationChange.emit({lang:e,translations:this.translations[e]})}getLangs(){return this.langs}addLangs(e){let i=e.filter(r=>!this.langs.includes(r));i.length>0&&(this.langs=[...this.langs,...i])}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResultForKey(e,i,r){let s;if(e&&(s=this.runInterpolation(qg(e,i),r)),s===void 0&&this.defaultLang!=null&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(s=this.runInterpolation(qg(this.translations[this.defaultLang],i),r)),s===void 0){let a={key:i,translateService:this};typeof r<"u"&&(a.interpolateParams=r),s=this.missingTranslationHandler.handle(a)}return s!==void 0?s:i}runInterpolation(e,i){if(Yg(e))return e.map(r=>this.runInterpolation(r,i));if(Jh(e)){let r={};for(let s in e){let a=this.runInterpolation(e[s],i);a!==void 0&&(r[s]=a)}return r}else return this.parser.interpolate(e,i)}getParsedResult(e,i,r){if(i instanceof Array){let s={},a=!1;for(let l of i)s[l]=this.getParsedResultForKey(e,l,r),a=a||Ns(s[l]);if(!a)return s;let o=i.map(l=>qc(s[l]));return Mo(o).pipe(Ne(l=>{let c={};return l.forEach((u,d)=>{c[i[d]]=u}),c}))}return this.getParsedResultForKey(e,i,r)}get(e,i){if(!Oa(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return this.pending?this.loadingTranslations.pipe(Zr(r=>qc(this.getParsedResult(r,e,i)))):qc(this.getParsedResult(this.translations[this.currentLang],e,i))}getStreamOnTranslationChange(e,i){if(!Oa(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return xa(Fs(()=>this.get(e,i)),this.onTranslationChange.pipe(Mt(r=>{let s=this.getParsedResult(r.translations,e,i);return qc(s)})))}stream(e,i){if(!Oa(e)||!e.length)throw new Error('Parameter "key" required');return xa(Fs(()=>this.get(e,i)),this.onLangChange.pipe(Mt(r=>{let s=this.getParsedResult(r.translations,e,i);return qc(s)})))}instant(e,i){if(!Oa(e)||e.length===0)throw new Error('Parameter "key" is required and cannot be empty');let r=this.getParsedResult(this.translations[this.currentLang],e,i);return Ns(r)?Array.isArray(e)?e.reduce((s,a)=>(s[a]=a,s),{}):e:r}set(e,i,r=this.currentLang){YF(this.translations[r],e,nS(i)?this.compiler.compile(i,r):this.compiler.compileTranslations(i,r)),this.updateLangs(),this.onTranslationChange.emit({lang:r,translations:this.translations[r]})}changeDefaultLang(e){this.defaultLang=e,this.onDefaultLangChange.emit({lang:e,translations:this.translations[e]})}reloadLang(e){return this.resetLang(e),this.loadAndCompileTranslations(e)}resetLang(e){delete this._translationRequests[e],delete this.translations[e]}getBrowserLang(){if(typeof window>"u"||!window.navigator)return;let e=this.getBrowserCultureLang();return e?e.split(/[-_]/)[0]:void 0}getBrowserCultureLang(){if(!(typeof window>"u"||typeof window.navigator>"u"))return window.navigator.languages?window.navigator.languages[0]:window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage}static \u0275fac=function(i){return new(i||n)(Re(Zo),Re(ns),Re(Fa),Re(Na),Re(Qo),Re(Qh),Re(Yh),Re(Xh),Re(Zh))};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var rS=(n={})=>Sa([n.loader||{provide:ns,useClass:Hg},n.compiler||{provide:Fa,useClass:Kg},n.parser||{provide:Na,useClass:Gg},n.missingTranslationHandler||{provide:Qo,useClass:jg},Zo,{provide:Yh,useValue:n.isolate},{provide:Qh,useValue:n.useDefaultLang},{provide:Xh,useValue:n.extend},{provide:Zh,useValue:n.defaultLanguage},Gc]),Qg=(()=>{class n{static forRoot(e={}){return{ngModule:n,providers:[e.loader||{provide:ns,useClass:Hg},e.compiler||{provide:Fa,useClass:Kg},e.parser||{provide:Na,useClass:Gg},e.missingTranslationHandler||{provide:Qo,useClass:jg},Zo,{provide:Yh,useValue:e.isolate},{provide:Qh,useValue:e.useDefaultLang},{provide:Xh,useValue:e.extend},{provide:Zh,useValue:e.defaultLanguage},Gc]}}static forChild(e={}){return{ngModule:n,providers:[e.loader||{provide:ns,useClass:Hg},e.compiler||{provide:Fa,useClass:Kg},e.parser||{provide:Na,useClass:Gg},e.missingTranslationHandler||{provide:Qo,useClass:jg},{provide:Yh,useValue:e.isolate},{provide:Qh,useValue:e.useDefaultLang},{provide:Xh,useValue:e.extend},{provide:Zh,useValue:e.defaultLanguage},Gc]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({})}return n})();var sS=(()=>{class n{http;prefix;suffix;constructor(e,i="/assets/i18n/",r=".json"){this.http=e,this.prefix=i,this.suffix=r}getTranslation(e){return this.http.get(`${this.prefix}${e}${this.suffix}`)}static \u0275fac=function(i){return new(i||n)(Re(yr),Re(String),Re(String))};static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})();var dk=Os(d_());var Dn=(()=>{class n{constructor(){}changeFhirMicroService(e){localStorage.setItem("fhirMicroServer",e)}getFhirMicroService(){return localStorage.getItem("fhirMicroServer")}getFhirClient(){return new dk.default({baseUrl:this.getFhirMicroService()})}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var am=(()=>{class n{redirectHashUrl(){let e=window.location.href;window.location.replace(e.replace("#/",""))}isHashUrl(){return window.location.href.indexOf("#/")>-1}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var om;function KP(){if(om===void 0&&(om=null,typeof window<"u")){let n=window;n.trustedTypes!==void 0&&(om=n.trustedTypes.createPolicy("angular#components",{createHTML:t=>t}))}return om}function Yc(n){return KP()?.createHTML(n)||n}function hk(n){return Error(`Unable to find icon with the name "${n}"`)}function YP(){return Error("Could not find HttpClient for use with Angular Material icons. Please add provideHttpClient() to your providers.")}function mk(n){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${n}".`)}function fk(n){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${n}".`)}var as=class{url;svgText;options;svgElement;constructor(t,e,i){this.url=t,this.svgText=e,this.options=i}},gk=(()=>{class n{_httpClient;_sanitizer;_errorHandler;_document;_svgIconConfigs=new Map;_iconSetConfigs=new Map;_cachedIconsByUrl=new Map;_inProgressUrlFetches=new Map;_fontCssClassesByAlias=new Map;_resolvers=[];_defaultFontSetClass=["material-icons","mat-ligature-font"];constructor(e,i,r,s){this._httpClient=e,this._sanitizer=i,this._errorHandler=s,this._document=r}addSvgIcon(e,i,r){return this.addSvgIconInNamespace("",e,i,r)}addSvgIconLiteral(e,i,r){return this.addSvgIconLiteralInNamespace("",e,i,r)}addSvgIconInNamespace(e,i,r,s){return this._addSvgIconConfig(e,i,new as(r,null,s))}addSvgIconResolver(e){return this._resolvers.push(e),this}addSvgIconLiteralInNamespace(e,i,r,s){let a=this._sanitizer.sanitize(pr.HTML,r);if(!a)throw fk(r);let o=Yc(a);return this._addSvgIconConfig(e,i,new as("",o,s))}addSvgIconSet(e,i){return this.addSvgIconSetInNamespace("",e,i)}addSvgIconSetLiteral(e,i){return this.addSvgIconSetLiteralInNamespace("",e,i)}addSvgIconSetInNamespace(e,i,r){return this._addSvgIconSetConfig(e,new as(i,null,r))}addSvgIconSetLiteralInNamespace(e,i,r){let s=this._sanitizer.sanitize(pr.HTML,i);if(!s)throw fk(i);let a=Yc(s);return this._addSvgIconSetConfig(e,new as("",a,r))}registerFontClassAlias(e,i=e){return this._fontCssClassesByAlias.set(e,i),this}classNameForFontAlias(e){return this._fontCssClassesByAlias.get(e)||e}setDefaultFontSetClass(...e){return this._defaultFontSetClass=e,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(e){let i=this._sanitizer.sanitize(pr.RESOURCE_URL,e);if(!i)throw mk(e);let r=this._cachedIconsByUrl.get(i);return r?ge(lm(r)):this._loadSvgIconFromConfig(new as(e,null)).pipe(kt(s=>this._cachedIconsByUrl.set(i,s)),Ne(s=>lm(s)))}getNamedSvgIcon(e,i=""){let r=pk(i,e),s=this._svgIconConfigs.get(r);if(s)return this._getSvgFromConfig(s);if(s=this._getIconConfigFromResolvers(i,e),s)return this._svgIconConfigs.set(r,s),this._getSvgFromConfig(s);let a=this._iconSetConfigs.get(i);return a?this._getSvgFromIconSetConfigs(e,a):qn(hk(r))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(e){return e.svgText?ge(lm(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe(Ne(i=>lm(i)))}_getSvgFromIconSetConfigs(e,i){let r=this._extractIconWithNameFromAnySet(e,i);if(r)return ge(r);let s=i.filter(a=>!a.svgText).map(a=>this._loadSvgIconSetFromConfig(a).pipe(Ai(o=>{let c=`Loading icon set URL: ${this._sanitizer.sanitize(pr.RESOURCE_URL,a.url)} failed: ${o.message}`;return this._errorHandler.handleError(new Error(c)),ge(null)})));return Mo(s).pipe(Ne(()=>{let a=this._extractIconWithNameFromAnySet(e,i);if(!a)throw hk(e);return a}))}_extractIconWithNameFromAnySet(e,i){for(let r=i.length-1;r>=0;r--){let s=i[r];if(s.svgText&&s.svgText.toString().indexOf(e)>-1){let a=this._svgElementFromConfig(s),o=this._extractSvgIconFromSet(a,e,s.options);if(o)return o}}return null}_loadSvgIconFromConfig(e){return this._fetchIcon(e).pipe(kt(i=>e.svgText=i),Ne(()=>this._svgElementFromConfig(e)))}_loadSvgIconSetFromConfig(e){return e.svgText?ge(null):this._fetchIcon(e).pipe(kt(i=>e.svgText=i))}_extractSvgIconFromSet(e,i,r){let s=e.querySelector(`[id="${i}"]`);if(!s)return null;let a=s.cloneNode(!0);if(a.removeAttribute("id"),a.nodeName.toLowerCase()==="svg")return this._setSvgAttributes(a,r);if(a.nodeName.toLowerCase()==="symbol")return this._setSvgAttributes(this._toSvgElement(a),r);let o=this._svgElementFromString(Yc(""));return o.appendChild(a),this._setSvgAttributes(o,r)}_svgElementFromString(e){let i=this._document.createElement("DIV");i.innerHTML=e;let r=i.querySelector("svg");if(!r)throw Error(" tag not found");return r}_toSvgElement(e){let i=this._svgElementFromString(Yc("")),r=e.attributes;for(let s=0;sYc(c)),Eo(()=>this._inProgressUrlFetches.delete(a)),gw());return this._inProgressUrlFetches.set(a,l),l}_addSvgIconConfig(e,i,r){return this._svgIconConfigs.set(pk(e,i),r),this}_addSvgIconSetConfig(e,i){let r=this._iconSetConfigs.get(e);return r?r.push(i):this._iconSetConfigs.set(e,[i]),this}_svgElementFromConfig(e){if(!e.svgElement){let i=this._svgElementFromString(e.svgText);this._setSvgAttributes(i,e.options),e.svgElement=i}return e.svgElement}_getIconConfigFromResolvers(e,i){for(let r=0;r19||s===19&&a>0||s===0&&a===0?n.listen(t,e,i,r):(t.addEventListener(e,i,r),()=>{t.removeEventListener(e,i,r)})}var C_;try{C_=typeof Intl<"u"&&Intl.v8BreakIterator}catch{C_=!1}var st=(()=>{class n{_platformId=R(ch);isBrowser=this._platformId?es(this._platformId):typeof document=="object"&&!!document;EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent);TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent);BLINK=this.isBrowser&&!!(window.chrome||C_)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT;WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT;IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window);FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent);ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT;SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT;constructor(){}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Zc;function bk(){if(Zc==null&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Zc=!0}))}finally{Zc=Zc||!1}return Zc}function Ys(n){return bk()?n:!!n.capture}function kr(n,t=0){return vk(n)?Number(n):arguments.length===2?t:0}function vk(n){return!isNaN(parseFloat(n))&&!isNaN(Number(n))}function Oi(n){return n instanceof Te?n.nativeElement:n}var yk=new J("cdk-input-modality-detector-options"),Ck={ignoreKeys:[18,17,224,91,16]},wk=650,w_={passive:!0,capture:!0},xk=(()=>{class n{_platform=R(st);_listenerCleanups;modalityDetected;modalityChanged;get mostRecentModality(){return this._modality.value}_mostRecentTarget=null;_modality=new ci(null);_options;_lastTouchMs=0;_onKeydown=e=>{this._options?.ignoreKeys?.some(i=>i===e.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=Li(e))};_onMousedown=e=>{Date.now()-this._lastTouchMs{if(rl(e)){this._modality.next("keyboard");return}this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=Li(e)};constructor(){let e=R(De),i=R(Ze),r=R(yk,{optional:!0});if(this._options=H(H({},Ck),r),this.modalityDetected=this._modality.pipe(Ao(1)),this.modalityChanged=this.modalityDetected.pipe(mr()),this._platform.isBrowser){let s=R(Ri).createRenderer(null,null);this._listenerCleanups=e.runOutsideAngular(()=>[Ot(s,i,"keydown",this._onKeydown,w_),Ot(s,i,"mousedown",this._onMousedown,w_),Ot(s,i,"touchstart",this._onTouchstart,w_)])}}ngOnDestroy(){this._modality.complete(),this._listenerCleanups?.forEach(e=>e())}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Xc=function(n){return n[n.IMMEDIATE=0]="IMMEDIATE",n[n.EVENTUAL=1]="EVENTUAL",n}(Xc||{}),Sk=new J("cdk-focus-monitor-default-options"),cm=Ys({passive:!0,capture:!0}),mn=(()=>{class n{_ngZone=R(De);_platform=R(st);_inputModalityDetector=R(xk);_origin=null;_lastFocusOrigin;_windowFocused=!1;_windowFocusTimeoutId;_originTimeoutId;_originFromTouchInteraction=!1;_elementInfo=new Map;_monitoredElementCount=0;_rootNodeFocusListenerCount=new Map;_detectionMode;_windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=setTimeout(()=>this._windowFocused=!1)};_document=R(Ze,{optional:!0});_stopInputModalityDetector=new ue;constructor(){let e=R(Sk,{optional:!0});this._detectionMode=e?.detectionMode||Xc.IMMEDIATE}_rootNodeFocusAndBlurListener=e=>{let i=Li(e);for(let r=i;r;r=r.parentElement)e.type==="focus"?this._onFocus(e,r):this._onBlur(e,r)};monitor(e,i=!1){let r=Oi(e);if(!this._platform.isBrowser||r.nodeType!==1)return ge();let s=y_(r)||this._getDocument(),a=this._elementInfo.get(r);if(a)return i&&(a.checkChildren=!0),a.subject;let o={checkChildren:i,subject:new ue,rootNode:s};return this._elementInfo.set(r,o),this._registerGlobalListeners(o),o.subject}stopMonitoring(e){let i=Oi(e),r=this._elementInfo.get(i);r&&(r.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(r))}focusVia(e,i,r){let s=Oi(e),a=this._getDocument().activeElement;s===a?this._getClosestElementsInfo(s).forEach(([o,l])=>this._originChanged(o,i,l)):(this._setOrigin(i),typeof s.focus=="function"&&s.focus(r))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:e&&this._isLastInteractionFromInputLabel(e)?"mouse":"program"}_shouldBeAttributedToTouch(e){return this._detectionMode===Xc.EVENTUAL||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused",i==="touch"),e.classList.toggle("cdk-keyboard-focused",i==="keyboard"),e.classList.toggle("cdk-mouse-focused",i==="mouse"),e.classList.toggle("cdk-program-focused",i==="program")}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{if(this._origin=e,this._originFromTouchInteraction=e==="touch"&&i,this._detectionMode===Xc.IMMEDIATE){clearTimeout(this._originTimeoutId);let r=this._originFromTouchInteraction?wk:1;this._originTimeoutId=setTimeout(()=>this._origin=null,r)}})}_onFocus(e,i){let r=this._elementInfo.get(i),s=Li(e);!r||!r.checkChildren&&i!==s||this._originChanged(i,this._getFocusOrigin(s),r)}_onBlur(e,i){let r=this._elementInfo.get(i);!r||r.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(r,null))}_emitOrigin(e,i){e.subject.observers.length&&this._ngZone.run(()=>e.subject.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;let i=e.rootNode,r=this._rootNodeFocusListenerCount.get(i)||0;r||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,cm),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,cm)}),this._rootNodeFocusListenerCount.set(i,r+1),++this._monitoredElementCount===1&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(Ye(this._stopInputModalityDetector)).subscribe(s=>{this._setOrigin(s,!0)}))}_removeGlobalListeners(e){let i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){let r=this._rootNodeFocusListenerCount.get(i);r>1?this._rootNodeFocusListenerCount.set(i,r-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,cm),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,cm),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,r){this._setClasses(e,i),this._emitOrigin(r,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){let i=[];return this._elementInfo.forEach((r,s)=>{(s===e||r.checkChildren&&s.contains(e))&&i.push([s,r])}),i}_isLastInteractionFromInputLabel(e){let{_mostRecentTarget:i,mostRecentModality:r}=this._inputModalityDetector;if(r!=="mouse"||!i||i===e||e.nodeName!=="INPUT"&&e.nodeName!=="TEXTAREA"||e.disabled)return!1;let s=e.labels;if(s){for(let a=0;a{class n{_elementRef=R(Te);_focusMonitor=R(mn);_monitorSubscription;_focusOrigin=null;cdkFocusChange=new ce;constructor(){}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){let e=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(e,e.nodeType===1&&e.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]})}return n})();var um=new WeakMap,pt=(()=>{class n{_appRef;_injector=R(ut);_environmentInjector=R(cn);load(e){let i=this._appRef=this._appRef||this._injector.get(Gn),r=um.get(i);r||(r={loaders:new Set,refs:[]},um.set(i,r),i.onDestroy(()=>{um.get(i)?.refs.forEach(s=>s.destroy()),um.delete(i)})),r.loaders.has(e)||(r.loaders.add(e),r.refs.push(_h(e,{environmentInjector:this._environmentInjector})))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Mr=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["ng-component"]],exportAs:["cdkVisuallyHidden"],decls:0,vars:0,template:function(i,r){},styles:[`.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0} +`],encapsulation:2,changeDetection:0})}return n})();function sl(n){return Array.isArray(n)?n:[n]}var kk=new Set,Ua,ZP=(()=>{class n{_platform=R(st);_nonce=R(xw,{optional:!0});_matchMedia;constructor(){this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):JP}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&XP(e,this._nonce),this._matchMedia(e)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function XP(n,t){if(!kk.has(n))try{Ua||(Ua=document.createElement("style"),t&&Ua.setAttribute("nonce",t),Ua.setAttribute("type","text/css"),document.head.appendChild(Ua)),Ua.sheet&&(Ua.sheet.insertRule(`@media ${n} {body{ }}`,0),kk.add(n))}catch(e){console.error(e)}}function JP(n){return{matches:n==="all"||n==="",media:n,addListener:()=>{},removeListener:()=>{}}}var Tk=(()=>{class n{_mediaMatcher=R(ZP);_zone=R(De);_queries=new Map;_destroySubject=new ue;constructor(){}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return Mk(sl(e)).some(r=>this._registerQuery(r).mql.matches)}observe(e){let r=Mk(sl(e)).map(a=>this._registerQuery(a).observable),s=hr(r);return s=xa(s.pipe(Vt(1)),s.pipe(Ao(1),Ii(0))),s.pipe(Ne(a=>{let o={matches:!1,breakpoints:{}};return a.forEach(({matches:l,query:c})=>{o.matches=o.matches||l,o.breakpoints[c]=l}),o}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);let i=this._mediaMatcher.matchMedia(e),s={observable:new dr(a=>{let o=l=>this._zone.run(()=>a.next(l));return i.addListener(o),()=>{i.removeListener(o)}}).pipe(Bt(i),Ne(({matches:a})=>({query:e,matches:a})),Ye(this._destroySubject)),mql:i};return this._queries.set(e,s),s}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function Mk(n){return n.map(t=>t.split(",")).reduce((t,e)=>t.concat(e)).map(t=>t.trim())}function e3(n){if(n.type==="characterData"&&n.target instanceof Comment)return!0;if(n.type==="childList"){for(let t=0;t{class n{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Ak=(()=>{class n{_mutationObserverFactory=R(Ek);_observedElements=new Map;_ngZone=R(De);constructor(){}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){let i=Oi(e);return new dr(r=>{let a=this._observeElement(i).pipe(Ne(o=>o.filter(l=>!e3(l))),it(o=>!!o.length)).subscribe(o=>{this._ngZone.run(()=>{r.next(o)})});return()=>{a.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){return this._ngZone.runOutsideAngular(()=>{if(this._observedElements.has(e))this._observedElements.get(e).count++;else{let i=new ue,r=this._mutationObserverFactory.create(s=>i.next(s));r&&r.observe(e,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(e,{observer:r,stream:i,count:1})}return this._observedElements.get(e).stream})}_unobserveElement(e){this._observedElements.has(e)&&(this._observedElements.get(e).count--,this._observedElements.get(e).count||this._cleanupObserver(e))}_cleanupObserver(e){if(this._observedElements.has(e)){let{observer:i,stream:r}=this._observedElements.get(e);i&&i.disconnect(),r.complete(),this._observedElements.delete(e)}}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Ik=(()=>{class n{_contentObserver=R(Ak);_elementRef=R(Te);event=new ce;get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._disabled?this._unsubscribe():this._subscribe()}_disabled=!1;get debounce(){return this._debounce}set debounce(e){this._debounce=kr(e),this._subscribe()}_debounce;_currentSubscription=null;constructor(){}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();let e=this._contentObserver.observe(this._elementRef);this._currentSubscription=(this.debounce?e.pipe(Ii(this.debounce)):e).subscribe(this.event)}_unsubscribe(){this._currentSubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdkObserveContent",""]],inputs:{disabled:[2,"cdkObserveContentDisabled","disabled",_e],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]})}return n})(),dm=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({providers:[Ek]})}return n})();var t3=(()=>{class n{_platform=R(st);constructor(){}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return n3(e)&&getComputedStyle(e).visibility==="visible"}isTabbable(e){if(!this._platform.isBrowser)return!1;let i=i3(d3(e));if(i&&(Dk(i)===-1||!this.isVisible(i)))return!1;let r=e.nodeName.toLowerCase(),s=Dk(e);return e.hasAttribute("contenteditable")?s!==-1:r==="iframe"||r==="object"||this._platform.WEBKIT&&this._platform.IOS&&!c3(e)?!1:r==="audio"?e.hasAttribute("controls")?s!==-1:!1:r==="video"?s===-1?!1:s!==null?!0:this._platform.FIREFOX||e.hasAttribute("controls"):e.tabIndex>=0}isFocusable(e,i){return u3(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function i3(n){try{return n.frameElement}catch{return null}}function n3(n){return!!(n.offsetWidth||n.offsetHeight||typeof n.getClientRects=="function"&&n.getClientRects().length)}function r3(n){let t=n.nodeName.toLowerCase();return t==="input"||t==="select"||t==="button"||t==="textarea"}function s3(n){return o3(n)&&n.type=="hidden"}function a3(n){return l3(n)&&n.hasAttribute("href")}function o3(n){return n.nodeName.toLowerCase()=="input"}function l3(n){return n.nodeName.toLowerCase()=="a"}function Ok(n){if(!n.hasAttribute("tabindex")||n.tabIndex===void 0)return!1;let t=n.getAttribute("tabindex");return!!(t&&!isNaN(parseInt(t,10)))}function Dk(n){if(!Ok(n))return null;let t=parseInt(n.getAttribute("tabindex")||"",10);return isNaN(t)?-1:t}function c3(n){let t=n.nodeName.toLowerCase(),e=t==="input"&&n.type;return e==="text"||e==="password"||t==="select"||t==="textarea"}function u3(n){return s3(n)?!1:r3(n)||a3(n)||n.hasAttribute("contenteditable")||Ok(n)}function d3(n){return n.ownerDocument&&n.ownerDocument.defaultView||window}var S_=class{_element;_checker;_ngZone;_document;_injector;_startAnchor;_endAnchor;_hasAttached=!1;startAnchorListener=()=>this.focusLastTabbableElement();endAnchorListener=()=>this.focusFirstTabbableElement();get enabled(){return this._enabled}set enabled(t){this._enabled=t,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}_enabled=!0;constructor(t,e,i,r,s=!1,a){this._element=t,this._checker=e,this._ngZone=i,this._document=r,this._injector=a,s||this.attachAnchors()}destroy(){let t=this._startAnchor,e=this._endAnchor;t&&(t.removeEventListener("focus",this.startAnchorListener),t.remove()),e&&(e.removeEventListener("focus",this.endAnchorListener),e.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return this._hasAttached?!0:(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(t)))})}focusFirstTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(t)))})}focusLastTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(t)))})}_getRegionBoundary(t){let e=this._element.querySelectorAll(`[cdk-focus-region-${t}], [cdkFocusRegion${t}], [cdk-focus-${t}]`);return t=="start"?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(t){let e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(e){if(!this._checker.isFocusable(e)){let i=this._getFirstTabbableElement(e);return i?.focus(t),!!i}return e.focus(t),!0}return this.focusFirstTabbableElement(t)}focusFirstTabbableElement(t){let e=this._getRegionBoundary("start");return e&&e.focus(t),!!e}focusLastTabbableElement(t){let e=this._getRegionBoundary("end");return e&&e.focus(t),!!e}hasAttached(){return this._hasAttached}_getFirstTabbableElement(t){if(this._checker.isFocusable(t)&&this._checker.isTabbable(t))return t;let e=t.children;for(let i=0;i=0;i--){let r=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(r)return r}return null}_createAnchor(){let t=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,t),t.classList.add("cdk-visually-hidden"),t.classList.add("cdk-focus-trap-anchor"),t.setAttribute("aria-hidden","true"),t}_toggleAnchorTabIndex(t,e){t?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(t){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}_executeOnStable(t){this._injector?Yt(t,{injector:this._injector}):setTimeout(t)}},Nk=(()=>{class n{_checker=R(t3);_ngZone=R(De);_document=R(Ze);_injector=R(ut);constructor(){R(pt).load(Mr)}create(e,i=!1){return new S_(e,this._checker,this._ngZone,this._document,i,this._injector)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),k_=(()=>{class n{_elementRef=R(Te);_focusTrapFactory=R(Nk);focusTrap;_previouslyFocusedElement=null;get enabled(){return this.focusTrap?.enabled||!1}set enabled(e){this.focusTrap&&(this.focusTrap.enabled=e)}autoCapture;constructor(){R(st).isBrowser&&(this.focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement,!0))}ngOnDestroy(){this.focusTrap?.destroy(),this._previouslyFocusedElement&&(this._previouslyFocusedElement.focus(),this._previouslyFocusedElement=null)}ngAfterContentInit(){this.focusTrap?.attachAnchors(),this.autoCapture&&this._captureFocus()}ngDoCheck(){this.focusTrap&&!this.focusTrap.hasAttached()&&this.focusTrap.attachAnchors()}ngOnChanges(e){let i=e.autoCapture;i&&!i.firstChange&&this.autoCapture&&this.focusTrap?.hasAttached()&&this._captureFocus()}_captureFocus(){this._previouslyFocusedElement=Qc(),this.focusTrap?.focusInitialElementWhenReady()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdkTrapFocus",""]],inputs:{enabled:[2,"cdkTrapFocus","enabled",_e],autoCapture:[2,"cdkTrapFocusAutoCapture","autoCapture",_e]},exportAs:["cdkTrapFocus"],features:[mt]})}return n})(),Fk=new J("liveAnnouncerElement",{providedIn:"root",factory:Pk});function Pk(){return null}var Uk=new J("LIVE_ANNOUNCER_DEFAULT_OPTIONS"),h3=0,M_=(()=>{class n{_ngZone=R(De);_defaultOptions=R(Uk,{optional:!0});_liveElement;_document=R(Ze);_previousTimeout;_currentPromise;_currentResolve;constructor(){let e=R(Fk,{optional:!0});this._liveElement=e||this._createLiveElement()}announce(e,...i){let r=this._defaultOptions,s,a;return i.length===1&&typeof i[0]=="number"?a=i[0]:[s,a]=i,this.clear(),clearTimeout(this._previousTimeout),s||(s=r&&r.politeness?r.politeness:"polite"),a==null&&r&&(a=r.duration),this._liveElement.setAttribute("aria-live",s),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(o=>this._currentResolve=o)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=e,typeof a=="number"&&(this._previousTimeout=setTimeout(()=>this.clear(),a)),this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){let e="cdk-live-announcer-element",i=this._document.getElementsByClassName(e),r=this._document.createElement("div");for(let s=0;s .cdk-overlay-container [aria-modal="true"]');for(let r=0;r{class n{_platform=R(st);_hasCheckedHighContrastMode;_document=R(Ze);_breakpointSubscription;constructor(){this._breakpointSubscription=R(Tk).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return Qs.NONE;let e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);let i=this._document.defaultView||window,r=i&&i.getComputedStyle?i.getComputedStyle(e):null,s=(r&&r.backgroundColor||"").replace(/ /g,"");switch(e.remove(),s){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return Qs.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return Qs.BLACK_ON_WHITE}return Qs.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){let e=this._document.body.classList;e.remove(x_,Rk,Lk),this._hasCheckedHighContrastMode=!0;let i=this.getHighContrastMode();i===Qs.BLACK_ON_WHITE?e.add(x_,Rk):i===Qs.WHITE_ON_BLACK&&e.add(x_,Lk)}}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),eu=(()=>{class n{constructor(){R(hm)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[dm]})}return n})();var T_={},At=(()=>{class n{_appId=R(lh);getId(e){return this._appId!=="ng"&&(e+=this._appId),T_.hasOwnProperty(e)||(T_[e]=0),`${e}${T_[e]++}`}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var m3=200,mm=class{_letterKeyStream=new ue;_items=[];_selectedItemIndex=-1;_pressedLetters=[];_skipPredicateFn;_selectedItem=new ue;selectedItem=this._selectedItem;constructor(t,e){let i=typeof e?.debounceInterval=="number"?e.debounceInterval:m3;e?.skipPredicate&&(this._skipPredicateFn=e.skipPredicate),this.setItems(t),this._setupKeyHandler(i)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(t){this._selectedItemIndex=t}setItems(t){this._items=t}handleKey(t){let e=t.keyCode;t.key&&t.key.length===1?this._letterKeyStream.next(t.key.toLocaleUpperCase()):(e>=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(t){this._letterKeyStream.pipe(kt(e=>this._pressedLetters.push(e)),Ii(t),it(()=>this._pressedLetters.length>0),Ne(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(e=>{for(let i=1;in[e]):n.altKey||n.shiftKey||n.ctrlKey||n.metaKey}var al=class{_items;_activeItemIndex=-1;_activeItem=Di(null);_wrap=!1;_typeaheadSubscription=St.EMPTY;_itemChangesSubscription;_vertical=!0;_horizontal;_allowedModifierKeys=[];_homeAndEnd=!1;_pageUpAndDown={enabled:!1,delta:10};_effectRef;_typeahead;_skipPredicateFn=t=>t.disabled;constructor(t,e){this._items=t,t instanceof Do?this._itemChangesSubscription=t.changes.subscribe(i=>this._itemsChanged(i.toArray())):ka(t)&&(this._effectRef=gh(()=>this._itemsChanged(t()),{injector:e}))}tabOut=new ue;change=new ue;skipPredicate(t){return this._skipPredicateFn=t,this}withWrap(t=!0){return this._wrap=t,this}withVerticalOrientation(t=!0){return this._vertical=t,this}withHorizontalOrientation(t){return this._horizontal=t,this}withAllowedModifierKeys(t){return this._allowedModifierKeys=t,this}withTypeAhead(t=200){this._typeaheadSubscription.unsubscribe();let e=this._getItemsArray();return this._typeahead=new mm(e,{debounceInterval:typeof t=="number"?t:void 0,skipPredicate:i=>this._skipPredicateFn(i)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(i=>{this.setActiveItem(i)}),this}cancelTypeahead(){return this._typeahead?.reset(),this}withHomeAndEnd(t=!0){return this._homeAndEnd=t,this}withPageUpDown(t=!0,e=10){return this._pageUpAndDown={enabled:t,delta:e},this}setActiveItem(t){let e=this._activeItem();this.updateActiveItem(t),this._activeItem()!==e&&this.change.next(this._activeItemIndex)}onKeydown(t){let e=t.keyCode,r=["altKey","ctrlKey","metaKey","shiftKey"].every(s=>!t[s]||this._allowedModifierKeys.indexOf(s)>-1);switch(e){case 9:this.tabOut.next();return;case 40:if(this._vertical&&r){this.setNextItemActive();break}else return;case 38:if(this._vertical&&r){this.setPreviousItemActive();break}else return;case 39:if(this._horizontal&&r){this._horizontal==="rtl"?this.setPreviousItemActive():this.setNextItemActive();break}else return;case 37:if(this._horizontal&&r){this._horizontal==="rtl"?this.setNextItemActive():this.setPreviousItemActive();break}else return;case 36:if(this._homeAndEnd&&r){this.setFirstItemActive();break}else return;case 35:if(this._homeAndEnd&&r){this.setLastItemActive();break}else return;case 33:if(this._pageUpAndDown.enabled&&r){let s=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(s>0?s:0,1);break}else return;case 34:if(this._pageUpAndDown.enabled&&r){let s=this._activeItemIndex+this._pageUpAndDown.delta,a=this._getItemsArray().length;this._setActiveItemByIndex(s-1&&i!==this._activeItemIndex&&(this._activeItemIndex=i,this._typeahead?.setCurrentSelectedItemIndex(i))}}};var tu=class extends al{setActiveItem(t){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(t),this.activeItem&&this.activeItem.setActiveStyles()}};var cl=class extends al{_origin="program";setFocusOrigin(t){return this._origin=t,this}setActiveItem(t){super.setActiveItem(t),this.activeItem&&this.activeItem.focus(this._origin)}};var Bk=" ";function I_(n,t,e){let i=vm(n,t);e=e.trim(),!i.some(r=>r.trim()===e)&&(i.push(e),n.setAttribute(t,i.join(Bk)))}function ym(n,t,e){let i=vm(n,t);e=e.trim();let r=i.filter(s=>s!==e);r.length?n.setAttribute(t,r.join(Bk)):n.removeAttribute(t)}function vm(n,t){return n.getAttribute(t)?.match(/\S+/g)??[]}var zk="cdk-describedby-message",bm="cdk-describedby-host",A_=0,Hk=(()=>{class n{_platform=R(st);_document=R(Ze);_messageRegistry=new Map;_messagesContainer=null;_id=`${A_++}`;constructor(){R(pt).load(Mr),this._id=R(lh)+"-"+A_++}describe(e,i,r){if(!this._canBeDescribed(e,i))return;let s=E_(i,r);typeof i!="string"?(Vk(i,this._id),this._messageRegistry.set(s,{messageElement:i,referenceCount:0})):this._messageRegistry.has(s)||this._createMessageElement(i,r),this._isElementDescribedByMessage(e,s)||this._addMessageReference(e,s)}removeDescription(e,i,r){if(!i||!this._isElementNode(e))return;let s=E_(i,r);if(this._isElementDescribedByMessage(e,s)&&this._removeMessageReference(e,s),typeof i=="string"){let a=this._messageRegistry.get(s);a&&a.referenceCount===0&&this._deleteMessageElement(s)}this._messagesContainer?.childNodes.length===0&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){let e=this._document.querySelectorAll(`[${bm}="${this._id}"]`);for(let i=0;ir.indexOf(zk)!=0);e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){let r=this._messageRegistry.get(i);I_(e,"aria-describedby",r.messageElement.id),e.setAttribute(bm,this._id),r.referenceCount++}_removeMessageReference(e,i){let r=this._messageRegistry.get(i);r.referenceCount--,ym(e,"aria-describedby",r.messageElement.id),e.removeAttribute(bm)}_isElementDescribedByMessage(e,i){let r=vm(e,"aria-describedby"),s=this._messageRegistry.get(i),a=s&&s.messageElement.id;return!!a&&r.indexOf(a)!=-1}_canBeDescribed(e,i){if(!this._isElementNode(e))return!1;if(i&&typeof i=="object")return!0;let r=i==null?"":`${i}`.trim(),s=e.getAttribute("aria-label");return r?!s||s.trim()!==r:!1}_isElementNode(e){return e.nodeType===this._document.ELEMENT_NODE}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function E_(n,t){return typeof n=="string"?`${t||""}/${n}`:n}function Vk(n,t){n.id||(n.id=`${zk}-${t}-${A_++}`)}var f3=new J("cdk-dir-doc",{providedIn:"root",factory:p3});function p3(){return R(Ze)}var g3=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;function jk(n){let t=n?.toLowerCase()||"";return t==="auto"&&typeof navigator<"u"&&navigator?.language?g3.test(navigator.language)?"rtl":"ltr":t==="rtl"?"rtl":"ltr"}var ti=(()=>{class n{value="ltr";change=new ce;constructor(){let e=R(f3,{optional:!0});if(e){let i=e.body?e.body.dir:null,r=e.documentElement?e.documentElement.dir:null;this.value=jk(i||r||"ltr")}}ngOnDestroy(){this.change.complete()}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Zs=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({})}return n})();var Oe=(()=>{class n{constructor(){R(hm)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Zs,Zs]})}return n})();var _3=["*"],b3=new J("MAT_ICON_DEFAULT_OPTIONS"),v3=new J("mat-icon-location",{providedIn:"root",factory:y3});function y3(){let n=R(Ze),t=n?n.location:null;return{getPathname:()=>t?t.pathname+t.search:""}}var Wk=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],C3=Wk.map(n=>`[${n}]`).join(", "),w3=/^url\(['"]?#(.*?)['"]?\)$/,Rn=(()=>{class n{_elementRef=R(Te);_iconRegistry=R(gk);_location=R(v3);_errorHandler=R(Cc);_defaultColor;get color(){return this._color||this._defaultColor}set color(e){this._color=e}_color;inline=!1;get svgIcon(){return this._svgIcon}set svgIcon(e){e!==this._svgIcon&&(e?this._updateSvgIcon(e):this._svgIcon&&this._clearSvgElement(),this._svgIcon=e)}_svgIcon;get fontSet(){return this._fontSet}set fontSet(e){let i=this._cleanupFontValue(e);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}_fontSet;get fontIcon(){return this._fontIcon}set fontIcon(e){let i=this._cleanupFontValue(e);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}_fontIcon;_previousFontSetClass=[];_previousFontIconClass;_svgName;_svgNamespace;_previousPath;_elementsWithExternalReferences;_currentIconFetch=St.EMPTY;constructor(){let e=R(new un("aria-hidden"),{optional:!0}),i=R(b3,{optional:!0});i&&(i.color&&(this.color=this._defaultColor=i.color),i.fontSet&&(this.fontSet=i.fontSet)),e||this._elementRef.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(e){if(!e)return["",""];let i=e.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${e}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){let e=this._elementsWithExternalReferences;if(e&&e.size){let i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(e){this._clearSvgElement();let i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(e),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(e)}_clearSvgElement(){let e=this._elementRef.nativeElement,i=e.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){let r=e.childNodes[i];(r.nodeType!==1||r.nodeName.toLowerCase()==="svg")&&r.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;let e=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(r=>r.length>0);this._previousFontSetClass.forEach(r=>e.classList.remove(r)),i.forEach(r=>e.classList.add(r)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&e.classList.remove(this._previousFontIconClass),this.fontIcon&&e.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(e){return typeof e=="string"?e.trim().split(" ")[0]:e}_prependPathToReferences(e){let i=this._elementsWithExternalReferences;i&&i.forEach((r,s)=>{r.forEach(a=>{s.setAttribute(a.name,`url('${e}#${a.value}')`)})})}_cacheChildrenWithExternalReferences(e){let i=e.querySelectorAll(C3),r=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let s=0;s{let o=i[s],l=o.getAttribute(a),c=l?l.match(w3):null;if(c){let u=r.get(o);u||(u=[],r.set(o,u)),u.push({name:a,value:c[1]})}})}_updateSvgIcon(e){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),e){let[i,r]=this._splitIconName(e);i&&(this._svgNamespace=i),r&&(this._svgName=r),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(r,i).pipe(Vt(1)).subscribe(s=>this._setSvgElement(s),s=>{let a=`Error retrieving icon ${i}:${r}! ${s.message}`;this._errorHandler.handleError(new Error(a))})}}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:10,hostBindings:function(i,r){i&2&&(Se("data-mat-icon-type",r._usingFontIcon()?"font":"svg")("data-mat-icon-name",r._svgName||r.fontIcon)("data-mat-icon-namespace",r._svgNamespace||r.fontSet)("fontIcon",r._usingFontIcon()?r.fontIcon:null),ft(r.color?"mat-"+r.color:""),ye("mat-icon-inline",r.inline)("mat-icon-no-color",r.color!=="primary"&&r.color!=="accent"&&r.color!=="warn"))},inputs:{color:"color",inline:[2,"inline","inline",_e],svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],ngContentSelectors:_3,decls:1,vars:0,template:function(i,r){i&1&&(Qe(),Fe(0))},styles:[`mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color, inherit)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto} +`],encapsulation:2,changeDetection:0})}return n})(),iu=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,Oe]})}return n})();var qk=(()=>{class n{constructor(e,i,r){if(this.translateService=e,this.fhirConfigService=i,this.hashUrlRedirectionService=r,this.version=window.MATCHBOX_VERSION,r.isHashUrl()&&r.redirectHashUrl(),e.setDefaultLang("de"),e.use(e.getBrowserLang()),location.origin==="http://localhost:4200")console.log("note: using local dev mag system for "+location.origin),i.changeFhirMicroService("http://localhost:8080/matchboxv3/fhir");else{let a=window.MATCHBOX_BASE_PATH+"/fhir";i.changeFhirMicroService(a),console.log("fhir endpoint "+a)}}static{this.\u0275fac=function(i){return new(i||n)(Ae(Gc),Ae(Dn),Ae(am))}}static{this.\u0275cmp=le({type:n,selectors:[["app-root"]],standalone:!1,decls:43,vars:1,consts:[["routerLink","/",1,"logo-container"],["alt","Matchbox logo","height","40","src","assets/matchbox_logo_color.png","width","95"],[1,"version"],["routerLink","/"],["routerLink","/CapabilityStatement"],["routerLink","/igs"],["routerLink","/mappinglanguage"],["routerLink","/transform"],["routerLink","/validate"],["routerLink","/settings"],[1,"mat-typography"]],template:function(i,r){i&1&&(P(0,"header")(1,"div",0),te(2,"img",1),P(3,"span",2),B(4),U()(),P(5,"nav")(6,"div",3)(7,"mat-icon"),B(8,"home"),U(),P(9,"span"),B(10,"Home"),U()(),P(11,"div",4)(12,"mat-icon"),B(13,"info"),U(),P(14,"span"),B(15,"CapabilityStatement"),U()(),P(16,"div",5)(17,"mat-icon"),B(18,"info"),U(),P(19,"span"),B(20,"IGs"),U()(),P(21,"div",6)(22,"mat-icon"),B(23,"search"),U(),P(24,"span"),B(25,"FHIR Mapping"),U()(),P(26,"div",7)(27,"mat-icon"),B(28,"transform"),U(),P(29,"span"),B(30,"Transform"),U()(),P(31,"div",8)(32,"mat-icon"),B(33,"rule"),U(),P(34,"span"),B(35,"Validate"),U()(),P(36,"div",9)(37,"mat-icon"),B(38,"settings"),U(),P(39,"span"),B(40,"Settings"),U()()()(),P(41,"main",10),te(42,"router-outlet"),U()),i&2&&($(4),je("v",r.version,""))},dependencies:[Rn,Bc,Yo],styles:[".example-fill-remaining-space[_ngcontent-%COMP%]{flex:1 1 auto}mat-toolbar[_ngcontent-%COMP%]{padding-left:0}mat-toolbar[_ngcontent-%COMP%] .home-link[_ngcontent-%COMP%]{height:100%;display:flex;justify-content:center;align-items:center;cursor:pointer}mat-toolbar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%]{display:flex;height:100%;width:160px;justify-content:center;align-items:center}mat-toolbar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:calc(100% - 1.2em)}header[_ngcontent-%COMP%]{background:#97d6ba;display:flex;flex-wrap:wrap;flex:0 1 auto;padding:10px 2em;justify-content:space-between}header[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%]{display:inline-block}header[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%] .version[_ngcontent-%COMP%]{color:#2e7d73;font-size:.9em;display:inline-block;margin:4px 0 0 10px;vertical-align:top}header[_ngcontent-%COMP%] nav[_ngcontent-%COMP%]{display:flex;margin-top:10px}header[_ngcontent-%COMP%] nav[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:inline-block;margin:0 1rem;cursor:pointer;color:#3d5c73}header[_ngcontent-%COMP%] nav[_ngcontent-%COMP%] div[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:8px;vertical-align:middle;color:#d2eade}main[_ngcontent-%COMP%]{width:100%;margin:0 auto}@media (max-width: 1140px){header[_ngcontent-%COMP%] nav[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{margin:0 7px}header[_ngcontent-%COMP%] nav[_ngcontent-%COMP%] div[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:4px;font-size:18px;width:18px;height:18px}}"]})}}return n})();var wM=Os(D_()),FX=Os(Yk()),PX=Os(Zk());var Ut=class n{constructor(t,e){this.operationOutcome=e,this.issues=t??[]}static fromOperationOutcome(t){let e=t.issue?.map(i=>Sm.fromOoIssue(i));return new n(e,t)}static fromMatchboxError(t){let e=new n;return e.issues.push(new Sm("fatal","matchbox",t,void 0,void 0,void 0,void 0)),e}},Sm=class n{constructor(t,e,i,r,s,a,o,l,c){this.sliceInfo=[],this.severity=t,this.code=e,this.text=i,this.expression=r,this.line=s,this.col=a,this.sliceInfo=o??[],this.markdown=l,this.details=c,l&&this.text.includes("```markdown")&&(this.text=this.text.substring(11,this.text.length-3))}static fromOoIssue(t){let e;t.expression&&t.expression.length?e=t.expression[0]:t.location&&t.location.length&&(e=t.location[0]);let i=t.diagnostics?.indexOf("Slice info: 1.)"),r,s=null;i>=0?(r=t.diagnostics.substring(0,i).trimEnd(),s=t.diagnostics.substring(i+15).trimStart().split(/\d+[.][)]/)):r=t.diagnostics;let a=n.getExtensionStringValue(t,"http://hl7.org/fhir/StructureDefinition/rendering-style")=="markdown",o=t.details?t.details.text:void 0;return new n(t.severity,t.code,r,e,n.getLineNo(t),n.getColNo(t),s,a,o)}static getLineNo(t){let e=n.getExtensionIntValue(t,"http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line");return e&&e>0?e:void 0}static getColNo(t){let e=n.getExtensionIntValue(t,"http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col");return e&&e>0?e:void 0}static getExtensionIntValue(t,e){if(t.extension){for(let i of t.extension)if(i.url===e)return i.valueInteger}}static getExtensionStringValue(t,e){if(t.extension){for(let i of t.extension)if(i.url===e)return i.valueString}}};var x3=["determinateSpinner"];function S3(n,t){if(n&1&&(Ht(),P(0,"svg",11),te(1,"circle",12),U()),n&2){let e=Y();Se("viewBox",e._viewBox()),$(),Jt("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),Se("r",e._circleRadius())}}var k3=new J("mat-progress-spinner-default-options",{providedIn:"root",factory:M3});function M3(){return{diameter:Xk}}var Xk=100,T3=10,Xs=(()=>{class n{_elementRef=R(Te);_noopAnimations;get color(){return this._color||this._defaultColor}set color(e){this._color=e}_color;_defaultColor="primary";_determinateCircle;constructor(){let e=R(ot,{optional:!0}),i=R(k3);this._noopAnimations=e==="NoopAnimations"&&!!i&&!i._forceAnimations,this.mode=this._elementRef.nativeElement.nodeName.toLowerCase()==="mat-spinner"?"indeterminate":"determinate",i&&(i.color&&(this.color=this._defaultColor=i.color),i.diameter&&(this.diameter=i.diameter),i.strokeWidth&&(this.strokeWidth=i.strokeWidth))}mode;get value(){return this.mode==="determinate"?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,e||0))}_value=0;get diameter(){return this._diameter}set diameter(e){this._diameter=e||0}_diameter=Xk;get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=e||0}_strokeWidth;_circleRadius(){return(this.diameter-T3)/2}_viewBox(){let e=this._circleRadius()*2+this.strokeWidth;return`0 0 ${e} ${e}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return this.mode==="determinate"?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(i,r){if(i&1&&Pe(x3,5),i&2){let s;ke(s=Me())&&(r._determinateCircle=s.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(i,r){i&2&&(Se("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow",r.mode==="determinate"?r.value:null)("mode",r.mode),ft("mat-"+r.color),Jt("width",r.diameter,"px")("height",r.diameter,"px")("--mdc-circular-progress-size",r.diameter+"px")("--mdc-circular-progress-active-indicator-width",r.diameter+"px"),ye("_mat-animation-noopable",r._noopAnimations)("mdc-circular-progress--indeterminate",r.mode==="indeterminate"))},inputs:{color:"color",mode:"mode",value:[2,"value","value",Ft],diameter:[2,"diameter","diameter",Ft],strokeWidth:[2,"strokeWidth","strokeWidth",Ft]},exportAs:["matProgressSpinner"],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(i,r){if(i&1&&(oe(0,S3,2,8,"ng-template",null,0,Ma),P(2,"div",2,1),Ht(),P(4,"svg",3),te(5,"circle",4),U()(),Xr(),P(6,"div",5)(7,"div",6)(8,"div",7),Ro(9,8),U(),P(10,"div",9),Ro(11,8),U(),P(12,"div",10),Ro(13,8),U()()()),i&2){let s=jt(1);$(4),Se("viewBox",r._viewBox()),$(),Jt("stroke-dasharray",r._strokeCircumference(),"px")("stroke-dashoffset",r._strokeDashOffset(),"px")("stroke-width",r._circleStrokeWidth(),"%"),Se("r",r._circleRadius()),$(4),j("ngTemplateOutlet",s),$(2),j("ngTemplateOutlet",s),$(2),j("ngTemplateOutlet",s)}},dependencies:[bh],styles:[`.mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width, 4px)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color, var(--mat-sys-primary))}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}} +`],encapsulation:2,changeDetection:0})}return n})();var nu=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe]})}return n})();function N_(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var za=N_();function rM(n){za=n}var au={exec:()=>null};function wt(n,t=""){let e=typeof n=="string"?n:n.source,i={replace:(r,s)=>{let a=typeof s=="string"?s:s.source;return a=a.replace(Ni.caret,"$1"),e=e.replace(r,a),i},getRegex:()=>new RegExp(e,t)};return i}var Ni={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:n=>new RegExp(`^( {0,3}${n})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}#`),htmlBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}<(?:[a-z].*>|!--)`,"i")},E3=/^(?:[ \t]*(?:\n|$))+/,A3=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,I3=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,ou=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,D3=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,F_=/(?:[*+-]|\d{1,9}[.)])/,sM=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,aM=wt(sM).replace(/bull/g,F_).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),R3=wt(sM).replace(/bull/g,F_).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),P_=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,L3=/^[^\n]+/,U_=/(?!\s*\])(?:\\.|[^\[\]\\])+/,O3=wt(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",U_).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),N3=wt(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,F_).getRegex(),Im="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",$_=/|$))/,F3=wt("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",$_).replace("tag",Im).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),oM=wt(P_).replace("hr",ou).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Im).getRegex(),P3=wt(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",oM).getRegex(),V_={blockquote:P3,code:A3,def:O3,fences:I3,heading:D3,hr:ou,html:F3,lheading:aM,list:N3,newline:E3,paragraph:oM,table:au,text:L3},Jk=wt("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",ou).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Im).getRegex(),U3=Le(H({},V_),{lheading:R3,table:Jk,paragraph:wt(P_).replace("hr",ou).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Jk).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Im).getRegex()}),$3=Le(H({},V_),{html:wt(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",$_).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:au,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:wt(P_).replace("hr",ou).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",aM).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()}),V3=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,B3=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,lM=/^( {2,}|\\)\n(?!\s*$)/,z3=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,dM=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,G3=wt(dM,"u").replace(/punct/g,Dm).getRegex(),K3=wt(dM,"u").replace(/punct/g,uM).getRegex(),hM="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Y3=wt(hM,"gu").replace(/notPunctSpace/g,cM).replace(/punctSpace/g,B_).replace(/punct/g,Dm).getRegex(),Q3=wt(hM,"gu").replace(/notPunctSpace/g,W3).replace(/punctSpace/g,j3).replace(/punct/g,uM).getRegex(),Z3=wt("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,cM).replace(/punctSpace/g,B_).replace(/punct/g,Dm).getRegex(),X3=wt(/\\(punct)/,"gu").replace(/punct/g,Dm).getRegex(),J3=wt(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),eU=wt($_).replace("(?:-->|$)","-->").getRegex(),tU=wt("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",eU).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Em=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,iU=wt(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",Em).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),mM=wt(/^!?\[(label)\]\[(ref)\]/).replace("label",Em).replace("ref",U_).getRegex(),fM=wt(/^!?\[(ref)\](?:\[\])?/).replace("ref",U_).getRegex(),nU=wt("reflink|nolink(?!\\()","g").replace("reflink",mM).replace("nolink",fM).getRegex(),z_={_backpedal:au,anyPunctuation:X3,autolink:J3,blockSkip:q3,br:lM,code:B3,del:au,emStrongLDelim:G3,emStrongRDelimAst:Y3,emStrongRDelimUnd:Z3,escape:V3,link:iU,nolink:fM,punctuation:H3,reflink:mM,reflinkSearch:nU,tag:tU,text:z3,url:au},rU=Le(H({},z_),{link:wt(/^!?\[(label)\]\((.*?)\)/).replace("label",Em).getRegex(),reflink:wt(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Em).getRegex()}),R_=Le(H({},z_),{emStrongRDelimAst:Q3,emStrongLDelim:K3,url:wt(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},eM=n=>aU[n];function Tr(n,t){if(t){if(Ni.escapeTest.test(n))return n.replace(Ni.escapeReplace,eM)}else if(Ni.escapeTestNoEncode.test(n))return n.replace(Ni.escapeReplaceNoEncode,eM);return n}function tM(n){try{n=encodeURI(n).replace(Ni.percentDecode,"%")}catch{return null}return n}function iM(n,t){let e=n.replace(Ni.findPipe,(s,a,o)=>{let l=!1,c=a;for(;--c>=0&&o[c]==="\\";)l=!l;return l?"|":" |"}),i=e.split(Ni.splitPipe),r=0;if(i[0].trim()||i.shift(),i.length>0&&!i.at(-1)?.trim()&&i.pop(),t)if(i.length>t)i.splice(t);else for(;i.length0?-2:-1}function nM(n,t,e,i,r){let s=t.href,a=t.title||null,o=n[1].replace(r.other.outputLinkReplace,"$1");i.state.inLink=!0;let l={type:n[0].charAt(0)==="!"?"image":"link",raw:e,href:s,title:a,text:o,tokens:i.inlineTokens(o)};return i.state.inLink=!1,l}function lU(n,t,e){let i=n.match(e.other.indentCodeCompensation);if(i===null)return t;let r=i[1];return t.split(` +`).map(s=>{let a=s.match(e.other.beginningSpace);if(a===null)return s;let[o]=a;return o.length>=r.length?s.slice(r.length):s}).join(` +`)}var Am=class{options;rules;lexer;constructor(n){this.options=n||za}space(n){let t=this.rules.block.newline.exec(n);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(n){let t=this.rules.block.code.exec(n);if(t){let e=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:su(e,` +`)}}}fences(n){let t=this.rules.block.fences.exec(n);if(t){let e=t[0],i=lU(e,t[3]||"",this.rules);return{type:"code",raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:i}}}heading(n){let t=this.rules.block.heading.exec(n);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let i=su(e,"#");(this.options.pedantic||!i||this.rules.other.endingSpaceChar.test(i))&&(e=i.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(n){let t=this.rules.block.hr.exec(n);if(t)return{type:"hr",raw:su(t[0],` +`)}}blockquote(n){let t=this.rules.block.blockquote.exec(n);if(t){let e=su(t[0],` +`).split(` +`),i="",r="",s=[];for(;e.length>0;){let a=!1,o=[],l;for(l=0;l1,r={type:"list",raw:"",ordered:i,start:i?+e.slice(0,-1):"",loose:!1,items:[]};e=i?`\\d{1,9}\\${e.slice(-1)}`:`\\${e}`,this.options.pedantic&&(e=i?e:"[*+-]");let s=this.rules.other.listItemRegex(e),a=!1;for(;n;){let l=!1,c="",u="";if(!(t=s.exec(n))||this.rules.block.hr.test(n))break;c=t[0],n=n.substring(c.length);let d=t[2].split(` +`,1)[0].replace(this.rules.other.listReplaceTabs,y=>" ".repeat(3*y.length)),h=n.split(` +`,1)[0],m=!d.trim(),f=0;if(this.options.pedantic?(f=2,u=d.trimStart()):m?f=t[1].length+1:(f=t[2].search(this.rules.other.nonSpaceChar),f=f>4?1:f,u=d.slice(f),f+=t[1].length),m&&this.rules.other.blankLine.test(h)&&(c+=h+` +`,n=n.substring(h.length+1),l=!0),!l){let y=this.rules.other.nextBulletRegex(f),w=this.rules.other.hrRegex(f),k=this.rules.other.fencesBeginRegex(f),x=this.rules.other.headingBeginRegex(f),C=this.rules.other.htmlBeginRegex(f);for(;n;){let A=n.split(` +`,1)[0],T;if(h=A,this.options.pedantic?(h=h.replace(this.rules.other.listReplaceNesting," "),T=h):T=h.replace(this.rules.other.tabCharGlobal," "),k.test(h)||x.test(h)||C.test(h)||y.test(h)||w.test(h))break;if(T.search(this.rules.other.nonSpaceChar)>=f||!h.trim())u+=` +`+T.slice(f);else{if(m||d.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||k.test(d)||x.test(d)||w.test(d))break;u+=` +`+h}!m&&!h.trim()&&(m=!0),c+=A+` +`,n=n.substring(A.length+1),d=T.slice(f)}}r.loose||(a?r.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(a=!0));let p=null,g;this.options.gfm&&(p=this.rules.other.listIsTask.exec(u),p&&(g=p[0]!=="[ ] ",u=u.replace(this.rules.other.listReplaceTask,""))),r.items.push({type:"list_item",raw:c,task:!!p,checked:g,loose:!1,text:u,tokens:[]}),r.raw+=c}let o=r.items.at(-1);if(o)o.raw=o.raw.trimEnd(),o.text=o.text.trimEnd();else return;r.raw=r.raw.trimEnd();for(let l=0;ld.type==="space"),u=c.length>0&&c.some(d=>this.rules.other.anyLine.test(d.raw));r.loose=u}if(r.loose)for(let l=0;l({text:o,tokens:this.lexer.inline(o),header:!1,align:s.align[l]})));return s}}lheading(n){let t=this.rules.block.lheading.exec(n);if(t)return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(n){let t=this.rules.block.paragraph.exec(n);if(t){let e=t[1].charAt(t[1].length-1)===` +`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(n){let t=this.rules.block.text.exec(n);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(n){let t=this.rules.inline.escape.exec(n);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(n){let t=this.rules.inline.tag.exec(n);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(n){let t=this.rules.inline.link.exec(n);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let s=su(e.slice(0,-1),"\\");if((e.length-s.length)%2===0)return}else{let s=oU(t[2],"()");if(s===-2)return;if(s>-1){let o=(t[0].indexOf("!")===0?5:4)+t[1].length+s;t[2]=t[2].substring(0,s),t[0]=t[0].substring(0,o).trim(),t[3]=""}}let i=t[2],r="";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(i);s&&(i=s[1],r=s[3])}else r=t[3]?t[3].slice(1,-1):"";return i=i.trim(),this.rules.other.startAngleBracket.test(i)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?i=i.slice(1):i=i.slice(1,-1)),nM(t,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:r&&r.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(n,t){let e;if((e=this.rules.inline.reflink.exec(n))||(e=this.rules.inline.nolink.exec(n))){let i=(e[2]||e[1]).replace(this.rules.other.multipleSpaceGlobal," "),r=t[i.toLowerCase()];if(!r){let s=e[0].charAt(0);return{type:"text",raw:s,text:s}}return nM(e,r,e[0],this.lexer,this.rules)}}emStrong(n,t,e=""){let i=this.rules.inline.emStrongLDelim.exec(n);if(!i||i[3]&&e.match(this.rules.other.unicodeAlphaNumeric))return;if(!(i[1]||i[2]||"")||!e||this.rules.inline.punctuation.exec(e)){let s=[...i[0]].length-1,a,o,l=s,c=0,u=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(u.lastIndex=0,t=t.slice(-1*n.length+s);(i=u.exec(t))!=null;){if(a=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!a)continue;if(o=[...a].length,i[3]||i[4]){l+=o;continue}else if((i[5]||i[6])&&s%3&&!((s+o)%3)){c+=o;continue}if(l-=o,l>0)continue;o=Math.min(o,o+l+c);let d=[...i[0]][0].length,h=n.slice(0,s+i.index+d+o);if(Math.min(s,o)%2){let f=h.slice(1,-1);return{type:"em",raw:h,text:f,tokens:this.lexer.inlineTokens(f)}}let m=h.slice(2,-2);return{type:"strong",raw:h,text:m,tokens:this.lexer.inlineTokens(m)}}}}codespan(n){let t=this.rules.inline.code.exec(n);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal," "),i=this.rules.other.nonSpaceChar.test(e),r=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return i&&r&&(e=e.substring(1,e.length-1)),{type:"codespan",raw:t[0],text:e}}}br(n){let t=this.rules.inline.br.exec(n);if(t)return{type:"br",raw:t[0]}}del(n){let t=this.rules.inline.del.exec(n);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(n){let t=this.rules.inline.autolink.exec(n);if(t){let e,i;return t[2]==="@"?(e=t[1],i="mailto:"+e):(e=t[1],i=e),{type:"link",raw:t[0],text:e,href:i,tokens:[{type:"text",raw:e,text:e}]}}}url(n){let t;if(t=this.rules.inline.url.exec(n)){let e,i;if(t[2]==="@")e=t[0],i="mailto:"+e;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(r!==t[0]);e=t[0],t[1]==="www."?i="http://"+t[0]:i=t[0]}return{type:"link",raw:t[0],text:e,href:i,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(n){let t=this.rules.inline.text.exec(n);if(t){let e=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:e}}}},os=class L_{tokens;options;state;tokenizer;inlineQueue;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||za,this.options.tokenizer=this.options.tokenizer||new Am,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let e={other:Ni,block:Mm.normal,inline:ru.normal};this.options.pedantic?(e.block=Mm.pedantic,e.inline=ru.pedantic):this.options.gfm&&(e.block=Mm.gfm,this.options.breaks?e.inline=ru.breaks:e.inline=ru.gfm),this.tokenizer.rules=e}static get rules(){return{block:Mm,inline:ru}}static lex(t,e){return new L_(e).lex(t)}static lexInline(t,e){return new L_(e).inlineTokens(t)}lex(t){t=t.replace(Ni.carriageReturn,` +`),this.blockTokens(t,this.tokens);for(let e=0;e(r=a.call({lexer:this},t,e))?(t=t.substring(r.raw.length),e.push(r),!0):!1))continue;if(r=this.tokenizer.space(t)){t=t.substring(r.raw.length);let a=e.at(-1);r.raw.length===1&&a!==void 0?a.raw+=` +`:e.push(r);continue}if(r=this.tokenizer.code(t)){t=t.substring(r.raw.length);let a=e.at(-1);a?.type==="paragraph"||a?.type==="text"?(a.raw+=` +`+r.raw,a.text+=` +`+r.text,this.inlineQueue.at(-1).src=a.text):e.push(r);continue}if(r=this.tokenizer.fences(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.heading(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.hr(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.blockquote(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.list(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.html(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.def(t)){t=t.substring(r.raw.length);let a=e.at(-1);a?.type==="paragraph"||a?.type==="text"?(a.raw+=` +`+r.raw,a.text+=` +`+r.raw,this.inlineQueue.at(-1).src=a.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title});continue}if(r=this.tokenizer.table(t)){t=t.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.lheading(t)){t=t.substring(r.raw.length),e.push(r);continue}let s=t;if(this.options.extensions?.startBlock){let a=1/0,o=t.slice(1),l;this.options.extensions.startBlock.forEach(c=>{l=c.call({lexer:this},o),typeof l=="number"&&l>=0&&(a=Math.min(a,l))}),a<1/0&&a>=0&&(s=t.substring(0,a+1))}if(this.state.top&&(r=this.tokenizer.paragraph(s))){let a=e.at(-1);i&&a?.type==="paragraph"?(a.raw+=` +`+r.raw,a.text+=` +`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):e.push(r),i=s.length!==t.length,t=t.substring(r.raw.length);continue}if(r=this.tokenizer.text(t)){t=t.substring(r.raw.length);let a=e.at(-1);a?.type==="text"?(a.raw+=` +`+r.raw,a.text+=` +`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):e.push(r);continue}if(t){let a="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(a);break}else throw new Error(a)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(t,e=[]){let i=t,r=null;if(this.tokens.links){let o=Object.keys(this.tokens.links);if(o.length>0)for(;(r=this.tokenizer.rules.inline.reflinkSearch.exec(i))!=null;)o.includes(r[0].slice(r[0].lastIndexOf("[")+1,-1))&&(i=i.slice(0,r.index)+"["+"a".repeat(r[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(r=this.tokenizer.rules.inline.anyPunctuation.exec(i))!=null;)i=i.slice(0,r.index)+"++"+i.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(r=this.tokenizer.rules.inline.blockSkip.exec(i))!=null;)i=i.slice(0,r.index)+"["+"a".repeat(r[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);let s=!1,a="";for(;t;){s||(a=""),s=!1;let o;if(this.options.extensions?.inline?.some(c=>(o=c.call({lexer:this},t,e))?(t=t.substring(o.raw.length),e.push(o),!0):!1))continue;if(o=this.tokenizer.escape(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.tag(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.link(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(o.raw.length);let c=e.at(-1);o.type==="text"&&c?.type==="text"?(c.raw+=o.raw,c.text+=o.text):e.push(o);continue}if(o=this.tokenizer.emStrong(t,i,a)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.codespan(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.br(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.del(t)){t=t.substring(o.raw.length),e.push(o);continue}if(o=this.tokenizer.autolink(t)){t=t.substring(o.raw.length),e.push(o);continue}if(!this.state.inLink&&(o=this.tokenizer.url(t))){t=t.substring(o.raw.length),e.push(o);continue}let l=t;if(this.options.extensions?.startInline){let c=1/0,u=t.slice(1),d;this.options.extensions.startInline.forEach(h=>{d=h.call({lexer:this},u),typeof d=="number"&&d>=0&&(c=Math.min(c,d))}),c<1/0&&c>=0&&(l=t.substring(0,c+1))}if(o=this.tokenizer.inlineText(l)){t=t.substring(o.raw.length),o.raw.slice(-1)!=="_"&&(a=o.raw.slice(-1)),s=!0;let c=e.at(-1);c?.type==="text"?(c.raw+=o.raw,c.text+=o.text):e.push(o);continue}if(t){let c="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return e}},Js=class{options;parser;constructor(n){this.options=n||za}space(n){return""}code({text:n,lang:t,escaped:e}){let i=(t||"").match(Ni.notSpaceStart)?.[0],r=n.replace(Ni.endingNewline,"")+` +`;return i?'
    '+(e?r:Tr(r,!0))+`
    +`:"
    "+(e?r:Tr(r,!0))+`
    +`}blockquote({tokens:n}){return`
    +${this.parser.parse(n)}
    +`}html({text:n}){return n}heading({tokens:n,depth:t}){return`${this.parser.parseInline(n)} +`}hr(n){return`
    +`}list(n){let t=n.ordered,e=n.start,i="";for(let a=0;a +`+i+" +`}listitem(n){let t="";if(n.task){let e=this.checkbox({checked:!!n.checked});n.loose?n.tokens[0]?.type==="paragraph"?(n.tokens[0].text=e+" "+n.tokens[0].text,n.tokens[0].tokens&&n.tokens[0].tokens.length>0&&n.tokens[0].tokens[0].type==="text"&&(n.tokens[0].tokens[0].text=e+" "+Tr(n.tokens[0].tokens[0].text),n.tokens[0].tokens[0].escaped=!0)):n.tokens.unshift({type:"text",raw:e+" ",text:e+" ",escaped:!0}):t+=e+" "}return t+=this.parser.parse(n.tokens,!!n.loose),`
  • ${t}
  • +`}checkbox({checked:n}){return"'}paragraph({tokens:n}){return`

    ${this.parser.parseInline(n)}

    +`}table(n){let t="",e="";for(let r=0;r${i}`),` + +`+t+` +`+i+`
    +`}tablerow({text:n}){return` +${n} +`}tablecell(n){let t=this.parser.parseInline(n.tokens),e=n.header?"th":"td";return(n.align?`<${e} align="${n.align}">`:`<${e}>`)+t+` +`}strong({tokens:n}){return`${this.parser.parseInline(n)}`}em({tokens:n}){return`${this.parser.parseInline(n)}`}codespan({text:n}){return`${Tr(n,!0)}`}br(n){return"
    "}del({tokens:n}){return`${this.parser.parseInline(n)}`}link({href:n,title:t,tokens:e}){let i=this.parser.parseInline(e),r=tM(n);if(r===null)return i;n=r;let s='
    ",s}image({href:n,title:t,text:e,tokens:i}){i&&(e=this.parser.parseInline(i,this.parser.textRenderer));let r=tM(n);if(r===null)return Tr(e);n=r;let s=`${e}{let a=r[s].flat(1/0);e=e.concat(this.walkTokens(a,t))}):r.tokens&&(e=e.concat(this.walkTokens(r.tokens,t)))}}return e}use(...n){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return n.forEach(e=>{let i=H({},e);if(i.async=this.defaults.async||i.async||!1,e.extensions&&(e.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if("renderer"in r){let s=t.renderers[r.name];s?t.renderers[r.name]=function(...a){let o=r.renderer.apply(this,a);return o===!1&&(o=s.apply(this,a)),o}:t.renderers[r.name]=r.renderer}if("tokenizer"in r){if(!r.level||r.level!=="block"&&r.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=t[r.level];s?s.unshift(r.tokenizer):t[r.level]=[r.tokenizer],r.start&&(r.level==="block"?t.startBlock?t.startBlock.push(r.start):t.startBlock=[r.start]:r.level==="inline"&&(t.startInline?t.startInline.push(r.start):t.startInline=[r.start]))}"childTokens"in r&&r.childTokens&&(t.childTokens[r.name]=r.childTokens)}),i.extensions=t),e.renderer){let r=this.defaults.renderer||new Js(this.defaults);for(let s in e.renderer){if(!(s in r))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let a=s,o=e.renderer[a],l=r[a];r[a]=(...c)=>{let u=o.apply(r,c);return u===!1&&(u=l.apply(r,c)),u||""}}i.renderer=r}if(e.tokenizer){let r=this.defaults.tokenizer||new Am(this.defaults);for(let s in e.tokenizer){if(!(s in r))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let a=s,o=e.tokenizer[a],l=r[a];r[a]=(...c)=>{let u=o.apply(r,c);return u===!1&&(u=l.apply(r,c)),u}}i.tokenizer=r}if(e.hooks){let r=this.defaults.hooks||new Tm;for(let s in e.hooks){if(!(s in r))throw new Error(`hook '${s}' does not exist`);if(["options","block"].includes(s))continue;let a=s,o=e.hooks[a],l=r[a];Tm.passThroughHooks.has(s)?r[a]=c=>{if(this.defaults.async)return Promise.resolve(o.call(r,c)).then(d=>l.call(r,d));let u=o.call(r,c);return l.call(r,u)}:r[a]=(...c)=>{let u=o.apply(r,c);return u===!1&&(u=l.apply(r,c)),u}}i.hooks=r}if(e.walkTokens){let r=this.defaults.walkTokens,s=e.walkTokens;i.walkTokens=function(a){let o=[];return o.push(s.call(this,a)),r&&(o=o.concat(r.call(this,a))),o}}this.defaults=H(H({},this.defaults),i)}),this}setOptions(n){return this.defaults=H(H({},this.defaults),n),this}lexer(n,t){return os.lex(n,t??this.defaults)}parser(n,t){return ls.parse(n,t??this.defaults)}parseMarkdown(n){return(e,i)=>{let r=H({},i),s=H(H({},this.defaults),r),a=this.onError(!!s.silent,!!s.async);if(this.defaults.async===!0&&r.async===!1)return a(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return a(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return a(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));s.hooks&&(s.hooks.options=s,s.hooks.block=n);let o=s.hooks?s.hooks.provideLexer():n?os.lex:os.lexInline,l=s.hooks?s.hooks.provideParser():n?ls.parse:ls.parseInline;if(s.async)return Promise.resolve(s.hooks?s.hooks.preprocess(e):e).then(c=>o(c,s)).then(c=>s.hooks?s.hooks.processAllTokens(c):c).then(c=>s.walkTokens?Promise.all(this.walkTokens(c,s.walkTokens)).then(()=>c):c).then(c=>l(c,s)).then(c=>s.hooks?s.hooks.postprocess(c):c).catch(a);try{s.hooks&&(e=s.hooks.preprocess(e));let c=o(e,s);s.hooks&&(c=s.hooks.processAllTokens(c)),s.walkTokens&&this.walkTokens(c,s.walkTokens);let u=l(c,s);return s.hooks&&(u=s.hooks.postprocess(u)),u}catch(c){return a(c)}}}onError(n,t){return e=>{if(e.message+=` +Please report this to https://github.com/markedjs/marked.`,n){let i="

    An error occurred:

    "+Tr(e.message+"",!0)+"
    ";return t?Promise.resolve(i):i}if(t)return Promise.reject(e);throw e}}},Ba=new cU;function dt(n,t){return Ba.parse(n,t)}dt.options=dt.setOptions=function(n){return Ba.setOptions(n),dt.defaults=Ba.defaults,rM(dt.defaults),dt};dt.getDefaults=N_;dt.defaults=za;dt.use=function(...n){return Ba.use(...n),dt.defaults=Ba.defaults,rM(dt.defaults),dt};dt.walkTokens=function(n,t){return Ba.walkTokens(n,t)};dt.parseInline=Ba.parseInline;dt.Parser=ls;dt.parser=ls.parse;dt.Renderer=Js;dt.TextRenderer=H_;dt.Lexer=os;dt.lexer=os.lex;dt.Tokenizer=Am;dt.Hooks=Tm;dt.parse=dt;var XZ=dt.options,JZ=dt.setOptions,eX=dt.use,tX=dt.walkTokens,iX=dt.parseInline;var nX=ls.parse,rX=os.lex;var uU=["*"],dU="Copy",hU="Copied",mU=(()=>{class n{constructor(){this._buttonClick$=new ue,this.copied$=this._buttonClick$.pipe(Mt(()=>Kt(ge(!0),oh(3e3).pipe(mw(!1)))),mr(),Ps(1)),this.copiedText$=this.copied$.pipe(Bt(!1),Ne(e=>e?hU:dU))}onCopyToClipboardClick(){this._buttonClick$.next()}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=le({type:n,selectors:[["markdown-clipboard"]],decls:4,vars:7,consts:[[1,"markdown-clipboard-button",3,"click"]],template:function(i,r){i&1&&(P(0,"button",0),En(1,"async"),X("click",function(){return r.onCopyToClipboardClick()}),B(2),En(3,"async"),U()),i&2&&(ye("copied",Kn(1,3,r.copied$)),$(2),He(Kn(3,5,r.copiedText$)))},dependencies:[No],encapsulation:2,changeDetection:0})}}return n})(),fU=new J("CLIPBOARD_OPTIONS");var j_=function(n){return n.CommandLine="command-line",n.LineHighlight="line-highlight",n.LineNumbers="line-numbers",n}(j_||{}),pM=new J("MARKED_EXTENSIONS"),pU=new J("MARKED_OPTIONS"),gU=new J("MERMAID_OPTIONS"),_U="[ngx-markdown] When using the `emoji` attribute you *have to* include Emoji-Toolkit files to `angular.json` or use imports. See README for more information",bU="[ngx-markdown] When using the `katex` attribute you *have to* include KaTeX files to `angular.json` or use imports. See README for more information",vU="[ngx-markdown] When using the `mermaid` attribute you *have to* include Mermaid files to `angular.json` or use imports. See README for more information",yU="[ngx-markdown] When using the `clipboard` attribute you *have to* include Clipboard files to `angular.json` or use imports. See README for more information",CU="[ngx-markdown] When using the `clipboard` attribute you *have to* provide the `viewContainerRef` parameter to `MarkdownService.render()` function",wU="[ngx-markdown] When using the `src` attribute you *have to* pass the `HttpClient` as a parameter of the `forRoot` method. See README for more information",gM=new J("SECURITY_CONTEXT");var _M=(()=>{class n{get options(){return this._options}set options(e){this._options=H(H({},this.DEFAULT_MARKED_OPTIONS),e)}get renderer(){return this.options.renderer}set renderer(e){this.options.renderer=e}constructor(e,i,r,s,a,o,l,c){this.clipboardOptions=e,this.extensions=i,this.mermaidOptions=s,this.platform=a,this.securityContext=o,this.http=l,this.sanitizer=c,this.DEFAULT_MARKED_OPTIONS={renderer:new Js},this.DEFAULT_KATEX_OPTIONS={delimiters:[{left:"$$",right:"$$",display:!0},{left:"$",right:"$",display:!1},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}]},this.DEFAULT_MERMAID_OPTIONS={startOnLoad:!1},this.DEFAULT_CLIPBOARD_OPTIONS={buttonComponent:void 0},this.DEFAULT_PARSE_OPTIONS={decodeHtml:!1,inline:!1,emoji:!1,mermaid:!1,markedOptions:void 0,disableSanitizer:!1},this.DEFAULT_RENDER_OPTIONS={clipboard:!1,clipboardOptions:void 0,katex:!1,katexOptions:void 0,mermaid:!1,mermaidOptions:void 0},this._reload$=new ue,this.reload$=this._reload$.asObservable(),this.options=r}parse(e,i=this.DEFAULT_PARSE_OPTIONS){let{decodeHtml:r,inline:s,emoji:a,mermaid:o,disableSanitizer:l}=i,c=H(H({},this.options),i.markedOptions),u=c.renderer||this.renderer||new Js;this.extensions&&(this.renderer=this.extendsRendererForExtensions(u)),o&&(this.renderer=this.extendsRendererForMermaid(u));let d=this.trimIndentation(e),h=r?this.decodeHtml(d):d,m=a?this.parseEmoji(h):h,f=this.parseMarked(m,c,s);return(l?f:this.sanitizer.sanitize(this.securityContext,f))||""}render(e,i=this.DEFAULT_RENDER_OPTIONS,r){let{clipboard:s,clipboardOptions:a,katex:o,katexOptions:l,mermaid:c,mermaidOptions:u}=i;o&&this.renderKatex(e,H(H({},this.DEFAULT_KATEX_OPTIONS),l)),c&&this.renderMermaid(e,H(H(H({},this.DEFAULT_MERMAID_OPTIONS),this.mermaidOptions),u)),s&&this.renderClipboard(e,r,H(H(H({},this.DEFAULT_CLIPBOARD_OPTIONS),this.clipboardOptions),a)),this.highlight(e)}reload(){this._reload$.next()}getSource(e){if(!this.http)throw new Error(wU);return this.http.get(e,{responseType:"text"}).pipe(Ne(i=>this.handleExtension(e,i)))}highlight(e){if(!es(this.platform)||typeof Prism>"u"||typeof Prism.highlightAllUnder>"u")return;e||(e=document);let i=e.querySelectorAll('pre code:not([class*="language-"])');Array.prototype.forEach.call(i,r=>r.classList.add("language-none")),Prism.highlightAllUnder(e)}decodeHtml(e){if(!es(this.platform))return e;let i=document.createElement("textarea");return i.innerHTML=e,i.value}extendsRendererForExtensions(e){let i=e;return i.\u0275NgxMarkdownRendererExtendedForExtensions===!0||(this.extensions?.length>0&&dt.use(...this.extensions),i.\u0275NgxMarkdownRendererExtendedForExtensions=!0),e}extendsRendererForMermaid(e){let i=e;if(i.\u0275NgxMarkdownRendererExtendedForMermaid===!0)return e;let r=e.code;return e.code=s=>s.lang==="mermaid"?`
    ${s.text}
    `:r(s),i.\u0275NgxMarkdownRendererExtendedForMermaid=!0,e}handleExtension(e,i){let r=e.lastIndexOf("://"),s=r>-1?e.substring(r+4):e,a=s.lastIndexOf("/"),o=a>-1?s.substring(a+1).split("?")[0]:"",l=o.lastIndexOf("."),c=l>-1?o.substring(l+1):"";return c&&c!=="md"?"```"+c+` +`+i+"\n```":i}parseMarked(e,i,r=!1){if(i.renderer){let s=H({},i.renderer);delete s.\u0275NgxMarkdownRendererExtendedForExtensions,delete s.\u0275NgxMarkdownRendererExtendedForMermaid,delete i.renderer,dt.use({renderer:s})}return r?dt.parseInline(e,i):dt.parse(e,i)}parseEmoji(e){if(!es(this.platform))return e;if(typeof joypixels>"u"||typeof joypixels.shortnameToUnicode>"u")throw new Error(_U);return joypixels.shortnameToUnicode(e)}renderKatex(e,i){if(es(this.platform)){if(typeof katex>"u"||typeof renderMathInElement>"u")throw new Error(bU);renderMathInElement(e,i)}}renderClipboard(e,i,r){if(!es(this.platform))return;if(typeof ClipboardJS>"u")throw new Error(yU);if(!i)throw new Error(CU);let{buttonComponent:s,buttonTemplate:a}=r,o=e.querySelectorAll("pre");for(let l=0;ld.classList.add("hover"),u.onmouseleave=()=>d.classList.remove("hover");let h;if(s){let f=i.createComponent(s);h=f.hostView,f.changeDetectorRef.markForCheck()}else if(a)h=i.createEmbeddedView(a);else{let f=i.createComponent(mU);h=f.hostView,f.changeDetectorRef.markForCheck()}let m;h.rootNodes.forEach(f=>{d.appendChild(f),m=new ClipboardJS(f,{text:()=>c.innerText})}),h.onDestroy(()=>m.destroy())}}renderMermaid(e,i=this.DEFAULT_MERMAID_OPTIONS){if(!es(this.platform))return;if(typeof mermaid>"u"||typeof mermaid.initialize>"u")throw new Error(vU);let r=e.querySelectorAll(".mermaid");r.length!==0&&(mermaid.initialize(i),mermaid.run({nodes:r}))}trimIndentation(e){if(!e)return"";let i;return e.split(` +`).map(r=>{let s=i;return r.length>0&&(s=isNaN(s)?r.search(/\S|$/):Math.min(r.search(/\S|$/),s)),isNaN(i)&&(i=s),s?r.substring(s):r}).join(` +`)}static{this.\u0275fac=function(i){return new(i||n)(Re(fU,8),Re(pM,8),Re(pU,8),Re(gU,8),Re(ch),Re(gM),Re(yr,8),Re(Hs))}}static{this.\u0275prov=ee({token:n,factory:n.\u0275fac})}}return n})(),bM=(()=>{class n{get disableSanitizer(){return this._disableSanitizer}set disableSanitizer(e){this._disableSanitizer=this.coerceBooleanProperty(e)}get inline(){return this._inline}set inline(e){this._inline=this.coerceBooleanProperty(e)}get clipboard(){return this._clipboard}set clipboard(e){this._clipboard=this.coerceBooleanProperty(e)}get emoji(){return this._emoji}set emoji(e){this._emoji=this.coerceBooleanProperty(e)}get katex(){return this._katex}set katex(e){this._katex=this.coerceBooleanProperty(e)}get mermaid(){return this._mermaid}set mermaid(e){this._mermaid=this.coerceBooleanProperty(e)}get lineHighlight(){return this._lineHighlight}set lineHighlight(e){this._lineHighlight=this.coerceBooleanProperty(e)}get lineNumbers(){return this._lineNumbers}set lineNumbers(e){this._lineNumbers=this.coerceBooleanProperty(e)}get commandLine(){return this._commandLine}set commandLine(e){this._commandLine=this.coerceBooleanProperty(e)}constructor(e,i,r){this.element=e,this.markdownService=i,this.viewContainerRef=r,this.error=new ce,this.load=new ce,this.ready=new ce,this._clipboard=!1,this._commandLine=!1,this._disableSanitizer=!1,this._emoji=!1,this._inline=!1,this._katex=!1,this._lineHighlight=!1,this._lineNumbers=!1,this._mermaid=!1,this.destroyed$=new ue}ngOnChanges(){this.loadContent()}loadContent(){if(this.data!=null){this.handleData();return}if(this.src!=null){this.handleSrc();return}}ngAfterViewInit(){!this.data&&!this.src&&this.handleTransclusion(),this.markdownService.reload$.pipe(Ye(this.destroyed$)).subscribe(()=>this.loadContent())}ngOnDestroy(){this.destroyed$.next(),this.destroyed$.complete()}render(e,i=!1){return Lt(this,null,function*(){let r={decodeHtml:i,inline:this.inline,emoji:this.emoji,mermaid:this.mermaid,disableSanitizer:this.disableSanitizer},s={clipboard:this.clipboard,clipboardOptions:this.getClipboardOptions(),katex:this.katex,katexOptions:this.katexOptions,mermaid:this.mermaid,mermaidOptions:this.mermaidOptions},a=yield this.markdownService.parse(e,r);this.element.nativeElement.innerHTML=a,this.handlePlugins(),this.markdownService.render(this.element.nativeElement,s,this.viewContainerRef),this.ready.emit()})}coerceBooleanProperty(e){return e!=null&&`${String(e)}`!="false"}getClipboardOptions(){if(this.clipboardButtonComponent||this.clipboardButtonTemplate)return{buttonComponent:this.clipboardButtonComponent,buttonTemplate:this.clipboardButtonTemplate}}handleData(){this.render(this.data)}handleSrc(){this.markdownService.getSource(this.src).subscribe({next:e=>{this.render(e).then(()=>{this.load.emit(e)})},error:e=>this.error.emit(e)})}handleTransclusion(){this.render(this.element.nativeElement.innerHTML,!0)}handlePlugins(){this.commandLine&&(this.setPluginClass(this.element.nativeElement,j_.CommandLine),this.setPluginOptions(this.element.nativeElement,{dataFilterOutput:this.filterOutput,dataHost:this.host,dataPrompt:this.prompt,dataOutput:this.output,dataUser:this.user})),this.lineHighlight&&this.setPluginOptions(this.element.nativeElement,{dataLine:this.line,dataLineOffset:this.lineOffset}),this.lineNumbers&&(this.setPluginClass(this.element.nativeElement,j_.LineNumbers),this.setPluginOptions(this.element.nativeElement,{dataStart:this.start}))}setPluginClass(e,i){let r=e.querySelectorAll("pre");for(let s=0;s{let o=i[a];if(o){let l=this.toLispCase(a);r.item(s).setAttribute(l,o.toString())}})}toLispCase(e){let i=e.match(/([A-Z])/g);if(!i)return e;let r=e.toString();for(let s=0,a=i.length;s{let i=SU(e)?Le(H({},e),{multi:!0}):{provide:pM,useValue:e,multi:!0};return[...t,i]},[])}var vM=(()=>{class n{static forRoot(e){return{ngModule:n,providers:[xU(e)]}}static forChild(){return{ngModule:n}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=he({type:n})}static{this.\u0275inj=de({imports:[Jr]})}}return n})();var TU=n=>({clickable:n});function EU(n,t){if(n&1&&(P(0,"span",9),B(1),U()),n&2){let e=Y().$implicit;$(),He(e.details)}}function AU(n,t){if(n&1&&(P(0,"p"),B(1),U()),n&2){let e=Y().$implicit;$(),He(e.text)}}function IU(n,t){if(n&1&&te(0,"markdown",10),n&2){let e=Y().$implicit;j("data",e.text)}}function DU(n,t){if(n&1&&(P(0,"li",12),B(1),U()),n&2){let e=t.$implicit;$(),je(" ",e," ")}}function RU(n,t){if(n&1&&(P(0,"ol"),oe(1,DU,2,1,"li",11),U()),n&2){let e=Y().$implicit;$(),j("ngForOf",e.sliceInfo)}}function LU(n,t){if(n&1){let e=ze();P(0,"li",3),X("click",function(){let r=re(e).$implicit,s=Y(2);return se(s.select.emit(r))}),P(1,"span",4),B(2),U(),te(3,"span",5)(4,"br"),oe(5,EU,2,1,"span",6)(6,AU,2,1,"p",7)(7,IU,1,1,"markdown",8)(8,RU,2,1,"ol",7),U()}if(n&2){let e=t.$implicit,i=Y(2);ph("issue ",e.severity,""),$(2),He(e.severity),$(),j("innerHtml",i.getTemplateHeaderLine(e),wc),$(2),j("ngIf",e.details),$(),j("ngIf",!e.markdown),$(),j("ngIf",e.markdown),$(),j("ngIf",e.sliceInfo.length)}}function OU(n,t){if(n&1&&(P(0,"ul",1),oe(1,LU,9,9,"li",2),U()),n&2){let e=Y();j("ngClass",Oo(2,TU,e.reactsToClick)),$(),j("ngForOf",e.result.issues)}}var yM=["fatal","error","warning","information"],dl=(()=>{class n{set operationResult(e){this.result=e,this.result&&this.result.issues.length&&this.result.issues.sort(n.sortIssues)}constructor(e){this.sanitized=e,this.select=new ce,this.reactsToClick=!1}ngOnInit(){this.reactsToClick=this.select.observed}static sortIssues(e,i){if(e.markdown)return-1;if(i.markdown)return 1;let r=yM.indexOf(e.severity)-yM.indexOf(i.severity);return r!==0?r:(e.line??0)-(i.line??0)}getTemplateHeaderLine(e){let i="";e.code&&(i+=` [${e.code}]`),i+=": ";let r=[];return e.line&&r.push(`line ${e.line}`),e.col&&r.push(`column ${e.col}`),e.expression&&r.push(`in ${e.expression}`),r.length&&(i+=r.join(", ")+":"),this.sanitized.bypassSecurityTrustHtml(i)}static{this.\u0275fac=function(i){return new(i||n)(Ae(Hs))}}static{this.\u0275cmp=le({type:n,selectors:[["app-operation-result"]],inputs:{operationResult:"operationResult"},outputs:{select:"select"},standalone:!1,decls:1,vars:1,consts:[[3,"ngClass",4,"ngIf"],[3,"ngClass"],[3,"class","click",4,"ngFor","ngForOf"],[3,"click"],[1,"severity"],[3,"innerHtml"],["class","details",4,"ngIf"],[4,"ngIf"],[3,"data",4,"ngIf"],[1,"details"],[3,"data"],["class","slice",4,"ngFor","ngForOf"],[1,"slice"]],template:function(i,r){i&1&&oe(0,OU,2,4,"ul",0),i&2&&j("ngIf",r.result)},dependencies:[An,vr,di,bM],styles:[".card-maps[_ngcontent-%COMP%]{margin-bottom:10px}.app-ace-editor[_ngcontent-%COMP%]{border:2px solid #f8f9fa;box-shadow:0 .5rem 1rem #00000026}ul[_ngcontent-%COMP%]{list-style:none;padding:0}.clickable[_ngcontent-%COMP%] .issue[_ngcontent-%COMP%]{cursor:pointer}.issue[_ngcontent-%COMP%]{border:1px solid #e1e1e1;background:#fbfbfb;border-radius:5px;padding:5px 8px;--color: #000;border-left:4px solid var(--color);margin-bottom:4px}.issue[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:2px 0 0}.issue[_ngcontent-%COMP%] .severity[_ngcontent-%COMP%]{color:var(--color);font-weight:600}.issue.fatal[_ngcontent-%COMP%], .issue.error[_ngcontent-%COMP%]{--color: #d9534f}.issue.warning[_ngcontent-%COMP%]{--color: #f0ad4e}.issue.information[_ngcontent-%COMP%]{--color: #4ca8de}.issue[_ngcontent-%COMP%] .details[_ngcontent-%COMP%]{font-weight:700;font-size:large}[_nghost-%COMP%] .issue .code{font-size:.9em;color:#636363}[_nghost-%COMP%] .issue>span>code{background:#e1e1e1;border-radius:4px;padding:2px 4px;font-family:courier,monospace} .ace-highlight-fatal{position:absolute;background:#c30;opacity:.4} .ace-highlight-error{position:absolute;background:#f96;opacity:.4} .ace-highlight-warning{position:absolute;background:#fc0;opacity:.4} .ace-highlight-information{position:absolute;background:#9c3;opacity:.4}"]})}}return n})();function NU(n,t){n&1&&te(0,"mat-spinner")}function FU(n,t){if(n&1&&te(0,"app-operation-result",4),n&2){let e=Y();j("operationResult",e.operationResult)}}var CM=4,xM=(()=>{class n{constructor(e){this.data=e,this.capabilityStatement=null,this.operationResult=null,this.loading=!0,this.client=e.getFhirClient()}ngAfterViewInit(){this.client.capabilityStatement().then(e=>{this.loading=!1,this.operationResult=null,this.editor=wM.default.edit("code"),this.editor.setReadOnly(!0),this.editor.setValue(JSON.stringify(e,null,CM),-1),this.editor.getSession().setMode("ace/mode/json"),this.editor.setTheme("ace/theme/textmate"),this.editor.commands.removeCommand("find"),this.editor.setOptions({maxLines:1e4,tabSize:CM,wrap:!0,useWorker:!1}),this.editor.resize(!0)}).catch(e=>{console.error(e),this.loading=!1,this.capabilityStatement=null,this.editor&&(this.editor.destroy(),this.editor.container.remove()),this.editor=null,e.response?.data?this.operationResult=Ut.fromOperationOutcome(e.response.data):this.operationResult=Ut.fromMatchboxError(e.message)})}static{this.\u0275fac=function(i){return new(i||n)(Ae(Dn))}}static{this.\u0275cmp=le({type:n,selectors:[["app-capability-statement"]],standalone:!1,decls:10,vars:3,consts:[["id","capability-statement",1,"white-block"],[4,"ngIf"],["id","code"],[3,"operationResult",4,"ngIf"],[3,"operationResult"]],template:function(i,r){i&1&&(P(0,"div",0)(1,"h2"),B(2,"CapabilityStatement"),U(),P(3,"p"),B(4," CapabilityStatement of the server: "),P(5,"code"),B(6),U()(),oe(7,NU,1,0,"mat-spinner",1),te(8,"div",2),oe(9,FU,1,1,"app-operation-result",3),U()),i&2&&($(6),He(r.client.baseUrl),$(),j("ngIf",r.loading),$(2),j("ngIf",r.operationResult))},dependencies:[di,Xs,dl],encapsulation:2})}}return n})();var PU=["*"];var UU=[[["","mat-card-avatar",""],["","matCardAvatar",""]],[["mat-card-title"],["mat-card-subtitle"],["","mat-card-title",""],["","mat-card-subtitle",""],["","matCardTitle",""],["","matCardSubtitle",""]],"*"],$U=["[mat-card-avatar], [matCardAvatar]",`mat-card-title, mat-card-subtitle, + [mat-card-title], [mat-card-subtitle], + [matCardTitle], [matCardSubtitle]`,"*"],VU=new J("MAT_CARD_CONFIG"),hl=(()=>{class n{appearance;constructor(){let e=R(VU,{optional:!0});this.appearance=e?.appearance||"raised"}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-card"]],hostAttrs:[1,"mat-mdc-card","mdc-card"],hostVars:4,hostBindings:function(i,r){i&2&&ye("mat-mdc-card-outlined",r.appearance==="outlined")("mdc-card--outlined",r.appearance==="outlined")},inputs:{appearance:"appearance"},exportAs:["matCard"],ngContentSelectors:PU,decls:1,vars:0,template:function(i,r){i&1&&(Qe(),Fe(0))},styles:[`.mat-mdc-card{display:flex;flex-direction:column;box-sizing:border-box;position:relative;border-style:solid;border-width:0;background-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-color:var(--mdc-elevated-card-container-color, var(--mat-sys-surface-container-low));border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium));box-shadow:var(--mdc-elevated-card-container-elevation, var(--mat-sys-level1))}.mat-mdc-card::after{position:absolute;top:0;left:0;width:100%;height:100%;border:solid 1px rgba(0,0,0,0);content:"";display:block;pointer-events:none;box-sizing:border-box;border-radius:var(--mdc-elevated-card-container-shape, var(--mat-sys-corner-medium))}.mat-mdc-card-outlined{background-color:var(--mdc-outlined-card-container-color, var(--mat-sys-surface));border-radius:var(--mdc-outlined-card-container-shape, var(--mat-sys-corner-medium));border-width:var(--mdc-outlined-card-outline-width, 1px);border-color:var(--mdc-outlined-card-outline-color, var(--mat-sys-outline-variant));box-shadow:var(--mdc-outlined-card-container-elevation, var(--mat-sys-level0))}.mat-mdc-card-outlined::after{border:none}.mdc-card__media{position:relative;box-sizing:border-box;background-repeat:no-repeat;background-position:center;background-size:cover}.mdc-card__media::before{display:block;content:""}.mdc-card__media:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.mdc-card__media:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.mat-mdc-card-actions{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;min-height:52px;padding:8px}.mat-mdc-card-title{font-family:var(--mat-card-title-text-font, var(--mat-sys-title-large-font));line-height:var(--mat-card-title-text-line-height, var(--mat-sys-title-large-line-height));font-size:var(--mat-card-title-text-size, var(--mat-sys-title-large-size));letter-spacing:var(--mat-card-title-text-tracking, var(--mat-sys-title-large-tracking));font-weight:var(--mat-card-title-text-weight, var(--mat-sys-title-large-weight))}.mat-mdc-card-subtitle{color:var(--mat-card-subtitle-text-color, var(--mat-sys-on-surface));font-family:var(--mat-card-subtitle-text-font, var(--mat-sys-title-medium-font));line-height:var(--mat-card-subtitle-text-line-height, var(--mat-sys-title-medium-line-height));font-size:var(--mat-card-subtitle-text-size, var(--mat-sys-title-medium-size));letter-spacing:var(--mat-card-subtitle-text-tracking, var(--mat-sys-title-medium-tracking));font-weight:var(--mat-card-subtitle-text-weight, var(--mat-sys-title-medium-weight))}.mat-mdc-card-title,.mat-mdc-card-subtitle{display:block;margin:0}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle{padding:16px 16px 0}.mat-mdc-card-header{display:flex;padding:16px 16px 0}.mat-mdc-card-content{display:block;padding:0 16px}.mat-mdc-card-content:first-child{padding-top:16px}.mat-mdc-card-content:last-child{padding-bottom:16px}.mat-mdc-card-title-group{display:flex;justify-content:space-between;width:100%}.mat-mdc-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;margin-bottom:16px;object-fit:cover}.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-avatar~.mat-mdc-card-header-text .mat-mdc-card-title{line-height:normal}.mat-mdc-card-sm-image{width:80px;height:80px}.mat-mdc-card-md-image{width:112px;height:112px}.mat-mdc-card-lg-image{width:152px;height:152px}.mat-mdc-card-xl-image{width:240px;height:240px}.mat-mdc-card-subtitle~.mat-mdc-card-title,.mat-mdc-card-title~.mat-mdc-card-subtitle,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-title,.mat-mdc-card-header .mat-mdc-card-header-text .mat-mdc-card-subtitle,.mat-mdc-card-title-group .mat-mdc-card-title,.mat-mdc-card-title-group .mat-mdc-card-subtitle{padding-top:0}.mat-mdc-card-content>:last-child:not(.mat-mdc-card-footer){margin-bottom:0}.mat-mdc-card-actions-align-end{justify-content:flex-end} +`],encapsulation:2,changeDetection:0})}return n})(),Rm=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-card-title"],["","mat-card-title",""],["","matCardTitle",""]],hostAttrs:[1,"mat-mdc-card-title"]})}return n})();var ml=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-card-content"]],hostAttrs:[1,"mat-mdc-card-content"]})}return n})(),SM=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-card-subtitle"],["","mat-card-subtitle",""],["","matCardSubtitle",""]],hostAttrs:[1,"mat-mdc-card-subtitle"]})}return n})(),Lm=(()=>{class n{align="start";static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-card-actions"]],hostAttrs:[1,"mat-mdc-card-actions","mdc-card__actions"],hostVars:2,hostBindings:function(i,r){i&2&&ye("mat-mdc-card-actions-align-end",r.align==="end")},inputs:{align:"align"},exportAs:["matCardActions"]})}return n})(),Om=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-card-header"]],hostAttrs:[1,"mat-mdc-card-header"],ngContentSelectors:$U,decls:4,vars:0,consts:[[1,"mat-mdc-card-header-text"]],template:function(i,r){i&1&&(Qe(UU),Fe(0),P(1,"div",0),Fe(2,1),U(),Fe(3,2))},encapsulation:2,changeDetection:0})}return n})(),kM=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-card-footer"]],hostAttrs:[1,"mat-mdc-card-footer"]})}return n})();var q_=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,Oe]})}return n})();var xi=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["structural-styles"]],decls:0,vars:0,template:function(i,r){},styles:[`.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}} +`],encapsulation:2,changeDetection:0})}return n})();var Zn=function(n){return n[n.NORMAL=0]="NORMAL",n[n.NEGATED=1]="NEGATED",n[n.INVERTED=2]="INVERTED",n}(Zn||{}),Fm,Ha;function Pm(){if(Ha==null){if(typeof document!="object"||!document||typeof Element!="function"||!Element)return Ha=!1,Ha;if("scrollBehavior"in document.documentElement.style)Ha=!0;else{let n=Element.prototype.scrollTo;n?Ha=!/\{\s*\[native code\]\s*\}/.test(n.toString()):Ha=!1}}return Ha}function fl(){if(typeof document!="object"||!document)return Zn.NORMAL;if(Fm==null){let n=document.createElement("div"),t=n.style;n.dir="rtl",t.width="1px",t.overflow="auto",t.visibility="hidden",t.pointerEvents="none",t.position="absolute";let e=document.createElement("div"),i=e.style;i.width="2px",i.height="1px",n.appendChild(e),document.body.appendChild(n),Fm=Zn.NORMAL,n.scrollLeft===0&&(n.scrollLeft=1,Fm=n.scrollLeft===0?Zn.NEGATED:Zn.INVERTED),n.remove()}return Fm}function G_(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}var pl,MM=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function K_(){if(pl)return pl;if(typeof document!="object"||!document)return pl=new Set(MM),pl;let n=document.createElement("input");return pl=new Set(MM.filter(t=>(n.setAttribute("type",t),n.type===t))),pl}function fn(n){return n!=null&&`${n}`!="false"}function qt(n){return n==null?"":typeof n=="string"?n:`${n}px`}var Ln=function(n){return n[n.FADING_IN=0]="FADING_IN",n[n.VISIBLE=1]="VISIBLE",n[n.FADING_OUT=2]="FADING_OUT",n[n.HIDDEN=3]="HIDDEN",n}(Ln||{}),Y_=class{_renderer;element;config;_animationForciblyDisabledThroughCss;state=Ln.HIDDEN;constructor(t,e,i,r=!1){this._renderer=t,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=r}fadeOut(){this._renderer.fadeOutRipple(this)}},TM=Ys({passive:!0,capture:!0}),Q_=class{_events=new Map;addHandler(t,e,i,r){let s=this._events.get(e);if(s){let a=s.get(i);a?a.add(r):s.set(i,new Set([r]))}else this._events.set(e,new Map([[i,new Set([r])]])),t.runOutsideAngular(()=>{document.addEventListener(e,this._delegateEventHandler,TM)})}removeHandler(t,e,i){let r=this._events.get(t);if(!r)return;let s=r.get(e);s&&(s.delete(i),s.size===0&&r.delete(e),r.size===0&&(this._events.delete(t),document.removeEventListener(t,this._delegateEventHandler,TM)))}_delegateEventHandler=t=>{let e=Li(t);e&&this._events.get(t.type)?.forEach((i,r)=>{(r===e||r.contains(e))&&i.forEach(s=>s.handleEvent(t))})}},lu={enterDuration:225,exitDuration:150},BU=800,EM=Ys({passive:!0,capture:!0}),AM=["mousedown","touchstart"],IM=["mouseup","mouseleave","touchend","touchcancel"],zU=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["ng-component"]],hostAttrs:["mat-ripple-style-loader",""],decls:0,vars:0,template:function(i,r){},styles:[`.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface) 10%, transparent))}@media(forced-colors: active){.mat-ripple-element{display:none}}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none} +`],encapsulation:2,changeDetection:0})}return n})(),cu=class n{_target;_ngZone;_platform;_containerElement;_triggerElement;_isPointerDown=!1;_activeRipples=new Map;_mostRecentTransientRipple;_lastTouchStartEvent;_pointerUpEventsRegistered=!1;_containerRect;static _eventManager=new Q_;constructor(t,e,i,r,s){this._target=t,this._ngZone=e,this._platform=r,r.isBrowser&&(this._containerElement=Oi(i)),s&&s.get(pt).load(zU)}fadeInRipple(t,e,i={}){let r=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),s=H(H({},lu),i.animation);i.centered&&(t=r.left+r.width/2,e=r.top+r.height/2);let a=i.radius||HU(t,e,r),o=t-r.left,l=e-r.top,c=s.enterDuration,u=document.createElement("div");u.classList.add("mat-ripple-element"),u.style.left=`${o-a}px`,u.style.top=`${l-a}px`,u.style.height=`${a*2}px`,u.style.width=`${a*2}px`,i.color!=null&&(u.style.backgroundColor=i.color),u.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(u);let d=window.getComputedStyle(u),h=d.transitionProperty,m=d.transitionDuration,f=h==="none"||m==="0s"||m==="0s, 0s"||r.width===0&&r.height===0,p=new Y_(this,u,i,f);u.style.transform="scale3d(1, 1, 1)",p.state=Ln.FADING_IN,i.persistent||(this._mostRecentTransientRipple=p);let g=null;return!f&&(c||s.exitDuration)&&this._ngZone.runOutsideAngular(()=>{let y=()=>{g&&(g.fallbackTimer=null),clearTimeout(k),this._finishRippleTransition(p)},w=()=>this._destroyRipple(p),k=setTimeout(w,c+100);u.addEventListener("transitionend",y),u.addEventListener("transitioncancel",w),g={onTransitionEnd:y,onTransitionCancel:w,fallbackTimer:k}}),this._activeRipples.set(p,g),(f||!c)&&this._finishRippleTransition(p),p}fadeOutRipple(t){if(t.state===Ln.FADING_OUT||t.state===Ln.HIDDEN)return;let e=t.element,i=H(H({},lu),t.config.animation);e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",t.state=Ln.FADING_OUT,(t._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(t)}fadeOutAll(){this._getActiveRipples().forEach(t=>t.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(t=>{t.config.persistent||t.fadeOut()})}setupTriggerEvents(t){let e=Oi(t);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,AM.forEach(i=>{n._eventManager.addHandler(this._ngZone,i,e,this)}))}handleEvent(t){t.type==="mousedown"?this._onMousedown(t):t.type==="touchstart"?this._onTouchStart(t):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{IM.forEach(e=>{this._triggerElement.addEventListener(e,this,EM)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(t){t.state===Ln.FADING_IN?this._startFadeOutTransition(t):t.state===Ln.FADING_OUT&&this._destroyRipple(t)}_startFadeOutTransition(t){let e=t===this._mostRecentTransientRipple,{persistent:i}=t.config;t.state=Ln.VISIBLE,!i&&(!e||!this._isPointerDown)&&t.fadeOut()}_destroyRipple(t){let e=this._activeRipples.get(t)??null;this._activeRipples.delete(t),this._activeRipples.size||(this._containerRect=null),t===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),t.state=Ln.HIDDEN,e!==null&&(t.element.removeEventListener("transitionend",e.onTransitionEnd),t.element.removeEventListener("transitioncancel",e.onTransitionCancel),e.fallbackTimer!==null&&clearTimeout(e.fallbackTimer)),t.element.remove()}_onMousedown(t){let e=nl(t),i=this._lastTouchStartEvent&&Date.now(){let e=t.state===Ln.VISIBLE||t.config.terminateOnPointerUp&&t.state===Ln.FADING_IN;!t.config.persistent&&e&&t.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){let t=this._triggerElement;t&&(AM.forEach(e=>n._eventManager.removeHandler(e,t,this)),this._pointerUpEventsRegistered&&(IM.forEach(e=>t.removeEventListener(e,this,EM)),this._pointerUpEventsRegistered=!1))}};function HU(n,t,e){let i=Math.max(Math.abs(n-e.left),Math.abs(n-e.right)),r=Math.max(Math.abs(t-e.top),Math.abs(t-e.bottom));return Math.sqrt(i*i+r*r)}var Um=new J("mat-ripple-global-options"),pn=(()=>{class n{_elementRef=R(Te);_animationMode=R(ot,{optional:!0});color;unbounded;centered;radius=0;animation;get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}_disabled=!1;get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}_trigger;_rippleRenderer;_globalOptions;_isInitialized=!1;constructor(){let e=R(De),i=R(st),r=R(Um,{optional:!0}),s=R(ut);this._globalOptions=r||{},this._rippleRenderer=new cu(this,e,this._elementRef,i,s)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:H(H(H({},this._globalOptions.animation),this._animationMode==="NoopAnimations"?{enterDuration:0,exitDuration:0}:{}),this.animation),terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(e,i=0,r){return typeof e=="number"?this._rippleRenderer.fadeInRipple(e,i,H(H({},this.rippleConfig),r)):this._rippleRenderer.fadeInRipple(0,0,H(H({},this.rippleConfig),e))}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,r){i&2&&ye("mat-ripple-unbounded",r.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return n})();var gl=class{_attachedHost;attach(t){return this._attachedHost=t,t.attach(this)}detach(){let t=this._attachedHost;t!=null&&(this._attachedHost=null,t.detach())}get isAttached(){return this._attachedHost!=null}setAttachedHost(t){this._attachedHost=t}},ea=class extends gl{component;viewContainerRef;injector;componentFactoryResolver;projectableNodes;constructor(t,e,i,r,s){super(),this.component=t,this.viewContainerRef=e,this.injector=i,this.projectableNodes=s}},Er=class extends gl{templateRef;viewContainerRef;context;injector;constructor(t,e,i,r){super(),this.templateRef=t,this.viewContainerRef=e,this.context=i,this.injector=r}get origin(){return this.templateRef.elementRef}attach(t,e=this.context){return this.context=e,super.attach(t)}detach(){return this.context=void 0,super.detach()}},$m=class extends gl{element;constructor(t){super(),this.element=t instanceof Te?t.nativeElement:t}},uu=class{_attachedPortal;_disposeFn;_isDisposed=!1;hasAttached(){return!!this._attachedPortal}attach(t){if(t instanceof ea)return this._attachedPortal=t,this.attachComponentPortal(t);if(t instanceof Er)return this._attachedPortal=t,this.attachTemplatePortal(t);if(this.attachDomPortal&&t instanceof $m)return this._attachedPortal=t,this.attachDomPortal(t)}attachDomPortal=null;detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(t){this._disposeFn=t}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}};var du=class extends uu{outletElement;_appRef;_defaultInjector;_document;constructor(t,e,i,r,s){super(),this.outletElement=t,this._appRef=i,this._defaultInjector=r,this._document=s}attachComponentPortal(t){let e;if(t.viewContainerRef){let i=t.injector||t.viewContainerRef.injector,r=i.get(cg,null,{optional:!0})||void 0;e=t.viewContainerRef.createComponent(t.component,{index:t.viewContainerRef.length,injector:i,ngModuleRef:r,projectableNodes:t.projectableNodes||void 0}),this.setDisposeFn(()=>e.destroy())}else{let i=this._appRef,r=t.injector||this._defaultInjector||ut.NULL,s=r.get(cn,i.injector);e=_h(t.component,{elementInjector:r,environmentInjector:s,projectableNodes:t.projectableNodes||void 0}),i.attachView(e.hostView),this.setDisposeFn(()=>{i.viewCount>0&&i.detachView(e.hostView),e.destroy()})}return this.outletElement.appendChild(this._getComponentRootNode(e)),this._attachedPortal=t,e}attachTemplatePortal(t){let e=t.viewContainerRef,i=e.createEmbeddedView(t.templateRef,t.context,{injector:t.injector});return i.rootNodes.forEach(r=>this.outletElement.appendChild(r)),i.detectChanges(),this.setDisposeFn(()=>{let r=e.indexOf(i);r!==-1&&e.remove(r)}),this._attachedPortal=t,i}attachDomPortal=t=>{let e=t.element;e.parentNode;let i=this._document.createComment("dom-portal");e.parentNode.insertBefore(i,e),this.outletElement.appendChild(e),this._attachedPortal=t,super.setDisposeFn(()=>{i.parentNode&&i.parentNode.replaceChild(e,i)})};dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(t){return t.hostView.rootNodes[0]}};var Z_=(()=>{class n extends Er{constructor(){let e=R(Mn),i=R(ui);super(e,i)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[Tt]})}return n})();var ja=(()=>{class n extends uu{_moduleRef=R(cg,{optional:!0});_document=R(Ze);_viewContainerRef=R(ui);_isInitialized=!1;_attachedRef;constructor(){super()}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}attached=new ce;get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(e){e.setAttachedHost(this);let i=e.viewContainerRef!=null?e.viewContainerRef:this._viewContainerRef,r=i.createComponent(e.component,{index:i.length,injector:e.injector||i.injector,projectableNodes:e.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0});return i!==this._viewContainerRef&&this._getRootNode().appendChild(r.hostView.rootNodes[0]),super.setDisposeFn(()=>r.destroy()),this._attachedPortal=e,this._attachedRef=r,this.attached.emit(r),r}attachTemplatePortal(e){e.setAttachedHost(this);let i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}attachDomPortal=e=>{let i=e.element;i.parentNode;let r=this._document.createComment("dom-portal");e.setAttachedHost(this),i.parentNode.insertBefore(r,i),this._getRootNode().appendChild(i),this._attachedPortal=e,super.setDisposeFn(()=>{r.parentNode&&r.parentNode.replaceChild(i,r)})};_getRootNode(){let e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[Tt]})}return n})();var hu=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({})}return n})();var jU=20,_l=(()=>{class n{_ngZone=R(De);_platform=R(st);_renderer=R(Ri).createRenderer(null,null);_cleanupGlobalListener;constructor(){}_scrolled=new ue;_scrolledCount=0;scrollContainers=new Map;register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){let i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=jU){return this._platform.isBrowser?new dr(i=>{this._cleanupGlobalListener||(this._cleanupGlobalListener=this._ngZone.runOutsideAngular(()=>this._renderer.listen("document","scroll",()=>this._scrolled.next())));let r=e>0?this._scrolled.pipe(vc(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{r.unsubscribe(),this._scrolledCount--,this._scrolledCount||(this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0)}}):ge()}ngOnDestroy(){this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0,this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){let r=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(it(s=>!s||r.indexOf(s)>-1))}getAncestorScrollContainers(e){let i=[];return this.scrollContainers.forEach((r,s)=>{this._scrollableContainsElement(s,e)&&i.push(s)}),i}_scrollableContainsElement(e,i){let r=Oi(i),s=e.getElementRef().nativeElement;do if(r==s)return!0;while(r=r.parentElement);return!1}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),X_=(()=>{class n{elementRef=R(Te);scrollDispatcher=R(_l);ngZone=R(De);dir=R(ti,{optional:!0});_scrollElement=this.elementRef.nativeElement;_destroyed=new ue;_renderer=R(Rt);_cleanupScroll;_elementScrolled=new ue;constructor(){}ngOnInit(){this._cleanupScroll=this.ngZone.runOutsideAngular(()=>this._renderer.listen(this._scrollElement,"scroll",e=>this._elementScrolled.next(e))),this.scrollDispatcher.register(this)}ngOnDestroy(){this._cleanupScroll?.(),this._elementScrolled.complete(),this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(e){let i=this.elementRef.nativeElement,r=this.dir&&this.dir.value=="rtl";e.left==null&&(e.left=r?e.end:e.start),e.right==null&&(e.right=r?e.start:e.end),e.bottom!=null&&(e.top=i.scrollHeight-i.clientHeight-e.bottom),r&&fl()!=Zn.NORMAL?(e.left!=null&&(e.right=i.scrollWidth-i.clientWidth-e.left),fl()==Zn.INVERTED?e.left=e.right:fl()==Zn.NEGATED&&(e.left=e.right?-e.right:e.right)):e.right!=null&&(e.left=i.scrollWidth-i.clientWidth-e.right),this._applyScrollToOptions(e)}_applyScrollToOptions(e){let i=this.elementRef.nativeElement;Pm()?i.scrollTo(e):(e.top!=null&&(i.scrollTop=e.top),e.left!=null&&(i.scrollLeft=e.left))}measureScrollOffset(e){let i="left",r="right",s=this.elementRef.nativeElement;if(e=="top")return s.scrollTop;if(e=="bottom")return s.scrollHeight-s.clientHeight-s.scrollTop;let a=this.dir&&this.dir.value=="rtl";return e=="start"?e=a?r:i:e=="end"&&(e=a?i:r),a&&fl()==Zn.INVERTED?e==i?s.scrollWidth-s.clientWidth-s.scrollLeft:s.scrollLeft:a&&fl()==Zn.NEGATED?e==i?s.scrollLeft+s.scrollWidth-s.clientWidth:-s.scrollLeft:e==i?s.scrollLeft:s.scrollWidth-s.clientWidth-s.scrollLeft}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]})}return n})(),WU=20,On=(()=>{class n{_platform=R(st);_listeners;_viewportSize;_change=new ue;_document=R(Ze,{optional:!0});constructor(){let e=R(De),i=R(Ri).createRenderer(null,null);e.runOutsideAngular(()=>{if(this._platform.isBrowser){let r=s=>this._change.next(s);this._listeners=[i.listen("window","resize",r),i.listen("window","orientationchange",r)]}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){this._listeners?.forEach(e=>e()),this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();let e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){let e=this.getViewportScrollPosition(),{width:i,height:r}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+r,right:e.left+i,height:r,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};let e=this._document,i=this._getWindow(),r=e.documentElement,s=r.getBoundingClientRect(),a=-s.top||e.body.scrollTop||i.scrollY||r.scrollTop||0,o=-s.left||e.body.scrollLeft||i.scrollX||r.scrollLeft||0;return{top:a,left:o}}change(e=WU){return e>0?this._change.pipe(vc(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){let e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var gn=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({})}return n})(),mu=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Zs,gn,Zs,gn]})}return n})();var DM=Pm(),Vm=class{_viewportRuler;_previousHTMLStyles={top:"",left:""};_previousScrollPosition;_isEnabled=!1;_document;constructor(t,e){this._viewportRuler=t,this._document=e}attach(){}enable(){if(this._canBeEnabled()){let t=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=t.style.left||"",this._previousHTMLStyles.top=t.style.top||"",t.style.left=qt(-this._previousScrollPosition.left),t.style.top=qt(-this._previousScrollPosition.top),t.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){let t=this._document.documentElement,e=this._document.body,i=t.style,r=e.style,s=i.scrollBehavior||"",a=r.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,t.classList.remove("cdk-global-scrollblock"),DM&&(i.scrollBehavior=r.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),DM&&(i.scrollBehavior=s,r.scrollBehavior=a)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;let e=this._document.documentElement,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}};var Bm=class{_scrollDispatcher;_ngZone;_viewportRuler;_config;_scrollSubscription=null;_overlayRef;_initialScrollPosition;constructor(t,e,i,r){this._scrollDispatcher=t,this._ngZone=e,this._viewportRuler=i,this._config=r}attach(t){this._overlayRef,this._overlayRef=t}enable(){if(this._scrollSubscription)return;let t=this._scrollDispatcher.scrolled(0).pipe(it(e=>!e||!this._overlayRef.overlayElement.contains(e.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=t.subscribe(()=>{let e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=t.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}_detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}},fu=class{enable(){}disable(){}attach(){}};function J_(n,t){return t.some(e=>{let i=n.bottome.bottom,s=n.righte.right;return i||r||s||a})}function RM(n,t){return t.some(e=>{let i=n.tope.bottom,s=n.lefte.right;return i||r||s||a})}var zm=class{_scrollDispatcher;_viewportRuler;_ngZone;_config;_scrollSubscription=null;_overlayRef;constructor(t,e,i,r){this._scrollDispatcher=t,this._viewportRuler=e,this._ngZone=i,this._config=r}attach(t){this._overlayRef,this._overlayRef=t}enable(){if(!this._scrollSubscription){let t=this._config?this._config.scrollThrottle:0;this._scrollSubscription=this._scrollDispatcher.scrolled(t).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){let e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:r}=this._viewportRuler.getViewportSize();J_(e,[{width:i,height:r,bottom:r,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}})}}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}},UM=(()=>{class n{_scrollDispatcher=R(_l);_viewportRuler=R(On);_ngZone=R(De);_document=R(Ze);constructor(){}noop=()=>new fu;close=e=>new Bm(this._scrollDispatcher,this._ngZone,this._viewportRuler,e);block=()=>new Vm(this._viewportRuler,this._document);reposition=e=>new zm(this._scrollDispatcher,this._viewportRuler,this._ngZone,e);static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),ta=class{positionStrategy;scrollStrategy=new fu;panelClass="";hasBackdrop=!1;backdropClass="cdk-overlay-dark-backdrop";width;height;minWidth;minHeight;maxWidth;maxHeight;direction;disposeOnNavigation=!1;constructor(t){if(t){let e=Object.keys(t);for(let i of e)t[i]!==void 0&&(this[i]=t[i])}}};var Hm=class{connectionPair;scrollableViewProperties;constructor(t,e){this.connectionPair=t,this.scrollableViewProperties=e}};var $M=(()=>{class n{_attachedOverlays=[];_document=R(Ze);_isAttached;constructor(){}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){let i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),this._attachedOverlays.length===0&&this.detach()}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),VM=(()=>{class n extends $M{_ngZone=R(De);_renderer=R(Ri).createRenderer(null,null);_cleanupKeydown;add(e){super.add(e),this._isAttached||(this._ngZone.runOutsideAngular(()=>{this._cleanupKeydown=this._renderer.listen("body","keydown",this._keydownListener)}),this._isAttached=!0)}detach(){this._isAttached&&(this._cleanupKeydown?.(),this._isAttached=!1)}_keydownListener=e=>{let i=this._attachedOverlays;for(let r=i.length-1;r>-1;r--)if(i[r]._keydownEvents.observers.length>0){this._ngZone.run(()=>i[r]._keydownEvents.next(e));break}};static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),BM=(()=>{class n extends $M{_platform=R(st);_ngZone=R(De);_renderer=R(Ri).createRenderer(null,null);_cursorOriginalValue;_cursorStyleIsSet=!1;_pointerDownEventTarget;_cleanups;add(e){if(super.add(e),!this._isAttached){let i=this._document.body,r={capture:!0};this._cleanups=this._ngZone.runOutsideAngular(()=>[Ot(this._renderer,i,"pointerdown",this._pointerDownListener,r),Ot(this._renderer,i,"click",this._clickListener,r),Ot(this._renderer,i,"auxclick",this._clickListener,r),Ot(this._renderer,i,"contextmenu",this._clickListener,r)]),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){this._isAttached&&(this._cleanups?.forEach(e=>e()),this._cleanups=void 0,this._platform.IOS&&this._cursorStyleIsSet&&(this._document.body.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1)}_pointerDownListener=e=>{this._pointerDownEventTarget=Li(e)};_clickListener=e=>{let i=Li(e),r=e.type==="click"&&this._pointerDownEventTarget?this._pointerDownEventTarget:i;this._pointerDownEventTarget=null;let s=this._attachedOverlays.slice();for(let a=s.length-1;a>-1;a--){let o=s[a];if(o._outsidePointerEvents.observers.length<1||!o.hasAttached())continue;if(LM(o.overlayElement,i)||LM(o.overlayElement,r))break;let l=o._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>l.next(e)):l.next(e)}};static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function LM(n,t){let e=typeof ShadowRoot<"u"&&ShadowRoot,i=t;for(;i;){if(i===n)return!0;i=e&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}var zM=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["ng-component"]],hostAttrs:["cdk-overlay-style-loader",""],decls:0,vars:0,template:function(i,r){},styles:[`.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0;touch-action:manipulation}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll} +`],encapsulation:2,changeDetection:0})}return n})(),HM=(()=>{class n{_platform=R(st);_containerElement;_document=R(Ze);_styleLoader=R(pt);constructor(){}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._loadStyles(),this._containerElement||this._createContainer(),this._containerElement}_createContainer(){let e="cdk-overlay-container";if(this._platform.isBrowser||G_()){let r=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let s=0;s{let t=this.element;clearTimeout(this._fallbackTimeout),this._cleanupTransitionEnd?.(),this._cleanupTransitionEnd=this._renderer.listen(t,"transitionend",this.dispose),this._fallbackTimeout=setTimeout(this.dispose,500),t.style.pointerEvents="none",t.classList.remove("cdk-overlay-backdrop-showing")})}dispose=()=>{clearTimeout(this._fallbackTimeout),this._cleanupClick?.(),this._cleanupTransitionEnd?.(),this._cleanupClick=this._cleanupTransitionEnd=this._fallbackTimeout=void 0,this.element.remove()}},jm=class{_portalOutlet;_host;_pane;_config;_ngZone;_keyboardDispatcher;_document;_location;_outsideClickDispatcher;_animationsDisabled;_injector;_renderer;_backdropClick=new ue;_attachments=new ue;_detachments=new ue;_positionStrategy;_scrollStrategy;_locationChanges=St.EMPTY;_backdropRef=null;_previousHostParent;_keydownEvents=new ue;_outsidePointerEvents=new ue;_renders=new ue;_afterRenderRef;_afterNextRenderRef;constructor(t,e,i,r,s,a,o,l,c,u=!1,d,h){this._portalOutlet=t,this._host=e,this._pane=i,this._config=r,this._ngZone=s,this._keyboardDispatcher=a,this._document=o,this._location=l,this._outsideClickDispatcher=c,this._animationsDisabled=u,this._injector=d,this._renderer=h,r.scrollStrategy&&(this._scrollStrategy=r.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=r.positionStrategy,this._afterRenderRef=Yn(()=>uh(()=>{this._renders.next()},{injector:this._injector}))}get overlayElement(){return this._pane}get backdropElement(){return this._backdropRef?.element||null}get hostElement(){return this._host}attach(t){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);let e=this._portalOutlet.attach(t);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._afterNextRenderRef?.destroy(),this._afterNextRenderRef=Yt(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),typeof e?.onDestroy=="function"&&e.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();let t=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),t}dispose(){let t=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._backdropRef?.dispose(),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=this._backdropRef=null,t&&this._detachments.next(),this._detachments.complete(),this._afterRenderRef.destroy(),this._renders.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(t){t!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=t,this.hasAttached()&&(t.attach(this),this.updatePosition()))}updateSize(t){this._config=H(H({},this._config),t),this._updateElementSize()}setDirection(t){this._config=Le(H({},this._config),{direction:t}),this._updateElementDirection()}addPanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!0)}removePanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!1)}getDirection(){let t=this._config.direction;return t?typeof t=="string"?t:t.value:"ltr"}updateScrollStrategy(t){t!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=t,this.hasAttached()&&(t.attach(this),t.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;let t=this._pane.style;t.width=qt(this._config.width),t.height=qt(this._config.height),t.minWidth=qt(this._config.minWidth),t.minHeight=qt(this._config.minHeight),t.maxWidth=qt(this._config.maxWidth),t.maxHeight=qt(this._config.maxHeight)}_togglePointerEvents(t){this._pane.style.pointerEvents=t?"":"none"}_attachBackdrop(){let t="cdk-overlay-backdrop-showing";this._backdropRef?.dispose(),this._backdropRef=new eb(this._document,this._renderer,this._ngZone,e=>{this._backdropClick.next(e)}),this._animationsDisabled&&this._backdropRef.element.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropRef.element,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropRef.element,this._host),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this._backdropRef?.element.classList.add(t))}):this._backdropRef.element.classList.add(t)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){this._animationsDisabled?(this._backdropRef?.dispose(),this._backdropRef=null):this._backdropRef?.detach()}_toggleClasses(t,e,i){let r=sl(e||[]).filter(s=>!!s);r.length&&(i?t.classList.add(...r):t.classList.remove(...r))}_detachContentWhenEmpty(){this._ngZone.runOutsideAngular(()=>{let t=this._renders.pipe(Ye(Kt(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||this._pane.children.length===0)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),t.unsubscribe())})})}_disposeScrollStrategy(){let t=this._scrollStrategy;t?.disable(),t?.detach?.()}},OM="cdk-overlay-connected-position-bounding-box",GU=/([A-Za-z%]+)$/,pu=class{_viewportRuler;_document;_platform;_overlayContainer;_overlayRef;_isInitialRender;_lastBoundingBoxSize={width:0,height:0};_isPushed=!1;_canPush=!0;_growAfterOpen=!1;_hasFlexibleDimensions=!0;_positionLocked=!1;_originRect;_overlayRect;_viewportRect;_containerRect;_viewportMargin=0;_scrollables=[];_preferredPositions=[];_origin;_pane;_isDisposed;_boundingBox;_lastPosition;_lastScrollVisibility;_positionChanges=new ue;_resizeSubscription=St.EMPTY;_offsetX=0;_offsetY=0;_transformOriginSelector;_appliedPanelClasses=[];_previousPushAmount;positionChanges=this._positionChanges;get positions(){return this._preferredPositions}constructor(t,e,i,r,s){this._viewportRuler=e,this._document=i,this._platform=r,this._overlayContainer=s,this.setOrigin(t)}attach(t){this._overlayRef&&this._overlayRef,this._validatePositions(),t.hostElement.classList.add(OM),this._overlayRef=t,this._boundingBox=t.hostElement,this._pane=t.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition){this.reapplyLastPosition();return}this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let t=this._originRect,e=this._overlayRect,i=this._viewportRect,r=this._containerRect,s=[],a;for(let o of this._preferredPositions){let l=this._getOriginPoint(t,r,o),c=this._getOverlayPoint(l,e,o),u=this._getOverlayFit(c,e,i,o);if(u.isCompletelyWithinViewport){this._isPushed=!1,this._applyPosition(o,l);return}if(this._canFitWithFlexibleDimensions(u,c,i)){s.push({position:o,origin:l,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(l,o)});continue}(!a||a.overlayFit.visibleAreal&&(l=u,o=c)}this._isPushed=!1,this._applyPosition(o.position,o.origin);return}if(this._canPush){this._isPushed=!0,this._applyPosition(a.position,a.originPoint);return}this._applyPosition(a.position,a.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&Wa(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(OM),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;let t=this._lastPosition;if(t){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let e=this._getOriginPoint(this._originRect,this._containerRect,t);this._applyPosition(t,e)}else this.apply()}withScrollableContainers(t){return this._scrollables=t,this}withPositions(t){return this._preferredPositions=t,t.indexOf(this._lastPosition)===-1&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(t){return this._viewportMargin=t,this}withFlexibleDimensions(t=!0){return this._hasFlexibleDimensions=t,this}withGrowAfterOpen(t=!0){return this._growAfterOpen=t,this}withPush(t=!0){return this._canPush=t,this}withLockedPosition(t=!0){return this._positionLocked=t,this}setOrigin(t){return this._origin=t,this}withDefaultOffsetX(t){return this._offsetX=t,this}withDefaultOffsetY(t){return this._offsetY=t,this}withTransformOriginOn(t){return this._transformOriginSelector=t,this}_getOriginPoint(t,e,i){let r;if(i.originX=="center")r=t.left+t.width/2;else{let a=this._isRtl()?t.right:t.left,o=this._isRtl()?t.left:t.right;r=i.originX=="start"?a:o}e.left<0&&(r-=e.left);let s;return i.originY=="center"?s=t.top+t.height/2:s=i.originY=="top"?t.top:t.bottom,e.top<0&&(s-=e.top),{x:r,y:s}}_getOverlayPoint(t,e,i){let r;i.overlayX=="center"?r=-e.width/2:i.overlayX==="start"?r=this._isRtl()?-e.width:0:r=this._isRtl()?0:-e.width;let s;return i.overlayY=="center"?s=-e.height/2:s=i.overlayY=="top"?0:-e.height,{x:t.x+r,y:t.y+s}}_getOverlayFit(t,e,i,r){let s=FM(e),{x:a,y:o}=t,l=this._getOffset(r,"x"),c=this._getOffset(r,"y");l&&(a+=l),c&&(o+=c);let u=0-a,d=a+s.width-i.width,h=0-o,m=o+s.height-i.height,f=this._subtractOverflows(s.width,u,d),p=this._subtractOverflows(s.height,h,m),g=f*p;return{visibleArea:g,isCompletelyWithinViewport:s.width*s.height===g,fitsInViewportVertically:p===s.height,fitsInViewportHorizontally:f==s.width}}_canFitWithFlexibleDimensions(t,e,i){if(this._hasFlexibleDimensions){let r=i.bottom-e.y,s=i.right-e.x,a=NM(this._overlayRef.getConfig().minHeight),o=NM(this._overlayRef.getConfig().minWidth),l=t.fitsInViewportVertically||a!=null&&a<=r,c=t.fitsInViewportHorizontally||o!=null&&o<=s;return l&&c}return!1}_pushOverlayOnScreen(t,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:t.x+this._previousPushAmount.x,y:t.y+this._previousPushAmount.y};let r=FM(e),s=this._viewportRect,a=Math.max(t.x+r.width-s.width,0),o=Math.max(t.y+r.height-s.height,0),l=Math.max(s.top-i.top-t.y,0),c=Math.max(s.left-i.left-t.x,0),u=0,d=0;return r.width<=s.width?u=c||-a:u=t.xf&&!this._isInitialRender&&!this._growAfterOpen&&(a=t.y-f/2)}let l=e.overlayX==="start"&&!r||e.overlayX==="end"&&r,c=e.overlayX==="end"&&!r||e.overlayX==="start"&&r,u,d,h;if(c)h=i.width-t.x+this._viewportMargin*2,u=t.x-this._viewportMargin;else if(l)d=t.x,u=i.right-t.x;else{let m=Math.min(i.right-t.x+i.left,t.x),f=this._lastBoundingBoxSize.width;u=m*2,d=t.x-m,u>f&&!this._isInitialRender&&!this._growAfterOpen&&(d=t.x-f/2)}return{top:a,left:d,bottom:o,right:h,width:u,height:s}}_setBoundingBoxStyles(t,e){let i=this._calculateBoundingBoxRect(t,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));let r={};if(this._hasExactPosition())r.top=r.left="0",r.bottom=r.right=r.maxHeight=r.maxWidth="",r.width=r.height="100%";else{let s=this._overlayRef.getConfig().maxHeight,a=this._overlayRef.getConfig().maxWidth;r.height=qt(i.height),r.top=qt(i.top),r.bottom=qt(i.bottom),r.width=qt(i.width),r.left=qt(i.left),r.right=qt(i.right),e.overlayX==="center"?r.alignItems="center":r.alignItems=e.overlayX==="end"?"flex-end":"flex-start",e.overlayY==="center"?r.justifyContent="center":r.justifyContent=e.overlayY==="bottom"?"flex-end":"flex-start",s&&(r.maxHeight=qt(s)),a&&(r.maxWidth=qt(a))}this._lastBoundingBoxSize=i,Wa(this._boundingBox.style,r)}_resetBoundingBoxStyles(){Wa(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){Wa(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(t,e){let i={},r=this._hasExactPosition(),s=this._hasFlexibleDimensions,a=this._overlayRef.getConfig();if(r){let u=this._viewportRuler.getViewportScrollPosition();Wa(i,this._getExactOverlayY(e,t,u)),Wa(i,this._getExactOverlayX(e,t,u))}else i.position="static";let o="",l=this._getOffset(e,"x"),c=this._getOffset(e,"y");l&&(o+=`translateX(${l}px) `),c&&(o+=`translateY(${c}px)`),i.transform=o.trim(),a.maxHeight&&(r?i.maxHeight=qt(a.maxHeight):s&&(i.maxHeight="")),a.maxWidth&&(r?i.maxWidth=qt(a.maxWidth):s&&(i.maxWidth="")),Wa(this._pane.style,i)}_getExactOverlayY(t,e,i){let r={top:"",bottom:""},s=this._getOverlayPoint(e,this._overlayRect,t);if(this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),t.overlayY==="bottom"){let a=this._document.documentElement.clientHeight;r.bottom=`${a-(s.y+this._overlayRect.height)}px`}else r.top=qt(s.y);return r}_getExactOverlayX(t,e,i){let r={left:"",right:""},s=this._getOverlayPoint(e,this._overlayRect,t);this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i));let a;if(this._isRtl()?a=t.overlayX==="end"?"left":"right":a=t.overlayX==="end"?"right":"left",a==="right"){let o=this._document.documentElement.clientWidth;r.right=`${o-(s.x+this._overlayRect.width)}px`}else r.left=qt(s.x);return r}_getScrollVisibility(){let t=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(r=>r.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:RM(t,i),isOriginOutsideView:J_(t,i),isOverlayClipped:RM(e,i),isOverlayOutsideView:J_(e,i)}}_subtractOverflows(t,...e){return e.reduce((i,r)=>i-Math.max(r,0),t)}_getNarrowedViewportRect(){let t=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+t-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:t-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return this._overlayRef.getDirection()==="rtl"}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(t,e){return e==="x"?t.offsetX==null?this._offsetX:t.offsetX:t.offsetY==null?this._offsetY:t.offsetY}_validatePositions(){}_addPanelClasses(t){this._pane&&sl(t).forEach(e=>{e!==""&&this._appliedPanelClasses.indexOf(e)===-1&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(t=>{this._pane.classList.remove(t)}),this._appliedPanelClasses=[])}_getOriginRect(){let t=this._origin;if(t instanceof Te)return t.nativeElement.getBoundingClientRect();if(t instanceof Element)return t.getBoundingClientRect();let e=t.width||0,i=t.height||0;return{top:t.y,bottom:t.y+i,left:t.x,right:t.x+e,height:i,width:e}}};function Wa(n,t){for(let e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);return n}function NM(n){if(typeof n!="number"&&n!=null){let[t,e]=n.split(GU);return!e||e==="px"?parseFloat(t):null}return n||null}function FM(n){return{top:Math.floor(n.top),right:Math.floor(n.right),bottom:Math.floor(n.bottom),left:Math.floor(n.left),width:Math.floor(n.width),height:Math.floor(n.height)}}function KU(n,t){return n===t?!0:n.isOriginClipped===t.isOriginClipped&&n.isOriginOutsideView===t.isOriginOutsideView&&n.isOverlayClipped===t.isOverlayClipped&&n.isOverlayOutsideView===t.isOverlayOutsideView}var PM="cdk-global-overlay-wrapper",Wm=class{_overlayRef;_cssPosition="static";_topOffset="";_bottomOffset="";_alignItems="";_xPosition="";_xOffset="";_width="";_height="";_isDisposed=!1;attach(t){let e=t.getConfig();this._overlayRef=t,this._width&&!e.width&&t.updateSize({width:this._width}),this._height&&!e.height&&t.updateSize({height:this._height}),t.hostElement.classList.add(PM),this._isDisposed=!1}top(t=""){return this._bottomOffset="",this._topOffset=t,this._alignItems="flex-start",this}left(t=""){return this._xOffset=t,this._xPosition="left",this}bottom(t=""){return this._topOffset="",this._bottomOffset=t,this._alignItems="flex-end",this}right(t=""){return this._xOffset=t,this._xPosition="right",this}start(t=""){return this._xOffset=t,this._xPosition="start",this}end(t=""){return this._xOffset=t,this._xPosition="end",this}width(t=""){return this._overlayRef?this._overlayRef.updateSize({width:t}):this._width=t,this}height(t=""){return this._overlayRef?this._overlayRef.updateSize({height:t}):this._height=t,this}centerHorizontally(t=""){return this.left(t),this._xPosition="center",this}centerVertically(t=""){return this.top(t),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;let t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:r,height:s,maxWidth:a,maxHeight:o}=i,l=(r==="100%"||r==="100vw")&&(!a||a==="100%"||a==="100vw"),c=(s==="100%"||s==="100vh")&&(!o||o==="100%"||o==="100vh"),u=this._xPosition,d=this._xOffset,h=this._overlayRef.getConfig().direction==="rtl",m="",f="",p="";l?p="flex-start":u==="center"?(p="center",h?f=d:m=d):h?u==="left"||u==="end"?(p="flex-end",m=d):(u==="right"||u==="start")&&(p="flex-start",f=d):u==="left"||u==="start"?(p="flex-start",m=d):(u==="right"||u==="end")&&(p="flex-end",f=d),t.position=this._cssPosition,t.marginLeft=l?"0":m,t.marginTop=c?"0":this._topOffset,t.marginBottom=this._bottomOffset,t.marginRight=l?"0":f,e.justifyContent=p,e.alignItems=c?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;let t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(PM),i.justifyContent=i.alignItems=t.marginTop=t.marginBottom=t.marginLeft=t.marginRight=t.position="",this._overlayRef=null,this._isDisposed=!0}},jM=(()=>{class n{_viewportRuler=R(On);_document=R(Ze);_platform=R(st);_overlayContainer=R(HM);constructor(){}global(){return new Wm}flexibleConnectedTo(e){return new pu(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Gt=(()=>{class n{scrollStrategies=R(UM);_overlayContainer=R(HM);_positionBuilder=R(jM);_keyboardDispatcher=R(VM);_injector=R(ut);_ngZone=R(De);_document=R(Ze);_directionality=R(ti);_location=R(Bs);_outsideClickDispatcher=R(BM);_animationsModuleType=R(ot,{optional:!0});_idGenerator=R(At);_renderer=R(Ri).createRenderer(null,null);_appRef;_styleLoader=R(pt);constructor(){}create(e){this._styleLoader.load(zM);let i=this._createHostElement(),r=this._createPaneElement(i),s=this._createPortalOutlet(r),a=new ta(e);return a.direction=a.direction||this._directionality.value,new jm(s,i,r,a,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,this._animationsModuleType==="NoopAnimations",this._injector.get(cn),this._renderer)}position(){return this._positionBuilder}_createPaneElement(e){let i=this._document.createElement("div");return i.id=this._idGenerator.getId("cdk-overlay-"),i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){let e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(Gn)),new du(e,null,this._appRef,this._injector,this._document)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),YU=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],WM=new J("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{let n=R(Gt);return()=>n.scrollStrategies.reposition()}}),bl=(()=>{class n{elementRef=R(Te);constructor(){}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]})}return n})(),qm=(()=>{class n{_overlay=R(Gt);_dir=R(ti,{optional:!0});_overlayRef;_templatePortal;_backdropSubscription=St.EMPTY;_attachSubscription=St.EMPTY;_detachSubscription=St.EMPTY;_positionSubscription=St.EMPTY;_offsetX;_offsetY;_position;_scrollStrategyFactory=R(WM);_disposeOnNavigation=!1;_ngZone=R(De);origin;positions;positionStrategy;get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}width;height;minWidth;minHeight;backdropClass;panelClass;viewportMargin=0;scrollStrategy;open=!1;disableClose=!1;transformOriginSelector;hasBackdrop=!1;lockPosition=!1;flexibleDimensions=!1;growAfterOpen=!1;push=!1;get disposeOnNavigation(){return this._disposeOnNavigation}set disposeOnNavigation(e){this._disposeOnNavigation=e}backdropClick=new ce;positionChange=new ce;attach=new ce;detach=new ce;overlayKeydown=new ce;overlayOutsideClick=new ce;constructor(){let e=R(Mn),i=R(ui);this._templatePortal=new Er(e,i),this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef?.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef?.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this.attachOverlay():this.detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=YU);let e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),i.keyCode===27&&!this.disableClose&&!wi(i)&&(i.preventDefault(),this.detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{let r=this._getOriginElement(),s=Li(i);(!r||r!==s&&!r.contains(s))&&this.overlayOutsideClick.next(i)})}_buildConfig(){let e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new ta({direction:this._dir||"ltr",positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation});return(this.width||this.width===0)&&(i.width=this.width),(this.height||this.height===0)&&(i.height=this.height),(this.minWidth||this.minWidth===0)&&(i.minWidth=this.minWidth),(this.minHeight||this.minHeight===0)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){let i=this.positions.map(r=>({originX:r.originX,originY:r.originY,overlayX:r.overlayX,overlayY:r.overlayY,offsetX:r.offsetX||this.offsetX,offsetY:r.offsetY||this.offsetY,panelClass:r.panelClass||void 0}));return e.setOrigin(this._getOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){let e=this._overlay.position().flexibleConnectedTo(this._getOrigin());return this._updatePositionStrategy(e),e}_getOrigin(){return this.origin instanceof bl?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof bl?this.origin.elementRef.nativeElement:this.origin instanceof Te?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(_w(()=>this.positionChange.observers.length>0)).subscribe(e=>{this._ngZone.run(()=>this.positionChange.emit(e)),this.positionChange.observers.length===0&&this._positionSubscription.unsubscribe()})),this.open=!0}detachOverlay(){this._overlayRef?.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.open=!1}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",_e],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",_e],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",_e],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",_e],push:[2,"cdkConnectedOverlayPush","push",_e],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",_e]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[mt]})}return n})();function QU(n){return()=>n.scrollStrategies.reposition()}var ZU={provide:WM,deps:[Gt],useFactory:QU},Xn=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({providers:[Gt,ZU],imports:[Zs,hu,mu,mu]})}return n})();var Ar=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,Oe]})}return n})();var XU=["mat-menu-item",""],JU=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],e$=["mat-icon, [matMenuItemIcon]","*"];function t$(n,t){n&1&&(Ht(),P(0,"svg",2),te(1,"polygon",3),U())}var i$=new J("MAT_MENU_PANEL"),Gm=(()=>{class n{_elementRef=R(Te);_document=R(Ze);_focusMonitor=R(mn);_parentMenu=R(i$,{optional:!0});_changeDetectorRef=R(Ge);role="menuitem";disabled=!1;disableRipple=!1;_hovered=new ue;_focused=new ue;_highlighted=!1;_triggersSubmenu=!1;constructor(){R(pt).load(xi),this._parentMenu?.addItem?.(this)}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){let e=this._elementRef.nativeElement.cloneNode(!0),i=e.querySelectorAll("mat-icon, .material-icons");for(let r=0;r{let n=R(Gt);return()=>n.scrollStrategies.reposition()}});function r$(n){return()=>n.scrollStrategies.reposition()}var s$={provide:n$,deps:[Gt],useFactory:r$};var tb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({providers:[s$],imports:[Ar,Oe,Xn,gn,Oe]})}return n})(),qM={transformMenu:{type:7,name:"transformMenu",definitions:[{type:0,name:"void",styles:{type:6,styles:{opacity:0,transform:"scale(0.8)"},offset:null}},{type:1,expr:"void => enter",animation:{type:4,styles:{type:6,styles:{opacity:1,transform:"scale(1)"},offset:null},timings:"120ms cubic-bezier(0, 0, 0.2, 1)"},options:null},{type:1,expr:"* => void",animation:{type:4,styles:{type:6,styles:{opacity:0},offset:null},timings:"100ms 25ms linear"},options:null}],options:{}},fadeInItems:{type:7,name:"fadeInItems",definitions:[{type:0,name:"showing",styles:{type:6,styles:{opacity:1},offset:null}},{type:1,expr:"void => *",animation:[{type:6,styles:{opacity:0},offset:null},{type:4,styles:null,timings:"400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)"}],options:null}],options:{}}},dte=qM.fadeInItems,hte=qM.transformMenu;var KM=(()=>{class n{constructor(){this.version=window.MATCHBOX_VERSION}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=le({type:n,selectors:[["app-home"]],standalone:!1,decls:31,vars:1,consts:[[1,"primary"],["mat-menu-item","","routerLink","/validate"],["mat-menu-item","","routerLink","/igs"],["mat-menu-item","","routerLink","/settings"],["href","https://fhirpath-lab.com/fml","target","_blank"],["href","https://tx.fhir.org/tx-reg/","target","_blank"],["href","https://www.ahdis.ch","rel","external nofollow noopener","target","_blank"]],template:function(i,r){i&1&&(P(0,"mat-card",0)(1,"mat-card-content")(2,"button",1)(3,"mat-icon"),B(4,"rule"),U(),P(5,"span"),B(6,"Validate resource"),U()(),P(7,"button",2)(8,"mat-icon"),B(9,"info"),U(),P(10,"span"),B(11,"Installed IGs"),U()(),P(12,"button",3)(13,"mat-icon"),B(14,"settings"),U(),P(15,"span"),B(16,"Settings"),U()(),P(17,"p"),B(18,"Other tools:"),U(),P(19,"ul")(20,"li")(21,"a",4),B(22,"Select matchbox in Fhirpath Lab top right to use FML with our test instance"),U()(),P(23,"li")(24,"a",5),B(25,"FHIR Tx Server Registry"),U()()()(),P(26,"mat-card-footer")(27,"p"),B(28),P(29,"a",6),B(30," contact"),U()()()()),i&2&&($(28),je(" Matchbox version: ",r.version," | "))},dependencies:[hl,ml,kM,Rn,Gm,Yo],styles:["mat-card.primary[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-right:20px}mat-card.primary[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%] button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:8px;vertical-align:middle;color:#68c39a}mat-card.primary[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:30px 0 15px}mat-card.primary[_ngcontent-%COMP%] mat-card-footer[_ngcontent-%COMP%]{padding:0 1.5rem 1.5rem}"]})}}return n})();var tT=(()=>{class n{_renderer;_elementRef;onChange=e=>{};onTouched=()=>{};constructor(e,i){this._renderer=e,this._elementRef=i}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static \u0275fac=function(i){return new(i||n)(Ae(Rt),Ae(Te))};static \u0275dir=xe({type:n})}return n})(),o$=(()=>{class n extends tT{static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275dir=xe({type:n,features:[Tt]})}return n})(),cs=new J("");var l$={provide:cs,useExisting:Ci(()=>Ir),multi:!0};function c$(){let n=mg()?mg().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}var u$=new J(""),Ir=(()=>{class n extends tT{_compositionMode;_composing=!1;constructor(e,i,r){super(e,i),this._compositionMode=r,this._compositionMode==null&&(this._compositionMode=!c$())}writeValue(e){let i=e??"";this.setProperty("value",i)}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static \u0275fac=function(i){return new(i||n)(Ae(Rt),Ae(Te),Ae(u$,8))};static \u0275dir=xe({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,r){i&1&&X("input",function(a){return r._handleInput(a.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(a){return r._compositionEnd(a.target.value)})},standalone:!1,features:[rt([l$]),Tt]})}return n})();function rb(n){return n==null||sb(n)===0}function sb(n){return n==null?null:Array.isArray(n)||typeof n=="string"?n.length:n instanceof Set?n.size:null}var na=new J(""),af=new J(""),d$=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,_n=class{static min(t){return h$(t)}static max(t){return m$(t)}static required(t){return f$(t)}static requiredTrue(t){return p$(t)}static email(t){return g$(t)}static minLength(t){return _$(t)}static maxLength(t){return b$(t)}static pattern(t){return v$(t)}static nullValidator(t){return iT()}static compose(t){return lT(t)}static composeAsync(t){return cT(t)}};function h$(n){return t=>{if(t.value==null||n==null)return null;let e=parseFloat(t.value);return!isNaN(e)&&e{if(t.value==null||n==null)return null;let e=parseFloat(t.value);return!isNaN(e)&&e>n?{max:{max:n,actual:t.value}}:null}}function f$(n){return rb(n.value)?{required:!0}:null}function p$(n){return n.value===!0?null:{required:!0}}function g$(n){return rb(n.value)||d$.test(n.value)?null:{email:!0}}function _$(n){return t=>{let e=t.value?.length??sb(t.value);return e===null||e===0?null:e{let e=t.value?.length??sb(t.value);return e!==null&&e>n?{maxlength:{requiredLength:n,actualLength:e}}:null}}function v$(n){if(!n)return iT;let t,e;return typeof n=="string"?(e="",n.charAt(0)!=="^"&&(e+="^"),e+=n,n.charAt(n.length-1)!=="$"&&(e+="$"),t=new RegExp(e)):(e=n.toString(),t=n),i=>{if(rb(i.value))return null;let r=i.value;return t.test(r)?null:{pattern:{requiredPattern:e,actualValue:r}}}}function iT(n){return null}function nT(n){return n!=null}function rT(n){return fh(n)?si(n):n}function sT(n){let t={};return n.forEach(e=>{t=e!=null?H(H({},t),e):t}),Object.keys(t).length===0?null:t}function aT(n,t){return t.map(e=>e(n))}function y$(n){return!n.validate}function oT(n){return n.map(t=>y$(t)?t:e=>t.validate(e))}function lT(n){if(!n)return null;let t=n.filter(nT);return t.length==0?null:function(e){return sT(aT(e,t))}}function ab(n){return n!=null?lT(oT(n)):null}function cT(n){if(!n)return null;let t=n.filter(nT);return t.length==0?null:function(e){let i=aT(e,t).map(rT);return Mo(i).pipe(Ne(sT))}}function ob(n){return n!=null?cT(oT(n)):null}function YM(n,t){return n===null?[t]:Array.isArray(n)?[...n,t]:[n,t]}function uT(n){return n._rawValidators}function dT(n){return n._rawAsyncValidators}function ib(n){return n?Array.isArray(n)?n:[n]:[]}function Ym(n,t){return Array.isArray(n)?n.includes(t):n===t}function QM(n,t){let e=ib(t);return ib(n).forEach(r=>{Ym(e,r)||e.push(r)}),e}function ZM(n,t){return ib(t).filter(e=>!Ym(n,e))}var Qm=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=ab(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=ob(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t=void 0){this.control&&this.control.reset(t)}hasError(t,e){return this.control?this.control.hasError(t,e):!1}getError(t,e){return this.control?this.control.getError(t,e):null}},qa=class extends Qm{name;get formDirective(){return null}get path(){return null}},Jn=class extends Qm{_parent=null;name=null;valueAccessor=null},nb=class{_cd;constructor(t){this._cd=t}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}},C$={"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"},Ite=Le(H({},C$),{"[class.ng-submitted]":"isSubmitted"}),Dr=(()=>{class n extends nb{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(Ae(Jn,2))};static \u0275dir=xe({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){i&2&&ye("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},standalone:!1,features:[Tt]})}return n})();var gu="VALID",Km="INVALID",yl="PENDING",_u="DISABLED",ia=class{},Zm=class extends ia{value;source;constructor(t,e){super(),this.value=t,this.source=e}},vu=class extends ia{pristine;source;constructor(t,e){super(),this.pristine=t,this.source=e}},yu=class extends ia{touched;source;constructor(t,e){super(),this.touched=t,this.source=e}},Cl=class extends ia{status;source;constructor(t,e){super(),this.status=t,this.source=e}},Xm=class extends ia{source;constructor(t){super(),this.source=t}},Jm=class extends ia{source;constructor(t){super(),this.source=t}};function hT(n){return(of(n)?n.validators:n)||null}function w$(n){return Array.isArray(n)?ab(n):n||null}function mT(n,t){return(of(t)?t.asyncValidators:n)||null}function x$(n){return Array.isArray(n)?ob(n):n||null}function of(n){return n!=null&&!Array.isArray(n)&&typeof n=="object"}function S$(n,t,e){let i=n.controls;if(!(t?Object.keys(i):i).length)throw new Be(1e3,"");if(!i[e])throw new Be(1001,"")}function k$(n,t,e){n._forEachChild((i,r)=>{if(e[r]===void 0)throw new Be(1002,"")})}var ef=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(t,e){this._assignValidators(t),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get status(){return Yn(this.statusReactive)}set status(t){Yn(()=>this.statusReactive.set(t))}_status=br(()=>this.statusReactive());statusReactive=Di(void 0);get valid(){return this.status===gu}get invalid(){return this.status===Km}get pending(){return this.status==yl}get disabled(){return this.status===_u}get enabled(){return this.status!==_u}errors;get pristine(){return Yn(this.pristineReactive)}set pristine(t){Yn(()=>this.pristineReactive.set(t))}_pristine=br(()=>this.pristineReactive());pristineReactive=Di(!0);get dirty(){return!this.pristine}get touched(){return Yn(this.touchedReactive)}set touched(t){Yn(()=>this.touchedReactive.set(t))}_touched=br(()=>this.touchedReactive());touchedReactive=Di(!1);get untouched(){return!this.touched}_events=new ue;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(QM(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(QM(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(ZM(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(ZM(t,this._rawAsyncValidators))}hasValidator(t){return Ym(this._rawValidators,t)}hasAsyncValidator(t){return Ym(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){let e=this.touched===!1;this.touched=!0;let i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsTouched(Le(H({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new yu(!0,i))}markAllAsTouched(t={}){this.markAsTouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(t))}markAsUntouched(t={}){let e=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=t.sourceControl??this;this._forEachChild(r=>{r.markAsUntouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:i})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,i),e&&t.emitEvent!==!1&&this._events.next(new yu(!1,i))}markAsDirty(t={}){let e=this.pristine===!0;this.pristine=!1;let i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsDirty(Le(H({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new vu(!1,i))}markAsPristine(t={}){let e=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=t.sourceControl??this;this._forEachChild(r=>{r.markAsPristine({onlySelf:!0,emitEvent:t.emitEvent})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t,i),e&&t.emitEvent!==!1&&this._events.next(new vu(!0,i))}markAsPending(t={}){this.status=yl;let e=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new Cl(this.status,e)),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.markAsPending(Le(H({},t),{sourceControl:e}))}disable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=_u,this.errors=null,this._forEachChild(r=>{r.disable(Le(H({},t),{onlySelf:!0}))}),this._updateValue();let i=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new Zm(this.value,i)),this._events.next(new Cl(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Le(H({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(r=>r(!0))}enable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=gu,this._forEachChild(i=>{i.enable(Le(H({},t),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(Le(H({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t,e){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine({},e),this._parent._updateTouched({},e))}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===gu||this.status===yl)&&this._runAsyncValidator(i,t.emitEvent)}let e=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new Zm(this.value,e)),this._events.next(new Cl(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(Le(H({},t),{sourceControl:e}))}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?_u:gu}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t,e){if(this.asyncValidator){this.status=yl,this._hasOwnPendingAsyncValidator={emitEvent:e!==!1};let i=rT(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(r=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(r,{emitEvent:e,shouldHaveEmitted:t})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let t=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,t}return!1}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(e.emitEvent!==!1,this,e.shouldHaveEmitted)}get(t){let e=t;return e==null||(Array.isArray(e)||(e=e.split(".")),e.length===0)?null:e.reduce((i,r)=>i&&i._find(r),this)}getError(t,e){let i=e?this.get(e):this;return i&&i.errors?i.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t,e,i){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),(t||i)&&this._events.next(new Cl(this.status,e)),this._parent&&this._parent._updateControlsErrors(t,e,i)}_initObservables(){this.valueChanges=new ce,this.statusChanges=new ce}_calculateStatus(){return this._allControlsDisabled()?_u:this.errors?Km:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(yl)?yl:this._anyControlsHaveStatus(Km)?Km:gu}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t,e){let i=!this._anyControlsDirty(),r=this.pristine!==i;this.pristine=i,this._parent&&!t.onlySelf&&this._parent._updatePristine(t,e),r&&this._events.next(new vu(this.pristine,e))}_updateTouched(t={},e){this.touched=this._anyControlsTouched(),this._events.next(new yu(this.touched,e)),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,e)}_onDisabledChange=[];_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){of(t)&&t.updateOn!=null&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){let e=this._parent&&this._parent.dirty;return!t&&!!e&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=w$(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=x$(this._rawAsyncValidators)}},tf=class extends ef{constructor(t,e,i){super(hT(e),mT(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e,i={}){this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){k$(this,!0,t),Object.keys(t).forEach(i=>{S$(this,!0,i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t!=null&&(Object.keys(t).forEach(i=>{let r=this.controls[i];r&&r.patchValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild((i,r)=>{i.reset(t?t[r]:null,{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(t,e,i)=>(t[i]=e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(e,i)=>i._syncPendingControls()?!0:e);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(e=>{let i=this.controls[e];i&&t(i,e)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(let[e,i]of Object.entries(this.controls))if(this.contains(e)&&t(i))return!0;return!1}_reduceValue(){let t={};return this._reduceChildren(t,(e,i,r)=>((i.enabled||this.disabled)&&(e[r]=i.value),e))}_reduceChildren(t,e){let i=t;return this._forEachChild((r,s)=>{i=e(i,r,s)}),i}_allControlsDisabled(){for(let t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}};var wl=new J("",{providedIn:"root",factory:()=>lf}),lf="always";function M$(n,t){return[...t.path,n]}function Cu(n,t,e=lf){lb(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||e==="always")&&t.valueAccessor.setDisabledState?.(n.disabled),E$(n,t),I$(n,t),A$(n,t),T$(n,t)}function nf(n,t,e=!0){let i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),sf(n,t),n&&(t._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function rf(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function T$(n,t){if(t.valueAccessor.setDisabledState){let e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}function lb(n,t){let e=uT(n);t.validator!==null?n.setValidators(YM(e,t.validator)):typeof e=="function"&&n.setValidators([e]);let i=dT(n);t.asyncValidator!==null?n.setAsyncValidators(YM(i,t.asyncValidator)):typeof i=="function"&&n.setAsyncValidators([i]);let r=()=>n.updateValueAndValidity();rf(t._rawValidators,r),rf(t._rawAsyncValidators,r)}function sf(n,t){let e=!1;if(n!==null){if(t.validator!==null){let r=uT(n);if(Array.isArray(r)&&r.length>0){let s=r.filter(a=>a!==t.validator);s.length!==r.length&&(e=!0,n.setValidators(s))}}if(t.asyncValidator!==null){let r=dT(n);if(Array.isArray(r)&&r.length>0){let s=r.filter(a=>a!==t.asyncValidator);s.length!==r.length&&(e=!0,n.setAsyncValidators(s))}}}let i=()=>{};return rf(t._rawValidators,i),rf(t._rawAsyncValidators,i),e}function E$(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,n.updateOn==="change"&&fT(n,t)})}function A$(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,n.updateOn==="blur"&&n._pendingChange&&fT(n,t),n.updateOn!=="submit"&&n.markAsTouched()})}function fT(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function I$(n,t){let e=(i,r)=>{t.valueAccessor.writeValue(i),r&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}function pT(n,t){n==null,lb(n,t)}function D$(n,t){return sf(n,t)}function gT(n,t){if(!n.hasOwnProperty("model"))return!1;let e=n.model;return e.isFirstChange()?!0:!Object.is(t,e.currentValue)}function R$(n){return Object.getPrototypeOf(n.constructor)===o$}function _T(n,t){n._syncPendingControls(),t.forEach(e=>{let i=e.control;i.updateOn==="submit"&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function bT(n,t){if(!t)return null;Array.isArray(t);let e,i,r;return t.forEach(s=>{s.constructor===Ir?e=s:R$(s)?i=s:r=s}),r||i||e||null}function L$(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}var O$={provide:qa,useExisting:Ci(()=>wu)},bu=Promise.resolve(),wu=(()=>{class n extends qa{callSetDisabledState;get submitted(){return Yn(this.submittedReactive)}_submitted=br(()=>this.submittedReactive());submittedReactive=Di(!1);_directives=new Set;form;ngSubmit=new ce;options;constructor(e,i,r){super(),this.callSetDisabledState=r,this.form=new tf({},ab(e),ob(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){bu.then(()=>{let i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),Cu(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){bu.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){bu.then(()=>{let i=this._findContainer(e.path),r=new tf({});pT(r,e),i.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){bu.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){bu.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submittedReactive.set(!0),_T(this.form,this._directives),this.ngSubmit.emit(e),this.form._events.next(new Xm(this.control)),e?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submittedReactive.set(!1),this.form._events.next(new Jm(this.form))}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}static \u0275fac=function(i){return new(i||n)(Ae(na,10),Ae(af,10),Ae(wl,8))};static \u0275dir=xe({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){i&1&&X("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[rt([O$]),Tt]})}return n})();function XM(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}function JM(n){return typeof n=="object"&&n!==null&&Object.keys(n).length===2&&"value"in n&&"disabled"in n}var Rr=class extends ef{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(t=null,e,i){super(hT(e),mT(i,e)),this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),of(e)&&(e.nonNullable||e.initialValueIsDefault)&&(JM(t)?this.defaultValue=t.value:this.defaultValue=t)}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&e.emitModelToViewChange!==!1&&this._onChange.forEach(i=>i(this.value,e.emitViewToModelChange!==!1)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=this.defaultValue,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){XM(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){XM(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(t){JM(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}},us=Rr,N$=n=>n instanceof Rr;var F$={provide:Jn,useExisting:Ci(()=>cb)},eT=Promise.resolve(),cb=(()=>{class n extends Jn{_changeDetectorRef;callSetDisabledState;control=new Rr;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new ce;constructor(e,i,r,s,a,o){super(),this._changeDetectorRef=a,this.callSetDisabledState=o,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=bT(this,s)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){let i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),gT(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){Cu(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(e){eT.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){let i=e.isDisabled.currentValue,r=i!==0&&_e(i);eT.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?M$(e,this._parent):[e]}static \u0275fac=function(i){return new(i||n)(Ae(qa,9),Ae(na,10),Ae(af,10),Ae(cs,10),Ae(Ge,8),Ae(wl,8))};static \u0275dir=xe({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[rt([F$]),Tt,mt]})}return n})();var vT=new J(""),P$={provide:Jn,useExisting:Ci(()=>er)},er=(()=>{class n extends Jn{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(e){}model;update=new ce;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,r,s,a){super(),this._ngModelWarningConfig=s,this.callSetDisabledState=a,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=bT(this,r)}ngOnChanges(e){if(this._isControlChanged(e)){let i=e.form.previousValue;i&&nf(i,this,!1),Cu(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}gT(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&nf(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static \u0275fac=function(i){return new(i||n)(Ae(na,10),Ae(af,10),Ae(cs,10),Ae(vT,8),Ae(wl,8))};static \u0275dir=xe({type:n,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],standalone:!1,features:[rt([P$]),Tt,mt]})}return n})(),U$={provide:qa,useExisting:Ci(()=>xu)},xu=(()=>{class n extends qa{callSetDisabledState;get submitted(){return Yn(this._submittedReactive)}set submitted(e){this._submittedReactive.set(e)}_submitted=br(()=>this._submittedReactive());_submittedReactive=Di(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];form=null;ngSubmit=new ce;constructor(e,i,r){super(),this.callSetDisabledState=r,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(sf(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){let i=this.form.get(e.path);return Cu(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){nf(e.control||null,e,!1),L$(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){return this._submittedReactive.set(!0),_T(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new Xm(this.control)),e?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this._submittedReactive.set(!1),this.form._events.next(new Jm(this.form))}_updateDomValue(){this.directives.forEach(e=>{let i=e.control,r=this.form.get(e.path);i!==r&&(nf(i||null,e),N$(r)&&(Cu(r,e,this.callSetDisabledState),e.control=r))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){let i=this.form.get(e.path);pT(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){let i=this.form.get(e.path);i&&D$(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){lb(this.form,this),this._oldForm&&sf(this._oldForm,this)}static \u0275fac=function(i){return new(i||n)(Ae(na,10),Ae(af,10),Ae(wl,8))};static \u0275dir=xe({type:n,selectors:[["","formGroup",""]],hostBindings:function(i,r){i&1&&X("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[rt([U$]),Tt,mt]})}return n})();var yT=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({})}return n})();var ub=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:wl,useValue:e.callSetDisabledState??lf}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[yT]})}return n})(),Su=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:vT,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:wl,useValue:e.callSetDisabledState??lf}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[yT]})}return n})();var FT=Os(im());var db=class{_box;_destroyed=new ue;_resizeSubject=new ue;_resizeObserver;_elementObservables=new Map;constructor(t){this._box=t,typeof ResizeObserver<"u"&&(this._resizeObserver=new ResizeObserver(e=>this._resizeSubject.next(e)))}observe(t){return this._elementObservables.has(t)||this._elementObservables.set(t,new dr(e=>{let i=this._resizeSubject.subscribe(e);return this._resizeObserver?.observe(t,{box:this._box}),()=>{this._resizeObserver?.unobserve(t),i.unsubscribe(),this._elementObservables.delete(t)}}).pipe(it(e=>e.some(i=>i.target===t)),Ps({bufferSize:1,refCount:!0}),Ye(this._destroyed))),this._elementObservables.get(t)}destroy(){this._destroyed.next(),this._destroyed.complete(),this._resizeSubject.complete(),this._elementObservables.clear()}},cf=(()=>{class n{_cleanupErrorListener;_observers=new Map;_ngZone=R(De);constructor(){typeof ResizeObserver<"u"}ngOnDestroy(){for(let[,e]of this._observers)e.destroy();this._observers.clear(),this._cleanupErrorListener?.()}observe(e,i){let r=i?.box||"content-box";return this._observers.has(r)||this._observers.set(r,new db(r)),this._observers.get(r).observe(e)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var $$=["notch"],V$=["matFormFieldNotchedOutline",""],B$=["*"],z$=["textField"],H$=["iconPrefixContainer"],j$=["textPrefixContainer"],W$=["iconSuffixContainer"],q$=["textSuffixContainer"],G$=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],K$=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];function Y$(n,t){n&1&&te(0,"span",20)}function Q$(n,t){if(n&1&&(P(0,"label",19),Fe(1,1),oe(2,Y$,1,0,"span",20),U()),n&2){let e=Y(2);j("floating",e._shouldLabelFloat())("monitorResize",e._hasOutline())("id",e._labelId),Se("for",e._control.disableAutomaticLabeling?null:e._control.id),$(2),Je(!e.hideRequiredMarker&&e._control.required?2:-1)}}function Z$(n,t){if(n&1&&oe(0,Q$,3,5,"label",19),n&2){let e=Y();Je(e._hasFloatingLabel()?0:-1)}}function X$(n,t){n&1&&te(0,"div",7)}function J$(n,t){}function eV(n,t){if(n&1&&oe(0,J$,0,0,"ng-template",13),n&2){Y(2);let e=jt(1);j("ngTemplateOutlet",e)}}function tV(n,t){if(n&1&&(P(0,"div",9),oe(1,eV,1,1,null,13),U()),n&2){let e=Y();j("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat()),$(),Je(e._forceDisplayInfixLabel()?-1:1)}}function iV(n,t){n&1&&(P(0,"div",10,2),Fe(2,2),U())}function nV(n,t){n&1&&(P(0,"div",11,3),Fe(2,3),U())}function rV(n,t){}function sV(n,t){if(n&1&&oe(0,rV,0,0,"ng-template",13),n&2){Y();let e=jt(1);j("ngTemplateOutlet",e)}}function aV(n,t){n&1&&(P(0,"div",14,4),Fe(2,4),U())}function oV(n,t){n&1&&(P(0,"div",15,5),Fe(2,5),U())}function lV(n,t){n&1&&te(0,"div",16)}function cV(n,t){n&1&&Fe(0,6)}function uV(n,t){if(n&1&&(P(0,"mat-hint",21),B(1),U()),n&2){let e=Y(2);j("id",e._hintLabelId),$(),He(e.hintLabel)}}function dV(n,t){if(n&1&&(oe(0,uV,2,2,"mat-hint",21),Fe(1,7),te(2,"div",22),Fe(3,8)),n&2){let e=Y();Je(e.hintLabel?0:-1)}}var ds=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-label"]]})}return n})(),hb=new J("MatError"),Ka=(()=>{class n{id=R(At).getId("mat-mdc-error-");constructor(){}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-error"],["","matError",""]],hostAttrs:[1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(i,r){i&2&&Tn("id",r.id)},inputs:{id:"id"},features:[rt([{provide:hb,useExisting:n}])]})}return n})(),Ga=(()=>{class n{align="start";id=R(At).getId("mat-mdc-hint-");static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(i,r){i&2&&(Tn("id",r.id),Se("align",null),ye("mat-mdc-form-field-hint-end",r.align==="end"))},inputs:{align:"align",id:"id"}})}return n})(),TT=new J("MatPrefix");var ET=new J("MatSuffix");var AT=new J("FloatingLabelParent"),CT=(()=>{class n{_elementRef=R(Te);get floating(){return this._floating}set floating(e){this._floating=e,this.monitorResize&&this._handleResize()}_floating=!1;get monitorResize(){return this._monitorResize}set monitorResize(e){this._monitorResize=e,this._monitorResize?this._subscribeToResize():this._resizeSubscription.unsubscribe()}_monitorResize=!1;_resizeObserver=R(cf);_ngZone=R(De);_parent=R(AT);_resizeSubscription=new St;constructor(){}ngOnDestroy(){this._resizeSubscription.unsubscribe()}getWidth(){return hV(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}_handleResize(){setTimeout(()=>this._parent._handleLabelResized())}_subscribeToResize(){this._resizeSubscription.unsubscribe(),this._ngZone.runOutsideAngular(()=>{this._resizeSubscription=this._resizeObserver.observe(this._elementRef.nativeElement,{box:"border-box"}).subscribe(()=>this._handleResize())})}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(i,r){i&2&&ye("mdc-floating-label--float-above",r.floating)},inputs:{floating:"floating",monitorResize:"monitorResize"}})}return n})();function hV(n){let t=n;if(t.offsetParent!==null)return t.scrollWidth;let e=t.cloneNode(!0);e.style.setProperty("position","absolute"),e.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(e);let i=e.scrollWidth;return e.remove(),i}var wT="mdc-line-ripple--active",uf="mdc-line-ripple--deactivating",xT=(()=>{class n{_elementRef=R(Te);_cleanupTransitionEnd;constructor(){let e=R(De),i=R(Rt);e.runOutsideAngular(()=>{this._cleanupTransitionEnd=i.listen(this._elementRef.nativeElement,"transitionend",this._handleTransitionEnd)})}activate(){let e=this._elementRef.nativeElement.classList;e.remove(uf),e.add(wT)}deactivate(){this._elementRef.nativeElement.classList.add(uf)}_handleTransitionEnd=e=>{let i=this._elementRef.nativeElement.classList,r=i.contains(uf);e.propertyName==="opacity"&&r&&i.remove(wT,uf)};ngOnDestroy(){this._cleanupTransitionEnd()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]})}return n})(),ST=(()=>{class n{_elementRef=R(Te);_ngZone=R(De);open=!1;_notch;constructor(){}ngAfterViewInit(){let e=this._elementRef.nativeElement.querySelector(".mdc-floating-label");e?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),typeof requestAnimationFrame=="function"&&(e.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>e.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_setNotchWidth(e){!this.open||!e?this._notch.nativeElement.style.width="":this._notch.nativeElement.style.width=`calc(${e}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["div","matFormFieldNotchedOutline",""]],viewQuery:function(i,r){if(i&1&&Pe($$,5),i&2){let s;ke(s=Me())&&(r._notch=s.first)}},hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(i,r){i&2&&ye("mdc-notched-outline--notched",r.open)},inputs:{open:[0,"matFormFieldNotchedOutlineOpen","open"]},attrs:V$,ngContentSelectors:B$,decls:5,vars:0,consts:[["notch",""],[1,"mat-mdc-notch-piece","mdc-notched-outline__leading"],[1,"mat-mdc-notch-piece","mdc-notched-outline__notch"],[1,"mat-mdc-notch-piece","mdc-notched-outline__trailing"]],template:function(i,r){i&1&&(Qe(),te(0,"div",1),P(1,"div",2,0),Fe(3),U(),te(4,"div",3))},encapsulation:2,changeDetection:0})}return n})(),xl=(()=>{class n{value;stateChanges;id;placeholder;ngControl;focused;empty;shouldLabelFloat;required;disabled;errorState;controlType;autofilled;userAriaDescribedBy;disableAutomaticLabeling;static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n})}return n})();var Sl=new J("MatFormField"),IT=new J("MAT_FORM_FIELD_DEFAULT_OPTIONS"),kT="fill",mV="auto",MT="fixed",fV="translateY(-50%)",bn=(()=>{class n{_elementRef=R(Te);_changeDetectorRef=R(Ge);_dir=R(ti);_platform=R(st);_idGenerator=R(At);_ngZone=R(De);_injector=R(ut);_defaults=R(IT,{optional:!0});_textField;_iconPrefixContainer;_textPrefixContainer;_iconSuffixContainer;_textSuffixContainer;_floatingLabel;_notchedOutline;_lineRipple;_formFieldControl;_prefixChildren;_suffixChildren;_errorChildren;_hintChildren;_labelChild=Tw(ds);get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=fn(e)}_hideRequiredMarker=!1;color="primary";get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||mV}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}_floatLabel;get appearance(){return this._appearance}set appearance(e){let i=this._appearance,r=e||this._defaults?.appearance||kT;this._appearance=r,this._appearance==="outline"&&this._appearance!==i&&(this._needsOutlineLabelOffsetUpdate=!0)}_appearance=kT;get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||MT}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||MT}_subscriptSizing=null;get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}_hintLabel="";_hasIconPrefix=!1;_hasTextPrefix=!1;_hasIconSuffix=!1;_hasTextSuffix=!1;_labelId=this._idGenerator.getId("mat-mdc-form-field-label-");_hintLabelId=this._idGenerator.getId("mat-mdc-hint-");get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}_destroyed=new ue;_isFocused=null;_explicitFormFieldControl;_needsOutlineLabelOffsetUpdate=!1;_previousControl=null;_previousControlValidatorFn=null;_stateChanges;_valueChanges;_describedByChanges;_animationsDisabled;constructor(){let e=this._defaults;e&&(e.appearance&&(this.appearance=e.appearance),this._hideRequiredMarker=!!e?.hideRequiredMarker,e.color&&(this.color=e.color)),this._animationsDisabled=R(ot,{optional:!0})==="NoopAnimations"}ngAfterViewInit(){this._updateFocusState(),this._animationsDisabled||this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{this._elementRef.nativeElement.classList.add("mat-form-field-animations-enabled")},300)}),this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl(),this._control!==this._previousControl&&(this._initializeControl(this._previousControl),this._control.ngControl&&this._control.ngControl.control&&(this._previousControlValidatorFn=this._control.ngControl.control.validator),this._previousControl=this._control),this._control.ngControl&&this._control.ngControl.control&&this._control.ngControl.control.validator!==this._previousControlValidatorFn&&this._changeDetectorRef.markForCheck()}ngOnDestroy(){this._stateChanges?.unsubscribe(),this._valueChanges?.unsubscribe(),this._describedByChanges?.unsubscribe(),this._destroyed.next(),this._destroyed.complete()}getLabelId=br(()=>this._hasFloatingLabel()?this._labelId:null);getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(e){let i=this._control,r="mat-mdc-form-field-type-";e&&this._elementRef.nativeElement.classList.remove(r+e.controlType),i.controlType&&this._elementRef.nativeElement.classList.add(r+i.controlType),this._stateChanges?.unsubscribe(),this._stateChanges=i.stateChanges.subscribe(()=>{this._updateFocusState(),this._changeDetectorRef.markForCheck()}),this._describedByChanges?.unsubscribe(),this._describedByChanges=i.stateChanges.pipe(Bt([void 0,void 0]),Ne(()=>[i.errorState,i.userAriaDescribedBy]),ag(),it(([[s,a],[o,l]])=>s!==o||a!==l)).subscribe(()=>this._syncDescribedByIds()),this._valueChanges?.unsubscribe(),i.ngControl&&i.ngControl.valueChanges&&(this._valueChanges=i.ngControl.valueChanges.pipe(Ye(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck()))}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(e=>!e._isText),this._hasTextPrefix=!!this._prefixChildren.find(e=>e._isText),this._hasIconSuffix=!!this._suffixChildren.find(e=>!e._isText),this._hasTextSuffix=!!this._suffixChildren.find(e=>e._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),Kt(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){this._control}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||this._isFocused===null)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0),uh(()=>{this._needsOutlineLabelOffsetUpdate&&(this._needsOutlineLabelOffsetUpdate=!1,this._updateOutlineLabelOffset())},{injector:this._injector}),this._dir.change.pipe(Ye(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdate=!0)}_shouldAlwaysFloat(){return this.floatLabel==="always"}_hasOutline(){return this.appearance==="outline"}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel=br(()=>!!this._labelChild());_shouldLabelFloat(){return this._hasFloatingLabel()?this._control.shouldLabelFloat||this._shouldAlwaysFloat():!1}_shouldForward(e){let i=this._control?this._control.ngControl:null;return i&&i[e]}_getSubscriptMessageType(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_handleLabelResized(){this._refreshOutlineNotchWidth()}_refreshOutlineNotchWidth(){!this._hasOutline()||!this._floatingLabel||!this._shouldLabelFloat()?this._notchedOutline?._setNotchWidth(0):this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth())}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){this._hintChildren}_syncDescribedByIds(){if(this._control){let e=[];if(this._control.userAriaDescribedBy&&typeof this._control.userAriaDescribedBy=="string"&&e.push(...this._control.userAriaDescribedBy.split(" ")),this._getSubscriptMessageType()==="hint"){let i=this._hintChildren?this._hintChildren.find(s=>s.align==="start"):null,r=this._hintChildren?this._hintChildren.find(s=>s.align==="end"):null;i?e.push(i.id):this._hintLabel&&e.push(this._hintLabelId),r&&e.push(r.id)}else this._errorChildren&&e.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(e)}}_updateOutlineLabelOffset(){if(!this._hasOutline()||!this._floatingLabel)return;let e=this._floatingLabel.element;if(!(this._iconPrefixContainer||this._textPrefixContainer)){e.style.transform="";return}if(!this._isAttachedToDom()){this._needsOutlineLabelOffsetUpdate=!0;return}let i=this._iconPrefixContainer?.nativeElement,r=this._textPrefixContainer?.nativeElement,s=this._iconSuffixContainer?.nativeElement,a=this._textSuffixContainer?.nativeElement,o=i?.getBoundingClientRect().width??0,l=r?.getBoundingClientRect().width??0,c=s?.getBoundingClientRect().width??0,u=a?.getBoundingClientRect().width??0,d=this._dir.value==="rtl"?"-1":"1",h=`${o+l}px`,f=`calc(${d} * (${h} + var(--mat-mdc-form-field-label-offset-x, 0px)))`;e.style.transform=`var( + --mat-mdc-form-field-label-transform, + ${fV} translateX(${f}) + )`;let p=o+l+c+u;this._elementRef.nativeElement.style.setProperty("--mat-form-field-notch-max-width",`calc(100% - ${p}px)`)}_isAttachedToDom(){let e=this._elementRef.nativeElement;if(e.getRootNode){let i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-form-field"]],contentQueries:function(i,r,s){if(i&1&&(Lw(s,r._labelChild,ds,5),Et(s,xl,5),Et(s,TT,5),Et(s,ET,5),Et(s,hb,5),Et(s,Ga,5)),i&2){Ow();let a;ke(a=Me())&&(r._formFieldControl=a.first),ke(a=Me())&&(r._prefixChildren=a),ke(a=Me())&&(r._suffixChildren=a),ke(a=Me())&&(r._errorChildren=a),ke(a=Me())&&(r._hintChildren=a)}},viewQuery:function(i,r){if(i&1&&(Pe(z$,5),Pe(H$,5),Pe(j$,5),Pe(W$,5),Pe(q$,5),Pe(CT,5),Pe(ST,5),Pe(xT,5)),i&2){let s;ke(s=Me())&&(r._textField=s.first),ke(s=Me())&&(r._iconPrefixContainer=s.first),ke(s=Me())&&(r._textPrefixContainer=s.first),ke(s=Me())&&(r._iconSuffixContainer=s.first),ke(s=Me())&&(r._textSuffixContainer=s.first),ke(s=Me())&&(r._floatingLabel=s.first),ke(s=Me())&&(r._notchedOutline=s.first),ke(s=Me())&&(r._lineRipple=s.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:40,hostBindings:function(i,r){i&2&&ye("mat-mdc-form-field-label-always-float",r._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",r._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",r._hasIconSuffix)("mat-form-field-invalid",r._control.errorState)("mat-form-field-disabled",r._control.disabled)("mat-form-field-autofilled",r._control.autofilled)("mat-form-field-appearance-fill",r.appearance=="fill")("mat-form-field-appearance-outline",r.appearance=="outline")("mat-form-field-hide-placeholder",r._hasFloatingLabel()&&!r._shouldLabelFloat())("mat-focused",r._control.focused)("mat-primary",r.color!=="accent"&&r.color!=="warn")("mat-accent",r.color==="accent")("mat-warn",r.color==="warn")("ng-untouched",r._shouldForward("untouched"))("ng-touched",r._shouldForward("touched"))("ng-pristine",r._shouldForward("pristine"))("ng-dirty",r._shouldForward("dirty"))("ng-valid",r._shouldForward("valid"))("ng-invalid",r._shouldForward("invalid"))("ng-pending",r._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[rt([{provide:Sl,useExisting:n},{provide:AT,useExisting:n}])],ngContentSelectors:K$,decls:20,vars:25,consts:[["labelTemplate",""],["textField",""],["iconPrefixContainer",""],["textPrefixContainer",""],["textSuffixContainer",""],["iconSuffixContainer",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],[1,"mat-mdc-form-field-focus-overlay"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen"],[1,"mat-mdc-form-field-icon-prefix"],[1,"mat-mdc-form-field-text-prefix"],[1,"mat-mdc-form-field-infix"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align"],["aria-atomic","true","aria-live","polite"],["matFormFieldFloatingLabel","",3,"floating","monitorResize","id"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[3,"id"],[1,"mat-mdc-form-field-hint-spacer"]],template:function(i,r){if(i&1){let s=ze();Qe(G$),oe(0,Z$,1,1,"ng-template",null,0,Ma),P(2,"div",6,1),X("click",function(o){return re(s),se(r._control.onContainerClick(o))}),oe(4,X$,1,0,"div",7),P(5,"div",8),oe(6,tV,2,2,"div",9)(7,iV,3,0,"div",10)(8,nV,3,0,"div",11),P(9,"div",12),oe(10,sV,1,1,null,13),Fe(11),U(),oe(12,aV,3,0,"div",14)(13,oV,3,0,"div",15),U(),oe(14,lV,1,0,"div",16),U(),P(15,"div",17),Nw(16),P(17,"div",18),oe(18,cV,1,0)(19,dV,4,1),U()()}if(i&2){let s;$(2),ye("mdc-text-field--filled",!r._hasOutline())("mdc-text-field--outlined",r._hasOutline())("mdc-text-field--no-label",!r._hasFloatingLabel())("mdc-text-field--disabled",r._control.disabled)("mdc-text-field--invalid",r._control.errorState),$(2),Je(!r._hasOutline()&&!r._control.disabled?4:-1),$(2),Je(r._hasOutline()?6:-1),$(),Je(r._hasIconPrefix?7:-1),$(),Je(r._hasTextPrefix?8:-1),$(2),Je(!r._hasOutline()||r._forceDisplayInfixLabel()?10:-1),$(2),Je(r._hasTextSuffix?12:-1),$(),Je(r._hasIconSuffix?13:-1),$(),Je(r._hasOutline()?-1:14),$(),ye("mat-mdc-form-field-subscript-dynamic-size",r.subscriptSizing==="dynamic");let a=r._getSubscriptMessageType();$(2),ye("mat-mdc-form-field-error-wrapper",a==="error")("mat-mdc-form-field-hint-wrapper",a==="hint"),$(),Je((s=a)==="error"?18:s==="hint"?19:-1)}},dependencies:[CT,ST,bh,xT,Ga],styles:[`.mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-moz-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-webkit-input-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive:-ms-input-placeholder{opacity:0}.mdc-text-field--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-filled-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mdc-outlined-text-field-caret-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mdc-filled-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color, var(--mat-sys-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 4%, transparent))}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)));padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)) + 4px);padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}@media(forced-colors: active){.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-filled-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-filled-text-field-hover-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-filled-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-filled-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-filled-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-filled-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-filled-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-filled-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-outlined-text-field-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-outlined-text-field-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-outlined-text-field-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-error-focus-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mdc-outlined-text-field-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mdc-outlined-text-field-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mdc-outlined-text-field-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-outline-color, var(--mat-sys-outline));border-width:var(--mdc-outlined-text-field-outline-width, 1px)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-hover-outline-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-focus-outline-color, var(--mat-sys-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-hover-outline-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-focus-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mdc-outlined-text-field-focus-outline-width, 2px)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),100% - max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-sys-corner-extra-small)))*2)}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none;--mat-form-field-notch-max-width: 100%}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1;border-bottom-width:var(--mdc-filled-text-field-active-indicator-height, 1px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color, var(--mat-sys-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color, var(--mat-sys-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height, 2px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color, var(--mat-sys-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color, var(--mat-sys-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all;will-change:auto}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto;will-change:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height, 56px);padding-top:var(--mat-form-field-filled-with-label-container-padding-top, 24px);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom, 8px)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding, 16px);padding-bottom:var(--mat-form-field-container-vertical-padding, 16px)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height, 56px)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height, 56px) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}@keyframes _mat-form-field-subscript-animation{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px;opacity:1;transform:translateY(0);animation:_mat-form-field-subscript-animation 0ms cubic-bezier(0.55, 0, 0.55, 0.2)}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block;color:var(--mat-form-field-error-text-color, var(--mat-sys-error))}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-sys-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-sys-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-sys-body-small-weight))}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color, var(--mat-sys-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity, 0)}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color, var(--mat-sys-neutral10))}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color, color-mix(in srgb, var(--mat-sys-neutral10) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none;color:var(--mat-form-field-enabled-select-arrow-color, var(--mat-sys-on-surface-variant))}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select.mat-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}@media(forced-colors: active){.mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}}@media(forced-colors: active){.mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-sys-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size)*var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-sys-error))}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color, var(--mat-sys-on-error-container))}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color, var(--mat-sys-error))}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field-infix:has(textarea[cols]){width:auto}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field.mat-form-field-animations-enabled .mat-mdc-form-field-error-wrapper{animation-duration:300ms}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)} +`],encapsulation:2,changeDetection:0})}return n})();var hs=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,dm,Oe]})}return n})();var DT=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["ng-component"]],hostAttrs:["cdk-text-field-style-loader",""],decls:0,vars:0,template:function(i,r){},styles:[`textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0 !important;box-sizing:content-box !important;height:auto !important;overflow:hidden !important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0 !important;box-sizing:content-box !important;height:0 !important}@keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms} +`],encapsulation:2,changeDetection:0})}return n})(),pV={passive:!0},RT=(()=>{class n{_platform=R(st);_ngZone=R(De);_renderer=R(Ri).createRenderer(null,null);_styleLoader=R(pt);_monitoredElements=new Map;constructor(){}monitor(e){if(!this._platform.isBrowser)return on;this._styleLoader.load(DT);let i=Oi(e),r=this._monitoredElements.get(i);if(r)return r.subject;let s=new ue,a="cdk-text-field-autofilled",o=c=>{c.animationName==="cdk-text-field-autofill-start"&&!i.classList.contains(a)?(i.classList.add(a),this._ngZone.run(()=>s.next({target:c.target,isAutofilled:!0}))):c.animationName==="cdk-text-field-autofill-end"&&i.classList.contains(a)&&(i.classList.remove(a),this._ngZone.run(()=>s.next({target:c.target,isAutofilled:!1})))},l=this._ngZone.runOutsideAngular(()=>(i.classList.add("cdk-text-field-autofill-monitored"),Ot(this._renderer,i,"animationstart",o,pV)));return this._monitoredElements.set(i,{subject:s,unlisten:l}),s}stopMonitoring(e){let i=Oi(e),r=this._monitoredElements.get(i);r&&(r.unlisten(),r.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((e,i)=>this.stopMonitoring(i))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var LT=(()=>{class n{_elementRef=R(Te);_platform=R(st);_ngZone=R(De);_renderer=R(Rt);_resizeEvents=new ue;_previousValue;_initialHeight;_destroyed=new ue;_listenerCleanups;_minRows;_maxRows;_enabled=!0;_previousMinRows=-1;_textareaElement;get minRows(){return this._minRows}set minRows(e){this._minRows=kr(e),this._setMinHeight()}get maxRows(){return this._maxRows}set maxRows(e){this._maxRows=kr(e),this._setMaxHeight()}get enabled(){return this._enabled}set enabled(e){this._enabled!==e&&((this._enabled=e)?this.resizeToFitContent(!0):this.reset())}get placeholder(){return this._textareaElement.placeholder}set placeholder(e){this._cachedPlaceholderHeight=void 0,e?this._textareaElement.setAttribute("placeholder",e):this._textareaElement.removeAttribute("placeholder"),this._cacheTextareaPlaceholderHeight()}_cachedLineHeight;_cachedPlaceholderHeight;_cachedScrollTop;_document=R(Ze,{optional:!0});_hasFocus;_isViewInited=!1;constructor(){R(pt).load(DT),this._textareaElement=this._elementRef.nativeElement}_setMinHeight(){let e=this.minRows&&this._cachedLineHeight?`${this.minRows*this._cachedLineHeight}px`:null;e&&(this._textareaElement.style.minHeight=e)}_setMaxHeight(){let e=this.maxRows&&this._cachedLineHeight?`${this.maxRows*this._cachedLineHeight}px`:null;e&&(this._textareaElement.style.maxHeight=e)}ngAfterViewInit(){this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(()=>{this._listenerCleanups=[this._renderer.listen("window","resize",()=>this._resizeEvents.next()),this._renderer.listen(this._textareaElement,"focus",this._handleFocusEvent),this._renderer.listen(this._textareaElement,"blur",this._handleFocusEvent)],this._resizeEvents.pipe(vc(16)).subscribe(()=>{this._cachedLineHeight=this._cachedPlaceholderHeight=void 0,this.resizeToFitContent(!0)})}),this._isViewInited=!0,this.resizeToFitContent(!0))}ngOnDestroy(){this._listenerCleanups?.forEach(e=>e()),this._resizeEvents.complete(),this._destroyed.next(),this._destroyed.complete()}_cacheTextareaLineHeight(){if(this._cachedLineHeight)return;let e=this._textareaElement.cloneNode(!1),i=e.style;e.rows=1,i.position="absolute",i.visibility="hidden",i.border="none",i.padding="0",i.height="",i.minHeight="",i.maxHeight="",i.top=i.bottom=i.left=i.right="auto",i.overflow="hidden",this._textareaElement.parentNode.appendChild(e),this._cachedLineHeight=e.clientHeight,e.remove(),this._setMinHeight(),this._setMaxHeight()}_measureScrollHeight(){let e=this._textareaElement,i=e.style.marginBottom||"",r=this._platform.FIREFOX,s=r&&this._hasFocus,a=r?"cdk-textarea-autosize-measuring-firefox":"cdk-textarea-autosize-measuring";s&&(e.style.marginBottom=`${e.clientHeight}px`),e.classList.add(a);let o=e.scrollHeight-4;return e.classList.remove(a),s&&(e.style.marginBottom=i),o}_cacheTextareaPlaceholderHeight(){if(!this._isViewInited||this._cachedPlaceholderHeight!=null)return;if(!this.placeholder){this._cachedPlaceholderHeight=0;return}let e=this._textareaElement.value;this._textareaElement.value=this._textareaElement.placeholder,this._cachedPlaceholderHeight=this._measureScrollHeight(),this._textareaElement.value=e}_handleFocusEvent=e=>{this._hasFocus=e.type==="focus"};ngDoCheck(){this._platform.isBrowser&&this.resizeToFitContent()}resizeToFitContent(e=!1){if(!this._enabled||(this._cacheTextareaLineHeight(),this._cacheTextareaPlaceholderHeight(),this._cachedScrollTop=this._textareaElement.scrollTop,!this._cachedLineHeight))return;let i=this._elementRef.nativeElement,r=i.value;if(!e&&this._minRows===this._previousMinRows&&r===this._previousValue)return;let s=this._measureScrollHeight(),a=Math.max(s,this._cachedPlaceholderHeight||0);i.style.height=`${a}px`,this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame<"u"?requestAnimationFrame(()=>this._scrollToCaretPosition(i)):setTimeout(()=>this._scrollToCaretPosition(i))}),this._previousValue=r,this._previousMinRows=this._minRows}reset(){this._initialHeight!==void 0&&(this._textareaElement.style.height=this._initialHeight)}_noopInputHandler(){}_scrollToCaretPosition(e){let{selectionStart:i,selectionEnd:r}=e;!this._destroyed.isStopped&&this._hasFocus&&(e.setSelectionRange(i,r),e.scrollTop=this._cachedScrollTop)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["textarea","cdkTextareaAutosize",""]],hostAttrs:["rows","1",1,"cdk-textarea-autosize"],hostBindings:function(i,r){i&1&&X("input",function(){return r._noopInputHandler()})},inputs:{minRows:[0,"cdkAutosizeMinRows","minRows"],maxRows:[0,"cdkAutosizeMaxRows","maxRows"],enabled:[2,"cdkTextareaAutosize","enabled",_e],placeholder:"placeholder"},exportAs:["cdkTextareaAutosize"]})}return n})(),OT=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({})}return n})();var NT=new J("MAT_INPUT_VALUE_ACCESSOR");var hf=(()=>{class n{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var kl=class{_defaultMatcher;ngControl;_parentFormGroup;_parentForm;_stateChanges;errorState=!1;matcher;constructor(t,e,i,r,s){this._defaultMatcher=t,this.ngControl=e,this._parentFormGroup=i,this._parentForm=r,this._stateChanges=s}updateErrorState(){let t=this.errorState,e=this._parentFormGroup||this._parentForm,i=this.matcher||this._defaultMatcher,r=this.ngControl?this.ngControl.control:null,s=i?.isErrorState(r,e)??!1;s!==t&&(this.errorState=s,this._stateChanges.next())}};var _V=["button","checkbox","file","hidden","image","radio","range","reset","submit"],bV=new J("MAT_INPUT_CONFIG"),Ml=(()=>{class n{_elementRef=R(Te);_platform=R(st);ngControl=R(Jn,{optional:!0,self:!0});_autofillMonitor=R(RT);_ngZone=R(De);_formField=R(Sl,{optional:!0});_renderer=R(Rt);_uid=R(At).getId("mat-input-");_previousNativeValue;_inputValueAccessor;_signalBasedValueAccessor;_previousPlaceholder;_errorStateTracker;_config=R(bV,{optional:!0});_cleanupIosKeyup;_cleanupWebkitWheel;_formFieldDescribedBy;_isServer;_isNativeSelect;_isTextarea;_isInFormField;focused=!1;stateChanges=new ue;controlType="mat-input";autofilled=!1;get disabled(){return this._disabled}set disabled(e){this._disabled=fn(e),this.focused&&(this.focused=!1,this.stateChanges.next())}_disabled=!1;get id(){return this._id}set id(e){this._id=e||this._uid}_id;placeholder;name;get required(){return this._required??this.ngControl?.control?.hasValidator(_n.required)??!1}set required(e){this._required=fn(e)}_required;get type(){return this._type}set type(e){let i=this._type;this._type=e||"text",this._validateType(),!this._isTextarea&&K_().has(this._type)&&(this._elementRef.nativeElement.type=this._type),this._type!==i&&this._ensureWheelDefaultBehavior()}_type="text";get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}userAriaDescribedBy;get value(){return this._signalBasedValueAccessor?this._signalBasedValueAccessor.value():this._inputValueAccessor.value}set value(e){e!==this.value&&(this._signalBasedValueAccessor?this._signalBasedValueAccessor.value.set(e):this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=fn(e)}_readonly=!1;disabledInteractive;get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}_neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(e=>K_().has(e));constructor(){let e=R(wu,{optional:!0}),i=R(xu,{optional:!0}),r=R(hf),s=R(NT,{optional:!0,self:!0}),a=this._elementRef.nativeElement,o=a.nodeName.toLowerCase();s?ka(s.value)?this._signalBasedValueAccessor=s:this._inputValueAccessor=s:this._inputValueAccessor=a,this._previousNativeValue=this.value,this.id=this.id,this._platform.IOS&&this._ngZone.runOutsideAngular(()=>{this._cleanupIosKeyup=this._renderer.listen(a,"keyup",this._iOSKeyupListener)}),this._errorStateTracker=new kl(r,this.ngControl,i,e,this.stateChanges),this._isServer=!this._platform.isBrowser,this._isNativeSelect=o==="select",this._isTextarea=o==="textarea",this._isInFormField=!!this._formField,this.disabledInteractive=this._config?.disabledInteractive||!1,this._isNativeSelect&&(this.controlType=a.multiple?"mat-native-select-multiple":"mat-native-select"),this._signalBasedValueAccessor&&gh(()=>{this._signalBasedValueAccessor.value(),this.stateChanges.next()})}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(e=>{this.autofilled=e.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._cleanupIosKeyup?.(),this._cleanupWebkitWheel?.()}ngDoCheck(){this.ngControl&&(this.updateErrorState(),this.ngControl.disabled!==null&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(e){this._elementRef.nativeElement.focus(e)}updateErrorState(){this._errorStateTracker.updateErrorState()}_focusChanged(e){if(e!==this.focused){if(!this._isNativeSelect&&e&&this.disabled&&this.disabledInteractive){let i=this._elementRef.nativeElement;i.type==="number"?(i.type="text",i.setSelectionRange(0,0),i.type="number"):i.setSelectionRange(0,0)}this.focused=e,this.stateChanges.next()}}_onInput(){}_dirtyCheckNativeValue(){let e=this._elementRef.nativeElement.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this.stateChanges.next())}_dirtyCheckPlaceholder(){let e=this._getPlaceholder();if(e!==this._previousPlaceholder){let i=this._elementRef.nativeElement;this._previousPlaceholder=e,e?i.setAttribute("placeholder",e):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){_V.indexOf(this._type)>-1}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let e=this._elementRef.nativeElement.validity;return e&&e.badInput}get empty(){return!this._isNeverEmpty()&&!this._elementRef.nativeElement.value&&!this._isBadInput()&&!this.autofilled}get shouldLabelFloat(){if(this._isNativeSelect){let e=this._elementRef.nativeElement,i=e.options[0];return this.focused||e.multiple||!this.empty||!!(e.selectedIndex>-1&&i&&i.label)}else return this.focused&&!this.disabled||!this.empty}setDescribedByIds(e){let i=this._elementRef.nativeElement,r=i.getAttribute("aria-describedby"),s;if(r){let a=this._formFieldDescribedBy||e;s=e.concat(r.split(" ").filter(o=>o&&!a.includes(o)))}else s=e;this._formFieldDescribedBy=e,s.length?i.setAttribute("aria-describedby",s.join(" ")):i.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){let e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}_iOSKeyupListener=e=>{let i=e.target;!i.value&&i.selectionStart===0&&i.selectionEnd===0&&(i.setSelectionRange(1,1),i.setSelectionRange(0,0))};_webkitBlinkWheelListener=()=>{};_ensureWheelDefaultBehavior(){this._cleanupWebkitWheel?.(),this._type==="number"&&(this._platform.BLINK||this._platform.WEBKIT)&&(this._cleanupWebkitWheel=this._renderer.listen(this._elementRef.nativeElement,"wheel",this._webkitBlinkWheelListener))}_getReadonlyAttribute(){return this._isNativeSelect?null:this.readonly||this.disabled&&this.disabledInteractive?"true":null}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:21,hostBindings:function(i,r){i&1&&X("focus",function(){return r._focusChanged(!0)})("blur",function(){return r._focusChanged(!1)})("input",function(){return r._onInput()}),i&2&&(Tn("id",r.id)("disabled",r.disabled&&!r.disabledInteractive)("required",r.required),Se("name",r.name||null)("readonly",r._getReadonlyAttribute())("aria-disabled",r.disabled&&r.disabledInteractive?"true":null)("aria-invalid",r.empty&&r.required?null:r.errorState)("aria-required",r.required)("id",r.id),ye("mat-input-server",r._isServer)("mat-mdc-form-field-textarea-control",r._isInFormField&&r._isTextarea)("mat-mdc-form-field-input-control",r._isInFormField)("mat-mdc-input-disabled-interactive",r.disabledInteractive)("mdc-text-field__input",r._isInFormField)("mat-mdc-native-select-inline",r._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly",disabledInteractive:[2,"disabledInteractive","disabledInteractive",_e]},exportAs:["matInput"],features:[rt([{provide:xl,useExisting:n}]),mt]})}return n})(),mb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,hs,hs,OT,Oe]})}return n})();function vV(n,t){if(n&1&&(P(0,"li"),B(1),U()),n&2){let e=t.$implicit;$(),je(" ",e.diagnostics," ")}}function yV(n,t){if(n&1&&(P(0,"mat-error")(1,"ul"),oe(2,vV,2,1,"li",7),U()()),n&2){let e=Y();$(2),j("ngForOf",e.operationOutcome.issue)}}function CV(n,t){if(n&1&&(P(0,"mat-hint"),B(1),U()),n&2){let e=Y();$(),je("Successfully created on server: ",e.structureMap.url," ")}}function wV(n,t){if(n&1&&(P(0,"li"),B(1),U()),n&2){let e=t.$implicit;$(),je(" ",e.diagnostics," ")}}function xV(n,t){if(n&1&&(P(0,"mat-error")(1,"ul"),oe(2,wV,2,1,"li",7),U()()),n&2){let e=Y();$(2),j("ngForOf",e.operationOutcomeTransformed.issue)}}var mf=class n{static{this.log=(0,FT.default)("app:")}constructor(t,e){this.cd=t,this.data=e,this.client=e.getFhirClient(),this.source=new us,this.map=new us,this.structureMap=null,this.map.valueChanges.pipe(Ii(1e3),mr()).subscribe(i=>{n.log("create StructureMap"),this.client.create({resourceType:"StructureMap",body:i,headers:{accept:"application/fhir+json","content-type":"text/fhir-mapping"}}).then(r=>{this.operationOutcome=null,this.structureMap=r,this.transform()}).catch(r=>{this.structureMap=null,this.operationOutcome=r.response.data})}),this.source.valueChanges.pipe(Ii(1e3),mr()).subscribe(i=>this.transform())}transform(){n.log("transform Source");let t=JSON.parse(this.source.value);this.structureMap!=null&&this.client.operation({name:"transform?source="+encodeURIComponent(this.structureMap.url),resourceType:"StructureMap",input:t}).then(e=>{this.operationOutcomeTransformed=null,this.transformed=e}).catch(e=>{this.transformed=null,this.operationOutcomeTransformed=e.response.data})}ngOnInit(){}fileSource(t){let e=new FileReader;if(t.target.files&&t.target.files.length){let[i]=t.target.files;e.readAsText(i),e.onload=()=>{this.source.setValue(e.result),this.cd.markForCheck()}}}fileChange(t){let e=new FileReader;if(t.target.files&&t.target.files.length){let[i]=t.target.files;e.readAsText(i),e.onload=()=>{this.map.setValue(e.result),this.cd.markForCheck()}}}static{this.\u0275fac=function(e){return new(e||n)(Ae(Ge),Ae(Dn))}}static{this.\u0275cmp=le({type:n,selectors:[["app-mapping-language"]],standalone:!1,decls:31,vars:8,consts:[[1,"card-maps"],[1,"fixtextarea"],["accept",".json","placeholder","Upload source","type","file",3,"change"],["cols","400","matNativeControl","","rows","15",3,"formControl"],["accept",".map","placeholder","Upload map","type","file",3,"change"],["cols","400","matNativeControl","","rows","20",3,"formControl"],[4,"ngIf"],[4,"ngFor","ngForOf"]],template:function(e,i){e&1&&(P(0,"mat-card",0)(1,"mat-card-content")(2,"mat-card-header")(3,"mat-card-title"),B(4,"Source"),U()(),P(5,"mat-form-field",1)(6,"mat-card-actions")(7,"input",2),X("change",function(s){return i.fileSource(s)}),U()(),P(8,"textarea",3),B(9," "),U()()()(),P(10,"mat-card",0)(11,"mat-card-content")(12,"mat-card-header")(13,"mat-card-title"),B(14,"FHIR Mapping Language map"),U()(),P(15,"mat-form-field",1)(16,"mat-card-actions")(17,"input",4),X("change",function(s){return i.fileChange(s)}),U()(),P(18,"textarea",5),B(19," "),U()(),oe(20,yV,3,1,"mat-error",6)(21,CV,2,1,"mat-hint",6),U()(),P(22,"mat-card",0)(23,"mat-card-content")(24,"mat-card-header")(25,"mat-card-title"),B(26,"Transformed"),U()(),oe(27,xV,3,1,"mat-error",6),P(28,"pre"),B(29),En(30,"json"),U()()()),e&2&&($(8),j("formControl",i.source),$(10),j("formControl",i.map),$(2),j("ngIf",i.operationOutcome),$(),j("ngIf",i.structureMap),$(6),j("ngIf",i.operationOutcomeTransformed),$(2),He(Kn(30,6,i.transformed)))},dependencies:[vr,di,Ir,Dr,er,hl,Lm,ml,Om,Rm,bn,Ga,Ka,Ml,Gw],styles:[".fixtextarea[_ngcontent-%COMP%]{display:inline}.card-maps[_ngcontent-%COMP%]{margin-bottom:10px}"]})}};var PT=(()=>{class n{constructor(){this.version=window.MATCHBOX_VERSION}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275cmp=le({type:n,selectors:[["app-settings"]],standalone:!1,decls:12,vars:1,consts:[["id","settings",1,"white-block"],["href","https://github.com/ahdis/matchbox","rel","external nofollow noopener","target","_blank"]],template:function(i,r){i&1&&(P(0,"div",0)(1,"h2"),B(2,"Matchbox settings"),U(),P(3,"h5"),B(4),U(),P(5,"p")(6,"em"),B(7,"There are no configurable settings here right now"),U()(),P(8,"p"),B(9," Source code: "),P(10,"a",1),B(11,"github.com/ahdis/matchbox"),U()()()),i&2&&($(4),je("Version ",r.version,""))},encapsulation:2})}}return n})();var UT=(()=>{class n{_animationMode=R(ot,{optional:!0});state="unchecked";disabled=!1;appearance="full";constructor(){}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(i,r){i&2&&ye("mat-pseudo-checkbox-indeterminate",r.state==="indeterminate")("mat-pseudo-checkbox-checked",r.state==="checked")("mat-pseudo-checkbox-disabled",r.disabled)("mat-pseudo-checkbox-minimal",r.appearance==="minimal")("mat-pseudo-checkbox-full",r.appearance==="full")("_mat-animation-noopable",r._animationMode==="NoopAnimations")},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(i,r){},styles:[`.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-minimal-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-primary))}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full{border-color:var(--mat-full-pseudo-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-full-pseudo-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-full-pseudo-checkbox-selected-icon-color, var(--mat-sys-primary));border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-full-pseudo-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-full-pseudo-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-full-pseudo-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px} +`],encapsulation:2,changeDetection:0})}return n})();var SV=["text"],kV=[[["mat-icon"]],"*"],MV=["mat-icon","*"];function TV(n,t){if(n&1&&te(0,"mat-pseudo-checkbox",1),n&2){let e=Y();j("disabled",e.disabled)("state",e.selected?"checked":"unchecked")}}function EV(n,t){if(n&1&&te(0,"mat-pseudo-checkbox",3),n&2){let e=Y();j("disabled",e.disabled)}}function AV(n,t){if(n&1&&(P(0,"span",4),B(1),U()),n&2){let e=Y();$(),je("(",e.group.label,")")}}var Tu=new J("MAT_OPTION_PARENT_COMPONENT"),Eu=new J("MatOptgroup");var Mu=class{source;isUserInput;constructor(t,e=!1){this.source=t,this.isUserInput=e}},Nn=(()=>{class n{_element=R(Te);_changeDetectorRef=R(Ge);_parent=R(Tu,{optional:!0});group=R(Eu,{optional:!0});_signalDisableRipple=!1;_selected=!1;_active=!1;_disabled=!1;_mostRecentViewValue="";get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}value;id=R(At).getId("mat-option-");get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(e){this._disabled=e}get disableRipple(){return this._signalDisableRipple?this._parent.disableRipple():!!this._parent?.disableRipple}get hideSingleSelectionIndicator(){return!!(this._parent&&this._parent.hideSingleSelectionIndicator)}onSelectionChange=new ce;_text;_stateChanges=new ue;constructor(){let e=R(pt);e.load(xi),e.load(Mr),this._signalDisableRipple=!!this._parent&&ka(this._parent.disableRipple)}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(e=!0){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}deselect(e=!0){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),e&&this._emitSelectionChangeEvent())}focus(e,i){let r=this._getHostElement();typeof r.focus=="function"&&r.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(e){(e.keyCode===13||e.keyCode===32)&&!wi(e)&&(this._selectViaInteraction(),e.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=this.multiple?!this._selected:!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){let e=this.viewValue;e!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=e)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(e=!1){this.onSelectionChange.emit(new Mu(this,e))}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-option"]],viewQuery:function(i,r){if(i&1&&Pe(SV,7),i&2){let s;ke(s=Me())&&(r._text=s.first)}},hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(i,r){i&1&&X("click",function(){return r._selectViaInteraction()})("keydown",function(a){return r._handleKeydown(a)}),i&2&&(Tn("id",r.id),Se("aria-selected",r.selected)("aria-disabled",r.disabled.toString()),ye("mdc-list-item--selected",r.selected)("mat-mdc-option-multiple",r.multiple)("mat-mdc-option-active",r.active)("mdc-list-item--disabled",r.disabled))},inputs:{value:"value",id:"id",disabled:[2,"disabled","disabled",_e]},outputs:{onSelectionChange:"onSelectionChange"},exportAs:["matOption"],ngContentSelectors:MV,decls:8,vars:5,consts:[["text",""],["aria-hidden","true",1,"mat-mdc-option-pseudo-checkbox",3,"disabled","state"],[1,"mdc-list-item__primary-text"],["state","checked","aria-hidden","true","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"],["aria-hidden","true","mat-ripple","",1,"mat-mdc-option-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled"]],template:function(i,r){i&1&&(Qe(kV),oe(0,TV,1,2,"mat-pseudo-checkbox",1),Fe(1),P(2,"span",2,0),Fe(4,1),U(),oe(5,EV,1,1,"mat-pseudo-checkbox",3)(6,AV,2,1,"span",4),te(7,"div",5)),i&2&&(Je(r.multiple?0:-1),$(5),Je(!r.multiple&&r.selected&&!r.hideSingleSelectionIndicator?5:-1),$(),Je(r.group&&r.group._inert?6:-1),$(),j("matRippleTrigger",r._getHostElement())("matRippleDisabled",r.disabled||r.disableRipple))},dependencies:[UT,pn],styles:[`.mat-mdc-option{-webkit-user-select:none;user-select:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;min-height:48px;padding:0 16px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--mat-option-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-option-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-option-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-option-label-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-option-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-option-label-text-weight, var(--mat-sys-body-large-weight))}.mat-mdc-option:hover:not(.mdc-list-item--disabled){background-color:var(--mat-option-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-option:focus.mdc-list-item,.mat-mdc-option.mat-mdc-option-active.mdc-list-item{background-color:var(--mat-option-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));outline:0}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple){background-color:var(--mat-option-selected-state-layer-color, var(--mat-sys-secondary-container))}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple) .mdc-list-item__primary-text{color:var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-option.mdc-list-item{align-items:center;background:rgba(0,0,0,0)}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}@media(forced-colors: active){.mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after{right:auto;left:16px}}.mat-mdc-option-multiple{--mdc-list-list-item-selected-container-color:var(--mdc-list-list-item-container-color, transparent)}.mat-mdc-option-active .mat-focus-indicator::before{content:""} +`],encapsulation:2,changeDetection:0})}return n})();function ff(n,t,e){if(e.length){let i=t.toArray(),r=e.toArray(),s=0;for(let a=0;ae+i?Math.max(0,n-i+t):e}var $T=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe]})}return n})();var Tl=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Ar,Oe,$T]})}return n})();var IV=new J("mat-autocomplete-scroll-strategy",{providedIn:"root",factory:()=>{let n=R(Gt);return()=>n.scrollStrategies.reposition()}});function DV(n){return()=>n.scrollStrategies.reposition()}var RV={provide:IV,deps:[Gt],useFactory:DV};var pb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({providers:[RV],imports:[Xn,Tl,Oe,gn,Tl,Oe]})}return n})();var LV={capture:!0},OV=["focus","mousedown","mouseenter","touchstart"],gb="mat-ripple-loader-uninitialized",_b="mat-ripple-loader-class-name",BT="mat-ripple-loader-centered",gf="mat-ripple-loader-disabled",zT=(()=>{class n{_document=R(Ze);_animationMode=R(ot,{optional:!0});_globalRippleOptions=R(Um,{optional:!0});_platform=R(st);_ngZone=R(De);_injector=R(ut);_eventCleanups;_hosts=new Map;constructor(){let e=R(Ri).createRenderer(null,null);this._eventCleanups=this._ngZone.runOutsideAngular(()=>OV.map(i=>Ot(e,this._document,i,this._onInteraction,LV)))}ngOnDestroy(){let e=this._hosts.keys();for(let i of e)this.destroyRipple(i);this._eventCleanups.forEach(i=>i())}configureRipple(e,i){e.setAttribute(gb,this._globalRippleOptions?.namespace??""),(i.className||!e.hasAttribute(_b))&&e.setAttribute(_b,i.className||""),i.centered&&e.setAttribute(BT,""),i.disabled&&e.setAttribute(gf,"")}setDisabled(e,i){let r=this._hosts.get(e);r?(r.target.rippleDisabled=i,!i&&!r.hasSetUpEvents&&(r.hasSetUpEvents=!0,r.renderer.setupTriggerEvents(e))):i?e.setAttribute(gf,""):e.removeAttribute(gf)}_onInteraction=e=>{let i=Li(e);if(i instanceof HTMLElement){let r=i.closest(`[${gb}="${this._globalRippleOptions?.namespace??""}"]`);r&&this._createRipple(r)}};_createRipple(e){if(!this._document||this._hosts.has(e))return;e.querySelector(".mat-ripple")?.remove();let i=this._document.createElement("span");i.classList.add("mat-ripple",e.getAttribute(_b)),e.append(i);let r=this._animationMode==="NoopAnimations",s=this._globalRippleOptions,a=r?0:s?.animation?.enterDuration??lu.enterDuration,o=r?0:s?.animation?.exitDuration??lu.exitDuration,l={rippleDisabled:r||s?.disabled||e.hasAttribute(gf),rippleConfig:{centered:e.hasAttribute(BT),terminateOnPointerUp:s?.terminateOnPointerUp,animation:{enterDuration:a,exitDuration:o}}},c=new cu(l,this._ngZone,i,this._platform,this._injector),u=!l.rippleDisabled;u&&c.setupTriggerEvents(e),this._hosts.set(e,{target:l,renderer:c,hasSetUpEvents:u}),e.removeAttribute(gb)}destroyRipple(e){let i=this._hosts.get(e);i&&(i.renderer._removeTriggerEvents(),this._hosts.delete(e))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var NV=["mat-icon-button",""],FV=["*"];var PV=new J("MAT_BUTTON_CONFIG");var UV=[{attribute:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{attribute:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{attribute:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{attribute:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{attribute:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],bb=(()=>{class n{_elementRef=R(Te);_ngZone=R(De);_animationMode=R(ot,{optional:!0});_focusMonitor=R(mn);_rippleLoader=R(zT);_isFab=!1;color;get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=e,this._updateRippleDisabled()}_disableRipple=!1;get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._updateRippleDisabled()}_disabled=!1;ariaDisabled;disabledInteractive;constructor(){R(pt).load(xi);let e=R(PV,{optional:!0}),i=this._elementRef.nativeElement,r=i.classList;this.disabledInteractive=e?.disabledInteractive??!1,this.color=e?.color??null,this._rippleLoader?.configureRipple(i,{className:"mat-mdc-button-ripple"});for(let{attribute:s,mdcClasses:a}of UV)i.hasAttribute(s)&&r.add(...a)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(e="program",i){e?this._focusMonitor.focusVia(this._elementRef.nativeElement,e,i):this._elementRef.nativeElement.focus(i)}_getAriaDisabled(){return this.ariaDisabled!=null?this.ariaDisabled:this.disabled&&this.disabledInteractive?!0:null}_getDisabledAttribute(){return this.disabledInteractive||!this.disabled?null:!0}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,inputs:{color:"color",disableRipple:[2,"disableRipple","disableRipple",_e],disabled:[2,"disabled","disabled",_e],ariaDisabled:[2,"aria-disabled","ariaDisabled",_e],disabledInteractive:[2,"disabledInteractive","disabledInteractive",_e]}})}return n})();var ra=(()=>{class n extends bb{constructor(){super(),this._rippleLoader.configureRipple(this._elementRef.nativeElement,{centered:!0})}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["button","mat-icon-button",""]],hostVars:14,hostBindings:function(i,r){i&2&&(Se("disabled",r._getDisabledAttribute())("aria-disabled",r._getAriaDisabled()),ft(r.color?"mat-"+r.color:""),ye("mat-mdc-button-disabled",r.disabled)("mat-mdc-button-disabled-interactive",r.disabledInteractive)("_mat-animation-noopable",r._animationMode==="NoopAnimations")("mat-unthemed",!r.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[Tt],attrs:NV,ngContentSelectors:FV,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,r){i&1&&(Qe(),te(0,"span",0),Fe(1),te(2,"span",1)(3,"span",2))},styles:[`.mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:50%;flex-shrink:0;text-align:center;width:var(--mdc-icon-button-state-layer-size, 40px);height:var(--mdc-icon-button-state-layer-size, 40px);padding:calc(calc(var(--mdc-icon-button-state-layer-size, 40px) - var(--mdc-icon-button-icon-size, 24px)) / 2);font-size:var(--mdc-icon-button-icon-size, 24px);color:var(--mdc-icon-button-icon-color, var(--mat-sys-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit}.mat-mdc-icon-button:focus>.mat-focus-indicator::before{content:"";border-radius:inherit}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface-variant) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-icon-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-icon-button-touch-target-display, block)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-icon-button-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mdc-icon-button-icon-size, 24px);height:var(--mdc-icon-button-icon-size, 24px);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button[hidden]{display:none}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1} +`,`@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button,.mat-mdc-outlined-button .mdc-button__ripple{outline:solid 1px}} +`],encapsulation:2,changeDetection:0})}return n})();var $V=["mat-button",""],VV=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],BV=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"];var ms=(()=>{class n extends bb{static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275cmp=le({type:n,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:14,hostBindings:function(i,r){i&2&&(Se("disabled",r._getDisabledAttribute())("aria-disabled",r._getAriaDisabled()),ft(r.color?"mat-"+r.color:""),ye("mat-mdc-button-disabled",r.disabled)("mat-mdc-button-disabled-interactive",r.disabledInteractive)("_mat-animation-noopable",r._animationMode==="NoopAnimations")("mat-unthemed",!r.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[Tt],attrs:$V,ngContentSelectors:BV,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,r){i&1&&(Qe(VV),te(0,"span",0),Fe(1),P(2,"span",1),Fe(3,1),U(),Fe(4,2),te(5,"span",2)(6,"span",3)),i&2&&ye("mdc-button__ripple",!r._isFab)("mdc-fab__ripple",r._isFab)},styles:[`.mat-mdc-button-base{text-decoration:none}.mdc-button{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__label{position:relative}.mat-mdc-button{padding:0 var(--mat-text-button-horizontal-padding, 12px);height:var(--mdc-text-button-container-height, 40px);font-family:var(--mdc-text-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-text-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-text-button-label-text-transform);font-weight:var(--mdc-text-button-label-text-weight, var(--mat-sys-label-large-weight))}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, var(--mat-sys-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 16px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display, block)}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-filled-button-container-height, 40px);font-family:var(--mdc-filled-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-filled-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-filled-button-label-text-transform);font-weight:var(--mdc-filled-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-filled-button-horizontal-padding, 24px)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color, var(--mat-sys-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-unelevated-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display, block)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, var(--mat-sys-on-primary));background-color:var(--mdc-filled-button-container-color, var(--mat-sys-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-filled-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:var(--mdc-protected-button-container-elevation-shadow, var(--mat-sys-level1));height:var(--mdc-protected-button-container-height, 40px);font-family:var(--mdc-protected-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-protected-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-protected-button-label-text-transform);font-weight:var(--mdc-protected-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-protected-button-horizontal-padding, 24px)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-raised-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-raised-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display, block)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, var(--mat-sys-primary));background-color:var(--mdc-protected-button-container-color, var(--mat-sys-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow, var(--mat-sys-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-protected-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow, var(--mat-sys-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-outlined-button-container-height, 40px);font-family:var(--mdc-outlined-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-outlined-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-outlined-button-label-text-transform);font-weight:var(--mdc-outlined-button-label-text-weight, var(--mat-sys-label-large-weight));border-radius:var(--mdc-outlined-button-container-shape, var(--mat-sys-corner-full));border-width:var(--mdc-outlined-button-outline-width, 1px);padding:0 var(--mat-outlined-button-horizontal-padding, 24px)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-outlined-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-outlined-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display, block)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, var(--mat-sys-primary));border-color:var(--mdc-outlined-button-outline-color, var(--mat-sys-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:var(--mdc-outlined-button-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-focus-indicator,.mat-mdc-unelevated-button .mat-focus-indicator,.mat-mdc-raised-button .mat-focus-indicator,.mat-mdc-outlined-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit}.mat-mdc-button:focus>.mat-focus-indicator::before,.mat-mdc-unelevated-button:focus>.mat-focus-indicator::before,.mat-mdc-raised-button:focus>.mat-focus-indicator::before,.mat-mdc-outlined-button:focus>.mat-focus-indicator::before{content:"";border-radius:inherit}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-focus-indicator::before,.mat-mdc-raised-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)} +`,`@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button,.mat-mdc-outlined-button .mdc-button__ripple{outline:solid 1px}} +`],encapsulation:2,changeDetection:0})}return n})();var fs=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,Ar,Oe]})}return n})();var zV=["mat-internal-form-field",""],HV=["*"],El=(()=>{class n{labelPosition;static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,r){i&2&&ye("mdc-form-field--align-end",r.labelPosition==="before")},inputs:{labelPosition:"labelPosition"},attrs:zV,ngContentSelectors:HV,decls:1,vars:0,template:function(i,r){i&1&&(Qe(),Fe(0))},styles:[`.mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0} +`],encapsulation:2,changeDetection:0})}return n})();var WV=["input"],qV=["label"],GV=["*"],KV=new J("mat-checkbox-default-options",{providedIn:"root",factory:jT});function jT(){return{color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1}}var Si=function(n){return n[n.Init=0]="Init",n[n.Checked=1]="Checked",n[n.Unchecked=2]="Unchecked",n[n.Indeterminate=3]="Indeterminate",n}(Si||{}),YV={provide:cs,useExisting:Ci(()=>Al),multi:!0},vb=class{source;checked},HT=jT(),Al=(()=>{class n{_elementRef=R(Te);_changeDetectorRef=R(Ge);_ngZone=R(De);_animationMode=R(ot,{optional:!0});_options=R(KV,{optional:!0});focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){let i=new vb;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return`${this.id||this._uniqueId}-input`}required;labelPosition="after";name=null;change=new ce;indeterminateChange=new ce;value;disableRipple;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=Si.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){R(pt).load(xi);let e=R(new un("tabindex"),{optional:!0});this._options=this._options||HT,this.color=this._options.color||HT.color,this.tabIndex=e==null?0:parseInt(e)||0,this.id=this._uniqueId=R(At).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??!1}ngOnChanges(e){e.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(e){e!=this.checked&&(this._checked=e,this._changeDetectorRef.markForCheck())}_checked=!1;get disabled(){return this._disabled}set disabled(e){e!==this.disabled&&(this._disabled=e,this._changeDetectorRef.markForCheck())}_disabled=!1;get indeterminate(){return this._indeterminate}set indeterminate(e){let i=e!=this._indeterminate;this._indeterminate=e,i&&(this._indeterminate?this._transitionCheckState(Si.Indeterminate):this._transitionCheckState(this.checked?Si.Checked:Si.Unchecked),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_indeterminate=!1;_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(e){this.checked=!!e}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}validate(e){return this.required&&e.value!==!0?{required:!0}:null}registerOnValidatorChange(e){this._validatorChangeFn=e}_transitionCheckState(e){let i=this._currentCheckState,r=this._getAnimationTargetElement();if(!(i===e||!r)&&(this._currentAnimationClass&&r.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){r.classList.add(this._currentAnimationClass);let s=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{r.classList.remove(s)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){let e=this._options?.clickAction;!this.disabled&&e!=="noop"?(this.indeterminate&&e!=="check"&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?Si.Checked:Si.Unchecked),this._emitChangeEvent()):(this.disabled&&this.disabledInteractive||!this.disabled&&e==="noop")&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate)}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if(this._animationMode==="NoopAnimations")return"";switch(e){case Si.Init:if(i===Si.Checked)return this._animationClasses.uncheckedToChecked;if(i==Si.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case Si.Unchecked:return i===Si.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case Si.Checked:return i===Si.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case Si.Indeterminate:return i===Si.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){let i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-checkbox"]],viewQuery:function(i,r){if(i&1&&(Pe(WV,5),Pe(qV,5)),i&2){let s;ke(s=Me())&&(r._inputElement=s.first),ke(s=Me())&&(r._labelElement=s.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(i,r){i&2&&(Tn("id",r.id),Se("tabindex",null)("aria-label",null)("aria-labelledby",null),ft(r.color?"mat-"+r.color:"mat-accent"),ye("_mat-animation-noopable",r._animationMode==="NoopAnimations")("mdc-checkbox--disabled",r.disabled)("mat-mdc-checkbox-disabled",r.disabled)("mat-mdc-checkbox-checked",r.checked)("mat-mdc-checkbox-disabled-interactive",r.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",_e],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",_e],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",_e],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?void 0:Ft(e)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",_e],checked:[2,"checked","checked",_e],disabled:[2,"disabled","disabled",_e],indeterminate:[2,"indeterminate","indeterminate",_e]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[rt([YV,{provide:na,useExisting:n,multi:!0}]),mt],ngContentSelectors:GV,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,r){if(i&1){let s=ze();Qe(),P(0,"div",3),X("click",function(o){return re(s),se(r._preventBubblingFromLabel(o))}),P(1,"div",4,0)(3,"div",5),X("click",function(){return re(s),se(r._onTouchTargetClick())}),U(),P(4,"input",6,1),X("blur",function(){return re(s),se(r._onBlur())})("click",function(){return re(s),se(r._onInputClick())})("change",function(o){return re(s),se(r._onInteractionEvent(o))}),U(),te(6,"div",7),P(7,"div",8),Ht(),P(8,"svg",9),te(9,"path",10),U(),Xr(),te(10,"div",11),U(),te(11,"div",12),U(),P(12,"label",13,2),Fe(14),U()()}if(i&2){let s=jt(2);j("labelPosition",r.labelPosition),$(4),ye("mdc-checkbox--selected",r.checked),j("checked",r.checked)("indeterminate",r.indeterminate)("disabled",r.disabled&&!r.disabledInteractive)("id",r.inputId)("required",r.required)("tabIndex",r.disabled&&!r.disabledInteractive?-1:r.tabIndex),Se("aria-label",r.ariaLabel||null)("aria-labelledby",r.ariaLabelledby)("aria-describedby",r.ariaDescribedby)("aria-checked",r.indeterminate?"mixed":null)("aria-controls",r.ariaControls)("aria-disabled",r.disabled&&r.disabledInteractive?!0:null)("aria-expanded",r.ariaExpanded)("aria-owns",r.ariaOwns)("name",r.name)("value",r.value),$(7),j("matRippleTrigger",s)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),$(),j("for",r.inputId)}},dependencies:[pn,El],styles:[`.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom;padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover>.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:hover>.mat-mdc-checkbox-ripple>.mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control+.mdc-checkbox__ripple{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;z-index:1;width:var(--mdc-checkbox-state-layer-size, 40px);height:var(--mdc-checkbox-state-layer-size, 40px);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox--disabled{cursor:default;pointer-events:none}@media(forced-colors: active){.mdc-checkbox--disabled{opacity:.5}}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mdc-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover>.mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-touch-target,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__native-control,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__ripple,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-ripple::before,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__mixedmark{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox .mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox .mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display, block)}.mat-mdc-checkbox .mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-focus-indicator::before{content:""} +`],encapsulation:2,changeDetection:0})}return n})();var Au=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Al,Oe,Oe]})}return n})();var yb=new J("MAT_DATE_LOCALE",{providedIn:"root",factory:QV});function QV(){return R($w)}var Il="Method not implemented",Xi=class{locale;_localeChanges=new ue;localeChanges=this._localeChanges;setTime(t,e,i,r){throw new Error(Il)}getHours(t){throw new Error(Il)}getMinutes(t){throw new Error(Il)}getSeconds(t){throw new Error(Il)}parseTime(t,e){throw new Error(Il)}addSeconds(t,e){throw new Error(Il)}getValidDateOrNull(t){return this.isDateInstance(t)&&this.isValid(t)?t:null}deserialize(t){return t==null||this.isDateInstance(t)&&this.isValid(t)?t:this.invalid()}setLocale(t){this.locale=t,this._localeChanges.next()}compareDate(t,e){return this.getYear(t)-this.getYear(e)||this.getMonth(t)-this.getMonth(e)||this.getDate(t)-this.getDate(e)}compareTime(t,e){return this.getHours(t)-this.getHours(e)||this.getMinutes(t)-this.getMinutes(e)||this.getSeconds(t)-this.getSeconds(e)}sameDate(t,e){if(t&&e){let i=this.isValid(t),r=this.isValid(e);return i&&r?!this.compareDate(t,e):i==r}return t==e}sameTime(t,e){if(t&&e){let i=this.isValid(t),r=this.isValid(e);return i&&r?!this.compareTime(t,e):i==r}return t==e}clampDate(t,e,i){return e&&this.compareDate(t,e)<0?e:i&&this.compareDate(t,i)>0?i:t}},Ya=new J("mat-date-formats");var ZV=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))?)?$/,XV=/^(\d?\d)[:.](\d?\d)(?:[:.](\d?\d))?\s*(AM|PM)?$/i;function Cb(n,t){let e=Array(n);for(let i=0;i{class n extends Xi{useUtcForDisplay=!1;_matDateLocale=R(yb,{optional:!0});constructor(){super();let e=R(yb,{optional:!0});e!==void 0&&(this._matDateLocale=e),super.setLocale(this._matDateLocale)}getYear(e){return e.getFullYear()}getMonth(e){return e.getMonth()}getDate(e){return e.getDate()}getDayOfWeek(e){return e.getDay()}getMonthNames(e){let i=new Intl.DateTimeFormat(this.locale,{month:e,timeZone:"utc"});return Cb(12,r=>this._format(i,new Date(2017,r,1)))}getDateNames(){let e=new Intl.DateTimeFormat(this.locale,{day:"numeric",timeZone:"utc"});return Cb(31,i=>this._format(e,new Date(2017,0,i+1)))}getDayOfWeekNames(e){let i=new Intl.DateTimeFormat(this.locale,{weekday:e,timeZone:"utc"});return Cb(7,r=>this._format(i,new Date(2017,0,r+1)))}getYearName(e){let i=new Intl.DateTimeFormat(this.locale,{year:"numeric",timeZone:"utc"});return this._format(i,e)}getFirstDayOfWeek(){if(typeof Intl<"u"&&Intl.Locale){let e=new Intl.Locale(this.locale),i=(e.getWeekInfo?.()||e.weekInfo)?.firstDay??0;return i===7?0:i}return 0}getNumDaysInMonth(e){return this.getDate(this._createDateWithOverflow(this.getYear(e),this.getMonth(e)+1,0))}clone(e){return new Date(e.getTime())}createDate(e,i,r){let s=this._createDateWithOverflow(e,i,r);return s.getMonth()!=i,s}today(){return new Date}parse(e,i){return typeof e=="number"?new Date(e):e?new Date(Date.parse(e)):null}format(e,i){if(!this.isValid(e))throw Error("NativeDateAdapter: Cannot format invalid date.");let r=new Intl.DateTimeFormat(this.locale,Le(H({},i),{timeZone:"utc"}));return this._format(r,e)}addCalendarYears(e,i){return this.addCalendarMonths(e,i*12)}addCalendarMonths(e,i){let r=this._createDateWithOverflow(this.getYear(e),this.getMonth(e)+i,this.getDate(e));return this.getMonth(r)!=((this.getMonth(e)+i)%12+12)%12&&(r=this._createDateWithOverflow(this.getYear(r),this.getMonth(r),0)),r}addCalendarDays(e,i){return this._createDateWithOverflow(this.getYear(e),this.getMonth(e),this.getDate(e)+i)}toIso8601(e){return[e.getUTCFullYear(),this._2digit(e.getUTCMonth()+1),this._2digit(e.getUTCDate())].join("-")}deserialize(e){if(typeof e=="string"){if(!e)return null;if(ZV.test(e)){let i=new Date(e);if(this.isValid(i))return i}}return super.deserialize(e)}isDateInstance(e){return e instanceof Date}isValid(e){return!isNaN(e.getTime())}invalid(){return new Date(NaN)}setTime(e,i,r,s){let a=this.clone(e);return a.setHours(i,r,s,0),a}getHours(e){return e.getHours()}getMinutes(e){return e.getMinutes()}getSeconds(e){return e.getSeconds()}parseTime(e,i){if(typeof e!="string")return e instanceof Date?new Date(e.getTime()):null;let r=e.trim();if(r.length===0)return null;let s=this._parseTimeString(r);if(s===null){let a=r.replace(/[^0-9:(AM|PM)]/gi,"").trim();a.length>0&&(s=this._parseTimeString(a))}return s||this.invalid()}addSeconds(e,i){return new Date(e.getTime()+i*1e3)}_createDateWithOverflow(e,i,r){let s=new Date;return s.setFullYear(e,i,r),s.setHours(0,0,0,0),s}_2digit(e){return("00"+e).slice(-2)}_format(e,i){let r=new Date;return r.setUTCFullYear(i.getFullYear(),i.getMonth(),i.getDate()),r.setUTCHours(i.getHours(),i.getMinutes(),i.getSeconds(),i.getMilliseconds()),e.format(r)}_parseTimeString(e){let i=e.toUpperCase().match(XV);if(i){let r=parseInt(i[1]),s=parseInt(i[2]),a=i[3]==null?void 0:parseInt(i[3]),o=i[4];if(r===12?r=o==="AM"?0:r:o==="PM"&&(r+=12),wb(r,0,23)&&wb(s,0,59)&&(a==null||wb(a,0,59)))return this.setTime(this.today(),r,s,a||0)}return null}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})();function wb(n,t,e){return!isNaN(n)&&n>=t&&n<=e}var e4={parse:{dateInput:null,timeInput:null},display:{dateInput:{year:"numeric",month:"numeric",day:"numeric"},timeInput:{hour:"numeric",minute:"numeric"},monthYearLabel:{year:"numeric",month:"short"},dateA11yLabel:{year:"numeric",month:"long",day:"numeric"},monthYearA11yLabel:{year:"numeric",month:"long"},timeOptionLabel:{hour:"numeric",minute:"numeric"}}};var xb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({providers:[t4()]})}return n})();function t4(n=e4){return[{provide:Xi,useClass:JV},{provide:Ya,useValue:n}]}var i4=["mat-calendar-body",""];function n4(n,t){return this._trackRow(t)}var ZT=(n,t)=>t.id;function r4(n,t){if(n&1&&(P(0,"tr",0)(1,"td",3),B(2),U()()),n&2){let e=Y();$(),Jt("padding-top",e._cellPadding)("padding-bottom",e._cellPadding),Se("colspan",e.numCols),$(),je(" ",e.label," ")}}function s4(n,t){if(n&1&&(P(0,"td",3),B(1),U()),n&2){let e=Y(2);Jt("padding-top",e._cellPadding)("padding-bottom",e._cellPadding),Se("colspan",e._firstRowOffset),$(),je(" ",e._firstRowOffset>=e.labelMinRequiredCells?e.label:""," ")}}function a4(n,t){if(n&1){let e=ze();P(0,"td",6)(1,"button",7),X("click",function(r){let s=re(e).$implicit,a=Y(2);return se(a._cellClicked(s,r))})("focus",function(r){let s=re(e).$implicit,a=Y(2);return se(a._emitActiveDateChange(s,r))}),P(2,"span",8),B(3),U(),te(4,"span",9),U()()}if(n&2){let e=t.$implicit,i=t.$index,r=Y().$index,s=Y();Jt("width",s._cellWidth)("padding-top",s._cellPadding)("padding-bottom",s._cellPadding),Se("data-mat-row",r)("data-mat-col",i),$(),ye("mat-calendar-body-disabled",!e.enabled)("mat-calendar-body-active",s._isActiveCell(r,i))("mat-calendar-body-range-start",s._isRangeStart(e.compareValue))("mat-calendar-body-range-end",s._isRangeEnd(e.compareValue))("mat-calendar-body-in-range",s._isInRange(e.compareValue))("mat-calendar-body-comparison-bridge-start",s._isComparisonBridgeStart(e.compareValue,r,i))("mat-calendar-body-comparison-bridge-end",s._isComparisonBridgeEnd(e.compareValue,r,i))("mat-calendar-body-comparison-start",s._isComparisonStart(e.compareValue))("mat-calendar-body-comparison-end",s._isComparisonEnd(e.compareValue))("mat-calendar-body-in-comparison-range",s._isInComparisonRange(e.compareValue))("mat-calendar-body-preview-start",s._isPreviewStart(e.compareValue))("mat-calendar-body-preview-end",s._isPreviewEnd(e.compareValue))("mat-calendar-body-in-preview",s._isInPreview(e.compareValue)),j("ngClass",e.cssClasses)("tabindex",s._isActiveCell(r,i)?0:-1),Se("aria-label",e.ariaLabel)("aria-disabled",!e.enabled||null)("aria-pressed",s._isSelected(e.compareValue))("aria-current",s.todayValue===e.compareValue?"date":null)("aria-describedby",s._getDescribedby(e.compareValue)),$(),ye("mat-calendar-body-selected",s._isSelected(e.compareValue))("mat-calendar-body-comparison-identical",s._isComparisonIdentical(e.compareValue))("mat-calendar-body-today",s.todayValue===e.compareValue),$(),je(" ",e.displayValue," ")}}function o4(n,t){if(n&1&&(P(0,"tr",1),oe(1,s4,2,6,"td",4),gr(2,a4,5,48,"td",5,ZT),U()),n&2){let e=t.$implicit,i=t.$index,r=Y();$(),Je(i===0&&r._firstRowOffset?1:-1),$(),_r(e)}}function l4(n,t){if(n&1&&(P(0,"th",2)(1,"span",6),B(2),U(),P(3,"span",3),B(4),U()()),n&2){let e=t.$implicit;$(2),He(e.long),$(2),He(e.narrow)}}var c4=["*"];function u4(n,t){}function d4(n,t){if(n&1){let e=ze();P(0,"mat-month-view",4),Vs("activeDateChange",function(r){re(e);let s=Y();return $s(s.activeDate,r)||(s.activeDate=r),se(r)}),X("_userSelection",function(r){re(e);let s=Y();return se(s._dateSelected(r))})("dragStarted",function(r){re(e);let s=Y();return se(s._dragStarted(r))})("dragEnded",function(r){re(e);let s=Y();return se(s._dragEnded(r))}),U()}if(n&2){let e=Y();Us("activeDate",e.activeDate),j("selected",e.selected)("dateFilter",e.dateFilter)("maxDate",e.maxDate)("minDate",e.minDate)("dateClass",e.dateClass)("comparisonStart",e.comparisonStart)("comparisonEnd",e.comparisonEnd)("startDateAccessibleName",e.startDateAccessibleName)("endDateAccessibleName",e.endDateAccessibleName)("activeDrag",e._activeDrag)}}function h4(n,t){if(n&1){let e=ze();P(0,"mat-year-view",5),Vs("activeDateChange",function(r){re(e);let s=Y();return $s(s.activeDate,r)||(s.activeDate=r),se(r)}),X("monthSelected",function(r){re(e);let s=Y();return se(s._monthSelectedInYearView(r))})("selectedChange",function(r){re(e);let s=Y();return se(s._goToDateInView(r,"month"))}),U()}if(n&2){let e=Y();Us("activeDate",e.activeDate),j("selected",e.selected)("dateFilter",e.dateFilter)("maxDate",e.maxDate)("minDate",e.minDate)("dateClass",e.dateClass)}}function m4(n,t){if(n&1){let e=ze();P(0,"mat-multi-year-view",6),Vs("activeDateChange",function(r){re(e);let s=Y();return $s(s.activeDate,r)||(s.activeDate=r),se(r)}),X("yearSelected",function(r){re(e);let s=Y();return se(s._yearSelectedInMultiYearView(r))})("selectedChange",function(r){re(e);let s=Y();return se(s._goToDateInView(r,"year"))}),U()}if(n&2){let e=Y();Us("activeDate",e.activeDate),j("selected",e.selected)("dateFilter",e.dateFilter)("maxDate",e.maxDate)("minDate",e.minDate)("dateClass",e.dateClass)}}function f4(n,t){}var p4=["button"],g4=[[["","matDatepickerToggleIcon",""]]],_4=["[matDatepickerToggleIcon]"];function b4(n,t){n&1&&(Ht(),P(0,"svg",2),te(1,"path",3),U())}var Rl=(()=>{class n{changes=new ue;calendarLabel="Calendar";openCalendarLabel="Open calendar";closeCalendarLabel="Close calendar";prevMonthLabel="Previous month";nextMonthLabel="Next month";prevYearLabel="Previous year";nextYearLabel="Next year";prevMultiYearLabel="Previous 24 years";nextMultiYearLabel="Next 24 years";switchToMonthViewLabel="Choose date";switchToMultiYearViewLabel="Choose month and year";startDateLabel="Start date";endDateLabel="End date";comparisonDateLabel="Comparison range";formatYearRange(e,i){return`${e} \u2013 ${i}`}formatYearRangeLabel(e,i){return`${e} to ${i}`}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),v4=0,Du=class{value;displayValue;ariaLabel;enabled;cssClasses;compareValue;rawValue;id=v4++;constructor(t,e,i,r,s={},a=t,o){this.value=t,this.displayValue=e,this.ariaLabel=i,this.enabled=r,this.cssClasses=s,this.compareValue=a,this.rawValue=o}},y4={passive:!1,capture:!0},bf={passive:!0,capture:!0},qT={passive:!0},Dl=(()=>{class n{_elementRef=R(Te);_ngZone=R(De);_platform=R(st);_intl=R(Rl);_eventCleanups;_skipNextFocus;_focusActiveCellAfterViewChecked=!1;label;rows;todayValue;startValue;endValue;labelMinRequiredCells;numCols=7;activeCell=0;ngAfterViewChecked(){this._focusActiveCellAfterViewChecked&&(this._focusActiveCell(),this._focusActiveCellAfterViewChecked=!1)}isRange=!1;cellAspectRatio=1;comparisonStart;comparisonEnd;previewStart=null;previewEnd=null;startDateAccessibleName;endDateAccessibleName;selectedValueChange=new ce;previewChange=new ce;activeDateChange=new ce;dragStarted=new ce;dragEnded=new ce;_firstRowOffset;_cellPadding;_cellWidth;_startDateLabelId;_endDateLabelId;_comparisonStartDateLabelId;_comparisonEndDateLabelId;_didDragSinceMouseDown=!1;_injector=R(ut);comparisonDateAccessibleName=this._intl.comparisonDateLabel;_trackRow=e=>e;constructor(){let e=R(Rt),i=R(At);this._startDateLabelId=i.getId("mat-calendar-body-start-"),this._endDateLabelId=i.getId("mat-calendar-body-end-"),this._comparisonStartDateLabelId=i.getId("mat-calendar-body-comparison-start-"),this._comparisonEndDateLabelId=i.getId("mat-calendar-body-comparison-end-"),R(pt).load(xi),this._ngZone.runOutsideAngular(()=>{let r=this._elementRef.nativeElement,s=[Ot(e,r,"touchmove",this._touchmoveHandler,y4),Ot(e,r,"mouseenter",this._enterHandler,bf),Ot(e,r,"focus",this._enterHandler,bf),Ot(e,r,"mouseleave",this._leaveHandler,bf),Ot(e,r,"blur",this._leaveHandler,bf),Ot(e,r,"mousedown",this._mousedownHandler,qT),Ot(e,r,"touchstart",this._mousedownHandler,qT)];this._platform.isBrowser&&s.push(e.listen("window","mouseup",this._mouseupHandler),e.listen("window","touchend",this._touchendHandler)),this._eventCleanups=s})}_cellClicked(e,i){this._didDragSinceMouseDown||e.enabled&&this.selectedValueChange.emit({value:e.value,event:i})}_emitActiveDateChange(e,i){e.enabled&&this.activeDateChange.emit({value:e.value,event:i})}_isSelected(e){return this.startValue===e||this.endValue===e}ngOnChanges(e){let i=e.numCols,{rows:r,numCols:s}=this;(e.rows||i)&&(this._firstRowOffset=r&&r.length&&r[0].length?s-r[0].length:0),(e.cellAspectRatio||i||!this._cellPadding)&&(this._cellPadding=`${50*this.cellAspectRatio/s}%`),(i||!this._cellWidth)&&(this._cellWidth=`${100/s}%`)}ngOnDestroy(){this._eventCleanups.forEach(e=>e())}_isActiveCell(e,i){let r=e*this.numCols+i;return e&&(r-=this._firstRowOffset),r==this.activeCell}_focusActiveCell(e=!0){Yt(()=>{setTimeout(()=>{let i=this._elementRef.nativeElement.querySelector(".mat-calendar-body-active");i&&(e||(this._skipNextFocus=!0),i.focus())})},{injector:this._injector})}_scheduleFocusActiveCellAfterViewChecked(){this._focusActiveCellAfterViewChecked=!0}_isRangeStart(e){return Mb(e,this.startValue,this.endValue)}_isRangeEnd(e){return Tb(e,this.startValue,this.endValue)}_isInRange(e){return Eb(e,this.startValue,this.endValue,this.isRange)}_isComparisonStart(e){return Mb(e,this.comparisonStart,this.comparisonEnd)}_isComparisonBridgeStart(e,i,r){if(!this._isComparisonStart(e)||this._isRangeStart(e)||!this._isInRange(e))return!1;let s=this.rows[i][r-1];if(!s){let a=this.rows[i-1];s=a&&a[a.length-1]}return s&&!this._isRangeEnd(s.compareValue)}_isComparisonBridgeEnd(e,i,r){if(!this._isComparisonEnd(e)||this._isRangeEnd(e)||!this._isInRange(e))return!1;let s=this.rows[i][r+1];if(!s){let a=this.rows[i+1];s=a&&a[0]}return s&&!this._isRangeStart(s.compareValue)}_isComparisonEnd(e){return Tb(e,this.comparisonStart,this.comparisonEnd)}_isInComparisonRange(e){return Eb(e,this.comparisonStart,this.comparisonEnd,this.isRange)}_isComparisonIdentical(e){return this.comparisonStart===this.comparisonEnd&&e===this.comparisonStart}_isPreviewStart(e){return Mb(e,this.previewStart,this.previewEnd)}_isPreviewEnd(e){return Tb(e,this.previewStart,this.previewEnd)}_isInPreview(e){return Eb(e,this.previewStart,this.previewEnd,this.isRange)}_getDescribedby(e){if(!this.isRange)return null;if(this.startValue===e&&this.endValue===e)return`${this._startDateLabelId} ${this._endDateLabelId}`;if(this.startValue===e)return this._startDateLabelId;if(this.endValue===e)return this._endDateLabelId;if(this.comparisonStart!==null&&this.comparisonEnd!==null){if(e===this.comparisonStart&&e===this.comparisonEnd)return`${this._comparisonStartDateLabelId} ${this._comparisonEndDateLabelId}`;if(e===this.comparisonStart)return this._comparisonStartDateLabelId;if(e===this.comparisonEnd)return this._comparisonEndDateLabelId}return null}_enterHandler=e=>{if(this._skipNextFocus&&e.type==="focus"){this._skipNextFocus=!1;return}if(e.target&&this.isRange){let i=this._getCellFromElement(e.target);i&&this._ngZone.run(()=>this.previewChange.emit({value:i.enabled?i:null,event:e}))}};_touchmoveHandler=e=>{if(!this.isRange)return;let i=GT(e),r=i?this._getCellFromElement(i):null;i!==e.target&&(this._didDragSinceMouseDown=!0),kb(e.target)&&e.preventDefault(),this._ngZone.run(()=>this.previewChange.emit({value:r?.enabled?r:null,event:e}))};_leaveHandler=e=>{this.previewEnd!==null&&this.isRange&&(e.type!=="blur"&&(this._didDragSinceMouseDown=!0),e.target&&this._getCellFromElement(e.target)&&!(e.relatedTarget&&this._getCellFromElement(e.relatedTarget))&&this._ngZone.run(()=>this.previewChange.emit({value:null,event:e})))};_mousedownHandler=e=>{if(!this.isRange)return;this._didDragSinceMouseDown=!1;let i=e.target&&this._getCellFromElement(e.target);!i||!this._isInRange(i.compareValue)||this._ngZone.run(()=>{this.dragStarted.emit({value:i.rawValue,event:e})})};_mouseupHandler=e=>{if(!this.isRange)return;let i=kb(e.target);if(!i){this._ngZone.run(()=>{this.dragEnded.emit({value:null,event:e})});return}i.closest(".mat-calendar-body")===this._elementRef.nativeElement&&this._ngZone.run(()=>{let r=this._getCellFromElement(i);this.dragEnded.emit({value:r?.rawValue??null,event:e})})};_touchendHandler=e=>{let i=GT(e);i&&this._mouseupHandler({target:i})};_getCellFromElement(e){let i=kb(e);if(i){let r=i.getAttribute("data-mat-row"),s=i.getAttribute("data-mat-col");if(r&&s)return this.rows[parseInt(r)][parseInt(s)]}return null}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["","mat-calendar-body",""]],hostAttrs:[1,"mat-calendar-body"],inputs:{label:"label",rows:"rows",todayValue:"todayValue",startValue:"startValue",endValue:"endValue",labelMinRequiredCells:"labelMinRequiredCells",numCols:"numCols",activeCell:"activeCell",isRange:"isRange",cellAspectRatio:"cellAspectRatio",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd",previewStart:"previewStart",previewEnd:"previewEnd",startDateAccessibleName:"startDateAccessibleName",endDateAccessibleName:"endDateAccessibleName"},outputs:{selectedValueChange:"selectedValueChange",previewChange:"previewChange",activeDateChange:"activeDateChange",dragStarted:"dragStarted",dragEnded:"dragEnded"},exportAs:["matCalendarBody"],features:[mt],attrs:i4,decls:11,vars:11,consts:[["aria-hidden","true"],["role","row"],[1,"mat-calendar-body-hidden-label",3,"id"],[1,"mat-calendar-body-label"],[1,"mat-calendar-body-label",3,"paddingTop","paddingBottom"],["role","gridcell",1,"mat-calendar-body-cell-container",3,"width","paddingTop","paddingBottom"],["role","gridcell",1,"mat-calendar-body-cell-container"],["type","button",1,"mat-calendar-body-cell",3,"click","focus","ngClass","tabindex"],[1,"mat-calendar-body-cell-content","mat-focus-indicator"],["aria-hidden","true",1,"mat-calendar-body-cell-preview"]],template:function(i,r){i&1&&(oe(0,r4,3,6,"tr",0),gr(1,o4,4,1,"tr",1,n4,!0),P(3,"span",2),B(4),U(),P(5,"span",2),B(6),U(),P(7,"span",2),B(8),U(),P(9,"span",2),B(10),U()),i&2&&(Je(r._firstRowOffset.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){color:var(--mat-datepicker-calendar-date-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:var(--mat-datepicker-calendar-date-today-disabled-state-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mat-calendar-body-disabled{opacity:.5}}.mat-calendar-body-cell-content{top:5%;left:5%;z-index:1;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:90%;height:90%;line-height:1;border-width:1px;border-style:solid;border-radius:999px;color:var(--mat-datepicker-calendar-date-text-color, var(--mat-sys-on-surface));border-color:var(--mat-datepicker-calendar-date-outline-color, transparent)}.mat-calendar-body-cell-content.mat-focus-indicator{position:absolute}@media(forced-colors: active){.mat-calendar-body-cell-content{border:none}}.cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:var(--mat-datepicker-calendar-date-focus-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}@media(hover: hover){.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:var(--mat-datepicker-calendar-date-hover-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}}.mat-calendar-body-selected{background-color:var(--mat-datepicker-calendar-date-selected-state-background-color, var(--mat-sys-primary));color:var(--mat-datepicker-calendar-date-selected-state-text-color, var(--mat-sys-on-primary))}.mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:var(--mat-datepicker-calendar-date-selected-disabled-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-calendar-body-selected.mat-calendar-body-today{box-shadow:inset 0 0 0 1px var(--mat-datepicker-calendar-date-today-selected-state-outline-color, var(--mat-sys-primary))}.mat-calendar-body-in-range::before{background:var(--mat-datepicker-calendar-date-in-range-state-background-color, var(--mat-sys-primary-container))}.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range::before{background:var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color, var(--mat-sys-tertiary-container))}.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range::before{background:var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color, var(--mat-sys-tertiary-container))}.mat-calendar-body-comparison-bridge-start::before,[dir=rtl] .mat-calendar-body-comparison-bridge-end::before{background:linear-gradient(to right, var(--mat-datepicker-calendar-date-in-range-state-background-color, var(--mat-sys-primary-container)) 50%, var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color, var(--mat-sys-tertiary-container)) 50%)}.mat-calendar-body-comparison-bridge-end::before,[dir=rtl] .mat-calendar-body-comparison-bridge-start::before{background:linear-gradient(to left, var(--mat-datepicker-calendar-date-in-range-state-background-color, var(--mat-sys-primary-container)) 50%, var(--mat-datepicker-calendar-date-in-comparison-range-state-background-color, var(--mat-sys-tertiary-container)) 50%)}.mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after{background:var(--mat-datepicker-calendar-date-in-overlap-range-state-background-color, var(--mat-sys-secondary-container))}.mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:var(--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color, var(--mat-sys-secondary))}@media(forced-colors: active){.mat-datepicker-popup:not(:empty),.mat-calendar-body-cell:not(.mat-calendar-body-in-range) .mat-calendar-body-selected{outline:solid 1px}.mat-calendar-body-today{outline:dotted 1px}.mat-calendar-body-cell::before,.mat-calendar-body-cell::after,.mat-calendar-body-selected{background:none}.mat-calendar-body-in-range::before,.mat-calendar-body-comparison-bridge-start::before,.mat-calendar-body-comparison-bridge-end::before{border-top:solid 1px;border-bottom:solid 1px}.mat-calendar-body-range-start::before{border-left:solid 1px}[dir=rtl] .mat-calendar-body-range-start::before{border-left:0;border-right:solid 1px}.mat-calendar-body-range-end::before{border-right:solid 1px}[dir=rtl] .mat-calendar-body-range-end::before{border-right:0;border-left:solid 1px}.mat-calendar-body-in-comparison-range::before{border-top:dashed 1px;border-bottom:dashed 1px}.mat-calendar-body-comparison-start::before{border-left:dashed 1px}[dir=rtl] .mat-calendar-body-comparison-start::before{border-left:0;border-right:dashed 1px}.mat-calendar-body-comparison-end::before{border-right:dashed 1px}[dir=rtl] .mat-calendar-body-comparison-end::before{border-right:0;border-left:dashed 1px}} +`],encapsulation:2,changeDetection:0})}return n})();function Sb(n){return n?.nodeName==="TD"}function kb(n){let t;return Sb(n)?t=n:Sb(n.parentNode)?t=n.parentNode:Sb(n.parentNode?.parentNode)&&(t=n.parentNode.parentNode),t?.getAttribute("data-mat-row")!=null?t:null}function Mb(n,t,e){return e!==null&&t!==e&&n=t&&n===e}function Eb(n,t,e,i){return i&&t!==null&&e!==null&&t!==e&&n>=t&&n<=e}function GT(n){let t=n.changedTouches[0];return document.elementFromPoint(t.clientX,t.clientY)}var Fn=class{start;end;_disableStructuralEquivalency;constructor(t,e){this.start=t,this.end=e}},vf=(()=>{class n{selection;_adapter;_selectionChanged=new ue;selectionChanged=this._selectionChanged;constructor(e,i){this.selection=e,this._adapter=i,this.selection=e}updateSelection(e,i){let r=this.selection;this.selection=e,this._selectionChanged.next({selection:e,source:i,oldValue:r})}ngOnDestroy(){this._selectionChanged.complete()}_isValidDateInstance(e){return this._adapter.isDateInstance(e)&&this._adapter.isValid(e)}static \u0275fac=function(i){dh()};static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})(),C4=(()=>{class n extends vf{constructor(e){super(null,e)}add(e){super.updateSelection(e,this)}isValid(){return this.selection!=null&&this._isValidDateInstance(this.selection)}isComplete(){return this.selection!=null}clone(){let e=new n(this._adapter);return e.updateSelection(this.selection,this),e}static \u0275fac=function(i){return new(i||n)(Re(Xi))};static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})();function w4(n,t){return n||new C4(t)}var x4={provide:vf,deps:[[new Io,new yc,vf],Xi],useFactory:w4};var XT=new J("MAT_DATE_RANGE_SELECTION_STRATEGY");var Ab=7,S4=0,KT=(()=>{class n{_changeDetectorRef=R(Ge);_dateFormats=R(Ya,{optional:!0});_dateAdapter=R(Xi,{optional:!0});_dir=R(ti,{optional:!0});_rangeStrategy=R(XT,{optional:!0});_rerenderSubscription=St.EMPTY;_selectionKeyPressed;get activeDate(){return this._activeDate}set activeDate(e){let i=this._activeDate,r=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(r,this.minDate,this.maxDate),this._hasSameMonthAndYear(i,this._activeDate)||this._init()}_activeDate;get selected(){return this._selected}set selected(e){e instanceof Fn?this._selected=e:this._selected=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e)),this._setRanges(this._selected)}_selected;get minDate(){return this._minDate}set minDate(e){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_minDate;get maxDate(){return this._maxDate}set maxDate(e){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_maxDate;dateFilter;dateClass;comparisonStart;comparisonEnd;startDateAccessibleName;endDateAccessibleName;activeDrag=null;selectedChange=new ce;_userSelection=new ce;dragStarted=new ce;dragEnded=new ce;activeDateChange=new ce;_matCalendarBody;_monthLabel;_weeks;_firstWeekOffset;_rangeStart;_rangeEnd;_comparisonRangeStart;_comparisonRangeEnd;_previewStart;_previewEnd;_isRange;_todayDate;_weekdays;constructor(){R(pt).load(Mr),this._activeDate=this._dateAdapter.today()}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe(Bt(null)).subscribe(()=>this._init())}ngOnChanges(e){let i=e.comparisonStart||e.comparisonEnd;i&&!i.firstChange&&this._setRanges(this.selected),e.activeDrag&&!this.activeDrag&&this._clearPreview()}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_dateSelected(e){let i=e.value,r=this._getDateFromDayOfMonth(i),s,a;this._selected instanceof Fn?(s=this._getDateInCurrentMonth(this._selected.start),a=this._getDateInCurrentMonth(this._selected.end)):s=a=this._getDateInCurrentMonth(this._selected),(s!==i||a!==i)&&this.selectedChange.emit(r),this._userSelection.emit({value:r,event:e.event}),this._clearPreview(),this._changeDetectorRef.markForCheck()}_updateActiveDate(e){let i=e.value,r=this._activeDate;this.activeDate=this._getDateFromDayOfMonth(i),this._dateAdapter.compareDate(r,this.activeDate)&&this.activeDateChange.emit(this._activeDate)}_handleCalendarBodyKeydown(e){let i=this._activeDate,r=this._isRtl();switch(e.keyCode){case 37:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,r?1:-1);break;case 39:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,r?-1:1);break;case 38:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,-7);break;case 40:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,7);break;case 36:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,1-this._dateAdapter.getDate(this._activeDate));break;case 35:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,this._dateAdapter.getNumDaysInMonth(this._activeDate)-this._dateAdapter.getDate(this._activeDate));break;case 33:this.activeDate=e.altKey?this._dateAdapter.addCalendarYears(this._activeDate,-1):this._dateAdapter.addCalendarMonths(this._activeDate,-1);break;case 34:this.activeDate=e.altKey?this._dateAdapter.addCalendarYears(this._activeDate,1):this._dateAdapter.addCalendarMonths(this._activeDate,1);break;case 13:case 32:this._selectionKeyPressed=!0,this._canSelect(this._activeDate)&&e.preventDefault();return;case 27:this._previewEnd!=null&&!wi(e)&&(this._clearPreview(),this.activeDrag?this.dragEnded.emit({value:null,event:e}):(this.selectedChange.emit(null),this._userSelection.emit({value:null,event:e})),e.preventDefault(),e.stopPropagation());return;default:return}this._dateAdapter.compareDate(i,this.activeDate)&&(this.activeDateChange.emit(this.activeDate),this._focusActiveCellAfterViewChecked()),e.preventDefault()}_handleCalendarBodyKeyup(e){(e.keyCode===32||e.keyCode===13)&&(this._selectionKeyPressed&&this._canSelect(this._activeDate)&&this._dateSelected({value:this._dateAdapter.getDate(this._activeDate),event:e}),this._selectionKeyPressed=!1)}_init(){this._setRanges(this.selected),this._todayDate=this._getCellCompareValue(this._dateAdapter.today()),this._monthLabel=this._dateFormats.display.monthLabel?this._dateAdapter.format(this.activeDate,this._dateFormats.display.monthLabel):this._dateAdapter.getMonthNames("short")[this._dateAdapter.getMonth(this.activeDate)].toLocaleUpperCase();let e=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),this._dateAdapter.getMonth(this.activeDate),1);this._firstWeekOffset=(Ab+this._dateAdapter.getDayOfWeek(e)-this._dateAdapter.getFirstDayOfWeek())%Ab,this._initWeekdays(),this._createWeekCells(),this._changeDetectorRef.markForCheck()}_focusActiveCell(e){this._matCalendarBody._focusActiveCell(e)}_focusActiveCellAfterViewChecked(){this._matCalendarBody._scheduleFocusActiveCellAfterViewChecked()}_previewChanged({event:e,value:i}){if(this._rangeStrategy){let r=i?i.rawValue:null,s=this._rangeStrategy.createPreview(r,this.selected,e);if(this._previewStart=this._getCellCompareValue(s.start),this._previewEnd=this._getCellCompareValue(s.end),this.activeDrag&&r){let a=this._rangeStrategy.createDrag?.(this.activeDrag.value,this.selected,r,e);a&&(this._previewStart=this._getCellCompareValue(a.start),this._previewEnd=this._getCellCompareValue(a.end))}this._changeDetectorRef.detectChanges()}}_dragEnded(e){if(this.activeDrag)if(e.value){let i=this._rangeStrategy?.createDrag?.(this.activeDrag.value,this.selected,e.value,e.event);this.dragEnded.emit({value:i??null,event:e.event})}else this.dragEnded.emit({value:null,event:e.event})}_getDateFromDayOfMonth(e){return this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),this._dateAdapter.getMonth(this.activeDate),e)}_initWeekdays(){let e=this._dateAdapter.getFirstDayOfWeek(),i=this._dateAdapter.getDayOfWeekNames("narrow"),s=this._dateAdapter.getDayOfWeekNames("long").map((a,o)=>({long:a,narrow:i[o],id:S4++}));this._weekdays=s.slice(e).concat(s.slice(0,e))}_createWeekCells(){let e=this._dateAdapter.getNumDaysInMonth(this.activeDate),i=this._dateAdapter.getDateNames();this._weeks=[[]];for(let r=0,s=this._firstWeekOffset;r=0)&&(!this.maxDate||this._dateAdapter.compareDate(e,this.maxDate)<=0)&&(!this.dateFilter||this.dateFilter(e))}_getDateInCurrentMonth(e){return e&&this._hasSameMonthAndYear(e,this.activeDate)?this._dateAdapter.getDate(e):null}_hasSameMonthAndYear(e,i){return!!(e&&i&&this._dateAdapter.getMonth(e)==this._dateAdapter.getMonth(i)&&this._dateAdapter.getYear(e)==this._dateAdapter.getYear(i))}_getCellCompareValue(e){if(e){let i=this._dateAdapter.getYear(e),r=this._dateAdapter.getMonth(e),s=this._dateAdapter.getDate(e);return new Date(i,r,s).getTime()}return null}_isRtl(){return this._dir&&this._dir.value==="rtl"}_setRanges(e){e instanceof Fn?(this._rangeStart=this._getCellCompareValue(e.start),this._rangeEnd=this._getCellCompareValue(e.end),this._isRange=!0):(this._rangeStart=this._rangeEnd=this._getCellCompareValue(e),this._isRange=!1),this._comparisonRangeStart=this._getCellCompareValue(this.comparisonStart),this._comparisonRangeEnd=this._getCellCompareValue(this.comparisonEnd)}_canSelect(e){return!this.dateFilter||this.dateFilter(e)}_clearPreview(){this._previewStart=this._previewEnd=null}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-month-view"]],viewQuery:function(i,r){if(i&1&&Pe(Dl,5),i&2){let s;ke(s=Me())&&(r._matCalendarBody=s.first)}},inputs:{activeDate:"activeDate",selected:"selected",minDate:"minDate",maxDate:"maxDate",dateFilter:"dateFilter",dateClass:"dateClass",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd",startDateAccessibleName:"startDateAccessibleName",endDateAccessibleName:"endDateAccessibleName",activeDrag:"activeDrag"},outputs:{selectedChange:"selectedChange",_userSelection:"_userSelection",dragStarted:"dragStarted",dragEnded:"dragEnded",activeDateChange:"activeDateChange"},exportAs:["matMonthView"],features:[mt],decls:8,vars:14,consts:[["role","grid",1,"mat-calendar-table"],[1,"mat-calendar-table-header"],["scope","col"],["aria-hidden","true"],["colspan","7",1,"mat-calendar-table-header-divider"],["mat-calendar-body","",3,"selectedValueChange","activeDateChange","previewChange","dragStarted","dragEnded","keyup","keydown","label","rows","todayValue","startValue","endValue","comparisonStart","comparisonEnd","previewStart","previewEnd","isRange","labelMinRequiredCells","activeCell","startDateAccessibleName","endDateAccessibleName"],[1,"cdk-visually-hidden"]],template:function(i,r){i&1&&(P(0,"table",0)(1,"thead",1)(2,"tr"),gr(3,l4,5,2,"th",2,ZT),U(),P(5,"tr",3),te(6,"th",4),U()(),P(7,"tbody",5),X("selectedValueChange",function(a){return r._dateSelected(a)})("activeDateChange",function(a){return r._updateActiveDate(a)})("previewChange",function(a){return r._previewChanged(a)})("dragStarted",function(a){return r.dragStarted.emit(a)})("dragEnded",function(a){return r._dragEnded(a)})("keyup",function(a){return r._handleCalendarBodyKeyup(a)})("keydown",function(a){return r._handleCalendarBodyKeydown(a)}),U()()),i&2&&($(3),_r(r._weekdays),$(4),j("label",r._monthLabel)("rows",r._weeks)("todayValue",r._todayDate)("startValue",r._rangeStart)("endValue",r._rangeEnd)("comparisonStart",r._comparisonRangeStart)("comparisonEnd",r._comparisonRangeEnd)("previewStart",r._previewStart)("previewEnd",r._previewEnd)("isRange",r._isRange)("labelMinRequiredCells",3)("activeCell",r._dateAdapter.getDate(r.activeDate)-1)("startDateAccessibleName",r.startDateAccessibleName)("endDateAccessibleName",r.endDateAccessibleName))},dependencies:[Dl],encapsulation:2,changeDetection:0})}return n})(),Cn=24,Ib=4,YT=(()=>{class n{_changeDetectorRef=R(Ge);_dateAdapter=R(Xi,{optional:!0});_dir=R(ti,{optional:!0});_rerenderSubscription=St.EMPTY;_selectionKeyPressed;get activeDate(){return this._activeDate}set activeDate(e){let i=this._activeDate,r=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(r,this.minDate,this.maxDate),JT(this._dateAdapter,i,this._activeDate,this.minDate,this.maxDate)||this._init()}_activeDate;get selected(){return this._selected}set selected(e){e instanceof Fn?this._selected=e:this._selected=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e)),this._setSelectedYear(e)}_selected;get minDate(){return this._minDate}set minDate(e){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_minDate;get maxDate(){return this._maxDate}set maxDate(e){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_maxDate;dateFilter;dateClass;selectedChange=new ce;yearSelected=new ce;activeDateChange=new ce;_matCalendarBody;_years;_todayYear;_selectedYear;constructor(){this._dateAdapter,this._activeDate=this._dateAdapter.today()}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe(Bt(null)).subscribe(()=>this._init())}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_init(){this._todayYear=this._dateAdapter.getYear(this._dateAdapter.today());let i=this._dateAdapter.getYear(this._activeDate)-Iu(this._dateAdapter,this.activeDate,this.minDate,this.maxDate);this._years=[];for(let r=0,s=[];rthis._createCellForYear(a))),s=[]);this._changeDetectorRef.markForCheck()}_yearSelected(e){let i=e.value,r=this._dateAdapter.createDate(i,0,1),s=this._getDateFromYear(i);this.yearSelected.emit(r),this.selectedChange.emit(s)}_updateActiveDate(e){let i=e.value,r=this._activeDate;this.activeDate=this._getDateFromYear(i),this._dateAdapter.compareDate(r,this.activeDate)&&this.activeDateChange.emit(this.activeDate)}_handleCalendarBodyKeydown(e){let i=this._activeDate,r=this._isRtl();switch(e.keyCode){case 37:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,r?1:-1);break;case 39:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,r?-1:1);break;case 38:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,-Ib);break;case 40:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,Ib);break;case 36:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,-Iu(this._dateAdapter,this.activeDate,this.minDate,this.maxDate));break;case 35:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,Cn-Iu(this._dateAdapter,this.activeDate,this.minDate,this.maxDate)-1);break;case 33:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?-Cn*10:-Cn);break;case 34:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?Cn*10:Cn);break;case 13:case 32:this._selectionKeyPressed=!0;break;default:return}this._dateAdapter.compareDate(i,this.activeDate)&&this.activeDateChange.emit(this.activeDate),this._focusActiveCellAfterViewChecked(),e.preventDefault()}_handleCalendarBodyKeyup(e){(e.keyCode===32||e.keyCode===13)&&(this._selectionKeyPressed&&this._yearSelected({value:this._dateAdapter.getYear(this._activeDate),event:e}),this._selectionKeyPressed=!1)}_getActiveCell(){return Iu(this._dateAdapter,this.activeDate,this.minDate,this.maxDate)}_focusActiveCell(){this._matCalendarBody._focusActiveCell()}_focusActiveCellAfterViewChecked(){this._matCalendarBody._scheduleFocusActiveCellAfterViewChecked()}_getDateFromYear(e){let i=this._dateAdapter.getMonth(this.activeDate),r=this._dateAdapter.getNumDaysInMonth(this._dateAdapter.createDate(e,i,1));return this._dateAdapter.createDate(e,i,Math.min(this._dateAdapter.getDate(this.activeDate),r))}_createCellForYear(e){let i=this._dateAdapter.createDate(e,0,1),r=this._dateAdapter.getYearName(i),s=this.dateClass?this.dateClass(i,"multi-year"):void 0;return new Du(e,r,r,this._shouldEnableYear(e),s)}_shouldEnableYear(e){if(e==null||this.maxDate&&e>this._dateAdapter.getYear(this.maxDate)||this.minDate&&e{class n{_changeDetectorRef=R(Ge);_dateFormats=R(Ya,{optional:!0});_dateAdapter=R(Xi,{optional:!0});_dir=R(ti,{optional:!0});_rerenderSubscription=St.EMPTY;_selectionKeyPressed;get activeDate(){return this._activeDate}set activeDate(e){let i=this._activeDate,r=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(r,this.minDate,this.maxDate),this._dateAdapter.getYear(i)!==this._dateAdapter.getYear(this._activeDate)&&this._init()}_activeDate;get selected(){return this._selected}set selected(e){e instanceof Fn?this._selected=e:this._selected=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e)),this._setSelectedMonth(e)}_selected;get minDate(){return this._minDate}set minDate(e){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_minDate;get maxDate(){return this._maxDate}set maxDate(e){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_maxDate;dateFilter;dateClass;selectedChange=new ce;monthSelected=new ce;activeDateChange=new ce;_matCalendarBody;_months;_yearLabel;_todayMonth;_selectedMonth;constructor(){this._activeDate=this._dateAdapter.today()}ngAfterContentInit(){this._rerenderSubscription=this._dateAdapter.localeChanges.pipe(Bt(null)).subscribe(()=>this._init())}ngOnDestroy(){this._rerenderSubscription.unsubscribe()}_monthSelected(e){let i=e.value,r=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),i,1);this.monthSelected.emit(r);let s=this._getDateFromMonth(i);this.selectedChange.emit(s)}_updateActiveDate(e){let i=e.value,r=this._activeDate;this.activeDate=this._getDateFromMonth(i),this._dateAdapter.compareDate(r,this.activeDate)&&this.activeDateChange.emit(this.activeDate)}_handleCalendarBodyKeydown(e){let i=this._activeDate,r=this._isRtl();switch(e.keyCode){case 37:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,r?1:-1);break;case 39:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,r?-1:1);break;case 38:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,-4);break;case 40:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,4);break;case 36:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,-this._dateAdapter.getMonth(this._activeDate));break;case 35:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,11-this._dateAdapter.getMonth(this._activeDate));break;case 33:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?-10:-1);break;case 34:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?10:1);break;case 13:case 32:this._selectionKeyPressed=!0;break;default:return}this._dateAdapter.compareDate(i,this.activeDate)&&(this.activeDateChange.emit(this.activeDate),this._focusActiveCellAfterViewChecked()),e.preventDefault()}_handleCalendarBodyKeyup(e){(e.keyCode===32||e.keyCode===13)&&(this._selectionKeyPressed&&this._monthSelected({value:this._dateAdapter.getMonth(this._activeDate),event:e}),this._selectionKeyPressed=!1)}_init(){this._setSelectedMonth(this.selected),this._todayMonth=this._getMonthInCurrentYear(this._dateAdapter.today()),this._yearLabel=this._dateAdapter.getYearName(this.activeDate);let e=this._dateAdapter.getMonthNames("short");this._months=[[0,1,2,3],[4,5,6,7],[8,9,10,11]].map(i=>i.map(r=>this._createCellForMonth(r,e[r]))),this._changeDetectorRef.markForCheck()}_focusActiveCell(){this._matCalendarBody._focusActiveCell()}_focusActiveCellAfterViewChecked(){this._matCalendarBody._scheduleFocusActiveCellAfterViewChecked()}_getMonthInCurrentYear(e){return e&&this._dateAdapter.getYear(e)==this._dateAdapter.getYear(this.activeDate)?this._dateAdapter.getMonth(e):null}_getDateFromMonth(e){let i=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),e,1),r=this._dateAdapter.getNumDaysInMonth(i);return this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),e,Math.min(this._dateAdapter.getDate(this.activeDate),r))}_createCellForMonth(e,i){let r=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),e,1),s=this._dateAdapter.format(r,this._dateFormats.display.monthYearA11yLabel),a=this.dateClass?this.dateClass(r,"year"):void 0;return new Du(e,i.toLocaleUpperCase(),s,this._shouldEnableMonth(e),a)}_shouldEnableMonth(e){let i=this._dateAdapter.getYear(this.activeDate);if(e==null||this._isYearAndMonthAfterMaxDate(i,e)||this._isYearAndMonthBeforeMinDate(i,e))return!1;if(!this.dateFilter)return!0;let r=this._dateAdapter.createDate(i,e,1);for(let s=r;this._dateAdapter.getMonth(s)==e;s=this._dateAdapter.addCalendarDays(s,1))if(this.dateFilter(s))return!0;return!1}_isYearAndMonthAfterMaxDate(e,i){if(this.maxDate){let r=this._dateAdapter.getYear(this.maxDate),s=this._dateAdapter.getMonth(this.maxDate);return e>r||e===r&&i>s}return!1}_isYearAndMonthBeforeMinDate(e,i){if(this.minDate){let r=this._dateAdapter.getYear(this.minDate),s=this._dateAdapter.getMonth(this.minDate);return e{class n{_intl=R(Rl);calendar=R(Db);_dateAdapter=R(Xi,{optional:!0});_dateFormats=R(Ya,{optional:!0});constructor(){R(pt).load(Mr);let e=R(Ge);this.calendar.stateChanges.subscribe(()=>e.markForCheck())}get periodButtonText(){return this.calendar.currentView=="month"?this._dateAdapter.format(this.calendar.activeDate,this._dateFormats.display.monthYearLabel).toLocaleUpperCase():this.calendar.currentView=="year"?this._dateAdapter.getYearName(this.calendar.activeDate):this._intl.formatYearRange(...this._formatMinAndMaxYearLabels())}get periodButtonDescription(){return this.calendar.currentView=="month"?this._dateAdapter.format(this.calendar.activeDate,this._dateFormats.display.monthYearLabel).toLocaleUpperCase():this.calendar.currentView=="year"?this._dateAdapter.getYearName(this.calendar.activeDate):this._intl.formatYearRangeLabel(...this._formatMinAndMaxYearLabels())}get periodButtonLabel(){return this.calendar.currentView=="month"?this._intl.switchToMultiYearViewLabel:this._intl.switchToMonthViewLabel}get prevButtonLabel(){return{month:this._intl.prevMonthLabel,year:this._intl.prevYearLabel,"multi-year":this._intl.prevMultiYearLabel}[this.calendar.currentView]}get nextButtonLabel(){return{month:this._intl.nextMonthLabel,year:this._intl.nextYearLabel,"multi-year":this._intl.nextMultiYearLabel}[this.calendar.currentView]}currentPeriodClicked(){this.calendar.currentView=this.calendar.currentView=="month"?"multi-year":"month"}previousClicked(){this.calendar.activeDate=this.calendar.currentView=="month"?this._dateAdapter.addCalendarMonths(this.calendar.activeDate,-1):this._dateAdapter.addCalendarYears(this.calendar.activeDate,this.calendar.currentView=="year"?-1:-Cn)}nextClicked(){this.calendar.activeDate=this.calendar.currentView=="month"?this._dateAdapter.addCalendarMonths(this.calendar.activeDate,1):this._dateAdapter.addCalendarYears(this.calendar.activeDate,this.calendar.currentView=="year"?1:Cn)}previousEnabled(){return this.calendar.minDate?!this.calendar.minDate||!this._isSameView(this.calendar.activeDate,this.calendar.minDate):!0}nextEnabled(){return!this.calendar.maxDate||!this._isSameView(this.calendar.activeDate,this.calendar.maxDate)}_isSameView(e,i){return this.calendar.currentView=="month"?this._dateAdapter.getYear(e)==this._dateAdapter.getYear(i)&&this._dateAdapter.getMonth(e)==this._dateAdapter.getMonth(i):this.calendar.currentView=="year"?this._dateAdapter.getYear(e)==this._dateAdapter.getYear(i):JT(this._dateAdapter,e,i,this.calendar.minDate,this.calendar.maxDate)}_formatMinAndMaxYearLabels(){let i=this._dateAdapter.getYear(this.calendar.activeDate)-Iu(this._dateAdapter,this.calendar.activeDate,this.calendar.minDate,this.calendar.maxDate),r=i+Cn-1,s=this._dateAdapter.getYearName(this._dateAdapter.createDate(i,0,1)),a=this._dateAdapter.getYearName(this._dateAdapter.createDate(r,0,1));return[s,a]}_periodButtonLabelId=R(At).getId("mat-calendar-period-label-");static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-calendar-header"]],exportAs:["matCalendarHeader"],ngContentSelectors:c4,decls:17,vars:11,consts:[[1,"mat-calendar-header"],[1,"mat-calendar-controls"],["aria-live","polite",1,"cdk-visually-hidden",3,"id"],["mat-button","","type","button",1,"mat-calendar-period-button",3,"click"],["aria-hidden","true"],["viewBox","0 0 10 5","focusable","false","aria-hidden","true",1,"mat-calendar-arrow"],["points","0,0 5,5 10,0"],[1,"mat-calendar-spacer"],["mat-icon-button","","type","button",1,"mat-calendar-previous-button",3,"click","disabled"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button",1,"mat-calendar-next-button",3,"click","disabled"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"]],template:function(i,r){i&1&&(Qe(),P(0,"div",0)(1,"div",1)(2,"span",2),B(3),U(),P(4,"button",3),X("click",function(){return r.currentPeriodClicked()}),P(5,"span",4),B(6),U(),Ht(),P(7,"svg",5),te(8,"polygon",6),U()(),Xr(),te(9,"div",7),Fe(10),P(11,"button",8),X("click",function(){return r.previousClicked()}),Ht(),P(12,"svg",9),te(13,"path",10),U()(),Xr(),P(14,"button",11),X("click",function(){return r.nextClicked()}),Ht(),P(15,"svg",9),te(16,"path",12),U()()()()),i&2&&($(2),j("id",r._periodButtonLabelId),$(),He(r.periodButtonDescription),$(),Se("aria-label",r.periodButtonLabel)("aria-describedby",r._periodButtonLabelId),$(2),He(r.periodButtonText),$(),ye("mat-calendar-invert",r.calendar.currentView!=="month"),$(4),j("disabled",!r.previousEnabled()),Se("aria-label",r.prevButtonLabel),$(3),j("disabled",!r.nextEnabled()),Se("aria-label",r.nextButtonLabel))},dependencies:[ms,ra],encapsulation:2,changeDetection:0})}return n})(),Db=(()=>{class n{_dateAdapter=R(Xi,{optional:!0});_dateFormats=R(Ya,{optional:!0});_changeDetectorRef=R(Ge);_elementRef=R(Te);headerComponent;_calendarHeaderPortal;_intlChanges;_moveFocusOnNextTick=!1;get startAt(){return this._startAt}set startAt(e){this._startAt=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_startAt;startView="month";get selected(){return this._selected}set selected(e){e instanceof Fn?this._selected=e:this._selected=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_selected;get minDate(){return this._minDate}set minDate(e){this._minDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_minDate;get maxDate(){return this._maxDate}set maxDate(e){this._maxDate=this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(e))}_maxDate;dateFilter;dateClass;comparisonStart;comparisonEnd;startDateAccessibleName;endDateAccessibleName;selectedChange=new ce;yearSelected=new ce;monthSelected=new ce;viewChanged=new ce(!0);_userSelection=new ce;_userDragDrop=new ce;monthView;yearView;multiYearView;get activeDate(){return this._clampedActiveDate}set activeDate(e){this._clampedActiveDate=this._dateAdapter.clampDate(e,this.minDate,this.maxDate),this.stateChanges.next(),this._changeDetectorRef.markForCheck()}_clampedActiveDate;get currentView(){return this._currentView}set currentView(e){let i=this._currentView!==e?e:null;this._currentView=e,this._moveFocusOnNextTick=!0,this._changeDetectorRef.markForCheck(),i&&this.viewChanged.emit(i)}_currentView;_activeDrag=null;stateChanges=new ue;constructor(){this._intlChanges=R(Rl).changes.subscribe(()=>{this._changeDetectorRef.markForCheck(),this.stateChanges.next()})}ngAfterContentInit(){this._calendarHeaderPortal=new ea(this.headerComponent||tE),this.activeDate=this.startAt||this._dateAdapter.today(),this._currentView=this.startView}ngAfterViewChecked(){this._moveFocusOnNextTick&&(this._moveFocusOnNextTick=!1,this.focusActiveCell())}ngOnDestroy(){this._intlChanges.unsubscribe(),this.stateChanges.complete()}ngOnChanges(e){let i=e.minDate&&!this._dateAdapter.sameDate(e.minDate.previousValue,e.minDate.currentValue)?e.minDate:void 0,r=e.maxDate&&!this._dateAdapter.sameDate(e.maxDate.previousValue,e.maxDate.currentValue)?e.maxDate:void 0,s=i||r||e.dateFilter;if(s&&!s.firstChange){let a=this._getCurrentViewComponent();a&&(this._elementRef.nativeElement.contains(Qc())&&(this._moveFocusOnNextTick=!0),this._changeDetectorRef.detectChanges(),a._init())}this.stateChanges.next()}focusActiveCell(){this._getCurrentViewComponent()._focusActiveCell(!1)}updateTodaysDate(){this._getCurrentViewComponent()._init()}_dateSelected(e){let i=e.value;(this.selected instanceof Fn||i&&!this._dateAdapter.sameDate(i,this.selected))&&this.selectedChange.emit(i),this._userSelection.emit(e)}_yearSelectedInMultiYearView(e){this.yearSelected.emit(e)}_monthSelectedInYearView(e){this.monthSelected.emit(e)}_goToDateInView(e,i){this.activeDate=e,this.currentView=i}_dragStarted(e){this._activeDrag=e}_dragEnded(e){this._activeDrag&&(e.value&&this._userDragDrop.emit(e),this._activeDrag=null)}_getCurrentViewComponent(){return this.monthView||this.yearView||this.multiYearView}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-calendar"]],viewQuery:function(i,r){if(i&1&&(Pe(KT,5),Pe(QT,5),Pe(YT,5)),i&2){let s;ke(s=Me())&&(r.monthView=s.first),ke(s=Me())&&(r.yearView=s.first),ke(s=Me())&&(r.multiYearView=s.first)}},hostAttrs:[1,"mat-calendar"],inputs:{headerComponent:"headerComponent",startAt:"startAt",startView:"startView",selected:"selected",minDate:"minDate",maxDate:"maxDate",dateFilter:"dateFilter",dateClass:"dateClass",comparisonStart:"comparisonStart",comparisonEnd:"comparisonEnd",startDateAccessibleName:"startDateAccessibleName",endDateAccessibleName:"endDateAccessibleName"},outputs:{selectedChange:"selectedChange",yearSelected:"yearSelected",monthSelected:"monthSelected",viewChanged:"viewChanged",_userSelection:"_userSelection",_userDragDrop:"_userDragDrop"},exportAs:["matCalendar"],features:[rt([x4]),mt],decls:5,vars:2,consts:[[3,"cdkPortalOutlet"],["cdkMonitorSubtreeFocus","","tabindex","-1",1,"mat-calendar-content"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass","comparisonStart","comparisonEnd","startDateAccessibleName","endDateAccessibleName","activeDrag"],[3,"activeDate","selected","dateFilter","maxDate","minDate","dateClass"],[3,"activeDateChange","_userSelection","dragStarted","dragEnded","activeDate","selected","dateFilter","maxDate","minDate","dateClass","comparisonStart","comparisonEnd","startDateAccessibleName","endDateAccessibleName","activeDrag"],[3,"activeDateChange","monthSelected","selectedChange","activeDate","selected","dateFilter","maxDate","minDate","dateClass"],[3,"activeDateChange","yearSelected","selectedChange","activeDate","selected","dateFilter","maxDate","minDate","dateClass"]],template:function(i,r){if(i&1&&(oe(0,u4,0,0,"ng-template",0),P(1,"div",1),oe(2,d4,1,11,"mat-month-view",2)(3,h4,1,6,"mat-year-view",3)(4,m4,1,6,"mat-multi-year-view",3),U()),i&2){let s;j("cdkPortalOutlet",r._calendarHeaderPortal),$(2),Je((s=r.currentView)==="month"?2:s==="year"?3:s==="multi-year"?4:-1)}},dependencies:[ja,Jc,KT,QT,YT],styles:[`.mat-calendar{display:block;line-height:normal;font-family:var(--mat-datepicker-calendar-text-font, var(--mat-sys-body-medium-font));font-size:var(--mat-datepicker-calendar-text-size, var(--mat-sys-body-medium-size))}.mat-calendar-header{padding:8px 8px 0 8px}.mat-calendar-content{padding:0 8px 8px 8px;outline:none}.mat-calendar-controls{display:flex;align-items:center;margin:5% calc(4.7142857143% - 16px)}.mat-calendar-spacer{flex:1 1 auto}.mat-calendar-period-button{min-width:0;margin:0 8px;font-size:var(--mat-datepicker-calendar-period-button-text-size, var(--mat-sys-title-small-size));font-weight:var(--mat-datepicker-calendar-period-button-text-weight, var(--mat-sys-title-small-weight));--mdc-text-button-label-text-color:var(--mat-datepicker-calendar-period-button-text-color, var(--mat-sys-on-surface-variant))}.mat-calendar-arrow{display:inline-block;width:10px;height:5px;margin:0 0 0 5px;vertical-align:middle;fill:var(--mat-datepicker-calendar-period-button-icon-color, var(--mat-sys-on-surface-variant))}.mat-calendar-arrow.mat-calendar-invert{transform:rotate(180deg)}[dir=rtl] .mat-calendar-arrow{margin:0 5px 0 0}@media(forced-colors: active){.mat-calendar-arrow{fill:CanvasText}}.mat-datepicker-content .mat-calendar-previous-button:not(.mat-mdc-button-disabled),.mat-datepicker-content .mat-calendar-next-button:not(.mat-mdc-button-disabled){color:var(--mat-datepicker-calendar-navigation-button-icon-color, var(--mat-sys-on-surface-variant))}[dir=rtl] .mat-calendar-previous-button,[dir=rtl] .mat-calendar-next-button{transform:rotate(180deg)}.mat-calendar-table{border-spacing:0;border-collapse:collapse;width:100%}.mat-calendar-table-header th{text-align:center;padding:0 0 8px 0;color:var(--mat-datepicker-calendar-header-text-color, var(--mat-sys-on-surface-variant));font-size:var(--mat-datepicker-calendar-header-text-size, var(--mat-sys-title-small-size));font-weight:var(--mat-datepicker-calendar-header-text-weight, var(--mat-sys-title-small-weight))}.mat-calendar-table-header-divider{position:relative;height:1px}.mat-calendar-table-header-divider::after{content:"";position:absolute;top:0;left:-8px;right:-8px;height:1px;background:var(--mat-datepicker-calendar-header-divider-color, transparent)}.mat-calendar-body-cell-content::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)}.mat-calendar-body-cell:focus .mat-focus-indicator::before{content:""} +`],encapsulation:2,changeDetection:0})}return n})(),M4=new J("mat-datepicker-scroll-strategy",{providedIn:"root",factory:()=>{let n=R(Gt);return()=>n.scrollStrategies.reposition()}});function T4(n){return()=>n.scrollStrategies.reposition()}var E4={provide:M4,deps:[Gt],useFactory:T4},A4=(()=>{class n{_elementRef=R(Te);_animationsDisabled=R(ot,{optional:!0})==="NoopAnimations";_changeDetectorRef=R(Ge);_globalModel=R(vf);_dateAdapter=R(Xi);_ngZone=R(De);_rangeSelectionStrategy=R(XT,{optional:!0});_stateChanges;_model;_eventCleanups;_animationFallback;_calendar;color;datepicker;comparisonStart;comparisonEnd;startDateAccessibleName;endDateAccessibleName;_isAbove;_animationDone=new ue;_isAnimating=!1;_closeButtonText;_closeButtonFocused;_actionsPortal=null;_dialogLabelId;constructor(){if(R(pt).load(Mr),this._closeButtonText=R(Rl).closeCalendarLabel,!this._animationsDisabled){let e=this._elementRef.nativeElement,i=R(Rt);this._eventCleanups=this._ngZone.runOutsideAngular(()=>[i.listen(e,"animationstart",this._handleAnimationEvent),i.listen(e,"animationend",this._handleAnimationEvent),i.listen(e,"animationcancel",this._handleAnimationEvent)])}}ngAfterViewInit(){this._stateChanges=this.datepicker.stateChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()}),this._calendar.focusActiveCell()}ngOnDestroy(){clearTimeout(this._animationFallback),this._eventCleanups?.forEach(e=>e()),this._stateChanges?.unsubscribe(),this._animationDone.complete()}_handleUserSelection(e){let i=this._model.selection,r=e.value,s=i instanceof Fn;if(s&&this._rangeSelectionStrategy){let a=this._rangeSelectionStrategy.selectionFinished(r,i,e.event);this._model.updateSelection(a,this)}else r&&(s||!this._dateAdapter.sameDate(r,i))&&this._model.add(r);(!this._model||this._model.isComplete())&&!this._actionsPortal&&this.datepicker.close()}_handleUserDragDrop(e){this._model.updateSelection(e.value,this)}_startExitAnimation(){this._elementRef.nativeElement.classList.add("mat-datepicker-content-exit"),this._animationsDisabled?this._animationDone.next():(clearTimeout(this._animationFallback),this._animationFallback=setTimeout(()=>{this._isAnimating||this._animationDone.next()},200))}_handleAnimationEvent=e=>{let i=this._elementRef.nativeElement;e.target!==i||!e.animationName.startsWith("_mat-datepicker-content")||(clearTimeout(this._animationFallback),this._isAnimating=e.type==="animationstart",i.classList.toggle("mat-datepicker-content-animating",this._isAnimating),this._isAnimating||this._animationDone.next())};_getSelected(){return this._model.selection}_applyPendingSelection(){this._model!==this._globalModel&&this._globalModel.updateSelection(this._model.selection,this)}_assignActions(e,i){this._model=e?this._globalModel.clone():this._globalModel,this._actionsPortal=e,i&&this._changeDetectorRef.detectChanges()}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-datepicker-content"]],viewQuery:function(i,r){if(i&1&&Pe(Db,5),i&2){let s;ke(s=Me())&&(r._calendar=s.first)}},hostAttrs:[1,"mat-datepicker-content"],hostVars:6,hostBindings:function(i,r){i&2&&(ft(r.color?"mat-"+r.color:""),ye("mat-datepicker-content-touch",r.datepicker.touchUi)("mat-datepicker-content-animations-enabled",!r._animationsDisabled))},inputs:{color:"color"},exportAs:["matDatepickerContent"],decls:5,vars:26,consts:[["cdkTrapFocus","","role","dialog",1,"mat-datepicker-content-container"],[3,"yearSelected","monthSelected","viewChanged","_userSelection","_userDragDrop","id","startAt","startView","minDate","maxDate","dateFilter","headerComponent","selected","dateClass","comparisonStart","comparisonEnd","startDateAccessibleName","endDateAccessibleName"],[3,"cdkPortalOutlet"],["type","button","mat-raised-button","",1,"mat-datepicker-close-button",3,"focus","blur","click","color"]],template:function(i,r){if(i&1&&(P(0,"div",0)(1,"mat-calendar",1),X("yearSelected",function(a){return r.datepicker._selectYear(a)})("monthSelected",function(a){return r.datepicker._selectMonth(a)})("viewChanged",function(a){return r.datepicker._viewChanged(a)})("_userSelection",function(a){return r._handleUserSelection(a)})("_userDragDrop",function(a){return r._handleUserDragDrop(a)}),U(),oe(2,f4,0,0,"ng-template",2),P(3,"button",3),X("focus",function(){return r._closeButtonFocused=!0})("blur",function(){return r._closeButtonFocused=!1})("click",function(){return r.datepicker.close()}),B(4),U()()),i&2){let s;ye("mat-datepicker-content-container-with-custom-header",r.datepicker.calendarHeaderComponent)("mat-datepicker-content-container-with-actions",r._actionsPortal),Se("aria-modal",!0)("aria-labelledby",(s=r._dialogLabelId)!==null&&s!==void 0?s:void 0),$(),ft(r.datepicker.panelClass),j("id",r.datepicker.id)("startAt",r.datepicker.startAt)("startView",r.datepicker.startView)("minDate",r.datepicker._getMinDate())("maxDate",r.datepicker._getMaxDate())("dateFilter",r.datepicker._getDateFilter())("headerComponent",r.datepicker.calendarHeaderComponent)("selected",r._getSelected())("dateClass",r.datepicker.dateClass)("comparisonStart",r.comparisonStart)("comparisonEnd",r.comparisonEnd)("startDateAccessibleName",r.startDateAccessibleName)("endDateAccessibleName",r.endDateAccessibleName),$(),j("cdkPortalOutlet",r._actionsPortal),$(),ye("cdk-visually-hidden",!r._closeButtonFocused),j("color",r.color||"primary"),$(),He(r._closeButtonText)}},dependencies:[k_,Db,ja,ms],styles:[`@keyframes _mat-datepicker-content-dropdown-enter{from{opacity:0;transform:scaleY(0.8)}to{opacity:1;transform:none}}@keyframes _mat-datepicker-content-dialog-enter{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:none}}@keyframes _mat-datepicker-content-exit{from{opacity:1}to{opacity:0}}.mat-datepicker-content{display:block;border-radius:4px;background-color:var(--mat-datepicker-calendar-container-background-color, var(--mat-sys-surface-container-high));color:var(--mat-datepicker-calendar-container-text-color, var(--mat-sys-on-surface));box-shadow:var(--mat-datepicker-calendar-container-elevation-shadow, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12));border-radius:var(--mat-datepicker-calendar-container-shape, var(--mat-sys-corner-large))}.mat-datepicker-content.mat-datepicker-content-animations-enabled{animation:_mat-datepicker-content-dropdown-enter 120ms cubic-bezier(0, 0, 0.2, 1)}.mat-datepicker-content .mat-calendar{width:296px;height:354px}.mat-datepicker-content .mat-datepicker-content-container-with-custom-header .mat-calendar{height:auto}.mat-datepicker-content .mat-datepicker-close-button{position:absolute;top:100%;left:0;margin-top:8px}.mat-datepicker-content-animating .mat-datepicker-content .mat-datepicker-close-button{display:none}.mat-datepicker-content-container{display:flex;flex-direction:column;justify-content:space-between}.mat-datepicker-content-touch{display:block;max-height:80vh;box-shadow:var(--mat-datepicker-calendar-container-touch-elevation-shadow, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12));border-radius:var(--mat-datepicker-calendar-container-touch-shape, var(--mat-sys-corner-extra-large));position:relative;overflow:visible}.mat-datepicker-content-touch.mat-datepicker-content-animations-enabled{animation:_mat-datepicker-content-dialog-enter 150ms cubic-bezier(0, 0, 0.2, 1)}.mat-datepicker-content-touch .mat-datepicker-content-container{min-height:312px;max-height:788px;min-width:250px;max-width:750px}.mat-datepicker-content-touch .mat-calendar{width:100%;height:auto}.mat-datepicker-content-exit.mat-datepicker-content-animations-enabled{animation:_mat-datepicker-content-exit 100ms linear}@media all and (orientation: landscape){.mat-datepicker-content-touch .mat-datepicker-content-container{width:64vh;height:80vh}}@media all and (orientation: portrait){.mat-datepicker-content-touch .mat-datepicker-content-container{width:80vw;height:100vw}.mat-datepicker-content-touch .mat-datepicker-content-container-with-actions{height:115vw}} +`],encapsulation:2,changeDetection:0})}return n})();var I4=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","matDatepickerToggleIcon",""]]})}return n})(),D4=(()=>{class n{_intl=R(Rl);_changeDetectorRef=R(Ge);_stateChanges=St.EMPTY;datepicker;tabIndex;ariaLabel;get disabled(){return this._disabled===void 0&&this.datepicker?this.datepicker.disabled:!!this._disabled}set disabled(e){this._disabled=e}_disabled;disableRipple;_customIcon;_button;constructor(){let e=R(new un("tabindex"),{optional:!0}),i=Number(e);this.tabIndex=i||i===0?i:null}ngOnChanges(e){e.datepicker&&this._watchStateChanges()}ngOnDestroy(){this._stateChanges.unsubscribe()}ngAfterContentInit(){this._watchStateChanges()}_open(e){this.datepicker&&!this.disabled&&(this.datepicker.open(),e.stopPropagation())}_watchStateChanges(){let e=this.datepicker?this.datepicker.stateChanges:ge(),i=this.datepicker&&this.datepicker.datepickerInput?this.datepicker.datepickerInput.stateChanges:ge(),r=this.datepicker?Kt(this.datepicker.openedStream,this.datepicker.closedStream):ge();this._stateChanges.unsubscribe(),this._stateChanges=Kt(this._intl.changes,e,i,r).subscribe(()=>this._changeDetectorRef.markForCheck())}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-datepicker-toggle"]],contentQueries:function(i,r,s){if(i&1&&Et(s,I4,5),i&2){let a;ke(a=Me())&&(r._customIcon=a.first)}},viewQuery:function(i,r){if(i&1&&Pe(p4,5),i&2){let s;ke(s=Me())&&(r._button=s.first)}},hostAttrs:[1,"mat-datepicker-toggle"],hostVars:8,hostBindings:function(i,r){i&1&&X("click",function(a){return r._open(a)}),i&2&&(Se("tabindex",null)("data-mat-calendar",r.datepicker?r.datepicker.id:null),ye("mat-datepicker-toggle-active",r.datepicker&&r.datepicker.opened)("mat-accent",r.datepicker&&r.datepicker.color==="accent")("mat-warn",r.datepicker&&r.datepicker.color==="warn"))},inputs:{datepicker:[0,"for","datepicker"],tabIndex:"tabIndex",ariaLabel:[0,"aria-label","ariaLabel"],disabled:[2,"disabled","disabled",_e],disableRipple:"disableRipple"},exportAs:["matDatepickerToggle"],features:[mt],ngContentSelectors:_4,decls:4,vars:7,consts:[["button",""],["mat-icon-button","","type","button",3,"disabled","disableRipple"],["viewBox","0 0 24 24","width","24px","height","24px","fill","currentColor","focusable","false","aria-hidden","true",1,"mat-datepicker-toggle-default-icon"],["d","M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"]],template:function(i,r){i&1&&(Qe(g4),P(0,"button",1,0),oe(2,b4,2,0,":svg:svg",2),Fe(3),U()),i&2&&(j("disabled",r.disabled)("disableRipple",r.disableRipple),Se("aria-haspopup",r.datepicker?"dialog":null)("aria-label",r.ariaLabel||r._intl.openCalendarLabel)("tabindex",r.disabled?-1:r.tabIndex)("aria-expanded",r.datepicker?r.datepicker.opened:null),$(2),Je(r._customIcon?-1:2))},dependencies:[ra],styles:[`.mat-datepicker-toggle{pointer-events:auto;color:var(--mat-datepicker-toggle-icon-color, var(--mat-sys-on-surface-variant))}.mat-datepicker-toggle-active{color:var(--mat-datepicker-toggle-active-state-icon-color, var(--mat-sys-on-surface-variant))}@media(forced-colors: active){.mat-datepicker-toggle-default-icon{color:CanvasText}} +`],encapsulation:2,changeDetection:0})}return n})();var Rb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({providers:[Rl,E4],imports:[fs,Xn,eu,hu,Oe,A4,D4,tE,gn]})}return n})();var iE=(()=>{class n{get vertical(){return this._vertical}set vertical(e){this._vertical=fn(e)}_vertical=!1;get inset(){return this._inset}set inset(e){this._inset=fn(e)}_inset=!1;static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(i,r){i&2&&(Se("aria-orientation",r.vertical?"vertical":"horizontal"),ye("mat-divider-vertical",r.vertical)("mat-divider-horizontal",!r.vertical)("mat-divider-inset",r.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(i,r){},styles:[`.mat-divider{display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color, var(--mat-sys-outline));border-top-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color, var(--mat-sys-outline));border-right-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px} +`],encapsulation:2,changeDetection:0})}return n})(),Ru=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,Oe]})}return n})();var Lb=(()=>{class n{_listeners=[];notify(e,i){for(let r of this._listeners)r(e,i)}listen(e){return this._listeners.push(e),()=>{this._listeners=this._listeners.filter(i=>e!==i)}}ngOnDestroy(){this._listeners=[]}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Lu=class{_multiple;_emitChanges;compareWith;_selection=new Set;_deselectedToEmit=[];_selectedToEmit=[];_selected;get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}changed=new ue;constructor(t=!1,e,i=!0,r){this._multiple=t,this._emitChanges=i,this.compareWith=r,e&&e.length&&(t?e.forEach(s=>this._markSelected(s)):this._markSelected(e[0]),this._selectedToEmit.length=0)}select(...t){this._verifyValueAssignment(t),t.forEach(i=>this._markSelected(i));let e=this._hasQueuedChanges();return this._emitChangeEvent(),e}deselect(...t){this._verifyValueAssignment(t),t.forEach(i=>this._unmarkSelected(i));let e=this._hasQueuedChanges();return this._emitChangeEvent(),e}setSelection(...t){this._verifyValueAssignment(t);let e=this.selected,i=new Set(t.map(s=>this._getConcreteValue(s)));t.forEach(s=>this._markSelected(s)),e.filter(s=>!i.has(this._getConcreteValue(s,i))).forEach(s=>this._unmarkSelected(s));let r=this._hasQueuedChanges();return this._emitChangeEvent(),r}toggle(t){return this.isSelected(t)?this.deselect(t):this.select(t)}clear(t=!0){this._unmarkAll();let e=this._hasQueuedChanges();return t&&this._emitChangeEvent(),e}isSelected(t){return this._selection.has(this._getConcreteValue(t))}isEmpty(){return this._selection.size===0}hasValue(){return!this.isEmpty()}sort(t){this._multiple&&this.selected&&this._selected.sort(t)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(t){t=this._getConcreteValue(t),this.isSelected(t)||(this._multiple||this._unmarkAll(),this.isSelected(t)||this._selection.add(t),this._emitChanges&&this._selectedToEmit.push(t))}_unmarkSelected(t){t=this._getConcreteValue(t),this.isSelected(t)&&(this._selection.delete(t),this._emitChanges&&this._deselectedToEmit.push(t))}_unmarkAll(){this.isEmpty()||this._selection.forEach(t=>this._unmarkSelected(t))}_verifyValueAssignment(t){t.length>1&&this._multiple}_hasQueuedChanges(){return!!(this._deselectedToEmit.length||this._selectedToEmit.length)}_getConcreteValue(t,e){if(this.compareWith){e=e??this._selection;for(let i of e)if(this.compareWith(t,i))return i;return t}else return t}};var L4=["trigger"],O4=["panel"],N4=[[["mat-select-trigger"]],"*"],F4=["mat-select-trigger","*"];function P4(n,t){if(n&1&&(P(0,"span",4),B(1),U()),n&2){let e=Y();$(),He(e.placeholder)}}function U4(n,t){n&1&&Fe(0)}function $4(n,t){if(n&1&&(P(0,"span",11),B(1),U()),n&2){let e=Y(2);$(),He(e.triggerValue)}}function V4(n,t){if(n&1&&(P(0,"span",5),oe(1,U4,1,0)(2,$4,2,1,"span",11),U()),n&2){let e=Y();$(),Je(e.customTrigger?1:2)}}function B4(n,t){if(n&1){let e=ze();P(0,"div",12,1),X("keydown",function(r){re(e);let s=Y();return se(s._handleKeydown(r))}),Fe(2,1),U()}if(n&2){let e=Y();ph("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",e._getPanelTheme(),""),ye("mat-select-panel-animations-enabled",!e._animationsDisabled),j("ngClass",e.panelClass),Se("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}var Ob=new J("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{let n=R(Gt);return()=>n.scrollStrategies.reposition()}});function nE(n){return()=>n.scrollStrategies.reposition()}var rE=new J("MAT_SELECT_CONFIG"),sE={provide:Ob,deps:[Gt],useFactory:nE},Nb=new J("MatSelectTrigger"),yf=class{source;value;constructor(t,e){this.source=t,this.value=e}},ps=(()=>{class n{_viewportRuler=R(On);_changeDetectorRef=R(Ge);_elementRef=R(Te);_dir=R(ti,{optional:!0});_idGenerator=R(At);_renderer=R(Rt);_parentFormField=R(Sl,{optional:!0});ngControl=R(Jn,{self:!0,optional:!0});_liveAnnouncer=R(M_);_defaultOptions=R(rE,{optional:!0});_animationsDisabled=R(ot,{optional:!0})==="NoopAnimations";_initialized=new ue;_cleanupDetach;options;optionGroups;customTrigger;_positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}];_scrollOptionIntoView(e){let i=this.options.toArray()[e];if(i){let r=this.panel.nativeElement,s=ff(e,this.options,this.optionGroups),a=i._getHostElement();e===0&&s===1?r.scrollTop=0:r.scrollTop=pf(a.offsetTop,a.offsetHeight,r.scrollTop,r.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new yf(this,e)}_scrollStrategyFactory=R(Ob);_panelOpen=!1;_compareWith=(e,i)=>e===i;_uid=this._idGenerator.getId("mat-select-");_triggerAriaLabelledBy=null;_previousControl;_destroy=new ue;_errorStateTracker;stateChanges=new ue;disableAutomaticLabeling=!0;userAriaDescribedBy;_selectionModel;_keyManager;_preferredOverlayOrigin;_overlayWidth;_onChange=()=>{};_onTouched=()=>{};_valueId=this._idGenerator.getId("mat-select-value-");_scrollStrategy;_overlayPanelClass=this._defaultOptions?.overlayPanelClass||"";get focused(){return this._focused||this._panelOpen}_focused=!1;controlType="mat-select";trigger;panel;_overlayDir;panelClass;disabled=!1;disableRipple=!1;tabIndex=0;get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=e,this._syncParentProperties()}_hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1;get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}_placeholder;get required(){return this._required??this.ngControl?.control?.hasValidator(_n.required)??!1}set required(e){this._required=e,this.stateChanges.next()}_required;get multiple(){return this._multiple}set multiple(e){this._selectionModel,this._multiple=e}_multiple=!1;disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1;get compareWith(){return this._compareWith}set compareWith(e){this._compareWith=e,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(e){this._assignValue(e)&&this._onChange(e)}_value;ariaLabel="";ariaLabelledby;get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(e){this._errorStateTracker.matcher=e}typeaheadDebounceInterval;sortComparator;get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}_id;get errorState(){return this._errorStateTracker.errorState}set errorState(e){this._errorStateTracker.errorState=e}panelWidth=this._defaultOptions&&typeof this._defaultOptions.panelWidth<"u"?this._defaultOptions.panelWidth:"auto";canSelectNullableOptions=this._defaultOptions?.canSelectNullableOptions??!1;optionSelectionChanges=Fs(()=>{let e=this.options;return e?e.changes.pipe(Bt(e),Mt(()=>Kt(...e.map(i=>i.onSelectionChange)))):this._initialized.pipe(Mt(()=>this.optionSelectionChanges))});openedChange=new ce;_openedStream=this.openedChange.pipe(it(e=>e),Ne(()=>{}));_closedStream=this.openedChange.pipe(it(e=>!e),Ne(()=>{}));selectionChange=new ce;valueChange=new ce;constructor(){let e=R(hf),i=R(wu,{optional:!0}),r=R(xu,{optional:!0}),s=R(new un("tabindex"),{optional:!0});this.ngControl&&(this.ngControl.valueAccessor=this),this._defaultOptions?.typeaheadDebounceInterval!=null&&(this.typeaheadDebounceInterval=this._defaultOptions.typeaheadDebounceInterval),this._errorStateTracker=new kl(e,this.ngControl,r,i,this.stateChanges),this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=s==null?0:parseInt(s)||0,this.id=this.id}ngOnInit(){this._selectionModel=new Lu(this.multiple),this.stateChanges.next(),this._viewportRuler.change().pipe(Ye(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._changeDetectorRef.detectChanges())})}ngAfterContentInit(){this._initialized.next(),this._initialized.complete(),this._initKeyManager(),this._selectionModel.changed.pipe(Ye(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(Bt(null),Ye(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){let e=this._getTriggerAriaLabelledby(),i=this.ngControl;if(e!==this._triggerAriaLabelledBy){let r=this._elementRef.nativeElement;this._triggerAriaLabelledBy=e,e?r.setAttribute("aria-labelledby",e):r.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(this._previousControl!==void 0&&i.disabled!==null&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(e){(e.disabled||e.userAriaDescribedBy)&&this.stateChanges.next(),e.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this.typeaheadDebounceInterval)}ngOnDestroy(){this._cleanupDetach?.(),this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete(),this._clearFromModal()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin()),this._cleanupDetach?.(),this._overlayWidth=this._getOverlayWidth(this._preferredOverlayOrigin),this._applyModalPanelOwnership(),this._panelOpen=!0,this._overlayDir.positionChange.pipe(Vt(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()}),this._overlayDir.attachOverlay(),this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck(),this.stateChanges.next(),Promise.resolve().then(()=>this.openedChange.emit(!0)))}_trackedModal=null;_applyModalPanelOwnership(){let e=this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal="true"]');if(!e)return;let i=`${this.id}-panel`;this._trackedModal&&ym(this._trackedModal,"aria-owns",i),I_(e,"aria-owns",i),this._trackedModal=e}_clearFromModal(){if(!this._trackedModal)return;let e=`${this.id}-panel`;ym(this._trackedModal,"aria-owns",e),this._trackedModal=null}close(){this._panelOpen&&(this._panelOpen=!1,this._exitAndDetach(),this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched(),this.stateChanges.next(),Promise.resolve().then(()=>this.openedChange.emit(!1)))}_exitAndDetach(){if(this._animationsDisabled||!this.panel){this._detachOverlay();return}this._cleanupDetach?.(),this._cleanupDetach=()=>{i(),clearTimeout(r),this._cleanupDetach=void 0};let e=this.panel.nativeElement,i=this._renderer.listen(e,"animationend",s=>{s.animationName==="_mat-select-exit"&&(this._cleanupDetach?.(),this._detachOverlay())}),r=setTimeout(()=>{this._cleanupDetach?.(),this._detachOverlay()},200);e.classList.add("mat-select-panel-exit")}_detachOverlay(){this._overlayDir.detachOverlay(),this._changeDetectorRef.markForCheck()}writeValue(e){this._assignValue(e)}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){let e=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&e.reverse(),e.join(", ")}return this._selectionModel.selected[0].viewValue}updateErrorState(){this._errorStateTracker.updateErrorState()}_isRtl(){return this._dir?this._dir.value==="rtl":!1}_handleKeydown(e){this.disabled||(this.panelOpen?this._handleOpenKeydown(e):this._handleClosedKeydown(e))}_handleClosedKeydown(e){let i=e.keyCode,r=i===40||i===38||i===37||i===39,s=i===13||i===32,a=this._keyManager;if(!a.isTyping()&&s&&!wi(e)||(this.multiple||e.altKey)&&r)e.preventDefault(),this.open();else if(!this.multiple){let o=this.selected;a.onKeydown(e);let l=this.selected;l&&o!==l&&this._liveAnnouncer.announce(l.viewValue,1e4)}}_handleOpenKeydown(e){let i=this._keyManager,r=e.keyCode,s=r===40||r===38,a=i.isTyping();if(s&&e.altKey)e.preventDefault(),this.close();else if(!a&&(r===13||r===32)&&i.activeItem&&!wi(e))e.preventDefault(),i.activeItem._selectViaInteraction();else if(!a&&this._multiple&&r===65&&e.ctrlKey){e.preventDefault();let o=this.options.some(l=>!l.disabled&&!l.selected);this.options.forEach(l=>{l.disabled||(o?l.select():l.deselect())})}else{let o=i.activeItemIndex;i.onKeydown(e),this._multiple&&s&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==o&&i.activeItem._selectViaInteraction()}}_handleOverlayKeydown(e){e.keyCode===27&&!wi(e)&&(e.preventDefault(),this.close())}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(e){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&e)Array.isArray(e),e.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{let i=this._selectOptionByValue(e);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(e){let i=this.options.find(r=>{if(this._selectionModel.isSelected(r))return!1;try{return(r.value!=null||this.canSelectNullableOptions)&&this._compareWith(r.value,e)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(e){return e!==this._value||this._multiple&&Array.isArray(e)?(this.options&&this._setSelectionByValue(e),this._value=e,!0):!1}_skipPredicate=e=>this.panelOpen?!1:e.disabled;_getOverlayWidth(e){return this.panelWidth==="auto"?(e instanceof bl?e.elementRef:e||this._elementRef).nativeElement.getBoundingClientRect().width:this.panelWidth===null?"":this.panelWidth}_syncParentProperties(){if(this.options)for(let e of this.options)e._changeDetectorRef.markForCheck()}_initKeyManager(){this._keyManager=new tu(this.options).withTypeAhead(this.typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){let e=Kt(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(Ye(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),Kt(...this.options.map(i=>i._stateChanges)).pipe(Ye(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){let r=this._selectionModel.isSelected(e);!this.canSelectNullableOptions&&e.value==null&&!this._multiple?(e.deselect(),this._selectionModel.clear(),this.value!=null&&this._propagateChanges(e.value)):(r!==e.selected&&(e.selected?this._selectionModel.select(e):this._selectionModel.deselect(e)),i&&this._keyManager.setActiveItem(e),this.multiple&&(this._sortValues(),i&&this.focus())),r!==this._selectionModel.isSelected(e)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){let e=this.options.toArray();this._selectionModel.sort((i,r)=>this.sortComparator?this.sortComparator(i,r,e):e.indexOf(i)-e.indexOf(r)),this.stateChanges.next()}}_propagateChanges(e){let i;this.multiple?i=this.selected.map(r=>r.value):i=this.selected?this.selected.value:e,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let e=-1;for(let i=0;i0&&!!this._overlayDir}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;let e=this._parentFormField?.getLabelId()||null,i=e?e+" ":"";return this.ariaLabelledby?i+this.ariaLabelledby:e}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;let e=this._parentFormField?.getLabelId()||"";return this.ariaLabelledby&&(e+=" "+this.ariaLabelledby),e||(e=this._valueId),e}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-select"]],contentQueries:function(i,r,s){if(i&1&&(Et(s,Nb,5),Et(s,Nn,5),Et(s,Eu,5)),i&2){let a;ke(a=Me())&&(r.customTrigger=a.first),ke(a=Me())&&(r.options=a),ke(a=Me())&&(r.optionGroups=a)}},viewQuery:function(i,r){if(i&1&&(Pe(L4,5),Pe(O4,5),Pe(qm,5)),i&2){let s;ke(s=Me())&&(r.trigger=s.first),ke(s=Me())&&(r.panel=s.first),ke(s=Me())&&(r._overlayDir=s.first)}},hostAttrs:["role","combobox","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(i,r){i&1&&X("keydown",function(a){return r._handleKeydown(a)})("focus",function(){return r._onFocus()})("blur",function(){return r._onBlur()}),i&2&&(Se("id",r.id)("tabindex",r.disabled?-1:r.tabIndex)("aria-controls",r.panelOpen?r.id+"-panel":null)("aria-expanded",r.panelOpen)("aria-label",r.ariaLabel||null)("aria-required",r.required.toString())("aria-disabled",r.disabled.toString())("aria-invalid",r.errorState)("aria-activedescendant",r._getAriaActiveDescendant()),ye("mat-mdc-select-disabled",r.disabled)("mat-mdc-select-invalid",r.errorState)("mat-mdc-select-required",r.required)("mat-mdc-select-empty",r.empty)("mat-mdc-select-multiple",r.multiple))},inputs:{userAriaDescribedBy:[0,"aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",disabled:[2,"disabled","disabled",_e],disableRipple:[2,"disableRipple","disableRipple",_e],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:Ft(e)],hideSingleSelectionIndicator:[2,"hideSingleSelectionIndicator","hideSingleSelectionIndicator",_e],placeholder:"placeholder",required:[2,"required","required",_e],multiple:[2,"multiple","multiple",_e],disableOptionCentering:[2,"disableOptionCentering","disableOptionCentering",_e],compareWith:"compareWith",value:"value",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:[2,"typeaheadDebounceInterval","typeaheadDebounceInterval",Ft],sortComparator:"sortComparator",id:"id",panelWidth:"panelWidth",canSelectNullableOptions:[2,"canSelectNullableOptions","canSelectNullableOptions",_e]},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},exportAs:["matSelect"],features:[rt([{provide:xl,useExisting:n},{provide:Tu,useExisting:n}]),mt],ngContentSelectors:F4,decls:11,vars:9,consts:[["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],["panel",""],["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],[1,"mat-mdc-select-value"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false","aria-hidden","true"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"detach","backdropClick","overlayKeydown","cdkConnectedOverlayDisableClose","cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth","cdkConnectedOverlayFlexibleDimensions"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"keydown","ngClass"]],template:function(i,r){if(i&1){let s=ze();Qe(N4),P(0,"div",2,0),X("click",function(){return re(s),se(r.open())}),P(3,"div",3),oe(4,P4,2,1,"span",4)(5,V4,3,1,"span",5),U(),P(6,"div",6)(7,"div",7),Ht(),P(8,"svg",8),te(9,"path",9),U()()()(),oe(10,B4,3,10,"ng-template",10),X("detach",function(){return re(s),se(r.close())})("backdropClick",function(){return re(s),se(r.close())})("overlayKeydown",function(o){return re(s),se(r._handleOverlayKeydown(o))})}if(i&2){let s=jt(1);$(3),Se("id",r._valueId),$(),Je(r.empty?4:5),$(6),j("cdkConnectedOverlayDisableClose",!0)("cdkConnectedOverlayPanelClass",r._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",r._scrollStrategy)("cdkConnectedOverlayOrigin",r._preferredOverlayOrigin||s)("cdkConnectedOverlayPositions",r._positions)("cdkConnectedOverlayWidth",r._overlayWidth)("cdkConnectedOverlayFlexibleDimensions",!0)}},dependencies:[bl,qm,An],styles:[`@keyframes _mat-select-enter{from{opacity:0;transform:scaleY(0.8)}to{opacity:1;transform:none}}@keyframes _mat-select-exit{from{opacity:1}to{opacity:0}}.mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color, var(--mat-sys-on-surface));font-family:var(--mat-select-trigger-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-select-trigger-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-select-trigger-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-select-trigger-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-select-trigger-text-tracking, var(--mat-sys-body-large-tracking))}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-disabled .mat-mdc-select-placeholder{color:var(--mat-select-disabled-trigger-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color, var(--mat-sys-error))}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color, var(--mat-sys-primary))}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}@media(forced-colors: active){.mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .mat-mdc-select-arrow svg{fill:GrayText}}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:relative;background-color:var(--mat-select-panel-background-color, var(--mat-sys-surface-container))}@media(forced-colors: active){div.mat-mdc-select-panel{outline:solid 1px}}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}.mat-select-panel-animations-enabled{animation:_mat-select-enter 120ms cubic-bezier(0, 0, 0.2, 1)}.mat-select-panel-animations-enabled.mat-select-panel-exit{animation:_mat-select-exit 100ms linear}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color, var(--mat-sys-on-surface-variant))}.mat-mdc-form-field:not(.mat-form-field-animations-enabled) .mat-mdc-select-placeholder,._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform, translateY(-8px))} +`],encapsulation:2,changeDetection:0})}return n})(),Fb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["mat-select-trigger"]],features:[rt([{provide:Nb,useExisting:n}])]})}return n})(),Ll=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({providers:[sE],imports:[Xn,Tl,Oe,gn,hs,Tl,Oe]})}return n})();var z4=["tooltip"],Pb=20;var Ub=new J("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{let n=R(Gt);return()=>n.scrollStrategies.reposition({scrollThrottle:Pb})}});function lE(n){return()=>n.scrollStrategies.reposition({scrollThrottle:Pb})}var cE={provide:Ub,deps:[Gt],useFactory:lE};function uE(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}var dE=new J("mat-tooltip-default-options",{providedIn:"root",factory:uE});var aE="tooltip-panel",oE=Ys({passive:!0}),H4=8,j4=8,W4=24,q4=200,Ou=(()=>{class n{_elementRef=R(Te);_ngZone=R(De);_platform=R(st);_ariaDescriber=R(Hk);_focusMonitor=R(mn);_dir=R(ti);_injector=R(ut);_viewContainerRef=R(ui);_defaultOptions=R(dE,{optional:!0});_overlayRef;_tooltipInstance;_portal;_position="below";_positionAtOrigin=!1;_disabled=!1;_tooltipClass;_viewInitialized=!1;_pointerExitEventsInitialized=!1;_tooltipComponent=hE;_viewportMargin=8;_currentPosition;_cssClassPrefix="mat-mdc";_ariaDescriptionPending;_dirSubscribed=!1;get position(){return this._position}set position(e){e!==this._position&&(this._position=e,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(e){this._positionAtOrigin=fn(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){let i=fn(e);this._disabled!==i&&(this._disabled=i,i?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=kr(e)}_showDelay;get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=kr(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}_hideDelay;touchGestures="auto";get message(){return this._message}set message(e){let i=this._message;this._message=e!=null?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(i)}_message="";get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}_passiveListeners=[];_touchstartTimeout=null;_destroyed=new ue;_isDestroyed=!1;constructor(){let e=this._defaultOptions;e&&(this._showDelay=e.showDelay,this._hideDelay=e.hideDelay,e.position&&(this.position=e.position),e.positionAtOrigin&&(this.positionAtOrigin=e.positionAtOrigin),e.touchGestures&&(this.touchGestures=e.touchGestures),e.tooltipClass&&(this.tooltipClass=e.tooltipClass)),this._viewportMargin=H4}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(Ye(this._destroyed)).subscribe(e=>{e?e==="keyboard"&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){let e=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,r])=>{e.removeEventListener(i,r,oE)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._isDestroyed=!0,this._ariaDescriber.removeDescription(e,this.message,"tooltip"),this._focusMonitor.stopMonitoring(e)}show(e=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible()){this._tooltipInstance?._cancelPendingAnimations();return}let r=this._createOverlay(i);this._detach(),this._portal=this._portal||new ea(this._tooltipComponent,this._viewContainerRef);let s=this._tooltipInstance=r.attach(this._portal).instance;s._triggerElement=this._elementRef.nativeElement,s._mouseLeaveHideDelay=this._hideDelay,s.afterHidden().pipe(Ye(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),s.show(e)}hide(e=this.hideDelay){let i=this._tooltipInstance;i&&(i.isVisible()?i.hide(e):(i._cancelPendingAnimations(),this._detach()))}toggle(e){this._isTooltipVisible()?this.hide():this.show(void 0,e)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(e){if(this._overlayRef){let a=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&a._origin instanceof Te)return this._overlayRef;this._detach()}let i=this._injector.get(_l).getAncestorScrollContainers(this._elementRef),r=this._injector.get(Gt),s=r.position().flexibleConnectedTo(this.positionAtOrigin?e||this._elementRef:this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return s.positionChanges.pipe(Ye(this._destroyed)).subscribe(a=>{this._updateCurrentPositionClass(a.connectionPair),this._tooltipInstance&&a.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=r.create({direction:this._dir,positionStrategy:s,panelClass:`${this._cssClassPrefix}-${aE}`,scrollStrategy:this._injector.get(Ub)()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(Ye(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(Ye(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(Ye(this._destroyed)).subscribe(a=>{this._isTooltipVisible()&&a.keyCode===27&&!wi(a)&&(a.preventDefault(),a.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._dirSubscribed||(this._dirSubscribed=!0,this._dir.change.pipe(Ye(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(e){let i=e.getConfig().positionStrategy,r=this._getOrigin(),s=this._getOverlayPosition();i.withPositions([this._addOffset(H(H({},r.main),s.main)),this._addOffset(H(H({},r.fallback),s.fallback))])}_addOffset(e){let i=j4,r=!this._dir||this._dir.value=="ltr";return e.originY==="top"?e.offsetY=-i:e.originY==="bottom"?e.offsetY=i:e.originX==="start"?e.offsetX=r?-i:i:e.originX==="end"&&(e.offsetX=r?i:-i),e}_getOrigin(){let e=!this._dir||this._dir.value=="ltr",i=this.position,r;i=="above"||i=="below"?r={originX:"center",originY:i=="above"?"top":"bottom"}:i=="before"||i=="left"&&e||i=="right"&&!e?r={originX:"start",originY:"center"}:(i=="after"||i=="right"&&e||i=="left"&&!e)&&(r={originX:"end",originY:"center"});let{x:s,y:a}=this._invertPosition(r.originX,r.originY);return{main:r,fallback:{originX:s,originY:a}}}_getOverlayPosition(){let e=!this._dir||this._dir.value=="ltr",i=this.position,r;i=="above"?r={overlayX:"center",overlayY:"bottom"}:i=="below"?r={overlayX:"center",overlayY:"top"}:i=="before"||i=="left"&&e||i=="right"&&!e?r={overlayX:"end",overlayY:"center"}:(i=="after"||i=="right"&&e||i=="left"&&!e)&&(r={overlayX:"start",overlayY:"center"});let{x:s,y:a}=this._invertPosition(r.overlayX,r.overlayY);return{main:r,fallback:{overlayX:s,overlayY:a}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),Yt(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e,this._tooltipInstance._markForCheck())}_invertPosition(e,i){return this.position==="above"||this.position==="below"?i==="top"?i="bottom":i==="bottom"&&(i="top"):e==="end"?e="start":e==="start"&&(e="end"),{x:e,y:i}}_updateCurrentPositionClass(e){let{overlayY:i,originX:r,originY:s}=e,a;if(i==="center"?this._dir&&this._dir.value==="rtl"?a=r==="end"?"left":"right":a=r==="start"?"left":"right":a=i==="bottom"&&s==="top"?"above":"below",a!==this._currentPosition){let o=this._overlayRef;if(o){let l=`${this._cssClassPrefix}-${aE}-`;o.removePanelClass(l+this._currentPosition),o.addPanelClass(l+a)}this._currentPosition=a}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",e=>{this._setupPointerExitEventsIfNeeded();let i;e.x!==void 0&&e.y!==void 0&&(i=e),this.show(void 0,i)}]):this.touchGestures!=="off"&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",e=>{let i=e.targetTouches?.[0],r=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout);let s=500;this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,r)},this._defaultOptions?.touchLongPressShowDelay??s)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;let e=[];if(this._platformSupportsMouseEvents())e.push(["mouseleave",i=>{let r=i.relatedTarget;(!r||!this._overlayRef?.overlayElement.contains(r))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if(this.touchGestures!=="off"){this._disableNativeGesturesIfNecessary();let i=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions?.touchendHideDelay)};e.push(["touchend",i],["touchcancel",i])}this._addListeners(e),this._passiveListeners.push(...e)}_addListeners(e){e.forEach(([i,r])=>{this._elementRef.nativeElement.addEventListener(i,r,oE)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(e){if(this._isTooltipVisible()){let i=this._injector.get(Ze).elementFromPoint(e.clientX,e.clientY),r=this._elementRef.nativeElement;i!==r&&!r.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){let e=this.touchGestures;if(e!=="off"){let i=this._elementRef.nativeElement,r=i.style;(e==="on"||i.nodeName!=="INPUT"&&i.nodeName!=="TEXTAREA")&&(r.userSelect=r.msUserSelect=r.webkitUserSelect=r.MozUserSelect="none"),(e==="on"||!i.draggable)&&(r.webkitUserDrag="none"),r.touchAction="none",r.webkitTapHighlightColor="transparent"}}_syncAriaDescription(e){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,e,"tooltip"),this._isDestroyed||Yt({write:()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")}},{injector:this._injector}))}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,r){i&2&&ye("mat-mdc-tooltip-disabled",r.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]})}return n})(),hE=(()=>{class n{_changeDetectorRef=R(Ge);_elementRef=R(Te);_isMultiline=!1;message;tooltipClass;_showTimeoutId;_hideTimeoutId;_triggerElement;_mouseLeaveHideDelay;_animationsDisabled;_tooltip;_closeOnInteraction=!1;_isVisible=!1;_onHide=new ue;_showAnimation="mat-mdc-tooltip-show";_hideAnimation="mat-mdc-tooltip-hide";constructor(){let e=R(ot,{optional:!0});this._animationsDisabled=e==="NoopAnimations"}show(e){this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},e)}hide(e){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},e)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:e}){(!e||!this._triggerElement.contains(e))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){let e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>W4&&e.width>=q4}_handleAnimationEnd({animationName:e}){(e===this._showAnimation||e===this._hideAnimation)&&this._finalizeAnimation(e===this._showAnimation)}_cancelPendingAnimations(){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(e){e?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(e){let i=this._tooltip.nativeElement,r=this._showAnimation,s=this._hideAnimation;if(i.classList.remove(e?s:r),i.classList.add(e?r:s),this._isVisible!==e&&(this._isVisible=e,this._changeDetectorRef.markForCheck()),e&&!this._animationsDisabled&&typeof getComputedStyle=="function"){let a=getComputedStyle(i);(a.getPropertyValue("animation-duration")==="0s"||a.getPropertyValue("animation-name")==="none")&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-tooltip-component"]],viewQuery:function(i,r){if(i&1&&Pe(z4,7),i&2){let s;ke(s=Me())&&(r._tooltip=s.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(i,r){i&1&&X("mouseleave",function(a){return r._handleMouseLeave(a)})},decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(i,r){if(i&1){let s=ze();P(0,"div",1,0),X("animationend",function(o){return re(s),se(r._handleAnimationEnd(o))}),P(2,"div",2),B(3),U()()}i&2&&(ye("mdc-tooltip--multiline",r._isMultiline),j("ngClass",r.tooltipClass),$(3),He(r.message))},dependencies:[An],styles:[`.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mdc-plain-tooltip-container-color, var(--mat-sys-inverse-surface));color:var(--mdc-plain-tooltip-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-plain-tooltip-container-shape, var(--mat-sys-corner-extra-small));font-family:var(--mdc-plain-tooltip-supporting-text-font, var(--mat-sys-body-small-font));font-size:var(--mdc-plain-tooltip-supporting-text-size, var(--mat-sys-body-small-size));font-weight:var(--mdc-plain-tooltip-supporting-text-weight, var(--mat-sys-body-small-weight));line-height:var(--mdc-plain-tooltip-supporting-text-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, var(--mat-sys-body-small-tracking))}.mat-mdc-tooltip-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel{line-height:normal}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards} +`],encapsulation:2,changeDetection:0})}return n})(),Nu=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({providers:[cE],imports:[eu,Xn,Oe,Oe,gn]})}return n})();function G4(n,t){if(n&1&&(P(0,"mat-option",17),B(1),U()),n&2){let e=t.$implicit;j("value",e),$(),je(" ",e," ")}}function K4(n,t){if(n&1){let e=ze();P(0,"mat-form-field",14)(1,"mat-select",16,0),X("selectionChange",function(r){re(e);let s=Y(2);return se(s._changePageSize(r.value))}),gr(3,G4,2,2,"mat-option",17,xc),U(),P(5,"div",18),X("click",function(){re(e);let r=jt(2);return se(r.open())}),U()()}if(n&2){let e=Y(2);j("appearance",e._formFieldAppearance)("color",e.color),$(),j("value",e.pageSize)("disabled",e.disabled)("aria-labelledby",e._pageSizeLabelId)("panelClass",e.selectConfig.panelClass||"")("disableOptionCentering",e.selectConfig.disableOptionCentering),$(2),_r(e._displayedPageSizeOptions)}}function Y4(n,t){if(n&1&&(P(0,"div",15),B(1),U()),n&2){let e=Y(2);$(),He(e.pageSize)}}function Q4(n,t){if(n&1&&(P(0,"div",3)(1,"div",13),B(2),U(),oe(3,K4,6,7,"mat-form-field",14)(4,Y4,2,1,"div",15),U()),n&2){let e=Y();$(),Se("id",e._pageSizeLabelId),$(),je(" ",e._intl.itemsPerPageLabel," "),$(),Je(e._displayedPageSizeOptions.length>1?3:-1),$(),Je(e._displayedPageSizeOptions.length<=1?4:-1)}}function Z4(n,t){if(n&1){let e=ze();P(0,"button",19),X("click",function(){re(e);let r=Y();return se(r._buttonClicked(0,r._previousButtonsDisabled()))}),Ht(),P(1,"svg",8),te(2,"path",20),U()()}if(n&2){let e=Y();j("matTooltip",e._intl.firstPageLabel)("matTooltipDisabled",e._previousButtonsDisabled())("disabled",e._previousButtonsDisabled())("tabindex",e._previousButtonsDisabled()?-1:null),Se("aria-label",e._intl.firstPageLabel)}}function X4(n,t){if(n&1){let e=ze();P(0,"button",21),X("click",function(){re(e);let r=Y();return se(r._buttonClicked(r.getNumberOfPages()-1,r._nextButtonsDisabled()))}),Ht(),P(1,"svg",8),te(2,"path",22),U()()}if(n&2){let e=Y();j("matTooltip",e._intl.lastPageLabel)("matTooltipDisabled",e._nextButtonsDisabled())("disabled",e._nextButtonsDisabled())("tabindex",e._nextButtonsDisabled()?-1:null),Se("aria-label",e._intl.lastPageLabel)}}var Cf=(()=>{class n{changes=new ue;itemsPerPageLabel="Items per page:";nextPageLabel="Next page";previousPageLabel="Previous page";firstPageLabel="First page";lastPageLabel="Last page";getRangeLabel=(e,i,r)=>{if(r==0||i==0)return`0 of ${r}`;r=Math.max(r,0);let s=e*i,a=s{class n{_intl=R(Cf);_changeDetectorRef=R(Ge);_formFieldAppearance;_pageSizeLabelId=R(At).getId("mat-paginator-page-size-label-");_intlChanges;_isInitialized=!1;_initializedStream=new ah(1);color;get pageIndex(){return this._pageIndex}set pageIndex(e){this._pageIndex=Math.max(e||0,0),this._changeDetectorRef.markForCheck()}_pageIndex=0;get length(){return this._length}set length(e){this._length=e||0,this._changeDetectorRef.markForCheck()}_length=0;get pageSize(){return this._pageSize}set pageSize(e){this._pageSize=Math.max(e||0,0),this._updateDisplayedPageSizeOptions()}_pageSize;get pageSizeOptions(){return this._pageSizeOptions}set pageSizeOptions(e){this._pageSizeOptions=(e||[]).map(i=>Ft(i,0)),this._updateDisplayedPageSizeOptions()}_pageSizeOptions=[];hidePageSize=!1;showFirstLastButtons=!1;selectConfig={};disabled=!1;page=new ce;_displayedPageSizeOptions;initialized=this._initializedStream;constructor(){let e=this._intl,i=R(iB,{optional:!0});if(this._intlChanges=e.changes.subscribe(()=>this._changeDetectorRef.markForCheck()),i){let{pageSize:r,pageSizeOptions:s,hidePageSize:a,showFirstLastButtons:o}=i;r!=null&&(this._pageSize=r),s!=null&&(this._pageSizeOptions=s),a!=null&&(this.hidePageSize=a),o!=null&&(this.showFirstLastButtons=o)}this._formFieldAppearance=i?.formFieldAppearance||"outline"}ngOnInit(){this._isInitialized=!0,this._updateDisplayedPageSizeOptions(),this._initializedStream.next()}ngOnDestroy(){this._initializedStream.complete(),this._intlChanges.unsubscribe()}nextPage(){this.hasNextPage()&&this._navigate(this.pageIndex+1)}previousPage(){this.hasPreviousPage()&&this._navigate(this.pageIndex-1)}firstPage(){this.hasPreviousPage()&&this._navigate(0)}lastPage(){this.hasNextPage()&&this._navigate(this.getNumberOfPages()-1)}hasPreviousPage(){return this.pageIndex>=1&&this.pageSize!=0}hasNextPage(){let e=this.getNumberOfPages()-1;return this.pageIndexe-i),this._changeDetectorRef.markForCheck())}_emitPageEvent(e){this.page.emit({previousPageIndex:e,pageIndex:this.pageIndex,pageSize:this.pageSize,length:this.length})}_navigate(e){let i=this.pageIndex;e!==i&&(this.pageIndex=e,this._emitPageEvent(i))}_buttonClicked(e,i){i||this._navigate(e)}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-paginator"]],hostAttrs:["role","group",1,"mat-mdc-paginator"],inputs:{color:"color",pageIndex:[2,"pageIndex","pageIndex",Ft],length:[2,"length","length",Ft],pageSize:[2,"pageSize","pageSize",Ft],pageSizeOptions:"pageSizeOptions",hidePageSize:[2,"hidePageSize","hidePageSize",_e],showFirstLastButtons:[2,"showFirstLastButtons","showFirstLastButtons",_e],selectConfig:"selectConfig",disabled:[2,"disabled","disabled",_e]},outputs:{page:"page"},exportAs:["matPaginator"],decls:14,vars:14,consts:[["selectRef",""],[1,"mat-mdc-paginator-outer-container"],[1,"mat-mdc-paginator-container"],[1,"mat-mdc-paginator-page-size"],[1,"mat-mdc-paginator-range-actions"],["aria-live","polite",1,"mat-mdc-paginator-range-label"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"matTooltip","matTooltipDisabled","disabled","tabindex"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-previous",3,"click","matTooltip","matTooltipDisabled","disabled","tabindex"],["viewBox","0 0 24 24","focusable","false","aria-hidden","true",1,"mat-mdc-paginator-icon"],["d","M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-next",3,"click","matTooltip","matTooltipDisabled","disabled","tabindex"],["d","M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"matTooltip","matTooltipDisabled","disabled","tabindex"],[1,"mat-mdc-paginator-page-size-label"],[1,"mat-mdc-paginator-page-size-select",3,"appearance","color"],[1,"mat-mdc-paginator-page-size-value"],["hideSingleSelectionIndicator","",3,"selectionChange","value","disabled","aria-labelledby","panelClass","disableOptionCentering"],[3,"value"],[1,"mat-mdc-paginator-touch-target",3,"click"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-first",3,"click","matTooltip","matTooltipDisabled","disabled","tabindex"],["d","M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"],["mat-icon-button","","type","button","matTooltipPosition","above","disabledInteractive","",1,"mat-mdc-paginator-navigation-last",3,"click","matTooltip","matTooltipDisabled","disabled","tabindex"],["d","M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"]],template:function(i,r){i&1&&(P(0,"div",1)(1,"div",2),oe(2,Q4,5,4,"div",3),P(3,"div",4)(4,"div",5),B(5),U(),oe(6,Z4,3,5,"button",6),P(7,"button",7),X("click",function(){return r._buttonClicked(r.pageIndex-1,r._previousButtonsDisabled())}),Ht(),P(8,"svg",8),te(9,"path",9),U()(),Xr(),P(10,"button",10),X("click",function(){return r._buttonClicked(r.pageIndex+1,r._nextButtonsDisabled())}),Ht(),P(11,"svg",8),te(12,"path",11),U()(),oe(13,X4,3,5,"button",12),U()()()),i&2&&($(2),Je(r.hidePageSize?-1:2),$(3),je(" ",r._intl.getRangeLabel(r.pageIndex,r.pageSize,r.length)," "),$(),Je(r.showFirstLastButtons?6:-1),$(),j("matTooltip",r._intl.previousPageLabel)("matTooltipDisabled",r._previousButtonsDisabled())("disabled",r._previousButtonsDisabled())("tabindex",r._previousButtonsDisabled()?-1:null),Se("aria-label",r._intl.previousPageLabel),$(3),j("matTooltip",r._intl.nextPageLabel)("matTooltipDisabled",r._nextButtonsDisabled())("disabled",r._nextButtonsDisabled())("tabindex",r._nextButtonsDisabled()?-1:null),Se("aria-label",r._intl.nextPageLabel),$(3),Je(r.showFirstLastButtons?13:-1))},dependencies:[bn,ps,Nn,ra,Ou],styles:[`.mat-mdc-paginator{display:block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-paginator-container-text-color, var(--mat-sys-on-surface));background-color:var(--mat-paginator-container-background-color, var(--mat-sys-surface));font-family:var(--mat-paginator-container-text-font, var(--mat-sys-body-small-font));line-height:var(--mat-paginator-container-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-paginator-container-text-size, var(--mat-sys-body-small-size));font-weight:var(--mat-paginator-container-text-weight, var(--mat-sys-body-small-weight));letter-spacing:var(--mat-paginator-container-text-tracking, var(--mat-sys-body-small-tracking));--mat-form-field-container-height:var(--mat-paginator-form-field-container-height, 40px);--mat-form-field-container-vertical-padding:var(--mat-paginator-form-field-container-vertical-padding, 8px)}.mat-mdc-paginator .mat-mdc-select-value{font-size:var(--mat-paginator-select-trigger-text-size, var(--mat-sys-body-small-size))}.mat-mdc-paginator .mat-mdc-form-field-subscript-wrapper{display:none}.mat-mdc-paginator .mat-mdc-select{line-height:1.5}.mat-mdc-paginator-outer-container{display:flex}.mat-mdc-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap;width:100%;min-height:var(--mat-paginator-container-size, 56px)}.mat-mdc-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-mdc-paginator-page-size{margin-right:0;margin-left:8px}.mat-mdc-paginator-page-size-label{margin:0 4px}.mat-mdc-paginator-page-size-select{margin:0 4px;width:84px}.mat-mdc-paginator-range-label{margin:0 32px 0 24px}.mat-mdc-paginator-range-actions{display:flex;align-items:center}.mat-mdc-paginator-icon{display:inline-block;width:28px;fill:var(--mat-paginator-enabled-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button[aria-disabled] .mat-mdc-paginator-icon{fill:var(--mat-paginator-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}[dir=rtl] .mat-mdc-paginator-icon{transform:rotate(180deg)}@media(forced-colors: active){.mat-mdc-icon-button[aria-disabled] .mat-mdc-paginator-icon,.mat-mdc-paginator-icon{fill:currentColor}.mat-mdc-paginator-range-actions .mat-mdc-icon-button{outline:solid 1px}.mat-mdc-paginator-range-actions .mat-mdc-icon-button[aria-disabled]{color:GrayText}}.mat-mdc-paginator-touch-target{display:var(--mat-paginator-touch-target-display, block);position:absolute;top:50%;left:50%;width:84px;height:48px;background-color:rgba(0,0,0,0);transform:translate(-50%, -50%);cursor:pointer} +`],encapsulation:2,changeDetection:0})}return n})(),$b=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({providers:[eB],imports:[fs,Ll,Nu,nB]})}return n})();var rB=["input"],sB=["formField"],aB=["*"],Vb=class{source;value;constructor(t,e){this.source=t,this.value=e}};var oB=new J("MatRadioGroup"),lB=new J("mat-radio-default-options",{providedIn:"root",factory:cB});function cB(){return{color:"accent",disabledInteractive:!1}}var uB=(()=>{class n{_elementRef=R(Te);_changeDetector=R(Ge);_focusMonitor=R(mn);_radioDispatcher=R(Lb);_defaultOptions=R(lB,{optional:!0});_ngZone=R(De);_renderer=R(Rt);_uniqueId=R(At).getId("mat-radio-");_cleanupClick;id=this._uniqueId;name;ariaLabel;ariaLabelledby;ariaDescribedby;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(e){this._checked!==e&&(this._checked=e,e&&this.radioGroup&&this.radioGroup.value!==this.value?this.radioGroup.selected=this:!e&&this.radioGroup&&this.radioGroup.value===this.value&&(this.radioGroup.selected=null),e&&this._radioDispatcher.notify(this.id,this.name),this._changeDetector.markForCheck())}get value(){return this._value}set value(e){this._value!==e&&(this._value=e,this.radioGroup!==null&&(this.checked||(this.checked=this.radioGroup.value===e),this.checked&&(this.radioGroup.selected=this)))}get labelPosition(){return this._labelPosition||this.radioGroup&&this.radioGroup.labelPosition||"after"}set labelPosition(e){this._labelPosition=e}_labelPosition;get disabled(){return this._disabled||this.radioGroup!==null&&this.radioGroup.disabled}set disabled(e){this._setDisabled(e)}get required(){return this._required||this.radioGroup&&this.radioGroup.required}set required(e){e!==this._required&&this._changeDetector.markForCheck(),this._required=e}get color(){return this._color||this.radioGroup&&this.radioGroup.color||this._defaultOptions&&this._defaultOptions.color||"accent"}set color(e){this._color=e}_color;get disabledInteractive(){return this._disabledInteractive||this.radioGroup!==null&&this.radioGroup.disabledInteractive}set disabledInteractive(e){this._disabledInteractive=e}_disabledInteractive;change=new ce;radioGroup;get inputId(){return`${this.id||this._uniqueId}-input`}_checked=!1;_disabled;_required;_value=null;_removeUniqueSelectionListener=()=>{};_previousTabIndex;_inputElement;_rippleTrigger;_noopAnimations;_injector=R(ut);constructor(){R(pt).load(xi);let e=R(oB,{optional:!0}),i=R(ot,{optional:!0}),r=R(new un("tabindex"),{optional:!0});this.radioGroup=e,this._noopAnimations=i==="NoopAnimations",this._disabledInteractive=this._defaultOptions?.disabledInteractive??!1,r&&(this.tabIndex=Ft(r,0))}focus(e,i){i?this._focusMonitor.focusVia(this._inputElement,i,e):this._inputElement.nativeElement.focus(e)}_markForCheck(){this._changeDetector.markForCheck()}ngOnInit(){this.radioGroup&&(this.checked=this.radioGroup.value===this._value,this.checked&&(this.radioGroup.selected=this),this.name=this.radioGroup.name),this._removeUniqueSelectionListener=this._radioDispatcher.listen((e,i)=>{e!==this.id&&i===this.name&&(this.checked=!1)})}ngDoCheck(){this._updateTabIndex()}ngAfterViewInit(){this._updateTabIndex(),this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{!e&&this.radioGroup&&this.radioGroup._touch()}),this._ngZone.runOutsideAngular(()=>{this._cleanupClick=this._renderer.listen(this._inputElement.nativeElement,"click",this._onInputClick)})}ngOnDestroy(){this._cleanupClick?.(),this._focusMonitor.stopMonitoring(this._elementRef),this._removeUniqueSelectionListener()}_emitChangeEvent(){this.change.emit(new Vb(this,this._value))}_isRippleDisabled(){return this.disableRipple||this.disabled}_onInputInteraction(e){if(e.stopPropagation(),!this.checked&&!this.disabled){let i=this.radioGroup&&this.value!==this.radioGroup.value;this.checked=!0,this._emitChangeEvent(),this.radioGroup&&(this.radioGroup._controlValueAccessorChangeFn(this.value),i&&this.radioGroup._emitChangeEvent())}}_onTouchTargetClick(e){this._onInputInteraction(e),(!this.disabled||this.disabledInteractive)&&this._inputElement?.nativeElement.focus()}_setDisabled(e){this._disabled!==e&&(this._disabled=e,this._changeDetector.markForCheck())}_onInputClick=e=>{this.disabled&&this.disabledInteractive&&e.preventDefault()};_updateTabIndex(){let e=this.radioGroup,i;if(!e||!e.selected||this.disabled?i=this.tabIndex:i=e.selected===this?this.tabIndex:-1,i!==this._previousTabIndex){let r=this._inputElement?.nativeElement;r&&(r.setAttribute("tabindex",i+""),this._previousTabIndex=i,Yt(()=>{queueMicrotask(()=>{e&&e.selected&&e.selected!==this&&document.activeElement===r&&(e.selected?._inputElement.nativeElement.focus(),document.activeElement===r&&this._inputElement.nativeElement.blur())})},{injector:this._injector}))}}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-radio-button"]],viewQuery:function(i,r){if(i&1&&(Pe(rB,5),Pe(sB,7,Te)),i&2){let s;ke(s=Me())&&(r._inputElement=s.first),ke(s=Me())&&(r._rippleTrigger=s.first)}},hostAttrs:[1,"mat-mdc-radio-button"],hostVars:19,hostBindings:function(i,r){i&1&&X("focus",function(){return r._inputElement.nativeElement.focus()}),i&2&&(Se("id",r.id)("tabindex",null)("aria-label",null)("aria-labelledby",null)("aria-describedby",null),ye("mat-primary",r.color==="primary")("mat-accent",r.color==="accent")("mat-warn",r.color==="warn")("mat-mdc-radio-checked",r.checked)("mat-mdc-radio-disabled",r.disabled)("mat-mdc-radio-disabled-interactive",r.disabledInteractive)("_mat-animation-noopable",r._noopAnimations))},inputs:{id:"id",name:"name",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],disableRipple:[2,"disableRipple","disableRipple",_e],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:Ft(e)],checked:[2,"checked","checked",_e],value:"value",labelPosition:"labelPosition",disabled:[2,"disabled","disabled",_e],required:[2,"required","required",_e],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",_e]},outputs:{change:"change"},exportAs:["matRadioButton"],ngContentSelectors:aB,decls:13,vars:17,consts:[["formField",""],["input",""],["mat-internal-form-field","",3,"labelPosition"],[1,"mdc-radio"],[1,"mat-mdc-radio-touch-target",3,"click"],["type","radio","aria-invalid","false",1,"mdc-radio__native-control",3,"change","id","checked","disabled","required"],[1,"mdc-radio__background"],[1,"mdc-radio__outer-circle"],[1,"mdc-radio__inner-circle"],["mat-ripple","",1,"mat-radio-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mat-ripple-element","mat-radio-persistent-ripple"],[1,"mdc-label",3,"for"]],template:function(i,r){if(i&1){let s=ze();Qe(),P(0,"div",2,0)(2,"div",3)(3,"div",4),X("click",function(o){return re(s),se(r._onTouchTargetClick(o))}),U(),P(4,"input",5,1),X("change",function(o){return re(s),se(r._onInputInteraction(o))}),U(),P(6,"div",6),te(7,"div",7)(8,"div",8),U(),P(9,"div",9),te(10,"div",10),U()(),P(11,"label",11),Fe(12),U()()}i&2&&(j("labelPosition",r.labelPosition),$(2),ye("mdc-radio--disabled",r.disabled),$(2),j("id",r.inputId)("checked",r.checked)("disabled",r.disabled&&!r.disabledInteractive)("required",r.required),Se("name",r.name)("value",r.value)("aria-label",r.ariaLabel)("aria-labelledby",r.ariaLabelledby)("aria-describedby",r.ariaDescribedby)("aria-disabled",r.disabled&&r.disabledInteractive?"true":null),$(5),j("matRippleTrigger",r._rippleTrigger.nativeElement)("matRippleDisabled",r._isRippleDisabled())("matRippleCentered",!0),$(2),j("for",r.inputId))},dependencies:[pn,El],styles:[`.mat-mdc-radio-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-radio-button .mdc-radio{display:inline-block;position:relative;flex:0 0 auto;box-sizing:content-box;width:20px;height:20px;cursor:pointer;will-change:opacity,transform,border-color,color;padding:calc((var(--mdc-radio-state-layer-size, 40px) - 20px)/2)}.mat-mdc-radio-button .mdc-radio:hover>.mdc-radio__native-control:not([disabled]):not(:focus)~.mdc-radio__background::before{opacity:.04;transform:scale(1)}.mat-mdc-radio-button .mdc-radio:hover>.mdc-radio__native-control:not([disabled])~.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-hover-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mdc-radio:hover>.mdc-radio__native-control:enabled:checked+.mdc-radio__background>.mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:hover>.mdc-radio__native-control:enabled:checked+.mdc-radio__background>.mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-hover-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio:active>.mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-pressed-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mdc-radio:active>.mdc-radio__native-control:enabled:checked+.mdc-radio__background>.mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:active>.mdc-radio__native-control:enabled:checked+.mdc-radio__background>.mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-pressed-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__background{display:inline-block;position:relative;box-sizing:border-box;width:20px;height:20px}.mat-mdc-radio-button .mdc-radio__background::before{position:absolute;transform:scale(0, 0);border-radius:50%;opacity:0;pointer-events:none;content:"";transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);width:var(--mdc-radio-state-layer-size, 40px);height:var(--mdc-radio-state-layer-size, 40px);top:calc(-1*(var(--mdc-radio-state-layer-size, 40px) - 20px)/2);left:calc(-1*(var(--mdc-radio-state-layer-size, 40px) - 20px)/2)}.mat-mdc-radio-button .mdc-radio__outer-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;border-width:2px;border-style:solid;border-radius:50%;transition:border-color 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-radio-button .mdc-radio__inner-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;transform:scale(0, 0);border-width:10px;border-style:solid;border-radius:50%;transition:transform 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-radio-button .mdc-radio__native-control{position:absolute;margin:0;padding:0;opacity:0;top:0;right:0;left:0;cursor:inherit;z-index:1;width:var(--mdc-radio-state-layer-size, 40px);height:var(--mdc-radio-state-layer-size, 40px)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background{transition:opacity 90ms cubic-bezier(0, 0, 0.2, 1),transform 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background>.mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background>.mdc-radio__outer-circle{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background>.mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background>.mdc-radio__inner-circle{transition:transform 90ms cubic-bezier(0, 0, 0.2, 1),border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:focus+.mdc-radio__background::before{transform:scale(1);opacity:.12;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 1),transform 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-unselected-icon-opacity, 0.38)}.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background{cursor:default}.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background>.mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-selected-icon-opacity, 0.38)}.mat-mdc-radio-button .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-radio-button .mdc-radio__native-control:enabled:checked+.mdc-radio__background>.mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio__native-control:enabled:checked+.mdc-radio__background>.mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__native-control:enabled:focus:checked+.mdc-radio__background>.mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:enabled:focus:checked+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-focus-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background>.mdc-radio__inner-circle{transform:scale(0.5);transition:transform 90ms cubic-bezier(0, 0, 0.2, 1),border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled{pointer-events:auto}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:not(:checked)+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-unselected-icon-opacity, 0.38)}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled:hover .mdc-radio__native-control:checked+.mdc-radio__background>.mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled:hover .mdc-radio__native-control:checked+.mdc-radio__background>.mdc-radio__outer-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:checked:focus+.mdc-radio__background>.mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:checked:focus+.mdc-radio__background>.mdc-radio__outer-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control+.mdc-radio__background>.mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-selected-icon-opacity, 0.38)}.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__background::before,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__outer-circle,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__inner-circle{transition:none !important}.mat-mdc-radio-button .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button.mat-mdc-radio-checked .mat-ripple-element,.mat-mdc-radio-button.mat-mdc-radio-checked .mdc-radio__background::before{background-color:var(--mat-radio-checked-ripple-color, var(--mat-sys-primary))}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mat-ripple-element,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mat-internal-form-field{color:var(--mat-radio-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-radio-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-radio-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-radio-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-radio-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-radio-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-radio-button .mdc-radio--disabled+label{color:var(--mat-radio-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-radio-button .mat-radio-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:50%}.mat-mdc-radio-button .mat-radio-ripple>.mat-ripple-element{opacity:.14}.mat-mdc-radio-button .mat-radio-ripple::before{border-radius:50%}.mat-mdc-radio-button .mdc-radio>.mdc-radio__native-control:focus:enabled:not(:checked)~.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button.cdk-focused .mat-focus-indicator::before{content:""}.mat-mdc-radio-disabled{cursor:default;pointer-events:none}.mat-mdc-radio-disabled.mat-mdc-radio-disabled-interactive{pointer-events:auto}.mat-mdc-radio-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-radio-touch-target-display, block)}[dir=rtl] .mat-mdc-radio-touch-target{left:auto;right:50%;transform:translate(50%, -50%)} +`],encapsulation:2,changeDetection:0})}return n})(),Bb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,Ar,uB,Oe]})}return n})();var dB=["switch"],hB=["*"];function mB(n,t){n&1&&(P(0,"span",10),Ht(),P(1,"svg",12),te(2,"path",13),U(),P(3,"svg",14),te(4,"path",15),U()())}var fB=new J("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1,disabledInteractive:!1})}),pB={provide:cs,useExisting:Ci(()=>fE),multi:!0},wf=class{source;checked;constructor(t,e){this.source=t,this.checked=e}},fE=(()=>{class n{_elementRef=R(Te);_focusMonitor=R(mn);_changeDetectorRef=R(Ge);defaults=R(fB);_onChange=e=>{};_onTouched=()=>{};_validatorOnChange=()=>{};_uniqueId;_checked=!1;_createChangeEvent(e){return new wf(this,e)}_labelId;get buttonId(){return`${this.id||this._uniqueId}-button`}_switchElement;focus(){this._switchElement.nativeElement.focus()}_noopAnimations;_focused;name=null;id;labelPosition="after";ariaLabel=null;ariaLabelledby=null;ariaDescribedby;required;color;disabled=!1;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(e){this._checked=e,this._changeDetectorRef.markForCheck()}hideIcon;disabledInteractive;change=new ce;toggleChange=new ce;get inputId(){return`${this.id||this._uniqueId}-input`}constructor(){R(pt).load(xi);let e=R(new un("tabindex"),{optional:!0}),i=this.defaults,r=R(ot,{optional:!0});this.tabIndex=e==null?0:parseInt(e)||0,this.color=i.color||"accent",this._noopAnimations=r==="NoopAnimations",this.id=this._uniqueId=R(At).getId("mat-mdc-slide-toggle-"),this.hideIcon=i.hideIcon??!1,this.disabledInteractive=i.disabledInteractive??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{e==="keyboard"||e==="program"?(this._focused=!0,this._changeDetectorRef.markForCheck()):e||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(e){e.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(e){this.checked=!!e}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}validate(e){return this.required&&e.value!==!0?{required:!0}:null}registerOnValidatorChange(e){this._validatorOnChange=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.disabled||(this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new wf(this,this.checked))))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-slide-toggle"]],viewQuery:function(i,r){if(i&1&&Pe(dB,5),i&2){let s;ke(s=Me())&&(r._switchElement=s.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,r){i&2&&(Tn("id",r.id),Se("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),ft(r.color?"mat-"+r.color:""),ye("mat-mdc-slide-toggle-focused",r._focused)("mat-mdc-slide-toggle-checked",r.checked)("_mat-animation-noopable",r._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],required:[2,"required","required",_e],color:"color",disabled:[2,"disabled","disabled",_e],disableRipple:[2,"disableRipple","disableRipple",_e],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:Ft(e)],checked:[2,"checked","checked",_e],hideIcon:[2,"hideIcon","hideIcon",_e],disabledInteractive:[2,"disabledInteractive","disabledInteractive",_e]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],features:[rt([pB,{provide:na,useExisting:n,multi:!0}]),mt],ngContentSelectors:hB,decls:13,vars:27,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(i,r){if(i&1){let s=ze();Qe(),P(0,"div",1)(1,"button",2,0),X("click",function(){return re(s),se(r._handleClick())}),te(3,"span",3),P(4,"span",4)(5,"span",5)(6,"span",6),te(7,"span",7),U(),P(8,"span",8),te(9,"span",9),U(),oe(10,mB,5,0,"span",10),U()()(),P(11,"label",11),X("click",function(o){return re(s),se(o.stopPropagation())}),Fe(12),U()()}if(i&2){let s=jt(2);j("labelPosition",r.labelPosition),$(),ye("mdc-switch--selected",r.checked)("mdc-switch--unselected",!r.checked)("mdc-switch--checked",r.checked)("mdc-switch--disabled",r.disabled)("mat-mdc-slide-toggle-disabled-interactive",r.disabledInteractive),j("tabIndex",r.disabled&&!r.disabledInteractive?-1:r.tabIndex)("disabled",r.disabled&&!r.disabledInteractive),Se("id",r.buttonId)("name",r.name)("aria-label",r.ariaLabel)("aria-labelledby",r._getAriaLabelledBy())("aria-describedby",r.ariaDescribedby)("aria-required",r.required||null)("aria-checked",r.checked)("aria-disabled",r.disabled&&r.disabledInteractive?"true":null),$(8),j("matRippleTrigger",s)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),$(),Je(r.hideIcon?-1:10),$(),j("for",r.buttonId),Se("id",r._labelId)}},dependencies:[pn,El],styles:[`.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative;width:var(--mdc-switch-track-width, 52px)}.mdc-switch.mdc-switch--disabled{cursor:default;pointer-events:none}.mdc-switch.mat-mdc-slide-toggle-disabled-interactive{pointer-events:auto}.mdc-switch__track{overflow:hidden;position:relative;width:100%;height:var(--mdc-switch-track-height, 32px);border-radius:var(--mdc-switch-track-shape, var(--mat-sys-corner-full))}.mdc-switch--disabled.mdc-switch .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity, 0.12)}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%;border-width:var(--mat-switch-track-outline-width, 2px);border-color:var(--mat-switch-track-outline-color, var(--mat-sys-outline))}.mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track::after{border-width:var(--mat-switch-selected-track-outline-width, 2px);border-color:var(--mat-switch-selected-track-outline-color, transparent)}.mdc-switch--disabled .mdc-switch__track::before,.mdc-switch--disabled .mdc-switch__track::after{border-width:var(--mat-switch-disabled-unselected-track-outline-width, 2px);border-color:var(--mat-switch-disabled-unselected-track-outline-color, var(--mat-sys-on-surface))}@media(forced-colors: active){.mdc-switch__track{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0);background:var(--mdc-switch-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch--selected .mdc-switch__track::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color, var(--mat-sys-surface-variant))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::before,.mdc-switch.mdc-switch--disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch__track::after{transform:translateX(-100%);background:var(--mdc-switch-selected-track-color, var(--mat-sys-primary))}[dir=rtl] .mdc-switch__track::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::after{transform:translateX(0)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-switch-visible-track-opacity, 1);transition:var(--mat-switch-visible-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-switch-hidden-track-opacity, 0);transition:var(--mat-switch-hidden-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color, var(--mat-sys-primary))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::after,.mdc-switch.mdc-switch--disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color, var(--mat-sys-on-surface))}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0);width:calc(100% - var(--mdc-switch-handle-width))}[dir=rtl] .mdc-switch__handle-track{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto;transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1);width:var(--mdc-switch-handle-width);height:var(--mdc-switch-handle-height);border-radius:var(--mdc-switch-handle-shape, var(--mat-sys-corner-full))}[dir=rtl] .mdc-switch__handle{left:auto;right:0}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size, 16px);height:var(--mat-switch-unselected-handle-size, 16px);margin:var(--mat-switch-unselected-handle-horizontal-margin, 0 8px)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-unselected-with-icon-handle-horizontal-margin, 0 4px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size, 24px);height:var(--mat-switch-selected-handle-size, 24px);margin:var(--mat-switch-selected-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-selected-with-icon-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-switch-with-icon-handle-size, 24px);height:var(--mat-switch-with-icon-handle-size, 24px)}.mat-mdc-slide-toggle .mdc-switch:active:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-switch-pressed-handle-size, 28px);height:var(--mat-switch-pressed-handle-size, 28px)}.mat-mdc-slide-toggle .mdc-switch--selected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin, 0 22px)}.mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin, 0 2px)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-selected-handle-opacity, 1)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-unselected-handle-opacity, 0.38)}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media(forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color, var(--mat-sys-on-primary))}.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color, var(--mat-sys-primary-container))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:hover:not(:focus):not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:focus:not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:active .mdc-switch__handle::after,.mdc-switch--selected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color, var(--mat-sys-surface))}.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color, var(--mat-sys-outline))}.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color, var(--mat-sys-on-surface))}.mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__shadow,.mdc-switch.mdc-switch--disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1;width:var(--mdc-switch-state-layer-size, 40px);height:var(--mdc-switch-state-layer-size, 40px)}.mdc-switch__ripple::after{content:"";opacity:0}.mdc-switch--disabled .mdc-switch__ripple::after{display:none}.mat-mdc-slide-toggle-disabled-interactive .mdc-switch__ripple::after{display:block}.mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:75ms opacity cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:focus .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:active .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:hover:not(:focus) .mdc-switch__ripple::after,.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-pressed-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-selected-pressed-state-layer-color, var(--mat-sys-primary));opacity:var(--mdc-switch-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch__icons{position:relative;height:100%;width:100%;z-index:1;transform:translateZ(0)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity, 0.38)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity, 0.38)}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size, 16px);height:var(--mdc-switch-unselected-icon-size, 16px);fill:var(--mdc-switch-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size, 16px);height:var(--mdc-switch-selected-icon-size, 16px);fill:var(--mdc-switch-selected-icon-color, var(--mat-sys-on-primary-container))}.mdc-switch--selected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color, var(--mat-sys-on-surface))}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle{-webkit-user-select:none;user-select:none;display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-internal-form-field{color:var(--mat-switch-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-switch-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-switch-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-switch-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-switch-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-switch-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)} +`],encapsulation:2,changeDetection:0})}return n})();var zb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[fE,Oe,Oe]})}return n})();var Hb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,Ar]})}return n})();var pE=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[mu]})}return n})();var jb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,pE,Oe]})}return n})();var Yb=["*"];function gB(n,t){n&1&&Fe(0)}var _B=["tabListContainer"],bB=["tabList"],vB=["tabListInner"],yB=["nextPaginator"],CB=["previousPaginator"],wB=["content"];function xB(n,t){}var SB=["tabBodyWrapper"],kB=["tabHeader"];function MB(n,t){}function TB(n,t){if(n&1&&oe(0,MB,0,0,"ng-template",12),n&2){let e=Y().$implicit;j("cdkPortalOutlet",e.templateLabel)}}function EB(n,t){if(n&1&&B(0),n&2){let e=Y().$implicit;He(e.textLabel)}}function AB(n,t){if(n&1){let e=ze();P(0,"div",7,2),X("click",function(){let r=re(e),s=r.$implicit,a=r.$index,o=Y(),l=jt(1);return se(o._handleClick(s,l,a))})("cdkFocusChange",function(r){let s=re(e).$index,a=Y();return se(a._tabFocusChanged(r,s))}),te(2,"span",8)(3,"div",9),P(4,"span",10)(5,"span",11),oe(6,TB,1,1,null,12)(7,EB,1,1),U()()()}if(n&2){let e=t.$implicit,i=t.$index,r=jt(1),s=Y();ft(e.labelClass),ye("mdc-tab--active",s.selectedIndex===i),j("id",s._getTabLabelId(e,i))("disabled",e.disabled)("fitInkBarToContent",s.fitInkBarToContent),Se("tabIndex",s._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",s._tabs.length)("aria-controls",s._getTabContentId(i))("aria-selected",s.selectedIndex===i)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),$(3),j("matRippleTrigger",r)("matRippleDisabled",e.disabled||s.disableRipple),$(3),Je(e.templateLabel?6:7)}}function IB(n,t){n&1&&Fe(0)}function DB(n,t){if(n&1){let e=ze();P(0,"mat-tab-body",13),X("_onCentered",function(){re(e);let r=Y();return se(r._removeTabBodyWrapperHeight())})("_onCentering",function(r){re(e);let s=Y();return se(s._setTabBodyWrapperHeight(r))})("_beforeCentering",function(r){re(e);let s=Y();return se(s._bodyCentered(r))}),U()}if(n&2){let e=t.$implicit,i=t.$index,r=Y();ft(e.bodyClass),j("id",r._getTabContentId(i))("content",e.content)("position",e.position)("animationDuration",r.animationDuration)("preserveContent",r.preserveContent),Se("tabindex",r.contentTabIndex!=null&&r.selectedIndex===i?r.contentTabIndex:null)("aria-labelledby",r._getTabLabelId(e,i))("aria-hidden",r.selectedIndex!==i)}}var RB=new J("MatTabContent"),LB=(()=>{class n{template=R(Mn);constructor(){}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","matTabContent",""]],features:[rt([{provide:RB,useExisting:n}])]})}return n})(),OB=new J("MatTabLabel"),vE=new J("MAT_TAB"),NB=(()=>{class n extends Z_{_closestTab=R(vE,{optional:!0});static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275dir=xe({type:n,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[rt([{provide:OB,useExisting:n}]),Tt]})}return n})(),yE=new J("MAT_TAB_GROUP"),Qb=(()=>{class n{_viewContainerRef=R(ui);_closestTabGroup=R(yE,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;id=null;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new ue;position=null;origin=null;isActive=!1;constructor(){R(pt).load(xi)}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new Er(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-tab"]],contentQueries:function(i,r,s){if(i&1&&(Et(s,NB,5),Et(s,LB,7,Mn)),i&2){let a;ke(a=Me())&&(r.templateLabel=a.first),ke(a=Me())&&(r._explicitContent=a.first)}},viewQuery:function(i,r){if(i&1&&Pe(Mn,7),i&2){let s;ke(s=Me())&&(r._implicitContent=s.first)}},hostAttrs:["hidden",""],hostVars:1,hostBindings:function(i,r){i&2&&Se("id",null)},inputs:{disabled:[2,"disabled","disabled",_e],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass",id:"id"},exportAs:["matTab"],features:[rt([{provide:vE,useExisting:n}]),mt],ngContentSelectors:Yb,decls:1,vars:0,template:function(i,r){i&1&&(Qe(),oe(0,gB,1,0,"ng-template"))},encapsulation:2})}return n})(),Wb="mdc-tab-indicator--active",gE="mdc-tab-indicator--no-transition",qb=class{_items;_currentItem;constructor(t){this._items=t}hide(){this._items.forEach(t=>t.deactivateInkBar()),this._currentItem=void 0}alignToElement(t){let e=this._items.find(r=>r.elementRef.nativeElement===t),i=this._currentItem;if(e!==i&&(i?.deactivateInkBar(),e)){let r=i?.elementRef.nativeElement.getBoundingClientRect?.();e.activateInkBar(r),this._currentItem=e}}},FB=(()=>{class n{_elementRef=R(Te);_inkBarElement;_inkBarContentElement;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(e){this._fitToContent!==e&&(this._fitToContent=e,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(e){let i=this._elementRef.nativeElement;if(!e||!i.getBoundingClientRect||!this._inkBarContentElement){i.classList.add(Wb);return}let r=i.getBoundingClientRect(),s=e.width/r.width,a=e.left-r.left;i.classList.add(gE),this._inkBarContentElement.style.setProperty("transform",`translateX(${a}px) scaleX(${s})`),i.getBoundingClientRect(),i.classList.remove(gE),i.classList.add(Wb),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(Wb)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){let e=this._elementRef.nativeElement.ownerDocument||document,i=this._inkBarElement=e.createElement("span"),r=this._inkBarContentElement=e.createElement("span");i.className="mdc-tab-indicator",r.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",i.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){this._inkBarElement;let e=this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement;e.appendChild(this._inkBarElement)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",_e]}})}return n})();var CE=(()=>{class n extends FB{elementRef=R(Te);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275dir=xe({type:n,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(i,r){i&2&&(Se("aria-disabled",!!r.disabled),ye("mat-mdc-tab-disabled",r.disabled))},inputs:{disabled:[2,"disabled","disabled",_e]},features:[Tt]})}return n})(),_E={passive:!0},PB=650,UB=100,$B=(()=>{class n{_elementRef=R(Te);_changeDetectorRef=R(Ge);_viewportRuler=R(On);_dir=R(ti,{optional:!0});_ngZone=R(De);_platform=R(st);_sharedResizeObserver=R(cf);_injector=R(ut);_renderer=R(Rt);_animationMode=R(ot,{optional:!0});_eventCleanups;_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new ue;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged;_keyManager;_currentTextContent;_stopScrolling=new ue;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){let i=isNaN(e)?0:e;this._selectedIndex!=i&&(this._selectedIndexChanged=!0,this._selectedIndex=i,this._keyManager&&this._keyManager.updateActiveItem(i))}_selectedIndex=0;selectFocusedIndex=new ce;indexFocused=new ce;constructor(){this._eventCleanups=this._ngZone.runOutsideAngular(()=>[this._renderer.listen(this._elementRef.nativeElement,"mouseleave",()=>this._stopInterval())])}ngAfterViewInit(){this._eventCleanups.push(Ot(this._renderer,this._previousPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("before"),_E),Ot(this._renderer,this._nextPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("after"),_E))}ngAfterContentInit(){let e=this._dir?this._dir.change:ge("ltr"),i=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(Ii(32),Ye(this._destroyed)),r=this._viewportRuler.change(150).pipe(Ye(this._destroyed)),s=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new cl(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(Math.max(this._selectedIndex,0)),Yt(s,{injector:this._injector}),Kt(e,r,i,this._items.changes,this._itemsResized()).pipe(Ye(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),s()})}),this._keyManager?.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(a=>{this.indexFocused.emit(a),this._setTabFocus(a)})}_itemsResized(){return typeof ResizeObserver!="function"?on:this._items.changes.pipe(Bt(this._items),Mt(e=>new dr(i=>this._ngZone.runOutsideAngular(()=>{let r=new ResizeObserver(s=>i.next(s));return e.forEach(s=>r.observe(s.elementRef.nativeElement)),()=>{r.disconnect()}}))),Ao(1),it(e=>e.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._eventCleanups.forEach(e=>e()),this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!wi(e))switch(e.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){let i=this._items.get(this.focusIndex);i&&!i.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(e))}break;default:this._keyManager?.onKeydown(e)}}_onContentChanges(){let e=this._elementRef.nativeElement.textContent;e!==this._currentTextContent&&(this._currentTextContent=e||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(e){!this._isValidIndex(e)||this.focusIndex===e||!this._keyManager||this._keyManager.setActiveItem(e)}_isValidIndex(e){return this._items?!!this._items.toArray()[e]:!0}_setTabFocus(e){if(this._showPaginationControls&&this._scrollToLabel(e),this._items&&this._items.length){this._items.toArray()[e].focus();let i=this._tabListContainer.nativeElement;this._getLayoutDirection()=="ltr"?i.scrollLeft=0:i.scrollLeft=i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;let e=this.scrollDistance,i=this._getLayoutDirection()==="ltr"?-e:e;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(e){this._scrollTo(e)}_scrollHeader(e){let i=this._tabListContainer.nativeElement.offsetWidth,r=(e=="before"?-1:1)*i/3;return this._scrollTo(this._scrollDistance+r)}_handlePaginatorClick(e){this._stopInterval(),this._scrollHeader(e)}_scrollToLabel(e){if(this.disablePagination)return;let i=this._items?this._items.toArray()[e]:null;if(!i)return;let r=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:s,offsetWidth:a}=i.elementRef.nativeElement,o,l;this._getLayoutDirection()=="ltr"?(o=s,l=o+a):(l=this._tabListInner.nativeElement.offsetWidth-s,o=l-a);let c=this.scrollDistance,u=this.scrollDistance+r;ou&&(this.scrollDistance+=Math.min(l-u,o-c))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{let e=this._tabListInner.nativeElement.scrollWidth,i=this._elementRef.nativeElement.offsetWidth,r=e-i>=5;r||(this.scrollDistance=0),r!==this._showPaginationControls&&(this._showPaginationControls=r,this._changeDetectorRef.markForCheck())}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=this.scrollDistance==0,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){let e=this._tabListInner.nativeElement.scrollWidth,i=this._tabListContainer.nativeElement.offsetWidth;return e-i||0}_alignInkBarToSelectedTab(){let e=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=e?e.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(e,i){i&&i.button!=null&&i.button!==0||(this._stopInterval(),oh(PB,UB).pipe(Ye(Kt(this._stopScrolling,this._destroyed))).subscribe(()=>{let{maxScrollDistance:r,distance:s}=this._scrollHeader(e);(s===0||s>=r)&&this._stopInterval()}))}_scrollTo(e){if(this.disablePagination)return{maxScrollDistance:0,distance:0};let i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,e)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,inputs:{disablePagination:[2,"disablePagination","disablePagination",_e],selectedIndex:[2,"selectedIndex","selectedIndex",Ft]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"}})}return n})(),VB=(()=>{class n extends $B{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new qb(this._items),super.ngAfterContentInit()}_itemSelected(e){e.preventDefault()}static \u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})();static \u0275cmp=le({type:n,selectors:[["mat-tab-header"]],contentQueries:function(i,r,s){if(i&1&&Et(s,CE,4),i&2){let a;ke(a=Me())&&(r._items=a)}},viewQuery:function(i,r){if(i&1&&(Pe(_B,7),Pe(bB,7),Pe(vB,7),Pe(yB,5),Pe(CB,5)),i&2){let s;ke(s=Me())&&(r._tabListContainer=s.first),ke(s=Me())&&(r._tabList=s.first),ke(s=Me())&&(r._tabListInner=s.first),ke(s=Me())&&(r._nextPaginator=s.first),ke(s=Me())&&(r._previousPaginator=s.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(i,r){i&2&&ye("mat-mdc-tab-header-pagination-controls-enabled",r._showPaginationControls)("mat-mdc-tab-header-rtl",r._getLayoutDirection()=="rtl")},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],disableRipple:[2,"disableRipple","disableRipple",_e]},features:[Tt],ngContentSelectors:Yb,decls:13,vars:10,consts:[["previousPaginator",""],["tabListContainer",""],["tabList",""],["tabListInner",""],["nextPaginator",""],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"click","mousedown","touchend","matRippleDisabled"],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],[1,"mat-mdc-tab-labels"],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"mousedown","click","touchend","matRippleDisabled"]],template:function(i,r){if(i&1){let s=ze();Qe(),P(0,"div",5,0),X("click",function(){return re(s),se(r._handlePaginatorClick("before"))})("mousedown",function(o){return re(s),se(r._handlePaginatorPress("before",o))})("touchend",function(){return re(s),se(r._stopInterval())}),te(2,"div",6),U(),P(3,"div",7,1),X("keydown",function(o){return re(s),se(r._handleKeydown(o))}),P(5,"div",8,2),X("cdkObserveContent",function(){return re(s),se(r._onContentChanges())}),P(7,"div",9,3),Fe(9),U()()(),P(10,"div",10,4),X("mousedown",function(o){return re(s),se(r._handlePaginatorPress("after",o))})("click",function(){return re(s),se(r._handlePaginatorClick("after"))})("touchend",function(){return re(s),se(r._stopInterval())}),te(12,"div",6),U()}i&2&&(ye("mat-mdc-tab-header-pagination-disabled",r._disableScrollBefore),j("matRippleDisabled",r._disableScrollBefore||r.disableRipple),$(3),ye("_mat-animation-noopable",r._animationMode==="NoopAnimations"),$(2),Se("aria-label",r.ariaLabel||null)("aria-labelledby",r.ariaLabelledby||null),$(5),ye("mat-mdc-tab-header-pagination-disabled",r._disableScrollAfter),j("matRippleDisabled",r._disableScrollAfter||r.disableRipple))},dependencies:[pn,Ik],styles:[`.mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;outline:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height, 1px);border-bottom-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-header-divider-height, 1px);border-top-color:var(--mat-tab-header-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mdc-secondary-navigation-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}} +`],encapsulation:2})}return n})(),BB=new J("MAT_TABS_CONFIG"),bE=(()=>{class n extends ja{_host=R(Gb);_centeringSub=St.EMPTY;_leavingSub=St.EMPTY;constructor(){super()}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(Bt(this._host._isCenterPosition())).subscribe(e=>{this._host._content&&e&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=xe({type:n,selectors:[["","matTabBodyHost",""]],features:[Tt]})}return n})(),Gb=(()=>{class n{_elementRef=R(Te);_dir=R(ti,{optional:!0});_ngZone=R(De);_injector=R(ut);_renderer=R(Rt);_animationsModule=R(ot,{optional:!0});_eventCleanups;_initialized;_fallbackTimer;_positionIndex;_dirChangeSubscription=St.EMPTY;_position;_previousPosition;_onCentering=new ce;_beforeCentering=new ce;_afterLeavingCenter=new ce;_onCentered=new ce(!0);_portalHost;_contentElement;_content;animationDuration="500ms";preserveContent=!1;set position(e){this._positionIndex=e,this._computePositionAnimationState()}constructor(){if(this._dir){let e=R(Ge);this._dirChangeSubscription=this._dir.change.subscribe(i=>{this._computePositionAnimationState(i),e.markForCheck()})}}ngOnInit(){this._bindTransitionEvents(),this._position==="center"&&(this._setActiveClass(!0),Yt(()=>this._onCentering.emit(this._elementRef.nativeElement.clientHeight),{injector:this._injector})),this._initialized=!0}ngOnDestroy(){clearTimeout(this._fallbackTimer),this._eventCleanups?.forEach(e=>e()),this._dirChangeSubscription.unsubscribe()}_bindTransitionEvents(){this._ngZone.runOutsideAngular(()=>{let e=this._elementRef.nativeElement,i=r=>{r.target===this._contentElement?.nativeElement&&(this._elementRef.nativeElement.classList.remove("mat-tab-body-animating"),r.type==="transitionend"&&this._transitionDone())};this._eventCleanups=[this._renderer.listen(e,"transitionstart",r=>{r.target===this._contentElement?.nativeElement&&(this._elementRef.nativeElement.classList.add("mat-tab-body-animating"),this._transitionStarted())}),this._renderer.listen(e,"transitionend",i),this._renderer.listen(e,"transitioncancel",i)]})}_transitionStarted(){clearTimeout(this._fallbackTimer);let e=this._position==="center";this._beforeCentering.emit(e),e&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_transitionDone(){this._position==="center"?this._onCentered.emit():this._previousPosition==="center"&&this._afterLeavingCenter.emit()}_setActiveClass(e){this._elementRef.nativeElement.classList.toggle("mat-mdc-tab-body-active",e)}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_isCenterPosition(){return this._positionIndex===0}_computePositionAnimationState(e=this._getLayoutDirection()){this._previousPosition=this._position,this._positionIndex<0?this._position=e=="ltr"?"left":"right":this._positionIndex>0?this._position=e=="ltr"?"right":"left":this._position="center",this._animationsDisabled()?this._simulateTransitionEvents():this._initialized&&(this._position==="center"||this._previousPosition==="center")&&(clearTimeout(this._fallbackTimer),this._fallbackTimer=this._ngZone.runOutsideAngular(()=>setTimeout(()=>this._simulateTransitionEvents(),100)))}_simulateTransitionEvents(){this._transitionStarted(),Yt(()=>this._transitionDone(),{injector:this._injector})}_animationsDisabled(){return this._animationsModule==="NoopAnimations"||this.animationDuration==="0ms"||this.animationDuration==="0s"}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-tab-body"]],viewQuery:function(i,r){if(i&1&&(Pe(bE,5),Pe(wB,5)),i&2){let s;ke(s=Me())&&(r._portalHost=s.first),ke(s=Me())&&(r._contentElement=s.first)}},hostAttrs:[1,"mat-mdc-tab-body"],hostVars:1,hostBindings:function(i,r){i&2&&Se("inert",r._position==="center"?null:"")},inputs:{_content:[0,"content","_content"],animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_onCentered:"_onCentered"},decls:3,vars:6,consts:[["content",""],["cdkScrollable","",1,"mat-mdc-tab-body-content"],["matTabBodyHost",""]],template:function(i,r){i&1&&(P(0,"div",1,0),oe(2,xB,0,0,"ng-template",2),U()),i&2&&ye("mat-tab-body-content-left",r._position==="left")("mat-tab-body-content-right",r._position==="right")("mat-tab-body-content-can-animate",r._position==="center"||r._previousPosition==="center")},dependencies:[bE,X_],styles:[`.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto;transform:none;visibility:hidden}.mat-tab-body-animating>.mat-mdc-tab-body-content,.mat-mdc-tab-body-active>.mat-mdc-tab-body-content{visibility:visible}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-tab-body-content-can-animate{transition:transform var(--mat-tab-animation-duration) 1ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable .mat-tab-body-content-can-animate{transition:none}.mat-tab-body-content-left{transform:translate3d(-100%, 0, 0)}.mat-tab-body-content-right{transform:translate3d(100%, 0, 0)} +`],encapsulation:2})}return n})(),wE=(()=>{class n{_elementRef=R(Te);_changeDetectorRef=R(Ge);_ngZone=R(De);_tabsSubscription=St.EMPTY;_tabLabelSubscription=St.EMPTY;_tabBodySubscription=St.EMPTY;_diAnimationsDisabled=R(ot,{optional:!0})==="NoopAnimations";_allTabs;_tabBodies;_tabBodyWrapper;_tabHeader;_tabs=new Do;_indexToSelect=0;_lastFocusedTabIndex=null;_tabBodyWrapperHeight=0;color;get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(e){this._fitInkBarToContent=e,this._changeDetectorRef.markForCheck()}_fitInkBarToContent=!1;stretchTabs=!0;alignTabs=null;dynamicHeight=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(e){this._indexToSelect=isNaN(e)?null:e}_selectedIndex=null;headerPosition="above";get animationDuration(){return this._animationDuration}set animationDuration(e){let i=e+"";this._animationDuration=/^\d+$/.test(i)?e+"ms":i}_animationDuration;get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(e){this._contentTabIndex=isNaN(e)?null:e}_contentTabIndex;disablePagination=!1;disableRipple=!1;preserveContent=!1;get backgroundColor(){return this._backgroundColor}set backgroundColor(e){let i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),e&&i.add("mat-tabs-with-background",`mat-background-${e}`),this._backgroundColor=e}_backgroundColor;ariaLabel;ariaLabelledby;selectedIndexChange=new ce;focusChange=new ce;animationDone=new ce;selectedTabChange=new ce(!0);_groupId;_isServer=!R(st).isBrowser;constructor(){let e=R(BB,{optional:!0});this._groupId=R(At).getId("mat-tab-group-"),this.animationDuration=e&&e.animationDuration?e.animationDuration:"500ms",this.disablePagination=e&&e.disablePagination!=null?e.disablePagination:!1,this.dynamicHeight=e&&e.dynamicHeight!=null?e.dynamicHeight:!1,e?.contentTabIndex!=null&&(this.contentTabIndex=e.contentTabIndex),this.preserveContent=!!e?.preserveContent,this.fitInkBarToContent=e&&e.fitInkBarToContent!=null?e.fitInkBarToContent:!1,this.stretchTabs=e&&e.stretchTabs!=null?e.stretchTabs:!0,this.alignTabs=e&&e.alignTabs!=null?e.alignTabs:null}ngAfterContentChecked(){let e=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=e){let i=this._selectedIndex==null;if(!i){this.selectedTabChange.emit(this._createChangeEvent(e));let r=this._tabBodyWrapper.nativeElement;r.style.minHeight=r.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((r,s)=>r.isActive=s===e),i||(this.selectedIndexChange.emit(e),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,r)=>{i.position=r-e,this._selectedIndex!=null&&i.position==0&&!i.origin&&(i.origin=e-this._selectedIndex)}),this._selectedIndex!==e&&(this._selectedIndex=e,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{let e=this._clampTabIndex(this._indexToSelect);if(e===this._selectedIndex){let i=this._tabs.toArray(),r;for(let s=0;s{i[e].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(e))})}this._changeDetectorRef.markForCheck()})}ngAfterViewInit(){this._tabBodySubscription=this._tabBodies.changes.subscribe(()=>this._bodyCentered(!0))}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(Bt(this._allTabs)).subscribe(e=>{this._tabs.reset(e.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe(),this._tabBodySubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(e){let i=this._tabHeader;i&&(i.focusIndex=e)}_focusChanged(e){this._lastFocusedTabIndex=e,this.focusChange.emit(this._createChangeEvent(e))}_createChangeEvent(e){let i=new Kb;return i.index=e,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[e]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=Kt(...this._tabs.map(e=>e._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(e){return Math.min(this._tabs.length-1,Math.max(e||0,0))}_getTabLabelId(e,i){return e.id||`${this._groupId}-label-${i}`}_getTabContentId(e){return`${this._groupId}-content-${e}`}_setTabBodyWrapperHeight(e){if(!this.dynamicHeight||!this._tabBodyWrapperHeight){this._tabBodyWrapperHeight=e;return}let i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=e+"px")}_removeTabBodyWrapperHeight(){let e=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=e.clientHeight,e.style.height="",this._ngZone.run(()=>this.animationDone.emit())}_handleClick(e,i,r){i.focusIndex=r,e.disabled||(this.selectedIndex=r)}_getTabIndex(e){let i=this._lastFocusedTabIndex??this.selectedIndex;return e===i?0:-1}_tabFocusChanged(e,i){e&&e!=="mouse"&&e!=="touch"&&(this._tabHeader.focusIndex=i)}_bodyCentered(e){e&&this._tabBodies?.forEach((i,r)=>i._setActiveClass(r===this._selectedIndex))}_animationsDisabled(){return this._diAnimationsDisabled||this.animationDuration==="0"||this.animationDuration==="0ms"}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=le({type:n,selectors:[["mat-tab-group"]],contentQueries:function(i,r,s){if(i&1&&Et(s,Qb,5),i&2){let a;ke(a=Me())&&(r._allTabs=a)}},viewQuery:function(i,r){if(i&1&&(Pe(SB,5),Pe(kB,5),Pe(Gb,5)),i&2){let s;ke(s=Me())&&(r._tabBodyWrapper=s.first),ke(s=Me())&&(r._tabHeader=s.first),ke(s=Me())&&(r._tabBodies=s)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:11,hostBindings:function(i,r){i&2&&(Se("mat-align-tabs",r.alignTabs),ft("mat-"+(r.color||"primary")),Jt("--mat-tab-animation-duration",r.animationDuration),ye("mat-mdc-tab-group-dynamic-height",r.dynamicHeight)("mat-mdc-tab-group-inverted-header",r.headerPosition==="below")("mat-mdc-tab-group-stretch-tabs",r.stretchTabs))},inputs:{color:"color",fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",_e],stretchTabs:[2,"mat-stretch-tabs","stretchTabs",_e],alignTabs:[0,"mat-align-tabs","alignTabs"],dynamicHeight:[2,"dynamicHeight","dynamicHeight",_e],selectedIndex:[2,"selectedIndex","selectedIndex",Ft],headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:[2,"contentTabIndex","contentTabIndex",Ft],disablePagination:[2,"disablePagination","disablePagination",_e],disableRipple:[2,"disableRipple","disableRipple",_e],preserveContent:[2,"preserveContent","preserveContent",_e],backgroundColor:"backgroundColor",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"]},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},exportAs:["matTabGroup"],features:[rt([{provide:yE,useExisting:n}])],ngContentSelectors:Yb,decls:9,vars:8,consts:[["tabHeader",""],["tabBodyWrapper",""],["tabNode",""],[3,"indexFocused","selectFocusedIndex","selectedIndex","disableRipple","disablePagination","aria-label","aria-labelledby"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"id","mdc-tab--active","class","disabled","fitInkBarToContent"],[1,"mat-mdc-tab-body-wrapper"],["role","tabpanel",3,"id","class","content","position","animationDuration","preserveContent"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"click","cdkFocusChange","id","disabled","fitInkBarToContent"],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"_onCentered","_onCentering","_beforeCentering","id","content","position","animationDuration","preserveContent"]],template:function(i,r){if(i&1){let s=ze();Qe(),P(0,"mat-tab-header",3,0),X("indexFocused",function(o){return re(s),se(r._focusChanged(o))})("selectFocusedIndex",function(o){return re(s),se(r.selectedIndex=o)}),gr(2,AB,8,17,"div",4,xc),U(),oe(4,IB,1,0),P(5,"div",5,1),gr(7,DB,1,10,"mat-tab-body",6,xc),U()}i&2&&(j("selectedIndex",r.selectedIndex||0)("disableRipple",r.disableRipple)("disablePagination",r.disablePagination)("aria-label",r.ariaLabel)("aria-labelledby",r.ariaLabelledby),$(2),_r(r._tabs),$(2),Je(r._isServer?4:-1),$(),ye("_mat-animation-noopable",r._animationsDisabled()),$(2),_r(r._tabs))},dependencies:[VB,CE,Jc,pn,ja,Gb],styles:[`.mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;height:var(--mdc-secondary-navigation-tab-container-height, 48px);font-family:var(--mat-tab-header-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-header-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-header-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-header-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-header-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mdc-tab-indicator-active-indicator-height, 2px);border-radius:var(--mdc-tab-indicator-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color, var(--mat-sys-on-surface));display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important} +`],encapsulation:2})}return n})(),Kb=class{index;tab};var Zb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,Oe]})}return n})();var Xb=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({imports:[Oe,Oe]})}return n})();var HB=[Jr,kc,ub,Su,Qg,pb,fs,q_,Au,Ru,hs,iu,mb,tb,$b,Ll,Hb,zb,jb,Xb,Zb,Rb,xb,Bb,nu];var xE=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=he({type:n})}static{this.\u0275inj=de({imports:[HB,Jr,kc,ub,Su,Qg,pb,fs,q_,Au,Ru,hs,iu,mb,tb,$b,Ll,Hb,zb,jb,Xb,Zb,Rb,xb,Bb,nu]})}}return n})();var rR=Os(nR());var sR=(()=>{class n{evaluate(e,i){return(0,rR.evaluate)(e,i,null)}evaluateToString(e,i){let r=this.evaluate(e,i);return r&&r instanceof Array&&r.length===1?r[0]:null}getOauthUriToken(e){return this.evaluateToString(e,"rest.security.extension.where(url='http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris').extension.where(url='token').valueUri")}getOauthUriAuthorize(e){return this.evaluateToString(e,"rest.security.extension.where(url='http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris').extension.where(url='authorize').valueUri")}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}}return n})();var ej=()=>({"background-color":"lightyellow"}),tj=()=>({});function ij(n,t){if(n&1){let e=ze();P(0,"tr",9),X("click",function(){let r=re(e).$implicit,s=Y();return se(s.selectRow(r))}),P(1,"td"),B(2),U(),P(3,"td",10),B(4),U(),P(5,"td",10),B(6),U()()}if(n&2){let e=t.$implicit,i=Y();j("ngStyle",i.isCurrent(e)?dg(4,ej):dg(5,tj)),$(2),He(e.packageId),$(2),He(e.version),$(2),He(e.title)}}function nj(n,t){if(n&1){let e=ze();qi(0),B(1,"\xA0 "),P(2,"button",6),X("click",function(){re(e);let r=Y();return se(r.onUpdate())}),B(3,"Update"),U(),Gi()}}function rj(n,t){if(n&1){let e=ze();qi(0),B(1,"\xA0 "),P(2,"button",6),X("click",function(){re(e);let r=Y();return se(r.onDelete())}),B(3,"Delete"),U(),Gi()}}function sj(n,t){n&1&&(qi(0),te(1,"mat-progress-spinner",11),Gi())}function aj(n,t){if(n&1&&te(0,"app-operation-result",14),n&2){let e=Y(2);j("operationResult",e.operationResult)}}function oj(n,t){if(n&1&&(P(0,"div",12)(1,"h2"),B(2,"Result of the last operation"),U(),oe(3,aj,1,1,"app-operation-result",13),U()),n&2){let e=Y();$(3),j("ngIf",e.operationResult)}}var aR=(()=>{class n{constructor(e,i){this.data=e,this.fhirPathService=i,this.update=!1,this.operationResult=null,this.query={_sort:"title",_count:1e4},this.client=e.getFhirClient(),this.addPackageId=new us("",[_n.required,_n.minLength(1)]),this.addVersion=new us("current",[_n.required,_n.minLength(1)]),this.addUrl=new us("url"),this.search()}search(){this.client.search({resourceType:"ImplementationGuide",searchParams:this.query}).then(e=>{let i=e;this.igs=i.entry.map(r=>r.resource),this.selection=void 0,this.addPackageId.setValue(""),this.addVersion.setValue(""),this.addUrl.setValue("")}).catch(e=>{this.errorMessage="Error accessing FHIR server",e.response?.data?this.operationResult=Ut.fromOperationOutcome(e.response.data):this.operationResult=Ut.fromMatchboxError(e.message)}),this.update=!1}getPackageUrl(e){return this.fhirPathService.evaluateToString(e,"extension.where(url='http://ahdis.ch/fhir/extension/packageUrl').valueUri")}isCurrent(e){return this.fhirPathService.evaluateToString(e,"meta.tag.where(system='http://matchbox.health/fhir/CodeSystem/tag').code")==="current"}selectRow(e){this.selection=e,this.addPackageId.setValue(this.selection.packageId),this.addUrl.setValue(this.getPackageUrl(e));let i=this.selection.version;i&&i.endsWith(" (last)")&&(i=i.substring(0,i.length-7)),this.addVersion.setValue(i)}onSubmit(){if(this.errorMessage=null,this.addPackageId.invalid||this.addVersion.invalid){this.errorMessage="Please provide package name";return}let e=this.addPackageId.value.trim();e.indexOf("#")>0&&(e.substring(0,e.indexOf("#")-1),this.addVersion.setValue(e.substring(0,e.indexOf("#")+1))),this.addPackageId.setValue(e);let i=this.addVersion.value.trim();this.addVersion.setValue(i),this.update=!0,this.client.create({resourceType:"ImplementationGuide",body:{resourceType:"ImplementationGuide",name:e,version:i,packageId:e,url:this.addUrl.value},options:{headers:{Prefer:"return=OperationOutcome"}}}).then(r=>{this.errorMessage="Created Implementation Guide "+this.addPackageId.value,this.operationResult=Ut.fromOperationOutcome(r),this.search()}).catch(r=>{this.errorMessage="Error creating Implementation Guide "+this.addPackageId.value,r.response?.data?this.operationResult=Ut.fromOperationOutcome(r.response.data):this.operationResult=Ut.fromMatchboxError(r.message),this.update=!1})}onUpdate(){this.errorMessage=null,this.selection.name=this.addPackageId.value,this.selection.version=this.addVersion.value,this.selection.packageId=this.addPackageId.value,this.selection.url=this.addUrl.value,this.update=!0,this.client.update({resourceType:this.selection.resourceType,id:this.selection.id,body:this.selection,options:{headers:{Prefer:"return=OperationOutcome"}}}).then(e=>{this.errorMessage="Updated Implementation Guide "+this.selection.packageId,this.operationResult=Ut.fromOperationOutcome(e),this.search()}).catch(e=>{this.errorMessage="Error updating Implementation Guide "+this.selection.packageId,e.response?.data?this.operationResult=Ut.fromOperationOutcome(e.response.data):this.operationResult=Ut.fromMatchboxError(e.message),this.update=!1})}onDelete(){this.errorMessage=null,this.update=!0,this.client.delete({resourceType:this.selection.resourceType,id:this.selection.id,options:{headers:{Prefer:"return=OperationOutcome","X-Cascade":"delete"}}}).then(e=>{this.errorMessage="Deleted Implementation Guide Resource "+this.selection.packageId,this.operationResult=Ut.fromOperationOutcome(e),this.search()}).catch(e=>{this.errorMessage="Error deleting Implementation Guide "+this.selection.packageId,e.response?.data?this.operationResult=Ut.fromOperationOutcome(e.response.data):this.operationResult=Ut.fromMatchboxError(e.message),this.update=!1})}static{this.\u0275fac=function(i){return new(i||n)(Ae(Dn),Ae(sR))}}static{this.\u0275cmp=le({type:n,selectors:[["app-igs"]],standalone:!1,decls:40,vars:8,consts:[[1,"white-block","card-igs"],[3,"ngStyle","click",4,"ngFor","ngForOf"],[1,"white-block","Search","card-igs"],["matInput","",3,"formControl"],[2,"width","50vw"],["href","https://packages.fhir.org"],["type","submit",3,"click"],[4,"ngIf"],["class","white-block logs",4,"ngIf"],[3,"click","ngStyle"],[1,"secondary"],["mode","indeterminate"],[1,"white-block","logs"],[3,"operationResult",4,"ngIf"],[3,"operationResult"]],template:function(i,r){i&1&&(P(0,"div",0)(1,"h2"),B(2,"ImplementationGuides installed on the server"),U(),P(3,"table")(4,"thead")(5,"tr")(6,"th"),B(7,"Package"),U(),P(8,"th"),B(9,"Version"),U(),P(10,"th"),B(11,"Title"),U()()(),P(12,"tbody"),oe(13,ij,7,6,"tr",1),U()()(),P(14,"div",2)(15,"h3"),B(16,"Install an ImplementationGuide"),U(),P(17,"mat-form-field")(18,"mat-label"),B(19,"PackageId"),U(),te(20,"input",3),U(),B(21," \xA0 "),P(22,"mat-form-field")(23,"mat-label"),B(24,"Version"),U(),te(25,"input",3),U(),B(26," \xA0 "),P(27,"mat-form-field",4)(28,"mat-label"),B(29,"Package url (optional, use only if not available through "),P(30,"a",5),B(31,"packages.fhir.org"),U(),B(32,") "),U(),te(33,"input",3),U(),P(34,"button",6),X("click",function(){return r.onSubmit()}),B(35,"Upload"),U(),oe(36,nj,4,0,"ng-container",7)(37,rj,4,0,"ng-container",7),U(),oe(38,sj,2,0,"ng-container",7)(39,oj,4,1,"div",8)),i&2&&($(13),j("ngForOf",r.igs),$(7),j("formControl",r.addPackageId),$(5),j("formControl",r.addVersion),$(8),j("formControl",r.addUrl),$(3),j("ngIf",r.selection),$(),j("ngIf",r.selection),$(),j("ngIf",r.update),$(),j("ngIf",r.errorMessage))},dependencies:[vr,di,Ww,Ir,Dr,er,bn,ds,Ml,Xs,dl],styles:[".secondary[_ngcontent-%COMP%]{color:#6b7280}table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse}table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-bottom:1px solid rgb(209,213,219);padding-bottom:1rem}table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-bottom:1px solid rgb(229,231,235);padding-top:1rem;padding-bottom:1rem}table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:hover{background:#eee}.mat-form-field.url[_ngcontent-%COMP%]{width:200px}.mat-table[_ngcontent-%COMP%]{margin:1rem}.mat-table[_ngcontent-%COMP%] .mat-row[_ngcontent-%COMP%]{cursor:pointer}.mat-table[_ngcontent-%COMP%] .mat-cell[_ngcontent-%COMP%], .mat-table[_ngcontent-%COMP%] .mat-header-cell[_ngcontent-%COMP%]{padding-left:.5rem;padding-right:.5rem}.mat-table[_ngcontent-%COMP%] .mat-cell.title[_ngcontent-%COMP%], .mat-table[_ngcontent-%COMP%] .mat-header-cell.title[_ngcontent-%COMP%]{flex:2;justify-content:flex-end}.mat-table[_ngcontent-%COMP%] .mat-cell[_ngcontent-%COMP%]:first-child, .mat-table[_ngcontent-%COMP%] .mat-header-cell[_ngcontent-%COMP%]:first-child{padding-left:1rem}.mat-table[_ngcontent-%COMP%] .mat-cell[_ngcontent-%COMP%]:last-child, .mat-table[_ngcontent-%COMP%] .mat-header-cell[_ngcontent-%COMP%]:last-child{padding-right:1rem}.card-igs[_ngcontent-%COMP%]{margin-bottom:10px}"]})}}return n})();var cj=["searchSelectInput"],uj=["innerSelectSearch"],dj=[[["",8,"mat-select-search-custom-header-content"]],[["","ngxMatSelectSearchClear",""]],[["","ngxMatSelectNoEntriesFound",""]]],hj=[".mat-select-search-custom-header-content","[ngxMatSelectSearchClear]","[ngxMatSelectNoEntriesFound]"],mj=(n,t)=>({"mat-select-search-inner-multiple":n,"mat-select-search-inner-toggle-all":t});function fj(n,t){if(n&1){let e=ze();P(0,"mat-checkbox",12),X("change",function(r){re(e);let s=Y();return se(s._emitSelectAllBooleanToParent(r.checked))}),U()}if(n&2){let e=Y();j("color",e.matFormField==null?null:e.matFormField.color)("checked",e.toggleAllCheckboxChecked)("indeterminate",e.toggleAllCheckboxIndeterminate)("matTooltip",e.toggleAllCheckboxTooltipMessage)("matTooltipPosition",e.toggleAllCheckboxTooltipPosition)}}function pj(n,t){n&1&&te(0,"mat-spinner",13)}function gj(n,t){n&1&&Fe(0,1,["*ngIf","clearIcon; else defaultIcon"])}function _j(n,t){if(n&1&&(P(0,"mat-icon",16),B(1),U()),n&2){let e=Y(2);j("svgIcon",e.closeSvgIcon),$(),je(" ",e.closeSvgIcon?null:e.closeIcon," ")}}function bj(n,t){if(n&1){let e=ze();P(0,"button",14),X("click",function(){re(e);let r=Y();return se(r._reset(!0))}),oe(1,gj,1,0,"ng-content",15)(2,_j,2,2,"ng-template",null,2,Ma),U()}if(n&2){let e=jt(3),i=Y();$(),j("ngIf",i.clearIcon)("ngIfElse",e)}}function vj(n,t){n&1&&Fe(0,2,["*ngIf","noEntriesFound; else defaultNoEntriesFound"])}function yj(n,t){if(n&1&&B(0),n&2){let e=Y(2);He(e.noEntriesFoundLabel)}}function Cj(n,t){if(n&1&&(P(0,"div",17),oe(1,vj,1,0,"ng-content",15)(2,yj,1,1,"ng-template",null,3,Ma),U()),n&2){let e=jt(3),i=Y();$(),j("ngIf",i.noEntriesFound)("ngIfElse",e)}}var wj=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=xe({type:n,selectors:[["","ngxMatSelectSearchClear",""]],standalone:!1}),n})(),xj=["ariaLabel","clearSearchInput","closeIcon","closeSvgIcon","disableInitialFocus","disableScrollToActiveOnOptionsChanged","enableClearOnEscapePressed","hideClearSearchButton","noEntriesFoundLabel","placeholderLabel","preventHomeEndKeyPropagation","searching"],Sj=new J("mat-selectsearch-default-options"),kj=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=xe({type:n,selectors:[["","ngxMatSelectNoEntriesFound",""]],standalone:!1}),n})(),n0=(()=>{class n{constructor(e,i,r,s,a,o){this.matSelect=e,this.changeDetectorRef=i,this._viewportRuler=r,this.matOption=s,this.matFormField=a,this.placeholderLabel="Suche",this.type="text",this.closeIcon="close",this.noEntriesFoundLabel="Keine Optionen gefunden",this.clearSearchInput=!0,this.searching=!1,this.disableInitialFocus=!1,this.enableClearOnEscapePressed=!1,this.preventHomeEndKeyPropagation=!1,this.disableScrollToActiveOnOptionsChanged=!1,this.ariaLabel="dropdown search",this.showToggleAllCheckbox=!1,this.toggleAllCheckboxChecked=!1,this.toggleAllCheckboxIndeterminate=!1,this.toggleAllCheckboxTooltipMessage="",this.toggleAllCheckboxTooltipPosition="below",this.hideClearSearchButton=!1,this.alwaysRestoreSelectedOptionsMulti=!1,this.recreateValuesArray=!1,this.toggleAll=new ce,this.onTouched=l=>{},this._options$=new ci(null),this.optionsList$=this._options$.pipe(Mt(l=>l?l.changes.pipe(Ne(c=>c.toArray()),Bt(l.toArray())):ge(null))),this.optionsLength$=this.optionsList$.pipe(Ne(l=>l?l.length:0)),this._formControl=new Rr("",{nonNullable:!0}),this._showNoEntriesFound$=hr([this._formControl.valueChanges,this.optionsLength$]).pipe(Ne(([l,c])=>!!(this.noEntriesFoundLabel&&l&&c===this.getOptionsLengthOffset()))),this._onDestroy=new ue,this.applyDefaultOptions(o)}get value(){return this._formControl.value}set _options(e){this._options$.next(e)}get _options(){return this._options$.getValue()}applyDefaultOptions(e){if(e)for(let i of xj)e.hasOwnProperty(i)&&(this[i]=e[i])}ngOnInit(){this.matOption?(this.matOption.disabled=!0,this.matOption._getHostElement().classList.add("contains-mat-select-search"),this.matOption._getHostElement().setAttribute("role","presentation")):console.error(" must be placed inside a element"),this.matSelect.openedChange.pipe(To(1),Ye(this._onDestroy)).subscribe(e=>{e?(this.updateInputWidth(),this.disableInitialFocus||this._focus()):this.clearSearchInput&&this._reset()}),this.matSelect.openedChange.pipe(Vt(1),Mt(e=>{this._options=this.matSelect.options;let i=this._options.toArray()[this.getOptionsLengthOffset()];return this._options.changes.pipe(kt(()=>{setTimeout(()=>{let r=this._options.toArray(),s=r[this.getOptionsLengthOffset()],a=this.matSelect._keyManager;a&&this.matSelect.panelOpen&&s&&((!i||!this.matSelect.compareWith(i.value,s.value)||!a.activeItem||!r.find(l=>this.matSelect.compareWith(l.value,a.activeItem?.value)))&&a.setActiveItem(this.getOptionsLengthOffset()),setTimeout(()=>{this.updateInputWidth()})),i=s})}))})).pipe(Ye(this._onDestroy)).subscribe(),this._showNoEntriesFound$.pipe(Ye(this._onDestroy)).subscribe(e=>{this.matOption&&(e?this.matOption._getHostElement().classList.add("mat-select-search-no-entries-found"):this.matOption._getHostElement().classList.remove("mat-select-search-no-entries-found"))}),this._viewportRuler.change().pipe(Ye(this._onDestroy)).subscribe(()=>{this.matSelect.panelOpen&&this.updateInputWidth()}),this.initMultipleHandling(),this.optionsList$.pipe(Ye(this._onDestroy)).subscribe(()=>{this.changeDetectorRef.markForCheck()})}_emitSelectAllBooleanToParent(e){this.toggleAll.emit(e)}ngOnDestroy(){this._onDestroy.next(),this._onDestroy.complete()}_isToggleAllCheckboxVisible(){return this.matSelect.multiple&&this.showToggleAllCheckbox}_handleKeydown(e){(e.key&&e.key.length===1||this.preventHomeEndKeyPropagation&&(e.key==="Home"||e.key==="End"))&&e.stopPropagation(),this.matSelect.multiple&&e.key&&e.key==="Enter"&&setTimeout(()=>this._focus()),this.enableClearOnEscapePressed&&e.key==="Escape"&&this.value&&(this._reset(!0),e.stopPropagation())}_handleKeyup(e){if(e.key==="ArrowUp"||e.key==="ArrowDown"){let i=this.matSelect._getAriaActiveDescendant(),r=this._options.toArray().findIndex(s=>s.id===i);r!==-1&&(this.unselectActiveDescendant(),this.activeDescendant=this._options.toArray()[r]._getHostElement(),this.activeDescendant.setAttribute("aria-selected","true"),this.searchSelectInput.nativeElement.setAttribute("aria-activedescendant",i))}}writeValue(e){this._lastExternalInputValue=e,this._formControl.setValue(e),this.changeDetectorRef.markForCheck()}onBlur(){this.unselectActiveDescendant(),this.onTouched()}registerOnChange(e){this._formControl.valueChanges.pipe(it(i=>i!==this._lastExternalInputValue),kt(()=>this._lastExternalInputValue=void 0),Ye(this._onDestroy)).subscribe(e)}registerOnTouched(e){this.onTouched=e}_focus(){if(!this.searchSelectInput||!this.matSelect.panel)return;let e=this.matSelect.panel.nativeElement,i=e.scrollTop;this.searchSelectInput.nativeElement.focus(),e.scrollTop=i}_reset(e){this._formControl.setValue(""),e&&this._focus()}initMultipleHandling(){if(!this.matSelect.ngControl){this.matSelect.multiple&&console.error("the mat-select containing ngx-mat-select-search must have a ngModel or formControl directive when multiple=true");return}this.previousSelectedValues=this.matSelect.ngControl.value,this.matSelect.ngControl.valueChanges&&this.matSelect.ngControl.valueChanges.pipe(Ye(this._onDestroy)).subscribe(e=>{let i=!1;if(this.matSelect.multiple&&(this.alwaysRestoreSelectedOptionsMulti||this._formControl.value&&this._formControl.value.length)&&this.previousSelectedValues&&Array.isArray(this.previousSelectedValues)){(!e||!Array.isArray(e))&&(e=[]);let r=this.matSelect.options.map(s=>s.value);this.previousSelectedValues.forEach(s=>{!e.some(a=>this.matSelect.compareWith(a,s))&&!r.some(a=>this.matSelect.compareWith(a,s))&&(this.recreateValuesArray?e=[...e,s]:e.push(s),i=!0)})}this.previousSelectedValues=e,i&&this.matSelect._onChange(e)})}updateInputWidth(){if(!this.innerSelectSearch||!this.innerSelectSearch.nativeElement)return;let e=this.innerSelectSearch.nativeElement,i=null;for(;e&&e.parentElement;)if(e=e.parentElement,e.classList.contains("mat-select-panel")){i=e;break}i&&(this.innerSelectSearch.nativeElement.style.width=i.clientWidth+"px")}getOptionsLengthOffset(){return this.matOption?1:0}unselectActiveDescendant(){this.activeDescendant?.removeAttribute("aria-selected"),this.searchSelectInput.nativeElement.removeAttribute("aria-activedescendant")}}return n.\u0275fac=function(e){return new(e||n)(Ae(ps),Ae(Ge),Ae(On),Ae(Nn,8),Ae(bn,8),Ae(Sj,8))},n.\u0275cmp=le({type:n,selectors:[["ngx-mat-select-search"]],contentQueries:function(e,i,r){if(e&1&&(Et(r,wj,5),Et(r,kj,5)),e&2){let s;ke(s=Me())&&(i.clearIcon=s.first),ke(s=Me())&&(i.noEntriesFound=s.first)}},viewQuery:function(e,i){if(e&1&&(Pe(cj,7,Te),Pe(uj,7,Te)),e&2){let r;ke(r=Me())&&(i.searchSelectInput=r.first),ke(r=Me())&&(i.innerSelectSearch=r.first)}},inputs:{placeholderLabel:"placeholderLabel",type:"type",closeIcon:"closeIcon",closeSvgIcon:"closeSvgIcon",noEntriesFoundLabel:"noEntriesFoundLabel",clearSearchInput:"clearSearchInput",searching:"searching",disableInitialFocus:"disableInitialFocus",enableClearOnEscapePressed:"enableClearOnEscapePressed",preventHomeEndKeyPropagation:"preventHomeEndKeyPropagation",disableScrollToActiveOnOptionsChanged:"disableScrollToActiveOnOptionsChanged",ariaLabel:"ariaLabel",showToggleAllCheckbox:"showToggleAllCheckbox",toggleAllCheckboxChecked:"toggleAllCheckboxChecked",toggleAllCheckboxIndeterminate:"toggleAllCheckboxIndeterminate",toggleAllCheckboxTooltipMessage:"toggleAllCheckboxTooltipMessage",toggleAllCheckboxTooltipPosition:"toggleAllCheckboxTooltipPosition",hideClearSearchButton:"hideClearSearchButton",alwaysRestoreSelectedOptionsMulti:"alwaysRestoreSelectedOptionsMulti",recreateValuesArray:"recreateValuesArray"},outputs:{toggleAll:"toggleAll"},standalone:!1,features:[rt([{provide:cs,useExisting:Ci(()=>n),multi:!0}])],ngContentSelectors:hj,decls:13,vars:14,consts:[["innerSelectSearch",""],["searchSelectInput",""],["defaultIcon",""],["defaultNoEntriesFound",""],["matInput","",1,"mat-select-search-input","mat-select-search-hidden"],[1,"mat-select-search-inner","mat-typography","mat-datepicker-content","mat-tab-header",3,"ngClass"],[1,"mat-select-search-inner-row"],["class","mat-select-search-toggle-all-checkbox","matTooltipClass","ngx-mat-select-search-toggle-all-tooltip",3,"color","checked","indeterminate","matTooltip","matTooltipPosition","change",4,"ngIf"],["autocomplete","off",1,"mat-select-search-input",3,"keydown","keyup","blur","type","formControl","placeholder"],["class","mat-select-search-spinner","diameter","16",4,"ngIf"],["mat-icon-button","","aria-label","Clear","class","mat-select-search-clear",3,"click",4,"ngIf"],["class","mat-select-search-no-entries-found",4,"ngIf"],["matTooltipClass","ngx-mat-select-search-toggle-all-tooltip",1,"mat-select-search-toggle-all-checkbox",3,"change","color","checked","indeterminate","matTooltip","matTooltipPosition"],["diameter","16",1,"mat-select-search-spinner"],["mat-icon-button","","aria-label","Clear",1,"mat-select-search-clear",3,"click"],[4,"ngIf","ngIfElse"],[3,"svgIcon"],[1,"mat-select-search-no-entries-found"]],template:function(e,i){if(e&1){let r=ze();Qe(dj),te(0,"input",4),P(1,"div",5,0)(3,"div",6),oe(4,fj,1,5,"mat-checkbox",7),P(5,"input",8,1),X("keydown",function(a){return re(r),se(i._handleKeydown(a))})("keyup",function(a){return re(r),se(i._handleKeyup(a))})("blur",function(){return re(r),se(i.onBlur())}),U(),oe(7,pj,1,0,"mat-spinner",9)(8,bj,4,2,"button",10),Fe(9),U(),te(10,"mat-divider"),U(),oe(11,Cj,4,2,"div",11),En(12,"async")}e&2&&($(),j("ngClass",Fw(11,mj,i.matSelect.multiple,i._isToggleAllCheckboxVisible())),$(3),j("ngIf",i._isToggleAllCheckboxVisible()),$(),j("type",i.type)("formControl",i._formControl)("placeholder",i.placeholderLabel),Se("aria-label",i.ariaLabel),$(2),j("ngIf",i.searching),$(),j("ngIf",!i.hideClearSearchButton&&i.value&&!i.searching),$(3),j("ngIf",Kn(12,9,i._showNoEntriesFound$)))},dependencies:[An,di,Ir,Dr,er,ra,Al,Rn,Xs,Ou,iE,No],styles:[".mat-select-search-hidden[_ngcontent-%COMP%]{visibility:hidden}.mat-select-search-inner[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;z-index:100;font-size:inherit;box-shadow:none;background-color:var(--mat-select-panel-background-color)}.mat-select-search-inner.mat-select-search-inner-multiple.mat-select-search-inner-toggle-all[_ngcontent-%COMP%] .mat-select-search-inner-row[_ngcontent-%COMP%]{display:flex;align-items:center}.mat-select-search-input[_ngcontent-%COMP%]{box-sizing:border-box;width:100%;border:none;font-family:inherit;font-size:inherit;color:currentColor;outline:none;background-color:var(--mat-select-panel-background-color);padding:0 44px 0 16px;height:calc(3em - 1px);line-height:calc(3em - 1px)}[dir=rtl][_nghost-%COMP%] .mat-select-search-input[_ngcontent-%COMP%], [dir=rtl] [_nghost-%COMP%] .mat-select-search-input[_ngcontent-%COMP%]{padding-right:16px;padding-left:44px}.mat-select-search-input[_ngcontent-%COMP%]::-moz-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}.mat-select-search-input[_ngcontent-%COMP%]::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}.mat-select-search-inner-toggle-all[_ngcontent-%COMP%] .mat-select-search-input[_ngcontent-%COMP%]{padding-left:5px}.mat-select-search-no-entries-found[_ngcontent-%COMP%]{padding-top:8px}.mat-select-search-clear[_ngcontent-%COMP%]{position:absolute;right:4px;top:0}[dir=rtl][_nghost-%COMP%] .mat-select-search-clear[_ngcontent-%COMP%], [dir=rtl] [_nghost-%COMP%] .mat-select-search-clear[_ngcontent-%COMP%]{right:auto;left:4px}.mat-select-search-spinner[_ngcontent-%COMP%]{position:absolute;right:16px;top:calc(50% - 8px)}[dir=rtl][_nghost-%COMP%] .mat-select-search-spinner[_ngcontent-%COMP%], [dir=rtl] [_nghost-%COMP%] .mat-select-search-spinner[_ngcontent-%COMP%]{right:auto;left:16px} .mat-mdc-option[aria-disabled=true].contains-mat-select-search{position:sticky;top:-8px;z-index:1;opacity:1;margin-top:-8px;pointer-events:all} .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-icon{margin-right:0;margin-left:0} .mat-mdc-option[aria-disabled=true].contains-mat-select-search mat-pseudo-checkbox{display:none} .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mdc-list-item__primary-text{opacity:1}.mat-select-search-toggle-all-checkbox[_ngcontent-%COMP%]{padding-left:5px}[dir=rtl][_nghost-%COMP%] .mat-select-search-toggle-all-checkbox[_ngcontent-%COMP%], [dir=rtl] [_nghost-%COMP%] .mat-select-search-toggle-all-checkbox[_ngcontent-%COMP%]{padding-left:0;padding-right:5px}"],changeDetection:0}),n})();var oR=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=he({type:n}),n.\u0275inj=de({imports:[Jr,Su,fs,Au,iu,nu,Nu,Ru]}),n})();var r0=(()=>{class n{constructor(){this.addFiles=new ce,this.dragCounter=0}checkStatus(e){if(!e.ok)throw new Error(`HTTP ${e.status} - ${e.statusText}`);return e}onDrop(e){e.preventDefault(),this.dragCounter=0;let i=e.target.files||e.dataTransfer.items;if(i)for(let s=0;s0))},dependencies:[ms,Rn],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column}.attachment-field[_ngcontent-%COMP%]{border-radius:5px;background:#f0f3f6}.attachment-field[_ngcontent-%COMP%] .attachment-entry[_ngcontent-%COMP%]{border-bottom:1px solid #dedede;display:flex;align-items:center;height:40px}.attachment-field[_ngcontent-%COMP%] .attachment-entry[_ngcontent-%COMP%] .attachment-name[_ngcontent-%COMP%]{flex:1;padding:0 1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-field[_ngcontent-%COMP%] .attachment-entry[_ngcontent-%COMP%] .attachment-size[_ngcontent-%COMP%]:last-child{margin-right:1rem}.attachment-field[_ngcontent-%COMP%] .attachment-entry[_ngcontent-%COMP%] .mat-icon-button[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;line-height:inherit}.attachment-field[_ngcontent-%COMP%] .drop-zone[_ngcontent-%COMP%]{text-align:center;padding:2rem;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.attachment-field[_ngcontent-%COMP%] .drop-zone[_ngcontent-%COMP%]:first-child{border-top-left-radius:5px;border-top-right-radius:5px}.attachment-field[_ngcontent-%COMP%] .drop-zone.file-over[_ngcontent-%COMP%]{background:#e1e7ed}.attachment-field[_ngcontent-%COMP%] .drop-zone[_ngcontent-%COMP%] .spacer[_ngcontent-%COMP%]{line-height:3rem}.attachment-field[_ngcontent-%COMP%] .drop-zone[_ngcontent-%COMP%] .bold-text[_ngcontent-%COMP%]{font-weight:700}"],changeDetection:0})}}return n})();function Mj(n,t){if(n&1&&(P(0,"mat-option",12),B(1),U()),n&2){let e=t.$implicit;Rw("value",e.url),$(),je("",e.title?e.title:e.name," ")}}function Tj(n,t){if(n&1&&(P(0,"li"),B(1),U()),n&2){let e=t.$implicit;$(),je(" ",e.diagnostics," ")}}function Ej(n,t){if(n&1&&(P(0,"mat-error")(1,"ul"),oe(2,Tj,2,1,"li",14),U()()),n&2){let e=Y(2);$(2),j("ngForOf",e.operationOutcomeTransformed.issue)}}function Aj(n,t){if(n&1&&(P(0,"mat-card",0)(1,"mat-card-header")(2,"mat-card-title"),B(3,"Transformed"),U()(),P(4,"mat-card-content"),oe(5,Ej,3,1,"mat-error",13),P(6,"pre"),te(7,"code",2),U()()()),n&2){let e=Y();$(5),j("ngIf",e.operationOutcomeTransformed),$(2),j("highlight",e.getMapped())}}var uR=(()=>{class n{constructor(e){this.allStructureMaps=[],this.filteredStructureMaps=new ah(1),this.structureMapFilterControl=new Rr(""),this.structureMapControl=new Rr(null),this.map=null,this.model=null,this.client=e.getFhirClient(),this.client.operation({name:"list",resourceType:"StructureMap",method:"GET"}).then(i=>{this.setMaps(i),this.filteredStructureMaps.next(this.allStructureMaps.slice())}),this.structureMapControl.valueChanges.pipe(Ii(400),mr()).subscribe(i=>{this.map={canonical:i}}),this.structureMapFilterControl.valueChanges.subscribe(()=>this.filterStructureMaps())}transform(){if(this.resource!=null&&this.map!=null){let e={resourceType:"Parameters",parameter:[{name:"resource",valueString:this.resource}]};"canonical"in this.map?e.parameter.push({name:"source",valueString:this.map.canonical}):e.parameter.push({name:"map",valueString:this.map.content}),this.model!=null&&e.parameter.push({name:"model",valueString:this.model}),this.client.operation({name:"transform",resourceType:"StructureMap",input:e,options:{headers:{"content-type":"application/fhir+json"}}}).then(i=>{this.operationOutcomeTransformed=null,this.transformed=i}).catch(i=>{this.transformed=null,this.operationOutcomeTransformed=i.response.data})}}getResource(){return this.resource}getMapped(){return JSON.stringify(this.transformed,null,2)}setMaps(e){this.allStructureMaps=e.entry.map(i=>i.resource)}setResource(e){this.transformed=null,(e.contentType==="application/json"||e.name.endsWith(".json"))&&(this.mimeType="application/fhir+json"),(e.contentType==="application/xml"||e.name.endsWith(".xml"))&&(this.mimeType="application/fhir+xml");let i=new FileReader;i.readAsText(e.blob),i.onload=()=>{this.resource=i.result}}setMapContent(e){let i=new FileReader;i.readAsText(e.blob),i.onload=()=>{this.map={content:i.result}}}setModelContent(e){let i=new FileReader;i.readAsText(e.blob),i.onload=()=>{this.model=i.result}}filterStructureMaps(){if(!this.allStructureMaps||this.allStructureMaps.length===0)return;let e=this.structureMapFilterControl.value;if(!e){this.filteredStructureMaps.next(this.allStructureMaps.slice());return}e=e.toLowerCase(),this.filteredStructureMaps.next(this.allStructureMaps.filter(i=>i.title.toLowerCase().indexOf(e)>-1))}static{this.\u0275fac=function(i){return new(i||n)(Ae(Dn))}}static{this.\u0275cmp=le({type:n,selectors:[["app-transform"]],standalone:!1,decls:46,vars:7,consts:[[1,"card-maps"],[3,"addFiles"],["lineNumbers","","language","json",3,"highlight"],["label","By reference"],[1,"tab-content","flex"],["appearance","fill"],[3,"formControl"],[3,"value",4,"ngFor","ngForOf"],["label","By uploading"],[1,"tab-content"],["mat-stroked-button","",3,"click"],["class","card-maps",4,"ngIf"],[3,"value"],[4,"ngIf"],[4,"ngFor","ngForOf"]],template:function(i,r){i&1&&(P(0,"h2"),B(1,"Transform a resource with the $transform operation"),U(),P(2,"mat-card",0)(3,"mat-card-header")(4,"mat-card-title"),B(5,"The resource"),U()(),P(6,"mat-card-content")(7,"app-upload",1),X("addFiles",function(a){return r.setResource(a)}),U(),P(8,"pre"),te(9,"code",2),U()()(),P(10,"mat-card",0)(11,"mat-card-header")(12,"mat-card-title"),B(13,"The map"),U(),P(14,"mat-card-subtitle"),B(15,"Choose a StructureMap to use for the transformation"),U()(),P(16,"mat-card-content")(17,"mat-tab-group")(18,"mat-tab",3)(19,"div",4)(20,"mat-form-field",5)(21,"mat-label"),B(22,"The map to use:"),U(),P(23,"mat-select",6)(24,"mat-option"),te(25,"ngx-mat-select-search",6),U(),oe(26,Mj,2,2,"mat-option",7),En(27,"async"),U()()()(),P(28,"mat-tab",8)(29,"div",9),B(30," Provide a StructureMap to use for the transformation (JSON or XML): "),P(31,"app-upload",1),X("addFiles",function(a){return r.setMapContent(a)}),U()()()()()(),P(32,"mat-card",0)(33,"mat-card-header")(34,"mat-card-title"),B(35,"The model(s)"),U()(),P(36,"mat-card-content"),B(37," Provide a StructureDefinition or Bundle of StructureDefinitions resource that are imported by the map (JSON or XML): "),P(38,"app-upload",1),X("addFiles",function(a){return r.setModelContent(a)}),U()()(),P(39,"mat-card",0)(40,"mat-card-content")(41,"button",10),X("click",function(){return r.transform()}),P(42,"mat-icon"),B(43,"transform"),U(),B(44," Transform "),U()()(),oe(45,Aj,8,2,"mat-card",11)),i&2&&($(9),j("highlight",r.getResource()),$(14),j("formControl",r.structureMapControl),$(2),j("formControl",r.structureMapFilterControl),$(),j("ngForOf",Kn(27,5,r.filteredStructureMaps)),$(19),j("ngIf",r.transformed||r.operationOutcomeTransformed))},dependencies:[vr,di,Dr,er,Nn,ms,hl,ml,Om,SM,Rm,bn,ds,Ka,Rn,ps,Qb,wE,ix,n0,rx,r0,No],styles:[".card-maps[_ngcontent-%COMP%]{margin-bottom:10px}.tab-content[_ngcontent-%COMP%]{padding:2em 1em 0}mat-select[_ngcontent-%COMP%]{width:100%}.tab-content.flex[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center}.tab-content.flex[_ngcontent-%COMP%] .form-field-label[_ngcontent-%COMP%]{white-space:nowrap}.tab-content.flex[_ngcontent-%COMP%] .form-field-label[_ngcontent-%COMP%] + mat-form-field[_ngcontent-%COMP%]{margin-left:10px}.tab-content.flex[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}"]})}}return n})();function ac(n){let t=n.length;for(;--t>=0;)n[t]=0}var Ij=0,YR=1,Dj=2,Rj=3,Lj=258,uC=29,Hd=256,Nd=Hd+1+uC,nc=30,dC=19,QR=2*Nd+1,lo=15,B1=16,Oj=7,hC=256,ZR=16,XR=17,JR=18,tC=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),u0=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Nj=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),eL=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Fj=512,Ds=new Array((Nd+2)*2);ac(Ds);var Rd=new Array(nc*2);ac(Rd);var Fd=new Array(Fj);ac(Fd);var Pd=new Array(Lj-Rj+1);ac(Pd);var mC=new Array(uC);ac(mC);var d0=new Array(nc);ac(d0);function z1(n,t,e,i,r){this.static_tree=n,this.extra_bits=t,this.extra_base=e,this.elems=i,this.max_length=r,this.has_stree=n&&n.length}var tL,iL,nL;function H1(n,t){this.dyn_tree=n,this.max_code=0,this.stat_desc=t}var rL=n=>n<256?Fd[n]:Fd[256+(n>>>7)],Ud=(n,t)=>{n.pending_buf[n.pending++]=t&255,n.pending_buf[n.pending++]=t>>>8&255},nn=(n,t,e)=>{n.bi_valid>B1-e?(n.bi_buf|=t<>B1-n.bi_valid,n.bi_valid+=e-B1):(n.bi_buf|=t<{nn(n,e[t*2],e[t*2+1])},sL=(n,t)=>{let e=0;do e|=n&1,n>>>=1,e<<=1;while(--t>0);return e>>>1},Pj=n=>{n.bi_valid===16?(Ud(n,n.bi_buf),n.bi_buf=0,n.bi_valid=0):n.bi_valid>=8&&(n.pending_buf[n.pending++]=n.bi_buf&255,n.bi_buf>>=8,n.bi_valid-=8)},Uj=(n,t)=>{let e=t.dyn_tree,i=t.max_code,r=t.stat_desc.static_tree,s=t.stat_desc.has_stree,a=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,l=t.stat_desc.max_length,c,u,d,h,m,f,p=0;for(h=0;h<=lo;h++)n.bl_count[h]=0;for(e[n.heap[n.heap_max]*2+1]=0,c=n.heap_max+1;cl&&(h=l,p++),e[u*2+1]=h,!(u>i)&&(n.bl_count[h]++,m=0,u>=o&&(m=a[u-o]),f=e[u*2],n.opt_len+=f*(h+m),s&&(n.static_len+=f*(r[u*2+1]+m)));if(p!==0){do{for(h=l-1;n.bl_count[h]===0;)h--;n.bl_count[h]--,n.bl_count[h+1]+=2,n.bl_count[l]--,p-=2}while(p>0);for(h=l;h!==0;h--)for(u=n.bl_count[h];u!==0;)d=n.heap[--c],!(d>i)&&(e[d*2+1]!==h&&(n.opt_len+=(h-e[d*2+1])*e[d*2],e[d*2+1]=h),u--)}},aL=(n,t,e)=>{let i=new Array(lo+1),r=0,s,a;for(s=1;s<=lo;s++)r=r+e[s-1]<<1,i[s]=r;for(a=0;a<=t;a++){let o=n[a*2+1];o!==0&&(n[a*2]=sL(i[o]++,o))}},$j=()=>{let n,t,e,i,r,s=new Array(lo+1);for(e=0,i=0;i>=7;i{let t;for(t=0;t{n.bi_valid>8?Ud(n,n.bi_buf):n.bi_valid>0&&(n.pending_buf[n.pending++]=n.bi_buf),n.bi_buf=0,n.bi_valid=0},dR=(n,t,e,i)=>{let r=t*2,s=e*2;return n[r]{let i=n.heap[e],r=e<<1;for(;r<=n.heap_len&&(r{let i,r,s=0,a,o;if(n.sym_next!==0)do i=n.pending_buf[n.sym_buf+s++]&255,i+=(n.pending_buf[n.sym_buf+s++]&255)<<8,r=n.pending_buf[n.sym_buf+s++],i===0?Wr(n,r,t):(a=Pd[r],Wr(n,a+Hd+1,t),o=tC[a],o!==0&&(r-=mC[a],nn(n,r,o)),i--,a=rL(i),Wr(n,a,e),o=u0[a],o!==0&&(i-=d0[a],nn(n,i,o)));while(s{let e=t.dyn_tree,i=t.stat_desc.static_tree,r=t.stat_desc.has_stree,s=t.stat_desc.elems,a,o,l=-1,c;for(n.heap_len=0,n.heap_max=QR,a=0;a>1;a>=1;a--)j1(n,e,a);c=s;do a=n.heap[1],n.heap[1]=n.heap[n.heap_len--],j1(n,e,1),o=n.heap[1],n.heap[--n.heap_max]=a,n.heap[--n.heap_max]=o,e[c*2]=e[a*2]+e[o*2],n.depth[c]=(n.depth[a]>=n.depth[o]?n.depth[a]:n.depth[o])+1,e[a*2+1]=e[o*2+1]=c,n.heap[1]=c++,j1(n,e,1);while(n.heap_len>=2);n.heap[--n.heap_max]=n.heap[1],Uj(n,t),aL(e,l,n.bl_count)},mR=(n,t,e)=>{let i,r=-1,s,a=t[0*2+1],o=0,l=7,c=4;for(a===0&&(l=138,c=3),t[(e+1)*2+1]=65535,i=0;i<=e;i++)s=a,a=t[(i+1)*2+1],!(++o{let i,r=-1,s,a=t[0*2+1],o=0,l=7,c=4;for(a===0&&(l=138,c=3),i=0;i<=e;i++)if(s=a,a=t[(i+1)*2+1],!(++o{let t;for(mR(n,n.dyn_ltree,n.l_desc.max_code),mR(n,n.dyn_dtree,n.d_desc.max_code),iC(n,n.bl_desc),t=dC-1;t>=3&&n.bl_tree[eL[t]*2+1]===0;t--);return n.opt_len+=3*(t+1)+5+5+4,t},Bj=(n,t,e,i)=>{let r;for(nn(n,t-257,5),nn(n,e-1,5),nn(n,i-4,4),r=0;r{let t=4093624447,e;for(e=0;e<=31;e++,t>>>=1)if(t&1&&n.dyn_ltree[e*2]!==0)return 0;if(n.dyn_ltree[9*2]!==0||n.dyn_ltree[10*2]!==0||n.dyn_ltree[13*2]!==0)return 1;for(e=32;e{pR||($j(),pR=!0),n.l_desc=new H1(n.dyn_ltree,tL),n.d_desc=new H1(n.dyn_dtree,iL),n.bl_desc=new H1(n.bl_tree,nL),n.bi_buf=0,n.bi_valid=0,oL(n)},cL=(n,t,e,i)=>{nn(n,(Ij<<1)+(i?1:0),3),lL(n),Ud(n,e),Ud(n,~e),e&&n.pending_buf.set(n.window.subarray(t,t+e),n.pending),n.pending+=e},jj=n=>{nn(n,YR<<1,3),Wr(n,hC,Ds),Pj(n)},Wj=(n,t,e,i)=>{let r,s,a=0;n.level>0?(n.strm.data_type===2&&(n.strm.data_type=zj(n)),iC(n,n.l_desc),iC(n,n.d_desc),a=Vj(n),r=n.opt_len+3+7>>>3,s=n.static_len+3+7>>>3,s<=r&&(r=s)):r=s=e+5,e+4<=r&&t!==-1?cL(n,t,e,i):n.strategy===4||s===r?(nn(n,(YR<<1)+(i?1:0),3),hR(n,Ds,Rd)):(nn(n,(Dj<<1)+(i?1:0),3),Bj(n,n.l_desc.max_code+1,n.d_desc.max_code+1,a+1),hR(n,n.dyn_ltree,n.dyn_dtree)),oL(n),i&&lL(n)},qj=(n,t,e)=>(n.pending_buf[n.sym_buf+n.sym_next++]=t,n.pending_buf[n.sym_buf+n.sym_next++]=t>>8,n.pending_buf[n.sym_buf+n.sym_next++]=e,t===0?n.dyn_ltree[e*2]++:(n.matches++,t--,n.dyn_ltree[(Pd[e]+Hd+1)*2]++,n.dyn_dtree[rL(t)*2]++),n.sym_next===n.sym_end),Gj=Hj,Kj=cL,Yj=Wj,Qj=qj,Zj=jj,Xj={_tr_init:Gj,_tr_stored_block:Kj,_tr_flush_block:Yj,_tr_tally:Qj,_tr_align:Zj},Jj=(n,t,e,i)=>{let r=n&65535|0,s=n>>>16&65535|0,a=0;for(;e!==0;){a=e>2e3?2e3:e,e-=a;do r=r+t[i++]|0,s=s+r|0;while(--a);r%=65521,s%=65521}return r|s<<16|0},$d=Jj,e8=()=>{let n,t=[];for(var e=0;e<256;e++){n=e;for(var i=0;i<8;i++)n=n&1?3988292384^n>>>1:n>>>1;t[e]=n}return t},t8=new Uint32Array(e8()),i8=(n,t,e,i)=>{let r=t8,s=i+e;n^=-1;for(let a=i;a>>8^r[(n^t[a])&255];return n^-1},li=i8,ho={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},po={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:n8,_tr_stored_block:nC,_tr_flush_block:r8,_tr_tally:ba,_tr_align:s8}=Xj,{Z_NO_FLUSH:va,Z_PARTIAL_FLUSH:a8,Z_FULL_FLUSH:o8,Z_FINISH:zn,Z_BLOCK:gR,Z_OK:bi,Z_STREAM_END:_R,Z_STREAM_ERROR:qr,Z_DATA_ERROR:l8,Z_BUF_ERROR:W1,Z_DEFAULT_COMPRESSION:c8,Z_FILTERED:u8,Z_HUFFMAN_ONLY:s0,Z_RLE:d8,Z_FIXED:h8,Z_DEFAULT_STRATEGY:m8,Z_UNKNOWN:f8,Z_DEFLATED:f0}=po,p8=9,g8=15,_8=8,b8=29,v8=256,rC=v8+1+b8,y8=30,C8=19,w8=2*rC+1,x8=15,lt=3,_a=258,Gr=_a+lt+1,S8=32,rc=42,fC=57,sC=69,aC=73,oC=91,lC=103,co=113,Id=666,ji=1,oc=2,mo=3,lc=4,k8=3,uo=(n,t)=>(n.msg=ho[t],t),bR=n=>n*2-(n>4?9:0),ga=n=>{let t=n.length;for(;--t>=0;)n[t]=0},M8=n=>{let t,e,i,r=n.w_size;t=n.hash_size,i=t;do e=n.head[--i],n.head[i]=e>=r?e-r:0;while(--t);t=r,i=t;do e=n.prev[--i],n.prev[i]=e>=r?e-r:0;while(--t)},T8=(n,t,e)=>(t<{let t=n.state,e=t.pending;e>n.avail_out&&(e=n.avail_out),e!==0&&(n.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+e),n.next_out),n.next_out+=e,t.pending_out+=e,n.total_out+=e,n.avail_out-=e,t.pending-=e,t.pending===0&&(t.pending_out=0))},kn=(n,t)=>{r8(n,n.block_start>=0?n.block_start:-1,n.strstart-n.block_start,t),n.block_start=n.strstart,Sn(n.strm)},yt=(n,t)=>{n.pending_buf[n.pending++]=t},Ad=(n,t)=>{n.pending_buf[n.pending++]=t>>>8&255,n.pending_buf[n.pending++]=t&255},cC=(n,t,e,i)=>{let r=n.avail_in;return r>i&&(r=i),r===0?0:(n.avail_in-=r,t.set(n.input.subarray(n.next_in,n.next_in+r),e),n.state.wrap===1?n.adler=$d(n.adler,t,r,e):n.state.wrap===2&&(n.adler=li(n.adler,t,r,e)),n.next_in+=r,n.total_in+=r,r)},uL=(n,t)=>{let e=n.max_chain_length,i=n.strstart,r,s,a=n.prev_length,o=n.nice_match,l=n.strstart>n.w_size-Gr?n.strstart-(n.w_size-Gr):0,c=n.window,u=n.w_mask,d=n.prev,h=n.strstart+_a,m=c[i+a-1],f=c[i+a];n.prev_length>=n.good_match&&(e>>=2),o>n.lookahead&&(o=n.lookahead);do if(r=t,!(c[r+a]!==f||c[r+a-1]!==m||c[r]!==c[i]||c[++r]!==c[i+1])){i+=2,r++;do;while(c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&c[++i]===c[++r]&&ia){if(n.match_start=t,a=s,s>=o)break;m=c[i+a-1],f=c[i+a]}}while((t=d[t&u])>l&&--e!==0);return a<=n.lookahead?a:n.lookahead},sc=n=>{let t=n.w_size,e,i,r;do{if(i=n.window_size-n.lookahead-n.strstart,n.strstart>=t+(t-Gr)&&(n.window.set(n.window.subarray(t,t+t-i),0),n.match_start-=t,n.strstart-=t,n.block_start-=t,n.insert>n.strstart&&(n.insert=n.strstart),M8(n),i+=t),n.strm.avail_in===0)break;if(e=cC(n.strm,n.window,n.strstart+n.lookahead,i),n.lookahead+=e,n.lookahead+n.insert>=lt)for(r=n.strstart-n.insert,n.ins_h=n.window[r],n.ins_h=ya(n,n.ins_h,n.window[r+1]);n.insert&&(n.ins_h=ya(n,n.ins_h,n.window[r+lt-1]),n.prev[r&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=r,r++,n.insert--,!(n.lookahead+n.insert{let e=n.pending_buf_size-5>n.w_size?n.w_size:n.pending_buf_size-5,i,r,s,a=0,o=n.strm.avail_in;do{if(i=65535,s=n.bi_valid+42>>3,n.strm.avail_outr+n.strm.avail_in&&(i=r+n.strm.avail_in),i>s&&(i=s),i>8,n.pending_buf[n.pending-2]=~i,n.pending_buf[n.pending-1]=~i>>8,Sn(n.strm),r&&(r>i&&(r=i),n.strm.output.set(n.window.subarray(n.block_start,n.block_start+r),n.strm.next_out),n.strm.next_out+=r,n.strm.avail_out-=r,n.strm.total_out+=r,n.block_start+=r,i-=r),i&&(cC(n.strm,n.strm.output,n.strm.next_out,i),n.strm.next_out+=i,n.strm.avail_out-=i,n.strm.total_out+=i)}while(a===0);return o-=n.strm.avail_in,o&&(o>=n.w_size?(n.matches=2,n.window.set(n.strm.input.subarray(n.strm.next_in-n.w_size,n.strm.next_in),0),n.strstart=n.w_size,n.insert=n.strstart):(n.window_size-n.strstart<=o&&(n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,n.insert>n.strstart&&(n.insert=n.strstart)),n.window.set(n.strm.input.subarray(n.strm.next_in-o,n.strm.next_in),n.strstart),n.strstart+=o,n.insert+=o>n.w_size-n.insert?n.w_size-n.insert:o),n.block_start=n.strstart),n.high_waters&&n.block_start>=n.w_size&&(n.block_start-=n.w_size,n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,s+=n.w_size,n.insert>n.strstart&&(n.insert=n.strstart)),s>n.strm.avail_in&&(s=n.strm.avail_in),s&&(cC(n.strm,n.window,n.strstart,s),n.strstart+=s,n.insert+=s>n.w_size-n.insert?n.w_size-n.insert:s),n.high_water>3,s=n.pending_buf_size-s>65535?65535:n.pending_buf_size-s,e=s>n.w_size?n.w_size:s,r=n.strstart-n.block_start,(r>=e||(r||t===zn)&&t!==va&&n.strm.avail_in===0&&r<=s)&&(i=r>s?s:r,a=t===zn&&n.strm.avail_in===0&&i===r?1:0,nC(n,n.block_start,i,a),n.block_start+=i,Sn(n.strm)),a?mo:ji)},q1=(n,t)=>{let e,i;for(;;){if(n.lookahead=lt&&(n.ins_h=ya(n,n.ins_h,n.window[n.strstart+lt-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),e!==0&&n.strstart-e<=n.w_size-Gr&&(n.match_length=uL(n,e)),n.match_length>=lt)if(i=ba(n,n.strstart-n.match_start,n.match_length-lt),n.lookahead-=n.match_length,n.match_length<=n.max_lazy_match&&n.lookahead>=lt){n.match_length--;do n.strstart++,n.ins_h=ya(n,n.ins_h,n.window[n.strstart+lt-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart;while(--n.match_length!==0);n.strstart++}else n.strstart+=n.match_length,n.match_length=0,n.ins_h=n.window[n.strstart],n.ins_h=ya(n,n.ins_h,n.window[n.strstart+1]);else i=ba(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++;if(i&&(kn(n,!1),n.strm.avail_out===0))return ji}return n.insert=n.strstart{let e,i,r;for(;;){if(n.lookahead=lt&&(n.ins_h=ya(n,n.ins_h,n.window[n.strstart+lt-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),n.prev_length=n.match_length,n.prev_match=n.match_start,n.match_length=lt-1,e!==0&&n.prev_length4096)&&(n.match_length=lt-1)),n.prev_length>=lt&&n.match_length<=n.prev_length){r=n.strstart+n.lookahead-lt,i=ba(n,n.strstart-1-n.prev_match,n.prev_length-lt),n.lookahead-=n.prev_length-1,n.prev_length-=2;do++n.strstart<=r&&(n.ins_h=ya(n,n.ins_h,n.window[n.strstart+lt-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart);while(--n.prev_length!==0);if(n.match_available=0,n.match_length=lt-1,n.strstart++,i&&(kn(n,!1),n.strm.avail_out===0))return ji}else if(n.match_available){if(i=ba(n,0,n.window[n.strstart-1]),i&&kn(n,!1),n.strstart++,n.lookahead--,n.strm.avail_out===0)return ji}else n.match_available=1,n.strstart++,n.lookahead--}return n.match_available&&(i=ba(n,0,n.window[n.strstart-1]),n.match_available=0),n.insert=n.strstart{let e,i,r,s,a=n.window;for(;;){if(n.lookahead<=_a){if(sc(n),n.lookahead<=_a&&t===va)return ji;if(n.lookahead===0)break}if(n.match_length=0,n.lookahead>=lt&&n.strstart>0&&(r=n.strstart-1,i=a[r],i===a[++r]&&i===a[++r]&&i===a[++r])){s=n.strstart+_a;do;while(i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&i===a[++r]&&rn.lookahead&&(n.match_length=n.lookahead)}if(n.match_length>=lt?(e=ba(n,1,n.match_length-lt),n.lookahead-=n.match_length,n.strstart+=n.match_length,n.match_length=0):(e=ba(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++),e&&(kn(n,!1),n.strm.avail_out===0))return ji}return n.insert=0,t===zn?(kn(n,!0),n.strm.avail_out===0?mo:lc):n.sym_next&&(kn(n,!1),n.strm.avail_out===0)?ji:oc},A8=(n,t)=>{let e;for(;;){if(n.lookahead===0&&(sc(n),n.lookahead===0)){if(t===va)return ji;break}if(n.match_length=0,e=ba(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++,e&&(kn(n,!1),n.strm.avail_out===0))return ji}return n.insert=0,t===zn?(kn(n,!0),n.strm.avail_out===0?mo:lc):n.sym_next&&(kn(n,!1),n.strm.avail_out===0)?ji:oc};function jr(n,t,e,i,r){this.good_length=n,this.max_lazy=t,this.nice_length=e,this.max_chain=i,this.func=r}var Dd=[new jr(0,0,0,0,dL),new jr(4,4,8,4,q1),new jr(4,5,16,8,q1),new jr(4,6,32,32,q1),new jr(4,4,16,16,tc),new jr(8,16,32,32,tc),new jr(8,16,128,128,tc),new jr(8,32,128,256,tc),new jr(32,128,258,1024,tc),new jr(32,258,258,4096,tc)],I8=n=>{n.window_size=2*n.w_size,ga(n.head),n.max_lazy_match=Dd[n.level].max_lazy,n.good_match=Dd[n.level].good_length,n.nice_match=Dd[n.level].nice_length,n.max_chain_length=Dd[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=lt-1,n.match_available=0,n.ins_h=0};function D8(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=f0,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(w8*2),this.dyn_dtree=new Uint16Array((2*y8+1)*2),this.bl_tree=new Uint16Array((2*C8+1)*2),ga(this.dyn_ltree),ga(this.dyn_dtree),ga(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(x8+1),this.heap=new Uint16Array(2*rC+1),ga(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*rC+1),ga(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var jd=n=>{if(!n)return 1;let t=n.state;return!t||t.strm!==n||t.status!==rc&&t.status!==fC&&t.status!==sC&&t.status!==aC&&t.status!==oC&&t.status!==lC&&t.status!==co&&t.status!==Id?1:0},hL=n=>{if(jd(n))return uo(n,qr);n.total_in=n.total_out=0,n.data_type=f8;let t=n.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?fC:t.wrap?rc:co,n.adler=t.wrap===2?0:1,t.last_flush=-2,n8(t),bi},mL=n=>{let t=hL(n);return t===bi&&I8(n.state),t},R8=(n,t)=>jd(n)||n.state.wrap!==2?qr:(n.state.gzhead=t,bi),fL=(n,t,e,i,r,s)=>{if(!n)return qr;let a=1;if(t===c8&&(t=6),i<0?(a=0,i=-i):i>15&&(a=2,i-=16),r<1||r>p8||e!==f0||i<8||i>15||t<0||t>9||s<0||s>h8||i===8&&a!==1)return uo(n,qr);i===8&&(i=9);let o=new D8;return n.state=o,o.strm=n,o.status=rc,o.wrap=a,o.gzhead=null,o.w_bits=i,o.w_size=1<fL(n,t,f0,g8,_8,m8),O8=(n,t)=>{if(jd(n)||t>gR||t<0)return n?uo(n,qr):qr;let e=n.state;if(!n.output||n.avail_in!==0&&!n.input||e.status===Id&&t!==zn)return uo(n,n.avail_out===0?W1:qr);let i=e.last_flush;if(e.last_flush=t,e.pending!==0){if(Sn(n),n.avail_out===0)return e.last_flush=-1,bi}else if(n.avail_in===0&&bR(t)<=bR(i)&&t!==zn)return uo(n,W1);if(e.status===Id&&n.avail_in!==0)return uo(n,W1);if(e.status===rc&&e.wrap===0&&(e.status=co),e.status===rc){let r=f0+(e.w_bits-8<<4)<<8,s=-1;if(e.strategy>=s0||e.level<2?s=0:e.level<6?s=1:e.level===6?s=2:s=3,r|=s<<6,e.strstart!==0&&(r|=S8),r+=31-r%31,Ad(e,r),e.strstart!==0&&(Ad(e,n.adler>>>16),Ad(e,n.adler&65535)),n.adler=1,e.status=co,Sn(n),e.pending!==0)return e.last_flush=-1,bi}if(e.status===fC){if(n.adler=0,yt(e,31),yt(e,139),yt(e,8),e.gzhead)yt(e,(e.gzhead.text?1:0)+(e.gzhead.hcrc?2:0)+(e.gzhead.extra?4:0)+(e.gzhead.name?8:0)+(e.gzhead.comment?16:0)),yt(e,e.gzhead.time&255),yt(e,e.gzhead.time>>8&255),yt(e,e.gzhead.time>>16&255),yt(e,e.gzhead.time>>24&255),yt(e,e.level===9?2:e.strategy>=s0||e.level<2?4:0),yt(e,e.gzhead.os&255),e.gzhead.extra&&e.gzhead.extra.length&&(yt(e,e.gzhead.extra.length&255),yt(e,e.gzhead.extra.length>>8&255)),e.gzhead.hcrc&&(n.adler=li(n.adler,e.pending_buf,e.pending,0)),e.gzindex=0,e.status=sC;else if(yt(e,0),yt(e,0),yt(e,0),yt(e,0),yt(e,0),yt(e,e.level===9?2:e.strategy>=s0||e.level<2?4:0),yt(e,k8),e.status=co,Sn(n),e.pending!==0)return e.last_flush=-1,bi}if(e.status===sC){if(e.gzhead.extra){let r=e.pending,s=(e.gzhead.extra.length&65535)-e.gzindex;for(;e.pending+s>e.pending_buf_size;){let o=e.pending_buf_size-e.pending;if(e.pending_buf.set(e.gzhead.extra.subarray(e.gzindex,e.gzindex+o),e.pending),e.pending=e.pending_buf_size,e.gzhead.hcrc&&e.pending>r&&(n.adler=li(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex+=o,Sn(n),e.pending!==0)return e.last_flush=-1,bi;r=0,s-=o}let a=new Uint8Array(e.gzhead.extra);e.pending_buf.set(a.subarray(e.gzindex,e.gzindex+s),e.pending),e.pending+=s,e.gzhead.hcrc&&e.pending>r&&(n.adler=li(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=aC}if(e.status===aC){if(e.gzhead.name){let r=e.pending,s;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(n.adler=li(n.adler,e.pending_buf,e.pending-r,r)),Sn(n),e.pending!==0)return e.last_flush=-1,bi;r=0}e.gzindexr&&(n.adler=li(n.adler,e.pending_buf,e.pending-r,r)),e.gzindex=0}e.status=oC}if(e.status===oC){if(e.gzhead.comment){let r=e.pending,s;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>r&&(n.adler=li(n.adler,e.pending_buf,e.pending-r,r)),Sn(n),e.pending!==0)return e.last_flush=-1,bi;r=0}e.gzindexr&&(n.adler=li(n.adler,e.pending_buf,e.pending-r,r))}e.status=lC}if(e.status===lC){if(e.gzhead.hcrc){if(e.pending+2>e.pending_buf_size&&(Sn(n),e.pending!==0))return e.last_flush=-1,bi;yt(e,n.adler&255),yt(e,n.adler>>8&255),n.adler=0}if(e.status=co,Sn(n),e.pending!==0)return e.last_flush=-1,bi}if(n.avail_in!==0||e.lookahead!==0||t!==va&&e.status!==Id){let r=e.level===0?dL(e,t):e.strategy===s0?A8(e,t):e.strategy===d8?E8(e,t):Dd[e.level].func(e,t);if((r===mo||r===lc)&&(e.status=Id),r===ji||r===mo)return n.avail_out===0&&(e.last_flush=-1),bi;if(r===oc&&(t===a8?s8(e):t!==gR&&(nC(e,0,0,!1),t===o8&&(ga(e.head),e.lookahead===0&&(e.strstart=0,e.block_start=0,e.insert=0))),Sn(n),n.avail_out===0))return e.last_flush=-1,bi}return t!==zn?bi:e.wrap<=0?_R:(e.wrap===2?(yt(e,n.adler&255),yt(e,n.adler>>8&255),yt(e,n.adler>>16&255),yt(e,n.adler>>24&255),yt(e,n.total_in&255),yt(e,n.total_in>>8&255),yt(e,n.total_in>>16&255),yt(e,n.total_in>>24&255)):(Ad(e,n.adler>>>16),Ad(e,n.adler&65535)),Sn(n),e.wrap>0&&(e.wrap=-e.wrap),e.pending!==0?bi:_R)},N8=n=>{if(jd(n))return qr;let t=n.state.status;return n.state=null,t===co?uo(n,l8):bi},F8=(n,t)=>{let e=t.length;if(jd(n))return qr;let i=n.state,r=i.wrap;if(r===2||r===1&&i.status!==rc||i.lookahead)return qr;if(r===1&&(n.adler=$d(n.adler,t,e,0)),i.wrap=0,e>=i.w_size){r===0&&(ga(i.head),i.strstart=0,i.block_start=0,i.insert=0);let l=new Uint8Array(i.w_size);l.set(t.subarray(e-i.w_size,e),0),t=l,e=i.w_size}let s=n.avail_in,a=n.next_in,o=n.input;for(n.avail_in=e,n.next_in=0,n.input=t,sc(i);i.lookahead>=lt;){let l=i.strstart,c=i.lookahead-(lt-1);do i.ins_h=ya(i,i.ins_h,i.window[l+lt-1]),i.prev[l&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=l,l++;while(--c);i.strstart=l,i.lookahead=lt-1,sc(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=lt-1,i.match_available=0,n.next_in=a,n.input=o,n.avail_in=s,i.wrap=r,bi},P8=L8,U8=fL,$8=mL,V8=hL,B8=R8,z8=O8,H8=N8,j8=F8,W8="pako deflate (from Nodeca project)",Ld={deflateInit:P8,deflateInit2:U8,deflateReset:$8,deflateResetKeep:V8,deflateSetHeader:B8,deflate:z8,deflateEnd:H8,deflateSetDictionary:j8,deflateInfo:W8},q8=(n,t)=>Object.prototype.hasOwnProperty.call(n,t),G8=function(n){let t=Array.prototype.slice.call(arguments,1);for(;t.length;){let e=t.shift();if(e){if(typeof e!="object")throw new TypeError(e+"must be non-object");for(let i in e)q8(e,i)&&(n[i]=e[i])}}return n},K8=n=>{let t=0;for(let i=0,r=n.length;i=252?6:n>=248?5:n>=240?4:n>=224?3:n>=192?2:1;Vd[254]=Vd[254]=1;var Y8=n=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(n);let t,e,i,r,s,a=n.length,o=0;for(r=0;r>>6,t[s++]=128|e&63):e<65536?(t[s++]=224|e>>>12,t[s++]=128|e>>>6&63,t[s++]=128|e&63):(t[s++]=240|e>>>18,t[s++]=128|e>>>12&63,t[s++]=128|e>>>6&63,t[s++]=128|e&63);return t},Q8=(n,t)=>{if(t<65534&&n.subarray&&pL)return String.fromCharCode.apply(null,n.length===t?n:n.subarray(0,t));let e="";for(let i=0;i{let e=t||n.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(n.subarray(0,t));let i,r,s=new Array(e*2);for(r=0,i=0;i4){s[r++]=65533,i+=o-1;continue}for(a&=o===2?31:o===3?15:7;o>1&&i1){s[r++]=65533;continue}a<65536?s[r++]=a:(a-=65536,s[r++]=55296|a>>10&1023,s[r++]=56320|a&1023)}return Q8(s,r)},X8=(n,t)=>{t=t||n.length,t>n.length&&(t=n.length);let e=t-1;for(;e>=0&&(n[e]&192)===128;)e--;return e<0||e===0?t:e+Vd[n[e]]>t?e:t},Bd={string2buf:Y8,buf2string:Z8,utf8border:X8};function J8(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var gL=J8,_L=Object.prototype.toString,{Z_NO_FLUSH:e9,Z_SYNC_FLUSH:t9,Z_FULL_FLUSH:i9,Z_FINISH:n9,Z_OK:h0,Z_STREAM_END:r9,Z_DEFAULT_COMPRESSION:s9,Z_DEFAULT_STRATEGY:a9,Z_DEFLATED:o9}=po;function Wd(n){this.options=p0.assign({level:s9,method:o9,chunkSize:16384,windowBits:15,memLevel:8,strategy:a9},n||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new gL,this.strm.avail_out=0;let e=Ld.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(e!==h0)throw new Error(ho[e]);if(t.header&&Ld.deflateSetHeader(this.strm,t.header),t.dictionary){let i;if(typeof t.dictionary=="string"?i=Bd.string2buf(t.dictionary):_L.call(t.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(t.dictionary):i=t.dictionary,e=Ld.deflateSetDictionary(this.strm,i),e!==h0)throw new Error(ho[e]);this._dict_set=!0}}Wd.prototype.push=function(n,t){let e=this.strm,i=this.options.chunkSize,r,s;if(this.ended)return!1;for(t===~~t?s=t:s=t===!0?n9:e9,typeof n=="string"?e.input=Bd.string2buf(n):_L.call(n)==="[object ArrayBuffer]"?e.input=new Uint8Array(n):e.input=n,e.next_in=0,e.avail_in=e.input.length;;){if(e.avail_out===0&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),(s===t9||s===i9)&&e.avail_out<=6){this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;continue}if(r=Ld.deflate(e,s),r===r9)return e.next_out>0&&this.onData(e.output.subarray(0,e.next_out)),r=Ld.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===h0;if(e.avail_out===0){this.onData(e.output);continue}if(s>0&&e.next_out>0){this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;continue}if(e.avail_in===0)break}return!0};Wd.prototype.onData=function(n){this.chunks.push(n)};Wd.prototype.onEnd=function(n){n===h0&&(this.result=p0.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};function pC(n,t){let e=new Wd(t);if(e.push(n,!0),e.err)throw e.msg||ho[e.err];return e.result}function l9(n,t){return t=t||{},t.raw=!0,pC(n,t)}function c9(n,t){return t=t||{},t.gzip=!0,pC(n,t)}var u9=Wd,d9=pC,h9=l9,m9=c9,f9=po,p9={Deflate:u9,deflate:d9,deflateRaw:h9,gzip:m9,constants:f9},a0=16209,g9=16191,_9=function(t,e){let i,r,s,a,o,l,c,u,d,h,m,f,p,g,y,w,k,x,C,A,T,E,L,S,v=t.state;i=t.next_in,L=t.input,r=i+(t.avail_in-5),s=t.next_out,S=t.output,a=s-(e-t.avail_out),o=s+(t.avail_out-257),l=v.dmax,c=v.wsize,u=v.whave,d=v.wnext,h=v.window,m=v.hold,f=v.bits,p=v.lencode,g=v.distcode,y=(1<>>24,m>>>=x,f-=x,x=k>>>16&255,x===0)S[s++]=k&65535;else if(x&16){C=k&65535,x&=15,x&&(f>>=x,f-=x),f<15&&(m+=L[i++]<>>24,m>>>=x,f-=x,x=k>>>16&255,x&16){if(A=k&65535,x&=15,fl){t.msg="invalid distance too far back",v.mode=a0;break e}if(m>>>=x,f-=x,x=s-a,A>x){if(x=A-x,x>u&&v.sane){t.msg="invalid distance too far back",v.mode=a0;break e}if(T=0,E=h,d===0){if(T+=c-x,x2;)S[s++]=E[T++],S[s++]=E[T++],S[s++]=E[T++],C-=3;C&&(S[s++]=E[T++],C>1&&(S[s++]=E[T++]))}else{T=s-A;do S[s++]=S[T++],S[s++]=S[T++],S[s++]=S[T++],C-=3;while(C>2);C&&(S[s++]=S[T++],C>1&&(S[s++]=S[T++]))}}else if((x&64)===0){k=g[(k&65535)+(m&(1<>3,i-=C,f-=C<<3,m&=(1<{let l=o.bits,c=0,u=0,d=0,h=0,m=0,f=0,p=0,g=0,y=0,w=0,k,x,C,A,T,E=null,L,S=new Uint16Array(ic+1),v=new Uint16Array(ic+1),_=null,b,M,I;for(c=0;c<=ic;c++)S[c]=0;for(u=0;u=1&&S[h]===0;h--);if(m>h&&(m=h),h===0)return r[s++]=1<<24|64<<16|0,r[s++]=1<<24|64<<16|0,o.bits=1,0;for(d=1;d0&&(n===CR||h!==1))return-1;for(v[1]=0,c=1;cvR||n===wR&&y>yR)return 1;for(;;){b=c-p,a[u]+1=L?(M=_[a[u]-L],I=E[a[u]-L]):(M=96,I=0),k=1<>p)+x]=b<<24|M<<16|I|0;while(x!==0);for(k=1<>=1;if(k!==0?(w&=k-1,w+=k):w=0,u++,--S[c]===0){if(c===h)break;c=t[e+a[u]]}if(c>m&&(w&A)!==C){for(p===0&&(p=m),T+=d,f=c-p,g=1<vR||n===wR&&y>yR)return 1;C=w&A,r[C]=m<<24|f<<16|T-s|0}}return w!==0&&(r[T+w]=c-p<<24|64<<16|0),o.bits=m,0},Od=w9,x9=0,bL=1,vL=2,{Z_FINISH:xR,Z_BLOCK:S9,Z_TREES:o0,Z_OK:fo,Z_STREAM_END:k9,Z_NEED_DICT:M9,Z_STREAM_ERROR:Hn,Z_DATA_ERROR:yL,Z_MEM_ERROR:CL,Z_BUF_ERROR:T9,Z_DEFLATED:SR}=po,g0=16180,kR=16181,MR=16182,TR=16183,ER=16184,AR=16185,IR=16186,DR=16187,RR=16188,LR=16189,m0=16190,Is=16191,K1=16192,OR=16193,Y1=16194,NR=16195,FR=16196,PR=16197,UR=16198,l0=16199,c0=16200,$R=16201,VR=16202,BR=16203,zR=16204,HR=16205,Q1=16206,jR=16207,WR=16208,Pt=16209,wL=16210,xL=16211,E9=852,A9=592,I9=15,D9=I9,qR=n=>(n>>>24&255)+(n>>>8&65280)+((n&65280)<<8)+((n&255)<<24);function R9(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var go=n=>{if(!n)return 1;let t=n.state;return!t||t.strm!==n||t.modexL?1:0},SL=n=>{if(go(n))return Hn;let t=n.state;return n.total_in=n.total_out=t.total=0,n.msg="",t.wrap&&(n.adler=t.wrap&1),t.mode=g0,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(E9),t.distcode=t.distdyn=new Int32Array(A9),t.sane=1,t.back=-1,fo},kL=n=>{if(go(n))return Hn;let t=n.state;return t.wsize=0,t.whave=0,t.wnext=0,SL(n)},ML=(n,t)=>{let e;if(go(n))return Hn;let i=n.state;return t<0?(e=0,t=-t):(e=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?Hn:(i.window!==null&&i.wbits!==t&&(i.window=null),i.wrap=e,i.wbits=t,kL(n))},TL=(n,t)=>{if(!n)return Hn;let e=new R9;n.state=e,e.strm=n,e.window=null,e.mode=g0;let i=ML(n,t);return i!==fo&&(n.state=null),i},L9=n=>TL(n,D9),GR=!0,Z1,X1,O9=n=>{if(GR){Z1=new Int32Array(512),X1=new Int32Array(32);let t=0;for(;t<144;)n.lens[t++]=8;for(;t<256;)n.lens[t++]=9;for(;t<280;)n.lens[t++]=7;for(;t<288;)n.lens[t++]=8;for(Od(bL,n.lens,0,288,Z1,0,n.work,{bits:9}),t=0;t<32;)n.lens[t++]=5;Od(vL,n.lens,0,32,X1,0,n.work,{bits:5}),GR=!1}n.lencode=Z1,n.lenbits=9,n.distcode=X1,n.distbits=5},EL=(n,t,e,i)=>{let r,s=n.state;return s.window===null&&(s.wsize=1<=s.wsize?(s.window.set(t.subarray(e-s.wsize,e),0),s.wnext=0,s.whave=s.wsize):(r=s.wsize-s.wnext,r>i&&(r=i),s.window.set(t.subarray(e-i,e-i+r),s.wnext),i-=r,i?(s.window.set(t.subarray(e-i,e),0),s.wnext=i,s.whave=s.wsize):(s.wnext+=r,s.wnext===s.wsize&&(s.wnext=0),s.whave{let e,i,r,s,a,o,l,c,u,d,h,m,f,p,g=0,y,w,k,x,C,A,T,E,L=new Uint8Array(4),S,v,_=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(go(n)||!n.output||!n.input&&n.avail_in!==0)return Hn;e=n.state,e.mode===Is&&(e.mode=K1),a=n.next_out,r=n.output,l=n.avail_out,s=n.next_in,i=n.input,o=n.avail_in,c=e.hold,u=e.bits,d=o,h=l,E=fo;e:for(;;)switch(e.mode){case g0:if(e.wrap===0){e.mode=K1;break}for(;u<16;){if(o===0)break e;o--,c+=i[s++]<>>8&255,e.check=li(e.check,L,2,0),c=0,u=0,e.mode=kR;break}if(e.head&&(e.head.done=!1),!(e.wrap&1)||(((c&255)<<8)+(c>>8))%31){n.msg="incorrect header check",e.mode=Pt;break}if((c&15)!==SR){n.msg="unknown compression method",e.mode=Pt;break}if(c>>>=4,u-=4,T=(c&15)+8,e.wbits===0&&(e.wbits=T),T>15||T>e.wbits){n.msg="invalid window size",e.mode=Pt;break}e.dmax=1<>8&1),e.flags&512&&e.wrap&4&&(L[0]=c&255,L[1]=c>>>8&255,e.check=li(e.check,L,2,0)),c=0,u=0,e.mode=MR;case MR:for(;u<32;){if(o===0)break e;o--,c+=i[s++]<>>8&255,L[2]=c>>>16&255,L[3]=c>>>24&255,e.check=li(e.check,L,4,0)),c=0,u=0,e.mode=TR;case TR:for(;u<16;){if(o===0)break e;o--,c+=i[s++]<>8),e.flags&512&&e.wrap&4&&(L[0]=c&255,L[1]=c>>>8&255,e.check=li(e.check,L,2,0)),c=0,u=0,e.mode=ER;case ER:if(e.flags&1024){for(;u<16;){if(o===0)break e;o--,c+=i[s++]<>>8&255,e.check=li(e.check,L,2,0)),c=0,u=0}else e.head&&(e.head.extra=null);e.mode=AR;case AR:if(e.flags&1024&&(m=e.length,m>o&&(m=o),m&&(e.head&&(T=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Uint8Array(e.head.extra_len)),e.head.extra.set(i.subarray(s,s+m),T)),e.flags&512&&e.wrap&4&&(e.check=li(e.check,i,m,s)),o-=m,s+=m,e.length-=m),e.length))break e;e.length=0,e.mode=IR;case IR:if(e.flags&2048){if(o===0)break e;m=0;do T=i[s+m++],e.head&&T&&e.length<65536&&(e.head.name+=String.fromCharCode(T));while(T&&m>9&1,e.head.done=!0),n.adler=e.check=0,e.mode=Is;break;case LR:for(;u<32;){if(o===0)break e;o--,c+=i[s++]<>>=u&7,u-=u&7,e.mode=Q1;break}for(;u<3;){if(o===0)break e;o--,c+=i[s++]<>>=1,u-=1,c&3){case 0:e.mode=OR;break;case 1:if(O9(e),e.mode=l0,t===o0){c>>>=2,u-=2;break e}break;case 2:e.mode=FR;break;case 3:n.msg="invalid block type",e.mode=Pt}c>>>=2,u-=2;break;case OR:for(c>>>=u&7,u-=u&7;u<32;){if(o===0)break e;o--,c+=i[s++]<>>16^65535)){n.msg="invalid stored block lengths",e.mode=Pt;break}if(e.length=c&65535,c=0,u=0,e.mode=Y1,t===o0)break e;case Y1:e.mode=NR;case NR:if(m=e.length,m){if(m>o&&(m=o),m>l&&(m=l),m===0)break e;r.set(i.subarray(s,s+m),a),o-=m,s+=m,l-=m,a+=m,e.length-=m;break}e.mode=Is;break;case FR:for(;u<14;){if(o===0)break e;o--,c+=i[s++]<>>=5,u-=5,e.ndist=(c&31)+1,c>>>=5,u-=5,e.ncode=(c&15)+4,c>>>=4,u-=4,e.nlen>286||e.ndist>30){n.msg="too many length or distance symbols",e.mode=Pt;break}e.have=0,e.mode=PR;case PR:for(;e.have>>=3,u-=3}for(;e.have<19;)e.lens[_[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,S={bits:e.lenbits},E=Od(x9,e.lens,0,19,e.lencode,0,e.work,S),e.lenbits=S.bits,E){n.msg="invalid code lengths set",e.mode=Pt;break}e.have=0,e.mode=UR;case UR:for(;e.have>>24,w=g>>>16&255,k=g&65535,!(y<=u);){if(o===0)break e;o--,c+=i[s++]<>>=y,u-=y,e.lens[e.have++]=k;else{if(k===16){for(v=y+2;u>>=y,u-=y,e.have===0){n.msg="invalid bit length repeat",e.mode=Pt;break}T=e.lens[e.have-1],m=3+(c&3),c>>>=2,u-=2}else if(k===17){for(v=y+3;u>>=y,u-=y,T=0,m=3+(c&7),c>>>=3,u-=3}else{for(v=y+7;u>>=y,u-=y,T=0,m=11+(c&127),c>>>=7,u-=7}if(e.have+m>e.nlen+e.ndist){n.msg="invalid bit length repeat",e.mode=Pt;break}for(;m--;)e.lens[e.have++]=T}}if(e.mode===Pt)break;if(e.lens[256]===0){n.msg="invalid code -- missing end-of-block",e.mode=Pt;break}if(e.lenbits=9,S={bits:e.lenbits},E=Od(bL,e.lens,0,e.nlen,e.lencode,0,e.work,S),e.lenbits=S.bits,E){n.msg="invalid literal/lengths set",e.mode=Pt;break}if(e.distbits=6,e.distcode=e.distdyn,S={bits:e.distbits},E=Od(vL,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,S),e.distbits=S.bits,E){n.msg="invalid distances set",e.mode=Pt;break}if(e.mode=l0,t===o0)break e;case l0:e.mode=c0;case c0:if(o>=6&&l>=258){n.next_out=a,n.avail_out=l,n.next_in=s,n.avail_in=o,e.hold=c,e.bits=u,_9(n,h),a=n.next_out,r=n.output,l=n.avail_out,s=n.next_in,i=n.input,o=n.avail_in,c=e.hold,u=e.bits,e.mode===Is&&(e.back=-1);break}for(e.back=0;g=e.lencode[c&(1<>>24,w=g>>>16&255,k=g&65535,!(y<=u);){if(o===0)break e;o--,c+=i[s++]<>x)],y=g>>>24,w=g>>>16&255,k=g&65535,!(x+y<=u);){if(o===0)break e;o--,c+=i[s++]<>>=x,u-=x,e.back+=x}if(c>>>=y,u-=y,e.back+=y,e.length=k,w===0){e.mode=HR;break}if(w&32){e.back=-1,e.mode=Is;break}if(w&64){n.msg="invalid literal/length code",e.mode=Pt;break}e.extra=w&15,e.mode=$R;case $R:if(e.extra){for(v=e.extra;u>>=e.extra,u-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=VR;case VR:for(;g=e.distcode[c&(1<>>24,w=g>>>16&255,k=g&65535,!(y<=u);){if(o===0)break e;o--,c+=i[s++]<>x)],y=g>>>24,w=g>>>16&255,k=g&65535,!(x+y<=u);){if(o===0)break e;o--,c+=i[s++]<>>=x,u-=x,e.back+=x}if(c>>>=y,u-=y,e.back+=y,w&64){n.msg="invalid distance code",e.mode=Pt;break}e.offset=k,e.extra=w&15,e.mode=BR;case BR:if(e.extra){for(v=e.extra;u>>=e.extra,u-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){n.msg="invalid distance too far back",e.mode=Pt;break}e.mode=zR;case zR:if(l===0)break e;if(m=h-l,e.offset>m){if(m=e.offset-m,m>e.whave&&e.sane){n.msg="invalid distance too far back",e.mode=Pt;break}m>e.wnext?(m-=e.wnext,f=e.wsize-m):f=e.wnext-m,m>e.length&&(m=e.length),p=e.window}else p=r,f=a-e.offset,m=e.length;m>l&&(m=l),l-=m,e.length-=m;do r[a++]=p[f++];while(--m);e.length===0&&(e.mode=c0);break;case HR:if(l===0)break e;r[a++]=e.length,l--,e.mode=c0;break;case Q1:if(e.wrap){for(;u<32;){if(o===0)break e;o--,c|=i[s++]<{if(go(n))return Hn;let t=n.state;return t.window&&(t.window=null),n.state=null,fo},P9=(n,t)=>{if(go(n))return Hn;let e=n.state;return(e.wrap&2)===0?Hn:(e.head=t,t.done=!1,fo)},U9=(n,t)=>{let e=t.length,i,r,s;return go(n)||(i=n.state,i.wrap!==0&&i.mode!==m0)?Hn:i.mode===m0&&(r=1,r=$d(r,t,e,0),r!==i.check)?yL:(s=EL(n,t,e,e),s?(i.mode=wL,CL):(i.havedict=1,fo))},$9=kL,V9=ML,B9=SL,z9=L9,H9=TL,j9=N9,W9=F9,q9=P9,G9=U9,K9="pako inflate (from Nodeca project)",Rs={inflateReset:$9,inflateReset2:V9,inflateResetKeep:B9,inflateInit:z9,inflateInit2:H9,inflate:j9,inflateEnd:W9,inflateGetHeader:q9,inflateSetDictionary:G9,inflateInfo:K9};function Y9(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var Q9=Y9,AL=Object.prototype.toString,{Z_NO_FLUSH:Z9,Z_FINISH:X9,Z_OK:zd,Z_STREAM_END:J1,Z_NEED_DICT:eC,Z_STREAM_ERROR:J9,Z_DATA_ERROR:KR,Z_MEM_ERROR:eW}=po;function qd(n){this.options=p0.assign({chunkSize:1024*64,windowBits:15,to:""},n||{});let t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(n&&n.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15)===0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new gL,this.strm.avail_out=0;let e=Rs.inflateInit2(this.strm,t.windowBits);if(e!==zd)throw new Error(ho[e]);if(this.header=new Q9,Rs.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Bd.string2buf(t.dictionary):AL.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(e=Rs.inflateSetDictionary(this.strm,t.dictionary),e!==zd)))throw new Error(ho[e])}qd.prototype.push=function(n,t){let e=this.strm,i=this.options.chunkSize,r=this.options.dictionary,s,a,o;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?X9:Z9,AL.call(n)==="[object ArrayBuffer]"?e.input=new Uint8Array(n):e.input=n,e.next_in=0,e.avail_in=e.input.length;;){for(e.avail_out===0&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),s=Rs.inflate(e,a),s===eC&&r&&(s=Rs.inflateSetDictionary(e,r),s===zd?s=Rs.inflate(e,a):s===KR&&(s=eC));e.avail_in>0&&s===J1&&e.state.wrap>0&&n[e.next_in]!==0;)Rs.inflateReset(e),s=Rs.inflate(e,a);switch(s){case J9:case KR:case eC:case eW:return this.onEnd(s),this.ended=!0,!1}if(o=e.avail_out,e.next_out&&(e.avail_out===0||s===J1))if(this.options.to==="string"){let l=Bd.utf8border(e.output,e.next_out),c=e.next_out-l,u=Bd.buf2string(e.output,l);e.next_out=c,e.avail_out=i-c,c&&e.output.set(e.output.subarray(l,l+c),0),this.onData(u)}else this.onData(e.output.length===e.next_out?e.output:e.output.subarray(0,e.next_out));if(!(s===zd&&o===0)){if(s===J1)return s=Rs.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(e.avail_in===0)break}}return!0};qd.prototype.onData=function(n){this.chunks.push(n)};qd.prototype.onEnd=function(n){n===zd&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=p0.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};function gC(n,t){let e=new qd(t);if(e.push(n),e.err)throw e.msg||ho[e.err];return e.result}function tW(n,t){return t=t||{},t.raw=!0,gC(n,t)}var iW=qd,nW=gC,rW=tW,sW=gC,aW=po,oW={Inflate:iW,inflate:nW,inflateRaw:rW,ungzip:sW,constants:aW},{Deflate:lW,deflate:cW,deflateRaw:uW,gzip:dW}=p9,{Inflate:hW,inflate:mW,inflateRaw:fW,ungzip:pW}=oW,gW=lW,_W=cW,bW=uW,vW=dW,yW=hW,CW=mW,wW=fW,xW=pW,SW=po,IL={Deflate:gW,deflate:_W,deflateRaw:bW,gzip:vW,Inflate:yW,inflate:CW,inflateRaw:wW,ungzip:xW,constants:SW};var rO=Os(RL()),sO=Os(D_());var _o=class{constructor(t,e,i,r=[],s=null){this.extractedProfiles=[],this.validationParameters=[],this.loading=!1,this.filename=t,this.resource=e,this.validationParameters=r,i?this.mimetype=i:t.endsWith(".json")?this.mimetype="application/fhir+json":this.mimetype="application/fhir+xml",this.date=new Date,this.validationProfile=s;try{this.mimetype==="application/fhir+json"?this.extractJsonInfo():this.extractXmlInfo()}catch(a){console.error("Error parsing resource to validate: ",a)}}getErrors(){if(this.result)return this.result.issues.filter(t=>t.severity==="error"||t.severity==="fatal").length}getWarnings(){if(this.result)return this.result.issues.filter(t=>t.severity==="warning").length}getInfos(){if(this.result)return this.result.issues.filter(t=>t.severity==="information").length}setOperationOutcome(t){this.result=Ut.fromOperationOutcome(t)}setAiRecommendation(t){this.aiRecommendation=t.text.div}extractJsonInfo(){let t=JSON.parse(this.resource);t?.resourceType&&(this.resourceType=t.resourceType,this.resourceId=t.id),t.meta?.profile&&this.extractedProfiles.push(...t.meta.profile)}extractXmlInfo(){let t=this.resource.indexOf("",e);if(e0&&(r=r.substring(0,s)),s=r.indexOf(":"),s>0&&(r=r.substring(s+1)),this.resourceType=r;let a=this.resource.indexOf("profile",i);if(a>0){let o=this.resource.indexOf('value="',a)+7,l=this.resource.indexOf('"',o);oi.valueString!==void 0).map(i=>i.valueString);this.formControl.setValue(e.join(` +`))}else this.formControl.setValue(t.extension[0].valueString)}},Gd=class{constructor(t,e){this.name=t,this.value=e}};var b0=class{};var Ke=function(n){return n[n.State=0]="State",n[n.Transition=1]="Transition",n[n.Sequence=2]="Sequence",n[n.Group=3]="Group",n[n.Animate=4]="Animate",n[n.Keyframes=5]="Keyframes",n[n.Style=6]="Style",n[n.Trigger=7]="Trigger",n[n.Reference=8]="Reference",n[n.AnimateChild=9]="AnimateChild",n[n.AnimateRef=10]="AnimateRef",n[n.Query=11]="Query",n[n.Stagger=12]="Stagger",n}(Ke||{}),jn="*";function bC(n,t){return{type:Ke.Trigger,name:n,definitions:t,options:{}}}function v0(n,t=null){return{type:Ke.Animate,styles:t,timings:n}}function LL(n,t=null){return{type:Ke.Sequence,steps:n,options:t}}function Ca(n){return{type:Ke.Style,styles:n,offset:null}}function Kd(n,t,e){return{type:Ke.State,name:n,styles:t,options:e}}function y0(n,t,e=null){return{type:Ke.Transition,expr:n,animation:t,options:e}}var Kr=class{_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_originalOnDoneFns=[];_originalOnStartFns=[];_started=!1;_destroyed=!1;_finished=!1;_position=0;parentPlayer=null;totalTime;constructor(t=0,e=0){this.totalTime=t+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(t){this._position=this.totalTime?t*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(t){let e=t=="start"?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}},bo=class{_onDoneFns=[];_onStartFns=[];_finished=!1;_started=!1;_destroyed=!1;_onDestroyFns=[];parentPlayer=null;totalTime=0;players;constructor(t){this.players=t;let e=0,i=0,r=0,s=this.players.length;s==0?queueMicrotask(()=>this._onFinish()):this.players.forEach(a=>{a.onDone(()=>{++e==s&&this._onFinish()}),a.onDestroy(()=>{++i==s&&this._onDestroy()}),a.onStart(()=>{++r==s&&this._onStart()})}),this.totalTime=this.players.reduce((a,o)=>Math.max(a,o.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this.players.forEach(t=>t.init())}onStart(t){this._onStartFns.push(t)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(t=>t()),this._onStartFns=[])}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(t=>t.play())}pause(){this.players.forEach(t=>t.pause())}restart(){this.players.forEach(t=>t.restart())}finish(){this._onFinish(),this.players.forEach(t=>t.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(t=>t.destroy()),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this.players.forEach(t=>t.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(t){let e=t*this.totalTime;this.players.forEach(i=>{let r=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(r)})}getPosition(){let t=this.players.reduce((e,i)=>e===null||i.totalTime>e.totalTime?i:e,null);return t!=null?t.getPosition():0}beforeDestroy(){this.players.forEach(t=>{t.beforeDestroy&&t.beforeDestroy()})}triggerCallback(t){let e=t=="start"?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}},cc="!";var OL=["toast-component",""];function kW(n,t){if(n&1){let e=ze();P(0,"button",5),X("click",function(){re(e);let r=Y();return se(r.remove())}),P(1,"span",6),B(2,"\xD7"),U()()}}function MW(n,t){if(n&1&&(qi(0),B(1),Gi()),n&2){let e=Y(2);$(),je("[",e.duplicatesCount+1,"]")}}function TW(n,t){if(n&1&&(P(0,"div"),B(1),oe(2,MW,2,1,"ng-container",4),U()),n&2){let e=Y();ft(e.options.titleClass),Se("aria-label",e.title),$(),je(" ",e.title," "),$(),j("ngIf",e.duplicatesCount)}}function EW(n,t){if(n&1&&te(0,"div",7),n&2){let e=Y();ft(e.options.messageClass),j("innerHTML",e.message,wc)}}function AW(n,t){if(n&1&&(P(0,"div",8),B(1),U()),n&2){let e=Y();ft(e.options.messageClass),Se("aria-label",e.message),$(),je(" ",e.message," ")}}function IW(n,t){if(n&1&&(P(0,"div"),te(1,"div",9),U()),n&2){let e=Y();$(),Jt("width",e.width()+"%")}}function DW(n,t){if(n&1){let e=ze();P(0,"button",5),X("click",function(){re(e);let r=Y();return se(r.remove())}),P(1,"span",6),B(2,"\xD7"),U()()}}function RW(n,t){if(n&1&&(qi(0),B(1),Gi()),n&2){let e=Y(2);$(),je("[",e.duplicatesCount+1,"]")}}function LW(n,t){if(n&1&&(P(0,"div"),B(1),oe(2,RW,2,1,"ng-container",4),U()),n&2){let e=Y();ft(e.options.titleClass),Se("aria-label",e.title),$(),je(" ",e.title," "),$(),j("ngIf",e.duplicatesCount)}}function OW(n,t){if(n&1&&te(0,"div",7),n&2){let e=Y();ft(e.options.messageClass),j("innerHTML",e.message,wc)}}function NW(n,t){if(n&1&&(P(0,"div",8),B(1),U()),n&2){let e=Y();ft(e.options.messageClass),Se("aria-label",e.message),$(),je(" ",e.message," ")}}function FW(n,t){if(n&1&&(P(0,"div"),te(1,"div",9),U()),n&2){let e=Y();$(),Jt("width",e.width()+"%")}}var vC=class{_attachedHost;component;viewContainerRef;injector;constructor(t,e){this.component=t,this.injector=e}attach(t,e){return this._attachedHost=t,t.attach(this,e)}detach(){let t=this._attachedHost;if(t)return this._attachedHost=void 0,t.detach()}get isAttached(){return this._attachedHost!=null}setAttachedHost(t){this._attachedHost=t}},yC=class{_attachedPortal;_disposeFn;attach(t,e){return this._attachedPortal=t,this.attachComponentPortal(t,e)}detach(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)}setDisposeFn(t){this._disposeFn=t}},CC=class{_overlayRef;componentInstance;duplicatesCount=0;_afterClosed=new ue;_activate=new ue;_manualClose=new ue;_resetTimeout=new ue;_countDuplicate=new ue;constructor(t){this._overlayRef=t}manualClose(){this._manualClose.next(),this._manualClose.complete()}manualClosed(){return this._manualClose.asObservable()}timeoutReset(){return this._resetTimeout.asObservable()}countDuplicate(){return this._countDuplicate.asObservable()}close(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()}afterClosed(){return this._afterClosed.asObservable()}isInactive(){return this._activate.isStopped}activate(){this._activate.next(),this._activate.complete()}afterActivate(){return this._activate.asObservable()}onDuplicate(t,e){t&&this._resetTimeout.next(),e&&this._countDuplicate.next(++this.duplicatesCount)}},uc=class{toastId;config;message;title;toastType;toastRef;_onTap=new ue;_onAction=new ue;constructor(t,e,i,r,s,a){this.toastId=t,this.config=e,this.message=i,this.title=r,this.toastType=s,this.toastRef=a,this.toastRef.afterClosed().subscribe(()=>{this._onAction.complete(),this._onTap.complete()})}triggerTap(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()}onTap(){return this._onTap.asObservable()}triggerAction(t){this._onAction.next(t)}onAction(){return this._onAction.asObservable()}},NL={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,includeTitleDuplicates:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing"},FL=new J("ToastConfig"),wC=class extends yC{_hostDomElement;_componentFactoryResolver;_appRef;constructor(t,e,i){super(),this._hostDomElement=t,this._componentFactoryResolver=e,this._appRef=i}attachComponentPortal(t,e){let i=this._componentFactoryResolver.resolveComponentFactory(t.component),r;return r=i.create(t.injector),this._appRef.attachView(r.hostView),this.setDisposeFn(()=>{this._appRef.detachView(r.hostView),r.destroy()}),e?this._hostDomElement.insertBefore(this._getComponentRootNode(r),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(r)),r}_getComponentRootNode(t){return t.hostView.rootNodes[0]}},PW=(()=>{class n{_document=R(Ze);_containerElement;ngOnDestroy(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){let e=this._document.createElement("div");e.classList.add("overlay-container"),e.setAttribute("aria-live","polite"),this._document.body.appendChild(e),this._containerElement=e}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),xC=class{_portalHost;constructor(t){this._portalHost=t}attach(t,e=!0){return this._portalHost.attach(t,e)}detach(){return this._portalHost.detach()}},UW=(()=>{class n{_overlayContainer=R(PW);_componentFactoryResolver=R(Mw);_appRef=R(Gn);_document=R(Ze);_paneElements=new Map;create(e,i){return this._createOverlayRef(this.getPaneElement(e,i))}getPaneElement(e="",i){return this._paneElements.get(i)||this._paneElements.set(i,{}),this._paneElements.get(i)[e]||(this._paneElements.get(i)[e]=this._createPaneElement(e,i)),this._paneElements.get(i)[e]}_createPaneElement(e,i){let r=this._document.createElement("div");return r.id="toast-container",r.classList.add(e),r.classList.add("toast-container"),i?i.getContainerElement().appendChild(r):this._overlayContainer.getContainerElement().appendChild(r),r}_createPortalHost(e){return new wC(e,this._componentFactoryResolver,this._appRef)}_createOverlayRef(e){return new xC(this._createPortalHost(e))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),C0=(()=>{class n{overlay;_injector;sanitizer;ngZone;toastrConfig;currentlyActive=0;toasts=[];overlayContainer;previousToastMessage;index=0;constructor(e,i,r,s,a){this.overlay=i,this._injector=r,this.sanitizer=s,this.ngZone=a,this.toastrConfig=H(H({},e.default),e.config),e.config.iconClasses&&(this.toastrConfig.iconClasses=H(H({},e.default.iconClasses),e.config.iconClasses))}show(e,i,r={},s=""){return this._preBuildNotification(s,e,i,this.applyConfig(r))}success(e,i,r={}){let s=this.toastrConfig.iconClasses.success||"";return this._preBuildNotification(s,e,i,this.applyConfig(r))}error(e,i,r={}){let s=this.toastrConfig.iconClasses.error||"";return this._preBuildNotification(s,e,i,this.applyConfig(r))}info(e,i,r={}){let s=this.toastrConfig.iconClasses.info||"";return this._preBuildNotification(s,e,i,this.applyConfig(r))}warning(e,i,r={}){let s=this.toastrConfig.iconClasses.warning||"";return this._preBuildNotification(s,e,i,this.applyConfig(r))}clear(e){for(let i of this.toasts)if(e!==void 0){if(i.toastId===e){i.toastRef.manualClose();return}}else i.toastRef.manualClose()}remove(e){let i=this._findToast(e);if(!i||(i.activeToast.toastRef.close(),this.toasts.splice(i.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length))return!1;if(this.currentlyActivethis._buildNotification(e,i,r,s)):this._buildNotification(e,i,r,s)}_buildNotification(e,i,r,s){if(!s.toastComponent)throw new Error("toastComponent required");let a=this.findDuplicate(r,i,this.toastrConfig.resetTimeoutOnDuplicate&&s.timeOut>0,this.toastrConfig.countDuplicates);if((this.toastrConfig.includeTitleDuplicates&&r||i)&&this.toastrConfig.preventDuplicates&&a!==null)return a;this.previousToastMessage=i;let o=!1;this.toastrConfig.maxOpened&&this.currentlyActive>=this.toastrConfig.maxOpened&&(o=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));let l=this.overlay.create(s.positionClass,this.overlayContainer);this.index=this.index+1;let c=i;i&&s.enableHtml&&(c=this.sanitizer.sanitize(pr.HTML,i));let u=new CC(l),d=new uc(this.index,s,c,r,e,u),h=[{provide:uc,useValue:d}],m=ut.create({providers:h,parent:this._injector}),f=new vC(s.toastComponent,m),p=l.attach(f,s.newestOnTop);u.componentInstance=p.instance;let g={toastId:this.index,title:r||"",message:i||"",toastRef:u,onShown:u.afterActivate(),onHidden:u.afterClosed(),onTap:d.onTap(),onAction:d.onAction(),portal:p};return o||(this.currentlyActive=this.currentlyActive+1,setTimeout(()=>{g.toastRef.activate()})),this.toasts.push(g),g}static \u0275fac=function(i){return new(i||n)(Re(FL),Re(UW),Re(ut),Re(Hs),Re(De))};static \u0275prov=ee({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),$W=(()=>{class n{toastrService;toastPackage;ngZone;message;title;options;duplicatesCount;originalTimeout;width=Di(-1);toastClasses="";state;get _state(){return this.state()}get displayStyle(){if(this.state().value==="inactive")return"none"}timeout;intervalId;hideTime;sub;sub1;sub2;sub3;constructor(e,i,r){this.toastrService=e,this.toastPackage=i,this.ngZone=r,this.message=i.message,this.title=i.title,this.options=i.config,this.originalTimeout=i.config.timeOut,this.toastClasses=`${i.toastType} ${i.config.toastClass}`,this.sub=i.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=i.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=i.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=i.toastRef.countDuplicate().subscribe(s=>{this.duplicatesCount=s}),this.state=Di({value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}})}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state.update(e=>Le(H({},e),{value:"active"})),!(this.options.disableTimeOut===!0||this.options.disableTimeOut==="timeOut")&&this.options.timeOut&&(this.outsideTimeout(()=>this.remove(),this.options.timeOut),this.hideTime=new Date().getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}updateProgress(){if(this.width()===0||this.width()===100||!this.options.timeOut)return;let e=new Date().getTime(),i=this.hideTime-e;this.width.set(i/this.options.timeOut*100),this.options.progressAnimation==="increasing"&&this.width.update(r=>100-r),this.width()<=0&&this.width.set(0),this.width()>=100&&this.width.set(100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state.update(e=>Le(H({},e),{value:"active"})),this.outsideTimeout(()=>this.remove(),this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=new Date().getTime()+(this.options.timeOut||0),this.width.set(-1),this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10)}remove(){this.state().value!=="removed"&&(clearTimeout(this.timeout),this.state.update(e=>Le(H({},e),{value:"removed"})),this.outsideTimeout(()=>this.toastrService.remove(this.toastPackage.toastId),+this.toastPackage.config.easeTime))}tapToast(){this.state().value!=="removed"&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){this.state().value!=="removed"&&this.options.disableTimeOut!=="extendedTimeOut"&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width.set(0))}delayedHideToast(){this.options.disableTimeOut===!0||this.options.disableTimeOut==="extendedTimeOut"||this.options.extendedTimeOut===0||this.state().value==="removed"||(this.outsideTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=new Date().getTime()+(this.options.timeOut||0),this.width.set(-1),this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}outsideTimeout(e,i){this.ngZone?this.ngZone.runOutsideAngular(()=>this.timeout=setTimeout(()=>this.runInsideAngular(e),i)):this.timeout=setTimeout(()=>e(),i)}outsideInterval(e,i){this.ngZone?this.ngZone.runOutsideAngular(()=>this.intervalId=setInterval(()=>this.runInsideAngular(e),i)):this.intervalId=setInterval(()=>e(),i)}runInsideAngular(e){this.ngZone?this.ngZone.run(()=>e()):e()}static \u0275fac=function(i){return new(i||n)(Ae(C0),Ae(uc),Ae(De))};static \u0275cmp=le({type:n,selectors:[["","toast-component",""]],hostVars:5,hostBindings:function(i,r){i&1&&X("click",function(){return r.tapToast()})("mouseenter",function(){return r.stickAround()})("mouseleave",function(){return r.delayedHideToast()}),i&2&&(Dw("@flyInOut",r._state),ft(r.toastClasses),Jt("display",r.displayStyle))},attrs:OL,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(i,r){i&1&&oe(0,kW,3,0,"button",0)(1,TW,3,5,"div",1)(2,EW,1,3,"div",2)(3,AW,2,4,"div",3)(4,IW,2,2,"div",4),i&2&&(j("ngIf",r.options.closeButton),$(),j("ngIf",r.title),$(),j("ngIf",r.message&&r.options.enableHtml),$(),j("ngIf",r.message&&!r.options.enableHtml),$(),j("ngIf",r.options.progressBar))},dependencies:[di],encapsulation:2,data:{animation:[bC("flyInOut",[Kd("inactive",Ca({opacity:0})),Kd("active",Ca({opacity:1})),Kd("removed",Ca({opacity:0})),y0("inactive => active",v0("{{ easeTime }}ms {{ easing }}")),y0("active => removed",v0("{{ easeTime }}ms {{ easing }}"))])]},changeDetection:0})}return n})(),VW=Le(H({},NL),{toastComponent:$W}),BW=(n={})=>Sa([{provide:FL,useValue:{default:VW,config:n}}]),PL=(()=>{class n{static forRoot(e={}){return{ngModule:n,providers:[BW(e)]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({})}return n})();var zW=(()=>{class n{toastrService;toastPackage;appRef;message;title;options;duplicatesCount;originalTimeout;width=Di(-1);toastClasses="";get displayStyle(){return this.state()==="inactive"?"none":null}state=Di("inactive");timeout;intervalId;hideTime;sub;sub1;sub2;sub3;constructor(e,i,r){this.toastrService=e,this.toastPackage=i,this.appRef=r,this.message=i.message,this.title=i.title,this.options=i.config,this.originalTimeout=i.config.timeOut,this.toastClasses=`${i.toastType} ${i.config.toastClass}`,this.sub=i.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=i.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=i.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=i.toastRef.countDuplicate().subscribe(s=>{this.duplicatesCount=s})}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state.set("active"),!(this.options.disableTimeOut===!0||this.options.disableTimeOut==="timeOut")&&this.options.timeOut&&(this.timeout=setTimeout(()=>{this.remove()},this.options.timeOut),this.hideTime=new Date().getTime()+this.options.timeOut,this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10))),this.options.onActivateTick&&this.appRef.tick()}updateProgress(){if(this.width()===0||this.width()===100||!this.options.timeOut)return;let e=new Date().getTime(),i=this.hideTime-e;this.width.set(i/this.options.timeOut*100),this.options.progressAnimation==="increasing"&&this.width.update(r=>100-r),this.width()<=0&&this.width.set(0),this.width()>=100&&this.width.set(100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state.set("active"),this.options.timeOut=this.originalTimeout,this.timeout=setTimeout(()=>this.remove(),this.originalTimeout),this.hideTime=new Date().getTime()+(this.originalTimeout||0),this.width.set(-1),this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10))}remove(){this.state()!=="removed"&&(clearTimeout(this.timeout),this.state.set("removed"),this.timeout=setTimeout(()=>this.toastrService.remove(this.toastPackage.toastId)))}tapToast(){this.state()!=="removed"&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){this.state()!=="removed"&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width.set(0))}delayedHideToast(){this.options.disableTimeOut===!0||this.options.disableTimeOut==="extendedTimeOut"||this.options.extendedTimeOut===0||this.state()==="removed"||(this.timeout=setTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=new Date().getTime()+(this.options.timeOut||0),this.width.set(-1),this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10)))}static \u0275fac=function(i){return new(i||n)(Ae(C0),Ae(uc),Ae(Gn))};static \u0275cmp=le({type:n,selectors:[["","toast-component",""]],hostVars:4,hostBindings:function(i,r){i&1&&X("click",function(){return r.tapToast()})("mouseenter",function(){return r.stickAround()})("mouseleave",function(){return r.delayedHideToast()}),i&2&&(ft(r.toastClasses),Jt("display",r.displayStyle))},attrs:OL,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(i,r){i&1&&oe(0,DW,3,0,"button",0)(1,LW,3,5,"div",1)(2,OW,1,3,"div",2)(3,NW,2,4,"div",3)(4,FW,2,2,"div",4),i&2&&(j("ngIf",r.options.closeButton),$(),j("ngIf",r.title),$(),j("ngIf",r.message&&r.options.enableHtml),$(),j("ngIf",r.message&&!r.options.enableHtml),$(),j("ngIf",r.options.progressBar))},dependencies:[di],encapsulation:2,changeDetection:0})}return n})(),Ehe=Le(H({},NL),{toastComponent:zW});var w0=class{constructor(t,e){this.editor=t,this.indentSpace=e,this.editor.setReadOnly(!0),this.editor.setTheme("ace/theme/textmate"),this.editor.commands.removeCommand("find"),this.editor.setOptions({tabSize:this.indentSpace,wrap:!0,useWorker:!1,useSvgGutterIcons:!1})}clearAnnotations(){this.editor.session.clearAnnotations()}setAnnotations(t){let e=t.filter(i=>i.line).map(i=>{let r;switch(i.severity){case"fatal":case"error":r="error";break;case"warning":r="warning";break;case"information":r="info";break}return{row:i.line-1,column:i.col,text:i.text,type:r}});this.editor.session.setAnnotations(e)}updateEditorIssues(t){this.clearAnnotations(),t?.result&&this.setAnnotations(t.result.issues)}scrollToIssueLocation(t){this.editor.gotoLine(t.line,t.col,!0),this.editor.scrollToLine(t.line,!1,!0,()=>{})}clearContent(){this.editor.setValue("",-1)}updateCodeEditorContent(t,e){if(!t){this.clearContent(),this.clearAnnotations();return}e==dc.RESOURCE_CONTENT?(this.editor.setValue(t.resource,-1),t.mimetype==="application/fhir+json"?this.editor.getSession().setMode("ace/mode/json"):t.mimetype==="application/fhir+xml"&&this.editor.getSession().setMode("ace/mode/xml"),this.updateEditorIssues(t)):(t.result!==void 0&&"operationOutcome"in t.result?(this.editor.setValue(JSON.stringify(t.result.operationOutcome,null,this.indentSpace),-1),this.editor.getSession().setMode("ace/mode/json")):this.clearContent(),this.clearAnnotations())}};var HL="3.7.8",jW=HL,mc=typeof Buffer=="function",UL=typeof TextDecoder=="function"?new TextDecoder:void 0,$L=typeof TextEncoder=="function"?new TextEncoder:void 0,WW="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Yd=Array.prototype.slice.call(WW),x0=(n=>{let t={};return n.forEach((e,i)=>t[e]=i),t})(Yd),qW=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,vi=String.fromCharCode.bind(String),VL=typeof Uint8Array.from=="function"?Uint8Array.from.bind(Uint8Array):n=>new Uint8Array(Array.prototype.slice.call(n,0)),jL=n=>n.replace(/=/g,"").replace(/[+\/]/g,t=>t=="+"?"-":"_"),WL=n=>n.replace(/[^A-Za-z0-9\+\/]/g,""),qL=n=>{let t,e,i,r,s="",a=n.length%3;for(let o=0;o255||(i=n.charCodeAt(o++))>255||(r=n.charCodeAt(o++))>255)throw new TypeError("invalid character found");t=e<<16|i<<8|r,s+=Yd[t>>18&63]+Yd[t>>12&63]+Yd[t>>6&63]+Yd[t&63]}return a?s.slice(0,a-3)+"===".substring(a):s},MC=typeof btoa=="function"?n=>btoa(n):mc?n=>Buffer.from(n,"binary").toString("base64"):qL,SC=mc?n=>Buffer.from(n).toString("base64"):n=>{let e=[];for(let i=0,r=n.length;it?jL(SC(n)):SC(n),GW=n=>{if(n.length<2){var t=n.charCodeAt(0);return t<128?n:t<2048?vi(192|t>>>6)+vi(128|t&63):vi(224|t>>>12&15)+vi(128|t>>>6&63)+vi(128|t&63)}else{var t=65536+(n.charCodeAt(0)-55296)*1024+(n.charCodeAt(1)-56320);return vi(240|t>>>18&7)+vi(128|t>>>12&63)+vi(128|t>>>6&63)+vi(128|t&63)}},KW=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,GL=n=>n.replace(KW,GW),BL=mc?n=>Buffer.from(n,"utf8").toString("base64"):$L?n=>SC($L.encode(n)):n=>MC(GL(n)),hc=(n,t=!1)=>t?jL(BL(n)):BL(n),zL=n=>hc(n,!0),YW=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,QW=n=>{switch(n.length){case 4:var t=(7&n.charCodeAt(0))<<18|(63&n.charCodeAt(1))<<12|(63&n.charCodeAt(2))<<6|63&n.charCodeAt(3),e=t-65536;return vi((e>>>10)+55296)+vi((e&1023)+56320);case 3:return vi((15&n.charCodeAt(0))<<12|(63&n.charCodeAt(1))<<6|63&n.charCodeAt(2));default:return vi((31&n.charCodeAt(0))<<6|63&n.charCodeAt(1))}},KL=n=>n.replace(YW,QW),YL=n=>{if(n=n.replace(/\s+/g,""),!qW.test(n))throw new TypeError("malformed base64.");n+="==".slice(2-(n.length&3));let t,e,i,r=[];for(let s=0;s>16&255)):i===64?r.push(vi(t>>16&255,t>>8&255)):r.push(vi(t>>16&255,t>>8&255,t&255));return r.join("")},TC=typeof atob=="function"?n=>atob(WL(n)):mc?n=>Buffer.from(n,"base64").toString("binary"):YL,QL=mc?n=>VL(Buffer.from(n,"base64")):n=>VL(TC(n).split("").map(t=>t.charCodeAt(0))),ZL=n=>QL(XL(n)),ZW=mc?n=>Buffer.from(n,"base64").toString("utf8"):UL?n=>UL.decode(QL(n)):n=>KL(TC(n)),XL=n=>WL(n.replace(/[-_]/g,t=>t=="-"?"+":"/")),kC=n=>ZW(XL(n)),XW=n=>{if(typeof n!="string")return!1;let t=n.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t)},JL=n=>({value:n,enumerable:!1,writable:!0,configurable:!0}),eO=function(){let n=(t,e)=>Object.defineProperty(String.prototype,t,JL(e));n("fromBase64",function(){return kC(this)}),n("toBase64",function(t){return hc(this,t)}),n("toBase64URI",function(){return hc(this,!0)}),n("toBase64URL",function(){return hc(this,!0)}),n("toUint8Array",function(){return ZL(this)})},tO=function(){let n=(t,e)=>Object.defineProperty(Uint8Array.prototype,t,JL(e));n("toBase64",function(t){return S0(this,t)}),n("toBase64URI",function(){return S0(this,!0)}),n("toBase64URL",function(){return S0(this,!0)})},JW=()=>{eO(),tO()},EC={version:HL,VERSION:jW,atob:TC,atobPolyfill:YL,btoa:MC,btoaPolyfill:qL,fromBase64:kC,toBase64:hc,encode:hc,encodeURI:zL,encodeURL:zL,utob:GL,btou:KL,decode:kC,isValid:XW,fromUint8Array:S0,toUint8Array:ZL,extendString:eO,extendUint8Array:tO,extendBuiltins:JW};var iO=(()=>{class n{transform(e,...i){return e.sort((r,s)=>r.param.type==s.param.type?r.param.name.localeCompare(s.param.name):r.param.type.localeCompare(s.param.type)),console.log(e.map(r=>`${r.param.type} ${r.param.name}`)),e}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275pipe=mh({name:"sortSettings",type:n,pure:!0})}}return n})();var nO=n=>({active:n}),tq=n=>({selected:n});function iq(n,t){if(n&1&&(qi(0),P(1,"span"),B(2),U(),B(3," (from "),P(4,"em"),B(5),U(),B(6,") "),Gi()),n&2){let e=Y(2);$(2),He(e.currentResource.resourceType),$(3),He(e.currentResource.filename)}}function nq(n,t){n&1&&(P(0,"em"),B(1,"none"),U())}function rq(n,t){if(n&1&&(P(0,"mat-select-trigger")(1,"span",27)(2,"span",28),B(3),U(),P(4,"span",29),B(5),U()(),P(6,"span",30)(7,"span",31),B(8),U()()()),n&2){let e=t.ngIf;$(3),Lo("",e.igId,"#",e.igVersion,""),$(),j("title",e.title),$(),He(e.title),$(3),He(e.canonical)}}function sq(n,t){if(n&1&&(P(0,"mat-option",21)(1,"span",27)(2,"span",28),B(3),U(),P(4,"span",29),B(5),U()(),P(6,"span",30)(7,"span",31),B(8),U()()()),n&2){let e=t.$implicit;j("value",e.canonical),$(3),Lo("",e.igId,"#",e.igVersion,""),$(),j("title",e.title),$(),He(e.title),$(3),He(e.canonical)}}function aq(n,t){n&1&&(P(0,"mat-error"),B(1,"Please choose a profile"),U())}function oq(n,t){if(n&1&&(P(0,"mat-option",21),B(1),U()),n&2){let e=t.$implicit;j("value",e),$(),je(" ",e," ")}}function lq(n,t){if(n&1){let e=ze();P(0,"span",32)(1,"mat-icon",33),X("click",function(){re(e);let r=Y(2);return se(r.profileLocked=!r.profileLocked)}),B(2,"lock_open"),U(),P(3,"span",34),B(4,"profile unlocked"),U()()}}function cq(n,t){if(n&1){let e=ze();P(0,"span",35)(1,"mat-icon",36),X("click",function(){re(e);let r=Y(2);return se(r.profileLocked=!r.profileLocked)}),B(2,"lock_close"),U(),P(3,"span",37),B(4,"profile locked"),U()()}}function uq(n,t){if(n&1){let e=ze();P(0,"button",25),X("click",function(){re(e);let r=Y(2);return se(r.onAiAnalyzeButtonClick())}),B(1,"Analyze Operation Outcome with AI"),U()}}function dq(n,t){if(n&1){let e=ze();qi(0),P(1,"app-upload",14),X("addFiles",function(r){re(e);let s=Y();return se(s.onFileSelected(r))}),U(),P(2,"p",15),B(3," Current resource loaded: "),oe(4,iq,7,2,"ng-container",3)(5,nq,2,0,"em",3),U(),P(6,"div",16)(7,"mat-form-field")(8,"mat-label"),B(9,"Validation profile (required)"),U(),P(10,"mat-select",17),Vs("ngModelChange",function(r){re(e);let s=Y();return $s(s.selectedProfile,r)||(s.selectedProfile=r),se(r)}),oe(11,rq,9,5,"mat-select-trigger",3),P(12,"mat-option")(13,"ngx-mat-select-search",18),Vs("ngModelChange",function(r){re(e);let s=Y();return $s(s.profileFilter,r)||(s.profileFilter=r),se(r)}),X("ngModelChange",function(){re(e);let r=Y();return se(r.updateProfileFilter())}),U()(),oe(14,sq,9,6,"mat-option",19),U(),oe(15,aq,2,0,"mat-error",3),P(16,"mat-hint"),B(17,"A profile is required to validate against."),U()()(),P(18,"div",16)(19,"mat-form-field")(20,"mat-label"),B(21,"Validation IG"),U(),P(22,"mat-select",20),Vs("ngModelChange",function(r){re(e);let s=Y();return $s(s.selectedIg,r)||(s.selectedIg=r),se(r)}),P(23,"mat-option",21)(24,"em"),B(25,"Automatic selection"),U()(),oe(26,oq,2,2,"mat-option",19),U(),P(27,"mat-hint"),B(28,"A specific IG version may be specified."),U()()(),P(29,"div",22),oe(30,lq,5,0,"span",23)(31,cq,5,0,"span",24),P(32,"button",25),X("click",function(){re(e);let r=Y();return se(r.onValidationButtonClick())}),B(33,"Validate"),U(),oe(34,uq,2,0,"button",26),U(),Gi()}if(n&2){let e=Y();$(4),j("ngIf",e.currentResource),$(),j("ngIf",!e.currentResource),$(5),Us("ngModel",e.selectedProfile),$(),j("ngIf",e.supportedProfiles.get(e.selectedProfile)),$(2),Us("ngModel",e.profileFilter),$(),j("ngForOf",e.filteredProfiles),$(),j("ngIf",e.profileControl.hasError("required")),$(7),Us("ngModel",e.selectedIg),$(),j("value",e.AUTO_IG_SELECTION),$(3),j("ngForOf",e.installedIgs),$(4),j("ngIf",!e.profileLocked),$(),j("ngIf",e.profileLocked),$(3),j("ngIf",e.showAIAnalyzeButton)}}function hq(n,t){if(n&1&&(P(0,"mat-form-field",41)(1,"mat-label"),B(2),U(),te(3,"input",42),U()),n&2){let e=Y().$implicit;$(2),He(e.param.name),$(),j("formControl",e.formControl)}}function mq(n,t){if(n&1&&(P(0,"mat-form-field",41)(1,"mat-label"),B(2),U(),te(3,"textarea",43),U()),n&2){let e=Y().$implicit;$(2),He(e.param.name),$(),j("formControl",e.formControl)}}function fq(n,t){if(n&1&&(P(0,"mat-checkbox",44),B(1),U()),n&2){let e=Y().$implicit;j("formControl",e.formControl),$(),je(" ",e.param.name," ")}}function pq(n,t){if(n&1&&(P(0,"div",16),oe(1,hq,4,2,"mat-form-field",39)(2,mq,4,2,"mat-form-field",39)(3,fq,2,2,"mat-checkbox",40),U()),n&2){let e=t.$implicit;$(),j("ngIf",e.param.type==="string"&&e.param.max==="1"),$(),j("ngIf",e.param.type==="string"&&e.param.max==="*"),$(),j("ngIf",e.param.type==="boolean")}}function gq(n,t){if(n&1&&(qi(0),oe(1,pq,4,3,"div",38),En(2,"sortSettings"),Gi()),n&2){let e=Y();$(),j("ngForOf",Kn(2,1,e.Array.from(e.validatorSettings.values())))}}function _q(n,t){n&1&&te(0,"mat-spinner",52)}function bq(n,t){if(n&1&&(qi(0),P(1,"mat-icon",53),B(2,"error"),U(),B(3),te(4,"br"),P(5,"mat-icon",54),B(6,"warning"),U(),B(7),te(8,"br"),P(9,"mat-icon",55),B(10,"info"),U(),B(11),Gi()),n&2){let e=Y().$implicit;$(3),je(" ",e.result?e.getErrors():"-",""),$(4),je(" ",e.result?e.getWarnings():"-",""),$(4),je(" ",e.result?e.getInfos():"-"," ")}}function vq(n,t){if(n&1){let e=ze();P(0,"tr",45),X("click",function(){let r=re(e).$implicit,s=Y();return se(s.show(r))}),P(1,"td",46),B(2),te(3,"br"),P(4,"time"),B(5),En(6,"date"),U(),te(7,"at"),U(),P(8,"td",46),B(9),te(10,"br"),B(11),U(),P(12,"td",47),oe(13,_q,1,0,"mat-spinner",11)(14,bq,12,3,"ng-container",3),U(),P(15,"td",48)(16,"mat-icon",49),X("click",function(){let r=re(e).$implicit,s=Y();return se(s.removeEntryFromHistory(r))}),B(17,"delete"),U(),P(18,"a",50),X("click",function(r){let s=re(e).$implicit,a=Y();return se(a.copyDirectLink(r,s))}),P(19,"mat-icon",51),B(20,"content_copy"),U()()()()}if(n&2){let e=t.$implicit,i=Y();j("ngClass",Oo(11,tq,e===i.selectedEntry)),$(2),je(" ",e.filename,""),$(3),He(Pw(6,8,e.date,"HH:mm:ss")),$(4),je(" ",e.validationProfile,""),$(2),je(" ",e.ig," "),$(2),j("ngIf",e.loading),$(),j("ngIf",!e.loading),$(4),j("href",i.getDirectLink(e),Sw)}}function yq(n,t){if(n&1&&(P(0,"dl")(1,"dt"),B(2,"Filename"),U(),P(3,"dd"),B(4),U(),P(5,"dt"),B(6,"Profile"),U(),P(7,"dd"),B(8),U(),P(9,"dt"),B(10,"IG"),U(),P(11,"dd"),B(12),U()()),n&2){let e=Y();$(4),He(e.selectedEntry.filename),$(4),He(e.selectedEntry.validationProfile),$(4),He(e.selectedEntry.ig)}}function Cq(n,t){if(n&1){let e=ze();P(0,"app-operation-result",56),X("select",function(r){re(e);let s=Y();return se(s.scrollToIssueLocation(r))}),U()}if(n&2){let e=Y();j("operationResult",e.selectedEntry.result)}}function wq(n,t){n&1&&te(0,"mat-spinner",52)}var xq=2,aO=(()=>{class n{constructor(e,i,r){this.cd=i,this.toastr=r,this.AUTO_IG_SELECTION="AUTOMATIC",this.CodeEditorContent=dc,this.Array=Array,this.validationEntries=[],this.selectedEntry=null,this.installedIgs=new Set,this.supportedProfiles=new Map,this.validatorSettings=new Map,this.filteredProfiles=new Set,this.profileFilter="",this.selectedIg=this.AUTO_IG_SELECTION,this.profileControl=new Rr(null,_n.required),this.profileLocked=!1,this.editorContent=dc.RESOURCE_CONTENT,this.showSettings=!1,this.currentResource=null,this.showAIAnalyzeButton=!1,this.client=e.getFhirClient();let s=this.client.read({resourceType:"OperationDefinition",id:"-s-validate"}),a=this.client.search({resourceType:"ImplementationGuide",searchParams:{_sort:"title",_count:1e3}});Promise.all([s,a]).then(o=>{this.analyzeValidateOperationDefinition(o[0]),o[1].entry?.map(l=>l.resource).map(l=>`${l.packageId}#${l.version}`).sort().forEach(l=>this.installedIgs.add(l))}).catch(o=>{this.showErrorToast("Network error",o.message),console.error(o)})}ngAfterViewInit(){this.editor=new w0(sO.default.edit("editor"),xq),this.analyzeUrlForValidation().then()}onFileSelected(e){if(e.name.endsWith(".tgz")){try{this.validateExamplesInPackage(e.blob)}catch(i){this.showErrorToast("Unexpected error",i.message),console.error(i)}return}try{this.selectedIg=this.AUTO_IG_SELECTION;let i=new FileReader;i.readAsText(e.blob),i.onload=()=>{this.cd.markForCheck(),this.validateResource(e.blob.name,i.result,e.contentType,!this.profileLocked)}}catch(i){this.showErrorToast("Unexpected error",i.message),console.error(i)}}validateResource(e,i,r,s){let a;try{if(a=new _o(e,i,r,this.getCurrentValidationSettings()),this.currentResource=new k0(e,r,i,a.resourceType),s){var o=!1;for(let l of a.extractedProfiles)if(this.supportedProfiles.has(l)){this.selectedProfile=l,o=!0;break}o||(this.selectedProfile="http://hl7.org/fhir/StructureDefinition/"+a.resourceType)}a.validationProfile=this.selectedProfile,a.validationProfile?(this.validationEntries.unshift(a),this.show(a),this.runValidation(a)):this.showWarnToast("No profile selected","Please select a profile for validation")}catch(l){this.showErrorToast("Error parsing the file",l.message),console.error(l),a&&(a.result=Ut.fromMatchboxError("Error while processing the resource for validation: "+l.message));return}}validateExamplesInPackage(e){this.selectedProfile=null,this.selectedIg=this.AUTO_IG_SELECTION;let i=new FileReader;i.readAsArrayBuffer(e),i.onload=()=>{if(this.package=i.result,this.cd.markForCheck(),this.package!=null){let r=IL.inflate(new Uint8Array(this.package)),s=new Array,a=this;(0,rO.default)(r.buffer).then(o=>{s.forEach(l=>{a.validationEntries.unshift(l),a.runValidation(l)})},o=>{this.showErrorToast("Unexpected error",o),console.error(o)},o=>{if(o.name?.indexOf("package.json")>=0,o.name?.indexOf("example")>=0&&o.name?.indexOf(".index.json")==-1){let l=o.name;l.startsWith("package/example/")&&(l=l.substring(16)),l.startsWith("example/")&&(l=l.substring(8));let c=new TextDecoder("utf-8"),u=new _o(l,c.decode(o.buffer),"application/fhir+json",this.getCurrentValidationSettings());s.push(u)}})}}}clearAllEntries(){this.selectedProfile=null,this.selectedIg=this.AUTO_IG_SELECTION,this.show(void 0),this.validationEntries.splice(0,this.validationEntries.length)}runValidation(e){if(this.selectedProfile!=null&&!this.profileLocked&&(e.extractedProfiles.includes(this.selectedProfile)||e.extractedProfiles.push(this.selectedProfile),e.validationProfile=this.selectedProfile),this.selectedIg!=this.AUTO_IG_SELECTION&&(this.selectedIg.endsWith(" (last)")?e.ig=this.selectedIg.substring(0,this.selectedIg.length-7):e.ig=this.selectedIg),!e.validationProfile){this.showErrorToast("Validation failed","No profile was selected"),console.error("No profile selected, won't run validation");return}let i=new URLSearchParams;i.set("profile",e.validationProfile),e.ig&&i.set("ig",e.ig);for(let r of e.validationParameters)i.append(r.name,r.value);e.loading=!0,this.client.operation({name:"validate?"+i.toString(),resourceType:void 0,input:e.resource,options:{headers:{accept:"application/fhir+json","content-type":e.mimetype}}}).then(r=>{e.loading=!1,e.setOperationOutcome(r),e===this.selectedEntry&&this.editor.updateCodeEditorContent(this.selectedEntry,this.editorContent)}).catch(r=>{console.error(r),e.loading=!1,r?.response?.data?.resourceType==="OperationOutcome"?(e.setOperationOutcome(r?.response?.data),e===this.selectedEntry&&this.editor.updateCodeEditorContent(this.selectedEntry,this.editorContent)):"message"in r?(this.showErrorToast("Unexpected error",r.message),e.result=Ut.fromMatchboxError("Error while sending the validation request: "+r.message),console.error(r)):(this.showErrorToast("Unknown error","Unknown error while sending the validation request"),e.result=Ut.fromMatchboxError("Unknown error while sending the validation request"),console.error(r))})}show(e){this.selectedEntry=e,this.editor.updateCodeEditorContent(this.selectedEntry,this.editorContent),e!=null&&(this.currentResource=new k0(e.filename,e.mimetype,e.resource,e.resourceType))}removeEntryFromHistory(e){e===this.selectedEntry&&this.show(null);let i=this.validationEntries.indexOf(e);this.validationEntries.splice(i,1)}onValidationButtonClick(){let e=new _o(this.currentResource.filename,this.currentResource.content,this.currentResource.contentType,this.getCurrentValidationSettings(),this.selectedProfile);this.selectedIg!=this.AUTO_IG_SELECTION&&(e.ig=this.selectedIg),this.validationEntries.unshift(e),this.show(e),this.runValidation(e)}onAiAnalyzeButtonClick(){let e={name:"analyzeOutcomeWithAI",value:"true"},i=this.getCurrentValidationSettings();i.push(e);let r=new _o(this.currentResource.filename,this.currentResource.content,this.currentResource.contentType,i,this.selectedProfile);this.selectedIg!=this.AUTO_IG_SELECTION&&(r.ig=this.selectedIg),this.validationEntries.unshift(r),this.show(r),this.runValidation(r)}toggleSettings(){this.showSettings=!this.showSettings}scrollToIssueLocation(e){e.line&&this.editorContent==dc.RESOURCE_CONTENT&&this.editor.scrollToIssueLocation(e)}updateProfileFilter(){let e=this.profileFilter.toLowerCase();this.filteredProfiles=new Set([...this.supportedProfiles.values()].filter(i=>i.title.toLocaleLowerCase().includes(e)||i.canonical.toLocaleLowerCase().includes(e)).values())}getDirectLink(e){let i=new URL(document.location.href);i.searchParams.forEach(s=>{i.searchParams.delete(s)});let r=new URLSearchParams;r.set("resource",EC.encodeURI(e.resource)),r.set("profile",e.validationProfile),e.ig&&r.set("ig",e.ig);for(let s of e.validationParameters)r.set(s.name,s.value);return i.hash=r.toString(),i.toString()}copyDirectLink(e,i){if("clipboard"in navigator){e.preventDefault();let r=this.getDirectLink(i);navigator.clipboard.writeText(r).then(()=>{})}}getExtensionStringValue(e,i){return this.getExtension(e,i)?.valueString??""}getExtensionBoolValue(e,i){return this.getExtension(e,i)?.valueBoolean??!1}getExtension(e,i){for(let r=0;r0)if(r.param.type==="string"&&r.param.max==="*"){let o=r.formControl.value.toString().split(` +`).filter(l=>l.trim().length>0);for(let l of o)e.push(new Gd(r.param.name,l.trim()))}else e.push(new Gd(r.param.name,r.formControl.value.toString()));return e}showErrorToast(e,i){this.toastr.error(i,e,{closeButton:!0,timeOut:5e3})}showWarnToast(e,i){this.toastr.warning(i,e,{closeButton:!0,timeOut:5e3})}analyzeValidateOperationDefinition(e){e.parameter?.forEach(i=>{i.name=="profile"&&(i._targetProfile?.forEach(r=>{let s=new b0;s.canonical=this.getExtensionStringValue(r,"sd-canonical"),s.title=this.getExtensionStringValue(r,"sd-title"),s.igId=this.getExtensionStringValue(r,"ig-id"),s.igVersion=this.getExtensionStringValue(r,"ig-version"),s.isCurrent=!1,this.getExtensionBoolValue(r,"ig-current")?s.isCurrent=!0:s.canonical+=`|${s.igVersion}`,this.supportedProfiles.set(s.canonical,s)}),this.updateProfileFilter()),i.name=="llmProvider"&&i.extension&&(this.showAIAnalyzeButton=!0)}),e.parameter.filter(i=>i.use=="in"&&i.name!="resource"&&i.name!="profile"&&i.name!="ig"&&i.name!="llmProvider").forEach(i=>{this.validatorSettings.set(i.name,new _0(i))})}analyzeUrlForValidation(){return Lt(this,null,function*(){if(!window.location.hash)return;let e=new URLSearchParams(window.location.hash.substring(1));if(e.has("resource")){let i=!1;e.has("profile")&&(this.selectedProfile=e.get("profile"),i=!0);let r=EC.decode(e.get("resource")),s="application/fhir+json";r.startsWith("<")&&(s="application/fhir+xml");let a;e.has("filename")?a=e.get("filename"):a=`provided.${s.split("+")[1]}`;for(let[o,l]of e)o==="resource"||o==="profile"||o==="filename"||this.validatorSettings.has(o)&&this.validatorSettings.get(o).formControl.setValue(l);this.validateResource(a,r,s,!i&&!this.profileLocked),this.toastr.info("Validation","The validation of your resource has started",{closeButton:!0,timeOut:3e3})}})}static{this.\u0275fac=function(i){return new(i||n)(Ae(Dn),Ae(Ge),Ae(C0))}}static{this.\u0275cmp=le({type:n,selectors:[["app-validate"]],standalone:!1,decls:39,vars:12,consts:[[1,"row"],[1,"card-maps","white-block"],["mat-menu-item","","title","Edit validation parameters",1,"setting",3,"click"],[4,"ngIf"],[1,"mat-table"],[1,"mat-header-row"],[1,"mat-header-cell"],["class","mat-row",3,"ngClass","click",4,"ngFor","ngForOf"],["mat-raised-button","","type","submit",3,"click"],[1,"row","row-full-height"],[3,"operationResult","select",4,"ngIf"],["diameter","30",4,"ngIf"],[1,"editor-content-selector",3,"click","ngClass"],["id","editor"],[3,"addFiles"],[1,"current"],[1,"form-field-group"],["id","select-profile","name","selectProfile","placeholder","Validate against specific Profile",3,"ngModelChange","ngModel"],["placeholderLabel","Find a profile\u2026","noEntriesFoundLabel","'no matching profile found'",3,"ngModelChange","ngModel"],[3,"value",4,"ngFor","ngForOf"],["name","selectIg","placeholder","Validate against specific Implementation Guide",3,"ngModelChange","ngModel"],[3,"value"],[1,"buttons"],["class","profile-lock unlocked",4,"ngIf"],["class","profile-lock locked",4,"ngIf"],["color","primary","mat-raised-button","",3,"click"],["color","primary","mat-raised-button","",3,"click",4,"ngIf"],[1,"profile-select-option-line1"],[1,"ig"],[1,"title",3,"title"],[1,"profile-select-option-line2"],[1,"canonical"],[1,"profile-lock","unlocked"],["title","Lock the profile",3,"click"],["title","The profile will be updated automatically when validating a new resource"],[1,"profile-lock","locked"],["title","Unlock the profile",3,"click"],["title","The profile won't be updated when validating a new resource"],["class","form-field-group",4,"ngFor","ngForOf"],["class","column50",4,"ngIf"],[3,"formControl",4,"ngIf"],[1,"column50"],["matInput","",3,"formControl"],["matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","3","cdkAutosizeMaxRows","10",3,"formControl"],[3,"formControl"],[1,"mat-row",3,"click","ngClass"],[1,"mat-cell"],[1,"issues","mat-cell"],[1,"actions","mat-cell"],["aria-label","Remove","title","Remove from history",1,"delete",3,"click"],["target","_blank","title","Copy a direct link to this validation",3,"click","href"],["aria-label","Copy",1,"copy"],["diameter","30"],["inline","",1,"error"],["inline","",1,"warning"],["inline","",1,"info"],[3,"select","operationResult"]],template:function(i,r){i&1&&(P(0,"div",0)(1,"div",1)(2,"button",2),X("click",function(){return r.toggleSettings()}),P(3,"mat-icon"),B(4,"settings"),U()(),P(5,"h2"),B(6,"Validate FHIR Resource"),U(),oe(7,dq,35,13,"ng-container",3)(8,gq,3,3,"ng-container",3),U(),P(9,"div",1)(10,"h2"),B(11,"Validation history"),U(),P(12,"table",4)(13,"tr",5)(14,"th",6),B(15,"Resource"),U(),P(16,"th",6),B(17,"Profile/IG"),U(),P(18,"th",6),B(19,"Issues"),U(),P(20,"th",6),B(21,"Actions"),U()(),oe(22,vq,21,13,"tr",7),U(),P(23,"mat-card-actions")(24,"button",8),X("click",function(){return r.clearAllEntries()}),B(25,"Clear history"),U()()()(),P(26,"div",9)(27,"div",1)(28,"h2"),B(29,"Result of the validation"),U(),oe(30,yq,13,3,"dl",3)(31,Cq,1,1,"app-operation-result",10)(32,wq,1,0,"mat-spinner",11),U(),P(33,"div",1)(34,"span",12),X("click",function(){return r.changeCodeEditorContent(r.CodeEditorContent.RESOURCE_CONTENT)}),B(35,"Validated resource"),U(),P(36,"span",12),X("click",function(){return r.changeCodeEditorContent(r.CodeEditorContent.OPERATION_OUTCOME)}),B(37,"Operation outcome"),U(),te(38,"div",13),U()()),i&2&&($(7),j("ngIf",!r.showSettings),$(),j("ngIf",r.showSettings),$(14),j("ngForOf",r.validationEntries),$(8),j("ngIf",r.selectedEntry),$(),j("ngIf",r.selectedEntry&&r.selectedEntry.result),$(),j("ngIf",r.selectedEntry&&r.selectedEntry.loading),$(2),j("ngClass",Oo(8,nO,r.editorContent==r.CodeEditorContent.RESOURCE_CONTENT)),$(2),j("ngClass",Oo(10,nO,r.editorContent==r.CodeEditorContent.OPERATION_OUTCOME)))},dependencies:[An,vr,di,Ir,Dr,cb,er,Nn,ms,Lm,Al,bn,ds,Ga,Ka,Rn,Ml,LT,Gm,ps,Fb,Xs,n0,dl,r0,qw,iO],styles:["[_nghost-%COMP%]{margin:0 auto;min-width:1400px;width:100%}button.setting[_ngcontent-%COMP%]{float:right}button.setting[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{vertical-align:middle}p.current[_ngcontent-%COMP%]{margin:10px 0}p.current[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-weight:500}mat-hint[_ngcontent-%COMP%]{color:#7db99e}p.error[_ngcontent-%COMP%]{color:#d9534f;margin-top:20px}p.error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{vertical-align:middle}.row[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-self:stretch;margin:1em auto;min-width:1400px;width:100%;justify-content:space-evenly}.row[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{width:46%}.mat-table[_ngcontent-%COMP%] .mat-cell[_ngcontent-%COMP%], .mat-table[_ngcontent-%COMP%] .mat-header-cell[_ngcontent-%COMP%]{padding-left:.5rem;padding-right:.5rem}table[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{background:#d8f1e6}table[_ngcontent-%COMP%] .mat-row[_ngcontent-%COMP%]{cursor:pointer}table[_ngcontent-%COMP%] td.issues[_ngcontent-%COMP%]{font-size:12px;line-height:12px;color:#818181}table[_ngcontent-%COMP%] td.issues[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{width:12px;height:12px;margin-right:2px;vertical-align:bottom}table[_ngcontent-%COMP%] td.issues[_ngcontent-%COMP%] mat-icon.error[_ngcontent-%COMP%]{color:#d9534f}table[_ngcontent-%COMP%] td.issues[_ngcontent-%COMP%] mat-icon.warning[_ngcontent-%COMP%]{color:#f0ad4e}table[_ngcontent-%COMP%] td.issues[_ngcontent-%COMP%] mat-icon.info[_ngcontent-%COMP%]{color:#4ca8de}table[_ngcontent-%COMP%] td.actions[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:24px}table[_ngcontent-%COMP%] td.actions[_ngcontent-%COMP%] mat-icon.delete[_ngcontent-%COMP%]{color:#d9534f;margin-right:.2em}table[_ngcontent-%COMP%] td.actions[_ngcontent-%COMP%] mat-icon.copy[_ngcontent-%COMP%]{color:#4ab183}.form-field-group[_ngcontent-%COMP%]{padding-left:1rem;padding-right:1rem;display:flex;flex-direction:row}.form-field-group[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}.button-row[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:1rem}.card-maps[_ngcontent-%COMP%]{padding:8px 16px}.row-full-height[_ngcontent-%COMP%] .card-maps[_ngcontent-%COMP%]{height:96vh;max-height:96vh;overflow-y:auto}#editor[_ngcontent-%COMP%]{height:calc(100% - 50px)}.column50[_ngcontent-%COMP%]{width:40%}.profile-select-option-line1[_ngcontent-%COMP%]{display:inline-block;white-space:nowrap;width:100%}.profile-select-option-line1[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{display:block;width:auto;text-overflow:ellipsis;padding-right:6px;overflow:hidden}.profile-select-option-line1[_ngcontent-%COMP%] .ig[_ngcontent-%COMP%]{display:block;float:right;width:max-content;color:#7bc7a5}.profile-select-option-line2[_ngcontent-%COMP%]{clear:right;display:inline-block;white-space:nowrap;width:100%;font-size:.8rem;line-height:.8rem}.profile-select-option-line2[_ngcontent-%COMP%] .canonical[_ngcontent-%COMP%]{font-family:monospace,serif;color:#778d9d;letter-spacing:0px}mat-option[_ngcontent-%COMP%]:nth-child(odd){background-color:#f9f9f9}mat-option[_ngcontent-%COMP%]{padding:4px 8px;border-bottom:1px solid rgba(0,0,0,.05);line-height:normal} .mdc-list-item__primary-text{width:100%}.editor-content-selector[_ngcontent-%COMP%]{display:inline-block;font-size:1.4em;margin:.3em 1em .6em 0;border-bottom:3px solid #d2eade;cursor:pointer;color:#5a5f5c;padding-bottom:2px}.editor-content-selector.active[_ngcontent-%COMP%]{border-bottom:3px solid #97d6ba;cursor:default;color:#000}.buttons[_ngcontent-%COMP%]{margin:20px 0 10px 10px}.profile-lock[_ngcontent-%COMP%]{float:right;display:block;width:150px;line-height:3em}.profile-lock[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{cursor:pointer;vertical-align:middle;margin-right:5px;color:#7099bd}.profile-lock[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{cursor:help;text-decoration:underline dashed}.profile-lock.locked[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#d9534f}.profile-lock.unlocked[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#6eb394}"]})}}return n})(),k0=class{constructor(t,e,i,r){this.filename=t,this.contentType=e,this.content=i,this.resourceType=r}},dc=function(n){return n[n.RESOURCE_CONTENT=0]="RESOURCE_CONTENT",n[n.OPERATION_OUTCOME=1]="OPERATION_OUTCOME",n}(dc||{});var M0=class{validateSignature(t){return Promise.resolve(null)}validateAtHash(t){return Promise.resolve(!0)}},T0=class{};var Qd=class{},Sq=(()=>{class n extends Qd{now(){return Date.now()}new(){return new Date}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=Dt(n)))(r||n)}})()}static{this.\u0275prov=ee({token:n,factory:n.\u0275fac})}}return n})();var E0=class{},A0=class{},kq=(()=>{class n{constructor(){this.data=new Map}getItem(e){return this.data.get(e)}removeItem(e){this.data.delete(e)}setItem(e,i){this.data.set(e,i)}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=ee({token:n,factory:n.\u0275fac})}}return n})();var Zd=class{constructor(t){this.type=t}},Wi=class extends Zd{constructor(t,e=null){super(t),this.info=e}},or=class extends Zd{constructor(t,e=null){super(t),this.info=e}},$t=class extends Zd{constructor(t,e,i=null){super(t),this.reason=e,this.params=i}};function oO(n){let t=n.replace(/-/g,"+").replace(/_/g,"/");return decodeURIComponent(atob(t).split("").map(function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)}).join(""))}function lO(n){return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}var fc=class{constructor(t){this.clientId="",this.redirectUri="",this.postLogoutRedirectUri="",this.redirectUriAsPostLogoutRedirectUriFallback=!0,this.loginUrl="",this.scope="openid profile",this.resource="",this.rngUrl="",this.oidc=!0,this.requestAccessToken=!0,this.options=null,this.issuer="",this.logoutUrl="",this.clearHashAfterLogin=!0,this.tokenEndpoint=null,this.revocationEndpoint=null,this.customTokenParameters=[],this.userinfoEndpoint=null,this.responseType="",this.showDebugInformation=!1,this.silentRefreshRedirectUri="",this.silentRefreshMessagePrefix="",this.silentRefreshShowIFrame=!1,this.siletRefreshTimeout=1e3*20,this.silentRefreshTimeout=1e3*20,this.dummyClientSecret="",this.requireHttps="remoteOnly",this.strictDiscoveryDocumentValidation=!0,this.jwks=null,this.customQueryParams=null,this.silentRefreshIFrameName="angular-oauth-oidc-silent-refresh-iframe",this.timeoutFactor=.75,this.sessionChecksEnabled=!1,this.sessionCheckIntervall=3*1e3,this.sessionCheckIFrameUrl=null,this.sessionCheckIFrameName="angular-oauth-oidc-check-session-iframe",this.disableAtHashCheck=!1,this.skipSubjectCheck=!1,this.useIdTokenHintForSilentRefresh=!1,this.skipIssuerCheck=!1,this.nonceStateSeparator=";",this.useHttpBasicAuth=!1,this.decreaseExpirationBySec=0,this.waitForTokenInMsec=0,this.disablePKCE=!1,this.preserveRequestedRoute=!1,this.disableIdTokenTimer=!1,this.checkOrigin=!1,this.openUri=e=>{location.href=e},t&&Object.assign(this,t)}},vo=class{encodeKey(t){return encodeURIComponent(t)}encodeValue(t){return encodeURIComponent(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}},I0=class{};var cO=(()=>{class n{getHashFragmentParams(e){let i=e||window.location.hash;if(i=decodeURIComponent(i),i.indexOf("#")!==0)return{};let r=i.indexOf("?");return r>-1?i=i.substr(r+1):i=i.substr(1),this.parseQueryString(i)}parseQueryString(e){let i={},r,s,a,o,l,c;if(e===null)return i;let u=e.split("&");for(let d=0;d=64;){for(s=t[0],a=t[1],o=t[2],l=t[3],c=t[4],u=t[5],d=t[6],h=t[7],f=0;f<16;f++)p=i+f*4,n[f]=(e[p]&255)<<24|(e[p+1]&255)<<16|(e[p+2]&255)<<8|e[p+3]&255;for(f=16;f<64;f++)m=n[f-2],g=(m>>>17|m<<15)^(m>>>19|m<<13)^m>>>10,m=n[f-15],y=(m>>>7|m<<25)^(m>>>18|m<<14)^m>>>3,n[f]=(g+n[f-7]|0)+(y+n[f-16]|0);for(f=0;f<64;f++)g=(((c>>>6|c<<26)^(c>>>11|c<<21)^(c>>>25|c<<7))+(c&u^~c&d)|0)+(h+(Tq[f]+n[f]|0)|0)|0,y=((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+(s&a^s&o^a&o)|0,h=d,d=u,u=c,c=l+g|0,l=o,o=a,a=s,s=g+y|0;t[0]+=s,t[1]+=a,t[2]+=o,t[3]+=l,t[4]+=c,t[5]+=u,t[6]+=d,t[7]+=h,i+=64,r-=64}return i}var IC=class{constructor(){this.digestLength=uO,this.blockSize=Mq,this.state=new Int32Array(8),this.temp=new Int32Array(64),this.buffer=new Uint8Array(128),this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this.reset()}reset(){return this.state[0]=1779033703,this.state[1]=3144134277,this.state[2]=1013904242,this.state[3]=2773480762,this.state[4]=1359893119,this.state[5]=2600822924,this.state[6]=528734635,this.state[7]=1541459225,this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this}clean(){for(let t=0;t0){for(;this.bufferLength<64&&e>0;)this.buffer[this.bufferLength++]=t[i++],e--;this.bufferLength===64&&(AC(this.temp,this.state,this.buffer,0,64),this.bufferLength=0)}for(e>=64&&(i=AC(this.temp,this.state,t,i,e),e%=64);e>0;)this.buffer[this.bufferLength++]=t[i++],e--;return this}finish(t){if(!this.finished){let e=this.bytesHashed,i=this.bufferLength,r=e/536870912|0,s=e<<3,a=e%64<56?64:128;this.buffer[i]=128;for(let o=i+1;o>>24&255,this.buffer[a-7]=r>>>16&255,this.buffer[a-6]=r>>>8&255,this.buffer[a-5]=r>>>0&255,this.buffer[a-4]=s>>>24&255,this.buffer[a-3]=s>>>16&255,this.buffer[a-2]=s>>>8&255,this.buffer[a-1]=s>>>0&255,AC(this.temp,this.state,this.buffer,0,a),this.finished=!0}for(let e=0;e<8;e++)t[e*4+0]=this.state[e]>>>24&255,t[e*4+1]=this.state[e]>>>16&255,t[e*4+2]=this.state[e]>>>8&255,t[e*4+3]=this.state[e]>>>0&255;return this}digest(){let t=new Uint8Array(this.digestLength);return this.finish(t),t}_saveState(t){for(let e=0;e{class n{calcHash(e,i){return Lt(this,null,function*(){return Iq(Eq(Aq(e)))})}toHashString2(e){let i="";for(let r of e)i+=String.fromCharCode(r);return i}toHashString(e){let i=new Uint8Array(e),r="";for(let s of i)r+=String.fromCharCode(s);return r}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275prov=ee({token:n,factory:n.\u0275fac})}}return n})(),dO=(()=>{class n extends fc{constructor(e,i,r,s,a,o,l,c,u,d){super(),this.ngZone=e,this.http=i,this.config=a,this.urlHelper=o,this.logger=l,this.crypto=c,this.dateTimeService=d,this.discoveryDocumentLoaded=!1,this.state="",this.eventsSubject=new ue,this.discoveryDocumentLoadedSubject=new ue,this.grantTypesSupported=[],this.inImplicitFlow=!1,this.saveNoncesInLocalStorage=!1,this.debug("angular-oauth2-oidc v10"),this.document=u,a||(a={}),this.discoveryDocumentLoaded$=this.discoveryDocumentLoadedSubject.asObservable(),this.events=this.eventsSubject.asObservable(),s&&(this.tokenValidationHandler=s),a&&this.configure(a);try{r?this.setStorage(r):typeof sessionStorage<"u"&&this.setStorage(sessionStorage)}catch(h){console.error("No OAuthStorage provided and cannot access default (sessionStorage).Consider providing a custom OAuthStorage implementation in your module.",h)}if(this.checkLocalStorageAccessable()){let h=window?.navigator?.userAgent;(h?.includes("MSIE ")||h?.includes("Trident"))&&(this.saveNoncesInLocalStorage=!0)}this.setupRefreshTimer()}checkLocalStorageAccessable(){if(typeof window>"u")return!1;let e="test";try{return typeof window.localStorage>"u"?!1:(localStorage.setItem(e,e),localStorage.removeItem(e),!0)}catch{return!1}}configure(e){Object.assign(this,new fc,e),this.config=Object.assign({},new fc,e),this.sessionChecksEnabled&&this.setupSessionCheck(),this.configChanged()}configChanged(){this.setupRefreshTimer()}restartSessionChecksIfStillLoggedIn(){this.hasValidIdToken()&&this.initSessionCheck()}restartRefreshTimerIfStillLoggedIn(){this.setupExpirationTimers()}setupSessionCheck(){this.events.pipe(it(e=>e.type==="token_received")).subscribe(()=>{this.initSessionCheck()})}setupAutomaticSilentRefresh(e={},i,r=!0){let s=!0;this.clearAutomaticRefreshTimer(),this.automaticRefreshSubscription=this.events.pipe(kt(a=>{a.type==="token_received"?s=!0:a.type==="logout"&&(s=!1)}),it(a=>a.type==="token_expires"&&(i==null||i==="any"||a.info===i)),Ii(1e3)).subscribe(()=>{s&&this.refreshInternal(e,r).catch(()=>{this.debug("Automatic silent refresh did not work")})}),this.restartRefreshTimerIfStillLoggedIn()}refreshInternal(e,i){return!this.useSilentRefresh&&this.responseType==="code"?this.refreshToken():this.silentRefresh(e,i)}loadDiscoveryDocumentAndTryLogin(e=null){return this.loadDiscoveryDocument().then(()=>this.tryLogin(e))}loadDiscoveryDocumentAndLogin(e=null){return e=e||{},this.loadDiscoveryDocumentAndTryLogin(e).then(()=>{if(!this.hasValidIdToken()||!this.hasValidAccessToken()){let i=typeof e.state=="string"?e.state:"";return this.initLoginFlow(i),!1}else return!0})}debug(...e){this.showDebugInformation&&this.logger.debug(...e)}validateUrlFromDiscoveryDocument(e){let i=[],r=this.validateUrlForHttps(e),s=this.validateUrlAgainstIssuer(e);return r||i.push("https for all urls required. Also for urls received by discovery."),s||i.push("Every url in discovery document has to start with the issuer url.Also see property strictDiscoveryDocumentValidation."),i}validateUrlForHttps(e){if(!e)return!0;let i=e.toLowerCase();return this.requireHttps===!1||(i.match(/^http:\/\/localhost($|[:/])/)||i.match(/^http:\/\/localhost($|[:/])/))&&this.requireHttps==="remoteOnly"?!0:i.startsWith("https://")}assertUrlNotNullAndCorrectProtocol(e,i){if(!e)throw new Error(`'${i}' should not be null`);if(!this.validateUrlForHttps(e))throw new Error(`'${i}' must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).`)}validateUrlAgainstIssuer(e){return!this.strictDiscoveryDocumentValidation||!e?!0:e.toLowerCase().startsWith(this.issuer.toLowerCase())}setupRefreshTimer(){if(typeof window>"u"){this.debug("timer not supported on this plattform");return}(this.hasValidIdToken()||this.hasValidAccessToken())&&(this.clearAccessTokenTimer(),this.clearIdTokenTimer(),this.setupExpirationTimers()),this.tokenReceivedSubscription&&this.tokenReceivedSubscription.unsubscribe(),this.tokenReceivedSubscription=this.events.pipe(it(e=>e.type==="token_received")).subscribe(()=>{this.clearAccessTokenTimer(),this.clearIdTokenTimer(),this.setupExpirationTimers()})}setupExpirationTimers(){this.hasValidAccessToken()&&this.setupAccessTokenTimer(),!this.disableIdTokenTimer&&this.hasValidIdToken()&&this.setupIdTokenTimer()}setupAccessTokenTimer(){let e=this.getAccessTokenExpiration(),i=this.getAccessTokenStoredAt(),r=this.calcTimeout(i,e);this.ngZone.runOutsideAngular(()=>{this.accessTokenTimeoutSubscription=ge(new or("token_expires","access_token")).pipe(To(r)).subscribe(s=>{this.ngZone.run(()=>{this.eventsSubject.next(s)})})})}setupIdTokenTimer(){let e=this.getIdTokenExpiration(),i=this.getIdTokenStoredAt(),r=this.calcTimeout(i,e);this.ngZone.runOutsideAngular(()=>{this.idTokenTimeoutSubscription=ge(new or("token_expires","id_token")).pipe(To(r)).subscribe(s=>{this.ngZone.run(()=>{this.eventsSubject.next(s)})})})}stopAutomaticRefresh(){this.clearAccessTokenTimer(),this.clearIdTokenTimer(),this.clearAutomaticRefreshTimer()}clearAccessTokenTimer(){this.accessTokenTimeoutSubscription&&this.accessTokenTimeoutSubscription.unsubscribe()}clearIdTokenTimer(){this.idTokenTimeoutSubscription&&this.idTokenTimeoutSubscription.unsubscribe()}clearAutomaticRefreshTimer(){this.automaticRefreshSubscription&&this.automaticRefreshSubscription.unsubscribe()}calcTimeout(e,i){let r=this.dateTimeService.now(),s=(i-e)*this.timeoutFactor-(r-e),a=Math.max(0,s),o=2147483647;return a>o?o:a}setStorage(e){this._storage=e,this.configChanged()}loadDiscoveryDocument(e=null){return new Promise((i,r)=>{if(e||(e=this.issuer||"",e.endsWith("/")||(e+="/"),e+=".well-known/openid-configuration"),!this.validateUrlForHttps(e)){r("issuer must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");return}this.http.get(e).subscribe(s=>{if(!this.validateDiscoveryDocument(s)){this.eventsSubject.next(new $t("discovery_document_validation_error",null)),r("discovery_document_validation_error");return}this.loginUrl=s.authorization_endpoint,this.logoutUrl=s.end_session_endpoint||this.logoutUrl,this.grantTypesSupported=s.grant_types_supported,this.issuer=s.issuer,this.tokenEndpoint=s.token_endpoint,this.userinfoEndpoint=s.userinfo_endpoint||this.userinfoEndpoint,this.jwksUri=s.jwks_uri,this.sessionCheckIFrameUrl=s.check_session_iframe||this.sessionCheckIFrameUrl,this.discoveryDocumentLoaded=!0,this.discoveryDocumentLoadedSubject.next(s),this.revocationEndpoint=s.revocation_endpoint||this.revocationEndpoint,this.sessionChecksEnabled&&this.restartSessionChecksIfStillLoggedIn(),this.loadJwks().then(a=>{let o={discoveryDocument:s,jwks:a},l=new Wi("discovery_document_loaded",o);this.eventsSubject.next(l),i(l)}).catch(a=>{this.eventsSubject.next(new $t("discovery_document_load_error",a)),r(a)})},s=>{this.logger.error("error loading discovery document",s),this.eventsSubject.next(new $t("discovery_document_load_error",s)),r(s)})})}loadJwks(){return new Promise((e,i)=>{this.jwksUri?this.http.get(this.jwksUri).subscribe(r=>{this.jwks=r,e(r)},r=>{this.logger.error("error loading jwks",r),this.eventsSubject.next(new $t("jwks_load_error",r)),i(r)}):e(null)})}validateDiscoveryDocument(e){let i;return!this.skipIssuerCheck&&e.issuer!==this.issuer?(this.logger.error("invalid issuer in discovery document","expected: "+this.issuer,"current: "+e.issuer),!1):(i=this.validateUrlFromDiscoveryDocument(e.authorization_endpoint),i.length>0?(this.logger.error("error validating authorization_endpoint in discovery document",i),!1):(i=this.validateUrlFromDiscoveryDocument(e.end_session_endpoint),i.length>0?(this.logger.error("error validating end_session_endpoint in discovery document",i),!1):(i=this.validateUrlFromDiscoveryDocument(e.token_endpoint),i.length>0&&this.logger.error("error validating token_endpoint in discovery document",i),i=this.validateUrlFromDiscoveryDocument(e.revocation_endpoint),i.length>0&&this.logger.error("error validating revocation_endpoint in discovery document",i),i=this.validateUrlFromDiscoveryDocument(e.userinfo_endpoint),i.length>0?(this.logger.error("error validating userinfo_endpoint in discovery document",i),!1):(i=this.validateUrlFromDiscoveryDocument(e.jwks_uri),i.length>0?(this.logger.error("error validating jwks_uri in discovery document",i),!1):(this.sessionChecksEnabled&&!e.check_session_iframe&&this.logger.warn("sessionChecksEnabled is activated but discovery document does not contain a check_session_iframe field"),!0)))))}fetchTokenUsingPasswordFlowAndLoadUserProfile(e,i,r=new zs){return this.fetchTokenUsingPasswordFlow(e,i,r).then(()=>this.loadUserProfile())}loadUserProfile(){if(!this.hasValidAccessToken())throw new Error("Can not load User Profile without access_token");if(!this.validateUrlForHttps(this.userinfoEndpoint))throw new Error("userinfoEndpoint must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");return new Promise((e,i)=>{let r=new zs().set("Authorization","Bearer "+this.getAccessToken());this.http.get(this.userinfoEndpoint,{headers:r,observe:"response",responseType:"text"}).subscribe(s=>{if(this.debug("userinfo received",JSON.stringify(s)),s.headers.get("content-type").startsWith("application/json")){let a=JSON.parse(s.body),o=this.getIdentityClaims()||{};if(!this.skipSubjectCheck&&this.oidc&&(!o.sub||a.sub!==o.sub)){i(`if property oidc is true, the received user-id (sub) has to be the user-id of the user that has logged in with oidc. +if you are not using oidc but just oauth2 password flow set oidc to false`);return}a=Object.assign({},o,a),this._storage.setItem("id_token_claims_obj",JSON.stringify(a)),this.eventsSubject.next(new Wi("user_profile_loaded")),e({info:a})}else this.debug("userinfo is not JSON, treating it as JWE/JWS"),this.eventsSubject.next(new Wi("user_profile_loaded")),e(JSON.parse(s.body))},s=>{this.logger.error("error loading user info",s),this.eventsSubject.next(new $t("user_profile_load_error",s)),i(s)})})}fetchTokenUsingPasswordFlow(e,i,r=new zs){let s={username:e,password:i};return this.fetchTokenUsingGrant("password",s,r)}fetchTokenUsingGrant(e,i,r=new zs){this.assertUrlNotNullAndCorrectProtocol(this.tokenEndpoint,"tokenEndpoint");let s=new Fo({encoder:new vo}).set("grant_type",e).set("scope",this.scope);if(this.useHttpBasicAuth){let a=btoa(`${this.clientId}:${this.dummyClientSecret}`);r=r.set("Authorization","Basic "+a)}if(this.useHttpBasicAuth||(s=s.set("client_id",this.clientId)),!this.useHttpBasicAuth&&this.dummyClientSecret&&(s=s.set("client_secret",this.dummyClientSecret)),this.customQueryParams)for(let a of Object.getOwnPropertyNames(this.customQueryParams))s=s.set(a,this.customQueryParams[a]);for(let a of Object.keys(i))s=s.set(a,i[a]);return r=r.set("Content-Type","application/x-www-form-urlencoded"),new Promise((a,o)=>{this.http.post(this.tokenEndpoint,s,{headers:r}).subscribe(l=>{this.debug("tokenResponse",l),this.storeAccessTokenResponse(l.access_token,l.refresh_token,l.expires_in||this.fallbackAccessTokenExpirationTimeInSec,l.scope,this.extractRecognizedCustomParameters(l)),this.oidc&&l.id_token&&this.processIdToken(l.id_token,l.access_token).then(c=>{this.storeIdToken(c),a(l)}),this.eventsSubject.next(new Wi("token_received")),a(l)},l=>{this.logger.error("Error performing ${grantType} flow",l),this.eventsSubject.next(new $t("token_error",l)),o(l)})})}refreshToken(){return this.assertUrlNotNullAndCorrectProtocol(this.tokenEndpoint,"tokenEndpoint"),new Promise((e,i)=>{let r=new Fo({encoder:new vo}).set("grant_type","refresh_token").set("scope",this.scope).set("refresh_token",this._storage.getItem("refresh_token")),s=new zs().set("Content-Type","application/x-www-form-urlencoded");if(this.useHttpBasicAuth){let a=btoa(`${this.clientId}:${this.dummyClientSecret}`);s=s.set("Authorization","Basic "+a)}if(this.useHttpBasicAuth||(r=r.set("client_id",this.clientId)),!this.useHttpBasicAuth&&this.dummyClientSecret&&(r=r.set("client_secret",this.dummyClientSecret)),this.customQueryParams)for(let a of Object.getOwnPropertyNames(this.customQueryParams))r=r.set(a,this.customQueryParams[a]);this.http.post(this.tokenEndpoint,r,{headers:s}).pipe(Mt(a=>this.oidc&&a.id_token?si(this.processIdToken(a.id_token,a.access_token,!0)).pipe(kt(o=>this.storeIdToken(o)),Ne(()=>a)):ge(a))).subscribe(a=>{this.debug("refresh tokenResponse",a),this.storeAccessTokenResponse(a.access_token,a.refresh_token,a.expires_in||this.fallbackAccessTokenExpirationTimeInSec,a.scope,this.extractRecognizedCustomParameters(a)),this.eventsSubject.next(new Wi("token_received")),this.eventsSubject.next(new Wi("token_refreshed")),e(a)},a=>{this.logger.error("Error refreshing token",a),this.eventsSubject.next(new $t("token_refresh_error",a)),i(a)})})}removeSilentRefreshEventListener(){this.silentRefreshPostMessageEventListener&&(window.removeEventListener("message",this.silentRefreshPostMessageEventListener),this.silentRefreshPostMessageEventListener=null)}setupSilentRefreshEventListener(){this.removeSilentRefreshEventListener(),this.silentRefreshPostMessageEventListener=e=>{let i=this.processMessageEventMessage(e);this.checkOrigin&&e.origin!==location.origin&&console.error("wrong origin requested silent refresh!"),this.tryLogin({customHashFragment:i,preventClearHashAfterLogin:!0,customRedirectUri:this.silentRefreshRedirectUri||this.redirectUri}).catch(r=>this.debug("tryLogin during silent refresh failed",r))},window.addEventListener("message",this.silentRefreshPostMessageEventListener)}silentRefresh(e={},i=!0){let r=this.getIdentityClaims()||{};if(this.useIdTokenHintForSilentRefresh&&this.hasValidIdToken()&&(e.id_token_hint=this.getIdToken()),!this.validateUrlForHttps(this.loginUrl))throw new Error("loginUrl must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");if(typeof this.document>"u")throw new Error("silent refresh is not supported on this platform");let s=this.document.getElementById(this.silentRefreshIFrameName);s&&this.document.body.removeChild(s),this.silentRefreshSubject=r.sub;let a=this.document.createElement("iframe");a.id=this.silentRefreshIFrameName,this.setupSilentRefreshEventListener();let o=this.silentRefreshRedirectUri||this.redirectUri;this.createLoginUrl(null,null,o,i,e).then(d=>{a.setAttribute("src",d),this.silentRefreshShowIFrame||(a.style.display="none"),this.document.body.appendChild(a)});let l=this.events.pipe(it(d=>d instanceof $t),ln()),c=this.events.pipe(it(d=>d.type==="token_received"),ln()),u=ge(new $t("silent_refresh_timeout",null)).pipe(To(this.silentRefreshTimeout));return hw([l,c,u]).pipe(Ne(d=>{if(d instanceof $t)throw d.type==="silent_refresh_timeout"?this.eventsSubject.next(d):(d=new $t("silent_refresh_error",d),this.eventsSubject.next(d)),d;return d.type==="token_received"&&(d=new Wi("silently_refreshed"),this.eventsSubject.next(d)),d})).toPromise()}initImplicitFlowInPopup(e){return this.initLoginFlowInPopup(e)}initLoginFlowInPopup(e){return e=e||{},this.createLoginUrl(null,null,this.silentRefreshRedirectUri,!1,{display:"popup"}).then(i=>new Promise((r,s)=>{let o=null;e.windowRef?e.windowRef&&!e.windowRef.closed&&(o=e.windowRef,o.location.href=i):o=window.open(i,"ngx-oauth2-oidc-login",this.calculatePopupFeatures(e));let l,c=f=>{this.tryLogin({customHashFragment:f,preventClearHashAfterLogin:!0,customRedirectUri:this.silentRefreshRedirectUri}).then(()=>{d(),r(!0)},p=>{d(),s(p)})},u=()=>{(!o||o.closed)&&(d(),s(new $t("popup_closed",{})))};o?l=window.setInterval(u,500):s(new $t("popup_blocked",{}));let d=()=>{window.clearInterval(l),window.removeEventListener("storage",m),window.removeEventListener("message",h),o!==null&&o.close(),o=null},h=f=>{let p=this.processMessageEventMessage(f);p&&p!==null?(window.removeEventListener("storage",m),c(p)):console.log("false event firing")},m=f=>{f.key==="auth_hash"&&(window.removeEventListener("message",h),c(f.newValue))};window.addEventListener("message",h),window.addEventListener("storage",m)}))}calculatePopupFeatures(e){let i=e.height||470,r=e.width||500,s=window.screenLeft+(window.outerWidth-r)/2,a=window.screenTop+(window.outerHeight-i)/2;return`location=no,toolbar=no,width=${r},height=${i},top=${a},left=${s}`}processMessageEventMessage(e){let i="#";if(this.silentRefreshMessagePrefix&&(i+=this.silentRefreshMessagePrefix),!e||!e.data||typeof e.data!="string")return;let r=e.data;if(r.startsWith(i))return"#"+r.substr(i.length)}canPerformSessionCheck(){return this.sessionChecksEnabled?this.sessionCheckIFrameUrl?this.getSessionState()?!(typeof this.document>"u"):(console.warn("sessionChecksEnabled is activated but there is no session_state"),!1):(console.warn("sessionChecksEnabled is activated but there is no sessionCheckIFrameUrl"),!1):!1}setupSessionCheckEventListener(){this.removeSessionCheckEventListener(),this.sessionCheckEventListener=e=>{let i=e.origin.toLowerCase(),r=this.issuer.toLowerCase();if(this.debug("sessionCheckEventListener"),!r.startsWith(i)){this.debug("sessionCheckEventListener","wrong origin",i,"expected",r,"event",e);return}switch(e.data){case"unchanged":this.ngZone.run(()=>{this.handleSessionUnchanged()});break;case"changed":this.ngZone.run(()=>{this.handleSessionChange()});break;case"error":this.ngZone.run(()=>{this.handleSessionError()});break}this.debug("got info from session check inframe",e)},this.ngZone.runOutsideAngular(()=>{window.addEventListener("message",this.sessionCheckEventListener)})}handleSessionUnchanged(){this.debug("session check","session unchanged"),this.eventsSubject.next(new or("session_unchanged"))}handleSessionChange(){this.eventsSubject.next(new or("session_changed")),this.stopSessionCheckTimer(),!this.useSilentRefresh&&this.responseType==="code"?this.refreshToken().then(()=>{this.debug("token refresh after session change worked")}).catch(()=>{this.debug("token refresh did not work after session changed"),this.eventsSubject.next(new or("session_terminated")),this.logOut(!0)}):this.silentRefreshRedirectUri?(this.silentRefresh().catch(()=>this.debug("silent refresh failed after session changed")),this.waitForSilentRefreshAfterSessionChange()):(this.eventsSubject.next(new or("session_terminated")),this.logOut(!0))}waitForSilentRefreshAfterSessionChange(){this.events.pipe(it(e=>e.type==="silently_refreshed"||e.type==="silent_refresh_timeout"||e.type==="silent_refresh_error"),ln()).subscribe(e=>{e.type!=="silently_refreshed"&&(this.debug("silent refresh did not work after session changed"),this.eventsSubject.next(new or("session_terminated")),this.logOut(!0))})}handleSessionError(){this.stopSessionCheckTimer(),this.eventsSubject.next(new or("session_error"))}removeSessionCheckEventListener(){this.sessionCheckEventListener&&(window.removeEventListener("message",this.sessionCheckEventListener),this.sessionCheckEventListener=null)}initSessionCheck(){if(!this.canPerformSessionCheck())return;let e=this.document.getElementById(this.sessionCheckIFrameName);e&&this.document.body.removeChild(e);let i=this.document.createElement("iframe");i.id=this.sessionCheckIFrameName,this.setupSessionCheckEventListener();let r=this.sessionCheckIFrameUrl;i.setAttribute("src",r),i.style.display="none",this.document.body.appendChild(i),this.startSessionCheckTimer()}startSessionCheckTimer(){this.stopSessionCheckTimer(),this.ngZone.runOutsideAngular(()=>{this.sessionCheckTimer=setInterval(this.checkSession.bind(this),this.sessionCheckIntervall)})}stopSessionCheckTimer(){this.sessionCheckTimer&&(clearInterval(this.sessionCheckTimer),this.sessionCheckTimer=null)}checkSession(){let e=this.document.getElementById(this.sessionCheckIFrameName);e||this.logger.warn("checkSession did not find iframe",this.sessionCheckIFrameName);let i=this.getSessionState();i||this.stopSessionCheckTimer();let r=this.clientId+" "+i;e.contentWindow.postMessage(r,this.issuer)}createLoginUrl(){return Lt(this,arguments,function*(e="",i="",r="",s=!1,a={}){let o=this,l;r?l=r:l=this.redirectUri;let c=yield this.createAndSaveNonce();if(e?e=c+this.config.nonceStateSeparator+encodeURIComponent(e):e=c,!this.requestAccessToken&&!this.oidc)throw new Error("Either requestAccessToken or oidc or both must be true");this.config.responseType?this.responseType=this.config.responseType:this.oidc&&this.requestAccessToken?this.responseType="id_token token":this.oidc&&!this.requestAccessToken?this.responseType="id_token":this.responseType="token";let u=o.loginUrl.indexOf("?")>-1?"&":"?",d=o.scope;this.oidc&&!d.match(/(^|\s)openid($|\s)/)&&(d="openid "+d);let h=o.loginUrl+u+"response_type="+encodeURIComponent(o.responseType)+"&client_id="+encodeURIComponent(o.clientId)+"&state="+encodeURIComponent(e)+"&redirect_uri="+encodeURIComponent(l)+"&scope="+encodeURIComponent(d);if(this.responseType.includes("code")&&!this.disablePKCE){let[m,f]=yield this.createChallangeVerifierPairForPKCE();this.saveNoncesInLocalStorage&&typeof window.localStorage<"u"?localStorage.setItem("PKCE_verifier",f):this._storage.setItem("PKCE_verifier",f),h+="&code_challenge="+m,h+="&code_challenge_method=S256"}i&&(h+="&login_hint="+encodeURIComponent(i)),o.resource&&(h+="&resource="+encodeURIComponent(o.resource)),o.oidc&&(h+="&nonce="+encodeURIComponent(c)),s&&(h+="&prompt=none");for(let m of Object.keys(a))h+="&"+encodeURIComponent(m)+"="+encodeURIComponent(a[m]);if(this.customQueryParams)for(let m of Object.getOwnPropertyNames(this.customQueryParams))h+="&"+m+"="+encodeURIComponent(this.customQueryParams[m]);return h})}initImplicitFlowInternal(e="",i=""){if(this.inImplicitFlow)return;if(this.inImplicitFlow=!0,!this.validateUrlForHttps(this.loginUrl))throw new Error("loginUrl must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");let r={},s=null;typeof i=="string"?s=i:typeof i=="object"&&(r=i),this.createLoginUrl(e,s,null,!1,r).then(this.config.openUri).catch(a=>{console.error("Error in initImplicitFlow",a),this.inImplicitFlow=!1})}initImplicitFlow(e="",i=""){this.loginUrl!==""?this.initImplicitFlowInternal(e,i):this.events.pipe(it(r=>r.type==="discovery_document_loaded")).subscribe(()=>this.initImplicitFlowInternal(e,i))}resetImplicitFlow(){this.inImplicitFlow=!1}callOnTokenReceivedIfExists(e){let i=this;if(e.onTokenReceived){let r={idClaims:i.getIdentityClaims(),idToken:i.getIdToken(),accessToken:i.getAccessToken(),state:i.state};e.onTokenReceived(r)}}storeAccessTokenResponse(e,i,r,s,a){if(this._storage.setItem("access_token",e),s&&!Array.isArray(s)?this._storage.setItem("granted_scopes",JSON.stringify(s.split(" "))):s&&Array.isArray(s)&&this._storage.setItem("granted_scopes",JSON.stringify(s)),this._storage.setItem("access_token_stored_at",""+this.dateTimeService.now()),r){let o=r*1e3,c=this.dateTimeService.new().getTime()+o;this._storage.setItem("expires_at",""+c)}i&&this._storage.setItem("refresh_token",i),a&&a.forEach((o,l)=>{this._storage.setItem(l,o)})}tryLogin(e=null){return this.config.responseType==="code"?this.tryLoginCodeFlow(e).then(()=>!0):this.tryLoginImplicitFlow(e)}parseQueryString(e){return!e||e.length===0?{}:(e.charAt(0)==="?"&&(e=e.substr(1)),this.urlHelper.parseQueryString(e))}tryLoginCodeFlow(e=null){return Lt(this,null,function*(){e=e||{};let i=e.customHashFragment?e.customHashFragment.substring(1):window.location.search,r=this.getCodePartsFromUrl(i),s=r.code,a=r.state,o=r.session_state;if(!e.preventClearHashAfterLogin){let u=location.origin+location.pathname+location.search.replace(/code=[^&$]*/,"").replace(/scope=[^&$]*/,"").replace(/state=[^&$]*/,"").replace(/session_state=[^&$]*/,"").replace(/^\?&/,"?").replace(/&$/,"").replace(/^\?$/,"").replace(/&+/g,"&").replace(/\?&/,"?").replace(/\?$/,"")+location.hash;history.replaceState(null,window.name,u)}let[l,c]=this.parseState(a);if(this.state=c,r.error){this.debug("error trying to login"),this.handleLoginError(e,r);let u=new $t("code_error",{},r);return this.eventsSubject.next(u),Promise.reject(u)}if(!e.disableNonceCheck){if(!l)return this.saveRequestedRoute(),Promise.resolve();if(!e.disableOAuth2StateCheck&&!this.validateNonce(l)){let d=new $t("invalid_nonce_in_state",null);return this.eventsSubject.next(d),Promise.reject(d)}}return this.storeSessionState(o),s&&(yield this.getTokenFromCode(s,e),this.restoreRequestedRoute()),Promise.resolve()})}saveRequestedRoute(){this.config.preserveRequestedRoute&&this._storage.setItem("requested_route",window.location.pathname+window.location.search)}restoreRequestedRoute(){let e=this._storage.getItem("requested_route");e&&history.replaceState(null,"",window.location.origin+e)}getCodePartsFromUrl(e){return!e||e.length===0?this.urlHelper.getHashFragmentParams():(e.charAt(0)==="?"&&(e=e.substr(1)),this.urlHelper.parseQueryString(e))}getTokenFromCode(e,i){let r=new Fo({encoder:new vo}).set("grant_type","authorization_code").set("code",e).set("redirect_uri",i.customRedirectUri||this.redirectUri);if(!this.disablePKCE){let s;this.saveNoncesInLocalStorage&&typeof window.localStorage<"u"?s=localStorage.getItem("PKCE_verifier"):s=this._storage.getItem("PKCE_verifier"),s?r=r.set("code_verifier",s):console.warn("No PKCE verifier found in oauth storage!")}return this.fetchAndProcessToken(r,i)}fetchAndProcessToken(e,i){i=i||{},this.assertUrlNotNullAndCorrectProtocol(this.tokenEndpoint,"tokenEndpoint");let r=new zs().set("Content-Type","application/x-www-form-urlencoded");if(this.useHttpBasicAuth){let s=btoa(`${this.clientId}:${this.dummyClientSecret}`);r=r.set("Authorization","Basic "+s)}return this.useHttpBasicAuth||(e=e.set("client_id",this.clientId)),!this.useHttpBasicAuth&&this.dummyClientSecret&&(e=e.set("client_secret",this.dummyClientSecret)),new Promise((s,a)=>{if(this.customQueryParams)for(let o of Object.getOwnPropertyNames(this.customQueryParams))e=e.set(o,this.customQueryParams[o]);this.http.post(this.tokenEndpoint,e,{headers:r}).subscribe(o=>{this.debug("refresh tokenResponse",o),this.storeAccessTokenResponse(o.access_token,o.refresh_token,o.expires_in||this.fallbackAccessTokenExpirationTimeInSec,o.scope,this.extractRecognizedCustomParameters(o)),this.oidc&&o.id_token?this.processIdToken(o.id_token,o.access_token,i.disableNonceCheck).then(l=>{this.storeIdToken(l),this.eventsSubject.next(new Wi("token_received")),this.eventsSubject.next(new Wi("token_refreshed")),s(o)}).catch(l=>{this.eventsSubject.next(new $t("token_validation_error",l)),console.error("Error validating tokens"),console.error(l),a(l)}):(this.eventsSubject.next(new Wi("token_received")),this.eventsSubject.next(new Wi("token_refreshed")),s(o))},o=>{console.error("Error getting token",o),this.eventsSubject.next(new $t("token_refresh_error",o)),a(o)})})}tryLoginImplicitFlow(e=null){e=e||{};let i;e.customHashFragment?i=this.urlHelper.getHashFragmentParams(e.customHashFragment):i=this.urlHelper.getHashFragmentParams(),this.debug("parsed url",i);let r=i.state,[s,a]=this.parseState(r);if(this.state=a,i.error){this.debug("error trying to login"),this.handleLoginError(e,i);let d=new $t("token_error",{},i);return this.eventsSubject.next(d),Promise.reject(d)}let o=i.access_token,l=i.id_token,c=i.session_state,u=i.scope;if(!this.requestAccessToken&&!this.oidc)return Promise.reject("Either requestAccessToken or oidc (or both) must be true.");if(this.requestAccessToken&&!o||this.requestAccessToken&&!e.disableOAuth2StateCheck&&!r||this.oidc&&!l)return Promise.resolve(!1);if(this.sessionChecksEnabled&&!c&&this.logger.warn("session checks (Session Status Change Notification) were activated in the configuration but the id_token does not contain a session_state claim"),this.requestAccessToken&&!e.disableNonceCheck&&!this.validateNonce(s)){let h=new $t("invalid_nonce_in_state",null);return this.eventsSubject.next(h),Promise.reject(h)}return this.requestAccessToken&&this.storeAccessTokenResponse(o,null,i.expires_in||this.fallbackAccessTokenExpirationTimeInSec,u),this.oidc?this.processIdToken(l,o,e.disableNonceCheck).then(d=>e.validationHandler?e.validationHandler({accessToken:o,idClaims:d.idTokenClaims,idToken:d.idToken,state:r}).then(()=>d):d).then(d=>(this.storeIdToken(d),this.storeSessionState(c),this.clearHashAfterLogin&&!e.preventClearHashAfterLogin&&this.clearLocationHash(),this.eventsSubject.next(new Wi("token_received")),this.callOnTokenReceivedIfExists(e),this.inImplicitFlow=!1,!0)).catch(d=>(this.eventsSubject.next(new $t("token_validation_error",d)),this.logger.error("Error validating tokens"),this.logger.error(d),Promise.reject(d))):(this.eventsSubject.next(new Wi("token_received")),this.clearHashAfterLogin&&!e.preventClearHashAfterLogin&&this.clearLocationHash(),this.callOnTokenReceivedIfExists(e),Promise.resolve(!0))}parseState(e){let i=e,r="";if(e){let s=e.indexOf(this.config.nonceStateSeparator);s>-1&&(i=e.substr(0,s),r=e.substr(s+this.config.nonceStateSeparator.length))}return[i,r]}validateNonce(e){let i;return this.saveNoncesInLocalStorage&&typeof window.localStorage<"u"?i=localStorage.getItem("nonce"):i=this._storage.getItem("nonce"),i!==e?(console.error("Validating access_token failed, wrong state/nonce.",i,e),!1):!0}storeIdToken(e){this._storage.setItem("id_token",e.idToken),this._storage.setItem("id_token_claims_obj",e.idTokenClaimsJson),this._storage.setItem("id_token_expires_at",""+e.idTokenExpiresAt),this._storage.setItem("id_token_stored_at",""+this.dateTimeService.now())}storeSessionState(e){this._storage.setItem("session_state",e)}getSessionState(){return this._storage.getItem("session_state")}handleLoginError(e,i){e.onLoginError&&e.onLoginError(i),this.clearHashAfterLogin&&!e.preventClearHashAfterLogin&&this.clearLocationHash()}getClockSkewInMsec(e=6e5){return!this.clockSkewInSec&&this.clockSkewInSec!==0?e:this.clockSkewInSec*1e3}processIdToken(e,i,r=!1){let s=e.split("."),a=this.padBase64(s[0]),o=oO(a),l=JSON.parse(o),c=this.padBase64(s[1]),u=oO(c),d=JSON.parse(u),h;if(this.saveNoncesInLocalStorage&&typeof window.localStorage<"u"?h=localStorage.getItem("nonce"):h=this._storage.getItem("nonce"),Array.isArray(d.aud)){if(d.aud.every(w=>w!==this.clientId)){let w="Wrong audience: "+d.aud.join(",");return this.logger.warn(w),Promise.reject(w)}}else if(d.aud!==this.clientId){let w="Wrong audience: "+d.aud;return this.logger.warn(w),Promise.reject(w)}if(!d.sub){let w="No sub claim in id_token";return this.logger.warn(w),Promise.reject(w)}if(this.sessionChecksEnabled&&this.silentRefreshSubject&&this.silentRefreshSubject!==d.sub){let w=`After refreshing, we got an id_token for another user (sub). Expected sub: ${this.silentRefreshSubject}, received sub: ${d.sub}`;return this.logger.warn(w),Promise.reject(w)}if(!d.iat){let w="No iat claim in id_token";return this.logger.warn(w),Promise.reject(w)}if(!this.skipIssuerCheck&&d.iss!==this.issuer){let w="Wrong issuer: "+d.iss;return this.logger.warn(w),Promise.reject(w)}if(!r&&d.nonce!==h){let w="Wrong nonce: "+d.nonce;return this.logger.warn(w),Promise.reject(w)}if(Object.prototype.hasOwnProperty.call(this,"responseType")&&(this.responseType==="code"||this.responseType==="id_token")&&(this.disableAtHashCheck=!0),!this.disableAtHashCheck&&this.requestAccessToken&&!d.at_hash){let w="An at_hash is needed!";return this.logger.warn(w),Promise.reject(w)}let m=this.dateTimeService.now(),f=d.iat*1e3,p=d.exp*1e3,g=this.getClockSkewInMsec();if(f-g>=m||p+g-this.decreaseExpirationBySec<=m){let w="Token has expired";return console.error(w),console.error({now:m,issuedAtMSec:f,expiresAtMSec:p}),Promise.reject(w)}let y={accessToken:i,idToken:e,jwks:this.jwks,idTokenClaims:d,idTokenHeader:l,loadKeys:()=>this.loadJwks()};return this.disableAtHashCheck?this.checkSignature(y).then(()=>({idToken:e,idTokenClaims:d,idTokenClaimsJson:u,idTokenHeader:l,idTokenHeaderJson:o,idTokenExpiresAt:p})):this.checkAtHash(y).then(w=>{if(!this.disableAtHashCheck&&this.requestAccessToken&&!w){let k="Wrong at_hash";return this.logger.warn(k),Promise.reject(k)}return this.checkSignature(y).then(()=>{let k=!this.disableAtHashCheck,x={idToken:e,idTokenClaims:d,idTokenClaimsJson:u,idTokenHeader:l,idTokenHeaderJson:o,idTokenExpiresAt:p};return k?this.checkAtHash(y).then(C=>{if(this.requestAccessToken&&!C){let A="Wrong at_hash";return this.logger.warn(A),Promise.reject(A)}else return x}):x})})}getIdentityClaims(){let e=this._storage.getItem("id_token_claims_obj");return e?JSON.parse(e):null}getGrantedScopes(){let e=this._storage.getItem("granted_scopes");return e?JSON.parse(e):null}getIdToken(){return this._storage?this._storage.getItem("id_token"):null}padBase64(e){for(;e.length%4!==0;)e+="=";return e}getAccessToken(){return this._storage?this._storage.getItem("access_token"):null}getRefreshToken(){return this._storage?this._storage.getItem("refresh_token"):null}getAccessTokenExpiration(){return this._storage.getItem("expires_at")?parseInt(this._storage.getItem("expires_at"),10):null}getAccessTokenStoredAt(){return parseInt(this._storage.getItem("access_token_stored_at"),10)}getIdTokenStoredAt(){return parseInt(this._storage.getItem("id_token_stored_at"),10)}getIdTokenExpiration(){return this._storage.getItem("id_token_expires_at")?parseInt(this._storage.getItem("id_token_expires_at"),10):null}hasValidAccessToken(){if(this.getAccessToken()){let e=this._storage.getItem("expires_at"),i=this.dateTimeService.new();return!(e&&parseInt(e,10)-this.decreaseExpirationBySec=0&&this._storage.getItem(e)!==null?JSON.parse(this._storage.getItem(e)):null}authorizationHeader(){return"Bearer "+this.getAccessToken()}logOut(e={},i=""){let r=!1;typeof e=="boolean"&&(r=e,e={});let s=this.getIdToken();if(this._storage.removeItem("access_token"),this._storage.removeItem("id_token"),this._storage.removeItem("refresh_token"),this.saveNoncesInLocalStorage?(localStorage.removeItem("nonce"),localStorage.removeItem("PKCE_verifier")):(this._storage.removeItem("nonce"),this._storage.removeItem("PKCE_verifier")),this._storage.removeItem("expires_at"),this._storage.removeItem("id_token_claims_obj"),this._storage.removeItem("id_token_expires_at"),this._storage.removeItem("id_token_stored_at"),this._storage.removeItem("access_token_stored_at"),this._storage.removeItem("granted_scopes"),this._storage.removeItem("session_state"),this.config.customTokenParameters&&this.config.customTokenParameters.forEach(o=>this._storage.removeItem(o)),this.silentRefreshSubject=null,this.eventsSubject.next(new or("logout")),!this.logoutUrl||r)return;let a;if(!this.validateUrlForHttps(this.logoutUrl))throw new Error("logoutUrl must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");if(this.logoutUrl.indexOf("{{")>-1)a=this.logoutUrl.replace(/\{\{id_token\}\}/,encodeURIComponent(s)).replace(/\{\{client_id\}\}/,encodeURIComponent(this.clientId));else{let o=new Fo({encoder:new vo});s&&(o=o.set("id_token_hint",s));let l=this.postLogoutRedirectUri||this.redirectUriAsPostLogoutRedirectUriFallback&&this.redirectUri||"";l&&(o=o.set("post_logout_redirect_uri",l),i&&(o=o.set("state",i)));for(let c in e)o=o.set(c,e[c]);a=this.logoutUrl+(this.logoutUrl.indexOf("?")>-1?"&":"?")+o.toString()}this.config.openUri(a)}createAndSaveNonce(){let e=this;return this.createNonce().then(function(i){return e.saveNoncesInLocalStorage&&typeof window.localStorage<"u"?localStorage.setItem("nonce",i):e._storage.setItem("nonce",i),i})}ngOnDestroy(){this.clearAccessTokenTimer(),this.clearIdTokenTimer(),this.removeSilentRefreshEventListener();let e=this.document.getElementById(this.silentRefreshIFrameName);e&&e.remove(),this.stopSessionCheckTimer(),this.removeSessionCheckEventListener();let i=this.document.getElementById(this.sessionCheckIFrameName);i&&i.remove()}createNonce(){return new Promise(e=>{if(this.rngUrl)throw new Error("createNonce with rng-web-api has not been implemented so far");let i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",r=45,s="",a=typeof self>"u"?null:self.crypto||self.msCrypto;if(a){let o=new Uint8Array(r);a.getRandomValues(o),o.map||(o.map=Array.prototype.map),o=o.map(l=>i.charCodeAt(l%i.length)),s=String.fromCharCode.apply(null,o)}else for(;0r.type==="discovery_document_loaded")).subscribe(()=>this.initCodeFlowInternal(e,i))}initCodeFlowInternal(e="",i={}){if(!this.validateUrlForHttps(this.loginUrl))throw new Error("loginUrl must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).");let r={},s=null;typeof i=="string"?s=i:typeof i=="object"&&(r=i),this.createLoginUrl(e,s,null,!1,r).then(this.config.openUri).catch(a=>{console.error("Error in initAuthorizationCodeFlow"),console.error(a)})}createChallangeVerifierPairForPKCE(){return Lt(this,null,function*(){if(!this.crypto)throw new Error("PKCE support for code flow needs a CryptoHander. Did you import the OAuthModule using forRoot() ?");let e=yield this.createNonce(),i=yield this.crypto.calcHash(e,"sha-256");return[lO(i),e]})}extractRecognizedCustomParameters(e){let i=new Map;return this.config.customTokenParameters&&this.config.customTokenParameters.forEach(r=>{e[r]&&i.set(r,JSON.stringify(e[r]))}),i}revokeTokenAndLogout(e={},i=!1){let r=this.revocationEndpoint,s=this.getAccessToken(),a=this.getRefreshToken();if(!s)return Promise.resolve();let o=new Fo({encoder:new vo}),l=new zs().set("Content-Type","application/x-www-form-urlencoded");if(this.useHttpBasicAuth){let c=btoa(`${this.clientId}:${this.dummyClientSecret}`);l=l.set("Authorization","Basic "+c)}if(this.useHttpBasicAuth||(o=o.set("client_id",this.clientId)),!this.useHttpBasicAuth&&this.dummyClientSecret&&(o=o.set("client_secret",this.dummyClientSecret)),this.customQueryParams)for(let c of Object.getOwnPropertyNames(this.customQueryParams))o=o.set(c,this.customQueryParams[c]);return new Promise((c,u)=>{let d,h;if(s){let m=o.set("token",s).set("token_type_hint","access_token");d=this.http.post(r,m,{headers:l})}else d=ge(null);if(a){let m=o.set("token",a).set("token_type_hint","refresh_token");h=this.http.post(r,m,{headers:l})}else h=ge(null);i&&(d=d.pipe(Ai(m=>m.status===0?ge(null):qn(m))),h=h.pipe(Ai(m=>m.status===0?ge(null):qn(m)))),hr([d,h]).subscribe(m=>{this.logOut(e),c(m),this.logger.info("Token successfully revoked")},m=>{this.logger.error("Error revoking token",m),this.eventsSubject.next(new $t("token_revoke_error",m)),u(m)})})}clearLocationHash(){location.hash!=""&&(location.hash="")}static{this.\u0275fac=function(i){return new(i||n)(Re(De),Re(yr),Re(A0,8),Re(I0,8),Re(fc,8),Re(cO),Re(E0),Re(D0,8),Re(Ze),Re(Qd))}}static{this.\u0275prov=ee({token:n,factory:n.\u0275fac})}}return n})(),R0=class{},DC=class{handleError(t){return qn(t)}},Rq=(()=>{class n{constructor(e,i,r){this.oAuthService=e,this.errorHandler=i,this.moduleConfig=r}checkUrl(e){return this.moduleConfig.resourceServer.customUrlValidation?this.moduleConfig.resourceServer.customUrlValidation(e):this.moduleConfig.resourceServer.allowedUrls?!!this.moduleConfig.resourceServer.allowedUrls.find(i=>e.toLowerCase().startsWith(i.toLowerCase())):!0}intercept(e,i){let r=e.url.toLowerCase();return!this.moduleConfig||!this.moduleConfig.resourceServer||!this.checkUrl(r)?i.handle(e):this.moduleConfig.resourceServer.sendAccessToken?Kt(ge(this.oAuthService.getAccessToken()).pipe(it(a=>!!a)),this.oAuthService.events.pipe(it(a=>a.type==="token_received"),dw(this.oAuthService.waitForTokenInMsec||0),Ai(()=>ge(null)),Ne(()=>this.oAuthService.getAccessToken()))).pipe(Vt(1),yi(a=>{if(a){let o="Bearer "+a,l=e.headers.set("Authorization",o);e=e.clone({headers:l})}return i.handle(e).pipe(Ai(o=>this.errorHandler.handleError(o)))})):i.handle(e).pipe(Ai(a=>this.errorHandler.handleError(a)))}static{this.\u0275fac=function(i){return new(i||n)(Re(dO),Re(R0),Re(T0,8))}}static{this.\u0275prov=ee({token:n,factory:n.\u0275fac})}}return n})();function Lq(){return console}function Oq(){return typeof sessionStorage<"u"?sessionStorage:new kq}function Nq(n=null,t=M0){return Sa([dO,cO,{provide:E0,useFactory:Lq},{provide:A0,useFactory:Oq},{provide:I0,useClass:t},{provide:D0,useClass:Dq},{provide:R0,useClass:DC},{provide:T0,useValue:n},{provide:Zw,useClass:Rq,multi:!0},{provide:Qd,useClass:Sq}])}var hO=(()=>{class n{static forRoot(e=null,i=M0){return{ngModule:n,providers:[Nq(e,i)]}}static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=he({type:n})}static{this.\u0275inj=de({imports:[Jr]})}}return n})();var tme=new J("AUTH_CONFIG");function mO(n){return new Be(3e3,!1)}function Fq(){return new Be(3100,!1)}function Pq(){return new Be(3101,!1)}function Uq(n){return new Be(3001,!1)}function $q(n){return new Be(3003,!1)}function Vq(n){return new Be(3004,!1)}function pO(n,t){return new Be(3005,!1)}function gO(){return new Be(3006,!1)}function _O(){return new Be(3007,!1)}function bO(n,t){return new Be(3008,!1)}function vO(n){return new Be(3002,!1)}function yO(n,t,e,i,r){return new Be(3010,!1)}function CO(){return new Be(3011,!1)}function wO(){return new Be(3012,!1)}function xO(){return new Be(3200,!1)}function SO(){return new Be(3202,!1)}function kO(){return new Be(3013,!1)}function MO(n){return new Be(3014,!1)}function TO(n){return new Be(3015,!1)}function EO(n){return new Be(3016,!1)}function AO(n,t){return new Be(3404,!1)}function Bq(n){return new Be(3502,!1)}function IO(n){return new Be(3503,!1)}function DO(){return new Be(3300,!1)}function RO(n){return new Be(3504,!1)}function LO(n){return new Be(3301,!1)}function OO(n,t){return new Be(3302,!1)}function NO(n){return new Be(3303,!1)}function FO(n,t){return new Be(3400,!1)}function PO(n){return new Be(3401,!1)}function UO(n){return new Be(3402,!1)}function $O(n,t){return new Be(3505,!1)}function Ls(n){switch(n.length){case 0:return new Kr;case 1:return n[0];default:return new bo(n)}}function NC(n,t,e=new Map,i=new Map){let r=[],s=[],a=-1,o=null;if(t.forEach(l=>{let c=l.get("offset"),u=c==a,d=u&&o||new Map;l.forEach((h,m)=>{let f=m,p=h;if(m!=="offset")switch(f=n.normalizePropertyName(f,r),p){case cc:p=e.get(m);break;case jn:p=i.get(m);break;default:p=n.normalizeStyleValue(m,f,p,r);break}d.set(f,p)}),u||s.push(d),o=d,a=c}),r.length)throw Bq(r);return s}function L0(n,t,e,i){switch(t){case"start":n.onStart(()=>i(e&&RC(e,"start",n)));break;case"done":n.onDone(()=>i(e&&RC(e,"done",n)));break;case"destroy":n.onDestroy(()=>i(e&&RC(e,"destroy",n)));break}}function RC(n,t,e){let i=e.totalTime,r=!!e.disabled,s=O0(n.element,n.triggerName,n.fromState,n.toState,t||n.phaseName,i??n.totalTime,r),a=n._data;return a!=null&&(s._data=a),s}function O0(n,t,e,i,r="",s=0,a){return{element:n,triggerName:t,fromState:e,toState:i,phaseName:r,totalTime:s,disabled:!!a}}function rn(n,t,e){let i=n.get(t);return i||n.set(t,i=e),i}function FC(n){let t=n.indexOf(":"),e=n.substring(1,t),i=n.slice(t+1);return[e,i]}var zq=typeof document>"u"?null:document.documentElement;function N0(n){let t=n.parentNode||n.host||null;return t===zq?null:t}function Hq(n){return n.substring(1,6)=="ebkit"}var yo=null,fO=!1;function VO(n){yo||(yo=jq()||{},fO=yo.style?"WebkitAppearance"in yo.style:!1);let t=!0;return yo.style&&!Hq(n)&&(t=n in yo.style,!t&&fO&&(t="Webkit"+n.charAt(0).toUpperCase()+n.slice(1)in yo.style)),t}function jq(){return typeof document<"u"?document.body:null}function PC(n,t){for(;t;){if(t===n)return!0;t=N0(t)}return!1}function UC(n,t,e){if(e)return Array.from(n.querySelectorAll(t));let i=n.querySelector(t);return i?[i]:[]}var Wq=1e3,$C="{{",qq="}}",VC="ng-enter",F0="ng-leave",Xd="ng-trigger",Jd=".ng-trigger",BC="ng-animating",P0=".ng-animating";function Yr(n){if(typeof n=="number")return n;let t=n.match(/^(-?[\.\d]+)(m?s)/);return!t||t.length<2?0:LC(parseFloat(t[1]),t[2])}function LC(n,t){switch(t){case"s":return n*Wq;default:return n}}function eh(n,t,e){return n.hasOwnProperty("duration")?n:Gq(n,t,e)}function Gq(n,t,e){let i=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i,r,s=0,a="";if(typeof n=="string"){let o=n.match(i);if(o===null)return t.push(mO(n)),{duration:0,delay:0,easing:""};r=LC(parseFloat(o[1]),o[2]);let l=o[3];l!=null&&(s=LC(parseFloat(l),o[4]));let c=o[5];c&&(a=c)}else r=n;if(!e){let o=!1,l=t.length;r<0&&(t.push(Fq()),o=!0),s<0&&(t.push(Pq()),o=!0),o&&t.splice(l,0,mO(n))}return{duration:r,delay:s,easing:a}}function BO(n){return n.length?n[0]instanceof Map?n:n.map(t=>new Map(Object.entries(t))):[]}function lr(n,t,e){t.forEach((i,r)=>{let s=U0(r);e&&!e.has(r)&&e.set(r,n.style[s]),n.style[s]=i})}function wa(n,t){t.forEach((e,i)=>{let r=U0(i);n.style[r]=""})}function pc(n){return Array.isArray(n)?n.length==1?n[0]:LL(n):n}function zO(n,t,e){let i=t.params||{},r=zC(n);r.length&&r.forEach(s=>{i.hasOwnProperty(s)||e.push(Uq(s))})}var OC=new RegExp(`${$C}\\s*(.+?)\\s*${qq}`,"g");function zC(n){let t=[];if(typeof n=="string"){let e;for(;e=OC.exec(n);)t.push(e[1]);OC.lastIndex=0}return t}function gc(n,t,e){let i=`${n}`,r=i.replace(OC,(s,a)=>{let o=t[a];return o==null&&(e.push($q(a)),o=""),o.toString()});return r==i?n:r}var Kq=/-+([a-z0-9])/g;function U0(n){return n.replace(Kq,(...t)=>t[1].toUpperCase())}function HO(n,t){return n===0||t===0}function jO(n,t,e){if(e.size&&t.length){let i=t[0],r=[];if(e.forEach((s,a)=>{i.has(a)||r.push(a),i.set(a,s)}),r.length)for(let s=1;sa.set(o,$0(n,o)))}}return t}function sn(n,t,e){switch(t.type){case Ke.Trigger:return n.visitTrigger(t,e);case Ke.State:return n.visitState(t,e);case Ke.Transition:return n.visitTransition(t,e);case Ke.Sequence:return n.visitSequence(t,e);case Ke.Group:return n.visitGroup(t,e);case Ke.Animate:return n.visitAnimate(t,e);case Ke.Keyframes:return n.visitKeyframes(t,e);case Ke.Style:return n.visitStyle(t,e);case Ke.Reference:return n.visitReference(t,e);case Ke.AnimateChild:return n.visitAnimateChild(t,e);case Ke.AnimateRef:return n.visitAnimateRef(t,e);case Ke.Query:return n.visitQuery(t,e);case Ke.Stagger:return n.visitStagger(t,e);default:throw Vq(t.type)}}function $0(n,t){return window.getComputedStyle(n)[t]}var sw=(()=>{class n{validateStyleProperty(e){return VO(e)}containsElement(e,i){return PC(e,i)}getParentElement(e){return N0(e)}query(e,i,r){return UC(e,i,r)}computeStyle(e,i,r){return r||""}animate(e,i,r,s,a,o=[],l){return new Kr(r,s)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})(),wo=class{static NOOP=new sw},xo=class{};var Yq=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]),j0=class extends xo{normalizePropertyName(t,e){return U0(t)}normalizeStyleValue(t,e,i,r){let s="",a=i.toString().trim();if(Yq.has(e)&&i!==0&&i!=="0")if(typeof i=="number")s="px";else{let o=i.match(/^[+-]?[\d\.]+([a-z]*)$/);o&&o[1].length==0&&r.push(pO(t,i))}return a+s}};var W0="*";function Qq(n,t){let e=[];return typeof n=="string"?n.split(/\s*,\s*/).forEach(i=>Zq(i,e,t)):e.push(n),e}function Zq(n,t,e){if(n[0]==":"){let l=Xq(n,e);if(typeof l=="function"){t.push(l);return}n=l}let i=n.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(i==null||i.length<4)return e.push(TO(n)),t;let r=i[1],s=i[2],a=i[3];t.push(WO(r,a));let o=r==W0&&a==W0;s[0]=="<"&&!o&&t.push(WO(a,r))}function Xq(n,t){switch(n){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}var V0=new Set(["true","1"]),B0=new Set(["false","0"]);function WO(n,t){let e=V0.has(n)||B0.has(n),i=V0.has(t)||B0.has(t);return(r,s)=>{let a=n==W0||n==r,o=t==W0||t==s;return!a&&e&&typeof r=="boolean"&&(a=r?V0.has(n):B0.has(n)),!o&&i&&typeof s=="boolean"&&(o=s?V0.has(t):B0.has(t)),a&&o}}var tN=":self",Jq=new RegExp(`s*${tN}s*,?`,"g");function iN(n,t,e,i){return new KC(n).build(t,e,i)}var qO="",KC=class{_driver;constructor(t){this._driver=t}build(t,e,i){let r=new YC(e);return this._resetContextStyleTimingState(r),sn(this,pc(t),r)}_resetContextStyleTimingState(t){t.currentQuerySelector=qO,t.collectedStyles=new Map,t.collectedStyles.set(qO,new Map),t.currentTime=0}visitTrigger(t,e){let i=e.queryCount=0,r=e.depCount=0,s=[],a=[];return t.name.charAt(0)=="@"&&e.errors.push(gO()),t.definitions.forEach(o=>{if(this._resetContextStyleTimingState(e),o.type==Ke.State){let l=o,c=l.name;c.toString().split(/\s*,\s*/).forEach(u=>{l.name=u,s.push(this.visitState(l,e))}),l.name=c}else if(o.type==Ke.Transition){let l=this.visitTransition(o,e);i+=l.queryCount,r+=l.depCount,a.push(l)}else e.errors.push(_O())}),{type:Ke.Trigger,name:t.name,states:s,transitions:a,queryCount:i,depCount:r,options:null}}visitState(t,e){let i=this.visitStyle(t.styles,e),r=t.options&&t.options.params||null;if(i.containsDynamicStyles){let s=new Set,a=r||{};i.styles.forEach(o=>{o instanceof Map&&o.forEach(l=>{zC(l).forEach(c=>{a.hasOwnProperty(c)||s.add(c)})})}),s.size&&e.errors.push(bO(t.name,[...s.values()]))}return{type:Ke.State,name:t.name,style:i,options:r?{params:r}:null}}visitTransition(t,e){e.queryCount=0,e.depCount=0;let i=sn(this,pc(t.animation),e),r=Qq(t.expr,e.errors);return{type:Ke.Transition,matchers:r,animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Co(t.options)}}visitSequence(t,e){return{type:Ke.Sequence,steps:t.steps.map(i=>sn(this,i,e)),options:Co(t.options)}}visitGroup(t,e){let i=e.currentTime,r=0,s=t.steps.map(a=>{e.currentTime=i;let o=sn(this,a,e);return r=Math.max(r,e.currentTime),o});return e.currentTime=r,{type:Ke.Group,steps:s,options:Co(t.options)}}visitAnimate(t,e){let i=nG(t.timings,e.errors);e.currentAnimateTimings=i;let r,s=t.styles?t.styles:Ca({});if(s.type==Ke.Keyframes)r=this.visitKeyframes(s,e);else{let a=t.styles,o=!1;if(!a){o=!0;let c={};i.easing&&(c.easing=i.easing),a=Ca(c)}e.currentTime+=i.duration+i.delay;let l=this.visitStyle(a,e);l.isEmptyStep=o,r=l}return e.currentAnimateTimings=null,{type:Ke.Animate,timings:i,style:r,options:null}}visitStyle(t,e){let i=this._makeStyleAst(t,e);return this._validateStyleAst(i,e),i}_makeStyleAst(t,e){let i=[],r=Array.isArray(t.styles)?t.styles:[t.styles];for(let o of r)typeof o=="string"?o===jn?i.push(o):e.errors.push(vO(o)):i.push(new Map(Object.entries(o)));let s=!1,a=null;return i.forEach(o=>{if(o instanceof Map&&(o.has("easing")&&(a=o.get("easing"),o.delete("easing")),!s)){for(let l of o.values())if(l.toString().indexOf($C)>=0){s=!0;break}}}),{type:Ke.Style,styles:i,easing:a,offset:t.offset,containsDynamicStyles:s,options:null}}_validateStyleAst(t,e){let i=e.currentAnimateTimings,r=e.currentTime,s=e.currentTime;i&&s>0&&(s-=i.duration+i.delay),t.styles.forEach(a=>{typeof a!="string"&&a.forEach((o,l)=>{let c=e.collectedStyles.get(e.currentQuerySelector),u=c.get(l),d=!0;u&&(s!=r&&s>=u.startTime&&r<=u.endTime&&(e.errors.push(yO(l,u.startTime,u.endTime,s,r)),d=!1),s=u.startTime),d&&c.set(l,{startTime:s,endTime:r}),e.options&&zO(o,e.options,e.errors)})})}visitKeyframes(t,e){let i={type:Ke.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(CO()),i;let r=1,s=0,a=[],o=!1,l=!1,c=0,u=t.steps.map(y=>{let w=this._makeStyleAst(y,e),k=w.offset!=null?w.offset:iG(w.styles),x=0;return k!=null&&(s++,x=w.offset=k),l=l||x<0||x>1,o=o||x0&&s{let k=h>0?w==m?1:h*w:a[w],x=k*g;e.currentTime=f+p.delay+x,p.duration=x,this._validateStyleAst(y,e),y.offset=k,i.styles.push(y)}),i}visitReference(t,e){return{type:Ke.Reference,animation:sn(this,pc(t.animation),e),options:Co(t.options)}}visitAnimateChild(t,e){return e.depCount++,{type:Ke.AnimateChild,options:Co(t.options)}}visitAnimateRef(t,e){return{type:Ke.AnimateRef,animation:this.visitReference(t.animation,e),options:Co(t.options)}}visitQuery(t,e){let i=e.currentQuerySelector,r=t.options||{};e.queryCount++,e.currentQuery=t;let[s,a]=eG(t.selector);e.currentQuerySelector=i.length?i+" "+s:s,rn(e.collectedStyles,e.currentQuerySelector,new Map);let o=sn(this,pc(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:Ke.Query,selector:s,limit:r.limit||0,optional:!!r.optional,includeSelf:a,animation:o,originalSelector:t.selector,options:Co(t.options)}}visitStagger(t,e){e.currentQuery||e.errors.push(kO());let i=t.timings==="full"?{duration:0,delay:0,easing:"full"}:eh(t.timings,e.errors,!0);return{type:Ke.Stagger,animation:sn(this,pc(t.animation),e),timings:i,options:null}}};function eG(n){let t=!!n.split(/\s*,\s*/).find(e=>e==tN);return t&&(n=n.replace(Jq,"")),n=n.replace(/@\*/g,Jd).replace(/@\w+/g,e=>Jd+"-"+e.slice(1)).replace(/:animating/g,P0),[n,t]}function tG(n){return n?H({},n):null}var YC=class{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(t){this.errors=t}};function iG(n){if(typeof n=="string")return null;let t=null;if(Array.isArray(n))n.forEach(e=>{if(e instanceof Map&&e.has("offset")){let i=e;t=parseFloat(i.get("offset")),i.delete("offset")}});else if(n instanceof Map&&n.has("offset")){let e=n;t=parseFloat(e.get("offset")),e.delete("offset")}return t}function nG(n,t){if(n.hasOwnProperty("duration"))return n;if(typeof n=="number"){let s=eh(n,t).duration;return HC(s,0,"")}let e=n;if(e.split(/\s+/).some(s=>s.charAt(0)=="{"&&s.charAt(1)=="{")){let s=HC(0,0,"");return s.dynamic=!0,s.strValue=e,s}let r=eh(e,t);return HC(r.duration,r.delay,r.easing)}function Co(n){return n?(n=H({},n),n.params&&(n.params=tG(n.params))):n={},n}function HC(n,t,e){return{duration:n,delay:t,easing:e}}function aw(n,t,e,i,r,s,a=null,o=!1){return{type:1,element:n,keyframes:t,preStyleProps:e,postStyleProps:i,duration:r,delay:s,totalTime:r+s,easing:a,subTimeline:o}}var ih=class{_map=new Map;get(t){return this._map.get(t)||[]}append(t,e){let i=this._map.get(t);i||this._map.set(t,i=[]),i.push(...e)}has(t){return this._map.has(t)}clear(){this._map.clear()}},rG=1,sG=":enter",aG=new RegExp(sG,"g"),oG=":leave",lG=new RegExp(oG,"g");function nN(n,t,e,i,r,s=new Map,a=new Map,o,l,c=[]){return new QC().buildKeyframes(n,t,e,i,r,s,a,o,l,c)}var QC=class{buildKeyframes(t,e,i,r,s,a,o,l,c,u=[]){c=c||new ih;let d=new ZC(t,e,c,r,s,u,[]);d.options=l;let h=l.delay?Yr(l.delay):0;d.currentTimeline.delayNextStep(h),d.currentTimeline.setStyles([a],null,d.errors,l),sn(this,i,d);let m=d.timelines.filter(f=>f.containsAnimation());if(m.length&&o.size){let f;for(let p=m.length-1;p>=0;p--){let g=m[p];if(g.element===e){f=g;break}}f&&!f.allowOnlyTimelineStyles()&&f.setStyles([o],null,d.errors,l)}return m.length?m.map(f=>f.buildKeyframes()):[aw(e,[],[],[],0,h,"",!1)]}visitTrigger(t,e){}visitState(t,e){}visitTransition(t,e){}visitAnimateChild(t,e){let i=e.subInstructions.get(e.element);if(i){let r=e.createSubContext(t.options),s=e.currentTimeline.currentTime,a=this._visitSubInstructions(i,r,r.options);s!=a&&e.transformIntoNewTimeline(a)}e.previousNode=t}visitAnimateRef(t,e){let i=e.createSubContext(t.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([t.options,t.animation.options],e,i),this.visitReference(t.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=t}_applyAnimationRefDelays(t,e,i){for(let r of t){let s=r?.delay;if(s){let a=typeof s=="number"?s:Yr(gc(s,r?.params??{},e.errors));i.delayNextStep(a)}}}_visitSubInstructions(t,e,i){let s=e.currentTimeline.currentTime,a=i.duration!=null?Yr(i.duration):null,o=i.delay!=null?Yr(i.delay):null;return a!==0&&t.forEach(l=>{let c=e.appendInstructionToTimeline(l,a,o);s=Math.max(s,c.duration+c.delay)}),s}visitReference(t,e){e.updateOptions(t.options,!0),sn(this,t.animation,e),e.previousNode=t}visitSequence(t,e){let i=e.subContextCount,r=e,s=t.options;if(s&&(s.params||s.delay)&&(r=e.createSubContext(s),r.transformIntoNewTimeline(),s.delay!=null)){r.previousNode.type==Ke.Style&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=q0);let a=Yr(s.delay);r.delayNextStep(a)}t.steps.length&&(t.steps.forEach(a=>sn(this,a,r)),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>i&&r.transformIntoNewTimeline()),e.previousNode=t}visitGroup(t,e){let i=[],r=e.currentTimeline.currentTime,s=t.options&&t.options.delay?Yr(t.options.delay):0;t.steps.forEach(a=>{let o=e.createSubContext(t.options);s&&o.delayNextStep(s),sn(this,a,o),r=Math.max(r,o.currentTimeline.currentTime),i.push(o.currentTimeline)}),i.forEach(a=>e.currentTimeline.mergeTimelineCollectedStyles(a)),e.transformIntoNewTimeline(r),e.previousNode=t}_visitTiming(t,e){if(t.dynamic){let i=t.strValue,r=e.params?gc(i,e.params,e.errors):i;return eh(r,e.errors)}else return{duration:t.duration,delay:t.delay,easing:t.easing}}visitAnimate(t,e){let i=e.currentAnimateTimings=this._visitTiming(t.timings,e),r=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),r.snapshotCurrentStyles());let s=t.style;s.type==Ke.Keyframes?this.visitKeyframes(s,e):(e.incrementTime(i.duration),this.visitStyle(s,e),r.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t}visitStyle(t,e){let i=e.currentTimeline,r=e.currentAnimateTimings;!r&&i.hasCurrentStyleProperties()&&i.forwardFrame();let s=r&&r.easing||t.easing;t.isEmptyStep?i.applyEmptyStep(s):i.setStyles(t.styles,s,e.errors,e.options),e.previousNode=t}visitKeyframes(t,e){let i=e.currentAnimateTimings,r=e.currentTimeline.duration,s=i.duration,o=e.createSubContext().currentTimeline;o.easing=i.easing,t.styles.forEach(l=>{let c=l.offset||0;o.forwardTime(c*s),o.setStyles(l.styles,l.easing,e.errors,e.options),o.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(o),e.transformIntoNewTimeline(r+s),e.previousNode=t}visitQuery(t,e){let i=e.currentTimeline.currentTime,r=t.options||{},s=r.delay?Yr(r.delay):0;s&&(e.previousNode.type===Ke.Style||i==0&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=q0);let a=i,o=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!r.optional,e.errors);e.currentQueryTotal=o.length;let l=null;o.forEach((c,u)=>{e.currentQueryIndex=u;let d=e.createSubContext(t.options,c);s&&d.delayNextStep(s),c===e.element&&(l=d.currentTimeline),sn(this,t.animation,d),d.currentTimeline.applyStylesToKeyframe();let h=d.currentTimeline.currentTime;a=Math.max(a,h)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(a),l&&(e.currentTimeline.mergeTimelineCollectedStyles(l),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t}visitStagger(t,e){let i=e.parentContext,r=e.currentTimeline,s=t.timings,a=Math.abs(s.duration),o=a*(e.currentQueryTotal-1),l=a*e.currentQueryIndex;switch(s.duration<0?"reverse":s.easing){case"reverse":l=o-l;break;case"full":l=i.currentStaggerTime;break}let u=e.currentTimeline;l&&u.delayNextStep(l);let d=u.currentTime;sn(this,t.animation,e),e.previousNode=t,i.currentStaggerTime=r.currentTime-d+(r.startTime-i.currentTimeline.startTime)}},q0={},ZC=class n{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=q0;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(t,e,i,r,s,a,o,l){this._driver=t,this.element=e,this.subInstructions=i,this._enterClassName=r,this._leaveClassName=s,this.errors=a,this.timelines=o,this.currentTimeline=l||new G0(this._driver,e,0),o.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(t,e){if(!t)return;let i=t,r=this.options;i.duration!=null&&(r.duration=Yr(i.duration)),i.delay!=null&&(r.delay=Yr(i.delay));let s=i.params;if(s){let a=r.params;a||(a=this.options.params={}),Object.keys(s).forEach(o=>{(!e||!a.hasOwnProperty(o))&&(a[o]=gc(s[o],a,this.errors))})}}_copyOptions(){let t={};if(this.options){let e=this.options.params;if(e){let i=t.params={};Object.keys(e).forEach(r=>{i[r]=e[r]})}}return t}createSubContext(t=null,e,i){let r=e||this.element,s=new n(this._driver,r,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(r,i||0));return s.previousNode=this.previousNode,s.currentAnimateTimings=this.currentAnimateTimings,s.options=this._copyOptions(),s.updateOptions(t),s.currentQueryIndex=this.currentQueryIndex,s.currentQueryTotal=this.currentQueryTotal,s.parentContext=this,this.subContextCount++,s}transformIntoNewTimeline(t){return this.previousNode=q0,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(t,e,i){let r={duration:e??t.duration,delay:this.currentTimeline.currentTime+(i??0)+t.delay,easing:""},s=new XC(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,r,t.stretchStartingKeyframe);return this.timelines.push(s),r}incrementTime(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)}delayNextStep(t){t>0&&this.currentTimeline.delayNextStep(t)}invokeQuery(t,e,i,r,s,a){let o=[];if(r&&o.push(this.element),t.length>0){t=t.replace(aG,"."+this._enterClassName),t=t.replace(lG,"."+this._leaveClassName);let l=i!=1,c=this._driver.query(this.element,t,l);i!==0&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),o.push(...c)}return!s&&o.length==0&&a.push(MO(e)),o}},G0=class n{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(t,e,i,r){this._driver=t,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=r,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(t){let e=this._keyframes.size===1&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t}fork(t,e){return this.applyStylesToKeyframe(),new n(this._driver,t,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=rG,this._loadKeyframe()}forwardTime(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()}_updateStyle(t,e){this._localTimelineStyles.set(t,e),this._globalTimelineStyles.set(t,e),this._styleSummary.set(t,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(t){t&&this._previousKeyframe.set("easing",t);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||jn),this._currentKeyframe.set(e,jn);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(t,e,i,r){e&&this._previousKeyframe.set("easing",e);let s=r&&r.params||{},a=cG(t,this._globalTimelineStyles);for(let[o,l]of a){let c=gc(l,s,i);this._pendingStyles.set(o,c),this._localTimelineStyles.has(o)||this._backFill.set(o,this._globalTimelineStyles.get(o)??jn),this._updateStyle(o,c)}}applyStylesToKeyframe(){this._pendingStyles.size!=0&&(this._pendingStyles.forEach((t,e)=>{this._currentKeyframe.set(e,t)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((t,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,t)}))}snapshotCurrentStyles(){for(let[t,e]of this._localTimelineStyles)this._pendingStyles.set(t,e),this._updateStyle(t,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){let t=[];for(let e in this._currentKeyframe)t.push(e);return t}mergeTimelineCollectedStyles(t){t._styleSummary.forEach((e,i)=>{let r=this._styleSummary.get(i);(!r||e.time>r.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();let t=new Set,e=new Set,i=this._keyframes.size===1&&this.duration===0,r=[];this._keyframes.forEach((o,l)=>{let c=new Map([...this._backFill,...o]);c.forEach((u,d)=>{u===cc?t.add(d):u===jn&&e.add(d)}),i||c.set("offset",l/this.duration),r.push(c)});let s=[...t.values()],a=[...e.values()];if(i){let o=r[0],l=new Map(o);o.set("offset",0),l.set("offset",1),r=[o,l]}return aw(this.element,r,s,a,this.duration,this.startTime,this.easing,!1)}},XC=class extends G0{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(t,e,i,r,s,a,o=!1){super(t,e,a.delay),this.keyframes=i,this.preStyleProps=r,this.postStyleProps=s,this._stretchStartingKeyframe=o,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let t=this.keyframes,{delay:e,duration:i,easing:r}=this.timings;if(this._stretchStartingKeyframe&&e){let s=[],a=i+e,o=e/a,l=new Map(t[0]);l.set("offset",0),s.push(l);let c=new Map(t[0]);c.set("offset",GO(o)),s.push(c);let u=t.length-1;for(let d=1;d<=u;d++){let h=new Map(t[d]),m=h.get("offset"),f=e+m*i;h.set("offset",GO(f/a)),s.push(h)}i=a,e=0,r="",t=s}return aw(this.element,t,this.preStyleProps,this.postStyleProps,i,e,r,!0)}};function GO(n,t=3){let e=Math.pow(10,t-1);return Math.round(n*e)/e}function cG(n,t){let e=new Map,i;return n.forEach(r=>{if(r==="*"){i??=t.keys();for(let s of i)e.set(s,jn)}else for(let[s,a]of r)e.set(s,a)}),e}function KO(n,t,e,i,r,s,a,o,l,c,u,d,h){return{type:0,element:n,triggerName:t,isRemovalTransition:r,fromState:e,fromStyles:s,toState:i,toStyles:a,timelines:o,queriedElements:l,preStyleProps:c,postStyleProps:u,totalTime:d,errors:h}}var jC={},K0=class{_triggerName;ast;_stateStyles;constructor(t,e,i){this._triggerName=t,this.ast=e,this._stateStyles=i}match(t,e,i,r){return uG(this.ast.matchers,t,e,i,r)}buildStyles(t,e,i){let r=this._stateStyles.get("*");return t!==void 0&&(r=this._stateStyles.get(t?.toString())||r),r?r.buildStyles(e,i):new Map}build(t,e,i,r,s,a,o,l,c,u){let d=[],h=this.ast.options&&this.ast.options.params||jC,m=o&&o.params||jC,f=this.buildStyles(i,m,d),p=l&&l.params||jC,g=this.buildStyles(r,p,d),y=new Set,w=new Map,k=new Map,x=r==="void",C={params:rN(p,h),delay:this.ast.options?.delay},A=u?[]:nN(t,e,this.ast.animation,s,a,f,g,C,c,d),T=0;return A.forEach(E=>{T=Math.max(E.duration+E.delay,T)}),d.length?KO(e,this._triggerName,i,r,x,f,g,[],[],w,k,T,d):(A.forEach(E=>{let L=E.element,S=rn(w,L,new Set);E.preStyleProps.forEach(_=>S.add(_));let v=rn(k,L,new Set);E.postStyleProps.forEach(_=>v.add(_)),L!==e&&y.add(L)}),KO(e,this._triggerName,i,r,x,f,g,A,[...y.values()],w,k,T))}};function uG(n,t,e,i,r){return n.some(s=>s(t,e,i,r))}function rN(n,t){let e=H({},t);return Object.entries(n).forEach(([i,r])=>{r!=null&&(e[i]=r)}),e}var JC=class{styles;defaultParams;normalizer;constructor(t,e,i){this.styles=t,this.defaultParams=e,this.normalizer=i}buildStyles(t,e){let i=new Map,r=rN(t,this.defaultParams);return this.styles.styles.forEach(s=>{typeof s!="string"&&s.forEach((a,o)=>{a&&(a=gc(a,r,e));let l=this.normalizer.normalizePropertyName(o,e);a=this.normalizer.normalizeStyleValue(o,l,a,e),i.set(o,a)})}),i}};function dG(n,t,e){return new ew(n,t,e)}var ew=class{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(t,e,i){this.name=t,this.ast=e,this._normalizer=i,e.states.forEach(r=>{let s=r.options&&r.options.params||{};this.states.set(r.name,new JC(r.style,s,i))}),YO(this.states,"true","1"),YO(this.states,"false","0"),e.transitions.forEach(r=>{this.transitionFactories.push(new K0(t,r,this.states))}),this.fallbackTransition=hG(t,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(t,e,i,r){return this.transitionFactories.find(a=>a.match(t,e,i,r))||null}matchStyles(t,e,i){return this.fallbackTransition.buildStyles(t,e,i)}};function hG(n,t,e){let i=[(a,o)=>!0],r={type:Ke.Sequence,steps:[],options:null},s={type:Ke.Transition,animation:r,matchers:i,options:null,queryCount:0,depCount:0};return new K0(n,s,t)}function YO(n,t,e){n.has(t)?n.has(e)||n.set(e,n.get(t)):n.has(e)&&n.set(t,n.get(e))}var mG=new ih,tw=class{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i}register(t,e){let i=[],r=[],s=iN(this._driver,e,i,r);if(i.length)throw IO(i);this._animations.set(t,s)}_buildPlayer(t,e,i){let r=t.element,s=NC(this._normalizer,t.keyframes,e,i);return this._driver.animate(r,s,t.duration,t.delay,t.easing,[],!0)}create(t,e,i={}){let r=[],s=this._animations.get(t),a,o=new Map;if(s?(a=nN(this._driver,e,s,VC,F0,new Map,new Map,i,mG,r),a.forEach(u=>{let d=rn(o,u.element,new Map);u.postStyleProps.forEach(h=>d.set(h,null))})):(r.push(DO()),a=[]),r.length)throw RO(r);o.forEach((u,d)=>{u.forEach((h,m)=>{u.set(m,this._driver.computeStyle(d,m,jn))})});let l=a.map(u=>{let d=o.get(u.element);return this._buildPlayer(u,new Map,d)}),c=Ls(l);return this._playersById.set(t,c),c.onDestroy(()=>this.destroy(t)),this.players.push(c),c}destroy(t){let e=this._getPlayer(t);e.destroy(),this._playersById.delete(t);let i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(t){let e=this._playersById.get(t);if(!e)throw LO(t);return e}listen(t,e,i,r){let s=O0(e,"","","");return L0(this._getPlayer(t),i,s,r),()=>{}}command(t,e,i,r){if(i=="register"){this.register(t,r[0]);return}if(i=="create"){let a=r[0]||{};this.create(t,e,a);return}let s=this._getPlayer(t);switch(i){case"play":s.play();break;case"pause":s.pause();break;case"reset":s.reset();break;case"restart":s.restart();break;case"finish":s.finish();break;case"init":s.init();break;case"setPosition":s.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(t);break}}},QO="ng-animate-queued",fG=".ng-animate-queued",WC="ng-animate-disabled",pG=".ng-animate-disabled",gG="ng-star-inserted",_G=".ng-star-inserted",bG=[],sN={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},vG={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},cr="__ng_removed",nh=class{namespaceId;value;options;get params(){return this.options.params}constructor(t,e=""){this.namespaceId=e;let i=t&&t.hasOwnProperty("value"),r=i?t.value:t;if(this.value=CG(r),i){let s=t,{value:a}=s,o=lw(s,["value"]);this.options=o}else this.options={};this.options.params||(this.options.params={})}absorbOptions(t){let e=t.params;if(e){let i=this.options.params;Object.keys(e).forEach(r=>{i[r]==null&&(i[r]=e[r])})}}},th="void",qC=new nh(th),iw=class{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(t,e,i){this.id=t,this.hostElement=e,this._engine=i,this._hostClassName="ng-tns-"+t,Wn(e,this._hostClassName)}listen(t,e,i,r){if(!this._triggers.has(e))throw OO(i,e);if(i==null||i.length==0)throw NO(e);if(!wG(i))throw FO(i,e);let s=rn(this._elementListeners,t,[]),a={name:e,phase:i,callback:r};s.push(a);let o=rn(this._engine.statesByElement,t,new Map);return o.has(e)||(Wn(t,Xd),Wn(t,Xd+"-"+e),o.set(e,qC)),()=>{this._engine.afterFlush(()=>{let l=s.indexOf(a);l>=0&&s.splice(l,1),this._triggers.has(e)||o.delete(e)})}}register(t,e){return this._triggers.has(t)?!1:(this._triggers.set(t,e),!0)}_getTrigger(t){let e=this._triggers.get(t);if(!e)throw PO(t);return e}trigger(t,e,i,r=!0){let s=this._getTrigger(e),a=new rh(this.id,e,t),o=this._engine.statesByElement.get(t);o||(Wn(t,Xd),Wn(t,Xd+"-"+e),this._engine.statesByElement.set(t,o=new Map));let l=o.get(e),c=new nh(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&l&&c.absorbOptions(l.options),o.set(e,c),l||(l=qC),!(c.value===th)&&l.value===c.value){if(!kG(l.params,c.params)){let p=[],g=s.matchStyles(l.value,l.params,p),y=s.matchStyles(c.value,c.params,p);p.length?this._engine.reportError(p):this._engine.afterFlush(()=>{wa(t,g),lr(t,y)})}return}let h=rn(this._engine.playersByElement,t,[]);h.forEach(p=>{p.namespaceId==this.id&&p.triggerName==e&&p.queued&&p.destroy()});let m=s.matchTransition(l.value,c.value,t,c.params),f=!1;if(!m){if(!r)return;m=s.fallbackTransition,f=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:m,fromState:l,toState:c,player:a,isFallbackTransition:f}),f||(Wn(t,QO),a.onStart(()=>{_c(t,QO)})),a.onDone(()=>{let p=this.players.indexOf(a);p>=0&&this.players.splice(p,1);let g=this._engine.playersByElement.get(t);if(g){let y=g.indexOf(a);y>=0&&g.splice(y,1)}}),this.players.push(a),h.push(a),a}deregister(t){this._triggers.delete(t),this._engine.statesByElement.forEach(e=>e.delete(t)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(r=>r.name!=t))})}clearElementCache(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);let e=this._engine.playersByElement.get(t);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(t))}_signalRemovalForInnerTriggers(t,e){let i=this._engine.driver.query(t,Jd,!0);i.forEach(r=>{if(r[cr])return;let s=this._engine.fetchNamespacesByElement(r);s.size?s.forEach(a=>a.triggerLeaveAnimation(r,e,!1,!0)):this.clearElementCache(r)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(r=>this.clearElementCache(r)))}triggerLeaveAnimation(t,e,i,r){let s=this._engine.statesByElement.get(t),a=new Map;if(s){let o=[];if(s.forEach((l,c)=>{if(a.set(c,l.value),this._triggers.has(c)){let u=this.trigger(t,c,th,r);u&&o.push(u)}}),o.length)return this._engine.markElementAsRemoved(this.id,t,!0,e,a),i&&Ls(o).onDone(()=>this._engine.processLeaveNode(t)),!0}return!1}prepareLeaveAnimationListeners(t){let e=this._elementListeners.get(t),i=this._engine.statesByElement.get(t);if(e&&i){let r=new Set;e.forEach(s=>{let a=s.name;if(r.has(a))return;r.add(a);let l=this._triggers.get(a).fallbackTransition,c=i.get(a)||qC,u=new nh(th),d=new rh(this.id,a,t);this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:a,transition:l,fromState:c,toState:u,player:d,isFallbackTransition:!0})})}}removeNode(t,e){let i=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,e),this.triggerLeaveAnimation(t,e,!0))return;let r=!1;if(i.totalAnimations){let s=i.players.length?i.playersByQueriedElement.get(t):[];if(s&&s.length)r=!0;else{let a=t;for(;a=a.parentNode;)if(i.statesByElement.get(a)){r=!0;break}}}if(this.prepareLeaveAnimationListeners(t),r)i.markElementAsRemoved(this.id,t,!1,e);else{let s=t[cr];(!s||s===sN)&&(i.afterFlush(()=>this.clearElementCache(t)),i.destroyInnerAnimations(t),i._onRemovalComplete(t,e))}}insertNode(t,e){Wn(t,this._hostClassName)}drainQueuedTransitions(t){let e=[];return this._queue.forEach(i=>{let r=i.player;if(r.destroyed)return;let s=i.element,a=this._elementListeners.get(s);a&&a.forEach(o=>{if(o.name==i.triggerName){let l=O0(s,i.triggerName,i.fromState.value,i.toState.value);l._data=t,L0(i.player,o.phase,l,o.callback)}}),r.markedForDestroy?this._engine.afterFlush(()=>{r.destroy()}):e.push(i)}),this._queue=[],e.sort((i,r)=>{let s=i.transition.ast.depCount,a=r.transition.ast.depCount;return s==0||a==0?s-a:this._engine.driver.containsElement(i.element,r.element)?1:-1})}destroy(t){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,t)}},nw=class{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(t,e)=>{};_onRemovalComplete(t,e){this.onRemovalComplete(t,e)}constructor(t,e,i){this.bodyNode=t,this.driver=e,this._normalizer=i}get queuedPlayers(){let t=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&t.push(i)})}),t}createNamespace(t,e){let i=new iw(t,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[t]=i}_balanceNamespaceList(t,e){let i=this._namespaceList,r=this.namespacesByHostElement;if(i.length-1>=0){let a=!1,o=this.driver.getParentElement(e);for(;o;){let l=r.get(o);if(l){let c=i.indexOf(l);i.splice(c+1,0,t),a=!0;break}o=this.driver.getParentElement(o)}a||i.unshift(t)}else i.push(t);return r.set(e,t),t}register(t,e){let i=this._namespaceLookup[t];return i||(i=this.createNamespace(t,e)),i}registerTrigger(t,e,i){let r=this._namespaceLookup[t];r&&r.register(e,i)&&this.totalAnimations++}destroy(t,e){t&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{let i=this._fetchNamespace(t);this.namespacesByHostElement.delete(i.hostElement);let r=this._namespaceList.indexOf(i);r>=0&&this._namespaceList.splice(r,1),i.destroy(e),delete this._namespaceLookup[t]}))}_fetchNamespace(t){return this._namespaceLookup[t]}fetchNamespacesByElement(t){let e=new Set,i=this.statesByElement.get(t);if(i){for(let r of i.values())if(r.namespaceId){let s=this._fetchNamespace(r.namespaceId);s&&e.add(s)}}return e}trigger(t,e,i,r){if(z0(e)){let s=this._fetchNamespace(t);if(s)return s.trigger(e,i,r),!0}return!1}insertNode(t,e,i,r){if(!z0(e))return;let s=e[cr];if(s&&s.setForRemoval){s.setForRemoval=!1,s.setForMove=!0;let a=this.collectedLeaveElements.indexOf(e);a>=0&&this.collectedLeaveElements.splice(a,1)}if(t){let a=this._fetchNamespace(t);a&&a.insertNode(e,i)}r&&this.collectEnterElement(e)}collectEnterElement(t){this.collectedEnterElements.push(t)}markElementAsDisabled(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),Wn(t,WC)):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),_c(t,WC))}removeNode(t,e,i){if(z0(e)){let r=t?this._fetchNamespace(t):null;r?r.removeNode(e,i):this.markElementAsRemoved(t,e,!1,i);let s=this.namespacesByHostElement.get(e);s&&s.id!==t&&s.removeNode(e,i)}else this._onRemovalComplete(e,i)}markElementAsRemoved(t,e,i,r,s){this.collectedLeaveElements.push(e),e[cr]={namespaceId:t,setForRemoval:r,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:s}}listen(t,e,i,r,s){return z0(e)?this._fetchNamespace(t).listen(e,i,r,s):()=>{}}_buildInstruction(t,e,i,r,s){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,i,r,t.fromState.options,t.toState.options,e,s)}destroyInnerAnimations(t){let e=this.driver.query(t,Jd,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),this.playersByQueriedElement.size!=0&&(e=this.driver.query(t,P0,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(t){let e=this.playersByElement.get(t);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(t){let e=this.playersByQueriedElement.get(t);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(t=>{if(this.players.length)return Ls(this.players).onDone(()=>t());t()})}processLeaveNode(t){let e=t[cr];if(e&&e.setForRemoval){if(t[cr]=sN,e.namespaceId){this.destroyInnerAnimations(t);let i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(t)}this._onRemovalComplete(t,e.setForRemoval)}t.classList?.contains(WC)&&this.markElementAsDisabled(t,!1),this.driver.query(t,pG,!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(t=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,r)=>this._balanceNamespaceList(i,r)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){let i=this._whenQuietFns;this._whenQuietFns=[],e.length?Ls(e).onDone(()=>{i.forEach(r=>r())}):i.forEach(r=>r())}}reportError(t){throw UO(t)}_flushAnimations(t,e){let i=new ih,r=[],s=new Map,a=[],o=new Map,l=new Map,c=new Map,u=new Set;this.disabledNodes.forEach(D=>{u.add(D);let O=this.driver.query(D,fG,!0);for(let N=0;N{let N=VC+p++;f.set(O,N),D.forEach(F=>Wn(F,N))});let g=[],y=new Set,w=new Set;for(let D=0;Dy.add(F)):w.add(O))}let k=new Map,x=JO(h,Array.from(y));x.forEach((D,O)=>{let N=F0+p++;k.set(O,N),D.forEach(F=>Wn(F,N))}),t.push(()=>{m.forEach((D,O)=>{let N=f.get(O);D.forEach(F=>_c(F,N))}),x.forEach((D,O)=>{let N=k.get(O);D.forEach(F=>_c(F,N))}),g.forEach(D=>{this.processLeaveNode(D)})});let C=[],A=[];for(let D=this._namespaceList.length-1;D>=0;D--)this._namespaceList[D].drainQueuedTransitions(e).forEach(N=>{let F=N.player,z=N.element;if(C.push(F),this.collectedEnterElements.length){let ie=z[cr];if(ie&&ie.setForMove){if(ie.previousTriggersValues&&ie.previousTriggersValues.has(N.triggerName)){let ne=ie.previousTriggersValues.get(N.triggerName),Ee=this.statesByElement.get(N.element);if(Ee&&Ee.has(N.triggerName)){let we=Ee.get(N.triggerName);we.value=ne,Ee.set(N.triggerName,we)}}F.destroy();return}}let V=!d||!this.driver.containsElement(d,z),K=k.get(z),W=f.get(z),q=this._buildInstruction(N,i,W,K,V);if(q.errors&&q.errors.length){A.push(q);return}if(V){F.onStart(()=>wa(z,q.fromStyles)),F.onDestroy(()=>lr(z,q.toStyles)),r.push(F);return}if(N.isFallbackTransition){F.onStart(()=>wa(z,q.fromStyles)),F.onDestroy(()=>lr(z,q.toStyles)),r.push(F);return}let ae=[];q.timelines.forEach(ie=>{ie.stretchStartingKeyframe=!0,this.disabledNodes.has(ie.element)||ae.push(ie)}),q.timelines=ae,i.append(z,q.timelines);let pe={instruction:q,player:F,element:z};a.push(pe),q.queriedElements.forEach(ie=>rn(o,ie,[]).push(F)),q.preStyleProps.forEach((ie,ne)=>{if(ie.size){let Ee=l.get(ne);Ee||l.set(ne,Ee=new Set),ie.forEach((we,qe)=>Ee.add(qe))}}),q.postStyleProps.forEach((ie,ne)=>{let Ee=c.get(ne);Ee||c.set(ne,Ee=new Set),ie.forEach((we,qe)=>Ee.add(qe))})});if(A.length){let D=[];A.forEach(O=>{D.push($O(O.triggerName,O.errors))}),C.forEach(O=>O.destroy()),this.reportError(D)}let T=new Map,E=new Map;a.forEach(D=>{let O=D.element;i.has(O)&&(E.set(O,O),this._beforeAnimationBuild(D.player.namespaceId,D.instruction,T))}),r.forEach(D=>{let O=D.element;this._getPreviousPlayers(O,!1,D.namespaceId,D.triggerName,null).forEach(F=>{rn(T,O,[]).push(F),F.destroy()})});let L=g.filter(D=>eN(D,l,c)),S=new Map;XO(S,this.driver,w,c,jn).forEach(D=>{eN(D,l,c)&&L.push(D)});let _=new Map;m.forEach((D,O)=>{XO(_,this.driver,new Set(D),l,cc)}),L.forEach(D=>{let O=S.get(D),N=_.get(D);S.set(D,new Map([...O?.entries()??[],...N?.entries()??[]]))});let b=[],M=[],I={};a.forEach(D=>{let{element:O,player:N,instruction:F}=D;if(i.has(O)){if(u.has(O)){N.onDestroy(()=>lr(O,F.toStyles)),N.disabled=!0,N.overrideTotalTime(F.totalTime),r.push(N);return}let z=I;if(E.size>1){let K=O,W=[];for(;K=K.parentNode;){let q=E.get(K);if(q){z=q;break}W.push(K)}W.forEach(q=>E.set(q,z))}let V=this._buildAnimation(N.namespaceId,F,T,s,_,S);if(N.setRealPlayer(V),z===I)b.push(N);else{let K=this.playersByElement.get(z);K&&K.length&&(N.parentPlayer=Ls(K)),r.push(N)}}else wa(O,F.fromStyles),N.onDestroy(()=>lr(O,F.toStyles)),M.push(N),u.has(O)&&r.push(N)}),M.forEach(D=>{let O=s.get(D.element);if(O&&O.length){let N=Ls(O);D.setRealPlayer(N)}}),r.forEach(D=>{D.parentPlayer?D.syncPlayerEvents(D.parentPlayer):D.destroy()});for(let D=0;D!V.destroyed);z.length?xG(this,O,z):this.processLeaveNode(O)}return g.length=0,b.forEach(D=>{this.players.push(D),D.onDone(()=>{D.destroy();let O=this.players.indexOf(D);this.players.splice(O,1)}),D.play()}),b}afterFlush(t){this._flushFns.push(t)}afterFlushAnimationsDone(t){this._whenQuietFns.push(t)}_getPreviousPlayers(t,e,i,r,s){let a=[];if(e){let o=this.playersByQueriedElement.get(t);o&&(a=o)}else{let o=this.playersByElement.get(t);if(o){let l=!s||s==th;o.forEach(c=>{c.queued||!l&&c.triggerName!=r||a.push(c)})}}return(i||r)&&(a=a.filter(o=>!(i&&i!=o.namespaceId||r&&r!=o.triggerName))),a}_beforeAnimationBuild(t,e,i){let r=e.triggerName,s=e.element,a=e.isRemovalTransition?void 0:t,o=e.isRemovalTransition?void 0:r;for(let l of e.timelines){let c=l.element,u=c!==s,d=rn(i,c,[]);this._getPreviousPlayers(c,u,a,o,e.toState).forEach(m=>{let f=m.getRealPlayer();f.beforeDestroy&&f.beforeDestroy(),m.destroy(),d.push(m)})}wa(s,e.fromStyles)}_buildAnimation(t,e,i,r,s,a){let o=e.triggerName,l=e.element,c=[],u=new Set,d=new Set,h=e.timelines.map(f=>{let p=f.element;u.add(p);let g=p[cr];if(g&&g.removedBeforeQueried)return new Kr(f.duration,f.delay);let y=p!==l,w=SG((i.get(p)||bG).map(T=>T.getRealPlayer())).filter(T=>{let E=T;return E.element?E.element===p:!1}),k=s.get(p),x=a.get(p),C=NC(this._normalizer,f.keyframes,k,x),A=this._buildPlayer(f,C,w);if(f.subTimeline&&r&&d.add(p),y){let T=new rh(t,o,p);T.setRealPlayer(A),c.push(T)}return A});c.forEach(f=>{rn(this.playersByQueriedElement,f.element,[]).push(f),f.onDone(()=>yG(this.playersByQueriedElement,f.element,f))}),u.forEach(f=>Wn(f,BC));let m=Ls(h);return m.onDestroy(()=>{u.forEach(f=>_c(f,BC)),lr(l,e.toStyles)}),d.forEach(f=>{rn(r,f,[]).push(m)}),m}_buildPlayer(t,e,i){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,i):new Kr(t.duration,t.delay)}},rh=class{namespaceId;triggerName;element;_player=new Kr;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(t,e,i){this.namespaceId=t,this.triggerName=e,this.element=i}setRealPlayer(t){this._containsRealPlayer||(this._player=t,this._queuedCallbacks.forEach((e,i)=>{e.forEach(r=>L0(t,i,void 0,r))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(t){this.totalTime=t}syncPlayerEvents(t){let e=this._player;e.triggerCallback&&t.onStart(()=>e.triggerCallback("start")),t.onDone(()=>this.finish()),t.onDestroy(()=>this.destroy())}_queueEvent(t,e){rn(this._queuedCallbacks,t,[]).push(e)}onDone(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)}onStart(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)}onDestroy(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)}init(){this._player.init()}hasStarted(){return this.queued?!1:this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(t){this.queued||this._player.setPosition(t)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(t){let e=this._player;e.triggerCallback&&e.triggerCallback(t)}};function yG(n,t,e){let i=n.get(t);if(i){if(i.length){let r=i.indexOf(e);i.splice(r,1)}i.length==0&&n.delete(t)}return i}function CG(n){return n??null}function z0(n){return n&&n.nodeType===1}function wG(n){return n=="start"||n=="done"}function ZO(n,t){let e=n.style.display;return n.style.display=t??"none",e}function XO(n,t,e,i,r){let s=[];e.forEach(l=>s.push(ZO(l)));let a=[];i.forEach((l,c)=>{let u=new Map;l.forEach(d=>{let h=t.computeStyle(c,d,r);u.set(d,h),(!h||h.length==0)&&(c[cr]=vG,a.push(c))}),n.set(c,u)});let o=0;return e.forEach(l=>ZO(l,s[o++])),a}function JO(n,t){let e=new Map;if(n.forEach(o=>e.set(o,[])),t.length==0)return e;let i=1,r=new Set(t),s=new Map;function a(o){if(!o)return i;let l=s.get(o);if(l)return l;let c=o.parentNode;return e.has(c)?l=c:r.has(c)?l=i:l=a(c),s.set(o,l),l}return t.forEach(o=>{let l=a(o);l!==i&&e.get(l).push(o)}),e}function Wn(n,t){n.classList?.add(t)}function _c(n,t){n.classList?.remove(t)}function xG(n,t,e){Ls(e).onDone(()=>n.processLeaveNode(t))}function SG(n){let t=[];return aN(n,t),t}function aN(n,t){for(let e=0;er.add(s)):t.set(n,i),e.delete(n),!0}var bc=class{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(t,e)=>{};constructor(t,e,i){this._driver=e,this._normalizer=i,this._transitionEngine=new nw(t.body,e,i),this._timelineEngine=new tw(t.body,e,i),this._transitionEngine.onRemovalComplete=(r,s)=>this.onRemovalComplete(r,s)}registerTrigger(t,e,i,r,s){let a=t+"-"+r,o=this._triggerCache[a];if(!o){let l=[],c=[],u=iN(this._driver,s,l,c);if(l.length)throw AO(r,l);o=dG(r,u,this._normalizer),this._triggerCache[a]=o}this._transitionEngine.registerTrigger(e,r,o)}register(t,e){this._transitionEngine.register(t,e)}destroy(t,e){this._transitionEngine.destroy(t,e)}onInsert(t,e,i,r){this._transitionEngine.insertNode(t,e,i,r)}onRemove(t,e,i){this._transitionEngine.removeNode(t,e,i)}disableAnimations(t,e){this._transitionEngine.markElementAsDisabled(t,e)}process(t,e,i,r){if(i.charAt(0)=="@"){let[s,a]=FC(i),o=r;this._timelineEngine.command(s,e,a,o)}else this._transitionEngine.trigger(t,e,i,r)}listen(t,e,i,r,s){if(i.charAt(0)=="@"){let[a,o]=FC(i);return this._timelineEngine.listen(a,e,o,s)}return this._transitionEngine.listen(t,e,i,r,s)}flush(t=-1){this._transitionEngine.flush(t)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(t){this._transitionEngine.afterFlushAnimationsDone(t)}};function MG(n,t){let e=null,i=null;return Array.isArray(t)&&t.length?(e=GC(t[0]),t.length>1&&(i=GC(t[t.length-1]))):t instanceof Map&&(e=GC(t)),e||i?new TG(n,e,i):null}var TG=(()=>{class n{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(e,i,r){this._element=e,this._startStyles=i,this._endStyles=r;let s=n.initialStylesByElement.get(e);s||n.initialStylesByElement.set(e,s=new Map),this._initialStyles=s}start(){this._state<1&&(this._startStyles&&lr(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(lr(this._element,this._initialStyles),this._endStyles&&(lr(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(n.initialStylesByElement.delete(this._element),this._startStyles&&(wa(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(wa(this._element,this._endStyles),this._endStyles=null),lr(this._element,this._initialStyles),this._state=3)}}return n})();function GC(n){let t=null;return n.forEach((e,i)=>{EG(i)&&(t=t||new Map,t.set(i,e))}),t}function EG(n){return n==="display"||n==="position"}var Y0=class{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(t,e,i,r){this.element=t,this.keyframes=e,this.options=i,this._specialStyles=r,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;let t=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=t.length?t[t.length-1]:new Map;let e=()=>this._onFinish();this.domPlayer.addEventListener("finish",e),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",e)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(t){let e=[];return t.forEach(i=>{e.push(Object.fromEntries(i))}),e}_triggerWebAnimation(t,e,i){return t.animate(this._convertKeyframesToObject(e),i)}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(t=>t()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}setPosition(t){this.domPlayer===void 0&&this.init(),this.domPlayer.currentTime=t*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){let t=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,r)=>{r!=="offset"&&t.set(r,this._finished?i:$0(this.element,r))}),this.currentSnapshot=t}triggerCallback(t){let e=t==="start"?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}},Q0=class{validateStyleProperty(t){return!0}validateAnimatableStyleProperty(t){return!0}containsElement(t,e){return PC(t,e)}getParentElement(t){return N0(t)}query(t,e,i){return UC(t,e,i)}computeStyle(t,e,i){return $0(t,e)}animate(t,e,i,r,s,a=[]){let o=r==0?"both":"forwards",l={duration:i,delay:r,fill:o};s&&(l.easing=s);let c=new Map,u=a.filter(m=>m instanceof Y0);HO(i,r)&&u.forEach(m=>{m.currentSnapshot.forEach((f,p)=>c.set(p,f))});let d=BO(e).map(m=>new Map(m));d=jO(t,d,c);let h=MG(t,d);return new Y0(t,d,l,h)}};var H0="@",oN="@.disabled",Z0=class{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(t,e,i,r){this.namespaceId=t,this.delegate=e,this.engine=i,this._onDestroy=r}get data(){return this.delegate.data}destroyNode(t){this.delegate.destroyNode?.(t)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}appendChild(t,e){this.delegate.appendChild(t,e),this.engine.onInsert(this.namespaceId,e,t,!1)}insertBefore(t,e,i,r=!0){this.delegate.insertBefore(t,e,i),this.engine.onInsert(this.namespaceId,e,t,r)}removeChild(t,e,i){this.parentNode(e)&&this.engine.onRemove(this.namespaceId,e,this.delegate)}selectRootElement(t,e){return this.delegate.selectRootElement(t,e)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setAttribute(t,e,i,r){this.delegate.setAttribute(t,e,i,r)}removeAttribute(t,e,i){this.delegate.removeAttribute(t,e,i)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,i,r){this.delegate.setStyle(t,e,i,r)}removeStyle(t,e,i){this.delegate.removeStyle(t,e,i)}setProperty(t,e,i){e.charAt(0)==H0&&e==oN?this.disableAnimations(t,!!i):this.delegate.setProperty(t,e,i)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,i,r){return this.delegate.listen(t,e,i,r)}disableAnimations(t,e){this.engine.disableAnimations(t,e)}},rw=class extends Z0{factory;constructor(t,e,i,r,s){super(e,i,r,s),this.factory=t,this.namespaceId=e}setProperty(t,e,i){e.charAt(0)==H0?e.charAt(1)=="."&&e==oN?(i=i===void 0?!0:!!i,this.disableAnimations(t,i)):this.engine.process(this.namespaceId,t,e.slice(1),i):this.delegate.setProperty(t,e,i)}listen(t,e,i,r){if(e.charAt(0)==H0){let s=AG(t),a=e.slice(1),o="";return a.charAt(0)!=H0&&([a,o]=IG(a)),this.engine.listen(this.namespaceId,s,a,o,l=>{let c=l._data||-1;this.factory.scheduleListenerCallback(c,i,l)})}return this.delegate.listen(t,e,i,r)}};function AG(n){switch(n){case"body":return document.body;case"document":return document;case"window":return window;default:return n}}function IG(n){let t=n.indexOf("."),e=n.substring(0,t),i=n.slice(t+1);return[e,i]}var X0=class{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(t,e,i){this.delegate=t,this.engine=e,this._zone=i,e.onRemovalComplete=(r,s)=>{s?.removeChild(null,r)}}createRenderer(t,e){let i="",r=this.delegate.createRenderer(t,e);if(!t||!e?.data?.animation){let c=this._rendererCache,u=c.get(r);if(!u){let d=()=>c.delete(r);u=new Z0(i,r,this.engine,d),c.set(r,u)}return u}let s=e.id,a=e.id+"-"+this._currentId;this._currentId++,this.engine.register(a,t);let o=c=>{Array.isArray(c)?c.forEach(o):this.engine.registerTrigger(s,a,t,c.name,c)};return e.data.animation.forEach(o),new rw(this,a,r,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(t,e,i){if(t>=0&&te(i));return}let r=this._animationCallbacksBuffer;r.length==0&&queueMicrotask(()=>{this._zone.run(()=>{r.forEach(s=>{let[a,o]=s;a(o)}),this._animationCallbacksBuffer=[]})}),r.push([e,i])}end(){this._cdRecurDepth--,this._cdRecurDepth==0&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}componentReplaced(t){this.engine.flush(),this.delegate.componentReplaced?.(t)}};var RG=(()=>{class n extends bc{constructor(e,i,r){super(e,i,r)}ngOnDestroy(){this.flush()}static \u0275fac=function(i){return new(i||n)(Re(Ze),Re(wo),Re(xo))};static \u0275prov=ee({token:n,factory:n.\u0275fac})}return n})();function LG(){return new j0}function OG(n,t,e){return new X0(n,t,e)}var cN=[{provide:xo,useFactory:LG},{provide:bc,useClass:RG},{provide:Ri,useFactory:OG,deps:[Yw,bc,De]}],NG=[{provide:wo,useClass:sw},{provide:ot,useValue:"NoopAnimations"},...cN],lN=[{provide:wo,useFactory:()=>new Q0},{provide:ot,useFactory:()=>"BrowserAnimations"},...cN],uN=(()=>{class n{static withConfig(e){return{ngModule:n,providers:e.disableAnimations?NG:lN}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=he({type:n});static \u0275inj=de({providers:lN,imports:[kc]})}return n})();var FG=[{path:"",component:KM},{path:"mappinglanguage",component:mf},{path:"CapabilityStatement",component:xM},{path:"igs",component:aR},{path:"settings",component:PT},{path:"transform",component:uR},{path:"validate",component:aO}];function PG(n){return new sS(n,"./assets/i18n/",".json")}var dN=(()=>{class n{static{this.\u0275fac=function(i){return new(i||n)}}static{this.\u0275mod=he({type:n,bootstrap:[qk]})}static{this.\u0275inj=de({providers:[rS({loader:{provide:ns,useFactory:PG,deps:[yr]}}),{provide:tx,useValue:{coreLibraryLoader:()=>import("./chunk-DOW4KWQY.js"),lineNumbersLoader:()=>import("./chunk-DEDHGZJT.js"),languages:{json:()=>import("./chunk-SQRREDYF.js"),xml:()=>import("./chunk-DY3RCVMQ.js")}}},Xw(Jw()),am,{provide:zw,useValue:window.MATCHBOX_BASE_PATH}],imports:[xE,nx,zg.forRoot(FG,{useHash:!1}),hO.forRoot(),oR,uN,PL.forRoot(),vM.forRoot()]})}}return n})();var hN={production:!0};hN.production&&void 0;Qw().bootstrapModule(dN).catch(n=>console.log(n)); diff --git a/matchbox-server/src/main/resources/static/browser/polyfills-B6TNHZQ6.js b/matchbox-server/src/main/resources/static/browser/polyfills-B6TNHZQ6.js new file mode 100644 index 00000000000..9590af50946 --- /dev/null +++ b/matchbox-server/src/main/resources/static/browser/polyfills-B6TNHZQ6.js @@ -0,0 +1,2 @@ +var ce=globalThis;function te(t){return(ce.__Zone_symbol_prefix||"__zone_symbol__")+t}function ht(){let t=ce.performance;function n(I){t&&t.mark&&t.mark(I)}function a(I,s){t&&t.measure&&t.measure(I,s)}n("Zone");class e{static __symbol__=te;static assertZonePatched(){if(ce.Promise!==S.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let s=e.current;for(;s.parent;)s=s.parent;return s}static get current(){return b.zone}static get currentTask(){return D}static __load_patch(s,i,r=!1){if(S.hasOwnProperty(s)){let E=ce[te("forceDuplicateZoneCheck")]===!0;if(!r&&E)throw Error("Already loaded patch: "+s)}else if(!ce["__Zone_disable_"+s]){let E="Zone:"+s;n(E),S[s]=i(ce,e,R),a(E,E)}}get parent(){return this._parent}get name(){return this._name}_parent;_name;_properties;_zoneDelegate;constructor(s,i){this._parent=s,this._name=i?i.name||"unnamed":"",this._properties=i&&i.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,i)}get(s){let i=this.getZoneWith(s);if(i)return i._properties[s]}getZoneWith(s){let i=this;for(;i;){if(i._properties.hasOwnProperty(s))return i;i=i._parent}return null}fork(s){if(!s)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,s)}wrap(s,i){if(typeof s!="function")throw new Error("Expecting function got: "+s);let r=this._zoneDelegate.intercept(this,s,i),E=this;return function(){return E.runGuarded(r,this,arguments,i)}}run(s,i,r,E){b={parent:b,zone:this};try{return this._zoneDelegate.invoke(this,s,i,r,E)}finally{b=b.parent}}runGuarded(s,i=null,r,E){b={parent:b,zone:this};try{try{return this._zoneDelegate.invoke(this,s,i,r,E)}catch(x){if(this._zoneDelegate.handleError(this,x))throw x}}finally{b=b.parent}}runTask(s,i,r){if(s.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(s.zone||J).name+"; Execution: "+this.name+")");let E=s,{type:x,data:{isPeriodic:ee=!1,isRefreshable:M=!1}={}}=s;if(s.state===q&&(x===U||x===k))return;let he=s.state!=A;he&&E._transitionTo(A,d);let _e=D;D=E,b={parent:b,zone:this};try{x==k&&s.data&&!ee&&!M&&(s.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,E,i,r)}catch(Q){if(this._zoneDelegate.handleError(this,Q))throw Q}}finally{let Q=s.state;if(Q!==q&&Q!==X)if(x==U||ee||M&&Q===p)he&&E._transitionTo(d,A,p);else{let Te=E._zoneDelegates;this._updateTaskCount(E,-1),he&&E._transitionTo(q,A,q),M&&(E._zoneDelegates=Te)}b=b.parent,D=_e}}scheduleTask(s){if(s.zone&&s.zone!==this){let r=this;for(;r;){if(r===s.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${s.zone.name}`);r=r.parent}}s._transitionTo(p,q);let i=[];s._zoneDelegates=i,s._zone=this;try{s=this._zoneDelegate.scheduleTask(this,s)}catch(r){throw s._transitionTo(X,p,q),this._zoneDelegate.handleError(this,r),r}return s._zoneDelegates===i&&this._updateTaskCount(s,1),s.state==p&&s._transitionTo(d,p),s}scheduleMicroTask(s,i,r,E){return this.scheduleTask(new g(F,s,i,r,E,void 0))}scheduleMacroTask(s,i,r,E,x){return this.scheduleTask(new g(k,s,i,r,E,x))}scheduleEventTask(s,i,r,E,x){return this.scheduleTask(new g(U,s,i,r,E,x))}cancelTask(s){if(s.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(s.zone||J).name+"; Execution: "+this.name+")");if(!(s.state!==d&&s.state!==A)){s._transitionTo(V,d,A);try{this._zoneDelegate.cancelTask(this,s)}catch(i){throw s._transitionTo(X,V),this._zoneDelegate.handleError(this,i),i}return this._updateTaskCount(s,-1),s._transitionTo(q,V),s.runCount=-1,s}}_updateTaskCount(s,i){let r=s._zoneDelegates;i==-1&&(s._zoneDelegates=null);for(let E=0;EI.hasTask(i,r),onScheduleTask:(I,s,i,r)=>I.scheduleTask(i,r),onInvokeTask:(I,s,i,r,E,x)=>I.invokeTask(i,r,E,x),onCancelTask:(I,s,i,r)=>I.cancelTask(i,r)};class f{get zone(){return this._zone}_zone;_taskCounts={microTask:0,macroTask:0,eventTask:0};_parentDelegate;_forkDlgt;_forkZS;_forkCurrZone;_interceptDlgt;_interceptZS;_interceptCurrZone;_invokeDlgt;_invokeZS;_invokeCurrZone;_handleErrorDlgt;_handleErrorZS;_handleErrorCurrZone;_scheduleTaskDlgt;_scheduleTaskZS;_scheduleTaskCurrZone;_invokeTaskDlgt;_invokeTaskZS;_invokeTaskCurrZone;_cancelTaskDlgt;_cancelTaskZS;_cancelTaskCurrZone;_hasTaskDlgt;_hasTaskDlgtOwner;_hasTaskZS;_hasTaskCurrZone;constructor(s,i,r){this._zone=s,this._parentDelegate=i,this._forkZS=r&&(r&&r.onFork?r:i._forkZS),this._forkDlgt=r&&(r.onFork?i:i._forkDlgt),this._forkCurrZone=r&&(r.onFork?this._zone:i._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:i._interceptZS),this._interceptDlgt=r&&(r.onIntercept?i:i._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this._zone:i._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:i._invokeZS),this._invokeDlgt=r&&(r.onInvoke?i:i._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this._zone:i._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:i._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?i:i._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this._zone:i._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:i._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?i:i._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this._zone:i._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:i._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?i:i._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this._zone:i._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:i._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?i:i._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this._zone:i._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;let E=r&&r.onHasTask,x=i&&i._hasTaskZS;(E||x)&&(this._hasTaskZS=E?r:c,this._hasTaskDlgt=i,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=this._zone,r.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=i,this._scheduleTaskCurrZone=this._zone),r.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=i,this._invokeTaskCurrZone=this._zone),r.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=i,this._cancelTaskCurrZone=this._zone))}fork(s,i){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,s,i):new e(s,i)}intercept(s,i,r){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,s,i,r):i}invoke(s,i,r,E,x){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,s,i,r,E,x):i.apply(r,E)}handleError(s,i){return this._handleErrorZS?this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,s,i):!0}scheduleTask(s,i){let r=i;if(this._scheduleTaskZS)this._hasTaskZS&&r._zoneDelegates.push(this._hasTaskDlgtOwner),r=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,s,i),r||(r=i);else if(i.scheduleFn)i.scheduleFn(i);else if(i.type==F)z(i);else throw new Error("Task is missing scheduleFn.");return r}invokeTask(s,i,r,E){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,s,i,r,E):i.callback.apply(r,E)}cancelTask(s,i){let r;if(this._cancelTaskZS)r=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,s,i);else{if(!i.cancelFn)throw Error("Task is not cancelable");r=i.cancelFn(i)}return r}hasTask(s,i){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,s,i)}catch(r){this.handleError(s,r)}}_updateTaskCount(s,i){let r=this._taskCounts,E=r[s],x=r[s]=E+i;if(x<0)throw new Error("More tasks executed then were scheduled.");if(E==0||x==0){let ee={microTask:r.microTask>0,macroTask:r.macroTask>0,eventTask:r.eventTask>0,change:s};this.hasTask(this._zone,ee)}}}class g{type;source;invoke;callback;data;scheduleFn;cancelFn;_zone=null;runCount=0;_zoneDelegates=null;_state="notScheduled";constructor(s,i,r,E,x,ee){if(this.type=s,this.source=i,this.data=E,this.scheduleFn=x,this.cancelFn=ee,!r)throw new Error("callback is not defined");this.callback=r;let M=this;s===U&&E&&E.useG?this.invoke=g.invokeTask:this.invoke=function(){return g.invokeTask.call(ce,M,this,arguments)}}static invokeTask(s,i,r){s||(s=this),K++;try{return s.runCount++,s.zone.runTask(s,i,r)}finally{K==1&&$(),K--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(q,p)}_transitionTo(s,i,r){if(this._state===i||this._state===r)this._state=s,s==q&&(this._zoneDelegates=null);else throw new Error(`${this.type} '${this.source}': can not transition to '${s}', expecting state '${i}'${r?" or '"+r+"'":""}, was '${this._state}'.`)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}let T=te("setTimeout"),y=te("Promise"),w=te("then"),_=[],P=!1,L;function H(I){if(L||ce[y]&&(L=ce[y].resolve(0)),L){let s=L[w];s||(s=L.then),s.call(L,I)}else ce[T](I,0)}function z(I){K===0&&_.length===0&&H($),I&&_.push(I)}function $(){if(!P){for(P=!0;_.length;){let I=_;_=[];for(let s=0;sb,onUnhandledError:W,microtaskDrainDone:W,scheduleMicroTask:z,showUncaughtError:()=>!e[te("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:W,patchMethod:()=>W,bindArguments:()=>[],patchThen:()=>W,patchMacroTask:()=>W,patchEventPrototype:()=>W,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>W,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>W,wrapWithCurrentZone:()=>W,filterProperties:()=>[],attachOriginToPatched:()=>W,_redefineProperty:()=>W,patchCallbacks:()=>W,nativeScheduleMicroTask:H},b={parent:null,zone:new e(null,null)},D=null,K=0;function W(){}return a("Zone","Zone"),e}function dt(){let t=globalThis,n=t[te("forceDuplicateZoneCheck")]===!0;if(t.Zone&&(n||typeof t.Zone.__symbol__!="function"))throw new Error("Zone already loaded.");return t.Zone??=ht(),t.Zone}var pe=Object.getOwnPropertyDescriptor,Me=Object.defineProperty,Ae=Object.getPrototypeOf,_t=Object.create,Tt=Array.prototype.slice,je="addEventListener",He="removeEventListener",Ne=te(je),Ze=te(He),ae="true",le="false",ve=te("");function Ve(t,n){return Zone.current.wrap(t,n)}function xe(t,n,a,e,c){return Zone.current.scheduleMacroTask(t,n,a,e,c)}var j=te,we=typeof window<"u",be=we?window:void 0,Y=we&&be||globalThis,Et="removeAttribute";function Fe(t,n){for(let a=t.length-1;a>=0;a--)typeof t[a]=="function"&&(t[a]=Ve(t[a],n+"_"+a));return t}function gt(t,n){let a=t.constructor.name;for(let e=0;e{let y=function(){return T.apply(this,Fe(arguments,a+"."+c))};return fe(y,T),y})(f)}}}function et(t){return t?t.writable===!1?!1:!(typeof t.get=="function"&&typeof t.set>"u"):!0}var tt=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,De=!("nw"in Y)&&typeof Y.process<"u"&&Y.process.toString()==="[object process]",Ge=!De&&!tt&&!!(we&&be.HTMLElement),nt=typeof Y.process<"u"&&Y.process.toString()==="[object process]"&&!tt&&!!(we&&be.HTMLElement),Ce={},kt=j("enable_beforeunload"),Xe=function(t){if(t=t||Y.event,!t)return;let n=Ce[t.type];n||(n=Ce[t.type]=j("ON_PROPERTY"+t.type));let a=this||t.target||Y,e=a[n],c;if(Ge&&a===be&&t.type==="error"){let f=t;c=e&&e.call(this,f.message,f.filename,f.lineno,f.colno,f.error),c===!0&&t.preventDefault()}else c=e&&e.apply(this,arguments),t.type==="beforeunload"&&Y[kt]&&typeof c=="string"?t.returnValue=c:c!=null&&!c&&t.preventDefault();return c};function Ye(t,n,a){let e=pe(t,n);if(!e&&a&&pe(a,n)&&(e={enumerable:!0,configurable:!0}),!e||!e.configurable)return;let c=j("on"+n+"patched");if(t.hasOwnProperty(c)&&t[c])return;delete e.writable,delete e.value;let f=e.get,g=e.set,T=n.slice(2),y=Ce[T];y||(y=Ce[T]=j("ON_PROPERTY"+T)),e.set=function(w){let _=this;if(!_&&t===Y&&(_=Y),!_)return;typeof _[y]=="function"&&_.removeEventListener(T,Xe),g?.call(_,null),_[y]=w,typeof w=="function"&&_.addEventListener(T,Xe,!1)},e.get=function(){let w=this;if(!w&&t===Y&&(w=Y),!w)return null;let _=w[y];if(_)return _;if(f){let P=f.call(this);if(P)return e.set.call(this,P),typeof w[Et]=="function"&&w.removeAttribute(n),P}return null},Me(t,n,e),t[c]=!0}function rt(t,n,a){if(n)for(let e=0;efunction(g,T){let y=a(g,T);return y.cbIdx>=0&&typeof T[y.cbIdx]=="function"?xe(y.name,T[y.cbIdx],y,c):f.apply(g,T)})}function fe(t,n){t[j("OriginalDelegate")]=n}var $e=!1,Le=!1;function yt(){if($e)return Le;$e=!0;try{let t=be.navigator.userAgent;(t.indexOf("MSIE ")!==-1||t.indexOf("Trident/")!==-1||t.indexOf("Edge/")!==-1)&&(Le=!0)}catch{}return Le}function Je(t){return typeof t=="function"}function Ke(t){return typeof t=="number"}var pt={useG:!0},ne={},ot={},st=new RegExp("^"+ve+"(\\w+)(true|false)$"),it=j("propagationStopped");function ct(t,n){let a=(n?n(t):t)+le,e=(n?n(t):t)+ae,c=ve+a,f=ve+e;ne[t]={},ne[t][le]=c,ne[t][ae]=f}function vt(t,n,a,e){let c=e&&e.add||je,f=e&&e.rm||He,g=e&&e.listeners||"eventListeners",T=e&&e.rmAll||"removeAllListeners",y=j(c),w="."+c+":",_="prependListener",P="."+_+":",L=function(p,d,A){if(p.isRemoved)return;let V=p.callback;typeof V=="object"&&V.handleEvent&&(p.callback=k=>V.handleEvent(k),p.originalDelegate=V);let X;try{p.invoke(p,d,[A])}catch(k){X=k}let F=p.options;if(F&&typeof F=="object"&&F.once){let k=p.originalDelegate?p.originalDelegate:p.callback;d[f].call(d,A.type,k,F)}return X};function H(p,d,A){if(d=d||t.event,!d)return;let V=p||d.target||t,X=V[ne[d.type][A?ae:le]];if(X){let F=[];if(X.length===1){let k=L(X[0],V,d);k&&F.push(k)}else{let k=X.slice();for(let U=0;U{throw U})}}}let z=function(p){return H(this,p,!1)},$=function(p){return H(this,p,!0)};function J(p,d){if(!p)return!1;let A=!0;d&&d.useG!==void 0&&(A=d.useG);let V=d&&d.vh,X=!0;d&&d.chkDup!==void 0&&(X=d.chkDup);let F=!1;d&&d.rt!==void 0&&(F=d.rt);let k=p;for(;k&&!k.hasOwnProperty(c);)k=Ae(k);if(!k&&p[c]&&(k=p),!k||k[y])return!1;let U=d&&d.eventNameToString,S={},R=k[y]=k[c],b=k[j(f)]=k[f],D=k[j(g)]=k[g],K=k[j(T)]=k[T],W;d&&d.prepend&&(W=k[j(d.prepend)]=k[d.prepend]);function I(o,u){return u?typeof o=="boolean"?{capture:o,passive:!0}:o?typeof o=="object"&&o.passive!==!1?{...o,passive:!0}:o:{passive:!0}:o}let s=function(o){if(!S.isExisting)return R.call(S.target,S.eventName,S.capture?$:z,S.options)},i=function(o){if(!o.isRemoved){let u=ne[o.eventName],v;u&&(v=u[o.capture?ae:le]);let C=v&&o.target[v];if(C){for(let m=0;mre.zone.cancelTask(re);o.call(Ee,"abort",ie,{once:!0}),re.removeAbortListener=()=>Ee.removeEventListener("abort",ie)}if(S.target=null,me&&(me.taskData=null),Be&&(S.options.once=!0),typeof re.options!="boolean"&&(re.options=se),re.target=N,re.capture=Se,re.eventName=Z,B&&(re.originalDelegate=G),O?ge.unshift(re):ge.push(re),m)return N}};return k[c]=l(R,w,ee,M,F),W&&(k[_]=l(W,P,E,M,F,!0)),k[f]=function(){let o=this||t,u=arguments[0];d&&d.transferEventName&&(u=d.transferEventName(u));let v=arguments[2],C=v?typeof v=="boolean"?!0:v.capture:!1,m=arguments[1];if(!m)return b.apply(this,arguments);if(V&&!V(b,m,o,arguments))return;let O=ne[u],N;O&&(N=O[C?ae:le]);let Z=N&&o[N];if(Z)for(let G=0;Gfunction(c,f){c[it]=!0,e&&e.apply(c,f)})}function Pt(t,n){n.patchMethod(t,"queueMicrotask",a=>function(e,c){Zone.current.scheduleMicroTask("queueMicrotask",c[0])})}var Re=j("zoneTask");function ke(t,n,a,e){let c=null,f=null;n+=e,a+=e;let g={};function T(w){let _=w.data;_.args[0]=function(){return w.invoke.apply(this,arguments)};let P=c.apply(t,_.args);return Ke(P)?_.handleId=P:(_.handle=P,_.isRefreshable=Je(P.refresh)),w}function y(w){let{handle:_,handleId:P}=w.data;return f.call(t,_??P)}c=ue(t,n,w=>function(_,P){if(Je(P[0])){let L={isRefreshable:!1,isPeriodic:e==="Interval",delay:e==="Timeout"||e==="Interval"?P[1]||0:void 0,args:P},H=P[0];P[0]=function(){try{return H.apply(this,arguments)}finally{let{handle:A,handleId:V,isPeriodic:X,isRefreshable:F}=L;!X&&!F&&(V?delete g[V]:A&&(A[Re]=null))}};let z=xe(n,P[0],L,T,y);if(!z)return z;let{handleId:$,handle:J,isRefreshable:q,isPeriodic:p}=z.data;if($)g[$]=z;else if(J&&(J[Re]=z,q&&!p)){let d=J.refresh;J.refresh=function(){let{zone:A,state:V}=z;return V==="notScheduled"?(z._state="scheduled",A._updateTaskCount(z,1)):V==="running"&&(z._state="scheduling"),d.call(this)}}return J??$??z}else return w.apply(t,P)}),f=ue(t,a,w=>function(_,P){let L=P[0],H;Ke(L)?(H=g[L],delete g[L]):(H=L?.[Re],H?L[Re]=null:H=L),H?.type?H.cancelFn&&H.zone.cancelTask(H):w.apply(t,P)})}function Rt(t,n){let{isBrowser:a,isMix:e}=n.getGlobalObjects();if(!a&&!e||!t.customElements||!("customElements"in t))return;let c=["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback","formAssociatedCallback","formDisabledCallback","formResetCallback","formStateRestoreCallback"];n.patchCallbacks(n,t.customElements,"customElements","define",c)}function Ct(t,n){if(Zone[n.symbol("patchEventTarget")])return;let{eventNames:a,zoneSymbolEventNames:e,TRUE_STR:c,FALSE_STR:f,ZONE_SYMBOL_PREFIX:g}=n.getGlobalObjects();for(let y=0;yf.target===t);if(e.length===0)return n;let c=e[0].ignoreProperties;return n.filter(f=>c.indexOf(f)===-1)}function Qe(t,n,a,e){if(!t)return;let c=lt(t,n,a);rt(t,c,e)}function Ie(t){return Object.getOwnPropertyNames(t).filter(n=>n.startsWith("on")&&n.length>2).map(n=>n.substring(2))}function Dt(t,n){if(De&&!nt||Zone[t.symbol("patchEvents")])return;let a=n.__Zone_ignore_on_properties,e=[];if(Ge){let c=window;e=e.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);let f=[];Qe(c,Ie(c),a&&a.concat(f),Ae(c))}e=e.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let c=0;c{let a=n[t.__symbol__("legacyPatch")];a&&a()}),t.__load_patch("timers",n=>{let a="set",e="clear";ke(n,a,e,"Timeout"),ke(n,a,e,"Interval"),ke(n,a,e,"Immediate")}),t.__load_patch("requestAnimationFrame",n=>{ke(n,"request","cancel","AnimationFrame"),ke(n,"mozRequest","mozCancel","AnimationFrame"),ke(n,"webkitRequest","webkitCancel","AnimationFrame")}),t.__load_patch("blocking",(n,a)=>{let e=["alert","prompt","confirm"];for(let c=0;cfunction(w,_){return a.current.run(g,n,_,y)})}}),t.__load_patch("EventTarget",(n,a,e)=>{wt(n,e),Ct(n,e);let c=n.XMLHttpRequestEventTarget;c&&c.prototype&&e.patchEventTarget(n,e,[c.prototype])}),t.__load_patch("MutationObserver",(n,a,e)=>{ye("MutationObserver"),ye("WebKitMutationObserver")}),t.__load_patch("IntersectionObserver",(n,a,e)=>{ye("IntersectionObserver")}),t.__load_patch("FileReader",(n,a,e)=>{ye("FileReader")}),t.__load_patch("on_property",(n,a,e)=>{Dt(e,n)}),t.__load_patch("customElements",(n,a,e)=>{Rt(n,e)}),t.__load_patch("XHR",(n,a)=>{w(n);let e=j("xhrTask"),c=j("xhrSync"),f=j("xhrListener"),g=j("xhrScheduled"),T=j("xhrURL"),y=j("xhrErrorBeforeScheduled");function w(_){let P=_.XMLHttpRequest;if(!P)return;let L=P.prototype;function H(R){return R[e]}let z=L[Ne],$=L[Ze];if(!z){let R=_.XMLHttpRequestEventTarget;if(R){let b=R.prototype;z=b[Ne],$=b[Ze]}}let J="readystatechange",q="scheduled";function p(R){let b=R.data,D=b.target;D[g]=!1,D[y]=!1;let K=D[f];z||(z=D[Ne],$=D[Ze]),K&&$.call(D,J,K);let W=D[f]=()=>{if(D.readyState===D.DONE)if(!b.aborted&&D[g]&&R.state===q){let s=D[a.__symbol__("loadfalse")];if(D.status!==0&&s&&s.length>0){let i=R.invoke;R.invoke=function(){let r=D[a.__symbol__("loadfalse")];for(let E=0;Efunction(R,b){return R[c]=b[2]==!1,R[T]=b[1],V.apply(R,b)}),X="XMLHttpRequest.send",F=j("fetchTaskAborting"),k=j("fetchTaskScheduling"),U=ue(L,"send",()=>function(R,b){if(a.current[k]===!0||R[c])return U.apply(R,b);{let D={target:R,url:R[T],isPeriodic:!1,args:b,aborted:!1},K=xe(X,d,D,p,A);R&&R[y]===!0&&!D.aborted&&K.state===q&&K.invoke()}}),S=ue(L,"abort",()=>function(R,b){let D=H(R);if(D&&typeof D.type=="string"){if(D.cancelFn==null||D.data&&D.data.aborted)return;D.zone.cancelTask(D)}else if(a.current[F]===!0)return S.apply(R,b)})}}),t.__load_patch("geolocation",n=>{n.navigator&&n.navigator.geolocation&>(n.navigator.geolocation,["getCurrentPosition","watchPosition"])}),t.__load_patch("PromiseRejectionEvent",(n,a)=>{function e(c){return function(f){at(n,c).forEach(T=>{let y=n.PromiseRejectionEvent;if(y){let w=new y(c,{promise:f.promise,reason:f.rejection});T.invoke(w)}})}}n.PromiseRejectionEvent&&(a[j("unhandledPromiseRejectionHandler")]=e("unhandledrejection"),a[j("rejectionHandledHandler")]=e("rejectionhandled"))}),t.__load_patch("queueMicrotask",(n,a,e)=>{Pt(n,e)})}function Ot(t){t.__load_patch("ZoneAwarePromise",(n,a,e)=>{let c=Object.getOwnPropertyDescriptor,f=Object.defineProperty;function g(h){if(h&&h.toString===Object.prototype.toString){let l=h.constructor&&h.constructor.name;return(l||"")+": "+JSON.stringify(h)}return h?h.toString():Object.prototype.toString.call(h)}let T=e.symbol,y=[],w=n[T("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")]!==!1,_=T("Promise"),P=T("then"),L="__creationTrace__";e.onUnhandledError=h=>{if(e.showUncaughtError()){let l=h&&h.rejection;l?console.error("Unhandled Promise rejection:",l instanceof Error?l.message:l,"; Zone:",h.zone.name,"; Task:",h.task&&h.task.source,"; Value:",l,l instanceof Error?l.stack:void 0):console.error(h)}},e.microtaskDrainDone=()=>{for(;y.length;){let h=y.shift();try{h.zone.runGuarded(()=>{throw h.throwOriginal?h.rejection:h})}catch(l){z(l)}}};let H=T("unhandledPromiseRejectionHandler");function z(h){e.onUnhandledError(h);try{let l=a[H];typeof l=="function"&&l.call(this,h)}catch{}}function $(h){return h&&typeof h.then=="function"}function J(h){return h}function q(h){return M.reject(h)}let p=T("state"),d=T("value"),A=T("finally"),V=T("parentPromiseValue"),X=T("parentPromiseState"),F="Promise.then",k=null,U=!0,S=!1,R=0;function b(h,l){return o=>{try{I(h,l,o)}catch(u){I(h,!1,u)}}}let D=function(){let h=!1;return function(o){return function(){h||(h=!0,o.apply(null,arguments))}}},K="Promise resolved with itself",W=T("currentTaskTrace");function I(h,l,o){let u=D();if(h===o)throw new TypeError(K);if(h[p]===k){let v=null;try{(typeof o=="object"||typeof o=="function")&&(v=o&&o.then)}catch(C){return u(()=>{I(h,!1,C)})(),h}if(l!==S&&o instanceof M&&o.hasOwnProperty(p)&&o.hasOwnProperty(d)&&o[p]!==k)i(o),I(h,o[p],o[d]);else if(l!==S&&typeof v=="function")try{v.call(o,u(b(h,l)),u(b(h,!1)))}catch(C){u(()=>{I(h,!1,C)})()}else{h[p]=l;let C=h[d];if(h[d]=o,h[A]===A&&l===U&&(h[p]=h[X],h[d]=h[V]),l===S&&o instanceof Error){let m=a.currentTask&&a.currentTask.data&&a.currentTask.data[L];m&&f(o,W,{configurable:!0,enumerable:!1,writable:!0,value:m})}for(let m=0;m{try{let O=h[d],N=!!o&&A===o[A];N&&(o[V]=O,o[X]=C);let Z=l.run(m,void 0,N&&m!==q&&m!==J?[]:[O]);I(o,!0,Z)}catch(O){I(o,!1,O)}},o)}let E="function ZoneAwarePromise() { [native code] }",x=function(){},ee=n.AggregateError;class M{static toString(){return E}static resolve(l){return l instanceof M?l:I(new this(null),U,l)}static reject(l){return I(new this(null),S,l)}static withResolvers(){let l={};return l.promise=new M((o,u)=>{l.resolve=o,l.reject=u}),l}static any(l){if(!l||typeof l[Symbol.iterator]!="function")return Promise.reject(new ee([],"All promises were rejected"));let o=[],u=0;try{for(let m of l)u++,o.push(M.resolve(m))}catch{return Promise.reject(new ee([],"All promises were rejected"))}if(u===0)return Promise.reject(new ee([],"All promises were rejected"));let v=!1,C=[];return new M((m,O)=>{for(let N=0;N{v||(v=!0,m(Z))},Z=>{C.push(Z),u--,u===0&&(v=!0,O(new ee(C,"All promises were rejected")))})})}static race(l){let o,u,v=new this((O,N)=>{o=O,u=N});function C(O){o(O)}function m(O){u(O)}for(let O of l)$(O)||(O=this.resolve(O)),O.then(C,m);return v}static all(l){return M.allWithCallback(l)}static allSettled(l){return(this&&this.prototype instanceof M?this:M).allWithCallback(l,{thenCallback:u=>({status:"fulfilled",value:u}),errorCallback:u=>({status:"rejected",reason:u})})}static allWithCallback(l,o){let u,v,C=new this((Z,G)=>{u=Z,v=G}),m=2,O=0,N=[];for(let Z of l){$(Z)||(Z=this.resolve(Z));let G=O;try{Z.then(B=>{N[G]=o?o.thenCallback(B):B,m--,m===0&&u(N)},B=>{o?(N[G]=o.errorCallback(B),m--,m===0&&u(N)):v(B)})}catch(B){v(B)}m++,O++}return m-=2,m===0&&u(N),C}constructor(l){let o=this;if(!(o instanceof M))throw new Error("Must be an instanceof Promise.");o[p]=k,o[d]=[];try{let u=D();l&&l(u(b(o,U)),u(b(o,S)))}catch(u){I(o,!1,u)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return M}then(l,o){let u=this.constructor?.[Symbol.species];(!u||typeof u!="function")&&(u=this.constructor||M);let v=new u(x),C=a.current;return this[p]==k?this[d].push(C,v,l,o):r(this,C,v,l,o),v}catch(l){return this.then(null,l)}finally(l){let o=this.constructor?.[Symbol.species];(!o||typeof o!="function")&&(o=M);let u=new o(x);u[A]=A;let v=a.current;return this[p]==k?this[d].push(v,u,l,l):r(this,v,u,l,l),u}}M.resolve=M.resolve,M.reject=M.reject,M.race=M.race,M.all=M.all;let he=n[_]=n.Promise;n.Promise=M;let _e=T("thenPatched");function Q(h){let l=h.prototype,o=c(l,"then");if(o&&(o.writable===!1||!o.configurable))return;let u=l.then;l[P]=u,h.prototype.then=function(v,C){return new M((O,N)=>{u.call(this,O,N)}).then(v,C)},h[_e]=!0}e.patchThen=Q;function Te(h){return function(l,o){let u=h.apply(l,o);if(u instanceof M)return u;let v=u.constructor;return v[_e]||Q(v),u}}return he&&(Q(he),ue(n,"fetch",h=>Te(h))),Promise[a.__symbol__("uncaughtPromiseErrors")]=y,M})}function Nt(t){t.__load_patch("toString",n=>{let a=Function.prototype.toString,e=j("OriginalDelegate"),c=j("Promise"),f=j("Error"),g=function(){if(typeof this=="function"){let _=this[e];if(_)return typeof _=="function"?a.call(_):Object.prototype.toString.call(_);if(this===Promise){let P=n[c];if(P)return a.call(P)}if(this===Error){let P=n[f];if(P)return a.call(P)}}return a.call(this)};g[e]=a,Function.prototype.toString=g;let T=Object.prototype.toString,y="[object Promise]";Object.prototype.toString=function(){return typeof Promise=="function"&&this instanceof Promise?y:T.call(this)}})}function Zt(t,n,a,e,c){let f=Zone.__symbol__(e);if(n[f])return;let g=n[f]=n[e];n[e]=function(T,y,w){return y&&y.prototype&&c.forEach(function(_){let P=`${a}.${e}::`+_,L=y.prototype;try{if(L.hasOwnProperty(_)){let H=t.ObjectGetOwnPropertyDescriptor(L,_);H&&H.value?(H.value=t.wrapWithCurrentZone(H.value,P),t._redefineProperty(y.prototype,_,H)):L[_]&&(L[_]=t.wrapWithCurrentZone(L[_],P))}else L[_]&&(L[_]=t.wrapWithCurrentZone(L[_],P))}catch{}}),g.call(n,T,y,w)},t.attachOriginToPatched(n[e],g)}function Lt(t){t.__load_patch("util",(n,a,e)=>{let c=Ie(n);e.patchOnProperties=rt,e.patchMethod=ue,e.bindArguments=Fe,e.patchMacroTask=mt;let f=a.__symbol__("BLACK_LISTED_EVENTS"),g=a.__symbol__("UNPATCHED_EVENTS");n[g]&&(n[f]=n[g]),n[f]&&(a[f]=a[g]=n[f]),e.patchEventPrototype=bt,e.patchEventTarget=vt,e.isIEOrEdge=yt,e.ObjectDefineProperty=Me,e.ObjectGetOwnPropertyDescriptor=pe,e.ObjectCreate=_t,e.ArraySlice=Tt,e.patchClass=ye,e.wrapWithCurrentZone=Ve,e.filterProperties=lt,e.attachOriginToPatched=fe,e._redefineProperty=Object.defineProperty,e.patchCallbacks=Zt,e.getGlobalObjects=()=>({globalSources:ot,zoneSymbolEventNames:ne,eventNames:c,isBrowser:Ge,isMix:nt,isNode:De,TRUE_STR:ae,FALSE_STR:le,ZONE_SYMBOL_PREFIX:ve,ADD_EVENT_LISTENER_STR:je,REMOVE_EVENT_LISTENER_STR:He})})}function It(t){Ot(t),Nt(t),Lt(t)}var ut=dt();It(ut);St(ut); diff --git a/matchbox-server/src/main/resources/static/browser/polyfills-FFHMD2TL.js b/matchbox-server/src/main/resources/static/browser/polyfills-FFHMD2TL.js deleted file mode 100644 index b01b7911666..00000000000 --- a/matchbox-server/src/main/resources/static/browser/polyfills-FFHMD2TL.js +++ /dev/null @@ -1,2 +0,0 @@ -var ce=globalThis;function te(e){return(ce.__Zone_symbol_prefix||"__zone_symbol__")+e}function dt(){let e=ce.performance;function n(M){e&&e.mark&&e.mark(M)}function a(M,s){e&&e.measure&&e.measure(M,s)}n("Zone");class t{static{this.__symbol__=te}static assertZonePatched(){if(ce.Promise!==S.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let s=t.current;for(;s.parent;)s=s.parent;return s}static get current(){return b.zone}static get currentTask(){return D}static __load_patch(s,i,o=!1){if(S.hasOwnProperty(s)){let g=ce[te("forceDuplicateZoneCheck")]===!0;if(!o&&g)throw Error("Already loaded patch: "+s)}else if(!ce["__Zone_disable_"+s]){let g="Zone:"+s;n(g),S[s]=i(ce,t,w),a(g,g)}}get parent(){return this._parent}get name(){return this._name}constructor(s,i){this._parent=s,this._name=i?i.name||"unnamed":"",this._properties=i&&i.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,i)}get(s){let i=this.getZoneWith(s);if(i)return i._properties[s]}getZoneWith(s){let i=this;for(;i;){if(i._properties.hasOwnProperty(s))return i;i=i._parent}return null}fork(s){if(!s)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,s)}wrap(s,i){if(typeof s!="function")throw new Error("Expecting function got: "+s);let o=this._zoneDelegate.intercept(this,s,i),g=this;return function(){return g.runGuarded(o,this,arguments,i)}}run(s,i,o,g){b={parent:b,zone:this};try{return this._zoneDelegate.invoke(this,s,i,o,g)}finally{b=b.parent}}runGuarded(s,i=null,o,g){b={parent:b,zone:this};try{try{return this._zoneDelegate.invoke(this,s,i,o,g)}catch(V){if(this._zoneDelegate.handleError(this,V))throw V}}finally{b=b.parent}}runTask(s,i,o){if(s.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(s.zone||J).name+"; Execution: "+this.name+")");let g=s,{type:V,data:{isPeriodic:ee=!1,isRefreshable:Z=!1}={}}=s;if(s.state===q&&(V===z||V===y))return;let he=s.state!=A;he&&g._transitionTo(A,d);let _e=D;D=g,b={parent:b,zone:this};try{V==y&&s.data&&!ee&&!Z&&(s.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,g,i,o)}catch(Q){if(this._zoneDelegate.handleError(this,Q))throw Q}}finally{let Q=s.state;if(Q!==q&&Q!==X)if(V==z||ee||Z&&Q===k)he&&g._transitionTo(d,A,k);else{let Ee=g._zoneDelegates;this._updateTaskCount(g,-1),he&&g._transitionTo(q,A,q),Z&&(g._zoneDelegates=Ee)}b=b.parent,D=_e}}scheduleTask(s){if(s.zone&&s.zone!==this){let o=this;for(;o;){if(o===s.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${s.zone.name}`);o=o.parent}}s._transitionTo(k,q);let i=[];s._zoneDelegates=i,s._zone=this;try{s=this._zoneDelegate.scheduleTask(this,s)}catch(o){throw s._transitionTo(X,k,q),this._zoneDelegate.handleError(this,o),o}return s._zoneDelegates===i&&this._updateTaskCount(s,1),s.state==k&&s._transitionTo(d,k),s}scheduleMicroTask(s,i,o,g){return this.scheduleTask(new E(G,s,i,o,g,void 0))}scheduleMacroTask(s,i,o,g,V){return this.scheduleTask(new E(y,s,i,o,g,V))}scheduleEventTask(s,i,o,g,V){return this.scheduleTask(new E(z,s,i,o,g,V))}cancelTask(s){if(s.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(s.zone||J).name+"; Execution: "+this.name+")");if(!(s.state!==d&&s.state!==A)){s._transitionTo(x,d,A);try{this._zoneDelegate.cancelTask(this,s)}catch(i){throw s._transitionTo(X,x),this._zoneDelegate.handleError(this,i),i}return this._updateTaskCount(s,-1),s._transitionTo(q,x),s.runCount=-1,s}}_updateTaskCount(s,i){let o=s._zoneDelegates;i==-1&&(s._zoneDelegates=null);for(let g=0;gM.hasTask(i,o),onScheduleTask:(M,s,i,o)=>M.scheduleTask(i,o),onInvokeTask:(M,s,i,o,g,V)=>M.invokeTask(i,o,g,V),onCancelTask:(M,s,i,o)=>M.cancelTask(i,o)};class f{get zone(){return this._zone}constructor(s,i,o){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this._zone=s,this._parentDelegate=i,this._forkZS=o&&(o&&o.onFork?o:i._forkZS),this._forkDlgt=o&&(o.onFork?i:i._forkDlgt),this._forkCurrZone=o&&(o.onFork?this._zone:i._forkCurrZone),this._interceptZS=o&&(o.onIntercept?o:i._interceptZS),this._interceptDlgt=o&&(o.onIntercept?i:i._interceptDlgt),this._interceptCurrZone=o&&(o.onIntercept?this._zone:i._interceptCurrZone),this._invokeZS=o&&(o.onInvoke?o:i._invokeZS),this._invokeDlgt=o&&(o.onInvoke?i:i._invokeDlgt),this._invokeCurrZone=o&&(o.onInvoke?this._zone:i._invokeCurrZone),this._handleErrorZS=o&&(o.onHandleError?o:i._handleErrorZS),this._handleErrorDlgt=o&&(o.onHandleError?i:i._handleErrorDlgt),this._handleErrorCurrZone=o&&(o.onHandleError?this._zone:i._handleErrorCurrZone),this._scheduleTaskZS=o&&(o.onScheduleTask?o:i._scheduleTaskZS),this._scheduleTaskDlgt=o&&(o.onScheduleTask?i:i._scheduleTaskDlgt),this._scheduleTaskCurrZone=o&&(o.onScheduleTask?this._zone:i._scheduleTaskCurrZone),this._invokeTaskZS=o&&(o.onInvokeTask?o:i._invokeTaskZS),this._invokeTaskDlgt=o&&(o.onInvokeTask?i:i._invokeTaskDlgt),this._invokeTaskCurrZone=o&&(o.onInvokeTask?this._zone:i._invokeTaskCurrZone),this._cancelTaskZS=o&&(o.onCancelTask?o:i._cancelTaskZS),this._cancelTaskDlgt=o&&(o.onCancelTask?i:i._cancelTaskDlgt),this._cancelTaskCurrZone=o&&(o.onCancelTask?this._zone:i._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;let g=o&&o.onHasTask,V=i&&i._hasTaskZS;(g||V)&&(this._hasTaskZS=g?o:c,this._hasTaskDlgt=i,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=this._zone,o.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=i,this._scheduleTaskCurrZone=this._zone),o.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=i,this._invokeTaskCurrZone=this._zone),o.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=i,this._cancelTaskCurrZone=this._zone))}fork(s,i){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,s,i):new t(s,i)}intercept(s,i,o){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,s,i,o):i}invoke(s,i,o,g,V){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,s,i,o,g,V):i.apply(o,g)}handleError(s,i){return this._handleErrorZS?this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,s,i):!0}scheduleTask(s,i){let o=i;if(this._scheduleTaskZS)this._hasTaskZS&&o._zoneDelegates.push(this._hasTaskDlgtOwner),o=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,s,i),o||(o=i);else if(i.scheduleFn)i.scheduleFn(i);else if(i.type==G)U(i);else throw new Error("Task is missing scheduleFn.");return o}invokeTask(s,i,o,g){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,s,i,o,g):i.callback.apply(o,g)}cancelTask(s,i){let o;if(this._cancelTaskZS)o=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,s,i);else{if(!i.cancelFn)throw Error("Task is not cancelable");o=i.cancelFn(i)}return o}hasTask(s,i){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,s,i)}catch(o){this.handleError(s,o)}}_updateTaskCount(s,i){let o=this._taskCounts,g=o[s],V=o[s]=g+i;if(V<0)throw new Error("More tasks executed then were scheduled.");if(g==0||V==0){let ee={microTask:o.microTask>0,macroTask:o.macroTask>0,eventTask:o.eventTask>0,change:s};this.hasTask(this._zone,ee)}}}class E{constructor(s,i,o,g,V,ee){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=s,this.source=i,this.data=g,this.scheduleFn=V,this.cancelFn=ee,!o)throw new Error("callback is not defined");this.callback=o;let Z=this;s===z&&g&&g.useG?this.invoke=E.invokeTask:this.invoke=function(){return E.invokeTask.call(ce,Z,this,arguments)}}static invokeTask(s,i,o){s||(s=this),K++;try{return s.runCount++,s.zone.runTask(s,i,o)}finally{K==1&&$(),K--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(q,k)}_transitionTo(s,i,o){if(this._state===i||this._state===o)this._state=s,s==q&&(this._zoneDelegates=null);else throw new Error(`${this.type} '${this.source}': can not transition to '${s}', expecting state '${i}'${o?" or '"+o+"'":""}, was '${this._state}'.`)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}let T=te("setTimeout"),p=te("Promise"),C=te("then"),_=[],P=!1,I;function H(M){if(I||ce[p]&&(I=ce[p].resolve(0)),I){let s=I[C];s||(s=I.then),s.call(I,M)}else ce[T](M,0)}function U(M){K===0&&_.length===0&&H($),M&&_.push(M)}function $(){if(!P){for(P=!0;_.length;){let M=_;_=[];for(let s=0;sb,onUnhandledError:W,microtaskDrainDone:W,scheduleMicroTask:U,showUncaughtError:()=>!t[te("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:W,patchMethod:()=>W,bindArguments:()=>[],patchThen:()=>W,patchMacroTask:()=>W,patchEventPrototype:()=>W,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>W,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>W,wrapWithCurrentZone:()=>W,filterProperties:()=>[],attachOriginToPatched:()=>W,_redefineProperty:()=>W,patchCallbacks:()=>W,nativeScheduleMicroTask:H},b={parent:null,zone:new t(null,null)},D=null,K=0;function W(){}return a("Zone","Zone"),t}function _t(){let e=globalThis,n=e[te("forceDuplicateZoneCheck")]===!0;if(e.Zone&&(n||typeof e.Zone.__symbol__!="function"))throw new Error("Zone already loaded.");return e.Zone??=dt(),e.Zone}var be=Object.getOwnPropertyDescriptor,Ae=Object.defineProperty,je=Object.getPrototypeOf,Et=Object.create,Tt=Array.prototype.slice,He="addEventListener",xe="removeEventListener",Le=te(He),Ie=te(xe),ae="true",le="false",Pe=te("");function Ve(e,n){return Zone.current.wrap(e,n)}function Ge(e,n,a,t,c){return Zone.current.scheduleMacroTask(e,n,a,t,c)}var j=te,De=typeof window<"u",pe=De?window:void 0,Y=De&&pe||globalThis,gt="removeAttribute";function Fe(e,n){for(let a=e.length-1;a>=0;a--)typeof e[a]=="function"&&(e[a]=Ve(e[a],n+"_"+a));return e}function yt(e,n){let a=e.constructor.name;for(let t=0;t{let p=function(){return T.apply(this,Fe(arguments,a+"."+c))};return fe(p,T),p})(f)}}}function tt(e){return e?e.writable===!1?!1:!(typeof e.get=="function"&&typeof e.set>"u"):!0}var nt=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,Se=!("nw"in Y)&&typeof Y.process<"u"&&Y.process.toString()==="[object process]",Be=!Se&&!nt&&!!(De&&pe.HTMLElement),rt=typeof Y.process<"u"&&Y.process.toString()==="[object process]"&&!nt&&!!(De&&pe.HTMLElement),Ce={},mt=j("enable_beforeunload"),Ye=function(e){if(e=e||Y.event,!e)return;let n=Ce[e.type];n||(n=Ce[e.type]=j("ON_PROPERTY"+e.type));let a=this||e.target||Y,t=a[n],c;if(Be&&a===pe&&e.type==="error"){let f=e;c=t&&t.call(this,f.message,f.filename,f.lineno,f.colno,f.error),c===!0&&e.preventDefault()}else c=t&&t.apply(this,arguments),e.type==="beforeunload"&&Y[mt]&&typeof c=="string"?e.returnValue=c:c!=null&&!c&&e.preventDefault();return c};function $e(e,n,a){let t=be(e,n);if(!t&&a&&be(a,n)&&(t={enumerable:!0,configurable:!0}),!t||!t.configurable)return;let c=j("on"+n+"patched");if(e.hasOwnProperty(c)&&e[c])return;delete t.writable,delete t.value;let f=t.get,E=t.set,T=n.slice(2),p=Ce[T];p||(p=Ce[T]=j("ON_PROPERTY"+T)),t.set=function(C){let _=this;if(!_&&e===Y&&(_=Y),!_)return;typeof _[p]=="function"&&_.removeEventListener(T,Ye),E&&E.call(_,null),_[p]=C,typeof C=="function"&&_.addEventListener(T,Ye,!1)},t.get=function(){let C=this;if(!C&&e===Y&&(C=Y),!C)return null;let _=C[p];if(_)return _;if(f){let P=f.call(this);if(P)return t.set.call(this,P),typeof C[gt]=="function"&&C.removeAttribute(n),P}return null},Ae(e,n,t),e[c]=!0}function ot(e,n,a){if(n)for(let t=0;tfunction(E,T){let p=a(E,T);return p.cbIdx>=0&&typeof T[p.cbIdx]=="function"?Ge(p.name,T[p.cbIdx],p,c):f.apply(E,T)})}function fe(e,n){e[j("OriginalDelegate")]=n}var Je=!1,Me=!1;function kt(){try{let e=pe.navigator.userAgent;if(e.indexOf("MSIE ")!==-1||e.indexOf("Trident/")!==-1)return!0}catch{}return!1}function vt(){if(Je)return Me;Je=!0;try{let e=pe.navigator.userAgent;(e.indexOf("MSIE ")!==-1||e.indexOf("Trident/")!==-1||e.indexOf("Edge/")!==-1)&&(Me=!0)}catch{}return Me}function Ke(e){return typeof e=="function"}function Qe(e){return typeof e=="number"}var me=!1;if(typeof window<"u")try{let e=Object.defineProperty({},"passive",{get:function(){me=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch{me=!1}var bt={useG:!0},ne={},st={},it=new RegExp("^"+Pe+"(\\w+)(true|false)$"),ct=j("propagationStopped");function at(e,n){let a=(n?n(e):e)+le,t=(n?n(e):e)+ae,c=Pe+a,f=Pe+t;ne[e]={},ne[e][le]=c,ne[e][ae]=f}function Pt(e,n,a,t){let c=t&&t.add||He,f=t&&t.rm||xe,E=t&&t.listeners||"eventListeners",T=t&&t.rmAll||"removeAllListeners",p=j(c),C="."+c+":",_="prependListener",P="."+_+":",I=function(k,d,A){if(k.isRemoved)return;let x=k.callback;typeof x=="object"&&x.handleEvent&&(k.callback=y=>x.handleEvent(y),k.originalDelegate=x);let X;try{k.invoke(k,d,[A])}catch(y){X=y}let G=k.options;if(G&&typeof G=="object"&&G.once){let y=k.originalDelegate?k.originalDelegate:k.callback;d[f].call(d,A.type,y,G)}return X};function H(k,d,A){if(d=d||e.event,!d)return;let x=k||d.target||e,X=x[ne[d.type][A?ae:le]];if(X){let G=[];if(X.length===1){let y=I(X[0],x,d);y&&G.push(y)}else{let y=X.slice();for(let z=0;z{throw z})}}}let U=function(k){return H(this,k,!1)},$=function(k){return H(this,k,!0)};function J(k,d){if(!k)return!1;let A=!0;d&&d.useG!==void 0&&(A=d.useG);let x=d&&d.vh,X=!0;d&&d.chkDup!==void 0&&(X=d.chkDup);let G=!1;d&&d.rt!==void 0&&(G=d.rt);let y=k;for(;y&&!y.hasOwnProperty(c);)y=je(y);if(!y&&k[c]&&(y=k),!y||y[p])return!1;let z=d&&d.eventNameToString,S={},w=y[p]=y[c],b=y[j(f)]=y[f],D=y[j(E)]=y[E],K=y[j(T)]=y[T],W;d&&d.prepend&&(W=y[j(d.prepend)]=y[d.prepend]);function M(r,u){return!me&&typeof r=="object"&&r?!!r.capture:!me||!u?r:typeof r=="boolean"?{capture:r,passive:!0}:r?typeof r=="object"&&r.passive!==!1?{...r,passive:!0}:r:{passive:!0}}let s=function(r){if(!S.isExisting)return w.call(S.target,S.eventName,S.capture?$:U,S.options)},i=function(r){if(!r.isRemoved){let u=ne[r.eventName],v;u&&(v=u[r.capture?ae:le]);let R=v&&r.target[v];if(R){for(let m=0;mre.zone.cancelTask(re);r.call(Te,"abort",ie,{once:!0}),re.removeAbortListener=()=>Te.removeEventListener("abort",ie)}if(S.target=null,ke&&(ke.taskData=null),Ue&&(S.options.once=!0),!me&&typeof re.options=="boolean"||(re.options=se),re.target=N,re.capture=Oe,re.eventName=L,B&&(re.originalDelegate=F),O?ge.unshift(re):ge.push(re),m)return N}};return y[c]=l(w,C,ee,Z,G),W&&(y[_]=l(W,P,g,Z,G,!0)),y[f]=function(){let r=this||e,u=arguments[0];d&&d.transferEventName&&(u=d.transferEventName(u));let v=arguments[2],R=v?typeof v=="boolean"?!0:v.capture:!1,m=arguments[1];if(!m)return b.apply(this,arguments);if(x&&!x(b,m,r,arguments))return;let O=ne[u],N;O&&(N=O[R?ae:le]);let L=N&&r[N];if(L)for(let F=0;Ffunction(c,f){c[ct]=!0,t&&t.apply(c,f)})}function Rt(e,n){n.patchMethod(e,"queueMicrotask",a=>function(t,c){Zone.current.scheduleMicroTask("queueMicrotask",c[0])})}var Re=j("zoneTask");function ye(e,n,a,t){let c=null,f=null;n+=t,a+=t;let E={};function T(C){let _=C.data;_.args[0]=function(){return C.invoke.apply(this,arguments)};let P=c.apply(e,_.args);return Qe(P)?_.handleId=P:(_.handle=P,_.isRefreshable=Ke(P.refresh)),C}function p(C){let{handle:_,handleId:P}=C.data;return f.call(e,_??P)}c=ue(e,n,C=>function(_,P){if(Ke(P[0])){let I={isRefreshable:!1,isPeriodic:t==="Interval",delay:t==="Timeout"||t==="Interval"?P[1]||0:void 0,args:P},H=P[0];P[0]=function(){try{return H.apply(this,arguments)}finally{let{handle:A,handleId:x,isPeriodic:X,isRefreshable:G}=I;!X&&!G&&(x?delete E[x]:A&&(A[Re]=null))}};let U=Ge(n,P[0],I,T,p);if(!U)return U;let{handleId:$,handle:J,isRefreshable:q,isPeriodic:k}=U.data;if($)E[$]=U;else if(J&&(J[Re]=U,q&&!k)){let d=J.refresh;J.refresh=function(){let{zone:A,state:x}=U;return x==="notScheduled"?(U._state="scheduled",A._updateTaskCount(U,1)):x==="running"&&(U._state="scheduling"),d.call(this)}}return J??$??U}else return C.apply(e,P)}),f=ue(e,a,C=>function(_,P){let I=P[0],H;Qe(I)?(H=E[I],delete E[I]):(H=I?.[Re],H?I[Re]=null:H=I),H?.type?H.cancelFn&&H.zone.cancelTask(H):C.apply(e,P)})}function Ct(e,n){let{isBrowser:a,isMix:t}=n.getGlobalObjects();if(!a&&!t||!e.customElements||!("customElements"in e))return;let c=["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback","formAssociatedCallback","formDisabledCallback","formResetCallback","formStateRestoreCallback"];n.patchCallbacks(n,e.customElements,"customElements","define",c)}function Dt(e,n){if(Zone[n.symbol("patchEventTarget")])return;let{eventNames:a,zoneSymbolEventNames:t,TRUE_STR:c,FALSE_STR:f,ZONE_SYMBOL_PREFIX:E}=n.getGlobalObjects();for(let p=0;pf.target===e);if(!t||t.length===0)return n;let c=t[0].ignoreProperties;return n.filter(f=>c.indexOf(f)===-1)}function et(e,n,a,t){if(!e)return;let c=ut(e,n,a);ot(e,c,t)}function Ze(e){return Object.getOwnPropertyNames(e).filter(n=>n.startsWith("on")&&n.length>2).map(n=>n.substring(2))}function Ot(e,n){if(Se&&!rt||Zone[e.symbol("patchEvents")])return;let a=n.__Zone_ignore_on_properties,t=[];if(Be){let c=window;t=t.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);let f=kt()?[{target:c,ignoreProperties:["error"]}]:[];et(c,Ze(c),a&&a.concat(f),je(c))}t=t.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let c=0;c{let a=n[e.__symbol__("legacyPatch")];a&&a()}),e.__load_patch("timers",n=>{let a="set",t="clear";ye(n,a,t,"Timeout"),ye(n,a,t,"Interval"),ye(n,a,t,"Immediate")}),e.__load_patch("requestAnimationFrame",n=>{ye(n,"request","cancel","AnimationFrame"),ye(n,"mozRequest","mozCancel","AnimationFrame"),ye(n,"webkitRequest","webkitCancel","AnimationFrame")}),e.__load_patch("blocking",(n,a)=>{let t=["alert","prompt","confirm"];for(let c=0;cfunction(C,_){return a.current.run(E,n,_,p)})}}),e.__load_patch("EventTarget",(n,a,t)=>{St(n,t),Dt(n,t);let c=n.XMLHttpRequestEventTarget;c&&c.prototype&&t.patchEventTarget(n,t,[c.prototype])}),e.__load_patch("MutationObserver",(n,a,t)=>{ve("MutationObserver"),ve("WebKitMutationObserver")}),e.__load_patch("IntersectionObserver",(n,a,t)=>{ve("IntersectionObserver")}),e.__load_patch("FileReader",(n,a,t)=>{ve("FileReader")}),e.__load_patch("on_property",(n,a,t)=>{Ot(t,n)}),e.__load_patch("customElements",(n,a,t)=>{Ct(n,t)}),e.__load_patch("XHR",(n,a)=>{C(n);let t=j("xhrTask"),c=j("xhrSync"),f=j("xhrListener"),E=j("xhrScheduled"),T=j("xhrURL"),p=j("xhrErrorBeforeScheduled");function C(_){let P=_.XMLHttpRequest;if(!P)return;let I=P.prototype;function H(w){return w[t]}let U=I[Le],$=I[Ie];if(!U){let w=_.XMLHttpRequestEventTarget;if(w){let b=w.prototype;U=b[Le],$=b[Ie]}}let J="readystatechange",q="scheduled";function k(w){let b=w.data,D=b.target;D[E]=!1,D[p]=!1;let K=D[f];U||(U=D[Le],$=D[Ie]),K&&$.call(D,J,K);let W=D[f]=()=>{if(D.readyState===D.DONE)if(!b.aborted&&D[E]&&w.state===q){let s=D[a.__symbol__("loadfalse")];if(D.status!==0&&s&&s.length>0){let i=w.invoke;w.invoke=function(){let o=D[a.__symbol__("loadfalse")];for(let g=0;gfunction(w,b){return w[c]=b[2]==!1,w[T]=b[1],x.apply(w,b)}),X="XMLHttpRequest.send",G=j("fetchTaskAborting"),y=j("fetchTaskScheduling"),z=ue(I,"send",()=>function(w,b){if(a.current[y]===!0||w[c])return z.apply(w,b);{let D={target:w,url:w[T],isPeriodic:!1,args:b,aborted:!1},K=Ge(X,d,D,k,A);w&&w[p]===!0&&!D.aborted&&K.state===q&&K.invoke()}}),S=ue(I,"abort",()=>function(w,b){let D=H(w);if(D&&typeof D.type=="string"){if(D.cancelFn==null||D.data&&D.data.aborted)return;D.zone.cancelTask(D)}else if(a.current[G]===!0)return S.apply(w,b)})}}),e.__load_patch("geolocation",n=>{n.navigator&&n.navigator.geolocation&&yt(n.navigator.geolocation,["getCurrentPosition","watchPosition"])}),e.__load_patch("PromiseRejectionEvent",(n,a)=>{function t(c){return function(f){lt(n,c).forEach(T=>{let p=n.PromiseRejectionEvent;if(p){let C=new p(c,{promise:f.promise,reason:f.rejection});T.invoke(C)}})}}n.PromiseRejectionEvent&&(a[j("unhandledPromiseRejectionHandler")]=t("unhandledrejection"),a[j("rejectionHandledHandler")]=t("rejectionhandled"))}),e.__load_patch("queueMicrotask",(n,a,t)=>{Rt(n,t)})}function Lt(e){e.__load_patch("ZoneAwarePromise",(n,a,t)=>{let c=Object.getOwnPropertyDescriptor,f=Object.defineProperty;function E(h){if(h&&h.toString===Object.prototype.toString){let l=h.constructor&&h.constructor.name;return(l||"")+": "+JSON.stringify(h)}return h?h.toString():Object.prototype.toString.call(h)}let T=t.symbol,p=[],C=n[T("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")]!==!1,_=T("Promise"),P=T("then"),I="__creationTrace__";t.onUnhandledError=h=>{if(t.showUncaughtError()){let l=h&&h.rejection;l?console.error("Unhandled Promise rejection:",l instanceof Error?l.message:l,"; Zone:",h.zone.name,"; Task:",h.task&&h.task.source,"; Value:",l,l instanceof Error?l.stack:void 0):console.error(h)}},t.microtaskDrainDone=()=>{for(;p.length;){let h=p.shift();try{h.zone.runGuarded(()=>{throw h.throwOriginal?h.rejection:h})}catch(l){U(l)}}};let H=T("unhandledPromiseRejectionHandler");function U(h){t.onUnhandledError(h);try{let l=a[H];typeof l=="function"&&l.call(this,h)}catch{}}function $(h){return h&&h.then}function J(h){return h}function q(h){return Z.reject(h)}let k=T("state"),d=T("value"),A=T("finally"),x=T("parentPromiseValue"),X=T("parentPromiseState"),G="Promise.then",y=null,z=!0,S=!1,w=0;function b(h,l){return r=>{try{M(h,l,r)}catch(u){M(h,!1,u)}}}let D=function(){let h=!1;return function(r){return function(){h||(h=!0,r.apply(null,arguments))}}},K="Promise resolved with itself",W=T("currentTaskTrace");function M(h,l,r){let u=D();if(h===r)throw new TypeError(K);if(h[k]===y){let v=null;try{(typeof r=="object"||typeof r=="function")&&(v=r&&r.then)}catch(R){return u(()=>{M(h,!1,R)})(),h}if(l!==S&&r instanceof Z&&r.hasOwnProperty(k)&&r.hasOwnProperty(d)&&r[k]!==y)i(r),M(h,r[k],r[d]);else if(l!==S&&typeof v=="function")try{v.call(r,u(b(h,l)),u(b(h,!1)))}catch(R){u(()=>{M(h,!1,R)})()}else{h[k]=l;let R=h[d];if(h[d]=r,h[A]===A&&l===z&&(h[k]=h[X],h[d]=h[x]),l===S&&r instanceof Error){let m=a.currentTask&&a.currentTask.data&&a.currentTask.data[I];m&&f(r,W,{configurable:!0,enumerable:!1,writable:!0,value:m})}for(let m=0;m{try{let O=h[d],N=!!r&&A===r[A];N&&(r[x]=O,r[X]=R);let L=l.run(m,void 0,N&&m!==q&&m!==J?[]:[O]);M(r,!0,L)}catch(O){M(r,!1,O)}},r)}let g="function ZoneAwarePromise() { [native code] }",V=function(){},ee=n.AggregateError;class Z{static toString(){return g}static resolve(l){return l instanceof Z?l:M(new this(null),z,l)}static reject(l){return M(new this(null),S,l)}static withResolvers(){let l={};return l.promise=new Z((r,u)=>{l.resolve=r,l.reject=u}),l}static any(l){if(!l||typeof l[Symbol.iterator]!="function")return Promise.reject(new ee([],"All promises were rejected"));let r=[],u=0;try{for(let m of l)u++,r.push(Z.resolve(m))}catch{return Promise.reject(new ee([],"All promises were rejected"))}if(u===0)return Promise.reject(new ee([],"All promises were rejected"));let v=!1,R=[];return new Z((m,O)=>{for(let N=0;N{v||(v=!0,m(L))},L=>{R.push(L),u--,u===0&&(v=!0,O(new ee(R,"All promises were rejected")))})})}static race(l){let r,u,v=new this((O,N)=>{r=O,u=N});function R(O){r(O)}function m(O){u(O)}for(let O of l)$(O)||(O=this.resolve(O)),O.then(R,m);return v}static all(l){return Z.allWithCallback(l)}static allSettled(l){return(this&&this.prototype instanceof Z?this:Z).allWithCallback(l,{thenCallback:u=>({status:"fulfilled",value:u}),errorCallback:u=>({status:"rejected",reason:u})})}static allWithCallback(l,r){let u,v,R=new this((L,F)=>{u=L,v=F}),m=2,O=0,N=[];for(let L of l){$(L)||(L=this.resolve(L));let F=O;try{L.then(B=>{N[F]=r?r.thenCallback(B):B,m--,m===0&&u(N)},B=>{r?(N[F]=r.errorCallback(B),m--,m===0&&u(N)):v(B)})}catch(B){v(B)}m++,O++}return m-=2,m===0&&u(N),R}constructor(l){let r=this;if(!(r instanceof Z))throw new Error("Must be an instanceof Promise.");r[k]=y,r[d]=[];try{let u=D();l&&l(u(b(r,z)),u(b(r,S)))}catch(u){M(r,!1,u)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return Z}then(l,r){let u=this.constructor?.[Symbol.species];(!u||typeof u!="function")&&(u=this.constructor||Z);let v=new u(V),R=a.current;return this[k]==y?this[d].push(R,v,l,r):o(this,R,v,l,r),v}catch(l){return this.then(null,l)}finally(l){let r=this.constructor?.[Symbol.species];(!r||typeof r!="function")&&(r=Z);let u=new r(V);u[A]=A;let v=a.current;return this[k]==y?this[d].push(v,u,l,l):o(this,v,u,l,l),u}}Z.resolve=Z.resolve,Z.reject=Z.reject,Z.race=Z.race,Z.all=Z.all;let he=n[_]=n.Promise;n.Promise=Z;let _e=T("thenPatched");function Q(h){let l=h.prototype,r=c(l,"then");if(r&&(r.writable===!1||!r.configurable))return;let u=l.then;l[P]=u,h.prototype.then=function(v,R){return new Z((O,N)=>{u.call(this,O,N)}).then(v,R)},h[_e]=!0}t.patchThen=Q;function Ee(h){return function(l,r){let u=h.apply(l,r);if(u instanceof Z)return u;let v=u.constructor;return v[_e]||Q(v),u}}return he&&(Q(he),ue(n,"fetch",h=>Ee(h))),Promise[a.__symbol__("uncaughtPromiseErrors")]=p,Z})}function It(e){e.__load_patch("toString",n=>{let a=Function.prototype.toString,t=j("OriginalDelegate"),c=j("Promise"),f=j("Error"),E=function(){if(typeof this=="function"){let _=this[t];if(_)return typeof _=="function"?a.call(_):Object.prototype.toString.call(_);if(this===Promise){let P=n[c];if(P)return a.call(P)}if(this===Error){let P=n[f];if(P)return a.call(P)}}return a.call(this)};E[t]=a,Function.prototype.toString=E;let T=Object.prototype.toString,p="[object Promise]";Object.prototype.toString=function(){return typeof Promise=="function"&&this instanceof Promise?p:T.call(this)}})}function Mt(e,n,a,t,c){let f=Zone.__symbol__(t);if(n[f])return;let E=n[f]=n[t];n[t]=function(T,p,C){return p&&p.prototype&&c.forEach(function(_){let P=`${a}.${t}::`+_,I=p.prototype;try{if(I.hasOwnProperty(_)){let H=e.ObjectGetOwnPropertyDescriptor(I,_);H&&H.value?(H.value=e.wrapWithCurrentZone(H.value,P),e._redefineProperty(p.prototype,_,H)):I[_]&&(I[_]=e.wrapWithCurrentZone(I[_],P))}else I[_]&&(I[_]=e.wrapWithCurrentZone(I[_],P))}catch{}}),E.call(n,T,p,C)},e.attachOriginToPatched(n[t],E)}function Zt(e){e.__load_patch("util",(n,a,t)=>{let c=Ze(n);t.patchOnProperties=ot,t.patchMethod=ue,t.bindArguments=Fe,t.patchMacroTask=pt;let f=a.__symbol__("BLACK_LISTED_EVENTS"),E=a.__symbol__("UNPATCHED_EVENTS");n[E]&&(n[f]=n[E]),n[f]&&(a[f]=a[E]=n[f]),t.patchEventPrototype=wt,t.patchEventTarget=Pt,t.isIEOrEdge=vt,t.ObjectDefineProperty=Ae,t.ObjectGetOwnPropertyDescriptor=be,t.ObjectCreate=Et,t.ArraySlice=Tt,t.patchClass=ve,t.wrapWithCurrentZone=Ve,t.filterProperties=ut,t.attachOriginToPatched=fe,t._redefineProperty=Object.defineProperty,t.patchCallbacks=Mt,t.getGlobalObjects=()=>({globalSources:st,zoneSymbolEventNames:ne,eventNames:c,isBrowser:Be,isMix:rt,isNode:Se,TRUE_STR:ae,FALSE_STR:le,ZONE_SYMBOL_PREFIX:Pe,ADD_EVENT_LISTENER_STR:He,REMOVE_EVENT_LISTENER_STR:xe})})}function At(e){Lt(e),It(e),Zt(e)}var ft=_t();At(ft);Nt(ft); diff --git a/matchbox-server/src/main/resources/static/browser/styles-FHS5QDYM.css b/matchbox-server/src/main/resources/static/browser/styles-NO4TFXL4.css similarity index 99% rename from matchbox-server/src/main/resources/static/browser/styles-FHS5QDYM.css rename to matchbox-server/src/main/resources/static/browser/styles-NO4TFXL4.css index a24d6fc4a54..d7690b0f57e 100644 --- a/matchbox-server/src/main/resources/static/browser/styles-FHS5QDYM.css +++ b/matchbox-server/src/main/resources/static/browser/styles-NO4TFXL4.css @@ -1 +1 @@ -pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.toast-center-center{top:50%;left:50%;transform:translate(-50%,-50%)}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}.toast-title{font-weight:700}.toast-message{word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;text-shadow:0 1px 0 #ffffff}.toast-close-button:hover,.toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4}button.toast-close-button{padding:0;cursor:pointer;background:transparent;border:0}.toast-container{pointer-events:none;position:fixed;z-index:999999}.toast-container *{box-sizing:border-box}.toast-container .ngx-toastr{position:relative;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;background-size:24px;box-shadow:0 0 12px #999;color:#fff}.toast-container .ngx-toastr:hover{box-shadow:0 0 12px #000;opacity:1;cursor:pointer}.toast-info{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTI1NiA4QzExOS4wNDMgOCA4IDExOS4wODMgOCAyNTZjMCAxMzYuOTk3IDExMS4wNDMgMjQ4IDI0OCAyNDhzMjQ4LTExMS4wMDMgMjQ4LTI0OEM1MDQgMTE5LjA4MyAzOTIuOTU3IDggMjU2IDh6bTAgMTEwYzIzLjE5NiAwIDQyIDE4LjgwNCA0MiA0MnMtMTguODA0IDQyLTQyIDQyLTQyLTE4LjgwNC00Mi00MiAxOC44MDQtNDIgNDItNDJ6bTU2IDI1NGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC04OGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxMnYtNjRoLTEyYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDY0YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MTAwaDEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjR6Jy8+PC9zdmc+)}.toast-error{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTEyMS42IDMxMy4xYzQuNyA0LjcgNC43IDEyLjMgMCAxN0wzMzggMzc3LjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwyNTYgMzEybC02NS4xIDY1LjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwxMzQuNCAzMzhjLTQuNy00LjctNC43LTEyLjMgMC0xN2w2NS42LTY1LTY1LjYtNjUuMWMtNC43LTQuNy00LjctMTIuMyAwLTE3bDM5LjYtMzkuNmM0LjctNC43IDEyLjMtNC43IDE3IDBsNjUgNjUuNyA2NS4xLTY1LjZjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDM5LjYgMzkuNmM0LjcgNC43IDQuNyAxMi4zIDAgMTdMMzEyIDI1Nmw2NS42IDY1LjF6Jy8+PC9zdmc+)}.toast-success{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTE3My44OTggNDM5LjQwNGwtMTY2LjQtMTY2LjRjLTkuOTk3LTkuOTk3LTkuOTk3LTI2LjIwNiAwLTM2LjIwNGwzNi4yMDMtMzYuMjA0YzkuOTk3LTkuOTk4IDI2LjIwNy05Ljk5OCAzNi4yMDQgMEwxOTIgMzEyLjY5IDQzMi4wOTUgNzIuNTk2YzkuOTk3LTkuOTk3IDI2LjIwNy05Ljk5NyAzNi4yMDQgMGwzNi4yMDMgMzYuMjA0YzkuOTk3IDkuOTk3IDkuOTk3IDI2LjIwNiAwIDM2LjIwNGwtMjk0LjQgMjk0LjQwMWMtOS45OTggOS45OTctMjYuMjA3IDkuOTk3LTM2LjIwNC0uMDAxeicvPjwvc3ZnPg==)}.toast-warning{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1NzYgNTEyJyB3aWR0aD0nNTc2JyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTU2OS41MTcgNDQwLjAxM0M1ODcuOTc1IDQ3Mi4wMDcgNTY0LjgwNiA1MTIgNTI3Ljk0IDUxMkg0OC4wNTRjLTM2LjkzNyAwLTU5Ljk5OS00MC4wNTUtNDEuNTc3LTcxLjk4N0wyNDYuNDIzIDIzLjk4NWMxOC40NjctMzIuMDA5IDY0LjcyLTMxLjk1MSA4My4xNTQgMGwyMzkuOTQgNDE2LjAyOHpNMjg4IDM1NGMtMjUuNDA1IDAtNDYgMjAuNTk1LTQ2IDQ2czIwLjU5NSA0NiA0NiA0NiA0Ni0yMC41OTUgNDYtNDYtMjAuNTk1LTQ2LTQ2LTQ2em0tNDMuNjczLTE2NS4zNDZsNy40MTggMTM2Yy4zNDcgNi4zNjQgNS42MDkgMTEuMzQ2IDExLjk4MiAxMS4zNDZoNDguNTQ2YzYuMzczIDAgMTEuNjM1LTQuOTgyIDExLjk4Mi0xMS4zNDZsNy40MTgtMTM2Yy4zNzUtNi44NzQtNS4wOTgtMTIuNjU0LTExLjk4Mi0xMi42NTRoLTYzLjM4M2MtNi44ODQgMC0xMi4zNTYgNS43OC0xMS45ODEgMTIuNjU0eicvPjwvc3ZnPg==)}.toast-container.toast-top-center .ngx-toastr,.toast-container.toast-bottom-center .ngx-toastr{width:300px;margin-left:auto;margin-right:auto}.toast-container.toast-top-full-width .ngx-toastr,.toast-container.toast-bottom-full-width .ngx-toastr{width:96%;margin-left:auto;margin-right:auto}.ngx-toastr{background-color:#030303;pointer-events:auto}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4}@media all and (max-width: 240px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:11em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 241px) and (max-width: 480px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:18em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 481px) and (max-width: 768px){.toast-container .ngx-toastr.div{padding:15px 15px 15px 50px;width:25em}}html{--mat-ripple-color: rgba(0, 0, 0, .1)}html{--mat-option-selected-state-label-text-color: #97d6ba;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}.mat-accent{--mat-option-selected-state-label-text-color: #1e91ff;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}.mat-warn{--mat-option-selected-state-label-text-color: #f44336;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}html{--mat-optgroup-label-text-color: rgba(0, 0, 0, .87)}html{--mat-full-pseudo-checkbox-selected-icon-color: #1e91ff;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0}html{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #1e91ff;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}.mat-primary{--mat-full-pseudo-checkbox-selected-icon-color: #97d6ba;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0}.mat-primary{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #97d6ba;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}.mat-accent{--mat-full-pseudo-checkbox-selected-icon-color: #1e91ff;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0}.mat-accent{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #1e91ff;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}.mat-warn{--mat-full-pseudo-checkbox-selected-icon-color: #f44336;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0}.mat-warn{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #f44336;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}html{--mat-app-background-color: #fafafa;--mat-app-text-color: rgba(0, 0, 0, .87);--mat-app-elevation-shadow-level-0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-2: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-3: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-4: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-5: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 5px 8px 0px rgba(0, 0, 0, .14), 0px 1px 14px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-6: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-7: 0px 4px 5px -2px rgba(0, 0, 0, .2), 0px 7px 10px 1px rgba(0, 0, 0, .14), 0px 2px 16px 1px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-8: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-9: 0px 5px 6px -3px rgba(0, 0, 0, .2), 0px 9px 12px 1px rgba(0, 0, 0, .14), 0px 3px 16px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-10: 0px 6px 6px -3px rgba(0, 0, 0, .2), 0px 10px 14px 1px rgba(0, 0, 0, .14), 0px 4px 18px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-11: 0px 6px 7px -4px rgba(0, 0, 0, .2), 0px 11px 15px 1px rgba(0, 0, 0, .14), 0px 4px 20px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-12: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-13: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 13px 19px 2px rgba(0, 0, 0, .14), 0px 5px 24px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-14: 0px 7px 9px -4px rgba(0, 0, 0, .2), 0px 14px 21px 2px rgba(0, 0, 0, .14), 0px 5px 26px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-15: 0px 8px 9px -5px rgba(0, 0, 0, .2), 0px 15px 22px 2px rgba(0, 0, 0, .14), 0px 6px 28px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-16: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-17: 0px 8px 11px -5px rgba(0, 0, 0, .2), 0px 17px 26px 2px rgba(0, 0, 0, .14), 0px 6px 32px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-18: 0px 9px 11px -5px rgba(0, 0, 0, .2), 0px 18px 28px 2px rgba(0, 0, 0, .14), 0px 7px 34px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-19: 0px 9px 12px -6px rgba(0, 0, 0, .2), 0px 19px 29px 2px rgba(0, 0, 0, .14), 0px 7px 36px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-20: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 20px 31px 3px rgba(0, 0, 0, .14), 0px 8px 38px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-21: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 21px 33px 3px rgba(0, 0, 0, .14), 0px 8px 40px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-22: 0px 10px 14px -6px rgba(0, 0, 0, .2), 0px 22px 35px 3px rgba(0, 0, 0, .14), 0px 8px 42px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-23: 0px 11px 14px -7px rgba(0, 0, 0, .2), 0px 23px 36px 3px rgba(0, 0, 0, .14), 0px 9px 44px 8px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-24: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12)}html{--mdc-elevated-card-container-shape: 4px}html{--mdc-outlined-card-container-shape: 4px;--mdc-outlined-card-outline-width: 1px}html{--mdc-elevated-card-container-color: white;--mdc-elevated-card-container-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mdc-outlined-card-container-color: white;--mdc-outlined-card-outline-color: rgba(0, 0, 0, .12);--mdc-outlined-card-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mat-card-subtitle-text-color: rgba(0, 0, 0, .54)}html{--mdc-linear-progress-active-indicator-height: 4px;--mdc-linear-progress-track-height: 4px;--mdc-linear-progress-track-shape: 0}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-color: #97d6ba;--mdc-linear-progress-track-color: rgba(151, 214, 186, .25)}.mat-mdc-progress-bar.mat-accent{--mdc-linear-progress-active-indicator-color: #1e91ff;--mdc-linear-progress-track-color: rgba(30, 145, 255, .25)}.mat-mdc-progress-bar.mat-warn{--mdc-linear-progress-active-indicator-color: #f44336;--mdc-linear-progress-track-color: rgba(244, 67, 54, .25)}html{--mdc-plain-tooltip-container-shape: 4px;--mdc-plain-tooltip-supporting-text-line-height: 16px}html{--mdc-plain-tooltip-container-color: #616161;--mdc-plain-tooltip-supporting-text-color: #fff}html{--mdc-filled-text-field-active-indicator-height: 1px;--mdc-filled-text-field-focus-active-indicator-height: 2px;--mdc-filled-text-field-container-shape: 4px}html{--mdc-outlined-text-field-outline-width: 1px;--mdc-outlined-text-field-focus-outline-width: 2px;--mdc-outlined-text-field-container-shape: 4px}html{--mdc-filled-text-field-caret-color: #97d6ba;--mdc-filled-text-field-focus-active-indicator-color: #97d6ba;--mdc-filled-text-field-focus-label-text-color: rgba(151, 214, 186, .87);--mdc-filled-text-field-container-color: rgb(244.8, 244.8, 244.8);--mdc-filled-text-field-disabled-container-color: rgb(249.9, 249.9, 249.9);--mdc-filled-text-field-label-text-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-hover-label-text-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-filled-text-field-input-text-color: rgba(0, 0, 0, .87);--mdc-filled-text-field-disabled-input-text-color: rgba(0, 0, 0, .38);--mdc-filled-text-field-input-text-placeholder-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-error-hover-label-text-color: #f44336;--mdc-filled-text-field-error-focus-label-text-color: #f44336;--mdc-filled-text-field-error-label-text-color: #f44336;--mdc-filled-text-field-error-caret-color: #f44336;--mdc-filled-text-field-active-indicator-color: rgba(0, 0, 0, .42);--mdc-filled-text-field-disabled-active-indicator-color: rgba(0, 0, 0, .06);--mdc-filled-text-field-hover-active-indicator-color: rgba(0, 0, 0, .87);--mdc-filled-text-field-error-active-indicator-color: #f44336;--mdc-filled-text-field-error-focus-active-indicator-color: #f44336;--mdc-filled-text-field-error-hover-active-indicator-color: #f44336}html{--mdc-outlined-text-field-caret-color: #97d6ba;--mdc-outlined-text-field-focus-outline-color: #97d6ba;--mdc-outlined-text-field-focus-label-text-color: rgba(151, 214, 186, .87);--mdc-outlined-text-field-label-text-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-hover-label-text-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-input-text-color: rgba(0, 0, 0, .87);--mdc-outlined-text-field-disabled-input-text-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-input-text-placeholder-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-error-caret-color: #f44336;--mdc-outlined-text-field-error-focus-label-text-color: #f44336;--mdc-outlined-text-field-error-label-text-color: #f44336;--mdc-outlined-text-field-error-hover-label-text-color: #f44336;--mdc-outlined-text-field-outline-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-disabled-outline-color: rgba(0, 0, 0, .06);--mdc-outlined-text-field-hover-outline-color: rgba(0, 0, 0, .87);--mdc-outlined-text-field-error-focus-outline-color: #f44336;--mdc-outlined-text-field-error-hover-outline-color: #f44336;--mdc-outlined-text-field-error-outline-color: #f44336}html{--mat-form-field-focus-select-arrow-color: rgba(151, 214, 186, .87);--mat-form-field-disabled-input-text-placeholder-color: rgba(0, 0, 0, .38);--mat-form-field-state-layer-color: rgba(0, 0, 0, .87);--mat-form-field-error-text-color: #f44336;--mat-form-field-select-option-text-color: inherit;--mat-form-field-select-disabled-option-text-color: GrayText;--mat-form-field-leading-icon-color: unset;--mat-form-field-disabled-leading-icon-color: unset;--mat-form-field-trailing-icon-color: unset;--mat-form-field-disabled-trailing-icon-color: unset;--mat-form-field-error-focus-trailing-icon-color: unset;--mat-form-field-error-hover-trailing-icon-color: unset;--mat-form-field-error-trailing-icon-color: unset;--mat-form-field-enabled-select-arrow-color: rgba(0, 0, 0, .54);--mat-form-field-disabled-select-arrow-color: rgba(0, 0, 0, .38);--mat-form-field-hover-state-layer-opacity: .04;--mat-form-field-focus-state-layer-opacity: .08}.mat-mdc-form-field.mat-accent{--mdc-filled-text-field-caret-color: #1e91ff;--mdc-filled-text-field-focus-active-indicator-color: #1e91ff;--mdc-filled-text-field-focus-label-text-color: rgba(30, 145, 255, .87)}.mat-mdc-form-field.mat-accent{--mdc-outlined-text-field-caret-color: #1e91ff;--mdc-outlined-text-field-focus-outline-color: #1e91ff;--mdc-outlined-text-field-focus-label-text-color: rgba(30, 145, 255, .87)}.mat-mdc-form-field.mat-accent{--mat-form-field-focus-select-arrow-color: rgba(30, 145, 255, .87)}.mat-mdc-form-field.mat-warn{--mdc-filled-text-field-caret-color: #f44336;--mdc-filled-text-field-focus-active-indicator-color: #f44336;--mdc-filled-text-field-focus-label-text-color: rgba(244, 67, 54, .87)}.mat-mdc-form-field.mat-warn{--mdc-outlined-text-field-caret-color: #f44336;--mdc-outlined-text-field-focus-outline-color: #f44336;--mdc-outlined-text-field-focus-label-text-color: rgba(244, 67, 54, .87)}.mat-mdc-form-field.mat-warn{--mat-form-field-focus-select-arrow-color: rgba(244, 67, 54, .87)}html{--mat-form-field-container-height: 52px;--mat-form-field-filled-label-display: block;--mat-form-field-container-vertical-padding: 14px;--mat-form-field-filled-with-label-container-padding-top: 22px;--mat-form-field-filled-with-label-container-padding-bottom: 6px}html{--mat-select-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: rgba(0, 0, 0, .38);--mat-select-placeholder-text-color: rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: rgba(0, 0, 0, .38);--mat-select-focused-arrow-color: rgba(151, 214, 186, .87);--mat-select-invalid-arrow-color: rgba(244, 67, 54, .87)}html .mat-mdc-form-field.mat-accent{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: rgba(0, 0, 0, .38);--mat-select-placeholder-text-color: rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: rgba(0, 0, 0, .38);--mat-select-focused-arrow-color: rgba(30, 145, 255, .87);--mat-select-invalid-arrow-color: rgba(244, 67, 54, .87)}html .mat-mdc-form-field.mat-warn{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: rgba(0, 0, 0, .38);--mat-select-placeholder-text-color: rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: rgba(0, 0, 0, .38);--mat-select-focused-arrow-color: rgba(244, 67, 54, .87);--mat-select-invalid-arrow-color: rgba(244, 67, 54, .87)}html{--mat-select-arrow-transform: translateY(-8px)}html{--mat-autocomplete-container-shape: 4px;--mat-autocomplete-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-autocomplete-background-color: white}html{--mdc-dialog-container-shape: 4px}html{--mat-dialog-container-elevation-shadow: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12);--mat-dialog-container-max-width: 80vw;--mat-dialog-container-small-max-width: 80vw;--mat-dialog-container-min-width: 0;--mat-dialog-actions-alignment: start;--mat-dialog-actions-padding: 8px;--mat-dialog-content-padding: 20px 24px;--mat-dialog-with-actions-content-padding: 20px 24px;--mat-dialog-headline-padding: 0 24px 9px}html{--mdc-dialog-container-color: white;--mdc-dialog-subhead-color: rgba(0, 0, 0, .87);--mdc-dialog-supporting-text-color: rgba(0, 0, 0, .6)}.mat-mdc-standard-chip{--mdc-chip-container-shape-radius: 16px;--mdc-chip-with-avatar-avatar-shape-radius: 14px;--mdc-chip-with-avatar-avatar-size: 28px;--mdc-chip-with-icon-icon-size: 18px;--mdc-chip-outline-width: 0;--mdc-chip-outline-color: transparent;--mdc-chip-disabled-outline-color: transparent;--mdc-chip-focus-outline-color: transparent;--mdc-chip-hover-state-layer-opacity: .04;--mdc-chip-with-avatar-disabled-avatar-opacity: 1;--mdc-chip-flat-selected-outline-width: 0;--mdc-chip-selected-hover-state-layer-opacity: .04;--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity: 1;--mdc-chip-with-icon-disabled-icon-opacity: 1}.mat-mdc-standard-chip{--mat-chip-disabled-container-opacity: .4;--mat-chip-trailing-action-opacity: .54;--mat-chip-trailing-action-focus-opacity: 1;--mat-chip-trailing-action-state-layer-color: transparent;--mat-chip-selected-trailing-action-state-layer-color: transparent;--mat-chip-trailing-action-hover-state-layer-opacity: 0;--mat-chip-trailing-action-focus-state-layer-opacity: 0}.mat-mdc-standard-chip{--mdc-chip-disabled-label-text-color: #212121;--mdc-chip-elevated-container-color: rgb(224.4, 224.4, 224.4);--mdc-chip-elevated-selected-container-color: rgb(224.4, 224.4, 224.4);--mdc-chip-elevated-disabled-container-color: rgb(224.4, 224.4, 224.4);--mdc-chip-flat-disabled-selected-container-color: rgb(224.4, 224.4, 224.4);--mdc-chip-focus-state-layer-color: black;--mdc-chip-hover-state-layer-color: black;--mdc-chip-selected-hover-state-layer-color: black;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: black;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: #212121;--mdc-chip-selected-label-text-color: #212121;--mdc-chip-with-icon-icon-color: #212121;--mdc-chip-with-icon-disabled-icon-color: #212121;--mdc-chip-with-icon-selected-icon-color: #212121;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: #212121;--mdc-chip-with-trailing-icon-trailing-icon-color: #212121}.mat-mdc-standard-chip{--mat-chip-selected-disabled-trailing-icon-color: #212121;--mat-chip-selected-trailing-icon-color: #212121}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mdc-chip-disabled-label-text-color: white;--mdc-chip-elevated-container-color: #97d6ba;--mdc-chip-elevated-selected-container-color: #97d6ba;--mdc-chip-elevated-disabled-container-color: #97d6ba;--mdc-chip-flat-disabled-selected-container-color: #97d6ba;--mdc-chip-focus-state-layer-color: black;--mdc-chip-hover-state-layer-color: black;--mdc-chip-selected-hover-state-layer-color: black;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: black;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: white;--mdc-chip-selected-label-text-color: white;--mdc-chip-with-icon-icon-color: white;--mdc-chip-with-icon-disabled-icon-color: white;--mdc-chip-with-icon-selected-icon-color: white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mdc-chip-with-trailing-icon-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mdc-chip-disabled-label-text-color: white;--mdc-chip-elevated-container-color: #1e91ff;--mdc-chip-elevated-selected-container-color: #1e91ff;--mdc-chip-elevated-disabled-container-color: #1e91ff;--mdc-chip-flat-disabled-selected-container-color: #1e91ff;--mdc-chip-focus-state-layer-color: black;--mdc-chip-hover-state-layer-color: black;--mdc-chip-selected-hover-state-layer-color: black;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: black;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: white;--mdc-chip-selected-label-text-color: white;--mdc-chip-with-icon-icon-color: white;--mdc-chip-with-icon-disabled-icon-color: white;--mdc-chip-with-icon-selected-icon-color: white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mdc-chip-with-trailing-icon-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mdc-chip-disabled-label-text-color: white;--mdc-chip-elevated-container-color: #f44336;--mdc-chip-elevated-selected-container-color: #f44336;--mdc-chip-elevated-disabled-container-color: #f44336;--mdc-chip-flat-disabled-selected-container-color: #f44336;--mdc-chip-focus-state-layer-color: black;--mdc-chip-hover-state-layer-color: black;--mdc-chip-selected-hover-state-layer-color: black;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: black;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: white;--mdc-chip-selected-label-text-color: white;--mdc-chip-with-icon-icon-color: white;--mdc-chip-with-icon-disabled-icon-color: white;--mdc-chip-with-icon-selected-icon-color: white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mdc-chip-with-trailing-icon-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-trailing-icon-color: white}.mat-mdc-chip.mat-mdc-standard-chip{--mdc-chip-container-height: 28px}html{--mdc-switch-disabled-selected-icon-opacity: .38;--mdc-switch-disabled-track-opacity: .12;--mdc-switch-disabled-unselected-icon-opacity: .38;--mdc-switch-handle-height: 20px;--mdc-switch-handle-shape: 10px;--mdc-switch-handle-width: 20px;--mdc-switch-selected-icon-size: 18px;--mdc-switch-track-height: 14px;--mdc-switch-track-shape: 7px;--mdc-switch-track-width: 36px;--mdc-switch-unselected-icon-size: 18px;--mdc-switch-selected-focus-state-layer-opacity: .12;--mdc-switch-selected-hover-state-layer-opacity: .04;--mdc-switch-selected-pressed-state-layer-opacity: .1;--mdc-switch-unselected-focus-state-layer-opacity: .12;--mdc-switch-unselected-hover-state-layer-opacity: .04;--mdc-switch-unselected-pressed-state-layer-opacity: .1}html .mat-mdc-slide-toggle{--mat-switch-disabled-selected-handle-opacity: .38;--mat-switch-disabled-unselected-handle-opacity: .38;--mat-switch-unselected-handle-size: 20px;--mat-switch-selected-handle-size: 20px;--mat-switch-pressed-handle-size: 20px;--mat-switch-with-icon-handle-size: 20px;--mat-switch-selected-handle-horizontal-margin: 0;--mat-switch-selected-with-icon-handle-horizontal-margin: 0;--mat-switch-selected-pressed-handle-horizontal-margin: 0;--mat-switch-unselected-handle-horizontal-margin: 0;--mat-switch-unselected-with-icon-handle-horizontal-margin: 0;--mat-switch-unselected-pressed-handle-horizontal-margin: 0;--mat-switch-visible-track-opacity: 1;--mat-switch-hidden-track-opacity: 1;--mat-switch-visible-track-transition: transform 75ms 0ms cubic-bezier(0, 0, .2, 1);--mat-switch-hidden-track-transition: transform 75ms 0ms cubic-bezier(.4, 0, .6, 1);--mat-switch-track-outline-width: 1px;--mat-switch-track-outline-color: transparent;--mat-switch-selected-track-outline-width: 1px;--mat-switch-selected-track-outline-color: transparent;--mat-switch-disabled-unselected-track-outline-width: 1px;--mat-switch-disabled-unselected-track-outline-color: transparent}html{--mdc-switch-selected-focus-state-layer-color: #37546b;--mdc-switch-selected-handle-color: #37546b;--mdc-switch-selected-hover-state-layer-color: #37546b;--mdc-switch-selected-pressed-state-layer-color: #37546b;--mdc-switch-selected-focus-handle-color: #1a3043;--mdc-switch-selected-hover-handle-color: #1a3043;--mdc-switch-selected-pressed-handle-color: #1a3043;--mdc-switch-selected-focus-track-color: #778d9d;--mdc-switch-selected-hover-track-color: #778d9d;--mdc-switch-selected-pressed-track-color: #778d9d;--mdc-switch-selected-track-color: #778d9d;--mdc-switch-disabled-selected-handle-color: #424242;--mdc-switch-disabled-selected-icon-color: #fff;--mdc-switch-disabled-selected-track-color: #424242;--mdc-switch-disabled-unselected-handle-color: #424242;--mdc-switch-disabled-unselected-icon-color: #fff;--mdc-switch-disabled-unselected-track-color: #424242;--mdc-switch-handle-surface-color: #fff;--mdc-switch-selected-icon-color: #fff;--mdc-switch-unselected-focus-handle-color: #212121;--mdc-switch-unselected-focus-state-layer-color: #424242;--mdc-switch-unselected-focus-track-color: #e0e0e0;--mdc-switch-unselected-handle-color: #616161;--mdc-switch-unselected-hover-handle-color: #212121;--mdc-switch-unselected-hover-state-layer-color: #424242;--mdc-switch-unselected-hover-track-color: #e0e0e0;--mdc-switch-unselected-icon-color: #fff;--mdc-switch-unselected-pressed-handle-color: #212121;--mdc-switch-unselected-pressed-state-layer-color: #424242;--mdc-switch-unselected-pressed-track-color: #e0e0e0;--mdc-switch-unselected-track-color: #e0e0e0;--mdc-switch-handle-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-switch-disabled-handle-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mdc-switch-disabled-label-text-color: rgba(0, 0, 0, .38)}html .mat-mdc-slide-toggle{--mat-switch-label-text-color: rgba(0, 0, 0, .87)}html .mat-mdc-slide-toggle.mat-accent{--mdc-switch-selected-focus-state-layer-color: #37546b;--mdc-switch-selected-handle-color: #37546b;--mdc-switch-selected-hover-state-layer-color: #37546b;--mdc-switch-selected-pressed-state-layer-color: #37546b;--mdc-switch-selected-focus-handle-color: #1a3043;--mdc-switch-selected-hover-handle-color: #1a3043;--mdc-switch-selected-pressed-handle-color: #1a3043;--mdc-switch-selected-focus-track-color: #778d9d;--mdc-switch-selected-hover-track-color: #778d9d;--mdc-switch-selected-pressed-track-color: #778d9d;--mdc-switch-selected-track-color: #778d9d}html .mat-mdc-slide-toggle.mat-warn{--mdc-switch-selected-focus-state-layer-color: #e53935;--mdc-switch-selected-handle-color: #e53935;--mdc-switch-selected-hover-state-layer-color: #e53935;--mdc-switch-selected-pressed-state-layer-color: #e53935;--mdc-switch-selected-focus-handle-color: #b71c1c;--mdc-switch-selected-hover-handle-color: #b71c1c;--mdc-switch-selected-pressed-handle-color: #b71c1c;--mdc-switch-selected-focus-track-color: #e57373;--mdc-switch-selected-hover-track-color: #e57373;--mdc-switch-selected-pressed-track-color: #e57373;--mdc-switch-selected-track-color: #e57373}html{--mdc-switch-state-layer-size: 36px}html{--mdc-radio-disabled-selected-icon-opacity: .38;--mdc-radio-disabled-unselected-icon-opacity: .38;--mdc-radio-state-layer-size: 40px}.mat-mdc-radio-button.mat-primary{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #97d6ba;--mdc-radio-selected-hover-icon-color: #97d6ba;--mdc-radio-selected-icon-color: #97d6ba;--mdc-radio-selected-pressed-icon-color: #97d6ba}.mat-mdc-radio-button.mat-primary{--mat-radio-ripple-color: black;--mat-radio-checked-ripple-color: #97d6ba;--mat-radio-disabled-label-color: rgba(0, 0, 0, .38);--mat-radio-label-text-color: rgba(0, 0, 0, .87)}.mat-mdc-radio-button.mat-accent{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #1e91ff;--mdc-radio-selected-hover-icon-color: #1e91ff;--mdc-radio-selected-icon-color: #1e91ff;--mdc-radio-selected-pressed-icon-color: #1e91ff}.mat-mdc-radio-button.mat-accent{--mat-radio-ripple-color: black;--mat-radio-checked-ripple-color: #1e91ff;--mat-radio-disabled-label-color: rgba(0, 0, 0, .38);--mat-radio-label-text-color: rgba(0, 0, 0, .87)}.mat-mdc-radio-button.mat-warn{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #f44336;--mdc-radio-selected-hover-icon-color: #f44336;--mdc-radio-selected-icon-color: #f44336;--mdc-radio-selected-pressed-icon-color: #f44336}.mat-mdc-radio-button.mat-warn{--mat-radio-ripple-color: black;--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: rgba(0, 0, 0, .38);--mat-radio-label-text-color: rgba(0, 0, 0, .87)}html{--mdc-radio-state-layer-size: 36px}html{--mat-radio-touch-target-display: block}html{--mdc-slider-active-track-height: 6px;--mdc-slider-active-track-shape: 9999px;--mdc-slider-handle-height: 20px;--mdc-slider-handle-shape: 50%;--mdc-slider-handle-width: 20px;--mdc-slider-inactive-track-height: 4px;--mdc-slider-inactive-track-shape: 9999px;--mdc-slider-with-overlap-handle-outline-width: 1px;--mdc-slider-with-tick-marks-active-container-opacity: .6;--mdc-slider-with-tick-marks-container-shape: 50%;--mdc-slider-with-tick-marks-container-size: 2px;--mdc-slider-with-tick-marks-inactive-container-opacity: .6;--mdc-slider-handle-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mat-slider-value-indicator-width: auto;--mat-slider-value-indicator-height: 32px;--mat-slider-value-indicator-caret-display: block;--mat-slider-value-indicator-border-radius: 4px;--mat-slider-value-indicator-padding: 0 12px;--mat-slider-value-indicator-text-transform: none;--mat-slider-value-indicator-container-transform: translateX(-50%)}html{--mdc-slider-handle-color: #97d6ba;--mdc-slider-focus-handle-color: #97d6ba;--mdc-slider-hover-handle-color: #97d6ba;--mdc-slider-active-track-color: #97d6ba;--mdc-slider-inactive-track-color: #97d6ba;--mdc-slider-with-tick-marks-inactive-container-color: #97d6ba;--mdc-slider-with-tick-marks-active-container-color: white;--mdc-slider-disabled-active-track-color: #000;--mdc-slider-disabled-handle-color: #000;--mdc-slider-disabled-inactive-track-color: #000;--mdc-slider-label-container-color: #000;--mdc-slider-label-label-text-color: #fff;--mdc-slider-with-overlap-handle-outline-color: #fff;--mdc-slider-with-tick-marks-disabled-container-color: #000}html{--mat-slider-ripple-color: #97d6ba;--mat-slider-hover-state-layer-color: rgba(151, 214, 186, .05);--mat-slider-focus-state-layer-color: rgba(151, 214, 186, .2);--mat-slider-value-indicator-opacity: .6}html .mat-accent{--mdc-slider-handle-color: #1e91ff;--mdc-slider-focus-handle-color: #1e91ff;--mdc-slider-hover-handle-color: #1e91ff;--mdc-slider-active-track-color: #1e91ff;--mdc-slider-inactive-track-color: #1e91ff;--mdc-slider-with-tick-marks-inactive-container-color: #1e91ff;--mdc-slider-with-tick-marks-active-container-color: white}html .mat-accent{--mat-slider-ripple-color: #1e91ff;--mat-slider-hover-state-layer-color: rgba(30, 145, 255, .05);--mat-slider-focus-state-layer-color: rgba(30, 145, 255, .2)}html .mat-warn{--mdc-slider-handle-color: #f44336;--mdc-slider-focus-handle-color: #f44336;--mdc-slider-hover-handle-color: #f44336;--mdc-slider-active-track-color: #f44336;--mdc-slider-inactive-track-color: #f44336;--mdc-slider-with-tick-marks-inactive-container-color: #f44336;--mdc-slider-with-tick-marks-active-container-color: white}html .mat-warn{--mat-slider-ripple-color: #f44336;--mat-slider-hover-state-layer-color: rgba(244, 67, 54, .05);--mat-slider-focus-state-layer-color: rgba(244, 67, 54, .2)}html{--mat-menu-container-shape: 4px;--mat-menu-divider-bottom-spacing: 0;--mat-menu-divider-top-spacing: 0;--mat-menu-item-spacing: 16px;--mat-menu-item-icon-size: 24px;--mat-menu-item-leading-spacing: 16px;--mat-menu-item-trailing-spacing: 16px;--mat-menu-item-with-icon-leading-spacing: 16px;--mat-menu-item-with-icon-trailing-spacing: 16px;--mat-menu-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-menu-item-label-text-color: rgba(0, 0, 0, .87);--mat-menu-item-icon-color: rgba(0, 0, 0, .87);--mat-menu-item-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-menu-item-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-menu-container-color: white;--mat-menu-divider-color: rgba(0, 0, 0, .12)}html{--mdc-list-list-item-container-shape: 0;--mdc-list-list-item-leading-avatar-shape: 50%;--mdc-list-list-item-container-color: transparent;--mdc-list-list-item-selected-container-color: transparent;--mdc-list-list-item-leading-avatar-color: transparent;--mdc-list-list-item-leading-icon-size: 24px;--mdc-list-list-item-leading-avatar-size: 40px;--mdc-list-list-item-trailing-icon-size: 24px;--mdc-list-list-item-disabled-state-layer-color: transparent;--mdc-list-list-item-disabled-state-layer-opacity: 0;--mdc-list-list-item-disabled-label-text-opacity: .38;--mdc-list-list-item-disabled-leading-icon-opacity: .38;--mdc-list-list-item-disabled-trailing-icon-opacity: .38}html{--mat-list-active-indicator-color: transparent;--mat-list-active-indicator-shape: 4px}html{--mdc-list-list-item-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-supporting-text-color: rgba(0, 0, 0, .54);--mdc-list-list-item-leading-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-trailing-supporting-text-color: rgba(0, 0, 0, .38);--mdc-list-list-item-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-selected-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-disabled-label-text-color: black;--mdc-list-list-item-disabled-leading-icon-color: black;--mdc-list-list-item-disabled-trailing-icon-color: black;--mdc-list-list-item-hover-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-hover-leading-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-hover-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-focus-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-hover-state-layer-color: black;--mdc-list-list-item-hover-state-layer-opacity: .04;--mdc-list-list-item-focus-state-layer-color: black;--mdc-list-list-item-focus-state-layer-opacity: .12}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #97d6ba;--mdc-radio-selected-hover-icon-color: #97d6ba;--mdc-radio-selected-icon-color: #97d6ba;--mdc-radio-selected-pressed-icon-color: #97d6ba}.mat-accent .mdc-list-item__start,.mat-accent .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #1e91ff;--mdc-radio-selected-hover-icon-color: #1e91ff;--mdc-radio-selected-icon-color: #1e91ff;--mdc-radio-selected-pressed-icon-color: #1e91ff}.mat-warn .mdc-list-item__start,.mat-warn .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #f44336;--mdc-radio-selected-hover-icon-color: #f44336;--mdc-radio-selected-icon-color: #f44336;--mdc-radio-selected-pressed-icon-color: #f44336}.mat-mdc-list-option{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #97d6ba;--mdc-checkbox-selected-hover-icon-color: #97d6ba;--mdc-checkbox-selected-icon-color: #97d6ba;--mdc-checkbox-selected-pressed-icon-color: #97d6ba;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #97d6ba;--mdc-checkbox-selected-hover-state-layer-color: #97d6ba;--mdc-checkbox-selected-pressed-state-layer-color: #97d6ba;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-list-option.mat-accent{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #1e91ff;--mdc-checkbox-selected-hover-icon-color: #1e91ff;--mdc-checkbox-selected-icon-color: #1e91ff;--mdc-checkbox-selected-pressed-icon-color: #1e91ff;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #1e91ff;--mdc-checkbox-selected-hover-state-layer-color: #1e91ff;--mdc-checkbox-selected-pressed-state-layer-color: #1e91ff;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-list-option.mat-warn{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #f44336;--mdc-checkbox-selected-hover-icon-color: #f44336;--mdc-checkbox-selected-icon-color: #f44336;--mdc-checkbox-selected-pressed-icon-color: #f44336;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #f44336;--mdc-checkbox-selected-hover-state-layer-color: #f44336;--mdc-checkbox-selected-pressed-state-layer-color: #f44336;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__start,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__start{color:#97d6ba}.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}html{--mdc-list-list-item-one-line-container-height: 44px;--mdc-list-list-item-two-line-container-height: 60px;--mdc-list-list-item-three-line-container-height: 84px}html{--mat-list-list-item-leading-icon-start-space: 16px;--mat-list-list-item-leading-icon-end-space: 32px}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-state-layer-size: 36px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:52px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:68px}html{--mat-paginator-container-text-color: rgba(0, 0, 0, .87);--mat-paginator-container-background-color: white;--mat-paginator-enabled-icon-color: rgba(0, 0, 0, .54);--mat-paginator-disabled-icon-color: rgba(0, 0, 0, .12)}html{--mat-paginator-container-size: 52px;--mat-paginator-form-field-container-height: 40px;--mat-paginator-form-field-container-vertical-padding: 8px;--mat-paginator-touch-target-display: block}html{--mdc-secondary-navigation-tab-container-height: 48px}html{--mdc-tab-indicator-active-indicator-height: 2px;--mdc-tab-indicator-active-indicator-shape: 0}html{--mat-tab-header-divider-color: transparent;--mat-tab-header-divider-height: 0}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mdc-tab-indicator-active-indicator-color: #97d6ba}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mat-tab-header-disabled-ripple-color: rgba(0, 0, 0, .38);--mat-tab-header-pagination-icon-color: black;--mat-tab-header-inactive-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-label-text-color: #97d6ba;--mat-tab-header-active-ripple-color: #97d6ba;--mat-tab-header-inactive-ripple-color: #97d6ba;--mat-tab-header-inactive-focus-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-inactive-hover-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-focus-label-text-color: #97d6ba;--mat-tab-header-active-hover-label-text-color: #97d6ba;--mat-tab-header-active-focus-indicator-color: #97d6ba;--mat-tab-header-active-hover-indicator-color: #97d6ba}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mdc-tab-indicator-active-indicator-color: #1e91ff}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mat-tab-header-disabled-ripple-color: rgba(0, 0, 0, .38);--mat-tab-header-pagination-icon-color: black;--mat-tab-header-inactive-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-label-text-color: #1e91ff;--mat-tab-header-active-ripple-color: #1e91ff;--mat-tab-header-inactive-ripple-color: #1e91ff;--mat-tab-header-inactive-focus-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-inactive-hover-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-focus-label-text-color: #1e91ff;--mat-tab-header-active-hover-label-text-color: #1e91ff;--mat-tab-header-active-focus-indicator-color: #1e91ff;--mat-tab-header-active-hover-indicator-color: #1e91ff}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mdc-tab-indicator-active-indicator-color: #f44336}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mat-tab-header-disabled-ripple-color: rgba(0, 0, 0, .38);--mat-tab-header-pagination-icon-color: black;--mat-tab-header-inactive-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-label-text-color: #f44336;--mat-tab-header-active-ripple-color: #f44336;--mat-tab-header-inactive-ripple-color: #f44336;--mat-tab-header-inactive-focus-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-inactive-hover-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-focus-label-text-color: #f44336;--mat-tab-header-active-hover-label-text-color: #f44336;--mat-tab-header-active-focus-indicator-color: #f44336;--mat-tab-header-active-hover-indicator-color: #f44336}.mat-mdc-tab-group.mat-background-primary,.mat-mdc-tab-nav-bar.mat-background-primary{--mat-tab-header-with-background-background-color: #97d6ba;--mat-tab-header-with-background-foreground-color: white}.mat-mdc-tab-group.mat-background-accent,.mat-mdc-tab-nav-bar.mat-background-accent{--mat-tab-header-with-background-background-color: #1e91ff;--mat-tab-header-with-background-foreground-color: white}.mat-mdc-tab-group.mat-background-warn,.mat-mdc-tab-nav-bar.mat-background-warn{--mat-tab-header-with-background-background-color: #f44336;--mat-tab-header-with-background-foreground-color: white}.mat-mdc-tab-header{--mdc-secondary-navigation-tab-container-height: 44px}html{--mdc-checkbox-disabled-selected-checkmark-color: #fff;--mdc-checkbox-selected-focus-state-layer-opacity: .16;--mdc-checkbox-selected-hover-state-layer-opacity: .04;--mdc-checkbox-selected-pressed-state-layer-opacity: .16;--mdc-checkbox-unselected-focus-state-layer-opacity: .16;--mdc-checkbox-unselected-hover-state-layer-opacity: .04;--mdc-checkbox-unselected-pressed-state-layer-opacity: .16}html{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #1e91ff;--mdc-checkbox-selected-hover-icon-color: #1e91ff;--mdc-checkbox-selected-icon-color: #1e91ff;--mdc-checkbox-selected-pressed-icon-color: #1e91ff;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #1e91ff;--mdc-checkbox-selected-hover-state-layer-color: #1e91ff;--mdc-checkbox-selected-pressed-state-layer-color: #1e91ff;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}html{--mat-checkbox-disabled-label-color: rgba(0, 0, 0, .38);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87)}.mat-mdc-checkbox.mat-primary{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #97d6ba;--mdc-checkbox-selected-hover-icon-color: #97d6ba;--mdc-checkbox-selected-icon-color: #97d6ba;--mdc-checkbox-selected-pressed-icon-color: #97d6ba;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #97d6ba;--mdc-checkbox-selected-hover-state-layer-color: #97d6ba;--mdc-checkbox-selected-pressed-state-layer-color: #97d6ba;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-checkbox.mat-warn{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #f44336;--mdc-checkbox-selected-hover-icon-color: #f44336;--mdc-checkbox-selected-icon-color: #f44336;--mdc-checkbox-selected-pressed-icon-color: #f44336;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #f44336;--mdc-checkbox-selected-hover-state-layer-color: #f44336;--mdc-checkbox-selected-pressed-state-layer-color: #f44336;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}html{--mdc-checkbox-state-layer-size: 36px}html{--mat-checkbox-touch-target-display: block}html{--mdc-text-button-container-shape: 4px;--mdc-text-button-keep-touch-target: false}html{--mdc-filled-button-container-shape: 4px;--mdc-filled-button-keep-touch-target: false}html{--mdc-protected-button-container-shape: 4px;--mdc-protected-button-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mdc-protected-button-disabled-container-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mdc-protected-button-focus-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mdc-protected-button-hover-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mdc-protected-button-pressed-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mdc-outlined-button-keep-touch-target: false;--mdc-outlined-button-outline-width: 1px;--mdc-outlined-button-container-shape: 4px}html{--mat-text-button-horizontal-padding: 8px;--mat-text-button-with-icon-horizontal-padding: 8px;--mat-text-button-icon-spacing: 8px;--mat-text-button-icon-offset: 0}html{--mat-filled-button-horizontal-padding: 16px;--mat-filled-button-icon-spacing: 8px;--mat-filled-button-icon-offset: -4px}html{--mat-protected-button-horizontal-padding: 16px;--mat-protected-button-icon-spacing: 8px;--mat-protected-button-icon-offset: -4px}html{--mat-outlined-button-horizontal-padding: 15px;--mat-outlined-button-icon-spacing: 8px;--mat-outlined-button-icon-offset: -4px}html{--mdc-text-button-label-text-color: black;--mdc-text-button-disabled-label-text-color: rgba(0, 0, 0, .38)}html{--mat-text-button-state-layer-color: black;--mat-text-button-disabled-state-layer-color: black;--mat-text-button-ripple-color: rgba(0, 0, 0, .1);--mat-text-button-hover-state-layer-opacity: .04;--mat-text-button-focus-state-layer-opacity: .12;--mat-text-button-pressed-state-layer-opacity: .12}html{--mdc-filled-button-container-color: white;--mdc-filled-button-label-text-color: black;--mdc-filled-button-disabled-container-color: rgba(0, 0, 0, .12);--mdc-filled-button-disabled-label-text-color: rgba(0, 0, 0, .38)}html{--mat-filled-button-state-layer-color: black;--mat-filled-button-disabled-state-layer-color: black;--mat-filled-button-ripple-color: rgba(0, 0, 0, .1);--mat-filled-button-hover-state-layer-opacity: .04;--mat-filled-button-focus-state-layer-opacity: .12;--mat-filled-button-pressed-state-layer-opacity: .12}html{--mdc-protected-button-container-color: white;--mdc-protected-button-label-text-color: black;--mdc-protected-button-disabled-container-color: rgba(0, 0, 0, .12);--mdc-protected-button-disabled-label-text-color: rgba(0, 0, 0, .38)}html{--mat-protected-button-state-layer-color: black;--mat-protected-button-disabled-state-layer-color: black;--mat-protected-button-ripple-color: rgba(0, 0, 0, .1);--mat-protected-button-hover-state-layer-opacity: .04;--mat-protected-button-focus-state-layer-opacity: .12;--mat-protected-button-pressed-state-layer-opacity: .12}html{--mdc-outlined-button-disabled-outline-color: rgba(0, 0, 0, .12);--mdc-outlined-button-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-outlined-button-label-text-color: black;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12)}html{--mat-outlined-button-state-layer-color: black;--mat-outlined-button-disabled-state-layer-color: black;--mat-outlined-button-ripple-color: rgba(0, 0, 0, .1);--mat-outlined-button-hover-state-layer-opacity: .04;--mat-outlined-button-focus-state-layer-opacity: .12;--mat-outlined-button-pressed-state-layer-opacity: .12}.mat-mdc-button.mat-primary{--mdc-text-button-label-text-color: #97d6ba}.mat-mdc-button.mat-primary{--mat-text-button-state-layer-color: #97d6ba;--mat-text-button-ripple-color: rgba(151, 214, 186, .1)}.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color: #1e91ff}.mat-mdc-button.mat-accent{--mat-text-button-state-layer-color: #1e91ff;--mat-text-button-ripple-color: rgba(30, 145, 255, .1)}.mat-mdc-button.mat-warn{--mdc-text-button-label-text-color: #f44336}.mat-mdc-button.mat-warn{--mat-text-button-state-layer-color: #f44336;--mat-text-button-ripple-color: rgba(244, 67, 54, .1)}.mat-mdc-unelevated-button.mat-primary{--mdc-filled-button-container-color: #97d6ba;--mdc-filled-button-label-text-color: white}.mat-mdc-unelevated-button.mat-primary{--mat-filled-button-state-layer-color: white;--mat-filled-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-unelevated-button.mat-accent{--mdc-filled-button-container-color: #1e91ff;--mdc-filled-button-label-text-color: white}.mat-mdc-unelevated-button.mat-accent{--mat-filled-button-state-layer-color: white;--mat-filled-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-unelevated-button.mat-warn{--mdc-filled-button-container-color: #f44336;--mdc-filled-button-label-text-color: white}.mat-mdc-unelevated-button.mat-warn{--mat-filled-button-state-layer-color: white;--mat-filled-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-primary{--mdc-protected-button-container-color: #97d6ba;--mdc-protected-button-label-text-color: white}.mat-mdc-raised-button.mat-primary{--mat-protected-button-state-layer-color: white;--mat-protected-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-accent{--mdc-protected-button-container-color: #1e91ff;--mdc-protected-button-label-text-color: white}.mat-mdc-raised-button.mat-accent{--mat-protected-button-state-layer-color: white;--mat-protected-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-warn{--mdc-protected-button-container-color: #f44336;--mdc-protected-button-label-text-color: white}.mat-mdc-raised-button.mat-warn{--mat-protected-button-state-layer-color: white;--mat-protected-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-outlined-button.mat-primary{--mdc-outlined-button-label-text-color: #97d6ba;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12)}.mat-mdc-outlined-button.mat-primary{--mat-outlined-button-state-layer-color: #97d6ba;--mat-outlined-button-ripple-color: rgba(151, 214, 186, .1)}.mat-mdc-outlined-button.mat-accent{--mdc-outlined-button-label-text-color: #1e91ff;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12)}.mat-mdc-outlined-button.mat-accent{--mat-outlined-button-state-layer-color: #1e91ff;--mat-outlined-button-ripple-color: rgba(30, 145, 255, .1)}.mat-mdc-outlined-button.mat-warn{--mdc-outlined-button-label-text-color: #f44336;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12)}.mat-mdc-outlined-button.mat-warn{--mat-outlined-button-state-layer-color: #f44336;--mat-outlined-button-ripple-color: rgba(244, 67, 54, .1)}html{--mdc-text-button-container-height: 32px}html{--mdc-filled-button-container-height: 32px}html{--mdc-protected-button-container-height: 32px}html{--mdc-outlined-button-container-height: 32px}html{--mat-text-button-touch-target-display: block}html{--mat-filled-button-touch-target-display: block}html{--mat-protected-button-touch-target-display: block}html{--mat-outlined-button-touch-target-display: block}html{--mdc-icon-button-icon-size: 24px}html{--mdc-icon-button-icon-color: inherit;--mdc-icon-button-disabled-icon-color: rgba(0, 0, 0, .38)}html{--mat-icon-button-state-layer-color: black;--mat-icon-button-disabled-state-layer-color: black;--mat-icon-button-ripple-color: rgba(0, 0, 0, .1);--mat-icon-button-hover-state-layer-opacity: .04;--mat-icon-button-focus-state-layer-opacity: .12;--mat-icon-button-pressed-state-layer-opacity: .12}html .mat-mdc-icon-button.mat-primary{--mdc-icon-button-icon-color: #97d6ba}html .mat-mdc-icon-button.mat-primary{--mat-icon-button-state-layer-color: #97d6ba;--mat-icon-button-ripple-color: rgba(151, 214, 186, .1)}html .mat-mdc-icon-button.mat-accent{--mdc-icon-button-icon-color: #1e91ff}html .mat-mdc-icon-button.mat-accent{--mat-icon-button-state-layer-color: #1e91ff;--mat-icon-button-ripple-color: rgba(30, 145, 255, .1)}html .mat-mdc-icon-button.mat-warn{--mdc-icon-button-icon-color: #f44336}html .mat-mdc-icon-button.mat-warn{--mat-icon-button-state-layer-color: #f44336;--mat-icon-button-ripple-color: rgba(244, 67, 54, .1)}html{--mat-icon-button-touch-target-display: block}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 44px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:10px}html{--mdc-fab-container-shape: 50%;--mdc-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mdc-fab-small-container-shape: 50%;--mdc-fab-small-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-small-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-small-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-small-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mdc-extended-fab-container-height: 48px;--mdc-extended-fab-container-shape: 24px;--mdc-extended-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-extended-fab-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-extended-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-extended-fab-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mdc-fab-container-color: white}html{--mat-fab-foreground-color: black;--mat-fab-state-layer-color: black;--mat-fab-disabled-state-layer-color: black;--mat-fab-ripple-color: rgba(0, 0, 0, .1);--mat-fab-hover-state-layer-opacity: .04;--mat-fab-focus-state-layer-opacity: .12;--mat-fab-pressed-state-layer-opacity: .12;--mat-fab-disabled-state-container-color: rgba(0, 0, 0, .12);--mat-fab-disabled-state-foreground-color: rgba(0, 0, 0, .38)}html{--mdc-fab-small-container-color: white}html{--mat-fab-small-foreground-color: black;--mat-fab-small-state-layer-color: black;--mat-fab-small-disabled-state-layer-color: black;--mat-fab-small-ripple-color: rgba(0, 0, 0, .1);--mat-fab-small-hover-state-layer-opacity: .04;--mat-fab-small-focus-state-layer-opacity: .12;--mat-fab-small-pressed-state-layer-opacity: .12;--mat-fab-small-disabled-state-container-color: rgba(0, 0, 0, .12);--mat-fab-small-disabled-state-foreground-color: rgba(0, 0, 0, .38)}html .mat-mdc-fab.mat-primary{--mdc-fab-container-color: #97d6ba}html .mat-mdc-fab.mat-primary{--mat-fab-foreground-color: white;--mat-fab-state-layer-color: white;--mat-fab-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-fab.mat-accent{--mdc-fab-container-color: #1e91ff}html .mat-mdc-fab.mat-accent{--mat-fab-foreground-color: white;--mat-fab-state-layer-color: white;--mat-fab-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-fab.mat-warn{--mdc-fab-container-color: #f44336}html .mat-mdc-fab.mat-warn{--mat-fab-foreground-color: white;--mat-fab-state-layer-color: white;--mat-fab-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-mini-fab.mat-primary{--mdc-fab-small-container-color: #97d6ba}html .mat-mdc-mini-fab.mat-primary{--mat-fab-small-foreground-color: white;--mat-fab-small-state-layer-color: white;--mat-fab-small-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-mini-fab.mat-accent{--mdc-fab-small-container-color: #1e91ff}html .mat-mdc-mini-fab.mat-accent{--mat-fab-small-foreground-color: white;--mat-fab-small-state-layer-color: white;--mat-fab-small-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-mini-fab.mat-warn{--mdc-fab-small-container-color: #f44336}html .mat-mdc-mini-fab.mat-warn{--mat-fab-small-foreground-color: white;--mat-fab-small-state-layer-color: white;--mat-fab-small-ripple-color: rgba(255, 255, 255, .1)}html{--mat-fab-touch-target-display: block}html{--mat-fab-small-touch-target-display: block}html{--mdc-snackbar-container-shape: 4px}html{--mdc-snackbar-container-color: #333333;--mdc-snackbar-supporting-text-color: rgba(255, 255, 255, .87)}html{--mat-snack-bar-button-color: #1e91ff}html{--mat-table-row-item-outline-width: 1px}html{--mat-table-background-color: white;--mat-table-header-headline-color: rgba(0, 0, 0, .87);--mat-table-row-item-label-text-color: rgba(0, 0, 0, .87);--mat-table-row-item-outline-color: rgba(0, 0, 0, .12)}html{--mat-table-header-container-height: 52px;--mat-table-footer-container-height: 48px;--mat-table-row-item-container-height: 48px}html{--mdc-circular-progress-active-indicator-width: 4px;--mdc-circular-progress-size: 48px}html{--mdc-circular-progress-active-indicator-color: #97d6ba}html .mat-accent{--mdc-circular-progress-active-indicator-color: #1e91ff}html .mat-warn{--mdc-circular-progress-active-indicator-color: #f44336}html{--mat-badge-container-shape: 50%;--mat-badge-container-size: unset;--mat-badge-small-size-container-size: unset;--mat-badge-large-size-container-size: unset;--mat-badge-legacy-container-size: 22px;--mat-badge-legacy-small-size-container-size: 16px;--mat-badge-legacy-large-size-container-size: 28px;--mat-badge-container-offset: -11px 0;--mat-badge-small-size-container-offset: -8px 0;--mat-badge-large-size-container-offset: -14px 0;--mat-badge-container-overlap-offset: -11px;--mat-badge-small-size-container-overlap-offset: -8px;--mat-badge-large-size-container-overlap-offset: -14px;--mat-badge-container-padding: 0;--mat-badge-small-size-container-padding: 0;--mat-badge-large-size-container-padding: 0}html{--mat-badge-background-color: #97d6ba;--mat-badge-text-color: white;--mat-badge-disabled-state-background-color: #b9b9b9;--mat-badge-disabled-state-text-color: rgba(0, 0, 0, .38)}.mat-badge-accent{--mat-badge-background-color: #1e91ff;--mat-badge-text-color: white}.mat-badge-warn{--mat-badge-background-color: #f44336;--mat-badge-text-color: white}html{--mat-bottom-sheet-container-shape: 4px}html{--mat-bottom-sheet-container-text-color: rgba(0, 0, 0, .87);--mat-bottom-sheet-container-background-color: white}html{--mat-legacy-button-toggle-height: 36px;--mat-legacy-button-toggle-shape: 2px;--mat-legacy-button-toggle-focus-state-layer-opacity: 1}html{--mat-standard-button-toggle-shape: 4px;--mat-standard-button-toggle-hover-state-layer-opacity: .04;--mat-standard-button-toggle-focus-state-layer-opacity: .12}html{--mat-legacy-button-toggle-text-color: rgba(0, 0, 0, .38);--mat-legacy-button-toggle-state-layer-color: rgba(0, 0, 0, .12);--mat-legacy-button-toggle-selected-state-text-color: rgba(0, 0, 0, .54);--mat-legacy-button-toggle-selected-state-background-color: #e0e0e0;--mat-legacy-button-toggle-disabled-state-text-color: rgba(0, 0, 0, .26);--mat-legacy-button-toggle-disabled-state-background-color: #eeeeee;--mat-legacy-button-toggle-disabled-selected-state-background-color: #bdbdbd}html{--mat-standard-button-toggle-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-background-color: white;--mat-standard-button-toggle-state-layer-color: black;--mat-standard-button-toggle-selected-state-background-color: #e0e0e0;--mat-standard-button-toggle-selected-state-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-disabled-state-text-color: rgba(0, 0, 0, .26);--mat-standard-button-toggle-disabled-state-background-color: white;--mat-standard-button-toggle-disabled-selected-state-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-disabled-selected-state-background-color: #bdbdbd;--mat-standard-button-toggle-divider-color: rgb(224.4, 224.4, 224.4)}html{--mat-standard-button-toggle-height: 44px}html{--mat-datepicker-calendar-container-shape: 4px;--mat-datepicker-calendar-container-touch-shape: 4px;--mat-datepicker-calendar-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-datepicker-calendar-container-touch-elevation-shadow: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12)}html{--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #97d6ba;--mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(151, 214, 186, .4);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: rgba(151, 214, 186, .3);--mat-datepicker-calendar-date-hover-state-background-color: rgba(151, 214, 186, .3);--mat-datepicker-toggle-active-state-icon-color: #97d6ba;--mat-datepicker-calendar-date-in-range-state-background-color: rgba(151, 214, 186, .2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, .2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: black;--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .38);--mat-datepicker-calendar-date-today-disabled-state-outline-color: rgba(0, 0, 0, .18);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: rgba(0, 0, 0, .38);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .24);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: rgba(0, 0, 0, .38);--mat-datepicker-range-input-disabled-state-text-color: rgba(0, 0, 0, .38);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.mat-datepicker-content.mat-accent{--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #1e91ff;--mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(30, 145, 255, .4);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: rgba(30, 145, 255, .3);--mat-datepicker-calendar-date-hover-state-background-color: rgba(30, 145, 255, .3);--mat-datepicker-calendar-date-in-range-state-background-color: rgba(30, 145, 255, .2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, .2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032)}.mat-datepicker-content.mat-warn{--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #f44336;--mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(244, 67, 54, .4);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: rgba(244, 67, 54, .3);--mat-datepicker-calendar-date-hover-state-background-color: rgba(244, 67, 54, .3);--mat-datepicker-calendar-date-in-range-state-background-color: rgba(244, 67, 54, .2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, .2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032)}.mat-datepicker-toggle-active.mat-accent{--mat-datepicker-toggle-active-state-icon-color: #1e91ff}.mat-datepicker-toggle-active.mat-warn{--mat-datepicker-toggle-active-state-icon-color: #f44336}.mat-calendar-controls{--mat-icon-button-touch-target-display: none}.mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 40px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:8px}html{--mat-divider-width: 1px}html{--mat-divider-color: rgba(0, 0, 0, .12)}html{--mat-expansion-container-shape: 4px;--mat-expansion-legacy-header-indicator-display: inline-block;--mat-expansion-header-indicator-display: none}html{--mat-expansion-container-background-color: white;--mat-expansion-container-text-color: rgba(0, 0, 0, .87);--mat-expansion-actions-divider-color: rgba(0, 0, 0, .12);--mat-expansion-header-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-expansion-header-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-expansion-header-disabled-state-text-color: rgba(0, 0, 0, .26);--mat-expansion-header-text-color: rgba(0, 0, 0, .87);--mat-expansion-header-description-color: rgba(0, 0, 0, .54);--mat-expansion-header-indicator-color: rgba(0, 0, 0, .54)}html{--mat-expansion-header-collapsed-state-height: 44px;--mat-expansion-header-expanded-state-height: 60px}html{--mat-icon-color: inherit}.mat-icon.mat-primary{--mat-icon-color: #97d6ba}.mat-icon.mat-accent{--mat-icon-color: #1e91ff}.mat-icon.mat-warn{--mat-icon-color: #f44336}html{--mat-sidenav-container-shape: 0;--mat-sidenav-container-elevation-shadow: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-sidenav-container-width: auto}html{--mat-sidenav-container-divider-color: rgba(0, 0, 0, .12);--mat-sidenav-container-background-color: white;--mat-sidenav-container-text-color: rgba(0, 0, 0, .87);--mat-sidenav-content-background-color: #fafafa;--mat-sidenav-content-text-color: rgba(0, 0, 0, .87);--mat-sidenav-scrim-color: rgba(0, 0, 0, .6)}html{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #97d6ba;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #97d6ba;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #97d6ba;--mat-stepper-header-edit-state-icon-foreground-color: white;--mat-stepper-container-color: white;--mat-stepper-line-color: rgba(0, 0, 0, .12);--mat-stepper-header-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-stepper-header-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-stepper-header-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-optional-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-selected-state-label-text-color: rgba(0, 0, 0, .87);--mat-stepper-header-error-state-label-text-color: #f44336;--mat-stepper-header-icon-background-color: rgba(0, 0, 0, .54);--mat-stepper-header-error-state-icon-foreground-color: #f44336;--mat-stepper-header-error-state-icon-background-color: transparent}html .mat-step-header.mat-accent{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #1e91ff;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #1e91ff;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #1e91ff;--mat-stepper-header-edit-state-icon-foreground-color: white}html .mat-step-header.mat-warn{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #f44336;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #f44336;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #f44336;--mat-stepper-header-edit-state-icon-foreground-color: white}html{--mat-stepper-header-height: 68px}html{--mat-sort-arrow-color: rgb(117.3, 117.3, 117.3)}html{--mat-toolbar-container-background-color: whitesmoke;--mat-toolbar-container-text-color: rgba(0, 0, 0, .87)}.mat-toolbar.mat-primary{--mat-toolbar-container-background-color: #97d6ba;--mat-toolbar-container-text-color: white}.mat-toolbar.mat-accent{--mat-toolbar-container-background-color: #1e91ff;--mat-toolbar-container-text-color: white}.mat-toolbar.mat-warn{--mat-toolbar-container-background-color: #f44336;--mat-toolbar-container-text-color: white}html{--mat-toolbar-standard-height: 60px;--mat-toolbar-mobile-height: 52px}html{--mat-tree-container-background-color: white;--mat-tree-node-text-color: rgba(0, 0, 0, .87)}html{--mat-tree-node-min-height: 44px}html{--mat-timepicker-container-shape: 4px;--mat-timepicker-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-timepicker-container-background-color: white}html{--mat-badge-text-font: Roboto, sans-serif;--mat-badge-line-height: 22px;--mat-badge-text-size: 12px;--mat-badge-text-weight: 600;--mat-badge-small-size-text-size: 9px;--mat-badge-small-size-line-height: 16px;--mat-badge-large-size-text-size: 24px;--mat-badge-large-size-line-height: 28px}.mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:400 24px/32px Roboto,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:500 20px/32px Roboto,sans-serif;letter-spacing:.0125em;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3{font:400 16px/28px Roboto,sans-serif;letter-spacing:.009375em;margin:0 0 16px}.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:400 16px/24px Roboto,sans-serif;letter-spacing:.03125em;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:400 11.62px/20px Roboto,sans-serif;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:400 9.38px/20px Roboto,sans-serif;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 14px/22px Roboto,sans-serif;letter-spacing:.0071428571em}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:400 14px/20px Roboto,sans-serif;letter-spacing:.0178571429em}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 12px/20px Roboto,sans-serif;letter-spacing:.0333333333em}.mat-headline-1,.mat-typography .mat-headline-1{font:300 96px/96px Roboto,sans-serif;letter-spacing:-.015625em;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:300 60px/60px Roboto,sans-serif;letter-spacing:-.0083333333em;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:400 48px/50px Roboto,sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:400 34px/40px Roboto,sans-serif;letter-spacing:.0073529412em;margin:0 0 64px}html{--mat-bottom-sheet-container-text-font: Roboto, sans-serif;--mat-bottom-sheet-container-text-line-height: 20px;--mat-bottom-sheet-container-text-size: 14px;--mat-bottom-sheet-container-text-tracking: .0178571429em;--mat-bottom-sheet-container-text-weight: 400}html{--mat-legacy-button-toggle-label-text-font: Roboto, sans-serif;--mat-legacy-button-toggle-label-text-line-height: 24px;--mat-legacy-button-toggle-label-text-size: 16px;--mat-legacy-button-toggle-label-text-tracking: .03125em;--mat-legacy-button-toggle-label-text-weight: 400}html{--mat-standard-button-toggle-label-text-font: Roboto, sans-serif;--mat-standard-button-toggle-label-text-line-height: 24px;--mat-standard-button-toggle-label-text-size: 16px;--mat-standard-button-toggle-label-text-tracking: .03125em;--mat-standard-button-toggle-label-text-weight: 400}html{--mat-datepicker-calendar-text-font: Roboto, sans-serif;--mat-datepicker-calendar-text-size: 13px;--mat-datepicker-calendar-body-label-text-size: 14px;--mat-datepicker-calendar-body-label-text-weight: 500;--mat-datepicker-calendar-period-button-text-size: 14px;--mat-datepicker-calendar-period-button-text-weight: 500;--mat-datepicker-calendar-header-text-size: 11px;--mat-datepicker-calendar-header-text-weight: 400}html{--mat-expansion-header-text-font: Roboto, sans-serif;--mat-expansion-header-text-size: 14px;--mat-expansion-header-text-weight: 500;--mat-expansion-header-text-line-height: inherit;--mat-expansion-header-text-tracking: inherit;--mat-expansion-container-text-font: Roboto, sans-serif;--mat-expansion-container-text-line-height: 20px;--mat-expansion-container-text-size: 14px;--mat-expansion-container-text-tracking: .0178571429em;--mat-expansion-container-text-weight: 400}html{--mat-grid-list-tile-header-primary-text-size: 14px;--mat-grid-list-tile-header-secondary-text-size: 12px;--mat-grid-list-tile-footer-primary-text-size: 14px;--mat-grid-list-tile-footer-secondary-text-size: 12px}html{--mat-stepper-container-text-font: Roboto, sans-serif;--mat-stepper-header-label-text-font: Roboto, sans-serif;--mat-stepper-header-label-text-size: 14px;--mat-stepper-header-label-text-weight: 400;--mat-stepper-header-error-state-label-text-size: 16px;--mat-stepper-header-selected-state-label-text-size: 16px;--mat-stepper-header-selected-state-label-text-weight: 400}html{--mat-toolbar-title-text-font: Roboto, sans-serif;--mat-toolbar-title-text-line-height: 32px;--mat-toolbar-title-text-size: 20px;--mat-toolbar-title-text-tracking: .0125em;--mat-toolbar-title-text-weight: 500}html{--mat-tree-node-text-font: Roboto, sans-serif;--mat-tree-node-text-size: 14px;--mat-tree-node-text-weight: 400}html{--mat-option-label-text-font: Roboto, sans-serif;--mat-option-label-text-line-height: 24px;--mat-option-label-text-size: 16px;--mat-option-label-text-tracking: .03125em;--mat-option-label-text-weight: 400}html{--mat-optgroup-label-text-font: Roboto, sans-serif;--mat-optgroup-label-text-line-height: 24px;--mat-optgroup-label-text-size: 16px;--mat-optgroup-label-text-tracking: .03125em;--mat-optgroup-label-text-weight: 400}html{--mat-card-title-text-font: Roboto, sans-serif;--mat-card-title-text-line-height: 32px;--mat-card-title-text-size: 20px;--mat-card-title-text-tracking: .0125em;--mat-card-title-text-weight: 500;--mat-card-subtitle-text-font: Roboto, sans-serif;--mat-card-subtitle-text-line-height: 22px;--mat-card-subtitle-text-size: 14px;--mat-card-subtitle-text-tracking: .0071428571em;--mat-card-subtitle-text-weight: 500}html{--mdc-plain-tooltip-supporting-text-font: Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size: 12px;--mdc-plain-tooltip-supporting-text-weight: 400;--mdc-plain-tooltip-supporting-text-tracking: .0333333333em}html{--mdc-filled-text-field-label-text-font: Roboto, sans-serif;--mdc-filled-text-field-label-text-size: 16px;--mdc-filled-text-field-label-text-tracking: .03125em;--mdc-filled-text-field-label-text-weight: 400}html{--mdc-outlined-text-field-label-text-font: Roboto, sans-serif;--mdc-outlined-text-field-label-text-size: 16px;--mdc-outlined-text-field-label-text-tracking: .03125em;--mdc-outlined-text-field-label-text-weight: 400}html{--mat-form-field-container-text-font: Roboto, sans-serif;--mat-form-field-container-text-line-height: 24px;--mat-form-field-container-text-size: 16px;--mat-form-field-container-text-tracking: .03125em;--mat-form-field-container-text-weight: 400;--mat-form-field-outlined-label-text-populated-size: 16px;--mat-form-field-subscript-text-font: Roboto, sans-serif;--mat-form-field-subscript-text-line-height: 20px;--mat-form-field-subscript-text-size: 12px;--mat-form-field-subscript-text-tracking: .0333333333em;--mat-form-field-subscript-text-weight: 400}html{--mat-select-trigger-text-font: Roboto, sans-serif;--mat-select-trigger-text-line-height: 24px;--mat-select-trigger-text-size: 16px;--mat-select-trigger-text-tracking: .03125em;--mat-select-trigger-text-weight: 400}html{--mdc-dialog-subhead-font: Roboto, sans-serif;--mdc-dialog-subhead-line-height: 32px;--mdc-dialog-subhead-size: 20px;--mdc-dialog-subhead-weight: 500;--mdc-dialog-subhead-tracking: .0125em;--mdc-dialog-supporting-text-font: Roboto, sans-serif;--mdc-dialog-supporting-text-line-height: 24px;--mdc-dialog-supporting-text-size: 16px;--mdc-dialog-supporting-text-weight: 400;--mdc-dialog-supporting-text-tracking: .03125em}.mat-mdc-standard-chip{--mdc-chip-label-text-font: Roboto, sans-serif;--mdc-chip-label-text-line-height: 20px;--mdc-chip-label-text-size: 14px;--mdc-chip-label-text-tracking: .0178571429em;--mdc-chip-label-text-weight: 400}html .mat-mdc-slide-toggle{--mat-switch-label-text-font: Roboto, sans-serif;--mat-switch-label-text-line-height: 20px;--mat-switch-label-text-size: 14px;--mat-switch-label-text-tracking: .0178571429em;--mat-switch-label-text-weight: 400}html{--mat-radio-label-text-font: Roboto, sans-serif;--mat-radio-label-text-line-height: 20px;--mat-radio-label-text-size: 14px;--mat-radio-label-text-tracking: .0178571429em;--mat-radio-label-text-weight: 400}html{--mdc-slider-label-label-text-font: Roboto, sans-serif;--mdc-slider-label-label-text-size: 14px;--mdc-slider-label-label-text-line-height: 22px;--mdc-slider-label-label-text-tracking: .0071428571em;--mdc-slider-label-label-text-weight: 500}html{--mat-menu-item-label-text-font: Roboto, sans-serif;--mat-menu-item-label-text-size: 16px;--mat-menu-item-label-text-tracking: .03125em;--mat-menu-item-label-text-line-height: 24px;--mat-menu-item-label-text-weight: 400}html{--mdc-list-list-item-label-text-font: Roboto, sans-serif;--mdc-list-list-item-label-text-line-height: 24px;--mdc-list-list-item-label-text-size: 16px;--mdc-list-list-item-label-text-tracking: .03125em;--mdc-list-list-item-label-text-weight: 400;--mdc-list-list-item-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height: 20px;--mdc-list-list-item-supporting-text-size: 14px;--mdc-list-list-item-supporting-text-tracking: .0178571429em;--mdc-list-list-item-supporting-text-weight: 400;--mdc-list-list-item-trailing-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height: 20px;--mdc-list-list-item-trailing-supporting-text-size: 12px;--mdc-list-list-item-trailing-supporting-text-tracking: .0333333333em;--mdc-list-list-item-trailing-supporting-text-weight: 400}.mdc-list-group__subheader{font:400 16px/28px Roboto,sans-serif;letter-spacing:.009375em}html{--mat-paginator-container-text-font: Roboto, sans-serif;--mat-paginator-container-text-line-height: 20px;--mat-paginator-container-text-size: 12px;--mat-paginator-container-text-tracking: .0333333333em;--mat-paginator-container-text-weight: 400;--mat-paginator-select-trigger-text-size: 12px}.mat-mdc-tab-header{--mat-tab-header-label-text-font: Roboto, sans-serif;--mat-tab-header-label-text-size: 14px;--mat-tab-header-label-text-tracking: .0892857143em;--mat-tab-header-label-text-line-height: 36px;--mat-tab-header-label-text-weight: 500}html{--mat-checkbox-label-text-font: Roboto, sans-serif;--mat-checkbox-label-text-line-height: 20px;--mat-checkbox-label-text-size: 14px;--mat-checkbox-label-text-tracking: .0178571429em;--mat-checkbox-label-text-weight: 400}html{--mdc-text-button-label-text-font: Roboto, sans-serif;--mdc-text-button-label-text-size: 14px;--mdc-text-button-label-text-tracking: .0892857143em;--mdc-text-button-label-text-weight: 500;--mdc-text-button-label-text-transform: none}html{--mdc-filled-button-label-text-font: Roboto, sans-serif;--mdc-filled-button-label-text-size: 14px;--mdc-filled-button-label-text-tracking: .0892857143em;--mdc-filled-button-label-text-weight: 500;--mdc-filled-button-label-text-transform: none}html{--mdc-protected-button-label-text-font: Roboto, sans-serif;--mdc-protected-button-label-text-size: 14px;--mdc-protected-button-label-text-tracking: .0892857143em;--mdc-protected-button-label-text-weight: 500;--mdc-protected-button-label-text-transform: none}html{--mdc-outlined-button-label-text-font: Roboto, sans-serif;--mdc-outlined-button-label-text-size: 14px;--mdc-outlined-button-label-text-tracking: .0892857143em;--mdc-outlined-button-label-text-weight: 500;--mdc-outlined-button-label-text-transform: none}html{--mdc-extended-fab-label-text-font: Roboto, sans-serif;--mdc-extended-fab-label-text-size: 14px;--mdc-extended-fab-label-text-tracking: .0892857143em;--mdc-extended-fab-label-text-weight: 500}html{--mdc-snackbar-supporting-text-font: Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height: 20px;--mdc-snackbar-supporting-text-size: 14px;--mdc-snackbar-supporting-text-weight: 400}html{--mat-table-header-headline-font: Roboto, sans-serif;--mat-table-header-headline-line-height: 22px;--mat-table-header-headline-size: 14px;--mat-table-header-headline-weight: 500;--mat-table-header-headline-tracking: .0071428571em;--mat-table-row-item-label-text-font: Roboto, sans-serif;--mat-table-row-item-label-text-line-height: 20px;--mat-table-row-item-label-text-size: 14px;--mat-table-row-item-label-text-weight: 400;--mat-table-row-item-label-text-tracking: .0178571429em;--mat-table-footer-supporting-text-font: Roboto, sans-serif;--mat-table-footer-supporting-text-line-height: 20px;--mat-table-footer-supporting-text-size: 14px;--mat-table-footer-supporting-text-weight: 400;--mat-table-footer-supporting-text-tracking: .0178571429em}body{background:#e2e7ea}body,body html{margin:0;width:100%;height:100%;font-family:Roboto,Arial,sans-serif}.mat-card.primary{padding:1.5rem}.mat-card.primary .primary-card-header{margin:-1.5rem;margin-bottom:0;padding-top:1.5rem;padding-left:1.5rem;padding-right:1.5rem}.mat-card.primary .primary-card-header h1{margin-bottom:0}.mat-card.primary .primary-card-header .mat-card-header-text{display:none}@media screen and (min-width: 1020px){.mat-card.primary .primary-card-header{background-color:#97d6ba;color:#fff;border-radius:4px 4px 0 0;padding-bottom:1.5rem}}.mat-card.primary .mat-card-content{padding-top:1.5rem}@font-face{font-family:InterVariable;font-style:normal;font-weight:100 900;font-display:swap;src:url("./media/InterVariable-75YQYCJN.woff2") format("woff2")}@font-face{font-family:InterVariable;font-style:italic;font-weight:100 900;font-display:swap;src:url("./media/InterVariable-Italic-54HMV74W.woff2") format("woff2")}body{font-size:14px;font-family:InterVariable,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.white-block{background:#fff;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;padding:16px;border-radius:4px}.white-block h2,.white-block h3,.white-block h4,.white-block h5,.white-block h6{font-weight:400;margin:.3em 0}.white-block h5{color:#959595;font-size:1em}table th{font-weight:600;color:#272727}button{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transition:background .4s cubic-bezier(.25,.8,.25,1),box-shadow .28s cubic-bezier(.4,0,.2,1)}button.primary{background-color:#97d6ba;color:#fff}.ace_editor{border:1px solid #dfdfdf;border-radius:4px}@media screen and (min-width: 1020px){main>app-home,main>app-capability-statement,main>app-igs,main>app-fhir-path,main>app-mapping-language,main>app-transform,main>app-settings{margin:0 auto;padding:3rem 0;width:1000px;display:block}} +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.toast-center-center{top:50%;left:50%;transform:translate(-50%,-50%)}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}.toast-title{font-weight:700}.toast-message{word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;text-shadow:0 1px 0 #ffffff}.toast-close-button:hover,.toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4}button.toast-close-button{padding:0;cursor:pointer;background:transparent;border:0}.toast-container{pointer-events:none;position:fixed;z-index:999999}.toast-container *{box-sizing:border-box}.toast-container .ngx-toastr{position:relative;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;background-size:24px;box-shadow:0 0 12px #999;color:#fff}.toast-container .ngx-toastr:hover{box-shadow:0 0 12px #000;opacity:1;cursor:pointer}.toast-info{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTI1NiA4QzExOS4wNDMgOCA4IDExOS4wODMgOCAyNTZjMCAxMzYuOTk3IDExMS4wNDMgMjQ4IDI0OCAyNDhzMjQ4LTExMS4wMDMgMjQ4LTI0OEM1MDQgMTE5LjA4MyAzOTIuOTU3IDggMjU2IDh6bTAgMTEwYzIzLjE5NiAwIDQyIDE4LjgwNCA0MiA0MnMtMTguODA0IDQyLTQyIDQyLTQyLTE4LjgwNC00Mi00MiAxOC44MDQtNDIgNDItNDJ6bTU2IDI1NGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC04OGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxMnYtNjRoLTEyYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDY0YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MTAwaDEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjR6Jy8+PC9zdmc+)}.toast-error{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTEyMS42IDMxMy4xYzQuNyA0LjcgNC43IDEyLjMgMCAxN0wzMzggMzc3LjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwyNTYgMzEybC02NS4xIDY1LjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwxMzQuNCAzMzhjLTQuNy00LjctNC43LTEyLjMgMC0xN2w2NS42LTY1LTY1LjYtNjUuMWMtNC43LTQuNy00LjctMTIuMyAwLTE3bDM5LjYtMzkuNmM0LjctNC43IDEyLjMtNC43IDE3IDBsNjUgNjUuNyA2NS4xLTY1LjZjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDM5LjYgMzkuNmM0LjcgNC43IDQuNyAxMi4zIDAgMTdMMzEyIDI1Nmw2NS42IDY1LjF6Jy8+PC9zdmc+)}.toast-success{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTE3My44OTggNDM5LjQwNGwtMTY2LjQtMTY2LjRjLTkuOTk3LTkuOTk3LTkuOTk3LTI2LjIwNiAwLTM2LjIwNGwzNi4yMDMtMzYuMjA0YzkuOTk3LTkuOTk4IDI2LjIwNy05Ljk5OCAzNi4yMDQgMEwxOTIgMzEyLjY5IDQzMi4wOTUgNzIuNTk2YzkuOTk3LTkuOTk3IDI2LjIwNy05Ljk5NyAzNi4yMDQgMGwzNi4yMDMgMzYuMjA0YzkuOTk3IDkuOTk3IDkuOTk3IDI2LjIwNiAwIDM2LjIwNGwtMjk0LjQgMjk0LjQwMWMtOS45OTggOS45OTctMjYuMjA3IDkuOTk3LTM2LjIwNC0uMDAxeicvPjwvc3ZnPg==)}.toast-warning{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1NzYgNTEyJyB3aWR0aD0nNTc2JyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTU2OS41MTcgNDQwLjAxM0M1ODcuOTc1IDQ3Mi4wMDcgNTY0LjgwNiA1MTIgNTI3Ljk0IDUxMkg0OC4wNTRjLTM2LjkzNyAwLTU5Ljk5OS00MC4wNTUtNDEuNTc3LTcxLjk4N0wyNDYuNDIzIDIzLjk4NWMxOC40NjctMzIuMDA5IDY0LjcyLTMxLjk1MSA4My4xNTQgMGwyMzkuOTQgNDE2LjAyOHpNMjg4IDM1NGMtMjUuNDA1IDAtNDYgMjAuNTk1LTQ2IDQ2czIwLjU5NSA0NiA0NiA0NiA0Ni0yMC41OTUgNDYtNDYtMjAuNTk1LTQ2LTQ2LTQ2em0tNDMuNjczLTE2NS4zNDZsNy40MTggMTM2Yy4zNDcgNi4zNjQgNS42MDkgMTEuMzQ2IDExLjk4MiAxMS4zNDZoNDguNTQ2YzYuMzczIDAgMTEuNjM1LTQuOTgyIDExLjk4Mi0xMS4zNDZsNy40MTgtMTM2Yy4zNzUtNi44NzQtNS4wOTgtMTIuNjU0LTExLjk4Mi0xMi42NTRoLTYzLjM4M2MtNi44ODQgMC0xMi4zNTYgNS43OC0xMS45ODEgMTIuNjU0eicvPjwvc3ZnPg==)}.toast-container.toast-top-center .ngx-toastr,.toast-container.toast-bottom-center .ngx-toastr{width:300px;margin-left:auto;margin-right:auto}.toast-container.toast-top-full-width .ngx-toastr,.toast-container.toast-bottom-full-width .ngx-toastr{width:96%;margin-left:auto;margin-right:auto}.ngx-toastr{background-color:#030303;pointer-events:auto}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4}@media all and (max-width: 240px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:11em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 241px) and (max-width: 480px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:18em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 481px) and (max-width: 768px){.toast-container .ngx-toastr.div{padding:15px 15px 15px 50px;width:25em}}html{--mat-ripple-color: rgba(0, 0, 0, .1)}html{--mat-option-selected-state-label-text-color: #97d6ba;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}.mat-accent{--mat-option-selected-state-label-text-color: #1e91ff;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}.mat-warn{--mat-option-selected-state-label-text-color: #f44336;--mat-option-label-text-color: rgba(0, 0, 0, .87);--mat-option-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-option-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-option-selected-state-layer-color: rgba(0, 0, 0, .04)}html{--mat-optgroup-label-text-color: rgba(0, 0, 0, .87)}html{--mat-full-pseudo-checkbox-selected-icon-color: #1e91ff;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0}html{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #1e91ff;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}.mat-primary{--mat-full-pseudo-checkbox-selected-icon-color: #97d6ba;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0}.mat-primary{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #97d6ba;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}.mat-accent{--mat-full-pseudo-checkbox-selected-icon-color: #1e91ff;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0}.mat-accent{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #1e91ff;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}.mat-warn{--mat-full-pseudo-checkbox-selected-icon-color: #f44336;--mat-full-pseudo-checkbox-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mat-full-pseudo-checkbox-disabled-selected-checkmark-color: #fafafa;--mat-full-pseudo-checkbox-disabled-unselected-icon-color: #b0b0b0;--mat-full-pseudo-checkbox-disabled-selected-icon-color: #b0b0b0}.mat-warn{--mat-minimal-pseudo-checkbox-selected-checkmark-color: #f44336;--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: #b0b0b0}html{--mat-app-background-color: #fafafa;--mat-app-text-color: rgba(0, 0, 0, .87);--mat-app-elevation-shadow-level-0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-2: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-3: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-4: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-5: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 5px 8px 0px rgba(0, 0, 0, .14), 0px 1px 14px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-6: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-7: 0px 4px 5px -2px rgba(0, 0, 0, .2), 0px 7px 10px 1px rgba(0, 0, 0, .14), 0px 2px 16px 1px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-8: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-9: 0px 5px 6px -3px rgba(0, 0, 0, .2), 0px 9px 12px 1px rgba(0, 0, 0, .14), 0px 3px 16px 2px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-10: 0px 6px 6px -3px rgba(0, 0, 0, .2), 0px 10px 14px 1px rgba(0, 0, 0, .14), 0px 4px 18px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-11: 0px 6px 7px -4px rgba(0, 0, 0, .2), 0px 11px 15px 1px rgba(0, 0, 0, .14), 0px 4px 20px 3px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-12: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-13: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 13px 19px 2px rgba(0, 0, 0, .14), 0px 5px 24px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-14: 0px 7px 9px -4px rgba(0, 0, 0, .2), 0px 14px 21px 2px rgba(0, 0, 0, .14), 0px 5px 26px 4px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-15: 0px 8px 9px -5px rgba(0, 0, 0, .2), 0px 15px 22px 2px rgba(0, 0, 0, .14), 0px 6px 28px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-16: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-17: 0px 8px 11px -5px rgba(0, 0, 0, .2), 0px 17px 26px 2px rgba(0, 0, 0, .14), 0px 6px 32px 5px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-18: 0px 9px 11px -5px rgba(0, 0, 0, .2), 0px 18px 28px 2px rgba(0, 0, 0, .14), 0px 7px 34px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-19: 0px 9px 12px -6px rgba(0, 0, 0, .2), 0px 19px 29px 2px rgba(0, 0, 0, .14), 0px 7px 36px 6px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-20: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 20px 31px 3px rgba(0, 0, 0, .14), 0px 8px 38px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-21: 0px 10px 13px -6px rgba(0, 0, 0, .2), 0px 21px 33px 3px rgba(0, 0, 0, .14), 0px 8px 40px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-22: 0px 10px 14px -6px rgba(0, 0, 0, .2), 0px 22px 35px 3px rgba(0, 0, 0, .14), 0px 8px 42px 7px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-23: 0px 11px 14px -7px rgba(0, 0, 0, .2), 0px 23px 36px 3px rgba(0, 0, 0, .14), 0px 9px 44px 8px rgba(0, 0, 0, .12);--mat-app-elevation-shadow-level-24: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12)}html{--mdc-elevated-card-container-shape: 4px}html{--mdc-outlined-card-container-shape: 4px;--mdc-outlined-card-outline-width: 1px}html{--mdc-elevated-card-container-color: white;--mdc-elevated-card-container-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mdc-outlined-card-container-color: white;--mdc-outlined-card-outline-color: rgba(0, 0, 0, .12);--mdc-outlined-card-container-elevation: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mat-card-subtitle-text-color: rgba(0, 0, 0, .54)}html{--mdc-linear-progress-active-indicator-height: 4px;--mdc-linear-progress-track-height: 4px;--mdc-linear-progress-track-shape: 0}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-color: #97d6ba;--mdc-linear-progress-track-color: rgba(151, 214, 186, .25)}.mat-mdc-progress-bar.mat-accent{--mdc-linear-progress-active-indicator-color: #1e91ff;--mdc-linear-progress-track-color: rgba(30, 145, 255, .25)}.mat-mdc-progress-bar.mat-warn{--mdc-linear-progress-active-indicator-color: #f44336;--mdc-linear-progress-track-color: rgba(244, 67, 54, .25)}html{--mdc-plain-tooltip-container-shape: 4px;--mdc-plain-tooltip-supporting-text-line-height: 16px}html{--mdc-plain-tooltip-container-color: #616161;--mdc-plain-tooltip-supporting-text-color: #fff}html{--mdc-filled-text-field-active-indicator-height: 1px;--mdc-filled-text-field-focus-active-indicator-height: 2px;--mdc-filled-text-field-container-shape: 4px}html{--mdc-outlined-text-field-outline-width: 1px;--mdc-outlined-text-field-focus-outline-width: 2px;--mdc-outlined-text-field-container-shape: 4px}html{--mdc-filled-text-field-caret-color: #97d6ba;--mdc-filled-text-field-focus-active-indicator-color: #97d6ba;--mdc-filled-text-field-focus-label-text-color: rgba(151, 214, 186, .87);--mdc-filled-text-field-container-color: rgb(244.8, 244.8, 244.8);--mdc-filled-text-field-disabled-container-color: rgb(249.9, 249.9, 249.9);--mdc-filled-text-field-label-text-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-hover-label-text-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-filled-text-field-input-text-color: rgba(0, 0, 0, .87);--mdc-filled-text-field-disabled-input-text-color: rgba(0, 0, 0, .38);--mdc-filled-text-field-input-text-placeholder-color: rgba(0, 0, 0, .6);--mdc-filled-text-field-error-hover-label-text-color: #f44336;--mdc-filled-text-field-error-focus-label-text-color: #f44336;--mdc-filled-text-field-error-label-text-color: #f44336;--mdc-filled-text-field-error-caret-color: #f44336;--mdc-filled-text-field-active-indicator-color: rgba(0, 0, 0, .42);--mdc-filled-text-field-disabled-active-indicator-color: rgba(0, 0, 0, .06);--mdc-filled-text-field-hover-active-indicator-color: rgba(0, 0, 0, .87);--mdc-filled-text-field-error-active-indicator-color: #f44336;--mdc-filled-text-field-error-focus-active-indicator-color: #f44336;--mdc-filled-text-field-error-hover-active-indicator-color: #f44336}html{--mdc-outlined-text-field-caret-color: #97d6ba;--mdc-outlined-text-field-focus-outline-color: #97d6ba;--mdc-outlined-text-field-focus-label-text-color: rgba(151, 214, 186, .87);--mdc-outlined-text-field-label-text-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-hover-label-text-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-input-text-color: rgba(0, 0, 0, .87);--mdc-outlined-text-field-disabled-input-text-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-input-text-placeholder-color: rgba(0, 0, 0, .6);--mdc-outlined-text-field-error-caret-color: #f44336;--mdc-outlined-text-field-error-focus-label-text-color: #f44336;--mdc-outlined-text-field-error-label-text-color: #f44336;--mdc-outlined-text-field-error-hover-label-text-color: #f44336;--mdc-outlined-text-field-outline-color: rgba(0, 0, 0, .38);--mdc-outlined-text-field-disabled-outline-color: rgba(0, 0, 0, .06);--mdc-outlined-text-field-hover-outline-color: rgba(0, 0, 0, .87);--mdc-outlined-text-field-error-focus-outline-color: #f44336;--mdc-outlined-text-field-error-hover-outline-color: #f44336;--mdc-outlined-text-field-error-outline-color: #f44336}html{--mat-form-field-focus-select-arrow-color: rgba(151, 214, 186, .87);--mat-form-field-disabled-input-text-placeholder-color: rgba(0, 0, 0, .38);--mat-form-field-state-layer-color: rgba(0, 0, 0, .87);--mat-form-field-error-text-color: #f44336;--mat-form-field-select-option-text-color: inherit;--mat-form-field-select-disabled-option-text-color: GrayText;--mat-form-field-leading-icon-color: unset;--mat-form-field-disabled-leading-icon-color: unset;--mat-form-field-trailing-icon-color: unset;--mat-form-field-disabled-trailing-icon-color: unset;--mat-form-field-error-focus-trailing-icon-color: unset;--mat-form-field-error-hover-trailing-icon-color: unset;--mat-form-field-error-trailing-icon-color: unset;--mat-form-field-enabled-select-arrow-color: rgba(0, 0, 0, .54);--mat-form-field-disabled-select-arrow-color: rgba(0, 0, 0, .38);--mat-form-field-hover-state-layer-opacity: .04;--mat-form-field-focus-state-layer-opacity: .08}.mat-mdc-form-field.mat-accent{--mdc-filled-text-field-caret-color: #1e91ff;--mdc-filled-text-field-focus-active-indicator-color: #1e91ff;--mdc-filled-text-field-focus-label-text-color: rgba(30, 145, 255, .87)}.mat-mdc-form-field.mat-accent{--mdc-outlined-text-field-caret-color: #1e91ff;--mdc-outlined-text-field-focus-outline-color: #1e91ff;--mdc-outlined-text-field-focus-label-text-color: rgba(30, 145, 255, .87)}.mat-mdc-form-field.mat-accent{--mat-form-field-focus-select-arrow-color: rgba(30, 145, 255, .87)}.mat-mdc-form-field.mat-warn{--mdc-filled-text-field-caret-color: #f44336;--mdc-filled-text-field-focus-active-indicator-color: #f44336;--mdc-filled-text-field-focus-label-text-color: rgba(244, 67, 54, .87)}.mat-mdc-form-field.mat-warn{--mdc-outlined-text-field-caret-color: #f44336;--mdc-outlined-text-field-focus-outline-color: #f44336;--mdc-outlined-text-field-focus-label-text-color: rgba(244, 67, 54, .87)}.mat-mdc-form-field.mat-warn{--mat-form-field-focus-select-arrow-color: rgba(244, 67, 54, .87)}html{--mat-form-field-container-height: 52px;--mat-form-field-filled-label-display: block;--mat-form-field-container-vertical-padding: 14px;--mat-form-field-filled-with-label-container-padding-top: 22px;--mat-form-field-filled-with-label-container-padding-bottom: 6px}html{--mat-select-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: rgba(0, 0, 0, .38);--mat-select-placeholder-text-color: rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: rgba(0, 0, 0, .38);--mat-select-focused-arrow-color: rgba(151, 214, 186, .87);--mat-select-invalid-arrow-color: rgba(244, 67, 54, .87)}html .mat-mdc-form-field.mat-accent{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: rgba(0, 0, 0, .38);--mat-select-placeholder-text-color: rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: rgba(0, 0, 0, .38);--mat-select-focused-arrow-color: rgba(30, 145, 255, .87);--mat-select-invalid-arrow-color: rgba(244, 67, 54, .87)}html .mat-mdc-form-field.mat-warn{--mat-select-panel-background-color: white;--mat-select-enabled-trigger-text-color: rgba(0, 0, 0, .87);--mat-select-disabled-trigger-text-color: rgba(0, 0, 0, .38);--mat-select-placeholder-text-color: rgba(0, 0, 0, .6);--mat-select-enabled-arrow-color: rgba(0, 0, 0, .54);--mat-select-disabled-arrow-color: rgba(0, 0, 0, .38);--mat-select-focused-arrow-color: rgba(244, 67, 54, .87);--mat-select-invalid-arrow-color: rgba(244, 67, 54, .87)}html{--mat-select-arrow-transform: translateY(-8px)}html{--mat-autocomplete-container-shape: 4px;--mat-autocomplete-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-autocomplete-background-color: white}html{--mdc-dialog-container-shape: 4px}html{--mat-dialog-container-elevation-shadow: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12);--mat-dialog-container-max-width: 80vw;--mat-dialog-container-small-max-width: 80vw;--mat-dialog-container-min-width: 0;--mat-dialog-actions-alignment: start;--mat-dialog-actions-padding: 8px;--mat-dialog-content-padding: 20px 24px;--mat-dialog-with-actions-content-padding: 20px 24px;--mat-dialog-headline-padding: 0 24px 9px}html{--mdc-dialog-container-color: white;--mdc-dialog-subhead-color: rgba(0, 0, 0, .87);--mdc-dialog-supporting-text-color: rgba(0, 0, 0, .6)}.mat-mdc-standard-chip{--mdc-chip-container-shape-radius: 16px;--mdc-chip-with-avatar-avatar-shape-radius: 14px;--mdc-chip-with-avatar-avatar-size: 28px;--mdc-chip-with-icon-icon-size: 18px;--mdc-chip-outline-width: 0;--mdc-chip-outline-color: transparent;--mdc-chip-disabled-outline-color: transparent;--mdc-chip-focus-outline-color: transparent;--mdc-chip-hover-state-layer-opacity: .04;--mdc-chip-with-avatar-disabled-avatar-opacity: 1;--mdc-chip-flat-selected-outline-width: 0;--mdc-chip-selected-hover-state-layer-opacity: .04;--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity: 1;--mdc-chip-with-icon-disabled-icon-opacity: 1}.mat-mdc-standard-chip{--mat-chip-disabled-container-opacity: .4;--mat-chip-trailing-action-opacity: .54;--mat-chip-trailing-action-focus-opacity: 1;--mat-chip-trailing-action-state-layer-color: transparent;--mat-chip-selected-trailing-action-state-layer-color: transparent;--mat-chip-trailing-action-hover-state-layer-opacity: 0;--mat-chip-trailing-action-focus-state-layer-opacity: 0}.mat-mdc-standard-chip{--mdc-chip-disabled-label-text-color: #212121;--mdc-chip-elevated-container-color: rgb(224.4, 224.4, 224.4);--mdc-chip-elevated-selected-container-color: rgb(224.4, 224.4, 224.4);--mdc-chip-elevated-disabled-container-color: rgb(224.4, 224.4, 224.4);--mdc-chip-flat-disabled-selected-container-color: rgb(224.4, 224.4, 224.4);--mdc-chip-focus-state-layer-color: black;--mdc-chip-hover-state-layer-color: black;--mdc-chip-selected-hover-state-layer-color: black;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: black;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: #212121;--mdc-chip-selected-label-text-color: #212121;--mdc-chip-with-icon-icon-color: #212121;--mdc-chip-with-icon-disabled-icon-color: #212121;--mdc-chip-with-icon-selected-icon-color: #212121;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: #212121;--mdc-chip-with-trailing-icon-trailing-icon-color: #212121}.mat-mdc-standard-chip{--mat-chip-selected-disabled-trailing-icon-color: #212121;--mat-chip-selected-trailing-icon-color: #212121}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mdc-chip-disabled-label-text-color: white;--mdc-chip-elevated-container-color: #97d6ba;--mdc-chip-elevated-selected-container-color: #97d6ba;--mdc-chip-elevated-disabled-container-color: #97d6ba;--mdc-chip-flat-disabled-selected-container-color: #97d6ba;--mdc-chip-focus-state-layer-color: black;--mdc-chip-hover-state-layer-color: black;--mdc-chip-selected-hover-state-layer-color: black;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: black;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: white;--mdc-chip-selected-label-text-color: white;--mdc-chip-with-icon-icon-color: white;--mdc-chip-with-icon-disabled-icon-color: white;--mdc-chip-with-icon-selected-icon-color: white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mdc-chip-with-trailing-icon-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-primary,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-primary{--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mdc-chip-disabled-label-text-color: white;--mdc-chip-elevated-container-color: #1e91ff;--mdc-chip-elevated-selected-container-color: #1e91ff;--mdc-chip-elevated-disabled-container-color: #1e91ff;--mdc-chip-flat-disabled-selected-container-color: #1e91ff;--mdc-chip-focus-state-layer-color: black;--mdc-chip-hover-state-layer-color: black;--mdc-chip-selected-hover-state-layer-color: black;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: black;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: white;--mdc-chip-selected-label-text-color: white;--mdc-chip-with-icon-icon-color: white;--mdc-chip-with-icon-disabled-icon-color: white;--mdc-chip-with-icon-selected-icon-color: white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mdc-chip-with-trailing-icon-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-accent,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-accent{--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mdc-chip-disabled-label-text-color: white;--mdc-chip-elevated-container-color: #f44336;--mdc-chip-elevated-selected-container-color: #f44336;--mdc-chip-elevated-disabled-container-color: #f44336;--mdc-chip-flat-disabled-selected-container-color: #f44336;--mdc-chip-focus-state-layer-color: black;--mdc-chip-hover-state-layer-color: black;--mdc-chip-selected-hover-state-layer-color: black;--mdc-chip-focus-state-layer-opacity: .12;--mdc-chip-selected-focus-state-layer-color: black;--mdc-chip-selected-focus-state-layer-opacity: .12;--mdc-chip-label-text-color: white;--mdc-chip-selected-label-text-color: white;--mdc-chip-with-icon-icon-color: white;--mdc-chip-with-icon-disabled-icon-color: white;--mdc-chip-with-icon-selected-icon-color: white;--mdc-chip-with-trailing-icon-disabled-trailing-icon-color: white;--mdc-chip-with-trailing-icon-trailing-icon-color: white}.mat-mdc-standard-chip.mat-mdc-chip-selected.mat-warn,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mat-warn{--mat-chip-selected-disabled-trailing-icon-color: white;--mat-chip-selected-trailing-icon-color: white}.mat-mdc-chip.mat-mdc-standard-chip{--mdc-chip-container-height: 28px}html{--mdc-switch-disabled-selected-icon-opacity: .38;--mdc-switch-disabled-track-opacity: .12;--mdc-switch-disabled-unselected-icon-opacity: .38;--mdc-switch-handle-height: 20px;--mdc-switch-handle-shape: 10px;--mdc-switch-handle-width: 20px;--mdc-switch-selected-icon-size: 18px;--mdc-switch-track-height: 14px;--mdc-switch-track-shape: 7px;--mdc-switch-track-width: 36px;--mdc-switch-unselected-icon-size: 18px;--mdc-switch-selected-focus-state-layer-opacity: .12;--mdc-switch-selected-hover-state-layer-opacity: .04;--mdc-switch-selected-pressed-state-layer-opacity: .1;--mdc-switch-unselected-focus-state-layer-opacity: .12;--mdc-switch-unselected-hover-state-layer-opacity: .04;--mdc-switch-unselected-pressed-state-layer-opacity: .1}html .mat-mdc-slide-toggle{--mat-switch-disabled-selected-handle-opacity: .38;--mat-switch-disabled-unselected-handle-opacity: .38;--mat-switch-unselected-handle-size: 20px;--mat-switch-selected-handle-size: 20px;--mat-switch-pressed-handle-size: 20px;--mat-switch-with-icon-handle-size: 20px;--mat-switch-selected-handle-horizontal-margin: 0;--mat-switch-selected-with-icon-handle-horizontal-margin: 0;--mat-switch-selected-pressed-handle-horizontal-margin: 0;--mat-switch-unselected-handle-horizontal-margin: 0;--mat-switch-unselected-with-icon-handle-horizontal-margin: 0;--mat-switch-unselected-pressed-handle-horizontal-margin: 0;--mat-switch-visible-track-opacity: 1;--mat-switch-hidden-track-opacity: 1;--mat-switch-visible-track-transition: transform 75ms 0ms cubic-bezier(0, 0, .2, 1);--mat-switch-hidden-track-transition: transform 75ms 0ms cubic-bezier(.4, 0, .6, 1);--mat-switch-track-outline-width: 1px;--mat-switch-track-outline-color: transparent;--mat-switch-selected-track-outline-width: 1px;--mat-switch-selected-track-outline-color: transparent;--mat-switch-disabled-unselected-track-outline-width: 1px;--mat-switch-disabled-unselected-track-outline-color: transparent}html{--mdc-switch-selected-focus-state-layer-color: #37546b;--mdc-switch-selected-handle-color: #37546b;--mdc-switch-selected-hover-state-layer-color: #37546b;--mdc-switch-selected-pressed-state-layer-color: #37546b;--mdc-switch-selected-focus-handle-color: #1a3043;--mdc-switch-selected-hover-handle-color: #1a3043;--mdc-switch-selected-pressed-handle-color: #1a3043;--mdc-switch-selected-focus-track-color: #778d9d;--mdc-switch-selected-hover-track-color: #778d9d;--mdc-switch-selected-pressed-track-color: #778d9d;--mdc-switch-selected-track-color: #778d9d;--mdc-switch-disabled-selected-handle-color: #424242;--mdc-switch-disabled-selected-icon-color: #fff;--mdc-switch-disabled-selected-track-color: #424242;--mdc-switch-disabled-unselected-handle-color: #424242;--mdc-switch-disabled-unselected-icon-color: #fff;--mdc-switch-disabled-unselected-track-color: #424242;--mdc-switch-handle-surface-color: #fff;--mdc-switch-selected-icon-color: #fff;--mdc-switch-unselected-focus-handle-color: #212121;--mdc-switch-unselected-focus-state-layer-color: #424242;--mdc-switch-unselected-focus-track-color: #e0e0e0;--mdc-switch-unselected-handle-color: #616161;--mdc-switch-unselected-hover-handle-color: #212121;--mdc-switch-unselected-hover-state-layer-color: #424242;--mdc-switch-unselected-hover-track-color: #e0e0e0;--mdc-switch-unselected-icon-color: #fff;--mdc-switch-unselected-pressed-handle-color: #212121;--mdc-switch-unselected-pressed-state-layer-color: #424242;--mdc-switch-unselected-pressed-track-color: #e0e0e0;--mdc-switch-unselected-track-color: #e0e0e0;--mdc-switch-handle-elevation-shadow: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mdc-switch-disabled-handle-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mdc-switch-disabled-label-text-color: rgba(0, 0, 0, .38)}html .mat-mdc-slide-toggle{--mat-switch-label-text-color: rgba(0, 0, 0, .87)}html .mat-mdc-slide-toggle.mat-accent{--mdc-switch-selected-focus-state-layer-color: #37546b;--mdc-switch-selected-handle-color: #37546b;--mdc-switch-selected-hover-state-layer-color: #37546b;--mdc-switch-selected-pressed-state-layer-color: #37546b;--mdc-switch-selected-focus-handle-color: #1a3043;--mdc-switch-selected-hover-handle-color: #1a3043;--mdc-switch-selected-pressed-handle-color: #1a3043;--mdc-switch-selected-focus-track-color: #778d9d;--mdc-switch-selected-hover-track-color: #778d9d;--mdc-switch-selected-pressed-track-color: #778d9d;--mdc-switch-selected-track-color: #778d9d}html .mat-mdc-slide-toggle.mat-warn{--mdc-switch-selected-focus-state-layer-color: #e53935;--mdc-switch-selected-handle-color: #e53935;--mdc-switch-selected-hover-state-layer-color: #e53935;--mdc-switch-selected-pressed-state-layer-color: #e53935;--mdc-switch-selected-focus-handle-color: #b71c1c;--mdc-switch-selected-hover-handle-color: #b71c1c;--mdc-switch-selected-pressed-handle-color: #b71c1c;--mdc-switch-selected-focus-track-color: #e57373;--mdc-switch-selected-hover-track-color: #e57373;--mdc-switch-selected-pressed-track-color: #e57373;--mdc-switch-selected-track-color: #e57373}html{--mdc-switch-state-layer-size: 36px}html{--mdc-radio-disabled-selected-icon-opacity: .38;--mdc-radio-disabled-unselected-icon-opacity: .38;--mdc-radio-state-layer-size: 40px}.mat-mdc-radio-button.mat-primary{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #97d6ba;--mdc-radio-selected-hover-icon-color: #97d6ba;--mdc-radio-selected-icon-color: #97d6ba;--mdc-radio-selected-pressed-icon-color: #97d6ba}.mat-mdc-radio-button.mat-primary{--mat-radio-ripple-color: black;--mat-radio-checked-ripple-color: #97d6ba;--mat-radio-disabled-label-color: rgba(0, 0, 0, .38);--mat-radio-label-text-color: rgba(0, 0, 0, .87)}.mat-mdc-radio-button.mat-accent{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #1e91ff;--mdc-radio-selected-hover-icon-color: #1e91ff;--mdc-radio-selected-icon-color: #1e91ff;--mdc-radio-selected-pressed-icon-color: #1e91ff}.mat-mdc-radio-button.mat-accent{--mat-radio-ripple-color: black;--mat-radio-checked-ripple-color: #1e91ff;--mat-radio-disabled-label-color: rgba(0, 0, 0, .38);--mat-radio-label-text-color: rgba(0, 0, 0, .87)}.mat-mdc-radio-button.mat-warn{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #f44336;--mdc-radio-selected-hover-icon-color: #f44336;--mdc-radio-selected-icon-color: #f44336;--mdc-radio-selected-pressed-icon-color: #f44336}.mat-mdc-radio-button.mat-warn{--mat-radio-ripple-color: black;--mat-radio-checked-ripple-color: #f44336;--mat-radio-disabled-label-color: rgba(0, 0, 0, .38);--mat-radio-label-text-color: rgba(0, 0, 0, .87)}html{--mdc-radio-state-layer-size: 36px}html{--mat-radio-touch-target-display: block}html{--mdc-slider-active-track-height: 6px;--mdc-slider-active-track-shape: 9999px;--mdc-slider-handle-height: 20px;--mdc-slider-handle-shape: 50%;--mdc-slider-handle-width: 20px;--mdc-slider-inactive-track-height: 4px;--mdc-slider-inactive-track-shape: 9999px;--mdc-slider-with-overlap-handle-outline-width: 1px;--mdc-slider-with-tick-marks-active-container-opacity: .6;--mdc-slider-with-tick-marks-container-shape: 50%;--mdc-slider-with-tick-marks-container-size: 2px;--mdc-slider-with-tick-marks-inactive-container-opacity: .6;--mdc-slider-handle-elevation: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mat-slider-value-indicator-width: auto;--mat-slider-value-indicator-height: 32px;--mat-slider-value-indicator-caret-display: block;--mat-slider-value-indicator-border-radius: 4px;--mat-slider-value-indicator-padding: 0 12px;--mat-slider-value-indicator-text-transform: none;--mat-slider-value-indicator-container-transform: translateX(-50%)}html{--mdc-slider-handle-color: #97d6ba;--mdc-slider-focus-handle-color: #97d6ba;--mdc-slider-hover-handle-color: #97d6ba;--mdc-slider-active-track-color: #97d6ba;--mdc-slider-inactive-track-color: #97d6ba;--mdc-slider-with-tick-marks-inactive-container-color: #97d6ba;--mdc-slider-with-tick-marks-active-container-color: white;--mdc-slider-disabled-active-track-color: #000;--mdc-slider-disabled-handle-color: #000;--mdc-slider-disabled-inactive-track-color: #000;--mdc-slider-label-container-color: #000;--mdc-slider-label-label-text-color: #fff;--mdc-slider-with-overlap-handle-outline-color: #fff;--mdc-slider-with-tick-marks-disabled-container-color: #000}html{--mat-slider-ripple-color: #97d6ba;--mat-slider-hover-state-layer-color: rgba(151, 214, 186, .05);--mat-slider-focus-state-layer-color: rgba(151, 214, 186, .2);--mat-slider-value-indicator-opacity: .6}html .mat-accent{--mdc-slider-handle-color: #1e91ff;--mdc-slider-focus-handle-color: #1e91ff;--mdc-slider-hover-handle-color: #1e91ff;--mdc-slider-active-track-color: #1e91ff;--mdc-slider-inactive-track-color: #1e91ff;--mdc-slider-with-tick-marks-inactive-container-color: #1e91ff;--mdc-slider-with-tick-marks-active-container-color: white}html .mat-accent{--mat-slider-ripple-color: #1e91ff;--mat-slider-hover-state-layer-color: rgba(30, 145, 255, .05);--mat-slider-focus-state-layer-color: rgba(30, 145, 255, .2)}html .mat-warn{--mdc-slider-handle-color: #f44336;--mdc-slider-focus-handle-color: #f44336;--mdc-slider-hover-handle-color: #f44336;--mdc-slider-active-track-color: #f44336;--mdc-slider-inactive-track-color: #f44336;--mdc-slider-with-tick-marks-inactive-container-color: #f44336;--mdc-slider-with-tick-marks-active-container-color: white}html .mat-warn{--mat-slider-ripple-color: #f44336;--mat-slider-hover-state-layer-color: rgba(244, 67, 54, .05);--mat-slider-focus-state-layer-color: rgba(244, 67, 54, .2)}html{--mat-menu-container-shape: 4px;--mat-menu-divider-bottom-spacing: 0;--mat-menu-divider-top-spacing: 0;--mat-menu-item-spacing: 16px;--mat-menu-item-icon-size: 24px;--mat-menu-item-leading-spacing: 16px;--mat-menu-item-trailing-spacing: 16px;--mat-menu-item-with-icon-leading-spacing: 16px;--mat-menu-item-with-icon-trailing-spacing: 16px;--mat-menu-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-menu-item-label-text-color: rgba(0, 0, 0, .87);--mat-menu-item-icon-color: rgba(0, 0, 0, .87);--mat-menu-item-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-menu-item-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-menu-container-color: white;--mat-menu-divider-color: rgba(0, 0, 0, .12)}html{--mdc-list-list-item-container-shape: 0;--mdc-list-list-item-leading-avatar-shape: 50%;--mdc-list-list-item-container-color: transparent;--mdc-list-list-item-selected-container-color: transparent;--mdc-list-list-item-leading-avatar-color: transparent;--mdc-list-list-item-leading-icon-size: 24px;--mdc-list-list-item-leading-avatar-size: 40px;--mdc-list-list-item-trailing-icon-size: 24px;--mdc-list-list-item-disabled-state-layer-color: transparent;--mdc-list-list-item-disabled-state-layer-opacity: 0;--mdc-list-list-item-disabled-label-text-opacity: .38;--mdc-list-list-item-disabled-leading-icon-opacity: .38;--mdc-list-list-item-disabled-trailing-icon-opacity: .38}html{--mat-list-active-indicator-color: transparent;--mat-list-active-indicator-shape: 4px}html{--mdc-list-list-item-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-supporting-text-color: rgba(0, 0, 0, .54);--mdc-list-list-item-leading-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-trailing-supporting-text-color: rgba(0, 0, 0, .38);--mdc-list-list-item-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-selected-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-disabled-label-text-color: black;--mdc-list-list-item-disabled-leading-icon-color: black;--mdc-list-list-item-disabled-trailing-icon-color: black;--mdc-list-list-item-hover-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-hover-leading-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-hover-trailing-icon-color: rgba(0, 0, 0, .38);--mdc-list-list-item-focus-label-text-color: rgba(0, 0, 0, .87);--mdc-list-list-item-hover-state-layer-color: black;--mdc-list-list-item-hover-state-layer-opacity: .04;--mdc-list-list-item-focus-state-layer-color: black;--mdc-list-list-item-focus-state-layer-opacity: .12}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #97d6ba;--mdc-radio-selected-hover-icon-color: #97d6ba;--mdc-radio-selected-icon-color: #97d6ba;--mdc-radio-selected-pressed-icon-color: #97d6ba}.mat-accent .mdc-list-item__start,.mat-accent .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #1e91ff;--mdc-radio-selected-hover-icon-color: #1e91ff;--mdc-radio-selected-icon-color: #1e91ff;--mdc-radio-selected-pressed-icon-color: #1e91ff}.mat-warn .mdc-list-item__start,.mat-warn .mdc-list-item__end{--mdc-radio-disabled-selected-icon-color: black;--mdc-radio-disabled-unselected-icon-color: black;--mdc-radio-unselected-hover-icon-color: #212121;--mdc-radio-unselected-focus-icon-color: #212121;--mdc-radio-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-radio-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-radio-selected-focus-icon-color: #f44336;--mdc-radio-selected-hover-icon-color: #f44336;--mdc-radio-selected-icon-color: #f44336;--mdc-radio-selected-pressed-icon-color: #f44336}.mat-mdc-list-option{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #97d6ba;--mdc-checkbox-selected-hover-icon-color: #97d6ba;--mdc-checkbox-selected-icon-color: #97d6ba;--mdc-checkbox-selected-pressed-icon-color: #97d6ba;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #97d6ba;--mdc-checkbox-selected-hover-state-layer-color: #97d6ba;--mdc-checkbox-selected-pressed-state-layer-color: #97d6ba;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-list-option.mat-accent{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #1e91ff;--mdc-checkbox-selected-hover-icon-color: #1e91ff;--mdc-checkbox-selected-icon-color: #1e91ff;--mdc-checkbox-selected-pressed-icon-color: #1e91ff;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #1e91ff;--mdc-checkbox-selected-hover-state-layer-color: #1e91ff;--mdc-checkbox-selected-pressed-state-layer-color: #1e91ff;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-list-option.mat-warn{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #f44336;--mdc-checkbox-selected-hover-icon-color: #f44336;--mdc-checkbox-selected-icon-color: #f44336;--mdc-checkbox-selected-pressed-icon-color: #f44336;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #f44336;--mdc-checkbox-selected-hover-state-layer-color: #f44336;--mdc-checkbox-selected-pressed-state-layer-color: #f44336;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--selected .mdc-list-item__start,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__primary-text,.mat-mdc-list-base.mat-mdc-list-base .mdc-list-item--activated .mdc-list-item__start{color:#97d6ba}.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__content,.mat-mdc-list-base .mdc-list-item--disabled .mdc-list-item__end{opacity:1}html{--mdc-list-list-item-one-line-container-height: 44px;--mdc-list-list-item-two-line-container-height: 60px;--mdc-list-list-item-three-line-container-height: 84px}html{--mat-list-list-item-leading-icon-start-space: 16px;--mat-list-list-item-leading-icon-end-space: 32px}.mdc-list-item__start,.mdc-list-item__end{--mdc-radio-state-layer-size: 36px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:52px}.mat-mdc-list-item.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines,.mat-mdc-list-item.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:68px}html{--mat-paginator-container-text-color: rgba(0, 0, 0, .87);--mat-paginator-container-background-color: white;--mat-paginator-enabled-icon-color: rgba(0, 0, 0, .54);--mat-paginator-disabled-icon-color: rgba(0, 0, 0, .12)}html{--mat-paginator-container-size: 52px;--mat-paginator-form-field-container-height: 40px;--mat-paginator-form-field-container-vertical-padding: 8px;--mat-paginator-touch-target-display: block}html{--mdc-secondary-navigation-tab-container-height: 48px}html{--mdc-tab-indicator-active-indicator-height: 2px;--mdc-tab-indicator-active-indicator-shape: 0}html{--mat-tab-header-divider-color: transparent;--mat-tab-header-divider-height: 0}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mdc-tab-indicator-active-indicator-color: #97d6ba}.mat-mdc-tab-group,.mat-mdc-tab-nav-bar{--mat-tab-header-disabled-ripple-color: rgba(0, 0, 0, .38);--mat-tab-header-pagination-icon-color: black;--mat-tab-header-inactive-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-label-text-color: #97d6ba;--mat-tab-header-active-ripple-color: #97d6ba;--mat-tab-header-inactive-ripple-color: #97d6ba;--mat-tab-header-inactive-focus-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-inactive-hover-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-focus-label-text-color: #97d6ba;--mat-tab-header-active-hover-label-text-color: #97d6ba;--mat-tab-header-active-focus-indicator-color: #97d6ba;--mat-tab-header-active-hover-indicator-color: #97d6ba}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mdc-tab-indicator-active-indicator-color: #1e91ff}.mat-mdc-tab-group.mat-accent,.mat-mdc-tab-nav-bar.mat-accent{--mat-tab-header-disabled-ripple-color: rgba(0, 0, 0, .38);--mat-tab-header-pagination-icon-color: black;--mat-tab-header-inactive-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-label-text-color: #1e91ff;--mat-tab-header-active-ripple-color: #1e91ff;--mat-tab-header-inactive-ripple-color: #1e91ff;--mat-tab-header-inactive-focus-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-inactive-hover-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-focus-label-text-color: #1e91ff;--mat-tab-header-active-hover-label-text-color: #1e91ff;--mat-tab-header-active-focus-indicator-color: #1e91ff;--mat-tab-header-active-hover-indicator-color: #1e91ff}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mdc-tab-indicator-active-indicator-color: #f44336}.mat-mdc-tab-group.mat-warn,.mat-mdc-tab-nav-bar.mat-warn{--mat-tab-header-disabled-ripple-color: rgba(0, 0, 0, .38);--mat-tab-header-pagination-icon-color: black;--mat-tab-header-inactive-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-label-text-color: #f44336;--mat-tab-header-active-ripple-color: #f44336;--mat-tab-header-inactive-ripple-color: #f44336;--mat-tab-header-inactive-focus-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-inactive-hover-label-text-color: rgba(0, 0, 0, .6);--mat-tab-header-active-focus-label-text-color: #f44336;--mat-tab-header-active-hover-label-text-color: #f44336;--mat-tab-header-active-focus-indicator-color: #f44336;--mat-tab-header-active-hover-indicator-color: #f44336}.mat-mdc-tab-group.mat-background-primary,.mat-mdc-tab-nav-bar.mat-background-primary{--mat-tab-header-with-background-background-color: #97d6ba;--mat-tab-header-with-background-foreground-color: white}.mat-mdc-tab-group.mat-background-accent,.mat-mdc-tab-nav-bar.mat-background-accent{--mat-tab-header-with-background-background-color: #1e91ff;--mat-tab-header-with-background-foreground-color: white}.mat-mdc-tab-group.mat-background-warn,.mat-mdc-tab-nav-bar.mat-background-warn{--mat-tab-header-with-background-background-color: #f44336;--mat-tab-header-with-background-foreground-color: white}.mat-mdc-tab-header{--mdc-secondary-navigation-tab-container-height: 44px}html{--mdc-checkbox-disabled-selected-checkmark-color: #fff;--mdc-checkbox-selected-focus-state-layer-opacity: .16;--mdc-checkbox-selected-hover-state-layer-opacity: .04;--mdc-checkbox-selected-pressed-state-layer-opacity: .16;--mdc-checkbox-unselected-focus-state-layer-opacity: .16;--mdc-checkbox-unselected-hover-state-layer-opacity: .04;--mdc-checkbox-unselected-pressed-state-layer-opacity: .16}html{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #1e91ff;--mdc-checkbox-selected-hover-icon-color: #1e91ff;--mdc-checkbox-selected-icon-color: #1e91ff;--mdc-checkbox-selected-pressed-icon-color: #1e91ff;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #1e91ff;--mdc-checkbox-selected-hover-state-layer-color: #1e91ff;--mdc-checkbox-selected-pressed-state-layer-color: #1e91ff;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}html{--mat-checkbox-disabled-label-color: rgba(0, 0, 0, .38);--mat-checkbox-label-text-color: rgba(0, 0, 0, .87)}.mat-mdc-checkbox.mat-primary{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #97d6ba;--mdc-checkbox-selected-hover-icon-color: #97d6ba;--mdc-checkbox-selected-icon-color: #97d6ba;--mdc-checkbox-selected-pressed-icon-color: #97d6ba;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #97d6ba;--mdc-checkbox-selected-hover-state-layer-color: #97d6ba;--mdc-checkbox-selected-pressed-state-layer-color: #97d6ba;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}.mat-mdc-checkbox.mat-warn{--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: #f44336;--mdc-checkbox-selected-hover-icon-color: #f44336;--mdc-checkbox-selected-icon-color: #f44336;--mdc-checkbox-selected-pressed-icon-color: #f44336;--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: #f44336;--mdc-checkbox-selected-hover-state-layer-color: #f44336;--mdc-checkbox-selected-pressed-state-layer-color: #f44336;--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black}html{--mdc-checkbox-state-layer-size: 36px}html{--mat-checkbox-touch-target-display: block}html{--mdc-text-button-container-shape: 4px;--mdc-text-button-keep-touch-target: false}html{--mdc-filled-button-container-shape: 4px;--mdc-filled-button-keep-touch-target: false}html{--mdc-protected-button-container-shape: 4px;--mdc-protected-button-container-elevation-shadow: 0px 3px 1px -2px rgba(0, 0, 0, .2), 0px 2px 2px 0px rgba(0, 0, 0, .14), 0px 1px 5px 0px rgba(0, 0, 0, .12);--mdc-protected-button-disabled-container-elevation-shadow: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mdc-protected-button-focus-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mdc-protected-button-hover-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mdc-protected-button-pressed-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mdc-outlined-button-keep-touch-target: false;--mdc-outlined-button-outline-width: 1px;--mdc-outlined-button-container-shape: 4px}html{--mat-text-button-horizontal-padding: 8px;--mat-text-button-with-icon-horizontal-padding: 8px;--mat-text-button-icon-spacing: 8px;--mat-text-button-icon-offset: 0}html{--mat-filled-button-horizontal-padding: 16px;--mat-filled-button-icon-spacing: 8px;--mat-filled-button-icon-offset: -4px}html{--mat-protected-button-horizontal-padding: 16px;--mat-protected-button-icon-spacing: 8px;--mat-protected-button-icon-offset: -4px}html{--mat-outlined-button-horizontal-padding: 15px;--mat-outlined-button-icon-spacing: 8px;--mat-outlined-button-icon-offset: -4px}html{--mdc-text-button-label-text-color: black;--mdc-text-button-disabled-label-text-color: rgba(0, 0, 0, .38)}html{--mat-text-button-state-layer-color: black;--mat-text-button-disabled-state-layer-color: black;--mat-text-button-ripple-color: rgba(0, 0, 0, .1);--mat-text-button-hover-state-layer-opacity: .04;--mat-text-button-focus-state-layer-opacity: .12;--mat-text-button-pressed-state-layer-opacity: .12}html{--mdc-filled-button-container-color: white;--mdc-filled-button-label-text-color: black;--mdc-filled-button-disabled-container-color: rgba(0, 0, 0, .12);--mdc-filled-button-disabled-label-text-color: rgba(0, 0, 0, .38)}html{--mat-filled-button-state-layer-color: black;--mat-filled-button-disabled-state-layer-color: black;--mat-filled-button-ripple-color: rgba(0, 0, 0, .1);--mat-filled-button-hover-state-layer-opacity: .04;--mat-filled-button-focus-state-layer-opacity: .12;--mat-filled-button-pressed-state-layer-opacity: .12}html{--mdc-protected-button-container-color: white;--mdc-protected-button-label-text-color: black;--mdc-protected-button-disabled-container-color: rgba(0, 0, 0, .12);--mdc-protected-button-disabled-label-text-color: rgba(0, 0, 0, .38)}html{--mat-protected-button-state-layer-color: black;--mat-protected-button-disabled-state-layer-color: black;--mat-protected-button-ripple-color: rgba(0, 0, 0, .1);--mat-protected-button-hover-state-layer-opacity: .04;--mat-protected-button-focus-state-layer-opacity: .12;--mat-protected-button-pressed-state-layer-opacity: .12}html{--mdc-outlined-button-disabled-outline-color: rgba(0, 0, 0, .12);--mdc-outlined-button-disabled-label-text-color: rgba(0, 0, 0, .38);--mdc-outlined-button-label-text-color: black;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12)}html{--mat-outlined-button-state-layer-color: black;--mat-outlined-button-disabled-state-layer-color: black;--mat-outlined-button-ripple-color: rgba(0, 0, 0, .1);--mat-outlined-button-hover-state-layer-opacity: .04;--mat-outlined-button-focus-state-layer-opacity: .12;--mat-outlined-button-pressed-state-layer-opacity: .12}.mat-mdc-button.mat-primary{--mdc-text-button-label-text-color: #97d6ba}.mat-mdc-button.mat-primary{--mat-text-button-state-layer-color: #97d6ba;--mat-text-button-ripple-color: rgba(151, 214, 186, .1)}.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color: #1e91ff}.mat-mdc-button.mat-accent{--mat-text-button-state-layer-color: #1e91ff;--mat-text-button-ripple-color: rgba(30, 145, 255, .1)}.mat-mdc-button.mat-warn{--mdc-text-button-label-text-color: #f44336}.mat-mdc-button.mat-warn{--mat-text-button-state-layer-color: #f44336;--mat-text-button-ripple-color: rgba(244, 67, 54, .1)}.mat-mdc-unelevated-button.mat-primary{--mdc-filled-button-container-color: #97d6ba;--mdc-filled-button-label-text-color: white}.mat-mdc-unelevated-button.mat-primary{--mat-filled-button-state-layer-color: white;--mat-filled-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-unelevated-button.mat-accent{--mdc-filled-button-container-color: #1e91ff;--mdc-filled-button-label-text-color: white}.mat-mdc-unelevated-button.mat-accent{--mat-filled-button-state-layer-color: white;--mat-filled-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-unelevated-button.mat-warn{--mdc-filled-button-container-color: #f44336;--mdc-filled-button-label-text-color: white}.mat-mdc-unelevated-button.mat-warn{--mat-filled-button-state-layer-color: white;--mat-filled-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-primary{--mdc-protected-button-container-color: #97d6ba;--mdc-protected-button-label-text-color: white}.mat-mdc-raised-button.mat-primary{--mat-protected-button-state-layer-color: white;--mat-protected-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-accent{--mdc-protected-button-container-color: #1e91ff;--mdc-protected-button-label-text-color: white}.mat-mdc-raised-button.mat-accent{--mat-protected-button-state-layer-color: white;--mat-protected-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-raised-button.mat-warn{--mdc-protected-button-container-color: #f44336;--mdc-protected-button-label-text-color: white}.mat-mdc-raised-button.mat-warn{--mat-protected-button-state-layer-color: white;--mat-protected-button-ripple-color: rgba(255, 255, 255, .1)}.mat-mdc-outlined-button.mat-primary{--mdc-outlined-button-label-text-color: #97d6ba;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12)}.mat-mdc-outlined-button.mat-primary{--mat-outlined-button-state-layer-color: #97d6ba;--mat-outlined-button-ripple-color: rgba(151, 214, 186, .1)}.mat-mdc-outlined-button.mat-accent{--mdc-outlined-button-label-text-color: #1e91ff;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12)}.mat-mdc-outlined-button.mat-accent{--mat-outlined-button-state-layer-color: #1e91ff;--mat-outlined-button-ripple-color: rgba(30, 145, 255, .1)}.mat-mdc-outlined-button.mat-warn{--mdc-outlined-button-label-text-color: #f44336;--mdc-outlined-button-outline-color: rgba(0, 0, 0, .12)}.mat-mdc-outlined-button.mat-warn{--mat-outlined-button-state-layer-color: #f44336;--mat-outlined-button-ripple-color: rgba(244, 67, 54, .1)}html{--mdc-text-button-container-height: 32px}html{--mdc-filled-button-container-height: 32px}html{--mdc-protected-button-container-height: 32px}html{--mdc-outlined-button-container-height: 32px}html{--mat-text-button-touch-target-display: block}html{--mat-filled-button-touch-target-display: block}html{--mat-protected-button-touch-target-display: block}html{--mat-outlined-button-touch-target-display: block}html{--mdc-icon-button-icon-size: 24px}html{--mdc-icon-button-icon-color: inherit;--mdc-icon-button-disabled-icon-color: rgba(0, 0, 0, .38)}html{--mat-icon-button-state-layer-color: black;--mat-icon-button-disabled-state-layer-color: black;--mat-icon-button-ripple-color: rgba(0, 0, 0, .1);--mat-icon-button-hover-state-layer-opacity: .04;--mat-icon-button-focus-state-layer-opacity: .12;--mat-icon-button-pressed-state-layer-opacity: .12}html .mat-mdc-icon-button.mat-primary{--mdc-icon-button-icon-color: #97d6ba}html .mat-mdc-icon-button.mat-primary{--mat-icon-button-state-layer-color: #97d6ba;--mat-icon-button-ripple-color: rgba(151, 214, 186, .1)}html .mat-mdc-icon-button.mat-accent{--mdc-icon-button-icon-color: #1e91ff}html .mat-mdc-icon-button.mat-accent{--mat-icon-button-state-layer-color: #1e91ff;--mat-icon-button-ripple-color: rgba(30, 145, 255, .1)}html .mat-mdc-icon-button.mat-warn{--mdc-icon-button-icon-color: #f44336}html .mat-mdc-icon-button.mat-warn{--mat-icon-button-state-layer-color: #f44336;--mat-icon-button-ripple-color: rgba(244, 67, 54, .1)}html{--mat-icon-button-touch-target-display: block}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 44px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:10px}html{--mdc-fab-container-shape: 50%;--mdc-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mdc-fab-small-container-shape: 50%;--mdc-fab-small-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-fab-small-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-small-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-fab-small-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mdc-extended-fab-container-height: 48px;--mdc-extended-fab-container-shape: 24px;--mdc-extended-fab-container-elevation-shadow: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mdc-extended-fab-focus-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-extended-fab-hover-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mdc-extended-fab-pressed-container-elevation-shadow: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mdc-fab-container-color: white}html{--mat-fab-foreground-color: black;--mat-fab-state-layer-color: black;--mat-fab-disabled-state-layer-color: black;--mat-fab-ripple-color: rgba(0, 0, 0, .1);--mat-fab-hover-state-layer-opacity: .04;--mat-fab-focus-state-layer-opacity: .12;--mat-fab-pressed-state-layer-opacity: .12;--mat-fab-disabled-state-container-color: rgba(0, 0, 0, .12);--mat-fab-disabled-state-foreground-color: rgba(0, 0, 0, .38)}html{--mdc-fab-small-container-color: white}html{--mat-fab-small-foreground-color: black;--mat-fab-small-state-layer-color: black;--mat-fab-small-disabled-state-layer-color: black;--mat-fab-small-ripple-color: rgba(0, 0, 0, .1);--mat-fab-small-hover-state-layer-opacity: .04;--mat-fab-small-focus-state-layer-opacity: .12;--mat-fab-small-pressed-state-layer-opacity: .12;--mat-fab-small-disabled-state-container-color: rgba(0, 0, 0, .12);--mat-fab-small-disabled-state-foreground-color: rgba(0, 0, 0, .38)}html .mat-mdc-fab.mat-primary{--mdc-fab-container-color: #97d6ba}html .mat-mdc-fab.mat-primary{--mat-fab-foreground-color: white;--mat-fab-state-layer-color: white;--mat-fab-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-fab.mat-accent{--mdc-fab-container-color: #1e91ff}html .mat-mdc-fab.mat-accent{--mat-fab-foreground-color: white;--mat-fab-state-layer-color: white;--mat-fab-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-fab.mat-warn{--mdc-fab-container-color: #f44336}html .mat-mdc-fab.mat-warn{--mat-fab-foreground-color: white;--mat-fab-state-layer-color: white;--mat-fab-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-mini-fab.mat-primary{--mdc-fab-small-container-color: #97d6ba}html .mat-mdc-mini-fab.mat-primary{--mat-fab-small-foreground-color: white;--mat-fab-small-state-layer-color: white;--mat-fab-small-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-mini-fab.mat-accent{--mdc-fab-small-container-color: #1e91ff}html .mat-mdc-mini-fab.mat-accent{--mat-fab-small-foreground-color: white;--mat-fab-small-state-layer-color: white;--mat-fab-small-ripple-color: rgba(255, 255, 255, .1)}html .mat-mdc-mini-fab.mat-warn{--mdc-fab-small-container-color: #f44336}html .mat-mdc-mini-fab.mat-warn{--mat-fab-small-foreground-color: white;--mat-fab-small-state-layer-color: white;--mat-fab-small-ripple-color: rgba(255, 255, 255, .1)}html{--mat-fab-touch-target-display: block}html{--mat-fab-small-touch-target-display: block}html{--mdc-snackbar-container-shape: 4px}html{--mdc-snackbar-container-color: #333333;--mdc-snackbar-supporting-text-color: rgba(255, 255, 255, .87)}html{--mat-snack-bar-button-color: #c5ced5}html{--mat-table-row-item-outline-width: 1px}html{--mat-table-background-color: white;--mat-table-header-headline-color: rgba(0, 0, 0, .87);--mat-table-row-item-label-text-color: rgba(0, 0, 0, .87);--mat-table-row-item-outline-color: rgba(0, 0, 0, .12)}html{--mat-table-header-container-height: 52px;--mat-table-footer-container-height: 48px;--mat-table-row-item-container-height: 48px}html{--mdc-circular-progress-active-indicator-width: 4px;--mdc-circular-progress-size: 48px}html{--mdc-circular-progress-active-indicator-color: #97d6ba}html .mat-accent{--mdc-circular-progress-active-indicator-color: #1e91ff}html .mat-warn{--mdc-circular-progress-active-indicator-color: #f44336}html{--mat-badge-container-shape: 50%;--mat-badge-container-size: unset;--mat-badge-small-size-container-size: unset;--mat-badge-large-size-container-size: unset;--mat-badge-legacy-container-size: 22px;--mat-badge-legacy-small-size-container-size: 16px;--mat-badge-legacy-large-size-container-size: 28px;--mat-badge-container-offset: -11px 0;--mat-badge-small-size-container-offset: -8px 0;--mat-badge-large-size-container-offset: -14px 0;--mat-badge-container-overlap-offset: -11px;--mat-badge-small-size-container-overlap-offset: -8px;--mat-badge-large-size-container-overlap-offset: -14px;--mat-badge-container-padding: 0;--mat-badge-small-size-container-padding: 0;--mat-badge-large-size-container-padding: 0}html{--mat-badge-background-color: #97d6ba;--mat-badge-text-color: white;--mat-badge-disabled-state-background-color: #b9b9b9;--mat-badge-disabled-state-text-color: rgba(0, 0, 0, .38)}.mat-badge-accent{--mat-badge-background-color: #1e91ff;--mat-badge-text-color: white}.mat-badge-warn{--mat-badge-background-color: #f44336;--mat-badge-text-color: white}html{--mat-bottom-sheet-container-shape: 4px}html{--mat-bottom-sheet-container-text-color: rgba(0, 0, 0, .87);--mat-bottom-sheet-container-background-color: white}html{--mat-legacy-button-toggle-height: 36px;--mat-legacy-button-toggle-shape: 2px;--mat-legacy-button-toggle-focus-state-layer-opacity: 1}html{--mat-standard-button-toggle-shape: 4px;--mat-standard-button-toggle-hover-state-layer-opacity: .04;--mat-standard-button-toggle-focus-state-layer-opacity: .12}html{--mat-legacy-button-toggle-text-color: rgba(0, 0, 0, .38);--mat-legacy-button-toggle-state-layer-color: rgba(0, 0, 0, .12);--mat-legacy-button-toggle-selected-state-text-color: rgba(0, 0, 0, .54);--mat-legacy-button-toggle-selected-state-background-color: #e0e0e0;--mat-legacy-button-toggle-disabled-state-text-color: rgba(0, 0, 0, .26);--mat-legacy-button-toggle-disabled-state-background-color: #eeeeee;--mat-legacy-button-toggle-disabled-selected-state-background-color: #bdbdbd}html{--mat-standard-button-toggle-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-background-color: white;--mat-standard-button-toggle-state-layer-color: black;--mat-standard-button-toggle-selected-state-background-color: #e0e0e0;--mat-standard-button-toggle-selected-state-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-disabled-state-text-color: rgba(0, 0, 0, .26);--mat-standard-button-toggle-disabled-state-background-color: white;--mat-standard-button-toggle-disabled-selected-state-text-color: rgba(0, 0, 0, .87);--mat-standard-button-toggle-disabled-selected-state-background-color: #bdbdbd;--mat-standard-button-toggle-divider-color: rgb(224.4, 224.4, 224.4)}html{--mat-standard-button-toggle-height: 44px}html{--mat-datepicker-calendar-container-shape: 4px;--mat-datepicker-calendar-container-touch-shape: 4px;--mat-datepicker-calendar-container-elevation-shadow: 0px 2px 4px -1px rgba(0, 0, 0, .2), 0px 4px 5px 0px rgba(0, 0, 0, .14), 0px 1px 10px 0px rgba(0, 0, 0, .12);--mat-datepicker-calendar-container-touch-elevation-shadow: 0px 11px 15px -7px rgba(0, 0, 0, .2), 0px 24px 38px 3px rgba(0, 0, 0, .14), 0px 9px 46px 8px rgba(0, 0, 0, .12)}html{--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #97d6ba;--mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(151, 214, 186, .4);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: rgba(151, 214, 186, .3);--mat-datepicker-calendar-date-hover-state-background-color: rgba(151, 214, 186, .3);--mat-datepicker-toggle-active-state-icon-color: #97d6ba;--mat-datepicker-calendar-date-in-range-state-background-color: rgba(151, 214, 186, .2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, .2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032);--mat-datepicker-toggle-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-body-label-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-period-button-text-color: black;--mat-datepicker-calendar-period-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-navigation-button-icon-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-header-divider-color: rgba(0, 0, 0, .12);--mat-datepicker-calendar-header-text-color: rgba(0, 0, 0, .54);--mat-datepicker-calendar-date-today-outline-color: rgba(0, 0, 0, .38);--mat-datepicker-calendar-date-today-disabled-state-outline-color: rgba(0, 0, 0, .18);--mat-datepicker-calendar-date-text-color: rgba(0, 0, 0, .87);--mat-datepicker-calendar-date-outline-color: transparent;--mat-datepicker-calendar-date-disabled-state-text-color: rgba(0, 0, 0, .38);--mat-datepicker-calendar-date-preview-state-outline-color: rgba(0, 0, 0, .24);--mat-datepicker-range-input-separator-color: rgba(0, 0, 0, .87);--mat-datepicker-range-input-disabled-state-separator-color: rgba(0, 0, 0, .38);--mat-datepicker-range-input-disabled-state-text-color: rgba(0, 0, 0, .38);--mat-datepicker-calendar-container-background-color: white;--mat-datepicker-calendar-container-text-color: rgba(0, 0, 0, .87)}.mat-datepicker-content.mat-accent{--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #1e91ff;--mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(30, 145, 255, .4);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: rgba(30, 145, 255, .3);--mat-datepicker-calendar-date-hover-state-background-color: rgba(30, 145, 255, .3);--mat-datepicker-calendar-date-in-range-state-background-color: rgba(30, 145, 255, .2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, .2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032)}.mat-datepicker-content.mat-warn{--mat-datepicker-calendar-date-selected-state-text-color: white;--mat-datepicker-calendar-date-selected-state-background-color: #f44336;--mat-datepicker-calendar-date-selected-disabled-state-background-color: rgba(244, 67, 54, .4);--mat-datepicker-calendar-date-today-selected-state-outline-color: white;--mat-datepicker-calendar-date-focus-state-background-color: rgba(244, 67, 54, .3);--mat-datepicker-calendar-date-hover-state-background-color: rgba(244, 67, 54, .3);--mat-datepicker-calendar-date-in-range-state-background-color: rgba(244, 67, 54, .2);--mat-datepicker-calendar-date-in-comparison-range-state-background-color: rgba(249, 171, 0, .2);--mat-datepicker-calendar-date-in-overlap-range-state-background-color: #a8dab5;--mat-datepicker-calendar-date-in-overlap-range-selected-state-background-color: rgb(69.5241935484, 163.4758064516, 93.9516129032)}.mat-datepicker-toggle-active.mat-accent{--mat-datepicker-toggle-active-state-icon-color: #1e91ff}.mat-datepicker-toggle-active.mat-warn{--mat-datepicker-toggle-active-state-icon-color: #f44336}.mat-calendar-controls{--mat-icon-button-touch-target-display: none}.mat-calendar-controls .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 40px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:8px}html{--mat-divider-width: 1px}html{--mat-divider-color: rgba(0, 0, 0, .12)}html{--mat-expansion-container-shape: 4px;--mat-expansion-legacy-header-indicator-display: inline-block;--mat-expansion-header-indicator-display: none}html{--mat-expansion-container-background-color: white;--mat-expansion-container-text-color: rgba(0, 0, 0, .87);--mat-expansion-actions-divider-color: rgba(0, 0, 0, .12);--mat-expansion-header-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-expansion-header-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-expansion-header-disabled-state-text-color: rgba(0, 0, 0, .26);--mat-expansion-header-text-color: rgba(0, 0, 0, .87);--mat-expansion-header-description-color: rgba(0, 0, 0, .54);--mat-expansion-header-indicator-color: rgba(0, 0, 0, .54)}html{--mat-expansion-header-collapsed-state-height: 44px;--mat-expansion-header-expanded-state-height: 60px}html{--mat-icon-color: inherit}.mat-icon.mat-primary{--mat-icon-color: #97d6ba}.mat-icon.mat-accent{--mat-icon-color: #1e91ff}.mat-icon.mat-warn{--mat-icon-color: #f44336}html{--mat-sidenav-container-shape: 0;--mat-sidenav-container-elevation-shadow: 0px 8px 10px -5px rgba(0, 0, 0, .2), 0px 16px 24px 2px rgba(0, 0, 0, .14), 0px 6px 30px 5px rgba(0, 0, 0, .12);--mat-sidenav-container-width: auto}html{--mat-sidenav-container-divider-color: rgba(0, 0, 0, .12);--mat-sidenav-container-background-color: white;--mat-sidenav-container-text-color: rgba(0, 0, 0, .87);--mat-sidenav-content-background-color: #fafafa;--mat-sidenav-content-text-color: rgba(0, 0, 0, .87);--mat-sidenav-scrim-color: rgba(0, 0, 0, .6)}html{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #97d6ba;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #97d6ba;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #97d6ba;--mat-stepper-header-edit-state-icon-foreground-color: white;--mat-stepper-container-color: white;--mat-stepper-line-color: rgba(0, 0, 0, .12);--mat-stepper-header-hover-state-layer-color: rgba(0, 0, 0, .04);--mat-stepper-header-focus-state-layer-color: rgba(0, 0, 0, .04);--mat-stepper-header-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-optional-label-text-color: rgba(0, 0, 0, .54);--mat-stepper-header-selected-state-label-text-color: rgba(0, 0, 0, .87);--mat-stepper-header-error-state-label-text-color: #f44336;--mat-stepper-header-icon-background-color: rgba(0, 0, 0, .54);--mat-stepper-header-error-state-icon-foreground-color: #f44336;--mat-stepper-header-error-state-icon-background-color: transparent}html .mat-step-header.mat-accent{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #1e91ff;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #1e91ff;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #1e91ff;--mat-stepper-header-edit-state-icon-foreground-color: white}html .mat-step-header.mat-warn{--mat-stepper-header-icon-foreground-color: white;--mat-stepper-header-selected-state-icon-background-color: #f44336;--mat-stepper-header-selected-state-icon-foreground-color: white;--mat-stepper-header-done-state-icon-background-color: #f44336;--mat-stepper-header-done-state-icon-foreground-color: white;--mat-stepper-header-edit-state-icon-background-color: #f44336;--mat-stepper-header-edit-state-icon-foreground-color: white}html{--mat-stepper-header-height: 68px}html{--mat-sort-arrow-color: rgb(117.3, 117.3, 117.3)}html{--mat-toolbar-container-background-color: whitesmoke;--mat-toolbar-container-text-color: rgba(0, 0, 0, .87)}.mat-toolbar.mat-primary{--mat-toolbar-container-background-color: #97d6ba;--mat-toolbar-container-text-color: white}.mat-toolbar.mat-accent{--mat-toolbar-container-background-color: #1e91ff;--mat-toolbar-container-text-color: white}.mat-toolbar.mat-warn{--mat-toolbar-container-background-color: #f44336;--mat-toolbar-container-text-color: white}html{--mat-toolbar-standard-height: 60px;--mat-toolbar-mobile-height: 52px}html{--mat-tree-container-background-color: white;--mat-tree-node-text-color: rgba(0, 0, 0, .87)}html{--mat-tree-node-min-height: 44px}html{--mat-timepicker-container-shape: 4px;--mat-timepicker-container-elevation-shadow: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-timepicker-container-background-color: white}html{--mat-badge-text-font: Roboto, sans-serif;--mat-badge-line-height: 22px;--mat-badge-text-size: 12px;--mat-badge-text-weight: 600;--mat-badge-small-size-text-size: 9px;--mat-badge-small-size-line-height: 16px;--mat-badge-large-size-text-size: 24px;--mat-badge-large-size-line-height: 28px}.mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:400 24px/32px Roboto,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:500 20px/32px Roboto,sans-serif;letter-spacing:.0125em;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3{font:400 16px/28px Roboto,sans-serif;letter-spacing:.009375em;margin:0 0 16px}.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:400 16px/24px Roboto,sans-serif;letter-spacing:.03125em;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:400 11.62px/20px Roboto,sans-serif;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:400 9.38px/20px Roboto,sans-serif;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 14px/22px Roboto,sans-serif;letter-spacing:.0071428571em}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:400 14px/20px Roboto,sans-serif;letter-spacing:.0178571429em}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 12px/20px Roboto,sans-serif;letter-spacing:.0333333333em}.mat-headline-1,.mat-typography .mat-headline-1{font:300 96px/96px Roboto,sans-serif;letter-spacing:-.015625em;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:300 60px/60px Roboto,sans-serif;letter-spacing:-.0083333333em;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:400 48px/50px Roboto,sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:400 34px/40px Roboto,sans-serif;letter-spacing:.0073529412em;margin:0 0 64px}html{--mat-bottom-sheet-container-text-font: Roboto, sans-serif;--mat-bottom-sheet-container-text-line-height: 20px;--mat-bottom-sheet-container-text-size: 14px;--mat-bottom-sheet-container-text-tracking: .0178571429em;--mat-bottom-sheet-container-text-weight: 400}html{--mat-legacy-button-toggle-label-text-font: Roboto, sans-serif;--mat-legacy-button-toggle-label-text-line-height: 24px;--mat-legacy-button-toggle-label-text-size: 16px;--mat-legacy-button-toggle-label-text-tracking: .03125em;--mat-legacy-button-toggle-label-text-weight: 400}html{--mat-standard-button-toggle-label-text-font: Roboto, sans-serif;--mat-standard-button-toggle-label-text-line-height: 24px;--mat-standard-button-toggle-label-text-size: 16px;--mat-standard-button-toggle-label-text-tracking: .03125em;--mat-standard-button-toggle-label-text-weight: 400}html{--mat-datepicker-calendar-text-font: Roboto, sans-serif;--mat-datepicker-calendar-text-size: 13px;--mat-datepicker-calendar-body-label-text-size: 14px;--mat-datepicker-calendar-body-label-text-weight: 500;--mat-datepicker-calendar-period-button-text-size: 14px;--mat-datepicker-calendar-period-button-text-weight: 500;--mat-datepicker-calendar-header-text-size: 11px;--mat-datepicker-calendar-header-text-weight: 400}html{--mat-expansion-header-text-font: Roboto, sans-serif;--mat-expansion-header-text-size: 14px;--mat-expansion-header-text-weight: 500;--mat-expansion-header-text-line-height: inherit;--mat-expansion-header-text-tracking: inherit;--mat-expansion-container-text-font: Roboto, sans-serif;--mat-expansion-container-text-line-height: 20px;--mat-expansion-container-text-size: 14px;--mat-expansion-container-text-tracking: .0178571429em;--mat-expansion-container-text-weight: 400}html{--mat-grid-list-tile-header-primary-text-size: 14px;--mat-grid-list-tile-header-secondary-text-size: 12px;--mat-grid-list-tile-footer-primary-text-size: 14px;--mat-grid-list-tile-footer-secondary-text-size: 12px}html{--mat-stepper-container-text-font: Roboto, sans-serif;--mat-stepper-header-label-text-font: Roboto, sans-serif;--mat-stepper-header-label-text-size: 14px;--mat-stepper-header-label-text-weight: 400;--mat-stepper-header-error-state-label-text-size: 16px;--mat-stepper-header-selected-state-label-text-size: 16px;--mat-stepper-header-selected-state-label-text-weight: 400}html{--mat-toolbar-title-text-font: Roboto, sans-serif;--mat-toolbar-title-text-line-height: 32px;--mat-toolbar-title-text-size: 20px;--mat-toolbar-title-text-tracking: .0125em;--mat-toolbar-title-text-weight: 500}html{--mat-tree-node-text-font: Roboto, sans-serif;--mat-tree-node-text-size: 14px;--mat-tree-node-text-weight: 400}html{--mat-option-label-text-font: Roboto, sans-serif;--mat-option-label-text-line-height: 24px;--mat-option-label-text-size: 16px;--mat-option-label-text-tracking: .03125em;--mat-option-label-text-weight: 400}html{--mat-optgroup-label-text-font: Roboto, sans-serif;--mat-optgroup-label-text-line-height: 24px;--mat-optgroup-label-text-size: 16px;--mat-optgroup-label-text-tracking: .03125em;--mat-optgroup-label-text-weight: 400}html{--mat-card-title-text-font: Roboto, sans-serif;--mat-card-title-text-line-height: 32px;--mat-card-title-text-size: 20px;--mat-card-title-text-tracking: .0125em;--mat-card-title-text-weight: 500;--mat-card-subtitle-text-font: Roboto, sans-serif;--mat-card-subtitle-text-line-height: 22px;--mat-card-subtitle-text-size: 14px;--mat-card-subtitle-text-tracking: .0071428571em;--mat-card-subtitle-text-weight: 500}html{--mdc-plain-tooltip-supporting-text-font: Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size: 12px;--mdc-plain-tooltip-supporting-text-weight: 400;--mdc-plain-tooltip-supporting-text-tracking: .0333333333em}html{--mdc-filled-text-field-label-text-font: Roboto, sans-serif;--mdc-filled-text-field-label-text-size: 16px;--mdc-filled-text-field-label-text-tracking: .03125em;--mdc-filled-text-field-label-text-weight: 400}html{--mdc-outlined-text-field-label-text-font: Roboto, sans-serif;--mdc-outlined-text-field-label-text-size: 16px;--mdc-outlined-text-field-label-text-tracking: .03125em;--mdc-outlined-text-field-label-text-weight: 400}html{--mat-form-field-container-text-font: Roboto, sans-serif;--mat-form-field-container-text-line-height: 24px;--mat-form-field-container-text-size: 16px;--mat-form-field-container-text-tracking: .03125em;--mat-form-field-container-text-weight: 400;--mat-form-field-outlined-label-text-populated-size: 16px;--mat-form-field-subscript-text-font: Roboto, sans-serif;--mat-form-field-subscript-text-line-height: 20px;--mat-form-field-subscript-text-size: 12px;--mat-form-field-subscript-text-tracking: .0333333333em;--mat-form-field-subscript-text-weight: 400}html{--mat-select-trigger-text-font: Roboto, sans-serif;--mat-select-trigger-text-line-height: 24px;--mat-select-trigger-text-size: 16px;--mat-select-trigger-text-tracking: .03125em;--mat-select-trigger-text-weight: 400}html{--mdc-dialog-subhead-font: Roboto, sans-serif;--mdc-dialog-subhead-line-height: 32px;--mdc-dialog-subhead-size: 20px;--mdc-dialog-subhead-weight: 500;--mdc-dialog-subhead-tracking: .0125em;--mdc-dialog-supporting-text-font: Roboto, sans-serif;--mdc-dialog-supporting-text-line-height: 24px;--mdc-dialog-supporting-text-size: 16px;--mdc-dialog-supporting-text-weight: 400;--mdc-dialog-supporting-text-tracking: .03125em}.mat-mdc-standard-chip{--mdc-chip-label-text-font: Roboto, sans-serif;--mdc-chip-label-text-line-height: 20px;--mdc-chip-label-text-size: 14px;--mdc-chip-label-text-tracking: .0178571429em;--mdc-chip-label-text-weight: 400}html .mat-mdc-slide-toggle{--mat-switch-label-text-font: Roboto, sans-serif;--mat-switch-label-text-line-height: 20px;--mat-switch-label-text-size: 14px;--mat-switch-label-text-tracking: .0178571429em;--mat-switch-label-text-weight: 400}html{--mat-radio-label-text-font: Roboto, sans-serif;--mat-radio-label-text-line-height: 20px;--mat-radio-label-text-size: 14px;--mat-radio-label-text-tracking: .0178571429em;--mat-radio-label-text-weight: 400}html{--mdc-slider-label-label-text-font: Roboto, sans-serif;--mdc-slider-label-label-text-size: 14px;--mdc-slider-label-label-text-line-height: 22px;--mdc-slider-label-label-text-tracking: .0071428571em;--mdc-slider-label-label-text-weight: 500}html{--mat-menu-item-label-text-font: Roboto, sans-serif;--mat-menu-item-label-text-size: 16px;--mat-menu-item-label-text-tracking: .03125em;--mat-menu-item-label-text-line-height: 24px;--mat-menu-item-label-text-weight: 400}html{--mdc-list-list-item-label-text-font: Roboto, sans-serif;--mdc-list-list-item-label-text-line-height: 24px;--mdc-list-list-item-label-text-size: 16px;--mdc-list-list-item-label-text-tracking: .03125em;--mdc-list-list-item-label-text-weight: 400;--mdc-list-list-item-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height: 20px;--mdc-list-list-item-supporting-text-size: 14px;--mdc-list-list-item-supporting-text-tracking: .0178571429em;--mdc-list-list-item-supporting-text-weight: 400;--mdc-list-list-item-trailing-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height: 20px;--mdc-list-list-item-trailing-supporting-text-size: 12px;--mdc-list-list-item-trailing-supporting-text-tracking: .0333333333em;--mdc-list-list-item-trailing-supporting-text-weight: 400}.mdc-list-group__subheader{font:400 16px/28px Roboto,sans-serif;letter-spacing:.009375em}html{--mat-paginator-container-text-font: Roboto, sans-serif;--mat-paginator-container-text-line-height: 20px;--mat-paginator-container-text-size: 12px;--mat-paginator-container-text-tracking: .0333333333em;--mat-paginator-container-text-weight: 400;--mat-paginator-select-trigger-text-size: 12px}.mat-mdc-tab-header{--mat-tab-header-label-text-font: Roboto, sans-serif;--mat-tab-header-label-text-size: 14px;--mat-tab-header-label-text-tracking: .0892857143em;--mat-tab-header-label-text-line-height: 36px;--mat-tab-header-label-text-weight: 500}html{--mat-checkbox-label-text-font: Roboto, sans-serif;--mat-checkbox-label-text-line-height: 20px;--mat-checkbox-label-text-size: 14px;--mat-checkbox-label-text-tracking: .0178571429em;--mat-checkbox-label-text-weight: 400}html{--mdc-text-button-label-text-font: Roboto, sans-serif;--mdc-text-button-label-text-size: 14px;--mdc-text-button-label-text-tracking: .0892857143em;--mdc-text-button-label-text-weight: 500;--mdc-text-button-label-text-transform: none}html{--mdc-filled-button-label-text-font: Roboto, sans-serif;--mdc-filled-button-label-text-size: 14px;--mdc-filled-button-label-text-tracking: .0892857143em;--mdc-filled-button-label-text-weight: 500;--mdc-filled-button-label-text-transform: none}html{--mdc-protected-button-label-text-font: Roboto, sans-serif;--mdc-protected-button-label-text-size: 14px;--mdc-protected-button-label-text-tracking: .0892857143em;--mdc-protected-button-label-text-weight: 500;--mdc-protected-button-label-text-transform: none}html{--mdc-outlined-button-label-text-font: Roboto, sans-serif;--mdc-outlined-button-label-text-size: 14px;--mdc-outlined-button-label-text-tracking: .0892857143em;--mdc-outlined-button-label-text-weight: 500;--mdc-outlined-button-label-text-transform: none}html{--mdc-extended-fab-label-text-font: Roboto, sans-serif;--mdc-extended-fab-label-text-size: 14px;--mdc-extended-fab-label-text-tracking: .0892857143em;--mdc-extended-fab-label-text-weight: 500}html{--mdc-snackbar-supporting-text-font: Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height: 20px;--mdc-snackbar-supporting-text-size: 14px;--mdc-snackbar-supporting-text-weight: 400}html{--mat-table-header-headline-font: Roboto, sans-serif;--mat-table-header-headline-line-height: 22px;--mat-table-header-headline-size: 14px;--mat-table-header-headline-weight: 500;--mat-table-header-headline-tracking: .0071428571em;--mat-table-row-item-label-text-font: Roboto, sans-serif;--mat-table-row-item-label-text-line-height: 20px;--mat-table-row-item-label-text-size: 14px;--mat-table-row-item-label-text-weight: 400;--mat-table-row-item-label-text-tracking: .0178571429em;--mat-table-footer-supporting-text-font: Roboto, sans-serif;--mat-table-footer-supporting-text-line-height: 20px;--mat-table-footer-supporting-text-size: 14px;--mat-table-footer-supporting-text-weight: 400;--mat-table-footer-supporting-text-tracking: .0178571429em}body{background:#e2e7ea}body,body html{margin:0;width:100%;height:100%;font-family:Roboto,Arial,sans-serif}.mat-card.primary{padding:1.5rem}.mat-card.primary .primary-card-header{margin:-1.5rem;margin-bottom:0;padding-top:1.5rem;padding-left:1.5rem;padding-right:1.5rem}.mat-card.primary .primary-card-header h1{margin-bottom:0}.mat-card.primary .primary-card-header .mat-card-header-text{display:none}@media screen and (min-width: 1020px){.mat-card.primary .primary-card-header{background-color:#97d6ba;color:#fff;border-radius:4px 4px 0 0;padding-bottom:1.5rem}}.mat-card.primary .mat-card-content{padding-top:1.5rem}@font-face{font-family:InterVariable;font-style:normal;font-weight:100 900;font-display:swap;src:url("./media/InterVariable-75YQYCJN.woff2") format("woff2")}@font-face{font-family:InterVariable;font-style:italic;font-weight:100 900;font-display:swap;src:url("./media/InterVariable-Italic-54HMV74W.woff2") format("woff2")}body{font-size:14px;font-family:InterVariable,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.white-block{background:#fff;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;padding:16px;border-radius:4px}.white-block h2,.white-block h3,.white-block h4,.white-block h5,.white-block h6{font-weight:400;margin:.3em 0}.white-block h5{color:#959595;font-size:1em}table th{font-weight:600;color:#272727}button{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transition:background .4s cubic-bezier(.25,.8,.25,1),box-shadow .28s cubic-bezier(.4,0,.2,1)}button.primary{background-color:#97d6ba;color:#fff}.ace_editor{border:1px solid #dfdfdf;border-radius:4px}@media screen and (min-width: 1020px){main>app-home,main>app-capability-statement,main>app-igs,main>app-fhir-path,main>app-mapping-language,main>app-transform,main>app-settings{margin:0 auto;padding:3rem 0;width:1000px;display:block}} diff --git a/matchbox-server/src/test/java/ch/ahdis/matchbox/test/MatchboxApiR4Test.java b/matchbox-server/src/test/java/ch/ahdis/matchbox/test/MatchboxApiR4Test.java index fe91fccab69..ba58f9a1a0e 100644 --- a/matchbox-server/src/test/java/ch/ahdis/matchbox/test/MatchboxApiR4Test.java +++ b/matchbox-server/src/test/java/ch/ahdis/matchbox/test/MatchboxApiR4Test.java @@ -318,6 +318,40 @@ void validateEhs419Gazelle() throws Exception { assertEquals(0, getValidationFailures(report)); } + @Test + void validateXVersionSlicingExtensions() throws Exception { + + String encounter = "\n" + // + " \n" + // + " \n" + // + " \n" + // + " \n" + // + " \n" + // + " \n" + // + "

    Generated Narrative: Encounter EncounterExtR5

    Profile: Encounter

    Extension Definition for Encounter.plannedStartDate for Version 5.0: 2023-04-11

    Extension Definition for Encounter.plannedEndDate for Version 5.0: 2023-05-05

    status: In Progress

    class: ActCode: HH (home health)

    \n" + // + " \n" + // + " \n" + // + " \n" + // + "
    \n" + // + " \n" + // + " \n" + // + "
    \n" + // + " \n" + // + " \n" + // + " \n" + // + " \n" + // + " \n" + // + ""; + + IBaseOperationOutcome operationOutcome = this.validationClient.validate(encounter, + "http://matchbox.health/ig/test/r4/StructureDefinition/encounter-ext-r5"); + assertEquals(0, getValidationFailures((OperationOutcome) operationOutcome)); + } + + private String getContent(String resourceName) throws IOException { Resource resource = new ClassPathResource(resourceName); File file = resource.getFile(); diff --git a/matchbox-server/src/test/resources/application-test-r4.yaml b/matchbox-server/src/test/resources/application-test-r4.yaml index 3de6adc931b..3615264b30a 100644 --- a/matchbox-server/src/test/resources/application-test-r4.yaml +++ b/matchbox-server/src/test/resources/application-test-r4.yaml @@ -9,14 +9,6 @@ hapi: name: hl7.fhir.r4.core version: 4.0.1 url: classpath:/hl7.fhir.r4.core.tgz - fhir_extensions: - name: hl7.fhir.uv.extensions.r4 - version: 5.2.0 - url: classpath:/hl7.fhir.uv.extensions.r4#5.2.0.tgz - fhir_terminology: - name: hl7.terminology.r4 - version: 6.5.0 - url: classpath:/hl7.terminology.r4#6.5.0.tgz matchbox_health_test_ig_r4: name: matchbox.health.test.ig.r4 version: 0.2.0 diff --git a/matchbox-server/src/test/resources/application-test-r5onr4.yaml b/matchbox-server/src/test/resources/application-test-r5onr4.yaml index c9b2645c314..8c4778f7476 100644 --- a/matchbox-server/src/test/resources/application-test-r5onr4.yaml +++ b/matchbox-server/src/test/resources/application-test-r5onr4.yaml @@ -10,14 +10,6 @@ hapi: name: hl7.fhir.r4.core version: 4.0.1 url: classpath:/hl7.fhir.r4.core.tgz - fhir_extensions: - name: hl7.fhir.uv.extensions.r4 - version: 5.2.0 - url: classpath:/hl7.fhir.uv.extensions.r4#5.2.0.tgz - fhir_terminology: - name: hl7.terminology.r4 - version: 6.5.0 - url: classpath:/hl7.terminology.r4#6.5.0.tgz fhir_r5_core: name: hl7.fhir.r5.core version: 5.0.0 diff --git a/matchbox-server/src/test/resources/matchbox.health.test.ig.r4-0.2.0.tgz b/matchbox-server/src/test/resources/matchbox.health.test.ig.r4-0.2.0.tgz index 60d74912112..442bb6d612e 100644 Binary files a/matchbox-server/src/test/resources/matchbox.health.test.ig.r4-0.2.0.tgz and b/matchbox-server/src/test/resources/matchbox.health.test.ig.r4-0.2.0.tgz differ diff --git a/matchbox-server/with-alis/application.yaml b/matchbox-server/with-alis/application.yaml index b9eb5f5879b..f394c7524c2 100644 --- a/matchbox-server/with-alis/application.yaml +++ b/matchbox-server/with-alis/application.yaml @@ -9,14 +9,6 @@ hapi: name: hl7.fhir.r4.core version: 4.0.1 url: classpath:/hl7.fhir.r4.core.tgz - fhir_extensions: - name: hl7.fhir.uv.extensions.r4 - version: 5.2.0 - url: classpath:/hl7.fhir.uv.extensions.r4#5.2.0.tgz - fhir_terminology: - name: hl7.terminology.r4 - version: 6.3.0 - url: classpath:/hl7.terminology.r4#6.3.0.tgz hl7_fhir_uv_ips: name: ch.fhir.ig.ch-alis version: 0.3.0-draft diff --git a/matchbox-server/with-ans/application.yaml b/matchbox-server/with-ans/application.yaml new file mode 100644 index 00000000000..622839e3abb --- /dev/null +++ b/matchbox-server/with-ans/application.yaml @@ -0,0 +1,28 @@ +server: + port: 8080 + servlet: + context-path: /matchboxv3 +hapi: + fhir: + server_address: http://localhost:8080/matchboxv3/fhir + implementationguides: + fhir_r4_core: + name: hl7.fhir.r4.core + version: 4.0.1 + url: classpath:/hl7.fhir.r4.core.tgz + ans_fr_tddui: + name: ans.fhir.fr.tddui + version: 2.1.0-ballot +matchbox: + fhir: + context: +# txServer: http://tx.fhir.org +# xVersion: true + httpReadOnly: true + txServer: http://localhost:${server.port}/matchboxv3/tx + suppressWarnInfo: + hl7.fhir.r4.core#4.0.1: + - "Constraint failed: dom-6:" + suppressError: + hl7.fhir.r4.core#4.0.1: + - "Extension_EXTP_Context_Wrong@^RelatedPerson" diff --git a/matchbox-server/with-ca/application.yaml b/matchbox-server/with-ca/application.yaml index ce8bbe63e61..0c566e46fb5 100644 --- a/matchbox-server/with-ca/application.yaml +++ b/matchbox-server/with-ca/application.yaml @@ -1,16 +1,6 @@ server: servlet: context-path: /matchboxv3 -# spring: -# datasource: -# url: '' -# username: -# password: -# driverClassName: org.postgresql.Driver - -# # database connection pool size -# hikari: -# maximum-pool-size: 10 jpa: properties: hibernate.dialect: org.hibernate.dialect.PostgreSQLDialect @@ -18,7 +8,8 @@ matchbox: fhir: context: fhirVersion: 4.0.1 - txServer: http://tx.fhir.org + txServer: https://tx.fhir.org + txServerCache: false onlyOneEngine: false suppressWarnInfo: ca.infoway.io.erec: @@ -33,7 +24,6 @@ matchbox: - "regex:ValueSet '(.+)' not found" - "regex:This element does not match any known slice defined in the profile (.*)" - "regex:Reference to draft CodeSystem (.+)" - - "regex:A definition for CodeSystem '(.+)' could not be found, so the code cannot be validated" - "Best Practice Recommendation: In general, all observations should have a performer" - "Best Practice Recommendation: In general, all observations should have an effective[x] ()" - "regex:Validate Observation against (.+)" @@ -41,13 +31,14 @@ matchbox: - "regex:UCUM Codes that contain human readable annotations like (.+) can be misleading (.e.g. they are ignored when comparing units).(.+)" - "regex:A definition for the value Set '(.+)' could not be found" - "UNABLE_TO_CHECK_IF_THE_PROVIDED_CODES_ARE_IN_THE_VALUE_SET" + - "regex:No definition could be found for URL value '(.+)'" + - "regex:Reference to draft ValueSet (.+)" ca.ab.fhir.psab: - "Constraint failed: dom-6:" - "regex:URL value '(.+)' does not resolve" - "regex:ValueSet '(.+)' not found" - "regex:This element does not match any known slice defined in the profile (.*)" - "regex:Reference to draft CodeSystem (.+)" - - "regex:A definition for CodeSystem '(.+)' could not be found, so the code cannot be validated" - "Best Practice Recommendation: In general, all observations should have a performer" - "Best Practice Recommendation: In general, all observations should have an effective[x] ()" - "regex:Validate Observation against (.+)" @@ -55,6 +46,8 @@ matchbox: - "regex:UCUM Codes that contain human readable annotations like (.+) can be misleading (.e.g. they are ignored when comparing units).(.+)" - "regex:A definition for the value Set '(.+)' could not be found" - "UNABLE_TO_CHECK_IF_THE_PROVIDED_CODES_ARE_IN_THE_VALUE_SET" + - "regex:No definition could be found for URL value '(.+)'" + - "regex:Reference to draft ValueSet (.+)" ca.on.oh.patient-summary: - "Constraint failed: dom-6:" - "regex:URL value '(.+)' does not resolve" @@ -73,10 +66,12 @@ matchbox: hapi: fhir: server_address: https://matchbox.apibox.ca/matchboxv3/fhir + staticLocation: file:/apps/ implementationguides: fhir_r4_core: name: hl7.fhir.r4.core version: 4.0.1 + url: classpath:/hl7.fhir.r4.core.tgz fhir_terminology: name: hl7.terminology version: 5.4.0 @@ -113,9 +108,6 @@ hapi: pmir150: name: ihe.iti.pmir version: 1.5.0 -# psca: -# name: ca.infoway.io.psca -# version: 2.0.3-DFT-Ballot psca-211-dft: name: ca.infoway.io.psca version: 2.1.1-DFT @@ -125,9 +117,6 @@ hapi: pson: name: ca.on.oh.patient-summary version: 0.11.0 -# erec: -# name: ca.infoway.io.erec -# version: 1.0.3-dft-projectathon erec120: name: ca.infoway.io.erec version: 1.2.0-dft @@ -135,9 +124,6 @@ hapi: name: ca.on.oh-eReferral-eConsult version: 0.12.0-alpha1.0.7 url: file:///app/igs/ca.on.oh-ereferral-econsult-0.12.0-alpha1.0.7-snapshots.tgz -# cafex210: -# name: ca.infoway.io.cafex -# version: 2.1.0-DFT-preBallot cafex220: name: ca.infoway.io.cafex version: 2.2.0-DFT diff --git a/matchbox-server/with-cda-r5/application.yaml b/matchbox-server/with-cda-r5/application.yaml index 8ae4cfb84c4..23f87f3675c 100644 --- a/matchbox-server/with-cda-r5/application.yaml +++ b/matchbox-server/with-cda-r5/application.yaml @@ -9,14 +9,6 @@ hapi: name: hl7.fhir.r5.core version: 5.0.0 url: classpath:/hl7.fhir.r5.core.tgz - fhir_extensions: - name: hl7.fhir.uv.extensions.r5 - version: 5.2.0 - url: classpath:/hl7.fhir.uv.extensions.r5#5.2.0.tgz - fhir_terminology: - name: hl7.terminology.r5 - version: 6.3.0 - url: classpath:/hl7.terminology.r5#6.3.0.tgz cda: name: hl7.cda.uv.core version: 2.0.1-sd-202510-matchbox-patch diff --git a/matchbox-server/with-cda/application.yaml b/matchbox-server/with-cda/application.yaml index 37b541cb069..9ff1fa75fde 100644 --- a/matchbox-server/with-cda/application.yaml +++ b/matchbox-server/with-cda/application.yaml @@ -9,14 +9,6 @@ hapi: name: hl7.fhir.r4.core version: 4.0.1 url: classpath:/hl7.fhir.r4.core.tgz - fhir_extensions: - name: hl7.fhir.uv.extensions.r4 - version: 5.2.0 - url: classpath:/hl7.fhir.uv.extensions.r4#5.2.0.tgz - fhir_terminology: - name: hl7.terminology.r4 - version: 6.3.0 - url: classpath:/hl7.terminology.r4#6.3.0.tgz cda: name: hl7.cda.uv.core version: 2.0.1-sd-202510-matchbox-patch diff --git a/matchbox-server/with-ch/application.yaml b/matchbox-server/with-ch/application.yaml index e6cb01894af..bc1949291d9 100644 --- a/matchbox-server/with-ch/application.yaml +++ b/matchbox-server/with-ch/application.yaml @@ -10,24 +10,18 @@ hapi: name: hl7.fhir.r4.core version: 4.0.1 url: classpath:/hl7.fhir.r4.core.tgz - fhir_extensions: - name: hl7.fhir.uv.extensions.r4 - version: 5.2.0 - url: classpath:/hl7.fhir.uv.extensions.r4#5.2.0.tgz - fhir_terminology: - name: hl7.terminology.r4 - version: 6.3.0 - url: classpath:/hl7.terminology.r4#6.3.0.tgz ch-core: name: ch.fhir.ig.ch-core - version: 6.0.0-ballot - url: https://fhir.ch/ig/ch-core/package.tgz + version: 6.0.0 + ch-epr-fhir: + name: ch.fhir.ig.ch-epr-fhir + version: 5.0.0 matchbox: fhir: context: # txServer: http://tx.fhir.org - httpReadOnly: true txServer: http://localhost:${server.port}/matchboxv3/tx + httpReadOnly: true suppressWarnInfo: hl7.fhir.r4.core#4.0.1: - "Constraint failed: dom-6:" diff --git a/matchbox-server/with-elm/application.yaml b/matchbox-server/with-elm/application.yaml index ccff030f124..0def2022b2c 100644 --- a/matchbox-server/with-elm/application.yaml +++ b/matchbox-server/with-elm/application.yaml @@ -10,14 +10,6 @@ hapi: name: hl7.fhir.r4.core version: 4.0.1 url: classpath:/hl7.fhir.r4.core.tgz - fhir_extensions: - name: hl7.fhir.uv.extensions.r4 - version: 5.2.0 - url: classpath:/hl7.fhir.uv.extensions.r4#5.2.0.tgz - fhir_terminology: - name: hl7.terminology.r4 - version: 6.3.0 - url: classpath:/hl7.terminology.r4#6.3.0.tgz ch_elm: name: ch.fhir.ig.ch-elm version: 1.11.0 diff --git a/matchbox-server/with-eprik/application.yaml b/matchbox-server/with-eprik/application.yaml index b26d51537a2..ab8c9933df9 100644 --- a/matchbox-server/with-eprik/application.yaml +++ b/matchbox-server/with-eprik/application.yaml @@ -10,14 +10,6 @@ hapi: name: hl7.fhir.r4.core version: 4.0.1 url: classpath:/hl7.fhir.r4.core.tgz - fhir_extensions: - name: hl7.fhir.uv.extensions.r4 - version: 5.2.0 - url: classpath:/hl7.fhir.uv.extensions.r4#5.2.0.tgz - fhir_terminology: - name: hl7.terminology.r4 - version: 6.3.0 - url: classpath:/hl7.terminology.r4#6.3.0.tgz hl7_fhir_uv_ips: name: hl7.fhir.uv.ips version: current diff --git a/matchbox-server/with-eu/application.yaml b/matchbox-server/with-eu/application.yaml index 6e618163799..4f54bb7c42f 100644 --- a/matchbox-server/with-eu/application.yaml +++ b/matchbox-server/with-eu/application.yaml @@ -10,14 +10,6 @@ hapi: name: hl7.fhir.r4.core version: 4.0.1 url: classpath:/hl7.fhir.r4.core.tgz - fhir_extensions: - name: hl7.fhir.uv.extensions.r4 - version: 5.2.0 - url: classpath:/hl7.fhir.uv.extensions.r4#5.2.0.tgz - fhir_terminology: - name: hl7.terminology.r4 - version: 6.3.0 - url: classpath:/hl7.terminology.r4#6.3.0.tgz ch-emed: name: ch.fhir.ig.ch-vacd version: 3.0.0 diff --git a/matchbox-server/with-fr/application.yaml b/matchbox-server/with-fr/application.yaml index 2fb1142a075..c5c36b20236 100644 --- a/matchbox-server/with-fr/application.yaml +++ b/matchbox-server/with-fr/application.yaml @@ -9,14 +9,6 @@ hapi: name: hl7.fhir.r4.core version: 4.0.1 url: classpath:/hl7.fhir.r4.core.tgz - fhir_extensions: - name: hl7.fhir.uv.extensions.r4 - version: 5.2.0 - url: classpath:/hl7.fhir.uv.extensions.r4#5.2.0.tgz - fhir_terminology: - name: hl7.terminology.r4 - version: 6.3.0 - url: classpath:/hl7.terminology.r4#6.3.0.tgz matchbox: fhir: context: diff --git a/matchbox-server/with-gazelle/application.yaml b/matchbox-server/with-gazelle/application.yaml index 9c9fb3447fa..02801567298 100644 --- a/matchbox-server/with-gazelle/application.yaml +++ b/matchbox-server/with-gazelle/application.yaml @@ -41,14 +41,6 @@ hapi: #name: hl7.terminology #version: 5.4.0 #url: classpath:/hl7.terminology#5.4.0.tgz - fhir_terminology: - name: hl7.terminology.r4 - version: 6.3.0 - url: classpath:/hl7.terminology.r4#6.3.0.tgz - fhir_extensions: - name: hl7.fhir.uv.extensions.r4 - version: 5.2.0 - url: classpath:/hl7.fhir.uv.extensions.r4#5.2.0.tgz ips: name: hl7.fhir.uv.ips version: 1.1.0 diff --git a/matchbox-server/with-ips/application.yaml b/matchbox-server/with-ips/application.yaml index e673bde5084..884b1655542 100644 --- a/matchbox-server/with-ips/application.yaml +++ b/matchbox-server/with-ips/application.yaml @@ -10,14 +10,6 @@ hapi: name: hl7.fhir.r4.core version: 4.0.1 url: classpath:/hl7.fhir.r4.core.tgz - fhir_extensions: - name: hl7.fhir.uv.extensions.r4 - version: 5.2.0 - url: classpath:/hl7.fhir.uv.extensions.r4#5.2.0.tgz - fhir_terminology: - name: hl7.terminology.r4 - version: 6.3.0 - url: classpath:/hl7.terminology.r4#6.3.0.tgz ips: name: hl7.fhir.uv.ips version: 1.1.0 diff --git a/matchbox-server/with-it/application.yaml b/matchbox-server/with-it/application.yaml index 794a5248775..3321b7e2207 100644 --- a/matchbox-server/with-it/application.yaml +++ b/matchbox-server/with-it/application.yaml @@ -9,14 +9,6 @@ hapi: name: hl7.fhir.r4.core version: 4.0.1 url: classpath:/hl7.fhir.r4.core.tgz - fhir_extensions: - name: hl7.fhir.uv.extensions.r4 - version: 5.2.0 - url: classpath:/hl7.fhir.uv.extensions.r4#5.2.0.tgz - fhir_terminology: - name: hl7.terminology.r4 - version: 6.3.0 - url: classpath:/hl7.terminology.r4#6.3.0.tgz fhir_it: name: pntitalia.fhir.r4.draft version: 0.0.1 diff --git a/matchbox-server/with-oneengine/application.yaml b/matchbox-server/with-oneengine/application.yaml index ae21c2e38be..742c1859d12 100644 --- a/matchbox-server/with-oneengine/application.yaml +++ b/matchbox-server/with-oneengine/application.yaml @@ -23,14 +23,6 @@ hapi: name: hl7.fhir.r4.core version: 4.0.1 url: classpath:/hl7.fhir.r4.core.tgz - fhir_extensions: - name: hl7.fhir.uv.extensions.r4 - version: 5.2.0 - url: classpath:/hl7.fhir.uv.extensions.r4#5.2.0.tgz - fhir_terminology: - name: hl7.terminology.r4 - version: 6.3.0 - url: classpath:/hl7.terminology.r4#6.3.0.tgz matchbox: fhir: context: diff --git a/matchbox-server/with-settings/application.yaml b/matchbox-server/with-settings/application.yaml index 6e618163799..4f54bb7c42f 100644 --- a/matchbox-server/with-settings/application.yaml +++ b/matchbox-server/with-settings/application.yaml @@ -10,14 +10,6 @@ hapi: name: hl7.fhir.r4.core version: 4.0.1 url: classpath:/hl7.fhir.r4.core.tgz - fhir_extensions: - name: hl7.fhir.uv.extensions.r4 - version: 5.2.0 - url: classpath:/hl7.fhir.uv.extensions.r4#5.2.0.tgz - fhir_terminology: - name: hl7.terminology.r4 - version: 6.3.0 - url: classpath:/hl7.terminology.r4#6.3.0.tgz ch-emed: name: ch.fhir.ig.ch-vacd version: 3.0.0 diff --git a/matchbox-server/with-who/application.yaml b/matchbox-server/with-who/application.yaml index 9443c168102..ed784a14306 100644 --- a/matchbox-server/with-who/application.yaml +++ b/matchbox-server/with-who/application.yaml @@ -9,14 +9,6 @@ hapi: name: hl7.fhir.r4.core version: 4.0.1 url: classpath:/hl7.fhir.r4.core.tgz - fhir_extensions: - name: hl7.fhir.uv.extensions.r4 - version: 5.2.0 - url: classpath:/hl7.fhir.uv.extensions.r4#5.2.0.tgz - fhir_terminology: - name: hl7.terminology.r4 - version: 6.3.0 - url: classpath:/hl7.terminology.r4#6.3.0.tgz fhir_it: name: fhir.worldhealthorganization.smart-ot version: 0.2.1 diff --git a/pom.xml b/pom.xml index 1729e9128a7..56cbdf5960d 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ health.matchbox matchbox - 4.0.15-Infoway + 4.0.16-Infoway pom matchbox An open-source implementation to support testing and implementation of FHIR based solutions and map or @@ -40,7 +40,7 @@ UTF-8 21 - 6.6.5 + 6.7.10 8.0.0 @@ -506,21 +506,6 @@ ${tomcat_embed_version} - - - - - - - - - - - - - - - com.squareup.okhttp3 okhttp diff --git a/udpatecoreversion.md b/udpatecoreversion.md new file mode 100644 index 00000000000..b96a69d0d97 --- /dev/null +++ b/udpatecoreversion.md @@ -0,0 +1,39 @@ +# org.hl7.fhir.core + +matchbox depends on org.hl7.fhir.core. the project is available on [github](https://github.com/hapifhir/org.hl7.fhir.core) and does frequent releases https://github.com/hapifhir/org.hl7.fhir.core/releases which have to be integrated in matchbox. + +matchbox has patched a few classes, that's why an update cannot be done just through referencing mvn. + +the following steps need to be performed: + +## sync the forked project to the latest release https://github.com/hapifhir/org.hl7.fhir.core/releases and checkout branch + +``` +cd ../org.hl7.fhir.core/ +git checkout master +git fetch upstream +git merge upstream/master +git push +``` +check out the latest release e.g + +``` +git checkout -b oe_$(git describe --tags --abbrev=0) +cd ../matchbox +``` + + +## upgrade matchbox to latest version + +1. in all the dependent pom.xml the core version needs to be updated to the latest core version + +2. there is a shell script ./updatehapi.sh which copies from the core directory the files which need to be modified + +``` +./updatehapi.sh +``` + +now all the patches are lost and need to be added again, they are marked with `matchbox patch` + + + diff --git a/updatehapi.sh b/updatehapi.sh index 8cb88996d60..dab45cf521f 100755 --- a/updatehapi.sh +++ b/updatehapi.sh @@ -12,6 +12,7 @@ cp ../org.hl7.fhir.core/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/valid cp ../org.hl7.fhir.core/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/testfactory/TestDataFactory.java matchbox-engine/src/main/java/org/hl7/fhir/r5/testfactory/ cp ../org.hl7.fhir.core/org.hl7.fhir.validation.cli/src/main/java/org/hl7/fhir/validation/cli/param/Params.java matchbox-engine/src/main/java/org/hl7/fhir/validation/cli/param cp ../org.hl7.fhir.core/org.hl7.fhir.validation.cli/src/main/java/org/hl7/fhir/validation/cli/Display.java matchbox-engine/src/main/java/org/hl7/fhir/validation/cli +cp ../org.hl7.fhir.core/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java matchbox-engine/src/main/java/org/hl7/fhir/r5/conformance/profile # cp ../hapi-fhir/hapi-fhir-server/src/main/java/ca/uhn/fhir/rest/server/method/ResourceParameter.java matchbox-server/src/main/java/ca/uhn/fhir/rest/server/method # cp ../hapi-fhir/hapi-fhir-server/src/main/java/ca/uhn/fhir/rest/server/RestfulServerUtils.java matchbox-server/src/main/java/ca/uhn/fhir/rest/server # cp ../hapi-fhir/hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/packages/loader/PackageLoaderSvc.java matchbox-server/src/main/java/ca/uhn/fhir/jpa/packages/loader/