From 01e32a83b63ef6e4f1198bbc78aac5e104c680f5 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Mon, 29 Jan 2024 16:51:25 +0000 Subject: [PATCH 001/136] Retrieve condition (#2) * Create retrieve-condition.md * Update sushi-config.yaml * Update retrieve-condition.md * Add files via upload * Update retrieve-condition.md * Delete input/images/retrieve.drawio.png * Add files via upload * Delete input/images/retrieve.drawio.png * Add files via upload * Update retrieve-condition.md * Delete input/images/retrieve.drawio.png * Add files via upload * Update retrieve-condition.md * Update retrieve-condition.md * Delete input/images/retrievecondition.drawio.png * Add files via upload * Update retrieve-condition.md * Delete input/images/retrievecondition.drawio.png * Add files via upload * Update retrieve-condition.md --- input/images/Retrieve-Condition.drawio.png | Bin 0 -> 61662 bytes input/pagecontent/retrieve-condition.md | 13 +++++++++++++ sushi-config.yaml | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 input/images/Retrieve-Condition.drawio.png create mode 100644 input/pagecontent/retrieve-condition.md diff --git a/input/images/Retrieve-Condition.drawio.png b/input/images/Retrieve-Condition.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..d56cc462743758645bc1a2db552a59f39fdd5fcf GIT binary patch literal 61662 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 literal 0 HcmV?d00001 diff --git a/input/pagecontent/retrieve-condition.md b/input/pagecontent/retrieve-condition.md new file mode 100644 index 0000000..7a3c1ca --- /dev/null +++ b/input/pagecontent/retrieve-condition.md @@ -0,0 +1,13 @@ +### Summary + +

Practioner wishes to read/retrieve RA Record

+ +#### Workflow + +A patient presents to be examined by a practitioner. The Practioner perofrms an examination and retrieve Patient's RA Record. + +##### Condition Retrieved + +
+ Activity created in draw.io! +
Todo diff --git a/sushi-config.yaml b/sushi-config.yaml index 7990930..558d5b1 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -80,7 +80,7 @@ menu: Use Cases: Add Condition(s): add-condition.html Add Adjustment(s): todo.html - Retrieve Condition(s): todo.html + Retrieve Condition(s): retrieve-condition.html Retrieve Adjustment(s): todo.html Remove Condition(s): todo.html Remove Adjustment(s): todo.html From 86fcb6d7542f8317aac7a94546aa84ab78867739 Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Tue, 30 Jan 2024 14:32:17 +0000 Subject: [PATCH 002/136] Feature/add condition (#1) * Updated fsh, updated add guidance * Download fonts in pipeline * removed duplicate instance definitions from fsh * fix example link * fix some validation errors * fix jekll plantuml install * Generate query output in pipeline, change use case structure * Add server examples and data model. * Fix filename of query output in pipeline * Serpate load and query in pipeline. * fix alert icons * Added guidance how to access swagger in docker instance of HAPI server. * change initial interaction to be more generic, i.e. not just condition. * link to server examples * changed cardinatlity as per comments from Marcus, include (same) contained provenance in all RA record resources. --------- Co-authored-by: Declan Kieran --- .github/workflows/publish.yml | 26 ++++- .gitignore | 8 ++ .../includes/_append.fragment-header.html | 1 + .../add-condition-transaction-example-1.fsh | 97 ++++++++++++++++++ .../add-condition-transaction-example-2.fsh | 66 ++++++++++++ .../extensions/Extension-England-DateTime.fsh | 38 ------- .../Extension-England-FlagRemovalReason.fsh | 26 ----- .../Extension-England-OrganisationRole.fsh | 47 --------- .../England-FGMRemovalReason.fsh | 19 ---- .../England-ODSOrganisationRole.fsh | 16 --- .../fsh/terminologies/England-ORDDateTime.fsh | 18 ---- .../valuesets/England-ChildProtectionPlan.fsh | 30 ------ .../valuesets/England-FlagRemovalReason.fsh | 23 ----- .../valuesets/England-OrganisationRole.fsh | 18 ---- input/fsh/valuesets/England-TypedDateTime.fsh | 25 ----- .../condition-recorded-sequence.drawio.png | Bin 78733 -> 81096 bytes ...data-model-contained-provenance.drawio.png | Bin 0 -> 87832 bytes input/pagecontent/add-condition.md | 70 ------------- input/pagecontent/add-ra-record.md | 64 ++++++++++++ input/pagecontent/data-model.md | 9 ++ .../server-example-add-ra-record.md | 45 ++++++++ .../server-example-retrieve-ra-record.md | 53 ++++++++++ .../get-flags-associated-with-patient.md | 1 + ...djustmentsExamples.postman_collection.json | 82 +++++++++++++++ sushi-config.yaml | 14 +-- 25 files changed, 459 insertions(+), 337 deletions(-) create mode 100644 input/fsh/examples/add-condition-transaction-example-1.fsh create mode 100644 input/fsh/examples/add-condition-transaction-example-2.fsh delete mode 100644 input/fsh/extensions/Extension-England-DateTime.fsh delete mode 100644 input/fsh/extensions/Extension-England-FlagRemovalReason.fsh delete mode 100644 input/fsh/extensions/Extension-England-OrganisationRole.fsh delete mode 100644 input/fsh/terminologies/England-FGMRemovalReason.fsh delete mode 100644 input/fsh/terminologies/England-ODSOrganisationRole.fsh delete mode 100644 input/fsh/terminologies/England-ORDDateTime.fsh delete mode 100644 input/fsh/valuesets/England-ChildProtectionPlan.fsh delete mode 100644 input/fsh/valuesets/England-FlagRemovalReason.fsh delete mode 100644 input/fsh/valuesets/England-OrganisationRole.fsh delete mode 100644 input/fsh/valuesets/England-TypedDateTime.fsh create mode 100644 input/images/data-model-contained-provenance.drawio.png delete mode 100644 input/pagecontent/add-condition.md create mode 100644 input/pagecontent/add-ra-record.md create mode 100644 input/pagecontent/data-model.md create mode 100644 input/pagecontent/server-example-add-ra-record.md create mode 100644 input/pagecontent/server-example-retrieve-ra-record.md create mode 100644 input/queries/get-flags-associated-with-patient.md create mode 100644 postman/ReasonableAdjustmentsExamples.postman_collection.json diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 7387509..d3d15b7 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -10,7 +10,7 @@ jobs: steps: - uses: actions/checkout@v3 - + - name: Install Node uses: actions/setup-node@v3 with: @@ -34,9 +34,33 @@ jobs: - name: Install Jekyll run: sudo gem install jekyll jekyll-plantuml + - name: Run FHIR server (TODO - load package from vars and validate - maybe just let the publisher handle that...) + run: docker run -d -p 8080:8080 -e hapi.fhir.daoconfig_client_id_strategy=UUID -e hapi.fhir.client_id_strategy=ANY hapiproject/hapi:latest + + - name: Convert FSH to JSON and set up resources folder in input + run: sushi .; mkdir -p input/resources + + - name: Sleep to give server time to start + run: sleep 90 + + - name: Load add-condition-transaction-example-1 + run: curl -X POST -H "Content-type:application/fhir+json;fhirVersion=4.0" -d @fsh-generated/resources/Bundle-add-condition-transaction-example-1.json http://localhost:8080/fhir; + + - name: Query add-condition-transaction-example-1 + run: sleep 10; curl $(cat input/queries/get-flags-associated-with-patient.md) | jq '.id = "QUERY-OUTPUT--add-condition-transaction-example-1"' > input/resources/QUERY-OUTPUT--add-condition-transaction-example-1.json + + - name: Load add-condition-transaction-example-2 + run: curl -X POST -H "Content-type:application/fhir+json;fhirVersion=4.0" -d @fsh-generated/resources/Bundle-add-condition-transaction-example-2.json http://localhost:8080/fhir; \ + + - name: Query add-condition-transaction-example-2 + run: sleep 10; curl $(cat input/queries/get-flags-associated-with-patient.md) | jq '.id = "QUERY-OUTPUT--add-condition-transaction-example-2"' > input/resources/QUERY-OUTPUT--add-condition-transaction-example-2.json + - name: Build IG run: ./_genonce.sh + - name: Download and unpack font-awesome + run: wget https://fontawesome.com/v4/assets/font-awesome-4.7.0.zip; unzip font-awesome-4.7.0.zip -d output + - name: Publish IG Artefact uses: actions/upload-artifact@v3 with: diff --git a/.gitignore b/.gitignore index 74a9223..f90eb77 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,11 @@ _site/ # Ignore folders generated by Bundler .bundle/ vendor/ +input-cache +node_modules +output +temp +template +font-awesome* +fsh-generated +input/resources/QUERY-OUTPUT* diff --git a/ig-template/package/includes/_append.fragment-header.html b/ig-template/package/includes/_append.fragment-header.html index f533d2e..33ce6b7 100644 --- a/ig-template/package/includes/_append.fragment-header.html +++ b/ig-template/package/includes/_append.fragment-header.html @@ -1,4 +1,5 @@ +
diff --git a/input/fsh/examples/add-condition-transaction-example-1.fsh b/input/fsh/examples/add-condition-transaction-example-1.fsh new file mode 100644 index 0000000..84ad930 --- /dev/null +++ b/input/fsh/examples/add-condition-transaction-example-1.fsh @@ -0,0 +1,97 @@ +Alias: $consentscope = http://terminology.hl7.org/CodeSystem/consentscope +Alias: $RARecord-FlagCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1 +Alias: $sct = https://snomed.info/sct +Alias: $condition-clinical = http://terminology.hl7.org/CodeSystem/condition-clinical +Alias: $CareConnect-ConditionCategory-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1 +Alias: $RARecord-ConditionCode-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1 +Alias: $DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation +Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 +Alias: $RARecord-AdjustmentCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1 + +Instance: add-condition-transaction-example-1 +InstanceOf: Bundle +Usage: #example +* type = #transaction +* entry[0].fullUrl = "urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" +* entry[=].resource = patient-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Patient?identifier=9912003888" +* entry[+].fullUrl = "urn:uuid:959fbc3c-0907-419e-aa3d-ab88f2d90c5e" +* entry[=].resource = consent-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Consent?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" +* entry[+].fullUrl = "urn:uuid:41a84a93-1c95-4162-b13c-1c617509e6e2" +* entry[=].resource = condition-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Condition?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" +* entry[+].fullUrl = "urn:uuid:fba99f70-fe1d-42e2-b77a-916e44b53c19" +* entry[=].resource = master-flag-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" +* entry[+].fullUrl = "urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85" +* entry[=].resource = condition-flag-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85" + +Instance: patient-example-1 +InstanceOf: Patient +Usage: #inline +* identifier.system = "https://fhir.nhs.uk/Id/nhs-number" +* identifier.value = "9912003888" +* active = true +* name.use = #official +* name.family = "Duck" +* name.given = "Donald" +* gender = #male +* birthDate = "1970-01-01" + +Instance: consent-example-1 +InstanceOf: Consent +Usage: #inline +* status = #active +* scope = $consentscope#patient-privacy +* category = $RARecord-FlagCategory-1#NRAF "National Reasonable Adjustments Flag" +* provision.purpose = $sct#370856009 "Limiting access to confidential patient information" +* patient = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) +* policy.authority = "https://www.gov.uk/" +* policy.uri = "https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf" + +Instance: master-flag-example-1 +InstanceOf: Flag +Usage: #inline +* status = #active +* code = $RARecord-FlagCategory-1#NRAF "National Reasonable Adjustments Flag" +* category = $RARecord-FlagCategory-1#NRAF "National Reasonable Adjustments Flag" +* subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) +* contained.resourceType = "Provenance" +* contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" + +Instance: condition-example-1 +InstanceOf: Condition +Usage: #inline +* clinicalStatus = $condition-clinical#active +* category = $CareConnect-ConditionCategory-1#issue "Issue" +* code = $RARecord-ConditionCode-1#5 "Learning or understanding or concentrating" +* subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) + +Instance: condition-flag-example-1 +InstanceOf: Flag +Usage: #inline +* status = #active +* code = $RARecord-AdjustmentCategory-1#001 "Communication support" +* category = $RARecord-FlagCategory-1#NRAF "National Reasonable Adjustments Flag" +* subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) +* contained.resourceType = "Provenance" +* contained.id = "ddb4df1c-d15a-4d02-9346-c034732c5a37" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" diff --git a/input/fsh/examples/add-condition-transaction-example-2.fsh b/input/fsh/examples/add-condition-transaction-example-2.fsh new file mode 100644 index 0000000..ed427f1 --- /dev/null +++ b/input/fsh/examples/add-condition-transaction-example-2.fsh @@ -0,0 +1,66 @@ +Alias: $consentscope = http://terminology.hl7.org/CodeSystem/consentscope +Alias: $RARecord-FlagCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1 +Alias: $sct = https://snomed.info/sct +Alias: $condition-clinical = http://terminology.hl7.org/CodeSystem/condition-clinical +Alias: $CareConnect-ConditionCategory-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1 +Alias: $RARecord-ConditionCode-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1 +Alias: $DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation +Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 +Alias: $RARecord-AdjustmentCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1 + +Instance: add-condition-transaction-example-2 +InstanceOf: Bundle +Usage: #example +* type = #transaction +* entry[0].fullUrl = "urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" +* entry[=].resource = patient-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Patient?identifier=9912003888" +* entry[+].fullUrl = "urn:uuid:959fbc3c-0907-419e-aa3d-ab88f2d90c5e" +* entry[=].resource = consent-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Consent?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" +* entry[+].fullUrl = "urn:uuid:fba99f70-fe1d-42e2-b77a-916e44b53c19" +* entry[=].resource = master-flag-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" +* entry[+].fullUrl = "urn:uuid:41a84a93-1c95-4162-b13c-1c617509e6e2" +* entry[=].resource = condition-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Condition?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" +* entry[+].fullUrl = "urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85" +* entry[=].resource = condition-flag-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85" +* entry[+].fullUrl = "urn:uuid:b19124e9-f742-49b4-9247-5c2d58ac1ef4" +* entry[=].resource = condition-example-2 +* entry[=].request.method = #PUT +* entry[=].request.url = "Condition/b19124e9-f742-49b4-9247-5c2d58ac1ef4" +* entry[+].fullUrl = "urn:uuid:212c1018-f52a-4db7-9bc2-59a88622eb4f" +* entry[=].resource = condition-flag-example-2 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/212c1018-f52a-4db7-9bc2-59a88622eb4f" + +Instance: condition-example-2 +InstanceOf: Condition +Usage: #inline +* clinicalStatus = $condition-clinical#active +* category = $CareConnect-ConditionCategory-1#issue "Issue" +* code = $sct#73618009 "Autistic spectrum disorder with isolated skills" +* subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) + +Instance: condition-flag-example-2 +InstanceOf: Flag +Usage: #inline +* status = #active +* code = $RARecord-AdjustmentCategory-1#001 "Communication support" +* category = $RARecord-FlagCategory-1#NRAF "National Reasonable Adjustments Flag" +* subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) +* contained.resourceType = "Provenance" +* contained.id = "55ac7111-dbd1-42f2-906c-a167b04d47ce" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" diff --git a/input/fsh/extensions/Extension-England-DateTime.fsh b/input/fsh/extensions/Extension-England-DateTime.fsh deleted file mode 100644 index c8ac523..0000000 --- a/input/fsh/extensions/Extension-England-DateTime.fsh +++ /dev/null @@ -1,38 +0,0 @@ -Alias: $England-TypedDateTime = https://fhir.nhs.uk/England/ValueSet/England-TypedDateTime - -Extension: ExtensionEnglandDateTime -Id: Extension-England-DateTime -Title: "Extension England Date Time" -Description: "This supports the exchange of non-clinical business dates and times. The extension date and/or time is carried along with a code to identify the type of date and/or time." -* ^url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-England-DateTime" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2023-10-24" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^purpose = "This extension extends the Encounter, the Communication, the Organization and the OrganizationAffiliation resources to support the exchange of information describing the specific business related date and/or time." -* ^copyright = "Copyright © 2023+ HL7 UK Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^context[0].type = #element -* ^context[=].expression = "Organization" -* ^context[+].type = #element -* ^context[=].expression = "OrganizationAffiliation" -* . ^short = "This supports the exchange of dates and/or times." -* . ^definition = "This supports the exchange of dates and/or times. The extension date and/or time is carried along with a code to identify the type of date and/or time." -* extension contains - type 1..1 and - dateTime 1..1 -* extension[type] ^short = "Code to identify the type of time/date." -* extension[type].value[x] 1.. -* extension[type].value[x] only Coding -* extension[type].value[x] from $England-TypedDateTime (extensible) -* extension[type].value[x] ^short = "A ValueSet to identify the type of business date time." -* extension[type].value[x] ^binding.description = "The type of business date time." -* extension[dateTime] ^short = "The specific business related date and/or time." -* extension[dateTime].value[x] 1.. -* extension[dateTime].value[x] only dateTime -* extension[dateTime].value[x] ^short = "The date and/or time." -* url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-England-DateTime" (exactly) diff --git a/input/fsh/extensions/Extension-England-FlagRemovalReason.fsh b/input/fsh/extensions/Extension-England-FlagRemovalReason.fsh deleted file mode 100644 index 9d4aa69..0000000 --- a/input/fsh/extensions/Extension-England-FlagRemovalReason.fsh +++ /dev/null @@ -1,26 +0,0 @@ -Alias: $England-FlagRemovalReason = https://fhir.nhs.uk/England/ValueSet/England-FlagRemovalReason - -Extension: ExtensionEnglandFlagRemovalReason -Id: Extension-England-FlagRemovalReason -Title: "Extension England Flag Removal Reason" -Description: "An extension used to allow the removal of a Flag and to indicate the reason why the Flag needs removal or has been removed." -* ^url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-England-FlagRemovalReason" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2023-08-18" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 2 -* ^purpose = "The extension extends the Flag resource to support the NHS England requirements for removal of Flags with a stated reason." -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^context.type = #element -* ^context.expression = "Flag" -* url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-England-FlagRemovalReason" (exactly) -* value[x] 1.. -* value[x] only Coding -* value[x] from $England-FlagRemovalReason (required) -* value[x].system 1.. -* value[x].code 1.. diff --git a/input/fsh/extensions/Extension-England-OrganisationRole.fsh b/input/fsh/extensions/Extension-England-OrganisationRole.fsh deleted file mode 100644 index 61210e6..0000000 --- a/input/fsh/extensions/Extension-England-OrganisationRole.fsh +++ /dev/null @@ -1,47 +0,0 @@ -Alias: $England-OrganisationRole = https://fhir.nhs.uk/England/ValueSet/England-OrganisationRole - -Extension: ExtensionEnglandOrganisationRole -Id: Extension-England-OrganisationRole -Title: "Extension England Organisation Role" -Description: "An extension to describe the role of the organisation and whether this is it's primary role." -* ^url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-England-OrganisationRole" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2023-10-18" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^purpose = "This extension extends the Organization resource to support the NHS England requirement for additional information about organisational roles." -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^context.type = #element -* ^context.expression = "Organization" -* . ^short = "An Extension to describe what an Organisation does and whether this is the primary role of the Organisation." -* extension contains - primaryRole 1..1 and - instanceID 1..1 and - code 1..1 and - period 1..* and - active 1..1 -* extension[primaryRole] ^short = "This describes the type of role of the organisation." -* extension[primaryRole] ^definition = "This denotes whether the specific role is primary or non primary. Where the Boolean value is true then this is a primary role. Conversely, if the Boolean value is false then this indicates this is a non primary role." -* extension[primaryRole].value[x] 1.. -* extension[primaryRole].value[x] only boolean -* extension[instanceID] ^short = "Unique ID for each instance of an organisation role (organisation roles can be ended and then the organisation later undertakes same role again)." -* extension[instanceID].value[x] 1.. -* extension[instanceID].value[x] only integer -* extension[code] ^binding.description = "A ValueSet to identify the Organisation Data Service (ODS) role codes" -* extension[code].value[x] from $England-OrganisationRole (extensible) -* extension[code].value[x] 1.. -* extension[code].value[x] only CodeableConcept -* extension[code].value[x].coding.code 1.. -* extension[period] ^short = "Period of the role" -* extension[period].value[x] 1.. -* extension[period].value[x] only Period -* extension[active] ^short = "Roles are either active or inactive" -* extension[active] ^definition = "Where the Boolean value is true, this means that the role is active. Conversely if the Boolean value is false, then this means that the role is inactive." -* extension[active].value[x] 1.. -* extension[active].value[x] only boolean -* url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-England-OrganisationRole" (exactly) diff --git a/input/fsh/terminologies/England-FGMRemovalReason.fsh b/input/fsh/terminologies/England-FGMRemovalReason.fsh deleted file mode 100644 index 6dd43dd..0000000 --- a/input/fsh/terminologies/England-FGMRemovalReason.fsh +++ /dev/null @@ -1,19 +0,0 @@ -CodeSystem: EnglandFGMRemovalReason -Id: England-FGMRemovalReason -Title: "England FGM Removal Reason" -Description: "A set of codes that define the reason a FGM Flag was removed." -* ^url = "https://fhir.nhs.uk/England/CodeSystem/England-FGMRemovalReason" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2023-08-18" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 2 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^caseSensitive = true -* ^content = #complete -* #0 "Added in error - this child does not have a family history of FGM" -* #2 "No longer required - this child has had FGM" diff --git a/input/fsh/terminologies/England-ODSOrganisationRole.fsh b/input/fsh/terminologies/England-ODSOrganisationRole.fsh deleted file mode 100644 index 638cae3..0000000 --- a/input/fsh/terminologies/England-ODSOrganisationRole.fsh +++ /dev/null @@ -1,16 +0,0 @@ -CodeSystem: EnglandODSOrganisationRole -Id: England-ODSOrganisationRole -Title: "England ODS Organisation Role" -Description: "A set of codes that define the role of an organisation using the Organisation Data Service (ODS)." -* ^url = "https://fhir.nhs.uk/England/CodeSystem/England-ODSOrganisationRole" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2023-10-18" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^content = #not-present diff --git a/input/fsh/terminologies/England-ORDDateTime.fsh b/input/fsh/terminologies/England-ORDDateTime.fsh deleted file mode 100644 index d67ac1f..0000000 --- a/input/fsh/terminologies/England-ORDDateTime.fsh +++ /dev/null @@ -1,18 +0,0 @@ -CodeSystem: EnglandORDDateTime -Id: England-ORDDateTime -Title: "England ORD Date Time" -Description: "A set of codes that define the type of Organisation Reference Data (ORD) date and time being recorded, for the Organisation Data Service (ODS)." -* ^url = "https://fhir.nhs.uk/England/CodeSystem/England-ORDDateTime" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2023-10-24" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^caseSensitive = true -* ^content = #complete -* #last-change-date "Last Change Date" "The date and time that the ORD data was last changed" diff --git a/input/fsh/valuesets/England-ChildProtectionPlan.fsh b/input/fsh/valuesets/England-ChildProtectionPlan.fsh deleted file mode 100644 index 8d46f1c..0000000 --- a/input/fsh/valuesets/England-ChildProtectionPlan.fsh +++ /dev/null @@ -1,30 +0,0 @@ -ValueSet: EnglandChildProtectionPlan -Id: England-ChildProtectionPlan -Title: "England Child Protection Plan" -Description: "A set of codes that define the type of Child Protection Plan that is in place. Selected from UK SNOMED CT." -* ^url = "https://fhir.nhs.uk/England/ValueSet/England-ChildProtectionPlan" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2023-08-18" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^expansion.identifier = "6c36caea-57d1-42a7-8621-ae1addc67581" -* ^expansion.timestamp = "2023-09-07T17:36:41+00:00" -* ^expansion.total = 3 -* ^expansion.offset = 0 -* ^expansion.contains[0].system = "http://snomed.info/sct" -* ^expansion.contains[=].code = #342191000000101 -* ^expansion.contains[=].display = "Subject to child protection plan" -* ^expansion.contains[+].system = "http://snomed.info/sct" -* ^expansion.contains[=].code = #764841000000100 -* ^expansion.contains[=].display = "Looked after child" -* ^expansion.contains[+].system = "http://snomed.info/sct" -* ^expansion.contains[=].code = #818901000000100 -* ^expansion.contains[=].display = "Unborn child subject to child protection plan" -* include codes from system SNOMED_CT_INT - where constraint = "(342191000000101 OR 764841000000100 OR 818901000000100)" diff --git a/input/fsh/valuesets/England-FlagRemovalReason.fsh b/input/fsh/valuesets/England-FlagRemovalReason.fsh deleted file mode 100644 index 59e788f..0000000 --- a/input/fsh/valuesets/England-FlagRemovalReason.fsh +++ /dev/null @@ -1,23 +0,0 @@ -ValueSet: EnglandFlagRemovalReason -Id: England-FlagRemovalReason -Title: "England Flag Removal Reason" -Description: "This ValueSet defines the set of codes that can be used to indicate the reason a Flag was removed." -* ^url = "https://fhir.nhs.uk/England/ValueSet/England-FlagRemovalReason" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2023-08-18" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^expansion.timestamp = "2023-08-02T12:00:00+00:00" -* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/England-FGMRemovalReason" -* ^expansion.contains[=].code = #0 -* ^expansion.contains[=].display = "Added in error - this child does not have a family history of FGM" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/England-FGMRemovalReason" -* ^expansion.contains[=].code = #2 -* ^expansion.contains[=].display = "No longer required - this child has had FGM" -* include codes from system https://fhir.nhs.uk/England/CodeSystem/England-FGMRemovalReason|1.0.0 diff --git a/input/fsh/valuesets/England-OrganisationRole.fsh b/input/fsh/valuesets/England-OrganisationRole.fsh deleted file mode 100644 index c2ebc60..0000000 --- a/input/fsh/valuesets/England-OrganisationRole.fsh +++ /dev/null @@ -1,18 +0,0 @@ -Alias: $England-ODSOrganisationRole = https://fhir.nhs.uk/England/CodeSystem/England-ODSOrganisationRole - -ValueSet: EnglandOrganisationRole -Id: England-OrganisationRole -Title: "England Organisation Role" -Description: "This valueset defines the codes used to identify the role of an organisation." -* ^url = "https://fhir.nhs.uk/England/ValueSet/England-OrganisationRole" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2023-10-18" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* include codes from system $England-ODSOrganisationRole \ No newline at end of file diff --git a/input/fsh/valuesets/England-TypedDateTime.fsh b/input/fsh/valuesets/England-TypedDateTime.fsh deleted file mode 100644 index ae2aa99..0000000 --- a/input/fsh/valuesets/England-TypedDateTime.fsh +++ /dev/null @@ -1,25 +0,0 @@ -Alias: $England-ORDDateTime = https://fhir.nhs.uk/England/CodeSystem/England-ORDDateTime - -ValueSet: EnglandTypedDateTime -Id: England-TypedDateTime -Title: "England Typed Date Time" -Description: "This ValueSet defines the set of codes that can be used to describe the type of business date and time being recorded." -* ^url = "https://fhir.nhs.uk/England/ValueSet/England-TypedDateTime" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2023-10-24" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^expansion.identifier = "0782b2cc-5813-434e-bb6c-1cf79f2ca01d" -* ^expansion.timestamp = "2023-10-24T17:45:44+00:00" -* ^expansion.total = 1 -* ^expansion.offset = 0 -* ^expansion.contains.system = "https://fhir.nhs.uk/England/CodeSystem/England-ORDDateTime" -* ^expansion.contains.code = #last-change-date -* ^expansion.contains.display = "Last Change Date" -* include codes from system $England-ORDDateTime diff --git a/input/images/condition-recorded-sequence.drawio.png b/input/images/condition-recorded-sequence.drawio.png index a06f7739daff95c6d4e549f74d2f716a79eb9c3c..ca76e58a06fa95536ff3212f26f07cd35693445e 100644 GIT binary patch literal 81096 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 diff --git a/input/images/data-model-contained-provenance.drawio.png b/input/images/data-model-contained-provenance.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..8bc69deb9333f574d3bc24fe9b3aa68a1a172200 GIT binary patch literal 87832 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 z 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 Olap4KDtTb&_x}JDkK1Gb literal 0 HcmV?d00001 diff --git a/input/pagecontent/add-condition.md b/input/pagecontent/add-condition.md deleted file mode 100644 index c09145b..0000000 --- a/input/pagecontent/add-condition.md +++ /dev/null @@ -1,70 +0,0 @@ - -### Summary - -

Patient wishes to record Consent. Practitioner records Consent information

- -#### Workflow - -##### Draw.io - -
- Activity created in draw.io! -
- -##### PlantUML - -

{% include add-condition.svg %}

- -#### Condition Recorded - -##### Draw.io - -

Pre-condition: Patient details have been retrieved/validated

- -
- Activity created in draw.io! -
- -##### PlantUML - -

{% include record-condition.svg %}

- -#### Example 1 - -[Single Condition POST](StructureDefinition-Extension-England-FlagRemovalReason.html) - -#### Example 2 - -

-This will create all conditions and fail if any one fails. -

- -[Multiple Condition POST - Transaction](StructureDefinition-Extension-England-FlagRemovalReason.html). - -

-This will update (and optionally create) all conditions and fail if any one fails. -

- -[Multiple Condition PUT - Transaction](StructureDefinition-Extension-England-FlagRemovalReason.html) - -

-This will create all conditions and if any fail, individual OperationOutcomes will be returned. -

- -[Multiple Condition POST - Batch](StructureDefinition-Extension-England-FlagRemovalReason.html) - -

-This will update (and optionally create) all conditions and if any fail, individual OperationOutcomes will be returned. -

- -[Multiple Condition PUT - Batch](StructureDefinition-Extension-England-FlagRemovalReason.html) - -

-More information on -

- -### Relevant Documentation - -[Bundles](https://hl7.org/fhir/r4/bundle.html) -[Transactions](https://hl7.org/fhir/r4/http.html#transaction) -[Upsert](https://hl7.org/fhir/r4/http.html#upsert) diff --git a/input/pagecontent/add-ra-record.md b/input/pagecontent/add-ra-record.md new file mode 100644 index 0000000..8380960 --- /dev/null +++ b/input/pagecontent/add-ra-record.md @@ -0,0 +1,64 @@ + +### Summary + +

Patient wishes to record Consent. Practitioner records Consent information

+ +#### Workflow + +

+A patient presents to be examined by a practitioner. The practitioner performs an examination and determines that a condition and/or an adjustment should be recorded. If the patient does not consent, no details are recorded. If the patient consents, then the condition and/or the adjustment is recorded. +

+ +
+ Activity created in draw.io! +
+ +#### Condition Recorded + +

+Pre-condition: Patient details have been retrieved/validated. +

+ +

+The practioner decides to record a condition. This could be done with individual calls to the required endpoints, or can be done in a single transaction Bundle. A transaction Bundle can help with data integrity requirements and also help to reduce required http calls. +

+ +
+ Activity created in draw.io! +
+ +#### Example 1 + +> Pre-condition: A patient has previously had a master flag associated with them, and no adjustment is to be recorded + +[Single Condition POST](todo.html) + +#### Example 2 + +

+The first example given here shows the use of a transaction to add all required resources to add a Consent, a Condition and associated adjustments (Flag) resources for a patient. + +The master Flag and condition Flag (and associated Condition) resources are included and have the Provence resource as contained resources. This example could be modified to include a new condition just by adding the new Condition and Flag resource as this transaction is fully idempotent. The next example will show this. +

+ +[Example Transaction: Add condition resources in a Transaction](Bundle-add-condition-transaction-example-1.html). + +

+NOTE: TODO discuss how provenace could be added after (i.e. not contained), but not in a transaction. If provence needed to be linked to a versioned resource (seems reasonable), this isn't supported https://build.fhir.org/bundle.html#references. Also see https://chat.fhir.org/#narrow/stream/179166-implementers/topic/Provenance.20in.20a.20bundle. Using an etag would work. If the provenance was created after and took the etag of the resource from the response, which should come back for each resource in transaction, the provenance.target could then be set to a versioned url (assuming this was required). Benefits of this would be ability to expand the scope of the provenace. If it really doesn't have a lifetime outside of the resource, contained is probably tidier but definetly less flexible. More discussion here ttps://chat.fhir.org/#narrow/stream/179166-implementers/topic/Transaction.20Bundle.20with.20Provenance/near/402326516. +

+ +

+The second example given here simply adds conditions to the previous transaction resource to demonstrate the ability to add new conditions to the same data structure and reply in an idempotent way. The request entry in the transaction Bundle for the second condition uses the uuid from the fullUrl on the Bundle entry to use in the URL for the PUT method. The first uses the patient uuid as a search parameter for the PUT. A uuid would be the preferred method to construct the uuid for the fullUrl in the Bundle entry, so this should be a reasonable example. This example is just to demonstrate ReSTful capabilities of the FHIR spec. +

+ +[Example Transaction: Additional condition and flag added to previous Transaction](Bundle-add-condition-transaction-example-2.html). + +

+TODO: maybe cover other ways of doing this, all POST's, if-match, X-provenance, batch tranaction etc... +

+ +### Relevant Documentation + +[Bundles](https://hl7.org/fhir/r4/bundle.html) +[Transactions](https://hl7.org/fhir/r4/http.html#transaction) +[Upsert](https://hl7.org/fhir/r4/http.html#upsert) diff --git a/input/pagecontent/data-model.md b/input/pagecontent/data-model.md new file mode 100644 index 0000000..c59546e --- /dev/null +++ b/input/pagecontent/data-model.md @@ -0,0 +1,9 @@ +### Summary + +The RA record is made up of Consent, Condition, Flag and Provenances resources. The Consent, Condition and Flag resources are linked via a Patient resource. The Provenace resource is only scoped to a sinle Flag and has no lifetime outside of the Flag (specific version) resource. + +### Data Model + +
+ RA Record Data Model +
diff --git a/input/pagecontent/server-example-add-ra-record.md b/input/pagecontent/server-example-add-ra-record.md new file mode 100644 index 0000000..f534f67 --- /dev/null +++ b/input/pagecontent/server-example-add-ra-record.md @@ -0,0 +1,45 @@ +### Summary + +The [HAPI FHIR Starter Server](https://github.com/hapifhir/hapi-fhir-jpaserver-starter) is used to demostrate some basic REST capabilities in FHIR using examples within this implementation guide. + +#### Docker invocation of the HAPI Starter Project + +This command starts the server on port 8080 and use UUID (as opposed to sequential numbers) for resource ID's. + +``` +docker run -p 8080:8080 -e hapi.fhir.daoconfig_client_id_strategy=UUID -e hapi.fhir.client_id_strategy=ANY hapiproject/hapi:latest +``` + +To pull the latest image, run + +``` +docker pull hapiproject/hapi:latest +``` + +#### Swagger + +The HAPI starter project provides an OAS interface to the supported FHIR API. Assuming the above docker command is used, this would be available at + +``` +http://localhost:8080/fhir/swagger-ui/index.html +``` + +#### CI Build + +These examples are loaded into a running FHIR server during the IG build. Some resources (queries) are dynamically generated and added to the IG at build time. (TODO add a list of dynamically generated resources somewhere). + +### Examples + +The examples here describe the API options related to the workflow given in the use case [Add RA Record](add-ra-record.html#workflow). + +#### Example 1 + +TODO + +#### Example 2 + +The first [example transaction](Bundle-add-condition-transaction-example-1.html) adds an RA record consisting of a Consent resource from the patient, a master Flag resource (is this really needed?), a Condition resource and an associated condition Flag resource using a transaction Bundle, which provides atomicity as well as more network efficent call. Each Flag resource has a Provenance resource embedded in it. (TODO maybe a futher discussion section somewhere on options for provenance, i.e. linking to versions, _history and transaction considerations, options to use etag or X-provenance). + +The second [example transaction](Bundle-add-condition-transaction-example-1.html) simply modifies the first transaction by adding additional resources for another Condition and adjustment (Flag). The transactions are using PUT's and as FHIR does defined (upsert)[https://hl7.org/fhir/http.html#upsert] as an option, and the HAPI Starter Server has implemented this, this example has been constructed to demostrate this. + +Details of querying the resulting data from these transaction is given in the [Retrieve RA Record](server-example-add-ra-record.html) server example. \ No newline at end of file diff --git a/input/pagecontent/server-example-retrieve-ra-record.md b/input/pagecontent/server-example-retrieve-ra-record.md new file mode 100644 index 0000000..06f6ed2 --- /dev/null +++ b/input/pagecontent/server-example-retrieve-ra-record.md @@ -0,0 +1,53 @@ +### Summary + +The [HAPI FHIR Starter Server](https://github.com/hapifhir/hapi-fhir-jpaserver-starter) is used to demostrate some basic REST capabilities in FHIR using examples within this implementation guide. + +#### Docker invocation of the HAPI Starter Project + +This command starts the server on port 8080 and use UUID (as opposed to sequential numbers) for resource ID's. + +``` +docker run -p 8080:8080 -e hapi.fhir.daoconfig_client_id_strategy=UUID -e hapi.fhir.client_id_strategy=ANY hapiproject/hapi:latest +``` + +To pull the latest image, run + +``` +docker pull hapiproject/hapi:latest +``` + +#### Swagger + +The HAPI starter project provides an OAS interface to the supported FHIR API. Assuming the above docker command is used, this would be available at + +``` +http://localhost:8080/fhir/swagger-ui/index.html +``` + +#### CI Build + +These examples are loaded into a running FHIR server during the IG build. Some resources (queries) are dynamically generated and added to the IG at build time. (TODO add a list of dynamically generated resources somewhere). + +### Examples + +The examples here describe search options for the workflow given in [Retrieve RA Record](todo.html). This follows on from the data entered in the workflow given in the use case [Add RA Record](add-ra-record.html#workflow). + +#### Example 1 + +Based on the example transaction Bundles given in the use case [Add RA Record](add-ra-record.html#workflow), for each transaction, the following query will performed (dynamically during the IG build) + +``` +/Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient +``` + +This query will return the Patient resource using the patients NHS number (TODO will be profiled to check for this, reference this later). The assocaited resources that make up the RA are also returned, which are all using default Patient SearchParameters define in the base specification for each resource. + +For the [first transaction example](Bundle-add-condition-transaction-example-1.html), this is the [output of the query](Bundle-QUERY-OUTPUT--add-condition-transaction-example-1.html). + +For the [second transaction example](Bundle-add-condition-transaction-example-2.html), where a Condition and adjustment (Flag) is added, this is the [output of the query](Bundle-QUERY-OUTPUT--add-condition-transaction-example-2.html). + +See the [Data Model](data-model.html) for details on the relationships between the resources. + +#### Example # + +TODO? \ No newline at end of file diff --git a/input/queries/get-flags-associated-with-patient.md b/input/queries/get-flags-associated-with-patient.md new file mode 100644 index 0000000..43b564b --- /dev/null +++ b/input/queries/get-flags-associated-with-patient.md @@ -0,0 +1 @@ +http://localhost:8080/fhir/Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient \ No newline at end of file diff --git a/postman/ReasonableAdjustmentsExamples.postman_collection.json b/postman/ReasonableAdjustmentsExamples.postman_collection.json new file mode 100644 index 0000000..6f00fb2 --- /dev/null +++ b/postman/ReasonableAdjustmentsExamples.postman_collection.json @@ -0,0 +1,82 @@ +{ + "info": { + "_postman_id": "adb3f331-e89f-4548-b96b-b781a41eba64", + "name": "ReasonableAdjustmentsExamples", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "32605342" + }, + "item": [ + { + "name": "Add examples", + "item": [ + { + "name": "New RA record - Single transaction - Provenance contained", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"resourceType\": \"Bundle\",\n \"id\": \"add-condition-transaction-example-1\",\n \"type\": \"transaction\",\n \"entry\": [\n {\n \"fullUrl\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"id\": \"patient-example-1\",\n \"identifier\": [\n {\n \"system\": \"https://fhir.nhs.uk/Id/nhs-number\",\n \"value\": \"9912003888\"\n }\n ],\n \"active\": true,\n \"name\": [\n {\n \"use\": \"official\",\n \"family\": \"Duck\",\n \"given\": [\n \"Donald\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"birthDate\": \"1970-01-01\"\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Patient?identifier=9912003888\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:959fbc3c-0907-419e-aa3d-ab88f2d90c5e\",\n \"resource\": {\n \"resourceType\": \"Consent\",\n \"id\": \"consent-example-1\",\n \"status\": \"active\",\n \"scope\": {\n \"coding\": [\n {\n \"code\": \"patient-privacy\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/consentscope\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"provision\": {\n \"purpose\": [\n {\n \"code\": \"370856009\",\n \"system\": \"https://snomed.info/sct\",\n \"display\": \"Limiting access to confidential patient information\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"policy\": [\n {\n \"authority\": \"https://www.gov.uk/\",\n \"uri\": \"https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf\"\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Consent?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:41a84a93-1c95-4162-b13c-1c617509e6e2\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"condition-example-1\",\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"code\": \"active\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"issue\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1\",\n \"display\": \"Issue\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"code\": \"5\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1\",\n \"display\": \"Learning or understanding or concentrating\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Condition?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:fba99f70-fe1d-42e2-b77a-916e44b53c19\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"master-flag-example-1\",\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://hl7.org/fhir/v3/DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"condition-flag-example-1\",\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"001\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1\",\n \"display\": \"Communication support\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://hl7.org/fhir/v3/DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85\"\n }\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:8080/fhir", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "fhir" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Query examples", + "item": [ + { + "name": "Get Flags associated with Patient", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:8080/fhir/Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "fhir", + "Patient" + ], + "query": [ + { + "key": "identifier", + "value": "9912003888" + }, + { + "key": "_revinclude", + "value": "Consent:patient" + }, + { + "key": "_revinclude", + "value": "Flag:patient" + } + ] + } + }, + "response": [] + } + ] + } + ] +} \ No newline at end of file diff --git a/sushi-config.yaml b/sushi-config.yaml index 558d5b1..ead1e9f 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -77,13 +77,15 @@ publisher: menu: Home: index.html Sitemap: toc.html + Data Model: data-model.html Use Cases: - Add Condition(s): add-condition.html - Add Adjustment(s): todo.html - Retrieve Condition(s): retrieve-condition.html - Retrieve Adjustment(s): todo.html - Remove Condition(s): todo.html - Remove Adjustment(s): todo.html + Add RA Record: add-ra-record.html + Retrieve RA Record: todo.html + Remove RA Record: todo.html + Server Examples: + Add RA Record: server-example-add-ra-record.html + Retrieve RA Record: server-example-retrieve-ra-record.html + Remove RA Record: todo.html Artifacts: artifacts.html Contact Us: todo.html Downloads: todo.html From a36d225d5f2a7387f116b78bb1ceefc0df7f3d31 Mon Sep 17 00:00:00 2001 From: Declan Kieran Date: Tue, 30 Jan 2024 20:57:45 +0000 Subject: [PATCH 003/136] fix sushi yaml merge conflict --- sushi-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sushi-config.yaml b/sushi-config.yaml index ead1e9f..b6a6b6a 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -80,7 +80,7 @@ menu: Data Model: data-model.html Use Cases: Add RA Record: add-ra-record.html - Retrieve RA Record: todo.html + Retrieve RA Record: retrieve-condition.html Remove RA Record: todo.html Server Examples: Add RA Record: server-example-add-ra-record.html From 0ab24e67131e4cbebc3ba22e33e82f1e8526c694 Mon Sep 17 00:00:00 2001 From: Declan Kieran Date: Wed, 31 Jan 2024 00:19:59 +0000 Subject: [PATCH 004/136] script the generation of the examples/queries --- .github/workflows/publish.yml | 13 +----- .../add-condition-transaction-example-1.md | 1 + .../add-condition-transaction-example-2.md | 1 + .../get-flags-associated-with-patient.md | 1 - scripts/run-examples.sh | 40 +++++++++++++++++++ 5 files changed, 44 insertions(+), 12 deletions(-) create mode 100644 input/queries/add-condition-transaction-example-1.md create mode 100644 input/queries/add-condition-transaction-example-2.md delete mode 100644 input/queries/get-flags-associated-with-patient.md create mode 100755 scripts/run-examples.sh diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d3d15b7..a54283b 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -43,17 +43,8 @@ jobs: - name: Sleep to give server time to start run: sleep 90 - - name: Load add-condition-transaction-example-1 - run: curl -X POST -H "Content-type:application/fhir+json;fhirVersion=4.0" -d @fsh-generated/resources/Bundle-add-condition-transaction-example-1.json http://localhost:8080/fhir; - - - name: Query add-condition-transaction-example-1 - run: sleep 10; curl $(cat input/queries/get-flags-associated-with-patient.md) | jq '.id = "QUERY-OUTPUT--add-condition-transaction-example-1"' > input/resources/QUERY-OUTPUT--add-condition-transaction-example-1.json - - - name: Load add-condition-transaction-example-2 - run: curl -X POST -H "Content-type:application/fhir+json;fhirVersion=4.0" -d @fsh-generated/resources/Bundle-add-condition-transaction-example-2.json http://localhost:8080/fhir; \ - - - name: Query add-condition-transaction-example-2 - run: sleep 10; curl $(cat input/queries/get-flags-associated-with-patient.md) | jq '.id = "QUERY-OUTPUT--add-condition-transaction-example-2"' > input/resources/QUERY-OUTPUT--add-condition-transaction-example-2.json + - name: Load examples and run queries to be added to IG + run: ./scripts/run-examples.sh - name: Build IG run: ./_genonce.sh diff --git a/input/queries/add-condition-transaction-example-1.md b/input/queries/add-condition-transaction-example-1.md new file mode 100644 index 0000000..0108957 --- /dev/null +++ b/input/queries/add-condition-transaction-example-1.md @@ -0,0 +1 @@ +Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient diff --git a/input/queries/add-condition-transaction-example-2.md b/input/queries/add-condition-transaction-example-2.md new file mode 100644 index 0000000..0108957 --- /dev/null +++ b/input/queries/add-condition-transaction-example-2.md @@ -0,0 +1 @@ +Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient diff --git a/input/queries/get-flags-associated-with-patient.md b/input/queries/get-flags-associated-with-patient.md deleted file mode 100644 index 43b564b..0000000 --- a/input/queries/get-flags-associated-with-patient.md +++ /dev/null @@ -1 +0,0 @@ -http://localhost:8080/fhir/Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient \ No newline at end of file diff --git a/scripts/run-examples.sh b/scripts/run-examples.sh new file mode 100755 index 0000000..01c45e9 --- /dev/null +++ b/scripts/run-examples.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +# TODO The order of the examples may be important depending on the queries. Would there be a tidy way of chaining them and makes the depedancies +# clear, explicit and useful in the guidance? +# Probably makes more sense just to describe the queries and add output in statically, rather trying to combine integrations testing +# into the build of the IG. See if it serves as a useful example... + +SERVER_BASE="http://localhost:8080/fhir/" +HEADERS="Content-type:application/fhir+json;fhirVersion=4.0" + +# TODO - Make the script runnable from any path +SCRIPT_ROOT=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ); + +for EXAMPLE in ./input/fsh/examples/*; do + + # Get the filename from the path + EXAMPLE=$(echo $EXAMPLE | awk -F '/' '{print $5}'); + + # This relies on SUSHI having been ran to generate JSON representations of the resources. + GENERATED=$(echo ./fsh-generated/resources/*${EXAMPLE%.*}*); + + # Sushi will prepend the name of the Resource, which will be used in the server calls. + RESOURCE_NAME=$(echo $GENERATED | awk -F '/' '{print $4}' | awk -F '-' '{print $1}'); + + # Assumption here that Bundle examples will be transactions, guessing it'll fail if not... + # Set RESOURCE_NAME to empty string so post is made to the base server url. + if [ "$RESOURCE_NAME" == "Bundle" ]; then + RESOURCE_NAME="" + fi; + + # Post the resource + curl -X POST -H $HEADERS -d @${GENERATED} $SERVER_BASE$RESOURCE_NAME; + + # Filename of query (minus extension) must match the filename of the example posted. + QUERY=$(cat ./input/queries/${EXAMPLE%.*}*); + + # Run corresponding query, change the ID of the bundle to something readable and output to resources in input to be included in IG build + curl $SERVER_BASE$QUERY | jq '.id = "QUERY-OUTPUT--'${EXAMPLE%.*}'"' > ./input/resources/QUERY-OUTPUT--${EXAMPLE%.*}.json + +done; \ No newline at end of file From 923e5f9a9f093b18d927848fdf88f1a8cdae4f42 Mon Sep 17 00:00:00 2001 From: Declan Kieran Date: Wed, 31 Jan 2024 09:50:24 +0000 Subject: [PATCH 005/136] explicit ordering in id and naming conventions --- ...ample-1.fsh => 0001-add-condition-transaction-example.1.fsh} | 2 +- ...ample-2.fsh => 0002-add-condition-transaction-example.2.fsh} | 2 +- ...example-1.md => 0001-add-condition-transaction-example.1.md} | 0 ...example-2.md => 0002-add-condition-transaction-example.2.md} | 0 scripts/run-examples.sh | 2 +- 5 files changed, 3 insertions(+), 3 deletions(-) rename input/fsh/examples/{add-condition-transaction-example-1.fsh => 0001-add-condition-transaction-example.1.fsh} (98%) rename input/fsh/examples/{add-condition-transaction-example-2.fsh => 0002-add-condition-transaction-example.2.fsh} (98%) rename input/queries/{add-condition-transaction-example-1.md => 0001-add-condition-transaction-example.1.md} (100%) rename input/queries/{add-condition-transaction-example-2.md => 0002-add-condition-transaction-example.2.md} (100%) diff --git a/input/fsh/examples/add-condition-transaction-example-1.fsh b/input/fsh/examples/0001-add-condition-transaction-example.1.fsh similarity index 98% rename from input/fsh/examples/add-condition-transaction-example-1.fsh rename to input/fsh/examples/0001-add-condition-transaction-example.1.fsh index 84ad930..a210650 100644 --- a/input/fsh/examples/add-condition-transaction-example-1.fsh +++ b/input/fsh/examples/0001-add-condition-transaction-example.1.fsh @@ -8,7 +8,7 @@ Alias: $DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 Alias: $RARecord-AdjustmentCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1 -Instance: add-condition-transaction-example-1 +Instance: 0001-add-condition-transaction-example.1 InstanceOf: Bundle Usage: #example * type = #transaction diff --git a/input/fsh/examples/add-condition-transaction-example-2.fsh b/input/fsh/examples/0002-add-condition-transaction-example.2.fsh similarity index 98% rename from input/fsh/examples/add-condition-transaction-example-2.fsh rename to input/fsh/examples/0002-add-condition-transaction-example.2.fsh index ed427f1..f96190a 100644 --- a/input/fsh/examples/add-condition-transaction-example-2.fsh +++ b/input/fsh/examples/0002-add-condition-transaction-example.2.fsh @@ -8,7 +8,7 @@ Alias: $DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 Alias: $RARecord-AdjustmentCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1 -Instance: add-condition-transaction-example-2 +Instance: 0002-add-condition-transaction-example.2 InstanceOf: Bundle Usage: #example * type = #transaction diff --git a/input/queries/add-condition-transaction-example-1.md b/input/queries/0001-add-condition-transaction-example.1.md similarity index 100% rename from input/queries/add-condition-transaction-example-1.md rename to input/queries/0001-add-condition-transaction-example.1.md diff --git a/input/queries/add-condition-transaction-example-2.md b/input/queries/0002-add-condition-transaction-example.2.md similarity index 100% rename from input/queries/add-condition-transaction-example-2.md rename to input/queries/0002-add-condition-transaction-example.2.md diff --git a/scripts/run-examples.sh b/scripts/run-examples.sh index 01c45e9..1769513 100755 --- a/scripts/run-examples.sh +++ b/scripts/run-examples.sh @@ -14,7 +14,7 @@ SCRIPT_ROOT=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ); for EXAMPLE in ./input/fsh/examples/*; do # Get the filename from the path - EXAMPLE=$(echo $EXAMPLE | awk -F '/' '{print $5}'); + EXAMPLE=$(echo $EXAMPLE | awk -F '/' '{print $5}' | awk -F '.' '{print $1}'); # This relies on SUSHI having been ran to generate JSON representations of the resources. GENERATED=$(echo ./fsh-generated/resources/*${EXAMPLE%.*}*); From 15faf9e86d904409ecb4db41ef3bcaad65af9eb5 Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Wed, 31 Jan 2024 11:34:26 +0000 Subject: [PATCH 006/136] fix sushi yaml merge conflict (#3) Co-authored-by: Declan Kieran --- sushi-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sushi-config.yaml b/sushi-config.yaml index ead1e9f..b6a6b6a 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -80,7 +80,7 @@ menu: Data Model: data-model.html Use Cases: Add RA Record: add-ra-record.html - Retrieve RA Record: todo.html + Retrieve RA Record: retrieve-condition.html Remove RA Record: todo.html Server Examples: Add RA Record: server-example-add-ra-record.html From 82eae64d9541687ec33e10c799b09aa8750fc251 Mon Sep 17 00:00:00 2001 From: Declan Kieran Date: Wed, 31 Jan 2024 12:17:55 +0000 Subject: [PATCH 007/136] tidy up naming convention --- ...0001-add-condition-transaction-example.fsh} | 2 +- ...0002-add-condition-transaction-example.fsh} | 2 +- ...0002-add-condition-transaction-example.1.md | 1 + ...0002-add-condition-transaction-example.2.md | 2 +- scripts/run-examples.sh | 18 +++++++++++------- 5 files changed, 15 insertions(+), 10 deletions(-) rename input/fsh/examples/{0001-add-condition-transaction-example.1.fsh => 0001-add-condition-transaction-example.fsh} (98%) rename input/fsh/examples/{0002-add-condition-transaction-example.2.fsh => 0002-add-condition-transaction-example.fsh} (98%) create mode 100644 input/queries/0002-add-condition-transaction-example.1.md diff --git a/input/fsh/examples/0001-add-condition-transaction-example.1.fsh b/input/fsh/examples/0001-add-condition-transaction-example.fsh similarity index 98% rename from input/fsh/examples/0001-add-condition-transaction-example.1.fsh rename to input/fsh/examples/0001-add-condition-transaction-example.fsh index a210650..f00cfc8 100644 --- a/input/fsh/examples/0001-add-condition-transaction-example.1.fsh +++ b/input/fsh/examples/0001-add-condition-transaction-example.fsh @@ -8,7 +8,7 @@ Alias: $DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 Alias: $RARecord-AdjustmentCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1 -Instance: 0001-add-condition-transaction-example.1 +Instance: 0001-add-condition-transaction-example InstanceOf: Bundle Usage: #example * type = #transaction diff --git a/input/fsh/examples/0002-add-condition-transaction-example.2.fsh b/input/fsh/examples/0002-add-condition-transaction-example.fsh similarity index 98% rename from input/fsh/examples/0002-add-condition-transaction-example.2.fsh rename to input/fsh/examples/0002-add-condition-transaction-example.fsh index f96190a..96e0ba6 100644 --- a/input/fsh/examples/0002-add-condition-transaction-example.2.fsh +++ b/input/fsh/examples/0002-add-condition-transaction-example.fsh @@ -8,7 +8,7 @@ Alias: $DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 Alias: $RARecord-AdjustmentCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1 -Instance: 0002-add-condition-transaction-example.2 +Instance: 0002-add-condition-transaction-example InstanceOf: Bundle Usage: #example * type = #transaction diff --git a/input/queries/0002-add-condition-transaction-example.1.md b/input/queries/0002-add-condition-transaction-example.1.md new file mode 100644 index 0000000..0108957 --- /dev/null +++ b/input/queries/0002-add-condition-transaction-example.1.md @@ -0,0 +1 @@ +Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient diff --git a/input/queries/0002-add-condition-transaction-example.2.md b/input/queries/0002-add-condition-transaction-example.2.md index 0108957..b294a31 100644 --- a/input/queries/0002-add-condition-transaction-example.2.md +++ b/input/queries/0002-add-condition-transaction-example.2.md @@ -1 +1 @@ -Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient +Patient?identifier=9912003888&_revinclude=Consent:patient diff --git a/scripts/run-examples.sh b/scripts/run-examples.sh index 1769513..b68bc46 100755 --- a/scripts/run-examples.sh +++ b/scripts/run-examples.sh @@ -1,7 +1,6 @@ #!/bin/bash -# TODO The order of the examples may be important depending on the queries. Would there be a tidy way of chaining them and makes the depedancies -# clear, explicit and useful in the guidance? +# TODO Document how to organise the examples and queries in the IG # Probably makes more sense just to describe the queries and add output in statically, rather trying to combine integrations testing # into the build of the IG. See if it serves as a useful example... @@ -17,7 +16,7 @@ for EXAMPLE in ./input/fsh/examples/*; do EXAMPLE=$(echo $EXAMPLE | awk -F '/' '{print $5}' | awk -F '.' '{print $1}'); # This relies on SUSHI having been ran to generate JSON representations of the resources. - GENERATED=$(echo ./fsh-generated/resources/*${EXAMPLE%.*}*); + GENERATED=$(echo ./fsh-generated/resources/*$EXAMPLE*); # Sushi will prepend the name of the Resource, which will be used in the server calls. RESOURCE_NAME=$(echo $GENERATED | awk -F '/' '{print $4}' | awk -F '-' '{print $1}'); @@ -31,10 +30,15 @@ for EXAMPLE in ./input/fsh/examples/*; do # Post the resource curl -X POST -H $HEADERS -d @${GENERATED} $SERVER_BASE$RESOURCE_NAME; - # Filename of query (minus extension) must match the filename of the example posted. - QUERY=$(cat ./input/queries/${EXAMPLE%.*}*); + for QUERY_FILE in ./input/queries/$EXAMPLE*; do + # Filename of query (minus extension) must match the filename of the example posted. + QUERY=$(cat ${QUERY_FILE%.*}*); - # Run corresponding query, change the ID of the bundle to something readable and output to resources in input to be included in IG build - curl $SERVER_BASE$QUERY | jq '.id = "QUERY-OUTPUT--'${EXAMPLE%.*}'"' > ./input/resources/QUERY-OUTPUT--${EXAMPLE%.*}.json + # Strip the path + QUERY_FILE=$(echo $QUERY_FILE | awk -F '/' '{print $4}'); + + # Run corresponding query, change the ID of the bundle to something readable and output to resources in input to be included in IG build + curl $SERVER_BASE$QUERY | jq '.id = "QUERY-OUTPUT--'${QUERY_FILE%.*}'"' > ./input/resources/QUERY-OUTPUT--${QUERY_FILE%.*}.json + done; done; \ No newline at end of file From fc79fab87f0120b67034823bd9d4ba3c5a845c1c Mon Sep 17 00:00:00 2001 From: Declan Kieran Date: Wed, 31 Jan 2024 12:38:23 +0000 Subject: [PATCH 008/136] Add a chained GET query for example 0002 --- input/queries/0002-add-condition-transaction-example.2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/queries/0002-add-condition-transaction-example.2.md b/input/queries/0002-add-condition-transaction-example.2.md index b294a31..6d74c1b 100644 --- a/input/queries/0002-add-condition-transaction-example.2.md +++ b/input/queries/0002-add-condition-transaction-example.2.md @@ -1 +1 @@ -Patient?identifier=9912003888&_revinclude=Consent:patient +Flag?patient:Patient.identifier=9912003888 \ No newline at end of file From 9ea2e50cdd43cbbd54483e8b6a9d9d111793703b Mon Sep 17 00:00:00 2001 From: Declan Kieran Date: Wed, 31 Jan 2024 13:11:00 +0000 Subject: [PATCH 009/136] move creation of resources folder from pipeline to script --- .github/workflows/publish.yml | 2 +- scripts/run-examples.sh | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index a54283b..982998e 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -38,7 +38,7 @@ jobs: run: docker run -d -p 8080:8080 -e hapi.fhir.daoconfig_client_id_strategy=UUID -e hapi.fhir.client_id_strategy=ANY hapiproject/hapi:latest - name: Convert FSH to JSON and set up resources folder in input - run: sushi .; mkdir -p input/resources + run: sushi . - name: Sleep to give server time to start run: sleep 90 diff --git a/scripts/run-examples.sh b/scripts/run-examples.sh index b68bc46..19bcacb 100755 --- a/scripts/run-examples.sh +++ b/scripts/run-examples.sh @@ -10,6 +10,9 @@ HEADERS="Content-type:application/fhir+json;fhirVersion=4.0" # TODO - Make the script runnable from any path SCRIPT_ROOT=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ); +# Make resources folder if it doesn't already exist +mkdir -p ./input/resources + for EXAMPLE in ./input/fsh/examples/*; do # Get the filename from the path From 01586e1908fe8b65872df949ce4695dfccfdab8d Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Wed, 31 Jan 2024 14:13:43 +0000 Subject: [PATCH 010/136] Feature/automate examples (#4) * fix sushi yaml merge conflict * script the generation of the examples/queries * explicit ordering in id and naming conventions * tidy up naming convention * Add a chained GET query for example 0002 * move creation of resources folder from pipeline to script --------- Co-authored-by: Declan Kieran --- .github/workflows/publish.yml | 15 ++---- ...001-add-condition-transaction-example.fsh} | 2 +- ...002-add-condition-transaction-example.fsh} | 2 +- ...001-add-condition-transaction-example.1.md | 1 + ...002-add-condition-transaction-example.1.md | 1 + ...002-add-condition-transaction-example.2.md | 1 + .../get-flags-associated-with-patient.md | 1 - scripts/run-examples.sh | 47 +++++++++++++++++++ 8 files changed, 55 insertions(+), 15 deletions(-) rename input/fsh/examples/{add-condition-transaction-example-1.fsh => 0001-add-condition-transaction-example.fsh} (98%) rename input/fsh/examples/{add-condition-transaction-example-2.fsh => 0002-add-condition-transaction-example.fsh} (98%) create mode 100644 input/queries/0001-add-condition-transaction-example.1.md create mode 100644 input/queries/0002-add-condition-transaction-example.1.md create mode 100644 input/queries/0002-add-condition-transaction-example.2.md delete mode 100644 input/queries/get-flags-associated-with-patient.md create mode 100755 scripts/run-examples.sh diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d3d15b7..982998e 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -38,22 +38,13 @@ jobs: run: docker run -d -p 8080:8080 -e hapi.fhir.daoconfig_client_id_strategy=UUID -e hapi.fhir.client_id_strategy=ANY hapiproject/hapi:latest - name: Convert FSH to JSON and set up resources folder in input - run: sushi .; mkdir -p input/resources + run: sushi . - name: Sleep to give server time to start run: sleep 90 - - name: Load add-condition-transaction-example-1 - run: curl -X POST -H "Content-type:application/fhir+json;fhirVersion=4.0" -d @fsh-generated/resources/Bundle-add-condition-transaction-example-1.json http://localhost:8080/fhir; - - - name: Query add-condition-transaction-example-1 - run: sleep 10; curl $(cat input/queries/get-flags-associated-with-patient.md) | jq '.id = "QUERY-OUTPUT--add-condition-transaction-example-1"' > input/resources/QUERY-OUTPUT--add-condition-transaction-example-1.json - - - name: Load add-condition-transaction-example-2 - run: curl -X POST -H "Content-type:application/fhir+json;fhirVersion=4.0" -d @fsh-generated/resources/Bundle-add-condition-transaction-example-2.json http://localhost:8080/fhir; \ - - - name: Query add-condition-transaction-example-2 - run: sleep 10; curl $(cat input/queries/get-flags-associated-with-patient.md) | jq '.id = "QUERY-OUTPUT--add-condition-transaction-example-2"' > input/resources/QUERY-OUTPUT--add-condition-transaction-example-2.json + - name: Load examples and run queries to be added to IG + run: ./scripts/run-examples.sh - name: Build IG run: ./_genonce.sh diff --git a/input/fsh/examples/add-condition-transaction-example-1.fsh b/input/fsh/examples/0001-add-condition-transaction-example.fsh similarity index 98% rename from input/fsh/examples/add-condition-transaction-example-1.fsh rename to input/fsh/examples/0001-add-condition-transaction-example.fsh index 84ad930..f00cfc8 100644 --- a/input/fsh/examples/add-condition-transaction-example-1.fsh +++ b/input/fsh/examples/0001-add-condition-transaction-example.fsh @@ -8,7 +8,7 @@ Alias: $DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 Alias: $RARecord-AdjustmentCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1 -Instance: add-condition-transaction-example-1 +Instance: 0001-add-condition-transaction-example InstanceOf: Bundle Usage: #example * type = #transaction diff --git a/input/fsh/examples/add-condition-transaction-example-2.fsh b/input/fsh/examples/0002-add-condition-transaction-example.fsh similarity index 98% rename from input/fsh/examples/add-condition-transaction-example-2.fsh rename to input/fsh/examples/0002-add-condition-transaction-example.fsh index ed427f1..96e0ba6 100644 --- a/input/fsh/examples/add-condition-transaction-example-2.fsh +++ b/input/fsh/examples/0002-add-condition-transaction-example.fsh @@ -8,7 +8,7 @@ Alias: $DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 Alias: $RARecord-AdjustmentCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1 -Instance: add-condition-transaction-example-2 +Instance: 0002-add-condition-transaction-example InstanceOf: Bundle Usage: #example * type = #transaction diff --git a/input/queries/0001-add-condition-transaction-example.1.md b/input/queries/0001-add-condition-transaction-example.1.md new file mode 100644 index 0000000..0108957 --- /dev/null +++ b/input/queries/0001-add-condition-transaction-example.1.md @@ -0,0 +1 @@ +Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient diff --git a/input/queries/0002-add-condition-transaction-example.1.md b/input/queries/0002-add-condition-transaction-example.1.md new file mode 100644 index 0000000..0108957 --- /dev/null +++ b/input/queries/0002-add-condition-transaction-example.1.md @@ -0,0 +1 @@ +Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient diff --git a/input/queries/0002-add-condition-transaction-example.2.md b/input/queries/0002-add-condition-transaction-example.2.md new file mode 100644 index 0000000..6d74c1b --- /dev/null +++ b/input/queries/0002-add-condition-transaction-example.2.md @@ -0,0 +1 @@ +Flag?patient:Patient.identifier=9912003888 \ No newline at end of file diff --git a/input/queries/get-flags-associated-with-patient.md b/input/queries/get-flags-associated-with-patient.md deleted file mode 100644 index 43b564b..0000000 --- a/input/queries/get-flags-associated-with-patient.md +++ /dev/null @@ -1 +0,0 @@ -http://localhost:8080/fhir/Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient \ No newline at end of file diff --git a/scripts/run-examples.sh b/scripts/run-examples.sh new file mode 100755 index 0000000..19bcacb --- /dev/null +++ b/scripts/run-examples.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +# TODO Document how to organise the examples and queries in the IG +# Probably makes more sense just to describe the queries and add output in statically, rather trying to combine integrations testing +# into the build of the IG. See if it serves as a useful example... + +SERVER_BASE="http://localhost:8080/fhir/" +HEADERS="Content-type:application/fhir+json;fhirVersion=4.0" + +# TODO - Make the script runnable from any path +SCRIPT_ROOT=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ); + +# Make resources folder if it doesn't already exist +mkdir -p ./input/resources + +for EXAMPLE in ./input/fsh/examples/*; do + + # Get the filename from the path + EXAMPLE=$(echo $EXAMPLE | awk -F '/' '{print $5}' | awk -F '.' '{print $1}'); + + # This relies on SUSHI having been ran to generate JSON representations of the resources. + GENERATED=$(echo ./fsh-generated/resources/*$EXAMPLE*); + + # Sushi will prepend the name of the Resource, which will be used in the server calls. + RESOURCE_NAME=$(echo $GENERATED | awk -F '/' '{print $4}' | awk -F '-' '{print $1}'); + + # Assumption here that Bundle examples will be transactions, guessing it'll fail if not... + # Set RESOURCE_NAME to empty string so post is made to the base server url. + if [ "$RESOURCE_NAME" == "Bundle" ]; then + RESOURCE_NAME="" + fi; + + # Post the resource + curl -X POST -H $HEADERS -d @${GENERATED} $SERVER_BASE$RESOURCE_NAME; + + for QUERY_FILE in ./input/queries/$EXAMPLE*; do + # Filename of query (minus extension) must match the filename of the example posted. + QUERY=$(cat ${QUERY_FILE%.*}*); + + # Strip the path + QUERY_FILE=$(echo $QUERY_FILE | awk -F '/' '{print $4}'); + + # Run corresponding query, change the ID of the bundle to something readable and output to resources in input to be included in IG build + curl $SERVER_BASE$QUERY | jq '.id = "QUERY-OUTPUT--'${QUERY_FILE%.*}'"' > ./input/resources/QUERY-OUTPUT--${QUERY_FILE%.*}.json + done; + +done; \ No newline at end of file From 7835f86f744d5ab34f1e27d881f05e2358028002 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 31 Jan 2024 14:41:56 +0000 Subject: [PATCH 011/136] Add files via upload --- input/images/retrieve-condition1.drawio.png | Bin 0 -> 49370 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 input/images/retrieve-condition1.drawio.png diff --git a/input/images/retrieve-condition1.drawio.png b/input/images/retrieve-condition1.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..b1ffdc257b324cce8292be496767f5694c83615c GIT binary patch literal 49370 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 literal 0 HcmV?d00001 From 6576298c1a7b41cee8b8c9c5fe0092b47b753d44 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 31 Jan 2024 14:43:24 +0000 Subject: [PATCH 012/136] Update retrieve-condition.md --- input/pagecontent/retrieve-condition.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/input/pagecontent/retrieve-condition.md b/input/pagecontent/retrieve-condition.md index 7a3c1ca..88d8b75 100644 --- a/input/pagecontent/retrieve-condition.md +++ b/input/pagecontent/retrieve-condition.md @@ -3,8 +3,13 @@

Practioner wishes to read/retrieve RA Record

#### Workflow - +

A patient presents to be examined by a practitioner. The Practioner perofrms an examination and retrieve Patient's RA Record. +

+ +
+ Activity created in draw.io! +
##### Condition Retrieved From a0e0325ed3c51669ee213b03d80c4e1949d7f86a Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 31 Jan 2024 14:52:05 +0000 Subject: [PATCH 013/136] Update retrieve-condition.md --- input/pagecontent/retrieve-condition.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/input/pagecontent/retrieve-condition.md b/input/pagecontent/retrieve-condition.md index 88d8b75..a9f0f84 100644 --- a/input/pagecontent/retrieve-condition.md +++ b/input/pagecontent/retrieve-condition.md @@ -15,4 +15,22 @@ A patient presents to be examined by a practitioner. The Practioner perofrms an
Activity created in draw.io! -
Todo +
+ +#### Example + +Examples to retrieve RA Record : + +Based on the example transaction Bundles given in the use case [Add RA Record](add-ra-record.html#workflow), for each transaction, the following query will performed (dynamically during the IG build) + +``` +/Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient +``` + +This query will return the Patient resource using the patients NHS number (TODO will be profiled to check for this, reference this later). The assocaited resources that make up the RA are also returned, which are all using default Patient SearchParameters define in the base specification for each resource. + +For the [first transaction example](Bundle-add-condition-transaction-example-1.html), this is the [output of the query](Bundle-QUERY-OUTPUT--add-condition-transaction-example-1.html). + +For the [second transaction example](Bundle-add-condition-transaction-example-2.html), where a Condition and adjustment (Flag) is added, this is the [output of the query](Bundle-QUERY-OUTPUT--add-condition-transaction-example-2.html). + +See the [Data Model](data-model.html) for details on the relationships between the resources. From c1f5129adb018c508ae672c4a8f9faa13712a79d Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 31 Jan 2024 16:51:10 +0000 Subject: [PATCH 014/136] Update retrieve-condition.md --- input/pagecontent/retrieve-condition.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/input/pagecontent/retrieve-condition.md b/input/pagecontent/retrieve-condition.md index a9f0f84..4a7de5b 100644 --- a/input/pagecontent/retrieve-condition.md +++ b/input/pagecontent/retrieve-condition.md @@ -29,8 +29,8 @@ Based on the example transaction Bundles given in the use case [Add RA Record](a This query will return the Patient resource using the patients NHS number (TODO will be profiled to check for this, reference this later). The assocaited resources that make up the RA are also returned, which are all using default Patient SearchParameters define in the base specification for each resource. -For the [first transaction example](Bundle-add-condition-transaction-example-1.html), this is the [output of the query](Bundle-QUERY-OUTPUT--add-condition-transaction-example-1.html). +For the [first transaction example](Bundle-add-condition-transaction-example-1.html), this is the [output of the query](Bundle-QUERY-OUTPUT--0001-add-condition-transaction-example-1.html). -For the [second transaction example](Bundle-add-condition-transaction-example-2.html), where a Condition and adjustment (Flag) is added, this is the [output of the query](Bundle-QUERY-OUTPUT--add-condition-transaction-example-2.html). +For the [second transaction example](Bundle-add-condition-transaction-example-2.html), where a Condition and adjustment (Flag) is added, this is the [output of the query](Bundle-QUERY-OUTPUT--0002-add-condition-transaction-example-2.html). See the [Data Model](data-model.html) for details on the relationships between the resources. From 0c121655621a863ffdacd269a7a92433a81c47ad Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 31 Jan 2024 17:31:11 +0000 Subject: [PATCH 015/136] Update retrieve-condition.md --- input/pagecontent/retrieve-condition.md | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/input/pagecontent/retrieve-condition.md b/input/pagecontent/retrieve-condition.md index 4a7de5b..e57b4b6 100644 --- a/input/pagecontent/retrieve-condition.md +++ b/input/pagecontent/retrieve-condition.md @@ -18,19 +18,3 @@ A patient presents to be examined by a practitioner. The Practioner perofrms an #### Example - -Examples to retrieve RA Record : - -Based on the example transaction Bundles given in the use case [Add RA Record](add-ra-record.html#workflow), for each transaction, the following query will performed (dynamically during the IG build) - -``` -/Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient -``` - -This query will return the Patient resource using the patients NHS number (TODO will be profiled to check for this, reference this later). The assocaited resources that make up the RA are also returned, which are all using default Patient SearchParameters define in the base specification for each resource. - -For the [first transaction example](Bundle-add-condition-transaction-example-1.html), this is the [output of the query](Bundle-QUERY-OUTPUT--0001-add-condition-transaction-example-1.html). - -For the [second transaction example](Bundle-add-condition-transaction-example-2.html), where a Condition and adjustment (Flag) is added, this is the [output of the query](Bundle-QUERY-OUTPUT--0002-add-condition-transaction-example-2.html). - -See the [Data Model](data-model.html) for details on the relationships between the resources. From 17b77955f8963feecda85bddb4ac48f6c7cf6ed7 Mon Sep 17 00:00:00 2001 From: Declan Kieran Date: Wed, 31 Jan 2024 19:53:11 +0000 Subject: [PATCH 016/136] fix broken page references --- input/pagecontent/add-ra-record.md | 4 ++-- input/pagecontent/server-example-add-ra-record.md | 4 ++-- input/pagecontent/server-example-retrieve-ra-record.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/input/pagecontent/add-ra-record.md b/input/pagecontent/add-ra-record.md index 8380960..6f5462c 100644 --- a/input/pagecontent/add-ra-record.md +++ b/input/pagecontent/add-ra-record.md @@ -41,7 +41,7 @@ The practioner decides to record a condition. This could be done with individua The master Flag and condition Flag (and associated Condition) resources are included and have the Provence resource as contained resources. This example could be modified to include a new condition just by adding the new Condition and Flag resource as this transaction is fully idempotent. The next example will show this.

-[Example Transaction: Add condition resources in a Transaction](Bundle-add-condition-transaction-example-1.html). +[Example Transaction: Add condition resources in a Transaction](Bundle-0001-add-condition-transaction-example.html).

NOTE: TODO discuss how provenace could be added after (i.e. not contained), but not in a transaction. If provence needed to be linked to a versioned resource (seems reasonable), this isn't supported https://build.fhir.org/bundle.html#references. Also see https://chat.fhir.org/#narrow/stream/179166-implementers/topic/Provenance.20in.20a.20bundle. Using an etag would work. If the provenance was created after and took the etag of the resource from the response, which should come back for each resource in transaction, the provenance.target could then be set to a versioned url (assuming this was required). Benefits of this would be ability to expand the scope of the provenace. If it really doesn't have a lifetime outside of the resource, contained is probably tidier but definetly less flexible. More discussion here ttps://chat.fhir.org/#narrow/stream/179166-implementers/topic/Transaction.20Bundle.20with.20Provenance/near/402326516. @@ -51,7 +51,7 @@ The master Flag and condition Flag (and associated Condition) resources are incl The second example given here simply adds conditions to the previous transaction resource to demonstrate the ability to add new conditions to the same data structure and reply in an idempotent way. The request entry in the transaction Bundle for the second condition uses the uuid from the fullUrl on the Bundle entry to use in the URL for the PUT method. The first uses the patient uuid as a search parameter for the PUT. A uuid would be the preferred method to construct the uuid for the fullUrl in the Bundle entry, so this should be a reasonable example. This example is just to demonstrate ReSTful capabilities of the FHIR spec.

-[Example Transaction: Additional condition and flag added to previous Transaction](Bundle-add-condition-transaction-example-2.html). +[Example Transaction: Additional condition and flag added to previous Transaction](Bundle-0001-add-condition-transaction-example.html).

TODO: maybe cover other ways of doing this, all POST's, if-match, X-provenance, batch tranaction etc... diff --git a/input/pagecontent/server-example-add-ra-record.md b/input/pagecontent/server-example-add-ra-record.md index f534f67..1f5b7bf 100644 --- a/input/pagecontent/server-example-add-ra-record.md +++ b/input/pagecontent/server-example-add-ra-record.md @@ -38,8 +38,8 @@ TODO #### Example 2 -The first [example transaction](Bundle-add-condition-transaction-example-1.html) adds an RA record consisting of a Consent resource from the patient, a master Flag resource (is this really needed?), a Condition resource and an associated condition Flag resource using a transaction Bundle, which provides atomicity as well as more network efficent call. Each Flag resource has a Provenance resource embedded in it. (TODO maybe a futher discussion section somewhere on options for provenance, i.e. linking to versions, _history and transaction considerations, options to use etag or X-provenance). +The first [example transaction](Bundle-0001-add-condition-transaction-example.html) adds an RA record consisting of a Consent resource from the patient, a master Flag resource (is this really needed?), a Condition resource and an associated condition Flag resource using a transaction Bundle, which provides atomicity as well as more network efficent call. Each Flag resource has a Provenance resource embedded in it. (TODO maybe a futher discussion section somewhere on options for provenance, i.e. linking to versions, _history and transaction considerations, options to use etag or X-provenance). -The second [example transaction](Bundle-add-condition-transaction-example-1.html) simply modifies the first transaction by adding additional resources for another Condition and adjustment (Flag). The transactions are using PUT's and as FHIR does defined (upsert)[https://hl7.org/fhir/http.html#upsert] as an option, and the HAPI Starter Server has implemented this, this example has been constructed to demostrate this. +The second [example transaction](Bundle-0002-add-condition-transaction-example.html) simply modifies the first transaction by adding additional resources for another Condition and adjustment (Flag). The transactions are using PUT's and as FHIR does defined (upsert)[https://hl7.org/fhir/http.html#upsert] as an option, and the HAPI Starter Server has implemented this, this example has been constructed to demostrate this. Details of querying the resulting data from these transaction is given in the [Retrieve RA Record](server-example-add-ra-record.html) server example. \ No newline at end of file diff --git a/input/pagecontent/server-example-retrieve-ra-record.md b/input/pagecontent/server-example-retrieve-ra-record.md index 06f6ed2..fe24b7d 100644 --- a/input/pagecontent/server-example-retrieve-ra-record.md +++ b/input/pagecontent/server-example-retrieve-ra-record.md @@ -42,9 +42,9 @@ Based on the example transaction Bundles given in the use case [Add RA Record](a This query will return the Patient resource using the patients NHS number (TODO will be profiled to check for this, reference this later). The assocaited resources that make up the RA are also returned, which are all using default Patient SearchParameters define in the base specification for each resource. -For the [first transaction example](Bundle-add-condition-transaction-example-1.html), this is the [output of the query](Bundle-QUERY-OUTPUT--add-condition-transaction-example-1.html). +For the [first transaction example](Bundle-0001-add-condition-transaction-example.html), this is the [output of the query](Bundle-QUERY-OUTPUT--0001-add-condition-transaction-example.1.html). -For the [second transaction example](Bundle-add-condition-transaction-example-2.html), where a Condition and adjustment (Flag) is added, this is the [output of the query](Bundle-QUERY-OUTPUT--add-condition-transaction-example-2.html). +For the [second transaction example](Bundle-0002-add-condition-transaction-example.html), where a Condition and adjustment (Flag) is added, this is the [output of the query](Bundle-QUERY-OUTPUT--0002-add-condition-transaction-example.2.html). See the [Data Model](data-model.html) for details on the relationships between the resources. From c776b811d3089b20f62338a66a3eda7bb702ec0b Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Wed, 31 Jan 2024 20:03:52 +0000 Subject: [PATCH 017/136] Feature/automate examples (#5) * fix sushi yaml merge conflict * script the generation of the examples/queries * explicit ordering in id and naming conventions * tidy up naming convention * Add a chained GET query for example 0002 * move creation of resources folder from pipeline to script * fix broken page references --------- Co-authored-by: Declan Kieran --- input/pagecontent/add-ra-record.md | 4 ++-- input/pagecontent/server-example-add-ra-record.md | 4 ++-- input/pagecontent/server-example-retrieve-ra-record.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/input/pagecontent/add-ra-record.md b/input/pagecontent/add-ra-record.md index 8380960..6f5462c 100644 --- a/input/pagecontent/add-ra-record.md +++ b/input/pagecontent/add-ra-record.md @@ -41,7 +41,7 @@ The practioner decides to record a condition. This could be done with individua The master Flag and condition Flag (and associated Condition) resources are included and have the Provence resource as contained resources. This example could be modified to include a new condition just by adding the new Condition and Flag resource as this transaction is fully idempotent. The next example will show this.

-[Example Transaction: Add condition resources in a Transaction](Bundle-add-condition-transaction-example-1.html). +[Example Transaction: Add condition resources in a Transaction](Bundle-0001-add-condition-transaction-example.html).

NOTE: TODO discuss how provenace could be added after (i.e. not contained), but not in a transaction. If provence needed to be linked to a versioned resource (seems reasonable), this isn't supported https://build.fhir.org/bundle.html#references. Also see https://chat.fhir.org/#narrow/stream/179166-implementers/topic/Provenance.20in.20a.20bundle. Using an etag would work. If the provenance was created after and took the etag of the resource from the response, which should come back for each resource in transaction, the provenance.target could then be set to a versioned url (assuming this was required). Benefits of this would be ability to expand the scope of the provenace. If it really doesn't have a lifetime outside of the resource, contained is probably tidier but definetly less flexible. More discussion here ttps://chat.fhir.org/#narrow/stream/179166-implementers/topic/Transaction.20Bundle.20with.20Provenance/near/402326516. @@ -51,7 +51,7 @@ The master Flag and condition Flag (and associated Condition) resources are incl The second example given here simply adds conditions to the previous transaction resource to demonstrate the ability to add new conditions to the same data structure and reply in an idempotent way. The request entry in the transaction Bundle for the second condition uses the uuid from the fullUrl on the Bundle entry to use in the URL for the PUT method. The first uses the patient uuid as a search parameter for the PUT. A uuid would be the preferred method to construct the uuid for the fullUrl in the Bundle entry, so this should be a reasonable example. This example is just to demonstrate ReSTful capabilities of the FHIR spec.

-[Example Transaction: Additional condition and flag added to previous Transaction](Bundle-add-condition-transaction-example-2.html). +[Example Transaction: Additional condition and flag added to previous Transaction](Bundle-0001-add-condition-transaction-example.html).

TODO: maybe cover other ways of doing this, all POST's, if-match, X-provenance, batch tranaction etc... diff --git a/input/pagecontent/server-example-add-ra-record.md b/input/pagecontent/server-example-add-ra-record.md index f534f67..1f5b7bf 100644 --- a/input/pagecontent/server-example-add-ra-record.md +++ b/input/pagecontent/server-example-add-ra-record.md @@ -38,8 +38,8 @@ TODO #### Example 2 -The first [example transaction](Bundle-add-condition-transaction-example-1.html) adds an RA record consisting of a Consent resource from the patient, a master Flag resource (is this really needed?), a Condition resource and an associated condition Flag resource using a transaction Bundle, which provides atomicity as well as more network efficent call. Each Flag resource has a Provenance resource embedded in it. (TODO maybe a futher discussion section somewhere on options for provenance, i.e. linking to versions, _history and transaction considerations, options to use etag or X-provenance). +The first [example transaction](Bundle-0001-add-condition-transaction-example.html) adds an RA record consisting of a Consent resource from the patient, a master Flag resource (is this really needed?), a Condition resource and an associated condition Flag resource using a transaction Bundle, which provides atomicity as well as more network efficent call. Each Flag resource has a Provenance resource embedded in it. (TODO maybe a futher discussion section somewhere on options for provenance, i.e. linking to versions, _history and transaction considerations, options to use etag or X-provenance). -The second [example transaction](Bundle-add-condition-transaction-example-1.html) simply modifies the first transaction by adding additional resources for another Condition and adjustment (Flag). The transactions are using PUT's and as FHIR does defined (upsert)[https://hl7.org/fhir/http.html#upsert] as an option, and the HAPI Starter Server has implemented this, this example has been constructed to demostrate this. +The second [example transaction](Bundle-0002-add-condition-transaction-example.html) simply modifies the first transaction by adding additional resources for another Condition and adjustment (Flag). The transactions are using PUT's and as FHIR does defined (upsert)[https://hl7.org/fhir/http.html#upsert] as an option, and the HAPI Starter Server has implemented this, this example has been constructed to demostrate this. Details of querying the resulting data from these transaction is given in the [Retrieve RA Record](server-example-add-ra-record.html) server example. \ No newline at end of file diff --git a/input/pagecontent/server-example-retrieve-ra-record.md b/input/pagecontent/server-example-retrieve-ra-record.md index 06f6ed2..fe24b7d 100644 --- a/input/pagecontent/server-example-retrieve-ra-record.md +++ b/input/pagecontent/server-example-retrieve-ra-record.md @@ -42,9 +42,9 @@ Based on the example transaction Bundles given in the use case [Add RA Record](a This query will return the Patient resource using the patients NHS number (TODO will be profiled to check for this, reference this later). The assocaited resources that make up the RA are also returned, which are all using default Patient SearchParameters define in the base specification for each resource. -For the [first transaction example](Bundle-add-condition-transaction-example-1.html), this is the [output of the query](Bundle-QUERY-OUTPUT--add-condition-transaction-example-1.html). +For the [first transaction example](Bundle-0001-add-condition-transaction-example.html), this is the [output of the query](Bundle-QUERY-OUTPUT--0001-add-condition-transaction-example.1.html). -For the [second transaction example](Bundle-add-condition-transaction-example-2.html), where a Condition and adjustment (Flag) is added, this is the [output of the query](Bundle-QUERY-OUTPUT--add-condition-transaction-example-2.html). +For the [second transaction example](Bundle-0002-add-condition-transaction-example.html), where a Condition and adjustment (Flag) is added, this is the [output of the query](Bundle-QUERY-OUTPUT--0002-add-condition-transaction-example.2.html). See the [Data Model](data-model.html) for details on the relationships between the resources. From 45b2ab77540da5558c027529254601425029a997 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 31 Jan 2024 21:25:48 +0000 Subject: [PATCH 018/136] Update retrieve-condition.md --- input/pagecontent/retrieve-condition.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/input/pagecontent/retrieve-condition.md b/input/pagecontent/retrieve-condition.md index e57b4b6..c873700 100644 --- a/input/pagecontent/retrieve-condition.md +++ b/input/pagecontent/retrieve-condition.md @@ -18,3 +18,19 @@ A patient presents to be examined by a practitioner. The Practioner perofrms an #### Example + +Below Listed some example of the retrieval of RA Record : + +Based on the example transaction Bundles given in the use case [Add RA Record](add-ra-record.html#workflow), for each transaction, the following query will performed (dynamically during the IG build) + +``` +/Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient +``` + +This query will return the Patient resource using the patients NHS number (TODO will be profiled to check for this, reference this later). The assocaited resources that make up the RA are also returned, which are all using default Patient SearchParameters define in the base specification for each resource. + +For the [first transaction example](Bundle-0001-add-condition-transaction-example.html), this is the [output of the query](Bundle-QUERY-OUTPUT--0001-add-condition-transaction-example.1.html). + +For the [second transaction example](Bundle-0002-add-condition-transaction-example.html), where a Condition and adjustment (Flag) is added, this is the [output of the query](Bundle-QUERY-OUTPUT--0002-add-condition-transaction-example.2.html). + +See the [Data Model](data-model.html) for details on the relationships between the resources. From 3e3aec47091a1b101aabf7233800d7c3feafb934 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 31 Jan 2024 21:44:48 +0000 Subject: [PATCH 019/136] Update retrieve-condition.md --- input/pagecontent/retrieve-condition.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/pagecontent/retrieve-condition.md b/input/pagecontent/retrieve-condition.md index c873700..b91d52f 100644 --- a/input/pagecontent/retrieve-condition.md +++ b/input/pagecontent/retrieve-condition.md @@ -27,7 +27,7 @@ Based on the example transaction Bundles given in the use case [Add RA Record](a /Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient ``` -This query will return the Patient resource using the patients NHS number (TODO will be profiled to check for this, reference this later). The assocaited resources that make up the RA are also returned, which are all using default Patient SearchParameters define in the base specification for each resource. +This query will return the Patient resource using the patients NHS number. The assocaited resources that make up the RA are also returned, which are all using default Patient SearchParameters define in the base specification for each resource. For the [first transaction example](Bundle-0001-add-condition-transaction-example.html), this is the [output of the query](Bundle-QUERY-OUTPUT--0001-add-condition-transaction-example.1.html). From 6c637fb13b10575479dbb794e95cf53409921f3b Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 12:34:58 +0000 Subject: [PATCH 020/136] Update sushi-config.yaml --- sushi-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sushi-config.yaml b/sushi-config.yaml index b6a6b6a..84c4a6a 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -81,7 +81,7 @@ menu: Use Cases: Add RA Record: add-ra-record.html Retrieve RA Record: retrieve-condition.html - Remove RA Record: todo.html + Remove RA Record: remove-ra-record.html Server Examples: Add RA Record: server-example-add-ra-record.html Retrieve RA Record: server-example-retrieve-ra-record.html From 5ece34e125d8670963995f69c23ab9dab7610676 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 12:35:52 +0000 Subject: [PATCH 021/136] Create remove-ra-record --- input/pagecontent/remove-ra-record | 1 + 1 file changed, 1 insertion(+) create mode 100644 input/pagecontent/remove-ra-record diff --git a/input/pagecontent/remove-ra-record b/input/pagecontent/remove-ra-record new file mode 100644 index 0000000..6365d69 --- /dev/null +++ b/input/pagecontent/remove-ra-record @@ -0,0 +1 @@ +#### From a49a2d1bf713ca3e72cecfecf0d61c02a406239f Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 12:44:05 +0000 Subject: [PATCH 022/136] Update remove-ra-record --- input/pagecontent/remove-ra-record | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/input/pagecontent/remove-ra-record b/input/pagecontent/remove-ra-record index 6365d69..9f5981e 100644 --- a/input/pagecontent/remove-ra-record +++ b/input/pagecontent/remove-ra-record @@ -1 +1,16 @@ -#### +### Summary + +

Practioner wishes to remove an entire RA Record

+ +#### Workflow +

+A patient presents to be examined by a practitioner. The Practioner perofrms an examination and retrieve Patient's RA Record.After that , Practitioner make a request to remove RA Record as it's no longer needed and inactivates all Reasonable Adjustment resources for Patient. +

+ +
+ Activity created in draw.io! +
+ +##### Condition Retrieved + + From a12c713df8cd36da010101036fbb6c3dbcb440ec Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 12:44:24 +0000 Subject: [PATCH 023/136] Add files via upload --- input/images/Remove-RA.drawio.png | Bin 0 -> 34776 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 input/images/Remove-RA.drawio.png diff --git a/input/images/Remove-RA.drawio.png b/input/images/Remove-RA.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..299a4b37d6c683a32914a127e7cde1484a4ebe31 GIT binary patch literal 34776 zcmeEu2RPMz|FER2j7Um~hRWW1XK#^}(7`dX_a<3I(Xxez5*Z=;SjpZygk;a`?fw2Z zN8R1edH&D;ec%6ez0Z3+uKPZn^Bdps+4K8ISy74rj{*+^1A{$r5f4E`j?NR)(fVrf|c9XV_TSI2c*j7+F|vv9i&yi?Z*3urRT4 zvfVy-9%c-;L=LE6`xr1y@9^t25?btF72qlWk^~KlD7X#% z$1aA1GWcN$11sK#zA^wDBXV3*B(!DZYHW*|2RSWtLDke1wMXQ8#tx>2a69B^ z2XES2S()3LTL1N;ft95t+yIGsEZ2T`zKo?a125ac5 zhN+>w$-%QcY}^NHfv!u#O^r=ZGqZB>9^A2jp&mx=#Lff;$nW6&{Y$@Ni!ObCHqu_{~2awl)|J_4q*dFrF|H*LN(vGZLT>5sZoTlt>V?%Lq z69q@ceNqH83Nv>=QJpQ!z~0mzP%NP1eX6jtcR^9Pos+4BIm{9~dc(xZ*3{L?(jI0G zzy~p{lZmN4T-6$801e~>C=Ytb-U7PKy3fcEg;~RXZ3ekNz#sN-6m3E?{&OJz0<{zz zFt@#}3m6vpIu{Z?NV;a@MgDgBjY?3&Z}J<3u(2Q?gdr)@_;6@w(f3_vJK%fd4jr{^7b%1oM9n zX*_>L8vEaI#tNYTLd5SlL*e@W9h9;1{8u=$h1)p5?d&0(*;|1RTeyXlBc!noF$e@P zJ3BAH7W9k?q#sn^20*8PFJPlUt^h3mEa7kn;s2h5z==XLl70Vu zDFL;S-?;a0IDuOlibA>&h(`l+n4O)e!C&R&FXn}WE8N-CUK1%vq3>GYI|~yh@{Twp z|4@&KL*Rpc98CGU#QkR+Z4a|G1{U7FV*ZEEp~xF<_!sT`&&3@C39uF*^nR1pzlmec zf56$OYqoH6AlLwZ{BA7#BX<8+mhfvK%2uY3tVHRIL)nj{IxbcK)_n#-O=V~0U~2$J zzV@%_gM-=7&dJHj#>BUZ%yrv1P%^jvgm0FnfC-m>^99d_Ra$EcOkH19fF+YG>eJ z2i*jgz2Ux%cres&7UD0l^?%RiIHaQgF{1-zO#CL9{#}d?j=y13R9WV4X!-ZzE{=a^ z_CjipeMOV1^*9CHxSA(7qc?AItW0p8^Yi`Mvz%yXK!m|2LJ62mjMr4 z-{@br5m-@F_J5B9|FrhFkZ}7qWI<%~2RsEf^N$Teq$2q*El1>Y|DPF-9H^iH z(rn{EDUtsDTT>8Q z+K=QOGSC5YaqPS2``iW%2V%+x!~YW&+kg1aArC~v@7~$J%y-B*!+*(ltVogi{~6

x|tn3wcgFU$BnqA?T~#Y}h? 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 Date: Thu, 1 Feb 2024 12:45:58 +0000 Subject: [PATCH 024/136] Update remove-ra-record --- input/pagecontent/remove-ra-record | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/input/pagecontent/remove-ra-record b/input/pagecontent/remove-ra-record index 9f5981e..f6429c6 100644 --- a/input/pagecontent/remove-ra-record +++ b/input/pagecontent/remove-ra-record @@ -1,4 +1,4 @@ -### Summary +###~ Summary

Practioner wishes to remove an entire RA Record

@@ -11,6 +11,6 @@ A patient presents to be examined by a practitioner. The Practioner perofrms an Activity created in draw.io! -##### Condition Retrieved +#### Condition Retrieved From ecc756b9543d9a3b41a47c73cbd57a93e3f28a0d Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 12:46:45 +0000 Subject: [PATCH 025/136] Delete input/pagecontent/remove-ra-record --- input/pagecontent/remove-ra-record | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 input/pagecontent/remove-ra-record diff --git a/input/pagecontent/remove-ra-record b/input/pagecontent/remove-ra-record deleted file mode 100644 index f6429c6..0000000 --- a/input/pagecontent/remove-ra-record +++ /dev/null @@ -1,16 +0,0 @@ -###~ Summary - -

Practioner wishes to remove an entire RA Record

- -#### Workflow -

-A patient presents to be examined by a practitioner. The Practioner perofrms an examination and retrieve Patient's RA Record.After that , Practitioner make a request to remove RA Record as it's no longer needed and inactivates all Reasonable Adjustment resources for Patient. -

- -
- Activity created in draw.io! -
- -#### Condition Retrieved - - From 558b1f3e93ae697d175617aaf7f266697b913ae9 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 12:47:10 +0000 Subject: [PATCH 026/136] Create remove-ra-record.md --- input/pagecontent/remove-ra-record.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 input/pagecontent/remove-ra-record.md diff --git a/input/pagecontent/remove-ra-record.md b/input/pagecontent/remove-ra-record.md new file mode 100644 index 0000000..611de05 --- /dev/null +++ b/input/pagecontent/remove-ra-record.md @@ -0,0 +1,14 @@ +###~ Summary + +

Practioner wishes to remove an entire RA Record

+ +#### Workflow +

+A patient presents to be examined by a practitioner. The Practioner perofrms an examination and retrieve Patient's RA Record.After that , Practitioner make a request to remove RA Record as it's no longer needed and inactivates all Reasonable Adjustment resources for Patient. +

+ +
+ Activity created in draw.io! +
+ +#### Condition Retrieved From d66e019e56805fb832697cb09d64bbf7086d3b59 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 12:47:29 +0000 Subject: [PATCH 027/136] Update remove-ra-record.md --- input/pagecontent/remove-ra-record.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/pagecontent/remove-ra-record.md b/input/pagecontent/remove-ra-record.md index 611de05..7141490 100644 --- a/input/pagecontent/remove-ra-record.md +++ b/input/pagecontent/remove-ra-record.md @@ -1,4 +1,4 @@ -###~ Summary +#### Summary

Practioner wishes to remove an entire RA Record

From ed1f9cf6d55d845bc0b9520199f79d6cd37838a1 Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Thu, 1 Feb 2024 13:35:31 +0000 Subject: [PATCH 028/136] Feature/postman page (#6) * all examples in one page, added more queries * fixed links * add flag detail extension examples * do extension in different branch * update server examples --------- Co-authored-by: Declan Kieran --- .../package/content/assets/postman/.index.db | Bin 0 -> 12288 bytes .../content/assets/postman/.index.json | 4 + .../assets/postman/postman_collection.json | 340 ++++++++++++++++++ .../0000-flag-category-searchparameter.fsh | 13 + .../0000-flag-code-searchparameter.fsh | 13 + ...0001-add-condition-transaction-example.fsh | 24 +- ...0002-add-condition-transaction-example.fsh | 19 +- ...awio.png => retrieve-condition.drawio.png} | Bin input/pagecontent/add-ra-record.md | 4 +- ...eve-condition.md => retrieve-ra-record.md} | 4 +- .../server-example-add-ra-record.md | 45 --- .../server-example-retrieve-ra-record.md | 53 --- input/pagecontent/server-examples.md | 157 ++++++++ .../queries/DELETE-0008-delete-flag-by-id.md | 1 + input/queries/READ-0001-get-all-flags.md | 1 + .../queries/READ-0002-get-flag-by-category.md | 1 + ...READ-0003-get-flag-by-category-and-code.md | 1 + ...djustmentsExamples.postman_collection.json | 82 ----- scripts/run-examples.sh | 29 ++ sushi-config.yaml | 7 +- 20 files changed, 584 insertions(+), 214 deletions(-) create mode 100644 ig-template/package/content/assets/postman/.index.db create mode 100644 ig-template/package/content/assets/postman/.index.json create mode 100644 ig-template/package/content/assets/postman/postman_collection.json create mode 100644 input/fsh/examples/0000-flag-category-searchparameter.fsh create mode 100644 input/fsh/examples/0000-flag-code-searchparameter.fsh rename input/images/{Retrieve-Condition.drawio.png => retrieve-condition.drawio.png} (100%) rename input/pagecontent/{retrieve-condition.md => retrieve-ra-record.md} (62%) delete mode 100644 input/pagecontent/server-example-add-ra-record.md delete mode 100644 input/pagecontent/server-example-retrieve-ra-record.md create mode 100644 input/pagecontent/server-examples.md create mode 100644 input/queries/DELETE-0008-delete-flag-by-id.md create mode 100644 input/queries/READ-0001-get-all-flags.md create mode 100644 input/queries/READ-0002-get-flag-by-category.md create mode 100644 input/queries/READ-0003-get-flag-by-category-and-code.md delete mode 100644 postman/ReasonableAdjustmentsExamples.postman_collection.json diff --git a/ig-template/package/content/assets/postman/.index.db b/ig-template/package/content/assets/postman/.index.db new file mode 100644 index 0000000000000000000000000000000000000000..acb32ab9ffa9a2091936371812233345125df4a1 GIT binary patch literal 12288 zcmeI#(M!TW90%|_3kzZDo3HmGC`1uKy=FE+Tvl@mKFMVl4d!OIo78jA-_%?GR*&t} zqcIYndXewJHh+BYckDj%*DWgr?VCdYPf?eN&`QU2hwd z9EYD)<(m}BMN%$SzP2?WhX4d1009U<00Izz00bZaf&UbEKc@$^dYyipDE<%#SHw{w zr^4}LmHl04yLQX7nb*2K-KXc_3yYRI#3t?`}t- zO0!MfBOWATAWWX`z82D7aAjUTAK$s%o0dCfJ$uX=M!MO&C=_eGIwk48#B2N#q-XgF zPgJz5Cx%;p$H{57(&zd^{g1Nrt*UPr5P$##AOHafKmY;|fB*y_009W>sz6C^4Cnt{ c{k+&01Rwwb2tWV=5P$##AOHafKwv5G1Ay3_8~^|S literal 0 HcmV?d00001 diff --git a/ig-template/package/content/assets/postman/.index.json b/ig-template/package/content/assets/postman/.index.json new file mode 100644 index 0000000..7ee6e2c --- /dev/null +++ b/ig-template/package/content/assets/postman/.index.json @@ -0,0 +1,4 @@ +{ + "index-version" : 2, + "files" : [] +} diff --git a/ig-template/package/content/assets/postman/postman_collection.json b/ig-template/package/content/assets/postman/postman_collection.json new file mode 100644 index 0000000..459cff9 --- /dev/null +++ b/ig-template/package/content/assets/postman/postman_collection.json @@ -0,0 +1,340 @@ +{ + "info": { + "_postman_id": "adb3f331-e89f-4548-b96b-b781a41eba64", + "name": "ReasonableAdjustmentsExamples", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "32605342" + }, + "item": [ + { + "name": "SearchParameters", + "item": [ + { + "name": "Flag.category", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"resourceType\" : \"SearchParameter\",\n \"id\" : \"FlagCategory\",\n \"url\" : \"http://localhost:8080/fhir/SearchParameter/FlagCategory\",\n \"version\" : \"1\",\n \"name\" : \"Search for Flag.category\",\n \"title\" : \"Search for Flag.category\",\n \"derivedFrom\" : \"http://hl7.org/fhir/SearchParameter/Resource-id\",\n \"status\" : \"active\",\n \"description\" : \"Search by category in the Flag resource\",\n \"code\" : \"category\",\n \"base\" : [\"Flag\"],\n \"type\" : \"token\",\n \"expression\" : \"Flag.category\",\n \"xpathUsage\": \"normal\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:8080/fhir/SearchParameter", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "fhir", + "SearchParameter" + ] + } + }, + "response": [] + }, + { + "name": "Flag.code", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"resourceType\" : \"SearchParameter\",\n \"id\" : \"FlagCode\",\n \"url\" : \"http://localhost:8080/fhir/SearchParameter/FlagCode\",\n \"version\" : \"1\",\n \"name\" : \"Search for Flag.code\",\n \"title\" : \"Search for Flag.code\",\n \"derivedFrom\" : \"http://hl7.org/fhir/SearchParameter/Resource-id\",\n \"status\" : \"active\",\n \"description\" : \"Search by code in the Flag resource\",\n \"code\" : \"code\",\n \"base\" : [\"Flag\"],\n \"type\" : \"token\",\n \"expression\" : \"Flag.code\",\n \"xpathUsage\": \"normal\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:8080/fhir/SearchParameter", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "fhir", + "SearchParameter" + ] + } + }, + "response": [] + }, + { + "name": "Extension Flag.detail - TODO", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "TODO", + "host": [ + "TODO" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Add RA Record", + "item": [ + { + "name": "Example 1", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "TODO", + "host": [ + "TODO" + ] + } + }, + "response": [] + }, + { + "name": "Example 2.1", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"resourceType\": \"Bundle\",\n \"id\": \"add-condition-transaction-example-1\",\n \"type\": \"transaction\",\n \"entry\": [\n {\n \"fullUrl\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"id\": \"patient-example-1\",\n \"identifier\": [\n {\n \"system\": \"https://fhir.nhs.uk/Id/nhs-number\",\n \"value\": \"9912003888\"\n }\n ],\n \"active\": true,\n \"name\": [\n {\n \"use\": \"official\",\n \"family\": \"Duck\",\n \"given\": [\n \"Donald\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"birthDate\": \"1970-01-01\"\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Patient?identifier=9912003888\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:959fbc3c-0907-419e-aa3d-ab88f2d90c5e\",\n \"resource\": {\n \"resourceType\": \"Consent\",\n \"id\": \"consent-example-1\",\n \"status\": \"active\",\n \"scope\": {\n \"coding\": [\n {\n \"code\": \"patient-privacy\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/consentscope\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"provision\": {\n \"purpose\": [\n {\n \"code\": \"370856009\",\n \"system\": \"https://snomed.info/sct\",\n \"display\": \"Limiting access to confidential patient information\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"policy\": [\n {\n \"authority\": \"https://www.gov.uk/\",\n \"uri\": \"https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf\"\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Consent?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:41a84a93-1c95-4162-b13c-1c617509e6e2\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"condition-example-1\",\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"code\": \"active\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"issue\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1\",\n \"display\": \"Issue\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"code\": \"5\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1\",\n \"display\": \"Learning or understanding or concentrating\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Condition?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:fba99f70-fe1d-42e2-b77a-916e44b53c19\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"master-flag-example-1\",\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://hl7.org/fhir/v3/DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"condition-flag-example-1\",\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"001\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1\",\n \"display\": \"Communication support\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://hl7.org/fhir/v3/DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85\"\n }\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:8080/fhir", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "fhir" + ] + } + }, + "response": [] + }, + { + "name": "Example 2.1", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"resourceType\": \"Bundle\",\n \"id\": \"add-condition-transaction-example-1\",\n \"type\": \"transaction\",\n \"entry\": [\n {\n \"fullUrl\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"id\": \"patient-example-1\",\n \"identifier\": [\n {\n \"system\": \"https://fhir.nhs.uk/Id/nhs-number\",\n \"value\": \"9912003888\"\n }\n ],\n \"active\": true,\n \"name\": [\n {\n \"use\": \"official\",\n \"family\": \"Duck\",\n \"given\": [\n \"Donald\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"birthDate\": \"1970-01-01\"\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Patient?identifier=9912003888\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:959fbc3c-0907-419e-aa3d-ab88f2d90c5e\",\n \"resource\": {\n \"resourceType\": \"Consent\",\n \"id\": \"consent-example-1\",\n \"status\": \"active\",\n \"scope\": {\n \"coding\": [\n {\n \"code\": \"patient-privacy\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/consentscope\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"provision\": {\n \"purpose\": [\n {\n \"code\": \"370856009\",\n \"system\": \"https://snomed.info/sct\",\n \"display\": \"Limiting access to confidential patient information\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"policy\": [\n {\n \"authority\": \"https://www.gov.uk/\",\n \"uri\": \"https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf\"\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Consent?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:fba99f70-fe1d-42e2-b77a-916e44b53c19\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"master-flag-example-1\",\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://hl7.org/fhir/v3/DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:41a84a93-1c95-4162-b13c-1c617509e6e2\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"condition-example-1\",\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"code\": \"active\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"issue\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1\",\n \"display\": \"Issue\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"code\": \"5\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1\",\n \"display\": \"Learning or understanding or concentrating\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Condition?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"condition-flag-example-1\",\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"001\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1\",\n \"display\": \"Communication support\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://hl7.org/fhir/v3/DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:09264d2-3986-458b-91eb-e7482b4c3025\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"condition-example-2\",\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"code\": \"active\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"issue\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1\",\n \"display\": \"Issue\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"code\": \"73618009\",\n \"system\": \"https://snomed.info/sct\",\n \"display\": \"Autistic spectrum disorder with isolated skills\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Condition/09264d2-3986-458b-91eb-e7482b4c3025\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:212c1018-f52a-4db7-9bc2-59a88622eb4f\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"condition-flag-example-2\",\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"001\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1\",\n \"display\": \"Communication support\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://hl7.org/fhir/v3/DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/212c1018-f52a-4db7-9bc2-59a88622eb4f\"\n }\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:8080/fhir", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "fhir" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Retrieve RA Record", + "item": [ + { + "name": "Example 1", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:8080/fhir/Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "fhir", + "Patient" + ], + "query": [ + { + "key": "identifier", + "value": "9912003888" + }, + { + "key": "_revinclude", + "value": "Consent:patient" + }, + { + "key": "_revinclude", + "value": "Flag:patient" + }, + { + "key": "_revinclude", + "value": "Condition:patient" + } + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Remove RA Record", + "item": [ + { + "name": "TODO", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "TODO", + "host": [ + "TODO" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Other Queries", + "item": [ + { + "name": "Read all Flags", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:8080/fhir/Flag", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "fhir", + "Flag" + ] + } + }, + "response": [] + }, + { + "name": "Get Flag by Category", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:8080/fhir/Flag?category=NRAF", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "fhir", + "Flag" + ], + "query": [ + { + "key": "category", + "value": "NRAF" + } + ] + } + }, + "response": [] + }, + { + "name": "Get Flag by Category and Code", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:8080/fhir/Flag?category=NRAF&code=001", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "fhir", + "Flag" + ], + "query": [ + { + "key": "category", + "value": "NRAF" + }, + { + "key": "code", + "value": "001" + } + ] + } + }, + "response": [] + }, + { + "name": "Get Flag by Category and Code and supporting resources", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "TODO", + "host": [ + "TODO" + ] + } + }, + "response": [] + }, + { + "name": "Delete Flag by ID", + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "http://localhost:8080/fhir/Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "fhir", + "Flag", + "04adcb5b-3de7-4f67-97f0-b2fdf941ba85" + ] + } + }, + "response": [] + } + ] + } + ] +} \ No newline at end of file diff --git a/input/fsh/examples/0000-flag-category-searchparameter.fsh b/input/fsh/examples/0000-flag-category-searchparameter.fsh new file mode 100644 index 0000000..5ab4397 --- /dev/null +++ b/input/fsh/examples/0000-flag-category-searchparameter.fsh @@ -0,0 +1,13 @@ +Instance: 0000-flag-category-searchparameter +InstanceOf: SearchParameter +Usage: #definition +* url = "http://localhost:8080/fhir/SearchParameter/FlagCategory" +* version = "1" +* name = "Search for Flag.category" +* status = #active +* description = "Search by category in the Flag resource" +* code = #category +* base = #Flag +* type = #token +* expression = "Flag.category" +* xpathUsage = #normal \ No newline at end of file diff --git a/input/fsh/examples/0000-flag-code-searchparameter.fsh b/input/fsh/examples/0000-flag-code-searchparameter.fsh new file mode 100644 index 0000000..4d71708 --- /dev/null +++ b/input/fsh/examples/0000-flag-code-searchparameter.fsh @@ -0,0 +1,13 @@ +Instance: 0000-flag-code-searchparameter +InstanceOf: SearchParameter +Usage: #definition +* url = "http://localhost:8080/fhir/SearchParameter/FlagCode" +* version = "1" +* name = "Search for Flag.code" +* status = #active +* description = "Search by code in the Flag resource" +* code = #code +* base = #Flag +* type = #token +* expression = "Flag.code" +* xpathUsage = #normal \ No newline at end of file diff --git a/input/fsh/examples/0001-add-condition-transaction-example.fsh b/input/fsh/examples/0001-add-condition-transaction-example.fsh index f00cfc8..9ea32de 100644 --- a/input/fsh/examples/0001-add-condition-transaction-example.fsh +++ b/input/fsh/examples/0001-add-condition-transaction-example.fsh @@ -4,7 +4,7 @@ Alias: $sct = https://snomed.info/sct Alias: $condition-clinical = http://terminology.hl7.org/CodeSystem/condition-clinical Alias: $CareConnect-ConditionCategory-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1 Alias: $RARecord-ConditionCode-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1 -Alias: $DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation +Alias: $v3-DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 Alias: $RARecord-AdjustmentCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1 @@ -56,6 +56,14 @@ Usage: #inline * policy.authority = "https://www.gov.uk/" * policy.uri = "https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf" +Instance: condition-example-1 +InstanceOf: Condition +Usage: #inline +* clinicalStatus = $condition-clinical#active +* category = $CareConnect-ConditionCategory-1#issue "Issue" +* code = $RARecord-ConditionCode-1#5 "Learning or understanding or concentrating" +* subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) + Instance: master-flag-example-1 InstanceOf: Flag Usage: #inline @@ -67,19 +75,11 @@ Usage: #inline * contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" * contained.target.reference = "#" * contained.recorded = "2024-01-01T11:00:00+00:00" -* contained.activity = $DataOperation#CREATE "create" +* contained.activity = $v3-DataOperation#CREATE "create" * contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" * contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" * contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" -Instance: condition-example-1 -InstanceOf: Condition -Usage: #inline -* clinicalStatus = $condition-clinical#active -* category = $CareConnect-ConditionCategory-1#issue "Issue" -* code = $RARecord-ConditionCode-1#5 "Learning or understanding or concentrating" -* subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) - Instance: condition-flag-example-1 InstanceOf: Flag Usage: #inline @@ -91,7 +91,7 @@ Usage: #inline * contained.id = "ddb4df1c-d15a-4d02-9346-c034732c5a37" * contained.target.reference = "#" * contained.recorded = "2024-01-01T11:00:00+00:00" -* contained.activity = $DataOperation#CREATE "create" +* contained.activity = $v3-DataOperation#CREATE "create" * contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" * contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" -* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" \ No newline at end of file diff --git a/input/fsh/examples/0002-add-condition-transaction-example.fsh b/input/fsh/examples/0002-add-condition-transaction-example.fsh index 96e0ba6..c4d3e7f 100644 --- a/input/fsh/examples/0002-add-condition-transaction-example.fsh +++ b/input/fsh/examples/0002-add-condition-transaction-example.fsh @@ -1,35 +1,28 @@ -Alias: $consentscope = http://terminology.hl7.org/CodeSystem/consentscope -Alias: $RARecord-FlagCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1 -Alias: $sct = https://snomed.info/sct Alias: $condition-clinical = http://terminology.hl7.org/CodeSystem/condition-clinical Alias: $CareConnect-ConditionCategory-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1 -Alias: $RARecord-ConditionCode-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1 -Alias: $DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation -Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 +Alias: $sct = https://snomed.info/sct Alias: $RARecord-AdjustmentCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1 +Alias: $RARecord-FlagCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1 +Alias: $v3-DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation +Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 Instance: 0002-add-condition-transaction-example InstanceOf: Bundle Usage: #example * type = #transaction * entry[0].fullUrl = "urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" -* entry[=].resource = patient-example-1 * entry[=].request.method = #PUT * entry[=].request.url = "Patient?identifier=9912003888" * entry[+].fullUrl = "urn:uuid:959fbc3c-0907-419e-aa3d-ab88f2d90c5e" -* entry[=].resource = consent-example-1 * entry[=].request.method = #PUT * entry[=].request.url = "Consent?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" * entry[+].fullUrl = "urn:uuid:fba99f70-fe1d-42e2-b77a-916e44b53c19" -* entry[=].resource = master-flag-example-1 * entry[=].request.method = #PUT * entry[=].request.url = "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" * entry[+].fullUrl = "urn:uuid:41a84a93-1c95-4162-b13c-1c617509e6e2" -* entry[=].resource = condition-example-1 * entry[=].request.method = #PUT * entry[=].request.url = "Condition?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" * entry[+].fullUrl = "urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85" -* entry[=].resource = condition-flag-example-1 * entry[=].request.method = #PUT * entry[=].request.url = "Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85" * entry[+].fullUrl = "urn:uuid:b19124e9-f742-49b4-9247-5c2d58ac1ef4" @@ -60,7 +53,7 @@ Usage: #inline * contained.id = "55ac7111-dbd1-42f2-906c-a167b04d47ce" * contained.target.reference = "#" * contained.recorded = "2024-01-01T11:00:00+00:00" -* contained.activity = $DataOperation#CREATE "create" +* contained.activity = $v3-DataOperation#CREATE "create" * contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" * contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" -* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" \ No newline at end of file diff --git a/input/images/Retrieve-Condition.drawio.png b/input/images/retrieve-condition.drawio.png similarity index 100% rename from input/images/Retrieve-Condition.drawio.png rename to input/images/retrieve-condition.drawio.png diff --git a/input/pagecontent/add-ra-record.md b/input/pagecontent/add-ra-record.md index 6f5462c..7a484e1 100644 --- a/input/pagecontent/add-ra-record.md +++ b/input/pagecontent/add-ra-record.md @@ -36,7 +36,7 @@ The practioner decides to record a condition. This could be done with individua #### Example 2

-The first example given here shows the use of a transaction to add all required resources to add a Consent, a Condition and associated adjustments (Flag) resources for a patient. +The first example given here shows the use of a transaction to add all required resources to add a Consent, a Condition and associated adjustments (Flag) resources for a patient. The master Flag and condition Flag (and associated Condition) resources are included and have the Provence resource as contained resources. This example could be modified to include a new condition just by adding the new Condition and Flag resource as this transaction is fully idempotent. The next example will show this.

@@ -48,7 +48,7 @@ The master Flag and condition Flag (and associated Condition) resources are incl

-The second example given here simply adds conditions to the previous transaction resource to demonstrate the ability to add new conditions to the same data structure and reply in an idempotent way. The request entry in the transaction Bundle for the second condition uses the uuid from the fullUrl on the Bundle entry to use in the URL for the PUT method. The first uses the patient uuid as a search parameter for the PUT. A uuid would be the preferred method to construct the uuid for the fullUrl in the Bundle entry, so this should be a reasonable example. This example is just to demonstrate ReSTful capabilities of the FHIR spec. +The second example given here simply adds conditions to the previous transaction resource to demonstrate the ability to add new conditions to the same data structure and reply in an idempotent way. The request entry in the transaction Bundle for the second condition uses the uuid from the fullUrl on the Bundle entry to use in the URL for the PUT method. The first uses the patient uuid as a search parameter for the PUT. A uuid would be the preferred method to construct the uuid for the fullUrl in the Bundle entry, so this should be a reasonable example. This example is just to demonstrate ReSTful capabilities of the FHIR spec.

[Example Transaction: Additional condition and flag added to previous Transaction](Bundle-0001-add-condition-transaction-example.html). diff --git a/input/pagecontent/retrieve-condition.md b/input/pagecontent/retrieve-ra-record.md similarity index 62% rename from input/pagecontent/retrieve-condition.md rename to input/pagecontent/retrieve-ra-record.md index 7a3c1ca..95b06c7 100644 --- a/input/pagecontent/retrieve-condition.md +++ b/input/pagecontent/retrieve-ra-record.md @@ -6,8 +6,8 @@ A patient presents to be examined by a practitioner. The Practioner perofrms an examination and retrieve Patient's RA Record. -##### Condition Retrieved +##### Patients RA Record Retrieved
- Activity created in draw.io! + Patients RA Record Retrieved
Todo diff --git a/input/pagecontent/server-example-add-ra-record.md b/input/pagecontent/server-example-add-ra-record.md deleted file mode 100644 index 1f5b7bf..0000000 --- a/input/pagecontent/server-example-add-ra-record.md +++ /dev/null @@ -1,45 +0,0 @@ -### Summary - -The [HAPI FHIR Starter Server](https://github.com/hapifhir/hapi-fhir-jpaserver-starter) is used to demostrate some basic REST capabilities in FHIR using examples within this implementation guide. - -#### Docker invocation of the HAPI Starter Project - -This command starts the server on port 8080 and use UUID (as opposed to sequential numbers) for resource ID's. - -``` -docker run -p 8080:8080 -e hapi.fhir.daoconfig_client_id_strategy=UUID -e hapi.fhir.client_id_strategy=ANY hapiproject/hapi:latest -``` - -To pull the latest image, run - -``` -docker pull hapiproject/hapi:latest -``` - -#### Swagger - -The HAPI starter project provides an OAS interface to the supported FHIR API. Assuming the above docker command is used, this would be available at - -``` -http://localhost:8080/fhir/swagger-ui/index.html -``` - -#### CI Build - -These examples are loaded into a running FHIR server during the IG build. Some resources (queries) are dynamically generated and added to the IG at build time. (TODO add a list of dynamically generated resources somewhere). - -### Examples - -The examples here describe the API options related to the workflow given in the use case [Add RA Record](add-ra-record.html#workflow). - -#### Example 1 - -TODO - -#### Example 2 - -The first [example transaction](Bundle-0001-add-condition-transaction-example.html) adds an RA record consisting of a Consent resource from the patient, a master Flag resource (is this really needed?), a Condition resource and an associated condition Flag resource using a transaction Bundle, which provides atomicity as well as more network efficent call. Each Flag resource has a Provenance resource embedded in it. (TODO maybe a futher discussion section somewhere on options for provenance, i.e. linking to versions, _history and transaction considerations, options to use etag or X-provenance). - -The second [example transaction](Bundle-0002-add-condition-transaction-example.html) simply modifies the first transaction by adding additional resources for another Condition and adjustment (Flag). The transactions are using PUT's and as FHIR does defined (upsert)[https://hl7.org/fhir/http.html#upsert] as an option, and the HAPI Starter Server has implemented this, this example has been constructed to demostrate this. - -Details of querying the resulting data from these transaction is given in the [Retrieve RA Record](server-example-add-ra-record.html) server example. \ No newline at end of file diff --git a/input/pagecontent/server-example-retrieve-ra-record.md b/input/pagecontent/server-example-retrieve-ra-record.md deleted file mode 100644 index fe24b7d..0000000 --- a/input/pagecontent/server-example-retrieve-ra-record.md +++ /dev/null @@ -1,53 +0,0 @@ -### Summary - -The [HAPI FHIR Starter Server](https://github.com/hapifhir/hapi-fhir-jpaserver-starter) is used to demostrate some basic REST capabilities in FHIR using examples within this implementation guide. - -#### Docker invocation of the HAPI Starter Project - -This command starts the server on port 8080 and use UUID (as opposed to sequential numbers) for resource ID's. - -``` -docker run -p 8080:8080 -e hapi.fhir.daoconfig_client_id_strategy=UUID -e hapi.fhir.client_id_strategy=ANY hapiproject/hapi:latest -``` - -To pull the latest image, run - -``` -docker pull hapiproject/hapi:latest -``` - -#### Swagger - -The HAPI starter project provides an OAS interface to the supported FHIR API. Assuming the above docker command is used, this would be available at - -``` -http://localhost:8080/fhir/swagger-ui/index.html -``` - -#### CI Build - -These examples are loaded into a running FHIR server during the IG build. Some resources (queries) are dynamically generated and added to the IG at build time. (TODO add a list of dynamically generated resources somewhere). - -### Examples - -The examples here describe search options for the workflow given in [Retrieve RA Record](todo.html). This follows on from the data entered in the workflow given in the use case [Add RA Record](add-ra-record.html#workflow). - -#### Example 1 - -Based on the example transaction Bundles given in the use case [Add RA Record](add-ra-record.html#workflow), for each transaction, the following query will performed (dynamically during the IG build) - -``` -/Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient -``` - -This query will return the Patient resource using the patients NHS number (TODO will be profiled to check for this, reference this later). The assocaited resources that make up the RA are also returned, which are all using default Patient SearchParameters define in the base specification for each resource. - -For the [first transaction example](Bundle-0001-add-condition-transaction-example.html), this is the [output of the query](Bundle-QUERY-OUTPUT--0001-add-condition-transaction-example.1.html). - -For the [second transaction example](Bundle-0002-add-condition-transaction-example.html), where a Condition and adjustment (Flag) is added, this is the [output of the query](Bundle-QUERY-OUTPUT--0002-add-condition-transaction-example.2.html). - -See the [Data Model](data-model.html) for details on the relationships between the resources. - -#### Example # - -TODO? \ No newline at end of file diff --git a/input/pagecontent/server-examples.md b/input/pagecontent/server-examples.md new file mode 100644 index 0000000..398cc24 --- /dev/null +++ b/input/pagecontent/server-examples.md @@ -0,0 +1,157 @@ +### Summary + +The [HAPI FHIR Starter Server](https://github.com/hapifhir/hapi-fhir-jpaserver-starter) is used to demostrate some basic REST capabilities in FHIR using examples within this implementation guide. + +#### Docker invocation of the HAPI Starter Project + +This command starts the server on port 8080 and use UUID (as opposed to sequential numbers) for resource ID's. + +``` +docker run -p 8080:8080 -e hapi.fhir.daoconfig_client_id_strategy=UUID -e hapi.fhir.client_id_strategy=ANY hapiproject/hapi:latest +``` + +To pull the latest image, run + +``` +docker pull hapiproject/hapi:latest +``` + +#### Swagger + +The HAPI starter project provides an OAS interface to the supported FHIR API. Assuming the above docker command is used, this would be available at + +``` +http://localhost:8080/fhir/swagger-ui/index.html +``` + +#### CI Build + +These examples are loaded into a running FHIR server during the IG build. Some resources (queries) are dynamically generated and added to the IG at build time. (TODO add a list of dynamically generated resources somewhere). + +#### Postman + +All examples are available in a [Postman collection](assets/postman/postman_collection.json). + +### Examples + +The examples here describe the API options related to the workflow given in the use case [Add RA Record](add-ra-record.html). + +See the [Data Model](data-model.html) for details on the relationships between the resources. + +#### Add RA Record + +This section provides examples for those given in the use case [Add RA Record](add-ra-record.html). + +##### Example 1 + +TODO + +##### Example 2 + +The first example [Bundle transaction](Bundle-0001-add-condition-transaction-example.html) adds an RA record consisting of +* a Patient resource +* a Consent resource +* a (master) Flag resource (is this really needed?) +* a Condition resource (associated with the following Flag) +* a Flag resource (associated with the Condition) +These resources are contained in a transaction Bundle, which provides atomicity as well as a more network efficent call. + +Each Flag resource (TODO embed in all or make separate)has a Provenance resource embedded in it. (TODO maybe a futher discussion section somewhere on options for provenance, i.e. linking to versions, _history and transaction considerations, options to use etag or X-provenance). + +Another example [Bundle transaction](Bundle-0002-add-condition-transaction-example.html) modifies the first transaction by adding additional resources for another Condition and adjustment (Flag). + +The transactions are using PUT's to provide (upsert)[https://hl7.org/fhir/http.html#upsert] functionality. The HAPI Starter Server (provided via docker) supports this part of the specification. + +#### Retrieve RA Record + +This section provides examples for those given in the use case [Retrieve RA Record](retrieve-ra-record.html). + +##### Example 1 + +For each transaction example provided in the previous section, the following query will performed (dynamically during the IG build) + +``` +/Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient +``` + +This query will return the Patient resource using the patients NHS number (TODO will be profiled to check for this, reference this later). The assocaited resources that make up the RA are also returned, such as +* Consent resources (maybe link to profiles here) +* Flag resources +* Condition resources +which are all returned using default Patient SearchParameters (defined in the base specification). + +First Bundle example: +* [Bundle transaction](Bundle-0001-add-condition-transaction-example.html) +* [Query output](Bundle-QUERY-OUTPUT--0001-add-condition-transaction-example.1.html) + +Second Bundle example: +* [Bundle transaction](Bundle-0002-add-condition-transaction-example.html) +* [Query output](Bundle-QUERY-OUTPUT--0002-add-condition-transaction-example.2.html) + +#### Remove RA Record + +This section provides examples for those given in the use case [Remove RA Record](todo.html). + +##### Example 1 + +TODO (@vickyjaiswal0308) + +### Other Query Examples + +These queries are ran after all other write (Create, Update) examples and corresponding queries have been ran. + +#### Read all Flags + +Query: +``` +GET /Flag +``` + +* [Query output](Bundle-QUERY-OUTPUT--READ-0001-get-all-flags.html) + +#### Get Flag by Category + +**Note:** this requires a [custom SearchParameter](SearchParameter-0000-flag-category-searchparameter.html) + +Query: +``` +GET /Flag?category=NRAF +``` +* [Query output](Bundle-QUERY-OUTPUT--READ-0002-get-flag-by-category.html) + +#### Get Flag by Category and Code + +**Note:** this requires a [custom SearchParameter](SearchParameter-0000-flag-code-searchparameter.html) + +Query: +``` +GET /Flag?category=NRAF&code=001 +``` +* [Query output](Bundle-QUERY-OUTPUT--READ-0003-get-flag-by-category-and-code.html) + +#### Get Flag by Category and Code and supporting resources + +**Note:** this requires [an extension] to link to the supporting resources and a [custom SearchParameter](todo.html) to allow for the use of [_include parameters](https://www.hl7.org/fhir/search.html#include) + +* [Query output](todo.html) + +#### Delete Flag by ID + +Query: +``` +GET /Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85 +``` + +* [Query output](OperationOutcome-QUERY-OUTPUT--DELETE-0008-delete-flag-by-id.html) + +#### POST to /Resource + +TODO + +#### Delete supporting resource + +will be covered by remove RA record + +#### Delete a resource using it's ID + +This seems to be covered in section 'Delete Flag by ID'? \ No newline at end of file diff --git a/input/queries/DELETE-0008-delete-flag-by-id.md b/input/queries/DELETE-0008-delete-flag-by-id.md new file mode 100644 index 0000000..568efb7 --- /dev/null +++ b/input/queries/DELETE-0008-delete-flag-by-id.md @@ -0,0 +1 @@ +Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85 \ No newline at end of file diff --git a/input/queries/READ-0001-get-all-flags.md b/input/queries/READ-0001-get-all-flags.md new file mode 100644 index 0000000..e67ba25 --- /dev/null +++ b/input/queries/READ-0001-get-all-flags.md @@ -0,0 +1 @@ +Flag/ \ No newline at end of file diff --git a/input/queries/READ-0002-get-flag-by-category.md b/input/queries/READ-0002-get-flag-by-category.md new file mode 100644 index 0000000..a567164 --- /dev/null +++ b/input/queries/READ-0002-get-flag-by-category.md @@ -0,0 +1 @@ +Flag?category=NRAF \ No newline at end of file diff --git a/input/queries/READ-0003-get-flag-by-category-and-code.md b/input/queries/READ-0003-get-flag-by-category-and-code.md new file mode 100644 index 0000000..6ea59c7 --- /dev/null +++ b/input/queries/READ-0003-get-flag-by-category-and-code.md @@ -0,0 +1 @@ +Flag?category=NRAF&code=001 \ No newline at end of file diff --git a/postman/ReasonableAdjustmentsExamples.postman_collection.json b/postman/ReasonableAdjustmentsExamples.postman_collection.json deleted file mode 100644 index 6f00fb2..0000000 --- a/postman/ReasonableAdjustmentsExamples.postman_collection.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "info": { - "_postman_id": "adb3f331-e89f-4548-b96b-b781a41eba64", - "name": "ReasonableAdjustmentsExamples", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", - "_exporter_id": "32605342" - }, - "item": [ - { - "name": "Add examples", - "item": [ - { - "name": "New RA record - Single transaction - Provenance contained", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\n \"resourceType\": \"Bundle\",\n \"id\": \"add-condition-transaction-example-1\",\n \"type\": \"transaction\",\n \"entry\": [\n {\n \"fullUrl\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"id\": \"patient-example-1\",\n \"identifier\": [\n {\n \"system\": \"https://fhir.nhs.uk/Id/nhs-number\",\n \"value\": \"9912003888\"\n }\n ],\n \"active\": true,\n \"name\": [\n {\n \"use\": \"official\",\n \"family\": \"Duck\",\n \"given\": [\n \"Donald\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"birthDate\": \"1970-01-01\"\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Patient?identifier=9912003888\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:959fbc3c-0907-419e-aa3d-ab88f2d90c5e\",\n \"resource\": {\n \"resourceType\": \"Consent\",\n \"id\": \"consent-example-1\",\n \"status\": \"active\",\n \"scope\": {\n \"coding\": [\n {\n \"code\": \"patient-privacy\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/consentscope\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"provision\": {\n \"purpose\": [\n {\n \"code\": \"370856009\",\n \"system\": \"https://snomed.info/sct\",\n \"display\": \"Limiting access to confidential patient information\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"policy\": [\n {\n \"authority\": \"https://www.gov.uk/\",\n \"uri\": \"https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf\"\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Consent?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:41a84a93-1c95-4162-b13c-1c617509e6e2\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"condition-example-1\",\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"code\": \"active\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"issue\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1\",\n \"display\": \"Issue\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"code\": \"5\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1\",\n \"display\": \"Learning or understanding or concentrating\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Condition?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:fba99f70-fe1d-42e2-b77a-916e44b53c19\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"master-flag-example-1\",\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://hl7.org/fhir/v3/DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"condition-flag-example-1\",\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"001\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1\",\n \"display\": \"Communication support\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://hl7.org/fhir/v3/DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85\"\n }\n }\n ]\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "http://localhost:8080/fhir", - "protocol": "http", - "host": [ - "localhost" - ], - "port": "8080", - "path": [ - "fhir" - ] - } - }, - "response": [] - } - ] - }, - { - "name": "Query examples", - "item": [ - { - "name": "Get Flags associated with Patient", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "http://localhost:8080/fhir/Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient", - "protocol": "http", - "host": [ - "localhost" - ], - "port": "8080", - "path": [ - "fhir", - "Patient" - ], - "query": [ - { - "key": "identifier", - "value": "9912003888" - }, - { - "key": "_revinclude", - "value": "Consent:patient" - }, - { - "key": "_revinclude", - "value": "Flag:patient" - } - ] - } - }, - "response": [] - } - ] - } - ] -} \ No newline at end of file diff --git a/scripts/run-examples.sh b/scripts/run-examples.sh index 19bcacb..e6a74d8 100755 --- a/scripts/run-examples.sh +++ b/scripts/run-examples.sh @@ -34,6 +34,11 @@ for EXAMPLE in ./input/fsh/examples/*; do curl -X POST -H $HEADERS -d @${GENERATED} $SERVER_BASE$RESOURCE_NAME; for QUERY_FILE in ./input/queries/$EXAMPLE*; do + # Check if none found and skip loop, otherwise will loop on unexpanded path, todo, write this in a real language. + if [ "${QUERY_FILE%.*}" = "" ]; then + continue + fi; + # Filename of query (minus extension) must match the filename of the example posted. QUERY=$(cat ${QUERY_FILE%.*}*); @@ -44,4 +49,28 @@ for EXAMPLE in ./input/fsh/examples/*; do curl $SERVER_BASE$QUERY | jq '.id = "QUERY-OUTPUT--'${QUERY_FILE%.*}'"' > ./input/resources/QUERY-OUTPUT--${QUERY_FILE%.*}.json done; +done; + +# Do all other READ queries +for QUERY_FILE in ./input/queries/READ*; do + # Filename of query (minus extension) must match the filename of the example posted. + QUERY=$(cat ${QUERY_FILE%.*}*); + + # Strip the path + QUERY_FILE=$(echo $QUERY_FILE | awk -F '/' '{print $4}'); + + # Run corresponding query, change the ID of the bundle to something readable and output to resources in input to be included in IG build + curl $SERVER_BASE$QUERY | jq '.id = "QUERY-OUTPUT--'${QUERY_FILE%.*}'"' > ./input/resources/QUERY-OUTPUT--${QUERY_FILE%.*}.json +done; + +# Do all other DELETE queries +for QUERY_FILE in ./input/queries/DELETE*; do + # Filename of query (minus extension) must match the filename of the example posted. + QUERY=$(cat ${QUERY_FILE%.*}*); + + # Strip the path + QUERY_FILE=$(echo $QUERY_FILE | awk -F '/' '{print $4}'); + + # Run corresponding query, change the ID of the bundle to something readable and output to resources in input to be included in IG build + curl -X DELETE $SERVER_BASE$QUERY | jq '.id = "QUERY-OUTPUT--'${QUERY_FILE%.*}'"' > ./input/resources/QUERY-OUTPUT--${QUERY_FILE%.*}.json done; \ No newline at end of file diff --git a/sushi-config.yaml b/sushi-config.yaml index b6a6b6a..f53bab7 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -80,12 +80,9 @@ menu: Data Model: data-model.html Use Cases: Add RA Record: add-ra-record.html - Retrieve RA Record: retrieve-condition.html - Remove RA Record: todo.html - Server Examples: - Add RA Record: server-example-add-ra-record.html - Retrieve RA Record: server-example-retrieve-ra-record.html + Retrieve RA Record: retrieve-ra-record.html Remove RA Record: todo.html + Server Examples: server-examples.html Artifacts: artifacts.html Contact Us: todo.html Downloads: todo.html From 0698bde7c5e3d8d8248362d2bb0ee477d4821102 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 13:49:44 +0000 Subject: [PATCH 029/136] Update retrieve-condition.md --- input/pagecontent/retrieve-condition.md | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/input/pagecontent/retrieve-condition.md b/input/pagecontent/retrieve-condition.md index b91d52f..34fb280 100644 --- a/input/pagecontent/retrieve-condition.md +++ b/input/pagecontent/retrieve-condition.md @@ -19,18 +19,22 @@ A patient presents to be examined by a practitioner. The Practioner perofrms an #### Example -Below Listed some example of the retrieval of RA Record : - -Based on the example transaction Bundles given in the use case [Add RA Record](add-ra-record.html#workflow), for each transaction, the following query will performed (dynamically during the IG build) +For each transaction example provided in the previous section, the following query will performed (dynamically during the IG build) ``` /Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient ``` -This query will return the Patient resource using the patients NHS number. The assocaited resources that make up the RA are also returned, which are all using default Patient SearchParameters define in the base specification for each resource. - -For the [first transaction example](Bundle-0001-add-condition-transaction-example.html), this is the [output of the query](Bundle-QUERY-OUTPUT--0001-add-condition-transaction-example.1.html). +This query will return the Patient resource using the patients NHS number (TODO will be profiled to check for this, reference this later). The assocaited resources that make up the RA are also returned, such as +* Consent resources (maybe link to profiles here) +* Flag resources +* Condition resources +which are all returned using default Patient SearchParameters (defined in the base specification). -For the [second transaction example](Bundle-0002-add-condition-transaction-example.html), where a Condition and adjustment (Flag) is added, this is the [output of the query](Bundle-QUERY-OUTPUT--0002-add-condition-transaction-example.2.html). +First Bundle example: +* [Bundle transaction](Bundle-0001-add-condition-transaction-example.html) +* [Query output](Bundle-QUERY-OUTPUT--0001-add-condition-transaction-example.1.html) -See the [Data Model](data-model.html) for details on the relationships between the resources. +Second Bundle example: +* [Bundle transaction](Bundle-0002-add-condition-transaction-example.html) +* [Query output](Bundle-QUERY-OUTPUT--0002-add-condition-transaction-example.2.html) From c171739e78eb4919fd274d4eb076333a938bd043 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 13:51:02 +0000 Subject: [PATCH 030/136] Update retrieve-condition.md --- input/pagecontent/retrieve-condition.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/pagecontent/retrieve-condition.md b/input/pagecontent/retrieve-condition.md index 34fb280..da41d7a 100644 --- a/input/pagecontent/retrieve-condition.md +++ b/input/pagecontent/retrieve-condition.md @@ -11,7 +11,7 @@ A patient presents to be examined by a practitioner. The Practioner perofrms an Activity created in draw.io! -##### Condition Retrieved +##### Patient's RA Record Retrieved
Activity created in draw.io! From 62e78b0801bd4b89c99d601f27a52426a5f66333 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 13:54:54 +0000 Subject: [PATCH 031/136] Update remove-ra-record.md --- input/pagecontent/remove-ra-record.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/input/pagecontent/remove-ra-record.md b/input/pagecontent/remove-ra-record.md index 7141490..035a8be 100644 --- a/input/pagecontent/remove-ra-record.md +++ b/input/pagecontent/remove-ra-record.md @@ -11,4 +11,6 @@ A patient presents to be examined by a practitioner. The Practioner perofrms an Activity created in draw.io!
-#### Condition Retrieved +#### Patient's RA Record Removed + + From 72cf573e932d9946a785765b7af2135aff41674e Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 13:57:27 +0000 Subject: [PATCH 032/136] Update remove-ra-record.md --- input/pagecontent/remove-ra-record.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/input/pagecontent/remove-ra-record.md b/input/pagecontent/remove-ra-record.md index 035a8be..d12a423 100644 --- a/input/pagecontent/remove-ra-record.md +++ b/input/pagecontent/remove-ra-record.md @@ -13,4 +13,8 @@ A patient presents to be examined by a practitioner. The Practioner perofrms an #### Patient's RA Record Removed +
+ Activity created in draw.io! +
+ From b3961d953e43946568504bf9056a3b244f592c8d Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 13:57:43 +0000 Subject: [PATCH 033/136] Add files via upload --- input/images/remove-rarecord.drawio.png | Bin 0 -> 41791 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 input/images/remove-rarecord.drawio.png diff --git a/input/images/remove-rarecord.drawio.png b/input/images/remove-rarecord.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..704bd6f0644b87ac78afb45fde678463d3e79061 GIT binary patch literal 41791 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�G;})R59dXmlh_yY5|-pGVc_yc z%|o5ZOQts^bT^%4f*1}2j)wg%*#Tl_a#P)=8s1W&9W>g}cKQ}~`p^PB?S7}Z+>VHw&Cj8LVJ0-8#3 z-83yeh^w?|`q^o?E@#AtSTJfZ+mZF&r!gje6CgcTu5aSFGh0}ESi}oR??CZO76V8j znNp1&{bt|H{e1b4nLwIJnhffT?jUO14K3Ei~Kx{U6afE*9}V~7SL&G|U% z3*QYcGu0%ks~f3d+V^DZ%(;1Rsnf6j z$TjG-?CKo;MjH94i~*oOk9mq=rW#UV==BiAn8Mha&64 zFVG%p$CKq9t`;m!RJYHK_q6Mx+Iw?co4cV)RHDc3#nX$|?(W6*Ew_@_2`c46Rpj9l z^0j;3>E4msQSddmu#K9UA6%R%bX7Cg4`>apQEakh0!dWLEu&)|O{aWMQFgxvx0&P? zYe58(k(pAw4x51QyB{g^gE9+3cXIPkI`zegtoKkz6!ZRyzzNwmXUDtACvLP=fM}`1 z#OaJZp53j}A__w+|8YOwNsoz`*OvTJ94uc#tb1h(%Cpi?R7=_ zOn78F3&qu9Q+>-=w;-jkJdrZflxy(r>O-VsxQ$^Pu1epqtL)Bsno6@a7Cj}wd2g9c zi840|m42+=o(ddc0ma5xlCVYQse+tfgr!B0Cn$`tYw8d0P9{&KHVe)L%#>0jg+ms7 zE`y6*8mhrAmYau@eLK#v6i(N%--hl=Eq36q^Y1FId7uia@Ara$--W7cBAN@{>+O~Z z%W@B(Q0qZ`jLr4f*>-->Ag5T$T-X4VC(ldlNIG-<-Ng2r_+ZV4Py*!H<1s8YueE4) z#HPK|Y@M^CQ946Ga!?0k@Z|%8uWy-;dJE9ddjkOywnsF(>*@F_QVa+)(Z3OP=V!?w zuk$Y+Mb3UEEYAw7YhIH^Pf$i2woaS~>lU1^3hTV*S^MEq)KW_T7Ts4u_&S@n1zgiA zzWBjGY(if4;3EaB*gO^kC)Xjlnew(?icDoZjF|7gRs%%shq6?aS?WC5)&4 z%yeFqYQWOq6Uo+gk8tMPS-nk%(e*lqBQk;HZ=#BG9CPg1Lj5?7FXHeexjR+#m||No z;l@S$eDPRi+-PHhh+_`W9}0>EwrRMC6eA|IqS|=dmgDJA^i}eK9;taCW3k14cAOA! zSJd?bPv*LEIe+Qya+N@smQKXPV|2Mu)FwA^sST>9lart3j=vWi zk`kzjlbkl(4VR=OtNUsTd*538{7LgOV{^&F zQH%Ws7@x-IOBdZTd=>sD!5fmq;i#MIS{0S883tKI&dqp;C+m|4n za1LBWTx_a-mT>8E>V`h;u!VKGL<)H}YkEFtOL5avjJOnOecHY!Z*sSPSk&L=^Cnkz z?k&6Y$AGDd=&M4idnL{+F*{&~Kmhq`9g+Zrl0cwVc+RZVt7gkaE-HTiI7c4q@ox{N z)P|F6MuUy^g&cW3RZUzlo3*5zxdKIvz`cwzg**0DhcaxfI^i%5ki5w@B!Q9(_kkq; z4C^|X8s18lvREBl3M0^n_0E*9;tA43GQ00LYwf8c>m+k!@Eh!&87uzq5lE2j~SHgU|CHz@%4|l;oMshJicE!@p zPhlw$f-@5oA%`&uLj!A@p1*&2r<1BjkYNG&QEH* z8G{=rvMWQI86p%|c|9Pt)4siaF!W9x{JA;47F<2p3pf@CbJtWrzzEaQYp`wv)S+C214D(5!3PTANu$8Muz^{= zIRVD2g4w*9yMYCj&g=Lj*y#3#?5g?Iu$8d4LFeVrZCvVQfx~s#pKpr6PZpWeY+-)5 z!eU9UFFYTy-53b1B)4Nuu*>17v)7Y%eOn2e?M+u@3aTqnCoW$T#0_&deAJ*k*RkBG zvzvSGnRckUwmpV^gNBAk{SU^Qmg1&^TR}08*G-LQ%jT)BGyZHr;6e;35vwM7>2u_g z(|!uBPP#q0(8v9qDr4-&c#*-zQ+y{1oO!hRH}vmEDpMVY5A<(EfNOk`YW&60zfD$~ z${uy|9*rM6`I%tU8SK!xI7@B`96a^#N0O-VWmYD%fUgdN+xepzF!wG7SiTlD9OZH~ z1=KWzXfRPRp^9NRIMr%;!7}e1m&(T??>0E(=2biAkN6~=!w?Gmt9@p>b)@rl4ct39 z>C3!n7dYwzY1-u4U7D&qj%`Jm z*d!kiw(t(dwS0hlrM>slof85Hqn_%^eKwftuZg5aqtksI%eT8oWj)NTrBjyWXfL z*T~rh)w!XH_Q9@-0?+q^mZJVgHb*{dqxCmc9p%`{cV z-={9UJmX8c5J!HeN*Gmd1BQ0z%y9calHY>z>|BOJ`z!4&B&~JowMAsb@b)z83h%}( zY++ZsqfGwVr&=Qf~sGq+U1BEE_(>(7W%5p zC~;XfD1P@wm(Q0#?APn83@5`f%|$r*i;Lh;p1E<@D&lwfONh|FEf;#p4H$o=GzC=n zL-me3u0AuK1s5#K1+X@tiVQpavJg+r0%YI^yCgxC%N=TU!0o_ndqJkq?2BF>gl;_3 z=`>&u6=j7eq4-pYsyILZ4YF7&ICNiHvxULJTQ2ErH&{NNZ~f4Ye2c+B|+e?(ZO115xSY@UCz+v z`)K~#zUl^SR2Xu3V~+^9zJj2#`Hu639CSl=-h+%HnJ=vRh{5MKZuj20|LEOiPgYvh$$m$7Cg}19^+d1tz@62Y(E4p+ zP(fV15OwL<4(rSyz7~t2_USuuI|!7ReXrQa1zhm+RJursDCB|w=>b}0N2Lc$F*yt= zhAF55EP`=;$-!`tdX(W%)_|TC2g>R;9p&-OldlL09Cx?Ju5{DMXst%mGL=rmA2N2ncjqI6RO0Trngu}}?}7xzu%wcXUp zEL(KfMo>exg??s_kF+fxtlfsFSVJwVy}L~;LW7G3x_~r|cmW?5bx*{DuUJR(wivp$T?7WBm&XuUYa%Jbg zSB(C9#c0iCynophqu*Y}`zyE30Q@7s)d2W4LtXy3?QD>igZ5sNb)bS~dQdALfu8m{Ty6QSkOSR-<~X>s>o2L*O_b z#tLD&E6<*x=UHuuz8y}V_dEx#=TTm0`mS9?$ieI*Qd+?#2_|_mcyTB_s7Jl)2Q$&h zIX}j~1$z6;HX!x(WoH8FpDI1Wxoz#mfhtT^YMrfa8se9#N>LyUpM0 zsbNOFcr^@aC~#ND(Wx!ZtFoi6RRa|&O2uEr`}uYTIyrBKVf?_iIVGY&;bvB0LMPm_ zDKvnVs>F?h%J*SZ$P_ik?{@xh`*vdIey}bH*r57bt5l@pP0uT+bmuJbCei&;ksx6R ztN?I{=KPP_2PK;uUh`T2Z_Migba$=v7`k3`V56{CdQG}T0z7XsNMnUj;hi_#d_%Ua zPW3T&V7mbI4s3=u0&V}qp7raY`=QMKZ`W*_&n>uTTG?t zCeIeWySC=kfXL%$NLVK*Vf2VQ<#PwDDKTN+x!02uiFbEg9M>{&GwplZmJVGR-bbYc z!dSAI=dGm|)&2u4HgQ~3QS)UmB?!NArwe6UiSYemVwUHUS)?R5mSuaWz^O4ZOFY%- zAhm*Qnac6N zJkaBaH9(PA43*cs|&U;ePj9p?MzE`zJ~Df<|vg!^6{ zeS-Y<#>pt>Kw9qMZ=<`$7$;UQ#Feszff!V2yGO+q3@EL%-fHpyx)GVjqYDB`8Y%R& z<&~^C>J$q2{)-$_DELytPIVJ8-;exo3Df75GwYY$sV`~HsKCfQ4!ldL!$#o4U-zLe zCV{Ubm4M1N(W8%!G(G^AP0SuRDS(u!KEj;~&<-(3y?l#_NW0B(0o`z1=ef=WTpd(# z(iFdu2XM~`D)&^qenv`2rDwFTw6uhqK>Pbjk-Gp*8;w1`wFO3^y61V!A$tr2`0;54;43-D_d~-p{}f?@FsuOf6D$0{GKU zZwBO|eJjA9h<)-fh5_T-Yz7DgPM^NRreuOIsqM~E=NEoe@EsnBY`9p%3{%CL&&_RO zVTig5Ym9s-&d-p&hW7X5j3Eg%K)~-Aoe)2O)>r>lPJB}t^SmZAZ7G4Gdu2%yA2&|8 z;4xW)D)8uep9j91aS{_t*KaW~!db3Ojye(!gJIh=W2)$nF;(~dxn7DU}W^Poy?B^)83WGL%Fwa%gBf_WsgLq#fecVQTEazttd-q<%k(ai+#q7LkmgC(xFJn zQYib9HBw|tg>0jY%ATqp1}}=GjA(UUq)vG0s+{Y3&EzR35BowA@WT48Vs|J8q^5ZzmYC~fU%RESSGg>8l)Hg}&cLQG|2C0#UaKxy>hQL>{()g;wi%XsyrJGlJv_ZqGVJ z?JuK-PFK@J%Bb1|r#r&AG*VV9!i=Te_5qP*VZRVJxUG!cFVtIV`N%oRtggi*)Zy1^ z=LZm^aU#(yvex_;g`%e*xp+QH(MCUM_9Z zWJaja1!q5CInrNWw(kDq?<0+W_Ox4wWZh+qe|4Zh$X|-gJ79tASYOw-M`wIM$s%VCeFPDa68_K#4nb<}Lb^O`>X*rntq*ceRXj zw!aYmaJFw}d}c!S7Qq9Sn{U-fx?0#fK2Ca=2R(~@;wU=diYM>4_2n|bNc(XUNUJ>vcF97lRBC&4-$yPGk{RB+h%->3iQTww$E&Ob2#Ng^1uHTQX zku--)?2qNOdzhPJqj^gbtCk)x3Pu8++;{T?t;qaH?V)cIJt;2NHAjzTo}zyA$L?Fe z&(x7q03dH-I zHBtUOF4RGw1FHc?^$?PUxvlHT*v?T>j>uNi-$d_R=Jl3-@`$w9!iO?o{s6`=>>aLi zW@d-4xz07U(`_B7CZ7Zt7-n=1`LIAEuJQ|48}05`Hi?)2OkA@kYqH&i;FG~>ar=Cy ziNz=?*HR8FlN05)3*KOWV2mjD% zv072o!`#CGkX~r)1&OwX(0E7}N37|qp#QLhv>s!3)q5gyZ^+p_ZvG{(KI{0Dkz!4d zDlE6%7KRfl0t3DM^^j;JbrAqTsvhpib!Pm3eHw$PrRdRXGO z9`h2NezUOEAnrqpF*}ZH#Y?|eWOW1FfVc44L#yGk7>yejS>$6r$=tP5n3rs#Va84qXk$R0} zNM;~e*b=VOV2d6i+kld23O`9JW($uXw4|A#wBrjwm9ati#Wm^ArYTl^R~wA0F%BQn zUm5+Ox;9vItmRxQ$TQN+V7|6A$OS(GL02V*+Dd*j6ElIjwn*hLW?Tx?4DFeY5zr04 zORKyxbmDkJ^08_Oe&zr{J&2XXdVPCiT=z|RtTwpEx&S>t7YQsInEJYy0q^CRr6pGA z^H;q!vQ4QPr){4eo543aZZM(o$OLRK!Hj23(2H0=3~+|@DL(hTHde-73>DHaagml8 zE`OP};AHrD9YI98$Ie!+&&pQVDVQqQfSTHXre~_scPO6+{1wg>V!^1vs7i_qTK6*% zmuc6Yi=z13c#z3Cjx$Mz0ldpjdeMoq_GK;cR{4fM$VJlKw&;D^zHJ}tv1WZRf@s<7 zVA&$ttH!fYzqYOF9wcrJcQ;usVAGaBu$L^=np9z)8f&r)X%c-|h@3*tTi@Q4A8;;^ z%63(?dn(tMg}2Up)rjAgj41X$on}~}Mlmv;D-wilO_X0JT@?qX9H|*|&@U+Nb9}nY zW)w4vj}hHQyjplf1sYc_uN1j^DAPs{@I%FtLwp_yf*ZJvo z*R8F_imCa>e{ghDlG%J)sn~?exab?-CM5+6^*^fp?M{YCEI;pElClomE zym)Vn0C0p?BA|P9qNCyKn@W!AC1va)0TdB~>}-1W2`-SNfM4_y_iFuT@=!;`a2%M> z{C~k+OQlEGu6Vx6;oc`ak7?NUcajOt$DDaH5D#4T7nb`DEv93CE+4d&1t%DO3s`1P zY)G__aMn2MI^6^B(Qmkiu=cla8`^AH2``FQhp{~Fk5BZ_+z-|@pN;&cmQPsWHyO#8 zs`+djUcM6QAtc;la0=6pQqX6670uD*|M?t8j#M)jKX3S~j>Vf8n0s}@g5!dyL(>Q_ zZ1#x;9ihz2AvP%p?A)VrWfdUR8_3#>jL%eB57>i>W;Y#o-GY!FLrU7JR0<7E$qSbI zeA#E1p3~fwY3Aba^5#92XeG`XQD}d{$CJSJToNpvyGFp+>bTT3HmJ0dDL;T-$=3TS zqZZGsPB<06Xjhz^S?#crVt$j+mk;9NV9#B1r)c^Qj&wZ!(NaP{-)6CL@u!P>O%QA> zu&NFPnGU;rEb=Z>0n&?1nGUv~<_Zk?F4ZR&;(Xy`=D#0UnE)LO1RW~RTELvtC2)Z{ z20n~zqa9l z+D7kwlQmhZFPtOxi)prkVJMQ%jP^9eED8zv5!%E8#5HyF*wtkSG8dKV z5J5d=zl&f;+{`pj1AWzF7^tNvNndv9KD-WXFSewNYy&Pv)e?#jn^cNMMn*0us-}Zy zM!JrU*Oo+QrSRHe1xRK-xGF<3n7aotr=bjV%kpRsRzvcxMrU3tV70jSB;mm42shIG z4hM0N|5*ptDp;7(kYo{d%mpF9`5Gii@nFxu ztAo{PuQ#S;O%$NRr%jW@^Xv`%#IaVrKq|bgwCuw(x3tQUgO~%D2a$v0;@X^aQtnUZ zB|H#uRGP;i+}@u-V$nZGMTv0(->|Z+TSA*4aKLH{;GStlTr;tcIW;M4=dYlTt?!hV zwa_?;2i*qrMFflCnE75405$CO)A^zBr^~7e%VKxX3$fW0GEelG%GU}@jRybn-KlUu^d^$R{MH{7H0ntC zD`(hVy9hM|RsS0R86IO0_;uwA2p(%Y)p$SSPdvJ__&kDlrEg5dff;!-F0TqS)g(>S zh5n52z1LW4 z*wW__tTEsRrrzc$JgCLOA$gsLJ>y$8^AoLzI3$%?AvNFn@wi7TK61>kw;FVUfAn>2 zMA2^)6|}bWKl>6N=Q8}Ijz6PMU6l47|B={r+je4%$MqYhnteK@THd*O~tuU-99>23G%ex#kvkX%l-N=BDIh@`gziQC^O$Ngl`e!yn{#raozh_6K#Y=T z$O(v281#@%oWkw0s_i6Dcd{nVK5A;Y91&Yk6r;qBd7kMrnF$hmj{)V~S}~b1Lcx)S zeWVEq;bfg0mOZ%0^M56LngoNX38GY96FJ(o6o=bS)$%c&Pd4atKlW}OGh?$bB>o1D zlX{oock=8j5tx{)c{cr#Qd5jsfGA?5fz-*bY(FAMR#A?Lz3Gj_Ece?^`9@`g9CN0J zB&d(Yi0Bk&P}FX?1q?=BqV}K_D9T4!baU1jL7rug7%rO6nD%`W3i|Y$cVk+alZ-7k zg{RhxRY_<) z!xyL(Ax%T~8Cz4rjLPm5a=$|`4Ss#4u)c}`KRA%uBw!6go{m9dmHOrVppj8>OiNmg zR!;$QBqh%uTae9vC3e6$iMs!*hiufPq)vQRzOiF}=AAFlX6RjnG*;H%sLbo5e3 z`&)Z(*&Xv-rbZg_5Gy+iTu#|7tYp0w>6zqU`OU7vxLU%a^xCx?JZ~NM+Ai_fyRL^z zb|54uAT~hv1=u{UOAg6a6AX%$mAMbs?cB;*;Y4Vqe~pWhy&imYK54ta8hX#MBUC+` z?@C8|=#XYXXDuoj&?y2D8VV2$$r#y zJx57(<0RHHnKOqBlqoprtwZCHp`7!abs@gVAklJbrW4SRYGv4&VOM(ApDK`0*a@ddSBk06+XV&H!U!9Z6hY_K%!usr)Dz*x@B>)$Vx z2AzUrZD@KtjCS=+d?OF(ExXn2OPRZfIhzr2%e7PuJh=w7m;-rvuFTooLgpBx7TXUt zBJ)pbB0Xmi@N6TcRclnXLbb4~uT%$qAj>YH2EQ4@{JvgVsSk7Dk)uiSQVZmw9y<<* zKlkAV`|cBxC^TjtNWPn=l>qjm$^45xZeUYMp&l|#CFMfB20L06k*iLA@$eDlNU9wi zR!AvJ4$6;+of}fF1@a)<%J)Yd`@duN`wzF}2R^ZIDF0)h`)`e=|KYYw+x`B4+cF(& z=Tu%eM$>=GQ5j0C|2R1QcShcS%faz)d8H$1@z3c_5C+iDT1D+jxWYc9H))OYazir! zPU&@%R~?aDSnmJK-AUxx7Ibn%ULAzmY2$|=6#+iPFtsaVaC6-cP55c%ySA`h=BFtS za7ov<-Qhvgmm}njSN+KMpG_r)paG2!_(pr7RHY&%9suEl9mkNL&N!Pl{LIK6O!(^q ze`vzrl@a8`z87J}2{MrDQ?QCW+ne>LcNPRd{hss9kgpTIQb*Tj!#YV|c6|TojIn2m z?=i+tu3jj4xb%l6{8eY=JJ|Ok=;#(9E``G~+%Hxi*V~755#5x2a%aJRaC3y Date: Thu, 1 Feb 2024 13:59:46 +0000 Subject: [PATCH 034/136] Update retrieve-condition.md --- input/pagecontent/retrieve-condition.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/pagecontent/retrieve-condition.md b/input/pagecontent/retrieve-condition.md index da41d7a..ed74728 100644 --- a/input/pagecontent/retrieve-condition.md +++ b/input/pagecontent/retrieve-condition.md @@ -14,7 +14,7 @@ A patient presents to be examined by a practitioner. The Practioner perofrms an ##### Patient's RA Record Retrieved
- Activity created in draw.io! + Patient's RA Record Retrieved
#### Example From d82bd886689f02f731e2aa8237635fafa3a46bdf Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:02:27 +0000 Subject: [PATCH 035/136] Update remove-ra-record.md --- input/pagecontent/remove-ra-record.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/input/pagecontent/remove-ra-record.md b/input/pagecontent/remove-ra-record.md index d12a423..8617d83 100644 --- a/input/pagecontent/remove-ra-record.md +++ b/input/pagecontent/remove-ra-record.md @@ -14,7 +14,11 @@ A patient presents to be examined by a practitioner. The Practioner perofrms an #### Patient's RA Record Removed
- Activity created in draw.io! + Patient's RA Record Removed
+#### Example +To remove a flag you must provide a reason for it being removed, for example the flag may have been created in error, or the flag may no longer apply to the patient. + +For a patient it is represented as RARecord-RemovalReason-1. This triggers the system to inactivate all Reasonable Adjustment Flag resources contained within the patient record. From 0df9dbbfec8bd6fa2b50e6289450b9a447666250 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:04:45 +0000 Subject: [PATCH 036/136] Create remove-rarecord-example.fsh --- input/fsh/examples/remove-rarecord-example.fsh | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 input/fsh/examples/remove-rarecord-example.fsh diff --git a/input/fsh/examples/remove-rarecord-example.fsh b/input/fsh/examples/remove-rarecord-example.fsh new file mode 100644 index 0000000..112e0c8 --- /dev/null +++ b/input/fsh/examples/remove-rarecord-example.fsh @@ -0,0 +1,12 @@ +Alias: $RARecord-RemovalReason-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-RemovalReason-1 + +Instance: undefined +InstanceOf: Parameters +Usage: #example +* parameter.name = "removeRARecord" +* parameter.part[0].name = "nhsNumber" +* parameter.part[=].valueString = "1100026175" +* parameter.part[+].name = "removalReason" +* parameter.part[=].valueCodeableConcept = $RARecord-RemovalReason-1#DoesntApply "The Reasonable Adjustment Flag no longer applies to the patient" +* parameter.part[+].name = "supportingComment" +* parameter.part[=].valueString = "No longer applies" From a7b66e23c2f7e988f4bca7ee3904c1484b43051c Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:06:45 +0000 Subject: [PATCH 037/136] Create remove-rarecord-example.md --- input/queries/remove-rarecord-example.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 input/queries/remove-rarecord-example.md diff --git a/input/queries/remove-rarecord-example.md b/input/queries/remove-rarecord-example.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/input/queries/remove-rarecord-example.md @@ -0,0 +1 @@ + From 74e7c43ee48676d319453ddbd5e938a478d63a4e Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:11:04 +0000 Subject: [PATCH 038/136] Update remove-rarecord-example.md --- input/queries/remove-rarecord-example.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/queries/remove-rarecord-example.md b/input/queries/remove-rarecord-example.md index 8b13789..57fa93b 100644 --- a/input/queries/remove-rarecord-example.md +++ b/input/queries/remove-rarecord-example.md @@ -1 +1 @@ - +Delete /Flag/$removerarecord From 8b631dba3504c793a53ad413a1c91d5e3fe10d37 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:14:11 +0000 Subject: [PATCH 039/136] Delete input/fsh/examples/remove-rarecord-example.fsh --- input/fsh/examples/remove-rarecord-example.fsh | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 input/fsh/examples/remove-rarecord-example.fsh diff --git a/input/fsh/examples/remove-rarecord-example.fsh b/input/fsh/examples/remove-rarecord-example.fsh deleted file mode 100644 index 112e0c8..0000000 --- a/input/fsh/examples/remove-rarecord-example.fsh +++ /dev/null @@ -1,12 +0,0 @@ -Alias: $RARecord-RemovalReason-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-RemovalReason-1 - -Instance: undefined -InstanceOf: Parameters -Usage: #example -* parameter.name = "removeRARecord" -* parameter.part[0].name = "nhsNumber" -* parameter.part[=].valueString = "1100026175" -* parameter.part[+].name = "removalReason" -* parameter.part[=].valueCodeableConcept = $RARecord-RemovalReason-1#DoesntApply "The Reasonable Adjustment Flag no longer applies to the patient" -* parameter.part[+].name = "supportingComment" -* parameter.part[=].valueString = "No longer applies" From a6464af637f95f829be13d5a82d6612360ade14d Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:15:14 +0000 Subject: [PATCH 040/136] Create 0000-remove-rarecord-example.fsh --- input/fsh/examples/0000-remove-rarecord-example.fsh | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 input/fsh/examples/0000-remove-rarecord-example.fsh diff --git a/input/fsh/examples/0000-remove-rarecord-example.fsh b/input/fsh/examples/0000-remove-rarecord-example.fsh new file mode 100644 index 0000000..112e0c8 --- /dev/null +++ b/input/fsh/examples/0000-remove-rarecord-example.fsh @@ -0,0 +1,12 @@ +Alias: $RARecord-RemovalReason-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-RemovalReason-1 + +Instance: undefined +InstanceOf: Parameters +Usage: #example +* parameter.name = "removeRARecord" +* parameter.part[0].name = "nhsNumber" +* parameter.part[=].valueString = "1100026175" +* parameter.part[+].name = "removalReason" +* parameter.part[=].valueCodeableConcept = $RARecord-RemovalReason-1#DoesntApply "The Reasonable Adjustment Flag no longer applies to the patient" +* parameter.part[+].name = "supportingComment" +* parameter.part[=].valueString = "No longer applies" From 1f585d0fbe6d1b22908951b89a7bca229d1ad78e Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:22:15 +0000 Subject: [PATCH 041/136] Update 0000-remove-rarecord-example.fsh --- input/fsh/examples/0000-remove-rarecord-example.fsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/input/fsh/examples/0000-remove-rarecord-example.fsh b/input/fsh/examples/0000-remove-rarecord-example.fsh index 112e0c8..dc8c020 100644 --- a/input/fsh/examples/0000-remove-rarecord-example.fsh +++ b/input/fsh/examples/0000-remove-rarecord-example.fsh @@ -1,7 +1,7 @@ Alias: $RARecord-RemovalReason-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-RemovalReason-1 -Instance: undefined -InstanceOf: Parameters +Instance: 0000-remove-rarecord-example +InstanceOf: Delete Usage: #example * parameter.name = "removeRARecord" * parameter.part[0].name = "nhsNumber" From 272735291e2e26c1187b0563df2c2d8d51cb79e7 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:46:59 +0000 Subject: [PATCH 042/136] Update 0000-remove-rarecord-example.fsh --- input/fsh/examples/0000-remove-rarecord-example.fsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/fsh/examples/0000-remove-rarecord-example.fsh b/input/fsh/examples/0000-remove-rarecord-example.fsh index dc8c020..2d3a39c 100644 --- a/input/fsh/examples/0000-remove-rarecord-example.fsh +++ b/input/fsh/examples/0000-remove-rarecord-example.fsh @@ -1,7 +1,7 @@ Alias: $RARecord-RemovalReason-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-RemovalReason-1 Instance: 0000-remove-rarecord-example -InstanceOf: Delete +InstanceOf: Parameters Usage: #example * parameter.name = "removeRARecord" * parameter.part[0].name = "nhsNumber" From a0947e66676bd04df31c48d112dc66bb24dc373d Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 15:31:22 +0000 Subject: [PATCH 043/136] Update remove-ra-record.md --- input/pagecontent/remove-ra-record.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/input/pagecontent/remove-ra-record.md b/input/pagecontent/remove-ra-record.md index 8617d83..2645498 100644 --- a/input/pagecontent/remove-ra-record.md +++ b/input/pagecontent/remove-ra-record.md @@ -22,3 +22,22 @@ A patient presents to be examined by a practitioner. The Practioner perofrms an To remove a flag you must provide a reason for it being removed, for example the flag may have been created in error, or the flag may no longer apply to the patient. For a patient it is represented as RARecord-RemovalReason-1. This triggers the system to inactivate all Reasonable Adjustment Flag resources contained within the patient record. + +For Removing a RA Record this query will be performed : + +``` +Post /Flag/$removerarecord +``` + +This Query will delete the Patient's RA Record using this Request Body (todo) + +Below are the codes defined by RARecord-RemovalReason-1: + +System: https://fhir.nhs.uk/STU3/CodeSystem/RARecord-RemovalReason-1 + +Code Description +Error The Reasonable Adjustment Flag was created in error +PatientDissent The patient has dissented to the creation of the Reasonable Adjustment Flag +ProxyDissent The patient’s legal proxy has dissented to the creation of the Reasonable Adjustment Flag +DoesntApply The Reasonable Adjustment Flag no longer applies to the patient +BestInterest A best interest decision was taken to remove the Reasonable Adjustments Flag From 8d7dc0701ee52dd4718430792fbe65a3cbd063df Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 15:32:34 +0000 Subject: [PATCH 044/136] Update remove-rarecord-example.md --- input/queries/remove-rarecord-example.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/queries/remove-rarecord-example.md b/input/queries/remove-rarecord-example.md index 57fa93b..568decd 100644 --- a/input/queries/remove-rarecord-example.md +++ b/input/queries/remove-rarecord-example.md @@ -1 +1 @@ -Delete /Flag/$removerarecord +Post /Flag/$removerarecord From f0cd50bf54e60db671612570a339038b5ee6a814 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 15:38:43 +0000 Subject: [PATCH 045/136] Update remove-ra-record.md --- input/pagecontent/remove-ra-record.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/input/pagecontent/remove-ra-record.md b/input/pagecontent/remove-ra-record.md index 2645498..0c2f781 100644 --- a/input/pagecontent/remove-ra-record.md +++ b/input/pagecontent/remove-ra-record.md @@ -35,9 +35,10 @@ Below are the codes defined by RARecord-RemovalReason-1: System: https://fhir.nhs.uk/STU3/CodeSystem/RARecord-RemovalReason-1 -Code Description -Error The Reasonable Adjustment Flag was created in error -PatientDissent The patient has dissented to the creation of the Reasonable Adjustment Flag -ProxyDissent The patient’s legal proxy has dissented to the creation of the Reasonable Adjustment Flag -DoesntApply The Reasonable Adjustment Flag no longer applies to the patient -BestInterest A best interest decision was taken to remove the Reasonable Adjustments Flag +¦Code¦ ¦Description¦ +-------------- ---------------------------------------------------------------------------------------- +¦Error¦ ¦The Reasonable Adjustment Flag was created in error¦ +¦PatientDissent¦ ¦The patient has dissented to the creation of the Reasonable Adjustment Flag¦ +¦ProxyDissent¦ ¦The patient’s legal proxy has dissented to the creation of the Reasonable Adjustment Flag¦ +¦DoesntApply¦ ¦The Reasonable Adjustment Flag no longer applies to the patient¦ +¦BestInterest¦ ¦A best interest decision was taken to remove the Reasonable Adjustments Flag¦ From 14deafc45e02432fce83df8142e6a4807b6a8b29 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 16:15:18 +0000 Subject: [PATCH 046/136] Create 0001-remove-rarecord-transaction-example.fsh --- .../0001-remove-rarecord-transaction-example.fsh | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 input/fsh/examples/0001-remove-rarecord-transaction-example.fsh diff --git a/input/fsh/examples/0001-remove-rarecord-transaction-example.fsh b/input/fsh/examples/0001-remove-rarecord-transaction-example.fsh new file mode 100644 index 0000000..a3f15a9 --- /dev/null +++ b/input/fsh/examples/0001-remove-rarecord-transaction-example.fsh @@ -0,0 +1,12 @@ +Instance: 0001-remove-rarecord-transaction-example +InstanceOf: Bundle +Usage: #example +* type = #transaction +* entry[0].request.method = #DELETE +* entry[=].request.url = "http://localhost:8080/fhir/Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" +* entry[+].request.method = #DELETE +* entry[=].request.url = "http://localhost:8080/fhir/Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85" +* entry[+].request.method = #DELETE +* entry[=].request.url = "http://localhost:8080/fhir/Consent/consent-example-1" +* entry[+].request.method = #DELETE +* entry[=].request.url = "http://localhost:8080/fhir/Condition/condition-example-1" From 7b31914b27c807a6f8a24122fa83fa32f5f1ecae Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 16:21:02 +0000 Subject: [PATCH 047/136] Create remove-rarecord-transaction-example.md --- input/queries/remove-rarecord-transaction-example.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 input/queries/remove-rarecord-transaction-example.md diff --git a/input/queries/remove-rarecord-transaction-example.md b/input/queries/remove-rarecord-transaction-example.md new file mode 100644 index 0000000..cea3a9f --- /dev/null +++ b/input/queries/remove-rarecord-transaction-example.md @@ -0,0 +1 @@ +Post From e4715c5adf6b16d7c019d0fe288a73c8fc3307aa Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 16:32:57 +0000 Subject: [PATCH 048/136] Update remove-ra-record.md --- input/pagecontent/remove-ra-record.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/input/pagecontent/remove-ra-record.md b/input/pagecontent/remove-ra-record.md index 0c2f781..9bea8ab 100644 --- a/input/pagecontent/remove-ra-record.md +++ b/input/pagecontent/remove-ra-record.md @@ -31,14 +31,14 @@ Post /Flag/$removerarecord This Query will delete the Patient's RA Record using this Request Body (todo) -Below are the codes defined by RARecord-RemovalReason-1: +Below link has the codes defined by RARecord-RemovalReason-1: System: https://fhir.nhs.uk/STU3/CodeSystem/RARecord-RemovalReason-1 -¦Code¦ ¦Description¦ --------------- ---------------------------------------------------------------------------------------- -¦Error¦ ¦The Reasonable Adjustment Flag was created in error¦ -¦PatientDissent¦ ¦The patient has dissented to the creation of the Reasonable Adjustment Flag¦ -¦ProxyDissent¦ ¦The patient’s legal proxy has dissented to the creation of the Reasonable Adjustment Flag¦ -¦DoesntApply¦ ¦The Reasonable Adjustment Flag no longer applies to the patient¦ -¦BestInterest¦ ¦A best interest decision was taken to remove the Reasonable Adjustments Flag¦ +The Second Query which we can perform is a Delete Transaction : + +--- +Post +--- +This Query will delete the Patient's RA Record using this Request Body [Bundle transaction](Bundle-0001-remove-rarecord-transaction-example.html) + From 5f999a67b22f33e26ee7ad2f078e808c2463a599 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 1 Feb 2024 17:37:36 +0000 Subject: [PATCH 049/136] Delete input/images/remove-rarecord.drawio.png --- input/images/remove-rarecord.drawio.png | Bin 41791 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 input/images/remove-rarecord.drawio.png diff --git a/input/images/remove-rarecord.drawio.png b/input/images/remove-rarecord.drawio.png deleted file mode 100644 index 704bd6f0644b87ac78afb45fde678463d3e79061..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41791 zcmeFZ2|SeT{y%ORj3vfWl47(-WM3x9GASy_PDLU6HpAG;z7(mXO_VIHq@ogIABu=9 zNy$2P3S-}y`Ca!6J)Z5H=YPKEeE;YCe&@WN^E~Fdulw3QpU?ZVUU!uKG3|A1o7m{+ z=++%Rbij~~juA#j$G{9{1}#4h96AO5L+@#*y`L_lcJp^SI_VOxgU7wx&e}V<+R^Qh z*QEWmLr%sK>*=*a{=g17Ics-!DO)FN2b{H=rxeD{3p9b}Zdh9 zIY}8=V_Eqf@@PdR@GluTDH&P0leGTU4tAK80d=u{POh%jJLI$!rDVWRVrEVlTdc1q z`16=C_?N5~Nk= zSj@_4$%9pZR=FMW2Y1Mz!DHwjdCiqm20t*?V8zta*9QkDN$o2q{tG+JND zP|4@Gw~eCC2}e(}-;TCArrTLdbBMjI>!V`sBM`jru_aX5(H)D5mQ z*<)Q-cDK^t4mSR)9#DhP@6H-(HFL7{a-{X$BZs1`1!_NJ=j7nHI>zD+S3GT)a}HgJW`s9(%jF z9(A&}b9KUiU;Ewda87P^UQ~8>U1`?;rER~jqm!4Nk-N1G^r|mlMevTJmzyj2B@6xp z+~H*nMuMaT`fZEDx*J>L901J7AAnH61`D9V-P7p|bs10#&d$ag2$PSUp`9mY`&7a%`HM(PQUZBO(3kT+aMzpi`^zyZXkZnK4&KHQhozdzBQ2=n1JiHZho56Z(DPR$1oT-Eu)n>2NSFOa4*!t(SFm*r^Z$g|N6<=r?i*AkiV8Q zz}1de2Q0?gb*-fRp#*qQWyuHJFSd#B#sl zSX$FshLu-d>G$u$u=2E3u3=cT{$X0%f6;mcz<&j{cK?r~wbGsyjQhU;trdR9{J-P; z|DyGQ9czu5{{^&Og`|I;h4CA-mX%v^PW}#D%gXPe@x#9lT(78|HE^wuv$pYa@&fK4 zFng&==>JXJ{+}?WyESA$JGom^&3a(gpl!Ucz=_!JYJJAeRUhj~Jzrq)*Z{W)@-FtT zn%qZ!)4>bt4xU=OIypez`R}@;S00?fdU;{pKu;RQ!2Cb`v46g;BKsHYYsgxL44Adn z%DJiFHH|FJT#nw(oB1bQIT0-y|w(ew7Qp(ZpT99iQzt}&zk z3Z!G*?SR9x-`3jGk($MYvM&JfR}y`Dz^{J<>}h2F8({xWWA*d$o`J6e>>@aE?=*l-Wt9(^0u+D^MsQBAQx!wgaheWC{g~~xX8Z+cmK};`hSOO z6=YY$Y=vtTQ8KGg`LE+!S=4X&_7A50&*fZzwh-X1;aoH@N`A|xYm($zpkM~dkpG}74$528hW*#Zn0^ytQj}lOrE84npUJPaF(z5a>Vi&Um6QJePvNfG z8f$3tJHo7SW-uV|3J&>Knr{uf{6)9se~txfPI}c}SbNZ`ZT~xvu{zrdVkrIA)BWe$ zZwkM0ntnIse=b(6pzj)f1XUDd325MLU|AG=WsG{XJtP1LgASZkcXo38 zfB`5{1;x65CTnYi+uGBeR>5oUbQX#g>|ZO`JLKeTt?l;M+kp08qX2lKWV6Taj6HZl zJJEl!MXUI0LMq6t=;1YlT(x@F3hQdys^a)p2rD&A`X|-Hs{z+v>a^DeQmIc@E5m6I zR$hQ=_Gv|&7ZB{zbaY6%!w1mDXHSn5am~e=+!-x$-@JY)?(HW7o{NV|Q{qLw3&-0> ze`{=1`Fin!aooKKGj#2(l8#mHgZd zYhG4@ULJpHiWnvmh^K<)`!FqUobF^dS$IbKcSr4PGw+zVJzPU}!?*WK#`e6A z_IzfRNs`{YgbXGx%{LR3Fl~c5SYn6tki!6 z16{v`q?m0g0l!2XY00jxxu={JTtCXv9#l_o{vwV#JJvZ&B+Fwv3Wp2aT663uwJf96 zw;?HLzp5>T^4vwlkxPb4x6<;;V6y$5hH`z8)ij#j+1e)l@; z%wYX}Ozl18Wy*}tc<2gEA!n=mo>l?z3QVOGTAz~<*6!j6lm#qwoX zxlhyc6GkmUVJDf;9$ca7lDmkO`gyPq8-qUna#pI^Az>xQD-$H)OV=M2!;j-JiIX}w zsk~ku-^CHUu=@kOzV8}A8%m`Ip6=5XQ-6`xY!s0$DNr@Lt~ZtATx($mI-GerIlhb| z^i=|vCsn8*0vra%qblHYFX9)Xgp^c+h34|E_JL%u{vBxY+cTHT351a*d*Cq}18MC~ z_>>GFrx2%FhUU*MaE*|#l*rLg7U6*UcK3Jdnx7tsQ77lBe1CMat$?_U@hx9(mMd%X zeo98bVst$NBQwX~db5Y)S(%yAo6KeT7;dxH6Phny?ITBrm2@ogls)+J%&dT2y0Ct^ zow%I1SRbj@8^I+^@)`ctRXmfOnWq={!-(|N9P4fL7G#NP2Ys5G!r^@_Ar+4iX-EyV=KLMcE5gG{zJdeXWDgIs(mD)-J@>8W zM(+M{pxZ$F*rp*5Xf=W*e*47WuI(PE7Gbc{3@OGQ&FB6Lyv~zF}%oR*LJ$EJ!rJmP!OyAI)WyGL-7&^ z@5>IfpjH$2=Zo6fFB=?VctAI%j@3C|bj4i?@7B75X85Y&7+$&8nP+@Z?DVElS!ih? z=CnB%PFeqSVE9jE+_#&b>#qv8d0LYMsG+jF+v&e_&zQg#c?! zEy)!SzNjt#=Gp~~Kxh>zWh;w)Y~I7NP&JTA{*l?%L?C+~G#20dC;}0t5yuL#$(5bC ze%;)gmDzYj!RfPQOrO<9e9O1Yw~w9{%yzNTzo!s-oV2K$pp-fuv$+=xEB zd;E|R-JaWgq45(>O@;C9UHef$5ioYkotv=5)9~18fTD)$J%sZ9VLbUNONfh&VG^&u zk?{pF%~~wwaTC1Eoj3~gjpXr{NcNgskDdo-$Flu|%MmfAfjxWS=S2}ZYF~zWmO_ZZ z{WS?qF?IZmtvPPh#Sf8UqZtp7Vlj4&lI0B^2i6Jn)No(yDkkQ8KQk{5$XgtXR3BEG z&8y1;3e^t#eo1p`qFUOwry|A|=z^QAuk9`aC2MCYGv~5&IvG{;U6*u8BBPQmYNI{> znTwHm2^+(a`r#V8=Z&AmOkzwV;7hJ=FRhnoyRk#3t-Jj49TBlzjAHO33(D z@_Zj;4m*=Oy4)&58D|WnxbGXd=h+67+#-9}NGsmq^FV>m2rkQ^&POLss-`#f=$&r0 zu~05s?58Cn%JthdRSg!-&5jaqCKoXIiL)D-L)jQ!^%}iU%P>Xj@8*dY5gW}({mpJ) z1`!90fD+KFo8g>8*$g#h)-lh|bClk3NNOfr5ewdv1k}!Qc_;xhOKQh_eSV_(d1#+1 z{A-UjiTOPe-YA05gpPJ1ECt6^dPP8f!4jj7xD^NRweQuH{Kp&jUQMI7DLl;Zb<|%y zmPDLd?9-UvNz_L<)~C3BsDI=1`L#g!QrCCXxB0LVF7jmGK|Yu$R{ctthBja+V&UZU zLThaXTYW92tkay z%h%@~nvt9%>Z$&~20Af*Em_WM_*F%I0=Bq$ecedTX0ht=mmk-)BK4y~rURTCE85TY zL^mhxVhfX*MKPf_*7j!~AKmkjv8+UlwJd-*pmY9`Km5``O%E>g?$Rh_p;t2RYdb`M zAYRJ;13`=*^=Auvgw?$luF(oRLn5~LbXYM`QDW@L_lUz^v5goRw8H`{chs#s{_M9) zEMLoXA@EgS0bj53yV8N*bx6F)bLR`l3q$Relxa)fa^_q6Qv@N9ZMSOBO)PtuF!d>M z6NFL+UaUZI+g)Hb6`+d8qe(zfq%T%#t91u0^#~V?_f)Xp887@j(8s?|HY1P61h>sw zk|$HIx8bTKNyUpKb_@%fNc}nhqJtQj?@x|(f6`qTJQfXs--A^|c8->2SgPP>m``o- zMMv)!fHCj@xMMkBy?_0<3^((YL+7FH*H*jRM*~Kn_>LCM?hU@#pIlt5hO&Np-c_1@ zku~fBM z(ga$habDBJ<+D>K%f|6HVU?-J8r+KAprdtEd-BP$>vD*eJl#A8!y@YgE)-{@2sBf6 zCwI*0%X`Q^H|XXY59in5-5^z7Q=#xf;%@V{`YW!D`ZC215D@!I%9K59+Ip3cxLrfd z`vzvx4N@cMN!jR`OQszQ5?QRD7)r;Ic2Y;B`;$?tBqjnGYe?*l)A?c|)?Rho;HYL# zYFyOLJh(Yn<#0&AkL~UKtvLXT!}@JD^{pQ%{EoG=7ddihW4kBB07V-R-Je{zD~QK{ zzT0~kKc53}K+1f)mhV9UfBGuNZF}7}-rEN$_zC(n_iKNA76zvb`dgQM>;)c#MZ8kg zEb(J$mk&K#Zty2VdzXJPvm7CJOOqdTjj{$Td`|XZ->^GvD1oRqmN*(vF|RbQfn;JR z4)3?Q976Fp0Q>@tMc5#*#o@RQI}l^Gu-6Z_IQf5-Xgc)jj1nvifea3}(qaXcAQQtB z);h%qalXs-G&`$<+JTMm(7UioOAIF*q9}N{RR@iT$T}xkbwgzGm=zM{cZ+Vm^a{o+8;F<8U(sk2;GSHAc;{9`05qlkVi z-F$U4Jw5!#$&=s8v46G!`IBo6V5=K+OralMTJf!QKi?u!z)qSA zH~5SvKvSfM(oe)CFft$x#nLUC$5$HC4k^LsVx4XypnFJ?Ggqhvd<#cx`dimfru z;pc&SN2SAXHwv0ULzkgf8pQ%bUK59?aQ!iD?Mfr@e`D=50DkiSa;z(cMr zvVUXkJhjyG0YLypa5{C|RslSsy)>%7l?s{^d8+|$+^#{!d4j`w%99ez&U*q{`zMCA zZVTj=9gSdmxR%_A2s&sRPu|Q;pZ$@VnW?w_ASVL?I5SJ@=mge-EeS9H(^r&_I#!@P2!mhVAKt1l@ zIBk&E_RuRzo8*;wbP2(b2xa3Djf0BEzzWyJu1i&U3STVz+#sko% z<2DH|g@)KsiG4e;T!|{aE0XbN$D+{-+hZs8b1hrM(*F2-|H69f<1VlwX?&jc;qgDp z5+VHp(}q3a>WG&|A!66Q&iuwq6}1&8KXUnxj|E6dD#tHtVPyK_^ZhI9 zU3e`+{|G|1TN@PfAeQj1jDKN{&);SABv;ZrXLE`*urV>+Wl>uiTKuxoixQOFaPkhd zULf-3^H3{#@1gsY#Ycy4a?S;{<$5Ugnd5U8Vi#veed8>H@<89ahimN?pS?*1l9xJo zfEi*zJRHz{De*Hz{IjlS*PO?d+H z_PJaEos6V5&pPjN)JQpM912HHhL0?@6n2VnmOc9}{vQ3x7dSYi^k*43GYgLk1ziz> zZP`tyTh#~aS|^l@H^2@S%#5_g&F5j-^BI>uuuPzc0h9DZ|HQnd-VZmk_P+~;f}_Wj z`}lk*%d-x|cCXL60@Wa7^O7>U!Qo84$LKS#AMbZ8Ui%>l4v_@=$?4`U+XSH!lWczV zkxfM&gpr)qwj8%s5DgTbTAqI!&vsQT^#ZLJP zTUepYhrr6XNj`R_x^2m-&4uSYP5C5GzNxH9R6$KP4}EkvzE6HM4!cwO!Nk_G$w{4T zOyRiJZH}TFj1WklIwsi&#kKn%YjvK^*3c&Ca+g0*UMIgm7^BtTggjz?|rzd=)!q2!g%+s!rFj{^16!_KFxM_ zFqXU5JM2F$=QXzO1>o7H`?v0&fKcW!B1Kw)$>yDw7<|*#BYGMD(xg=Pv-lg&zc0d3 zG}Ll4Eg~%g-gO*7U*l>F?CMmXZ(Ta+LiVf{Y&L&kRmrk2f0~|X+Q)(RczIg6MB4D# zdtlPuJ8A$ln?!~9Nl5+I3ouOCC3c-`7GDc78Jh2n&BKf~Z(d|5CG^!bl`V$)lXFxp z$%fC6Y1y`w`0HE`78e#?H`7z>i*9FhZ}Kni2-vVy+tdwVc>>Xk9bSH&JXxo%o-n>~ zua_ewDYC68+oeh9rEO*KsKcHmO4CWXTXhIN@7J~$1;RKVE7SlkyN>9*bzdg*0Sy+s zQ!)Y6LF*8-8W6Ny)@b9hcX1QP7$bUz`X_r-Cw0s7B)%MzceXR~z>FqzOo`6+-qaKF zy5-O(+V2ef>4E^Ct}2O4ub^bjY~AwH8ICqV`&?e=mY<`K7E|psnxIAQ8S2&^Wj`tny7>?|m5C}g>x=F~2bXS_=nEJBU04k+PoTHLhhJm$(YQ*qRk2;ll)VG}( znFv~SJGTe}6LkZ9u*FDm;9~kF?@E!#T;ejx*My>lwvxDdoDtw!i5xI8t3Q3e=0?S} zYj+gb>EU|@;zc@@pa3*o=rLZ908+3HA9=$v-tyAd~ZNn}J(*LIhjw z^OIm}%_?9&3|9YQdi5Iqftm7G^f92B2FQLOHIC>WfHwVfyi^!|TokfN9h%KtsWxe- z46v<#!>((O<*%55e`&oJLq_q9dX|>S;+O9IZDV9=1AR8pu+Q)EY5xvG#G4A~s%Kvg z81_9lAMy!t@fOv3f3#6X5cqJ{LRzp-ajaW^#Ov_EwrINGtrf2uD;Ff45r8#pqnh4A zBKyMVU}tuu%$TQJJl~ve4Wdz~G~W}ccMqjo#I>VUVSbmWBkGmD1E^b~K%M%iip$46 zAU8~y3mGuNN0p#H?~qY%(wX-K=ucs)D1VvFbL|Q5gT)vyq&i`#cc?9 z%M71lqe{lR`9Nb+QBR1Vuf(?kC(|{n)}@7V0`0@g9zq z@8Z+aNYREvX81H*sqH)+Y%7wwI+#>~?DZ936}=(OUyD-!9s{JX5f=cSSY4oQ)^zDo zDJNUl#s|i)qoGagNYM5KP`icNu>?wr{mqW6UVAvK(IZm4DI9L@b0;jt&TIU18Z@Ug z>+VR60IEyVy)C3144e*Y4AP0!i8b1}^Z+>sGwE@Ib}Qh^KZ(4?N8RnC&Q1=nTSe+_ zA4G6}JIfYUQX-iK?KZ2ES4ktqjJ8`g)Dqb3FfWx=iYt6}KSI9by=-+m4GhR6zxg2G z5A~z(Re{a8T}NY!ZyN4H*pCn!z{w%bMTa564w26Y!whMJ6C$io(-3u#ChtfY$OtWwpl*Wk`7z+gIK;l`g@R{GlsN#~Ijm`1`%P+d z@W+AMI>kdB$uH_uK`{Ui9hvJxhcgZ^Ll_FeE?7C8`7D2t{G-2;bqC&igLax%~9vna}`;SnRpJz1Lw z^Vhaff}kQ|X8G*}_V%Uu$*kZQK~(LF(?u=On-s+tN0%383#z3FZS4V*H7rYk-(Fg? z1Xvos#PuBkxv54*FF%#9nU%UrdFLkko8_LfJU0MP zm%(x^wtp)V+DWVjbFuf5O3-nl3art>q|YzX!eQSuqlbFuY8SlzzKkFND3 zN{;71Et#RTx(?JV5X8os+`hfMPZ=c>fXDNRn1uHm`ud_-Cjm-V?M)9XOp4;&nXl;b zHP`9$le|*}K6zd5A`5~SQiH34qSU01?bQ@{VY&;R&#wn5hx~!V0e5%7yDy*6-YuH9 zH!N05M1L>6qM1ov!@A*D%o6Mjqd{sZQ`jMgx}=fYQm0zfw{=oTETiNeq6RI~6cqPMS=n6eg$z=KBxck8H~uNNTl&_g<&~PE=M{*A@BN!Q{j7`_AF) zCsWYjuTMmQ=zl>1CVy9gU2e}+l{OS%zQ&cg=dMe}2Un?D=U#cC`706FR({cr{x;uH zGc}j%LleZByNcC`xT;+w^5SUSlz-y<(M#fH_at}Kmbtd&%4R)GdI9n)H35_IO2r`) z@~R!ebt8ihW9%bR*z=x4x{Kf9qUjDM^qczj`IGhKC^|#H_bL)+7K?!1$amN4V4Q zkyexaHS5^Jx($WYzZDHWxNOlUbY6=olu#RdX_2jX`UO@Q+uBj&zsNE>-|*`bd-ylWaq+U5A&mAO_SO?={=_`IwC^L=&*~+Vea<+$pLk%0JFGvTJo&vsD zGqR2Fp-w#(J3kqQjFTX%65iMG%<1*zQv!Ta8oufUP2411wp@B3v2em-ru@eJ8Qg=! zXJ3H2aH+WMlNs1QAJ?``Z{LuQ+WhmyS=Gh%42PM5qB=tF3}MWCwgDSF5JXv2^Q{zN zY_pCehYFr86VA7}y6@vU>sh|dD^9a9s1KfcX@$-?nwIvC9~Q*=aR6k3hq1HmzLu2J z7XsWZ^LB~|Yv4~J=Ik^(ZqE`Z%gr2>AY_mrS^hMKa(~WL&GJld-1<}J`eI2-lXZ0+ z4g4TC$y8c-eH&Mc@hLY1P%xIx>C3mp`R|r|)t<>sRxNCGYkyUtI@xxa^hiXzpvTht zmI^5zP5QPi#$B6pLDRR)IyinkJtL<;=Ry!MZas^1;gm3GK9JItbdJn~cNkThZTwu9 zSK+HVbXE0-JIZ;^gEXBfFs!vsCF3DUAK}G^-52dyrN8gh+lCI&6g4>TvYs>-&rY+2 z1&mp`7!0lPJ9<-3-CkS5zFp8co#fM6F*0N!q1lTv9*;((=hI z>81~}{JUu(gV_+&z@Y7JbC0anfKcsI@Z2l4*kzagXgE06|dTW4( zdrvfKMp~e%?@~fW5nszVGz*)~-{ZKkNH;Ts!*(`9o@wr;3n&)yUa^82=#3Wz5^} zJM-~Z=ePO3^$2gl6ubsiIt|y~H>W)Ay>t_4s)^*FVjECI&mJ3~J5}rA80Le`gjDWw zX)OzdIS0=YzevC*vKQvL@5JiFPXxkZQw8RgBv1?e373Xy5OdvI<0b{8UFMA}*o<|} zJY+2M=9{GN?Cp=Yd7V?IGFnJR2N%Cd%XLl5eVSXTOeyYo(%q(q)v1lvEpM+efdF^! z_nLPxquxU(^&dhl8J zwtvmxid(B%qjEp4To*AUf{381*p1IV@!Soulr!FEC-x?23Z1f^YKmr`(R}EV^ewBd zo&0bM$&7HWC0bCiaruMOPKWB?{eeqz50l9gvUt0pW4=FjW#UGIs@;9hu*x&@!R~K$ zwBSnR5a2@eqdV6#{0P^NWrQ63P<_}EPBM6Nrux_H7HvqMzg|AM_;7?YEjspr#E*jN^NMKq3ZdzV%xmUz z`zG6hd}nWukjmpuKt|D6awTRq!v&!-HHn*i=vzUTW z;-bs!ecxyt)<1C4#}MJQefPLx)h^BPa*oUXH>p;P-_5P3L452!D<6B9g|D4;C+gV$B`m%`$ZIs)v zo-@|sJ5QNB$ZP3Km<1Y)&N5I-39VvFx*~;1r-7yo|EMxmui1W{mA9?km+1BcdHfaT zS?lyic2Zr(-j*#v-|m}U7qV@-EWP}7d9t0$P93M@HX+uGVPg<5X$j+lIaTnFHi)G3 zr;EpN3hV<0@owIWP7$5elp%i7Jb&&Q$x`#c3AR3B zdC@4MAx2i{30h;z;4_?)eknWf`1Xb#pFx27vZBQxL2ub>MD}8_J@)nY8;;U5g-&z4 zRfEXE#PCDIGL}&a;wA*_%pSYSQGq#pMUwZZs*5XpJK8H?HiM;2I61)Uoho1$^xIIX zRoI8nXIV(MP&WO<2EF+nwwuBks;)ceuO8HxNU22~$aYBK_9mou<^<;vi-w{zGyE42 zOz3SlR406o3H-RO(PKXaqee+o5u1U{d_#n4bhEvu)Rqu47hV;N6{<&fD~No_w5Uy1 z^BQVN&L!Mgcz>5*1gb_s-B@4sv5W(4f%*a*+D-i6mUCAfFz($jlVjlGY`7tz3Ot>b~9 z?ihXEjCN~#rjUPaBFaD|THEP!`o|Vsf_rLGz%7+g$!(l+z`b*BWN0nlr5PIfkdr}@ zhidd+ws#kR4y1tSJ9Q~VP#y$TNW?#lU}~N>dyO~(`EbJkHpcy zPVU(T9qHVdqQw#cZniMn{a3bu4M@{es@9AP?>L?D-MoV|PV>UV5xSjvGCSrpihtTtDxe-ur8qP7$Rp8~icU^ixUt$mcq z0n*^ZtGM93eraxETV9fOa*cS^smq5TNp5woP{6Q50OTS2QSMD zGT-#HmF%B^6i9xin~yN18lOua$uUU(nkE0+EU+G`DRb8gCNz86Su=-sSVg1^V8VZJ z;u9>afUEfy0r@!WHj325xB|^rl#C{}P-(itK_B&^ zy1-c$uH3qSC4gN{5gRiBQE$;u(#~`a#PG@vQr#Zs4s4)pOu+~XR{NHm z%i@v_N#1haY<8Thun?0JxT0mk?_MD)LAR38uMbTTpxUoW_1`7|QTq zCu5v+7O;g~@}yf`+u9e^#=7q2P`bNzwj22;fuazhQ+!ZP$T6JC`7JURbfA>its_)2 zAL-dZT;N4ne}wx^uvQpL!Z)0rrsSS$B8U6e2*-$j$ut#oNkxv8mkdzI&iJ|anO`O0 zLjJhSg4xo@UGS6Z44s=is`QG^qwmi zkgtHoqf=9aK(Z8SGAs&HBEp!y0rq7Ev4kh&2c|+v3K3;$nz*Af(TFXq zm^hm!*yQ>E`7&XHwPeq&`!5SWF^8H`$(>=Mk_)1zAsWrJ1-%)4y~8)ZSy(MAy*cRI zv4^U#Se?iK&3RvZ(6r9-$imjG((nm8t=Q^dabUO9qCk48GHyrTrA=;UP1zWTUmJp3 zfMn0q9Hmw&>^)2chQv3qIS|V#&_X*$+N15^o7Tg~BNWmpz5GbZNL+J+NbtlpO2%A& zF)l(w5Abf~x!P~RH zkY6OK!pQ3=O=io4W3>j@DiZSw|#nQ&Aq&6kaB@bA8S9PL5v`@LhgD z7*W5I_UVQQ0sSpmtydi%w8+vN(dU=Sp?Fft_|2=1QAA-tRektwfgcxOMggvhdAD+| z1AD6q#MRTq&64ciP~�G;})R59dXmlh_yY5|-pGVc_yc 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 Date: Thu, 1 Feb 2024 17:38:02 +0000 Subject: [PATCH 050/136] Add files via upload --- input/images/remove-rarecord.drawio.png | Bin 0 -> 42395 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 input/images/remove-rarecord.drawio.png diff --git a/input/images/remove-rarecord.drawio.png b/input/images/remove-rarecord.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..22f52f1c1363aaaa2ff5f4976b333ef99ad73bad GIT binary patch literal 42395 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 T+`^v?{_ND Date: Wed, 7 Feb 2024 01:15:34 +0000 Subject: [PATCH 051/136] Feature/refactor run script (#7) * all examples in one page, added more queries * fixed links * add flag detail extension examples * do extension in different branch * update server examples * simplify run script and naming * fix run script, remove sushi step from pipeline and add to script * change naming convention to handle ID's better * fix conflicts * fix conflicts --------- Co-authored-by: Declan Kieran --- .github/workflows/publish.yml | 5 +- .../0005-add-condition-transaction-example.md | 1 + .../0006-add-condition-transaction-example.md | 1 + .../0007-add-condition-transaction-example.md | 1 + input/ci/queries/0008-get-all-flags.md | 1 + input/ci/queries/0009-get-flag-by-category.md | 1 + .../0010-get-flag-by-category-and-code.md | 1 + input/ci/queries/0011-delete-flag-by-id.md | 1 + ... => 0001-FlagCategory-searchparameter.fsh} | 2 +- ....fsh => 0002-FlagCode-searchparameter.fsh} | 2 +- ...ddConditionTransactionExample1-bundle.fsh} | 2 +- ...ddConditionTransactionExample2-bundle.fsh} | 13 ++- input/pagecontent/add-ra-record.md | 4 +- input/pagecontent/server-examples.md | 30 +++--- ...001-add-condition-transaction-example.1.md | 1 - ...002-add-condition-transaction-example.1.md | 1 - ...002-add-condition-transaction-example.2.md | 1 - .../queries/DELETE-0008-delete-flag-by-id.md | 1 - input/queries/READ-0001-get-all-flags.md | 1 - .../queries/READ-0002-get-flag-by-category.md | 1 - ...READ-0003-get-flag-by-category-and-code.md | 1 - scripts/run-examples.sh | 97 ++++++++----------- 22 files changed, 83 insertions(+), 86 deletions(-) create mode 100644 input/ci/queries/0005-add-condition-transaction-example.md create mode 100644 input/ci/queries/0006-add-condition-transaction-example.md create mode 100644 input/ci/queries/0007-add-condition-transaction-example.md create mode 100644 input/ci/queries/0008-get-all-flags.md create mode 100644 input/ci/queries/0009-get-flag-by-category.md create mode 100644 input/ci/queries/0010-get-flag-by-category-and-code.md create mode 100644 input/ci/queries/0011-delete-flag-by-id.md rename input/fsh/examples/{0000-flag-category-searchparameter.fsh => 0001-FlagCategory-searchparameter.fsh} (88%) rename input/fsh/examples/{0000-flag-code-searchparameter.fsh => 0002-FlagCode-searchparameter.fsh} (88%) rename input/fsh/examples/{0001-add-condition-transaction-example.fsh => 0003-AddConditionTransactionExample1-bundle.fsh} (98%) rename input/fsh/examples/{0002-add-condition-transaction-example.fsh => 0004-AddConditionTransactionExample2-bundle.fsh} (92%) delete mode 100644 input/queries/0001-add-condition-transaction-example.1.md delete mode 100644 input/queries/0002-add-condition-transaction-example.1.md delete mode 100644 input/queries/0002-add-condition-transaction-example.2.md delete mode 100644 input/queries/DELETE-0008-delete-flag-by-id.md delete mode 100644 input/queries/READ-0001-get-all-flags.md delete mode 100644 input/queries/READ-0002-get-flag-by-category.md delete mode 100644 input/queries/READ-0003-get-flag-by-category-and-code.md diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 982998e..fd63faf 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -37,13 +37,10 @@ jobs: - name: Run FHIR server (TODO - load package from vars and validate - maybe just let the publisher handle that...) run: docker run -d -p 8080:8080 -e hapi.fhir.daoconfig_client_id_strategy=UUID -e hapi.fhir.client_id_strategy=ANY hapiproject/hapi:latest - - name: Convert FSH to JSON and set up resources folder in input - run: sushi . - - name: Sleep to give server time to start run: sleep 90 - - name: Load examples and run queries to be added to IG + - name: Convert FSH, load examples and run queries to be added to IG run: ./scripts/run-examples.sh - name: Build IG diff --git a/input/ci/queries/0005-add-condition-transaction-example.md b/input/ci/queries/0005-add-condition-transaction-example.md new file mode 100644 index 0000000..35ce7e1 --- /dev/null +++ b/input/ci/queries/0005-add-condition-transaction-example.md @@ -0,0 +1 @@ +GET /Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient diff --git a/input/ci/queries/0006-add-condition-transaction-example.md b/input/ci/queries/0006-add-condition-transaction-example.md new file mode 100644 index 0000000..35ce7e1 --- /dev/null +++ b/input/ci/queries/0006-add-condition-transaction-example.md @@ -0,0 +1 @@ +GET /Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient diff --git a/input/ci/queries/0007-add-condition-transaction-example.md b/input/ci/queries/0007-add-condition-transaction-example.md new file mode 100644 index 0000000..ad0f11f --- /dev/null +++ b/input/ci/queries/0007-add-condition-transaction-example.md @@ -0,0 +1 @@ +GET /Flag?patient:Patient.identifier=9912003888 \ No newline at end of file diff --git a/input/ci/queries/0008-get-all-flags.md b/input/ci/queries/0008-get-all-flags.md new file mode 100644 index 0000000..06eace2 --- /dev/null +++ b/input/ci/queries/0008-get-all-flags.md @@ -0,0 +1 @@ +GET /Flag/ \ No newline at end of file diff --git a/input/ci/queries/0009-get-flag-by-category.md b/input/ci/queries/0009-get-flag-by-category.md new file mode 100644 index 0000000..8cb8491 --- /dev/null +++ b/input/ci/queries/0009-get-flag-by-category.md @@ -0,0 +1 @@ +GET /Flag?category=NRAF \ No newline at end of file diff --git a/input/ci/queries/0010-get-flag-by-category-and-code.md b/input/ci/queries/0010-get-flag-by-category-and-code.md new file mode 100644 index 0000000..ff67fc0 --- /dev/null +++ b/input/ci/queries/0010-get-flag-by-category-and-code.md @@ -0,0 +1 @@ +GET /Flag?category=NRAF&code=001 \ No newline at end of file diff --git a/input/ci/queries/0011-delete-flag-by-id.md b/input/ci/queries/0011-delete-flag-by-id.md new file mode 100644 index 0000000..e8e2dc5 --- /dev/null +++ b/input/ci/queries/0011-delete-flag-by-id.md @@ -0,0 +1 @@ +DELETE /Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85 \ No newline at end of file diff --git a/input/fsh/examples/0000-flag-category-searchparameter.fsh b/input/fsh/examples/0001-FlagCategory-searchparameter.fsh similarity index 88% rename from input/fsh/examples/0000-flag-category-searchparameter.fsh rename to input/fsh/examples/0001-FlagCategory-searchparameter.fsh index 5ab4397..8e617dd 100644 --- a/input/fsh/examples/0000-flag-category-searchparameter.fsh +++ b/input/fsh/examples/0001-FlagCategory-searchparameter.fsh @@ -1,4 +1,4 @@ -Instance: 0000-flag-category-searchparameter +Instance: FlagCategory InstanceOf: SearchParameter Usage: #definition * url = "http://localhost:8080/fhir/SearchParameter/FlagCategory" diff --git a/input/fsh/examples/0000-flag-code-searchparameter.fsh b/input/fsh/examples/0002-FlagCode-searchparameter.fsh similarity index 88% rename from input/fsh/examples/0000-flag-code-searchparameter.fsh rename to input/fsh/examples/0002-FlagCode-searchparameter.fsh index 4d71708..a6c2e09 100644 --- a/input/fsh/examples/0000-flag-code-searchparameter.fsh +++ b/input/fsh/examples/0002-FlagCode-searchparameter.fsh @@ -1,4 +1,4 @@ -Instance: 0000-flag-code-searchparameter +Instance: FlagCode InstanceOf: SearchParameter Usage: #definition * url = "http://localhost:8080/fhir/SearchParameter/FlagCode" diff --git a/input/fsh/examples/0001-add-condition-transaction-example.fsh b/input/fsh/examples/0003-AddConditionTransactionExample1-bundle.fsh similarity index 98% rename from input/fsh/examples/0001-add-condition-transaction-example.fsh rename to input/fsh/examples/0003-AddConditionTransactionExample1-bundle.fsh index 9ea32de..a9dc660 100644 --- a/input/fsh/examples/0001-add-condition-transaction-example.fsh +++ b/input/fsh/examples/0003-AddConditionTransactionExample1-bundle.fsh @@ -8,7 +8,7 @@ Alias: $v3-DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperatio Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 Alias: $RARecord-AdjustmentCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1 -Instance: 0001-add-condition-transaction-example +Instance: AddConditionTransactionExample1 InstanceOf: Bundle Usage: #example * type = #transaction diff --git a/input/fsh/examples/0002-add-condition-transaction-example.fsh b/input/fsh/examples/0004-AddConditionTransactionExample2-bundle.fsh similarity index 92% rename from input/fsh/examples/0002-add-condition-transaction-example.fsh rename to input/fsh/examples/0004-AddConditionTransactionExample2-bundle.fsh index c4d3e7f..1eabd0e 100644 --- a/input/fsh/examples/0002-add-condition-transaction-example.fsh +++ b/input/fsh/examples/0004-AddConditionTransactionExample2-bundle.fsh @@ -6,23 +6,28 @@ Alias: $RARecord-FlagCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-F Alias: $v3-DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 -Instance: 0002-add-condition-transaction-example +Instance: AddConditionTransactionExample2 InstanceOf: Bundle Usage: #example * type = #transaction * entry[0].fullUrl = "urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" +* entry[=].resource = patient-example-1 * entry[=].request.method = #PUT * entry[=].request.url = "Patient?identifier=9912003888" * entry[+].fullUrl = "urn:uuid:959fbc3c-0907-419e-aa3d-ab88f2d90c5e" +* entry[=].resource = consent-example-1 * entry[=].request.method = #PUT * entry[=].request.url = "Consent?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" -* entry[+].fullUrl = "urn:uuid:fba99f70-fe1d-42e2-b77a-916e44b53c19" -* entry[=].request.method = #PUT -* entry[=].request.url = "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" * entry[+].fullUrl = "urn:uuid:41a84a93-1c95-4162-b13c-1c617509e6e2" +* entry[=].resource = condition-example-1 * entry[=].request.method = #PUT * entry[=].request.url = "Condition?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" +* entry[+].fullUrl = "urn:uuid:fba99f70-fe1d-42e2-b77a-916e44b53c19" +* entry[=].resource = master-flag-example-1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" * entry[+].fullUrl = "urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85" +* entry[=].resource = condition-flag-example-1 * entry[=].request.method = #PUT * entry[=].request.url = "Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85" * entry[+].fullUrl = "urn:uuid:b19124e9-f742-49b4-9247-5c2d58ac1ef4" diff --git a/input/pagecontent/add-ra-record.md b/input/pagecontent/add-ra-record.md index 7a484e1..fd07b6a 100644 --- a/input/pagecontent/add-ra-record.md +++ b/input/pagecontent/add-ra-record.md @@ -41,7 +41,7 @@ The practioner decides to record a condition. This could be done with individua The master Flag and condition Flag (and associated Condition) resources are included and have the Provence resource as contained resources. This example could be modified to include a new condition just by adding the new Condition and Flag resource as this transaction is fully idempotent. The next example will show this.

-[Example Transaction: Add condition resources in a Transaction](Bundle-0001-add-condition-transaction-example.html). +[Example Transaction: Add condition resources in a Transaction](Bundle-AddConditionTransactionExample1.html).

NOTE: TODO discuss how provenace could be added after (i.e. not contained), but not in a transaction. If provence needed to be linked to a versioned resource (seems reasonable), this isn't supported https://build.fhir.org/bundle.html#references. Also see https://chat.fhir.org/#narrow/stream/179166-implementers/topic/Provenance.20in.20a.20bundle. Using an etag would work. If the provenance was created after and took the etag of the resource from the response, which should come back for each resource in transaction, the provenance.target could then be set to a versioned url (assuming this was required). Benefits of this would be ability to expand the scope of the provenace. If it really doesn't have a lifetime outside of the resource, contained is probably tidier but definetly less flexible. More discussion here ttps://chat.fhir.org/#narrow/stream/179166-implementers/topic/Transaction.20Bundle.20with.20Provenance/near/402326516. @@ -51,7 +51,7 @@ The master Flag and condition Flag (and associated Condition) resources are incl The second example given here simply adds conditions to the previous transaction resource to demonstrate the ability to add new conditions to the same data structure and reply in an idempotent way. The request entry in the transaction Bundle for the second condition uses the uuid from the fullUrl on the Bundle entry to use in the URL for the PUT method. The first uses the patient uuid as a search parameter for the PUT. A uuid would be the preferred method to construct the uuid for the fullUrl in the Bundle entry, so this should be a reasonable example. This example is just to demonstrate ReSTful capabilities of the FHIR spec.

-[Example Transaction: Additional condition and flag added to previous Transaction](Bundle-0001-add-condition-transaction-example.html). +[Example Transaction: Additional condition and flag added to previous Transaction](Bundle-AddConditionTransactionExample2.html).

TODO: maybe cover other ways of doing this, all POST's, if-match, X-provenance, batch tranaction etc... diff --git a/input/pagecontent/server-examples.md b/input/pagecontent/server-examples.md index 398cc24..9a984d6 100644 --- a/input/pagecontent/server-examples.md +++ b/input/pagecontent/server-examples.md @@ -48,17 +48,19 @@ TODO ##### Example 2 -The first example [Bundle transaction](Bundle-0001-add-condition-transaction-example.html) adds an RA record consisting of +The first example [Bundle transaction](Bundle-AddConditionTransactionExample1.html) adds an RA record consisting of + * a Patient resource * a Consent resource * a (master) Flag resource (is this really needed?) * a Condition resource (associated with the following Flag) * a Flag resource (associated with the Condition) + These resources are contained in a transaction Bundle, which provides atomicity as well as a more network efficent call. Each Flag resource (TODO embed in all or make separate)has a Provenance resource embedded in it. (TODO maybe a futher discussion section somewhere on options for provenance, i.e. linking to versions, _history and transaction considerations, options to use etag or X-provenance). -Another example [Bundle transaction](Bundle-0002-add-condition-transaction-example.html) modifies the first transaction by adding additional resources for another Condition and adjustment (Flag). +Another example [Bundle transaction](Bundle-AddConditionTransactionExample2.html) modifies the first transaction by adding additional resources for another Condition and adjustment (Flag). The transactions are using PUT's to provide (upsert)[https://hl7.org/fhir/http.html#upsert] functionality. The HAPI Starter Server (provided via docker) supports this part of the specification. @@ -81,12 +83,14 @@ This query will return the Patient resource using the patients NHS number (/Flag ``` -* [Query output](Bundle-QUERY-OUTPUT--READ-0001-get-all-flags.html) +* [Query output](Bundle-QUERY-OUTPUT--0008-get-all-flags.html) #### Get Flag by Category -**Note:** this requires a [custom SearchParameter](SearchParameter-0000-flag-category-searchparameter.html) +**Note:** this requires a [custom SearchParameter](SearchParameter-FlagCategory.html) Query: ``` GET /Flag?category=NRAF ``` -* [Query output](Bundle-QUERY-OUTPUT--READ-0002-get-flag-by-category.html) + +* [Query output](Bundle-QUERY-OUTPUT--0009-get-flag-by-category.html) #### Get Flag by Category and Code -**Note:** this requires a [custom SearchParameter](SearchParameter-0000-flag-code-searchparameter.html) +**Note:** this requires a [custom SearchParameter](SearchParameter-FlagCode.html) Query: ``` GET /Flag?category=NRAF&code=001 ``` -* [Query output](Bundle-QUERY-OUTPUT--READ-0003-get-flag-by-category-and-code.html) + +* [Query output](Bundle-QUERY-OUTPUT--0010-get-flag-by-category-and-code.html) #### Get Flag by Category and Code and supporting resources @@ -142,7 +148,7 @@ Query: GET /Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85 ``` -* [Query output](OperationOutcome-QUERY-OUTPUT--DELETE-0008-delete-flag-by-id.html) +* [Query output](OperationOutcome-QUERY-OUTPUT--0011-delete-flag-by-id.html) #### POST to /Resource diff --git a/input/queries/0001-add-condition-transaction-example.1.md b/input/queries/0001-add-condition-transaction-example.1.md deleted file mode 100644 index 0108957..0000000 --- a/input/queries/0001-add-condition-transaction-example.1.md +++ /dev/null @@ -1 +0,0 @@ -Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient diff --git a/input/queries/0002-add-condition-transaction-example.1.md b/input/queries/0002-add-condition-transaction-example.1.md deleted file mode 100644 index 0108957..0000000 --- a/input/queries/0002-add-condition-transaction-example.1.md +++ /dev/null @@ -1 +0,0 @@ -Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient diff --git a/input/queries/0002-add-condition-transaction-example.2.md b/input/queries/0002-add-condition-transaction-example.2.md deleted file mode 100644 index 6d74c1b..0000000 --- a/input/queries/0002-add-condition-transaction-example.2.md +++ /dev/null @@ -1 +0,0 @@ -Flag?patient:Patient.identifier=9912003888 \ No newline at end of file diff --git a/input/queries/DELETE-0008-delete-flag-by-id.md b/input/queries/DELETE-0008-delete-flag-by-id.md deleted file mode 100644 index 568efb7..0000000 --- a/input/queries/DELETE-0008-delete-flag-by-id.md +++ /dev/null @@ -1 +0,0 @@ -Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85 \ No newline at end of file diff --git a/input/queries/READ-0001-get-all-flags.md b/input/queries/READ-0001-get-all-flags.md deleted file mode 100644 index e67ba25..0000000 --- a/input/queries/READ-0001-get-all-flags.md +++ /dev/null @@ -1 +0,0 @@ -Flag/ \ No newline at end of file diff --git a/input/queries/READ-0002-get-flag-by-category.md b/input/queries/READ-0002-get-flag-by-category.md deleted file mode 100644 index a567164..0000000 --- a/input/queries/READ-0002-get-flag-by-category.md +++ /dev/null @@ -1 +0,0 @@ -Flag?category=NRAF \ No newline at end of file diff --git a/input/queries/READ-0003-get-flag-by-category-and-code.md b/input/queries/READ-0003-get-flag-by-category-and-code.md deleted file mode 100644 index 6ea59c7..0000000 --- a/input/queries/READ-0003-get-flag-by-category-and-code.md +++ /dev/null @@ -1 +0,0 @@ -Flag?category=NRAF&code=001 \ No newline at end of file diff --git a/scripts/run-examples.sh b/scripts/run-examples.sh index e6a74d8..495ab56 100755 --- a/scripts/run-examples.sh +++ b/scripts/run-examples.sh @@ -4,73 +4,62 @@ # Probably makes more sense just to describe the queries and add output in statically, rather trying to combine integrations testing # into the build of the IG. See if it serves as a useful example... +# TODO - Make the script runnable from any path, currently needs to be ran from root of repo +SCRIPT_ROOT=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ); + +# Use SUSHI to generate resources from fsh +sushi . + SERVER_BASE="http://localhost:8080/fhir/" HEADERS="Content-type:application/fhir+json;fhirVersion=4.0" -# TODO - Make the script runnable from any path -SCRIPT_ROOT=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ); +# TODO Parameterise this to make it general for sushi and standalone hl7 publisher, few other things would need tweaked as well... +FSH_EXAMPLES_DIR=input/fsh/examples +FSH_GENERATED_DIR=fsh-generated/resources +QUERIES_DIR=input/ci/queries # Make resources folder if it doesn't already exist mkdir -p ./input/resources -for EXAMPLE in ./input/fsh/examples/*; do - - # Get the filename from the path - EXAMPLE=$(echo $EXAMPLE | awk -F '/' '{print $5}' | awk -F '.' '{print $1}'); - - # This relies on SUSHI having been ran to generate JSON representations of the resources. - GENERATED=$(echo ./fsh-generated/resources/*$EXAMPLE*); - - # Sushi will prepend the name of the Resource, which will be used in the server calls. - RESOURCE_NAME=$(echo $GENERATED | awk -F '/' '{print $4}' | awk -F '-' '{print $1}'); - - # Assumption here that Bundle examples will be transactions, guessing it'll fail if not... - # Set RESOURCE_NAME to empty string so post is made to the base server url. - if [ "$RESOURCE_NAME" == "Bundle" ]; then - RESOURCE_NAME="" - fi; - - # Post the resource - curl -X POST -H $HEADERS -d @${GENERATED} $SERVER_BASE$RESOURCE_NAME; - - for QUERY_FILE in ./input/queries/$EXAMPLE*; do - # Check if none found and skip loop, otherwise will loop on unexpanded path, todo, write this in a real language. - if [ "${QUERY_FILE%.*}" = "" ]; then - continue - fi; - - # Filename of query (minus extension) must match the filename of the example posted. - QUERY=$(cat ${QUERY_FILE%.*}*); +for file in $(find {$FSH_EXAMPLES_DIR,$QUERIES_DIR} -type f | sort -t\/ -k3); do + case $(dirname $file) in - # Strip the path - QUERY_FILE=$(echo $QUERY_FILE | awk -F '/' '{print $4}'); + $FSH_EXAMPLES_DIR) + # Get the example ID from the filename + EXAMPLE_ID=$(basename ${file%.*} | awk -F '-' '{print $2}'); - # Run corresponding query, change the ID of the bundle to something readable and output to resources in input to be included in IG build - curl $SERVER_BASE$QUERY | jq '.id = "QUERY-OUTPUT--'${QUERY_FILE%.*}'"' > ./input/resources/QUERY-OUTPUT--${QUERY_FILE%.*}.json - done; + # Construct path to generated JSON resource - TODO this implies the id will be unique and not a subset of another... + GENERATED=$(echo ./$FSH_GENERATED_DIR/*$EXAMPLE_ID*); + + # Sushi will prepend the name of the Resource, which will be used in the server calls. + RESOURCE_NAME=$(echo $GENERATED | awk -F '/' '{print $4}' | awk -F '-' '{print $1}'); -done; + # Assumption here that Bundle examples will be transactions, guessing it'll fail if not... + # Set RESOURCE_NAME to empty string so post is made to the base server url. + if [ "$RESOURCE_NAME" == "Bundle" ]; then + RESOURCE_NAME="" + fi; -# Do all other READ queries -for QUERY_FILE in ./input/queries/READ*; do - # Filename of query (minus extension) must match the filename of the example posted. - QUERY=$(cat ${QUERY_FILE%.*}*); + curl -X POST -H $HEADERS -d @$GENERATED $SERVER_BASE$RESOURCE_NAME; + ;; - # Strip the path - QUERY_FILE=$(echo $QUERY_FILE | awk -F '/' '{print $4}'); + $QUERIES_DIR) + # Get HTTP verb and Query path + QUERY=$(cat $file); - # Run corresponding query, change the ID of the bundle to something readable and output to resources in input to be included in IG build - curl $SERVER_BASE$QUERY | jq '.id = "QUERY-OUTPUT--'${QUERY_FILE%.*}'"' > ./input/resources/QUERY-OUTPUT--${QUERY_FILE%.*}.json -done; + # Tokinise the query string, ReST verb and path separated by space + QUERY_TOKENS=(${QUERY// / }) -# Do all other DELETE queries -for QUERY_FILE in ./input/queries/DELETE*; do - # Filename of query (minus extension) must match the filename of the example posted. - QUERY=$(cat ${QUERY_FILE%.*}*); + # Strip the path and the extension + QUERY_FILE=$(basename $file | awk -F '.' '{print $1}'); - # Strip the path - QUERY_FILE=$(echo $QUERY_FILE | awk -F '/' '{print $4}'); + # Run the query and output the result + curl -X ${QUERY_TOKENS[0]} $SERVER_BASE${QUERY_TOKENS[1]} | jq '.id = "QUERY-OUTPUT--'$QUERY_FILE'"' > ./input/resources/QUERY-OUTPUT--$QUERY_FILE.json + ;; - # Run corresponding query, change the ID of the bundle to something readable and output to resources in input to be included in IG build - curl -X DELETE $SERVER_BASE$QUERY | jq '.id = "QUERY-OUTPUT--'${QUERY_FILE%.*}'"' > ./input/resources/QUERY-OUTPUT--${QUERY_FILE%.*}.json -done; \ No newline at end of file + *) + echo "Unknown directory: $(dirname $file)" + exit 1 + ;; + esac +done From 04bf0c42af12c67558d4449c78cb27642a5dcbd2 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 7 Feb 2024 15:56:04 +0000 Subject: [PATCH 052/136] Update remove-ra-record.md --- input/pagecontent/remove-ra-record.md | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/input/pagecontent/remove-ra-record.md b/input/pagecontent/remove-ra-record.md index 5a1a1a7..c761533 100644 --- a/input/pagecontent/remove-ra-record.md +++ b/input/pagecontent/remove-ra-record.md @@ -19,26 +19,3 @@ A patient presents to be examined by a practitioner. The Practioner perofrms an #### Example -To remove a flag you must provide a reason for it being removed, for example the flag may have been created in error, or the flag may no longer apply to the patient. - -For a patient it is represented as RARecord-RemovalReason-1. This triggers the system to inactivate all Reasonable Adjustment Flag resources contained within the patient record. - -For Removing a RA Record this query will be performed : - -``` -Post /Flag/$removerarecord -``` - -This Query will delete the Patient's RA Record using this Request Body (todo) - -Below link has the codes defined by RARecord-RemovalReason-1: - -System: https://fhir.nhs.uk/STU3/CodeSystem/RARecord-RemovalReason-1 - -The Second Query which we can perform is a Delete Transaction : - ---- -Post ---- -This Query will delete the Patient's RA Record using this Request Body [Bundle transaction](Bundle-RemoveRARecordExample.html) - From a39699c16965520d2144bf4e25427abf95140beb Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 7 Feb 2024 16:14:58 +0000 Subject: [PATCH 053/136] Update remove-ra-record.md --- input/pagecontent/remove-ra-record.md | 40 +++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/input/pagecontent/remove-ra-record.md b/input/pagecontent/remove-ra-record.md index c761533..7eb3c57 100644 --- a/input/pagecontent/remove-ra-record.md +++ b/input/pagecontent/remove-ra-record.md @@ -19,3 +19,43 @@ A patient presents to be examined by a practitioner. The Practioner perofrms an #### Example +for the delete transaction example provided below, the following query will performed (dynamically during the IG build) + +``` +POST /Fhir_Server_ENDPOINT +``` + +This Query will delete the Patient's RA Record.These Particular resources will be deleted with the whole RA Record Removal : + +-> Consent Resource +-> Condition Resource +-> Flag Resource + +This will be the following Request body : + +{ + "resourceType": "Bundle", + "id": "RemoveRARecordExample", + "type": "transaction", + "entry": [ + { + "request": { + "method": "DELETE", + "url": "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" + } + }, + { + "request": { + "method": "DELETE", + "url": "Consent/consent-example-1" + } + }, + { + "request": { + "method": "DELETE", + "url": "Condition/condition-example-1" + } + } + ] +} + From 92d4a40fd37038345663f273be4a41ba330865da Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 7 Feb 2024 17:14:21 +0000 Subject: [PATCH 054/136] Update remove-ra-record.md --- input/pagecontent/remove-ra-record.md | 35 +++------------------------ 1 file changed, 4 insertions(+), 31 deletions(-) diff --git a/input/pagecontent/remove-ra-record.md b/input/pagecontent/remove-ra-record.md index 7eb3c57..192dc22 100644 --- a/input/pagecontent/remove-ra-record.md +++ b/input/pagecontent/remove-ra-record.md @@ -27,35 +27,8 @@ POST /Fhir_Server_ENDPOINT This Query will delete the Patient's RA Record.These Particular resources will be deleted with the whole RA Record Removal : --> Consent Resource --> Condition Resource --> Flag Resource - -This will be the following Request body : - -{ - "resourceType": "Bundle", - "id": "RemoveRARecordExample", - "type": "transaction", - "entry": [ - { - "request": { - "method": "DELETE", - "url": "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" - } - }, - { - "request": { - "method": "DELETE", - "url": "Consent/consent-example-1" - } - }, - { - "request": { - "method": "DELETE", - "url": "Condition/condition-example-1" - } - } - ] -} +->Consent Resource +->Condition Resource +->Flag Resource +This will be the following Request body [Bundle transaction](Bundle-0012-RemoveRARecordExample.html) From bbbf9d37bfc5b3fb8826dfa9e0e5feed192e3628 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 7 Feb 2024 17:16:00 +0000 Subject: [PATCH 055/136] Update remove-ra-record.md --- input/pagecontent/remove-ra-record.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/input/pagecontent/remove-ra-record.md b/input/pagecontent/remove-ra-record.md index 192dc22..5bec9cc 100644 --- a/input/pagecontent/remove-ra-record.md +++ b/input/pagecontent/remove-ra-record.md @@ -27,8 +27,8 @@ POST /Fhir_Server_ENDPOINT This Query will delete the Patient's RA Record.These Particular resources will be deleted with the whole RA Record Removal : -->Consent Resource -->Condition Resource -->Flag Resource +* Consent resources +* Flag resources +* Condition resources This will be the following Request body [Bundle transaction](Bundle-0012-RemoveRARecordExample.html) From 065b3e5b2be82c73fc0a9285f5be71ab140f34dc Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 7 Feb 2024 17:35:42 +0000 Subject: [PATCH 056/136] Update remove-ra-record.md --- input/pagecontent/remove-ra-record.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/input/pagecontent/remove-ra-record.md b/input/pagecontent/remove-ra-record.md index 5bec9cc..9c1c0bf 100644 --- a/input/pagecontent/remove-ra-record.md +++ b/input/pagecontent/remove-ra-record.md @@ -31,4 +31,15 @@ This Query will delete the Patient's RA Record.These Particular resources will b * Flag resources * Condition resources -This will be the following Request body [Bundle transaction](Bundle-0012-RemoveRARecordExample.html) +This will be the following Request body : + +

+ + +
+
+{{xml:0012-RemoveRARecordExample.fsh}} +
+
+{{json:0012-RemoveRARecordExample.fsh}} +
From 69e5bc031d75915e016c07df76b9c91eb8500b64 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 7 Feb 2024 17:42:21 +0000 Subject: [PATCH 057/136] Update remove-ra-record.md --- input/pagecontent/remove-ra-record.md | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/input/pagecontent/remove-ra-record.md b/input/pagecontent/remove-ra-record.md index 9c1c0bf..3a5b5b2 100644 --- a/input/pagecontent/remove-ra-record.md +++ b/input/pagecontent/remove-ra-record.md @@ -31,15 +31,4 @@ This Query will delete the Patient's RA Record.These Particular resources will b * Flag resources * Condition resources -This will be the following Request body : - -
- - -
-
-{{xml:0012-RemoveRARecordExample.fsh}} -
-
-{{json:0012-RemoveRARecordExample.fsh}} -
+This will be the following Request body [Bundle transaction](Bundle-RemoveRARecordExample.html) From 12ea410e48ba8e8d0399f1dfb54771e24cdc5acf Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Thu, 8 Feb 2024 15:28:34 +0000 Subject: [PATCH 058/136] Delete input/queries directory --- input/queries/remove-rarecord-example.md | 1 - input/queries/remove-rarecord-transaction-example.md | 1 - 2 files changed, 2 deletions(-) delete mode 100644 input/queries/remove-rarecord-example.md delete mode 100644 input/queries/remove-rarecord-transaction-example.md diff --git a/input/queries/remove-rarecord-example.md b/input/queries/remove-rarecord-example.md deleted file mode 100644 index 568decd..0000000 --- a/input/queries/remove-rarecord-example.md +++ /dev/null @@ -1 +0,0 @@ -Post /Flag/$removerarecord diff --git a/input/queries/remove-rarecord-transaction-example.md b/input/queries/remove-rarecord-transaction-example.md deleted file mode 100644 index cea3a9f..0000000 --- a/input/queries/remove-rarecord-transaction-example.md +++ /dev/null @@ -1 +0,0 @@ -Post From 1ae3a22c3d0bdbfe7d10caaa787bbdbbbd7fa16f Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Fri, 9 Feb 2024 12:43:53 +0000 Subject: [PATCH 059/136] Update remove-ra-record.md --- input/pagecontent/remove-ra-record.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/pagecontent/remove-ra-record.md b/input/pagecontent/remove-ra-record.md index 3a5b5b2..ab02f31 100644 --- a/input/pagecontent/remove-ra-record.md +++ b/input/pagecontent/remove-ra-record.md @@ -4,7 +4,7 @@ #### Workflow

-A patient presents to be examined by a practitioner. The Practioner perofrms an examination and retrieve Patient's RA Record.After that , Practitioner make a request to remove RA Record as it's no longer needed and inactivates all Reasonable Adjustment resources for Patient. +A patient presents to be examined by a practitioner. The practitioner performs an examination and retrieves the patients RA record. The practitioner then decides to remove an RA record for a patient.

From 88818469ac1c7ea07542416072bfb79f1150e502 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Fri, 9 Feb 2024 12:46:53 +0000 Subject: [PATCH 060/136] Update remove-ra-record.md --- input/pagecontent/remove-ra-record.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/pagecontent/remove-ra-record.md b/input/pagecontent/remove-ra-record.md index ab02f31..71ee6cd 100644 --- a/input/pagecontent/remove-ra-record.md +++ b/input/pagecontent/remove-ra-record.md @@ -22,7 +22,7 @@ A patient presents to be examined by a practitioner. The practitioner performs a for the delete transaction example provided below, the following query will performed (dynamically during the IG build) ``` -POST /Fhir_Server_ENDPOINT +POST / ``` This Query will delete the Patient's RA Record.These Particular resources will be deleted with the whole RA Record Removal : From 9f97e3df31f159f6785dd901b5f7d52c2c62c5bb Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Fri, 9 Feb 2024 12:48:22 +0000 Subject: [PATCH 061/136] Update retrieve-ra-record.md --- input/pagecontent/retrieve-ra-record.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/pagecontent/retrieve-ra-record.md b/input/pagecontent/retrieve-ra-record.md index d0831d3..bc9a331 100644 --- a/input/pagecontent/retrieve-ra-record.md +++ b/input/pagecontent/retrieve-ra-record.md @@ -4,7 +4,7 @@ #### Workflow

-A patient presents to be examined by a practitioner. The Practioner perofrms an examination and retrieve Patient's RA Record. +A patient presents to be examined by a practitioner. The practitioner perofrms an examination and retrieve Patient's RA Record.

From 014fbc587a3583b5d7c26eb15f700dcc5818fa3e Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Fri, 9 Feb 2024 12:49:24 +0000 Subject: [PATCH 062/136] Update retrieve-ra-record.md --- input/pagecontent/retrieve-ra-record.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/pagecontent/retrieve-ra-record.md b/input/pagecontent/retrieve-ra-record.md index bc9a331..1041893 100644 --- a/input/pagecontent/retrieve-ra-record.md +++ b/input/pagecontent/retrieve-ra-record.md @@ -26,7 +26,7 @@ For each transaction example provided in the previous section, the following que GET /Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient ``` -This query will return the Patient resource using the patients NHS number (TODO will be profiled to check for this, reference this later). The assocaited resources that make up the RA are also returned, such as +This query will return the Patient resource using the patients NHS number (TODO will be profiled to check for this, reference this later). The assocaited resources that make up the RA Record are also returned, such as * Consent resources (maybe link to profiles here) * Flag resources * Condition resources From 9c880b90787b29ca28f1af150f007b3d005b1ca9 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Fri, 9 Feb 2024 12:54:20 +0000 Subject: [PATCH 063/136] Delete input/images/remove-rarecord.drawio.png --- input/images/remove-rarecord.drawio.png | Bin 42395 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 input/images/remove-rarecord.drawio.png diff --git a/input/images/remove-rarecord.drawio.png b/input/images/remove-rarecord.drawio.png deleted file mode 100644 index 22f52f1c1363aaaa2ff5f4976b333ef99ad73bad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42395 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 T+`^v?{_ND Date: Fri, 9 Feb 2024 12:55:08 +0000 Subject: [PATCH 064/136] Add files via upload --- input/images/remove-ra-record.drawio.png | Bin 0 -> 42395 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 input/images/remove-ra-record.drawio.png diff --git a/input/images/remove-ra-record.drawio.png b/input/images/remove-ra-record.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..22f52f1c1363aaaa2ff5f4976b333ef99ad73bad GIT binary patch literal 42395 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 T+`^v?{_ND Date: Fri, 9 Feb 2024 12:56:15 +0000 Subject: [PATCH 065/136] Update remove-ra-record.md --- input/pagecontent/remove-ra-record.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/input/pagecontent/remove-ra-record.md b/input/pagecontent/remove-ra-record.md index 71ee6cd..09a758f 100644 --- a/input/pagecontent/remove-ra-record.md +++ b/input/pagecontent/remove-ra-record.md @@ -8,13 +8,13 @@ A patient presents to be examined by a practitioner. The practitioner performs a

- Activity created in draw.io! + Activity created in draw.io!
#### Patient's RA Record Removed
- Patient's RA Record Removed + Patient's RA Record Removed
#### Example From 5f3f47659a09f69d2746a49fae4e5048052dfb94 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Fri, 9 Feb 2024 12:57:43 +0000 Subject: [PATCH 066/136] Delete input/images/Remove-RA.drawio.png --- input/images/Remove-RA.drawio.png | Bin 34776 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 input/images/Remove-RA.drawio.png diff --git a/input/images/Remove-RA.drawio.png b/input/images/Remove-RA.drawio.png deleted file mode 100644 index 299a4b37d6c683a32914a127e7cde1484a4ebe31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34776 zcmeEu2RPMz|FER2j7Um~hRWW1XK#^}(7`dX_a<3I(Xxez5*Z=;SjpZygk;a`?fw2Z zN8R1edH&D;ec%6ez0Z3+uKPZn^Bdps+4K8ISy74rj{*+^1A{$r5f4E`j?NR)(fVrf|c9XV_TSI2c*j7+F|vv9i&yi?Z*3urRT4 zvfVy-9%c-;L=LE6`xr1y@9^t25?btF72qlWk^~KlD7X#% z$1aA1GWcN$11sK#zA^wDBXV3*B(!DZYHW*|2RSWtLDke1wMXQ8#tx>2a69B^ z2XES2S()3LTL1N;ft95t+yIGsEZ2T`zKo?a125ac5 zhN+>w$-%QcY}^NHfv!u#O^r=ZGqZB>9^A2jp&mx=#Lff;$nW6&{Y$@Ni!ObCHqu_{~2awl)|J_4q*dFrF|H*LN(vGZLT>5sZoTlt>V?%Lq z69q@ceNqH83Nv>=QJpQ!z~0mzP%NP1eX6jtcR^9Pos+4BIm{9~dc(xZ*3{L?(jI0G zzy~p{lZmN4T-6$801e~>C=Ytb-U7PKy3fcEg;~RXZ3ekNz#sN-6m3E?{&OJz0<{zz zFt@#}3m6vpIu{Z?NV;a@MgDgBjY?3&Z}J<3u(2Q?gdr)@_;6@w(f3_vJK%fd4jr{^7b%1oM9n zX*_>L8vEaI#tNYTLd5SlL*e@W9h9;1{8u=$h1)p5?d&0(*;|1RTeyXlBc!noF$e@P zJ3BAH7W9k?q#sn^20*8PFJPlUt^h3mEa7kn;s2h5z==XLl70Vu zDFL;S-?;a0IDuOlibA>&h(`l+n4O)e!C&R&FXn}WE8N-CUK1%vq3>GYI|~yh@{Twp z|4@&KL*Rpc98CGU#QkR+Z4a|G1{U7FV*ZEEp~xF<_!sT`&&3@C39uF*^nR1pzlmec zf56$OYqoH6AlLwZ{BA7#BX<8+mhfvK%2uY3tVHRIL)nj{IxbcK)_n#-O=V~0U~2$J zzV@%_gM-=7&dJHj#>BUZ%yrv1P%^jvgm0FnfC-m>^99d_Ra$EcOkH19fF+YG>eJ z2i*jgz2Ux%cres&7UD0l^?%RiIHaQgF{1-zO#CL9{#}d?j=y13R9WV4X!-ZzE{=a^ z_CjipeMOV1^*9CHxSA(7qc?AItW0p8^Yi`Mvz%yXK!m|2LJ62mjMr4 z-{@br5m-@F_J5B9|FrhFkZ}7qWI<%~2RsEf^N$Teq$2q*El1>Y|DPF-9H^iH z(rn{EDUtsDTT>8Q z+K=QOGSC5YaqPS2``iW%2V%+x!~YW&+kg1aArC~v@7~$J%y-B*!+*(ltVogi{~6

x|tn3wcgFU$BnqA?T~#Y}h? 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 Date: Fri, 9 Feb 2024 13:00:11 +0000 Subject: [PATCH 067/136] Add files via upload --- .../images/remove-ra-record-workflow.drawio.png | Bin 0 -> 51510 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 input/images/remove-ra-record-workflow.drawio.png diff --git a/input/images/remove-ra-record-workflow.drawio.png b/input/images/remove-ra-record-workflow.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..d0a3f065e23f855a69999fb4c050554bce094f36 GIT binary patch literal 51510 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 Date: Fri, 9 Feb 2024 14:32:10 +0000 Subject: [PATCH 068/136] Update remove-ra-record.md --- input/pagecontent/remove-ra-record.md | 1 - 1 file changed, 1 deletion(-) diff --git a/input/pagecontent/remove-ra-record.md b/input/pagecontent/remove-ra-record.md index 09a758f..26fdb89 100644 --- a/input/pagecontent/remove-ra-record.md +++ b/input/pagecontent/remove-ra-record.md @@ -27,7 +27,6 @@ POST / This Query will delete the Patient's RA Record.These Particular resources will be deleted with the whole RA Record Removal : -* Consent resources * Flag resources * Condition resources From e2ee7a991d41bf1012257785f197d6cf56850743 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Tue, 13 Feb 2024 10:22:15 +0000 Subject: [PATCH 069/136] Update remove-ra-record.md --- input/pagecontent/remove-ra-record.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/pagecontent/remove-ra-record.md b/input/pagecontent/remove-ra-record.md index 26fdb89..e1ffd37 100644 --- a/input/pagecontent/remove-ra-record.md +++ b/input/pagecontent/remove-ra-record.md @@ -25,7 +25,7 @@ for the delete transaction example provided below, the following query will perf POST / ``` -This Query will delete the Patient's RA Record.These Particular resources will be deleted with the whole RA Record Removal : +This query will delete the patient's RA record, i.e. the resources contained in the transaction. * Flag resources * Condition resources From 5fcb9dce8866be28499de1a9bb99b5bba77ed5a6 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Tue, 13 Feb 2024 12:42:39 +0000 Subject: [PATCH 070/136] Create codesystem --- input/resources/codesystem | 1 + 1 file changed, 1 insertion(+) create mode 100644 input/resources/codesystem diff --git a/input/resources/codesystem b/input/resources/codesystem new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/input/resources/codesystem @@ -0,0 +1 @@ + From 177ccc2fc39d2ae25bd291b804323d3363c1710d Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 12:45:44 +0000 Subject: [PATCH 071/136] Create RARecord-FlagCategory-1 --- input/fsh/valuesets/RARecord-FlagCategory-1 | 1 + 1 file changed, 1 insertion(+) create mode 100644 input/fsh/valuesets/RARecord-FlagCategory-1 diff --git a/input/fsh/valuesets/RARecord-FlagCategory-1 b/input/fsh/valuesets/RARecord-FlagCategory-1 new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/input/fsh/valuesets/RARecord-FlagCategory-1 @@ -0,0 +1 @@ + From 300d41134627b4701d395dc86d6b22f1233b1eaf Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 12:54:43 +0000 Subject: [PATCH 072/136] Update RARecord-FlagCategory-1 --- input/fsh/valuesets/RARecord-FlagCategory-1 | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/input/fsh/valuesets/RARecord-FlagCategory-1 b/input/fsh/valuesets/RARecord-FlagCategory-1 index 8b13789..542694a 100644 --- a/input/fsh/valuesets/RARecord-FlagCategory-1 +++ b/input/fsh/valuesets/RARecord-FlagCategory-1 @@ -1 +1,19 @@ - +ValueSet: Reasonable Adjustments Record Flag Category +Id: Reasonable Adjustments Record Flag Category +Title: "Reasonable Adjustments Record Flag Category" +Description: "A ValueSet to identify the type/category of Flag." +* ^url = "https://fhir.nhs.uk/STU3/ValueSet/RARecord-FlagCategory-1" +* ^version = "1.0.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^publisher = "NHS England" +* ^contact.name = "NHS England" +* ^contact.telecom.system = #email +* ^contact.telecom.value = "interoperabilityteam@nhs.net" +* ^contact.telecom.use = #work +* ^contact.telecom.rank = 1 +* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." +* ^expansion.timestamp = "2024-02-14T12:00:00+00:00" +* ^expansion.contains[0].system = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1" +* ^expansion.contains[=].code = NRAF +* ^expansion.contains[=].display = "National Reasonable Adjustments Flag" From 8aeba1cb3845116e96356814883192a92bb0d931 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 12:58:05 +0000 Subject: [PATCH 073/136] Create RARecord-FlagCode-1 --- input/fsh/valuesets/RARecord-FlagCode-1 | 1 + 1 file changed, 1 insertion(+) create mode 100644 input/fsh/valuesets/RARecord-FlagCode-1 diff --git a/input/fsh/valuesets/RARecord-FlagCode-1 b/input/fsh/valuesets/RARecord-FlagCode-1 new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/input/fsh/valuesets/RARecord-FlagCode-1 @@ -0,0 +1 @@ + From 321ed1eea841dc39efd97cb413af65f012c535a2 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 13:06:31 +0000 Subject: [PATCH 074/136] Update and rename RARecord-FlagCode-1 to RARecord-FlagCode-1.fsh --- input/fsh/valuesets/RARecord-FlagCode-1 | 1 - input/fsh/valuesets/RARecord-FlagCode-1.fsh | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) delete mode 100644 input/fsh/valuesets/RARecord-FlagCode-1 create mode 100644 input/fsh/valuesets/RARecord-FlagCode-1.fsh diff --git a/input/fsh/valuesets/RARecord-FlagCode-1 b/input/fsh/valuesets/RARecord-FlagCode-1 deleted file mode 100644 index 8b13789..0000000 --- a/input/fsh/valuesets/RARecord-FlagCode-1 +++ /dev/null @@ -1 +0,0 @@ - diff --git a/input/fsh/valuesets/RARecord-FlagCode-1.fsh b/input/fsh/valuesets/RARecord-FlagCode-1.fsh new file mode 100644 index 0000000..d562de6 --- /dev/null +++ b/input/fsh/valuesets/RARecord-FlagCode-1.fsh @@ -0,0 +1,19 @@ +ValueSet: Reasonable Adjustments Record Flag Code +Id: Reasonable Adjustments Record Flag Code +Title: "Reasonable Adjustments Record Flag Code" +Description: "A ValueSet to identify codes representing Adjustments required for a patient" +* ^url = "https://fhir.nhs.uk/STU3/ValueSet/RARecord-FlagCode-1" +* ^version = "1.0.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^publisher = "NHS England" +* ^contact.name = "NHS England" +* ^contact.telecom.system = #email +* ^contact.telecom.value = "interoperabilityteam@nhs.net" +* ^contact.telecom.use = #work +* ^contact.telecom.rank = 1 +* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." +* ^expansion.timestamp = "2024-02-14T12:00:00+00:00" +* ^expansion.contains[0].system = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1" +* ^expansion.contains[=].code = NRAF +* ^expansion.contains[=].display = "National Reasonable Adjustments Flag" From 97a2e8eb83d4bddc9fad8f70bf6b0a3e393c0371 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 13:07:06 +0000 Subject: [PATCH 075/136] Rename RARecord-FlagCategory-1 to RARecord-FlagCategory-1.fsh --- .../{RARecord-FlagCategory-1 => RARecord-FlagCategory-1.fsh} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename input/fsh/valuesets/{RARecord-FlagCategory-1 => RARecord-FlagCategory-1.fsh} (100%) diff --git a/input/fsh/valuesets/RARecord-FlagCategory-1 b/input/fsh/valuesets/RARecord-FlagCategory-1.fsh similarity index 100% rename from input/fsh/valuesets/RARecord-FlagCategory-1 rename to input/fsh/valuesets/RARecord-FlagCategory-1.fsh From ed906186f37cd6f5ecc1cad3b58bc6336ce2d407 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 13:10:19 +0000 Subject: [PATCH 076/136] Update RARecord-FlagCode-1.fsh --- input/fsh/valuesets/RARecord-FlagCode-1.fsh | 700 +++++++++++++++++++- 1 file changed, 697 insertions(+), 3 deletions(-) diff --git a/input/fsh/valuesets/RARecord-FlagCode-1.fsh b/input/fsh/valuesets/RARecord-FlagCode-1.fsh index d562de6..2a2d406 100644 --- a/input/fsh/valuesets/RARecord-FlagCode-1.fsh +++ b/input/fsh/valuesets/RARecord-FlagCode-1.fsh @@ -14,6 +14,700 @@ Description: "A ValueSet to identify codes representing Adjustments required for * ^contact.telecom.rank = 1 * ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." * ^expansion.timestamp = "2024-02-14T12:00:00+00:00" -* ^expansion.contains[0].system = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1" -* ^expansion.contains[=].code = NRAF -* ^expansion.contains[=].display = "National Reasonable Adjustments Flag" +* ^expansion.include.system = "http://snomed.info/sct" +* ^expansion.include.concept[0].code = #441092009 +* ^expansion.include.concept[=].display = "Does lip read" +* ^expansion.include.concept[+].code = #719369003 +* ^expansion.include.concept[=].display = "Does use communication device" +* ^expansion.include.concept[+].code = #285055002 +* ^expansion.include.concept[=].display = "Does use hearing aid" +* ^expansion.include.concept[+].code = #520471000000105 +* ^expansion.include.concept[=].display = "Preferred method of communication: British Sign Language" +* ^expansion.include.concept[+].code = #520491000000109 +* ^expansion.include.concept[=].display = "Preferred method of communication: written" +* ^expansion.include.concept[+].code = #1082671000000100 +* ^expansion.include.concept[=].display = "Requires aphasia-friendly communication" +* ^expansion.include.concept[+].code = #1082691000000101 +* ^expansion.include.concept[=].display = "Requires support for expressive communication needs" +* ^expansion.include.concept[+].code = #1082681000000103 +* ^expansion.include.concept[=].display = "Requires support for receptive communication needs" +* ^expansion.include.concept[+].code = #225834007 +* ^expansion.include.concept[=].display = "Uses a citizen advocate" +* ^expansion.include.concept[+].code = #225833001 +* ^expansion.include.concept[=].display = "Uses a legal advocate" +* ^expansion.include.concept[+].code = #288595009 +* ^expansion.include.concept[=].display = "Uses a non-speech system for communication" +* ^expansion.include.concept[+].code = #761541000000100 +* ^expansion.include.concept[=].display = "Uses alternative communication skill" +* ^expansion.include.concept[+].code = #716524009 +* ^expansion.include.concept[=].display = "Uses augmentative and alternative communication" +* ^expansion.include.concept[+].code = #415803005 +* ^expansion.include.concept[=].display = "Uses British sign language" +* ^expansion.include.concept[+].code = #445129003 +* ^expansion.include.concept[=].display = "Uses cued speech transliterator" +* ^expansion.include.concept[+].code = #957031000000107 +* ^expansion.include.concept[=].display = "Uses deafblind intervener" +* ^expansion.include.concept[+].code = #981781000000107 +* ^expansion.include.concept[=].display = "Uses Deafblind Manual Alphabet" +* ^expansion.include.concept[+].code = #445121000 +* ^expansion.include.concept[=].display = "Uses electronic note taker" +* ^expansion.include.concept[+].code = #1077121000000101 +* ^expansion.include.concept[=].display = "Uses functional communication skills" +* ^expansion.include.concept[+].code = #1082531000000103 +* ^expansion.include.concept[=].display = "Uses gestures for communication" +* ^expansion.include.concept[+].code = #198061000000105 +* ^expansion.include.concept[=].display = "Uses hearing loop" +* ^expansion.include.concept[+].code = #719363002 +* ^expansion.include.concept[=].display = "Uses high technology communication device" +* ^expansion.include.concept[+].code = #445143008 +* ^expansion.include.concept[=].display = "Uses lipspeaker" +* ^expansion.include.concept[+].code = #719364008 +* ^expansion.include.concept[=].display = "Uses low technology communication device" +* ^expansion.include.concept[+].code = #415805003 +* ^expansion.include.concept[=].display = "Uses Makaton sign language" +* ^expansion.include.concept[+].code = #445076009 +* ^expansion.include.concept[=].display = "Uses manual note taker" +* ^expansion.include.concept[+].code = #719370002 +* ^expansion.include.concept[=].display = "Uses non-powered communication device" +* ^expansion.include.concept[+].code = #288583009 +* ^expansion.include.concept[=].display = "Uses non-verbal communication" +* ^expansion.include.concept[+].code = #1082541000000107 +* ^expansion.include.concept[=].display = "Uses objects for communication" +* ^expansion.include.concept[+].code = #720462004 +* ^expansion.include.concept[=].display = "Uses personal audio recording device to record information" +* ^expansion.include.concept[+].code = #837341000000108 +* ^expansion.include.concept[=].display = "Uses Personal Communication Passport" +* ^expansion.include.concept[+].code = #719393008 +* ^expansion.include.concept[=].display = "Uses photographs for communication" +* ^expansion.include.concept[+].code = #719373000 +* ^expansion.include.concept[=].display = "Uses powered communication device" +* ^expansion.include.concept[+].code = #404903008 +* ^expansion.include.concept[=].display = "Uses sign language" +* ^expansion.include.concept[+].code = #445123002 +* ^expansion.include.concept[=].display = "Uses speech to text reporter" +* ^expansion.include.concept[+].code = #719754002 +* ^expansion.include.concept[=].display = "Uses symbols for communication" +* ^expansion.include.concept[+].code = #445488003 +* ^expansion.include.concept[=].display = "Uses telecommunications device for the deaf" +* ^expansion.include.concept[+].code = #288601001 +* ^expansion.include.concept[=].display = "Uses verbal communication" +* ^expansion.include.concept[+].code = #716537007 +* ^expansion.include.concept[=].display = "Uses voice amplifier to support communication" +* ^expansion.include.concept[+].code = #762361000000101 +* ^expansion.include.concept[=].display = "Uses voice output communication aid" +* ^expansion.include.concept[+].code = #204331000000107 +* ^expansion.include.concept[=].display = "British Sign Language interpreter needed" +* ^expansion.include.concept[+].code = #945731000000104 +* ^expansion.include.concept[=].display = "Hands-on signing interpreter needed" +* ^expansion.include.concept[+].code = #204341000000103 +* ^expansion.include.concept[=].display = "Makaton Sign Language interpreter needed" +* ^expansion.include.concept[+].code = #225835008 +* ^expansion.include.concept[=].display = "Needs an advocate" +* ^expansion.include.concept[+].code = #957071000000109 +* ^expansion.include.concept[=].display = "Requires deafblind block alphabet interpreter" +* ^expansion.include.concept[+].code = #796201000000109 +* ^expansion.include.concept[=].display = "Requires deafblind communicator guide" +* ^expansion.include.concept[+].code = #957111000000103 +* ^expansion.include.concept[=].display = "Requires deafblind haptic communication interpreter" +* ^expansion.include.concept[+].code = #957051000000100 +* ^expansion.include.concept[=].display = "Requires deafblind manual alphabet interpreter" +* ^expansion.include.concept[+].code = #945911000000109 +* ^expansion.include.concept[=].display = "Requires lipspeaker" +* ^expansion.include.concept[+].code = #945891000000106 +* ^expansion.include.concept[=].display = "Requires manual note taker" +* ^expansion.include.concept[+].code = #719563003 +* ^expansion.include.concept[=].display = "Requires sighted guide" +* ^expansion.include.concept[+].code = #1082661000000100 +* ^expansion.include.concept[=].display = "Requires speech and language therapist support to communicate" +* ^expansion.include.concept[+].code = #966401000000100 +* ^expansion.include.concept[=].display = "Requires speech to text reporter" +* ^expansion.include.concept[+].code = #936761000000104 +* ^expansion.include.concept[=].display = "Sign Supported English interpreter needed" +* ^expansion.include.concept[+].code = #945711000000107 +* ^expansion.include.concept[=].display = "Visual frame sign language interpreter needed" +* ^expansion.include.concept[+].code = #945931000000101 +* ^expansion.include.concept[=].display = "Requires audible alert" +* ^expansion.include.concept[+].code = #936741000000100 +* ^expansion.include.concept[=].display = "Requires contact by email" +* ^expansion.include.concept[+].code = #936721000000107 +* ^expansion.include.concept[=].display = "Requires contact by letter" +* ^expansion.include.concept[+].code = #936701000000103 +* ^expansion.include.concept[=].display = "Requires contact by short message service text message" +* ^expansion.include.concept[+].code = #795661000000104 +* ^expansion.include.concept[=].display = "Requires contact by telephone" +* ^expansion.include.concept[+].code = #796081000000106 +* ^expansion.include.concept[=].display = "Requires contact by text relay" +* ^expansion.include.concept[+].code = #719561001 +* ^expansion.include.concept[=].display = "Requires contact via carer" +* ^expansion.include.concept[+].code = #945971000000104 +* ^expansion.include.concept[=].display = "Requires tactile alert" +* ^expansion.include.concept[+].code = #945951000000108 +* ^expansion.include.concept[=].display = "Requires visual alert" +* ^expansion.include.concept[+].code = #719758004 +* ^expansion.include.concept[=].display = "Requires healthcare information recording on personal audio recording device" +* ^expansion.include.concept[+].code = #936581000000101 +* ^expansion.include.concept[=].display = "Requires information by email" +* ^expansion.include.concept[+].code = #1082551000000100 +* ^expansion.include.concept[=].display = "Requires information in aphasia-accessible format" +* ^expansion.include.concept[+].code = #936661000000109 +* ^expansion.include.concept[=].display = "Requires information in contracted (Grade 2) Braille" +* ^expansion.include.concept[+].code = #796161000000101 +* ^expansion.include.concept[=].display = "Requires information in Easyread" +* ^expansion.include.concept[+].code = #936601000000105 +* ^expansion.include.concept[=].display = "Requires information in electronic audio format" +* ^expansion.include.concept[+].code = #945751000000106 +* ^expansion.include.concept[=].display = "Requires information in electronic downloadable format" +* ^expansion.include.concept[+].code = #936641000000108 +* ^expansion.include.concept[=].display = "Requires information in Makaton" +* ^expansion.include.concept[+].code = #936621000000101 +* ^expansion.include.concept[=].display = "Requires information in Moon alphabet" +* ^expansion.include.concept[+].code = #936681000000100 +* ^expansion.include.concept[=].display = "Requires information in uncontracted (Grade 1) Braille" +* ^expansion.include.concept[+].code = #795801000000104 +* ^expansion.include.concept[=].display = "Requires information on audio cassette tape" +* ^expansion.include.concept[+].code = #795731000000104 +* ^expansion.include.concept[=].display = "Requires information on compact disc" +* ^expansion.include.concept[+].code = #795691000000105 +* ^expansion.include.concept[=].display = "Requires information on digital versatile disc" +* ^expansion.include.concept[+].code = #945691000000105 +* ^expansion.include.concept[=].display = "Requires information on universal serial bus mass storage device" +* ^expansion.include.concept[+].code = #367741000000102 +* ^expansion.include.concept[=].display = "Requires information verbally" +* ^expansion.include.concept[+].code = #985021000000106 +* ^expansion.include.concept[=].display = "Requires third party to read out written information" +* ^expansion.include.concept[+].code = #957331000000109 +* ^expansion.include.concept[=].display = "Requires written information in at least 20 point sans serif font" +* ^expansion.include.concept[+].code = #957351000000102 +* ^expansion.include.concept[=].display = "Requires written information in at least 24 point sans serif font" +* ^expansion.include.concept[+].code = #957371000000106 +* ^expansion.include.concept[=].display = "Requires written information in at least 28 point sans serif font" +* ^expansion.include.concept[+].code = #307089001 +* ^expansion.include.concept[=].display = "Difficulty analysing information" +* ^expansion.include.concept[+].code = #311540003 +* ^expansion.include.concept[=].display = "Difficulty processing information accurately" +* ^expansion.include.concept[+].code = #311543001 +* ^expansion.include.concept[=].display = "Difficulty processing information at normal speed" +* ^expansion.include.concept[+].code = #1325291000000103 +* ^expansion.include.concept[=].display = "Emergency contact details of specialist support team" +* ^expansion.include.concept[+].code = #1108141000000108 +* ^expansion.include.concept[=].display = "Expresses pain atypically" +* ^expansion.include.concept[+].code = #1108121000000101 +* ^expansion.include.concept[=].display = "Has My Healthcare Passport" +* ^expansion.include.concept[+].code = #737350008 +* ^expansion.include.concept[=].display = "Needs assistance with communication" +* ^expansion.include.concept[+].code = #1108131000000104 +* ^expansion.include.concept[=].display = "Requires appointment reminders" +* ^expansion.include.concept[+].code = #1325421000000100 +* ^expansion.include.concept[=].display = "Requires approach to care to be discussed with carer" +* ^expansion.include.concept[+].code = #1108151000000106 +* ^expansion.include.concept[=].display = "Requires carer to be present at encounters" +* ^expansion.include.concept[+].code = #955771000000100 +* ^expansion.include.concept[=].display = "Uses apps on mobile device to support communication" +* ^expansion.include.concept[+].code = #954871000000106 +* ^expansion.include.concept[=].display = "Uses switches for communication" +* ^expansion.include.concept[+].code = #936561000000105 +* ^expansion.include.concept[=].display = "Uses Tadoma method for communication" +* ^expansion.include.concept[+].code = #362721000000106 +* ^expansion.include.concept[=].display = "Abkhazian language interpreter needed" +* ^expansion.include.concept[+].code = #362691000000102 +* ^expansion.include.concept[=].display = "Afar language interpreter needed" +* ^expansion.include.concept[+].code = #362571000000102 +* ^expansion.include.concept[=].display = "Afrikaans language interpreter needed" +* ^expansion.include.concept[+].code = #203281000000104 +* ^expansion.include.concept[=].display = "Akan language interpreter needed" +* ^expansion.include.concept[+].code = #203291000000102 +* ^expansion.include.concept[=].display = "Albanian language interpreter needed" +* ^expansion.include.concept[+].code = #203301000000103 +* ^expansion.include.concept[=].display = "Amharic language interpreter needed" +* ^expansion.include.concept[+].code = #203311000000101 +* ^expansion.include.concept[=].display = "Arabic language interpreter needed" +* ^expansion.include.concept[+].code = #972511000000109 +* ^expansion.include.concept[=].display = "Aragonese interpreter needed" +* ^expansion.include.concept[+].code = #362261000000106 +* ^expansion.include.concept[=].display = "Armenian language interpreter needed" +* ^expansion.include.concept[+].code = #362231000000101 +* ^expansion.include.concept[=].display = "Assamese language interpreter needed" +* ^expansion.include.concept[+].code = #972521000000103 +* ^expansion.include.concept[=].display = "Avaric interpreter needed" +* ^expansion.include.concept[+].code = #972531000000101 +* ^expansion.include.concept[=].display = "Avestan interpreter needed" +* ^expansion.include.concept[+].code = #362541000000108 +* ^expansion.include.concept[=].display = "Aymara language interpreter needed" +* ^expansion.include.concept[+].code = #362611000000106 +* ^expansion.include.concept[=].display = "Azerbaijani language interpreter needed" +* ^expansion.include.concept[+].code = #972541000000105 +* ^expansion.include.concept[=].display = "Bambara interpreter needed" +* ^expansion.include.concept[+].code = #972551000000108 +* ^expansion.include.concept[=].display = "Bashkir interpreter needed" +* ^expansion.include.concept[+].code = #362641000000107 +* ^expansion.include.concept[=].display = "Basque language interpreter needed" +* ^expansion.include.concept[+].code = #362071000000107 +* ^expansion.include.concept[=].display = "Belarusian language interpreter needed" +* ^expansion.include.concept[+].code = #203321000000107 +* ^expansion.include.concept[=].display = "Bengali language interpreter needed" +* ^expansion.include.concept[+].code = #362201000000107 +* ^expansion.include.concept[=].display = "Bihari language interpreter needed" +* ^expansion.include.concept[+].code = #362171000000106 +* ^expansion.include.concept[=].display = "Bislama language interpreter needed" +* ^expansion.include.concept[+].code = #972561000000106 +* ^expansion.include.concept[=].display = "Bosnian interpreter needed" +* ^expansion.include.concept[+].code = #359821000000104 +* ^expansion.include.concept[=].display = "Brawa language interpreter needed" +* ^expansion.include.concept[+].code = #362141000000100 +* ^expansion.include.concept[=].display = "Breton language interpreter needed" +* ^expansion.include.concept[+].code = #353921000000107 +* ^expansion.include.concept[=].display = "Bulgarian language interpreter needed" +* ^expansion.include.concept[+].code = #362371000000109 +* ^expansion.include.concept[=].display = "Burmese language interpreter needed" +* ^expansion.include.concept[+].code = #203381000000108 +* ^expansion.include.concept[=].display = "Cantonese language interpreter needed" +* ^expansion.include.concept[+].code = #362041000000101 +* ^expansion.include.concept[=].display = "Catalan language interpreter needed" +* ^expansion.include.concept[+].code = #362331000000107 +* ^expansion.include.concept[=].display = "Central Khmer language interpreter needed" +* ^expansion.include.concept[+].code = #972571000000104 +* ^expansion.include.concept[=].display = "Chamorro interpreter needed" +* ^expansion.include.concept[+].code = #972581000000102 +* ^expansion.include.concept[=].display = "Chechen interpreter needed" +* ^expansion.include.concept[+].code = #972591000000100 +* ^expansion.include.concept[=].display = "Chinese interpreter needed" +* ^expansion.include.concept[+].code = #972601000000106 +* ^expansion.include.concept[=].display = "Church Slavic interpreter needed" +* ^expansion.include.concept[+].code = #972611000000108 +* ^expansion.include.concept[=].display = "Chuvash interpreter needed" +* ^expansion.include.concept[+].code = #972621000000102 +* ^expansion.include.concept[=].display = "Cornish interpreter needed" +* ^expansion.include.concept[+].code = #361941000000107 +* ^expansion.include.concept[=].display = "Corsican language interpreter needed" +* ^expansion.include.concept[+].code = #972631000000100 +* ^expansion.include.concept[=].display = "Cree interpreter needed" +* ^expansion.include.concept[+].code = #203391000000105 +* ^expansion.include.concept[=].display = "Croatian language interpreter needed" +* ^expansion.include.concept[+].code = #203401000000108 +* ^expansion.include.concept[=].display = "Czech language interpreter needed" +* ^expansion.include.concept[+].code = #361971000000101 +* ^expansion.include.concept[=].display = "Danish language interpreter needed" +* ^expansion.include.concept[+].code = #972641000000109 +* ^expansion.include.concept[=].display = "Dhivehi interpreter needed" +* ^expansion.include.concept[+].code = #203411000000105 +* ^expansion.include.concept[=].display = "Dutch language interpreter needed" +* ^expansion.include.concept[+].code = #362781000000107 +* ^expansion.include.concept[=].display = "Dzongkha language interpreter needed" +* ^expansion.include.concept[+].code = #343671000000102 +* ^expansion.include.concept[=].display = "English language interpreter needed" +* ^expansion.include.concept[+].code = #361881000000106 +* ^expansion.include.concept[=].display = "Esperanto language interpreter needed" +* ^expansion.include.concept[+].code = #361911000000106 +* ^expansion.include.concept[=].display = "Estonian language interpreter needed" +* ^expansion.include.concept[+].code = #359791000000109 +* ^expansion.include.concept[=].display = "Ethiopian language interpreter needed" +* ^expansion.include.concept[+].code = #972651000000107 +* ^expansion.include.concept[=].display = "Ewe interpreter needed" +* ^expansion.include.concept[+].code = #361791000000100 +* ^expansion.include.concept[=].display = "Faroese language interpreter needed" +* ^expansion.include.concept[+].code = #203421000000104 +* ^expansion.include.concept[=].display = "Farsi language interpreter needed" +* ^expansion.include.concept[+].code = #361821000000105 +* ^expansion.include.concept[=].display = "Fijian language interpreter needed" +* ^expansion.include.concept[+].code = #343701000000103 +* ^expansion.include.concept[=].display = "Finnish language interpreter needed" +* ^expansion.include.concept[+].code = #343711000000101 +* ^expansion.include.concept[=].display = "Flemish language interpreter needed" +* ^expansion.include.concept[+].code = #203521000000103 +* ^expansion.include.concept[=].display = "French Creole language interpreter needed" +* ^expansion.include.concept[+].code = #203441000000106 +* ^expansion.include.concept[=].display = "French language interpreter needed" +* ^expansion.include.concept[+].code = #361501000000104 +* ^expansion.include.concept[=].display = "Frisian language interpreter needed" +* ^expansion.include.concept[+].code = #972671000000103 +* ^expansion.include.concept[=].display = "Fulah interpreter needed" +* ^expansion.include.concept[+].code = #343721000000107 +* ^expansion.include.concept[=].display = "Gaelic language interpreter needed" +* ^expansion.include.concept[+].code = #361851000000100 +* ^expansion.include.concept[=].display = "Galician language interpreter needed" +* ^expansion.include.concept[+].code = #203801000000105 +* ^expansion.include.concept[=].display = "Ganda language interpreter needed" +* ^expansion.include.concept[+].code = #361471000000106 +* ^expansion.include.concept[=].display = "Georgian language interpreter needed" +* ^expansion.include.concept[+].code = #203581000000102 +* ^expansion.include.concept[=].display = "German language interpreter needed" +* ^expansion.include.concept[+].code = #203591000000100 +* ^expansion.include.concept[=].display = "Greek language interpreter needed" +* ^expansion.include.concept[+].code = #361441000000100 +* ^expansion.include.concept[=].display = "Guarani language interpreter needed" +* ^expansion.include.concept[+].code = #203601000000106 +* ^expansion.include.concept[=].display = "Gujarati language interpreter needed" +* ^expansion.include.concept[+].code = #972681000000101 +* ^expansion.include.concept[=].display = "Haitian interpreter needed" +* ^expansion.include.concept[+].code = #203611000000108 +* ^expansion.include.concept[=].display = "Hakka language interpreter needed" +* ^expansion.include.concept[+].code = #203631000000100 +* ^expansion.include.concept[=].display = "Hausa language interpreter needed" +* ^expansion.include.concept[+].code = #203641000000109 +* ^expansion.include.concept[=].display = "Hebrew language interpreter needed" +* ^expansion.include.concept[+].code = #972691000000104 +* ^expansion.include.concept[=].display = "Herero interpreter needed" +* ^expansion.include.concept[+].code = #203651000000107 +* ^expansion.include.concept[=].display = "Hindi language interpreter needed" +* ^expansion.include.concept[+].code = #972701000000104 +* ^expansion.include.concept[=].display = "Hiri Motu interpreter needed" +* ^expansion.include.concept[+].code = #360431000000104 +* ^expansion.include.concept[=].display = "Hungarian language interpreter needed" +* ^expansion.include.concept[+].code = #359881000000103 +* ^expansion.include.concept[=].display = "Iban language interpreter needed" +* ^expansion.include.concept[+].code = #360401000000105 +* ^expansion.include.concept[=].display = "Icelandic language interpreter needed" +* ^expansion.include.concept[+].code = #972711000000102 +* ^expansion.include.concept[=].display = "Ido interpreter needed" +* ^expansion.include.concept[+].code = #203531000000101 +* ^expansion.include.concept[=].display = "Igbo language interpreter needed" +* ^expansion.include.concept[+].code = #362111000000101 +* ^expansion.include.concept[=].display = "Indonesian language interpreter needed" +* ^expansion.include.concept[+].code = #972721000000108 +* ^expansion.include.concept[=].display = "Interlingua interpreter needed" +* ^expansion.include.concept[+].code = #360341000000102 +* ^expansion.include.concept[=].display = "Interlingue language interpreter needed" +* ^expansion.include.concept[+].code = #315594003 +* ^expansion.include.concept[=].display = "Interpreter needed" +* ^expansion.include.concept[+].code = #360311000000103 +* ^expansion.include.concept[=].display = "Inuktitut language interpreter needed" +* ^expansion.include.concept[+].code = #360251000000107 +* ^expansion.include.concept[=].display = "Inupiaq language interpreter needed" +* ^expansion.include.concept[+].code = #972731000000105 +* ^expansion.include.concept[=].display = "Irish interpreter needed" +* ^expansion.include.concept[+].code = #203371000000106 +* ^expansion.include.concept[=].display = "Italian language interpreter needed" +* ^expansion.include.concept[+].code = #203681000000101 +* ^expansion.include.concept[=].display = "Japanese language interpreter needed" +* ^expansion.include.concept[+].code = #360281000000101 +* ^expansion.include.concept[=].display = "Javanese language interpreter needed" +* ^expansion.include.concept[+].code = #362011000000102 +* ^expansion.include.concept[=].display = "Kalaallisut language interpreter needed" +* ^expansion.include.concept[+].code = #360101000000102 +* ^expansion.include.concept[=].display = "Kannada language interpreter needed" +* ^expansion.include.concept[+].code = #972741000000101 +* ^expansion.include.concept[=].display = "Kanuri interpreter needed" +* ^expansion.include.concept[+].code = #360191000000109 +* ^expansion.include.concept[=].display = "Kashmiri language interpreter needed" +* ^expansion.include.concept[+].code = #360221000000102 +* ^expansion.include.concept[=].display = "Kazakh language interpreter needed" +* ^expansion.include.concept[+].code = #972751000000103 +* ^expansion.include.concept[=].display = "Kikuyu interpreter needed" +* ^expansion.include.concept[+].code = #360131000000108 +* ^expansion.include.concept[=].display = "Kinyarwanda language interpreter needed" +* ^expansion.include.concept[+].code = #359851000000109 +* ^expansion.include.concept[=].display = "Kirghiz language interpreter needed" +* ^expansion.include.concept[+].code = #972771000000107 +* ^expansion.include.concept[=].display = "Komi interpreter needed" +* ^expansion.include.concept[+].code = #972781000000109 +* ^expansion.include.concept[=].display = "Kongo interpreter needed" +* ^expansion.include.concept[+].code = #203691000000104 +* ^expansion.include.concept[=].display = "Korean language interpreter needed" +* ^expansion.include.concept[+].code = #972791000000106 +* ^expansion.include.concept[=].display = "Kuanyama interpreter needed" +* ^expansion.include.concept[+].code = #203701000000104 +* ^expansion.include.concept[=].display = "Kurdish language interpreter needed" +* ^expansion.include.concept[+].code = #343771000000106 +* ^expansion.include.concept[=].display = "Kutchi language interpreter needed" +* ^expansion.include.concept[+].code = #360371000000108 +* ^expansion.include.concept[=].display = "Lao language interpreter needed" +* ^expansion.include.concept[+].code = #972801000000105 +* ^expansion.include.concept[=].display = "Latin interpreter needed" +* ^expansion.include.concept[+].code = #360071000000106 +* ^expansion.include.concept[=].display = "Latvian language interpreter needed" +* ^expansion.include.concept[+].code = #972811000000107 +* ^expansion.include.concept[=].display = "Limburgan interpreter needed" +* ^expansion.include.concept[+].code = #203711000000102 +* ^expansion.include.concept[=].display = "Lingala language interpreter needed" +* ^expansion.include.concept[+].code = #203721000000108 +* ^expansion.include.concept[=].display = "Lithuanian language interpreter needed" +* ^expansion.include.concept[+].code = #972821000000101 +* ^expansion.include.concept[=].display = "Luba-Katanga interpreter needed" +* ^expansion.include.concept[+].code = #359761000000103 +* ^expansion.include.concept[=].display = "Luganda language interpreter needed" +* ^expansion.include.concept[+].code = #972831000000104 +* ^expansion.include.concept[=].display = "Luxembourgish interpreter needed" +* ^expansion.include.concept[+].code = #359971000000108 +* ^expansion.include.concept[=].display = "Macedonian language interpreter needed" +* ^expansion.include.concept[+].code = #360011000000101 +* ^expansion.include.concept[=].display = "Malagasy language interpreter needed" +* ^expansion.include.concept[+].code = #360161000000103 +* ^expansion.include.concept[=].display = "Malay language interpreter needed" +* ^expansion.include.concept[+].code = #203811000000107 +* ^expansion.include.concept[=].display = "Malayalam language interpreter needed" +* ^expansion.include.concept[+].code = #359731000000108 +* ^expansion.include.concept[=].display = "Maltese language interpreter needed" +* ^expansion.include.concept[+].code = #203821000000101 +* ^expansion.include.concept[=].display = "Mandarin language interpreter needed" +* ^expansion.include.concept[+].code = #972851000000106 +* ^expansion.include.concept[=].display = "Manx interpreter needed" +* ^expansion.include.concept[+].code = #359911000000103 +* ^expansion.include.concept[=].display = "Maori language interpreter needed" +* ^expansion.include.concept[+].code = #359701000000102 +* ^expansion.include.concept[=].display = "Marathi language interpreter needed" +* ^expansion.include.concept[+].code = #972861000000109 +* ^expansion.include.concept[=].display = "Marshallese interpreter needed" +* ^expansion.include.concept[+].code = #359671000000101 +* ^expansion.include.concept[=].display = "Moldavian language interpreter needed" +* ^expansion.include.concept[+].code = #359641000000107 +* ^expansion.include.concept[=].display = "Mongolian language interpreter needed" +* ^expansion.include.concept[+].code = #364351000000107 +* ^expansion.include.concept[=].display = "Nauru language interpreter needed" +* ^expansion.include.concept[+].code = #972881000000100 +* ^expansion.include.concept[=].display = "Navajo interpreter needed" +* ^expansion.include.concept[+].code = #352931000000102 +* ^expansion.include.concept[=].display = "Ndebele language interpreter needed" +* ^expansion.include.concept[+].code = #972891000000103 +* ^expansion.include.concept[=].display = "Ndonga interpreter needed" +* ^expansion.include.concept[+].code = #364251000000104 +* ^expansion.include.concept[=].display = "Nepali language interpreter needed" +* ^expansion.include.concept[+].code = #972911000000100 +* ^expansion.include.concept[=].display = "North Ndebele interpreter needed" +* ^expansion.include.concept[+].code = #972921000000106 +* ^expansion.include.concept[=].display = "Northern Sami interpreter needed" +* ^expansion.include.concept[+].code = #972931000000108 +* ^expansion.include.concept[=].display = "Norwegian BokmÃ¥l interpreter needed" +* ^expansion.include.concept[+].code = #203831000000104 +* ^expansion.include.concept[=].display = "Norwegian language interpreter needed" +* ^expansion.include.concept[+].code = #972941000000104 +* ^expansion.include.concept[=].display = "Norwegian Nynorsk interpreter needed" +* ^expansion.include.concept[+].code = #973071000000100 +* ^expansion.include.concept[=].display = "Nuosu interpreter needed" +* ^expansion.include.concept[+].code = #972951000000101 +* ^expansion.include.concept[=].display = "Nyanja interpreter needed" +* ^expansion.include.concept[+].code = #364311000000108 +* ^expansion.include.concept[=].display = "Occitan language interpreter needed" +* ^expansion.include.concept[+].code = #972981000000107 +* ^expansion.include.concept[=].display = "Ojibwa interpreter needed" +* ^expansion.include.concept[+].code = #364211000000103 +* ^expansion.include.concept[=].display = "Oriya language interpreter needed" +* ^expansion.include.concept[+].code = #362991000000107 +* ^expansion.include.concept[=].display = "Oromo language interpreter needed" +* ^expansion.include.concept[+].code = #973001000000108 +* ^expansion.include.concept[=].display = "Ossetian interpreter needed" +* ^expansion.include.concept[+].code = #973011000000105 +* ^expansion.include.concept[=].display = "Pali interpreter needed" +* ^expansion.include.concept[+].code = #203961000000103 +* ^expansion.include.concept[=].display = "Panjabi language interpreter needed" +* ^expansion.include.concept[+].code = #203841000000108 +* ^expansion.include.concept[=].display = "Pashto language interpreter needed" +* ^expansion.include.concept[+].code = #203901000000102 +* ^expansion.include.concept[=].display = "Polish language interpreter needed" +* ^expansion.include.concept[+].code = #203911000000100 +* ^expansion.include.concept[=].display = "Portuguese language interpreter needed" +* ^expansion.include.concept[+].code = #364011000000105 +* ^expansion.include.concept[=].display = "Quechua language interpreter needed" +* ^expansion.include.concept[+].code = #353881000000101 +* ^expansion.include.concept[=].display = "Romanian language interpreter needed" +* ^expansion.include.concept[+].code = #364481000000106 +* ^expansion.include.concept[=].display = "Romansh language interpreter needed" +* ^expansion.include.concept[+].code = #1047321000000104 +* ^expansion.include.concept[=].display = "Romany language interpreter needed" +* ^expansion.include.concept[+].code = #363061000000105 +* ^expansion.include.concept[=].display = "Rundi language interpreter needed" +* ^expansion.include.concept[+].code = #203971000000105 +* ^expansion.include.concept[=].display = "Russian language interpreter needed" +* ^expansion.include.concept[+].code = #363841000000104 +* ^expansion.include.concept[=].display = "Samoan language interpreter needed" +* ^expansion.include.concept[+].code = #364051000000109 +* ^expansion.include.concept[=].display = "Sango language interpreter needed" +* ^expansion.include.concept[+].code = #973031000000102 +* ^expansion.include.concept[=].display = "Sanskrit interpreter needed" +* ^expansion.include.concept[+].code = #973041000000106 +* ^expansion.include.concept[=].display = "Sardinian interpreter needed" +* ^expansion.include.concept[+].code = #973051000000109 +* ^expansion.include.concept[=].display = "Scottish Gaelic interpreter needed" +* ^expansion.include.concept[+].code = #203981000000107 +* ^expansion.include.concept[=].display = "Serbian language interpreter needed" +* ^expansion.include.concept[+].code = #973061000000107 +* ^expansion.include.concept[=].display = "Serbo-Croatian interpreter needed" +* ^expansion.include.concept[+].code = #203991000000109 +* ^expansion.include.concept[=].display = "Shona language interpreter needed" +* ^expansion.include.concept[+].code = #363711000000105 +* ^expansion.include.concept[=].display = "Sindhi language interpreter needed" +* ^expansion.include.concept[+].code = #204011000000102 +* ^expansion.include.concept[=].display = "Sinhala language interpreter needed" +* ^expansion.include.concept[+].code = #352901000000108 +* ^expansion.include.concept[=].display = "Slovak language interpreter needed" +* ^expansion.include.concept[+].code = #363591000000107 +* ^expansion.include.concept[=].display = "Slovenian language interpreter needed" +* ^expansion.include.concept[+].code = #204021000000108 +* ^expansion.include.concept[=].display = "Somali language interpreter needed" +* ^expansion.include.concept[+].code = #973081000000103 +* ^expansion.include.concept[=].display = "South Ndebele interpreter needed" +* ^expansion.include.concept[+].code = #363651000000100 +* ^expansion.include.concept[=].display = "Southern Sotho language interpreter needed" +* ^expansion.include.concept[+].code = #204031000000105 +* ^expansion.include.concept[=].display = "Spanish language interpreter needed" +* ^expansion.include.concept[+].code = #363781000000103 +* ^expansion.include.concept[=].display = "Sundanese language interpreter needed" +* ^expansion.include.concept[+].code = #204041000000101 +* ^expansion.include.concept[=].display = "Swahili language interpreter needed" +* ^expansion.include.concept[+].code = #363621000000105 +* ^expansion.include.concept[=].display = "Swati language interpreter needed" +* ^expansion.include.concept[+].code = #204051000000103 +* ^expansion.include.concept[=].display = "Swedish language interpreter needed" +* ^expansion.include.concept[+].code = #204081000000109 +* ^expansion.include.concept[=].display = "Sylheti language interpreter needed" +* ^expansion.include.concept[+].code = #204111000000101 +* ^expansion.include.concept[=].display = "Tagalog language interpreter needed" +* ^expansion.include.concept[+].code = #973101000000109 +* ^expansion.include.concept[=].display = "Tahitian interpreter needed" +* ^expansion.include.concept[+].code = #363681000000106 +* ^expansion.include.concept[=].display = "Tajik language interpreter needed" +* ^expansion.include.concept[+].code = #204131000000109 +* ^expansion.include.concept[=].display = "Tamil language interpreter needed" +* ^expansion.include.concept[+].code = #363221000000107 +* ^expansion.include.concept[=].display = "Tatar language interpreter needed" +* ^expansion.include.concept[+].code = #363341000000107 +* ^expansion.include.concept[=].display = "Telugu language interpreter needed" +* ^expansion.include.concept[+].code = #204151000000102 +* ^expansion.include.concept[=].display = "Thai language interpreter needed" +* ^expansion.include.concept[+].code = #363141000000105 +* ^expansion.include.concept[=].display = "Tibetan language interpreter needed" +* ^expansion.include.concept[+].code = #204171000000106 +* ^expansion.include.concept[=].display = "Tigrinya language interpreter needed" +* ^expansion.include.concept[+].code = #363461000000100 +* ^expansion.include.concept[=].display = "Tongan language interpreter needed" +* ^expansion.include.concept[+].code = #363181000000102 +* ^expansion.include.concept[=].display = "Tsonga language interpreter needed" +* ^expansion.include.concept[+].code = #363941000000108 +* ^expansion.include.concept[=].display = "Tswana language interpreter needed" +* ^expansion.include.concept[+].code = #204191000000105 +* ^expansion.include.concept[=].display = "Turkish language interpreter needed" +* ^expansion.include.concept[+].code = #363551000000104 +* ^expansion.include.concept[=].display = "Turkmen language interpreter needed" +* ^expansion.include.concept[+].code = #363301000000109 +* ^expansion.include.concept[=].display = "Twi language interpreter needed" +* ^expansion.include.concept[+].code = #364141000000107 +* ^expansion.include.concept[=].display = "Uighur language interpreter needed" +* ^expansion.include.concept[+].code = #204201000000107 +* ^expansion.include.concept[=].display = "Ukrainian language interpreter needed" +* ^expansion.include.concept[+].code = #204211000000109 +* ^expansion.include.concept[=].display = "Urdu language interpreter needed" +* ^expansion.include.concept[+].code = #362961000000101 +* ^expansion.include.concept[=].display = "Uzbek language interpreter needed" +* ^expansion.include.concept[+].code = #973121000000100 +* ^expansion.include.concept[=].display = "Venda interpreter needed" +* ^expansion.include.concept[+].code = #204221000000103 +* ^expansion.include.concept[=].display = "Vietnamese language interpreter needed" +* ^expansion.include.concept[+].code = #973131000000103 +* ^expansion.include.concept[=].display = "Volapük interpreter needed" +* ^expansion.include.concept[+].code = #973141000000107 +* ^expansion.include.concept[=].display = "Walloon interpreter needed" +* ^expansion.include.concept[+].code = #204231000000101 +* ^expansion.include.concept[=].display = "Welsh language interpreter needed" +* ^expansion.include.concept[+].code = #973151000000105 +* ^expansion.include.concept[=].display = "Western Frisian interpreter needed" +* ^expansion.include.concept[+].code = #973161000000108 +* ^expansion.include.concept[=].display = "Wolof interpreter needed" +* ^expansion.include.concept[+].code = #364511000000100 +* ^expansion.include.concept[=].display = "Xhosa language interpreter needed" +* ^expansion.include.concept[+].code = #363021000000102 +* ^expansion.include.concept[=].display = "Yiddish language interpreter needed" +* ^expansion.include.concept[+].code = #204241000000105 +* ^expansion.include.concept[=].display = "Yoruba language interpreter needed" +* ^expansion.include.concept[+].code = #362911000000103 +* ^expansion.include.concept[=].display = "Zhuang language interpreter needed" +* ^expansion.include.concept[+].code = #362821000000104 +* ^expansion.include.concept[=].display = "Zulu language interpreter needed" +* ^expansion.include.concept[+].code = #105506000 +* ^expansion.include.concept[=].display = "Dependence on seeing eye dog" +* ^expansion.include.concept[+].code = #1325291000000103 +* ^expansion.include.concept[=].display = "Emergency contact details of specialist support team" +* ^expansion.include.concept[+].code = #816361000000101 +* ^expansion.include.concept[=].display = "Has appointed person with personal welfare lasting power of attorney (Mental Capacity Act 2005)" +* ^expansion.include.concept[+].code = #988851000000103 +* ^expansion.include.concept[=].display = "Has appointed relevant person's representative (Mental Capacity Act 2005)" +* ^expansion.include.concept[+].code = #829101000000101 +* ^expansion.include.concept[=].display = "Needs assistance with medication regimen adherence" +* ^expansion.include.concept[+].code = #1325861000000105 +* ^expansion.include.concept[=].display = "Requires additional healthcare personnel to be present at encounter" +* ^expansion.include.concept[+].code = #1325421000000100 +* ^expansion.include.concept[=].display = "Requires approach to care to be discussed with carer" +* ^expansion.include.concept[+].code = #240451000000106 +* ^expansion.include.concept[=].display = "Requires constant supervision" +* ^expansion.include.concept[+].code = #1109351000000102 +* ^expansion.include.concept[=].display = "Requires enhanced discharge planning" +* ^expansion.include.concept[+].code = #225861007 +* ^expansion.include.concept[=].display = "Unsafe to be left alone" +* ^expansion.include.concept[+].code = #1325301000000104 +* ^expansion.include.concept[=].display = "Uses emotional support animal" +* ^expansion.include.concept[+].code = #862731000000105 +* ^expansion.include.concept[=].display = "Uses guide dog for the blind" +* ^expansion.include.concept[+].code = #1325321000000108 +* ^expansion.include.concept[=].display = "Anxiety related to clinical environment" +* ^expansion.include.concept[+].code = #105506000 +* ^expansion.include.concept[=].display = "Dependence on seeing eye dog" +* ^expansion.include.concept[+].code = #792871000000101 +* ^expansion.include.concept[=].display = "Has anticipatory care plan" +* ^expansion.include.concept[+].code = #231501003 +* ^expansion.include.concept[=].display = "Needle phobia" +* ^expansion.include.concept[+].code = #829101000000101 +* ^expansion.include.concept[=].display = "Needs assistance with medication regimen adherence" +* ^expansion.include.concept[+].code = #314434008 +* ^expansion.include.concept[=].display = "Preference for female healthcare professional" +* ^expansion.include.concept[+].code = #314435009 +* ^expansion.include.concept[=].display = "Preference for male healthcare professional" +* ^expansion.include.concept[+].code = #1325411000000106 +* ^expansion.include.concept[=].display = "Requires distraction technique whilst undergoing care procedure" +* ^expansion.include.concept[+].code = #1108171000000102 +* ^expansion.include.concept[=].display = "Requires extended appointment" +* ^expansion.include.concept[+].code = #1325341000000101 +* ^expansion.include.concept[=].display = "Requires familiarisation with care environment" +* ^expansion.include.concept[+].code = #1325331000000105 +* ^expansion.include.concept[=].display = "Requires familiarisation with care procedure" +* ^expansion.include.concept[+].code = #1325351000000103 +* ^expansion.include.concept[=].display = "Requires first appointment in appointment schedule" +* ^expansion.include.concept[+].code = #1325371000000107 +* ^expansion.include.concept[=].display = "Requires home visit appointments" +* ^expansion.include.concept[+].code = #1325361000000100 +* ^expansion.include.concept[=].display = "Requires last appointment in appointment schedule" +* ^expansion.include.concept[+].code = #1325841000000109 +* ^expansion.include.concept[=].display = "Requires minimal waiting time between arrival and being seen in care environment" +* ^expansion.include.concept[+].code = #1108161000000109 +* ^expansion.include.concept[=].display = "Requires priority appointment" +* ^expansion.include.concept[+].code = #1325401000000109 +* ^expansion.include.concept[=].display = "Requires single room during inpatient care" +* ^expansion.include.concept[+].code = #285035003 +* ^expansion.include.concept[=].display = "Self care deficit for medication management" +* ^expansion.include.concept[+].code = #865301000000107 +* ^expansion.include.concept[=].display = "Uses dispensed monitored dosage system" +* ^expansion.include.concept[+].code = #1325321000000108 +* ^expansion.include.concept[=].display = "Anxiety related to clinical environment" +* ^expansion.include.concept[+].code = #246622003 +* ^expansion.include.concept[=].display = "Eyes sensitive to light" +* ^expansion.include.concept[+].code = #247994001 +* ^expansion.include.concept[=].display = "Noise intolerance" +* ^expansion.include.concept[+].code = #409668002 +* ^expansion.include.concept[=].display = "Photophobia" +* ^expansion.include.concept[+].code = #1325341000000101 +* ^expansion.include.concept[=].display = "Requires familiarisation with care environment" +* ^expansion.include.concept[+].code = #1325381000000109 +* ^expansion.include.concept[=].display = "Requires low light environment" +* ^expansion.include.concept[+].code = #1325391000000106 +* ^expansion.include.concept[=].display = "Requires low noise environment" +* ^expansion.include.concept[+].code = #1325401000000109 +* ^expansion.include.concept[=].display = "Requires single room during inpatient care" +* ^expansion.include.concept[+].code = #1108191000000103 +* ^expansion.include.concept[=].display = "Requires wheelchair access" +* ^expansion.include.concept[+].code = #1325301000000104 +* ^expansion.include.concept[=].display = "Uses emotional support animal" +* ^expansion.include.concept[+].code = #862731000000105 +* ^expansion.include.concept[=].display = "Uses guide dog for the blind" +* ^expansion.include.concept[+].code = #1325761000000101 +* ^expansion.include.concept[=].display = "Assessment of eating and drinking behaviour indicated" +* ^expansion.include.concept[+].code = #1325741000000102 +* ^expansion.include.concept[=].display = "Constipation care indicated" +* ^expansion.include.concept[+].code = #1325751000000104 +* ^expansion.include.concept[=].display = "Dysphagia therapy regime indicated" +* ^expansion.include.concept[+].code = #1325771000000108 +* ^expansion.include.concept[=].display = "Screening for risk of falls indicated" +* ^expansion.include.concept[+].code = #1325781000000105 +* ^expansion.include.concept[=].display = "Seizure management indicated" +* ^expansion.include.concept[+].code = #1325791000000107 +* ^expansion.include.concept[=].display = "Self-harm behaviour management indicated" +* ^expansion.include.concept[+].code = #1325801000000106 +* ^expansion.include.concept[=].display = "Thyroid function test indicated" +* ^expansion.include.concept[+].code = #1108111000000107 +* ^expansion.include.concept[=].display = "Requires reasonable adjustment for health and care access (Equality Act 2010)" From c3adccc9a2ac8b0972368ced35dad9455383e4de Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 13:11:34 +0000 Subject: [PATCH 077/136] Create CareConnect-ConditionCategory-1.fsh --- input/fsh/valuesets/CareConnect-ConditionCategory-1.fsh | 1 + 1 file changed, 1 insertion(+) create mode 100644 input/fsh/valuesets/CareConnect-ConditionCategory-1.fsh diff --git a/input/fsh/valuesets/CareConnect-ConditionCategory-1.fsh b/input/fsh/valuesets/CareConnect-ConditionCategory-1.fsh new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/input/fsh/valuesets/CareConnect-ConditionCategory-1.fsh @@ -0,0 +1 @@ + From ef81bcf3c4f7c72e552fb8b28cddc5ec692417a4 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 13:35:04 +0000 Subject: [PATCH 078/136] Update CareConnect-ConditionCategory-1.fsh --- .../CareConnect-ConditionCategory-1.fsh | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/input/fsh/valuesets/CareConnect-ConditionCategory-1.fsh b/input/fsh/valuesets/CareConnect-ConditionCategory-1.fsh index 8b13789..dff238b 100644 --- a/input/fsh/valuesets/CareConnect-ConditionCategory-1.fsh +++ b/input/fsh/valuesets/CareConnect-ConditionCategory-1.fsh @@ -1 +1,29 @@ +ValueSet: Care Connect Condition Category +Id: Care Connect Condition Category +Title: "Care Connect Condition Category" +Description: " A ValueSet to identify the category of a condition." +* ^url = "https://fhir.hl7.org.uk/STU3/ValueSet/CareConnect-ConditionCategory-1" +* ^version = "1.0.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^publisher = "NHS England" +* ^contact.name = "NHS England" +* ^contact.telecom.system = #email +* ^contact.telecom.value = "interoperabilityteam@nhs.net" +* ^contact.telecom.use = #work +* ^contact.telecom.rank = 1 +* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." +* ^expansion.timestamp = "2024-02-14T12:00:00+00:00" +* ^expansion.contains[0].system = "https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1" +* ^expansion.contains[=].code = encounter-diagnosis +* ^expansion.contains[=].display = "Encounter Diagnosis" +* ^expansion.contains[=].code = issue +* ^expansion.contains[=].display = "Issue" +* ^expansion.contains[=].code = co-morbidity +* ^expansion.contains[=].display = "Co-morbidity" +* ^expansion.contains[=].code = presenting-complaint +* ^expansion.contains[=].display = "Presenting Complaint" +* ^expansion.contains[=].code = problem-list-item +* ^expansion.contains[=].display = "Problem List Item" +* include codes from system https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1|1.0.0 From 54ea3978d02747855deb1e503d3ff72cca8328f4 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 14:20:13 +0000 Subject: [PATCH 079/136] Create RARecord-ConditionCode-1.fsh --- input/fsh/valuesets/RARecord-ConditionCode-1.fsh | 1 + 1 file changed, 1 insertion(+) create mode 100644 input/fsh/valuesets/RARecord-ConditionCode-1.fsh diff --git a/input/fsh/valuesets/RARecord-ConditionCode-1.fsh b/input/fsh/valuesets/RARecord-ConditionCode-1.fsh new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/input/fsh/valuesets/RARecord-ConditionCode-1.fsh @@ -0,0 +1 @@ + From 27e970869039b597a767ef1e60d93b0f9282d92c Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 14:25:02 +0000 Subject: [PATCH 080/136] Update RARecord-ConditionCode-1.fsh --- .../valuesets/RARecord-ConditionCode-1.fsh | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/input/fsh/valuesets/RARecord-ConditionCode-1.fsh b/input/fsh/valuesets/RARecord-ConditionCode-1.fsh index 8b13789..ba54a38 100644 --- a/input/fsh/valuesets/RARecord-ConditionCode-1.fsh +++ b/input/fsh/valuesets/RARecord-ConditionCode-1.fsh @@ -1 +1,39 @@ - +ValueSet: Reasonable Adjustments Record Condition Code +Id: Reasonable Adjustments Record Condition Code +Title: "Reasonable Adjustments Record Condition Code" +Description: "A ValueSet to identify the SNOMED-CT concept representing an Impairment recorded as part of a Reasonable Adjustment" +* ^url = "https://fhir.nhs.uk/STU3/ValueSet/RARecord-ConditionCode-1" +* ^version = "1.0.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^publisher = "NHS England" +* ^contact.name = "NHS England" +* ^contact.telecom.system = #email +* ^contact.telecom.value = "interoperabilityteam@nhs.net" +* ^contact.telecom.use = #work +* ^contact.telecom.rank = 1 +* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." +* ^expansion.timestamp = "2024-02-14T12:00:00+00:00" +* ^expansion.contains[0].system = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1" +* ^expansion[0].code = "1" +* ^expansion[=].display = "Vision (for example blindness or partial sight)" +* ^expansion[+].code = "2" +* ^expansion[=].display = "Hearing (for example deafness or partial hearing)" +* ^expansion[+].code = "3" +* ^expansion[=].display = "Mobility (for example walking short distances or climbing stairs)" +* ^expansion[+].code = "4" +* ^expansion[=].display = "Dexterity (for example lifting and carrying objects, using a keyboard)" +* ^expansion[+].code = "5" +* ^expansion[=].display = "Learning or understanding or concentrating" +* ^expansion[+].code = "6" +* ^expansion[=].display = "Memory" +* ^expansion[+].code = "7" +* ^expansion[=].display = "Mental health" +* ^expansion[+].code = "8" +* ^expansion[=].display = "Stamina or breathing or fatigue" +* ^expansion[+].code = "9" +* ^expansion[=].display = "Social or behavioural (for example associated with autism spectrum disorder (ASD) which includes Asperger’s, or attention deficit hyperactivity disorder (ADHD))" +* ^expansion[+].code = "10" +* ^expansion[=].display = "Other (please specify)" +* ^expansion[+].code = "12" +* ^expansion[=].display = "Patient would prefer not to say" From 0cd95b15c4c5f1ca602fc48c992c2948ab967b6d Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 14:53:35 +0000 Subject: [PATCH 081/136] Delete input/resources directory --- input/resources/codesystem | 1 - 1 file changed, 1 deletion(-) delete mode 100644 input/resources/codesystem diff --git a/input/resources/codesystem b/input/resources/codesystem deleted file mode 100644 index 8b13789..0000000 --- a/input/resources/codesystem +++ /dev/null @@ -1 +0,0 @@ - From 51dd1d0c4dd6d6c4b5b394cf99428a256851a4db Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 14:57:32 +0000 Subject: [PATCH 082/136] Create RARecord-FlagCategory-1.fsh --- input/fsh/codesystem/RARecord-FlagCategory-1.fsh | 1 + 1 file changed, 1 insertion(+) create mode 100644 input/fsh/codesystem/RARecord-FlagCategory-1.fsh diff --git a/input/fsh/codesystem/RARecord-FlagCategory-1.fsh b/input/fsh/codesystem/RARecord-FlagCategory-1.fsh new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/input/fsh/codesystem/RARecord-FlagCategory-1.fsh @@ -0,0 +1 @@ + From 0ac6a5f6ea8bb8be01d1694a4a9d284acd94959a Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 15:03:52 +0000 Subject: [PATCH 083/136] Update RARecord-FlagCategory-1.fsh --- .../codesystem/RARecord-FlagCategory-1.fsh | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/input/fsh/codesystem/RARecord-FlagCategory-1.fsh b/input/fsh/codesystem/RARecord-FlagCategory-1.fsh index 8b13789..68eb720 100644 --- a/input/fsh/codesystem/RARecord-FlagCategory-1.fsh +++ b/input/fsh/codesystem/RARecord-FlagCategory-1.fsh @@ -1 +1,18 @@ - +CodeSystem: Reasonable Adjustments Record Flag Category +Id: Reasonable Adjustments Record Flag Category +Title: "Reasonable Adjustments Record Flag Category" +Description: " A CodeSystem to identify the type/category of Flag." +* ^url = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1" +* ^version = "1.0.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^publisher = "NHS England" +* ^contact.name = "NHS England" +* ^contact.telecom.system = #email +* ^contact.telecom.value = "interoperabilityteam@nhs.net" +* ^contact.telecom.use = #work +* ^contact.telecom.rank = 2 +* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." +* ^caseSensitive = true +* ^content = #complete +* #NRAF "National Reasonable Adjustments Flag" From ca3f1eda97a75208d8428e7eb803f2b870572e7b Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 15:14:30 +0000 Subject: [PATCH 084/136] Create CareConnect-ConditionCategory-1.fsh --- input/fsh/codesystem/CareConnect-ConditionCategory-1.fsh | 1 + 1 file changed, 1 insertion(+) create mode 100644 input/fsh/codesystem/CareConnect-ConditionCategory-1.fsh diff --git a/input/fsh/codesystem/CareConnect-ConditionCategory-1.fsh b/input/fsh/codesystem/CareConnect-ConditionCategory-1.fsh new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/input/fsh/codesystem/CareConnect-ConditionCategory-1.fsh @@ -0,0 +1 @@ + From da8388ab24a978cb374c488e6db850cff6cf5938 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 15:21:25 +0000 Subject: [PATCH 085/136] Update CareConnect-ConditionCategory-1.fsh --- .../CareConnect-ConditionCategory-1.fsh | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/input/fsh/codesystem/CareConnect-ConditionCategory-1.fsh b/input/fsh/codesystem/CareConnect-ConditionCategory-1.fsh index 8b13789..3cee6d5 100644 --- a/input/fsh/codesystem/CareConnect-ConditionCategory-1.fsh +++ b/input/fsh/codesystem/CareConnect-ConditionCategory-1.fsh @@ -1 +1,24 @@ +CodeSystem: Care Connect Condition Category +Id: Care Connect Condition Category +Title: "Care Connect Condition Category" +Description: " A CodeSystem to identify the category of a condition.." +* ^url = "https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1" +* ^version = "1.0.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^publisher = "NHS England" +* ^contact.name = "NHS England" +* ^contact.telecom.system = #email +* ^contact.telecom.value = "interoperabilityteam@nhs.net" +* ^contact.telecom.use = #work +* ^contact.telecom.rank = 2 +* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." +* ^caseSensitive = true +* ^content = #complete +* #problem-list-item "Problem List Item" +* #encounter-diagnosis "Encounter Diagnosis" +* #presenting-complaint "Presenting Complaint" +* #co-morbidity "Co-morbidity" +* #issue "Issue" + From 41aa3a230e8803b982866bd8b0c408383097537e Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 15:24:57 +0000 Subject: [PATCH 086/136] Create RARecord-ConditionCode-1.fsh --- input/fsh/codesystem/RARecord-ConditionCode-1.fsh1 | 1 + 1 file changed, 1 insertion(+) create mode 100644 input/fsh/codesystem/RARecord-ConditionCode-1.fsh1 diff --git a/input/fsh/codesystem/RARecord-ConditionCode-1.fsh1 b/input/fsh/codesystem/RARecord-ConditionCode-1.fsh1 new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/input/fsh/codesystem/RARecord-ConditionCode-1.fsh1 @@ -0,0 +1 @@ + From a6e0bdf166b585f9be76852fecfc03942e4b3211 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 15:25:12 +0000 Subject: [PATCH 087/136] Delete input/fsh/codesystem/RARecord-ConditionCode-1.fsh1 --- input/fsh/codesystem/RARecord-ConditionCode-1.fsh1 | 1 - 1 file changed, 1 deletion(-) delete mode 100644 input/fsh/codesystem/RARecord-ConditionCode-1.fsh1 diff --git a/input/fsh/codesystem/RARecord-ConditionCode-1.fsh1 b/input/fsh/codesystem/RARecord-ConditionCode-1.fsh1 deleted file mode 100644 index 8b13789..0000000 --- a/input/fsh/codesystem/RARecord-ConditionCode-1.fsh1 +++ /dev/null @@ -1 +0,0 @@ - From e41805efe01a58e443882375e87bebc46f0c1107 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 15:25:32 +0000 Subject: [PATCH 088/136] Create RARecord-ConditionCode-1.fsh --- input/fsh/codesystem/RARecord-ConditionCode-1.fsh | 1 + 1 file changed, 1 insertion(+) create mode 100644 input/fsh/codesystem/RARecord-ConditionCode-1.fsh diff --git a/input/fsh/codesystem/RARecord-ConditionCode-1.fsh b/input/fsh/codesystem/RARecord-ConditionCode-1.fsh new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/input/fsh/codesystem/RARecord-ConditionCode-1.fsh @@ -0,0 +1 @@ + From b8a55b67039215718358d234b803e7cc5975cace Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 15:31:32 +0000 Subject: [PATCH 089/136] Update RARecord-ConditionCode-1.fsh --- .../codesystem/RARecord-ConditionCode-1.fsh | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/input/fsh/codesystem/RARecord-ConditionCode-1.fsh b/input/fsh/codesystem/RARecord-ConditionCode-1.fsh index 8b13789..6f73f90 100644 --- a/input/fsh/codesystem/RARecord-ConditionCode-1.fsh +++ b/input/fsh/codesystem/RARecord-ConditionCode-1.fsh @@ -1 +1,28 @@ - +CodeSystem: Reasonable Adjustments Record Condition Code +Id: Reasonable Adjustments Record Condition Code +Title: "Reasonable Adjustments Record Condition Code" +Description: "A CodeSystem to identify the SNOMED-CT concept representing an Impairment recorded as part of a Reasonable Adjustment" +* ^url = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1" +* ^version = "1.0.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^publisher = "NHS England" +* ^contact.name = "NHS England" +* ^contact.telecom.system = #email +* ^contact.telecom.value = "interoperabilityteam@nhs.net" +* ^contact.telecom.use = #work +* ^contact.telecom.rank = 2 +* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." +* ^caseSensitive = true +* ^content = #complete +* #1 "Vision (for example blindness or partial sight)" +* #2 "Hearing (for example deafness or partial hearing)" +* #3 "Mobility (for example walking short distances or climbing stairs)" +* #4 "Dexterity (for example lifting and carrying objects, using a keyboard)" +* #5 "Learning or understanding or concentrating" +* #6 "Memory" +* #7 "Mental health" +* #8 "Stamina or breathing or fatigue" +* #9 "Social or behavioural (for example associated with autism spectrum disorder (ASD) which includes Asperger’s, or attention deficit hyperactivity disorder (ADHD))" +* #10 "Other (please specify)" +* #12 "Patient would prefer not to say" From bc2fa6b4098a9e74ba0b10649439b19e5870fd60 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 15:34:15 +0000 Subject: [PATCH 090/136] Create RARecord-ConsentPurpose-1.fsh --- input/fsh/codesystem/RARecord-ConsentPurpose-1.fsh | 1 + 1 file changed, 1 insertion(+) create mode 100644 input/fsh/codesystem/RARecord-ConsentPurpose-1.fsh diff --git a/input/fsh/codesystem/RARecord-ConsentPurpose-1.fsh b/input/fsh/codesystem/RARecord-ConsentPurpose-1.fsh new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/input/fsh/codesystem/RARecord-ConsentPurpose-1.fsh @@ -0,0 +1 @@ + From e6002db960ffd8ee0221b9d61371c22f7af1f6ad Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 15:35:52 +0000 Subject: [PATCH 091/136] Update RARecord-ConsentPurpose-1.fsh --- .../codesystem/RARecord-ConsentPurpose-1.fsh | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/input/fsh/codesystem/RARecord-ConsentPurpose-1.fsh b/input/fsh/codesystem/RARecord-ConsentPurpose-1.fsh index 8b13789..b14974b 100644 --- a/input/fsh/codesystem/RARecord-ConsentPurpose-1.fsh +++ b/input/fsh/codesystem/RARecord-ConsentPurpose-1.fsh @@ -1 +1,18 @@ - +CodeSystem: Reasonable Adjustments Record Consent Purpose +Id: Reasonable Adjustments Record Consent Purpose +Title: "Reasonable Adjustments Record Consent Purpose" +Description: "A CodeSystem to identify the purpose of the consent given" +* ^url = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConsentPurpose-1" +* ^version = "1.0.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^publisher = "NHS England" +* ^contact.name = "NHS England" +* ^contact.telecom.system = #email +* ^contact.telecom.value = "interoperabilityteam@nhs.net" +* ^contact.telecom.use = #work +* ^contact.telecom.rank = 2 +* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." +* ^caseSensitive = true +* ^content = #complete +* #RACONSENT "Reasonable Adjustments - Consent to record Reasonable Adjustments" From dce612127dc0d3af8350f493e72628188e538349 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 15:49:25 +0000 Subject: [PATCH 092/136] Create RARecord-AdjustmentCategory-1.fsh --- input/fsh/codesystem/RARecord-AdjustmentCategory-1.fsh | 1 + 1 file changed, 1 insertion(+) create mode 100644 input/fsh/codesystem/RARecord-AdjustmentCategory-1.fsh diff --git a/input/fsh/codesystem/RARecord-AdjustmentCategory-1.fsh b/input/fsh/codesystem/RARecord-AdjustmentCategory-1.fsh new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/input/fsh/codesystem/RARecord-AdjustmentCategory-1.fsh @@ -0,0 +1 @@ + From 8e9c6473209af45c352176bec3c07be132f10e37 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 15:55:18 +0000 Subject: [PATCH 093/136] Update RARecord-AdjustmentCategory-1.fsh --- .../RARecord-AdjustmentCategory-1.fsh | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/input/fsh/codesystem/RARecord-AdjustmentCategory-1.fsh b/input/fsh/codesystem/RARecord-AdjustmentCategory-1.fsh index 8b13789..95f87e4 100644 --- a/input/fsh/codesystem/RARecord-AdjustmentCategory-1.fsh +++ b/input/fsh/codesystem/RARecord-AdjustmentCategory-1.fsh @@ -1 +1,28 @@ - +CodeSystem: Adjustment Category +Id: Adjustment Category +Title: "Adjustment Category" +Description: "A CodeSystem to identify the category of the Adjustment required" +* ^url = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1" +* ^version = "1.0.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^publisher = "NHS England" +* ^contact.name = "NHS England" +* ^contact.telecom.system = #email +* ^contact.telecom.value = "interoperabilityteam@nhs.net" +* ^contact.telecom.use = #work +* ^contact.telecom.rank = 2 +* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." +* ^caseSensitive = true +* ^content = #complete +* #001 "Communication support" +* #002 "Requires communication professional" +* #003 "Requires specific contact method" +* #004 "Requires specific information format" +* #005 "Additional communication needs and support" +* #006 "Community Language Support" +* #007 "Adjustments for providing Additional Support to patients" +* #008 "Adjustments for Individual Care Requirements" +* #009 "Adjustments in relation to the environment of care" +* #010 "Adjustments to support Additional needs" +* #011 "Bespoke Reasonable adjustments" From d04a05a109cc117be20dbbfcb05b110e017ca968 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 15:55:58 +0000 Subject: [PATCH 094/136] Create RARecord-AdjustmentCategory-1.fsh --- input/fsh/valuesets/RARecord-AdjustmentCategory-1.fsh | 1 + 1 file changed, 1 insertion(+) create mode 100644 input/fsh/valuesets/RARecord-AdjustmentCategory-1.fsh diff --git a/input/fsh/valuesets/RARecord-AdjustmentCategory-1.fsh b/input/fsh/valuesets/RARecord-AdjustmentCategory-1.fsh new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/input/fsh/valuesets/RARecord-AdjustmentCategory-1.fsh @@ -0,0 +1 @@ + From b7ef0deae34ebf357dd4e6f58c47881270d05505 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 15:58:42 +0000 Subject: [PATCH 095/136] Update RARecord-AdjustmentCategory-1.fsh --- .../RARecord-AdjustmentCategory-1.fsh | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/input/fsh/valuesets/RARecord-AdjustmentCategory-1.fsh b/input/fsh/valuesets/RARecord-AdjustmentCategory-1.fsh index 8b13789..c815073 100644 --- a/input/fsh/valuesets/RARecord-AdjustmentCategory-1.fsh +++ b/input/fsh/valuesets/RARecord-AdjustmentCategory-1.fsh @@ -1 +1,40 @@ +ValueSet: Reasonable Adjustments Record Adjustment Category +Id: Reasonable Adjustments Record Adjustment Category +Title: "Reasonable Adjustments Record Adjustment Category" +Description: "A ValueSet to identify the category of a Reasonable Adjustment" +* ^url = "https://fhir.nhs.uk/STU3/ValueSet/RARecord-AdjustmentCategory-1" +* ^version = "1.0.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^publisher = "NHS England" +* ^contact.name = "NHS England" +* ^contact.telecom.system = #email +* ^contact.telecom.value = "interoperabilityteam@nhs.net" +* ^contact.telecom.use = #work +* ^contact.telecom.rank = 1 +* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." +* ^expansion.timestamp = "2024-02-14T12:00:00+00:00" +* ^expansion.contains[0].system = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1" +* ^expansion[0].code = "001" +* ^expansion[=].display = "Communication support" +* ^expansion[+].code = "002" +* ^expansion[=].display = "Requires communication professional" +* ^expansion[+].code = "003" +* ^expansion[=].display = "Requires specific contact method" +* ^expansion[+].code = "004" +* ^expansion[=].display = "Requires specific information format" +* ^expansion[+].code = "005" +* ^expansion[=].display = "Additional communication needs and support" +* ^expansion[+].code = "006" +* ^expansion[=].display = "Community Language Support" +* ^expansion[+].code = "007" +* ^expansion[=].display = "Adjustments for providing Additional Support to patients" +* ^expansion[+].code = "008" +* ^expansion[=].display = "Adjustments for Individual Care Requirements" +* ^expansion[+].code = "009" +* ^expansion[=].display = "Adjustments in relation to the environment of care" +* ^expansion[+].code = "010" +* ^expansion[=].display = "Adjustments to support Additional needs" +* ^expansion[+].code = "011" +* ^expansion[=].display = "Bespoke Reasonable adjustments" From 41d2fd1d513fb029cd0db0e555edb420e8139d92 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 15:59:09 +0000 Subject: [PATCH 096/136] Update RARecord-AdjustmentCategory-1.fsh --- input/fsh/codesystem/RARecord-AdjustmentCategory-1.fsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/input/fsh/codesystem/RARecord-AdjustmentCategory-1.fsh b/input/fsh/codesystem/RARecord-AdjustmentCategory-1.fsh index 95f87e4..72b8885 100644 --- a/input/fsh/codesystem/RARecord-AdjustmentCategory-1.fsh +++ b/input/fsh/codesystem/RARecord-AdjustmentCategory-1.fsh @@ -1,6 +1,6 @@ -CodeSystem: Adjustment Category -Id: Adjustment Category -Title: "Adjustment Category" +CodeSystem: Reasonable Adjustments Record Adjustment Category +Id: Reasonable Adjustments Record Adjustment Category +Title: "Reasonable Adjustments Record Adjustment Category" Description: "A CodeSystem to identify the category of the Adjustment required" * ^url = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1" * ^version = "1.0.0" From cd480900a15c943af1f85e6c3005f93db211002a Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 15:59:54 +0000 Subject: [PATCH 097/136] Create RARecord-ConsentPurpose-1.fsh --- input/fsh/valuesets/RARecord-ConsentPurpose-1.fsh | 1 + 1 file changed, 1 insertion(+) create mode 100644 input/fsh/valuesets/RARecord-ConsentPurpose-1.fsh diff --git a/input/fsh/valuesets/RARecord-ConsentPurpose-1.fsh b/input/fsh/valuesets/RARecord-ConsentPurpose-1.fsh new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/input/fsh/valuesets/RARecord-ConsentPurpose-1.fsh @@ -0,0 +1 @@ + From fa1df1dea79386e643adf25aa7e684f00273ef11 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Wed, 14 Feb 2024 16:01:32 +0000 Subject: [PATCH 098/136] Update RARecord-ConsentPurpose-1.fsh --- .../valuesets/RARecord-ConsentPurpose-1.fsh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/input/fsh/valuesets/RARecord-ConsentPurpose-1.fsh b/input/fsh/valuesets/RARecord-ConsentPurpose-1.fsh index 8b13789..936d72f 100644 --- a/input/fsh/valuesets/RARecord-ConsentPurpose-1.fsh +++ b/input/fsh/valuesets/RARecord-ConsentPurpose-1.fsh @@ -1 +1,20 @@ +ValueSet: Reasonable Adjustments Consent Purpose +Id: Reasonable Adjustments Consent Purpose +Title: "Reasonable Adjustments Consent Purpose" +Description: " A ValueSet to identify the purpose of a consent given." +* ^url = "https://fhir.nhs.uk/STU3/ValueSet/RARecord-ConsentPurpose-1" +* ^version = "1.0.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^publisher = "NHS England" +* ^contact.name = "NHS England" +* ^contact.telecom.system = #email +* ^contact.telecom.value = "interoperabilityteam@nhs.net" +* ^contact.telecom.use = #work +* ^contact.telecom.rank = 1 +* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." +* ^expansion.timestamp = "2024-02-14T12:00:00+00:00" +* ^expansion.contains[0].system = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConsentPurpose-1" +* ^expansion.contains[=].code = RACONSENT +* ^expansion.contains[=].display = "Reasonable Adjustments - Consent to record Reasonable Adjustments" From 966c838232c70da23cdcb14709e7a38e465c7c32 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Fri, 16 Feb 2024 13:33:59 +0000 Subject: [PATCH 099/136] Update and rename CareConnect-ConditionCategory-1.fsh to ValueSet-England-ConditionCategory.fsh --- ...ategory-1.fsh => ValueSet-England-ConditionCategory.fsh} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename input/fsh/valuesets/{CareConnect-ConditionCategory-1.fsh => ValueSet-England-ConditionCategory.fsh} (93%) diff --git a/input/fsh/valuesets/CareConnect-ConditionCategory-1.fsh b/input/fsh/valuesets/ValueSet-England-ConditionCategory.fsh similarity index 93% rename from input/fsh/valuesets/CareConnect-ConditionCategory-1.fsh rename to input/fsh/valuesets/ValueSet-England-ConditionCategory.fsh index dff238b..788d66f 100644 --- a/input/fsh/valuesets/CareConnect-ConditionCategory-1.fsh +++ b/input/fsh/valuesets/ValueSet-England-ConditionCategory.fsh @@ -1,6 +1,6 @@ -ValueSet: Care Connect Condition Category -Id: Care Connect Condition Category -Title: "Care Connect Condition Category" +ValueSet: ValueSet-England-ConditionCategory +Id: ValueSet-England-ConditionCategoryy +Title: "ValueSet-England-ConditionCategory" Description: " A ValueSet to identify the category of a condition." * ^url = "https://fhir.hl7.org.uk/STU3/ValueSet/CareConnect-ConditionCategory-1" * ^version = "1.0.0" From c7169566483b80d608231679d18fd6e01e4003ca Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Fri, 16 Feb 2024 13:35:23 +0000 Subject: [PATCH 100/136] Update and rename RARecord-FlagCode-1.fsh to ValueSet-England-FlagCode.fsh --- ...{RARecord-FlagCode-1.fsh => ValueSet-England-FlagCode.fsh} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename input/fsh/valuesets/{RARecord-FlagCode-1.fsh => ValueSet-England-FlagCode.fsh} (99%) diff --git a/input/fsh/valuesets/RARecord-FlagCode-1.fsh b/input/fsh/valuesets/ValueSet-England-FlagCode.fsh similarity index 99% rename from input/fsh/valuesets/RARecord-FlagCode-1.fsh rename to input/fsh/valuesets/ValueSet-England-FlagCode.fsh index 2a2d406..0cc2b08 100644 --- a/input/fsh/valuesets/RARecord-FlagCode-1.fsh +++ b/input/fsh/valuesets/ValueSet-England-FlagCode.fsh @@ -1,5 +1,5 @@ -ValueSet: Reasonable Adjustments Record Flag Code -Id: Reasonable Adjustments Record Flag Code +ValueSet: ValueSet-England-FlagCode +Id: ValueSet-England-FlagCode Title: "Reasonable Adjustments Record Flag Code" Description: "A ValueSet to identify codes representing Adjustments required for a patient" * ^url = "https://fhir.nhs.uk/STU3/ValueSet/RARecord-FlagCode-1" From 2307cc9ef884863a64e8f57643f9163c880cece6 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Fri, 16 Feb 2024 13:36:08 +0000 Subject: [PATCH 101/136] Update ValueSet-England-ConditionCategory.fsh --- input/fsh/valuesets/ValueSet-England-ConditionCategory.fsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/fsh/valuesets/ValueSet-England-ConditionCategory.fsh b/input/fsh/valuesets/ValueSet-England-ConditionCategory.fsh index 788d66f..6dc6181 100644 --- a/input/fsh/valuesets/ValueSet-England-ConditionCategory.fsh +++ b/input/fsh/valuesets/ValueSet-England-ConditionCategory.fsh @@ -1,6 +1,6 @@ ValueSet: ValueSet-England-ConditionCategory Id: ValueSet-England-ConditionCategoryy -Title: "ValueSet-England-ConditionCategory" +Title: "Care Connect Condition Category" Description: " A ValueSet to identify the category of a condition." * ^url = "https://fhir.hl7.org.uk/STU3/ValueSet/CareConnect-ConditionCategory-1" * ^version = "1.0.0" From 3ce07d38b4259d888d6689065ec394ebdbf9819b Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Fri, 16 Feb 2024 13:37:04 +0000 Subject: [PATCH 102/136] Update and rename RARecord-FlagCategory-1.fsh to ValueSet-England-FlagCategory.fsh --- ...d-FlagCategory-1.fsh => ValueSet-England-FlagCategory.fsh} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename input/fsh/valuesets/{RARecord-FlagCategory-1.fsh => ValueSet-England-FlagCategory.fsh} (93%) diff --git a/input/fsh/valuesets/RARecord-FlagCategory-1.fsh b/input/fsh/valuesets/ValueSet-England-FlagCategory.fsh similarity index 93% rename from input/fsh/valuesets/RARecord-FlagCategory-1.fsh rename to input/fsh/valuesets/ValueSet-England-FlagCategory.fsh index 542694a..4030ae0 100644 --- a/input/fsh/valuesets/RARecord-FlagCategory-1.fsh +++ b/input/fsh/valuesets/ValueSet-England-FlagCategory.fsh @@ -1,5 +1,5 @@ -ValueSet: Reasonable Adjustments Record Flag Category -Id: Reasonable Adjustments Record Flag Category +ValueSet: ValueSet-England-FlagCategory +Id: ValueSet-England-FlagCategory Title: "Reasonable Adjustments Record Flag Category" Description: "A ValueSet to identify the type/category of Flag." * ^url = "https://fhir.nhs.uk/STU3/ValueSet/RARecord-FlagCategory-1" From a146f255f9ab746fa9d958f67dd6e0c07e918522 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Fri, 16 Feb 2024 13:37:47 +0000 Subject: [PATCH 103/136] Update and rename RARecord-ConsentPurpose-1.fsh to ValueSet-England-ConsentPurpose.fsh --- ...nsentPurpose-1.fsh => ValueSet-England-ConsentPurpose.fsh} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename input/fsh/valuesets/{RARecord-ConsentPurpose-1.fsh => ValueSet-England-ConsentPurpose.fsh} (94%) diff --git a/input/fsh/valuesets/RARecord-ConsentPurpose-1.fsh b/input/fsh/valuesets/ValueSet-England-ConsentPurpose.fsh similarity index 94% rename from input/fsh/valuesets/RARecord-ConsentPurpose-1.fsh rename to input/fsh/valuesets/ValueSet-England-ConsentPurpose.fsh index 936d72f..bdb395a 100644 --- a/input/fsh/valuesets/RARecord-ConsentPurpose-1.fsh +++ b/input/fsh/valuesets/ValueSet-England-ConsentPurpose.fsh @@ -1,5 +1,5 @@ -ValueSet: Reasonable Adjustments Consent Purpose -Id: Reasonable Adjustments Consent Purpose +ValueSet: ValueSet-England-ConsentPurpose +Id: ValueSet-England-ConsentPurpose Title: "Reasonable Adjustments Consent Purpose" Description: " A ValueSet to identify the purpose of a consent given." * ^url = "https://fhir.nhs.uk/STU3/ValueSet/RARecord-ConsentPurpose-1" From f91d9c490f1c8cb301616b529a523357f3b779a6 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Fri, 16 Feb 2024 13:38:40 +0000 Subject: [PATCH 104/136] Update and rename RARecord-ConditionCode-1.fsh to ValueSet-England-ConditionCode.fsh --- ...ConditionCode-1.fsh => ValueSet-England-ConditionCode.fsh} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename input/fsh/valuesets/{RARecord-ConditionCode-1.fsh => ValueSet-England-ConditionCode.fsh} (96%) diff --git a/input/fsh/valuesets/RARecord-ConditionCode-1.fsh b/input/fsh/valuesets/ValueSet-England-ConditionCode.fsh similarity index 96% rename from input/fsh/valuesets/RARecord-ConditionCode-1.fsh rename to input/fsh/valuesets/ValueSet-England-ConditionCode.fsh index ba54a38..7ac35e1 100644 --- a/input/fsh/valuesets/RARecord-ConditionCode-1.fsh +++ b/input/fsh/valuesets/ValueSet-England-ConditionCode.fsh @@ -1,5 +1,5 @@ -ValueSet: Reasonable Adjustments Record Condition Code -Id: Reasonable Adjustments Record Condition Code +ValueSet: ValueSet-England-ConditionCode +Id: ValueSet-England-ConditionCode Title: "Reasonable Adjustments Record Condition Code" Description: "A ValueSet to identify the SNOMED-CT concept representing an Impairment recorded as part of a Reasonable Adjustment" * ^url = "https://fhir.nhs.uk/STU3/ValueSet/RARecord-ConditionCode-1" From 4b76eee36de94c0b02a548ee7bb5697192806287 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Fri, 16 Feb 2024 13:39:45 +0000 Subject: [PATCH 105/136] Update and rename RARecord-AdjustmentCategory-1.fsh to ValueSet-England-AdjustmentCategory.fsh --- ...Category-1.fsh => ValueSet-England-AdjustmentCategory.fsh} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename input/fsh/valuesets/{RARecord-AdjustmentCategory-1.fsh => ValueSet-England-AdjustmentCategory.fsh} (95%) diff --git a/input/fsh/valuesets/RARecord-AdjustmentCategory-1.fsh b/input/fsh/valuesets/ValueSet-England-AdjustmentCategory.fsh similarity index 95% rename from input/fsh/valuesets/RARecord-AdjustmentCategory-1.fsh rename to input/fsh/valuesets/ValueSet-England-AdjustmentCategory.fsh index c815073..372254c 100644 --- a/input/fsh/valuesets/RARecord-AdjustmentCategory-1.fsh +++ b/input/fsh/valuesets/ValueSet-England-AdjustmentCategory.fsh @@ -1,5 +1,5 @@ -ValueSet: Reasonable Adjustments Record Adjustment Category -Id: Reasonable Adjustments Record Adjustment Category +ValueSet: ValueSet-England-AdjustmentCategory +Id: ValueSet-England-AdjustmentCategory Title: "Reasonable Adjustments Record Adjustment Category" Description: "A ValueSet to identify the category of a Reasonable Adjustment" * ^url = "https://fhir.nhs.uk/STU3/ValueSet/RARecord-AdjustmentCategory-1" From 2090786351862a85da2ca5ea7441601752e88f78 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Fri, 16 Feb 2024 13:40:42 +0000 Subject: [PATCH 106/136] Update and rename CareConnect-ConditionCategory-1.fsh to CodeSystem-England-ConditionCategory.fsh --- ...ategory-1.fsh => CodeSystem-England-ConditionCategory.fsh} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename input/fsh/codesystem/{CareConnect-ConditionCategory-1.fsh => CodeSystem-England-ConditionCategory.fsh} (94%) diff --git a/input/fsh/codesystem/CareConnect-ConditionCategory-1.fsh b/input/fsh/codesystem/CodeSystem-England-ConditionCategory.fsh similarity index 94% rename from input/fsh/codesystem/CareConnect-ConditionCategory-1.fsh rename to input/fsh/codesystem/CodeSystem-England-ConditionCategory.fsh index 3cee6d5..5ebb1eb 100644 --- a/input/fsh/codesystem/CareConnect-ConditionCategory-1.fsh +++ b/input/fsh/codesystem/CodeSystem-England-ConditionCategory.fsh @@ -1,5 +1,5 @@ -CodeSystem: Care Connect Condition Category -Id: Care Connect Condition Category +CodeSystem: CodeSystem-England-ConditionCategory +Id: CodeSystem-England-ConditionCategory Title: "Care Connect Condition Category" Description: " A CodeSystem to identify the category of a condition.." * ^url = "https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1" From 564c14f115d035345f905f35c4bedbd435b1fdff Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Fri, 16 Feb 2024 13:41:32 +0000 Subject: [PATCH 107/136] Update and rename RARecord-AdjustmentCategory-1.fsh to CodeSystem-England-AdjustmentCategory.fsh --- ...tegory-1.fsh => CodeSystem-England-AdjustmentCategory.fsh} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename input/fsh/codesystem/{RARecord-AdjustmentCategory-1.fsh => CodeSystem-England-AdjustmentCategory.fsh} (94%) diff --git a/input/fsh/codesystem/RARecord-AdjustmentCategory-1.fsh b/input/fsh/codesystem/CodeSystem-England-AdjustmentCategory.fsh similarity index 94% rename from input/fsh/codesystem/RARecord-AdjustmentCategory-1.fsh rename to input/fsh/codesystem/CodeSystem-England-AdjustmentCategory.fsh index 72b8885..ef86a8e 100644 --- a/input/fsh/codesystem/RARecord-AdjustmentCategory-1.fsh +++ b/input/fsh/codesystem/CodeSystem-England-AdjustmentCategory.fsh @@ -1,5 +1,5 @@ -CodeSystem: Reasonable Adjustments Record Adjustment Category -Id: Reasonable Adjustments Record Adjustment Category +CodeSystem: CodeSystem-England-AdjustmentCategory +Id: CodeSystem-England-AdjustmentCategory Title: "Reasonable Adjustments Record Adjustment Category" Description: "A CodeSystem to identify the category of the Adjustment required" * ^url = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1" From b9f98dd516c065a65052901b6f951c696f61e3cf Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Fri, 16 Feb 2024 13:42:21 +0000 Subject: [PATCH 108/136] Update and rename RARecord-ConditionCode-1.fsh to CodeSystem-England-ConditionCode.fsh --- ...nditionCode-1.fsh => CodeSystem-England-ConditionCode.fsh} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename input/fsh/codesystem/{RARecord-ConditionCode-1.fsh => CodeSystem-England-ConditionCode.fsh} (94%) diff --git a/input/fsh/codesystem/RARecord-ConditionCode-1.fsh b/input/fsh/codesystem/CodeSystem-England-ConditionCode.fsh similarity index 94% rename from input/fsh/codesystem/RARecord-ConditionCode-1.fsh rename to input/fsh/codesystem/CodeSystem-England-ConditionCode.fsh index 6f73f90..625738f 100644 --- a/input/fsh/codesystem/RARecord-ConditionCode-1.fsh +++ b/input/fsh/codesystem/CodeSystem-England-ConditionCode.fsh @@ -1,5 +1,5 @@ -CodeSystem: Reasonable Adjustments Record Condition Code -Id: Reasonable Adjustments Record Condition Code +CodeSystem: CodeSystem-England-ConditionCode +Id: CodeSystem-England-ConditionCode Title: "Reasonable Adjustments Record Condition Code" Description: "A CodeSystem to identify the SNOMED-CT concept representing an Impairment recorded as part of a Reasonable Adjustment" * ^url = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1" From e7dffa443168b63f6b21e434a0a8da013cc936f4 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Fri, 16 Feb 2024 13:42:55 +0000 Subject: [PATCH 109/136] Rename RARecord-ConsentPurpose-1.fsh to CodeSystem-England-ConsentPurpose.fsh --- ...ConsentPurpose-1.fsh => CodeSystem-England-ConsentPurpose.fsh} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename input/fsh/codesystem/{RARecord-ConsentPurpose-1.fsh => CodeSystem-England-ConsentPurpose.fsh} (100%) diff --git a/input/fsh/codesystem/RARecord-ConsentPurpose-1.fsh b/input/fsh/codesystem/CodeSystem-England-ConsentPurpose.fsh similarity index 100% rename from input/fsh/codesystem/RARecord-ConsentPurpose-1.fsh rename to input/fsh/codesystem/CodeSystem-England-ConsentPurpose.fsh From 38bdfed3477e3413994332a3f4ae0d2d756d0633 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Fri, 16 Feb 2024 13:43:23 +0000 Subject: [PATCH 110/136] Rename RARecord-FlagCategory-1.fsh to CodeSystem-England-FlagCategory.fsh --- ...ord-FlagCategory-1.fsh => CodeSystem-England-FlagCategory.fsh} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename input/fsh/codesystem/{RARecord-FlagCategory-1.fsh => CodeSystem-England-FlagCategory.fsh} (100%) diff --git a/input/fsh/codesystem/RARecord-FlagCategory-1.fsh b/input/fsh/codesystem/CodeSystem-England-FlagCategory.fsh similarity index 100% rename from input/fsh/codesystem/RARecord-FlagCategory-1.fsh rename to input/fsh/codesystem/CodeSystem-England-FlagCategory.fsh From 181b42ee5cb125c01657927f0add5e090bec0cc9 Mon Sep 17 00:00:00 2001 From: Declan Kieran Date: Mon, 19 Feb 2024 12:33:20 +0000 Subject: [PATCH 111/136] fixed fsh, some naming changes --- ...Category.fsh => RA-AdjustmentCategory.fsh} | 6 +- ...nCategory.fsh => RA-ConditionCategory.fsh} | 10 +- ...ConditionCode.fsh => RA-ConditionCode.fsh} | 6 +- ...nsentPurpose.fsh => RA-ConsentPurpose.fsh} | 6 +- ...d-FlagCategory.fsh => RA-FlagCategory.fsh} | 6 +- input/fsh/valuesets/RA-AdjustmentCategory.fsh | 49 + ...nCategory.fsh => RA-ConditionCategory.fsh} | 20 +- input/fsh/valuesets/RA-ConditionCode.fsh | 49 + ...nsentPurpose.fsh => RA-ConsentPurpose.fsh} | 11 +- ...d-FlagCategory.fsh => RA-FlagCategory.fsh} | 12 +- input/fsh/valuesets/RA-FlagCode.fsh | 1059 +++++++++++++++++ .../ValueSet-England-AdjustmentCategory.fsh | 40 - .../ValueSet-England-ConditionCode.fsh | 39 - .../valuesets/ValueSet-England-FlagCode.fsh | 713 ----------- 14 files changed, 1195 insertions(+), 831 deletions(-) rename input/fsh/codesystem/{CodeSystem-England-AdjustmentCategory.fsh => RA-AdjustmentCategory.fsh} (91%) rename input/fsh/codesystem/{CodeSystem-England-ConditionCategory.fsh => RA-ConditionCategory.fsh} (87%) rename input/fsh/codesystem/{CodeSystem-England-ConditionCode.fsh => RA-ConditionCode.fsh} (92%) rename input/fsh/codesystem/{CodeSystem-England-ConsentPurpose.fsh => RA-ConsentPurpose.fsh} (87%) rename input/fsh/codesystem/{CodeSystem-England-FlagCategory.fsh => RA-FlagCategory.fsh} (87%) create mode 100644 input/fsh/valuesets/RA-AdjustmentCategory.fsh rename input/fsh/valuesets/{ValueSet-England-ConditionCategory.fsh => RA-ConditionCategory.fsh} (65%) create mode 100644 input/fsh/valuesets/RA-ConditionCode.fsh rename input/fsh/valuesets/{ValueSet-England-ConsentPurpose.fsh => RA-ConsentPurpose.fsh} (81%) rename input/fsh/valuesets/{ValueSet-England-FlagCategory.fsh => RA-FlagCategory.fsh} (81%) create mode 100644 input/fsh/valuesets/RA-FlagCode.fsh delete mode 100644 input/fsh/valuesets/ValueSet-England-AdjustmentCategory.fsh delete mode 100644 input/fsh/valuesets/ValueSet-England-ConditionCode.fsh delete mode 100644 input/fsh/valuesets/ValueSet-England-FlagCode.fsh diff --git a/input/fsh/codesystem/CodeSystem-England-AdjustmentCategory.fsh b/input/fsh/codesystem/RA-AdjustmentCategory.fsh similarity index 91% rename from input/fsh/codesystem/CodeSystem-England-AdjustmentCategory.fsh rename to input/fsh/codesystem/RA-AdjustmentCategory.fsh index ef86a8e..865ee19 100644 --- a/input/fsh/codesystem/CodeSystem-England-AdjustmentCategory.fsh +++ b/input/fsh/codesystem/RA-AdjustmentCategory.fsh @@ -1,8 +1,8 @@ -CodeSystem: CodeSystem-England-AdjustmentCategory -Id: CodeSystem-England-AdjustmentCategory +CodeSystem: RA-AdjustmentCategory +Id: RA-AdjustmentCategory Title: "Reasonable Adjustments Record Adjustment Category" Description: "A CodeSystem to identify the category of the Adjustment required" -* ^url = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1" +* ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" * ^version = "1.0.0" * ^status = #draft * ^date = "2024-02-14" diff --git a/input/fsh/codesystem/CodeSystem-England-ConditionCategory.fsh b/input/fsh/codesystem/RA-ConditionCategory.fsh similarity index 87% rename from input/fsh/codesystem/CodeSystem-England-ConditionCategory.fsh rename to input/fsh/codesystem/RA-ConditionCategory.fsh index 5ebb1eb..e5705da 100644 --- a/input/fsh/codesystem/CodeSystem-England-ConditionCategory.fsh +++ b/input/fsh/codesystem/RA-ConditionCategory.fsh @@ -1,8 +1,8 @@ -CodeSystem: CodeSystem-England-ConditionCategory -Id: CodeSystem-England-ConditionCategory +CodeSystem: RA-ConditionCategory +Id: RA-ConditionCategory Title: "Care Connect Condition Category" Description: " A CodeSystem to identify the category of a condition.." -* ^url = "https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1" +* ^url = "https://fhir.hl7.org.uk/England/CodeSystem/RA-ConditionCategory" * ^version = "1.0.0" * ^status = #draft * ^date = "2024-02-14" @@ -19,6 +19,4 @@ Description: " A CodeSystem to identify the category of a condition.." * #encounter-diagnosis "Encounter Diagnosis" * #presenting-complaint "Presenting Complaint" * #co-morbidity "Co-morbidity" -* #issue "Issue" - - +* #issue "Issue" \ No newline at end of file diff --git a/input/fsh/codesystem/CodeSystem-England-ConditionCode.fsh b/input/fsh/codesystem/RA-ConditionCode.fsh similarity index 92% rename from input/fsh/codesystem/CodeSystem-England-ConditionCode.fsh rename to input/fsh/codesystem/RA-ConditionCode.fsh index 625738f..ac02a5e 100644 --- a/input/fsh/codesystem/CodeSystem-England-ConditionCode.fsh +++ b/input/fsh/codesystem/RA-ConditionCode.fsh @@ -1,8 +1,8 @@ -CodeSystem: CodeSystem-England-ConditionCode -Id: CodeSystem-England-ConditionCode +CodeSystem: RA-ConditionCode +Id: RA-ConditionCode Title: "Reasonable Adjustments Record Condition Code" Description: "A CodeSystem to identify the SNOMED-CT concept representing an Impairment recorded as part of a Reasonable Adjustment" -* ^url = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1" +* ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCode" * ^version = "1.0.0" * ^status = #draft * ^date = "2024-02-14" diff --git a/input/fsh/codesystem/CodeSystem-England-ConsentPurpose.fsh b/input/fsh/codesystem/RA-ConsentPurpose.fsh similarity index 87% rename from input/fsh/codesystem/CodeSystem-England-ConsentPurpose.fsh rename to input/fsh/codesystem/RA-ConsentPurpose.fsh index b14974b..1c56f53 100644 --- a/input/fsh/codesystem/CodeSystem-England-ConsentPurpose.fsh +++ b/input/fsh/codesystem/RA-ConsentPurpose.fsh @@ -1,8 +1,8 @@ -CodeSystem: Reasonable Adjustments Record Consent Purpose -Id: Reasonable Adjustments Record Consent Purpose +CodeSystem: RA-ConsentPurpose +Id: RA-ConsentPurpose Title: "Reasonable Adjustments Record Consent Purpose" Description: "A CodeSystem to identify the purpose of the consent given" -* ^url = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConsentPurpose-1" +* ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-ConsentPurpose" * ^version = "1.0.0" * ^status = #draft * ^date = "2024-02-14" diff --git a/input/fsh/codesystem/CodeSystem-England-FlagCategory.fsh b/input/fsh/codesystem/RA-FlagCategory.fsh similarity index 87% rename from input/fsh/codesystem/CodeSystem-England-FlagCategory.fsh rename to input/fsh/codesystem/RA-FlagCategory.fsh index 68eb720..85fdd40 100644 --- a/input/fsh/codesystem/CodeSystem-England-FlagCategory.fsh +++ b/input/fsh/codesystem/RA-FlagCategory.fsh @@ -1,8 +1,8 @@ -CodeSystem: Reasonable Adjustments Record Flag Category -Id: Reasonable Adjustments Record Flag Category +CodeSystem: RA-FlagCategory +Id: RA-FlagCategory Title: "Reasonable Adjustments Record Flag Category" Description: " A CodeSystem to identify the type/category of Flag." -* ^url = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1" +* ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory" * ^version = "1.0.0" * ^status = #draft * ^date = "2024-02-14" diff --git a/input/fsh/valuesets/RA-AdjustmentCategory.fsh b/input/fsh/valuesets/RA-AdjustmentCategory.fsh new file mode 100644 index 0000000..7b57924 --- /dev/null +++ b/input/fsh/valuesets/RA-AdjustmentCategory.fsh @@ -0,0 +1,49 @@ +ValueSet: RA-AdjustmentCategory +Id: RA-AdjustmentCategory +Title: "Reasonable Adjustments Record Adjustment Category" +Description: "A ValueSet to identify the category of a Reasonable Adjustment" +* ^url = "https://fhir.nhs.uk/England/ValueSet/RA-AdjustmentCategory" +* ^version = "1.0.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^publisher = "NHS England" +* ^contact.name = "NHS England" +* ^contact.telecom.system = #email +* ^contact.telecom.value = "interoperabilityteam@nhs.net" +* ^contact.telecom.use = #work +* ^contact.telecom.rank = 1 +* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." +* ^expansion.timestamp = "2024-02-14T12:00:00+00:00" +* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[=].code = #001 +* ^expansion.contains[=].display = "Communication support" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[=].code = #002 +* ^expansion.contains[=].display = "Requires communication professional" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[=].code = #003 +* ^expansion.contains[=].display = "Requires specific contact method" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[=].code = #004 +* ^expansion.contains[=].display = "Requires specific information format" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[=].code = #005 +* ^expansion.contains[=].display = "Additional communication needs and support" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[=].code = #006 +* ^expansion.contains[=].display = "Community Language Support" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[=].code = #007 +* ^expansion.contains[=].display = "Adjustments for providing Additional Support to patients" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[=].code = #008 +* ^expansion.contains[=].display = "Adjustments for Individual Care Requirements" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[=].code = #009 +* ^expansion.contains[=].display = "Adjustments in relation to the environment of care" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[=].code = #010 +* ^expansion.contains[=].display = "Adjustments to support Additional needs" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[=].code = #011 +* ^expansion.contains[=].display = "Bespoke Reasonable adjustments" \ No newline at end of file diff --git a/input/fsh/valuesets/ValueSet-England-ConditionCategory.fsh b/input/fsh/valuesets/RA-ConditionCategory.fsh similarity index 65% rename from input/fsh/valuesets/ValueSet-England-ConditionCategory.fsh rename to input/fsh/valuesets/RA-ConditionCategory.fsh index 6dc6181..70704de 100644 --- a/input/fsh/valuesets/ValueSet-England-ConditionCategory.fsh +++ b/input/fsh/valuesets/RA-ConditionCategory.fsh @@ -2,7 +2,7 @@ ValueSet: ValueSet-England-ConditionCategory Id: ValueSet-England-ConditionCategoryy Title: "Care Connect Condition Category" Description: " A ValueSet to identify the category of a condition." -* ^url = "https://fhir.hl7.org.uk/STU3/ValueSet/CareConnect-ConditionCategory-1" +* ^url = "https://fhir.hl7.org.uk/England/ValueSet/CareConnect-ConditionCategory" * ^version = "1.0.0" * ^status = #draft * ^date = "2024-02-14" @@ -14,16 +14,18 @@ Description: " A ValueSet to identify the category of a condition." * ^contact.telecom.rank = 1 * ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." * ^expansion.timestamp = "2024-02-14T12:00:00+00:00" -* ^expansion.contains[0].system = "https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1" -* ^expansion.contains[=].code = encounter-diagnosis +* ^expansion.contains[0].system = "https://fhir.hl7.org.uk/England/CodeSystem/RA-ConditionCategory" +* ^expansion.contains[=].code = #encounter-diagnosis * ^expansion.contains[=].display = "Encounter Diagnosis" -* ^expansion.contains[=].code = issue +* ^expansion.contains[+].system = "https://fhir.hl7.org.uk/England/CodeSystem/RA-ConditionCategory" +* ^expansion.contains[=].code = #issue * ^expansion.contains[=].display = "Issue" -* ^expansion.contains[=].code = co-morbidity +* ^expansion.contains[+].system = "https://fhir.hl7.org.uk/England/CodeSystem/RA-ConditionCategory" +* ^expansion.contains[=].code = #co-morbidity * ^expansion.contains[=].display = "Co-morbidity" -* ^expansion.contains[=].code = presenting-complaint +* ^expansion.contains[+].system = "https://fhir.hl7.org.uk/England/CodeSystem/RA-ConditionCategory" +* ^expansion.contains[=].code = #presenting-complaint * ^expansion.contains[=].display = "Presenting Complaint" -* ^expansion.contains[=].code = problem-list-item +* ^expansion.contains[+].system = "https://fhir.hl7.org.uk/England/CodeSystem/RA-ConditionCategory" +* ^expansion.contains[=].code = #problem-list-item * ^expansion.contains[=].display = "Problem List Item" -* include codes from system https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1|1.0.0 - diff --git a/input/fsh/valuesets/RA-ConditionCode.fsh b/input/fsh/valuesets/RA-ConditionCode.fsh new file mode 100644 index 0000000..2d6d3c7 --- /dev/null +++ b/input/fsh/valuesets/RA-ConditionCode.fsh @@ -0,0 +1,49 @@ +ValueSet: RA-ConditionCode +Id: RA-ConditionCode +Title: "Reasonable Adjustments Record Condition Code" +Description: "A ValueSet to identify the SNOMED-CT concept representing an Impairment recorded as part of a Reasonable Adjustment" +* ^url = "https://fhir.nhs.uk/England/ValueSet/RARecord-ConditionCode" +* ^version = "1.0.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^publisher = "NHS England" +* ^contact.name = "NHS England" +* ^contact.telecom.system = #email +* ^contact.telecom.value = "interoperabilityteam@nhs.net" +* ^contact.telecom.use = #work +* ^contact.telecom.rank = 1 +* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." +* ^expansion.timestamp = "2024-02-14T12:00:00+00:00" +* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[=].code = #1 +* ^expansion.contains[=].display = "Vision (for example blindness or partial sight)" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[=].code = #2 +* ^expansion.contains[=].display = "Hearing (for example deafness or partial hearing)" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[=].code = #3 +* ^expansion.contains[=].display = "Mobility (for example walking short distances or climbing stairs)" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[=].code = #4 +* ^expansion.contains[=].display = "Dexterity (for example lifting and carrying objects, using a keyboard)" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[=].code = #5 +* ^expansion.contains[=].display = "Learning or understanding or concentrating" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[=].code = #6 +* ^expansion.contains[=].display = "Memory" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[=].code = #7 +* ^expansion.contains[=].display = "Mental health" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[=].code = #8 +* ^expansion.contains[=].display = "Stamina or breathing or fatigue" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[=].code = #9 +* ^expansion.contains[=].display = "Social or behavioural (for example associated with autism spectrum disorder (ASD) which includes Asperger’s, or attention deficit hyperactivity disorder (ADHD))" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[=].code = #10 +* ^expansion.contains[=].display = "Other (please specify)" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[=].code = #12 +* ^expansion.contains[=].display = "Patient would prefer not to say" diff --git a/input/fsh/valuesets/ValueSet-England-ConsentPurpose.fsh b/input/fsh/valuesets/RA-ConsentPurpose.fsh similarity index 81% rename from input/fsh/valuesets/ValueSet-England-ConsentPurpose.fsh rename to input/fsh/valuesets/RA-ConsentPurpose.fsh index bdb395a..d3e6f50 100644 --- a/input/fsh/valuesets/ValueSet-England-ConsentPurpose.fsh +++ b/input/fsh/valuesets/RA-ConsentPurpose.fsh @@ -1,8 +1,8 @@ -ValueSet: ValueSet-England-ConsentPurpose -Id: ValueSet-England-ConsentPurpose +ValueSet: RA-ConsentPurpose +Id: RA-ConsentPurpose Title: "Reasonable Adjustments Consent Purpose" Description: " A ValueSet to identify the purpose of a consent given." -* ^url = "https://fhir.nhs.uk/STU3/ValueSet/RARecord-ConsentPurpose-1" +* ^url = "https://fhir.nhs.uk/England/ValueSet/RA-ConsentPurpose-" * ^version = "1.0.0" * ^status = #draft * ^date = "2024-02-14" @@ -14,7 +14,6 @@ Description: " A ValueSet to identify the purpose of a consent given." * ^contact.telecom.rank = 1 * ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." * ^expansion.timestamp = "2024-02-14T12:00:00+00:00" -* ^expansion.contains[0].system = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConsentPurpose-1" -* ^expansion.contains[=].code = RACONSENT +* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConsentPurpose" +* ^expansion.contains[=].code = #RACONSENT * ^expansion.contains[=].display = "Reasonable Adjustments - Consent to record Reasonable Adjustments" - diff --git a/input/fsh/valuesets/ValueSet-England-FlagCategory.fsh b/input/fsh/valuesets/RA-FlagCategory.fsh similarity index 81% rename from input/fsh/valuesets/ValueSet-England-FlagCategory.fsh rename to input/fsh/valuesets/RA-FlagCategory.fsh index 4030ae0..0aa4a19 100644 --- a/input/fsh/valuesets/ValueSet-England-FlagCategory.fsh +++ b/input/fsh/valuesets/RA-FlagCategory.fsh @@ -1,8 +1,8 @@ -ValueSet: ValueSet-England-FlagCategory -Id: ValueSet-England-FlagCategory +ValueSet: RA-FlagCategory +Id: RA-FlagCategory Title: "Reasonable Adjustments Record Flag Category" Description: "A ValueSet to identify the type/category of Flag." -* ^url = "https://fhir.nhs.uk/STU3/ValueSet/RARecord-FlagCategory-1" +* ^url = "https://fhir.nhs.uk/STU3/ValueSet/RA-FlagCategory" * ^version = "1.0.0" * ^status = #draft * ^date = "2024-02-14" @@ -14,6 +14,6 @@ Description: "A ValueSet to identify the type/category of Flag." * ^contact.telecom.rank = 1 * ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." * ^expansion.timestamp = "2024-02-14T12:00:00+00:00" -* ^expansion.contains[0].system = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1" -* ^expansion.contains[=].code = NRAF -* ^expansion.contains[=].display = "National Reasonable Adjustments Flag" +* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory" +* ^expansion.contains[=].code = #NRAF +* ^expansion.contains[=].display = "National Reasonable Adjustments Flag" \ No newline at end of file diff --git a/input/fsh/valuesets/RA-FlagCode.fsh b/input/fsh/valuesets/RA-FlagCode.fsh new file mode 100644 index 0000000..648ba12 --- /dev/null +++ b/input/fsh/valuesets/RA-FlagCode.fsh @@ -0,0 +1,1059 @@ +ValueSet: RA-FlagCode +Id: RA-FlagCode +Title: "Reasonable Adjustments Record Flag Code" +Description: "A ValueSet to identify codes representing Adjustments required for a patient" +* ^url = "https://fhir.nhs.uk/England/ValueSet/RA-FlagCode" +* ^version = "1.0.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^publisher = "NHS England" +* ^contact.name = "NHS England" +* ^contact.telecom.system = #email +* ^contact.telecom.value = "interoperabilityteam@nhs.net" +* ^contact.telecom.use = #work +* ^contact.telecom.rank = 1 +* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." +* ^expansion.timestamp = "2024-02-14T12:00:00+00:00" +* ^expansion.contains[0].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #441092009 +* ^expansion.contains[=].display = "Does lip read" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #719369003 +* ^expansion.contains[=].display = "Does use communication device" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #285055002 +* ^expansion.contains[=].display = "Does use hearing aid" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #520471000000105 +* ^expansion.contains[=].display = "Preferred method of communication: British Sign Language" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #520491000000109 +* ^expansion.contains[=].display = "Preferred method of communication: written" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1082671000000100 +* ^expansion.contains[=].display = "Requires aphasia-friendly communication" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1082691000000101 +* ^expansion.contains[=].display = "Requires support for expressive communication needs" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1082681000000103 +* ^expansion.contains[=].display = "Requires support for receptive communication needs" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #225834007 +* ^expansion.contains[=].display = "Uses a citizen advocate" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #225833001 +* ^expansion.contains[=].display = "Uses a legal advocate" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #288595009 +* ^expansion.contains[=].display = "Uses a non-speech system for communication" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #761541000000100 +* ^expansion.contains[=].display = "Uses alternative communication skill" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #716524009 +* ^expansion.contains[=].display = "Uses augmentative and alternative communication" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #415803005 +* ^expansion.contains[=].display = "Uses British sign language" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #445129003 +* ^expansion.contains[=].display = "Uses cued speech transliterator" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #957031000000107 +* ^expansion.contains[=].display = "Uses deafblind intervener" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #981781000000107 +* ^expansion.contains[=].display = "Uses Deafblind Manual Alphabet" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #445121000 +* ^expansion.contains[=].display = "Uses electronic note taker" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1077121000000101 +* ^expansion.contains[=].display = "Uses functional communication skills" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1082531000000103 +* ^expansion.contains[=].display = "Uses gestures for communication" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #198061000000105 +* ^expansion.contains[=].display = "Uses hearing loop" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #719363002 +* ^expansion.contains[=].display = "Uses high technology communication device" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #445143008 +* ^expansion.contains[=].display = "Uses lipspeaker" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #719364008 +* ^expansion.contains[=].display = "Uses low technology communication device" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #415805003 +* ^expansion.contains[=].display = "Uses Makaton sign language" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #445076009 +* ^expansion.contains[=].display = "Uses manual note taker" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #719370002 +* ^expansion.contains[=].display = "Uses non-powered communication device" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #288583009 +* ^expansion.contains[=].display = "Uses non-verbal communication" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1082541000000107 +* ^expansion.contains[=].display = "Uses objects for communication" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #720462004 +* ^expansion.contains[=].display = "Uses personal audio recording device to record information" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #837341000000108 +* ^expansion.contains[=].display = "Uses Personal Communication Passport" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #719393008 +* ^expansion.contains[=].display = "Uses photographs for communication" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #719373000 +* ^expansion.contains[=].display = "Uses powered communication device" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #404903008 +* ^expansion.contains[=].display = "Uses sign language" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #445123002 +* ^expansion.contains[=].display = "Uses speech to text reporter" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #719754002 +* ^expansion.contains[=].display = "Uses symbols for communication" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #445488003 +* ^expansion.contains[=].display = "Uses telecommunications device for the deaf" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #288601001 +* ^expansion.contains[=].display = "Uses verbal communication" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #716537007 +* ^expansion.contains[=].display = "Uses voice amplifier to support communication" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #762361000000101 +* ^expansion.contains[=].display = "Uses voice output communication aid" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #204331000000107 +* ^expansion.contains[=].display = "British Sign Language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #945731000000104 +* ^expansion.contains[=].display = "Hands-on signing interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #204341000000103 +* ^expansion.contains[=].display = "Makaton Sign Language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #225835008 +* ^expansion.contains[=].display = "Needs an advocate" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #957071000000109 +* ^expansion.contains[=].display = "Requires deafblind block alphabet interpreter" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #796201000000109 +* ^expansion.contains[=].display = "Requires deafblind communicator guide" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #957111000000103 +* ^expansion.contains[=].display = "Requires deafblind haptic communication interpreter" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #957051000000100 +* ^expansion.contains[=].display = "Requires deafblind manual alphabet interpreter" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #945911000000109 +* ^expansion.contains[=].display = "Requires lipspeaker" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #945891000000106 +* ^expansion.contains[=].display = "Requires manual note taker" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #719563003 +* ^expansion.contains[=].display = "Requires sighted guide" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1082661000000100 +* ^expansion.contains[=].display = "Requires speech and language therapist support to communicate" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #966401000000100 +* ^expansion.contains[=].display = "Requires speech to text reporter" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #936761000000104 +* ^expansion.contains[=].display = "Sign Supported English interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #945711000000107 +* ^expansion.contains[=].display = "Visual frame sign language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #945931000000101 +* ^expansion.contains[=].display = "Requires audible alert" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #936741000000100 +* ^expansion.contains[=].display = "Requires contact by email" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #936721000000107 +* ^expansion.contains[=].display = "Requires contact by letter" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #936701000000103 +* ^expansion.contains[=].display = "Requires contact by short message service text message" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #795661000000104 +* ^expansion.contains[=].display = "Requires contact by telephone" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #796081000000106 +* ^expansion.contains[=].display = "Requires contact by text relay" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #719561001 +* ^expansion.contains[=].display = "Requires contact via carer" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #945971000000104 +* ^expansion.contains[=].display = "Requires tactile alert" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #945951000000108 +* ^expansion.contains[=].display = "Requires visual alert" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #719758004 +* ^expansion.contains[=].display = "Requires healthcare information recording on personal audio recording device" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #936581000000101 +* ^expansion.contains[=].display = "Requires information by email" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1082551000000100 +* ^expansion.contains[=].display = "Requires information in aphasia-accessible format" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #936661000000109 +* ^expansion.contains[=].display = "Requires information in contracted (Grade 2) Braille" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #796161000000101 +* ^expansion.contains[=].display = "Requires information in Easyread" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #936601000000105 +* ^expansion.contains[=].display = "Requires information in electronic audio format" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #945751000000106 +* ^expansion.contains[=].display = "Requires information in electronic downloadable format" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #936641000000108 +* ^expansion.contains[=].display = "Requires information in Makaton" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #936621000000101 +* ^expansion.contains[=].display = "Requires information in Moon alphabet" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #936681000000100 +* ^expansion.contains[=].display = "Requires information in uncontracted (Grade 1) Braille" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #795801000000104 +* ^expansion.contains[=].display = "Requires information on audio cassette tape" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #795731000000104 +* ^expansion.contains[=].display = "Requires information on compact disc" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #795691000000105 +* ^expansion.contains[=].display = "Requires information on digital versatile disc" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #945691000000105 +* ^expansion.contains[=].display = "Requires information on universal serial bus mass storage device" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #367741000000102 +* ^expansion.contains[=].display = "Requires information verbally" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #985021000000106 +* ^expansion.contains[=].display = "Requires third party to read out written information" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #957331000000109 +* ^expansion.contains[=].display = "Requires written information in at least 20 point sans serif font" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #957351000000102 +* ^expansion.contains[=].display = "Requires written information in at least 24 point sans serif font" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #957371000000106 +* ^expansion.contains[=].display = "Requires written information in at least 28 point sans serif font" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #307089001 +* ^expansion.contains[=].display = "Difficulty analysing information" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #311540003 +* ^expansion.contains[=].display = "Difficulty processing information accurately" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #311543001 +* ^expansion.contains[=].display = "Difficulty processing information at normal speed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325291000000103 +* ^expansion.contains[=].display = "Emergency contact details of specialist support team" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1108141000000108 +* ^expansion.contains[=].display = "Expresses pain atypically" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1108121000000101 +* ^expansion.contains[=].display = "Has My Healthcare Passport" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #737350008 +* ^expansion.contains[=].display = "Needs assistance with communication" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1108131000000104 +* ^expansion.contains[=].display = "Requires appointment reminders" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325421000000100 +* ^expansion.contains[=].display = "Requires approach to care to be discussed with carer" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1108151000000106 +* ^expansion.contains[=].display = "Requires carer to be present at encounters" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #955771000000100 +* ^expansion.contains[=].display = "Uses apps on mobile device to support communication" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #954871000000106 +* ^expansion.contains[=].display = "Uses switches for communication" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #936561000000105 +* ^expansion.contains[=].display = "Uses Tadoma method for communication" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362721000000106 +* ^expansion.contains[=].display = "Abkhazian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362691000000102 +* ^expansion.contains[=].display = "Afar language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362571000000102 +* ^expansion.contains[=].display = "Afrikaans language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203281000000104 +* ^expansion.contains[=].display = "Akan language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203291000000102 +* ^expansion.contains[=].display = "Albanian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203301000000103 +* ^expansion.contains[=].display = "Amharic language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203311000000101 +* ^expansion.contains[=].display = "Arabic language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972511000000109 +* ^expansion.contains[=].display = "Aragonese interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362261000000106 +* ^expansion.contains[=].display = "Armenian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362231000000101 +* ^expansion.contains[=].display = "Assamese language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972521000000103 +* ^expansion.contains[=].display = "Avaric interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972531000000101 +* ^expansion.contains[=].display = "Avestan interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362541000000108 +* ^expansion.contains[=].display = "Aymara language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362611000000106 +* ^expansion.contains[=].display = "Azerbaijani language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972541000000105 +* ^expansion.contains[=].display = "Bambara interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972551000000108 +* ^expansion.contains[=].display = "Bashkir interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362641000000107 +* ^expansion.contains[=].display = "Basque language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362071000000107 +* ^expansion.contains[=].display = "Belarusian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203321000000107 +* ^expansion.contains[=].display = "Bengali language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362201000000107 +* ^expansion.contains[=].display = "Bihari language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362171000000106 +* ^expansion.contains[=].display = "Bislama language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972561000000106 +* ^expansion.contains[=].display = "Bosnian interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #359821000000104 +* ^expansion.contains[=].display = "Brawa language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362141000000100 +* ^expansion.contains[=].display = "Breton language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #353921000000107 +* ^expansion.contains[=].display = "Bulgarian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362371000000109 +* ^expansion.contains[=].display = "Burmese language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203381000000108 +* ^expansion.contains[=].display = "Cantonese language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362041000000101 +* ^expansion.contains[=].display = "Catalan language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362331000000107 +* ^expansion.contains[=].display = "Central Khmer language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972571000000104 +* ^expansion.contains[=].display = "Chamorro interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972581000000102 +* ^expansion.contains[=].display = "Chechen interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972591000000100 +* ^expansion.contains[=].display = "Chinese interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972601000000106 +* ^expansion.contains[=].display = "Church Slavic interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972611000000108 +* ^expansion.contains[=].display = "Chuvash interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972621000000102 +* ^expansion.contains[=].display = "Cornish interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #361941000000107 +* ^expansion.contains[=].display = "Corsican language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972631000000100 +* ^expansion.contains[=].display = "Cree interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203391000000105 +* ^expansion.contains[=].display = "Croatian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203401000000108 +* ^expansion.contains[=].display = "Czech language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #361971000000101 +* ^expansion.contains[=].display = "Danish language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972641000000109 +* ^expansion.contains[=].display = "Dhivehi interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203411000000105 +* ^expansion.contains[=].display = "Dutch language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362781000000107 +* ^expansion.contains[=].display = "Dzongkha language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #343671000000102 +* ^expansion.contains[=].display = "English language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #361881000000106 +* ^expansion.contains[=].display = "Esperanto language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #361911000000106 +* ^expansion.contains[=].display = "Estonian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #359791000000109 +* ^expansion.contains[=].display = "Ethiopian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972651000000107 +* ^expansion.contains[=].display = "Ewe interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #361791000000100 +* ^expansion.contains[=].display = "Faroese language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203421000000104 +* ^expansion.contains[=].display = "Farsi language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #361821000000105 +* ^expansion.contains[=].display = "Fijian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #343701000000103 +* ^expansion.contains[=].display = "Finnish language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #343711000000101 +* ^expansion.contains[=].display = "Flemish language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203521000000103 +* ^expansion.contains[=].display = "French Creole language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203441000000106 +* ^expansion.contains[=].display = "French language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #361501000000104 +* ^expansion.contains[=].display = "Frisian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972671000000103 +* ^expansion.contains[=].display = "Fulah interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #343721000000107 +* ^expansion.contains[=].display = "Gaelic language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #361851000000100 +* ^expansion.contains[=].display = "Galician language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203801000000105 +* ^expansion.contains[=].display = "Ganda language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #361471000000106 +* ^expansion.contains[=].display = "Georgian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203581000000102 +* ^expansion.contains[=].display = "German language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203591000000100 +* ^expansion.contains[=].display = "Greek language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #361441000000100 +* ^expansion.contains[=].display = "Guarani language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203601000000106 +* ^expansion.contains[=].display = "Gujarati language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972681000000101 +* ^expansion.contains[=].display = "Haitian interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203611000000108 +* ^expansion.contains[=].display = "Hakka language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203631000000100 +* ^expansion.contains[=].display = "Hausa language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203641000000109 +* ^expansion.contains[=].display = "Hebrew language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972691000000104 +* ^expansion.contains[=].display = "Herero interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203651000000107 +* ^expansion.contains[=].display = "Hindi language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972701000000104 +* ^expansion.contains[=].display = "Hiri Motu interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #360431000000104 +* ^expansion.contains[=].display = "Hungarian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #359881000000103 +* ^expansion.contains[=].display = "Iban language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #360401000000105 +* ^expansion.contains[=].display = "Icelandic language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972711000000102 +* ^expansion.contains[=].display = "Ido interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203531000000101 +* ^expansion.contains[=].display = "Igbo language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362111000000101 +* ^expansion.contains[=].display = "Indonesian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972721000000108 +* ^expansion.contains[=].display = "Interlingua interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #360341000000102 +* ^expansion.contains[=].display = "Interlingue language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #315594003 +* ^expansion.contains[=].display = "Interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #360311000000103 +* ^expansion.contains[=].display = "Inuktitut language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #360251000000107 +* ^expansion.contains[=].display = "Inupiaq language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972731000000105 +* ^expansion.contains[=].display = "Irish interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203371000000106 +* ^expansion.contains[=].display = "Italian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203681000000101 +* ^expansion.contains[=].display = "Japanese language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #360281000000101 +* ^expansion.contains[=].display = "Javanese language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362011000000102 +* ^expansion.contains[=].display = "Kalaallisut language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #360101000000102 +* ^expansion.contains[=].display = "Kannada language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972741000000101 +* ^expansion.contains[=].display = "Kanuri interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #360191000000109 +* ^expansion.contains[=].display = "Kashmiri language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #360221000000102 +* ^expansion.contains[=].display = "Kazakh language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972751000000103 +* ^expansion.contains[=].display = "Kikuyu interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #360131000000108 +* ^expansion.contains[=].display = "Kinyarwanda language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #359851000000109 +* ^expansion.contains[=].display = "Kirghiz language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972771000000107 +* ^expansion.contains[=].display = "Komi interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972781000000109 +* ^expansion.contains[=].display = "Kongo interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203691000000104 +* ^expansion.contains[=].display = "Korean language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972791000000106 +* ^expansion.contains[=].display = "Kuanyama interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203701000000104 +* ^expansion.contains[=].display = "Kurdish language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #343771000000106 +* ^expansion.contains[=].display = "Kutchi language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #360371000000108 +* ^expansion.contains[=].display = "Lao language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972801000000105 +* ^expansion.contains[=].display = "Latin interpreter needed" +* ^expansion.contains[=].code = #360071000000106 +* ^expansion.contains[=].display = "Latvian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972811000000107 +* ^expansion.contains[=].display = "Limburgan interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203711000000102 +* ^expansion.contains[=].display = "Lingala language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203721000000108 +* ^expansion.contains[=].display = "Lithuanian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972821000000101 +* ^expansion.contains[=].display = "Luba-Katanga interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #359761000000103 +* ^expansion.contains[=].display = "Luganda language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972831000000104 +* ^expansion.contains[=].display = "Luxembourgish interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #359971000000108 +* ^expansion.contains[=].display = "Macedonian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #360011000000101 +* ^expansion.contains[=].display = "Malagasy language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #360161000000103 +* ^expansion.contains[=].display = "Malay language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203811000000107 +* ^expansion.contains[=].display = "Malayalam language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #359731000000108 +* ^expansion.contains[=].display = "Maltese language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203821000000101 +* ^expansion.contains[=].display = "Mandarin language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972851000000106 +* ^expansion.contains[=].display = "Manx interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #359911000000103 +* ^expansion.contains[=].display = "Maori language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #359701000000102 +* ^expansion.contains[=].display = "Marathi language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972861000000109 +* ^expansion.contains[=].display = "Marshallese interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #359671000000101 +* ^expansion.contains[=].display = "Moldavian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #359641000000107 +* ^expansion.contains[=].display = "Mongolian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #364351000000107 +* ^expansion.contains[=].display = "Nauru language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972881000000100 +* ^expansion.contains[=].display = "Navajo interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #352931000000102 +* ^expansion.contains[=].display = "Ndebele language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972891000000103 +* ^expansion.contains[=].display = "Ndonga interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #364251000000104 +* ^expansion.contains[=].display = "Nepali language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972911000000100 +* ^expansion.contains[=].display = "North Ndebele interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972921000000106 +* ^expansion.contains[=].display = "Northern Sami interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972931000000108 +* ^expansion.contains[=].display = "Norwegian BokmÃ¥l interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203831000000104 +* ^expansion.contains[=].display = "Norwegian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972941000000104 +* ^expansion.contains[=].display = "Norwegian Nynorsk interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #973071000000100 +* ^expansion.contains[=].display = "Nuosu interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972951000000101 +* ^expansion.contains[=].display = "Nyanja interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #364311000000108 +* ^expansion.contains[=].display = "Occitan language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #972981000000107 +* ^expansion.contains[=].display = "Ojibwa interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #364211000000103 +* ^expansion.contains[=].display = "Oriya language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362991000000107 +* ^expansion.contains[=].display = "Oromo language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #973001000000108 +* ^expansion.contains[=].display = "Ossetian interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #973011000000105 +* ^expansion.contains[=].display = "Pali interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203961000000103 +* ^expansion.contains[=].display = "Panjabi language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203841000000108 +* ^expansion.contains[=].display = "Pashto language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203901000000102 +* ^expansion.contains[=].display = "Polish language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203911000000100 +* ^expansion.contains[=].display = "Portuguese language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #364011000000105 +* ^expansion.contains[=].display = "Quechua language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #353881000000101 +* ^expansion.contains[=].display = "Romanian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #364481000000106 +* ^expansion.contains[=].display = "Romansh language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1047321000000104 +* ^expansion.contains[=].display = "Romany language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #363061000000105 +* ^expansion.contains[=].display = "Rundi language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203971000000105 +* ^expansion.contains[=].display = "Russian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #363841000000104 +* ^expansion.contains[=].display = "Samoan language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #364051000000109 +* ^expansion.contains[=].display = "Sango language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #973031000000102 +* ^expansion.contains[=].display = "Sanskrit interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #973041000000106 +* ^expansion.contains[=].display = "Sardinian interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #973051000000109 +* ^expansion.contains[=].display = "Scottish Gaelic interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203981000000107 +* ^expansion.contains[=].display = "Serbian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #973061000000107 +* ^expansion.contains[=].display = "Serbo-Croatian interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #203991000000109 +* ^expansion.contains[=].display = "Shona language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #363711000000105 +* ^expansion.contains[=].display = "Sindhi language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #204011000000102 +* ^expansion.contains[=].display = "Sinhala language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #352901000000108 +* ^expansion.contains[=].display = "Slovak language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #363591000000107 +* ^expansion.contains[=].display = "Slovenian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #204021000000108 +* ^expansion.contains[=].display = "Somali language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #973081000000103 +* ^expansion.contains[=].display = "South Ndebele interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #363651000000100 +* ^expansion.contains[=].display = "Southern Sotho language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #204031000000105 +* ^expansion.contains[=].display = "Spanish language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #363781000000103 +* ^expansion.contains[=].display = "Sundanese language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #204041000000101 +* ^expansion.contains[=].display = "Swahili language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #363621000000105 +* ^expansion.contains[=].display = "Swati language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #204051000000103 +* ^expansion.contains[=].display = "Swedish language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #204081000000109 +* ^expansion.contains[=].display = "Sylheti language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #204111000000101 +* ^expansion.contains[=].display = "Tagalog language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #973101000000109 +* ^expansion.contains[=].display = "Tahitian interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #363681000000106 +* ^expansion.contains[=].display = "Tajik language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #204131000000109 +* ^expansion.contains[=].display = "Tamil language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #363221000000107 +* ^expansion.contains[=].display = "Tatar language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #363341000000107 +* ^expansion.contains[=].display = "Telugu language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #204151000000102 +* ^expansion.contains[=].display = "Thai language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #363141000000105 +* ^expansion.contains[=].display = "Tibetan language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #204171000000106 +* ^expansion.contains[=].display = "Tigrinya language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #363461000000100 +* ^expansion.contains[=].display = "Tongan language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #363181000000102 +* ^expansion.contains[=].display = "Tsonga language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #363941000000108 +* ^expansion.contains[=].display = "Tswana language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #204191000000105 +* ^expansion.contains[=].display = "Turkish language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #363551000000104 +* ^expansion.contains[=].display = "Turkmen language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #363301000000109 +* ^expansion.contains[=].display = "Twi language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #364141000000107 +* ^expansion.contains[=].display = "Uighur language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #204201000000107 +* ^expansion.contains[=].display = "Ukrainian language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #204211000000109 +* ^expansion.contains[=].display = "Urdu language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362961000000101 +* ^expansion.contains[=].display = "Uzbek language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #973121000000100 +* ^expansion.contains[=].display = "Venda interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #204221000000103 +* ^expansion.contains[=].display = "Vietnamese language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #973131000000103 +* ^expansion.contains[=].display = "Volapük interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #973141000000107 +* ^expansion.contains[=].display = "Walloon interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #204231000000101 +* ^expansion.contains[=].display = "Welsh language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #973151000000105 +* ^expansion.contains[=].display = "Western Frisian interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #973161000000108 +* ^expansion.contains[=].display = "Wolof interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #364511000000100 +* ^expansion.contains[=].display = "Xhosa language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #363021000000102 +* ^expansion.contains[=].display = "Yiddish language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #204241000000105 +* ^expansion.contains[=].display = "Yoruba language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362911000000103 +* ^expansion.contains[=].display = "Zhuang language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #362821000000104 +* ^expansion.contains[=].display = "Zulu language interpreter needed" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #105506000 +* ^expansion.contains[=].display = "Dependence on seeing eye dog" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325291000000103 +* ^expansion.contains[=].display = "Emergency contact details of specialist support team" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #816361000000101 +* ^expansion.contains[=].display = "Has appointed person with personal welfare lasting power of attorney (Mental Capacity Act 2005)" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #988851000000103 +* ^expansion.contains[=].display = "Has appointed relevant person's representative (Mental Capacity Act 2005)" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #829101000000101 +* ^expansion.contains[=].display = "Needs assistance with medication regimen adherence" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325861000000105 +* ^expansion.contains[=].display = "Requires additional healthcare personnel to be present at encounter" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325421000000100 +* ^expansion.contains[=].display = "Requires approach to care to be discussed with carer" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #240451000000106 +* ^expansion.contains[=].display = "Requires constant supervision" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1109351000000102 +* ^expansion.contains[=].display = "Requires enhanced discharge planning" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #225861007 +* ^expansion.contains[=].display = "Unsafe to be left alone" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325301000000104 +* ^expansion.contains[=].display = "Uses emotional support animal" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #862731000000105 +* ^expansion.contains[=].display = "Uses guide dog for the blind" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325321000000108 +* ^expansion.contains[=].display = "Anxiety related to clinical environment" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #105506000 +* ^expansion.contains[=].display = "Dependence on seeing eye dog" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #792871000000101 +* ^expansion.contains[=].display = "Has anticipatory care plan" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #231501003 +* ^expansion.contains[=].display = "Needle phobia" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #829101000000101 +* ^expansion.contains[=].display = "Needs assistance with medication regimen adherence" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #314434008 +* ^expansion.contains[=].display = "Preference for female healthcare professional" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #314435009 +* ^expansion.contains[=].display = "Preference for male healthcare professional" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325411000000106 +* ^expansion.contains[=].display = "Requires distraction technique whilst undergoing care procedure" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1108171000000102 +* ^expansion.contains[=].display = "Requires extended appointment" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325341000000101 +* ^expansion.contains[=].display = "Requires familiarisation with care environment" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325331000000105 +* ^expansion.contains[=].display = "Requires familiarisation with care procedure" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325351000000103 +* ^expansion.contains[=].display = "Requires first appointment in appointment schedule" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325371000000107 +* ^expansion.contains[=].display = "Requires home visit appointments" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325361000000100 +* ^expansion.contains[=].display = "Requires last appointment in appointment schedule" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325841000000109 +* ^expansion.contains[=].display = "Requires minimal waiting time between arrival and being seen in care environment" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1108161000000109 +* ^expansion.contains[=].display = "Requires priority appointment" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325401000000109 +* ^expansion.contains[=].display = "Requires single room during inpatient care" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #285035003 +* ^expansion.contains[=].display = "Self care deficit for medication management" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #865301000000107 +* ^expansion.contains[=].display = "Uses dispensed monitored dosage system" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325321000000108 +* ^expansion.contains[=].display = "Anxiety related to clinical environment" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #246622003 +* ^expansion.contains[=].display = "Eyes sensitive to light" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #247994001 +* ^expansion.contains[=].display = "Noise intolerance" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #409668002 +* ^expansion.contains[=].display = "Photophobia" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325341000000101 +* ^expansion.contains[=].display = "Requires familiarisation with care environment" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325381000000109 +* ^expansion.contains[=].display = "Requires low light environment" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325391000000106 +* ^expansion.contains[=].display = "Requires low noise environment" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325401000000109 +* ^expansion.contains[=].display = "Requires single room during inpatient care" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1108191000000103 +* ^expansion.contains[=].display = "Requires wheelchair access" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325301000000104 +* ^expansion.contains[=].display = "Uses emotional support animal" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #862731000000105 +* ^expansion.contains[=].display = "Uses guide dog for the blind" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325761000000101 +* ^expansion.contains[=].display = "Assessment of eating and drinking behaviour indicated" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325741000000102 +* ^expansion.contains[=].display = "Constipation care indicated" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325751000000104 +* ^expansion.contains[=].display = "Dysphagia therapy regime indicated" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325771000000108 +* ^expansion.contains[=].display = "Screening for risk of falls indicated" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325781000000105 +* ^expansion.contains[=].display = "Seizure management indicated" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325791000000107 +* ^expansion.contains[=].display = "Self-harm behaviour management indicated" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1325801000000106 +* ^expansion.contains[=].display = "Thyroid function test indicated" +* ^expansion.contains[+].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #1108111000000107 +* ^expansion.contains[=].display = "Requires reasonable adjustment for health and care access (Equality Act 2010)" diff --git a/input/fsh/valuesets/ValueSet-England-AdjustmentCategory.fsh b/input/fsh/valuesets/ValueSet-England-AdjustmentCategory.fsh deleted file mode 100644 index 372254c..0000000 --- a/input/fsh/valuesets/ValueSet-England-AdjustmentCategory.fsh +++ /dev/null @@ -1,40 +0,0 @@ -ValueSet: ValueSet-England-AdjustmentCategory -Id: ValueSet-England-AdjustmentCategory -Title: "Reasonable Adjustments Record Adjustment Category" -Description: "A ValueSet to identify the category of a Reasonable Adjustment" -* ^url = "https://fhir.nhs.uk/STU3/ValueSet/RARecord-AdjustmentCategory-1" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2024-02-14" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^expansion.timestamp = "2024-02-14T12:00:00+00:00" -* ^expansion.contains[0].system = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1" -* ^expansion[0].code = "001" -* ^expansion[=].display = "Communication support" -* ^expansion[+].code = "002" -* ^expansion[=].display = "Requires communication professional" -* ^expansion[+].code = "003" -* ^expansion[=].display = "Requires specific contact method" -* ^expansion[+].code = "004" -* ^expansion[=].display = "Requires specific information format" -* ^expansion[+].code = "005" -* ^expansion[=].display = "Additional communication needs and support" -* ^expansion[+].code = "006" -* ^expansion[=].display = "Community Language Support" -* ^expansion[+].code = "007" -* ^expansion[=].display = "Adjustments for providing Additional Support to patients" -* ^expansion[+].code = "008" -* ^expansion[=].display = "Adjustments for Individual Care Requirements" -* ^expansion[+].code = "009" -* ^expansion[=].display = "Adjustments in relation to the environment of care" -* ^expansion[+].code = "010" -* ^expansion[=].display = "Adjustments to support Additional needs" -* ^expansion[+].code = "011" -* ^expansion[=].display = "Bespoke Reasonable adjustments" - diff --git a/input/fsh/valuesets/ValueSet-England-ConditionCode.fsh b/input/fsh/valuesets/ValueSet-England-ConditionCode.fsh deleted file mode 100644 index 7ac35e1..0000000 --- a/input/fsh/valuesets/ValueSet-England-ConditionCode.fsh +++ /dev/null @@ -1,39 +0,0 @@ -ValueSet: ValueSet-England-ConditionCode -Id: ValueSet-England-ConditionCode -Title: "Reasonable Adjustments Record Condition Code" -Description: "A ValueSet to identify the SNOMED-CT concept representing an Impairment recorded as part of a Reasonable Adjustment" -* ^url = "https://fhir.nhs.uk/STU3/ValueSet/RARecord-ConditionCode-1" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2024-02-14" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^expansion.timestamp = "2024-02-14T12:00:00+00:00" -* ^expansion.contains[0].system = "https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1" -* ^expansion[0].code = "1" -* ^expansion[=].display = "Vision (for example blindness or partial sight)" -* ^expansion[+].code = "2" -* ^expansion[=].display = "Hearing (for example deafness or partial hearing)" -* ^expansion[+].code = "3" -* ^expansion[=].display = "Mobility (for example walking short distances or climbing stairs)" -* ^expansion[+].code = "4" -* ^expansion[=].display = "Dexterity (for example lifting and carrying objects, using a keyboard)" -* ^expansion[+].code = "5" -* ^expansion[=].display = "Learning or understanding or concentrating" -* ^expansion[+].code = "6" -* ^expansion[=].display = "Memory" -* ^expansion[+].code = "7" -* ^expansion[=].display = "Mental health" -* ^expansion[+].code = "8" -* ^expansion[=].display = "Stamina or breathing or fatigue" -* ^expansion[+].code = "9" -* ^expansion[=].display = "Social or behavioural (for example associated with autism spectrum disorder (ASD) which includes Asperger’s, or attention deficit hyperactivity disorder (ADHD))" -* ^expansion[+].code = "10" -* ^expansion[=].display = "Other (please specify)" -* ^expansion[+].code = "12" -* ^expansion[=].display = "Patient would prefer not to say" diff --git a/input/fsh/valuesets/ValueSet-England-FlagCode.fsh b/input/fsh/valuesets/ValueSet-England-FlagCode.fsh deleted file mode 100644 index 0cc2b08..0000000 --- a/input/fsh/valuesets/ValueSet-England-FlagCode.fsh +++ /dev/null @@ -1,713 +0,0 @@ -ValueSet: ValueSet-England-FlagCode -Id: ValueSet-England-FlagCode -Title: "Reasonable Adjustments Record Flag Code" -Description: "A ValueSet to identify codes representing Adjustments required for a patient" -* ^url = "https://fhir.nhs.uk/STU3/ValueSet/RARecord-FlagCode-1" -* ^version = "1.0.0" -* ^status = #draft -* ^date = "2024-02-14" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." -* ^expansion.timestamp = "2024-02-14T12:00:00+00:00" -* ^expansion.include.system = "http://snomed.info/sct" -* ^expansion.include.concept[0].code = #441092009 -* ^expansion.include.concept[=].display = "Does lip read" -* ^expansion.include.concept[+].code = #719369003 -* ^expansion.include.concept[=].display = "Does use communication device" -* ^expansion.include.concept[+].code = #285055002 -* ^expansion.include.concept[=].display = "Does use hearing aid" -* ^expansion.include.concept[+].code = #520471000000105 -* ^expansion.include.concept[=].display = "Preferred method of communication: British Sign Language" -* ^expansion.include.concept[+].code = #520491000000109 -* ^expansion.include.concept[=].display = "Preferred method of communication: written" -* ^expansion.include.concept[+].code = #1082671000000100 -* ^expansion.include.concept[=].display = "Requires aphasia-friendly communication" -* ^expansion.include.concept[+].code = #1082691000000101 -* ^expansion.include.concept[=].display = "Requires support for expressive communication needs" -* ^expansion.include.concept[+].code = #1082681000000103 -* ^expansion.include.concept[=].display = "Requires support for receptive communication needs" -* ^expansion.include.concept[+].code = #225834007 -* ^expansion.include.concept[=].display = "Uses a citizen advocate" -* ^expansion.include.concept[+].code = #225833001 -* ^expansion.include.concept[=].display = "Uses a legal advocate" -* ^expansion.include.concept[+].code = #288595009 -* ^expansion.include.concept[=].display = "Uses a non-speech system for communication" -* ^expansion.include.concept[+].code = #761541000000100 -* ^expansion.include.concept[=].display = "Uses alternative communication skill" -* ^expansion.include.concept[+].code = #716524009 -* ^expansion.include.concept[=].display = "Uses augmentative and alternative communication" -* ^expansion.include.concept[+].code = #415803005 -* ^expansion.include.concept[=].display = "Uses British sign language" -* ^expansion.include.concept[+].code = #445129003 -* ^expansion.include.concept[=].display = "Uses cued speech transliterator" -* ^expansion.include.concept[+].code = #957031000000107 -* ^expansion.include.concept[=].display = "Uses deafblind intervener" -* ^expansion.include.concept[+].code = #981781000000107 -* ^expansion.include.concept[=].display = "Uses Deafblind Manual Alphabet" -* ^expansion.include.concept[+].code = #445121000 -* ^expansion.include.concept[=].display = "Uses electronic note taker" -* ^expansion.include.concept[+].code = #1077121000000101 -* ^expansion.include.concept[=].display = "Uses functional communication skills" -* ^expansion.include.concept[+].code = #1082531000000103 -* ^expansion.include.concept[=].display = "Uses gestures for communication" -* ^expansion.include.concept[+].code = #198061000000105 -* ^expansion.include.concept[=].display = "Uses hearing loop" -* ^expansion.include.concept[+].code = #719363002 -* ^expansion.include.concept[=].display = "Uses high technology communication device" -* ^expansion.include.concept[+].code = #445143008 -* ^expansion.include.concept[=].display = "Uses lipspeaker" -* ^expansion.include.concept[+].code = #719364008 -* ^expansion.include.concept[=].display = "Uses low technology communication device" -* ^expansion.include.concept[+].code = #415805003 -* ^expansion.include.concept[=].display = "Uses Makaton sign language" -* ^expansion.include.concept[+].code = #445076009 -* ^expansion.include.concept[=].display = "Uses manual note taker" -* ^expansion.include.concept[+].code = #719370002 -* ^expansion.include.concept[=].display = "Uses non-powered communication device" -* ^expansion.include.concept[+].code = #288583009 -* ^expansion.include.concept[=].display = "Uses non-verbal communication" -* ^expansion.include.concept[+].code = #1082541000000107 -* ^expansion.include.concept[=].display = "Uses objects for communication" -* ^expansion.include.concept[+].code = #720462004 -* ^expansion.include.concept[=].display = "Uses personal audio recording device to record information" -* ^expansion.include.concept[+].code = #837341000000108 -* ^expansion.include.concept[=].display = "Uses Personal Communication Passport" -* ^expansion.include.concept[+].code = #719393008 -* ^expansion.include.concept[=].display = "Uses photographs for communication" -* ^expansion.include.concept[+].code = #719373000 -* ^expansion.include.concept[=].display = "Uses powered communication device" -* ^expansion.include.concept[+].code = #404903008 -* ^expansion.include.concept[=].display = "Uses sign language" -* ^expansion.include.concept[+].code = #445123002 -* ^expansion.include.concept[=].display = "Uses speech to text reporter" -* ^expansion.include.concept[+].code = #719754002 -* ^expansion.include.concept[=].display = "Uses symbols for communication" -* ^expansion.include.concept[+].code = #445488003 -* ^expansion.include.concept[=].display = "Uses telecommunications device for the deaf" -* ^expansion.include.concept[+].code = #288601001 -* ^expansion.include.concept[=].display = "Uses verbal communication" -* ^expansion.include.concept[+].code = #716537007 -* ^expansion.include.concept[=].display = "Uses voice amplifier to support communication" -* ^expansion.include.concept[+].code = #762361000000101 -* ^expansion.include.concept[=].display = "Uses voice output communication aid" -* ^expansion.include.concept[+].code = #204331000000107 -* ^expansion.include.concept[=].display = "British Sign Language interpreter needed" -* ^expansion.include.concept[+].code = #945731000000104 -* ^expansion.include.concept[=].display = "Hands-on signing interpreter needed" -* ^expansion.include.concept[+].code = #204341000000103 -* ^expansion.include.concept[=].display = "Makaton Sign Language interpreter needed" -* ^expansion.include.concept[+].code = #225835008 -* ^expansion.include.concept[=].display = "Needs an advocate" -* ^expansion.include.concept[+].code = #957071000000109 -* ^expansion.include.concept[=].display = "Requires deafblind block alphabet interpreter" -* ^expansion.include.concept[+].code = #796201000000109 -* ^expansion.include.concept[=].display = "Requires deafblind communicator guide" -* ^expansion.include.concept[+].code = #957111000000103 -* ^expansion.include.concept[=].display = "Requires deafblind haptic communication interpreter" -* ^expansion.include.concept[+].code = #957051000000100 -* ^expansion.include.concept[=].display = "Requires deafblind manual alphabet interpreter" -* ^expansion.include.concept[+].code = #945911000000109 -* ^expansion.include.concept[=].display = "Requires lipspeaker" -* ^expansion.include.concept[+].code = #945891000000106 -* ^expansion.include.concept[=].display = "Requires manual note taker" -* ^expansion.include.concept[+].code = #719563003 -* ^expansion.include.concept[=].display = "Requires sighted guide" -* ^expansion.include.concept[+].code = #1082661000000100 -* ^expansion.include.concept[=].display = "Requires speech and language therapist support to communicate" -* ^expansion.include.concept[+].code = #966401000000100 -* ^expansion.include.concept[=].display = "Requires speech to text reporter" -* ^expansion.include.concept[+].code = #936761000000104 -* ^expansion.include.concept[=].display = "Sign Supported English interpreter needed" -* ^expansion.include.concept[+].code = #945711000000107 -* ^expansion.include.concept[=].display = "Visual frame sign language interpreter needed" -* ^expansion.include.concept[+].code = #945931000000101 -* ^expansion.include.concept[=].display = "Requires audible alert" -* ^expansion.include.concept[+].code = #936741000000100 -* ^expansion.include.concept[=].display = "Requires contact by email" -* ^expansion.include.concept[+].code = #936721000000107 -* ^expansion.include.concept[=].display = "Requires contact by letter" -* ^expansion.include.concept[+].code = #936701000000103 -* ^expansion.include.concept[=].display = "Requires contact by short message service text message" -* ^expansion.include.concept[+].code = #795661000000104 -* ^expansion.include.concept[=].display = "Requires contact by telephone" -* ^expansion.include.concept[+].code = #796081000000106 -* ^expansion.include.concept[=].display = "Requires contact by text relay" -* ^expansion.include.concept[+].code = #719561001 -* ^expansion.include.concept[=].display = "Requires contact via carer" -* ^expansion.include.concept[+].code = #945971000000104 -* ^expansion.include.concept[=].display = "Requires tactile alert" -* ^expansion.include.concept[+].code = #945951000000108 -* ^expansion.include.concept[=].display = "Requires visual alert" -* ^expansion.include.concept[+].code = #719758004 -* ^expansion.include.concept[=].display = "Requires healthcare information recording on personal audio recording device" -* ^expansion.include.concept[+].code = #936581000000101 -* ^expansion.include.concept[=].display = "Requires information by email" -* ^expansion.include.concept[+].code = #1082551000000100 -* ^expansion.include.concept[=].display = "Requires information in aphasia-accessible format" -* ^expansion.include.concept[+].code = #936661000000109 -* ^expansion.include.concept[=].display = "Requires information in contracted (Grade 2) Braille" -* ^expansion.include.concept[+].code = #796161000000101 -* ^expansion.include.concept[=].display = "Requires information in Easyread" -* ^expansion.include.concept[+].code = #936601000000105 -* ^expansion.include.concept[=].display = "Requires information in electronic audio format" -* ^expansion.include.concept[+].code = #945751000000106 -* ^expansion.include.concept[=].display = "Requires information in electronic downloadable format" -* ^expansion.include.concept[+].code = #936641000000108 -* ^expansion.include.concept[=].display = "Requires information in Makaton" -* ^expansion.include.concept[+].code = #936621000000101 -* ^expansion.include.concept[=].display = "Requires information in Moon alphabet" -* ^expansion.include.concept[+].code = #936681000000100 -* ^expansion.include.concept[=].display = "Requires information in uncontracted (Grade 1) Braille" -* ^expansion.include.concept[+].code = #795801000000104 -* ^expansion.include.concept[=].display = "Requires information on audio cassette tape" -* ^expansion.include.concept[+].code = #795731000000104 -* ^expansion.include.concept[=].display = "Requires information on compact disc" -* ^expansion.include.concept[+].code = #795691000000105 -* ^expansion.include.concept[=].display = "Requires information on digital versatile disc" -* ^expansion.include.concept[+].code = #945691000000105 -* ^expansion.include.concept[=].display = "Requires information on universal serial bus mass storage device" -* ^expansion.include.concept[+].code = #367741000000102 -* ^expansion.include.concept[=].display = "Requires information verbally" -* ^expansion.include.concept[+].code = #985021000000106 -* ^expansion.include.concept[=].display = "Requires third party to read out written information" -* ^expansion.include.concept[+].code = #957331000000109 -* ^expansion.include.concept[=].display = "Requires written information in at least 20 point sans serif font" -* ^expansion.include.concept[+].code = #957351000000102 -* ^expansion.include.concept[=].display = "Requires written information in at least 24 point sans serif font" -* ^expansion.include.concept[+].code = #957371000000106 -* ^expansion.include.concept[=].display = "Requires written information in at least 28 point sans serif font" -* ^expansion.include.concept[+].code = #307089001 -* ^expansion.include.concept[=].display = "Difficulty analysing information" -* ^expansion.include.concept[+].code = #311540003 -* ^expansion.include.concept[=].display = "Difficulty processing information accurately" -* ^expansion.include.concept[+].code = #311543001 -* ^expansion.include.concept[=].display = "Difficulty processing information at normal speed" -* ^expansion.include.concept[+].code = #1325291000000103 -* ^expansion.include.concept[=].display = "Emergency contact details of specialist support team" -* ^expansion.include.concept[+].code = #1108141000000108 -* ^expansion.include.concept[=].display = "Expresses pain atypically" -* ^expansion.include.concept[+].code = #1108121000000101 -* ^expansion.include.concept[=].display = "Has My Healthcare Passport" -* ^expansion.include.concept[+].code = #737350008 -* ^expansion.include.concept[=].display = "Needs assistance with communication" -* ^expansion.include.concept[+].code = #1108131000000104 -* ^expansion.include.concept[=].display = "Requires appointment reminders" -* ^expansion.include.concept[+].code = #1325421000000100 -* ^expansion.include.concept[=].display = "Requires approach to care to be discussed with carer" -* ^expansion.include.concept[+].code = #1108151000000106 -* ^expansion.include.concept[=].display = "Requires carer to be present at encounters" -* ^expansion.include.concept[+].code = #955771000000100 -* ^expansion.include.concept[=].display = "Uses apps on mobile device to support communication" -* ^expansion.include.concept[+].code = #954871000000106 -* ^expansion.include.concept[=].display = "Uses switches for communication" -* ^expansion.include.concept[+].code = #936561000000105 -* ^expansion.include.concept[=].display = "Uses Tadoma method for communication" -* ^expansion.include.concept[+].code = #362721000000106 -* ^expansion.include.concept[=].display = "Abkhazian language interpreter needed" -* ^expansion.include.concept[+].code = #362691000000102 -* ^expansion.include.concept[=].display = "Afar language interpreter needed" -* ^expansion.include.concept[+].code = #362571000000102 -* ^expansion.include.concept[=].display = "Afrikaans language interpreter needed" -* ^expansion.include.concept[+].code = #203281000000104 -* ^expansion.include.concept[=].display = "Akan language interpreter needed" -* ^expansion.include.concept[+].code = #203291000000102 -* ^expansion.include.concept[=].display = "Albanian language interpreter needed" -* ^expansion.include.concept[+].code = #203301000000103 -* ^expansion.include.concept[=].display = "Amharic language interpreter needed" -* ^expansion.include.concept[+].code = #203311000000101 -* ^expansion.include.concept[=].display = "Arabic language interpreter needed" -* ^expansion.include.concept[+].code = #972511000000109 -* ^expansion.include.concept[=].display = "Aragonese interpreter needed" -* ^expansion.include.concept[+].code = #362261000000106 -* ^expansion.include.concept[=].display = "Armenian language interpreter needed" -* ^expansion.include.concept[+].code = #362231000000101 -* ^expansion.include.concept[=].display = "Assamese language interpreter needed" -* ^expansion.include.concept[+].code = #972521000000103 -* ^expansion.include.concept[=].display = "Avaric interpreter needed" -* ^expansion.include.concept[+].code = #972531000000101 -* ^expansion.include.concept[=].display = "Avestan interpreter needed" -* ^expansion.include.concept[+].code = #362541000000108 -* ^expansion.include.concept[=].display = "Aymara language interpreter needed" -* ^expansion.include.concept[+].code = #362611000000106 -* ^expansion.include.concept[=].display = "Azerbaijani language interpreter needed" -* ^expansion.include.concept[+].code = #972541000000105 -* ^expansion.include.concept[=].display = "Bambara interpreter needed" -* ^expansion.include.concept[+].code = #972551000000108 -* ^expansion.include.concept[=].display = "Bashkir interpreter needed" -* ^expansion.include.concept[+].code = #362641000000107 -* ^expansion.include.concept[=].display = "Basque language interpreter needed" -* ^expansion.include.concept[+].code = #362071000000107 -* ^expansion.include.concept[=].display = "Belarusian language interpreter needed" -* ^expansion.include.concept[+].code = #203321000000107 -* ^expansion.include.concept[=].display = "Bengali language interpreter needed" -* ^expansion.include.concept[+].code = #362201000000107 -* ^expansion.include.concept[=].display = "Bihari language interpreter needed" -* ^expansion.include.concept[+].code = #362171000000106 -* ^expansion.include.concept[=].display = "Bislama language interpreter needed" -* ^expansion.include.concept[+].code = #972561000000106 -* ^expansion.include.concept[=].display = "Bosnian interpreter needed" -* ^expansion.include.concept[+].code = #359821000000104 -* ^expansion.include.concept[=].display = "Brawa language interpreter needed" -* ^expansion.include.concept[+].code = #362141000000100 -* ^expansion.include.concept[=].display = "Breton language interpreter needed" -* ^expansion.include.concept[+].code = #353921000000107 -* ^expansion.include.concept[=].display = "Bulgarian language interpreter needed" -* ^expansion.include.concept[+].code = #362371000000109 -* ^expansion.include.concept[=].display = "Burmese language interpreter needed" -* ^expansion.include.concept[+].code = #203381000000108 -* ^expansion.include.concept[=].display = "Cantonese language interpreter needed" -* ^expansion.include.concept[+].code = #362041000000101 -* ^expansion.include.concept[=].display = "Catalan language interpreter needed" -* ^expansion.include.concept[+].code = #362331000000107 -* ^expansion.include.concept[=].display = "Central Khmer language interpreter needed" -* ^expansion.include.concept[+].code = #972571000000104 -* ^expansion.include.concept[=].display = "Chamorro interpreter needed" -* ^expansion.include.concept[+].code = #972581000000102 -* ^expansion.include.concept[=].display = "Chechen interpreter needed" -* ^expansion.include.concept[+].code = #972591000000100 -* ^expansion.include.concept[=].display = "Chinese interpreter needed" -* ^expansion.include.concept[+].code = #972601000000106 -* ^expansion.include.concept[=].display = "Church Slavic interpreter needed" -* ^expansion.include.concept[+].code = #972611000000108 -* ^expansion.include.concept[=].display = "Chuvash interpreter needed" -* ^expansion.include.concept[+].code = #972621000000102 -* ^expansion.include.concept[=].display = "Cornish interpreter needed" -* ^expansion.include.concept[+].code = #361941000000107 -* ^expansion.include.concept[=].display = "Corsican language interpreter needed" -* ^expansion.include.concept[+].code = #972631000000100 -* ^expansion.include.concept[=].display = "Cree interpreter needed" -* ^expansion.include.concept[+].code = #203391000000105 -* ^expansion.include.concept[=].display = "Croatian language interpreter needed" -* ^expansion.include.concept[+].code = #203401000000108 -* ^expansion.include.concept[=].display = "Czech language interpreter needed" -* ^expansion.include.concept[+].code = #361971000000101 -* ^expansion.include.concept[=].display = "Danish language interpreter needed" -* ^expansion.include.concept[+].code = #972641000000109 -* ^expansion.include.concept[=].display = "Dhivehi interpreter needed" -* ^expansion.include.concept[+].code = #203411000000105 -* ^expansion.include.concept[=].display = "Dutch language interpreter needed" -* ^expansion.include.concept[+].code = #362781000000107 -* ^expansion.include.concept[=].display = "Dzongkha language interpreter needed" -* ^expansion.include.concept[+].code = #343671000000102 -* ^expansion.include.concept[=].display = "English language interpreter needed" -* ^expansion.include.concept[+].code = #361881000000106 -* ^expansion.include.concept[=].display = "Esperanto language interpreter needed" -* ^expansion.include.concept[+].code = #361911000000106 -* ^expansion.include.concept[=].display = "Estonian language interpreter needed" -* ^expansion.include.concept[+].code = #359791000000109 -* ^expansion.include.concept[=].display = "Ethiopian language interpreter needed" -* ^expansion.include.concept[+].code = #972651000000107 -* ^expansion.include.concept[=].display = "Ewe interpreter needed" -* ^expansion.include.concept[+].code = #361791000000100 -* ^expansion.include.concept[=].display = "Faroese language interpreter needed" -* ^expansion.include.concept[+].code = #203421000000104 -* ^expansion.include.concept[=].display = "Farsi language interpreter needed" -* ^expansion.include.concept[+].code = #361821000000105 -* ^expansion.include.concept[=].display = "Fijian language interpreter needed" -* ^expansion.include.concept[+].code = #343701000000103 -* ^expansion.include.concept[=].display = "Finnish language interpreter needed" -* ^expansion.include.concept[+].code = #343711000000101 -* ^expansion.include.concept[=].display = "Flemish language interpreter needed" -* ^expansion.include.concept[+].code = #203521000000103 -* ^expansion.include.concept[=].display = "French Creole language interpreter needed" -* ^expansion.include.concept[+].code = #203441000000106 -* ^expansion.include.concept[=].display = "French language interpreter needed" -* ^expansion.include.concept[+].code = #361501000000104 -* ^expansion.include.concept[=].display = "Frisian language interpreter needed" -* ^expansion.include.concept[+].code = #972671000000103 -* ^expansion.include.concept[=].display = "Fulah interpreter needed" -* ^expansion.include.concept[+].code = #343721000000107 -* ^expansion.include.concept[=].display = "Gaelic language interpreter needed" -* ^expansion.include.concept[+].code = #361851000000100 -* ^expansion.include.concept[=].display = "Galician language interpreter needed" -* ^expansion.include.concept[+].code = #203801000000105 -* ^expansion.include.concept[=].display = "Ganda language interpreter needed" -* ^expansion.include.concept[+].code = #361471000000106 -* ^expansion.include.concept[=].display = "Georgian language interpreter needed" -* ^expansion.include.concept[+].code = #203581000000102 -* ^expansion.include.concept[=].display = "German language interpreter needed" -* ^expansion.include.concept[+].code = #203591000000100 -* ^expansion.include.concept[=].display = "Greek language interpreter needed" -* ^expansion.include.concept[+].code = #361441000000100 -* ^expansion.include.concept[=].display = "Guarani language interpreter needed" -* ^expansion.include.concept[+].code = #203601000000106 -* ^expansion.include.concept[=].display = "Gujarati language interpreter needed" -* ^expansion.include.concept[+].code = #972681000000101 -* ^expansion.include.concept[=].display = "Haitian interpreter needed" -* ^expansion.include.concept[+].code = #203611000000108 -* ^expansion.include.concept[=].display = "Hakka language interpreter needed" -* ^expansion.include.concept[+].code = #203631000000100 -* ^expansion.include.concept[=].display = "Hausa language interpreter needed" -* ^expansion.include.concept[+].code = #203641000000109 -* ^expansion.include.concept[=].display = "Hebrew language interpreter needed" -* ^expansion.include.concept[+].code = #972691000000104 -* ^expansion.include.concept[=].display = "Herero interpreter needed" -* ^expansion.include.concept[+].code = #203651000000107 -* ^expansion.include.concept[=].display = "Hindi language interpreter needed" -* ^expansion.include.concept[+].code = #972701000000104 -* ^expansion.include.concept[=].display = "Hiri Motu interpreter needed" -* ^expansion.include.concept[+].code = #360431000000104 -* ^expansion.include.concept[=].display = "Hungarian language interpreter needed" -* ^expansion.include.concept[+].code = #359881000000103 -* ^expansion.include.concept[=].display = "Iban language interpreter needed" -* ^expansion.include.concept[+].code = #360401000000105 -* ^expansion.include.concept[=].display = "Icelandic language interpreter needed" -* ^expansion.include.concept[+].code = #972711000000102 -* ^expansion.include.concept[=].display = "Ido interpreter needed" -* ^expansion.include.concept[+].code = #203531000000101 -* ^expansion.include.concept[=].display = "Igbo language interpreter needed" -* ^expansion.include.concept[+].code = #362111000000101 -* ^expansion.include.concept[=].display = "Indonesian language interpreter needed" -* ^expansion.include.concept[+].code = #972721000000108 -* ^expansion.include.concept[=].display = "Interlingua interpreter needed" -* ^expansion.include.concept[+].code = #360341000000102 -* ^expansion.include.concept[=].display = "Interlingue language interpreter needed" -* ^expansion.include.concept[+].code = #315594003 -* ^expansion.include.concept[=].display = "Interpreter needed" -* ^expansion.include.concept[+].code = #360311000000103 -* ^expansion.include.concept[=].display = "Inuktitut language interpreter needed" -* ^expansion.include.concept[+].code = #360251000000107 -* ^expansion.include.concept[=].display = "Inupiaq language interpreter needed" -* ^expansion.include.concept[+].code = #972731000000105 -* ^expansion.include.concept[=].display = "Irish interpreter needed" -* ^expansion.include.concept[+].code = #203371000000106 -* ^expansion.include.concept[=].display = "Italian language interpreter needed" -* ^expansion.include.concept[+].code = #203681000000101 -* ^expansion.include.concept[=].display = "Japanese language interpreter needed" -* ^expansion.include.concept[+].code = #360281000000101 -* ^expansion.include.concept[=].display = "Javanese language interpreter needed" -* ^expansion.include.concept[+].code = #362011000000102 -* ^expansion.include.concept[=].display = "Kalaallisut language interpreter needed" -* ^expansion.include.concept[+].code = #360101000000102 -* ^expansion.include.concept[=].display = "Kannada language interpreter needed" -* ^expansion.include.concept[+].code = #972741000000101 -* ^expansion.include.concept[=].display = "Kanuri interpreter needed" -* ^expansion.include.concept[+].code = #360191000000109 -* ^expansion.include.concept[=].display = "Kashmiri language interpreter needed" -* ^expansion.include.concept[+].code = #360221000000102 -* ^expansion.include.concept[=].display = "Kazakh language interpreter needed" -* ^expansion.include.concept[+].code = #972751000000103 -* ^expansion.include.concept[=].display = "Kikuyu interpreter needed" -* ^expansion.include.concept[+].code = #360131000000108 -* ^expansion.include.concept[=].display = "Kinyarwanda language interpreter needed" -* ^expansion.include.concept[+].code = #359851000000109 -* ^expansion.include.concept[=].display = "Kirghiz language interpreter needed" -* ^expansion.include.concept[+].code = #972771000000107 -* ^expansion.include.concept[=].display = "Komi interpreter needed" -* ^expansion.include.concept[+].code = #972781000000109 -* ^expansion.include.concept[=].display = "Kongo interpreter needed" -* ^expansion.include.concept[+].code = #203691000000104 -* ^expansion.include.concept[=].display = "Korean language interpreter needed" -* ^expansion.include.concept[+].code = #972791000000106 -* ^expansion.include.concept[=].display = "Kuanyama interpreter needed" -* ^expansion.include.concept[+].code = #203701000000104 -* ^expansion.include.concept[=].display = "Kurdish language interpreter needed" -* ^expansion.include.concept[+].code = #343771000000106 -* ^expansion.include.concept[=].display = "Kutchi language interpreter needed" -* ^expansion.include.concept[+].code = #360371000000108 -* ^expansion.include.concept[=].display = "Lao language interpreter needed" -* ^expansion.include.concept[+].code = #972801000000105 -* ^expansion.include.concept[=].display = "Latin interpreter needed" -* ^expansion.include.concept[+].code = #360071000000106 -* ^expansion.include.concept[=].display = "Latvian language interpreter needed" -* ^expansion.include.concept[+].code = #972811000000107 -* ^expansion.include.concept[=].display = "Limburgan interpreter needed" -* ^expansion.include.concept[+].code = #203711000000102 -* ^expansion.include.concept[=].display = "Lingala language interpreter needed" -* ^expansion.include.concept[+].code = #203721000000108 -* ^expansion.include.concept[=].display = "Lithuanian language interpreter needed" -* ^expansion.include.concept[+].code = #972821000000101 -* ^expansion.include.concept[=].display = "Luba-Katanga interpreter needed" -* ^expansion.include.concept[+].code = #359761000000103 -* ^expansion.include.concept[=].display = "Luganda language interpreter needed" -* ^expansion.include.concept[+].code = #972831000000104 -* ^expansion.include.concept[=].display = "Luxembourgish interpreter needed" -* ^expansion.include.concept[+].code = #359971000000108 -* ^expansion.include.concept[=].display = "Macedonian language interpreter needed" -* ^expansion.include.concept[+].code = #360011000000101 -* ^expansion.include.concept[=].display = "Malagasy language interpreter needed" -* ^expansion.include.concept[+].code = #360161000000103 -* ^expansion.include.concept[=].display = "Malay language interpreter needed" -* ^expansion.include.concept[+].code = #203811000000107 -* ^expansion.include.concept[=].display = "Malayalam language interpreter needed" -* ^expansion.include.concept[+].code = #359731000000108 -* ^expansion.include.concept[=].display = "Maltese language interpreter needed" -* ^expansion.include.concept[+].code = #203821000000101 -* ^expansion.include.concept[=].display = "Mandarin language interpreter needed" -* ^expansion.include.concept[+].code = #972851000000106 -* ^expansion.include.concept[=].display = "Manx interpreter needed" -* ^expansion.include.concept[+].code = #359911000000103 -* ^expansion.include.concept[=].display = "Maori language interpreter needed" -* ^expansion.include.concept[+].code = #359701000000102 -* ^expansion.include.concept[=].display = "Marathi language interpreter needed" -* ^expansion.include.concept[+].code = #972861000000109 -* ^expansion.include.concept[=].display = "Marshallese interpreter needed" -* ^expansion.include.concept[+].code = #359671000000101 -* ^expansion.include.concept[=].display = "Moldavian language interpreter needed" -* ^expansion.include.concept[+].code = #359641000000107 -* ^expansion.include.concept[=].display = "Mongolian language interpreter needed" -* ^expansion.include.concept[+].code = #364351000000107 -* ^expansion.include.concept[=].display = "Nauru language interpreter needed" -* ^expansion.include.concept[+].code = #972881000000100 -* ^expansion.include.concept[=].display = "Navajo interpreter needed" -* ^expansion.include.concept[+].code = #352931000000102 -* ^expansion.include.concept[=].display = "Ndebele language interpreter needed" -* ^expansion.include.concept[+].code = #972891000000103 -* ^expansion.include.concept[=].display = "Ndonga interpreter needed" -* ^expansion.include.concept[+].code = #364251000000104 -* ^expansion.include.concept[=].display = "Nepali language interpreter needed" -* ^expansion.include.concept[+].code = #972911000000100 -* ^expansion.include.concept[=].display = "North Ndebele interpreter needed" -* ^expansion.include.concept[+].code = #972921000000106 -* ^expansion.include.concept[=].display = "Northern Sami interpreter needed" -* ^expansion.include.concept[+].code = #972931000000108 -* ^expansion.include.concept[=].display = "Norwegian BokmÃ¥l interpreter needed" -* ^expansion.include.concept[+].code = #203831000000104 -* ^expansion.include.concept[=].display = "Norwegian language interpreter needed" -* ^expansion.include.concept[+].code = #972941000000104 -* ^expansion.include.concept[=].display = "Norwegian Nynorsk interpreter needed" -* ^expansion.include.concept[+].code = #973071000000100 -* ^expansion.include.concept[=].display = "Nuosu interpreter needed" -* ^expansion.include.concept[+].code = #972951000000101 -* ^expansion.include.concept[=].display = "Nyanja interpreter needed" -* ^expansion.include.concept[+].code = #364311000000108 -* ^expansion.include.concept[=].display = "Occitan language interpreter needed" -* ^expansion.include.concept[+].code = #972981000000107 -* ^expansion.include.concept[=].display = "Ojibwa interpreter needed" -* ^expansion.include.concept[+].code = #364211000000103 -* ^expansion.include.concept[=].display = "Oriya language interpreter needed" -* ^expansion.include.concept[+].code = #362991000000107 -* ^expansion.include.concept[=].display = "Oromo language interpreter needed" -* ^expansion.include.concept[+].code = #973001000000108 -* ^expansion.include.concept[=].display = "Ossetian interpreter needed" -* ^expansion.include.concept[+].code = #973011000000105 -* ^expansion.include.concept[=].display = "Pali interpreter needed" -* ^expansion.include.concept[+].code = #203961000000103 -* ^expansion.include.concept[=].display = "Panjabi language interpreter needed" -* ^expansion.include.concept[+].code = #203841000000108 -* ^expansion.include.concept[=].display = "Pashto language interpreter needed" -* ^expansion.include.concept[+].code = #203901000000102 -* ^expansion.include.concept[=].display = "Polish language interpreter needed" -* ^expansion.include.concept[+].code = #203911000000100 -* ^expansion.include.concept[=].display = "Portuguese language interpreter needed" -* ^expansion.include.concept[+].code = #364011000000105 -* ^expansion.include.concept[=].display = "Quechua language interpreter needed" -* ^expansion.include.concept[+].code = #353881000000101 -* ^expansion.include.concept[=].display = "Romanian language interpreter needed" -* ^expansion.include.concept[+].code = #364481000000106 -* ^expansion.include.concept[=].display = "Romansh language interpreter needed" -* ^expansion.include.concept[+].code = #1047321000000104 -* ^expansion.include.concept[=].display = "Romany language interpreter needed" -* ^expansion.include.concept[+].code = #363061000000105 -* ^expansion.include.concept[=].display = "Rundi language interpreter needed" -* ^expansion.include.concept[+].code = #203971000000105 -* ^expansion.include.concept[=].display = "Russian language interpreter needed" -* ^expansion.include.concept[+].code = #363841000000104 -* ^expansion.include.concept[=].display = "Samoan language interpreter needed" -* ^expansion.include.concept[+].code = #364051000000109 -* ^expansion.include.concept[=].display = "Sango language interpreter needed" -* ^expansion.include.concept[+].code = #973031000000102 -* ^expansion.include.concept[=].display = "Sanskrit interpreter needed" -* ^expansion.include.concept[+].code = #973041000000106 -* ^expansion.include.concept[=].display = "Sardinian interpreter needed" -* ^expansion.include.concept[+].code = #973051000000109 -* ^expansion.include.concept[=].display = "Scottish Gaelic interpreter needed" -* ^expansion.include.concept[+].code = #203981000000107 -* ^expansion.include.concept[=].display = "Serbian language interpreter needed" -* ^expansion.include.concept[+].code = #973061000000107 -* ^expansion.include.concept[=].display = "Serbo-Croatian interpreter needed" -* ^expansion.include.concept[+].code = #203991000000109 -* ^expansion.include.concept[=].display = "Shona language interpreter needed" -* ^expansion.include.concept[+].code = #363711000000105 -* ^expansion.include.concept[=].display = "Sindhi language interpreter needed" -* ^expansion.include.concept[+].code = #204011000000102 -* ^expansion.include.concept[=].display = "Sinhala language interpreter needed" -* ^expansion.include.concept[+].code = #352901000000108 -* ^expansion.include.concept[=].display = "Slovak language interpreter needed" -* ^expansion.include.concept[+].code = #363591000000107 -* ^expansion.include.concept[=].display = "Slovenian language interpreter needed" -* ^expansion.include.concept[+].code = #204021000000108 -* ^expansion.include.concept[=].display = "Somali language interpreter needed" -* ^expansion.include.concept[+].code = #973081000000103 -* ^expansion.include.concept[=].display = "South Ndebele interpreter needed" -* ^expansion.include.concept[+].code = #363651000000100 -* ^expansion.include.concept[=].display = "Southern Sotho language interpreter needed" -* ^expansion.include.concept[+].code = #204031000000105 -* ^expansion.include.concept[=].display = "Spanish language interpreter needed" -* ^expansion.include.concept[+].code = #363781000000103 -* ^expansion.include.concept[=].display = "Sundanese language interpreter needed" -* ^expansion.include.concept[+].code = #204041000000101 -* ^expansion.include.concept[=].display = "Swahili language interpreter needed" -* ^expansion.include.concept[+].code = #363621000000105 -* ^expansion.include.concept[=].display = "Swati language interpreter needed" -* ^expansion.include.concept[+].code = #204051000000103 -* ^expansion.include.concept[=].display = "Swedish language interpreter needed" -* ^expansion.include.concept[+].code = #204081000000109 -* ^expansion.include.concept[=].display = "Sylheti language interpreter needed" -* ^expansion.include.concept[+].code = #204111000000101 -* ^expansion.include.concept[=].display = "Tagalog language interpreter needed" -* ^expansion.include.concept[+].code = #973101000000109 -* ^expansion.include.concept[=].display = "Tahitian interpreter needed" -* ^expansion.include.concept[+].code = #363681000000106 -* ^expansion.include.concept[=].display = "Tajik language interpreter needed" -* ^expansion.include.concept[+].code = #204131000000109 -* ^expansion.include.concept[=].display = "Tamil language interpreter needed" -* ^expansion.include.concept[+].code = #363221000000107 -* ^expansion.include.concept[=].display = "Tatar language interpreter needed" -* ^expansion.include.concept[+].code = #363341000000107 -* ^expansion.include.concept[=].display = "Telugu language interpreter needed" -* ^expansion.include.concept[+].code = #204151000000102 -* ^expansion.include.concept[=].display = "Thai language interpreter needed" -* ^expansion.include.concept[+].code = #363141000000105 -* ^expansion.include.concept[=].display = "Tibetan language interpreter needed" -* ^expansion.include.concept[+].code = #204171000000106 -* ^expansion.include.concept[=].display = "Tigrinya language interpreter needed" -* ^expansion.include.concept[+].code = #363461000000100 -* ^expansion.include.concept[=].display = "Tongan language interpreter needed" -* ^expansion.include.concept[+].code = #363181000000102 -* ^expansion.include.concept[=].display = "Tsonga language interpreter needed" -* ^expansion.include.concept[+].code = #363941000000108 -* ^expansion.include.concept[=].display = "Tswana language interpreter needed" -* ^expansion.include.concept[+].code = #204191000000105 -* ^expansion.include.concept[=].display = "Turkish language interpreter needed" -* ^expansion.include.concept[+].code = #363551000000104 -* ^expansion.include.concept[=].display = "Turkmen language interpreter needed" -* ^expansion.include.concept[+].code = #363301000000109 -* ^expansion.include.concept[=].display = "Twi language interpreter needed" -* ^expansion.include.concept[+].code = #364141000000107 -* ^expansion.include.concept[=].display = "Uighur language interpreter needed" -* ^expansion.include.concept[+].code = #204201000000107 -* ^expansion.include.concept[=].display = "Ukrainian language interpreter needed" -* ^expansion.include.concept[+].code = #204211000000109 -* ^expansion.include.concept[=].display = "Urdu language interpreter needed" -* ^expansion.include.concept[+].code = #362961000000101 -* ^expansion.include.concept[=].display = "Uzbek language interpreter needed" -* ^expansion.include.concept[+].code = #973121000000100 -* ^expansion.include.concept[=].display = "Venda interpreter needed" -* ^expansion.include.concept[+].code = #204221000000103 -* ^expansion.include.concept[=].display = "Vietnamese language interpreter needed" -* ^expansion.include.concept[+].code = #973131000000103 -* ^expansion.include.concept[=].display = "Volapük interpreter needed" -* ^expansion.include.concept[+].code = #973141000000107 -* ^expansion.include.concept[=].display = "Walloon interpreter needed" -* ^expansion.include.concept[+].code = #204231000000101 -* ^expansion.include.concept[=].display = "Welsh language interpreter needed" -* ^expansion.include.concept[+].code = #973151000000105 -* ^expansion.include.concept[=].display = "Western Frisian interpreter needed" -* ^expansion.include.concept[+].code = #973161000000108 -* ^expansion.include.concept[=].display = "Wolof interpreter needed" -* ^expansion.include.concept[+].code = #364511000000100 -* ^expansion.include.concept[=].display = "Xhosa language interpreter needed" -* ^expansion.include.concept[+].code = #363021000000102 -* ^expansion.include.concept[=].display = "Yiddish language interpreter needed" -* ^expansion.include.concept[+].code = #204241000000105 -* ^expansion.include.concept[=].display = "Yoruba language interpreter needed" -* ^expansion.include.concept[+].code = #362911000000103 -* ^expansion.include.concept[=].display = "Zhuang language interpreter needed" -* ^expansion.include.concept[+].code = #362821000000104 -* ^expansion.include.concept[=].display = "Zulu language interpreter needed" -* ^expansion.include.concept[+].code = #105506000 -* ^expansion.include.concept[=].display = "Dependence on seeing eye dog" -* ^expansion.include.concept[+].code = #1325291000000103 -* ^expansion.include.concept[=].display = "Emergency contact details of specialist support team" -* ^expansion.include.concept[+].code = #816361000000101 -* ^expansion.include.concept[=].display = "Has appointed person with personal welfare lasting power of attorney (Mental Capacity Act 2005)" -* ^expansion.include.concept[+].code = #988851000000103 -* ^expansion.include.concept[=].display = "Has appointed relevant person's representative (Mental Capacity Act 2005)" -* ^expansion.include.concept[+].code = #829101000000101 -* ^expansion.include.concept[=].display = "Needs assistance with medication regimen adherence" -* ^expansion.include.concept[+].code = #1325861000000105 -* ^expansion.include.concept[=].display = "Requires additional healthcare personnel to be present at encounter" -* ^expansion.include.concept[+].code = #1325421000000100 -* ^expansion.include.concept[=].display = "Requires approach to care to be discussed with carer" -* ^expansion.include.concept[+].code = #240451000000106 -* ^expansion.include.concept[=].display = "Requires constant supervision" -* ^expansion.include.concept[+].code = #1109351000000102 -* ^expansion.include.concept[=].display = "Requires enhanced discharge planning" -* ^expansion.include.concept[+].code = #225861007 -* ^expansion.include.concept[=].display = "Unsafe to be left alone" -* ^expansion.include.concept[+].code = #1325301000000104 -* ^expansion.include.concept[=].display = "Uses emotional support animal" -* ^expansion.include.concept[+].code = #862731000000105 -* ^expansion.include.concept[=].display = "Uses guide dog for the blind" -* ^expansion.include.concept[+].code = #1325321000000108 -* ^expansion.include.concept[=].display = "Anxiety related to clinical environment" -* ^expansion.include.concept[+].code = #105506000 -* ^expansion.include.concept[=].display = "Dependence on seeing eye dog" -* ^expansion.include.concept[+].code = #792871000000101 -* ^expansion.include.concept[=].display = "Has anticipatory care plan" -* ^expansion.include.concept[+].code = #231501003 -* ^expansion.include.concept[=].display = "Needle phobia" -* ^expansion.include.concept[+].code = #829101000000101 -* ^expansion.include.concept[=].display = "Needs assistance with medication regimen adherence" -* ^expansion.include.concept[+].code = #314434008 -* ^expansion.include.concept[=].display = "Preference for female healthcare professional" -* ^expansion.include.concept[+].code = #314435009 -* ^expansion.include.concept[=].display = "Preference for male healthcare professional" -* ^expansion.include.concept[+].code = #1325411000000106 -* ^expansion.include.concept[=].display = "Requires distraction technique whilst undergoing care procedure" -* ^expansion.include.concept[+].code = #1108171000000102 -* ^expansion.include.concept[=].display = "Requires extended appointment" -* ^expansion.include.concept[+].code = #1325341000000101 -* ^expansion.include.concept[=].display = "Requires familiarisation with care environment" -* ^expansion.include.concept[+].code = #1325331000000105 -* ^expansion.include.concept[=].display = "Requires familiarisation with care procedure" -* ^expansion.include.concept[+].code = #1325351000000103 -* ^expansion.include.concept[=].display = "Requires first appointment in appointment schedule" -* ^expansion.include.concept[+].code = #1325371000000107 -* ^expansion.include.concept[=].display = "Requires home visit appointments" -* ^expansion.include.concept[+].code = #1325361000000100 -* ^expansion.include.concept[=].display = "Requires last appointment in appointment schedule" -* ^expansion.include.concept[+].code = #1325841000000109 -* ^expansion.include.concept[=].display = "Requires minimal waiting time between arrival and being seen in care environment" -* ^expansion.include.concept[+].code = #1108161000000109 -* ^expansion.include.concept[=].display = "Requires priority appointment" -* ^expansion.include.concept[+].code = #1325401000000109 -* ^expansion.include.concept[=].display = "Requires single room during inpatient care" -* ^expansion.include.concept[+].code = #285035003 -* ^expansion.include.concept[=].display = "Self care deficit for medication management" -* ^expansion.include.concept[+].code = #865301000000107 -* ^expansion.include.concept[=].display = "Uses dispensed monitored dosage system" -* ^expansion.include.concept[+].code = #1325321000000108 -* ^expansion.include.concept[=].display = "Anxiety related to clinical environment" -* ^expansion.include.concept[+].code = #246622003 -* ^expansion.include.concept[=].display = "Eyes sensitive to light" -* ^expansion.include.concept[+].code = #247994001 -* ^expansion.include.concept[=].display = "Noise intolerance" -* ^expansion.include.concept[+].code = #409668002 -* ^expansion.include.concept[=].display = "Photophobia" -* ^expansion.include.concept[+].code = #1325341000000101 -* ^expansion.include.concept[=].display = "Requires familiarisation with care environment" -* ^expansion.include.concept[+].code = #1325381000000109 -* ^expansion.include.concept[=].display = "Requires low light environment" -* ^expansion.include.concept[+].code = #1325391000000106 -* ^expansion.include.concept[=].display = "Requires low noise environment" -* ^expansion.include.concept[+].code = #1325401000000109 -* ^expansion.include.concept[=].display = "Requires single room during inpatient care" -* ^expansion.include.concept[+].code = #1108191000000103 -* ^expansion.include.concept[=].display = "Requires wheelchair access" -* ^expansion.include.concept[+].code = #1325301000000104 -* ^expansion.include.concept[=].display = "Uses emotional support animal" -* ^expansion.include.concept[+].code = #862731000000105 -* ^expansion.include.concept[=].display = "Uses guide dog for the blind" -* ^expansion.include.concept[+].code = #1325761000000101 -* ^expansion.include.concept[=].display = "Assessment of eating and drinking behaviour indicated" -* ^expansion.include.concept[+].code = #1325741000000102 -* ^expansion.include.concept[=].display = "Constipation care indicated" -* ^expansion.include.concept[+].code = #1325751000000104 -* ^expansion.include.concept[=].display = "Dysphagia therapy regime indicated" -* ^expansion.include.concept[+].code = #1325771000000108 -* ^expansion.include.concept[=].display = "Screening for risk of falls indicated" -* ^expansion.include.concept[+].code = #1325781000000105 -* ^expansion.include.concept[=].display = "Seizure management indicated" -* ^expansion.include.concept[+].code = #1325791000000107 -* ^expansion.include.concept[=].display = "Self-harm behaviour management indicated" -* ^expansion.include.concept[+].code = #1325801000000106 -* ^expansion.include.concept[=].display = "Thyroid function test indicated" -* ^expansion.include.concept[+].code = #1108111000000107 -* ^expansion.include.concept[=].display = "Requires reasonable adjustment for health and care access (Equality Act 2010)" From 7fa16541ef787e06f2195818b42e7a81ae95c62b Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Mon, 19 Feb 2024 13:11:03 +0000 Subject: [PATCH 112/136] Update RA-ConditionCode.fsh --- input/fsh/valuesets/RA-ConditionCode.fsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/fsh/valuesets/RA-ConditionCode.fsh b/input/fsh/valuesets/RA-ConditionCode.fsh index 2d6d3c7..bb4d56f 100644 --- a/input/fsh/valuesets/RA-ConditionCode.fsh +++ b/input/fsh/valuesets/RA-ConditionCode.fsh @@ -2,7 +2,7 @@ ValueSet: RA-ConditionCode Id: RA-ConditionCode Title: "Reasonable Adjustments Record Condition Code" Description: "A ValueSet to identify the SNOMED-CT concept representing an Impairment recorded as part of a Reasonable Adjustment" -* ^url = "https://fhir.nhs.uk/England/ValueSet/RARecord-ConditionCode" +* ^url = "https://fhir.nhs.uk/England/ValueSet/RA-ConditionCode" * ^version = "1.0.0" * ^status = #draft * ^date = "2024-02-14" From 1b437f20218a2311bad7973ca29514facb4baedf Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Mon, 19 Feb 2024 13:12:30 +0000 Subject: [PATCH 113/136] Update RA-ConditionCategory.fsh --- input/fsh/valuesets/RA-ConditionCategory.fsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/input/fsh/valuesets/RA-ConditionCategory.fsh b/input/fsh/valuesets/RA-ConditionCategory.fsh index 70704de..c7ab478 100644 --- a/input/fsh/valuesets/RA-ConditionCategory.fsh +++ b/input/fsh/valuesets/RA-ConditionCategory.fsh @@ -1,8 +1,8 @@ -ValueSet: ValueSet-England-ConditionCategory -Id: ValueSet-England-ConditionCategoryy -Title: "Care Connect Condition Category" +ValueSet: RA-ConditionCategoryy +Id: RA-ConditionCategory +Title: "Reasonable Adjustments Record Condition Category" Description: " A ValueSet to identify the category of a condition." -* ^url = "https://fhir.hl7.org.uk/England/ValueSet/CareConnect-ConditionCategory" +* ^url = "https://fhir.hl7.org.uk/England/ValueSet/RA-ConditionCategory" * ^version = "1.0.0" * ^status = #draft * ^date = "2024-02-14" From 9e9b6fd3e1a8f8cec81f814476b5830ab853cf6c Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Mon, 19 Feb 2024 13:43:44 +0000 Subject: [PATCH 114/136] Update RA-ConsentPurpose.fsh --- input/fsh/valuesets/RA-ConsentPurpose.fsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/fsh/valuesets/RA-ConsentPurpose.fsh b/input/fsh/valuesets/RA-ConsentPurpose.fsh index d3e6f50..99f8d9f 100644 --- a/input/fsh/valuesets/RA-ConsentPurpose.fsh +++ b/input/fsh/valuesets/RA-ConsentPurpose.fsh @@ -2,7 +2,7 @@ ValueSet: RA-ConsentPurpose Id: RA-ConsentPurpose Title: "Reasonable Adjustments Consent Purpose" Description: " A ValueSet to identify the purpose of a consent given." -* ^url = "https://fhir.nhs.uk/England/ValueSet/RA-ConsentPurpose-" +* ^url = "https://fhir.nhs.uk/England/ValueSet/RA-ConsentPurpose" * ^version = "1.0.0" * ^status = #draft * ^date = "2024-02-14" From f3734d3e2ebd3e4bcaaf32068cd992fc2acb2b54 Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Mon, 19 Feb 2024 13:45:15 +0000 Subject: [PATCH 115/136] Update RA-ConditionCategory.fsh --- input/fsh/codesystem/RA-ConditionCategory.fsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/input/fsh/codesystem/RA-ConditionCategory.fsh b/input/fsh/codesystem/RA-ConditionCategory.fsh index e5705da..3bb71af 100644 --- a/input/fsh/codesystem/RA-ConditionCategory.fsh +++ b/input/fsh/codesystem/RA-ConditionCategory.fsh @@ -1,6 +1,6 @@ CodeSystem: RA-ConditionCategory Id: RA-ConditionCategory -Title: "Care Connect Condition Category" +Title: "Reasonable Adjustments Record Condition Category" Description: " A CodeSystem to identify the category of a condition.." * ^url = "https://fhir.hl7.org.uk/England/CodeSystem/RA-ConditionCategory" * ^version = "1.0.0" @@ -19,4 +19,4 @@ Description: " A CodeSystem to identify the category of a condition.." * #encounter-diagnosis "Encounter Diagnosis" * #presenting-complaint "Presenting Complaint" * #co-morbidity "Co-morbidity" -* #issue "Issue" \ No newline at end of file +* #issue "Issue" From 7743917b37cca9ec6dbc21cf05df463e4ecdf578 Mon Sep 17 00:00:00 2001 From: Declan Kieran Date: Tue, 20 Feb 2024 11:36:56 +0000 Subject: [PATCH 116/136] SearchParameters not being index quickly enough, add call to -all-resources-for-reindexing --- scripts/run-examples.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/run-examples.sh b/scripts/run-examples.sh index 74bc367..7e75494 100755 --- a/scripts/run-examples.sh +++ b/scripts/run-examples.sh @@ -41,6 +41,9 @@ for file in $(find {$FSH_EXAMPLES_DIR,$QUERIES_DIR} -type f | sort -t\/ -k4); do fi; curl -X POST -H $HEADERS -d @$GENERATED $SERVER_BASE$RESOURCE_NAME; + + # Give the HAPI server a nudge to index SearchParameters + curl -X POST $SERVER_BASE\$mark-all-resources-for-reindexing ;; $QUERIES_DIR) From 31b52b5296429e9502a5acce50d5952cf0c33bb4 Mon Sep 17 00:00:00 2001 From: Declan Kieran Date: Tue, 20 Feb 2024 14:24:26 +0000 Subject: [PATCH 117/136] Always run SearchParameters first --- .../FlagCategory.fsh} | 0 .../FlagCode.fsh} | 0 scripts/run-examples.sh | 13 ++++++++++--- 3 files changed, 10 insertions(+), 3 deletions(-) rename input/fsh/{examples/0001-FlagCategory-searchparameter.fsh => searchparameter/FlagCategory.fsh} (100%) rename input/fsh/{examples/0002-FlagCode-searchparameter.fsh => searchparameter/FlagCode.fsh} (100%) diff --git a/input/fsh/examples/0001-FlagCategory-searchparameter.fsh b/input/fsh/searchparameter/FlagCategory.fsh similarity index 100% rename from input/fsh/examples/0001-FlagCategory-searchparameter.fsh rename to input/fsh/searchparameter/FlagCategory.fsh diff --git a/input/fsh/examples/0002-FlagCode-searchparameter.fsh b/input/fsh/searchparameter/FlagCode.fsh similarity index 100% rename from input/fsh/examples/0002-FlagCode-searchparameter.fsh rename to input/fsh/searchparameter/FlagCode.fsh diff --git a/scripts/run-examples.sh b/scripts/run-examples.sh index 7e75494..49d64a5 100755 --- a/scripts/run-examples.sh +++ b/scripts/run-examples.sh @@ -13,6 +13,13 @@ sushi . SERVER_BASE="http://localhost:8080/fhir/" HEADERS="Content-type:application/fhir+json;fhirVersion=4.0" +# SearchParameters need to be loaded first, otherwise its likely they'll not have been indexed by the HAPI server +SEARCHPARAMETERS_DIR=fsh-generated/resources/SearchParameter* + +for file in $SEARCHPARAMETERS_DIR; do + curl -X POST -H $HEADERS -d @$file $SERVER_BASE/SearchParameter; +done + # TODO Parameterise this to make it general for sushi and standalone hl7 publisher, few other things would need tweaked as well... FSH_EXAMPLES_DIR=input/fsh/examples FSH_GENERATED_DIR=fsh-generated/resources @@ -30,6 +37,9 @@ for file in $(find {$FSH_EXAMPLES_DIR,$QUERIES_DIR} -type f | sort -t\/ -k4); do # Construct path to generated JSON resource - TODO this implies the id will be unique and not a subset of another... GENERATED=$(echo ./$FSH_GENERATED_DIR/*$EXAMPLE_ID*); + echo "---------------------"; + echo $GENERATED; + echo "---------------------"; # Sushi will prepend the name of the Resource, which will be used in the server calls. RESOURCE_NAME=$(echo $GENERATED | awk -F '/' '{print $4}' | awk -F '-' '{print $1}'); @@ -41,9 +51,6 @@ for file in $(find {$FSH_EXAMPLES_DIR,$QUERIES_DIR} -type f | sort -t\/ -k4); do fi; curl -X POST -H $HEADERS -d @$GENERATED $SERVER_BASE$RESOURCE_NAME; - - # Give the HAPI server a nudge to index SearchParameters - curl -X POST $SERVER_BASE\$mark-all-resources-for-reindexing ;; $QUERIES_DIR) From 6f602a9ac1ce2f12e3ca7a181b2537355e8961c6 Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Thu, 22 Feb 2024 22:12:53 +0000 Subject: [PATCH 118/136] Feature/gh pages (#11) * publish to github pages * add separate deply job * deploy still needs artefact uploaded * only deploy on write to development * separate build and deploy into different workflows --------- Co-authored-by: Declan Kieran --- .github/workflows/deploy.yml | 28 ++++++++++++++++++++++++++++ .github/workflows/publish.yml | 10 ++++++++++ 2 files changed, 38 insertions(+) create mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..27f127e --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,28 @@ +name: Deploy IG to GitHub Pages +on: + workflow_run: + workflows: ["SUSHI Publish NHSE"] + branches: [development] + types: + - completed + +jobs: + # Deploy job (see docs https://github.com/actions/deploy-pages) + deploy: + + # Grant GITHUB_TOKEN the permissions required to make a Pages deployment + permissions: + pages: write # to deploy to Pages + id-token: write # to verify the deployment originates from an appropriate source + + # Deploy to the github-pages environment + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + # Specify runner + deployment step + runs-on: ubuntu-latest + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 # or specific "vX.X.X" version tag for this action \ No newline at end of file diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index fd63faf..d973db5 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -55,6 +55,16 @@ jobs: name: IG Archive path: ./output/ + - name: Prepare files for GitHub Pages + run: | + cp -r output _site; + chmod -c -R +rX "_site/" | while read line; do + echo "::warning title=Invalid file permissions automatically fixed::$line" + done + + - name: Publish IG to GitHub Pages + uses: actions/upload-pages-artifact@v3 + - name: Cache Node modules uses: actions/cache@v3 with: From dbac5124edbc0c065a74e882b08ea1684e8035cd Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Thu, 22 Feb 2024 22:49:19 +0000 Subject: [PATCH 119/136] Feature/gh pages (#12) * publish to github pages * add separate deply job * deploy still needs artefact uploaded * only deploy on write to development * separate build and deploy into different workflows * revert to single workflow --------- Co-authored-by: Declan Kieran --- .github/workflows/publish.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d973db5..aa26c35 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -70,3 +70,26 @@ jobs: with: path: ~/.npm key: ${{ runner.os }}--build-cache-npm-packages-${{ hashFiles('**/package-lock.json') }} + + # Deploy job (https://github.com/actions/deploy-pages) + deploy: + # Add a dependency to the build job + needs: build + # Only deploy on development branch + if: github.ref == 'refs/heads/development' + # Grant GITHUB_TOKEN the permissions required to make a Pages deployment + permissions: + pages: write # to deploy to Pages + id-token: write # to verify the deployment originates from an appropriate source + + # Deploy to the github-pages environment + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + # Specify runner + deployment step + runs-on: ubuntu-latest + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 # or specific "vX.X.X" version tag for this action From f7f940164d0e9ae43dcc7b43f2038e69c04b6900 Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Fri, 23 Feb 2024 08:29:03 +0000 Subject: [PATCH 120/136] Delete .github/workflows/deploy.yml Wasn't removed in previous commit --- .github/workflows/deploy.yml | 28 ---------------------------- 1 file changed, 28 deletions(-) delete mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index 27f127e..0000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Deploy IG to GitHub Pages -on: - workflow_run: - workflows: ["SUSHI Publish NHSE"] - branches: [development] - types: - - completed - -jobs: - # Deploy job (see docs https://github.com/actions/deploy-pages) - deploy: - - # Grant GITHUB_TOKEN the permissions required to make a Pages deployment - permissions: - pages: write # to deploy to Pages - id-token: write # to verify the deployment originates from an appropriate source - - # Deploy to the github-pages environment - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - - # Specify runner + deployment step - runs-on: ubuntu-latest - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 # or specific "vX.X.X" version tag for this action \ No newline at end of file From b90fed1968e4a4c10890eaf46507ba3cb6740dd3 Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Mon, 26 Feb 2024 11:22:23 +0000 Subject: [PATCH 121/136] Feature/structuredefinitions (#14) * add profiles, extensions etc. * add contained provenance to condition profile --------- Co-authored-by: Declan Kieran --- .../fsh/codesystem/RA-AdjustmentCategory.fsh | 14 +- input/fsh/codesystem/RA-ConditionCategory.fsh | 16 +- input/fsh/codesystem/RA-ConditionCode.fsh | 14 +- input/fsh/codesystem/RA-ConsentPurpose.fsh | 14 +- input/fsh/codesystem/RA-FlagCategory.fsh | 14 +- input/fsh/codesystem/RA-ProxyRole | 19 + .../extensions/Extension-AdjustmentNotes.fsh | 16 + .../Extension-ConsentCreateSummary.fsh | 16 + .../Extension-RemoveCreateSummary.fsh | 16 + input/fsh/profiles/RA-Condition.fsh | 26 + input/fsh/profiles/RA-Consent.fsh | 39 ++ input/fsh/profiles/RA-Flag.fsh | 36 ++ input/fsh/profiles/RA-Provenance.fsh | 20 + .../NHSEngland-PublisherContactCopyright.fsh | 16 + input/fsh/searchparameter/FlagCategory.fsh | 12 +- input/fsh/searchparameter/FlagCode.fsh | 12 +- input/fsh/searchparameter/FlagDetail.fsh | 21 + input/fsh/valuesets/RA-AdjustmentCategory.fsh | 14 +- input/fsh/valuesets/RA-ConditionCategory.fsh | 26 +- input/fsh/valuesets/RA-ConditionCode.fsh | 14 +- input/fsh/valuesets/RA-ConsentPurpose.fsh | 16 +- input/fsh/valuesets/RA-FlagCategory.fsh | 4 +- input/fsh/valuesets/RA-FlagCode.fsh | 2 +- input/fsh/valuesets/RA-ProvenanceRole.fsh | 489 ++++++++++++++++++ input/fsh/valuesets/RA-ProxyRole | 28 + 25 files changed, 825 insertions(+), 89 deletions(-) create mode 100644 input/fsh/codesystem/RA-ProxyRole create mode 100644 input/fsh/extensions/Extension-AdjustmentNotes.fsh create mode 100644 input/fsh/extensions/Extension-ConsentCreateSummary.fsh create mode 100644 input/fsh/extensions/Extension-RemoveCreateSummary.fsh create mode 100644 input/fsh/profiles/RA-Condition.fsh create mode 100644 input/fsh/profiles/RA-Consent.fsh create mode 100644 input/fsh/profiles/RA-Flag.fsh create mode 100644 input/fsh/profiles/RA-Provenance.fsh create mode 100644 input/fsh/rulesets/NHSEngland-PublisherContactCopyright.fsh create mode 100644 input/fsh/searchparameter/FlagDetail.fsh create mode 100644 input/fsh/valuesets/RA-ProvenanceRole.fsh create mode 100644 input/fsh/valuesets/RA-ProxyRole diff --git a/input/fsh/codesystem/RA-AdjustmentCategory.fsh b/input/fsh/codesystem/RA-AdjustmentCategory.fsh index 865ee19..2d15c1f 100644 --- a/input/fsh/codesystem/RA-AdjustmentCategory.fsh +++ b/input/fsh/codesystem/RA-AdjustmentCategory.fsh @@ -2,17 +2,15 @@ CodeSystem: RA-AdjustmentCategory Id: RA-AdjustmentCategory Title: "Reasonable Adjustments Record Adjustment Category" Description: "A CodeSystem to identify the category of the Adjustment required" + +* ^name = "Reasonable Adjustments Record Adjustment Category" * ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" -* ^version = "1.0.0" +* ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 2 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." + +* insert NHSEngland-PublisherContactCopyright + * ^caseSensitive = true * ^content = #complete * #001 "Communication support" diff --git a/input/fsh/codesystem/RA-ConditionCategory.fsh b/input/fsh/codesystem/RA-ConditionCategory.fsh index 3bb71af..4752963 100644 --- a/input/fsh/codesystem/RA-ConditionCategory.fsh +++ b/input/fsh/codesystem/RA-ConditionCategory.fsh @@ -2,17 +2,15 @@ CodeSystem: RA-ConditionCategory Id: RA-ConditionCategory Title: "Reasonable Adjustments Record Condition Category" Description: " A CodeSystem to identify the category of a condition.." -* ^url = "https://fhir.hl7.org.uk/England/CodeSystem/RA-ConditionCategory" -* ^version = "1.0.0" + +* ^name = "Reasonable Adjustments Record Condition Category" +* ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCategory" +* ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 2 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." + +* insert NHSEngland-PublisherContactCopyright + * ^caseSensitive = true * ^content = #complete * #problem-list-item "Problem List Item" diff --git a/input/fsh/codesystem/RA-ConditionCode.fsh b/input/fsh/codesystem/RA-ConditionCode.fsh index ac02a5e..f6dfce9 100644 --- a/input/fsh/codesystem/RA-ConditionCode.fsh +++ b/input/fsh/codesystem/RA-ConditionCode.fsh @@ -2,17 +2,15 @@ CodeSystem: RA-ConditionCode Id: RA-ConditionCode Title: "Reasonable Adjustments Record Condition Code" Description: "A CodeSystem to identify the SNOMED-CT concept representing an Impairment recorded as part of a Reasonable Adjustment" + +* ^name = "Reasonable Adjustments Record Condition Code" * ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCode" -* ^version = "1.0.0" +* ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 2 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." + +* insert NHSEngland-PublisherContactCopyright + * ^caseSensitive = true * ^content = #complete * #1 "Vision (for example blindness or partial sight)" diff --git a/input/fsh/codesystem/RA-ConsentPurpose.fsh b/input/fsh/codesystem/RA-ConsentPurpose.fsh index 1c56f53..2551665 100644 --- a/input/fsh/codesystem/RA-ConsentPurpose.fsh +++ b/input/fsh/codesystem/RA-ConsentPurpose.fsh @@ -2,17 +2,15 @@ CodeSystem: RA-ConsentPurpose Id: RA-ConsentPurpose Title: "Reasonable Adjustments Record Consent Purpose" Description: "A CodeSystem to identify the purpose of the consent given" + +* ^name = "Reasonable Adjustments Record Consent Purpose" * ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-ConsentPurpose" -* ^version = "1.0.0" +* ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 2 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." + +* insert NHSEngland-PublisherContactCopyright + * ^caseSensitive = true * ^content = #complete * #RACONSENT "Reasonable Adjustments - Consent to record Reasonable Adjustments" diff --git a/input/fsh/codesystem/RA-FlagCategory.fsh b/input/fsh/codesystem/RA-FlagCategory.fsh index 85fdd40..632acb7 100644 --- a/input/fsh/codesystem/RA-FlagCategory.fsh +++ b/input/fsh/codesystem/RA-FlagCategory.fsh @@ -2,17 +2,15 @@ CodeSystem: RA-FlagCategory Id: RA-FlagCategory Title: "Reasonable Adjustments Record Flag Category" Description: " A CodeSystem to identify the type/category of Flag." + +* ^name = "Reasonable Adjustments Record Flag Category" * ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory" -* ^version = "1.0.0" +* ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 2 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." + +* insert NHSEngland-PublisherContactCopyright + * ^caseSensitive = true * ^content = #complete * #NRAF "National Reasonable Adjustments Flag" diff --git a/input/fsh/codesystem/RA-ProxyRole b/input/fsh/codesystem/RA-ProxyRole new file mode 100644 index 0000000..6d0ccd9 --- /dev/null +++ b/input/fsh/codesystem/RA-ProxyRole @@ -0,0 +1,19 @@ +CodeSystem: RA-ProxyRole +Id: RA-ProxyRole +Title: "Reasonable Adjustments Record Proxy Role" +Description: "A CodeSystem to identify the type/role of the proxy involved" + +* ^name = "Reasonable Adjustments Record Proxy Role" +* ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-ProxyRole" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" + +* insert NHSEngland-PublisherContactCopyright + +* ^caseSensitive = true +* ^content = #complete +* #001 "Patient consent" +* #002 "Best interest decision made on behalf of the patient (Mental Capacity Act 2005)" +* #003 "Lasting power of attorney for health and welfare, or court-appointed deputy, or equivalent" +* #004 "Other legitimate patient representative - parental responsibility" \ No newline at end of file diff --git a/input/fsh/extensions/Extension-AdjustmentNotes.fsh b/input/fsh/extensions/Extension-AdjustmentNotes.fsh new file mode 100644 index 0000000..72b52e2 --- /dev/null +++ b/input/fsh/extensions/Extension-AdjustmentNotes.fsh @@ -0,0 +1,16 @@ +Extension: Extension-AdjustmentNotes +Id: Extension-AdjustmentNotes +Title: "Extension for Flag Adjustment Notes" +Description: "Captures the additional information for an Adjustment within a Reasonable Adjustment Flag." +Context: Flag + +* ^purpose = "Additional information required to correctly or effectively interpret an Adjustment." +* ^url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-AdjustmentNotes" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" + +* insert NHSEngland-PublisherContactCopyright + +* value[x] 1.. +* value[x] only Annotation \ No newline at end of file diff --git a/input/fsh/extensions/Extension-ConsentCreateSummary.fsh b/input/fsh/extensions/Extension-ConsentCreateSummary.fsh new file mode 100644 index 0000000..0ac7feb --- /dev/null +++ b/input/fsh/extensions/Extension-ConsentCreateSummary.fsh @@ -0,0 +1,16 @@ +Extension: Extension-ConsentCreateSummary +Id: Extension-ConsentCreateSummary +Title: "Extension for Consent Create Summary" +Description: "Captures the additional information for a Best Interest decison when recording consent for a Reasonable Adjustment Flag." +Context: Consent + +* ^purpose = "Captures the additional information for a Best Interest decison when recording consent for a Reasonable Adjustment Flag." +* ^url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentCreateSummary" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" + +* insert NHSEngland-PublisherContactCopyright + +* value[x] 1.. +* value[x] only Annotation \ No newline at end of file diff --git a/input/fsh/extensions/Extension-RemoveCreateSummary.fsh b/input/fsh/extensions/Extension-RemoveCreateSummary.fsh new file mode 100644 index 0000000..c49c48b --- /dev/null +++ b/input/fsh/extensions/Extension-RemoveCreateSummary.fsh @@ -0,0 +1,16 @@ +Extension: Extension-ConsentRemoveSummary +Id: Extension-ConsentRemoveSummary +Title: "Extension for Consent Remove Summary" +Description: "Captures the additional information for a Best Interest decison when removing consent for a Reasonable Adjustment Flag." +Context: Consent + +* ^purpose = "Captures the additional information for a Best Interest decison when removing consent for a Reasonable Adjustment Flag." +* ^url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentRemoveSummary" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" + +* insert NHSEngland-PublisherContactCopyright + +* value[x] 1.. +* value[x] only Annotation \ No newline at end of file diff --git a/input/fsh/profiles/RA-Condition.fsh b/input/fsh/profiles/RA-Condition.fsh new file mode 100644 index 0000000..d9f3e8c --- /dev/null +++ b/input/fsh/profiles/RA-Condition.fsh @@ -0,0 +1,26 @@ +Alias: $ValueSetRAConditionCategory = https://fhir.nhs.uk/England/ValueSet/RA-ConditionCategory +Alias: $ValueSetRAConditionCode = https://fhir.nhs.uk/England/ValueSet/RA-ConditionCode + +Profile: RA-Condition +Parent: Condition +Id: RA-Condition +Title: "Reasonable Adjustments Condition Profile" +Description: "To (optionally) record an individual Condition for a Reasonable Adjustment Flag" + +* ^url = "https://fhir.nhs.uk/England/StructureDefinition/RA-Condition" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" + +* contained ^slicing.discriminator.type = #profile +* contained ^slicing.rules = #open +* contained ^slicing.discriminator.path = "contained" +* contained contains provenance 1..1 +* contained[provenance] only RA-Provenance + +* insert NHSEngland-PublisherContactCopyright + +* category 1.. MS +* category from $ValueSetRAConditionCategory (required) +* code 1.. MS +* code from $ValueSetRAConditionCode (extensible) \ No newline at end of file diff --git a/input/fsh/profiles/RA-Consent.fsh b/input/fsh/profiles/RA-Consent.fsh new file mode 100644 index 0000000..4c81527 --- /dev/null +++ b/input/fsh/profiles/RA-Consent.fsh @@ -0,0 +1,39 @@ +Profile: RA-Consent +Parent: Consent +Id: RA-Consent +Title: "Reasonable Adjustments Consent Profile" +Description: "To record consent to capture Reasonable Adjustments and Reasons for Reasonable Adjustments data" + +* ^url = "https://fhir.nhs.uk/England/StructureDefinition/RA-Consent" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" + +* insert NHSEngland-PublisherContactCopyright + +* extension contains + Extension-ConsentCreateSummary named createSummary 0..1 and + Extension-ConsentRemoveSummary named removeSummary 0..1 + +* extension[createSummary].value[x] only Annotation +* extension[createSummary].valueAnnotation 1.. + +* extension[removeSummary].value[x] only Annotation +* extension[removeSummary].valueAnnotation 1.. + +* contained ^slicing.discriminator.type = #profile +* contained ^slicing.rules = #open +* contained ^slicing.discriminator.path = "contained" +* contained contains provenance 1..1 +* contained[provenance] only RA-Provenance + +* category from $ValueSetRAFlagCategory (extensible) +* policy 1..1 +* policy.uri 1.. +* policyRule 1.. +* policyRule from https://fhir.nhs.uk/England/ValueSet/RA-ProxyRole (extensible) +* performer ..1 +* performer only Reference(Organization or Patient or Practitioner) +* provision.purpose 1..1 +* provision.purpose from RA-ConsentPurpose (extensible) + diff --git a/input/fsh/profiles/RA-Flag.fsh b/input/fsh/profiles/RA-Flag.fsh new file mode 100644 index 0000000..9526ea0 --- /dev/null +++ b/input/fsh/profiles/RA-Flag.fsh @@ -0,0 +1,36 @@ +Alias: $ValueSetRAFlagCategory = https://fhir.nhs.uk/England/ValueSet/RA-FlagCategory +Alias: $ValueSetRAFlagCode = https://fhir.nhs.uk/England/ValueSet/RA-FlagCode +Alias: $ExtensionFlagDetail = http://hl7.org/fhir/StructureDefinition/flag-detail + +Profile: RA-Flag +Parent: Flag +Id: RA-Flag +Title: "Reasonable Adjustments Flag Profile" +Description: "To (optionally) record an individual Adjustment for a Reasonable Adjustment Flag" + +* ^url = "https://fhir.nhs.uk/England/StructureDefinition/RA-Flag" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" + +* insert NHSEngland-PublisherContactCopyright + +* extension contains + Extension-AdjustmentNotes named adjustmentNotes 0..1 and + $ExtensionFlagDetail named flagDetail 0..* + +* extension[adjustmentNotes].value[x] only Annotation +* extension[adjustmentNotes].valueAnnotation 1.. + +* extension[flagDetail].valueReference only Reference(RA-Flag or RA-Consent or RA-Provenance) + +* contained ^slicing.discriminator.type = #profile +* contained ^slicing.rules = #open +* contained ^slicing.discriminator.path = "contained" +* contained contains provenance 1..1 +* contained[provenance] only RA-Provenance + +* category 1.. MS +* category from $ValueSetRAFlagCategory (required) +* code MS +* code from $ValueSetRAFlagCode (extensible) diff --git a/input/fsh/profiles/RA-Provenance.fsh b/input/fsh/profiles/RA-Provenance.fsh new file mode 100644 index 0000000..ab8617a --- /dev/null +++ b/input/fsh/profiles/RA-Provenance.fsh @@ -0,0 +1,20 @@ +Alias: $ValueSetRAProvenanceRole = https://fhir.nhs.uk/England/ValueSet/RA-ProvenanceRole + +Profile: RA-Provenance +Parent: Provenance +Id: RA-Provenance +Title: "Reasonable Adjustments Provenance Profile" +Description: "To record details of the practitioner recording or removing an individual item (Consent, Adjustment or Impairment) within a Reasonable Adjustment Flag." + +* ^url = "https://fhir.nhs.uk/England/StructureDefinition/RA-Provenance" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" + +* insert NHSEngland-PublisherContactCopyright + +* target only Reference(Condition or RA-Consent or RA-Flag) +* agent.role from $ValueSetRAProvenanceRole (extensible) +* agent.who only Reference(Practitioner) +* agent.onBehalfOf only Reference(Organization) + diff --git a/input/fsh/rulesets/NHSEngland-PublisherContactCopyright.fsh b/input/fsh/rulesets/NHSEngland-PublisherContactCopyright.fsh new file mode 100644 index 0000000..670fd0d --- /dev/null +++ b/input/fsh/rulesets/NHSEngland-PublisherContactCopyright.fsh @@ -0,0 +1,16 @@ +RuleSet: NHSEngland-PublisherContactCopyright +* ^publisher = "NHS England" +* ^contact[0].name = "NHS England" +* ^contact[=].telecom[0].system = #email +* ^contact[=].telecom[=].value = "interoperabilityteam@nhs.net" +* ^contact[=].telecom[=].use = #work +* ^contact[=].telecom[=].rank = 1 +* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." + +RuleSet: NHSEngland-PublisherContactCopyright-Instance +* publisher = "NHS England" +* contact[0].name = "NHS England" +* contact[=].telecom[0].system = #email +* contact[=].telecom[=].value = "interoperabilityteam@nhs.net" +* contact[=].telecom[=].use = #work +* contact[=].telecom[=].rank = 1 diff --git a/input/fsh/searchparameter/FlagCategory.fsh b/input/fsh/searchparameter/FlagCategory.fsh index 8e617dd..3d86774 100644 --- a/input/fsh/searchparameter/FlagCategory.fsh +++ b/input/fsh/searchparameter/FlagCategory.fsh @@ -1,11 +1,17 @@ Instance: FlagCategory InstanceOf: SearchParameter +Title: "SearchParameter for Category in Flag" Usage: #definition +Description: "Search by category in the Flag resource" + +* name = "SearchParameter for Category in Flag" * url = "http://localhost:8080/fhir/SearchParameter/FlagCategory" -* version = "1" -* name = "Search for Flag.category" +* version = "0.1.0" * status = #active -* description = "Search by category in the Flag resource" +* date = "2024-02-14" + +* insert NHSEngland-PublisherContactCopyright-Instance + * code = #category * base = #Flag * type = #token diff --git a/input/fsh/searchparameter/FlagCode.fsh b/input/fsh/searchparameter/FlagCode.fsh index a6c2e09..decb4c9 100644 --- a/input/fsh/searchparameter/FlagCode.fsh +++ b/input/fsh/searchparameter/FlagCode.fsh @@ -1,11 +1,17 @@ Instance: FlagCode InstanceOf: SearchParameter +Title: "SearchParameter for Code in Flag" Usage: #definition +Description: "Search by code in the Flag resource" + +* name = "SearchParameter for Code in Flag" * url = "http://localhost:8080/fhir/SearchParameter/FlagCode" -* version = "1" -* name = "Search for Flag.code" +* version = "0.1.0" * status = #active -* description = "Search by code in the Flag resource" +* date = "2024-02-14" + +* insert NHSEngland-PublisherContactCopyright-Instance + * code = #code * base = #Flag * type = #token diff --git a/input/fsh/searchparameter/FlagDetail.fsh b/input/fsh/searchparameter/FlagDetail.fsh new file mode 100644 index 0000000..cbe8190 --- /dev/null +++ b/input/fsh/searchparameter/FlagDetail.fsh @@ -0,0 +1,21 @@ +Instance: FlagDetail +InstanceOf: SearchParameter +Title: "SearchParameter for Condition, Flag or Consent resources in the flag-detail extension" +Usage: #definition +Description: "Search using extension for flag detail extension in Flag resource" + +* name = "SearchParameter for flag detail extension used in Flag" +* url = "http://localhost:8080/fhir/SearchParameter/FlagDetail" +* version = "0.1.0" +* status = #active +* date = "2024-02-14" + +* insert NHSEngland-PublisherContactCopyright-Instance + +* code = #detail +* base = #Flag +* type = #reference +* expression = "Flag.extension('http://hl7.org/fhir/StructureDefinition/flag-detail')" +* target[0] = #Condition +* target[+] = #Flag +* target[+] = #Consent \ No newline at end of file diff --git a/input/fsh/valuesets/RA-AdjustmentCategory.fsh b/input/fsh/valuesets/RA-AdjustmentCategory.fsh index 7b57924..e7e9756 100644 --- a/input/fsh/valuesets/RA-AdjustmentCategory.fsh +++ b/input/fsh/valuesets/RA-AdjustmentCategory.fsh @@ -2,17 +2,15 @@ ValueSet: RA-AdjustmentCategory Id: RA-AdjustmentCategory Title: "Reasonable Adjustments Record Adjustment Category" Description: "A ValueSet to identify the category of a Reasonable Adjustment" + +* ^name = "Reasonable Adjustments Record Adjustment Category" * ^url = "https://fhir.nhs.uk/England/ValueSet/RA-AdjustmentCategory" -* ^version = "1.0.0" +* ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." + +* insert NHSEngland-PublisherContactCopyright + * ^expansion.timestamp = "2024-02-14T12:00:00+00:00" * ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" * ^expansion.contains[=].code = #001 diff --git a/input/fsh/valuesets/RA-ConditionCategory.fsh b/input/fsh/valuesets/RA-ConditionCategory.fsh index c7ab478..4b8bad9 100644 --- a/input/fsh/valuesets/RA-ConditionCategory.fsh +++ b/input/fsh/valuesets/RA-ConditionCategory.fsh @@ -2,30 +2,28 @@ ValueSet: RA-ConditionCategoryy Id: RA-ConditionCategory Title: "Reasonable Adjustments Record Condition Category" Description: " A ValueSet to identify the category of a condition." -* ^url = "https://fhir.hl7.org.uk/England/ValueSet/RA-ConditionCategory" -* ^version = "1.0.0" + +* ^name = "Reasonable Adjustments Record Condition Category" +* ^url = "https://fhir.nhs.uk/England/ValueSet/RA-ConditionCategory" +* ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." + +* insert NHSEngland-PublisherContactCopyright + * ^expansion.timestamp = "2024-02-14T12:00:00+00:00" -* ^expansion.contains[0].system = "https://fhir.hl7.org.uk/England/CodeSystem/RA-ConditionCategory" +* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCategory" * ^expansion.contains[=].code = #encounter-diagnosis * ^expansion.contains[=].display = "Encounter Diagnosis" -* ^expansion.contains[+].system = "https://fhir.hl7.org.uk/England/CodeSystem/RA-ConditionCategory" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCategory" * ^expansion.contains[=].code = #issue * ^expansion.contains[=].display = "Issue" -* ^expansion.contains[+].system = "https://fhir.hl7.org.uk/England/CodeSystem/RA-ConditionCategory" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCategory" * ^expansion.contains[=].code = #co-morbidity * ^expansion.contains[=].display = "Co-morbidity" -* ^expansion.contains[+].system = "https://fhir.hl7.org.uk/England/CodeSystem/RA-ConditionCategory" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCategory" * ^expansion.contains[=].code = #presenting-complaint * ^expansion.contains[=].display = "Presenting Complaint" -* ^expansion.contains[+].system = "https://fhir.hl7.org.uk/England/CodeSystem/RA-ConditionCategory" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCategory" * ^expansion.contains[=].code = #problem-list-item * ^expansion.contains[=].display = "Problem List Item" diff --git a/input/fsh/valuesets/RA-ConditionCode.fsh b/input/fsh/valuesets/RA-ConditionCode.fsh index bb4d56f..5eb5da1 100644 --- a/input/fsh/valuesets/RA-ConditionCode.fsh +++ b/input/fsh/valuesets/RA-ConditionCode.fsh @@ -2,17 +2,15 @@ ValueSet: RA-ConditionCode Id: RA-ConditionCode Title: "Reasonable Adjustments Record Condition Code" Description: "A ValueSet to identify the SNOMED-CT concept representing an Impairment recorded as part of a Reasonable Adjustment" + +* ^name = "Reasonable Adjustments Record Condition Code" * ^url = "https://fhir.nhs.uk/England/ValueSet/RA-ConditionCode" -* ^version = "1.0.0" +* ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." + +* insert NHSEngland-PublisherContactCopyright + * ^expansion.timestamp = "2024-02-14T12:00:00+00:00" * ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" * ^expansion.contains[=].code = #1 diff --git a/input/fsh/valuesets/RA-ConsentPurpose.fsh b/input/fsh/valuesets/RA-ConsentPurpose.fsh index 99f8d9f..a91fee9 100644 --- a/input/fsh/valuesets/RA-ConsentPurpose.fsh +++ b/input/fsh/valuesets/RA-ConsentPurpose.fsh @@ -1,18 +1,16 @@ ValueSet: RA-ConsentPurpose Id: RA-ConsentPurpose Title: "Reasonable Adjustments Consent Purpose" -Description: " A ValueSet to identify the purpose of a consent given." +Description: "A ValueSet to identify the purpose of a consent given." + +* ^name = "Reasonable Adjustments Record Consent Purpose" * ^url = "https://fhir.nhs.uk/England/ValueSet/RA-ConsentPurpose" -* ^version = "1.0.0" +* ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." + +* insert NHSEngland-PublisherContactCopyright + * ^expansion.timestamp = "2024-02-14T12:00:00+00:00" * ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConsentPurpose" * ^expansion.contains[=].code = #RACONSENT diff --git a/input/fsh/valuesets/RA-FlagCategory.fsh b/input/fsh/valuesets/RA-FlagCategory.fsh index 0aa4a19..68a0741 100644 --- a/input/fsh/valuesets/RA-FlagCategory.fsh +++ b/input/fsh/valuesets/RA-FlagCategory.fsh @@ -2,8 +2,8 @@ ValueSet: RA-FlagCategory Id: RA-FlagCategory Title: "Reasonable Adjustments Record Flag Category" Description: "A ValueSet to identify the type/category of Flag." -* ^url = "https://fhir.nhs.uk/STU3/ValueSet/RA-FlagCategory" -* ^version = "1.0.0" +* ^url = "https://fhir.nhs.uk/England/ValueSet/RA-FlagCategory" +* ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" * ^publisher = "NHS England" diff --git a/input/fsh/valuesets/RA-FlagCode.fsh b/input/fsh/valuesets/RA-FlagCode.fsh index 648ba12..9b29db2 100644 --- a/input/fsh/valuesets/RA-FlagCode.fsh +++ b/input/fsh/valuesets/RA-FlagCode.fsh @@ -3,7 +3,7 @@ Id: RA-FlagCode Title: "Reasonable Adjustments Record Flag Code" Description: "A ValueSet to identify codes representing Adjustments required for a patient" * ^url = "https://fhir.nhs.uk/England/ValueSet/RA-FlagCode" -* ^version = "1.0.0" +* ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" * ^publisher = "NHS England" diff --git a/input/fsh/valuesets/RA-ProvenanceRole.fsh b/input/fsh/valuesets/RA-ProvenanceRole.fsh new file mode 100644 index 0000000..34c12dc --- /dev/null +++ b/input/fsh/valuesets/RA-ProvenanceRole.fsh @@ -0,0 +1,489 @@ +Alias: $contractsignertypecodes = http://www.hl7.org/fhir/contractsignertypecodes +Alias: $RoleClass = http://hl7.org/fhir/v3/RoleClass +Alias: $RoleCode = http://hl7.org/fhir/v3/RoleCode +Alias: $ParticipationFunction = http://hl7.org/fhir/v3/ParticipationFunction +Alias: $ParticipationType = http://hl7.org/fhir/v3/ParticipationType +Alias: $extra-security-role-type = http://hl7.org/fhir/extra-security-role-type + +ValueSet: RA-ProvenanceRole +Id: RA-ProvenanceRole +Description: "A ValueSet to identify the role in which someone recording provenance is acting" +* ^name = "ReasonableAdjustmentsProvenanceRole" +* ^url = "https://fhir.nhs.uk/England/ValueSet/RA-ProvenanceRole" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^publisher = "NHS England" +* ^contact.name = "NHS England" +* ^contact.telecom.system = #email +* ^contact.telecom.value = "interoperabilityteam@nhs.net" +* ^contact.telecom.use = #work +* ^contact.telecom.rank = 1 +* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." +* $CareConnect-SDSJobRoleName-1#R0010 "Medical Director" +* $CareConnect-SDSJobRoleName-1#R0020 "Clinical Director - Medical" +* $CareConnect-SDSJobRoleName-1#R0210 "Director of Public Health" +* $CareConnect-SDSJobRoleName-1#R0030 "Professor" +* $CareConnect-SDSJobRoleName-1#R0040 "Senior Lecturer" +* $CareConnect-SDSJobRoleName-1#R0050 "Consultant" +* $CareConnect-SDSJobRoleName-1#R0060 "Special Salary Scale in Public Health Medicine" +* $CareConnect-SDSJobRoleName-1#R0070 "Associate Specialist" +* $CareConnect-SDSJobRoleName-1#R0080 "Staff Grade" +* $CareConnect-SDSJobRoleName-1#R0090 "Hospital Practitioner" +* $CareConnect-SDSJobRoleName-1#R0100 "Clinical Assistant" +* $CareConnect-SDSJobRoleName-1#R0110 "Specialist Registrar" +* $CareConnect-SDSJobRoleName-1#R0120 "Senior Registrar (Closed)" +* $CareConnect-SDSJobRoleName-1#R0130 "Registrar (Closed)" +* $CareConnect-SDSJobRoleName-1#R0140 "Senior House Officer" +* $CareConnect-SDSJobRoleName-1#R0150 "House Officer - Pre Registration" +* $CareConnect-SDSJobRoleName-1#R0160 "House Officer - Post Registration" +* $CareConnect-SDSJobRoleName-1#R0170 "Trust Grade Doctor - House Officer level" +* $CareConnect-SDSJobRoleName-1#R0180 "Trust Grade Doctor - SHO level" +* $CareConnect-SDSJobRoleName-1#R0190 "Trust Grade Doctor - Specialist Registrar level" +* $CareConnect-SDSJobRoleName-1#R0200 "Trust Grade Doctor - Career Grade level" +* $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* $CareConnect-SDSJobRoleName-1#R0270 "Salaried General Practitioner" +* $CareConnect-SDSJobRoleName-1#R1981 "Psychiatrist" +* $CareConnect-SDSJobRoleName-1#R1984 "Health Records Administrator" +* $CareConnect-SDSJobRoleName-1#R6200 "GP Registrar" +* $CareConnect-SDSJobRoleName-1#R6300 "Sessional GP" +* $CareConnect-SDSJobRoleName-1#R7140 "ODP" +* $CareConnect-SDSJobRoleName-1#R7150 "SODP" +* $CareConnect-SDSJobRoleName-1#R9100 "A&E Staff Nurse (Temporary) London Cluster Only" +* $CareConnect-SDSJobRoleName-1#R9101 "A&E Manager (Temporary) London Cluster Only" +* $CareConnect-SDSJobRoleName-1#R9102 "A&E Doctor (Temporary) London Cluster only" +* $CareConnect-SDSJobRoleName-1#R9103 "A&E Student (Temporary) London Cluster Only" +* $CareConnect-SDSJobRoleName-1#R9104 "A&E Clerk (Temporary) London Cluster Only" +* $CareConnect-SDSJobRoleName-1#R0215 "Assistant Clinical Medical Officer" +* $CareConnect-SDSJobRoleName-1#R0220 "Clinical Medical Officer" +* $CareConnect-SDSJobRoleName-1#R0230 "Senior Clinical Medical Officer" +* $CareConnect-SDSJobRoleName-1#R0240 "Other Community Health Service" +* $CareConnect-SDSJobRoleName-1#R0243 "Other Community Health Service - Social Care Worker" +* $CareConnect-SDSJobRoleName-1#R0247 "Other Community Health Service - Admin Clerk" +* $CareConnect-SDSJobRoleName-1#R0055 "Dental Surgeon acting as Hospital Consultant" +* $CareConnect-SDSJobRoleName-1#R0250 "General Dental Practitioner" +* $CareConnect-SDSJobRoleName-1#R0280 "Regional Dental Officer" +* $CareConnect-SDSJobRoleName-1#R0290 "Dental Clinical Director - Dental" +* $CareConnect-SDSJobRoleName-1#R0295 "Dental Assistant Clinical Director" +* $CareConnect-SDSJobRoleName-1#R0300 "Dental Officer" +* $CareConnect-SDSJobRoleName-1#R0310 "Senior Dental Officer" +* $CareConnect-SDSJobRoleName-1#R0320 "Salaried Dental Practitioner" +* $CareConnect-SDSJobRoleName-1#R0006 "Student Community Practitioner" +* $CareConnect-SDSJobRoleName-1#R0330 "Student Nurse - Adult Branch" +* $CareConnect-SDSJobRoleName-1#R0340 "Student Nurse - Child Branch" +* $CareConnect-SDSJobRoleName-1#R0350 "Student Nurse - Mental Health Branch" +* $CareConnect-SDSJobRoleName-1#R0360 "Student Nurse - Learning Disabilities Branch" +* $CareConnect-SDSJobRoleName-1#R0370 "Student Midwife" +* $CareConnect-SDSJobRoleName-1#R0380 "Student Health Visitor" +* $CareConnect-SDSJobRoleName-1#R0390 "Student District Nurse" +* $CareConnect-SDSJobRoleName-1#R0400 "Student School Nurse" +* $CareConnect-SDSJobRoleName-1#R0410 "Student Practice Nurse" +* $CareConnect-SDSJobRoleName-1#R0420 "Student Occupational Health Nurse" +* $CareConnect-SDSJobRoleName-1#R0430 "Student Community Paediatric Nurse" +* $CareConnect-SDSJobRoleName-1#R0440 "Student Community Mental Health Nurse" +* $CareConnect-SDSJobRoleName-1#R0450 "Student Community Learning Disabilities Nurse" +* $CareConnect-SDSJobRoleName-1#R0460 "Student Chiropodist" +* $CareConnect-SDSJobRoleName-1#R0470 "Student Dietitian" +* $CareConnect-SDSJobRoleName-1#R0480 "Student Occupational Therapist" +* $CareConnect-SDSJobRoleName-1#R0490 "Student Orthoptist" +* $CareConnect-SDSJobRoleName-1#R0500 "Student Physiotherapist" +* $CareConnect-SDSJobRoleName-1#R0510 "Student Radiographer - Diagnostic" +* $CareConnect-SDSJobRoleName-1#R0520 "Student Radiographer - Therapeutic" +* $CareConnect-SDSJobRoleName-1#R0530 "Student Speech & Language Therapist" +* $CareConnect-SDSJobRoleName-1#R0540 "Art, Music & Drama Student" +* $CareConnect-SDSJobRoleName-1#R0550 "Student Psychotherapist" +* $CareConnect-SDSJobRoleName-1#R6400 "Medical Student" +* $CareConnect-SDSJobRoleName-1#R0560 "Director of Nursing" +* $CareConnect-SDSJobRoleName-1#R0580 "Nurse Manager" +* $CareConnect-SDSJobRoleName-1#R0610 "Sister/Charge Nurse" +* $CareConnect-SDSJobRoleName-1#R1976 "Community Team Manager" +* $CareConnect-SDSJobRoleName-1#R0570 "Nurse Consultant" +* $CareConnect-SDSJobRoleName-1#R0600 "Specialist Nurse Practitioner" +* $CareConnect-SDSJobRoleName-1#R0620 "Staff Nurse" +* $CareConnect-SDSJobRoleName-1#R0630 "Enrolled Nurse" +* $CareConnect-SDSJobRoleName-1#R0690 "Community Practitioner" +* $CareConnect-SDSJobRoleName-1#R0700 "Community Nurse" +* $CareConnect-SDSJobRoleName-1#R1974 "Community Learning Disabilities Nurse" +* $CareConnect-SDSJobRoleName-1#R1975 "Community Mental Health Nurse" +* $CareConnect-SDSJobRoleName-1#R0590 "Modern Matron" +* $CareConnect-SDSJobRoleName-1#R1972 "Clinical Team Manager" +* $CareConnect-SDSJobRoleName-1#R0640 "Midwife - Consultant" +* $CareConnect-SDSJobRoleName-1#R0650 "Midwife - Specialist Practitioner" +* $CareConnect-SDSJobRoleName-1#R0660 "Midwife - Manager" +* $CareConnect-SDSJobRoleName-1#R0670 "Midwife - Sister/Charge Nurse" +* $CareConnect-SDSJobRoleName-1#R0680 "Midwife" +* $CareConnect-SDSJobRoleName-1#R0018 "Audiologist" +* $CareConnect-SDSJobRoleName-1#R0750 "Chiropodist/Podiatrist" +* $CareConnect-SDSJobRoleName-1#R0760 "Chiropodist/Podiatrist Consultant" +* $CareConnect-SDSJobRoleName-1#R0770 "Chiropodist/Podiatrist Manager" +* $CareConnect-SDSJobRoleName-1#R0780 "Chiropodist/Podiatrist Specialist Practitioner" +* $CareConnect-SDSJobRoleName-1#R0790 "Dietitian" +* $CareConnect-SDSJobRoleName-1#R0800 "Dietitian Consultant" +* $CareConnect-SDSJobRoleName-1#R0810 "Dietitian Manager" +* $CareConnect-SDSJobRoleName-1#R0820 "Dietitian Specialist Practitioner" +* $CareConnect-SDSJobRoleName-1#R0950 "Occupational Therapist" +* $CareConnect-SDSJobRoleName-1#R0960 "Occupational Therapist Consultant" +* $CareConnect-SDSJobRoleName-1#R0970 "Occupational Therapist Manager" +* $CareConnect-SDSJobRoleName-1#R0980 "Occupational Therapy Specialist Practitioner" +* $CareConnect-SDSJobRoleName-1#R0990 "Orthoptist" +* $CareConnect-SDSJobRoleName-1#R1000 "Orthoptist Consultant" +* $CareConnect-SDSJobRoleName-1#R1010 "Orthoptist Manager" +* $CareConnect-SDSJobRoleName-1#R1020 "Orthoptist Specialist Practitioner" +* $CareConnect-SDSJobRoleName-1#R1110 "Physiotherapist" +* $CareConnect-SDSJobRoleName-1#R1120 "Physiotherapist Consultant" +* $CareConnect-SDSJobRoleName-1#R1130 "Physiotherapist Manager" +* $CareConnect-SDSJobRoleName-1#R1140 "Physiotherapist Specialist Practitioner" +* $CareConnect-SDSJobRoleName-1#R1070 "Paramedic" +* $CareConnect-SDSJobRoleName-1#R1080 "Paramedic Consultant" +* $CareConnect-SDSJobRoleName-1#R1090 "Paramedic Manager" +* $CareConnect-SDSJobRoleName-1#R1100 "Paramedic Specialist Practitioner" +* $CareConnect-SDSJobRoleName-1#R0003 "Clinical Application Administrator" +* $CareConnect-SDSJobRoleName-1#R0012 "Radiographer" +* $CareConnect-SDSJobRoleName-1#R0013 "Student Radiographer" +* $CareConnect-SDSJobRoleName-1#R0014 "Radiologist" +* $CareConnect-SDSJobRoleName-1#R0015 "PACS Administrator" +* $CareConnect-SDSJobRoleName-1#R0016 "Reporting Radiographer" +* $CareConnect-SDSJobRoleName-1#R0017 "Assistant Practitioner" +* $CareConnect-SDSJobRoleName-1#R1190 "Radiographer - Diagnostic" +* $CareConnect-SDSJobRoleName-1#R1200 "Radiographer - Diagnostic, Consultant" +* $CareConnect-SDSJobRoleName-1#R1210 "Radiographer - Diagnostic, Manager" +* $CareConnect-SDSJobRoleName-1#R1220 "Radiographer - Diagnostic, Specialist Practitioner" +* $CareConnect-SDSJobRoleName-1#R1230 "Radiographer - Therapeutic" +* $CareConnect-SDSJobRoleName-1#R1240 "Radiographer - Therapeutic, Consultant" +* $CareConnect-SDSJobRoleName-1#R1250 "Radiographer - Therapeutic, Manager" +* $CareConnect-SDSJobRoleName-1#R1260 "Radiographer - Therapeutic, Specialist Practitioner" +* $CareConnect-SDSJobRoleName-1#R1030 "Orthotist" +* $CareConnect-SDSJobRoleName-1#R1040 "Orthotist Consultant" +* $CareConnect-SDSJobRoleName-1#R1050 "Orthotist Manager" +* $CareConnect-SDSJobRoleName-1#R1060 "Orthotist Specialist Practitioner" +* $CareConnect-SDSJobRoleName-1#R1150 "Prosthetist" +* $CareConnect-SDSJobRoleName-1#R1160 "Prosthetist Consultant" +* $CareConnect-SDSJobRoleName-1#R1170 "Prosthetist Manager" +* $CareConnect-SDSJobRoleName-1#R1180 "Prosthetist Specialist Practitioner" +* $CareConnect-SDSJobRoleName-1#R0710 "Art Therapist" +* $CareConnect-SDSJobRoleName-1#R0720 "Art Therapist Consultant" +* $CareConnect-SDSJobRoleName-1#R0730 "Art Therapist Manager" +* $CareConnect-SDSJobRoleName-1#R0740 "Art Therapist Specialist Practitioner" +* $CareConnect-SDSJobRoleName-1#R0830 "Drama Therapist" +* $CareConnect-SDSJobRoleName-1#R0840 "Drama Therapist Consultant" +* $CareConnect-SDSJobRoleName-1#R0850 "Drama Therapist Manager" +* $CareConnect-SDSJobRoleName-1#R0860 "Drama Therapist Specialist Practitioner" +* $CareConnect-SDSJobRoleName-1#R0870 "Multi Therapist" +* $CareConnect-SDSJobRoleName-1#R0880 "Multi Therapist Consultant" +* $CareConnect-SDSJobRoleName-1#R0890 "Multi Therapist Manager" +* $CareConnect-SDSJobRoleName-1#R0900 "Multi Therapist Specialist Practitioner" +* $CareConnect-SDSJobRoleName-1#R0910 "Music Therapist" +* $CareConnect-SDSJobRoleName-1#R0920 "Music Therapist Consultant" +* $CareConnect-SDSJobRoleName-1#R0930 "Music Therapist Manager" +* $CareConnect-SDSJobRoleName-1#R0940 "Music Therapist Specialist Practitioner" +* $CareConnect-SDSJobRoleName-1#R0955 "Speech & Language Therapist" +* $CareConnect-SDSJobRoleName-1#R0965 "Speech & Language Therapist Consultant" +* $CareConnect-SDSJobRoleName-1#R0975 "Speech & Language Therapist Manager" +* $CareConnect-SDSJobRoleName-1#R0985 "Speech & Language Therapist Specialist Practitioner" +* $CareConnect-SDSJobRoleName-1#R9500 "Social Services Senior Management" +* $CareConnect-SDSJobRoleName-1#R9505 "Social Services Policy and Planning" +* $CareConnect-SDSJobRoleName-1#R9510 "Social Services Information Manager" +* $CareConnect-SDSJobRoleName-1#R9515 "Social Work Team Manager (Children)" +* $CareConnect-SDSJobRoleName-1#R9520 "Senior Social Worker (Children)" +* $CareConnect-SDSJobRoleName-1#R9525 "Social Services Care Manager (Children)" +* $CareConnect-SDSJobRoleName-1#R9530 "Social Work Assistant (Children)" +* $CareConnect-SDSJobRoleName-1#R9535 "Child Protection Worker" +* $CareConnect-SDSJobRoleName-1#R9540 "Family Placement Worker" +* $CareConnect-SDSJobRoleName-1#R9545 "Community Worker (Children)" +* $CareConnect-SDSJobRoleName-1#R9550 "Occupational Therapist" +* $CareConnect-SDSJobRoleName-1#R9555 "Occupational Therapist Assistant" +* $CareConnect-SDSJobRoleName-1#R9560 "Occupational Therapy Team Manager" +* $CareConnect-SDSJobRoleName-1#R9565 "Social Work Team Manager (Adults)" +* $CareConnect-SDSJobRoleName-1#R9570 "Senior Social Worker (Adults)" +* $CareConnect-SDSJobRoleName-1#R9575 "Social Services Care Manager (Adults)" +* $CareConnect-SDSJobRoleName-1#R9580 "Social Work Assistant (Adults)" +* $CareConnect-SDSJobRoleName-1#R9585 "Social Work Team Manager (Mental Health)" +* $CareConnect-SDSJobRoleName-1#R9590 "Senior Social Worker (Mental Health)" +* $CareConnect-SDSJobRoleName-1#R9595 "Social Services Care Manager (Mental Health)" +* $CareConnect-SDSJobRoleName-1#R9600 "Social Work Assistant (Mental Health)" +* $CareConnect-SDSJobRoleName-1#R9605 "Emergency Duty Social Worker" +* $CareConnect-SDSJobRoleName-1#R9615 "Social Services Driver" +* $CareConnect-SDSJobRoleName-1#R9620 "Home Care Organiser" +* $CareConnect-SDSJobRoleName-1#R9625 "Home Care Administrator" +* $CareConnect-SDSJobRoleName-1#R9630 "Home Help" +* $CareConnect-SDSJobRoleName-1#R9635 "Warden" +* $CareConnect-SDSJobRoleName-1#R9640 "Meals on Wheels Organiser" +* $CareConnect-SDSJobRoleName-1#R9645 "Meals Delivery" +* $CareConnect-SDSJobRoleName-1#R9650 "Day Centre Manager" +* $CareConnect-SDSJobRoleName-1#R9655 "Day Centre Deputy" +* $CareConnect-SDSJobRoleName-1#R9660 "Day Centre Officer" +* $CareConnect-SDSJobRoleName-1#R9665 "Day Centre Care Staff" +* $CareConnect-SDSJobRoleName-1#R9670 "Family Centre Manager" +* $CareConnect-SDSJobRoleName-1#R9675 "Family Centre Deputy" +* $CareConnect-SDSJobRoleName-1#R9680 "Family Centre Worker" +* $CareConnect-SDSJobRoleName-1#R9685 "Nursery Manager" +* $CareConnect-SDSJobRoleName-1#R9690 "Nursery Deputy" +* $CareConnect-SDSJobRoleName-1#R9695 "Nursery Worker" +* $CareConnect-SDSJobRoleName-1#R9700 "Playgroup Leader" +* $CareConnect-SDSJobRoleName-1#R9705 "Playgroup Assistant" +* $CareConnect-SDSJobRoleName-1#R9710 "Residential Manager" +* $CareConnect-SDSJobRoleName-1#R9715 "Residential Deputy" +* $CareConnect-SDSJobRoleName-1#R9720 "Residential Worker" +* $CareConnect-SDSJobRoleName-1#R9725 "Residential Care Staff" +* $CareConnect-SDSJobRoleName-1#R9730 "Intermediate Care Manager" +* $CareConnect-SDSJobRoleName-1#R9735 "Intermediate Care Deputy" +* $CareConnect-SDSJobRoleName-1#R9740 "Intermediate Care Worker" +* $CareConnect-SDSJobRoleName-1#R9745 "Intermediate Care Staff" +* $CareConnect-SDSJobRoleName-1#R9750 "Social Care SAP User" +* $CareConnect-SDSJobRoleName-1#R9755 "Social Care SAP Manager" +* $CareConnect-SDSJobRoleName-1#R1270 "Clinical Director" +* $CareConnect-SDSJobRoleName-1#R1280 "Optometrist" +* $CareConnect-SDSJobRoleName-1#R1290 "Pharmacist" +* $CareConnect-SDSJobRoleName-1#R1979 "Medical Technical Officer - Pharmacy" +* $CareConnect-SDSJobRoleName-1#R1300 "Psychotherapist" +* $CareConnect-SDSJobRoleName-1#R1310 "Clinical Psychologist" +* $CareConnect-SDSJobRoleName-1#R1320 "Chaplain" +* $CareConnect-SDSJobRoleName-1#R1330 "Social Worker" +* $CareConnect-SDSJobRoleName-1#R1340 "Approved Social Worker" +* $CareConnect-SDSJobRoleName-1#R1350 "Youth Worker" +* $CareConnect-SDSJobRoleName-1#R1360 "Specialist Practitioner" +* $CareConnect-SDSJobRoleName-1#R1370 "Practitioner" +* $CareConnect-SDSJobRoleName-1#R0011 "Dispenser" +* $CareConnect-SDSJobRoleName-1#R1380 "Technician - PS&T" +* $CareConnect-SDSJobRoleName-1#R1390 "Osteopath" +* $CareConnect-SDSJobRoleName-1#R1400 "Healthcare Scientist" +* $CareConnect-SDSJobRoleName-1#R1410 "Consultant Healthcare Scientist" +* $CareConnect-SDSJobRoleName-1#R1420 "Biomedical Scientist" +* $CareConnect-SDSJobRoleName-1#R0019 "Medical Technical Officer" +* $CareConnect-SDSJobRoleName-1#R1430 "Technician - Healthcare Scientists" +* $CareConnect-SDSJobRoleName-1#R1440 "Therapist" +* $CareConnect-SDSJobRoleName-1#R1540 "Associate Practitioner" +* $CareConnect-SDSJobRoleName-1#R1543 "Associate Practitioner - Nurse" +* $CareConnect-SDSJobRoleName-1#R1547 "Associate Practitioner - General Practitioner" +* $CareConnect-SDSJobRoleName-1#R1560 "Helper/Assistant" +* $CareConnect-SDSJobRoleName-1#R1600 "Cytoscreener" +* $CareConnect-SDSJobRoleName-1#R1570 "Dental Surgery Assistant" +* $CareConnect-SDSJobRoleName-1#R1450 "Health Care Support Worker" +* $CareConnect-SDSJobRoleName-1#R1580 "Medical Laboratory Assistant" +* $CareConnect-SDSJobRoleName-1#R1550 "Counsellor" +* $CareConnect-SDSJobRoleName-1#R0002 "Porter" +* $CareConnect-SDSJobRoleName-1#R1690 "Call Operator" +* $CareConnect-SDSJobRoleName-1#R1700 "Gateway Worker" +* $CareConnect-SDSJobRoleName-1#R1710 "Support, Time, Recovery Worker" +* $CareConnect-SDSJobRoleName-1#R1480 "Healthcare Assistant" +* $CareConnect-SDSJobRoleName-1#R1490 "Nursery Nurse" +* $CareConnect-SDSJobRoleName-1#R1590 "Phlebotomist" +* $CareConnect-SDSJobRoleName-1#R1460 "Social Care Support Worker" +* $CareConnect-SDSJobRoleName-1#R1470 "Home Help" +* $CareConnect-SDSJobRoleName-1#R1520 "Technician - Additional Clinical Services" +* $CareConnect-SDSJobRoleName-1#R1530 "Technical Instructor" +* $CareConnect-SDSJobRoleName-1#R1980 "Patient Welfare Officer" +* $CareConnect-SDSJobRoleName-1#R1500 "Play Therapist" +* $CareConnect-SDSJobRoleName-1#R1510 "Play Specialist" +* $CareConnect-SDSJobRoleName-1#R1610 "Student Technician" +* $CareConnect-SDSJobRoleName-1#R1620 "Trainee Scientist" +* $CareConnect-SDSJobRoleName-1#R1630 "Trainee Practitioner" +* $CareConnect-SDSJobRoleName-1#R1640 "Nursing Cadet" +* $CareConnect-SDSJobRoleName-1#R1650 "Healthcare Cadet" +* $CareConnect-SDSJobRoleName-1#R1660 "Pre-reg Pharmacist" +* $CareConnect-SDSJobRoleName-1#R1670 "Assistant Psychologist" +* $CareConnect-SDSJobRoleName-1#R1680 "Assistant Psychotherapist" +* $CareConnect-SDSJobRoleName-1#R0007 "ERS SDS Organisation Reporting Analyst" +* $CareConnect-SDSJobRoleName-1#R0008 "Demographic Supervisor" +* $CareConnect-SDSJobRoleName-1#R0021 "DSA NHS Number Manager (Temporary)" +* $CareConnect-SDSJobRoleName-1#R0022 "DSA National Clinical Supervisor (Temporary)" +* $CareConnect-SDSJobRoleName-1#R0023 "DSA National Clinical Administrator (Temporary)" +* $CareConnect-SDSJobRoleName-1#R1720 "Clerical Worker" +* $CareConnect-SDSJobRoleName-1#R1730 "Receptionist" +* $CareConnect-SDSJobRoleName-1#R1740 "Secretary" +* $CareConnect-SDSJobRoleName-1#R1750 "Personal Assistant" +* $CareConnect-SDSJobRoleName-1#R1751 "Demographic Administrator (Sensitive Records) Temporary" +* $CareConnect-SDSJobRoleName-1#R1760 "Medical Secretary" +* $CareConnect-SDSJobRoleName-1#R1770 "Officer" +* $CareConnect-SDSJobRoleName-1#R1971 "Map of Medicine Administrator" +* $CareConnect-SDSJobRoleName-1#R1973 "Community Administrator" +* $CareConnect-SDSJobRoleName-1#R1977 "ECC/CPA Administrator" +* $CareConnect-SDSJobRoleName-1#R1978 "Information Officer" +* $CareConnect-SDSJobRoleName-1#R1985 "Health Records Clerk" +* $CareConnect-SDSJobRoleName-1#R1995 "End Point Approver" +* $CareConnect-SDSJobRoleName-1#R5010 "Network Technician" +* $CareConnect-SDSJobRoleName-1#R5040 "Desktop Support Administrator" +* $CareConnect-SDSJobRoleName-1#R5090 "Registration Authority Agent" +* $CareConnect-SDSJobRoleName-1#R5110 "Demographic Administrator" +* $CareConnect-SDSJobRoleName-1#R5120 "ISP Administrator" +* $CareConnect-SDSJobRoleName-1#R5130 "Technical Codes Administrator" +* $CareConnect-SDSJobRoleName-1#R5140 "OSS Administrator" +* $CareConnect-SDSJobRoleName-1#R5170 "End Point Administrator" +* $CareConnect-SDSJobRoleName-1#R5175 "End Point Viewer" +* $CareConnect-SDSJobRoleName-1#R5181 "RTS Dashboard User" +* $CareConnect-SDSJobRoleName-1#R5183 "RTS BT Dashboard User" +* $CareConnect-SDSJobRoleName-1#R5186 "ERS BT Customer SLA User" +* $CareConnect-SDSJobRoleName-1#R5188 "ERS BT Supplier SLA User" +* $CareConnect-SDSJobRoleName-1#R5189 "ERS LogicaCMG SLA User" +* $CareConnect-SDSJobRoleName-1#R5190 "Content Creator" +* $CareConnect-SDSJobRoleName-1#R5195 "Content Publisher" +* $CareConnect-SDSJobRoleName-1#R5210 "User Details Administrator" +* $CareConnect-SDSJobRoleName-1#R5250 "EBS Administrator" +* $CareConnect-SDSJobRoleName-1#R6010 "Appointments Clerk" +* $CareConnect-SDSJobRoleName-1#R6030 "Ward Clerk" +* $CareConnect-SDSJobRoleName-1#R6050 "Clinical Coder" +* $CareConnect-SDSJobRoleName-1#R6060 "Medical Records Clerk" +* $CareConnect-SDSJobRoleName-1#R6080 "Waiting List Clerk" +* $CareConnect-SDSJobRoleName-1#R7100 "Trainer" +* $CareConnect-SDSJobRoleName-1#R7110 "Training Manager" +* $CareConnect-SDSJobRoleName-1#R7120 "Directory of Services Coordinator" +* $CareConnect-SDSJobRoleName-1#R9756 "ETP System Administrator" +* $CareConnect-SDSJobRoleName-1#R1780 "Manager" +* $CareConnect-SDSJobRoleName-1#R1790 "Senior Manager" +* $CareConnect-SDSJobRoleName-1#R1910 "Chair" +* $CareConnect-SDSJobRoleName-1#R1920 "Chief Executive" +* $CareConnect-SDSJobRoleName-1#R1930 "Finance Director" +* $CareConnect-SDSJobRoleName-1#R1940 "Other Executive Director" +* $CareConnect-SDSJobRoleName-1#R1950 "Board Level Director" +* $CareConnect-SDSJobRoleName-1#R1960 "Non Executive Director" +* $CareConnect-SDSJobRoleName-1#R1970 "Childcare Co-ordinator" +* $CareConnect-SDSJobRoleName-1#R1982 "Senior Administrator" +* $CareConnect-SDSJobRoleName-1#R1983 "Ward Manager" +* $CareConnect-SDSJobRoleName-1#R1986 "Workgroup Administrator" +* $CareConnect-SDSJobRoleName-1#R1987 "National RBAC Attribute Administrator" +* $CareConnect-SDSJobRoleName-1#R1988 "National RBAC Baseline Policy Administrator" +* $CareConnect-SDSJobRoleName-1#R1989 "Complaints Coordinator" +* $CareConnect-SDSJobRoleName-1#R1990 "Complaints Investigator" +* $CareConnect-SDSJobRoleName-1#R1996 "End Point DNS Administrator" +* $CareConnect-SDSJobRoleName-1#R1997 "End Point Spine Administrator" +* $CareConnect-SDSJobRoleName-1#R1998 "End Point Super User" +* $CareConnect-SDSJobRoleName-1#R1999 "End Point Service Administrator" +* $CareConnect-SDSJobRoleName-1#R5000 "Network Administrator" +* $CareConnect-SDSJobRoleName-1#R5003 "Cluster System Administrator" +* $CareConnect-SDSJobRoleName-1#R5007 "System Administrator" +* $CareConnect-SDSJobRoleName-1#R5020 "Helpdesk Administrator" +* $CareConnect-SDSJobRoleName-1#R5060 "Security Policy Controller" +* $CareConnect-SDSJobRoleName-1#R5070 "Senior Security Manager" +* $CareConnect-SDSJobRoleName-1#R5072 "Root Registration Authority Manager" +* $CareConnect-SDSJobRoleName-1#R5080 "Registration Authority Manager" +* $CareConnect-SDSJobRoleName-1#R5100 "Audit Manager" +* $CareConnect-SDSJobRoleName-1#R5105 "Caldicott Guardian" +* $CareConnect-SDSJobRoleName-1#R5180 "NASP Service Manager" +* $CareConnect-SDSJobRoleName-1#R5182 "ERS ETP System Administrator" +* $CareConnect-SDSJobRoleName-1#R5184 "ERS Spine SLA Manager" +* $CareConnect-SDSJobRoleName-1#R5185 "ERS BT Customer SLA Manager" +* $CareConnect-SDSJobRoleName-1#R5187 "ERS BT Supplier SLA Manager" +* $CareConnect-SDSJobRoleName-1#R5191 "ERS Support Administrator" +* $CareConnect-SDSJobRoleName-1#R5192 "ECS Administrator" +* $CareConnect-SDSJobRoleName-1#R5300 "Portal Administrator" +* $CareConnect-SDSJobRoleName-1#R5310 "LiquidLogic Administrator" +* $CareConnect-SDSJobRoleName-1#R5320 "i.EPR Administrator" +* $CareConnect-SDSJobRoleName-1#R5330 "Synergy Administrator" +* $CareConnect-SDSJobRoleName-1#R5340 "SystmOne Administrator" +* $CareConnect-SDSJobRoleName-1#R6020 "Outpatient Manager" +* $CareConnect-SDSJobRoleName-1#R6040 "Bed Manager" +* $CareConnect-SDSJobRoleName-1#R6070 "Medical Records Manager" +* $CareConnect-SDSJobRoleName-1#R6090 "Waiting List Manager" +* $CareConnect-SDSJobRoleName-1#R6100 "Mental Health Act Administrator" +* $CareConnect-SDSJobRoleName-1#R6160 "Ad-hoc Report Manager" +* $CareConnect-SDSJobRoleName-1#R7130 "PAS Manager" +* $CareConnect-SDSJobRoleName-1#R1800 "Technician - Admin & Clerical" +* $CareConnect-SDSJobRoleName-1#R1810 "Accountant" +* $CareConnect-SDSJobRoleName-1#R1820 "Librarian" +* $CareConnect-SDSJobRoleName-1#R1830 "Interpreter" +* $CareConnect-SDSJobRoleName-1#R1840 "Analyst" +* $CareConnect-SDSJobRoleName-1#R1850 "Adviser" +* $CareConnect-SDSJobRoleName-1#R1860 "Researcher" +* $CareConnect-SDSJobRoleName-1#R1870 "Control Assistant" +* $CareConnect-SDSJobRoleName-1#R1880 "Architect" +* $CareConnect-SDSJobRoleName-1#R1890 "Lawyer" +* $CareConnect-SDSJobRoleName-1#R1900 "Surveyor" +* $CareConnect-SDSJobRoleName-1#R5030 "Helpdesk Technician" +* $CareConnect-SDSJobRoleName-1#R5050 "Desktop Support Technician" +* $CareConnect-SDSJobRoleName-1#R5150 "System Worker" +* $CareConnect-SDSJobRoleName-1#R5400 "Availability Monitor" +* $CareConnect-SDSJobRoleName-1#R8000 "Clinical Practitioner Access Role" +* $CareConnect-SDSJobRoleName-1#R8001 "Nurse Access Role" +* $CareConnect-SDSJobRoleName-1#R8002 "Nurse Manager Access Role" +* $CareConnect-SDSJobRoleName-1#R8003 "Health Professional Access Role" +* $CareConnect-SDSJobRoleName-1#R8004 "Healthcare Student Access Role" +* $CareConnect-SDSJobRoleName-1#R8016 "Midwife Access Role" +* $CareConnect-SDSJobRoleName-1#R8017 "Midwife Manager Access Role" +* $CareConnect-SDSJobRoleName-1#R8024 "Bank Access Role" +* $CareConnect-SDSJobRoleName-1#R8005 "Biomedical Scientist Access Role" +* $CareConnect-SDSJobRoleName-1#R8006 "Medical Secretary Access Role" +* $CareConnect-SDSJobRoleName-1#R8007 "Clinical Coder Access Role" +* $CareConnect-SDSJobRoleName-1#R8008 "Admin/Clinical Support Access Role" +* $CareConnect-SDSJobRoleName-1#R8015 "Systems Support Access Role" +* $CareConnect-SDSJobRoleName-1#R0001 "Privacy Officer" +* $CareConnect-SDSJobRoleName-1#R8009 "Receptionist Access Role" +* $CareConnect-SDSJobRoleName-1#R8010 "Clerical Access Role" +* $CareConnect-SDSJobRoleName-1#R8011 "Clerical Manager Access Role" +* $CareConnect-SDSJobRoleName-1#R8012 "Information Officer Access Role" +* $CareConnect-SDSJobRoleName-1#R8013 "Health Records Manager Access Role" +* $CareConnect-SDSJobRoleName-1#R8014 "Social Worker Access Role" +* $contractsignertypecodes#AMENDER +* $contractsignertypecodes#COAUTH +* $contractsignertypecodes#CONT +* $contractsignertypecodes#EVTWIT +* $contractsignertypecodes#PRIMAUTH +* $contractsignertypecodes#REVIEWER +* $contractsignertypecodes#SOURCE +* $contractsignertypecodes#TRANS +* $contractsignertypecodes#VALID +* $contractsignertypecodes#VERF +* $RoleClass#AFFL +* $RoleClass#AGNT +* $RoleClass#ASSIGNED +* $RoleClass#CLAIM +* $RoleClass#COVPTY +* $RoleClass#DEPEN +* $RoleClass#ECON +* $RoleClass#EMP +* $RoleClass#GUARD +* $RoleClass#INVSBJ +* $RoleClass#NAMED +* $RoleClass#NOK +* $RoleClass#PAT +* $RoleClass#PROV +* $RoleClass#NOT +* $RoleCode#CLASSIFIER +* $RoleCode#CONSENTER +* $RoleCode#CONSWIT +* $RoleCode#COPART +* $RoleCode#DECLASSIFIER +* $RoleCode#DELEGATEE +* $RoleCode#DELEGATOR +* $RoleCode#DOWNGRDER +* $RoleCode#DPOWATT +* $RoleCode#EXCEST +* $RoleCode#GRANTEE +* $RoleCode#GRANTOR +* $RoleCode#GT +* $RoleCode#GUADLTM +* $RoleCode#HPOWATT +* $RoleCode#INTPRTER +* $RoleCode#POWATT +* $RoleCode#RESPRSN +* $RoleCode#SPOWATT +* $ParticipationFunction#AUCG +* $ParticipationFunction#AULR +* $ParticipationFunction#AUTM +* $ParticipationFunction#AUWA +* $ParticipationFunction#PROMSK +* $ParticipationType#AUT +* $ParticipationType#CST +* $ParticipationType#INF +* $ParticipationType#IRCP +* $ParticipationType#LA +* $ParticipationType#IRCP +* $ParticipationType#TRC +* $ParticipationType#WIT +* DCM#110150 +* DCM#110151 +* DCM#110152 +* DCM#110153 +* DCM#110154 +* DCM#110155 +* $extra-security-role-type#authserver +* $extra-security-role-type#datacollector +* $extra-security-role-type#dataprocessor +* $extra-security-role-type#datasubject +* $RoleCode#CAS +* $RoleCode#CASM +* $RoleCode#CN +* $RoleCode#CNRP +* $RoleCode#CNRPM +* $RoleCode#CPCA +* $RoleCode#CRP +* $RoleCode#CRPM \ No newline at end of file diff --git a/input/fsh/valuesets/RA-ProxyRole b/input/fsh/valuesets/RA-ProxyRole new file mode 100644 index 0000000..783b711 --- /dev/null +++ b/input/fsh/valuesets/RA-ProxyRole @@ -0,0 +1,28 @@ +ValueSet: RA-ProxyRole +Id: RA-ProxyRole +Title: "Reasonable Adjustments Record Proxy Role" +Description: "A ValueSet to identify the type/role of the proxy involved." +* ^url = "https://fhir.nhs.uk/England/ValueSet/RA-ProxyRole" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^publisher = "NHS England" +* ^contact.name = "NHS England" +* ^contact.telecom.system = #email +* ^contact.telecom.value = "interoperabilityteam@nhs.net" +* ^contact.telecom.use = #work +* ^contact.telecom.rank = 1 +* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." +* ^expansion.timestamp = "2024-02-14T12:00:00+00:00" +* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ProxyRole" +* ^expansion.contains[=].code = #001 +* ^expansion.contains[=].display = "Patient consent" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ProxyRole" +* ^expansion.contains[=].code = #002 +* ^expansion.contains[=].display = "Best interest decision made on behalf of the patient (Mental Capacity Act 2005)" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ProxyRole" +* ^expansion.contains[=].code = #003 +* ^expansion.contains[=].display = "Lasting power of attorney for health and welfare, or court-appointed deputy, or equivalent" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ProxyRole" +* ^expansion.contains[=].code = #004 +* ^expansion.contains[=].display = "Other legitimate patient representative - parental responsibility" \ No newline at end of file From 4aa95de72be81fe95e4bf1eaf8ffd09acbf8ecb5 Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Mon, 26 Feb 2024 13:37:42 +0000 Subject: [PATCH 122/136] fix RA-ProxyRole codesystem, valueset, link in consent profile (#15) Co-authored-by: Declan Kieran --- input/fsh/codesystem/{RA-ProxyRole => RA-ProxyRole.fsh} | 0 input/fsh/profiles/RA-Consent.fsh | 2 +- input/fsh/valuesets/{RA-ProxyRole => RA-ProxyRole.fsh} | 0 3 files changed, 1 insertion(+), 1 deletion(-) rename input/fsh/codesystem/{RA-ProxyRole => RA-ProxyRole.fsh} (100%) rename input/fsh/valuesets/{RA-ProxyRole => RA-ProxyRole.fsh} (100%) diff --git a/input/fsh/codesystem/RA-ProxyRole b/input/fsh/codesystem/RA-ProxyRole.fsh similarity index 100% rename from input/fsh/codesystem/RA-ProxyRole rename to input/fsh/codesystem/RA-ProxyRole.fsh diff --git a/input/fsh/profiles/RA-Consent.fsh b/input/fsh/profiles/RA-Consent.fsh index 4c81527..ad9e76a 100644 --- a/input/fsh/profiles/RA-Consent.fsh +++ b/input/fsh/profiles/RA-Consent.fsh @@ -31,7 +31,7 @@ Description: "To record consent to capture Reasonable Adjustments and Reasons fo * policy 1..1 * policy.uri 1.. * policyRule 1.. -* policyRule from https://fhir.nhs.uk/England/ValueSet/RA-ProxyRole (extensible) +* policyRule from RA-ProxyRole (extensible) * performer ..1 * performer only Reference(Organization or Patient or Practitioner) * provision.purpose 1..1 diff --git a/input/fsh/valuesets/RA-ProxyRole b/input/fsh/valuesets/RA-ProxyRole.fsh similarity index 100% rename from input/fsh/valuesets/RA-ProxyRole rename to input/fsh/valuesets/RA-ProxyRole.fsh From fd7e6812aa1685ae67489d914594fa4194ad3517 Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Wed, 28 Feb 2024 16:17:42 +0000 Subject: [PATCH 123/136] Fix/tidy examples (#16) * fix urls in examples, qa warnings etc... * use cannonical instead of localhost for searchparameters * cleared more warnings, move aliases to one file --------- Co-authored-by: Declan Kieran --- input/fsh/aliases.fsh | 20 + .../fsh/codesystem/RA-AdjustmentCategory.fsh | 3 +- input/fsh/codesystem/RA-ConditionCategory.fsh | 5 +- input/fsh/codesystem/RA-ConditionCode.fsh | 3 +- input/fsh/codesystem/RA-ConsentPurpose.fsh | 3 +- input/fsh/codesystem/RA-FlagCategory.fsh | 5 +- input/fsh/codesystem/RA-ProxyRole.fsh | 3 +- ...AddConditionTransactionExample1-bundle.fsh | 24 +- ...AddConditionTransactionExample2-bundle.fsh | 14 +- input/fsh/profiles/RA-Condition.fsh | 4 +- input/fsh/profiles/RA-Consent.fsh | 1 + input/fsh/profiles/RA-Flag.fsh | 5 +- input/fsh/profiles/RA-Provenance.fsh | 3 +- input/fsh/searchparameter/FlagCategory.fsh | 4 +- input/fsh/searchparameter/FlagCode.fsh | 4 +- input/fsh/searchparameter/FlagDetail.fsh | 4 +- input/fsh/valuesets/RA-AdjustmentCategory.fsh | 3 +- input/fsh/valuesets/RA-ConditionCategory.fsh | 5 +- input/fsh/valuesets/RA-ConditionCode.fsh | 3 +- input/fsh/valuesets/RA-ConsentPurpose.fsh | 3 +- input/fsh/valuesets/RA-FlagCategory.fsh | 15 +- input/fsh/valuesets/RA-FlagCode.fsh | 15 +- input/fsh/valuesets/RA-ProvenanceRole.fsh | 20 +- input/fsh/valuesets/RA-ProxyRole.fsh | 13 +- .../CareConnect-SDSJobRoleName-1.json | 1593 +++++++++++++++++ 25 files changed, 1682 insertions(+), 93 deletions(-) create mode 100644 input/fsh/aliases.fsh create mode 100644 input/resources/CareConnect-SDSJobRoleName-1.json diff --git a/input/fsh/aliases.fsh b/input/fsh/aliases.fsh new file mode 100644 index 0000000..944f18e --- /dev/null +++ b/input/fsh/aliases.fsh @@ -0,0 +1,20 @@ +Alias: $consentscope = http://terminology.hl7.org/CodeSystem/consentscope +Alias: $sct = https://snomed.info/sct +Alias: $condition-clinical = http://terminology.hl7.org/CodeSystem/condition-clinical +Alias: $v3-DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation +Alias: $condition-clinical = http://terminology.hl7.org/CodeSystem/condition-clinical +Alias: $sct = https://snomed.info/sct +Alias: $v3-DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation +Alias: $contractsignertypecodes = http://terminology.hl7.org/CodeSystem/contractsignertypecodes +Alias: $RoleClass = http://terminology.hl7.org/CodeSystem/v3-RoleClass +Alias: $RoleCode = http://terminology.hl7.org/CodeSystem/v3-RoleCode +Alias: $ParticipationFunction = http://terminology.hl7.org/CodeSystem/v3-ParticipationFunction +Alias: $ParticipationType = http://terminology.hl7.org/CodeSystem/v3-ParticipationType +Alias: $extra-security-role-type = http://terminology.hl7.org/CodeSystem/extra-security-role-type +Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 +Alias: $ValueSetRAConditionCategory = https://fhir.nhs.uk/England/ValueSet/RA-ConditionCategory +Alias: $ValueSetRAConditionCode = https://fhir.nhs.uk/England/ValueSet/RA-ConditionCode +Alias: $ValueSetRAFlagCategory = https://fhir.nhs.uk/England/ValueSet/RA-FlagCategory +Alias: $ValueSetRAFlagCode = https://fhir.nhs.uk/England/ValueSet/RA-FlagCode +Alias: $ExtensionFlagDetail = http://hl7.org/fhir/StructureDefinition/flag-detail +Alias: $ValueSetRAProvenanceRole = https://fhir.nhs.uk/England/ValueSet/RA-ProvenanceRole diff --git a/input/fsh/codesystem/RA-AdjustmentCategory.fsh b/input/fsh/codesystem/RA-AdjustmentCategory.fsh index 2d15c1f..7aabecc 100644 --- a/input/fsh/codesystem/RA-AdjustmentCategory.fsh +++ b/input/fsh/codesystem/RA-AdjustmentCategory.fsh @@ -3,11 +3,12 @@ Id: RA-AdjustmentCategory Title: "Reasonable Adjustments Record Adjustment Category" Description: "A CodeSystem to identify the category of the Adjustment required" -* ^name = "Reasonable Adjustments Record Adjustment Category" +* ^name = "ReasonableAdjustmentsCategory" * ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" +* ^experimental = false * insert NHSEngland-PublisherContactCopyright diff --git a/input/fsh/codesystem/RA-ConditionCategory.fsh b/input/fsh/codesystem/RA-ConditionCategory.fsh index 4752963..d2d033c 100644 --- a/input/fsh/codesystem/RA-ConditionCategory.fsh +++ b/input/fsh/codesystem/RA-ConditionCategory.fsh @@ -1,13 +1,14 @@ CodeSystem: RA-ConditionCategory Id: RA-ConditionCategory Title: "Reasonable Adjustments Record Condition Category" -Description: " A CodeSystem to identify the category of a condition.." +Description: "A CodeSystem to identify the category of a condition.." -* ^name = "Reasonable Adjustments Record Condition Category" +* ^name = "ReasonableAdjustmentsConditionCategory" * ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCategory" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" +* ^experimental = false * insert NHSEngland-PublisherContactCopyright diff --git a/input/fsh/codesystem/RA-ConditionCode.fsh b/input/fsh/codesystem/RA-ConditionCode.fsh index f6dfce9..99cecd5 100644 --- a/input/fsh/codesystem/RA-ConditionCode.fsh +++ b/input/fsh/codesystem/RA-ConditionCode.fsh @@ -3,11 +3,12 @@ Id: RA-ConditionCode Title: "Reasonable Adjustments Record Condition Code" Description: "A CodeSystem to identify the SNOMED-CT concept representing an Impairment recorded as part of a Reasonable Adjustment" -* ^name = "Reasonable Adjustments Record Condition Code" +* ^name = "ReasonableAdjustmentsConditionCode" * ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCode" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" +* ^experimental = false * insert NHSEngland-PublisherContactCopyright diff --git a/input/fsh/codesystem/RA-ConsentPurpose.fsh b/input/fsh/codesystem/RA-ConsentPurpose.fsh index 2551665..6886f92 100644 --- a/input/fsh/codesystem/RA-ConsentPurpose.fsh +++ b/input/fsh/codesystem/RA-ConsentPurpose.fsh @@ -3,11 +3,12 @@ Id: RA-ConsentPurpose Title: "Reasonable Adjustments Record Consent Purpose" Description: "A CodeSystem to identify the purpose of the consent given" -* ^name = "Reasonable Adjustments Record Consent Purpose" +* ^name = "ReasonableAdjustmentsConsentPurpose" * ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-ConsentPurpose" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" +* ^experimental = false * insert NHSEngland-PublisherContactCopyright diff --git a/input/fsh/codesystem/RA-FlagCategory.fsh b/input/fsh/codesystem/RA-FlagCategory.fsh index 632acb7..af54d83 100644 --- a/input/fsh/codesystem/RA-FlagCategory.fsh +++ b/input/fsh/codesystem/RA-FlagCategory.fsh @@ -1,13 +1,14 @@ CodeSystem: RA-FlagCategory Id: RA-FlagCategory Title: "Reasonable Adjustments Record Flag Category" -Description: " A CodeSystem to identify the type/category of Flag." +Description: "A CodeSystem to identify the type/category of Flag." -* ^name = "Reasonable Adjustments Record Flag Category" +* ^name = "ReasonableAdjustmentsFlagCategory" * ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" +* ^experimental = false * insert NHSEngland-PublisherContactCopyright diff --git a/input/fsh/codesystem/RA-ProxyRole.fsh b/input/fsh/codesystem/RA-ProxyRole.fsh index 6d0ccd9..c7d39a7 100644 --- a/input/fsh/codesystem/RA-ProxyRole.fsh +++ b/input/fsh/codesystem/RA-ProxyRole.fsh @@ -3,11 +3,12 @@ Id: RA-ProxyRole Title: "Reasonable Adjustments Record Proxy Role" Description: "A CodeSystem to identify the type/role of the proxy involved" -* ^name = "Reasonable Adjustments Record Proxy Role" +* ^name = "ReasonableAdjustmentsProxyRole" * ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-ProxyRole" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" +* ^experimental = false * insert NHSEngland-PublisherContactCopyright diff --git a/input/fsh/examples/0003-AddConditionTransactionExample1-bundle.fsh b/input/fsh/examples/0003-AddConditionTransactionExample1-bundle.fsh index a9dc660..652a987 100644 --- a/input/fsh/examples/0003-AddConditionTransactionExample1-bundle.fsh +++ b/input/fsh/examples/0003-AddConditionTransactionExample1-bundle.fsh @@ -1,13 +1,3 @@ -Alias: $consentscope = http://terminology.hl7.org/CodeSystem/consentscope -Alias: $RARecord-FlagCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1 -Alias: $sct = https://snomed.info/sct -Alias: $condition-clinical = http://terminology.hl7.org/CodeSystem/condition-clinical -Alias: $CareConnect-ConditionCategory-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1 -Alias: $RARecord-ConditionCode-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1 -Alias: $v3-DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation -Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 -Alias: $RARecord-AdjustmentCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1 - Instance: AddConditionTransactionExample1 InstanceOf: Bundle Usage: #example @@ -50,7 +40,7 @@ InstanceOf: Consent Usage: #inline * status = #active * scope = $consentscope#patient-privacy -* category = $RARecord-FlagCategory-1#NRAF "National Reasonable Adjustments Flag" +* category = RA-FlagCategory#NRAF "National Reasonable Adjustments Flag" * provision.purpose = $sct#370856009 "Limiting access to confidential patient information" * patient = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) * policy.authority = "https://www.gov.uk/" @@ -60,16 +50,16 @@ Instance: condition-example-1 InstanceOf: Condition Usage: #inline * clinicalStatus = $condition-clinical#active -* category = $CareConnect-ConditionCategory-1#issue "Issue" -* code = $RARecord-ConditionCode-1#5 "Learning or understanding or concentrating" +* category = RA-ConditionCategory#issue "Issue" +* code = RA-ConditionCode#5 "Learning or understanding or concentrating" * subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) Instance: master-flag-example-1 InstanceOf: Flag Usage: #inline * status = #active -* code = $RARecord-FlagCategory-1#NRAF "National Reasonable Adjustments Flag" -* category = $RARecord-FlagCategory-1#NRAF "National Reasonable Adjustments Flag" +* code = RA-FlagCategory#NRAF "National Reasonable Adjustments Flag" +* category = RA-FlagCategory#NRAF "National Reasonable Adjustments Flag" * subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) * contained.resourceType = "Provenance" * contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" @@ -84,8 +74,8 @@ Instance: condition-flag-example-1 InstanceOf: Flag Usage: #inline * status = #active -* code = $RARecord-AdjustmentCategory-1#001 "Communication support" -* category = $RARecord-FlagCategory-1#NRAF "National Reasonable Adjustments Flag" +* code = $sct#1082691000000101 "Requires support for expressive communication needs" +* category = RA-FlagCategory#NRAF "National Reasonable Adjustments Flag" * subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) * contained.resourceType = "Provenance" * contained.id = "ddb4df1c-d15a-4d02-9346-c034732c5a37" diff --git a/input/fsh/examples/0004-AddConditionTransactionExample2-bundle.fsh b/input/fsh/examples/0004-AddConditionTransactionExample2-bundle.fsh index 1eabd0e..cb03a6b 100644 --- a/input/fsh/examples/0004-AddConditionTransactionExample2-bundle.fsh +++ b/input/fsh/examples/0004-AddConditionTransactionExample2-bundle.fsh @@ -1,11 +1,3 @@ -Alias: $condition-clinical = http://terminology.hl7.org/CodeSystem/condition-clinical -Alias: $CareConnect-ConditionCategory-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1 -Alias: $sct = https://snomed.info/sct -Alias: $RARecord-AdjustmentCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1 -Alias: $RARecord-FlagCategory-1 = https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1 -Alias: $v3-DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation -Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 - Instance: AddConditionTransactionExample2 InstanceOf: Bundle Usage: #example @@ -43,7 +35,7 @@ Instance: condition-example-2 InstanceOf: Condition Usage: #inline * clinicalStatus = $condition-clinical#active -* category = $CareConnect-ConditionCategory-1#issue "Issue" +* category = RA-ConditionCategory#issue "Issue" * code = $sct#73618009 "Autistic spectrum disorder with isolated skills" * subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) @@ -51,8 +43,8 @@ Instance: condition-flag-example-2 InstanceOf: Flag Usage: #inline * status = #active -* code = $RARecord-AdjustmentCategory-1#001 "Communication support" -* category = $RARecord-FlagCategory-1#NRAF "National Reasonable Adjustments Flag" +* code = RA-AdjustmentCategory#001 "Communication support" +* category = RA-FlagCategory#NRAF "National Reasonable Adjustments Flag" * subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) * contained.resourceType = "Provenance" * contained.id = "55ac7111-dbd1-42f2-906c-a167b04d47ce" diff --git a/input/fsh/profiles/RA-Condition.fsh b/input/fsh/profiles/RA-Condition.fsh index d9f3e8c..8bf1e8c 100644 --- a/input/fsh/profiles/RA-Condition.fsh +++ b/input/fsh/profiles/RA-Condition.fsh @@ -1,12 +1,10 @@ -Alias: $ValueSetRAConditionCategory = https://fhir.nhs.uk/England/ValueSet/RA-ConditionCategory -Alias: $ValueSetRAConditionCode = https://fhir.nhs.uk/England/ValueSet/RA-ConditionCode - Profile: RA-Condition Parent: Condition Id: RA-Condition Title: "Reasonable Adjustments Condition Profile" Description: "To (optionally) record an individual Condition for a Reasonable Adjustment Flag" +* ^name = "ReasonableAdjustmentsCondition" * ^url = "https://fhir.nhs.uk/England/StructureDefinition/RA-Condition" * ^version = "0.1.0" * ^status = #draft diff --git a/input/fsh/profiles/RA-Consent.fsh b/input/fsh/profiles/RA-Consent.fsh index ad9e76a..7663b7c 100644 --- a/input/fsh/profiles/RA-Consent.fsh +++ b/input/fsh/profiles/RA-Consent.fsh @@ -4,6 +4,7 @@ Id: RA-Consent Title: "Reasonable Adjustments Consent Profile" Description: "To record consent to capture Reasonable Adjustments and Reasons for Reasonable Adjustments data" +* ^name = "ReasonableAdjustmentsConsent" * ^url = "https://fhir.nhs.uk/England/StructureDefinition/RA-Consent" * ^version = "0.1.0" * ^status = #draft diff --git a/input/fsh/profiles/RA-Flag.fsh b/input/fsh/profiles/RA-Flag.fsh index 9526ea0..11b16f8 100644 --- a/input/fsh/profiles/RA-Flag.fsh +++ b/input/fsh/profiles/RA-Flag.fsh @@ -1,13 +1,10 @@ -Alias: $ValueSetRAFlagCategory = https://fhir.nhs.uk/England/ValueSet/RA-FlagCategory -Alias: $ValueSetRAFlagCode = https://fhir.nhs.uk/England/ValueSet/RA-FlagCode -Alias: $ExtensionFlagDetail = http://hl7.org/fhir/StructureDefinition/flag-detail - Profile: RA-Flag Parent: Flag Id: RA-Flag Title: "Reasonable Adjustments Flag Profile" Description: "To (optionally) record an individual Adjustment for a Reasonable Adjustment Flag" +* ^name = "ReasonableAdjustmentsFlag" * ^url = "https://fhir.nhs.uk/England/StructureDefinition/RA-Flag" * ^version = "0.1.0" * ^status = #draft diff --git a/input/fsh/profiles/RA-Provenance.fsh b/input/fsh/profiles/RA-Provenance.fsh index ab8617a..421e561 100644 --- a/input/fsh/profiles/RA-Provenance.fsh +++ b/input/fsh/profiles/RA-Provenance.fsh @@ -1,11 +1,10 @@ -Alias: $ValueSetRAProvenanceRole = https://fhir.nhs.uk/England/ValueSet/RA-ProvenanceRole - Profile: RA-Provenance Parent: Provenance Id: RA-Provenance Title: "Reasonable Adjustments Provenance Profile" Description: "To record details of the practitioner recording or removing an individual item (Consent, Adjustment or Impairment) within a Reasonable Adjustment Flag." +* ^name = "ReasonableAdjustmentsProvenance" * ^url = "https://fhir.nhs.uk/England/StructureDefinition/RA-Provenance" * ^version = "0.1.0" * ^status = #draft diff --git a/input/fsh/searchparameter/FlagCategory.fsh b/input/fsh/searchparameter/FlagCategory.fsh index 3d86774..741837d 100644 --- a/input/fsh/searchparameter/FlagCategory.fsh +++ b/input/fsh/searchparameter/FlagCategory.fsh @@ -4,8 +4,8 @@ Title: "SearchParameter for Category in Flag" Usage: #definition Description: "Search by category in the Flag resource" -* name = "SearchParameter for Category in Flag" -* url = "http://localhost:8080/fhir/SearchParameter/FlagCategory" +* name = "SearchParameterFlagCategory" +* url = "https://fhir.nhs.uk/England/SearchParameter/FlagCategory" * version = "0.1.0" * status = #active * date = "2024-02-14" diff --git a/input/fsh/searchparameter/FlagCode.fsh b/input/fsh/searchparameter/FlagCode.fsh index decb4c9..bd38fd2 100644 --- a/input/fsh/searchparameter/FlagCode.fsh +++ b/input/fsh/searchparameter/FlagCode.fsh @@ -4,8 +4,8 @@ Title: "SearchParameter for Code in Flag" Usage: #definition Description: "Search by code in the Flag resource" -* name = "SearchParameter for Code in Flag" -* url = "http://localhost:8080/fhir/SearchParameter/FlagCode" +* name = "SearchParameterFlagCode" +* url = "https://fhir.nhs.uk/England/SearchParameter/FlagCode" * version = "0.1.0" * status = #active * date = "2024-02-14" diff --git a/input/fsh/searchparameter/FlagDetail.fsh b/input/fsh/searchparameter/FlagDetail.fsh index cbe8190..99966d3 100644 --- a/input/fsh/searchparameter/FlagDetail.fsh +++ b/input/fsh/searchparameter/FlagDetail.fsh @@ -4,8 +4,8 @@ Title: "SearchParameter for Condition, Flag or Consent resources in the flag-det Usage: #definition Description: "Search using extension for flag detail extension in Flag resource" -* name = "SearchParameter for flag detail extension used in Flag" -* url = "http://localhost:8080/fhir/SearchParameter/FlagDetail" +* name = "SearchParameterFlagDetailExtension" +* url = "https://fhir.nhs.uk/England/SearchParameter/FlagDetail" * version = "0.1.0" * status = #active * date = "2024-02-14" diff --git a/input/fsh/valuesets/RA-AdjustmentCategory.fsh b/input/fsh/valuesets/RA-AdjustmentCategory.fsh index e7e9756..25db3c2 100644 --- a/input/fsh/valuesets/RA-AdjustmentCategory.fsh +++ b/input/fsh/valuesets/RA-AdjustmentCategory.fsh @@ -3,11 +3,12 @@ Id: RA-AdjustmentCategory Title: "Reasonable Adjustments Record Adjustment Category" Description: "A ValueSet to identify the category of a Reasonable Adjustment" -* ^name = "Reasonable Adjustments Record Adjustment Category" +* ^name = "ReasonableAdjustmentsCategory" * ^url = "https://fhir.nhs.uk/England/ValueSet/RA-AdjustmentCategory" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" +* ^experimental = false * insert NHSEngland-PublisherContactCopyright diff --git a/input/fsh/valuesets/RA-ConditionCategory.fsh b/input/fsh/valuesets/RA-ConditionCategory.fsh index 4b8bad9..eed98fe 100644 --- a/input/fsh/valuesets/RA-ConditionCategory.fsh +++ b/input/fsh/valuesets/RA-ConditionCategory.fsh @@ -1,13 +1,14 @@ ValueSet: RA-ConditionCategoryy Id: RA-ConditionCategory Title: "Reasonable Adjustments Record Condition Category" -Description: " A ValueSet to identify the category of a condition." +Description: "A ValueSet to identify the category of a condition." -* ^name = "Reasonable Adjustments Record Condition Category" +* ^name = "ReasonableAdjustmentsConditionCategory" * ^url = "https://fhir.nhs.uk/England/ValueSet/RA-ConditionCategory" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" +* ^experimental = false * insert NHSEngland-PublisherContactCopyright diff --git a/input/fsh/valuesets/RA-ConditionCode.fsh b/input/fsh/valuesets/RA-ConditionCode.fsh index 5eb5da1..9949f1f 100644 --- a/input/fsh/valuesets/RA-ConditionCode.fsh +++ b/input/fsh/valuesets/RA-ConditionCode.fsh @@ -3,11 +3,12 @@ Id: RA-ConditionCode Title: "Reasonable Adjustments Record Condition Code" Description: "A ValueSet to identify the SNOMED-CT concept representing an Impairment recorded as part of a Reasonable Adjustment" -* ^name = "Reasonable Adjustments Record Condition Code" +* ^name = "ReasonableAdjustmentsConditionCode" * ^url = "https://fhir.nhs.uk/England/ValueSet/RA-ConditionCode" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" +* ^experimental = false * insert NHSEngland-PublisherContactCopyright diff --git a/input/fsh/valuesets/RA-ConsentPurpose.fsh b/input/fsh/valuesets/RA-ConsentPurpose.fsh index a91fee9..6ff8eb9 100644 --- a/input/fsh/valuesets/RA-ConsentPurpose.fsh +++ b/input/fsh/valuesets/RA-ConsentPurpose.fsh @@ -3,11 +3,12 @@ Id: RA-ConsentPurpose Title: "Reasonable Adjustments Consent Purpose" Description: "A ValueSet to identify the purpose of a consent given." -* ^name = "Reasonable Adjustments Record Consent Purpose" +* ^name = "ReasonableAdjustmentsConsentPurpose" * ^url = "https://fhir.nhs.uk/England/ValueSet/RA-ConsentPurpose" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" +* ^experimental = false * insert NHSEngland-PublisherContactCopyright diff --git a/input/fsh/valuesets/RA-FlagCategory.fsh b/input/fsh/valuesets/RA-FlagCategory.fsh index 68a0741..b62ba33 100644 --- a/input/fsh/valuesets/RA-FlagCategory.fsh +++ b/input/fsh/valuesets/RA-FlagCategory.fsh @@ -1,18 +1,17 @@ ValueSet: RA-FlagCategory Id: RA-FlagCategory -Title: "Reasonable Adjustments Record Flag Category" +Title: "ReasonableAdjustmentsFlagCategory" Description: "A ValueSet to identify the type/category of Flag." + +* ^name = "ReasonableAdjustmentsFlagCategory" * ^url = "https://fhir.nhs.uk/England/ValueSet/RA-FlagCategory" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." +* ^experimental = false + +* insert NHSEngland-PublisherContactCopyright + * ^expansion.timestamp = "2024-02-14T12:00:00+00:00" * ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory" * ^expansion.contains[=].code = #NRAF diff --git a/input/fsh/valuesets/RA-FlagCode.fsh b/input/fsh/valuesets/RA-FlagCode.fsh index 9b29db2..02b7a7f 100644 --- a/input/fsh/valuesets/RA-FlagCode.fsh +++ b/input/fsh/valuesets/RA-FlagCode.fsh @@ -1,18 +1,17 @@ ValueSet: RA-FlagCode Id: RA-FlagCode -Title: "Reasonable Adjustments Record Flag Code" +Title: "ReasonableAdjustmentsFlagCode" Description: "A ValueSet to identify codes representing Adjustments required for a patient" + +* ^name = "ReasonableAdjustmentsFlagCode" * ^url = "https://fhir.nhs.uk/England/ValueSet/RA-FlagCode" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." +* ^experimental = false + +* insert NHSEngland-PublisherContactCopyright + * ^expansion.timestamp = "2024-02-14T12:00:00+00:00" * ^expansion.contains[0].system = "http://snomed.info/sct" * ^expansion.contains[=].code = #441092009 diff --git a/input/fsh/valuesets/RA-ProvenanceRole.fsh b/input/fsh/valuesets/RA-ProvenanceRole.fsh index 34c12dc..207b113 100644 --- a/input/fsh/valuesets/RA-ProvenanceRole.fsh +++ b/input/fsh/valuesets/RA-ProvenanceRole.fsh @@ -1,25 +1,17 @@ -Alias: $contractsignertypecodes = http://www.hl7.org/fhir/contractsignertypecodes -Alias: $RoleClass = http://hl7.org/fhir/v3/RoleClass -Alias: $RoleCode = http://hl7.org/fhir/v3/RoleCode -Alias: $ParticipationFunction = http://hl7.org/fhir/v3/ParticipationFunction -Alias: $ParticipationType = http://hl7.org/fhir/v3/ParticipationType -Alias: $extra-security-role-type = http://hl7.org/fhir/extra-security-role-type - ValueSet: RA-ProvenanceRole Id: RA-ProvenanceRole +Title: "ReasonableAdjustmentsProvenanceRole" Description: "A ValueSet to identify the role in which someone recording provenance is acting" + * ^name = "ReasonableAdjustmentsProvenanceRole" * ^url = "https://fhir.nhs.uk/England/ValueSet/RA-ProvenanceRole" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." +* ^experimental = false + +* insert NHSEngland-PublisherContactCopyright + * $CareConnect-SDSJobRoleName-1#R0010 "Medical Director" * $CareConnect-SDSJobRoleName-1#R0020 "Clinical Director - Medical" * $CareConnect-SDSJobRoleName-1#R0210 "Director of Public Health" diff --git a/input/fsh/valuesets/RA-ProxyRole.fsh b/input/fsh/valuesets/RA-ProxyRole.fsh index 783b711..aa6873c 100644 --- a/input/fsh/valuesets/RA-ProxyRole.fsh +++ b/input/fsh/valuesets/RA-ProxyRole.fsh @@ -2,17 +2,16 @@ ValueSet: RA-ProxyRole Id: RA-ProxyRole Title: "Reasonable Adjustments Record Proxy Role" Description: "A ValueSet to identify the type/role of the proxy involved." + +* ^name = "ReasonableAdjustmentsProxyRole" * ^url = "https://fhir.nhs.uk/England/ValueSet/RA-ProxyRole" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" -* ^publisher = "NHS England" -* ^contact.name = "NHS England" -* ^contact.telecom.system = #email -* ^contact.telecom.value = "interoperabilityteam@nhs.net" -* ^contact.telecom.use = #work -* ^contact.telecom.rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." +* ^experimental = false + +* insert NHSEngland-PublisherContactCopyright + * ^expansion.timestamp = "2024-02-14T12:00:00+00:00" * ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ProxyRole" * ^expansion.contains[=].code = #001 diff --git a/input/resources/CareConnect-SDSJobRoleName-1.json b/input/resources/CareConnect-SDSJobRoleName-1.json new file mode 100644 index 0000000..48d2bc9 --- /dev/null +++ b/input/resources/CareConnect-SDSJobRoleName-1.json @@ -0,0 +1,1593 @@ +{ + "resourceType" : "CodeSystem", + "id" : "CareConnect-SDSJobRoleName-1", + "text" : { + "status" : "generated", + "div" : "

This code system https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 defines the following codes:

CodeDisplay
R0010 Medical Director
R0020 Clinical Director - Medical
R0210 Director of Public Health
R0030 Professor
R0040 Senior Lecturer
R0050 Consultant
R0060 Special Salary Scale in Public Health Medicine
R0070 Associate Specialist
R0080 Staff Grade
R0090 Hospital Practitioner
R0100 Clinical Assistant
R0110 Specialist Registrar
R0120 Senior Registrar (Closed)
R0130 Registrar (Closed)
R0140 Senior House Officer
R0150 House Officer - Pre Registration
R0160 House Officer - Post Registration
R0170 Trust Grade Doctor - House Officer level
R0180 Trust Grade Doctor - SHO level
R0190 Trust Grade Doctor - Specialist Registrar level
R0200 Trust Grade Doctor - Career Grade level
R0260 General Medical Practitioner
R0270 Salaried General Practitioner
R1981 Psychiatrist
R1984 Health Records Administrator
R6200 GP Registrar
R6300 Sessional GP
R7140 ODP
R7150 SODP
R9100 A&E Staff Nurse (Temporary) London Cluster Only
R9101 A&E Manager (Temporary) London Cluster Only
R9102 A&E Doctor (Temporary) London Cluster only
R9103 A&E Student (Temporary) London Cluster Only
R9104 A&E Clerk (Temporary) London Cluster Only
R0215 Assistant Clinical Medical Officer
R0220 Clinical Medical Officer
R0230 Senior Clinical Medical Officer
R0240 Other Community Health Service
R0243 Other Community Health Service - Social Care Worker
R0247 Other Community Health Service - Admin Clerk
R0055 Dental Surgeon acting as Hospital Consultant
R0250 General Dental Practitioner
R0280 Regional Dental Officer
R0290 Dental Clinical Director - Dental
R0295 Dental Assistant Clinical Director
R0300 Dental Officer
R0310 Senior Dental Officer
R0320 Salaried Dental Practitioner
R0006 Student Community Practitioner
R0330 Student Nurse - Adult Branch
R0340 Student Nurse - Child Branch
R0350 Student Nurse - Mental Health Branch
R0360 Student Nurse - Learning Disabilities Branch
R0370 Student Midwife
R0380 Student Health Visitor
R0390 Student District Nurse
R0400 Student School Nurse
R0410 Student Practice Nurse
R0420 Student Occupational Health Nurse
R0430 Student Community Paediatric Nurse
R0440 Student Community Mental Health Nurse
R0450 Student Community Learning Disabilities Nurse
R0460 Student Chiropodist
R0470 Student Dietitian
R0480 Student Occupational Therapist
R0490 Student Orthoptist
R0500 Student Physiotherapist
R0510 Student Radiographer - Diagnostic
R0520 Student Radiographer - Therapeutic
R0530 Student Speech & Language Therapist
R0540 Art, Music & Drama Student
R0550 Student Psychotherapist
R6400 Medical Student
R0560 Director of Nursing
R0580 Nurse Manager
R0610 Sister/Charge Nurse
R1976 Community Team Manager
R0570 Nurse Consultant
R0600 Specialist Nurse Practitioner
R0620 Staff Nurse
R0630 Enrolled Nurse
R0690 Community Practitioner
R0700 Community Nurse
R1974 Community Learning Disabilities Nurse
R1975 Community Mental Health Nurse
R0590 Modern Matron
R1972 Clinical Team Manager
R0640 Midwife - Consultant
R0650 Midwife - Specialist Practitioner
R0660 Midwife - Manager
R0670 Midwife - Sister/Charge Nurse
R0680 Midwife
R0018 Audiologist
R0750 Chiropodist/Podiatrist
R0760 Chiropodist/Podiatrist Consultant
R0770 Chiropodist/Podiatrist Manager
R0780 Chiropodist/Podiatrist Specialist Practitioner
R0790 Dietitian
R0800 Dietitian Consultant
R0810 Dietitian Manager
R0820 Dietitian Specialist Practitioner
R0950 Occupational Therapist
R0960 Occupational Therapist Consultant
R0970 Occupational Therapist Manager
R0980 Occupational Therapy Specialist Practitioner
R0990 Orthoptist
R1000 Orthoptist Consultant
R1010 Orthoptist Manager
R1020 Orthoptist Specialist Practitioner
R1110 Physiotherapist
R1120 Physiotherapist Consultant
R1130 Physiotherapist Manager
R1140 Physiotherapist Specialist Practitioner
R1070 Paramedic
R1080 Paramedic Consultant
R1090 Paramedic Manager
R1100 Paramedic Specialist Practitioner
R0003 Clinical Application Administrator
R0012 Radiographer
R0013 Student Radiographer
R0014 Radiologist
R0015 PACS Administrator
R0016 Reporting Radiographer
R0017 Assistant Practitioner
R1190 Radiographer - Diagnostic
R1200 Radiographer - Diagnostic, Consultant
R1210 Radiographer - Diagnostic, Manager
R1220 Radiographer - Diagnostic, Specialist Practitioner
R1230 Radiographer - Therapeutic
R1240 Radiographer - Therapeutic, Consultant
R1250 Radiographer - Therapeutic, Manager
R1260 Radiographer - Therapeutic, Specialist Practitioner
R1030 Orthotist
R1040 Orthotist Consultant
R1050 Orthotist Manager
R1060 Orthotist Specialist Practitioner
R1150 Prosthetist
R1160 Prosthetist Consultant
R1170 Prosthetist Manager
R1180 Prosthetist Specialist Practitioner
R0710 Art Therapist
R0720 Art Therapist Consultant
R0730 Art Therapist Manager
R0740 Art Therapist Specialist Practitioner
R0830 Drama Therapist
R0840 Drama Therapist Consultant
R0850 Drama Therapist Manager
R0860 Drama Therapist Specialist Practitioner
R0870 Multi Therapist
R0880 Multi Therapist Consultant
R0890 Multi Therapist Manager
R0900 Multi Therapist Specialist Practitioner
R0910 Music Therapist
R0920 Music Therapist Consultant
R0930 Music Therapist Manager
R0940 Music Therapist Specialist Practitioner
R0955 Speech & Language Therapist
R0965 Speech & Language Therapist Consultant
R0975 Speech & Language Therapist Manager
R0985 Speech & Language Therapist Specialist Practitioner
R9500 Social Services Senior Management
R9505 Social Services Policy and Planning
R9510 Social Services Information Manager
R9515 Social Work Team Manager (Children)
R9520 Senior Social Worker (Children)
R9525 Social Services Care Manager (Children)
R9530 Social Work Assistant (Children)
R9535 Child Protection Worker
R9540 Family Placement Worker
R9545 Community Worker (Children)
R9550 Occupational Therapist
R9555 Occupational Therapist Assistant
R9560 Occupational Therapy Team Manager
R9565 Social Work Team Manager (Adults)
R9570 Senior Social Worker (Adults)
R9575 Social Services Care Manager (Adults)
R9580 Social Work Assistant (Adults)
R9585 Social Work Team Manager (Mental Health)
R9590 Senior Social Worker (Mental Health)
R9595 Social Services Care Manager (Mental Health)
R9600 Social Work Assistant (Mental Health)
R9605 Emergency Duty Social Worker
R9615 Social Services Driver
R9620 Home Care Organiser
R9625 Home Care Administrator
R9630 Home Help
R9635 Warden
R9640 Meals on Wheels Organiser
R9645 Meals Delivery
R9650 Day Centre Manager
R9655 Day Centre Deputy
R9660 Day Centre Officer
R9665 Day Centre Care Staff
R9670 Family Centre Manager
R9675 Family Centre Deputy
R9680 Family Centre Worker
R9685 Nursery Manager
R9690 Nursery Deputy
R9695 Nursery Worker
R9700 Playgroup Leader
R9705 Playgroup Assistant
R9710 Residential Manager
R9715 Residential Deputy
R9720 Residential Worker
R9725 Residential Care Staff
R9730 Intermediate Care Manager
R9735 Intermediate Care Deputy
R9740 Intermediate Care Worker
R9745 Intermediate Care Staff
R9750 Social Care SAP User
R9755 Social Care SAP Manager
R1270 Clinical Director
R1280 Optometrist
R1290 Pharmacist
R1979 Medical Technical Officer - Pharmacy
R1300 Psychotherapist
R1310 Clinical Psychologist
R1320 Chaplain
R1330 Social Worker
R1340 Approved Social Worker
R1350 Youth Worker
R1360 Specialist Practitioner
R1370 Practitioner
R0011 Dispenser
R1380 Technician - PS&T
R1390 Osteopath
R1400 Healthcare Scientist
R1410 Consultant Healthcare Scientist
R1420 Biomedical Scientist
R0019 Medical Technical Officer
R1430 Technician - Healthcare Scientists
R1440 Therapist
R1540 Associate Practitioner
R1543 Associate Practitioner - Nurse
R1547 Associate Practitioner - General Practitioner
R1560 Helper/Assistant
R1600 Cytoscreener
R1570 Dental Surgery Assistant
R1450 Health Care Support Worker
R1580 Medical Laboratory Assistant
R1550 Counsellor
R0002 Porter
R1690 Call Operator
R1700 Gateway Worker
R1710 Support, Time, Recovery Worker
R1480 Healthcare Assistant
R1490 Nursery Nurse
R1590 Phlebotomist
R1460 Social Care Support Worker
R1470 Home Help
R1520 Technician - Additional Clinical Services
R1530 Technical Instructor
R1980 Patient Welfare Officer
R1500 Play Therapist
R1510 Play Specialist
R1610 Student Technician
R1620 Trainee Scientist
R1630 Trainee Practitioner
R1640 Nursing Cadet
R1650 Healthcare Cadet
R1660 Pre-reg Pharmacist
R1670 Assistant Psychologist
R1680 Assistant Psychotherapist
R0007 ERS SDS Organisation Reporting Analyst
R0008 Demographic Supervisor
R0021 DSA NHS Number Manager (Temporary)
R0022 DSA National Clinical Supervisor (Temporary)
R0023 DSA National Clinical Administrator (Temporary)
R1720 Clerical Worker
R1730 Receptionist
R1740 Secretary
R1750 Personal Assistant
R1751 Demographic Administrator (Sensitive Records) Temporary
R1760 Medical Secretary
R1770 Officer
R1971 Map of Medicine Administrator
R1973 Community Administrator
R1977 ECC/CPA Administrator
R1978 Information Officer
R1985 Health Records Clerk
R1995 End Point Approver
R5010 Network Technician
R5040 Desktop Support Administrator
R5090 Registration Authority Agent
R5110 Demographic Administrator
R5120 ISP Administrator
R5130 Technical Codes Administrator
R5140 OSS Administrator
R5170 End Point Administrator
R5175 End Point Viewer
R5181 RTS Dashboard User
R5183 RTS BT Dashboard User
R5186 ERS BT Customer SLA User
R5188 ERS BT Supplier SLA User
R5189 ERS LogicaCMG SLA User
R5190 Content Creator
R5195 Content Publisher
R5210 User Details Administrator
R5250 EBS Administrator
R6010 Appointments Clerk
R6030 Ward Clerk
R6050 Clinical Coder
R6060 Medical Records Clerk
R6080 Waiting List Clerk
R7100 Trainer
R7110 Training Manager
R7120 Directory of Services Coordinator
R9756 ETP System Administrator
R1780 Manager
R1790 Senior Manager
R1910 Chair
R1920 Chief Executive
R1930 Finance Director
R1940 Other Executive Director
R1950 Board Level Director
R1960 Non Executive Director
R1970 Childcare Co-ordinator
R1982 Senior Administrator
R1983 Ward Manager
R1986 Workgroup Administrator
R1987 National RBAC Attribute Administrator
R1988 National RBAC Baseline Policy Administrator
R1989 Complaints Coordinator
R1990 Complaints Investigator
R1996 End Point DNS Administrator
R1997 End Point Spine Administrator
R1998 End Point Super User
R1999 End Point Service Administrator
R5000 Network Administrator
R5003 Cluster System Administrator
R5007 System Administrator
R5020 Helpdesk Administrator
R5060 Security Policy Controller
R5070 Senior Security Manager
R5072 Root Registration Authority Manager
R5080 Registration Authority Manager
R5100 Audit Manager
R5105 Caldicott Guardian
R5180 NASP Service Manager
R5182 ERS ETP System Administrator
R5184 ERS Spine SLA Manager
R5185 ERS BT Customer SLA Manager
R5187 ERS BT Supplier SLA Manager
R5191 ERS Support Administrator
R5192 ECS Administrator
R5300 Portal Administrator
R5310 LiquidLogic Administrator
R5320 i.EPR Administrator
R5330 Synergy Administrator
R5340 SystmOne Administrator
R6020 Outpatient Manager
R6040 Bed Manager
R6070 Medical Records Manager
R6090 Waiting List Manager
R6100 Mental Health Act Administrator
R6160 Ad-hoc Report Manager
R7130 PAS Manager
R1800 Technician - Admin & Clerical
R1810 Accountant
R1820 Librarian
R1830 Interpreter
R1840 Analyst
R1850 Adviser
R1860 Researcher
R1870 Control Assistant
R1880 Architect
R1890 Lawyer
R1900 Surveyor
R5030 Helpdesk Technician
R5050 Desktop Support Technician
R5150 System Worker
R5400 Availability Monitor
R8000 Clinical Practitioner Access Role
R8001 Nurse Access Role
R8002 Nurse Manager Access Role
R8003 Health Professional Access Role
R8004 Healthcare Student Access Role
R8016 Midwife Access Role
R8017 Midwife Manager Access Role
R8024 Bank Access Role
R8005 Biomedical Scientist Access Role
R8006 Medical Secretary Access Role
R8007 Clinical Coder Access Role
R8008 Admin/Clinical Support Access Role
R8015 Systems Support Access Role
R0001 Privacy Officer
R8009 Receptionist Access Role
R8010 Clerical Access Role
R8011 Clerical Manager Access Role
R8012 Information Officer Access Role
R8013 Health Records Manager Access Role
R8014 Social Worker Access Role
" + }, + "url" : "https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1", + "version" : "0.1.0", + "name" : "Care Connect SDS Job Role Name", + "status" : "draft", + "date" : "2018-11-01T00:00:00+00:00", + "publisher" : "Interweave Publisher", + "contact" : [{ + "name" : "Interweave Publisher", + "telecom" : [{ + "system" : "url", + "value" : "https://fhir.yhcr.nhs.uk/yhcr-publisher" + }] + }], + "description" : "A CodeSystem that identifies the job role associated with the person on the smart card. This consists of a set of Role Based Access Control (RBAC) codes. This code list is externally maintained.", + "copyright" : "Copyright © 2016 HL7 UK", + "caseSensitive" : true, + "content" : "complete", + "concept" : [{ + "code" : "R0010", + "display" : "Medical Director" + }, + { + "code" : "R0020", + "display" : "Clinical Director - Medical" + }, + { + "code" : "R0210", + "display" : "Director of Public Health" + }, + { + "code" : "R0030", + "display" : "Professor" + }, + { + "code" : "R0040", + "display" : "Senior Lecturer" + }, + { + "code" : "R0050", + "display" : "Consultant" + }, + { + "code" : "R0060", + "display" : "Special Salary Scale in Public Health Medicine" + }, + { + "code" : "R0070", + "display" : "Associate Specialist" + }, + { + "code" : "R0080", + "display" : "Staff Grade" + }, + { + "code" : "R0090", + "display" : "Hospital Practitioner" + }, + { + "code" : "R0100", + "display" : "Clinical Assistant" + }, + { + "code" : "R0110", + "display" : "Specialist Registrar" + }, + { + "code" : "R0120", + "display" : "Senior Registrar (Closed)" + }, + { + "code" : "R0130", + "display" : "Registrar (Closed)" + }, + { + "code" : "R0140", + "display" : "Senior House Officer" + }, + { + "code" : "R0150", + "display" : "House Officer - Pre Registration" + }, + { + "code" : "R0160", + "display" : "House Officer - Post Registration" + }, + { + "code" : "R0170", + "display" : "Trust Grade Doctor - House Officer level" + }, + { + "code" : "R0180", + "display" : "Trust Grade Doctor - SHO level" + }, + { + "code" : "R0190", + "display" : "Trust Grade Doctor - Specialist Registrar level" + }, + { + "code" : "R0200", + "display" : "Trust Grade Doctor - Career Grade level" + }, + { + "code" : "R0260", + "display" : "General Medical Practitioner" + }, + { + "code" : "R0270", + "display" : "Salaried General Practitioner" + }, + { + "code" : "R1981", + "display" : "Psychiatrist" + }, + { + "code" : "R1984", + "display" : "Health Records Administrator" + }, + { + "code" : "R6200", + "display" : "GP Registrar" + }, + { + "code" : "R6300", + "display" : "Sessional GP" + }, + { + "code" : "R7140", + "display" : "ODP" + }, + { + "code" : "R7150", + "display" : "SODP" + }, + { + "code" : "R9100", + "display" : "A&E Staff Nurse (Temporary) London Cluster Only" + }, + { + "code" : "R9101", + "display" : "A&E Manager (Temporary) London Cluster Only" + }, + { + "code" : "R9102", + "display" : "A&E Doctor (Temporary) London Cluster only" + }, + { + "code" : "R9103", + "display" : "A&E Student (Temporary) London Cluster Only" + }, + { + "code" : "R9104", + "display" : "A&E Clerk (Temporary) London Cluster Only" + }, + { + "code" : "R0215", + "display" : "Assistant Clinical Medical Officer" + }, + { + "code" : "R0220", + "display" : "Clinical Medical Officer" + }, + { + "code" : "R0230", + "display" : "Senior Clinical Medical Officer" + }, + { + "code" : "R0240", + "display" : "Other Community Health Service" + }, + { + "code" : "R0243", + "display" : "Other Community Health Service - Social Care Worker" + }, + { + "code" : "R0247", + "display" : "Other Community Health Service - Admin Clerk" + }, + { + "code" : "R0055", + "display" : "Dental Surgeon acting as Hospital Consultant" + }, + { + "code" : "R0250", + "display" : "General Dental Practitioner" + }, + { + "code" : "R0280", + "display" : "Regional Dental Officer" + }, + { + "code" : "R0290", + "display" : "Dental Clinical Director - Dental" + }, + { + "code" : "R0295", + "display" : "Dental Assistant Clinical Director" + }, + { + "code" : "R0300", + "display" : "Dental Officer" + }, + { + "code" : "R0310", + "display" : "Senior Dental Officer" + }, + { + "code" : "R0320", + "display" : "Salaried Dental Practitioner" + }, + { + "code" : "R0006", + "display" : "Student Community Practitioner" + }, + { + "code" : "R0330", + "display" : "Student Nurse - Adult Branch" + }, + { + "code" : "R0340", + "display" : "Student Nurse - Child Branch" + }, + { + "code" : "R0350", + "display" : "Student Nurse - Mental Health Branch" + }, + { + "code" : "R0360", + "display" : "Student Nurse - Learning Disabilities Branch" + }, + { + "code" : "R0370", + "display" : "Student Midwife" + }, + { + "code" : "R0380", + "display" : "Student Health Visitor" + }, + { + "code" : "R0390", + "display" : "Student District Nurse" + }, + { + "code" : "R0400", + "display" : "Student School Nurse" + }, + { + "code" : "R0410", + "display" : "Student Practice Nurse" + }, + { + "code" : "R0420", + "display" : "Student Occupational Health Nurse" + }, + { + "code" : "R0430", + "display" : "Student Community Paediatric Nurse" + }, + { + "code" : "R0440", + "display" : "Student Community Mental Health Nurse" + }, + { + "code" : "R0450", + "display" : "Student Community Learning Disabilities Nurse" + }, + { + "code" : "R0460", + "display" : "Student Chiropodist" + }, + { + "code" : "R0470", + "display" : "Student Dietitian" + }, + { + "code" : "R0480", + "display" : "Student Occupational Therapist" + }, + { + "code" : "R0490", + "display" : "Student Orthoptist" + }, + { + "code" : "R0500", + "display" : "Student Physiotherapist" + }, + { + "code" : "R0510", + "display" : "Student Radiographer - Diagnostic" + }, + { + "code" : "R0520", + "display" : "Student Radiographer - Therapeutic" + }, + { + "code" : "R0530", + "display" : "Student Speech & Language Therapist" + }, + { + "code" : "R0540", + "display" : "Art, Music & Drama Student" + }, + { + "code" : "R0550", + "display" : "Student Psychotherapist" + }, + { + "code" : "R6400", + "display" : "Medical Student" + }, + { + "code" : "R0560", + "display" : "Director of Nursing" + }, + { + "code" : "R0580", + "display" : "Nurse Manager" + }, + { + "code" : "R0610", + "display" : "Sister/Charge Nurse" + }, + { + "code" : "R1976", + "display" : "Community Team Manager" + }, + { + "code" : "R0570", + "display" : "Nurse Consultant" + }, + { + "code" : "R0600", + "display" : "Specialist Nurse Practitioner" + }, + { + "code" : "R0620", + "display" : "Staff Nurse" + }, + { + "code" : "R0630", + "display" : "Enrolled Nurse" + }, + { + "code" : "R0690", + "display" : "Community Practitioner" + }, + { + "code" : "R0700", + "display" : "Community Nurse" + }, + { + "code" : "R1974", + "display" : "Community Learning Disabilities Nurse" + }, + { + "code" : "R1975", + "display" : "Community Mental Health Nurse" + }, + { + "code" : "R0590", + "display" : "Modern Matron" + }, + { + "code" : "R1972", + "display" : "Clinical Team Manager" + }, + { + "code" : "R0640", + "display" : "Midwife - Consultant" + }, + { + "code" : "R0650", + "display" : "Midwife - Specialist Practitioner" + }, + { + "code" : "R0660", + "display" : "Midwife - Manager" + }, + { + "code" : "R0670", + "display" : "Midwife - Sister/Charge Nurse" + }, + { + "code" : "R0680", + "display" : "Midwife" + }, + { + "code" : "R0018", + "display" : "Audiologist" + }, + { + "code" : "R0750", + "display" : "Chiropodist/Podiatrist" + }, + { + "code" : "R0760", + "display" : "Chiropodist/Podiatrist Consultant" + }, + { + "code" : "R0770", + "display" : "Chiropodist/Podiatrist Manager" + }, + { + "code" : "R0780", + "display" : "Chiropodist/Podiatrist Specialist Practitioner" + }, + { + "code" : "R0790", + "display" : "Dietitian" + }, + { + "code" : "R0800", + "display" : "Dietitian Consultant" + }, + { + "code" : "R0810", + "display" : "Dietitian Manager" + }, + { + "code" : "R0820", + "display" : "Dietitian Specialist Practitioner" + }, + { + "code" : "R0950", + "display" : "Occupational Therapist" + }, + { + "code" : "R0960", + "display" : "Occupational Therapist Consultant" + }, + { + "code" : "R0970", + "display" : "Occupational Therapist Manager" + }, + { + "code" : "R0980", + "display" : "Occupational Therapy Specialist Practitioner" + }, + { + "code" : "R0990", + "display" : "Orthoptist" + }, + { + "code" : "R1000", + "display" : "Orthoptist Consultant" + }, + { + "code" : "R1010", + "display" : "Orthoptist Manager" + }, + { + "code" : "R1020", + "display" : "Orthoptist Specialist Practitioner" + }, + { + "code" : "R1110", + "display" : "Physiotherapist" + }, + { + "code" : "R1120", + "display" : "Physiotherapist Consultant" + }, + { + "code" : "R1130", + "display" : "Physiotherapist Manager" + }, + { + "code" : "R1140", + "display" : "Physiotherapist Specialist Practitioner" + }, + { + "code" : "R1070", + "display" : "Paramedic" + }, + { + "code" : "R1080", + "display" : "Paramedic Consultant" + }, + { + "code" : "R1090", + "display" : "Paramedic Manager" + }, + { + "code" : "R1100", + "display" : "Paramedic Specialist Practitioner" + }, + { + "code" : "R0003", + "display" : "Clinical Application Administrator" + }, + { + "code" : "R0012", + "display" : "Radiographer" + }, + { + "code" : "R0013", + "display" : "Student Radiographer" + }, + { + "code" : "R0014", + "display" : "Radiologist" + }, + { + "code" : "R0015", + "display" : "PACS Administrator" + }, + { + "code" : "R0016", + "display" : "Reporting Radiographer" + }, + { + "code" : "R0017", + "display" : "Assistant Practitioner" + }, + { + "code" : "R1190", + "display" : "Radiographer - Diagnostic" + }, + { + "code" : "R1200", + "display" : "Radiographer - Diagnostic, Consultant" + }, + { + "code" : "R1210", + "display" : "Radiographer - Diagnostic, Manager" + }, + { + "code" : "R1220", + "display" : "Radiographer - Diagnostic, Specialist Practitioner" + }, + { + "code" : "R1230", + "display" : "Radiographer - Therapeutic" + }, + { + "code" : "R1240", + "display" : "Radiographer - Therapeutic, Consultant" + }, + { + "code" : "R1250", + "display" : "Radiographer - Therapeutic, Manager" + }, + { + "code" : "R1260", + "display" : "Radiographer - Therapeutic, Specialist Practitioner" + }, + { + "code" : "R1030", + "display" : "Orthotist" + }, + { + "code" : "R1040", + "display" : "Orthotist Consultant" + }, + { + "code" : "R1050", + "display" : "Orthotist Manager" + }, + { + "code" : "R1060", + "display" : "Orthotist Specialist Practitioner" + }, + { + "code" : "R1150", + "display" : "Prosthetist" + }, + { + "code" : "R1160", + "display" : "Prosthetist Consultant" + }, + { + "code" : "R1170", + "display" : "Prosthetist Manager" + }, + { + "code" : "R1180", + "display" : "Prosthetist Specialist Practitioner" + }, + { + "code" : "R0710", + "display" : "Art Therapist" + }, + { + "code" : "R0720", + "display" : "Art Therapist Consultant" + }, + { + "code" : "R0730", + "display" : "Art Therapist Manager" + }, + { + "code" : "R0740", + "display" : "Art Therapist Specialist Practitioner" + }, + { + "code" : "R0830", + "display" : "Drama Therapist" + }, + { + "code" : "R0840", + "display" : "Drama Therapist Consultant" + }, + { + "code" : "R0850", + "display" : "Drama Therapist Manager" + }, + { + "code" : "R0860", + "display" : "Drama Therapist Specialist Practitioner" + }, + { + "code" : "R0870", + "display" : "Multi Therapist" + }, + { + "code" : "R0880", + "display" : "Multi Therapist Consultant" + }, + { + "code" : "R0890", + "display" : "Multi Therapist Manager" + }, + { + "code" : "R0900", + "display" : "Multi Therapist Specialist Practitioner" + }, + { + "code" : "R0910", + "display" : "Music Therapist" + }, + { + "code" : "R0920", + "display" : "Music Therapist Consultant" + }, + { + "code" : "R0930", + "display" : "Music Therapist Manager" + }, + { + "code" : "R0940", + "display" : "Music Therapist Specialist Practitioner" + }, + { + "code" : "R0955", + "display" : "Speech & Language Therapist" + }, + { + "code" : "R0965", + "display" : "Speech & Language Therapist Consultant" + }, + { + "code" : "R0975", + "display" : "Speech & Language Therapist Manager" + }, + { + "code" : "R0985", + "display" : "Speech & Language Therapist Specialist Practitioner" + }, + { + "code" : "R9500", + "display" : "Social Services Senior Management" + }, + { + "code" : "R9505", + "display" : "Social Services Policy and Planning" + }, + { + "code" : "R9510", + "display" : "Social Services Information Manager" + }, + { + "code" : "R9515", + "display" : "Social Work Team Manager (Children)" + }, + { + "code" : "R9520", + "display" : "Senior Social Worker (Children)" + }, + { + "code" : "R9525", + "display" : "Social Services Care Manager (Children)" + }, + { + "code" : "R9530", + "display" : "Social Work Assistant (Children)" + }, + { + "code" : "R9535", + "display" : "Child Protection Worker" + }, + { + "code" : "R9540", + "display" : "Family Placement Worker" + }, + { + "code" : "R9545", + "display" : "Community Worker (Children)" + }, + { + "code" : "R9550", + "display" : "Occupational Therapist" + }, + { + "code" : "R9555", + "display" : "Occupational Therapist Assistant" + }, + { + "code" : "R9560", + "display" : "Occupational Therapy Team Manager" + }, + { + "code" : "R9565", + "display" : "Social Work Team Manager (Adults)" + }, + { + "code" : "R9570", + "display" : "Senior Social Worker (Adults)" + }, + { + "code" : "R9575", + "display" : "Social Services Care Manager (Adults)" + }, + { + "code" : "R9580", + "display" : "Social Work Assistant (Adults)" + }, + { + "code" : "R9585", + "display" : "Social Work Team Manager (Mental Health)" + }, + { + "code" : "R9590", + "display" : "Senior Social Worker (Mental Health)" + }, + { + "code" : "R9595", + "display" : "Social Services Care Manager (Mental Health)" + }, + { + "code" : "R9600", + "display" : "Social Work Assistant (Mental Health)" + }, + { + "code" : "R9605", + "display" : "Emergency Duty Social Worker" + }, + { + "code" : "R9615", + "display" : "Social Services Driver" + }, + { + "code" : "R9620", + "display" : "Home Care Organiser" + }, + { + "code" : "R9625", + "display" : "Home Care Administrator" + }, + { + "code" : "R9630", + "display" : "Home Help" + }, + { + "code" : "R9635", + "display" : "Warden" + }, + { + "code" : "R9640", + "display" : "Meals on Wheels Organiser" + }, + { + "code" : "R9645", + "display" : "Meals Delivery" + }, + { + "code" : "R9650", + "display" : "Day Centre Manager" + }, + { + "code" : "R9655", + "display" : "Day Centre Deputy" + }, + { + "code" : "R9660", + "display" : "Day Centre Officer" + }, + { + "code" : "R9665", + "display" : "Day Centre Care Staff" + }, + { + "code" : "R9670", + "display" : "Family Centre Manager" + }, + { + "code" : "R9675", + "display" : "Family Centre Deputy" + }, + { + "code" : "R9680", + "display" : "Family Centre Worker" + }, + { + "code" : "R9685", + "display" : "Nursery Manager" + }, + { + "code" : "R9690", + "display" : "Nursery Deputy" + }, + { + "code" : "R9695", + "display" : "Nursery Worker" + }, + { + "code" : "R9700", + "display" : "Playgroup Leader" + }, + { + "code" : "R9705", + "display" : "Playgroup Assistant" + }, + { + "code" : "R9710", + "display" : "Residential Manager" + }, + { + "code" : "R9715", + "display" : "Residential Deputy" + }, + { + "code" : "R9720", + "display" : "Residential Worker" + }, + { + "code" : "R9725", + "display" : "Residential Care Staff" + }, + { + "code" : "R9730", + "display" : "Intermediate Care Manager" + }, + { + "code" : "R9735", + "display" : "Intermediate Care Deputy" + }, + { + "code" : "R9740", + "display" : "Intermediate Care Worker" + }, + { + "code" : "R9745", + "display" : "Intermediate Care Staff" + }, + { + "code" : "R9750", + "display" : "Social Care SAP User" + }, + { + "code" : "R9755", + "display" : "Social Care SAP Manager" + }, + { + "code" : "R1270", + "display" : "Clinical Director" + }, + { + "code" : "R1280", + "display" : "Optometrist" + }, + { + "code" : "R1290", + "display" : "Pharmacist" + }, + { + "code" : "R1979", + "display" : "Medical Technical Officer - Pharmacy" + }, + { + "code" : "R1300", + "display" : "Psychotherapist" + }, + { + "code" : "R1310", + "display" : "Clinical Psychologist" + }, + { + "code" : "R1320", + "display" : "Chaplain" + }, + { + "code" : "R1330", + "display" : "Social Worker" + }, + { + "code" : "R1340", + "display" : "Approved Social Worker" + }, + { + "code" : "R1350", + "display" : "Youth Worker" + }, + { + "code" : "R1360", + "display" : "Specialist Practitioner" + }, + { + "code" : "R1370", + "display" : "Practitioner" + }, + { + "code" : "R0011", + "display" : "Dispenser" + }, + { + "code" : "R1380", + "display" : "Technician - PS&T" + }, + { + "code" : "R1390", + "display" : "Osteopath" + }, + { + "code" : "R1400", + "display" : "Healthcare Scientist" + }, + { + "code" : "R1410", + "display" : "Consultant Healthcare Scientist" + }, + { + "code" : "R1420", + "display" : "Biomedical Scientist" + }, + { + "code" : "R0019", + "display" : "Medical Technical Officer" + }, + { + "code" : "R1430", + "display" : "Technician - Healthcare Scientists" + }, + { + "code" : "R1440", + "display" : "Therapist" + }, + { + "code" : "R1540", + "display" : "Associate Practitioner" + }, + { + "code" : "R1543", + "display" : "Associate Practitioner - Nurse" + }, + { + "code" : "R1547", + "display" : "Associate Practitioner - General Practitioner" + }, + { + "code" : "R1560", + "display" : "Helper/Assistant" + }, + { + "code" : "R1600", + "display" : "Cytoscreener" + }, + { + "code" : "R1570", + "display" : "Dental Surgery Assistant" + }, + { + "code" : "R1450", + "display" : "Health Care Support Worker" + }, + { + "code" : "R1580", + "display" : "Medical Laboratory Assistant" + }, + { + "code" : "R1550", + "display" : "Counsellor" + }, + { + "code" : "R0002", + "display" : "Porter" + }, + { + "code" : "R1690", + "display" : "Call Operator" + }, + { + "code" : "R1700", + "display" : "Gateway Worker" + }, + { + "code" : "R1710", + "display" : "Support, Time, Recovery Worker" + }, + { + "code" : "R1480", + "display" : "Healthcare Assistant" + }, + { + "code" : "R1490", + "display" : "Nursery Nurse" + }, + { + "code" : "R1590", + "display" : "Phlebotomist" + }, + { + "code" : "R1460", + "display" : "Social Care Support Worker" + }, + { + "code" : "R1470", + "display" : "Home Help" + }, + { + "code" : "R1520", + "display" : "Technician - Additional Clinical Services" + }, + { + "code" : "R1530", + "display" : "Technical Instructor" + }, + { + "code" : "R1980", + "display" : "Patient Welfare Officer" + }, + { + "code" : "R1500", + "display" : "Play Therapist" + }, + { + "code" : "R1510", + "display" : "Play Specialist" + }, + { + "code" : "R1610", + "display" : "Student Technician" + }, + { + "code" : "R1620", + "display" : "Trainee Scientist" + }, + { + "code" : "R1630", + "display" : "Trainee Practitioner" + }, + { + "code" : "R1640", + "display" : "Nursing Cadet" + }, + { + "code" : "R1650", + "display" : "Healthcare Cadet" + }, + { + "code" : "R1660", + "display" : "Pre-reg Pharmacist" + }, + { + "code" : "R1670", + "display" : "Assistant Psychologist" + }, + { + "code" : "R1680", + "display" : "Assistant Psychotherapist" + }, + { + "code" : "R0007", + "display" : "ERS SDS Organisation Reporting Analyst" + }, + { + "code" : "R0008", + "display" : "Demographic Supervisor" + }, + { + "code" : "R0021", + "display" : "DSA NHS Number Manager (Temporary)" + }, + { + "code" : "R0022", + "display" : "DSA National Clinical Supervisor (Temporary)" + }, + { + "code" : "R0023", + "display" : "DSA National Clinical Administrator (Temporary)" + }, + { + "code" : "R1720", + "display" : "Clerical Worker" + }, + { + "code" : "R1730", + "display" : "Receptionist" + }, + { + "code" : "R1740", + "display" : "Secretary" + }, + { + "code" : "R1750", + "display" : "Personal Assistant" + }, + { + "code" : "R1751", + "display" : "Demographic Administrator (Sensitive Records) Temporary" + }, + { + "code" : "R1760", + "display" : "Medical Secretary" + }, + { + "code" : "R1770", + "display" : "Officer" + }, + { + "code" : "R1971", + "display" : "Map of Medicine Administrator" + }, + { + "code" : "R1973", + "display" : "Community Administrator" + }, + { + "code" : "R1977", + "display" : "ECC/CPA Administrator" + }, + { + "code" : "R1978", + "display" : "Information Officer" + }, + { + "code" : "R1985", + "display" : "Health Records Clerk" + }, + { + "code" : "R1995", + "display" : "End Point Approver" + }, + { + "code" : "R5010", + "display" : "Network Technician" + }, + { + "code" : "R5040", + "display" : "Desktop Support Administrator" + }, + { + "code" : "R5090", + "display" : "Registration Authority Agent" + }, + { + "code" : "R5110", + "display" : "Demographic Administrator" + }, + { + "code" : "R5120", + "display" : "ISP Administrator" + }, + { + "code" : "R5130", + "display" : "Technical Codes Administrator" + }, + { + "code" : "R5140", + "display" : "OSS Administrator" + }, + { + "code" : "R5170", + "display" : "End Point Administrator" + }, + { + "code" : "R5175", + "display" : "End Point Viewer" + }, + { + "code" : "R5181", + "display" : "RTS Dashboard User" + }, + { + "code" : "R5183", + "display" : "RTS BT Dashboard User" + }, + { + "code" : "R5186", + "display" : "ERS BT Customer SLA User" + }, + { + "code" : "R5188", + "display" : "ERS BT Supplier SLA User" + }, + { + "code" : "R5189", + "display" : "ERS LogicaCMG SLA User" + }, + { + "code" : "R5190", + "display" : "Content Creator" + }, + { + "code" : "R5195", + "display" : "Content Publisher" + }, + { + "code" : "R5210", + "display" : "User Details Administrator" + }, + { + "code" : "R5250", + "display" : "EBS Administrator" + }, + { + "code" : "R6010", + "display" : "Appointments Clerk" + }, + { + "code" : "R6030", + "display" : "Ward Clerk" + }, + { + "code" : "R6050", + "display" : "Clinical Coder" + }, + { + "code" : "R6060", + "display" : "Medical Records Clerk" + }, + { + "code" : "R6080", + "display" : "Waiting List Clerk" + }, + { + "code" : "R7100", + "display" : "Trainer" + }, + { + "code" : "R7110", + "display" : "Training Manager" + }, + { + "code" : "R7120", + "display" : "Directory of Services Coordinator" + }, + { + "code" : "R9756", + "display" : "ETP System Administrator" + }, + { + "code" : "R1780", + "display" : "Manager" + }, + { + "code" : "R1790", + "display" : "Senior Manager" + }, + { + "code" : "R1910", + "display" : "Chair" + }, + { + "code" : "R1920", + "display" : "Chief Executive" + }, + { + "code" : "R1930", + "display" : "Finance Director" + }, + { + "code" : "R1940", + "display" : "Other Executive Director" + }, + { + "code" : "R1950", + "display" : "Board Level Director" + }, + { + "code" : "R1960", + "display" : "Non Executive Director" + }, + { + "code" : "R1970", + "display" : "Childcare Co-ordinator" + }, + { + "code" : "R1982", + "display" : "Senior Administrator" + }, + { + "code" : "R1983", + "display" : "Ward Manager" + }, + { + "code" : "R1986", + "display" : "Workgroup Administrator" + }, + { + "code" : "R1987", + "display" : "National RBAC Attribute Administrator" + }, + { + "code" : "R1988", + "display" : "National RBAC Baseline Policy Administrator" + }, + { + "code" : "R1989", + "display" : "Complaints Coordinator" + }, + { + "code" : "R1990", + "display" : "Complaints Investigator" + }, + { + "code" : "R1996", + "display" : "End Point DNS Administrator" + }, + { + "code" : "R1997", + "display" : "End Point Spine Administrator" + }, + { + "code" : "R1998", + "display" : "End Point Super User" + }, + { + "code" : "R1999", + "display" : "End Point Service Administrator" + }, + { + "code" : "R5000", + "display" : "Network Administrator" + }, + { + "code" : "R5003", + "display" : "Cluster System Administrator" + }, + { + "code" : "R5007", + "display" : "System Administrator" + }, + { + "code" : "R5020", + "display" : "Helpdesk Administrator" + }, + { + "code" : "R5060", + "display" : "Security Policy Controller" + }, + { + "code" : "R5070", + "display" : "Senior Security Manager" + }, + { + "code" : "R5072", + "display" : "Root Registration Authority Manager" + }, + { + "code" : "R5080", + "display" : "Registration Authority Manager" + }, + { + "code" : "R5100", + "display" : "Audit Manager" + }, + { + "code" : "R5105", + "display" : "Caldicott Guardian" + }, + { + "code" : "R5180", + "display" : "NASP Service Manager" + }, + { + "code" : "R5182", + "display" : "ERS ETP System Administrator" + }, + { + "code" : "R5184", + "display" : "ERS Spine SLA Manager" + }, + { + "code" : "R5185", + "display" : "ERS BT Customer SLA Manager" + }, + { + "code" : "R5187", + "display" : "ERS BT Supplier SLA Manager" + }, + { + "code" : "R5191", + "display" : "ERS Support Administrator" + }, + { + "code" : "R5192", + "display" : "ECS Administrator" + }, + { + "code" : "R5300", + "display" : "Portal Administrator" + }, + { + "code" : "R5310", + "display" : "LiquidLogic Administrator" + }, + { + "code" : "R5320", + "display" : "i.EPR Administrator" + }, + { + "code" : "R5330", + "display" : "Synergy Administrator" + }, + { + "code" : "R5340", + "display" : "SystmOne Administrator" + }, + { + "code" : "R6020", + "display" : "Outpatient Manager" + }, + { + "code" : "R6040", + "display" : "Bed Manager" + }, + { + "code" : "R6070", + "display" : "Medical Records Manager" + }, + { + "code" : "R6090", + "display" : "Waiting List Manager" + }, + { + "code" : "R6100", + "display" : "Mental Health Act Administrator" + }, + { + "code" : "R6160", + "display" : "Ad-hoc Report Manager" + }, + { + "code" : "R7130", + "display" : "PAS Manager" + }, + { + "code" : "R1800", + "display" : "Technician - Admin & Clerical" + }, + { + "code" : "R1810", + "display" : "Accountant" + }, + { + "code" : "R1820", + "display" : "Librarian" + }, + { + "code" : "R1830", + "display" : "Interpreter" + }, + { + "code" : "R1840", + "display" : "Analyst" + }, + { + "code" : "R1850", + "display" : "Adviser" + }, + { + "code" : "R1860", + "display" : "Researcher" + }, + { + "code" : "R1870", + "display" : "Control Assistant" + }, + { + "code" : "R1880", + "display" : "Architect" + }, + { + "code" : "R1890", + "display" : "Lawyer" + }, + { + "code" : "R1900", + "display" : "Surveyor" + }, + { + "code" : "R5030", + "display" : "Helpdesk Technician" + }, + { + "code" : "R5050", + "display" : "Desktop Support Technician" + }, + { + "code" : "R5150", + "display" : "System Worker" + }, + { + "code" : "R5400", + "display" : "Availability Monitor" + }, + { + "code" : "R8000", + "display" : "Clinical Practitioner Access Role" + }, + { + "code" : "R8001", + "display" : "Nurse Access Role" + }, + { + "code" : "R8002", + "display" : "Nurse Manager Access Role" + }, + { + "code" : "R8003", + "display" : "Health Professional Access Role" + }, + { + "code" : "R8004", + "display" : "Healthcare Student Access Role" + }, + { + "code" : "R8016", + "display" : "Midwife Access Role" + }, + { + "code" : "R8017", + "display" : "Midwife Manager Access Role" + }, + { + "code" : "R8024", + "display" : "Bank Access Role" + }, + { + "code" : "R8005", + "display" : "Biomedical Scientist Access Role" + }, + { + "code" : "R8006", + "display" : "Medical Secretary Access Role" + }, + { + "code" : "R8007", + "display" : "Clinical Coder Access Role" + }, + { + "code" : "R8008", + "display" : "Admin/Clinical Support Access Role" + }, + { + "code" : "R8015", + "display" : "Systems Support Access Role" + }, + { + "code" : "R0001", + "display" : "Privacy Officer" + }, + { + "code" : "R8009", + "display" : "Receptionist Access Role" + }, + { + "code" : "R8010", + "display" : "Clerical Access Role" + }, + { + "code" : "R8011", + "display" : "Clerical Manager Access Role" + }, + { + "code" : "R8012", + "display" : "Information Officer Access Role" + }, + { + "code" : "R8013", + "display" : "Health Records Manager Access Role" + }, + { + "code" : "R8014", + "display" : "Social Worker Access Role" + }] + } \ No newline at end of file From fd76db95d3f2f536accdd5add293fb53a3485148 Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Wed, 28 Feb 2024 17:53:58 +0000 Subject: [PATCH 124/136] Update publish.yml Make it configurable from the pipeline whether the validator runs in offline or online mode. --- .github/workflows/publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index aa26c35..3aa7954 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -44,7 +44,7 @@ jobs: run: ./scripts/run-examples.sh - name: Build IG - run: ./_genonce.sh + run: ./_genonce.sh ${{ vars.SIMPLIFIER_ADDRESS }} - name: Download and unpack font-awesome run: wget https://fontawesome.com/v4/assets/font-awesome-4.7.0.zip; unzip font-awesome-4.7.0.zip -d output From aafe1aca6cffea6f3e805f1165e99fdca8448aa7 Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Wed, 28 Feb 2024 17:57:03 +0000 Subject: [PATCH 125/136] Update publish.yml --- .github/workflows/publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 3aa7954..0d8dfdb 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -44,7 +44,7 @@ jobs: run: ./scripts/run-examples.sh - name: Build IG - run: ./_genonce.sh ${{ vars.SIMPLIFIER_ADDRESS }} + run: ./_genonce.sh ${{ vars.VALIDATOR_OFFLINE }} - name: Download and unpack font-awesome run: wget https://fontawesome.com/v4/assets/font-awesome-4.7.0.zip; unzip font-awesome-4.7.0.zip -d output From d6c07133e0acfc9b26bbe5092c285d8b17f142f9 Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Wed, 6 Mar 2024 16:34:12 +0000 Subject: [PATCH 126/136] Feature/consent to treatment (#17) * consent to treatment guidance * install graphviz in pipeline * paragraph formatting * Update consent-to-treatment.md Plantuml activity diagram example * corrections in guidance, added to example * corrections in guidance, added to example * corrections in guidance, added to example * Delete ig-template/package/content/assets/js/.index.json * delete .index.db * update usecase assocation line --------- Co-authored-by: Declan Kieran --- .github/workflows/publish.yml | 5 +- .../package/content/assets/js/mermaid.min.js | 1759 +++++++++++++++++ ig-template/package/content/diagram.bpmn | 115 ++ .../package/includes/fragment-footer.html | 4 +- ...AddConditionTransactionExample1-bundle.fsh | 29 +- ...AddConditionTransactionExample2-bundle.fsh | 18 +- .../examples/0012-RemoveRARecordExample.fsh | 4 +- input/fsh/examples/0013-ConsentExample1.fsh | 23 + input/images-source/consent-activity.plantuml | 38 + input/images-source/consent-sequence.plantuml | 41 + input/images-source/consent-usecase.plantuml | 17 + input/images-source/data-model.plantuml | 50 + input/images/consent-to-treatment.bpmn | 302 +++ input/images/consent-to-treatment.svg | 4 + .../consent-to-share-information.md | 50 + input/pagecontent/data-model.md | 20 + sushi-config.yaml | 7 +- 17 files changed, 2449 insertions(+), 37 deletions(-) create mode 100644 ig-template/package/content/assets/js/mermaid.min.js create mode 100644 ig-template/package/content/diagram.bpmn create mode 100644 input/fsh/examples/0013-ConsentExample1.fsh create mode 100644 input/images-source/consent-activity.plantuml create mode 100644 input/images-source/consent-sequence.plantuml create mode 100644 input/images-source/consent-usecase.plantuml create mode 100644 input/images-source/data-model.plantuml create mode 100644 input/images/consent-to-treatment.bpmn create mode 100644 input/images/consent-to-treatment.svg create mode 100644 input/pagecontent/consent-to-share-information.md diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 0d8dfdb..1a00ab4 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -34,6 +34,9 @@ jobs: - name: Install Jekyll run: sudo gem install jekyll jekyll-plantuml + - name: Install Graphvix + run: sudo apt install graphviz + - name: Run FHIR server (TODO - load package from vars and validate - maybe just let the publisher handle that...) run: docker run -d -p 8080:8080 -e hapi.fhir.daoconfig_client_id_strategy=UUID -e hapi.fhir.client_id_strategy=ANY hapiproject/hapi:latest @@ -76,7 +79,7 @@ jobs: # Add a dependency to the build job needs: build # Only deploy on development branch - if: github.ref == 'refs/heads/development' + # if: github.ref == 'refs/heads/development' # Grant GITHUB_TOKEN the permissions required to make a Pages deployment permissions: pages: write # to deploy to Pages diff --git a/ig-template/package/content/assets/js/mermaid.min.js b/ig-template/package/content/assets/js/mermaid.min.js new file mode 100644 index 0000000..6bd5119 --- /dev/null +++ b/ig-template/package/content/assets/js/mermaid.min.js @@ -0,0 +1,1759 @@ +(function(BL,Z0){typeof exports=="object"&&typeof module<"u"?module.exports=Z0():typeof define=="function"&&define.amd?define(Z0):(BL=typeof globalThis<"u"?globalThis:BL||self,BL.mermaid=Z0())})(this,function(){var mVt,vVt;"use strict";function BL(i){for(var a=[],f=1;f=Ot?V:""+Array(Ot+1-jt.length).join(It)+V},mt={s:wt,z:function(V){var Ot=-V.utcOffset(),It=Math.abs(Ot),jt=Math.floor(It/60),xt=It%60;return(Ot<=0?"+":"-")+wt(jt,2,"0")+":"+wt(xt,2,"0")},m:function V(Ot,It){if(Ot.date()1)return V(Ct[0])}else{var kt=Ot.name;rt[kt]=Ot,xt=kt}return!jt&&xt&&(ct=xt),xt||!jt&&ct},Q=function(V,Ot){if(it(V))return V.clone();var It=typeof Ot=="object"?Ot:{};return It.date=V,It.args=arguments,new K(It)},dt=mt;dt.l=gt,dt.i=it,dt.w=function(V,Ot){return Q(V,{locale:Ot.$L,utc:Ot.$u,x:Ot.$x,$offset:Ot.$offset})};var K=function(){function V(It){this.$L=gt(It.locale,null,!0),this.parse(It)}var Ot=V.prototype;return Ot.parse=function(It){this.$d=function(jt){var xt=jt.date,Ft=jt.utc;if(xt===null)return new Date(NaN);if(dt.u(xt))return new Date;if(xt instanceof Date)return new Date(xt);if(typeof xt=="string"&&!/Z$/i.test(xt)){var Ct=xt.match(nt);if(Ct){var kt=Ct[2]-1||0,Gt=(Ct[7]||"0").substring(0,3);return Ft?new Date(Date.UTC(Ct[1],kt,Ct[3]||1,Ct[4]||0,Ct[5]||0,Ct[6]||0,Gt)):new Date(Ct[1],kt,Ct[3]||1,Ct[4]||0,Ct[5]||0,Ct[6]||0,Gt)}}return new Date(xt)}(It),this.$x=It.x||{},this.init()},Ot.init=function(){var It=this.$d;this.$y=It.getFullYear(),this.$M=It.getMonth(),this.$D=It.getDate(),this.$W=It.getDay(),this.$H=It.getHours(),this.$m=It.getMinutes(),this.$s=It.getSeconds(),this.$ms=It.getMilliseconds()},Ot.$utils=function(){return dt},Ot.isValid=function(){return this.$d.toString()!==Y},Ot.isSame=function(It,jt){var xt=Q(It);return this.startOf(jt)<=xt&&xt<=this.endOf(jt)},Ot.isAfter=function(It,jt){return Q(It){},debug:(...i)=>{},info:(...i)=>{},warn:(...i)=>{},error:(...i)=>{},fatal:(...i)=>{}},d0t=function(i="fatal"){let a=yx.fatal;typeof i=="string"?(i=i.toLowerCase(),i in yx&&(a=yx[i])):typeof i=="number"&&(a=i),Kt.trace=()=>{},Kt.debug=()=>{},Kt.info=()=>{},Kt.warn=()=>{},Kt.error=()=>{},Kt.fatal=()=>{},a<=yx.fatal&&(Kt.fatal=console.error?console.error.bind(console,Gw("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",Gw("FATAL"))),a<=yx.error&&(Kt.error=console.error?console.error.bind(console,Gw("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",Gw("ERROR"))),a<=yx.warn&&(Kt.warn=console.warn?console.warn.bind(console,Gw("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",Gw("WARN"))),a<=yx.info&&(Kt.info=console.info?console.info.bind(console,Gw("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",Gw("INFO"))),a<=yx.debug&&(Kt.debug=console.debug?console.debug.bind(console,Gw("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Gw("DEBUG"))),a<=yx.trace&&(Kt.trace=console.debug?console.debug.bind(console,Gw("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Gw("TRACE")))},Gw=i=>`%c${tg().format("ss.SSS")} : ${i} : `;var g0t={};Object.defineProperty(g0t,"__esModule",{value:!0});var h8=g0t.sanitizeUrl=void 0,p9e=/^([^\w]*)(javascript|data|vbscript)/im,b9e=/&#(\w+)(^\w|;)?/g,w9e=/&(newline|tab);/gi,m9e=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,v9e=/^.+(:|:)/gim,y9e=[".","/"];function x9e(i){return y9e.indexOf(i[0])>-1}function k9e(i){return i.replace(b9e,function(a,f){return String.fromCharCode(f)})}function E9e(i){var a=k9e(i||"").replace(w9e,"").replace(m9e,"").trim();if(!a)return"about:blank";if(x9e(a))return a;var f=a.match(v9e);if(!f)return a;var g=f[0];return p9e.test(g)?"about:blank":a}h8=g0t.sanitizeUrl=E9e;function nW(i,a){return i==null||a==null?NaN:ia?1:i>=a?0:NaN}function T9e(i,a){return i==null||a==null?NaN:ai?1:a>=i?0:NaN}function p0t(i){let a,f,g;i.length!==2?(a=nW,f=(E,S)=>nW(i(E),S),g=(E,S)=>i(E)-S):(a=i===nW||i===T9e?i:C9e,f=i,g=i);function w(E,S,_=0,M=E.length){if(_>>1;f(E[F],S)<0?_=F+1:M=F}while(_>>1;f(E[F],S)<=0?_=F+1:M=F}while(__&&g(E[F-1],S)>-g(E[F],S)?F-1:F}return{left:w,center:b,right:v}}function C9e(){return 0}function S9e(i){return i===null?NaN:+i}const _9e=p0t(nW).right;p0t(S9e).center;const A9e=_9e;class xOt extends Map{constructor(a,f=M9e){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:f}}),a!=null)for(const[g,w]of a)this.set(g,w)}get(a){return super.get(kOt(this,a))}has(a){return super.has(kOt(this,a))}set(a,f){return super.set(L9e(this,a),f)}delete(a){return super.delete(D9e(this,a))}}function kOt({_intern:i,_key:a},f){const g=a(f);return i.has(g)?i.get(g):f}function L9e({_intern:i,_key:a},f){const g=a(f);return i.has(g)?i.get(g):(i.set(g,f),f)}function D9e({_intern:i,_key:a},f){const g=a(f);return i.has(g)&&(f=i.get(g),i.delete(g)),f}function M9e(i){return i!==null&&typeof i=="object"?i.valueOf():i}const I9e=Math.sqrt(50),O9e=Math.sqrt(10),N9e=Math.sqrt(2);function rW(i,a,f){const g=(a-i)/Math.max(0,f),w=Math.floor(Math.log10(g)),v=g/Math.pow(10,w),b=v>=I9e?10:v>=O9e?5:v>=N9e?2:1;let E,S,_;return w<0?(_=Math.pow(10,-w)/b,E=Math.round(i*_),S=Math.round(a*_),E/_a&&--S,_=-_):(_=Math.pow(10,w)*b,E=Math.round(i/_),S=Math.round(a/_),E*_a&&--S),S0))return[];if(i===a)return[i];const g=a=w))return[];const E=v-w+1,S=new Array(E);if(g)if(b<0)for(let _=0;_=g)&&(f=g);else{let g=-1;for(let w of i)(w=a(w,++g,i))!=null&&(f=w)&&(f=w)}return f}function B9e(i,a){let f;if(a===void 0)for(const g of i)g!=null&&(f>g||f===void 0&&g>=g)&&(f=g);else{let g=-1;for(let w of i)(w=a(w,++g,i))!=null&&(f>w||f===void 0&&w>=w)&&(f=w)}return f}function R9e(i,a,f){i=+i,a=+a,f=(w=arguments.length)<2?(a=i,i=0,1):w<3?1:+f;for(var g=-1,w=Math.max(0,Math.ceil((a-i)/f))|0,v=new Array(w);++g+i(a)}function H9e(i,a){return a=Math.max(0,i.bandwidth()-a*2)/2,i.round()&&(a=Math.round(a)),f=>+i(f)+a}function V9e(){return!this.__axis}function TOt(i,a){var f=[],g=null,w=null,v=6,b=6,E=3,S=typeof window<"u"&&window.devicePixelRatio>1?0:.5,_=i===iW||i===sW?-1:1,M=i===sW||i===m0t?"x":"y",F=i===iW||i===v0t?$9e:z9e;function R(B){var z=g??(a.ticks?a.ticks.apply(a,f):a.domain()),Y=w??(a.tickFormat?a.tickFormat.apply(a,f):j9e),nt=Math.max(v,0)+E,ot=a.range(),ft=+ot[0]+S,wt=+ot[ot.length-1]+S,mt=(a.bandwidth?H9e:q9e)(a.copy(),S),ct=B.selection?B.selection():B,rt=ct.selectAll(".domain").data([null]),it=ct.selectAll(".tick").data(z,a).order(),gt=it.exit(),Q=it.enter().append("g").attr("class","tick"),dt=it.select("line"),K=it.select("text");rt=rt.merge(rt.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),it=it.merge(Q),dt=dt.merge(Q.append("line").attr("stroke","currentColor").attr(M+"2",_*v)),K=K.merge(Q.append("text").attr("fill","currentColor").attr(M,_*nt).attr("dy",i===iW?"0em":i===v0t?"0.71em":"0.32em")),B!==ct&&(rt=rt.transition(B),it=it.transition(B),dt=dt.transition(B),K=K.transition(B),gt=gt.transition(B).attr("opacity",EOt).attr("transform",function(yt){return isFinite(yt=mt(yt))?F(yt+S):this.getAttribute("transform")}),Q.attr("opacity",EOt).attr("transform",function(yt){var V=this.parentNode.__axis;return F((V&&isFinite(V=V(yt))?V:mt(yt))+S)})),gt.remove(),rt.attr("d",i===sW||i===m0t?b?"M"+_*b+","+ft+"H"+S+"V"+wt+"H"+_*b:"M"+S+","+ft+"V"+wt:b?"M"+ft+","+_*b+"V"+S+"H"+wt+"V"+_*b:"M"+ft+","+S+"H"+wt),it.attr("opacity",1).attr("transform",function(yt){return F(mt(yt)+S)}),dt.attr(M+"2",_*v),K.attr(M,_*nt).text(Y),ct.filter(V9e).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",i===m0t?"start":i===sW?"end":"middle"),ct.each(function(){this.__axis=mt})}return R.scale=function(B){return arguments.length?(a=B,R):a},R.ticks=function(){return f=Array.from(arguments),R},R.tickArguments=function(B){return arguments.length?(f=B==null?[]:Array.from(B),R):f.slice()},R.tickValues=function(B){return arguments.length?(g=B==null?null:Array.from(B),R):g&&g.slice()},R.tickFormat=function(B){return arguments.length?(w=B,R):w},R.tickSize=function(B){return arguments.length?(v=b=+B,R):v},R.tickSizeInner=function(B){return arguments.length?(v=+B,R):v},R.tickSizeOuter=function(B){return arguments.length?(b=+B,R):b},R.tickPadding=function(B){return arguments.length?(E=+B,R):E},R.offset=function(B){return arguments.length?(S=+B,R):S},R}function U9e(i){return TOt(iW,i)}function G9e(i){return TOt(v0t,i)}var K9e={value:()=>{}};function COt(){for(var i=0,a=arguments.length,f={},g;i=0&&(g=f.slice(w+1),f=f.slice(0,w)),f&&!a.hasOwnProperty(f))throw new Error("unknown type: "+f);return{type:f,name:g}})}aW.prototype=COt.prototype={constructor:aW,on:function(i,a){var f=this._,g=W9e(i+"",f),w,v=-1,b=g.length;if(arguments.length<2){for(;++v0)for(var f=new Array(w),g=0,w,v;g=0&&(a=i.slice(0,f))!=="xmlns"&&(i=i.slice(f+1)),_Ot.hasOwnProperty(a)?{space:_Ot[a],local:i}:i}function X9e(i){return function(){var a=this.ownerDocument,f=this.namespaceURI;return f===y0t&&a.documentElement.namespaceURI===y0t?a.createElement(i):a.createElementNS(f,i)}}function Q9e(i){return function(){return this.ownerDocument.createElementNS(i.space,i.local)}}function AOt(i){var a=oW(i);return(a.local?Q9e:X9e)(a)}function J9e(){}function x0t(i){return i==null?J9e:function(){return this.querySelector(i)}}function Z9e(i){typeof i!="function"&&(i=x0t(i));for(var a=this._groups,f=a.length,g=new Array(f),w=0;w=wt&&(wt=ft+1);!(ct=nt[wt])&&++wt=0;)(b=g[w])&&(v&&b.compareDocumentPosition(v)^4&&v.parentNode.insertBefore(b,v),v=b);return this}function ECe(i){i||(i=TCe);function a(F,R){return F&&R?i(F.__data__,R.__data__):!F-!R}for(var f=this._groups,g=f.length,w=new Array(g),v=0;va?1:i>=a?0:NaN}function CCe(){var i=arguments[0];return arguments[0]=this,i.apply(null,arguments),this}function SCe(){return Array.from(this)}function _Ce(){for(var i=this._groups,a=0,f=i.length;a1?this.each((a==null?RCe:typeof a=="function"?$Ce:jCe)(i,a,f??"")):RL(this.node(),i)}function RL(i,a){return i.style.getPropertyValue(a)||NOt(i).getComputedStyle(i,null).getPropertyValue(a)}function qCe(i){return function(){delete this[i]}}function HCe(i,a){return function(){this[i]=a}}function VCe(i,a){return function(){var f=a.apply(this,arguments);f==null?delete this[i]:this[i]=f}}function UCe(i,a){return arguments.length>1?this.each((a==null?qCe:typeof a=="function"?VCe:HCe)(i,a)):this.node()[i]}function POt(i){return i.trim().split(/^|\s+/)}function k0t(i){return i.classList||new FOt(i)}function FOt(i){this._node=i,this._names=POt(i.getAttribute("class")||"")}FOt.prototype={add:function(i){var a=this._names.indexOf(i);a<0&&(this._names.push(i),this._node.setAttribute("class",this._names.join(" ")))},remove:function(i){var a=this._names.indexOf(i);a>=0&&(this._names.splice(a,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(i){return this._names.indexOf(i)>=0}};function BOt(i,a){for(var f=k0t(i),g=-1,w=a.length;++g=0&&(f=a.slice(g+1),a=a.slice(0,g)),{type:a,name:f}})}function vSe(i){return function(){var a=this.__on;if(a){for(var f=0,g=-1,w=a.length,v;f>8&15|a>>4&240,a>>4&15|a&240,(a&15)<<4|a&15,1):f===8?hW(a>>24&255,a>>16&255,a>>8&255,(a&255)/255):f===4?hW(a>>12&15|a>>8&240,a>>8&15|a>>4&240,a>>4&15|a&240,((a&15)<<4|a&15)/255):null):(a=ASe.exec(i))?new eg(a[1],a[2],a[3],1):(a=LSe.exec(i))?new eg(a[1]*255/100,a[2]*255/100,a[3]*255/100,1):(a=DSe.exec(i))?hW(a[1],a[2],a[3],a[4]):(a=MSe.exec(i))?hW(a[1]*255/100,a[2]*255/100,a[3]*255/100,a[4]):(a=ISe.exec(i))?WOt(a[1],a[2]/100,a[3]/100,1):(a=OSe.exec(i))?WOt(a[1],a[2]/100,a[3]/100,a[4]):zOt.hasOwnProperty(i)?VOt(zOt[i]):i==="transparent"?new eg(NaN,NaN,NaN,0):null}function VOt(i){return new eg(i>>16&255,i>>8&255,i&255,1)}function hW(i,a,f,g){return g<=0&&(i=a=f=NaN),new eg(i,a,f,g)}function UOt(i){return i instanceof n9||(i=r9(i)),i?(i=i.rgb(),new eg(i.r,i.g,i.b,i.opacity)):new eg}function T0t(i,a,f,g){return arguments.length===1?UOt(i):new eg(i,a,f,g??1)}function eg(i,a,f,g){this.r=+i,this.g=+a,this.b=+f,this.opacity=+g}ZP(eg,T0t,uW(n9,{brighter(i){return i=i==null?lW:Math.pow(lW,i),new eg(this.r*i,this.g*i,this.b*i,this.opacity)},darker(i){return i=i==null?tF:Math.pow(tF,i),new eg(this.r*i,this.g*i,this.b*i,this.opacity)},rgb(){return this},clamp(){return new eg(i9(this.r),i9(this.g),i9(this.b),fW(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:GOt,formatHex:GOt,formatHex8:FSe,formatRgb:KOt,toString:KOt}));function GOt(){return`#${s9(this.r)}${s9(this.g)}${s9(this.b)}`}function FSe(){return`#${s9(this.r)}${s9(this.g)}${s9(this.b)}${s9((isNaN(this.opacity)?1:this.opacity)*255)}`}function KOt(){const i=fW(this.opacity);return`${i===1?"rgb(":"rgba("}${i9(this.r)}, ${i9(this.g)}, ${i9(this.b)}${i===1?")":`, ${i})`}`}function fW(i){return isNaN(i)?1:Math.max(0,Math.min(1,i))}function i9(i){return Math.max(0,Math.min(255,Math.round(i)||0))}function s9(i){return i=i9(i),(i<16?"0":"")+i.toString(16)}function WOt(i,a,f,g){return g<=0?i=a=f=NaN:f<=0||f>=1?i=a=NaN:a<=0&&(i=NaN),new jv(i,a,f,g)}function YOt(i){if(i instanceof jv)return new jv(i.h,i.s,i.l,i.opacity);if(i instanceof n9||(i=r9(i)),!i)return new jv;if(i instanceof jv)return i;i=i.rgb();var a=i.r/255,f=i.g/255,g=i.b/255,w=Math.min(a,f,g),v=Math.max(a,f,g),b=NaN,E=v-w,S=(v+w)/2;return E?(a===v?b=(f-g)/E+(f0&&S<1?0:b,new jv(b,E,S,i.opacity)}function BSe(i,a,f,g){return arguments.length===1?YOt(i):new jv(i,a,f,g??1)}function jv(i,a,f,g){this.h=+i,this.s=+a,this.l=+f,this.opacity=+g}ZP(jv,BSe,uW(n9,{brighter(i){return i=i==null?lW:Math.pow(lW,i),new jv(this.h,this.s,this.l*i,this.opacity)},darker(i){return i=i==null?tF:Math.pow(tF,i),new jv(this.h,this.s,this.l*i,this.opacity)},rgb(){var i=this.h%360+(this.h<0)*360,a=isNaN(i)||isNaN(this.s)?0:this.s,f=this.l,g=f+(f<.5?f:1-f)*a,w=2*f-g;return new eg(C0t(i>=240?i-240:i+120,w,g),C0t(i,w,g),C0t(i<120?i+240:i-120,w,g),this.opacity)},clamp(){return new jv(XOt(this.h),dW(this.s),dW(this.l),fW(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const i=fW(this.opacity);return`${i===1?"hsl(":"hsla("}${XOt(this.h)}, ${dW(this.s)*100}%, ${dW(this.l)*100}%${i===1?")":`, ${i})`}`}}));function XOt(i){return i=(i||0)%360,i<0?i+360:i}function dW(i){return Math.max(0,Math.min(1,i||0))}function C0t(i,a,f){return(i<60?a+(f-a)*i/60:i<180?f:i<240?a+(f-a)*(240-i)/60:a)*255}const RSe=Math.PI/180,jSe=180/Math.PI,gW=18,QOt=.96422,JOt=1,ZOt=.82521,tNt=4/29,$L=6/29,eNt=3*$L*$L,$Se=$L*$L*$L;function nNt(i){if(i instanceof J3)return new J3(i.l,i.a,i.b,i.opacity);if(i instanceof xx)return rNt(i);i instanceof eg||(i=UOt(i));var a=L0t(i.r),f=L0t(i.g),g=L0t(i.b),w=S0t((.2225045*a+.7168786*f+.0606169*g)/JOt),v,b;return a===f&&f===g?v=b=w:(v=S0t((.4360747*a+.3850649*f+.1430804*g)/QOt),b=S0t((.0139322*a+.0971045*f+.7141733*g)/ZOt)),new J3(116*w-16,500*(v-w),200*(w-b),i.opacity)}function zSe(i,a,f,g){return arguments.length===1?nNt(i):new J3(i,a,f,g??1)}function J3(i,a,f,g){this.l=+i,this.a=+a,this.b=+f,this.opacity=+g}ZP(J3,zSe,uW(n9,{brighter(i){return new J3(this.l+gW*(i??1),this.a,this.b,this.opacity)},darker(i){return new J3(this.l-gW*(i??1),this.a,this.b,this.opacity)},rgb(){var i=(this.l+16)/116,a=isNaN(this.a)?i:i+this.a/500,f=isNaN(this.b)?i:i-this.b/200;return a=QOt*_0t(a),i=JOt*_0t(i),f=ZOt*_0t(f),new eg(A0t(3.1338561*a-1.6168667*i-.4906146*f),A0t(-.9787684*a+1.9161415*i+.033454*f),A0t(.0719453*a-.2289914*i+1.4052427*f),this.opacity)}}));function S0t(i){return i>$Se?Math.pow(i,1/3):i/eNt+tNt}function _0t(i){return i>$L?i*i*i:eNt*(i-tNt)}function A0t(i){return 255*(i<=.0031308?12.92*i:1.055*Math.pow(i,1/2.4)-.055)}function L0t(i){return(i/=255)<=.04045?i/12.92:Math.pow((i+.055)/1.055,2.4)}function qSe(i){if(i instanceof xx)return new xx(i.h,i.c,i.l,i.opacity);if(i instanceof J3||(i=nNt(i)),i.a===0&&i.b===0)return new xx(NaN,0()=>i;function iNt(i,a){return function(f){return i+f*a}}function HSe(i,a,f){return i=Math.pow(i,f),a=Math.pow(a,f)-i,f=1/f,function(g){return Math.pow(i+g*a,f)}}function VSe(i,a){var f=a-i;return f?iNt(i,f>180||f<-180?f-360*Math.round(f/360):f):pW(isNaN(i)?a:i)}function USe(i){return(i=+i)==1?nF:function(a,f){return f-a?HSe(a,f,i):pW(isNaN(a)?f:a)}}function nF(i,a){var f=a-i;return f?iNt(i,f):pW(isNaN(i)?a:i)}const bW=function i(a){var f=USe(a);function g(w,v){var b=f((w=T0t(w)).r,(v=T0t(v)).r),E=f(w.g,v.g),S=f(w.b,v.b),_=nF(w.opacity,v.opacity);return function(M){return w.r=b(M),w.g=E(M),w.b=S(M),w.opacity=_(M),w+""}}return g.gamma=i,g}(1);function GSe(i,a){a||(a=[]);var f=i?Math.min(a.length,i.length):0,g=a.slice(),w;return function(v){for(w=0;wf&&(v=a.slice(f,v),E[b]?E[b]+=v:E[++b]=v),(g=g[0])===(w=w[0])?E[b]?E[b]+=w:E[++b]=w:(E[++b]=null,S.push({i:b,x:$v(g,w)})),f=I0t.lastIndex;return f180?M+=360:M-_>180&&(_+=360),R.push({i:F.push(w(F)+"rotate(",null,g)-2,x:$v(_,M)})):M&&F.push(w(F)+"rotate("+M+g)}function E(_,M,F,R){_!==M?R.push({i:F.push(w(F)+"skewX(",null,g)-2,x:$v(_,M)}):M&&F.push(w(F)+"skewX("+M+g)}function S(_,M,F,R,B,z){if(_!==F||M!==R){var Y=B.push(w(B)+"scale(",null,",",null,")");z.push({i:Y-4,x:$v(_,F)},{i:Y-2,x:$v(M,R)})}else(F!==1||R!==1)&&B.push(w(B)+"scale("+F+","+R+")")}return function(_,M){var F=[],R=[];return _=i(_),M=i(M),v(_.translateX,_.translateY,M.translateX,M.translateY,F,R),b(_.rotate,M.rotate,F,R),E(_.skewX,M.skewX,F,R),S(_.scaleX,_.scaleY,M.scaleX,M.scaleY,F,R),_=M=null,function(B){for(var z=-1,Y=R.length,nt;++z=0&&i._call.call(void 0,a),i=i._next;--zL}function fNt(){a9=(vW=aF.now())+yW,zL=rF=0;try{o_e()}finally{zL=0,u_e(),a9=0}}function c_e(){var i=aF.now(),a=i-vW;a>uNt&&(yW-=a,vW=i)}function u_e(){for(var i,a=mW,f,g=1/0;a;)a._call?(g>a._time&&(g=a._time),i=a,a=a._next):(f=a._next,a._next=null,a=i?i._next=f:mW=f);sF=i,F0t(g)}function F0t(i){if(!zL){rF&&(rF=clearTimeout(rF));var a=i-a9;a>24?(i<1/0&&(rF=setTimeout(fNt,i-aF.now()-yW)),iF&&(iF=clearInterval(iF))):(iF||(vW=aF.now(),iF=setInterval(c_e,uNt)),zL=1,lNt(fNt))}}function dNt(i,a,f){var g=new xW;return a=a==null?0:+a,g.restart(w=>{g.stop(),i(w+a)},a,f),g}var l_e=COt("start","end","cancel","interrupt"),h_e=[],gNt=0,pNt=1,B0t=2,kW=3,bNt=4,R0t=5,EW=6;function TW(i,a,f,g,w,v){var b=i.__transition;if(!b)i.__transition={};else if(f in b)return;f_e(i,f,{name:a,index:g,group:w,on:l_e,tween:h_e,time:v.time,delay:v.delay,duration:v.duration,ease:v.ease,timer:null,state:gNt})}function j0t(i,a){var f=zv(i,a);if(f.state>gNt)throw new Error("too late; already scheduled");return f}function Z3(i,a){var f=zv(i,a);if(f.state>kW)throw new Error("too late; already running");return f}function zv(i,a){var f=i.__transition;if(!f||!(f=f[a]))throw new Error("transition not found");return f}function f_e(i,a,f){var g=i.__transition,w;g[a]=f,f.timer=hNt(v,0,f.time);function v(_){f.state=pNt,f.timer.restart(b,f.delay,f.time),f.delay<=_&&b(_-f.delay)}function b(_){var M,F,R,B;if(f.state!==pNt)return S();for(M in g)if(B=g[M],B.name===f.name){if(B.state===kW)return dNt(b);B.state===bNt?(B.state=EW,B.timer.stop(),B.on.call("interrupt",i,i.__data__,B.index,B.group),delete g[M]):+MB0t&&g.state=0&&(a=a.slice(0,f)),!a||a==="start"})}function H_e(i,a,f){var g,w,v=q_e(a)?j0t:Z3;return function(){var b=v(this,i),E=b.on;E!==g&&(w=(g=E).copy()).on(a,f),b.on=w}}function V_e(i,a){var f=this._id;return arguments.length<2?zv(this.node(),f).on.on(i):this.each(H_e(f,i,a))}function U_e(i){return function(){var a=this.parentNode;for(var f in this.__transition)if(+f!==i)return;a&&a.removeChild(this)}}function G_e(){return this.on("end.remove",U_e(this._id))}function K_e(i){var a=this._name,f=this._id;typeof i!="function"&&(i=x0t(i));for(var g=this._groups,w=g.length,v=new Array(w),b=0;b=0))throw new Error(`invalid digits: ${i}`);if(a>15)return yNt;const f=10**a;return function(g){this._+=g[0];for(let w=1,v=g.length;wo9)if(!(Math.abs(F*S-_*M)>o9)||!v)this._append`L${this._x1=a},${this._y1=f}`;else{let B=g-b,z=w-E,Y=S*S+_*_,nt=B*B+z*z,ot=Math.sqrt(Y),ft=Math.sqrt(R),wt=v*Math.tan((z0t-Math.acos((Y+R-nt)/(2*ot*ft)))/2),mt=wt/ft,ct=wt/ot;Math.abs(mt-1)>o9&&this._append`L${a+mt*M},${f+mt*F}`,this._append`A${v},${v},0,0,${+(F*B>M*z)},${this._x1=a+ct*S},${this._y1=f+ct*_}`}}arc(a,f,g,w,v,b){if(a=+a,f=+f,g=+g,b=!!b,g<0)throw new Error(`negative radius: ${g}`);let E=g*Math.cos(w),S=g*Math.sin(w),_=a+E,M=f+S,F=1^b,R=b?w-v:v-w;this._x1===null?this._append`M${_},${M}`:(Math.abs(this._x1-_)>o9||Math.abs(this._y1-M)>o9)&&this._append`L${_},${M}`,g&&(R<0&&(R=R%q0t+q0t),R>mAe?this._append`A${g},${g},0,1,${F},${a-E},${f-S}A${g},${g},0,1,${F},${this._x1=_},${this._y1=M}`:R>o9&&this._append`A${g},${g},0,${+(R>=z0t)},${F},${this._x1=a+g*Math.cos(v)},${this._y1=f+g*Math.sin(v)}`)}rect(a,f,g,w){this._append`M${this._x0=this._x1=+a},${this._y0=this._y1=+f}h${g=+g}v${+w}h${-g}Z`}toString(){return this._}};function xAe(i){if(!i.ok)throw new Error(i.status+" "+i.statusText);return i.text()}function kAe(i,a){return fetch(i,a).then(xAe)}function EAe(i){return(a,f)=>kAe(a,f).then(g=>new DOMParser().parseFromString(g,i))}var TAe=EAe("image/svg+xml");function CAe(i){return Math.abs(i=Math.round(i))>=1e21?i.toLocaleString("en").replace(/,/g,""):i.toString(10)}function CW(i,a){if((f=(i=a?i.toExponential(a-1):i.toExponential()).indexOf("e"))<0)return null;var f,g=i.slice(0,f);return[g.length>1?g[0]+g.slice(2):g,+i.slice(f+1)]}function qL(i){return i=CW(Math.abs(i)),i?i[1]:NaN}function SAe(i,a){return function(f,g){for(var w=f.length,v=[],b=0,E=i[0],S=0;w>0&&E>0&&(S+E+1>g&&(E=Math.max(1,g-S)),v.push(f.substring(w-=E,w+E)),!((S+=E+1)>g));)E=i[b=(b+1)%i.length];return v.reverse().join(a)}}function _Ae(i){return function(a){return a.replace(/[0-9]/g,function(f){return i[+f]})}}var AAe=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function SW(i){if(!(a=AAe.exec(i)))throw new Error("invalid format: "+i);var a;return new H0t({fill:a[1],align:a[2],sign:a[3],symbol:a[4],zero:a[5],width:a[6],comma:a[7],precision:a[8]&&a[8].slice(1),trim:a[9],type:a[10]})}SW.prototype=H0t.prototype;function H0t(i){this.fill=i.fill===void 0?" ":i.fill+"",this.align=i.align===void 0?">":i.align+"",this.sign=i.sign===void 0?"-":i.sign+"",this.symbol=i.symbol===void 0?"":i.symbol+"",this.zero=!!i.zero,this.width=i.width===void 0?void 0:+i.width,this.comma=!!i.comma,this.precision=i.precision===void 0?void 0:+i.precision,this.trim=!!i.trim,this.type=i.type===void 0?"":i.type+""}H0t.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function LAe(i){t:for(var a=i.length,f=1,g=-1,w;f0&&(g=0);break}return g>0?i.slice(0,g)+i.slice(w+1):i}var xNt;function DAe(i,a){var f=CW(i,a);if(!f)return i+"";var g=f[0],w=f[1],v=w-(xNt=Math.max(-8,Math.min(8,Math.floor(w/3)))*3)+1,b=g.length;return v===b?g:v>b?g+new Array(v-b+1).join("0"):v>0?g.slice(0,v)+"."+g.slice(v):"0."+new Array(1-v).join("0")+CW(i,Math.max(0,a+v-1))[0]}function kNt(i,a){var f=CW(i,a);if(!f)return i+"";var g=f[0],w=f[1];return w<0?"0."+new Array(-w).join("0")+g:g.length>w+1?g.slice(0,w+1)+"."+g.slice(w+1):g+new Array(w-g.length+2).join("0")}const ENt={"%":(i,a)=>(i*100).toFixed(a),b:i=>Math.round(i).toString(2),c:i=>i+"",d:CAe,e:(i,a)=>i.toExponential(a),f:(i,a)=>i.toFixed(a),g:(i,a)=>i.toPrecision(a),o:i=>Math.round(i).toString(8),p:(i,a)=>kNt(i*100,a),r:kNt,s:DAe,X:i=>Math.round(i).toString(16).toUpperCase(),x:i=>Math.round(i).toString(16)};function TNt(i){return i}var CNt=Array.prototype.map,SNt=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function MAe(i){var a=i.grouping===void 0||i.thousands===void 0?TNt:SAe(CNt.call(i.grouping,Number),i.thousands+""),f=i.currency===void 0?"":i.currency[0]+"",g=i.currency===void 0?"":i.currency[1]+"",w=i.decimal===void 0?".":i.decimal+"",v=i.numerals===void 0?TNt:_Ae(CNt.call(i.numerals,String)),b=i.percent===void 0?"%":i.percent+"",E=i.minus===void 0?"−":i.minus+"",S=i.nan===void 0?"NaN":i.nan+"";function _(F){F=SW(F);var R=F.fill,B=F.align,z=F.sign,Y=F.symbol,nt=F.zero,ot=F.width,ft=F.comma,wt=F.precision,mt=F.trim,ct=F.type;ct==="n"?(ft=!0,ct="g"):ENt[ct]||(wt===void 0&&(wt=12),mt=!0,ct="g"),(nt||R==="0"&&B==="=")&&(nt=!0,R="0",B="=");var rt=Y==="$"?f:Y==="#"&&/[boxX]/.test(ct)?"0"+ct.toLowerCase():"",it=Y==="$"?g:/[%p]/.test(ct)?b:"",gt=ENt[ct],Q=/[defgprs%]/.test(ct);wt=wt===void 0?6:/[gprs]/.test(ct)?Math.max(1,Math.min(21,wt)):Math.max(0,Math.min(20,wt));function dt(K){var yt=rt,V=it,Ot,It,jt;if(ct==="c")V=gt(K)+V,K="";else{K=+K;var xt=K<0||1/K<0;if(K=isNaN(K)?S:gt(Math.abs(K),wt),mt&&(K=LAe(K)),xt&&+K==0&&z!=="+"&&(xt=!1),yt=(xt?z==="("?z:E:z==="-"||z==="("?"":z)+yt,V=(ct==="s"?SNt[8+xNt/3]:"")+V+(xt&&z==="("?")":""),Q){for(Ot=-1,It=K.length;++Otjt||jt>57){V=(jt===46?w+K.slice(Ot+1):K.slice(Ot))+V,K=K.slice(0,Ot);break}}}ft&&!nt&&(K=a(K,1/0));var Ft=yt.length+K.length+V.length,Ct=Ft>1)+yt+K+V+Ct.slice(Ft);break;default:K=Ct+yt+K+V;break}return v(K)}return dt.toString=function(){return F+""},dt}function M(F,R){var B=_((F=SW(F),F.type="f",F)),z=Math.max(-8,Math.min(8,Math.floor(qL(R)/3)))*3,Y=Math.pow(10,-z),nt=SNt[8+z/3];return function(ot){return B(Y*ot)+nt}}return{format:_,formatPrefix:M}}var _W,_Nt,ANt;IAe({thousands:",",grouping:[3],currency:["$",""]});function IAe(i){return _W=MAe(i),_Nt=_W.format,ANt=_W.formatPrefix,_W}function OAe(i){return Math.max(0,-qL(Math.abs(i)))}function NAe(i,a){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(qL(a)/3)))*3-qL(Math.abs(i)))}function PAe(i,a){return i=Math.abs(i),a=Math.abs(a)-i,Math.max(0,qL(a)-qL(i))+1}function AW(i,a){switch(arguments.length){case 0:break;case 1:this.range(i);break;default:this.range(a).domain(i);break}return this}const LNt=Symbol("implicit");function oF(){var i=new xOt,a=[],f=[],g=LNt;function w(v){let b=i.get(v);if(b===void 0){if(g!==LNt)return g;i.set(v,b=a.push(v)-1)}return f[b%f.length]}return w.domain=function(v){if(!arguments.length)return a.slice();a=[],i=new xOt;for(const b of v)i.has(b)||i.set(b,a.push(b)-1);return w},w.range=function(v){return arguments.length?(f=Array.from(v),w):f.slice()},w.unknown=function(v){return arguments.length?(g=v,w):g},w.copy=function(){return oF(a,f).unknown(g)},AW.apply(w,arguments),w}function V0t(){var i=oF().unknown(void 0),a=i.domain,f=i.range,g=0,w=1,v,b,E=!1,S=0,_=0,M=.5;delete i.unknown;function F(){var R=a().length,B=wa&&(f=i,i=a,a=f),function(g){return Math.max(i,Math.min(a,g))}}function jAe(i,a,f){var g=i[0],w=i[1],v=a[0],b=a[1];return w2?$Ae:jAe,S=_=null,F}function F(R){return R==null||isNaN(R=+R)?v:(S||(S=E(i.map(g),a,f)))(g(b(R)))}return F.invert=function(R){return b(w((_||(_=E(a,i.map(g),$v)))(R)))},F.domain=function(R){return arguments.length?(i=Array.from(R,BAe),M()):i.slice()},F.range=function(R){return arguments.length?(a=Array.from(R),M()):a.slice()},F.rangeRound=function(R){return a=Array.from(R),f=ZSe,M()},F.clamp=function(R){return arguments.length?(b=R?!0:HL,M()):b!==HL},F.interpolate=function(R){return arguments.length?(f=R,M()):f},F.unknown=function(R){return arguments.length?(v=R,F):v},function(R,B){return g=R,w=B,M()}}function INt(){return zAe()(HL,HL)}function qAe(i,a,f,g){var w=w0t(i,a,f),v;switch(g=SW(g??",f"),g.type){case"s":{var b=Math.max(Math.abs(i),Math.abs(a));return g.precision==null&&!isNaN(v=NAe(w,b))&&(g.precision=v),ANt(g,b)}case"":case"e":case"g":case"p":case"r":{g.precision==null&&!isNaN(v=PAe(w,Math.max(Math.abs(i),Math.abs(a))))&&(g.precision=v-(g.type==="e"));break}case"f":case"%":{g.precision==null&&!isNaN(v=OAe(w))&&(g.precision=v-(g.type==="%")*2);break}}return _Nt(g)}function HAe(i){var a=i.domain;return i.ticks=function(f){var g=a();return P9e(g[0],g[g.length-1],f??10)},i.tickFormat=function(f,g){var w=a();return qAe(w[0],w[w.length-1],f??10,g)},i.nice=function(f){f==null&&(f=10);var g=a(),w=0,v=g.length-1,b=g[w],E=g[v],S,_,M=10;for(E0;){if(_=b0t(b,E,f),_===S)return g[w]=b,g[v]=E,a(g);if(_>0)b=Math.floor(b/_)*_,E=Math.ceil(E/_)*_;else if(_<0)b=Math.ceil(b*_)/_,E=Math.floor(E*_)/_;else break;S=_}return i},i}function VL(){var i=INt();return i.copy=function(){return MNt(i,VL())},AW.apply(i,arguments),HAe(i)}function VAe(i,a){i=i.slice();var f=0,g=i.length-1,w=i[f],v=i[g],b;return v(i(v=new Date(+v)),v),w.ceil=v=>(i(v=new Date(v-1)),a(v,1),i(v),v),w.round=v=>{const b=w(v),E=w.ceil(v);return v-b(a(v=new Date(+v),b==null?1:Math.floor(b)),v),w.range=(v,b,E)=>{const S=[];if(v=w.ceil(v),E=E==null?1:Math.floor(E),!(v0))return S;let _;do S.push(_=new Date(+v)),a(v,E),i(v);while(_R1(b=>{if(b>=b)for(;i(b),!v(b);)b.setTime(b-1)},(b,E)=>{if(b>=b)if(E<0)for(;++E<=0;)for(;a(b,-1),!v(b););else for(;--E>=0;)for(;a(b,1),!v(b););}),f&&(w.count=(v,b)=>(G0t.setTime(+v),K0t.setTime(+b),i(G0t),i(K0t),Math.floor(f(G0t,K0t))),w.every=v=>(v=Math.floor(v),!isFinite(v)||!(v>0)?null:v>1?w.filter(g?b=>g(b)%v===0:b=>w.count(0,b)%v===0):w)),w}const UL=R1(()=>{},(i,a)=>{i.setTime(+i+a)},(i,a)=>a-i);UL.every=i=>(i=Math.floor(i),!isFinite(i)||!(i>0)?null:i>1?R1(a=>{a.setTime(Math.floor(a/i)*i)},(a,f)=>{a.setTime(+a+f*i)},(a,f)=>(f-a)/i):UL),UL.range;const Tx=1e3,Kw=Tx*60,Cx=Kw*60,Sx=Cx*24,W0t=Sx*7,ONt=Sx*30,Y0t=Sx*365,f8=R1(i=>{i.setTime(i-i.getMilliseconds())},(i,a)=>{i.setTime(+i+a*Tx)},(i,a)=>(a-i)/Tx,i=>i.getUTCSeconds());f8.range;const cF=R1(i=>{i.setTime(i-i.getMilliseconds()-i.getSeconds()*Tx)},(i,a)=>{i.setTime(+i+a*Kw)},(i,a)=>(a-i)/Kw,i=>i.getMinutes());cF.range,R1(i=>{i.setUTCSeconds(0,0)},(i,a)=>{i.setTime(+i+a*Kw)},(i,a)=>(a-i)/Kw,i=>i.getUTCMinutes()).range;const uF=R1(i=>{i.setTime(i-i.getMilliseconds()-i.getSeconds()*Tx-i.getMinutes()*Kw)},(i,a)=>{i.setTime(+i+a*Cx)},(i,a)=>(a-i)/Cx,i=>i.getHours());uF.range,R1(i=>{i.setUTCMinutes(0,0,0)},(i,a)=>{i.setTime(+i+a*Cx)},(i,a)=>(a-i)/Cx,i=>i.getUTCHours()).range;const c9=R1(i=>i.setHours(0,0,0,0),(i,a)=>i.setDate(i.getDate()+a),(i,a)=>(a-i-(a.getTimezoneOffset()-i.getTimezoneOffset())*Kw)/Sx,i=>i.getDate()-1);c9.range;const X0t=R1(i=>{i.setUTCHours(0,0,0,0)},(i,a)=>{i.setUTCDate(i.getUTCDate()+a)},(i,a)=>(a-i)/Sx,i=>i.getUTCDate()-1);X0t.range,R1(i=>{i.setUTCHours(0,0,0,0)},(i,a)=>{i.setUTCDate(i.getUTCDate()+a)},(i,a)=>(a-i)/Sx,i=>Math.floor(i/Sx)).range;function u9(i){return R1(a=>{a.setDate(a.getDate()-(a.getDay()+7-i)%7),a.setHours(0,0,0,0)},(a,f)=>{a.setDate(a.getDate()+f*7)},(a,f)=>(f-a-(f.getTimezoneOffset()-a.getTimezoneOffset())*Kw)/W0t)}const lF=u9(0),hF=u9(1),NNt=u9(2),PNt=u9(3),l9=u9(4),FNt=u9(5),BNt=u9(6);lF.range,hF.range,NNt.range,PNt.range,l9.range,FNt.range,BNt.range;function h9(i){return R1(a=>{a.setUTCDate(a.getUTCDate()-(a.getUTCDay()+7-i)%7),a.setUTCHours(0,0,0,0)},(a,f)=>{a.setUTCDate(a.getUTCDate()+f*7)},(a,f)=>(f-a)/W0t)}const RNt=h9(0),LW=h9(1),UAe=h9(2),GAe=h9(3),GL=h9(4),KAe=h9(5),WAe=h9(6);RNt.range,LW.range,UAe.range,GAe.range,GL.range,KAe.range,WAe.range;const fF=R1(i=>{i.setDate(1),i.setHours(0,0,0,0)},(i,a)=>{i.setMonth(i.getMonth()+a)},(i,a)=>a.getMonth()-i.getMonth()+(a.getFullYear()-i.getFullYear())*12,i=>i.getMonth());fF.range,R1(i=>{i.setUTCDate(1),i.setUTCHours(0,0,0,0)},(i,a)=>{i.setUTCMonth(i.getUTCMonth()+a)},(i,a)=>a.getUTCMonth()-i.getUTCMonth()+(a.getUTCFullYear()-i.getUTCFullYear())*12,i=>i.getUTCMonth()).range;const _x=R1(i=>{i.setMonth(0,1),i.setHours(0,0,0,0)},(i,a)=>{i.setFullYear(i.getFullYear()+a)},(i,a)=>a.getFullYear()-i.getFullYear(),i=>i.getFullYear());_x.every=i=>!isFinite(i=Math.floor(i))||!(i>0)?null:R1(a=>{a.setFullYear(Math.floor(a.getFullYear()/i)*i),a.setMonth(0,1),a.setHours(0,0,0,0)},(a,f)=>{a.setFullYear(a.getFullYear()+f*i)}),_x.range;const f9=R1(i=>{i.setUTCMonth(0,1),i.setUTCHours(0,0,0,0)},(i,a)=>{i.setUTCFullYear(i.getUTCFullYear()+a)},(i,a)=>a.getUTCFullYear()-i.getUTCFullYear(),i=>i.getUTCFullYear());f9.every=i=>!isFinite(i=Math.floor(i))||!(i>0)?null:R1(a=>{a.setUTCFullYear(Math.floor(a.getUTCFullYear()/i)*i),a.setUTCMonth(0,1),a.setUTCHours(0,0,0,0)},(a,f)=>{a.setUTCFullYear(a.getUTCFullYear()+f*i)}),f9.range;function YAe(i,a,f,g,w,v){const b=[[f8,1,Tx],[f8,5,5*Tx],[f8,15,15*Tx],[f8,30,30*Tx],[v,1,Kw],[v,5,5*Kw],[v,15,15*Kw],[v,30,30*Kw],[w,1,Cx],[w,3,3*Cx],[w,6,6*Cx],[w,12,12*Cx],[g,1,Sx],[g,2,2*Sx],[f,1,W0t],[a,1,ONt],[a,3,3*ONt],[i,1,Y0t]];function E(_,M,F){const R=M<_;R&&([_,M]=[M,_]);const B=F&&typeof F.range=="function"?F:S(_,M,F),z=B?B.range(_,+M+1):[];return R?z.reverse():z}function S(_,M,F){const R=Math.abs(M-_)/F,B=p0t(([,,nt])=>nt).right(b,R);if(B===b.length)return i.every(w0t(_/Y0t,M/Y0t,F));if(B===0)return UL.every(Math.max(w0t(_,M,F),1));const[z,Y]=b[R/b[B-1][2]53)return null;"w"in _e||(_e.w=1),"Z"in _e?(Mn=J0t(dF(_e.y,0,1)),ce=Mn.getUTCDay(),Mn=ce>4||ce===0?LW.ceil(Mn):LW(Mn),Mn=X0t.offset(Mn,(_e.V-1)*7),_e.y=Mn.getUTCFullYear(),_e.m=Mn.getUTCMonth(),_e.d=Mn.getUTCDate()+(_e.w+6)%7):(Mn=Q0t(dF(_e.y,0,1)),ce=Mn.getDay(),Mn=ce>4||ce===0?hF.ceil(Mn):hF(Mn),Mn=c9.offset(Mn,(_e.V-1)*7),_e.y=Mn.getFullYear(),_e.m=Mn.getMonth(),_e.d=Mn.getDate()+(_e.w+6)%7)}else("W"in _e||"U"in _e)&&("w"in _e||(_e.w="u"in _e?_e.u%7:"W"in _e?1:0),ce="Z"in _e?J0t(dF(_e.y,0,1)).getUTCDay():Q0t(dF(_e.y,0,1)).getDay(),_e.m=0,_e.d="W"in _e?(_e.w+6)%7+_e.W*7-(ce+5)%7:_e.w+_e.U*7-(ce+6)%7);return"Z"in _e?(_e.H+=_e.Z/100|0,_e.M+=_e.Z%100,J0t(_e)):Q0t(_e)}}function gt(be,Ne,Xt,_e){for(var xe=0,Mn=Ne.length,ce=Xt.length,Br,we;xe=ce)return-1;if(Br=Ne.charCodeAt(xe++),Br===37){if(Br=Ne.charAt(xe++),we=ct[Br in jNt?Ne.charAt(xe++):Br],!we||(_e=we(be,Xt,_e))<0)return-1}else if(Br!=Xt.charCodeAt(_e++))return-1}return _e}function Q(be,Ne,Xt){var _e=_.exec(Ne.slice(Xt));return _e?(be.p=M.get(_e[0].toLowerCase()),Xt+_e[0].length):-1}function dt(be,Ne,Xt){var _e=B.exec(Ne.slice(Xt));return _e?(be.w=z.get(_e[0].toLowerCase()),Xt+_e[0].length):-1}function K(be,Ne,Xt){var _e=F.exec(Ne.slice(Xt));return _e?(be.w=R.get(_e[0].toLowerCase()),Xt+_e[0].length):-1}function yt(be,Ne,Xt){var _e=ot.exec(Ne.slice(Xt));return _e?(be.m=ft.get(_e[0].toLowerCase()),Xt+_e[0].length):-1}function V(be,Ne,Xt){var _e=Y.exec(Ne.slice(Xt));return _e?(be.m=nt.get(_e[0].toLowerCase()),Xt+_e[0].length):-1}function Ot(be,Ne,Xt){return gt(be,a,Ne,Xt)}function It(be,Ne,Xt){return gt(be,f,Ne,Xt)}function jt(be,Ne,Xt){return gt(be,g,Ne,Xt)}function xt(be){return b[be.getDay()]}function Ft(be){return v[be.getDay()]}function Ct(be){return S[be.getMonth()]}function kt(be){return E[be.getMonth()]}function Gt(be){return w[+(be.getHours()>=12)]}function Fe(be){return 1+~~(be.getMonth()/3)}function Mt(be){return b[be.getUTCDay()]}function pn(be){return v[be.getUTCDay()]}function Ae(be){return S[be.getUTCMonth()]}function ye(be){return E[be.getUTCMonth()]}function tn(be){return w[+(be.getUTCHours()>=12)]}function sn(be){return 1+~~(be.getUTCMonth()/3)}return{format:function(be){var Ne=rt(be+="",wt);return Ne.toString=function(){return be},Ne},parse:function(be){var Ne=it(be+="",!1);return Ne.toString=function(){return be},Ne},utcFormat:function(be){var Ne=rt(be+="",mt);return Ne.toString=function(){return be},Ne},utcParse:function(be){var Ne=it(be+="",!0);return Ne.toString=function(){return be},Ne}}}var jNt={"-":"",_:" ",0:"0"},Ad=/^\s*\d+/,ZAe=/^%/,tLe=/[\\^$*+?|[\]().{}]/g;function Jc(i,a,f){var g=i<0?"-":"",w=(g?-i:i)+"",v=w.length;return g+(v[a.toLowerCase(),f]))}function nLe(i,a,f){var g=Ad.exec(a.slice(f,f+1));return g?(i.w=+g[0],f+g[0].length):-1}function rLe(i,a,f){var g=Ad.exec(a.slice(f,f+1));return g?(i.u=+g[0],f+g[0].length):-1}function iLe(i,a,f){var g=Ad.exec(a.slice(f,f+2));return g?(i.U=+g[0],f+g[0].length):-1}function sLe(i,a,f){var g=Ad.exec(a.slice(f,f+2));return g?(i.V=+g[0],f+g[0].length):-1}function aLe(i,a,f){var g=Ad.exec(a.slice(f,f+2));return g?(i.W=+g[0],f+g[0].length):-1}function $Nt(i,a,f){var g=Ad.exec(a.slice(f,f+4));return g?(i.y=+g[0],f+g[0].length):-1}function zNt(i,a,f){var g=Ad.exec(a.slice(f,f+2));return g?(i.y=+g[0]+(+g[0]>68?1900:2e3),f+g[0].length):-1}function oLe(i,a,f){var g=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(a.slice(f,f+6));return g?(i.Z=g[1]?0:-(g[2]+(g[3]||"00")),f+g[0].length):-1}function cLe(i,a,f){var g=Ad.exec(a.slice(f,f+1));return g?(i.q=g[0]*3-3,f+g[0].length):-1}function uLe(i,a,f){var g=Ad.exec(a.slice(f,f+2));return g?(i.m=g[0]-1,f+g[0].length):-1}function qNt(i,a,f){var g=Ad.exec(a.slice(f,f+2));return g?(i.d=+g[0],f+g[0].length):-1}function lLe(i,a,f){var g=Ad.exec(a.slice(f,f+3));return g?(i.m=0,i.d=+g[0],f+g[0].length):-1}function HNt(i,a,f){var g=Ad.exec(a.slice(f,f+2));return g?(i.H=+g[0],f+g[0].length):-1}function hLe(i,a,f){var g=Ad.exec(a.slice(f,f+2));return g?(i.M=+g[0],f+g[0].length):-1}function fLe(i,a,f){var g=Ad.exec(a.slice(f,f+2));return g?(i.S=+g[0],f+g[0].length):-1}function dLe(i,a,f){var g=Ad.exec(a.slice(f,f+3));return g?(i.L=+g[0],f+g[0].length):-1}function gLe(i,a,f){var g=Ad.exec(a.slice(f,f+6));return g?(i.L=Math.floor(g[0]/1e3),f+g[0].length):-1}function pLe(i,a,f){var g=ZAe.exec(a.slice(f,f+1));return g?f+g[0].length:-1}function bLe(i,a,f){var g=Ad.exec(a.slice(f));return g?(i.Q=+g[0],f+g[0].length):-1}function wLe(i,a,f){var g=Ad.exec(a.slice(f));return g?(i.s=+g[0],f+g[0].length):-1}function VNt(i,a){return Jc(i.getDate(),a,2)}function mLe(i,a){return Jc(i.getHours(),a,2)}function vLe(i,a){return Jc(i.getHours()%12||12,a,2)}function yLe(i,a){return Jc(1+c9.count(_x(i),i),a,3)}function UNt(i,a){return Jc(i.getMilliseconds(),a,3)}function xLe(i,a){return UNt(i,a)+"000"}function kLe(i,a){return Jc(i.getMonth()+1,a,2)}function ELe(i,a){return Jc(i.getMinutes(),a,2)}function TLe(i,a){return Jc(i.getSeconds(),a,2)}function CLe(i){var a=i.getDay();return a===0?7:a}function SLe(i,a){return Jc(lF.count(_x(i)-1,i),a,2)}function GNt(i){var a=i.getDay();return a>=4||a===0?l9(i):l9.ceil(i)}function _Le(i,a){return i=GNt(i),Jc(l9.count(_x(i),i)+(_x(i).getDay()===4),a,2)}function ALe(i){return i.getDay()}function LLe(i,a){return Jc(hF.count(_x(i)-1,i),a,2)}function DLe(i,a){return Jc(i.getFullYear()%100,a,2)}function MLe(i,a){return i=GNt(i),Jc(i.getFullYear()%100,a,2)}function ILe(i,a){return Jc(i.getFullYear()%1e4,a,4)}function OLe(i,a){var f=i.getDay();return i=f>=4||f===0?l9(i):l9.ceil(i),Jc(i.getFullYear()%1e4,a,4)}function NLe(i){var a=i.getTimezoneOffset();return(a>0?"-":(a*=-1,"+"))+Jc(a/60|0,"0",2)+Jc(a%60,"0",2)}function KNt(i,a){return Jc(i.getUTCDate(),a,2)}function PLe(i,a){return Jc(i.getUTCHours(),a,2)}function FLe(i,a){return Jc(i.getUTCHours()%12||12,a,2)}function BLe(i,a){return Jc(1+X0t.count(f9(i),i),a,3)}function WNt(i,a){return Jc(i.getUTCMilliseconds(),a,3)}function RLe(i,a){return WNt(i,a)+"000"}function jLe(i,a){return Jc(i.getUTCMonth()+1,a,2)}function $Le(i,a){return Jc(i.getUTCMinutes(),a,2)}function zLe(i,a){return Jc(i.getUTCSeconds(),a,2)}function qLe(i){var a=i.getUTCDay();return a===0?7:a}function HLe(i,a){return Jc(RNt.count(f9(i)-1,i),a,2)}function YNt(i){var a=i.getUTCDay();return a>=4||a===0?GL(i):GL.ceil(i)}function VLe(i,a){return i=YNt(i),Jc(GL.count(f9(i),i)+(f9(i).getUTCDay()===4),a,2)}function ULe(i){return i.getUTCDay()}function GLe(i,a){return Jc(LW.count(f9(i)-1,i),a,2)}function KLe(i,a){return Jc(i.getUTCFullYear()%100,a,2)}function WLe(i,a){return i=YNt(i),Jc(i.getUTCFullYear()%100,a,2)}function YLe(i,a){return Jc(i.getUTCFullYear()%1e4,a,4)}function XLe(i,a){var f=i.getUTCDay();return i=f>=4||f===0?GL(i):GL.ceil(i),Jc(i.getUTCFullYear()%1e4,a,4)}function QLe(){return"+0000"}function XNt(){return"%"}function QNt(i){return+i}function JNt(i){return Math.floor(+i/1e3)}var KL,DW;JLe({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function JLe(i){return KL=JAe(i),DW=KL.format,KL.parse,KL.utcFormat,KL.utcParse,KL}function ZLe(i){return new Date(i)}function tDe(i){return i instanceof Date?+i:+new Date(+i)}function ZNt(i,a,f,g,w,v,b,E,S,_){var M=INt(),F=M.invert,R=M.domain,B=_(".%L"),z=_(":%S"),Y=_("%I:%M"),nt=_("%I %p"),ot=_("%a %d"),ft=_("%b %d"),wt=_("%B"),mt=_("%Y");function ct(rt){return(S(rt)1?0:i<-1?bF:Math.acos(i)}function nPt(i){return i>=1?MW:i<=-1?-MW:Math.asin(i)}function rPt(i){let a=3;return i.digits=function(f){if(!arguments.length)return a;if(f==null)a=null;else{const g=Math.floor(f);if(!(g>=0))throw new RangeError(`invalid digits: ${f}`);a=g}return i},()=>new yAe(a)}function sDe(i){return i.innerRadius}function aDe(i){return i.outerRadius}function oDe(i){return i.startAngle}function cDe(i){return i.endAngle}function uDe(i){return i&&i.padAngle}function lDe(i,a,f,g,w,v,b,E){var S=f-i,_=g-a,M=b-w,F=E-v,R=F*S-M*_;if(!(R*ROt*Ot+It*It&&(gt=dt,Q=K),{cx:gt,cy:Q,x01:-M,y01:-F,x11:gt*(w/ct-1),y11:Q*(w/ct-1)}}function YL(){var i=sDe,a=aDe,f=kf(0),g=null,w=oDe,v=cDe,b=uDe,E=null,S=rPt(_);function _(){var M,F,R=+i.apply(this,arguments),B=+a.apply(this,arguments),z=w.apply(this,arguments)-MW,Y=v.apply(this,arguments)-MW,nt=ePt(Y-z),ot=Y>z;if(E||(E=M=S()),Brg))E.moveTo(0,0);else if(nt>IW-rg)E.moveTo(B*d9(z),B*t4(z)),E.arc(0,0,B,z,Y,!ot),R>rg&&(E.moveTo(R*d9(Y),R*t4(Y)),E.arc(0,0,R,Y,z,ot));else{var ft=z,wt=Y,mt=z,ct=Y,rt=nt,it=nt,gt=b.apply(this,arguments)/2,Q=gt>rg&&(g?+g.apply(this,arguments):WL(R*R+B*B)),dt=Z0t(ePt(B-R)/2,+f.apply(this,arguments)),K=dt,yt=dt,V,Ot;if(Q>rg){var It=nPt(Q/R*t4(gt)),jt=nPt(Q/B*t4(gt));(rt-=It*2)>rg?(It*=ot?1:-1,mt+=It,ct-=It):(rt=0,mt=ct=(z+Y)/2),(it-=jt*2)>rg?(jt*=ot?1:-1,ft+=jt,wt-=jt):(it=0,ft=wt=(z+Y)/2)}var xt=B*d9(ft),Ft=B*t4(ft),Ct=R*d9(ct),kt=R*t4(ct);if(dt>rg){var Gt=B*d9(wt),Fe=B*t4(wt),Mt=R*d9(mt),pn=R*t4(mt),Ae;if(ntrg?yt>rg?(V=OW(Mt,pn,xt,Ft,B,yt,ot),Ot=OW(Gt,Fe,Ct,kt,B,yt,ot),E.moveTo(V.cx+V.x01,V.cy+V.y01),ytrg)||!(rt>rg)?E.lineTo(Ct,kt):K>rg?(V=OW(Ct,kt,Gt,Fe,R,-K,ot),Ot=OW(xt,Ft,Mt,pn,R,-K,ot),E.lineTo(V.cx+V.x01,V.cy+V.y01),Ki?1:a>=i?0:NaN}function gDe(i){return i}function pDe(){var i=gDe,a=dDe,f=null,g=kf(0),w=kf(IW),v=kf(0);function b(E){var S,_=(E=iPt(E)).length,M,F,R=0,B=new Array(_),z=new Array(_),Y=+g.apply(this,arguments),nt=Math.min(IW,Math.max(-IW,w.apply(this,arguments)-Y)),ot,ft=Math.min(Math.abs(nt)/_,v.apply(this,arguments)),wt=ft*(nt<0?-1:1),mt;for(S=0;S<_;++S)(mt=z[B[S]=S]=+i(E[S],S,E))>0&&(R+=mt);for(a!=null?B.sort(function(ct,rt){return a(z[ct],z[rt])}):f!=null&&B.sort(function(ct,rt){return f(E[ct],E[rt])}),S=0,F=R?(nt-_*wt)/R:0;S<_;++S,Y=ot)M=B[S],mt=z[M],ot=Y+(mt>0?mt*F:0)+wt,z[M]={data:E[M],index:S,value:mt,startAngle:Y,endAngle:ot,padAngle:ft};return z}return b.value=function(E){return arguments.length?(i=typeof E=="function"?E:kf(+E),b):i},b.sortValues=function(E){return arguments.length?(a=E,f=null,b):a},b.sort=function(E){return arguments.length?(f=E,a=null,b):f},b.startAngle=function(E){return arguments.length?(g=typeof E=="function"?E:kf(+E),b):g},b.endAngle=function(E){return arguments.length?(w=typeof E=="function"?E:kf(+E),b):w},b.padAngle=function(E){return arguments.length?(v=typeof E=="function"?E:kf(+E),b):v},b}class aPt{constructor(a,f){this._context=a,this._x=f}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(a,f){switch(a=+a,f=+f,this._point){case 0:{this._point=1,this._line?this._context.lineTo(a,f):this._context.moveTo(a,f);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+a)/2,this._y0,this._x0,f,a,f):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+f)/2,a,this._y0,a,f);break}}this._x0=a,this._y0=f}}function bDe(i){return new aPt(i,!0)}function wDe(i){return new aPt(i,!1)}function d8(){}function NW(i,a,f){i._context.bezierCurveTo((2*i._x0+i._x1)/3,(2*i._y0+i._y1)/3,(i._x0+2*i._x1)/3,(i._y0+2*i._y1)/3,(i._x0+4*i._x1+a)/6,(i._y0+4*i._y1+f)/6)}function PW(i){this._context=i}PW.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:NW(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1,this._line?this._context.lineTo(i,a):this._context.moveTo(i,a);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:NW(this,i,a);break}this._x0=this._x1,this._x1=i,this._y0=this._y1,this._y1=a}};function wF(i){return new PW(i)}function oPt(i){this._context=i}oPt.prototype={areaStart:d8,areaEnd:d8,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1,this._x2=i,this._y2=a;break;case 1:this._point=2,this._x3=i,this._y3=a;break;case 2:this._point=3,this._x4=i,this._y4=a,this._context.moveTo((this._x0+4*this._x1+i)/6,(this._y0+4*this._y1+a)/6);break;default:NW(this,i,a);break}this._x0=this._x1,this._x1=i,this._y0=this._y1,this._y1=a}};function mDe(i){return new oPt(i)}function cPt(i){this._context=i}cPt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var f=(this._x0+4*this._x1+i)/6,g=(this._y0+4*this._y1+a)/6;this._line?this._context.lineTo(f,g):this._context.moveTo(f,g);break;case 3:this._point=4;default:NW(this,i,a);break}this._x0=this._x1,this._x1=i,this._y0=this._y1,this._y1=a}};function vDe(i){return new cPt(i)}function uPt(i,a){this._basis=new PW(i),this._beta=a}uPt.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var i=this._x,a=this._y,f=i.length-1;if(f>0)for(var g=i[0],w=a[0],v=i[f]-g,b=a[f]-w,E=-1,S;++E<=f;)S=E/f,this._basis.point(this._beta*i[E]+(1-this._beta)*(g+S*v),this._beta*a[E]+(1-this._beta)*(w+S*b));this._x=this._y=null,this._basis.lineEnd()},point:function(i,a){this._x.push(+i),this._y.push(+a)}};const yDe=function i(a){function f(g){return a===1?new PW(g):new uPt(g,a)}return f.beta=function(g){return i(+g)},f}(.85);function FW(i,a,f){i._context.bezierCurveTo(i._x1+i._k*(i._x2-i._x0),i._y1+i._k*(i._y2-i._y0),i._x2+i._k*(i._x1-a),i._y2+i._k*(i._y1-f),i._x2,i._y2)}function tgt(i,a){this._context=i,this._k=(1-a)/6}tgt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:FW(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1,this._line?this._context.lineTo(i,a):this._context.moveTo(i,a);break;case 1:this._point=2,this._x1=i,this._y1=a;break;case 2:this._point=3;default:FW(this,i,a);break}this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const xDe=function i(a){function f(g){return new tgt(g,a)}return f.tension=function(g){return i(+g)},f}(0);function egt(i,a){this._context=i,this._k=(1-a)/6}egt.prototype={areaStart:d8,areaEnd:d8,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1,this._x3=i,this._y3=a;break;case 1:this._point=2,this._context.moveTo(this._x4=i,this._y4=a);break;case 2:this._point=3,this._x5=i,this._y5=a;break;default:FW(this,i,a);break}this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const kDe=function i(a){function f(g){return new egt(g,a)}return f.tension=function(g){return i(+g)},f}(0);function ngt(i,a){this._context=i,this._k=(1-a)/6}ngt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:FW(this,i,a);break}this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const EDe=function i(a){function f(g){return new ngt(g,a)}return f.tension=function(g){return i(+g)},f}(0);function rgt(i,a,f){var g=i._x1,w=i._y1,v=i._x2,b=i._y2;if(i._l01_a>rg){var E=2*i._l01_2a+3*i._l01_a*i._l12_a+i._l12_2a,S=3*i._l01_a*(i._l01_a+i._l12_a);g=(g*E-i._x0*i._l12_2a+i._x2*i._l01_2a)/S,w=(w*E-i._y0*i._l12_2a+i._y2*i._l01_2a)/S}if(i._l23_a>rg){var _=2*i._l23_2a+3*i._l23_a*i._l12_a+i._l12_2a,M=3*i._l23_a*(i._l23_a+i._l12_a);v=(v*_+i._x1*i._l23_2a-a*i._l12_2a)/M,b=(b*_+i._y1*i._l23_2a-f*i._l12_2a)/M}i._context.bezierCurveTo(g,w,v,b,i._x2,i._y2)}function lPt(i,a){this._context=i,this._alpha=a}lPt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){if(i=+i,a=+a,this._point){var f=this._x2-i,g=this._y2-a;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(f*f+g*g,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(i,a):this._context.moveTo(i,a);break;case 1:this._point=2;break;case 2:this._point=3;default:rgt(this,i,a);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const TDe=function i(a){function f(g){return a?new lPt(g,a):new tgt(g,0)}return f.alpha=function(g){return i(+g)},f}(.5);function hPt(i,a){this._context=i,this._alpha=a}hPt.prototype={areaStart:d8,areaEnd:d8,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(i,a){if(i=+i,a=+a,this._point){var f=this._x2-i,g=this._y2-a;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(f*f+g*g,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=i,this._y3=a;break;case 1:this._point=2,this._context.moveTo(this._x4=i,this._y4=a);break;case 2:this._point=3,this._x5=i,this._y5=a;break;default:rgt(this,i,a);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const CDe=function i(a){function f(g){return a?new hPt(g,a):new egt(g,0)}return f.alpha=function(g){return i(+g)},f}(.5);function fPt(i,a){this._context=i,this._alpha=a}fPt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){if(i=+i,a=+a,this._point){var f=this._x2-i,g=this._y2-a;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(f*f+g*g,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:rgt(this,i,a);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const SDe=function i(a){function f(g){return a?new fPt(g,a):new ngt(g,0)}return f.alpha=function(g){return i(+g)},f}(.5);function dPt(i){this._context=i}dPt.prototype={areaStart:d8,areaEnd:d8,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(i,a){i=+i,a=+a,this._point?this._context.lineTo(i,a):(this._point=1,this._context.moveTo(i,a))}};function _De(i){return new dPt(i)}function gPt(i){return i<0?-1:1}function pPt(i,a,f){var g=i._x1-i._x0,w=a-i._x1,v=(i._y1-i._y0)/(g||w<0&&-0),b=(f-i._y1)/(w||g<0&&-0),E=(v*w+b*g)/(g+w);return(gPt(v)+gPt(b))*Math.min(Math.abs(v),Math.abs(b),.5*Math.abs(E))||0}function bPt(i,a){var f=i._x1-i._x0;return f?(3*(i._y1-i._y0)/f-a)/2:a}function igt(i,a,f){var g=i._x0,w=i._y0,v=i._x1,b=i._y1,E=(v-g)/3;i._context.bezierCurveTo(g+E,w+E*a,v-E,b-E*f,v,b)}function BW(i){this._context=i}BW.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:igt(this,this._t0,bPt(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){var f=NaN;if(i=+i,a=+a,!(i===this._x1&&a===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(i,a):this._context.moveTo(i,a);break;case 1:this._point=2;break;case 2:this._point=3,igt(this,bPt(this,f=pPt(this,i,a)),f);break;default:igt(this,this._t0,f=pPt(this,i,a));break}this._x0=this._x1,this._x1=i,this._y0=this._y1,this._y1=a,this._t0=f}}};function wPt(i){this._context=new mPt(i)}(wPt.prototype=Object.create(BW.prototype)).point=function(i,a){BW.prototype.point.call(this,a,i)};function mPt(i){this._context=i}mPt.prototype={moveTo:function(i,a){this._context.moveTo(a,i)},closePath:function(){this._context.closePath()},lineTo:function(i,a){this._context.lineTo(a,i)},bezierCurveTo:function(i,a,f,g,w,v){this._context.bezierCurveTo(a,i,g,f,v,w)}};function ADe(i){return new BW(i)}function LDe(i){return new wPt(i)}function vPt(i){this._context=i}vPt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var i=this._x,a=this._y,f=i.length;if(f)if(this._line?this._context.lineTo(i[0],a[0]):this._context.moveTo(i[0],a[0]),f===2)this._context.lineTo(i[1],a[1]);else for(var g=yPt(i),w=yPt(a),v=0,b=1;b=0;--a)w[a]=(b[a]-w[a+1])/v[a];for(v[f-1]=(i[f]+w[f-1])/2,a=0;a=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1,this._line?this._context.lineTo(i,a):this._context.moveTo(i,a);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,a),this._context.lineTo(i,a);else{var f=this._x*(1-this._t)+i*this._t;this._context.lineTo(f,this._y),this._context.lineTo(f,a)}break}}this._x=i,this._y=a}};function MDe(i){return new RW(i,.5)}function IDe(i){return new RW(i,0)}function ODe(i){return new RW(i,1)}function mF(i,a,f){this.k=i,this.x=a,this.y=f}mF.prototype={constructor:mF,scale:function(i){return i===1?this:new mF(this.k*i,this.x,this.y)},translate:function(i,a){return i===0&a===0?this:new mF(this.k,this.x+this.k*i,this.y+this.k*a)},apply:function(i){return[i[0]*this.k+this.x,i[1]*this.k+this.y]},applyX:function(i){return i*this.k+this.x},applyY:function(i){return i*this.k+this.y},invert:function(i){return[(i[0]-this.x)/this.k,(i[1]-this.y)/this.k]},invertX:function(i){return(i-this.x)/this.k},invertY:function(i){return(i-this.y)/this.k},rescaleX:function(i){return i.copy().domain(i.range().map(this.invertX,this).map(i.invert,i))},rescaleY:function(i){return i.copy().domain(i.range().map(this.invertY,this).map(i.invert,i))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}},mF.prototype;/*! @license DOMPurify 3.0.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.5/LICENSE */const{entries:xPt,setPrototypeOf:kPt,isFrozen:NDe,getPrototypeOf:PDe,getOwnPropertyDescriptor:FDe}=Object;let{freeze:Wg,seal:qv,create:BDe}=Object,{apply:sgt,construct:agt}=typeof Reflect<"u"&&Reflect;sgt||(sgt=function(a,f,g){return a.apply(f,g)}),Wg||(Wg=function(a){return a}),qv||(qv=function(a){return a}),agt||(agt=function(a,f){return new a(...f)});const RDe=Ww(Array.prototype.forEach),EPt=Ww(Array.prototype.pop),vF=Ww(Array.prototype.push),jW=Ww(String.prototype.toLowerCase),ogt=Ww(String.prototype.toString),jDe=Ww(String.prototype.match),Hv=Ww(String.prototype.replace),$De=Ww(String.prototype.indexOf),zDe=Ww(String.prototype.trim),E2=Ww(RegExp.prototype.test),yF=qDe(TypeError);function Ww(i){return function(a){for(var f=arguments.length,g=new Array(f>1?f-1:0),w=1;w/gm),KDe=qv(/\${[\w\W]*}/gm),WDe=qv(/^data-[\-\w.\u00B7-\uFFFF]/),YDe=qv(/^aria-[\-\w]+$/),APt=qv(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),XDe=qv(/^(?:\w+script|data):/i),QDe=qv(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),LPt=qv(/^html$/i);var DPt=Object.freeze({__proto__:null,MUSTACHE_EXPR:UDe,ERB_EXPR:GDe,TMPLIT_EXPR:KDe,DATA_ATTR:WDe,ARIA_ATTR:YDe,IS_ALLOWED_URI:APt,IS_SCRIPT_OR_DATA:XDe,ATTR_WHITESPACE:QDe,DOCTYPE_NAME:LPt});const JDe=()=>typeof window>"u"?null:window,ZDe=function(a,f){if(typeof a!="object"||typeof a.createPolicy!="function")return null;let g=null;const w="data-tt-policy-suffix";f&&f.hasAttribute(w)&&(g=f.getAttribute(w));const v="dompurify"+(g?"#"+g:"");try{return a.createPolicy(v,{createHTML(b){return b},createScriptURL(b){return b}})}catch{return console.warn("TrustedTypes policy "+v+" could not be created."),null}};function MPt(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:JDe();const a=Gi=>MPt(Gi);if(a.version="3.0.5",a.removed=[],!i||!i.document||i.document.nodeType!==9)return a.isSupported=!1,a;const f=i.document,g=f.currentScript;let{document:w}=i;const{DocumentFragment:v,HTMLTemplateElement:b,Node:E,Element:S,NodeFilter:_,NamedNodeMap:M=i.NamedNodeMap||i.MozNamedAttrMap,HTMLFormElement:F,DOMParser:R,trustedTypes:B}=i,z=S.prototype,Y=$W(z,"cloneNode"),nt=$W(z,"nextSibling"),ot=$W(z,"childNodes"),ft=$W(z,"parentNode");if(typeof b=="function"){const Gi=w.createElement("template");Gi.content&&Gi.content.ownerDocument&&(w=Gi.content.ownerDocument)}let wt,mt="";const{implementation:ct,createNodeIterator:rt,createDocumentFragment:it,getElementsByTagName:gt}=w,{importNode:Q}=f;let dt={};a.isSupported=typeof xPt=="function"&&typeof ft=="function"&&ct&&ct.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:K,ERB_EXPR:yt,TMPLIT_EXPR:V,DATA_ATTR:Ot,ARIA_ATTR:It,IS_SCRIPT_OR_DATA:jt,ATTR_WHITESPACE:xt}=DPt;let{IS_ALLOWED_URI:Ft}=DPt,Ct=null;const kt=Fo({},[...TPt,...cgt,...ugt,...lgt,...CPt]);let Gt=null;const Fe=Fo({},[...SPt,...hgt,..._Pt,...zW]);let Mt=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),pn=null,Ae=null,ye=!0,tn=!0,sn=!1,be=!0,Ne=!1,Xt=!1,_e=!1,xe=!1,Mn=!1,ce=!1,Br=!1,we=!0,Fi=!1;const mi="user-content-";let ga=!0,Ss=!1,za={},br=null;const An=Fo({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Nn=null;const Bn=Fo({},["audio","video","img","source","image","track"]);let ke=null;const pe=Fo({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Je="http://www.w3.org/1998/Math/MathML",an="http://www.w3.org/2000/svg",xn="http://www.w3.org/1999/xhtml";let qa=xn,xo=!1,ko=null;const va=Fo({},[Je,an,xn],ogt);let Ha;const ds=["application/xhtml+xml","text/html"],Fu="text/html";let Zs,d1=null;const I2=w.createElement("form"),ll=function(cn){return cn instanceof RegExp||cn instanceof Function},Ic=function(cn){if(!(d1&&d1===cn)){if((!cn||typeof cn!="object")&&(cn={}),cn=XL(cn),Ha=ds.indexOf(cn.PARSER_MEDIA_TYPE)===-1?Ha=Fu:Ha=cn.PARSER_MEDIA_TYPE,Zs=Ha==="application/xhtml+xml"?ogt:jW,Ct="ALLOWED_TAGS"in cn?Fo({},cn.ALLOWED_TAGS,Zs):kt,Gt="ALLOWED_ATTR"in cn?Fo({},cn.ALLOWED_ATTR,Zs):Fe,ko="ALLOWED_NAMESPACES"in cn?Fo({},cn.ALLOWED_NAMESPACES,ogt):va,ke="ADD_URI_SAFE_ATTR"in cn?Fo(XL(pe),cn.ADD_URI_SAFE_ATTR,Zs):pe,Nn="ADD_DATA_URI_TAGS"in cn?Fo(XL(Bn),cn.ADD_DATA_URI_TAGS,Zs):Bn,br="FORBID_CONTENTS"in cn?Fo({},cn.FORBID_CONTENTS,Zs):An,pn="FORBID_TAGS"in cn?Fo({},cn.FORBID_TAGS,Zs):{},Ae="FORBID_ATTR"in cn?Fo({},cn.FORBID_ATTR,Zs):{},za="USE_PROFILES"in cn?cn.USE_PROFILES:!1,ye=cn.ALLOW_ARIA_ATTR!==!1,tn=cn.ALLOW_DATA_ATTR!==!1,sn=cn.ALLOW_UNKNOWN_PROTOCOLS||!1,be=cn.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Ne=cn.SAFE_FOR_TEMPLATES||!1,Xt=cn.WHOLE_DOCUMENT||!1,Mn=cn.RETURN_DOM||!1,ce=cn.RETURN_DOM_FRAGMENT||!1,Br=cn.RETURN_TRUSTED_TYPE||!1,xe=cn.FORCE_BODY||!1,we=cn.SANITIZE_DOM!==!1,Fi=cn.SANITIZE_NAMED_PROPS||!1,ga=cn.KEEP_CONTENT!==!1,Ss=cn.IN_PLACE||!1,Ft=cn.ALLOWED_URI_REGEXP||APt,qa=cn.NAMESPACE||xn,Mt=cn.CUSTOM_ELEMENT_HANDLING||{},cn.CUSTOM_ELEMENT_HANDLING&&ll(cn.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Mt.tagNameCheck=cn.CUSTOM_ELEMENT_HANDLING.tagNameCheck),cn.CUSTOM_ELEMENT_HANDLING&&ll(cn.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Mt.attributeNameCheck=cn.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),cn.CUSTOM_ELEMENT_HANDLING&&typeof cn.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(Mt.allowCustomizedBuiltInElements=cn.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Ne&&(tn=!1),ce&&(Mn=!0),za&&(Ct=Fo({},[...CPt]),Gt=[],za.html===!0&&(Fo(Ct,TPt),Fo(Gt,SPt)),za.svg===!0&&(Fo(Ct,cgt),Fo(Gt,hgt),Fo(Gt,zW)),za.svgFilters===!0&&(Fo(Ct,ugt),Fo(Gt,hgt),Fo(Gt,zW)),za.mathMl===!0&&(Fo(Ct,lgt),Fo(Gt,_Pt),Fo(Gt,zW))),cn.ADD_TAGS&&(Ct===kt&&(Ct=XL(Ct)),Fo(Ct,cn.ADD_TAGS,Zs)),cn.ADD_ATTR&&(Gt===Fe&&(Gt=XL(Gt)),Fo(Gt,cn.ADD_ATTR,Zs)),cn.ADD_URI_SAFE_ATTR&&Fo(ke,cn.ADD_URI_SAFE_ATTR,Zs),cn.FORBID_CONTENTS&&(br===An&&(br=XL(br)),Fo(br,cn.FORBID_CONTENTS,Zs)),ga&&(Ct["#text"]=!0),Xt&&Fo(Ct,["html","head","body"]),Ct.table&&(Fo(Ct,["tbody"]),delete pn.tbody),cn.TRUSTED_TYPES_POLICY){if(typeof cn.TRUSTED_TYPES_POLICY.createHTML!="function")throw yF('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof cn.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw yF('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');wt=cn.TRUSTED_TYPES_POLICY,mt=wt.createHTML("")}else wt===void 0&&(wt=ZDe(B,g)),wt!==null&&typeof mt=="string"&&(mt=wt.createHTML(""));Wg&&Wg(cn),d1=cn}},wc=Fo({},["mi","mo","mn","ms","mtext"]),Ea=Fo({},["foreignobject","desc","title","annotation-xml"]),gu=Fo({},["title","style","font","a","script"]),ta=Fo({},cgt);Fo(ta,ugt),Fo(ta,HDe);const fo=Fo({},lgt);Fo(fo,VDe);const mc=function(cn){let Nr=ft(cn);(!Nr||!Nr.tagName)&&(Nr={namespaceURI:qa,tagName:"template"});const Si=jW(cn.tagName),vc=jW(Nr.tagName);return ko[cn.namespaceURI]?cn.namespaceURI===an?Nr.namespaceURI===xn?Si==="svg":Nr.namespaceURI===Je?Si==="svg"&&(vc==="annotation-xml"||wc[vc]):!!ta[Si]:cn.namespaceURI===Je?Nr.namespaceURI===xn?Si==="math":Nr.namespaceURI===an?Si==="math"&&Ea[vc]:!!fo[Si]:cn.namespaceURI===xn?Nr.namespaceURI===an&&!Ea[vc]||Nr.namespaceURI===Je&&!wc[vc]?!1:!fo[Si]&&(gu[Si]||!ta[Si]):!!(Ha==="application/xhtml+xml"&&ko[cn.namespaceURI]):!1},ca=function(cn){vF(a.removed,{element:cn});try{cn.parentNode.removeChild(cn)}catch{cn.remove()}},ya=function(cn,Nr){try{vF(a.removed,{attribute:Nr.getAttributeNode(cn),from:Nr})}catch{vF(a.removed,{attribute:null,from:Nr})}if(Nr.removeAttribute(cn),cn==="is"&&!Gt[cn])if(Mn||ce)try{ca(Nr)}catch{}else try{Nr.setAttribute(cn,"")}catch{}},ea=function(cn){let Nr,Si;if(xe)cn=""+cn;else{const Eh=jDe(cn,/^[\r\n\t ]+/);Si=Eh&&Eh[0]}Ha==="application/xhtml+xml"&&qa===xn&&(cn=''+cn+"");const vc=wt?wt.createHTML(cn):cn;if(qa===xn)try{Nr=new R().parseFromString(vc,Ha)}catch{}if(!Nr||!Nr.documentElement){Nr=ct.createDocument(qa,"template",null);try{Nr.documentElement.innerHTML=xo?mt:vc}catch{}}const Rc=Nr.body||Nr.documentElement;return cn&&Si&&Rc.insertBefore(w.createTextNode(Si),Rc.childNodes[0]||null),qa===xn?gt.call(Nr,Xt?"html":"body")[0]:Xt?Nr.documentElement:Rc},Zl=function(cn){return rt.call(cn.ownerDocument||cn,cn,_.SHOW_ELEMENT|_.SHOW_COMMENT|_.SHOW_TEXT,null,!1)},Uc=function(cn){return cn instanceof F&&(typeof cn.nodeName!="string"||typeof cn.textContent!="string"||typeof cn.removeChild!="function"||!(cn.attributes instanceof M)||typeof cn.removeAttribute!="function"||typeof cn.setAttribute!="function"||typeof cn.namespaceURI!="string"||typeof cn.insertBefore!="function"||typeof cn.hasChildNodes!="function")},rm=function(cn){return typeof E=="object"?cn instanceof E:cn&&typeof cn=="object"&&typeof cn.nodeType=="number"&&typeof cn.nodeName=="string"},kh=function(cn,Nr,Si){dt[cn]&&RDe(dt[cn],vc=>{vc.call(a,Nr,Si,d1)})},Md=function(cn){let Nr;if(kh("beforeSanitizeElements",cn,null),Uc(cn))return ca(cn),!0;const Si=Zs(cn.nodeName);if(kh("uponSanitizeElement",cn,{tagName:Si,allowedTags:Ct}),cn.hasChildNodes()&&!rm(cn.firstElementChild)&&(!rm(cn.content)||!rm(cn.content.firstElementChild))&&E2(/<[/\w]/g,cn.innerHTML)&&E2(/<[/\w]/g,cn.textContent))return ca(cn),!0;if(!Ct[Si]||pn[Si]){if(!pn[Si]&&Id(Si)&&(Mt.tagNameCheck instanceof RegExp&&E2(Mt.tagNameCheck,Si)||Mt.tagNameCheck instanceof Function&&Mt.tagNameCheck(Si)))return!1;if(ga&&!br[Si]){const vc=ft(cn)||cn.parentNode,Rc=ot(cn)||cn.childNodes;if(Rc&&vc){const Eh=Rc.length;for(let Zc=Eh-1;Zc>=0;--Zc)vc.insertBefore(Y(Rc[Zc],!0),nt(cn))}}return ca(cn),!0}return cn instanceof S&&!mc(cn)||(Si==="noscript"||Si==="noembed"||Si==="noframes")&&E2(/<\/no(script|embed|frames)/i,cn.innerHTML)?(ca(cn),!0):(Ne&&cn.nodeType===3&&(Nr=cn.textContent,Nr=Hv(Nr,K," "),Nr=Hv(Nr,yt," "),Nr=Hv(Nr,V," "),cn.textContent!==Nr&&(vF(a.removed,{element:cn.cloneNode()}),cn.textContent=Nr)),kh("afterSanitizeElements",cn,null),!1)},w0=function(cn,Nr,Si){if(we&&(Nr==="id"||Nr==="name")&&(Si in w||Si in I2))return!1;if(!(tn&&!Ae[Nr]&&E2(Ot,Nr))){if(!(ye&&E2(It,Nr))){if(!Gt[Nr]||Ae[Nr]){if(!(Id(cn)&&(Mt.tagNameCheck instanceof RegExp&&E2(Mt.tagNameCheck,cn)||Mt.tagNameCheck instanceof Function&&Mt.tagNameCheck(cn))&&(Mt.attributeNameCheck instanceof RegExp&&E2(Mt.attributeNameCheck,Nr)||Mt.attributeNameCheck instanceof Function&&Mt.attributeNameCheck(Nr))||Nr==="is"&&Mt.allowCustomizedBuiltInElements&&(Mt.tagNameCheck instanceof RegExp&&E2(Mt.tagNameCheck,Si)||Mt.tagNameCheck instanceof Function&&Mt.tagNameCheck(Si))))return!1}else if(!ke[Nr]){if(!E2(Ft,Hv(Si,xt,""))){if(!((Nr==="src"||Nr==="xlink:href"||Nr==="href")&&cn!=="script"&&$De(Si,"data:")===0&&Nn[cn])){if(!(sn&&!E2(jt,Hv(Si,xt,"")))){if(Si)return!1}}}}}}return!0},Id=function(cn){return cn.indexOf("-")>0},m0=function(cn){let Nr,Si,vc,Rc;kh("beforeSanitizeAttributes",cn,null);const{attributes:Eh}=cn;if(!Eh)return;const Zc={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Gt};for(Rc=Eh.length;Rc--;){Nr=Eh[Rc];const{name:Qh,namespaceURI:Od}=Nr;if(Si=Qh==="value"?Nr.value:zDe(Nr.value),vc=Zs(Qh),Zc.attrName=vc,Zc.attrValue=Si,Zc.keepAttr=!0,Zc.forceKeepAttr=void 0,kh("uponSanitizeAttribute",cn,Zc),Si=Zc.attrValue,Zc.forceKeepAttr||(ya(Qh,cn),!Zc.keepAttr))continue;if(!be&&E2(/\/>/i,Si)){ya(Qh,cn);continue}Ne&&(Si=Hv(Si,K," "),Si=Hv(Si,yt," "),Si=Hv(Si,V," "));const cs=Zs(cn.nodeName);if(w0(cs,vc,Si)){if(Fi&&(vc==="id"||vc==="name")&&(ya(Qh,cn),Si=mi+Si),wt&&typeof B=="object"&&typeof B.getAttributeType=="function"&&!Od)switch(B.getAttributeType(cs,vc)){case"TrustedHTML":{Si=wt.createHTML(Si);break}case"TrustedScriptURL":{Si=wt.createScriptURL(Si);break}}try{Od?cn.setAttributeNS(Od,Qh,Si):cn.setAttribute(Qh,Si),EPt(a.removed)}catch{}}}kh("afterSanitizeAttributes",cn,null)},hg=function Gi(cn){let Nr;const Si=Zl(cn);for(kh("beforeSanitizeShadowDOM",cn,null);Nr=Si.nextNode();)kh("uponSanitizeShadowNode",Nr,null),!Md(Nr)&&(Nr.content instanceof v&&Gi(Nr.content),m0(Nr));kh("afterSanitizeShadowDOM",cn,null)};return a.sanitize=function(Gi){let cn=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Nr,Si,vc,Rc;if(xo=!Gi,xo&&(Gi=""),typeof Gi!="string"&&!rm(Gi))if(typeof Gi.toString=="function"){if(Gi=Gi.toString(),typeof Gi!="string")throw yF("dirty is not a string, aborting")}else throw yF("toString is not a function");if(!a.isSupported)return Gi;if(_e||Ic(cn),a.removed=[],typeof Gi=="string"&&(Ss=!1),Ss){if(Gi.nodeName){const Qh=Zs(Gi.nodeName);if(!Ct[Qh]||pn[Qh])throw yF("root node is forbidden and cannot be sanitized in-place")}}else if(Gi instanceof E)Nr=ea(""),Si=Nr.ownerDocument.importNode(Gi,!0),Si.nodeType===1&&Si.nodeName==="BODY"||Si.nodeName==="HTML"?Nr=Si:Nr.appendChild(Si);else{if(!Mn&&!Ne&&!Xt&&Gi.indexOf("<")===-1)return wt&&Br?wt.createHTML(Gi):Gi;if(Nr=ea(Gi),!Nr)return Mn?null:Br?mt:""}Nr&&xe&&ca(Nr.firstChild);const Eh=Zl(Ss?Gi:Nr);for(;vc=Eh.nextNode();)Md(vc)||(vc.content instanceof v&&hg(vc.content),m0(vc));if(Ss)return Gi;if(Mn){if(ce)for(Rc=it.call(Nr.ownerDocument);Nr.firstChild;)Rc.appendChild(Nr.firstChild);else Rc=Nr;return(Gt.shadowroot||Gt.shadowrootmode)&&(Rc=Q.call(f,Rc,!0)),Rc}let Zc=Xt?Nr.outerHTML:Nr.innerHTML;return Xt&&Ct["!doctype"]&&Nr.ownerDocument&&Nr.ownerDocument.doctype&&Nr.ownerDocument.doctype.name&&E2(LPt,Nr.ownerDocument.doctype.name)&&(Zc=" +`+Zc),Ne&&(Zc=Hv(Zc,K," "),Zc=Hv(Zc,yt," "),Zc=Hv(Zc,V," ")),wt&&Br?wt.createHTML(Zc):Zc},a.setConfig=function(Gi){Ic(Gi),_e=!0},a.clearConfig=function(){d1=null,_e=!1},a.isValidAttribute=function(Gi,cn,Nr){d1||Ic({});const Si=Zs(Gi),vc=Zs(cn);return w0(Si,vc,Nr)},a.addHook=function(Gi,cn){typeof cn=="function"&&(dt[Gi]=dt[Gi]||[],vF(dt[Gi],cn))},a.removeHook=function(Gi){if(dt[Gi])return EPt(dt[Gi])},a.removeHooks=function(Gi){dt[Gi]&&(dt[Gi]=[])},a.removeAllHooks=function(){dt={}},a}var QL=MPt();const xF=//gi,tMe=i=>i?NPt(i).replace(/\\n/g,"#br#").split("#br#"):[""],eMe=(()=>{let i=!1;return()=>{i||(nMe(),i=!0)}})();function nMe(){const i="data-temp-href-target";QL.addHook("beforeSanitizeAttributes",a=>{a.tagName==="A"&&a.hasAttribute("target")&&a.setAttribute(i,a.getAttribute("target")||"")}),QL.addHook("afterSanitizeAttributes",a=>{a.tagName==="A"&&a.hasAttribute(i)&&(a.setAttribute("target",a.getAttribute(i)||""),a.removeAttribute(i),a.getAttribute("target")==="_blank"&&a.setAttribute("rel","noopener"))})}const IPt=i=>(eMe(),QL.sanitize(i)),OPt=(i,a)=>{var f;if(((f=a.flowchart)==null?void 0:f.htmlLabels)!==!1){const g=a.securityLevel;g==="antiscript"||g==="strict"?i=IPt(i):g!=="loose"&&(i=NPt(i),i=i.replace(//g,">"),i=i.replace(/=/g,"="),i=aMe(i))}return i},Ef=(i,a)=>i&&(a.dompurifyConfig?i=QL.sanitize(OPt(i,a),a.dompurifyConfig).toString():i=QL.sanitize(OPt(i,a),{FORBID_TAGS:["style"]}).toString(),i),rMe=(i,a)=>typeof i=="string"?Ef(i,a):i.flat().map(f=>Ef(f,a)),iMe=i=>xF.test(i),sMe=i=>i.split(xF),aMe=i=>i.replace(/#br#/g,"
"),NPt=i=>i.replace(xF,"#br#"),oMe=i=>{let a="";return i&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replaceAll(/\(/g,"\\("),a=a.replaceAll(/\)/g,"\\)")),a},j1=i=>!(i===!1||["false","null","0"].includes(String(i).trim().toLowerCase())),cMe=function(...i){const a=i.filter(f=>!isNaN(f));return Math.max(...a)},uMe=function(...i){const a=i.filter(f=>!isNaN(f));return Math.min(...a)},kF=function(i){const a=i.split(/(,)/),f=[];for(let g=0;g0&&g+1Math.max(0,i.split(a).length-1),lMe=(i,a)=>{const f=fgt(i,"~"),g=fgt(a,"~");return f===1&&g===1},hMe=i=>{const a=fgt(i,"~");let f=!1;if(a<=1)return i;a%2!==0&&i.startsWith("~")&&(i=i.substring(1),f=!0);const g=[...i];let w=g.indexOf("~"),v=g.lastIndexOf("~");for(;w!==-1&&v!==-1&&w!==v;)g[w]="<",g[v]=">",w=g.indexOf("~"),v=g.lastIndexOf("~");return f&&g.unshift("~"),g.join("")},ei={getRows:tMe,sanitizeText:Ef,sanitizeTextOrArray:rMe,hasBreaks:iMe,splitBreaks:sMe,lineBreakRegex:xF,removeScript:IPt,getUrl:oMe,evaluate:j1,getMax:cMe,getMin:uMe},qW={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:i=>i>=255?255:i<0?0:i,g:i=>i>=255?255:i<0?0:i,b:i=>i>=255?255:i<0?0:i,h:i=>i%360,s:i=>i>=100?100:i<0?0:i,l:i=>i>=100?100:i<0?0:i,a:i=>i>=1?1:i<0?0:i},toLinear:i=>{const a=i/255;return i>.03928?Math.pow((a+.055)/1.055,2.4):a/12.92},hue2rgb:(i,a,f)=>(f<0&&(f+=1),f>1&&(f-=1),f<1/6?i+(a-i)*6*f:f<1/2?a:f<2/3?i+(a-i)*(2/3-f)*6:i),hsl2rgb:({h:i,s:a,l:f},g)=>{if(!a)return f*2.55;i/=360,a/=100,f/=100;const w=f<.5?f*(1+a):f+a-f*a,v=2*f-w;switch(g){case"r":return qW.hue2rgb(v,w,i+1/3)*255;case"g":return qW.hue2rgb(v,w,i)*255;case"b":return qW.hue2rgb(v,w,i-1/3)*255}},rgb2hsl:({r:i,g:a,b:f},g)=>{i/=255,a/=255,f/=255;const w=Math.max(i,a,f),v=Math.min(i,a,f),b=(w+v)/2;if(g==="l")return b*100;if(w===v)return 0;const E=w-v,S=b>.5?E/(2-w-v):E/(w+v);if(g==="s")return S*100;switch(w){case i:return((a-f)/E+(aa>f?Math.min(a,Math.max(f,i)):Math.min(f,Math.max(a,i)),round:i=>Math.round(i*1e10)/1e10},unit:{dec2hex:i=>{const a=Math.round(i).toString(16);return a.length>1?a:`0${a}`}}},g8={};for(let i=0;i<=255;i++)g8[i]=Ia.unit.dec2hex(i);const ig={ALL:0,RGB:1,HSL:2};class fMe{constructor(){this.type=ig.ALL}get(){return this.type}set(a){if(this.type&&this.type!==a)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=a}reset(){this.type=ig.ALL}is(a){return this.type===a}}const dMe=fMe;class gMe{constructor(a,f){this.color=f,this.changed=!1,this.data=a,this.type=new dMe}set(a,f){return this.color=f,this.changed=!1,this.data=a,this.type.type=ig.ALL,this}_ensureHSL(){const a=this.data,{h:f,s:g,l:w}=a;f===void 0&&(a.h=Ia.channel.rgb2hsl(a,"h")),g===void 0&&(a.s=Ia.channel.rgb2hsl(a,"s")),w===void 0&&(a.l=Ia.channel.rgb2hsl(a,"l"))}_ensureRGB(){const a=this.data,{r:f,g,b:w}=a;f===void 0&&(a.r=Ia.channel.hsl2rgb(a,"r")),g===void 0&&(a.g=Ia.channel.hsl2rgb(a,"g")),w===void 0&&(a.b=Ia.channel.hsl2rgb(a,"b"))}get r(){const a=this.data,f=a.r;return!this.type.is(ig.HSL)&&f!==void 0?f:(this._ensureHSL(),Ia.channel.hsl2rgb(a,"r"))}get g(){const a=this.data,f=a.g;return!this.type.is(ig.HSL)&&f!==void 0?f:(this._ensureHSL(),Ia.channel.hsl2rgb(a,"g"))}get b(){const a=this.data,f=a.b;return!this.type.is(ig.HSL)&&f!==void 0?f:(this._ensureHSL(),Ia.channel.hsl2rgb(a,"b"))}get h(){const a=this.data,f=a.h;return!this.type.is(ig.RGB)&&f!==void 0?f:(this._ensureRGB(),Ia.channel.rgb2hsl(a,"h"))}get s(){const a=this.data,f=a.s;return!this.type.is(ig.RGB)&&f!==void 0?f:(this._ensureRGB(),Ia.channel.rgb2hsl(a,"s"))}get l(){const a=this.data,f=a.l;return!this.type.is(ig.RGB)&&f!==void 0?f:(this._ensureRGB(),Ia.channel.rgb2hsl(a,"l"))}get a(){return this.data.a}set r(a){this.type.set(ig.RGB),this.changed=!0,this.data.r=a}set g(a){this.type.set(ig.RGB),this.changed=!0,this.data.g=a}set b(a){this.type.set(ig.RGB),this.changed=!0,this.data.b=a}set h(a){this.type.set(ig.HSL),this.changed=!0,this.data.h=a}set s(a){this.type.set(ig.HSL),this.changed=!0,this.data.s=a}set l(a){this.type.set(ig.HSL),this.changed=!0,this.data.l=a}set a(a){this.changed=!0,this.data.a=a}}const pMe=gMe,HW=new pMe({r:0,g:0,b:0,a:0},"transparent"),PPt={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:i=>{if(i.charCodeAt(0)!==35)return;const a=i.match(PPt.re);if(!a)return;const f=a[1],g=parseInt(f,16),w=f.length,v=w%4===0,b=w>4,E=b?1:17,S=b?8:4,_=v?0:-1,M=b?255:15;return HW.set({r:(g>>S*(_+3)&M)*E,g:(g>>S*(_+2)&M)*E,b:(g>>S*(_+1)&M)*E,a:v?(g&M)*E/255:1},i)},stringify:i=>{const{r:a,g:f,b:g,a:w}=i;return w<1?`#${g8[Math.round(a)]}${g8[Math.round(f)]}${g8[Math.round(g)]}${g8[Math.round(w*255)]}`:`#${g8[Math.round(a)]}${g8[Math.round(f)]}${g8[Math.round(g)]}`}},EF=PPt,VW={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:i=>{const a=i.match(VW.hueRe);if(a){const[,f,g]=a;switch(g){case"grad":return Ia.channel.clamp.h(parseFloat(f)*.9);case"rad":return Ia.channel.clamp.h(parseFloat(f)*180/Math.PI);case"turn":return Ia.channel.clamp.h(parseFloat(f)*360)}}return Ia.channel.clamp.h(parseFloat(i))},parse:i=>{const a=i.charCodeAt(0);if(a!==104&&a!==72)return;const f=i.match(VW.re);if(!f)return;const[,g,w,v,b,E]=f;return HW.set({h:VW._hue2deg(g),s:Ia.channel.clamp.s(parseFloat(w)),l:Ia.channel.clamp.l(parseFloat(v)),a:b?Ia.channel.clamp.a(E?parseFloat(b)/100:parseFloat(b)):1},i)},stringify:i=>{const{h:a,s:f,l:g,a:w}=i;return w<1?`hsla(${Ia.lang.round(a)}, ${Ia.lang.round(f)}%, ${Ia.lang.round(g)}%, ${w})`:`hsl(${Ia.lang.round(a)}, ${Ia.lang.round(f)}%, ${Ia.lang.round(g)}%)`}},UW=VW,GW={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:i=>{i=i.toLowerCase();const a=GW.colors[i];if(a)return EF.parse(a)},stringify:i=>{const a=EF.stringify(i);for(const f in GW.colors)if(GW.colors[f]===a)return f}},FPt=GW,BPt={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:i=>{const a=i.charCodeAt(0);if(a!==114&&a!==82)return;const f=i.match(BPt.re);if(!f)return;const[,g,w,v,b,E,S,_,M]=f;return HW.set({r:Ia.channel.clamp.r(w?parseFloat(g)*2.55:parseFloat(g)),g:Ia.channel.clamp.g(b?parseFloat(v)*2.55:parseFloat(v)),b:Ia.channel.clamp.b(S?parseFloat(E)*2.55:parseFloat(E)),a:_?Ia.channel.clamp.a(M?parseFloat(_)/100:parseFloat(_)):1},i)},stringify:i=>{const{r:a,g:f,b:g,a:w}=i;return w<1?`rgba(${Ia.lang.round(a)}, ${Ia.lang.round(f)}, ${Ia.lang.round(g)}, ${Ia.lang.round(w)})`:`rgb(${Ia.lang.round(a)}, ${Ia.lang.round(f)}, ${Ia.lang.round(g)})`}},KW=BPt,Vv={format:{keyword:FPt,hex:EF,rgb:KW,rgba:KW,hsl:UW,hsla:UW},parse:i=>{if(typeof i!="string")return i;const a=EF.parse(i)||KW.parse(i)||UW.parse(i)||FPt.parse(i);if(a)return a;throw new Error(`Unsupported color format: "${i}"`)},stringify:i=>!i.changed&&i.color?i.color:i.type.is(ig.HSL)||i.data.r===void 0?UW.stringify(i):i.a<1||!Number.isInteger(i.r)||!Number.isInteger(i.g)||!Number.isInteger(i.b)?KW.stringify(i):EF.stringify(i)},RPt=(i,a)=>{const f=Vv.parse(i);for(const g in a)f[g]=Ia.channel.clamp[g](a[g]);return Vv.stringify(f)},g9=(i,a,f=0,g=1)=>{if(typeof i!="number")return RPt(i,{a});const w=HW.set({r:Ia.channel.clamp.r(i),g:Ia.channel.clamp.g(a),b:Ia.channel.clamp.b(f),a:Ia.channel.clamp.a(g)});return Vv.stringify(w)},jPt=(i,a)=>Ia.lang.round(Vv.parse(i)[a]),bMe=i=>{const{r:a,g:f,b:g}=Vv.parse(i),w=.2126*Ia.channel.toLinear(a)+.7152*Ia.channel.toLinear(f)+.0722*Ia.channel.toLinear(g);return Ia.lang.round(w)},wMe=i=>bMe(i)>=.5,p9=i=>!wMe(i),$Pt=(i,a,f)=>{const g=Vv.parse(i),w=g[a],v=Ia.channel.clamp[a](w+f);return w!==v&&(g[a]=v),Vv.stringify(g)},Is=(i,a)=>$Pt(i,"l",a),Js=(i,a)=>$Pt(i,"l",-a),Cn=(i,a)=>{const f=Vv.parse(i),g={};for(const w in a)a[w]&&(g[w]=f[w]+a[w]);return RPt(i,g)},mMe=(i,a,f=50)=>{const{r:g,g:w,b:v,a:b}=Vv.parse(i),{r:E,g:S,b:_,a:M}=Vv.parse(a),F=f/100,R=F*2-1,B=b-M,Y=((R*B===-1?R:(R+B)/(1+R*B))+1)/2,nt=1-Y,ot=g*Y+E*nt,ft=w*Y+S*nt,wt=v*Y+_*nt,mt=b*F+M*(1-F);return g9(ot,ft,wt,mt)},Ii=(i,a=100)=>{const f=Vv.parse(i);return f.r=255-f.r,f.g=255-f.g,f.b=255-f.b,mMe(f,i,a)},Yg=(i,a)=>a?Cn(i,{s:-40,l:10}):Cn(i,{s:-40,l:-10}),WW="#ffffff",YW="#f2f2f2";let vMe=class{constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){var f,g,w,v,b,E,S,_,M,F,R;if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||Cn(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||Cn(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Yg(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Yg(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Yg(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Yg(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||Ii(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||Ii(this.tertiaryColor),this.lineColor=this.lineColor||Ii(this.background),this.arrowheadColor=this.arrowheadColor||Ii(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?Js(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||"grey",this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||Js(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||Ii(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||Is(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Cn(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Cn(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Cn(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Cn(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Cn(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Cn(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||Cn(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Cn(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Cn(this.primaryColor,{h:330}),this.darkMode)for(let B=0;B{this[g]=a[g]}),this.updateColors(),f.forEach(g=>{this[g]=a[g]})}};const yMe=i=>{const a=new vMe;return a.calculate(i),a};let xMe=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=Is(this.primaryColor,16),this.tertiaryColor=Cn(this.primaryColor,{h:-160}),this.primaryBorderColor=Ii(this.background),this.secondaryBorderColor=Yg(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Yg(this.tertiaryColor,this.darkMode),this.primaryTextColor=Ii(this.primaryColor),this.secondaryTextColor=Ii(this.secondaryColor),this.tertiaryTextColor=Ii(this.tertiaryColor),this.lineColor=Ii(this.background),this.textColor=Ii(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=Is(Ii("#323D47"),10),this.lineColor="calculated",this.border1="#81B1DB",this.border2=g9(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=Js("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=Js(this.sectionBkgColor,10),this.taskBorderColor=g9(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=g9(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){var a,f,g,w,v,b,E,S,_,M,F;this.secondBkg=Is(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=Is(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.mainContrastColor,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=Is(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=Cn(this.primaryColor,{h:64}),this.fillType3=Cn(this.secondaryColor,{h:64}),this.fillType4=Cn(this.primaryColor,{h:-64}),this.fillType5=Cn(this.secondaryColor,{h:-64}),this.fillType6=Cn(this.primaryColor,{h:128}),this.fillType7=Cn(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Cn(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Cn(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Cn(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Cn(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Cn(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Cn(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Cn(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Cn(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Cn(this.primaryColor,{h:330});for(let R=0;R{this[g]=a[g]}),this.updateColors(),f.forEach(g=>{this[g]=a[g]})}};const kMe=i=>{const a=new xMe;return a.calculate(i),a};let EMe=class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=Cn(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=Cn(this.primaryColor,{h:-160}),this.primaryBorderColor=Yg(this.primaryColor,this.darkMode),this.secondaryBorderColor=Yg(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Yg(this.tertiaryColor,this.darkMode),this.primaryTextColor=Ii(this.primaryColor),this.secondaryTextColor=Ii(this.secondaryColor),this.tertiaryTextColor=Ii(this.tertiaryColor),this.lineColor=Ii(this.background),this.textColor=Ii(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#e8e8e8",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=g9(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){var a,f,g,w,v,b,E,S,_,M,F;this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Cn(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Cn(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Cn(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Cn(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Cn(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Cn(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Cn(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Cn(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Cn(this.primaryColor,{h:330}),this["cScalePeer1"]=this["cScalePeer1"]||Js(this.secondaryColor,45),this["cScalePeer2"]=this["cScalePeer2"]||Js(this.tertiaryColor,40);for(let R=0;R{this[g]=a[g]}),this.updateColors(),f.forEach(g=>{this[g]=a[g]})}};const dgt=i=>{const a=new EMe;return a.calculate(i),a};let TMe=class{constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=Is("#cde498",10),this.primaryBorderColor=Yg(this.primaryColor,this.darkMode),this.secondaryBorderColor=Yg(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Yg(this.tertiaryColor,this.darkMode),this.primaryTextColor=Ii(this.primaryColor),this.secondaryTextColor=Ii(this.secondaryColor),this.tertiaryTextColor=Ii(this.primaryColor),this.lineColor=Ii(this.background),this.textColor=Ii(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var a,f,g,w,v,b,E,S,_,M,F;this.actorBorder=Js(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Cn(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Cn(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Cn(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Cn(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Cn(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Cn(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Cn(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Cn(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Cn(this.primaryColor,{h:330}),this["cScalePeer1"]=this["cScalePeer1"]||Js(this.secondaryColor,45),this["cScalePeer2"]=this["cScalePeer2"]||Js(this.tertiaryColor,40);for(let R=0;R{this[g]=a[g]}),this.updateColors(),f.forEach(g=>{this[g]=a[g]})}};const CMe=i=>{const a=new TMe;return a.calculate(i),a};class SMe{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=Is(this.contrast,55),this.background="#ffffff",this.tertiaryColor=Cn(this.primaryColor,{h:-160}),this.primaryBorderColor=Yg(this.primaryColor,this.darkMode),this.secondaryBorderColor=Yg(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Yg(this.tertiaryColor,this.darkMode),this.primaryTextColor=Ii(this.primaryColor),this.secondaryTextColor=Ii(this.secondaryColor),this.tertiaryTextColor=Ii(this.tertiaryColor),this.lineColor=Ii(this.background),this.textColor=Ii(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var a,f,g,w,v,b,E,S,_,M,F;this.secondBkg=Is(this.contrast,55),this.border2=this.contrast,this.actorBorder=Is(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.lineColor,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let R=0;R{this[g]=a[g]}),this.updateColors(),f.forEach(g=>{this[g]=a[g]})}}const Lx={base:{getThemeVariables:yMe},dark:{getThemeVariables:kMe},default:{getThemeVariables:dgt},forest:{getThemeVariables:CMe},neutral:{getThemeVariables:i=>{const a=new SMe;return a.calculate(i),a}}},Dx={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},theme:"default",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","maxEdges"],deterministicIds:!1,fontSize:16},zPt={...Dx,deterministicIDSeed:void 0,themeCSS:void 0,themeVariables:Lx.default.getThemeVariables(),sequence:{...Dx.sequence,messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},noteFont:function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},actorFont:function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}},gantt:{...Dx.gantt,tickInterval:void 0,useWidth:void 0},c4:{...Dx.c4,useWidth:void 0,personFont:function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},external_personFont:function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},systemFont:function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},external_systemFont:function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},system_dbFont:function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},external_system_dbFont:function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},system_queueFont:function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},external_system_queueFont:function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},containerFont:function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},external_containerFont:function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},container_dbFont:function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},external_container_dbFont:function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},container_queueFont:function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},external_container_queueFont:function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},componentFont:function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},external_componentFont:function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},component_dbFont:function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},external_component_dbFont:function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},component_queueFont:function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},external_component_queueFont:function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},boundaryFont:function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}}},pie:{...Dx.pie,useWidth:984},xyChart:{...Dx.xyChart,useWidth:void 0},requirement:{...Dx.requirement,useWidth:void 0},gitGraph:{...Dx.gitGraph,useMaxWidth:!1},sankey:{...Dx.sankey,useMaxWidth:!1}},qPt=(i,a="")=>Object.keys(i).reduce((f,g)=>Array.isArray(i[g])?f:typeof i[g]=="object"&&i[g]!==null?[...f,a+g,...qPt(i[g],"")]:[...f,a+g],[]),_Me=new Set(qPt(zPt,"")),Bl=zPt,XW=i=>{if(Kt.debug("sanitizeDirective called with",i),!(typeof i!="object"||i==null)){if(Array.isArray(i)){i.forEach(a=>XW(a));return}for(const a of Object.keys(i)){if(Kt.debug("Checking key",a),a.startsWith("__")||a.includes("proto")||a.includes("constr")||!_Me.has(a)||i[a]==null){Kt.debug("sanitize deleting key: ",a),delete i[a];continue}if(typeof i[a]=="object"){Kt.debug("sanitizing object",a),XW(i[a]);continue}const f=["themeCSS","fontFamily","altFontFamily"];for(const g of f)a.includes(g)&&(Kt.debug("sanitizing css option",a),i[a]=AMe(i[a]))}if(i.themeVariables)for(const a of Object.keys(i.themeVariables)){const f=i.themeVariables[a];f!=null&&f.match&&!f.match(/^[\d "#%(),.;A-Za-z]+$/)&&(i.themeVariables[a]="")}Kt.debug("After sanitization",i)}},AMe=i=>{let a=0,f=0;for(const g of i){if(a{for(const{id:a,detector:f,loader:g}of i)GPt(a,f,g)},GPt=(i,a,f)=>{JL[i]?Kt.error(`Detector with key ${i} already exists`):JL[i]={detector:a,loader:f},Kt.debug(`Detector with key ${i} added${f?" with loader":""}`)},DMe=i=>JL[i].loader,ggt=(i,a,{depth:f=2,clobber:g=!1}={})=>{const w={depth:f,clobber:g};return Array.isArray(a)&&!Array.isArray(i)?(a.forEach(v=>ggt(i,v,w)),i):Array.isArray(a)&&Array.isArray(i)?(a.forEach(v=>{i.includes(v)||i.push(v)}),i):i===void 0||f<=0?i!=null&&typeof i=="object"&&typeof a=="object"?Object.assign(i,a):a:(a!==void 0&&typeof i=="object"&&typeof a=="object"&&Object.keys(a).forEach(v=>{typeof a[v]=="object"&&(i[v]===void 0||typeof i[v]=="object")?(i[v]===void 0&&(i[v]=Array.isArray(a[v])?[]:{}),i[v]=ggt(i[v],a[v],{depth:f-1,clobber:g})):(g||typeof i[v]!="object"&&typeof a[v]!="object")&&(i[v]=a[v])}),i)},Ld=ggt;var MMe=typeof global=="object"&&global&&global.Object===Object&&global;const KPt=MMe;var IMe=typeof self=="object"&&self&&self.Object===Object&&self,OMe=KPt||IMe||Function("return this")();const Uv=OMe;var NMe=Uv.Symbol;const Yw=NMe;var WPt=Object.prototype,PMe=WPt.hasOwnProperty,FMe=WPt.toString,CF=Yw?Yw.toStringTag:void 0;function BMe(i){var a=PMe.call(i,CF),f=i[CF];try{i[CF]=void 0;var g=!0}catch{}var w=FMe.call(i);return g&&(a?i[CF]=f:delete i[CF]),w}var RMe=Object.prototype,jMe=RMe.toString;function $Me(i){return jMe.call(i)}var zMe="[object Null]",qMe="[object Undefined]",YPt=Yw?Yw.toStringTag:void 0;function b9(i){return i==null?i===void 0?qMe:zMe:YPt&&YPt in Object(i)?BMe(i):$Me(i)}function T2(i){var a=typeof i;return i!=null&&(a=="object"||a=="function")}var HMe="[object AsyncFunction]",VMe="[object Function]",UMe="[object GeneratorFunction]",GMe="[object Proxy]";function ZL(i){if(!T2(i))return!1;var a=b9(i);return a==VMe||a==UMe||a==HMe||a==GMe}var KMe=Uv["__core-js_shared__"];const pgt=KMe;var XPt=function(){var i=/[^.]+$/.exec(pgt&&pgt.keys&&pgt.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function WMe(i){return!!XPt&&XPt in i}var YMe=Function.prototype,XMe=YMe.toString;function w9(i){if(i!=null){try{return XMe.call(i)}catch{}try{return i+""}catch{}}return""}var QMe=/[\\^$.*+?()[\]{}|]/g,JMe=/^\[object .+?Constructor\]$/,ZMe=Function.prototype,tIe=Object.prototype,eIe=ZMe.toString,nIe=tIe.hasOwnProperty,rIe=RegExp("^"+eIe.call(nIe).replace(QMe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function iIe(i){if(!T2(i)||WMe(i))return!1;var a=ZL(i)?rIe:JMe;return a.test(w9(i))}function sIe(i,a){return i==null?void 0:i[a]}function m9(i,a){var f=sIe(i,a);return iIe(f)?f:void 0}var aIe=m9(Object,"create");const SF=aIe;function oIe(){this.__data__=SF?SF(null):{},this.size=0}function cIe(i){var a=this.has(i)&&delete this.__data__[i];return this.size-=a?1:0,a}var uIe="__lodash_hash_undefined__",lIe=Object.prototype,hIe=lIe.hasOwnProperty;function fIe(i){var a=this.__data__;if(SF){var f=a[i];return f===uIe?void 0:f}return hIe.call(a,i)?a[i]:void 0}var dIe=Object.prototype,gIe=dIe.hasOwnProperty;function pIe(i){var a=this.__data__;return SF?a[i]!==void 0:gIe.call(a,i)}var bIe="__lodash_hash_undefined__";function wIe(i,a){var f=this.__data__;return this.size+=this.has(i)?0:1,f[i]=SF&&a===void 0?bIe:a,this}function v9(i){var a=-1,f=i==null?0:i.length;for(this.clear();++a-1}function TIe(i,a){var f=this.__data__,g=JW(f,i);return g<0?(++this.size,f.push([i,a])):f[g][1]=a,this}function Mx(i){var a=-1,f=i==null?0:i.length;for(this.clear();++a-1&&i%1==0&&i<=ZIe}function p8(i){return i!=null&&ygt(i.length)&&!ZL(i)}function uFt(i){return e4(i)&&p8(i)}function tOe(){return!1}var lFt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hFt=lFt&&typeof module=="object"&&module&&!module.nodeType&&module,eOe=hFt&&hFt.exports===lFt,fFt=eOe?Uv.Buffer:void 0,nOe=fFt?fFt.isBuffer:void 0,rOe=nOe||tOe;const rD=rOe;var iOe="[object Object]",sOe=Function.prototype,aOe=Object.prototype,dFt=sOe.toString,oOe=aOe.hasOwnProperty,cOe=dFt.call(Object);function gFt(i){if(!e4(i)||b9(i)!=iOe)return!1;var a=vgt(i);if(a===null)return!0;var f=oOe.call(a,"constructor")&&a.constructor;return typeof f=="function"&&f instanceof f&&dFt.call(f)==cOe}var uOe="[object Arguments]",lOe="[object Array]",hOe="[object Boolean]",fOe="[object Date]",dOe="[object Error]",gOe="[object Function]",pOe="[object Map]",bOe="[object Number]",wOe="[object Object]",mOe="[object RegExp]",vOe="[object Set]",yOe="[object String]",xOe="[object WeakMap]",kOe="[object ArrayBuffer]",EOe="[object DataView]",TOe="[object Float32Array]",COe="[object Float64Array]",SOe="[object Int8Array]",_Oe="[object Int16Array]",AOe="[object Int32Array]",LOe="[object Uint8Array]",DOe="[object Uint8ClampedArray]",MOe="[object Uint16Array]",IOe="[object Uint32Array]",Rl={};Rl[TOe]=Rl[COe]=Rl[SOe]=Rl[_Oe]=Rl[AOe]=Rl[LOe]=Rl[DOe]=Rl[MOe]=Rl[IOe]=!0,Rl[uOe]=Rl[lOe]=Rl[kOe]=Rl[hOe]=Rl[EOe]=Rl[fOe]=Rl[dOe]=Rl[gOe]=Rl[pOe]=Rl[bOe]=Rl[wOe]=Rl[mOe]=Rl[vOe]=Rl[yOe]=Rl[xOe]=!1;function OOe(i){return e4(i)&&ygt(i.length)&&!!Rl[b9(i)]}function iY(i){return function(a){return i(a)}}var pFt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,AF=pFt&&typeof module=="object"&&module&&!module.nodeType&&module,NOe=AF&&AF.exports===pFt,xgt=NOe&&KPt.process,POe=function(){try{var i=AF&&AF.require&&AF.require("util").types;return i||xgt&&xgt.binding&&xgt.binding("util")}catch{}}();const iD=POe;var bFt=iD&&iD.isTypedArray,FOe=bFt?iY(bFt):OOe;const sY=FOe;function kgt(i,a){if(!(a==="constructor"&&typeof i[a]=="function")&&a!="__proto__")return i[a]}var BOe=Object.prototype,ROe=BOe.hasOwnProperty;function aY(i,a,f){var g=i[a];(!(ROe.call(i,a)&&tD(g,f))||f===void 0&&!(a in i))&&eY(i,a,f)}function LF(i,a,f,g){var w=!f;f||(f={});for(var v=-1,b=a.length;++v-1&&i%1==0&&i0){if(++a>=ZOe)return arguments[0]}else a=0;return i.apply(void 0,arguments)}}var rNe=nNe(JOe);const xFt=rNe;function cY(i,a){return xFt(yFt(i,a,x9),i+"")}function DF(i,a,f){if(!T2(f))return!1;var g=typeof a;return(g=="number"?p8(f)&&oY(a,f.length):g=="string"&&a in f)?tD(f[a],i):!1}function iNe(i){return cY(function(a,f){var g=-1,w=f.length,v=w>1?f[w-1]:void 0,b=w>2?f[2]:void 0;for(v=i.length>3&&typeof v=="function"?(w--,v):void 0,b&&DF(f[0],f[1],b)&&(v=w<3?void 0:v,w=1),a=Object(a);++gE.args);XW(b),g=Ld(g,[...b])}else g=f.args;if(!g)return;let w=QW(i,a);const v="config";return g[v]!==void 0&&(w==="flowchart-v2"&&(w="flowchart"),g[w]=g[v],delete g[v]),g},EFt=function(i,a=null){try{const f=new RegExp(`[%]{2}(?![{]${oNe.source})(?=[}][%]{2}).* +`,"ig");i=i.trim().replace(f,"").replace(/'/gm,'"'),Kt.debug(`Detecting diagram directive${a!==null?" type:"+a:""} based on the text:${i}`);let g;const w=[];for(;(g=TF.exec(i))!==null;)if(g.index===TF.lastIndex&&TF.lastIndex++,g&&!a||a&&g[1]&&g[1].match(a)||a&&g[2]&&g[2].match(a)){const v=g[1]?g[1]:g[2],b=g[3]?g[3].trim():g[4]?JSON.parse(g[4].trim()):null;w.push({type:v,args:b})}return w.length===0?{type:i,args:null}:w.length===1?w[0]:w}catch(f){return Kt.error(`ERROR: ${f.message} - Unable to parse directive type: '${a}' based on the text: '${i}'`),{type:void 0,args:null}}},uNe=function(i){return i.replace(TF,"")},lNe=function(i,a){for(const[f,g]of a.entries())if(g.match(i))return f;return-1};function Xw(i,a){if(!i)return a;const f=`curve${i.charAt(0).toUpperCase()+i.slice(1)}`;return aNe[f]??a}function hNe(i,a){const f=i.trim();if(f)return a.securityLevel!=="loose"?h8(f):f}const fNe=(i,...a)=>{const f=i.split("."),g=f.length-1,w=f[g];let v=window;for(let b=0;b{f+=TFt(w,a),a=w});const g=f/2;return Egt(i,g)}function gNe(i){return i.length===1?i[0]:dNe(i)}const CFt=(i,a=2)=>{const f=Math.pow(10,a);return Math.round(i*f)/f},Egt=(i,a)=>{let f,g=a;for(const w of i){if(f){const v=TFt(w,f);if(v=1)return{x:w.x,y:w.y};if(b>0&&b<1)return{x:CFt((1-b)*f.x+b*w.x,5),y:CFt((1-b)*f.y+b*w.y,5)}}}f=w}throw new Error("Could not find a suitable point for the given distance")},pNe=(i,a,f)=>{Kt.info(`our points ${JSON.stringify(a)}`),a[0]!==f&&(a=a.reverse());const w=Egt(a,25),v=i?10:5,b=Math.atan2(a[0].y-w.y,a[0].x-w.x),E={x:0,y:0};return E.x=Math.sin(b)*v+(a[0].x+w.x)/2,E.y=-Math.cos(b)*v+(a[0].y+w.y)/2,E};function bNe(i,a,f){const g=structuredClone(f);Kt.info("our points",g),a!=="start_left"&&a!=="start_right"&&g.reverse();const w=25+i,v=Egt(g,w),b=10+i*.5,E=Math.atan2(g[0].y-v.y,g[0].x-v.x),S={x:0,y:0};return a==="start_left"?(S.x=Math.sin(E+Math.PI)*b+(g[0].x+v.x)/2,S.y=-Math.cos(E+Math.PI)*b+(g[0].y+v.y)/2):a==="end_right"?(S.x=Math.sin(E-Math.PI)*b+(g[0].x+v.x)/2-5,S.y=-Math.cos(E-Math.PI)*b+(g[0].y+v.y)/2-5):a==="end_left"?(S.x=Math.sin(E)*b+(g[0].x+v.x)/2-5,S.y=-Math.cos(E)*b+(g[0].y+v.y)/2-5):(S.x=Math.sin(E)*b+(g[0].x+v.x)/2,S.y=-Math.cos(E)*b+(g[0].y+v.y)/2),S}function C2(i){let a="",f="";for(const g of i)g!==void 0&&(g.startsWith("color:")||g.startsWith("text-align:")?f=f+g+";":a=a+g+";");return{style:a,labelStyle:f}}let SFt=0;const _Ft=()=>(SFt++,"id-"+Math.random().toString(36).substr(2,12)+"-"+SFt);function wNe(i){let a="";const f="0123456789abcdef",g=f.length;for(let w=0;wwNe(i.length),mNe=function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},vNe=function(i,a){const f=a.text.replace(ei.lineBreakRegex," "),[,g]=k9(a.fontSize),w=i.append("text");w.attr("x",a.x),w.attr("y",a.y),w.style("text-anchor",a.anchor),w.style("font-family",a.fontFamily),w.style("font-size",g),w.style("font-weight",a.fontWeight),w.attr("fill",a.fill),a.class!==void 0&&w.attr("class",a.class);const v=w.append("tspan");return v.attr("x",a.x+a.textMargin*2),v.attr("fill",a.fill),v.text(f),w},LFt=eD((i,a,f)=>{if(!i||(f=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
"},f),ei.lineBreakRegex.test(i)))return i;const g=i.split(" "),w=[];let v="";return g.forEach((b,E)=>{const S=n4(`${b} `,f),_=n4(v,f);if(S>a){const{hyphenatedStrings:R,remainingWord:B}=yNe(b,a,"-",f);w.push(v,...R),v=B}else _+S>=a?(w.push(v),v=b):v=[v,b].filter(Boolean).join(" ");E+1===g.length&&w.push(v)}),w.filter(b=>b!=="").join(f.joinWith)},(i,a,f)=>`${i}${a}${f.fontSize}${f.fontWeight}${f.fontFamily}${f.joinWith}`),yNe=eD((i,a,f="-",g)=>{g=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},g);const w=[...i],v=[];let b="";return w.forEach((E,S)=>{const _=`${b}${E}`;if(n4(_,g)>=a){const F=S+1,R=w.length===F,B=`${_}${f}`;v.push(R?_:B),b=""}else b=_}),{hyphenatedStrings:v,remainingWord:b}},(i,a,f="-",g)=>`${i}${a}${f}${g.fontSize}${g.fontWeight}${g.fontFamily}`);function Tgt(i,a){return Cgt(i,a).height}function n4(i,a){return Cgt(i,a).width}const Cgt=eD((i,a)=>{const{fontSize:f=12,fontFamily:g="Arial",fontWeight:w=400}=a;if(!i)return{width:0,height:0};const[,v]=k9(f),b=["sans-serif",g],E=i.split(ei.lineBreakRegex),S=[],_=Tr("body");if(!_.remove)return{width:0,height:0,lineHeight:0};const M=_.append("svg");for(const R of b){let B=0;const z={width:0,height:0,lineHeight:0};for(const Y of E){const nt=mNe();nt.text=Y||kFt;const ot=vNe(M,nt).style("font-size",v).style("font-weight",w).style("font-family",R),ft=(ot._groups||ot)[0][0].getBBox();if(ft.width===0&&ft.height===0)throw new Error("svg element not in render tree");z.width=Math.round(Math.max(z.width,ft.width)),B=Math.round(ft.height),z.height+=B,z.lineHeight=Math.round(Math.max(z.lineHeight,B))}S.push(z)}M.remove();const F=isNaN(S[1].height)||isNaN(S[1].width)||isNaN(S[1].lineHeight)||S[0].height>S[1].height&&S[0].width>S[1].width&&S[0].lineHeight>S[1].lineHeight?0:1;return S[F]},(i,a)=>`${i}${a.fontSize}${a.fontWeight}${a.fontFamily}`);class xNe{constructor(a=!1,f){this.count=0,this.count=f?f.length:0,this.next=a?()=>this.count++:()=>Date.now()}}let lY;const kNe=function(i){return lY=lY||document.createElement("div"),i=escape(i).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),lY.innerHTML=i,unescape(lY.textContent)};function DFt(i){return"str"in i}const ENe=(i,a,f,g)=>{var v;if(!g)return;const w=(v=i.node())==null?void 0:v.getBBox();w&&i.append("text").text(g).attr("x",w.x+w.width/2).attr("y",-f).attr("class",a)},k9=i=>{if(typeof i=="number")return[i,i+"px"];const a=parseInt(i??"",10);return Number.isNaN(a)?[void 0,void 0]:i===String(a)?[a,i+"px"]:[a,i]};function MF(i,a){return uY({},i,a)}const uo={assignWithDepth:Ld,wrapLabel:LFt,calculateTextHeight:Tgt,calculateTextWidth:n4,calculateTextDimensions:Cgt,cleanAndMerge:MF,detectInit:cNe,detectDirective:EFt,isSubstringInArray:lNe,interpolateToCurve:Xw,calcLabelPosition:gNe,calcCardinalityPosition:pNe,calcTerminalLabelPosition:bNe,formatUrl:hNe,getStylesFromArray:C2,generateId:_Ft,random:AFt,runFunc:fNe,entityDecode:kNe,insertTitle:ENe,parseFontSize:k9,InitIDGenerator:xNe},TNe=function(i){let a=i;return a=a.replace(/style.*:\S*#.*;/g,function(f){return f.substring(0,f.length-1)}),a=a.replace(/classDef.*:\S*#.*;/g,function(f){return f.substring(0,f.length-1)}),a=a.replace(/#\w+;/g,function(f){const g=f.substring(1,f.length-1);return/^\+?\d+$/.test(g)?"fl°°"+g+"¶ß":"fl°"+g+"¶ß"}),a},IF=function(i){return i.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")};var MFt="comm",IFt="rule",OFt="decl",CNe="@import",SNe="@keyframes",_Ne=Math.abs,Sgt=String.fromCharCode;function NFt(i){return i.trim()}function _gt(i,a,f){return i.replace(a,f)}function ANe(i,a){return i.indexOf(a)}function OF(i,a){return i.charCodeAt(a)|0}function NF(i,a,f){return i.slice(a,f)}function b8(i){return i.length}function PFt(i){return i.length}function hY(i,a){return a.push(i),i}var fY=1,aD=1,FFt=0,Qw=0,a1=0,oD="";function Agt(i,a,f,g,w,v,b){return{value:i,root:a,parent:f,type:g,props:w,children:v,line:fY,column:aD,length:b,return:""}}function LNe(){return a1}function DNe(){return a1=Qw>0?OF(oD,--Qw):0,aD--,a1===10&&(aD=1,fY--),a1}function Kv(){return a1=Qw2||Lgt(a1)>3?"":" "}function NNe(i,a){for(;--a&&Kv()&&!(a1<48||a1>102||a1>57&&a1<65||a1>70&&a1<97););return gY(i,dY()+(a<6&&E9()==32&&Kv()==32))}function Mgt(i){for(;Kv();)switch(a1){case i:return Qw;case 34:case 39:i!==34&&i!==39&&Mgt(a1);break;case 40:i===41&&Mgt(i);break;case 92:Kv();break}return Qw}function PNe(i,a){for(;Kv()&&i+a1!==47+10;)if(i+a1===42+42&&E9()===47)break;return"/*"+gY(a,Qw-1)+"*"+Sgt(i===47?i:Kv())}function FNe(i){for(;!Lgt(E9());)Kv();return gY(i,Qw)}function BNe(i){return INe(pY("",null,null,null,[""],i=MNe(i),0,[0],i))}function pY(i,a,f,g,w,v,b,E,S){for(var _=0,M=0,F=b,R=0,B=0,z=0,Y=1,nt=1,ot=1,ft=0,wt="",mt=w,ct=v,rt=g,it=wt;nt;)switch(z=ft,ft=Kv()){case 40:if(z!=108&&OF(it,F-1)==58){ANe(it+=_gt(Dgt(ft),"&","&\f"),"&\f")!=-1&&(ot=-1);break}case 34:case 39:case 91:it+=Dgt(ft);break;case 9:case 10:case 13:case 32:it+=ONe(z);break;case 92:it+=NNe(dY()-1,7);continue;case 47:switch(E9()){case 42:case 47:hY(RNe(PNe(Kv(),dY()),a,f),S);break;default:it+="/"}break;case 123*Y:E[_++]=b8(it)*ot;case 125*Y:case 59:case 0:switch(ft){case 0:case 125:nt=0;case 59+M:B>0&&b8(it)-F&&hY(B>32?RFt(it+";",g,f,F-1):RFt(_gt(it," ","")+";",g,f,F-2),S);break;case 59:it+=";";default:if(hY(rt=BFt(it,a,f,_,M,w,E,wt,mt=[],ct=[],F),v),ft===123)if(M===0)pY(it,a,rt,rt,mt,v,F,E,ct);else switch(R===99&&OF(it,3)===110?100:R){case 100:case 109:case 115:pY(i,rt,rt,g&&hY(BFt(i,rt,rt,0,0,w,E,wt,w,mt=[],F),ct),w,ct,F,E,g?mt:ct);break;default:pY(it,rt,rt,rt,[""],ct,0,E,ct)}}_=M=B=0,Y=ot=1,wt=it="",F=b;break;case 58:F=1+b8(it),B=z;default:if(Y<1){if(ft==123)--Y;else if(ft==125&&Y++==0&&DNe()==125)continue}switch(it+=Sgt(ft),ft*Y){case 38:ot=M>0?1:(it+="\f",-1);break;case 44:E[_++]=(b8(it)-1)*ot,ot=1;break;case 64:E9()===45&&(it+=Dgt(Kv())),R=E9(),M=F=b8(wt=it+=FNe(dY())),ft++;break;case 45:z===45&&b8(it)==2&&(Y=0)}}return v}function BFt(i,a,f,g,w,v,b,E,S,_,M){for(var F=w-1,R=w===0?v:[""],B=PFt(R),z=0,Y=0,nt=0;z0?R[ot]+" "+ft:_gt(ft,/&\f/g,R[ot])))&&(S[nt++]=wt);return Agt(i,a,f,w===0?IFt:E,S,_,M)}function RNe(i,a,f){return Agt(i,a,f,MFt,Sgt(LNe()),NF(i,2,-2),0)}function RFt(i,a,f,g){return Agt(i,a,f,OFt,NF(i,0,g),NF(i,g+1,-1),g)}function Igt(i,a){for(var f="",g=PFt(i),w=0;w{let f=Ld({},i),g={};for(const w of a)HFt(w),g=Ld(g,w);if(f=Ld(f,g),g.theme&&g.theme in Lx){const w=Ld({},$Ft),v=Ld(w.themeVariables||{},g.themeVariables);f.theme&&f.theme in Lx&&(f.themeVariables=Lx[f.theme].getThemeVariables(v))}return PF=f,UFt(PF),PF},$Ne=i=>(ib=Ld({},cD),ib=Ld(ib,i),i.theme&&Lx[i.theme]&&(ib.themeVariables=Lx[i.theme].getThemeVariables(i.themeVariables)),bY(ib,uD),ib),zNe=i=>{$Ft=Ld({},i)},qNe=i=>(ib=Ld(ib,i),bY(ib,uD),ib),zFt=()=>Ld({},ib),qFt=i=>(UFt(i),Ld(PF,i),o1()),o1=()=>Ld({},PF),HFt=i=>{i&&(["secure",...ib.secure??[]].forEach(a=>{Object.hasOwn(i,a)&&(Kt.debug(`Denied attempt to modify a secure key ${a}`,i[a]),delete i[a])}),Object.keys(i).forEach(a=>{a.startsWith("__")&&delete i[a]}),Object.keys(i).forEach(a=>{typeof i[a]=="string"&&(i[a].includes("<")||i[a].includes(">")||i[a].includes("url(data:"))&&delete i[a],typeof i[a]=="object"&&HFt(i[a])}))},HNe=i=>{XW(i),i.fontFamily&&(!i.themeVariables||!i.themeVariables.fontFamily)&&(i.themeVariables={fontFamily:i.fontFamily}),uD.push(i),bY(ib,uD)},wY=(i=ib)=>{uD=[],bY(i,uD)},VNe={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},VFt={},UNe=i=>{VFt[i]||(Kt.warn(VNe[i]),VFt[i]=!0)},UFt=i=>{i&&(i.lazyLoadedDiagrams||i.loadExternalDiagramsAtStartup)&&UNe("LAZY_LOAD_DEPRECATED")},GFt="c4",GNe={id:GFt,detector:i=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>uje);return{id:GFt,diagram:i}}},KFt="flowchart",KNe={id:KFt,detector:(i,a)=>{var f,g;return((f=a==null?void 0:a.flowchart)==null?void 0:f.defaultRenderer)==="dagre-wrapper"||((g=a==null?void 0:a.flowchart)==null?void 0:g.defaultRenderer)==="elk"?!1:/^\s*graph/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>wWe);return{id:KFt,diagram:i}}},WFt="flowchart-v2",WNe={id:WFt,detector:(i,a)=>{var f,g,w;return((f=a==null?void 0:a.flowchart)==null?void 0:f.defaultRenderer)==="dagre-d3"||((g=a==null?void 0:a.flowchart)==null?void 0:g.defaultRenderer)==="elk"?!1:/^\s*graph/.test(i)&&((w=a==null?void 0:a.flowchart)==null?void 0:w.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>mWe);return{id:WFt,diagram:i}}},YFt="er",YNe={id:YFt,detector:i=>/^\s*erDiagram/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>VWe);return{id:YFt,diagram:i}}},XFt="gitGraph",XNe={id:XFt,detector:i=>/^\s*gitGraph/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>bYe);return{id:XFt,diagram:i}}},QFt="gantt",QNe={id:QFt,detector:i=>/^\s*gantt/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>sXe);return{id:QFt,diagram:i}}},JFt="info",JNe={id:JFt,detector:i=>/^\s*info/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>oXe);return{id:JFt,diagram:i}}},ZFt="pie",ZNe={id:ZFt,detector:i=>/^\s*pie/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>dXe);return{id:ZFt,diagram:i}}},tBt="quadrantChart",tPe={id:tBt,detector:i=>/^\s*quadrantChart/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>LXe);return{id:tBt,diagram:i}}},eBt="xychart",ePe={id:eBt,detector:i=>/^\s*xychart-beta/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>ZXe);return{id:eBt,diagram:i}}},nBt="requirement",nPe={id:nBt,detector:i=>/^\s*requirement(Diagram)?/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>uQe);return{id:nBt,diagram:i}}},rBt="sequence",rPe={id:rBt,detector:i=>/^\s*sequenceDiagram/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>fJe);return{id:rBt,diagram:i}}},iBt="class",iPe={id:iBt,detector:(i,a)=>{var f;return((f=a==null?void 0:a.class)==null?void 0:f.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>FJe);return{id:iBt,diagram:i}}},sBt="classDiagram",sPe={id:sBt,detector:(i,a)=>{var f;return/^\s*classDiagram/.test(i)&&((f=a==null?void 0:a.class)==null?void 0:f.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>qJe);return{id:sBt,diagram:i}}},aBt="state",aPe={id:aBt,detector:(i,a)=>{var f;return((f=a==null?void 0:a.state)==null?void 0:f.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>LZe);return{id:aBt,diagram:i}}},oBt="stateDiagram",oPe={id:oBt,detector:(i,a)=>{var f;return!!(/^\s*stateDiagram-v2/.test(i)||/^\s*stateDiagram/.test(i)&&((f=a==null?void 0:a.state)==null?void 0:f.defaultRenderer)==="dagre-wrapper")},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>WZe);return{id:oBt,diagram:i}}},cBt="journey",cPe={id:cBt,detector:i=>/^\s*journey/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>dtn);return{id:cBt,diagram:i}}},uPe=function(i,a){for(let f of a)i.attr(f[0],f[1])},lPe=function(i,a,f){let g=new Map;return f?(g.set("width","100%"),g.set("style",`max-width: ${a}px;`)):(g.set("height",i),g.set("width",a)),g},sg=function(i,a,f,g){const w=lPe(a,f,g);uPe(i,w)},w8=function(i,a,f,g){const w=a.node().getBBox(),v=w.width,b=w.height;Kt.info(`SVG bounds: ${v}x${b}`,w);let E=0,S=0;Kt.info(`Graph bounds: ${E}x${S}`,i),E=v+f*2,S=b+f*2,Kt.info(`Calculated bounds: ${E}x${S}`),sg(a,S,E,g);const _=`${w.x-f} ${w.y-f} ${w.width+2*f} ${w.height+2*f}`;a.attr("viewBox",_)},mY={},hPe=(i,a,f)=>{let g="";return i in mY&&mY[i]?g=mY[i](f):Kt.warn(`No theme found for ${i}`),` & { + font-family: ${f.fontFamily}; + font-size: ${f.fontSize}; + fill: ${f.textColor} + } + + /* Classes common for multiple diagrams */ + + & .error-icon { + fill: ${f.errorBkgColor}; + } + & .error-text { + fill: ${f.errorTextColor}; + stroke: ${f.errorTextColor}; + } + + & .edge-thickness-normal { + stroke-width: 2px; + } + & .edge-thickness-thick { + stroke-width: 3.5px + } + & .edge-pattern-solid { + stroke-dasharray: 0; + } + + & .edge-pattern-dashed{ + stroke-dasharray: 3; + } + .edge-pattern-dotted { + stroke-dasharray: 2; + } + + & .marker { + fill: ${f.lineColor}; + stroke: ${f.lineColor}; + } + & .marker.cross { + stroke: ${f.lineColor}; + } + + & svg { + font-family: ${f.fontFamily}; + font-size: ${f.fontSize}; + } + + ${g} + + ${a} +`},fPe=(i,a)=>{a!==void 0&&(mY[i]=a)},dPe=hPe;let Ogt="",Ngt="",Pgt="";const Fgt=i=>Ef(i,o1()),ag=()=>{Ogt="",Pgt="",Ngt=""},og=i=>{Ogt=Fgt(i).replace(/^\s+/g,"")},Xg=()=>Ogt,Qg=i=>{Pgt=Fgt(i).replace(/\n\s+/g,` +`)},Jg=()=>Pgt,S2=i=>{Ngt=Fgt(i)},Zg=()=>Ngt,uBt=Object.freeze(Object.defineProperty({__proto__:null,clear:ag,getAccDescription:Jg,getAccTitle:Xg,getDiagramTitle:Zg,setAccDescription:Qg,setAccTitle:og,setDiagramTitle:S2},Symbol.toStringTag,{value:"Module"})),gPe=Kt,pPe=d0t,Re=o1,bPe=qFt,lBt=cD,wPe=i=>Ef(i,Re()),hBt=w8,mPe=()=>uBt,vY={},yY=(i,a,f)=>{var g;if(vY[i])throw new Error(`Diagram ${i} already registered.`);vY[i]=a,f&&GPt(i,f),fPe(i,a.styles),(g=a.injectUtils)==null||g.call(a,gPe,pPe,Re,wPe,hBt,mPe(),()=>{})},Bgt=i=>{if(i in vY)return vY[i];throw new vPe(i)};class vPe extends Error{constructor(a){super(`Diagram ${a} not found.`)}}const FF=i=>{var w;const{securityLevel:a}=Re();let f=Tr("body");if(a==="sandbox"){const b=((w=Tr(`#i${i}`).node())==null?void 0:w.contentDocument)??document;f=Tr(b.body)}return f.select(`#${i}`)},fBt={draw:(i,a,f)=>{Kt.debug(`rendering svg for syntax error +`);const g=FF(a);g.attr("viewBox","0 0 2412 512"),sg(g,100,512,!0);const w=g.append("g");w.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),w.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),w.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),w.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),w.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),w.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),w.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),w.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${f}`)}},yPe=fBt,xPe={db:{},renderer:fBt,parser:{parser:{yy:{}},parse:()=>{}}},dBt="flowchart-elk",kPe={id:dBt,detector:(i,a)=>{var f;return!!(/^\s*flowchart-elk/.test(i)||/^\s*flowchart|graph/.test(i)&&((f=a==null?void 0:a.flowchart)==null?void 0:f.defaultRenderer)==="elk")},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Ltn);return{id:dBt,diagram:i}}},gBt="timeline",EPe={id:gBt,detector:i=>/^\s*timeline/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Wtn);return{id:gBt,diagram:i}}},pBt="mindmap",TPe={id:pBt,detector:i=>/^\s*mindmap/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>ken);return{id:pBt,diagram:i}}},bBt="sankey",CPe={id:bBt,detector:i=>/^\s*sankey-beta/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Jen);return{id:bBt,diagram:i}}},wBt="block",SPe={id:wBt,detector:i=>/^\s*block-beta/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>mnn);return{id:wBt,diagram:i}}};let mBt=!1;const Rgt=()=>{mBt||(mBt=!0,yY("error",xPe,i=>i.toLowerCase().trim()==="error"),yY("---",{db:{clear:()=>{}},styles:{},renderer:{draw:()=>{}},parser:{parser:{yy:{}},parse:()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")}},init:()=>null},i=>i.toLowerCase().trimStart().startsWith("---")),UPt(GNe,sPe,iPe,YNe,QNe,JNe,ZNe,nPe,rPe,kPe,WNe,KNe,TPe,EPe,XNe,oPe,aPe,cPe,tPe,CPe,ePe,SPe))};class vBt{constructor(a,f={}){this.text=a,this.metadata=f,this.type="graph",this.text=TNe(a),this.text+=` +`;const g=o1();try{this.type=QW(a,g)}catch(v){this.type="error",this.detectError=v}const w=Bgt(this.type);Kt.debug("Type "+this.type),this.db=w.db,this.renderer=w.renderer,this.parser=w.parser,this.parser.parser.yy=this.db,this.init=w.init,this.parse()}parse(){var f,g,w,v,b;if(this.detectError)throw this.detectError;(g=(f=this.db).clear)==null||g.call(f);const a=o1();(w=this.init)==null||w.call(this,a),this.metadata.title&&((b=(v=this.db).setDiagramTitle)==null||b.call(v,this.metadata.title)),this.parser.parse(this.text)}async render(a,f){await this.renderer.draw(this.text,a,f,this)}getParser(){return this.parser}getType(){return this.type}}const _Pe=async(i,a={})=>{const f=QW(i,o1());try{Bgt(f)}catch{const w=DMe(f);if(!w)throw new VPt(`Diagram ${f} not found.`);const{id:v,diagram:b}=await w();yY(v,b)}return new vBt(i,a)};let yBt=[];const APe=()=>{yBt.forEach(i=>{i()}),yBt=[]};var LPe=sFt(Object.keys,Object);const DPe=LPe;var MPe=Object.prototype,IPe=MPe.hasOwnProperty;function xBt(i){if(!rY(i))return DPe(i);var a=[];for(var f in Object(i))IPe.call(i,f)&&f!="constructor"&&a.push(f);return a}var OPe=m9(Uv,"DataView");const jgt=OPe;var NPe=m9(Uv,"Promise");const $gt=NPe;var PPe=m9(Uv,"Set");const lD=PPe;var FPe=m9(Uv,"WeakMap");const zgt=FPe;var kBt="[object Map]",BPe="[object Object]",EBt="[object Promise]",TBt="[object Set]",CBt="[object WeakMap]",SBt="[object DataView]",RPe=w9(jgt),jPe=w9(_F),$Pe=w9($gt),zPe=w9(lD),qPe=w9(zgt),T9=b9;(jgt&&T9(new jgt(new ArrayBuffer(1)))!=SBt||_F&&T9(new _F)!=kBt||$gt&&T9($gt.resolve())!=EBt||lD&&T9(new lD)!=TBt||zgt&&T9(new zgt)!=CBt)&&(T9=function(i){var a=b9(i),f=a==BPe?i.constructor:void 0,g=f?w9(f):"";if(g)switch(g){case RPe:return SBt;case jPe:return kBt;case $Pe:return EBt;case zPe:return TBt;case qPe:return CBt}return a});const hD=T9;var HPe="[object Map]",VPe="[object Set]",UPe=Object.prototype,GPe=UPe.hasOwnProperty;function BF(i){if(i==null)return!0;if(p8(i)&&(s1(i)||typeof i=="string"||typeof i.splice=="function"||rD(i)||sY(i)||nD(i)))return!i.length;var a=hD(i);if(a==HPe||a==VPe)return!i.size;if(rY(i))return!xBt(i).length;for(var f in i)if(GPe.call(i,f))return!1;return!0}const KPe="graphics-document document";function WPe(i,a){i.attr("role",KPe),a!==""&&i.attr("aria-roledescription",a)}function YPe(i,a,f,g){if(i.insert!==void 0){if(f){const w=`chart-desc-${g}`;i.attr("aria-describedby",w),i.insert("desc",":first-child").attr("id",w).text(f)}if(a){const w=`chart-title-${g}`;i.attr("aria-labelledby",w),i.insert("title",":first-child").attr("id",w).text(a)}}}const XPe=i=>i.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart();/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function _Bt(i){return typeof i>"u"||i===null}function QPe(i){return typeof i=="object"&&i!==null}function JPe(i){return Array.isArray(i)?i:_Bt(i)?[]:[i]}function ZPe(i,a){var f,g,w,v;if(a)for(v=Object.keys(a),f=0,g=v.length;fE&&(v=" ... ",a=g-E+v.length),f-g>E&&(b=" ...",f=g+E-b.length),{str:v+i.slice(a,f).replace(/\t/g,"→")+b,pos:g-a+v.length}}function Hgt(i,a){return tp.repeat(" ",a-i.length)+i}function cFe(i,a){if(a=Object.create(a||null),!i.buffer)return null;a.maxLength||(a.maxLength=79),typeof a.indent!="number"&&(a.indent=1),typeof a.linesBefore!="number"&&(a.linesBefore=3),typeof a.linesAfter!="number"&&(a.linesAfter=2);for(var f=/\r?\n|\r|\0/g,g=[0],w=[],v,b=-1;v=f.exec(i.buffer);)w.push(v.index),g.push(v.index+v[0].length),i.position<=v.index&&b<0&&(b=g.length-2);b<0&&(b=g.length-1);var E="",S,_,M=Math.min(i.line+a.linesAfter,w.length).toString().length,F=a.maxLength-(a.indent+M+3);for(S=1;S<=a.linesBefore&&!(b-S<0);S++)_=qgt(i.buffer,g[b-S],w[b-S],i.position-(g[b]-g[b-S]),F),E=tp.repeat(" ",a.indent)+Hgt((i.line-S+1).toString(),M)+" | "+_.str+` +`+E;for(_=qgt(i.buffer,g[b],w[b],i.position,F),E+=tp.repeat(" ",a.indent)+Hgt((i.line+1).toString(),M)+" | "+_.str+` +`,E+=tp.repeat("-",a.indent+M+3+_.pos)+`^ +`,S=1;S<=a.linesAfter&&!(b+S>=w.length);S++)_=qgt(i.buffer,g[b+S],w[b+S],i.position-(g[b]-g[b+S]),F),E+=tp.repeat(" ",a.indent)+Hgt((i.line+S+1).toString(),M)+" | "+_.str+` +`;return E.replace(/\n$/,"")}var uFe=cFe,lFe=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],hFe=["scalar","sequence","mapping"];function fFe(i){var a={};return i!==null&&Object.keys(i).forEach(function(f){i[f].forEach(function(g){a[String(g)]=f})}),a}function dFe(i,a){if(a=a||{},Object.keys(a).forEach(function(f){if(lFe.indexOf(f)===-1)throw new Ox('Unknown option "'+f+'" is met in definition of "'+i+'" YAML type.')}),this.options=a,this.tag=i,this.kind=a.kind||null,this.resolve=a.resolve||function(){return!0},this.construct=a.construct||function(f){return f},this.instanceOf=a.instanceOf||null,this.predicate=a.predicate||null,this.represent=a.represent||null,this.representName=a.representName||null,this.defaultStyle=a.defaultStyle||null,this.multi=a.multi||!1,this.styleAliases=fFe(a.styleAliases||null),hFe.indexOf(this.kind)===-1)throw new Ox('Unknown kind "'+this.kind+'" is specified for "'+i+'" YAML type.')}var cg=dFe;function LBt(i,a){var f=[];return i[a].forEach(function(g){var w=f.length;f.forEach(function(v,b){v.tag===g.tag&&v.kind===g.kind&&v.multi===g.multi&&(w=b)}),f[w]=g}),f}function gFe(){var i={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},a,f;function g(w){w.multi?(i.multi[w.kind].push(w),i.multi.fallback.push(w)):i[w.kind][w.tag]=i.fallback[w.tag]=w}for(a=0,f=arguments.length;a=0?"0b"+i.toString(2):"-0b"+i.toString(2).slice(1)},octal:function(i){return i>=0?"0o"+i.toString(8):"-0o"+i.toString(8).slice(1)},decimal:function(i){return i.toString(10)},hexadecimal:function(i){return i>=0?"0x"+i.toString(16).toUpperCase():"-0x"+i.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),PFe=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function FFe(i){return!(i===null||!PFe.test(i)||i[i.length-1]==="_")}function BFe(i){var a,f;return a=i.replace(/_/g,"").toLowerCase(),f=a[0]==="-"?-1:1,"+-".indexOf(a[0])>=0&&(a=a.slice(1)),a===".inf"?f===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:a===".nan"?NaN:f*parseFloat(a,10)}var RFe=/^[-+]?[0-9]+e/;function jFe(i,a){var f;if(isNaN(i))switch(a){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===i)switch(a){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===i)switch(a){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(tp.isNegativeZero(i))return"-0.0";return f=i.toString(10),RFe.test(f)?f.replace("e",".e"):f}function $Fe(i){return Object.prototype.toString.call(i)==="[object Number]"&&(i%1!==0||tp.isNegativeZero(i))}var zFe=new cg("tag:yaml.org,2002:float",{kind:"scalar",resolve:FFe,construct:BFe,predicate:$Fe,represent:jFe,defaultStyle:"lowercase"}),DBt=vFe.extend({implicit:[EFe,_Fe,NFe,zFe]}),qFe=DBt,MBt=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),IBt=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function HFe(i){return i===null?!1:MBt.exec(i)!==null||IBt.exec(i)!==null}function VFe(i){var a,f,g,w,v,b,E,S=0,_=null,M,F,R;if(a=MBt.exec(i),a===null&&(a=IBt.exec(i)),a===null)throw new Error("Date resolve error");if(f=+a[1],g=+a[2]-1,w=+a[3],!a[4])return new Date(Date.UTC(f,g,w));if(v=+a[4],b=+a[5],E=+a[6],a[7]){for(S=a[7].slice(0,3);S.length<3;)S+="0";S=+S}return a[9]&&(M=+a[10],F=+(a[11]||0),_=(M*60+F)*6e4,a[9]==="-"&&(_=-_)),R=new Date(Date.UTC(f,g,w,v,b,E,S)),_&&R.setTime(R.getTime()-_),R}function UFe(i){return i.toISOString()}var GFe=new cg("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:HFe,construct:VFe,instanceOf:Date,represent:UFe});function KFe(i){return i==="<<"||i===null}var WFe=new cg("tag:yaml.org,2002:merge",{kind:"scalar",resolve:KFe}),Ugt=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function YFe(i){if(i===null)return!1;var a,f,g=0,w=i.length,v=Ugt;for(f=0;f64)){if(a<0)return!1;g+=6}return g%8===0}function XFe(i){var a,f,g=i.replace(/[\r\n=]/g,""),w=g.length,v=Ugt,b=0,E=[];for(a=0;a>16&255),E.push(b>>8&255),E.push(b&255)),b=b<<6|v.indexOf(g.charAt(a));return f=w%4*6,f===0?(E.push(b>>16&255),E.push(b>>8&255),E.push(b&255)):f===18?(E.push(b>>10&255),E.push(b>>2&255)):f===12&&E.push(b>>4&255),new Uint8Array(E)}function QFe(i){var a="",f=0,g,w,v=i.length,b=Ugt;for(g=0;g>18&63],a+=b[f>>12&63],a+=b[f>>6&63],a+=b[f&63]),f=(f<<8)+i[g];return w=v%3,w===0?(a+=b[f>>18&63],a+=b[f>>12&63],a+=b[f>>6&63],a+=b[f&63]):w===2?(a+=b[f>>10&63],a+=b[f>>4&63],a+=b[f<<2&63],a+=b[64]):w===1&&(a+=b[f>>2&63],a+=b[f<<4&63],a+=b[64],a+=b[64]),a}function JFe(i){return Object.prototype.toString.call(i)==="[object Uint8Array]"}var ZFe=new cg("tag:yaml.org,2002:binary",{kind:"scalar",resolve:YFe,construct:XFe,predicate:JFe,represent:QFe}),tBe=Object.prototype.hasOwnProperty,eBe=Object.prototype.toString;function nBe(i){if(i===null)return!0;var a=[],f,g,w,v,b,E=i;for(f=0,g=E.length;f>10)+55296,(i-65536&1023)+56320)}for(var $Bt=new Array(256),zBt=new Array(256),dD=0;dD<256;dD++)$Bt[dD]=jBt(dD)?1:0,zBt[dD]=jBt(dD);function kBe(i,a){this.input=i,this.filename=a.filename||null,this.schema=a.schema||dBe,this.onWarning=a.onWarning||null,this.legacy=a.legacy||!1,this.json=a.json||!1,this.listener=a.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=i.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function qBt(i,a){var f={name:i.filename,buffer:i.input.slice(0,-1),position:i.position,line:i.line,column:i.position-i.lineStart};return f.snippet=uFe(f),new Ox(a,f)}function Ks(i,a){throw qBt(i,a)}function EY(i,a){i.onWarning&&i.onWarning.call(null,qBt(i,a))}var HBt={YAML:function(a,f,g){var w,v,b;a.version!==null&&Ks(a,"duplication of %YAML directive"),g.length!==1&&Ks(a,"YAML directive accepts exactly one argument"),w=/^([0-9]+)\.([0-9]+)$/.exec(g[0]),w===null&&Ks(a,"ill-formed argument of the YAML directive"),v=parseInt(w[1],10),b=parseInt(w[2],10),v!==1&&Ks(a,"unacceptable YAML version of the document"),a.version=g[0],a.checkLineBreaks=b<2,b!==1&&b!==2&&EY(a,"unsupported YAML version of the document")},TAG:function(a,f,g){var w,v;g.length!==2&&Ks(a,"TAG directive accepts exactly two arguments"),w=g[0],v=g[1],FBt.test(w)||Ks(a,"ill-formed tag handle (first argument) of the TAG directive"),m8.call(a.tagMap,w)&&Ks(a,'there is a previously declared suffix for "'+w+'" tag handle'),BBt.test(v)||Ks(a,"ill-formed tag prefix (second argument) of the TAG directive");try{v=decodeURIComponent(v)}catch{Ks(a,"tag prefix is malformed: "+v)}a.tagMap[w]=v}};function v8(i,a,f,g){var w,v,b,E;if(a1&&(i.result+=tp.repeat(` +`,a-1))}function EBe(i,a,f){var g,w,v,b,E,S,_,M,F=i.kind,R=i.result,B;if(B=i.input.charCodeAt(i.position),sb(B)||fD(B)||B===35||B===38||B===42||B===33||B===124||B===62||B===39||B===34||B===37||B===64||B===96||(B===63||B===45)&&(w=i.input.charCodeAt(i.position+1),sb(w)||f&&fD(w)))return!1;for(i.kind="scalar",i.result="",v=b=i.position,E=!1;B!==0;){if(B===58){if(w=i.input.charCodeAt(i.position+1),sb(w)||f&&fD(w))break}else if(B===35){if(g=i.input.charCodeAt(i.position-1),sb(g))break}else{if(i.position===i.lineStart&&TY(i)||f&&fD(B))break;if(r4(B))if(S=i.line,_=i.lineStart,M=i.lineIndent,c1(i,!1,-1),i.lineIndent>=a){E=!0,B=i.input.charCodeAt(i.position);continue}else{i.position=b,i.line=S,i.lineStart=_,i.lineIndent=M;break}}E&&(v8(i,v,b,!1),Wgt(i,i.line-S),v=b=i.position,E=!1),C9(B)||(b=i.position+1),B=i.input.charCodeAt(++i.position)}return v8(i,v,b,!1),i.result?!0:(i.kind=F,i.result=R,!1)}function TBe(i,a){var f,g,w;if(f=i.input.charCodeAt(i.position),f!==39)return!1;for(i.kind="scalar",i.result="",i.position++,g=w=i.position;(f=i.input.charCodeAt(i.position))!==0;)if(f===39)if(v8(i,g,i.position,!0),f=i.input.charCodeAt(++i.position),f===39)g=i.position,i.position++,w=i.position;else return!0;else r4(f)?(v8(i,g,w,!0),Wgt(i,c1(i,!1,a)),g=w=i.position):i.position===i.lineStart&&TY(i)?Ks(i,"unexpected end of the document within a single quoted scalar"):(i.position++,w=i.position);Ks(i,"unexpected end of the stream within a single quoted scalar")}function CBe(i,a){var f,g,w,v,b,E;if(E=i.input.charCodeAt(i.position),E!==34)return!1;for(i.kind="scalar",i.result="",i.position++,f=g=i.position;(E=i.input.charCodeAt(i.position))!==0;){if(E===34)return v8(i,f,i.position,!0),i.position++,!0;if(E===92){if(v8(i,f,i.position,!0),E=i.input.charCodeAt(++i.position),r4(E))c1(i,!1,a);else if(E<256&&$Bt[E])i.result+=zBt[E],i.position++;else if((b=vBe(E))>0){for(w=b,v=0;w>0;w--)E=i.input.charCodeAt(++i.position),(b=mBe(E))>=0?v=(v<<4)+b:Ks(i,"expected hexadecimal character");i.result+=xBe(v),i.position++}else Ks(i,"unknown escape sequence");f=g=i.position}else r4(E)?(v8(i,f,g,!0),Wgt(i,c1(i,!1,a)),f=g=i.position):i.position===i.lineStart&&TY(i)?Ks(i,"unexpected end of the document within a double quoted scalar"):(i.position++,g=i.position)}Ks(i,"unexpected end of the stream within a double quoted scalar")}function SBe(i,a){var f=!0,g,w,v,b=i.tag,E,S=i.anchor,_,M,F,R,B,z=Object.create(null),Y,nt,ot,ft;if(ft=i.input.charCodeAt(i.position),ft===91)M=93,B=!1,E=[];else if(ft===123)M=125,B=!0,E={};else return!1;for(i.anchor!==null&&(i.anchorMap[i.anchor]=E),ft=i.input.charCodeAt(++i.position);ft!==0;){if(c1(i,!0,a),ft=i.input.charCodeAt(i.position),ft===M)return i.position++,i.tag=b,i.anchor=S,i.kind=B?"mapping":"sequence",i.result=E,!0;f?ft===44&&Ks(i,"expected the node content, but found ','"):Ks(i,"missed comma between flow collection entries"),nt=Y=ot=null,F=R=!1,ft===63&&(_=i.input.charCodeAt(i.position+1),sb(_)&&(F=R=!0,i.position++,c1(i,!0,a))),g=i.line,w=i.lineStart,v=i.position,pD(i,a,xY,!1,!0),nt=i.tag,Y=i.result,c1(i,!0,a),ft=i.input.charCodeAt(i.position),(R||i.line===g)&&ft===58&&(F=!0,ft=i.input.charCodeAt(++i.position),c1(i,!0,a),pD(i,a,xY,!1,!0),ot=i.result),B?gD(i,E,z,nt,Y,ot,g,w,v):F?E.push(gD(i,null,z,nt,Y,ot,g,w,v)):E.push(Y),c1(i,!0,a),ft=i.input.charCodeAt(i.position),ft===44?(f=!0,ft=i.input.charCodeAt(++i.position)):f=!1}Ks(i,"unexpected end of the stream within a flow collection")}function _Be(i,a){var f,g,w=Ggt,v=!1,b=!1,E=a,S=0,_=!1,M,F;if(F=i.input.charCodeAt(i.position),F===124)g=!1;else if(F===62)g=!0;else return!1;for(i.kind="scalar",i.result="";F!==0;)if(F=i.input.charCodeAt(++i.position),F===43||F===45)Ggt===w?w=F===43?PBt:gBe:Ks(i,"repeat of a chomping mode identifier");else if((M=yBe(F))>=0)M===0?Ks(i,"bad explicit indentation width of a block scalar; it cannot be less than one"):b?Ks(i,"repeat of an indentation width identifier"):(E=a+M-1,b=!0);else break;if(C9(F)){do F=i.input.charCodeAt(++i.position);while(C9(F));if(F===35)do F=i.input.charCodeAt(++i.position);while(!r4(F)&&F!==0)}for(;F!==0;){for(Kgt(i),i.lineIndent=0,F=i.input.charCodeAt(i.position);(!b||i.lineIndentE&&(E=i.lineIndent),r4(F)){S++;continue}if(i.lineIndenta)&&S!==0)Ks(i,"bad indentation of a sequence entry");else if(i.lineIndenta)&&(nt&&(b=i.line,E=i.lineStart,S=i.position),pD(i,a,kY,!0,w)&&(nt?z=i.result:Y=i.result),nt||(gD(i,F,R,B,z,Y,b,E,S),B=z=Y=null),c1(i,!0,-1),ft=i.input.charCodeAt(i.position)),(i.line===v||i.lineIndent>a)&&ft!==0)Ks(i,"bad indentation of a mapping entry");else if(i.lineIndenta?S=1:i.lineIndent===a?S=0:i.lineIndenta?S=1:i.lineIndent===a?S=0:i.lineIndent tag; it should be "scalar", not "'+i.kind+'"'),F=0,R=i.implicitTypes.length;F"),i.result!==null&&z.kind!==i.kind&&Ks(i,"unacceptable node kind for !<"+i.tag+'> tag; it should be "'+z.kind+'", not "'+i.kind+'"'),z.resolve(i.result,i.tag)?(i.result=z.construct(i.result,i.tag),i.anchor!==null&&(i.anchorMap[i.anchor]=i.result)):Ks(i,"cannot resolve a node with !<"+i.tag+"> explicit tag")}return i.listener!==null&&i.listener("close",i),i.tag!==null||i.anchor!==null||M}function IBe(i){var a=i.position,f,g,w,v=!1,b;for(i.version=null,i.checkLineBreaks=i.legacy,i.tagMap=Object.create(null),i.anchorMap=Object.create(null);(b=i.input.charCodeAt(i.position))!==0&&(c1(i,!0,-1),b=i.input.charCodeAt(i.position),!(i.lineIndent>0||b!==37));){for(v=!0,b=i.input.charCodeAt(++i.position),f=i.position;b!==0&&!sb(b);)b=i.input.charCodeAt(++i.position);for(g=i.input.slice(f,i.position),w=[],g.length<1&&Ks(i,"directive name must not be less than one character in length");b!==0;){for(;C9(b);)b=i.input.charCodeAt(++i.position);if(b===35){do b=i.input.charCodeAt(++i.position);while(b!==0&&!r4(b));break}if(r4(b))break;for(f=i.position;b!==0&&!sb(b);)b=i.input.charCodeAt(++i.position);w.push(i.input.slice(f,i.position))}b!==0&&Kgt(i),m8.call(HBt,g)?HBt[g](i,g,w):EY(i,'unknown document directive "'+g+'"')}if(c1(i,!0,-1),i.lineIndent===0&&i.input.charCodeAt(i.position)===45&&i.input.charCodeAt(i.position+1)===45&&i.input.charCodeAt(i.position+2)===45?(i.position+=3,c1(i,!0,-1)):v&&Ks(i,"directives end mark is expected"),pD(i,i.lineIndent-1,kY,!1,!0),c1(i,!0,-1),i.checkLineBreaks&&bBe.test(i.input.slice(a,i.position))&&EY(i,"non-ASCII line breaks are interpreted as content"),i.documents.push(i.result),i.position===i.lineStart&&TY(i)){i.input.charCodeAt(i.position)===46&&(i.position+=3,c1(i,!0,-1));return}if(i.position"u"&&(f=a,a=null);var g=GBt(i,f);if(typeof a!="function")return g;for(var w=0,v=g.length;wi.replace(/\r\n?/g,` +`).replace(/<(\w+)([^>]*)>/g,(a,f,g)=>"<"+f+g.replace(/="([^"]*)"/g,"='$1'")+">"),qBe=i=>{const{text:a,metadata:f}=$Be(i),{displayMode:g,title:w,config:v={}}=f;return g&&(v.gantt||(v.gantt={}),v.gantt.displayMode=g),{title:w,config:v,text:a}},HBe=i=>{const a=uo.detectInit(i)??{},f=uo.detectDirective(i,"wrap");return Array.isArray(f)?a.wrap=f.some(({type:g})=>{}):(f==null?void 0:f.type)==="wrap"&&(a.wrap=!0),{text:uNe(i),directive:a}};function KBt(i){const a=zBe(i),f=qBe(a),g=HBe(f.text),w=MF(f.config,g.directive);return i=XPe(g.text),{code:i,title:f.title,config:w}}const VBe=5e4,UBe="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",GBe="sandbox",KBe="loose",WBe="http://www.w3.org/2000/svg",YBe="http://www.w3.org/1999/xlink",XBe="http://www.w3.org/1999/xhtml",QBe="100%",JBe="100%",ZBe="border:0;margin:0;",tRe="margin:0",eRe="allow-top-navigation-by-user-activation allow-popups",nRe='The "iframe" tag is not supported by your browser.',rRe=["foreignobject"],iRe=["dominant-baseline"];function WBt(i){const a=KBt(i);return wY(),HNe(a.config??{}),a}async function sRe(i,a){Rgt(),i=WBt(i).code;try{await Ygt(i)}catch(f){if(a!=null&&a.suppressErrors)return!1;throw f}return!0}const YBt=(i,a,f=[])=>` +.${i} ${a} { ${f.join(" !important; ")} !important; }`,aRe=(i,a={})=>{var g;let f="";if(i.themeCSS!==void 0&&(f+=` +${i.themeCSS}`),i.fontFamily!==void 0&&(f+=` +:root { --mermaid-font-family: ${i.fontFamily}}`),i.altFontFamily!==void 0&&(f+=` +:root { --mermaid-alt-font-family: ${i.altFontFamily}}`),!BF(a)){const E=i.htmlLabels||((g=i.flowchart)==null?void 0:g.htmlLabels)?["> *","span"]:["rect","polygon","ellipse","circle","path"];for(const S in a){const _=a[S];BF(_.styles)||E.forEach(M=>{f+=YBt(_.id,M,_.styles)}),BF(_.textStyles)||(f+=YBt(_.id,"tspan",_.textStyles))}}return f},oRe=(i,a,f,g)=>{const w=aRe(i,f),v=dPe(a,w,i.themeVariables);return Igt(BNe(`${g}{${v}}`),jNe)},cRe=(i="",a,f)=>{let g=i;return!f&&!a&&(g=g.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),g=IF(g),g=g.replace(/
/g,"
"),g},uRe=(i="",a)=>{var w,v;const f=(v=(w=a==null?void 0:a.viewBox)==null?void 0:w.baseVal)!=null&&v.height?a.viewBox.baseVal.height+"px":JBe,g=btoa(''+i+"");return``},XBt=(i,a,f,g,w)=>{const v=i.append("div");v.attr("id",f),g&&v.attr("style",g);const b=v.append("svg").attr("id",a).attr("width","100%").attr("xmlns",WBe);return w&&b.attr("xmlns:xlink",w),b.append("g"),i};function QBt(i,a){return i.append("iframe").attr("id",a).attr("style","width: 100%; height: 100%;").attr("sandbox","")}const lRe=(i,a,f,g)=>{var w,v,b;(w=i.getElementById(a))==null||w.remove(),(v=i.getElementById(f))==null||v.remove(),(b=i.getElementById(g))==null||b.remove()},hRe=async function(i,a,f){var V,Ot,It,jt,xt,Ft;Rgt();const g=WBt(a);a=g.code;const w=o1();Kt.debug(w),a.length>((w==null?void 0:w.maxTextSize)??VBe)&&(a=UBe);const v="#"+i,b="i"+i,E="#"+b,S="d"+i,_="#"+S;let M=Tr("body");const F=w.securityLevel===GBe,R=w.securityLevel===KBe,B=w.fontFamily;if(f!==void 0){if(f&&(f.innerHTML=""),F){const Ct=QBt(Tr(f),b);M=Tr(Ct.nodes()[0].contentDocument.body),M.node().style.margin=0}else M=Tr(f);XBt(M,i,S,`font-family: ${B}`,YBe)}else{if(lRe(document,i,S,b),F){const Ct=QBt(Tr("body"),b);M=Tr(Ct.nodes()[0].contentDocument.body),M.node().style.margin=0}else M=Tr("body");XBt(M,i,S)}let z,Y;try{z=await Ygt(a,{title:g.title})}catch(Ct){z=new vBt("error"),Y=Ct}const nt=M.select(_).node(),ot=z.type,ft=nt.firstChild,wt=ft.firstChild,mt=(Ot=(V=z.renderer).getClasses)==null?void 0:Ot.call(V,a,z),ct=oRe(w,ot,mt,v),rt=document.createElement("style");rt.innerHTML=ct,ft.insertBefore(rt,wt);try{await z.renderer.draw(a,i,jFt,z)}catch(Ct){throw yPe.draw(a,i,jFt),Ct}const it=M.select(`${_} svg`),gt=(jt=(It=z.db).getAccTitle)==null?void 0:jt.call(It),Q=(Ft=(xt=z.db).getAccDescription)==null?void 0:Ft.call(xt);dRe(ot,it,gt,Q),M.select(`[id="${i}"]`).selectAll("foreignobject > *").attr("xmlns",XBe);let dt=M.select(_).node().innerHTML;if(Kt.debug("config.arrowMarkerAbsolute",w.arrowMarkerAbsolute),dt=cRe(dt,F,j1(w.arrowMarkerAbsolute)),F){const Ct=M.select(_+" svg").node();dt=uRe(dt,Ct)}else R||(dt=QL.sanitize(dt,{ADD_TAGS:rRe,ADD_ATTR:iRe}));if(APe(),Y)throw Y;const yt=Tr(F?E:_).node();return yt&&"remove"in yt&&yt.remove(),{svg:dt,bindFunctions:z.db.bindFunctions}};function fRe(i={}){var f;i!=null&&i.fontFamily&&!((f=i.themeVariables)!=null&&f.fontFamily)&&(i.themeVariables||(i.themeVariables={}),i.themeVariables.fontFamily=i.fontFamily),zNe(i),i!=null&&i.theme&&i.theme in Lx?i.themeVariables=Lx[i.theme].getThemeVariables(i.themeVariables):i&&(i.themeVariables=Lx.default.getThemeVariables(i.themeVariables));const a=typeof i=="object"?$Ne(i):zFt();d0t(a.logLevel),Rgt()}const Ygt=(i,a={})=>{const{code:f}=KBt(i);return _Pe(f,a)};function dRe(i,a,f,g){WPe(a,i),YPe(a,f,g,a.attr("id"))}const S9=Object.freeze({render:hRe,parse:sRe,getDiagramFromText:Ygt,initialize:fRe,getConfig:o1,setConfig:qFt,getSiteConfig:zFt,updateSiteConfig:qNe,reset:()=>{wY()},globalReset:()=>{wY(cD)},defaultConfig:cD});d0t(o1().logLevel),wY(o1());const gRe=async()=>{Kt.debug("Loading registered diagrams");const a=(await Promise.allSettled(Object.entries(JL).map(async([f,{detector:g,loader:w}])=>{if(w)try{Bgt(f)}catch{try{const{diagram:b,id:E}=await w();yY(E,b,g)}catch(b){throw Kt.error(`Failed to load external diagram with key ${f}. Removing from detectors.`),delete JL[f],b}}}))).filter(f=>f.status==="rejected");if(a.length>0){Kt.error(`Failed to load ${a.length} external diagrams`);for(const f of a)Kt.error(f);throw new Error(`Failed to load ${a.length} external diagrams`)}},pRe=(i,a,f)=>{Kt.warn(i),DFt(i)?(f&&f(i.str,i.hash),a.push({...i,message:i.str,error:i})):(f&&f(i),i instanceof Error&&a.push({str:i.message,message:i.message,hash:i.name,error:i}))},JBt=async function(i={querySelector:".mermaid"}){try{await bRe(i)}catch(a){if(DFt(a)&&Kt.error(a.str),_2.parseError&&_2.parseError(a),!i.suppressErrors)throw Kt.error("Use the suppressErrors option to suppress these errors"),a}},bRe=async function({postRenderCallback:i,querySelector:a,nodes:f}={querySelector:".mermaid"}){const g=S9.getConfig();Kt.debug(`${i?"":"No "}Callback function found`);let w;if(f)w=f;else if(a)w=document.querySelectorAll(a);else throw new Error("Nodes and querySelector are both undefined");Kt.debug(`Found ${w.length} diagrams`),(g==null?void 0:g.startOnLoad)!==void 0&&(Kt.debug("Start On Load: "+(g==null?void 0:g.startOnLoad)),S9.updateSiteConfig({startOnLoad:g==null?void 0:g.startOnLoad}));const v=new uo.InitIDGenerator(g.deterministicIds,g.deterministicIDSeed);let b;const E=[];for(const S of Array.from(w)){Kt.info("Rendering diagram: "+S.id);/*! Check if previously processed */if(S.getAttribute("data-processed"))continue;S.setAttribute("data-processed","true");const _=`mermaid-${v.next()}`;b=S.innerHTML,b=BL(uo.entityDecode(b)).trim().replace(//gi,"
");const M=uo.detectInit(b);M&&Kt.debug("Detected early reinit: ",M);try{const{svg:F,bindFunctions:R}=await nRt(_,b,S);S.innerHTML=F,i&&await i(_),R&&R(S)}catch(F){pRe(F,E,_2.parseError)}}if(E.length>0)throw E[0]},ZBt=function(i){S9.initialize(i)},wRe=async function(i,a,f){Kt.warn("mermaid.init is deprecated. Please use run instead."),i&&ZBt(i);const g={postRenderCallback:f,querySelector:".mermaid"};typeof a=="string"?g.querySelector=a:a&&(a instanceof HTMLElement?g.nodes=[a]:g.nodes=a),await JBt(g)},mRe=async(i,{lazyLoad:a=!0}={})=>{UPt(...i),a===!1&&await gRe()},tRt=function(){if(_2.startOnLoad){const{startOnLoad:i}=S9.getConfig();i&&_2.run().catch(a=>Kt.error("Mermaid failed to initialize",a))}};if(typeof document<"u"){/*! + * Wait for document loaded before starting the execution + */window.addEventListener("load",tRt,!1)}const vRe=function(i){_2.parseError=i},CY=[];let Xgt=!1;const eRt=async()=>{if(!Xgt){for(Xgt=!0;CY.length>0;){const i=CY.shift();if(i)try{await i()}catch(a){Kt.error("Error executing queue",a)}}Xgt=!1}},yRe=async(i,a)=>new Promise((f,g)=>{const w=()=>new Promise((v,b)=>{S9.parse(i,a).then(E=>{v(E),f(E)},E=>{var S;Kt.error("Error parsing",E),(S=_2.parseError)==null||S.call(_2,E),b(E),g(E)})});CY.push(w),eRt().catch(g)}),nRt=(i,a,f)=>new Promise((g,w)=>{const v=()=>new Promise((b,E)=>{S9.render(i,a,f).then(S=>{b(S),g(S)},S=>{var _;Kt.error("Error parsing",S),(_=_2.parseError)==null||_.call(_2,S),E(S),w(S)})});CY.push(v),eRt().catch(w)}),_2={startOnLoad:!0,mermaidAPI:S9,parse:yRe,render:nRt,init:wRe,run:JBt,registerExternalDiagrams:mRe,initialize:ZBt,parseError:void 0,contentLoaded:tRt,setParseErrorHandler:vRe,detectType:QW};var SY=function(){var i=function(br,An,Nn,Bn){for(Nn=Nn||{},Bn=br.length;Bn--;Nn[br[Bn]]=An);return Nn},a=[1,24],f=[1,25],g=[1,26],w=[1,27],v=[1,28],b=[1,63],E=[1,64],S=[1,65],_=[1,66],M=[1,67],F=[1,68],R=[1,69],B=[1,29],z=[1,30],Y=[1,31],nt=[1,32],ot=[1,33],ft=[1,34],wt=[1,35],mt=[1,36],ct=[1,37],rt=[1,38],it=[1,39],gt=[1,40],Q=[1,41],dt=[1,42],K=[1,43],yt=[1,44],V=[1,45],Ot=[1,46],It=[1,47],jt=[1,48],xt=[1,50],Ft=[1,51],Ct=[1,52],kt=[1,53],Gt=[1,54],Fe=[1,55],Mt=[1,56],pn=[1,57],Ae=[1,58],ye=[1,59],tn=[1,60],sn=[14,42],be=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Ne=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Xt=[1,82],_e=[1,83],xe=[1,84],Mn=[1,85],ce=[12,14,42],Br=[12,14,33,42],we=[12,14,33,42,76,77,79,80],Fi=[12,33],mi=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],ga={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:function(An,Nn,Bn,ke,pe,Je,an){var xn=Je.length-1;switch(pe){case 3:ke.setDirection("TB");break;case 4:ke.setDirection("BT");break;case 5:ke.setDirection("RL");break;case 6:ke.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:ke.setC4Type(Je[xn-3]);break;case 19:ke.setTitle(Je[xn].substring(6)),this.$=Je[xn].substring(6);break;case 20:ke.setAccDescription(Je[xn].substring(15)),this.$=Je[xn].substring(15);break;case 21:this.$=Je[xn].trim(),ke.setTitle(this.$);break;case 22:case 23:this.$=Je[xn].trim(),ke.setAccDescription(this.$);break;case 28:case 29:Je[xn].splice(2,0,"ENTERPRISE"),ke.addPersonOrSystemBoundary(...Je[xn]),this.$=Je[xn];break;case 30:ke.addPersonOrSystemBoundary(...Je[xn]),this.$=Je[xn];break;case 31:Je[xn].splice(2,0,"CONTAINER"),ke.addContainerBoundary(...Je[xn]),this.$=Je[xn];break;case 32:ke.addDeploymentNode("node",...Je[xn]),this.$=Je[xn];break;case 33:ke.addDeploymentNode("nodeL",...Je[xn]),this.$=Je[xn];break;case 34:ke.addDeploymentNode("nodeR",...Je[xn]),this.$=Je[xn];break;case 35:ke.popBoundaryParseStack();break;case 39:ke.addPersonOrSystem("person",...Je[xn]),this.$=Je[xn];break;case 40:ke.addPersonOrSystem("external_person",...Je[xn]),this.$=Je[xn];break;case 41:ke.addPersonOrSystem("system",...Je[xn]),this.$=Je[xn];break;case 42:ke.addPersonOrSystem("system_db",...Je[xn]),this.$=Je[xn];break;case 43:ke.addPersonOrSystem("system_queue",...Je[xn]),this.$=Je[xn];break;case 44:ke.addPersonOrSystem("external_system",...Je[xn]),this.$=Je[xn];break;case 45:ke.addPersonOrSystem("external_system_db",...Je[xn]),this.$=Je[xn];break;case 46:ke.addPersonOrSystem("external_system_queue",...Je[xn]),this.$=Je[xn];break;case 47:ke.addContainer("container",...Je[xn]),this.$=Je[xn];break;case 48:ke.addContainer("container_db",...Je[xn]),this.$=Je[xn];break;case 49:ke.addContainer("container_queue",...Je[xn]),this.$=Je[xn];break;case 50:ke.addContainer("external_container",...Je[xn]),this.$=Je[xn];break;case 51:ke.addContainer("external_container_db",...Je[xn]),this.$=Je[xn];break;case 52:ke.addContainer("external_container_queue",...Je[xn]),this.$=Je[xn];break;case 53:ke.addComponent("component",...Je[xn]),this.$=Je[xn];break;case 54:ke.addComponent("component_db",...Je[xn]),this.$=Je[xn];break;case 55:ke.addComponent("component_queue",...Je[xn]),this.$=Je[xn];break;case 56:ke.addComponent("external_component",...Je[xn]),this.$=Je[xn];break;case 57:ke.addComponent("external_component_db",...Je[xn]),this.$=Je[xn];break;case 58:ke.addComponent("external_component_queue",...Je[xn]),this.$=Je[xn];break;case 60:ke.addRel("rel",...Je[xn]),this.$=Je[xn];break;case 61:ke.addRel("birel",...Je[xn]),this.$=Je[xn];break;case 62:ke.addRel("rel_u",...Je[xn]),this.$=Je[xn];break;case 63:ke.addRel("rel_d",...Je[xn]),this.$=Je[xn];break;case 64:ke.addRel("rel_l",...Je[xn]),this.$=Je[xn];break;case 65:ke.addRel("rel_r",...Je[xn]),this.$=Je[xn];break;case 66:ke.addRel("rel_b",...Je[xn]),this.$=Je[xn];break;case 67:Je[xn].splice(0,1),ke.addRel("rel",...Je[xn]),this.$=Je[xn];break;case 68:ke.updateElStyle("update_el_style",...Je[xn]),this.$=Je[xn];break;case 69:ke.updateRelStyle("update_rel_style",...Je[xn]),this.$=Je[xn];break;case 70:ke.updateLayoutConfig("update_layout_config",...Je[xn]),this.$=Je[xn];break;case 71:this.$=[Je[xn]];break;case 72:Je[xn].unshift(Je[xn-1]),this.$=Je[xn];break;case 73:case 75:this.$=Je[xn].trim();break;case 74:let qa={};qa[Je[xn-1].trim()]=Je[xn].trim(),this.$=qa;break;case 76:this.$="";break}},table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:a,23:f,24:g,26:w,28:v,29:49,30:61,32:62,34:b,36:E,37:S,38:_,39:M,40:F,41:R,43:23,44:B,45:z,46:Y,47:nt,48:ot,49:ft,50:wt,51:mt,52:ct,53:rt,54:it,55:gt,56:Q,57:dt,58:K,59:yt,60:V,61:Ot,62:It,63:jt,64:xt,65:Ft,66:Ct,67:kt,68:Gt,69:Fe,70:Mt,71:pn,72:Ae,73:ye,74:tn},{13:70,19:20,20:21,21:22,22:a,23:f,24:g,26:w,28:v,29:49,30:61,32:62,34:b,36:E,37:S,38:_,39:M,40:F,41:R,43:23,44:B,45:z,46:Y,47:nt,48:ot,49:ft,50:wt,51:mt,52:ct,53:rt,54:it,55:gt,56:Q,57:dt,58:K,59:yt,60:V,61:Ot,62:It,63:jt,64:xt,65:Ft,66:Ct,67:kt,68:Gt,69:Fe,70:Mt,71:pn,72:Ae,73:ye,74:tn},{13:71,19:20,20:21,21:22,22:a,23:f,24:g,26:w,28:v,29:49,30:61,32:62,34:b,36:E,37:S,38:_,39:M,40:F,41:R,43:23,44:B,45:z,46:Y,47:nt,48:ot,49:ft,50:wt,51:mt,52:ct,53:rt,54:it,55:gt,56:Q,57:dt,58:K,59:yt,60:V,61:Ot,62:It,63:jt,64:xt,65:Ft,66:Ct,67:kt,68:Gt,69:Fe,70:Mt,71:pn,72:Ae,73:ye,74:tn},{13:72,19:20,20:21,21:22,22:a,23:f,24:g,26:w,28:v,29:49,30:61,32:62,34:b,36:E,37:S,38:_,39:M,40:F,41:R,43:23,44:B,45:z,46:Y,47:nt,48:ot,49:ft,50:wt,51:mt,52:ct,53:rt,54:it,55:gt,56:Q,57:dt,58:K,59:yt,60:V,61:Ot,62:It,63:jt,64:xt,65:Ft,66:Ct,67:kt,68:Gt,69:Fe,70:Mt,71:pn,72:Ae,73:ye,74:tn},{13:73,19:20,20:21,21:22,22:a,23:f,24:g,26:w,28:v,29:49,30:61,32:62,34:b,36:E,37:S,38:_,39:M,40:F,41:R,43:23,44:B,45:z,46:Y,47:nt,48:ot,49:ft,50:wt,51:mt,52:ct,53:rt,54:it,55:gt,56:Q,57:dt,58:K,59:yt,60:V,61:Ot,62:It,63:jt,64:xt,65:Ft,66:Ct,67:kt,68:Gt,69:Fe,70:Mt,71:pn,72:Ae,73:ye,74:tn},{14:[1,74]},i(sn,[2,13],{43:23,29:49,30:61,32:62,20:75,34:b,36:E,37:S,38:_,39:M,40:F,41:R,44:B,45:z,46:Y,47:nt,48:ot,49:ft,50:wt,51:mt,52:ct,53:rt,54:it,55:gt,56:Q,57:dt,58:K,59:yt,60:V,61:Ot,62:It,63:jt,64:xt,65:Ft,66:Ct,67:kt,68:Gt,69:Fe,70:Mt,71:pn,72:Ae,73:ye,74:tn}),i(sn,[2,14]),i(be,[2,16],{12:[1,76]}),i(sn,[2,36],{12:[1,77]}),i(Ne,[2,19]),i(Ne,[2,20]),{25:[1,78]},{27:[1,79]},i(Ne,[2,23]),{35:80,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:86,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:87,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:88,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:89,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:90,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:91,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:92,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:93,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:94,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:95,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:96,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:97,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:98,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:99,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:100,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:101,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:102,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:103,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:104,75:81,76:Xt,77:_e,79:xe,80:Mn},i(ce,[2,59]),{35:105,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:106,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:107,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:108,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:109,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:110,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:111,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:112,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:113,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:114,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:115,75:81,76:Xt,77:_e,79:xe,80:Mn},{20:116,29:49,30:61,32:62,34:b,36:E,37:S,38:_,39:M,40:F,41:R,43:23,44:B,45:z,46:Y,47:nt,48:ot,49:ft,50:wt,51:mt,52:ct,53:rt,54:it,55:gt,56:Q,57:dt,58:K,59:yt,60:V,61:Ot,62:It,63:jt,64:xt,65:Ft,66:Ct,67:kt,68:Gt,69:Fe,70:Mt,71:pn,72:Ae,73:ye,74:tn},{12:[1,118],33:[1,117]},{35:119,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:120,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:121,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:122,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:123,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:124,75:81,76:Xt,77:_e,79:xe,80:Mn},{35:125,75:81,76:Xt,77:_e,79:xe,80:Mn},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},i(sn,[2,15]),i(be,[2,17],{21:22,19:130,22:a,23:f,24:g,26:w,28:v}),i(sn,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:a,23:f,24:g,26:w,28:v,34:b,36:E,37:S,38:_,39:M,40:F,41:R,44:B,45:z,46:Y,47:nt,48:ot,49:ft,50:wt,51:mt,52:ct,53:rt,54:it,55:gt,56:Q,57:dt,58:K,59:yt,60:V,61:Ot,62:It,63:jt,64:xt,65:Ft,66:Ct,67:kt,68:Gt,69:Fe,70:Mt,71:pn,72:Ae,73:ye,74:tn}),i(Ne,[2,21]),i(Ne,[2,22]),i(ce,[2,39]),i(Br,[2,71],{75:81,35:132,76:Xt,77:_e,79:xe,80:Mn}),i(we,[2,73]),{78:[1,133]},i(we,[2,75]),i(we,[2,76]),i(ce,[2,40]),i(ce,[2,41]),i(ce,[2,42]),i(ce,[2,43]),i(ce,[2,44]),i(ce,[2,45]),i(ce,[2,46]),i(ce,[2,47]),i(ce,[2,48]),i(ce,[2,49]),i(ce,[2,50]),i(ce,[2,51]),i(ce,[2,52]),i(ce,[2,53]),i(ce,[2,54]),i(ce,[2,55]),i(ce,[2,56]),i(ce,[2,57]),i(ce,[2,58]),i(ce,[2,60]),i(ce,[2,61]),i(ce,[2,62]),i(ce,[2,63]),i(ce,[2,64]),i(ce,[2,65]),i(ce,[2,66]),i(ce,[2,67]),i(ce,[2,68]),i(ce,[2,69]),i(ce,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},i(Fi,[2,28]),i(Fi,[2,29]),i(Fi,[2,30]),i(Fi,[2,31]),i(Fi,[2,32]),i(Fi,[2,33]),i(Fi,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},i(be,[2,18]),i(sn,[2,38]),i(Br,[2,72]),i(we,[2,74]),i(ce,[2,24]),i(ce,[2,35]),i(mi,[2,25]),i(mi,[2,26],{12:[1,138]}),i(mi,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:function(An,Nn){if(Nn.recoverable)this.trace(An);else{var Bn=new Error(An);throw Bn.hash=Nn,Bn}},parse:function(An){var Nn=this,Bn=[0],ke=[],pe=[null],Je=[],an=this.table,xn="",qa=0,xo=0,ko=2,va=1,Ha=Je.slice.call(arguments,1),ds=Object.create(this.lexer),Fu={yy:{}};for(var Zs in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Zs)&&(Fu.yy[Zs]=this.yy[Zs]);ds.setInput(An,Fu.yy),Fu.yy.lexer=ds,Fu.yy.parser=this,typeof ds.yylloc>"u"&&(ds.yylloc={});var d1=ds.yylloc;Je.push(d1);var I2=ds.options&&ds.options.ranges;typeof Fu.yy.parseError=="function"?this.parseError=Fu.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ll(){var Zl;return Zl=ke.pop()||ds.lex()||va,typeof Zl!="number"&&(Zl instanceof Array&&(ke=Zl,Zl=ke.pop()),Zl=Nn.symbols_[Zl]||Zl),Zl}for(var Ic,wc,Ea,gu,ta={},fo,mc,ca,ya;;){if(wc=Bn[Bn.length-1],this.defaultActions[wc]?Ea=this.defaultActions[wc]:((Ic===null||typeof Ic>"u")&&(Ic=ll()),Ea=an[wc]&&an[wc][Ic]),typeof Ea>"u"||!Ea.length||!Ea[0]){var ea="";ya=[];for(fo in an[wc])this.terminals_[fo]&&fo>ko&&ya.push("'"+this.terminals_[fo]+"'");ds.showPosition?ea="Parse error on line "+(qa+1)+`: +`+ds.showPosition()+` +Expecting `+ya.join(", ")+", got '"+(this.terminals_[Ic]||Ic)+"'":ea="Parse error on line "+(qa+1)+": Unexpected "+(Ic==va?"end of input":"'"+(this.terminals_[Ic]||Ic)+"'"),this.parseError(ea,{text:ds.match,token:this.terminals_[Ic]||Ic,line:ds.yylineno,loc:d1,expected:ya})}if(Ea[0]instanceof Array&&Ea.length>1)throw new Error("Parse Error: multiple actions possible at state: "+wc+", token: "+Ic);switch(Ea[0]){case 1:Bn.push(Ic),pe.push(ds.yytext),Je.push(ds.yylloc),Bn.push(Ea[1]),Ic=null,xo=ds.yyleng,xn=ds.yytext,qa=ds.yylineno,d1=ds.yylloc;break;case 2:if(mc=this.productions_[Ea[1]][1],ta.$=pe[pe.length-mc],ta._$={first_line:Je[Je.length-(mc||1)].first_line,last_line:Je[Je.length-1].last_line,first_column:Je[Je.length-(mc||1)].first_column,last_column:Je[Je.length-1].last_column},I2&&(ta._$.range=[Je[Je.length-(mc||1)].range[0],Je[Je.length-1].range[1]]),gu=this.performAction.apply(ta,[xn,xo,qa,Fu.yy,Ea[1],pe,Je].concat(Ha)),typeof gu<"u")return gu;mc&&(Bn=Bn.slice(0,-1*mc*2),pe=pe.slice(0,-1*mc),Je=Je.slice(0,-1*mc)),Bn.push(this.productions_[Ea[1]][0]),pe.push(ta.$),Je.push(ta._$),ca=an[Bn[Bn.length-2]][Bn[Bn.length-1]],Bn.push(ca);break;case 3:return!0}}return!0}},Ss=function(){var br={EOF:1,parseError:function(Nn,Bn){if(this.yy.parser)this.yy.parser.parseError(Nn,Bn);else throw new Error(Nn)},setInput:function(An,Nn){return this.yy=Nn||this.yy||{},this._input=An,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var An=this._input[0];this.yytext+=An,this.yyleng++,this.offset++,this.match+=An,this.matched+=An;var Nn=An.match(/(?:\r\n?|\n).*/g);return Nn?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),An},unput:function(An){var Nn=An.length,Bn=An.split(/(?:\r\n?|\n)/g);this._input=An+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Nn),this.offset-=Nn;var ke=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Bn.length-1&&(this.yylineno-=Bn.length-1);var pe=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Bn?(Bn.length===ke.length?this.yylloc.first_column:0)+ke[ke.length-Bn.length].length-Bn[0].length:this.yylloc.first_column-Nn},this.options.ranges&&(this.yylloc.range=[pe[0],pe[0]+this.yyleng-Nn]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(An){this.unput(this.match.slice(An))},pastInput:function(){var An=this.matched.substr(0,this.matched.length-this.match.length);return(An.length>20?"...":"")+An.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var An=this.match;return An.length<20&&(An+=this._input.substr(0,20-An.length)),(An.substr(0,20)+(An.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var An=this.pastInput(),Nn=new Array(An.length+1).join("-");return An+this.upcomingInput()+` +`+Nn+"^"},test_match:function(An,Nn){var Bn,ke,pe;if(this.options.backtrack_lexer&&(pe={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(pe.yylloc.range=this.yylloc.range.slice(0))),ke=An[0].match(/(?:\r\n?|\n).*/g),ke&&(this.yylineno+=ke.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ke?ke[ke.length-1].length-ke[ke.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+An[0].length},this.yytext+=An[0],this.match+=An[0],this.matches=An,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(An[0].length),this.matched+=An[0],Bn=this.performAction.call(this,this.yy,this,Nn,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Bn)return Bn;if(this._backtrack){for(var Je in pe)this[Je]=pe[Je];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var An,Nn,Bn,ke;this._more||(this.yytext="",this.match="");for(var pe=this._currentRules(),Je=0;JeNn[0].length)){if(Nn=Bn,ke=Je,this.options.backtrack_lexer){if(An=this.test_match(Bn,pe[Je]),An!==!1)return An;if(this._backtrack){Nn=!1;continue}else return!1}else if(!this.options.flex)break}return Nn?(An=this.test_match(Nn,pe[ke]),An!==!1?An:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Nn=this.next();return Nn||this.lex()},begin:function(Nn){this.conditionStack.push(Nn)},popState:function(){var Nn=this.conditionStack.length-1;return Nn>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Nn){return Nn=this.conditionStack.length-1-Math.abs(Nn||0),Nn>=0?this.conditionStack[Nn]:"INITIAL"},pushState:function(Nn){this.begin(Nn)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(Nn,Bn,ke,pe){switch(ke){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),26;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:break;case 14:c;break;case 15:return 12;case 16:break;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;case 23:return this.begin("person"),44;case 24:return this.begin("system_ext_queue"),51;case 25:return this.begin("system_ext_db"),50;case 26:return this.begin("system_ext"),49;case 27:return this.begin("system_queue"),48;case 28:return this.begin("system_db"),47;case 29:return this.begin("system"),46;case 30:return this.begin("boundary"),37;case 31:return this.begin("enterprise_boundary"),34;case 32:return this.begin("system_boundary"),36;case 33:return this.begin("container_ext_queue"),57;case 34:return this.begin("container_ext_db"),56;case 35:return this.begin("container_ext"),55;case 36:return this.begin("container_queue"),54;case 37:return this.begin("container_db"),53;case 38:return this.begin("container"),52;case 39:return this.begin("container_boundary"),38;case 40:return this.begin("component_ext_queue"),63;case 41:return this.begin("component_ext_db"),62;case 42:return this.begin("component_ext"),61;case 43:return this.begin("component_queue"),60;case 44:return this.begin("component_db"),59;case 45:return this.begin("component"),58;case 46:return this.begin("node"),39;case 47:return this.begin("node"),39;case 48:return this.begin("node_l"),40;case 49:return this.begin("node_r"),41;case 50:return this.begin("rel"),64;case 51:return this.begin("birel"),65;case 52:return this.begin("rel_u"),66;case 53:return this.begin("rel_u"),66;case 54:return this.begin("rel_d"),67;case 55:return this.begin("rel_d"),67;case 56:return this.begin("rel_l"),68;case 57:return this.begin("rel_l"),68;case 58:return this.begin("rel_r"),69;case 59:return this.begin("rel_r"),69;case 60:return this.begin("rel_b"),70;case 61:return this.begin("rel_index"),71;case 62:return this.begin("update_el_style"),72;case 63:return this.begin("update_rel_style"),73;case 64:return this.begin("update_layout_config"),74;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 67:this.begin("attribute");break;case 68:this.popState(),this.popState();break;case 69:return 80;case 70:break;case 71:return 80;case 72:this.begin("string");break;case 73:this.popState();break;case 74:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 79:this.popState(),this.popState();break;case 80:return"STR";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};return br}();ga.lexer=Ss;function za(){this.yy={}}return za.prototype=ga,ga.Parser=za,new za}();SY.parser=SY;const xRe=SY;let Wv=[],y8=[""],ep="global",Yv="",i4=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],jF=[],Qgt="",Jgt=!1,_Y=4,AY=2;var rRt;const kRe=function(){return rRt},ERe=function(i){rRt=Ef(i,Re())},TRe=function(i,a,f,g,w,v,b,E,S){if(i==null||a===void 0||a===null||f===void 0||f===null||g===void 0||g===null)return;let _={};const M=jF.find(F=>F.from===a&&F.to===f);if(M?_=M:jF.push(_),_.type=i,_.from=a,_.to=f,_.label={text:g},w==null)_.techn={text:""};else if(typeof w=="object"){let[F,R]=Object.entries(w)[0];_[F]={text:R}}else _.techn={text:w};if(v==null)_.descr={text:""};else if(typeof v=="object"){let[F,R]=Object.entries(v)[0];_[F]={text:R}}else _.descr={text:v};if(typeof b=="object"){let[F,R]=Object.entries(b)[0];_[F]=R}else _.sprite=b;if(typeof E=="object"){let[F,R]=Object.entries(E)[0];_[F]=R}else _.tags=E;if(typeof S=="object"){let[F,R]=Object.entries(S)[0];_[F]=R}else _.link=S;_.wrap=x8()},CRe=function(i,a,f,g,w,v,b){if(a===null||f===null)return;let E={};const S=Wv.find(_=>_.alias===a);if(S&&a===S.alias?E=S:(E.alias=a,Wv.push(E)),f==null?E.label={text:""}:E.label={text:f},g==null)E.descr={text:""};else if(typeof g=="object"){let[_,M]=Object.entries(g)[0];E[_]={text:M}}else E.descr={text:g};if(typeof w=="object"){let[_,M]=Object.entries(w)[0];E[_]=M}else E.sprite=w;if(typeof v=="object"){let[_,M]=Object.entries(v)[0];E[_]=M}else E.tags=v;if(typeof b=="object"){let[_,M]=Object.entries(b)[0];E[_]=M}else E.link=b;E.typeC4Shape={text:i},E.parentBoundary=ep,E.wrap=x8()},SRe=function(i,a,f,g,w,v,b,E){if(a===null||f===null)return;let S={};const _=Wv.find(M=>M.alias===a);if(_&&a===_.alias?S=_:(S.alias=a,Wv.push(S)),f==null?S.label={text:""}:S.label={text:f},g==null)S.techn={text:""};else if(typeof g=="object"){let[M,F]=Object.entries(g)[0];S[M]={text:F}}else S.techn={text:g};if(w==null)S.descr={text:""};else if(typeof w=="object"){let[M,F]=Object.entries(w)[0];S[M]={text:F}}else S.descr={text:w};if(typeof v=="object"){let[M,F]=Object.entries(v)[0];S[M]=F}else S.sprite=v;if(typeof b=="object"){let[M,F]=Object.entries(b)[0];S[M]=F}else S.tags=b;if(typeof E=="object"){let[M,F]=Object.entries(E)[0];S[M]=F}else S.link=E;S.wrap=x8(),S.typeC4Shape={text:i},S.parentBoundary=ep},_Re=function(i,a,f,g,w,v,b,E){if(a===null||f===null)return;let S={};const _=Wv.find(M=>M.alias===a);if(_&&a===_.alias?S=_:(S.alias=a,Wv.push(S)),f==null?S.label={text:""}:S.label={text:f},g==null)S.techn={text:""};else if(typeof g=="object"){let[M,F]=Object.entries(g)[0];S[M]={text:F}}else S.techn={text:g};if(w==null)S.descr={text:""};else if(typeof w=="object"){let[M,F]=Object.entries(w)[0];S[M]={text:F}}else S.descr={text:w};if(typeof v=="object"){let[M,F]=Object.entries(v)[0];S[M]=F}else S.sprite=v;if(typeof b=="object"){let[M,F]=Object.entries(b)[0];S[M]=F}else S.tags=b;if(typeof E=="object"){let[M,F]=Object.entries(E)[0];S[M]=F}else S.link=E;S.wrap=x8(),S.typeC4Shape={text:i},S.parentBoundary=ep},ARe=function(i,a,f,g,w){if(i===null||a===null)return;let v={};const b=i4.find(E=>E.alias===i);if(b&&i===b.alias?v=b:(v.alias=i,i4.push(v)),a==null?v.label={text:""}:v.label={text:a},f==null)v.type={text:"system"};else if(typeof f=="object"){let[E,S]=Object.entries(f)[0];v[E]={text:S}}else v.type={text:f};if(typeof g=="object"){let[E,S]=Object.entries(g)[0];v[E]=S}else v.tags=g;if(typeof w=="object"){let[E,S]=Object.entries(w)[0];v[E]=S}else v.link=w;v.parentBoundary=ep,v.wrap=x8(),Yv=ep,ep=i,y8.push(Yv)},LRe=function(i,a,f,g,w){if(i===null||a===null)return;let v={};const b=i4.find(E=>E.alias===i);if(b&&i===b.alias?v=b:(v.alias=i,i4.push(v)),a==null?v.label={text:""}:v.label={text:a},f==null)v.type={text:"container"};else if(typeof f=="object"){let[E,S]=Object.entries(f)[0];v[E]={text:S}}else v.type={text:f};if(typeof g=="object"){let[E,S]=Object.entries(g)[0];v[E]=S}else v.tags=g;if(typeof w=="object"){let[E,S]=Object.entries(w)[0];v[E]=S}else v.link=w;v.parentBoundary=ep,v.wrap=x8(),Yv=ep,ep=i,y8.push(Yv)},DRe=function(i,a,f,g,w,v,b,E){if(a===null||f===null)return;let S={};const _=i4.find(M=>M.alias===a);if(_&&a===_.alias?S=_:(S.alias=a,i4.push(S)),f==null?S.label={text:""}:S.label={text:f},g==null)S.type={text:"node"};else if(typeof g=="object"){let[M,F]=Object.entries(g)[0];S[M]={text:F}}else S.type={text:g};if(w==null)S.descr={text:""};else if(typeof w=="object"){let[M,F]=Object.entries(w)[0];S[M]={text:F}}else S.descr={text:w};if(typeof b=="object"){let[M,F]=Object.entries(b)[0];S[M]=F}else S.tags=b;if(typeof E=="object"){let[M,F]=Object.entries(E)[0];S[M]=F}else S.link=E;S.nodeType=i,S.parentBoundary=ep,S.wrap=x8(),Yv=ep,ep=a,y8.push(Yv)},MRe=function(){ep=Yv,y8.pop(),Yv=y8.pop(),y8.push(Yv)},IRe=function(i,a,f,g,w,v,b,E,S,_,M){let F=Wv.find(R=>R.alias===a);if(!(F===void 0&&(F=i4.find(R=>R.alias===a),F===void 0))){if(f!=null)if(typeof f=="object"){let[R,B]=Object.entries(f)[0];F[R]=B}else F.bgColor=f;if(g!=null)if(typeof g=="object"){let[R,B]=Object.entries(g)[0];F[R]=B}else F.fontColor=g;if(w!=null)if(typeof w=="object"){let[R,B]=Object.entries(w)[0];F[R]=B}else F.borderColor=w;if(v!=null)if(typeof v=="object"){let[R,B]=Object.entries(v)[0];F[R]=B}else F.shadowing=v;if(b!=null)if(typeof b=="object"){let[R,B]=Object.entries(b)[0];F[R]=B}else F.shape=b;if(E!=null)if(typeof E=="object"){let[R,B]=Object.entries(E)[0];F[R]=B}else F.sprite=E;if(S!=null)if(typeof S=="object"){let[R,B]=Object.entries(S)[0];F[R]=B}else F.techn=S;if(_!=null)if(typeof _=="object"){let[R,B]=Object.entries(_)[0];F[R]=B}else F.legendText=_;if(M!=null)if(typeof M=="object"){let[R,B]=Object.entries(M)[0];F[R]=B}else F.legendSprite=M}},ORe=function(i,a,f,g,w,v,b){const E=jF.find(S=>S.from===a&&S.to===f);if(E!==void 0){if(g!=null)if(typeof g=="object"){let[S,_]=Object.entries(g)[0];E[S]=_}else E.textColor=g;if(w!=null)if(typeof w=="object"){let[S,_]=Object.entries(w)[0];E[S]=_}else E.lineColor=w;if(v!=null)if(typeof v=="object"){let[S,_]=Object.entries(v)[0];E[S]=parseInt(_)}else E.offsetX=parseInt(v);if(b!=null)if(typeof b=="object"){let[S,_]=Object.entries(b)[0];E[S]=parseInt(_)}else E.offsetY=parseInt(b)}},NRe=function(i,a,f){let g=_Y,w=AY;if(typeof a=="object"){const v=Object.values(a)[0];g=parseInt(v)}else g=parseInt(a);if(typeof f=="object"){const v=Object.values(f)[0];w=parseInt(v)}else w=parseInt(f);g>=1&&(_Y=g),w>=1&&(AY=w)},PRe=function(){return _Y},FRe=function(){return AY},BRe=function(){return ep},RRe=function(){return Yv},iRt=function(i){return i==null?Wv:Wv.filter(a=>a.parentBoundary===i)},jRe=function(i){return Wv.find(a=>a.alias===i)},$Re=function(i){return Object.keys(iRt(i))},zRe=function(i){return i==null?i4:i4.filter(a=>a.parentBoundary===i)},qRe=function(){return jF},HRe=function(){return Qgt},VRe=function(i){Jgt=i},x8=function(){return Jgt},Zgt={addPersonOrSystem:CRe,addPersonOrSystemBoundary:ARe,addContainer:SRe,addContainerBoundary:LRe,addComponent:_Re,addDeploymentNode:DRe,popBoundaryParseStack:MRe,addRel:TRe,updateElStyle:IRe,updateRelStyle:ORe,updateLayoutConfig:NRe,autoWrap:x8,setWrap:VRe,getC4ShapeArray:iRt,getC4Shape:jRe,getC4ShapeKeys:$Re,getBoundarys:zRe,getCurrentBoundaryParse:BRe,getParentBoundaryParse:RRe,getRels:qRe,getTitle:HRe,getC4Type:kRe,getC4ShapeInRow:PRe,getC4BoundaryInRow:FRe,setAccTitle:og,getAccTitle:Xg,getAccDescription:Jg,setAccDescription:Qg,getConfig:()=>Re().c4,clear:function(){Wv=[],i4=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],Yv="",ep="global",y8=[""],jF=[],y8=[""],Qgt="",Jgt=!1,_Y=4,AY=2},LINETYPE:{SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},setTitle:function(i){Qgt=Ef(i,Re())},setC4Type:ERe},LY=(i,a)=>{const f=i.append("rect");if(f.attr("x",a.x),f.attr("y",a.y),f.attr("fill",a.fill),f.attr("stroke",a.stroke),f.attr("width",a.width),f.attr("height",a.height),a.rx!==void 0&&f.attr("rx",a.rx),a.ry!==void 0&&f.attr("ry",a.ry),a.attrs!==void 0)for(const g in a.attrs)f.attr(g,a.attrs[g]);return a.class!==void 0&&f.attr("class",a.class),f},sRt=(i,a)=>{const f={x:a.startx,y:a.starty,width:a.stopx-a.startx,height:a.stopy-a.starty,fill:a.fill,stroke:a.stroke,class:"rect"};LY(i,f).lower()},URe=(i,a)=>{const f=a.text.replace(xF," "),g=i.append("text");g.attr("x",a.x),g.attr("y",a.y),g.attr("class","legend"),g.style("text-anchor",a.anchor),a.class!==void 0&&g.attr("class",a.class);const w=g.append("tspan");return w.attr("x",a.x+a.textMargin*2),w.text(f),g},GRe=(i,a,f,g)=>{const w=i.append("image");w.attr("x",a),w.attr("y",f);const v=h8(g);w.attr("xlink:href",v)},KRe=(i,a,f,g)=>{const w=i.append("use");w.attr("x",a),w.attr("y",f);const v=h8(g);w.attr("xlink:href",`#${v}`)},_9=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),tpt=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),ept=function(i,a){return LY(i,a)},aRt=function(i,a,f,g,w,v){const b=i.append("image");b.attr("width",a),b.attr("height",f),b.attr("x",g),b.attr("y",w);let E=v.startsWith("data:image/png;base64")?v:h8(v);b.attr("xlink:href",E)},WRe=(i,a,f)=>{const g=i.append("g");let w=0;for(let v of a){let b=v.textColor?v.textColor:"#444444",E=v.lineColor?v.lineColor:"#444444",S=v.offsetX?parseInt(v.offsetX):0,_=v.offsetY?parseInt(v.offsetY):0,M="";if(w===0){let R=g.append("line");R.attr("x1",v.startPoint.x),R.attr("y1",v.startPoint.y),R.attr("x2",v.endPoint.x),R.attr("y2",v.endPoint.y),R.attr("stroke-width","1"),R.attr("stroke",E),R.style("fill","none"),v.type!=="rel_b"&&R.attr("marker-end","url("+M+"#arrowhead)"),(v.type==="birel"||v.type==="rel_b")&&R.attr("marker-start","url("+M+"#arrowend)"),w=-1}else{let R=g.append("path");R.attr("fill","none").attr("stroke-width","1").attr("stroke",E).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",v.startPoint.x).replaceAll("starty",v.startPoint.y).replaceAll("controlx",v.startPoint.x+(v.endPoint.x-v.startPoint.x)/2-(v.endPoint.x-v.startPoint.x)/4).replaceAll("controly",v.startPoint.y+(v.endPoint.y-v.startPoint.y)/2).replaceAll("stopx",v.endPoint.x).replaceAll("stopy",v.endPoint.y)),v.type!=="rel_b"&&R.attr("marker-end","url("+M+"#arrowhead)"),(v.type==="birel"||v.type==="rel_b")&&R.attr("marker-start","url("+M+"#arrowend)")}let F=f.messageFont();Nx(f)(v.label.text,g,Math.min(v.startPoint.x,v.endPoint.x)+Math.abs(v.endPoint.x-v.startPoint.x)/2+S,Math.min(v.startPoint.y,v.endPoint.y)+Math.abs(v.endPoint.y-v.startPoint.y)/2+_,v.label.width,v.label.height,{fill:b},F),v.techn&&v.techn.text!==""&&(F=f.messageFont(),Nx(f)("["+v.techn.text+"]",g,Math.min(v.startPoint.x,v.endPoint.x)+Math.abs(v.endPoint.x-v.startPoint.x)/2+S,Math.min(v.startPoint.y,v.endPoint.y)+Math.abs(v.endPoint.y-v.startPoint.y)/2+f.messageFontSize+5+_,Math.max(v.label.width,v.techn.width),v.techn.height,{fill:b,"font-style":"italic"},F))}},YRe=function(i,a,f){const g=i.append("g");let w=a.bgColor?a.bgColor:"none",v=a.borderColor?a.borderColor:"#444444",b=a.fontColor?a.fontColor:"black",E={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};a.nodeType&&(E={"stroke-width":1});let S={x:a.x,y:a.y,fill:w,stroke:v,width:a.width,height:a.height,rx:2.5,ry:2.5,attrs:E};ept(g,S);let _=f.boundaryFont();_.fontWeight="bold",_.fontSize=_.fontSize+2,_.fontColor=b,Nx(f)(a.label.text,g,a.x,a.y+a.label.Y,a.width,a.height,{fill:"#444444"},_),a.type&&a.type.text!==""&&(_=f.boundaryFont(),_.fontColor=b,Nx(f)(a.type.text,g,a.x,a.y+a.type.Y,a.width,a.height,{fill:"#444444"},_)),a.descr&&a.descr.text!==""&&(_=f.boundaryFont(),_.fontSize=_.fontSize-2,_.fontColor=b,Nx(f)(a.descr.text,g,a.x,a.y+a.descr.Y,a.width,a.height,{fill:"#444444"},_))},XRe=function(i,a,f){var F;let g=a.bgColor?a.bgColor:f[a.typeC4Shape.text+"_bg_color"],w=a.borderColor?a.borderColor:f[a.typeC4Shape.text+"_border_color"],v=a.fontColor?a.fontColor:"#FFFFFF",b="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(a.typeC4Shape.text){case"person":b="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":b="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}const E=i.append("g");E.attr("class","person-man");const S=_9();switch(a.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":S.x=a.x,S.y=a.y,S.fill=g,S.width=a.width,S.height=a.height,S.stroke=w,S.rx=2.5,S.ry=2.5,S.attrs={"stroke-width":.5},ept(E,S);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":E.append("path").attr("fill",g).attr("stroke-width","0.5").attr("stroke",w).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",a.x).replaceAll("starty",a.y).replaceAll("half",a.width/2).replaceAll("height",a.height)),E.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",w).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",a.x).replaceAll("starty",a.y).replaceAll("half",a.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":E.append("path").attr("fill",g).attr("stroke-width","0.5").attr("stroke",w).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",a.x).replaceAll("starty",a.y).replaceAll("width",a.width).replaceAll("half",a.height/2)),E.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",w).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",a.x+a.width).replaceAll("starty",a.y).replaceAll("half",a.height/2));break}let _=sje(f,a.typeC4Shape.text);switch(E.append("text").attr("fill",v).attr("font-family",_.fontFamily).attr("font-size",_.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",a.typeC4Shape.width).attr("x",a.x+a.width/2-a.typeC4Shape.width/2).attr("y",a.y+a.typeC4Shape.Y).text("<<"+a.typeC4Shape.text+">>"),a.typeC4Shape.text){case"person":case"external_person":aRt(E,48,48,a.x+a.width/2-24,a.y+a.image.Y,b);break}let M=f[a.typeC4Shape.text+"Font"]();return M.fontWeight="bold",M.fontSize=M.fontSize+2,M.fontColor=v,Nx(f)(a.label.text,E,a.x,a.y+a.label.Y,a.width,a.height,{fill:v},M),M=f[a.typeC4Shape.text+"Font"](),M.fontColor=v,a.techn&&((F=a.techn)==null?void 0:F.text)!==""?Nx(f)(a.techn.text,E,a.x,a.y+a.techn.Y,a.width,a.height,{fill:v,"font-style":"italic"},M):a.type&&a.type.text!==""&&Nx(f)(a.type.text,E,a.x,a.y+a.type.Y,a.width,a.height,{fill:v,"font-style":"italic"},M),a.descr&&a.descr.text!==""&&(M=f.personFont(),M.fontColor=v,Nx(f)(a.descr.text,E,a.x,a.y+a.descr.Y,a.width,a.height,{fill:v},M)),a.height},QRe=function(i){i.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},JRe=function(i){i.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},ZRe=function(i){i.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},tje=function(i){i.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},eje=function(i){i.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},nje=function(i){i.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},rje=function(i){i.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},ije=function(i){const f=i.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);f.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),f.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},sje=(i,a)=>({fontFamily:i[a+"FontFamily"],fontSize:i[a+"FontSize"],fontWeight:i[a+"FontWeight"]}),Nx=function(){function i(w,v,b,E,S,_,M){const F=v.append("text").attr("x",b+S/2).attr("y",E+_/2+5).style("text-anchor","middle").text(w);g(F,M)}function a(w,v,b,E,S,_,M,F){const{fontSize:R,fontFamily:B,fontWeight:z}=F,Y=w.split(ei.lineBreakRegex);for(let nt=0;nt=this.data.widthLimit||g>=this.data.widthLimit||this.nextData.cnt>oRt)&&(f=this.nextData.startx+a.margin+Cs.nextLinePaddingX,w=this.nextData.stopy+a.margin*2,this.nextData.stopx=g=f+a.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=v=w+a.height,this.nextData.cnt=1),a.x=f,a.y=w,this.updateVal(this.data,"startx",f,Math.min),this.updateVal(this.data,"starty",w,Math.min),this.updateVal(this.data,"stopx",g,Math.max),this.updateVal(this.data,"stopy",v,Math.max),this.updateVal(this.nextData,"startx",f,Math.min),this.updateVal(this.nextData,"starty",w,Math.min),this.updateVal(this.nextData,"stopx",g,Math.max),this.updateVal(this.nextData,"stopy",v,Math.max)}init(a){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},rpt(a.db.getConfig())}bumpLastMargin(a){this.data.stopx+=a,this.data.stopy+=a}}const rpt=function(i){Ld(Cs,i),i.fontFamily&&(Cs.personFontFamily=Cs.systemFontFamily=Cs.messageFontFamily=i.fontFamily),i.fontSize&&(Cs.personFontSize=Cs.systemFontSize=Cs.messageFontSize=i.fontSize),i.fontWeight&&(Cs.personFontWeight=Cs.systemFontWeight=Cs.messageFontWeight=i.fontWeight)},$F=(i,a)=>({fontFamily:i[a+"FontFamily"],fontSize:i[a+"FontSize"],fontWeight:i[a+"FontWeight"]}),IY=i=>({fontFamily:i.boundaryFontFamily,fontSize:i.boundaryFontSize,fontWeight:i.boundaryFontWeight}),aje=i=>({fontFamily:i.messageFontFamily,fontSize:i.messageFontSize,fontWeight:i.messageFontWeight});function Xv(i,a,f,g,w){if(!a[i].width)if(f)a[i].text=LFt(a[i].text,w,g),a[i].textLines=a[i].text.split(ei.lineBreakRegex).length,a[i].width=w,a[i].height=Tgt(a[i].text,g);else{let v=a[i].text.split(ei.lineBreakRegex);a[i].textLines=v.length;let b=0;a[i].height=0,a[i].width=0;for(const E of v)a[i].width=Math.max(n4(E,g),a[i].width),b=Tgt(E,g),a[i].height=a[i].height+b}}const uRt=function(i,a,f){a.x=f.data.startx,a.y=f.data.starty,a.width=f.data.stopx-f.data.startx,a.height=f.data.stopy-f.data.starty,a.label.y=Cs.c4ShapeMargin-35;let g=a.wrap&&Cs.wrap,w=IY(Cs);w.fontSize=w.fontSize+2,w.fontWeight="bold";let v=n4(a.label.text,w);Xv("label",a,g,w,v),s4.drawBoundary(i,a,Cs)},lRt=function(i,a,f,g){let w=0;for(const v of g){w=0;const b=f[v];let E=$F(Cs,b.typeC4Shape.text);switch(E.fontSize=E.fontSize-2,b.typeC4Shape.width=n4("«"+b.typeC4Shape.text+"»",E),b.typeC4Shape.height=E.fontSize+2,b.typeC4Shape.Y=Cs.c4ShapePadding,w=b.typeC4Shape.Y+b.typeC4Shape.height-4,b.image={width:0,height:0,Y:0},b.typeC4Shape.text){case"person":case"external_person":b.image.width=48,b.image.height=48,b.image.Y=w,w=b.image.Y+b.image.height;break}b.sprite&&(b.image.width=48,b.image.height=48,b.image.Y=w,w=b.image.Y+b.image.height);let S=b.wrap&&Cs.wrap,_=Cs.width-Cs.c4ShapePadding*2,M=$F(Cs,b.typeC4Shape.text);if(M.fontSize=M.fontSize+2,M.fontWeight="bold",Xv("label",b,S,M,_),b.label.Y=w+8,w=b.label.Y+b.label.height,b.type&&b.type.text!==""){b.type.text="["+b.type.text+"]";let B=$F(Cs,b.typeC4Shape.text);Xv("type",b,S,B,_),b.type.Y=w+5,w=b.type.Y+b.type.height}else if(b.techn&&b.techn.text!==""){b.techn.text="["+b.techn.text+"]";let B=$F(Cs,b.techn.text);Xv("techn",b,S,B,_),b.techn.Y=w+5,w=b.techn.Y+b.techn.height}let F=w,R=b.label.width;if(b.descr&&b.descr.text!==""){let B=$F(Cs,b.typeC4Shape.text);Xv("descr",b,S,B,_),b.descr.Y=w+20,w=b.descr.Y+b.descr.height,R=Math.max(b.label.width,b.descr.width),F=w-b.descr.textLines*5}R=R+Cs.c4ShapePadding,b.width=Math.max(b.width||Cs.width,R,Cs.width),b.height=Math.max(b.height||Cs.height,F,Cs.height),b.margin=b.margin||Cs.c4ShapeMargin,i.insert(b),s4.drawC4Shape(a,b,Cs)}i.bumpLastMargin(Cs.c4ShapeMargin)};let Jw=class{constructor(a,f){this.x=a,this.y=f}},hRt=function(i,a){let f=i.x,g=i.y,w=a.x,v=a.y,b=f+i.width/2,E=g+i.height/2,S=Math.abs(f-w),_=Math.abs(g-v),M=_/S,F=i.height/i.width,R=null;return g==v&&fw?R=new Jw(f,E):f==w&&gv&&(R=new Jw(b,g)),f>w&&g=M?R=new Jw(f,E+M*i.width/2):R=new Jw(b-S/_*i.height/2,g+i.height):f=M?R=new Jw(f+i.width,E+M*i.width/2):R=new Jw(b+S/_*i.height/2,g+i.height):fv?F>=M?R=new Jw(f+i.width,E-M*i.width/2):R=new Jw(b+i.height/2*S/_,g):f>w&&g>v&&(F>=M?R=new Jw(f,E-i.width/2*M):R=new Jw(b-i.height/2*S/_,g)),R},oje=function(i,a){let f={x:0,y:0};f.x=a.x+a.width/2,f.y=a.y+a.height/2;let g=hRt(i,f);f.x=i.x+i.width/2,f.y=i.y+i.height/2;let w=hRt(a,f);return{startPoint:g,endPoint:w}};const cje=function(i,a,f,g){let w=0;for(let v of a){w=w+1;let b=v.wrap&&Cs.wrap,E=aje(Cs);g.db.getC4Type()==="C4Dynamic"&&(v.label.text=w+": "+v.label.text);let _=n4(v.label.text,E);Xv("label",v,b,E,_),v.techn&&v.techn.text!==""&&(_=n4(v.techn.text,E),Xv("techn",v,b,E,_)),v.descr&&v.descr.text!==""&&(_=n4(v.descr.text,E),Xv("descr",v,b,E,_));let M=f(v.from),F=f(v.to),R=oje(M,F);v.startPoint=R.startPoint,v.endPoint=R.endPoint}s4.drawRels(i,a,Cs)};function fRt(i,a,f,g,w){let v=new cRt(w);v.data.widthLimit=f.data.widthLimit/Math.min(npt,g.length);for(let[b,E]of g.entries()){let S=0;E.image={width:0,height:0,Y:0},E.sprite&&(E.image.width=48,E.image.height=48,E.image.Y=S,S=E.image.Y+E.image.height);let _=E.wrap&&Cs.wrap,M=IY(Cs);if(M.fontSize=M.fontSize+2,M.fontWeight="bold",Xv("label",E,_,M,v.data.widthLimit),E.label.Y=S+8,S=E.label.Y+E.label.height,E.type&&E.type.text!==""){E.type.text="["+E.type.text+"]";let z=IY(Cs);Xv("type",E,_,z,v.data.widthLimit),E.type.Y=S+5,S=E.type.Y+E.type.height}if(E.descr&&E.descr.text!==""){let z=IY(Cs);z.fontSize=z.fontSize-2,Xv("descr",E,_,z,v.data.widthLimit),E.descr.Y=S+20,S=E.descr.Y+E.descr.height}if(b==0||b%npt===0){let z=f.data.startx+Cs.diagramMarginX,Y=f.data.stopy+Cs.diagramMarginY+S;v.setData(z,z,Y,Y)}else{let z=v.data.stopx!==v.data.startx?v.data.stopx+Cs.diagramMarginX:v.data.startx,Y=v.data.starty;v.setData(z,z,Y,Y)}v.name=E.alias;let F=w.db.getC4ShapeArray(E.alias),R=w.db.getC4ShapeKeys(E.alias);R.length>0&&lRt(v,i,F,R),a=E.alias;let B=w.db.getBoundarys(a);B.length>0&&fRt(i,a,v,B,w),E.alias!=="global"&&uRt(i,E,v),f.data.stopy=Math.max(v.data.stopy+Cs.c4ShapeMargin,f.data.stopy),f.data.stopx=Math.max(v.data.stopx+Cs.c4ShapeMargin,f.data.stopx),DY=Math.max(DY,f.data.stopx),MY=Math.max(MY,f.data.stopy)}}const dRt={drawPersonOrSystemArray:lRt,drawBoundary:uRt,setConf:rpt,draw:function(i,a,f,g){Cs=Re().c4;const w=Re().securityLevel;let v;w==="sandbox"&&(v=Tr("#i"+a));const b=Tr(w==="sandbox"?v.nodes()[0].contentDocument.body:"body");let E=g.db;g.db.setWrap(Cs.wrap),oRt=E.getC4ShapeInRow(),npt=E.getC4BoundaryInRow(),Kt.debug(`C:${JSON.stringify(Cs,null,2)}`);const S=w==="sandbox"?b.select(`[id="${a}"]`):Tr(`[id="${a}"]`);s4.insertComputerIcon(S),s4.insertDatabaseIcon(S),s4.insertClockIcon(S);let _=new cRt(g);_.setData(Cs.diagramMarginX,Cs.diagramMarginX,Cs.diagramMarginY,Cs.diagramMarginY),_.data.widthLimit=screen.availWidth,DY=Cs.diagramMarginX,MY=Cs.diagramMarginY;const M=g.db.getTitle();let F=g.db.getBoundarys("");fRt(S,"",_,F,g),s4.insertArrowHead(S),s4.insertArrowEnd(S),s4.insertArrowCrossHead(S),s4.insertArrowFilledHead(S),cje(S,g.db.getRels(),g.db.getC4Shape,g),_.data.stopx=DY,_.data.stopy=MY;const R=_.data;let z=R.stopy-R.starty+2*Cs.diagramMarginY;const nt=R.stopx-R.startx+2*Cs.diagramMarginX;M&&S.append("text").text(M).attr("x",(R.stopx-R.startx)/2-4*Cs.diagramMarginX).attr("y",R.starty+Cs.diagramMarginY),sg(S,z,nt,Cs.useMaxWidth);const ot=M?60:0;S.attr("viewBox",R.startx-Cs.diagramMarginX+" -"+(Cs.diagramMarginY+ot)+" "+nt+" "+(z+ot)),Kt.debug("models:",R)}},uje=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:xRe,db:Zgt,renderer:dRt,styles:i=>`.person { + stroke: ${i.personBorder}; + fill: ${i.personBkg}; + } +`,init:({c4:i,wrap:a})=>{dRt.setConf(i),Zgt.setWrap(a)}}},Symbol.toStringTag,{value:"Module"}));var ipt=function(){var i=function(Od,cs,As,to){for(As=As||{},to=Od.length;to--;As[Od[to]]=cs);return As},a=[1,4],f=[1,3],g=[1,5],w=[1,8,9,10,11,27,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],v=[2,2],b=[1,13],E=[1,14],S=[1,15],_=[1,16],M=[1,23],F=[1,25],R=[1,26],B=[1,27],z=[1,49],Y=[1,48],nt=[1,29],ot=[1,30],ft=[1,31],wt=[1,32],mt=[1,33],ct=[1,44],rt=[1,46],it=[1,42],gt=[1,47],Q=[1,43],dt=[1,50],K=[1,45],yt=[1,51],V=[1,52],Ot=[1,34],It=[1,35],jt=[1,36],xt=[1,37],Ft=[1,57],Ct=[1,8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],kt=[1,61],Gt=[1,60],Fe=[1,62],Mt=[8,9,11,73,75],pn=[1,88],Ae=[1,93],ye=[1,92],tn=[1,89],sn=[1,85],be=[1,91],Ne=[1,87],Xt=[1,94],_e=[1,90],xe=[1,95],Mn=[1,86],ce=[8,9,10,11,73,75],Br=[8,9,10,11,44,73,75],we=[8,9,10,11,29,42,44,46,48,50,52,54,56,58,61,63,65,66,68,73,75,86,99,102,103,106,108,111,112,113],Fi=[8,9,11,42,58,73,75,86,99,102,103,106,108,111,112,113],mi=[42,58,86,99,102,103,106,108,111,112,113],ga=[1,121],Ss=[1,120],za=[1,128],br=[1,142],An=[1,143],Nn=[1,144],Bn=[1,145],ke=[1,130],pe=[1,132],Je=[1,136],an=[1,137],xn=[1,138],qa=[1,139],xo=[1,140],ko=[1,141],va=[1,146],Ha=[1,147],ds=[1,126],Fu=[1,127],Zs=[1,134],d1=[1,129],I2=[1,133],ll=[1,131],Ic=[8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],wc=[1,149],Ea=[8,9,11],gu=[8,9,10,11,14,42,58,86,102,103,106,108,111,112,113],ta=[1,169],fo=[1,165],mc=[1,166],ca=[1,170],ya=[1,167],ea=[1,168],Zl=[75,113,116],Uc=[8,9,10,11,12,14,27,29,32,42,58,73,81,82,83,84,85,86,87,102,106,108,111,112,113],rm=[10,103],kh=[31,47,49,51,53,55,60,62,64,65,67,69,113,114,115],Md=[1,235],w0=[1,233],Id=[1,237],m0=[1,231],hg=[1,232],Gi=[1,234],cn=[1,236],Nr=[1,238],Si=[1,255],vc=[8,9,11,103],Rc=[8,9,10,11,58,81,102,103,106,107,108,109],Eh={trace:function(){},yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeperator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,verticeStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,link:39,node:40,styledVertex:41,AMP:42,vertex:43,STYLE_SEPARATOR:44,idString:45,DOUBLECIRCLESTART:46,DOUBLECIRCLEEND:47,PS:48,PE:49,"(-":50,"-)":51,STADIUMSTART:52,STADIUMEND:53,SUBROUTINESTART:54,SUBROUTINEEND:55,VERTEX_WITH_PROPS_START:56,"NODE_STRING[field]":57,COLON:58,"NODE_STRING[value]":59,PIPE:60,CYLINDERSTART:61,CYLINDEREND:62,DIAMOND_START:63,DIAMOND_STOP:64,TAGEND:65,TRAPSTART:66,TRAPEND:67,INVTRAPSTART:68,INVTRAPEND:69,linkStatement:70,arrowText:71,TESTSTR:72,START_LINK:73,edgeText:74,LINK:75,edgeTextToken:76,STR:77,MD_STR:78,textToken:79,keywords:80,STYLE:81,LINKSTYLE:82,CLASSDEF:83,CLASS:84,CLICK:85,DOWN:86,UP:87,textNoTagsToken:88,stylesOpt:89,"idString[vertex]":90,"idString[class]":91,CALLBACKNAME:92,CALLBACKARGS:93,HREF:94,LINK_TARGET:95,"STR[link]":96,"STR[tooltip]":97,alphaNum:98,DEFAULT:99,numList:100,INTERPOLATE:101,NUM:102,COMMA:103,style:104,styleComponent:105,NODE_STRING:106,UNIT:107,BRKT:108,PCT:109,idStringToken:110,MINUS:111,MULT:112,UNICODE_TEXT:113,TEXT:114,TAGSTART:115,EDGE_TEXT:116,alphaNumToken:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",42:"AMP",44:"STYLE_SEPARATOR",46:"DOUBLECIRCLESTART",47:"DOUBLECIRCLEEND",48:"PS",49:"PE",50:"(-",51:"-)",52:"STADIUMSTART",53:"STADIUMEND",54:"SUBROUTINESTART",55:"SUBROUTINEEND",56:"VERTEX_WITH_PROPS_START",57:"NODE_STRING[field]",58:"COLON",59:"NODE_STRING[value]",60:"PIPE",61:"CYLINDERSTART",62:"CYLINDEREND",63:"DIAMOND_START",64:"DIAMOND_STOP",65:"TAGEND",66:"TRAPSTART",67:"TRAPEND",68:"INVTRAPSTART",69:"INVTRAPEND",72:"TESTSTR",73:"START_LINK",75:"LINK",77:"STR",78:"MD_STR",81:"STYLE",82:"LINKSTYLE",83:"CLASSDEF",84:"CLASS",85:"CLICK",86:"DOWN",87:"UP",90:"idString[vertex]",91:"idString[class]",92:"CALLBACKNAME",93:"CALLBACKARGS",94:"HREF",95:"LINK_TARGET",96:"STR[link]",97:"STR[tooltip]",99:"DEFAULT",101:"INTERPOLATE",102:"NUM",103:"COMMA",106:"NODE_STRING",107:"UNIT",108:"BRKT",109:"PCT",111:"MINUS",112:"MULT",113:"UNICODE_TEXT",114:"TEXT",115:"TAGSTART",116:"EDGE_TEXT",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[20,3],[20,4],[20,2],[20,1],[40,1],[40,5],[41,1],[41,3],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,8],[43,4],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,4],[43,4],[43,1],[39,2],[39,3],[39,3],[39,1],[39,3],[74,1],[74,2],[74,1],[74,1],[70,1],[71,3],[30,1],[30,2],[30,1],[30,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[100,1],[100,3],[89,1],[89,3],[104,1],[104,2],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[79,1],[79,1],[79,1],[79,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[76,1],[76,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[45,1],[45,2],[98,1],[98,2],[33,1],[33,1],[33,1],[33,1]],performAction:function(cs,As,to,Ci,pu,Le,iy){var $e=Le.length-1;switch(pu){case 2:this.$=[];break;case 3:(!Array.isArray(Le[$e])||Le[$e].length>0)&&Le[$e-1].push(Le[$e]),this.$=Le[$e-1];break;case 4:case 176:this.$=Le[$e];break;case 11:Ci.setDirection("TB"),this.$="TB";break;case 12:Ci.setDirection(Le[$e-1]),this.$=Le[$e-1];break;case 27:this.$=Le[$e-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=Ci.addSubGraph(Le[$e-6],Le[$e-1],Le[$e-4]);break;case 34:this.$=Ci.addSubGraph(Le[$e-3],Le[$e-1],Le[$e-3]);break;case 35:this.$=Ci.addSubGraph(void 0,Le[$e-1],void 0);break;case 37:this.$=Le[$e].trim(),Ci.setAccTitle(this.$);break;case 38:case 39:this.$=Le[$e].trim(),Ci.setAccDescription(this.$);break;case 43:Ci.addLink(Le[$e-2].stmt,Le[$e],Le[$e-1]),this.$={stmt:Le[$e],nodes:Le[$e].concat(Le[$e-2].nodes)};break;case 44:Ci.addLink(Le[$e-3].stmt,Le[$e-1],Le[$e-2]),this.$={stmt:Le[$e-1],nodes:Le[$e-1].concat(Le[$e-3].nodes)};break;case 45:this.$={stmt:Le[$e-1],nodes:Le[$e-1]};break;case 46:this.$={stmt:Le[$e],nodes:Le[$e]};break;case 47:this.$=[Le[$e]];break;case 48:this.$=Le[$e-4].concat(Le[$e]);break;case 49:this.$=Le[$e];break;case 50:this.$=Le[$e-2],Ci.setClass(Le[$e-2],Le[$e]);break;case 51:this.$=Le[$e-3],Ci.addVertex(Le[$e-3],Le[$e-1],"square");break;case 52:this.$=Le[$e-3],Ci.addVertex(Le[$e-3],Le[$e-1],"doublecircle");break;case 53:this.$=Le[$e-5],Ci.addVertex(Le[$e-5],Le[$e-2],"circle");break;case 54:this.$=Le[$e-3],Ci.addVertex(Le[$e-3],Le[$e-1],"ellipse");break;case 55:this.$=Le[$e-3],Ci.addVertex(Le[$e-3],Le[$e-1],"stadium");break;case 56:this.$=Le[$e-3],Ci.addVertex(Le[$e-3],Le[$e-1],"subroutine");break;case 57:this.$=Le[$e-7],Ci.addVertex(Le[$e-7],Le[$e-1],"rect",void 0,void 0,void 0,Object.fromEntries([[Le[$e-5],Le[$e-3]]]));break;case 58:this.$=Le[$e-3],Ci.addVertex(Le[$e-3],Le[$e-1],"cylinder");break;case 59:this.$=Le[$e-3],Ci.addVertex(Le[$e-3],Le[$e-1],"round");break;case 60:this.$=Le[$e-3],Ci.addVertex(Le[$e-3],Le[$e-1],"diamond");break;case 61:this.$=Le[$e-5],Ci.addVertex(Le[$e-5],Le[$e-2],"hexagon");break;case 62:this.$=Le[$e-3],Ci.addVertex(Le[$e-3],Le[$e-1],"odd");break;case 63:this.$=Le[$e-3],Ci.addVertex(Le[$e-3],Le[$e-1],"trapezoid");break;case 64:this.$=Le[$e-3],Ci.addVertex(Le[$e-3],Le[$e-1],"inv_trapezoid");break;case 65:this.$=Le[$e-3],Ci.addVertex(Le[$e-3],Le[$e-1],"lean_right");break;case 66:this.$=Le[$e-3],Ci.addVertex(Le[$e-3],Le[$e-1],"lean_left");break;case 67:this.$=Le[$e],Ci.addVertex(Le[$e]);break;case 68:Le[$e-1].text=Le[$e],this.$=Le[$e-1];break;case 69:case 70:Le[$e-2].text=Le[$e-1],this.$=Le[$e-2];break;case 71:this.$=Le[$e];break;case 72:var g1=Ci.destructLink(Le[$e],Le[$e-2]);this.$={type:g1.type,stroke:g1.stroke,length:g1.length,text:Le[$e-1]};break;case 73:this.$={text:Le[$e],type:"text"};break;case 74:this.$={text:Le[$e-1].text+""+Le[$e],type:Le[$e-1].type};break;case 75:this.$={text:Le[$e],type:"string"};break;case 76:this.$={text:Le[$e],type:"markdown"};break;case 77:var g1=Ci.destructLink(Le[$e]);this.$={type:g1.type,stroke:g1.stroke,length:g1.length};break;case 78:this.$=Le[$e-1];break;case 79:this.$={text:Le[$e],type:"text"};break;case 80:this.$={text:Le[$e-1].text+""+Le[$e],type:Le[$e-1].type};break;case 81:this.$={text:Le[$e],type:"string"};break;case 82:case 97:this.$={text:Le[$e],type:"markdown"};break;case 94:this.$={text:Le[$e],type:"text"};break;case 95:this.$={text:Le[$e-1].text+""+Le[$e],type:Le[$e-1].type};break;case 96:this.$={text:Le[$e],type:"text"};break;case 98:this.$=Le[$e-4],Ci.addClass(Le[$e-2],Le[$e]);break;case 99:this.$=Le[$e-4],Ci.setClass(Le[$e-2],Le[$e]);break;case 100:case 108:this.$=Le[$e-1],Ci.setClickEvent(Le[$e-1],Le[$e]);break;case 101:case 109:this.$=Le[$e-3],Ci.setClickEvent(Le[$e-3],Le[$e-2]),Ci.setTooltip(Le[$e-3],Le[$e]);break;case 102:this.$=Le[$e-2],Ci.setClickEvent(Le[$e-2],Le[$e-1],Le[$e]);break;case 103:this.$=Le[$e-4],Ci.setClickEvent(Le[$e-4],Le[$e-3],Le[$e-2]),Ci.setTooltip(Le[$e-4],Le[$e]);break;case 104:this.$=Le[$e-2],Ci.setLink(Le[$e-2],Le[$e]);break;case 105:this.$=Le[$e-4],Ci.setLink(Le[$e-4],Le[$e-2]),Ci.setTooltip(Le[$e-4],Le[$e]);break;case 106:this.$=Le[$e-4],Ci.setLink(Le[$e-4],Le[$e-2],Le[$e]);break;case 107:this.$=Le[$e-6],Ci.setLink(Le[$e-6],Le[$e-4],Le[$e]),Ci.setTooltip(Le[$e-6],Le[$e-2]);break;case 110:this.$=Le[$e-1],Ci.setLink(Le[$e-1],Le[$e]);break;case 111:this.$=Le[$e-3],Ci.setLink(Le[$e-3],Le[$e-2]),Ci.setTooltip(Le[$e-3],Le[$e]);break;case 112:this.$=Le[$e-3],Ci.setLink(Le[$e-3],Le[$e-2],Le[$e]);break;case 113:this.$=Le[$e-5],Ci.setLink(Le[$e-5],Le[$e-4],Le[$e]),Ci.setTooltip(Le[$e-5],Le[$e-2]);break;case 114:this.$=Le[$e-4],Ci.addVertex(Le[$e-2],void 0,void 0,Le[$e]);break;case 115:this.$=Le[$e-4],Ci.updateLink([Le[$e-2]],Le[$e]);break;case 116:this.$=Le[$e-4],Ci.updateLink(Le[$e-2],Le[$e]);break;case 117:this.$=Le[$e-8],Ci.updateLinkInterpolate([Le[$e-6]],Le[$e-2]),Ci.updateLink([Le[$e-6]],Le[$e]);break;case 118:this.$=Le[$e-8],Ci.updateLinkInterpolate(Le[$e-6],Le[$e-2]),Ci.updateLink(Le[$e-6],Le[$e]);break;case 119:this.$=Le[$e-6],Ci.updateLinkInterpolate([Le[$e-4]],Le[$e]);break;case 120:this.$=Le[$e-6],Ci.updateLinkInterpolate(Le[$e-4],Le[$e]);break;case 121:case 123:this.$=[Le[$e]];break;case 122:case 124:Le[$e-2].push(Le[$e]),this.$=Le[$e-2];break;case 126:this.$=Le[$e-1]+Le[$e];break;case 174:this.$=Le[$e];break;case 175:this.$=Le[$e-1]+""+Le[$e];break;case 177:this.$=Le[$e-1]+""+Le[$e];break;case 178:this.$={stmt:"dir",value:"TB"};break;case 179:this.$={stmt:"dir",value:"BT"};break;case 180:this.$={stmt:"dir",value:"RL"};break;case 181:this.$={stmt:"dir",value:"LR"};break}},table:[{3:1,4:2,9:a,10:f,12:g},{1:[3]},i(w,v,{5:6}),{4:7,9:a,10:f,12:g},{4:8,9:a,10:f,12:g},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:b,9:E,10:S,11:_,20:17,22:18,23:19,24:20,25:21,26:22,27:M,33:24,34:F,36:R,38:B,40:28,41:38,42:z,43:39,45:40,58:Y,81:nt,82:ot,83:ft,84:wt,85:mt,86:ct,99:rt,102:it,103:gt,106:Q,108:dt,110:41,111:K,112:yt,113:V,118:Ot,119:It,120:jt,121:xt},i(w,[2,9]),i(w,[2,10]),i(w,[2,11]),{8:[1,54],9:[1,55],10:Ft,15:53,18:56},i(Ct,[2,3]),i(Ct,[2,4]),i(Ct,[2,5]),i(Ct,[2,6]),i(Ct,[2,7]),i(Ct,[2,8]),{8:kt,9:Gt,11:Fe,21:58,39:59,70:63,73:[1,64],75:[1,65]},{8:kt,9:Gt,11:Fe,21:66},{8:kt,9:Gt,11:Fe,21:67},{8:kt,9:Gt,11:Fe,21:68},{8:kt,9:Gt,11:Fe,21:69},{8:kt,9:Gt,11:Fe,21:70},{8:kt,9:Gt,10:[1,71],11:Fe,21:72},i(Ct,[2,36]),{35:[1,73]},{37:[1,74]},i(Ct,[2,39]),i(Mt,[2,46],{18:75,10:Ft}),{10:[1,76]},{10:[1,77]},{10:[1,78]},{10:[1,79]},{14:pn,42:Ae,58:ye,77:[1,83],86:tn,92:[1,80],94:[1,81],98:82,102:sn,103:be,106:Ne,108:Xt,111:_e,112:xe,113:Mn,117:84},i(Ct,[2,178]),i(Ct,[2,179]),i(Ct,[2,180]),i(Ct,[2,181]),i(ce,[2,47]),i(ce,[2,49],{44:[1,96]}),i(Br,[2,67],{110:109,29:[1,97],42:z,46:[1,98],48:[1,99],50:[1,100],52:[1,101],54:[1,102],56:[1,103],58:Y,61:[1,104],63:[1,105],65:[1,106],66:[1,107],68:[1,108],86:ct,99:rt,102:it,103:gt,106:Q,108:dt,111:K,112:yt,113:V}),i(we,[2,174]),i(we,[2,135]),i(we,[2,136]),i(we,[2,137]),i(we,[2,138]),i(we,[2,139]),i(we,[2,140]),i(we,[2,141]),i(we,[2,142]),i(we,[2,143]),i(we,[2,144]),i(we,[2,145]),i(w,[2,12]),i(w,[2,18]),i(w,[2,19]),{9:[1,110]},i(Fi,[2,26],{18:111,10:Ft}),i(Ct,[2,27]),{40:112,41:38,42:z,43:39,45:40,58:Y,86:ct,99:rt,102:it,103:gt,106:Q,108:dt,110:41,111:K,112:yt,113:V},i(Ct,[2,40]),i(Ct,[2,41]),i(Ct,[2,42]),i(mi,[2,71],{71:113,60:[1,115],72:[1,114]}),{74:116,76:117,77:[1,118],78:[1,119],113:ga,116:Ss},i([42,58,60,72,86,99,102,103,106,108,111,112,113],[2,77]),i(Ct,[2,28]),i(Ct,[2,29]),i(Ct,[2,30]),i(Ct,[2,31]),i(Ct,[2,32]),{10:za,12:br,14:An,27:Nn,28:122,32:Bn,42:ke,58:pe,73:Je,77:[1,124],78:[1,125],80:135,81:an,82:xn,83:qa,84:xo,85:ko,86:va,87:Ha,88:123,102:ds,106:Fu,108:Zs,111:d1,112:I2,113:ll},i(Ic,v,{5:148}),i(Ct,[2,37]),i(Ct,[2,38]),i(Mt,[2,45],{42:wc}),{42:z,45:150,58:Y,86:ct,99:rt,102:it,103:gt,106:Q,108:dt,110:41,111:K,112:yt,113:V},{99:[1,151],100:152,102:[1,153]},{42:z,45:154,58:Y,86:ct,99:rt,102:it,103:gt,106:Q,108:dt,110:41,111:K,112:yt,113:V},{42:z,45:155,58:Y,86:ct,99:rt,102:it,103:gt,106:Q,108:dt,110:41,111:K,112:yt,113:V},i(Ea,[2,100],{10:[1,156],93:[1,157]}),{77:[1,158]},i(Ea,[2,108],{117:160,10:[1,159],14:pn,42:Ae,58:ye,86:tn,102:sn,103:be,106:Ne,108:Xt,111:_e,112:xe,113:Mn}),i(Ea,[2,110],{10:[1,161]}),i(gu,[2,176]),i(gu,[2,163]),i(gu,[2,164]),i(gu,[2,165]),i(gu,[2,166]),i(gu,[2,167]),i(gu,[2,168]),i(gu,[2,169]),i(gu,[2,170]),i(gu,[2,171]),i(gu,[2,172]),i(gu,[2,173]),{42:z,45:162,58:Y,86:ct,99:rt,102:it,103:gt,106:Q,108:dt,110:41,111:K,112:yt,113:V},{30:163,65:ta,77:fo,78:mc,79:164,113:ca,114:ya,115:ea},{30:171,65:ta,77:fo,78:mc,79:164,113:ca,114:ya,115:ea},{30:173,48:[1,172],65:ta,77:fo,78:mc,79:164,113:ca,114:ya,115:ea},{30:174,65:ta,77:fo,78:mc,79:164,113:ca,114:ya,115:ea},{30:175,65:ta,77:fo,78:mc,79:164,113:ca,114:ya,115:ea},{30:176,65:ta,77:fo,78:mc,79:164,113:ca,114:ya,115:ea},{106:[1,177]},{30:178,65:ta,77:fo,78:mc,79:164,113:ca,114:ya,115:ea},{30:179,63:[1,180],65:ta,77:fo,78:mc,79:164,113:ca,114:ya,115:ea},{30:181,65:ta,77:fo,78:mc,79:164,113:ca,114:ya,115:ea},{30:182,65:ta,77:fo,78:mc,79:164,113:ca,114:ya,115:ea},{30:183,65:ta,77:fo,78:mc,79:164,113:ca,114:ya,115:ea},i(we,[2,175]),i(w,[2,20]),i(Fi,[2,25]),i(Mt,[2,43],{18:184,10:Ft}),i(mi,[2,68],{10:[1,185]}),{10:[1,186]},{30:187,65:ta,77:fo,78:mc,79:164,113:ca,114:ya,115:ea},{75:[1,188],76:189,113:ga,116:Ss},i(Zl,[2,73]),i(Zl,[2,75]),i(Zl,[2,76]),i(Zl,[2,161]),i(Zl,[2,162]),{8:kt,9:Gt,10:za,11:Fe,12:br,14:An,21:191,27:Nn,29:[1,190],32:Bn,42:ke,58:pe,73:Je,80:135,81:an,82:xn,83:qa,84:xo,85:ko,86:va,87:Ha,88:192,102:ds,106:Fu,108:Zs,111:d1,112:I2,113:ll},i(Uc,[2,94]),i(Uc,[2,96]),i(Uc,[2,97]),i(Uc,[2,150]),i(Uc,[2,151]),i(Uc,[2,152]),i(Uc,[2,153]),i(Uc,[2,154]),i(Uc,[2,155]),i(Uc,[2,156]),i(Uc,[2,157]),i(Uc,[2,158]),i(Uc,[2,159]),i(Uc,[2,160]),i(Uc,[2,83]),i(Uc,[2,84]),i(Uc,[2,85]),i(Uc,[2,86]),i(Uc,[2,87]),i(Uc,[2,88]),i(Uc,[2,89]),i(Uc,[2,90]),i(Uc,[2,91]),i(Uc,[2,92]),i(Uc,[2,93]),{6:11,7:12,8:b,9:E,10:S,11:_,20:17,22:18,23:19,24:20,25:21,26:22,27:M,32:[1,193],33:24,34:F,36:R,38:B,40:28,41:38,42:z,43:39,45:40,58:Y,81:nt,82:ot,83:ft,84:wt,85:mt,86:ct,99:rt,102:it,103:gt,106:Q,108:dt,110:41,111:K,112:yt,113:V,118:Ot,119:It,120:jt,121:xt},{10:Ft,18:194},{10:[1,195],42:z,58:Y,86:ct,99:rt,102:it,103:gt,106:Q,108:dt,110:109,111:K,112:yt,113:V},{10:[1,196]},{10:[1,197],103:[1,198]},i(rm,[2,121]),{10:[1,199],42:z,58:Y,86:ct,99:rt,102:it,103:gt,106:Q,108:dt,110:109,111:K,112:yt,113:V},{10:[1,200],42:z,58:Y,86:ct,99:rt,102:it,103:gt,106:Q,108:dt,110:109,111:K,112:yt,113:V},{77:[1,201]},i(Ea,[2,102],{10:[1,202]}),i(Ea,[2,104],{10:[1,203]}),{77:[1,204]},i(gu,[2,177]),{77:[1,205],95:[1,206]},i(ce,[2,50],{110:109,42:z,58:Y,86:ct,99:rt,102:it,103:gt,106:Q,108:dt,111:K,112:yt,113:V}),{31:[1,207],65:ta,79:208,113:ca,114:ya,115:ea},i(kh,[2,79]),i(kh,[2,81]),i(kh,[2,82]),i(kh,[2,146]),i(kh,[2,147]),i(kh,[2,148]),i(kh,[2,149]),{47:[1,209],65:ta,79:208,113:ca,114:ya,115:ea},{30:210,65:ta,77:fo,78:mc,79:164,113:ca,114:ya,115:ea},{49:[1,211],65:ta,79:208,113:ca,114:ya,115:ea},{51:[1,212],65:ta,79:208,113:ca,114:ya,115:ea},{53:[1,213],65:ta,79:208,113:ca,114:ya,115:ea},{55:[1,214],65:ta,79:208,113:ca,114:ya,115:ea},{58:[1,215]},{62:[1,216],65:ta,79:208,113:ca,114:ya,115:ea},{64:[1,217],65:ta,79:208,113:ca,114:ya,115:ea},{30:218,65:ta,77:fo,78:mc,79:164,113:ca,114:ya,115:ea},{31:[1,219],65:ta,79:208,113:ca,114:ya,115:ea},{65:ta,67:[1,220],69:[1,221],79:208,113:ca,114:ya,115:ea},{65:ta,67:[1,223],69:[1,222],79:208,113:ca,114:ya,115:ea},i(Mt,[2,44],{42:wc}),i(mi,[2,70]),i(mi,[2,69]),{60:[1,224],65:ta,79:208,113:ca,114:ya,115:ea},i(mi,[2,72]),i(Zl,[2,74]),{30:225,65:ta,77:fo,78:mc,79:164,113:ca,114:ya,115:ea},i(Ic,v,{5:226}),i(Uc,[2,95]),i(Ct,[2,35]),{41:227,42:z,43:39,45:40,58:Y,86:ct,99:rt,102:it,103:gt,106:Q,108:dt,110:41,111:K,112:yt,113:V},{10:Md,58:w0,81:Id,89:228,102:m0,104:229,105:230,106:hg,107:Gi,108:cn,109:Nr},{10:Md,58:w0,81:Id,89:239,101:[1,240],102:m0,104:229,105:230,106:hg,107:Gi,108:cn,109:Nr},{10:Md,58:w0,81:Id,89:241,101:[1,242],102:m0,104:229,105:230,106:hg,107:Gi,108:cn,109:Nr},{102:[1,243]},{10:Md,58:w0,81:Id,89:244,102:m0,104:229,105:230,106:hg,107:Gi,108:cn,109:Nr},{42:z,45:245,58:Y,86:ct,99:rt,102:it,103:gt,106:Q,108:dt,110:41,111:K,112:yt,113:V},i(Ea,[2,101]),{77:[1,246]},{77:[1,247],95:[1,248]},i(Ea,[2,109]),i(Ea,[2,111],{10:[1,249]}),i(Ea,[2,112]),i(Br,[2,51]),i(kh,[2,80]),i(Br,[2,52]),{49:[1,250],65:ta,79:208,113:ca,114:ya,115:ea},i(Br,[2,59]),i(Br,[2,54]),i(Br,[2,55]),i(Br,[2,56]),{106:[1,251]},i(Br,[2,58]),i(Br,[2,60]),{64:[1,252],65:ta,79:208,113:ca,114:ya,115:ea},i(Br,[2,62]),i(Br,[2,63]),i(Br,[2,65]),i(Br,[2,64]),i(Br,[2,66]),i([10,42,58,86,99,102,103,106,108,111,112,113],[2,78]),{31:[1,253],65:ta,79:208,113:ca,114:ya,115:ea},{6:11,7:12,8:b,9:E,10:S,11:_,20:17,22:18,23:19,24:20,25:21,26:22,27:M,32:[1,254],33:24,34:F,36:R,38:B,40:28,41:38,42:z,43:39,45:40,58:Y,81:nt,82:ot,83:ft,84:wt,85:mt,86:ct,99:rt,102:it,103:gt,106:Q,108:dt,110:41,111:K,112:yt,113:V,118:Ot,119:It,120:jt,121:xt},i(ce,[2,48]),i(Ea,[2,114],{103:Si}),i(vc,[2,123],{105:256,10:Md,58:w0,81:Id,102:m0,106:hg,107:Gi,108:cn,109:Nr}),i(Rc,[2,125]),i(Rc,[2,127]),i(Rc,[2,128]),i(Rc,[2,129]),i(Rc,[2,130]),i(Rc,[2,131]),i(Rc,[2,132]),i(Rc,[2,133]),i(Rc,[2,134]),i(Ea,[2,115],{103:Si}),{10:[1,257]},i(Ea,[2,116],{103:Si}),{10:[1,258]},i(rm,[2,122]),i(Ea,[2,98],{103:Si}),i(Ea,[2,99],{110:109,42:z,58:Y,86:ct,99:rt,102:it,103:gt,106:Q,108:dt,111:K,112:yt,113:V}),i(Ea,[2,103]),i(Ea,[2,105],{10:[1,259]}),i(Ea,[2,106]),{95:[1,260]},{49:[1,261]},{60:[1,262]},{64:[1,263]},{8:kt,9:Gt,11:Fe,21:264},i(Ct,[2,34]),{10:Md,58:w0,81:Id,102:m0,104:265,105:230,106:hg,107:Gi,108:cn,109:Nr},i(Rc,[2,126]),{14:pn,42:Ae,58:ye,86:tn,98:266,102:sn,103:be,106:Ne,108:Xt,111:_e,112:xe,113:Mn,117:84},{14:pn,42:Ae,58:ye,86:tn,98:267,102:sn,103:be,106:Ne,108:Xt,111:_e,112:xe,113:Mn,117:84},{95:[1,268]},i(Ea,[2,113]),i(Br,[2,53]),{30:269,65:ta,77:fo,78:mc,79:164,113:ca,114:ya,115:ea},i(Br,[2,61]),i(Ic,v,{5:270}),i(vc,[2,124],{105:256,10:Md,58:w0,81:Id,102:m0,106:hg,107:Gi,108:cn,109:Nr}),i(Ea,[2,119],{117:160,10:[1,271],14:pn,42:Ae,58:ye,86:tn,102:sn,103:be,106:Ne,108:Xt,111:_e,112:xe,113:Mn}),i(Ea,[2,120],{117:160,10:[1,272],14:pn,42:Ae,58:ye,86:tn,102:sn,103:be,106:Ne,108:Xt,111:_e,112:xe,113:Mn}),i(Ea,[2,107]),{31:[1,273],65:ta,79:208,113:ca,114:ya,115:ea},{6:11,7:12,8:b,9:E,10:S,11:_,20:17,22:18,23:19,24:20,25:21,26:22,27:M,32:[1,274],33:24,34:F,36:R,38:B,40:28,41:38,42:z,43:39,45:40,58:Y,81:nt,82:ot,83:ft,84:wt,85:mt,86:ct,99:rt,102:it,103:gt,106:Q,108:dt,110:41,111:K,112:yt,113:V,118:Ot,119:It,120:jt,121:xt},{10:Md,58:w0,81:Id,89:275,102:m0,104:229,105:230,106:hg,107:Gi,108:cn,109:Nr},{10:Md,58:w0,81:Id,89:276,102:m0,104:229,105:230,106:hg,107:Gi,108:cn,109:Nr},i(Br,[2,57]),i(Ct,[2,33]),i(Ea,[2,117],{103:Si}),i(Ea,[2,118],{103:Si})],defaultActions:{},parseError:function(cs,As){if(As.recoverable)this.trace(cs);else{var to=new Error(cs);throw to.hash=As,to}},parse:function(cs){var As=this,to=[0],Ci=[],pu=[null],Le=[],iy=this.table,$e="",g1=0,ip=0,sy=2,D8=1,g4=Le.slice.call(arguments,1),th=Object.create(this.lexer),fg={yy:{}};for(var O2 in this.yy)Object.prototype.hasOwnProperty.call(this.yy,O2)&&(fg.yy[O2]=this.yy[O2]);th.setInput(cs,fg.yy),fg.yy.lexer=th,fg.yy.parser=this,typeof th.yylloc>"u"&&(th.yylloc={});var M8=th.yylloc;Le.push(M8);var N2=th.options&&th.options.ranges;typeof fg.yy.parseError=="function"?this.parseError=fg.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function p4(){var sp;return sp=Ci.pop()||th.lex()||D8,typeof sp!="number"&&(sp instanceof Array&&(Ci=sp,sp=Ci.pop()),sp=As.symbols_[sp]||sp),sp}for(var U1,Nd,Pd,I8,im={},Gx,hb,Kx,b4;;){if(Nd=to[to.length-1],this.defaultActions[Nd]?Pd=this.defaultActions[Nd]:((U1===null||typeof U1>"u")&&(U1=p4()),Pd=iy[Nd]&&iy[Nd][U1]),typeof Pd>"u"||!Pd.length||!Pd[0]){var ay="";b4=[];for(Gx in iy[Nd])this.terminals_[Gx]&&Gx>sy&&b4.push("'"+this.terminals_[Gx]+"'");th.showPosition?ay="Parse error on line "+(g1+1)+`: +`+th.showPosition()+` +Expecting `+b4.join(", ")+", got '"+(this.terminals_[U1]||U1)+"'":ay="Parse error on line "+(g1+1)+": Unexpected "+(U1==D8?"end of input":"'"+(this.terminals_[U1]||U1)+"'"),this.parseError(ay,{text:th.match,token:this.terminals_[U1]||U1,line:th.yylineno,loc:M8,expected:b4})}if(Pd[0]instanceof Array&&Pd.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Nd+", token: "+U1);switch(Pd[0]){case 1:to.push(U1),pu.push(th.yytext),Le.push(th.yylloc),to.push(Pd[1]),U1=null,ip=th.yyleng,$e=th.yytext,g1=th.yylineno,M8=th.yylloc;break;case 2:if(hb=this.productions_[Pd[1]][1],im.$=pu[pu.length-hb],im._$={first_line:Le[Le.length-(hb||1)].first_line,last_line:Le[Le.length-1].last_line,first_column:Le[Le.length-(hb||1)].first_column,last_column:Le[Le.length-1].last_column},N2&&(im._$.range=[Le[Le.length-(hb||1)].range[0],Le[Le.length-1].range[1]]),I8=this.performAction.apply(im,[$e,ip,g1,fg.yy,Pd[1],pu,Le].concat(g4)),typeof I8<"u")return I8;hb&&(to=to.slice(0,-1*hb*2),pu=pu.slice(0,-1*hb),Le=Le.slice(0,-1*hb)),to.push(this.productions_[Pd[1]][0]),pu.push(im.$),Le.push(im._$),Kx=iy[to[to.length-2]][to[to.length-1]],to.push(Kx);break;case 3:return!0}}return!0}},Zc=function(){var Od={EOF:1,parseError:function(As,to){if(this.yy.parser)this.yy.parser.parseError(As,to);else throw new Error(As)},setInput:function(cs,As){return this.yy=As||this.yy||{},this._input=cs,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var cs=this._input[0];this.yytext+=cs,this.yyleng++,this.offset++,this.match+=cs,this.matched+=cs;var As=cs.match(/(?:\r\n?|\n).*/g);return As?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),cs},unput:function(cs){var As=cs.length,to=cs.split(/(?:\r\n?|\n)/g);this._input=cs+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-As),this.offset-=As;var Ci=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),to.length-1&&(this.yylineno-=to.length-1);var pu=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:to?(to.length===Ci.length?this.yylloc.first_column:0)+Ci[Ci.length-to.length].length-to[0].length:this.yylloc.first_column-As},this.options.ranges&&(this.yylloc.range=[pu[0],pu[0]+this.yyleng-As]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(cs){this.unput(this.match.slice(cs))},pastInput:function(){var cs=this.matched.substr(0,this.matched.length-this.match.length);return(cs.length>20?"...":"")+cs.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var cs=this.match;return cs.length<20&&(cs+=this._input.substr(0,20-cs.length)),(cs.substr(0,20)+(cs.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var cs=this.pastInput(),As=new Array(cs.length+1).join("-");return cs+this.upcomingInput()+` +`+As+"^"},test_match:function(cs,As){var to,Ci,pu;if(this.options.backtrack_lexer&&(pu={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(pu.yylloc.range=this.yylloc.range.slice(0))),Ci=cs[0].match(/(?:\r\n?|\n).*/g),Ci&&(this.yylineno+=Ci.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ci?Ci[Ci.length-1].length-Ci[Ci.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+cs[0].length},this.yytext+=cs[0],this.match+=cs[0],this.matches=cs,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(cs[0].length),this.matched+=cs[0],to=this.performAction.call(this,this.yy,this,As,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),to)return to;if(this._backtrack){for(var Le in pu)this[Le]=pu[Le];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var cs,As,to,Ci;this._more||(this.yytext="",this.match="");for(var pu=this._currentRules(),Le=0;LeAs[0].length)){if(As=to,Ci=Le,this.options.backtrack_lexer){if(cs=this.test_match(to,pu[Le]),cs!==!1)return cs;if(this._backtrack){As=!1;continue}else return!1}else if(!this.options.flex)break}return As?(cs=this.test_match(As,pu[Ci]),cs!==!1?cs:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var As=this.next();return As||this.lex()},begin:function(As){this.conditionStack.push(As)},popState:function(){var As=this.conditionStack.length-1;return As>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(As){return As=this.conditionStack.length-1-Math.abs(As||0),As>=0?this.conditionStack[As]:"INITIAL"},pushState:function(As){this.begin(As)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(As,to,Ci,pu){switch(Ci){case 0:return this.begin("acc_title"),34;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),36;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:this.begin("callbackname");break;case 8:this.popState();break;case 9:this.popState(),this.begin("callbackargs");break;case 10:return 92;case 11:this.popState();break;case 12:return 93;case 13:return"MD_STR";case 14:this.popState();break;case 15:this.begin("md_string");break;case 16:return"STR";case 17:this.popState();break;case 18:this.pushState("string");break;case 19:return 81;case 20:return 99;case 21:return 82;case 22:return 101;case 23:return 83;case 24:return 84;case 25:return 94;case 26:this.begin("click");break;case 27:this.popState();break;case 28:return 85;case 29:return As.lex.firstGraph()&&this.begin("dir"),12;case 30:return As.lex.firstGraph()&&this.begin("dir"),12;case 31:return As.lex.firstGraph()&&this.begin("dir"),12;case 32:return 27;case 33:return 32;case 34:return 95;case 35:return 95;case 36:return 95;case 37:return 95;case 38:return this.popState(),13;case 39:return this.popState(),14;case 40:return this.popState(),14;case 41:return this.popState(),14;case 42:return this.popState(),14;case 43:return this.popState(),14;case 44:return this.popState(),14;case 45:return this.popState(),14;case 46:return this.popState(),14;case 47:return this.popState(),14;case 48:return this.popState(),14;case 49:return 118;case 50:return 119;case 51:return 120;case 52:return 121;case 53:return 102;case 54:return 108;case 55:return 44;case 56:return 58;case 57:return 42;case 58:return 8;case 59:return 103;case 60:return 112;case 61:return this.popState(),75;case 62:return this.pushState("edgeText"),73;case 63:return 116;case 64:return this.popState(),75;case 65:return this.pushState("thickEdgeText"),73;case 66:return 116;case 67:return this.popState(),75;case 68:return this.pushState("dottedEdgeText"),73;case 69:return 116;case 70:return 75;case 71:return this.popState(),51;case 72:return"TEXT";case 73:return this.pushState("ellipseText"),50;case 74:return this.popState(),53;case 75:return this.pushState("text"),52;case 76:return this.popState(),55;case 77:return this.pushState("text"),54;case 78:return 56;case 79:return this.pushState("text"),65;case 80:return this.popState(),62;case 81:return this.pushState("text"),61;case 82:return this.popState(),47;case 83:return this.pushState("text"),46;case 84:return this.popState(),67;case 85:return this.popState(),69;case 86:return 114;case 87:return this.pushState("trapText"),66;case 88:return this.pushState("trapText"),68;case 89:return 115;case 90:return 65;case 91:return 87;case 92:return"SEP";case 93:return 86;case 94:return 112;case 95:return 108;case 96:return 42;case 97:return 106;case 98:return 111;case 99:return 113;case 100:return this.popState(),60;case 101:return this.pushState("text"),60;case 102:return this.popState(),49;case 103:return this.pushState("text"),48;case 104:return this.popState(),31;case 105:return this.pushState("text"),29;case 106:return this.popState(),64;case 107:return this.pushState("text"),63;case 108:return"TEXT";case 109:return"QUOTE";case 110:return 9;case 111:return 10;case 112:return 11}},rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{callbackargs:{rules:[11,12,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},callbackname:{rules:[8,9,10,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},href:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},click:{rules:[15,18,27,28,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dottedEdgeText:{rules:[15,18,67,69,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},thickEdgeText:{rules:[15,18,64,66,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},edgeText:{rules:[15,18,61,63,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},trapText:{rules:[15,18,70,73,75,77,81,83,84,85,86,87,88,101,103,105,107],inclusive:!1},ellipseText:{rules:[15,18,70,71,72,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},text:{rules:[15,18,70,73,74,75,76,77,80,81,82,83,87,88,100,101,102,103,104,105,106,107,108],inclusive:!1},vertex:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dir:{rules:[15,18,38,39,40,41,42,43,44,45,46,47,48,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr_multiline:{rules:[5,6,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr:{rules:[3,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_title:{rules:[1,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},md_string:{rules:[13,14,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},string:{rules:[15,16,17,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},INITIAL:{rules:[0,2,4,7,15,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,49,50,51,52,53,54,55,56,57,58,59,60,61,62,64,65,67,68,70,73,75,77,78,79,81,83,87,88,89,90,91,92,93,94,95,96,97,98,99,101,103,105,107,109,110,111,112],inclusive:!0}}};return Od}();Eh.lexer=Zc;function Qh(){this.yy={}}return Qh.prototype=Eh,Eh.Parser=Qh,new Qh}();ipt.parser=ipt;const spt=ipt,lje="flowchart-";let gRt=0,bD=Re(),jl={},Qv=[],wD={},Px=[],OY={},NY={},PY=0,apt=!0,Zw,FY,BY=[];const RY=i=>ei.sanitizeText(i,bD),zF=function(i){const a=Object.keys(jl);for(const f of a)if(jl[f].id===i)return jl[f].domId;return i},pRt=function(i,a,f,g,w,v,b={}){let E,S=i;S!==void 0&&S.trim().length!==0&&(jl[S]===void 0&&(jl[S]={id:S,labelType:"text",domId:lje+S+"-"+gRt,styles:[],classes:[]}),gRt++,a!==void 0?(bD=Re(),E=RY(a.text.trim()),jl[S].labelType=a.type,E[0]==='"'&&E[E.length-1]==='"'&&(E=E.substring(1,E.length-1)),jl[S].text=E):jl[S].text===void 0&&(jl[S].text=i),f!==void 0&&(jl[S].type=f),g!=null&&g.forEach(function(_){jl[S].styles.push(_)}),w!=null&&w.forEach(function(_){jl[S].classes.push(_)}),v!==void 0&&(jl[S].dir=v),jl[S].props===void 0?jl[S].props=b:b!==void 0&&Object.assign(jl[S].props,b))},bRt=function(i,a,f){const v={start:i,end:a,type:void 0,text:"",labelType:"text"};Kt.info("abc78 Got edge...",v);const b=f.text;if(b!==void 0&&(v.text=RY(b.text.trim()),v.text[0]==='"'&&v.text[v.text.length-1]==='"'&&(v.text=v.text.substring(1,v.text.length-1)),v.labelType=b.type),f!==void 0&&(v.type=f.type,v.stroke=f.stroke,v.length=f.length),(v==null?void 0:v.length)>10&&(v.length=10),Qv.length<(bD.maxEdges??500))Kt.info("abc78 pushing edge..."),Qv.push(v);else throw new Error(`Edge limit exceeded. ${Qv.length} edges found, but the limit is ${bD.maxEdges}. + +Initialize mermaid with maxEdges set to a higher number to allow more edges. +You cannot set this config via configuration inside the diagram as it is a secure config. +You have to call mermaid.initialize.`)},wRt=function(i,a,f){Kt.info("addLink (abc78)",i,a,f);let g,w;for(g=0;g=Qv.length)throw new Error(`The index ${f} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${Qv.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);f==="default"?Qv.defaultStyle=a:(uo.isSubstringInArray("fill",a)===-1&&a.push("fill:none"),Qv[f].style=a)})},yRt=function(i,a){i.split(",").forEach(function(f){wD[f]===void 0&&(wD[f]={id:f,styles:[],textStyles:[]}),a!=null&&a.forEach(function(g){if(g.match("color")){const w=g.replace("fill","bgFill").replace("color","fill");wD[f].textStyles.push(w)}wD[f].styles.push(g)})})},xRt=function(i){Zw=i,Zw.match(/.*/)&&(Zw="LR"),Zw.match(/.*v/)&&(Zw="TB"),Zw==="TD"&&(Zw="TB")},jY=function(i,a){i.split(",").forEach(function(f){let g=f;jl[g]!==void 0&&jl[g].classes.push(a),OY[g]!==void 0&&OY[g].classes.push(a)})},hje=function(i,a){i.split(",").forEach(function(f){a!==void 0&&(NY[FY==="gen-1"?zF(f):f]=RY(a))})},fje=function(i,a,f){let g=zF(i);if(Re().securityLevel!=="loose"||a===void 0)return;let w=[];if(typeof f=="string"){w=f.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let v=0;v")),w.classed("hover",!0)}).on("mouseout",function(){a.transition().duration(500).style("opacity",0),Tr(this).classed("hover",!1)})};BY.push(DRt);const MRt=function(i="gen-1"){jl={},wD={},Qv=[],BY=[DRt],Px=[],OY={},PY=0,NY={},apt=!0,FY=i,bD=Re(),ag()},IRt=i=>{FY=i||"gen-2"},ORt=function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},NRt=function(i,a,f){let g=i.text.trim(),w=f.text;i===f&&f.text.match(/\s/)&&(g=void 0);function v(M){const F={boolean:{},number:{},string:{}},R=[];let B;return{nodeList:M.filter(function(Y){const nt=typeof Y;return Y.stmt&&Y.stmt==="dir"?(B=Y.value,!1):Y.trim()===""?!1:nt in F?F[nt].hasOwnProperty(Y)?!1:F[nt][Y]=!0:R.includes(Y)?!1:R.push(Y)}),dir:B}}let b=[];const{nodeList:E,dir:S}=v(b.concat.apply(b,a));if(b=E,FY==="gen-1")for(let M=0;M2e3)return;if(PRt[qF]=a,Px[a].id===i)return{result:!0,count:0};let g=0,w=1;for(;g=0){const b=FRt(i,v);if(b.result)return{result:!0,count:w+b.count};w=w+b.count}g=g+1}return{result:!1,count:w}},BRt=function(i){return PRt[i]},RRt=function(){qF=-1,Px.length>0&&FRt("none",Px.length-1)},jRt=function(){return Px},$Rt=()=>apt?(apt=!1,!0):!1,gje=i=>{let a=i.trim(),f="arrow_open";switch(a[0]){case"<":f="arrow_point",a=a.slice(1);break;case"x":f="arrow_cross",a=a.slice(1);break;case"o":f="arrow_circle",a=a.slice(1);break}let g="normal";return a.includes("=")&&(g="thick"),a.includes(".")&&(g="dotted"),{type:f,stroke:g}},pje=(i,a)=>{const f=a.length;let g=0;for(let w=0;w{const a=i.trim();let f=a.slice(0,-1),g="arrow_open";switch(a.slice(-1)){case"x":g="arrow_cross",a[0]==="x"&&(g="double_"+g,f=f.slice(1));break;case">":g="arrow_point",a[0]==="<"&&(g="double_"+g,f=f.slice(1));break;case"o":g="arrow_circle",a[0]==="o"&&(g="double_"+g,f=f.slice(1));break}let w="normal",v=f.length-1;f[0]==="="&&(w="thick"),f[0]==="~"&&(w="invisible");let b=pje(".",f);return b&&(w="dotted",v=b),{type:g,stroke:w,length:v}},zRt=(i,a)=>{const f=bje(i);let g;if(a){if(g=gje(a),g.stroke!==f.stroke)return{type:"INVALID",stroke:"INVALID"};if(g.type==="arrow_open")g.type=f.type;else{if(g.type!==f.type)return{type:"INVALID",stroke:"INVALID"};g.type="double_"+g.type}return g.type==="double_arrow"&&(g.type="double_arrow_point"),g.length=f.length,g}return f},qRt=(i,a)=>{let f=!1;return i.forEach(g=>{g.nodes.indexOf(a)>=0&&(f=!0)}),f},HRt=(i,a)=>{const f=[];return i.nodes.forEach((g,w)=>{qRt(a,g)||f.push(i.nodes[w])}),{nodes:f}},VRt={firstGraph:$Rt},A9={defaultConfig:()=>lBt.flowchart,setAccTitle:og,getAccTitle:Xg,getAccDescription:Jg,setAccDescription:Qg,addVertex:pRt,lookUpDomId:zF,addLink:wRt,updateLinkInterpolate:mRt,updateLink:vRt,addClass:yRt,setDirection:xRt,setClass:jY,setTooltip:hje,getTooltip:ERt,setClickEvent:TRt,setLink:kRt,bindFunctions:CRt,getDirection:SRt,getVertices:_Rt,getEdges:ARt,getClasses:LRt,clear:MRt,setGen:IRt,defaultStyle:ORt,addSubGraph:NRt,getDepthFirstPos:BRt,indexNodes:RRt,getSubGraphs:jRt,destructLink:zRt,lex:VRt,exists:qRt,makeUniq:HRt,setDiagramTitle:S2,getDiagramTitle:Zg},wje=Object.freeze(Object.defineProperty({__proto__:null,addClass:yRt,addLink:wRt,addSingleLink:bRt,addSubGraph:NRt,addVertex:pRt,bindFunctions:CRt,clear:MRt,default:A9,defaultStyle:ORt,destructLink:zRt,firstGraph:$Rt,getClasses:LRt,getDepthFirstPos:BRt,getDirection:SRt,getEdges:ARt,getSubGraphs:jRt,getTooltip:ERt,getVertices:_Rt,indexNodes:RRt,lex:VRt,lookUpDomId:zF,setClass:jY,setClickEvent:TRt,setDirection:xRt,setGen:IRt,setLink:kRt,updateLink:vRt,updateLinkInterpolate:mRt},Symbol.toStringTag,{value:"Module"}));var mje="[object Symbol]";function L9(i){return typeof i=="symbol"||e4(i)&&b9(i)==mje}function mD(i,a){for(var f=-1,g=i==null?0:i.length,w=Array(g);++f-1}function A2(i){return p8(i)?wFt(i):xBt(i)}var Fje=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Bje=/^\w*$/;function opt(i,a){if(s1(i))return!1;var f=typeof i;return f=="number"||f=="symbol"||f=="boolean"||i==null||L9(i)?!0:Bje.test(i)||!Fje.test(i)||a!=null&&i in Object(a)}var Rje=500;function jje(i){var a=eD(i,function(g){return f.size===Rje&&f.clear(),g}),f=a.cache;return a}var $je=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,zje=/\\(\\)?/g,qje=jje(function(i){var a=[];return i.charCodeAt(0)===46&&a.push(""),i.replace($je,function(f,g,w,v){a.push(w?v.replace(zje,"$1"):g||f)}),a});const Hje=qje;function JRt(i){return i==null?"":KRt(i)}function zY(i,a){return s1(i)?i:opt(i,a)?[i]:Hje(JRt(i))}var Vje=1/0;function HF(i){if(typeof i=="string"||L9(i))return i;var a=i+"";return a=="0"&&1/i==-Vje?"-0":a}function qY(i,a){a=zY(a,i);for(var f=0,g=a.length;i!=null&&f0&&f(E)?a>1?HY(E,a-1,f,g,w):cpt(w,E):g||(w[w.length]=E)}return w}function vD(i){var a=i==null?0:i.length;return a?HY(i,1):[]}function Kje(i){return xFt(yFt(i,void 0,vD),i+"")}function Wje(i,a,f,g){var w=-1,v=i==null?0:i.length;for(g&&v&&(f=i[++w]);++wE))return!1;var _=v.get(i),M=v.get(a);if(_&&M)return _==a&&M==i;var F=-1,R=!0,B=f&xze?new UF:void 0;for(v.set(i,a),v.set(a,i);++F2?a[2]:void 0;for(w&&DF(a[0],a[1],w)&&(g=1);++f-1?w[v?a[b]:b]:void 0}}var lqe=Math.max;function hqe(i,a,f){var g=i==null?0:i.length;if(!g)return-1;var w=f==null?0:Dje(f);return w<0&&(w=lqe(g+w,0)),QRt(i,k8(a),w)}var fqe=uqe(hqe);const bpt=fqe;function Cjt(i,a){var f=-1,g=p8(i)?Array(i.length):[];return UY(i,function(w,v,b){g[++f]=a(w,v,b)}),g}function u1(i,a){var f=s1(i)?mD:Cjt;return f(i,k8(a))}function dqe(i,a){return i==null?i:wgt(i,ppt(a),y9)}function gqe(i,a){return i&&gpt(i,ppt(a))}function pqe(i,a){return i>a}var bqe=Object.prototype,wqe=bqe.hasOwnProperty;function mqe(i,a){return i!=null&&wqe.call(i,a)}function lo(i,a){return i!=null&&xjt(i,a,mqe)}function vqe(i,a){return mD(a,function(f){return i[f]})}function Bx(i){return i==null?[]:vqe(i,A2(i))}function Tf(i){return i===void 0}function Sjt(i,a){return ia||v&&b&&S&&!E&&!_||g&&b&&S||!f&&S||!w)return 1;if(!g&&!v&&!_&&i=E)return S;var _=f[g];return S*(_=="desc"?-1:1)}}return i.index-a.index}function Cqe(i,a,f){a.length?a=mD(a,function(v){return s1(v)?function(b){return qY(b,v.length===1?v[0]:v)}:v}):a=[x9];var g=-1;a=mD(a,iY(k8));var w=Cjt(i,function(v,b,E){var S=mD(a,function(_){return _(v)});return{criteria:S,index:++g,value:v}});return kqe(w,function(v,b){return Tqe(v,b,f)})}function Sqe(i,a){return xqe(i,a,function(f,g){return kjt(i,g)})}var _qe=Kje(function(i,a){return i==null?{}:Sqe(i,a)});const KF=_qe;var Aqe=Math.ceil,Lqe=Math.max;function Dqe(i,a,f,g){for(var w=-1,v=Lqe(Aqe((a-i)/(f||1)),0),b=Array(v);v--;)b[g?v:++w]=i,i+=f;return b}function Mqe(i){return function(a,f,g){return g&&typeof g!="number"&&DF(a,f,g)&&(f=g=void 0),a=$Y(a),f===void 0?(f=a,a=0):f=$Y(f),g=g===void 0?a1&&DF(i,a[0],a[1])?a=[]:f>2&&DF(a[0],a[1],a[2])&&(a=[a[0]]),Cqe(i,HY(a,1),[])});const YF=Nqe;var Pqe=1/0,Fqe=lD&&1/hpt(new lD([,-0]))[1]==Pqe?function(i){return new lD(i)}:Mje;const Bqe=Fqe;var Rqe=200;function jqe(i,a,f){var g=-1,w=Pje,v=i.length,b=!0,E=[],S=E;if(f)b=!1,w=oqe;else if(v>=Rqe){var _=a?null:Bqe(i);if(_)return hpt(_);b=!1,w=djt,S=new UF}else S=a?[]:E;t:for(;++g1?w.setNode(v,f):w.setNode(v)}),this}setNode(a,f){return lo(this._nodes,a)?(arguments.length>1&&(this._nodes[a]=f),this):(this._nodes[a]=arguments.length>1?f:this._defaultNodeLabelFn(a),this._isCompound&&(this._parent[a]=I9,this._children[a]={},this._children[I9][a]=!0),this._in[a]={},this._preds[a]={},this._out[a]={},this._sucs[a]={},++this._nodeCount,this)}node(a){return this._nodes[a]}hasNode(a){return lo(this._nodes,a)}removeNode(a){var f=this;if(lo(this._nodes,a)){var g=function(w){f.removeEdge(f._edgeObjs[w])};delete this._nodes[a],this._isCompound&&(this._removeFromParentsChildList(a),delete this._parent[a],yr(this.children(a),function(w){f.setParent(w)}),delete this._children[a]),yr(A2(this._in[a]),g),delete this._in[a],delete this._preds[a],yr(A2(this._out[a]),g),delete this._out[a],delete this._sucs[a],--this._nodeCount}return this}setParent(a,f){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(Tf(f))f=I9;else{f+="";for(var g=f;!Tf(g);g=this.parent(g))if(g===a)throw new Error("Setting "+f+" as parent of "+a+" would create a cycle");this.setNode(f)}return this.setNode(a),this._removeFromParentsChildList(a),this._parent[a]=f,this._children[f][a]=!0,this}_removeFromParentsChildList(a){delete this._children[this._parent[a]][a]}parent(a){if(this._isCompound){var f=this._parent[a];if(f!==I9)return f}}children(a){if(Tf(a)&&(a=I9),this._isCompound){var f=this._children[a];if(f)return A2(f)}else{if(a===I9)return this.nodes();if(this.hasNode(a))return[]}}predecessors(a){var f=this._preds[a];if(f)return A2(f)}successors(a){var f=this._sucs[a];if(f)return A2(f)}neighbors(a){var f=this.predecessors(a);if(f)return zqe(f,this.successors(a))}isLeaf(a){var f;return this.isDirected()?f=this.successors(a):f=this.neighbors(a),f.length===0}filterNodes(a){var f=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});f.setGraph(this.graph());var g=this;yr(this._nodes,function(b,E){a(E)&&f.setNode(E,b)}),yr(this._edgeObjs,function(b){f.hasNode(b.v)&&f.hasNode(b.w)&&f.setEdge(b,g.edge(b))});var w={};function v(b){var E=g.parent(b);return E===void 0||f.hasNode(E)?(w[b]=E,E):E in w?w[E]:v(E)}return this._isCompound&&yr(f.nodes(),function(b){f.setParent(b,v(b))}),f}setDefaultEdgeLabel(a){return ZL(a)||(a=sD(a)),this._defaultEdgeLabelFn=a,this}edgeCount(){return this._edgeCount}edges(){return Bx(this._edgeObjs)}setPath(a,f){var g=this,w=arguments;return WF(a,function(v,b){return w.length>1?g.setEdge(v,b,f):g.setEdge(v,b),b}),this}setEdge(){var a,f,g,w,v=!1,b=arguments[0];typeof b=="object"&&b!==null&&"v"in b?(a=b.v,f=b.w,g=b.name,arguments.length===2&&(w=arguments[1],v=!0)):(a=b,f=arguments[1],g=arguments[3],arguments.length>2&&(w=arguments[2],v=!0)),a=""+a,f=""+f,Tf(g)||(g=""+g);var E=XF(this._isDirected,a,f,g);if(lo(this._edgeLabels,E))return v&&(this._edgeLabels[E]=w),this;if(!Tf(g)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(a),this.setNode(f),this._edgeLabels[E]=v?w:this._defaultEdgeLabelFn(a,f,g);var S=Gqe(this._isDirected,a,f,g);return a=S.v,f=S.w,Object.freeze(S),this._edgeObjs[E]=S,Ajt(this._preds[f],a),Ajt(this._sucs[a],f),this._in[f][E]=S,this._out[a][E]=S,this._edgeCount++,this}edge(a,f,g){var w=arguments.length===1?vpt(this._isDirected,arguments[0]):XF(this._isDirected,a,f,g);return this._edgeLabels[w]}hasEdge(a,f,g){var w=arguments.length===1?vpt(this._isDirected,arguments[0]):XF(this._isDirected,a,f,g);return lo(this._edgeLabels,w)}removeEdge(a,f,g){var w=arguments.length===1?vpt(this._isDirected,arguments[0]):XF(this._isDirected,a,f,g),v=this._edgeObjs[w];return v&&(a=v.v,f=v.w,delete this._edgeLabels[w],delete this._edgeObjs[w],Ljt(this._preds[f],a),Ljt(this._sucs[a],f),delete this._in[f][w],delete this._out[a][w],this._edgeCount--),this}inEdges(a,f){var g=this._in[a];if(g){var w=Bx(g);return f?Fx(w,function(v){return v.v===f}):w}}outEdges(a,f){var g=this._out[a];if(g){var w=Bx(g);return f?Fx(w,function(v){return v.w===f}):w}}nodeEdges(a,f){var g=this.inEdges(a,f);if(g)return g.concat(this.outEdges(a,f))}}l1.prototype._nodeCount=0,l1.prototype._edgeCount=0;function Ajt(i,a){i[a]?i[a]++:i[a]=1}function Ljt(i,a){--i[a]||delete i[a]}function XF(i,a,f,g){var w=""+a,v=""+f;if(!i&&w>v){var b=w;w=v,v=b}return w+_jt+v+_jt+(Tf(g)?Uqe:g)}function Gqe(i,a,f,g){var w=""+a,v=""+f;if(!i&&w>v){var b=w;w=v,v=b}var E={v:w,w:v};return g&&(E.name=g),E}function vpt(i,a){return XF(i,a.v,a.w,a.name)}class Kqe{constructor(){var a={};a._next=a._prev=a,this._sentinel=a}dequeue(){var a=this._sentinel,f=a._prev;if(f!==a)return Djt(f),f}enqueue(a){var f=this._sentinel;a._prev&&a._next&&Djt(a),a._next=f._next,f._next._prev=a,f._next=a,a._prev=f}toString(){for(var a=[],f=this._sentinel,g=f._prev;g!==f;)a.push(JSON.stringify(g,Wqe)),g=g._prev;return"["+a.join(", ")+"]"}}function Djt(i){i._prev._next=i._next,i._next._prev=i._prev,delete i._next,delete i._prev}function Wqe(i,a){if(i!=="_next"&&i!=="_prev")return a}var Yqe=sD(1);function Xqe(i,a){if(i.nodeCount()<=1)return[];var f=Jqe(i,a||Yqe),g=Qqe(f.graph,f.buckets,f.zeroIdx);return vD(u1(g,function(w){return i.outEdges(w.v,w.w)}))}function Qqe(i,a,f){for(var g=[],w=a[a.length-1],v=a[0],b;i.nodeCount();){for(;b=v.dequeue();)ypt(i,a,f,b);for(;b=w.dequeue();)ypt(i,a,f,b);if(i.nodeCount()){for(var E=a.length-2;E>0;--E)if(b=a[E].dequeue(),b){g=g.concat(ypt(i,a,f,b,!0));break}}}return g}function ypt(i,a,f,g,w){var v=w?[]:void 0;return yr(i.inEdges(g.v),function(b){var E=i.edge(b),S=i.node(b.v);w&&v.push({v:b.v,w:b.w}),S.out-=E,xpt(a,f,S)}),yr(i.outEdges(g.v),function(b){var E=i.edge(b),S=b.w,_=i.node(S);_.in-=E,xpt(a,f,_)}),i.removeNode(g.v),v}function Jqe(i,a){var f=new l1,g=0,w=0;yr(i.nodes(),function(E){f.setNode(E,{v:E,in:0,out:0})}),yr(i.edges(),function(E){var S=f.edge(E.v,E.w)||0,_=a(E),M=S+_;f.setEdge(E.v,E.w,M),w=Math.max(w,f.node(E.v).out+=_),g=Math.max(g,f.node(E.w).in+=_)});var v=M9(w+g+3).map(function(){return new Kqe}),b=g+1;return yr(f.nodes(),function(E){xpt(v,b,f.node(E))}),{graph:f,buckets:v,zeroIdx:b}}function xpt(i,a,f){f.out?f.in?i[f.out-f.in+a].enqueue(f):i[i.length-1].enqueue(f):i[0].enqueue(f)}function Zqe(i){var a=i.graph().acyclicer==="greedy"?Xqe(i,f(i)):tHe(i);yr(a,function(g){var w=i.edge(g);i.removeEdge(g),w.forwardName=g.name,w.reversed=!0,i.setEdge(g.w,g.v,w,WY("rev"))});function f(g){return function(w){return g.edge(w).weight}}}function tHe(i){var a=[],f={},g={};function w(v){lo(g,v)||(g[v]=!0,f[v]=!0,yr(i.outEdges(v),function(b){lo(f,b.w)?a.push(b):w(b.w)}),delete f[v])}return yr(i.nodes(),w),a}function eHe(i){yr(i.edges(),function(a){var f=i.edge(a);if(f.reversed){i.removeEdge(a);var g=f.forwardName;delete f.reversed,delete f.forwardName,i.setEdge(a.w,a.v,f,g)}})}function xD(i,a,f,g){var w;do w=WY(g);while(i.hasNode(w));return f.dummy=a,i.setNode(w,f),w}function nHe(i){var a=new l1().setGraph(i.graph());return yr(i.nodes(),function(f){a.setNode(f,i.node(f))}),yr(i.edges(),function(f){var g=a.edge(f.v,f.w)||{weight:0,minlen:1},w=i.edge(f);a.setEdge(f.v,f.w,{weight:g.weight+w.weight,minlen:Math.max(g.minlen,w.minlen)})}),a}function Mjt(i){var a=new l1({multigraph:i.isMultigraph()}).setGraph(i.graph());return yr(i.nodes(),function(f){i.children(f).length||a.setNode(f,i.node(f))}),yr(i.edges(),function(f){a.setEdge(f,i.edge(f))}),a}function Ijt(i,a){var f=i.x,g=i.y,w=a.x-f,v=a.y-g,b=i.width/2,E=i.height/2;if(!w&&!v)throw new Error("Not possible to find intersection inside of the rectangle");var S,_;return Math.abs(v)*b>Math.abs(w)*E?(v<0&&(E=-E),S=E*w/v,_=E):(w<0&&(b=-b),S=b,_=b*v/w),{x:f+S,y:g+_}}function YY(i){var a=u1(M9(Njt(i)+1),function(){return[]});return yr(i.nodes(),function(f){var g=i.node(f),w=g.rank;Tf(w)||(a[w][g.order]=f)}),a}function rHe(i){var a=GF(u1(i.nodes(),function(f){return i.node(f).rank}));yr(i.nodes(),function(f){var g=i.node(f);lo(g,"rank")&&(g.rank-=a)})}function iHe(i){var a=GF(u1(i.nodes(),function(v){return i.node(v).rank})),f=[];yr(i.nodes(),function(v){var b=i.node(v).rank-a;f[b]||(f[b]=[]),f[b].push(v)});var g=0,w=i.graph().nodeRankFactor;yr(f,function(v,b){Tf(v)&&b%w!==0?--g:g&&yr(v,function(E){i.node(E).rank+=g})})}function Ojt(i,a,f,g){var w={width:0,height:0};return arguments.length>=4&&(w.rank=f,w.order=g),xD(i,"border",w,a)}function Njt(i){return D9(u1(i.nodes(),function(a){var f=i.node(a).rank;if(!Tf(f))return f}))}function sHe(i,a){var f={lhs:[],rhs:[]};return yr(i,function(g){a(g)?f.lhs.push(g):f.rhs.push(g)}),f}function aHe(i,a){var f=Ejt();try{return a()}finally{console.log(i+" time: "+(Ejt()-f)+"ms")}}function oHe(i,a){return a()}function cHe(i){function a(f){var g=i.children(f),w=i.node(f);if(g.length&&yr(g,a),lo(w,"minRank")){w.borderLeft=[],w.borderRight=[];for(var v=w.minRank,b=w.maxRank+1;vb.lim&&(E=b,S=!0);var _=Fx(a.edges(),function(M){return S===Gjt(i,i.node(M.v),E)&&S!==Gjt(i,i.node(M.w),E)});return mpt(_,function(M){return QF(a,M)})}function Ujt(i,a,f,g){var w=f.v,v=f.w;i.removeEdge(w,v),i.setEdge(g.v,g.w,{}),Spt(i),Cpt(i,a),EHe(i,a)}function EHe(i,a){var f=bpt(i.nodes(),function(w){return!a.node(w).parent}),g=xHe(i,f);g=g.slice(1),yr(g,function(w){var v=i.node(w).parent,b=a.edge(w,v),E=!1;b||(b=a.edge(v,w),E=!0),a.node(w).rank=a.node(v).rank+(E?b.minlen:-b.minlen)})}function THe(i,a,f){return i.hasEdge(a,f)}function Gjt(i,a,f){return f.low<=a.lim&&a.lim<=f.lim}function CHe(i){switch(i.graph().ranker){case"network-simplex":Kjt(i);break;case"tight-tree":_He(i);break;case"longest-path":SHe(i);break;default:Kjt(i)}}var SHe=Tpt;function _He(i){Tpt(i),Rjt(i)}function Kjt(i){O9(i)}function AHe(i){var a=xD(i,"root",{},"_root"),f=LHe(i),g=D9(Bx(f))-1,w=2*g+1;i.graph().nestingRoot=a,yr(i.edges(),function(b){i.edge(b).minlen*=w});var v=DHe(i)+1;yr(i.children(),function(b){Wjt(i,a,w,v,g,f,b)}),i.graph().nodeRankFactor=w}function Wjt(i,a,f,g,w,v,b){var E=i.children(b);if(!E.length){b!==a&&i.setEdge(a,b,{weight:0,minlen:f});return}var S=Ojt(i,"_bt"),_=Ojt(i,"_bb"),M=i.node(b);i.setParent(S,b),M.borderTop=S,i.setParent(_,b),M.borderBottom=_,yr(E,function(F){Wjt(i,a,f,g,w,v,F);var R=i.node(F),B=R.borderTop?R.borderTop:F,z=R.borderBottom?R.borderBottom:F,Y=R.borderTop?g:2*g,nt=B!==z?1:w-v[b]+1;i.setEdge(S,B,{weight:Y,minlen:nt,nestingEdge:!0}),i.setEdge(z,_,{weight:Y,minlen:nt,nestingEdge:!0})}),i.parent(b)||i.setEdge(a,S,{weight:0,minlen:w+v[b]})}function LHe(i){var a={};function f(g,w){var v=i.children(g);v&&v.length&&yr(v,function(b){f(b,w+1)}),a[g]=w}return yr(i.children(),function(g){f(g,1)}),a}function DHe(i){return WF(i.edges(),function(a,f){return a+i.edge(f).weight},0)}function MHe(i){var a=i.graph();i.removeNode(a.nestingRoot),delete a.nestingRoot,yr(i.edges(),function(f){var g=i.edge(f);g.nestingEdge&&i.removeEdge(f)})}function IHe(i,a,f){var g={},w;yr(f,function(v){for(var b=i.parent(v),E,S;b;){if(E=i.parent(b),E?(S=g[E],g[E]=b):(S=w,w=b),S&&S!==b){a.setEdge(S,b);return}b=E}})}function OHe(i,a,f){var g=NHe(i),w=new l1({compound:!0}).setGraph({root:g}).setDefaultNodeLabel(function(v){return i.node(v)});return yr(i.nodes(),function(v){var b=i.node(v),E=i.parent(v);(b.rank===a||b.minRank<=a&&a<=b.maxRank)&&(w.setNode(v),w.setParent(v,E||g),yr(i[f](v),function(S){var _=S.v===v?S.w:S.v,M=w.edge(_,v),F=Tf(M)?0:M.weight;w.setEdge(_,v,{weight:i.edge(S).weight+F})}),lo(b,"minRank")&&w.setNode(v,{borderLeft:b.borderLeft[a],borderRight:b.borderRight[a]}))}),w}function NHe(i){for(var a;i.hasNode(a=WY("_root")););return a}function PHe(i,a){for(var f=0,g=1;g0;)M%2&&(F+=E[M+1]),M=M-1>>1,E[M]+=_.weight;S+=_.weight*F})),S}function BHe(i){var a={},f=Fx(i.nodes(),function(E){return!i.children(E).length}),g=D9(u1(f,function(E){return i.node(E).rank})),w=u1(M9(g+1),function(){return[]});function v(E){if(!lo(a,E)){a[E]=!0;var S=i.node(E);w[S.rank].push(E),yr(i.successors(E),v)}}var b=YF(f,function(E){return i.node(E).rank});return yr(b,v),w}function RHe(i,a){return u1(a,function(f){var g=i.inEdges(f);if(g.length){var w=WF(g,function(v,b){var E=i.edge(b),S=i.node(b.v);return{sum:v.sum+E.weight*S.order,weight:v.weight+E.weight}},{sum:0,weight:0});return{v:f,barycenter:w.sum/w.weight,weight:w.weight}}else return{v:f}})}function jHe(i,a){var f={};yr(i,function(w,v){var b=f[w.v]={indegree:0,in:[],out:[],vs:[w.v],i:v};Tf(w.barycenter)||(b.barycenter=w.barycenter,b.weight=w.weight)}),yr(a.edges(),function(w){var v=f[w.v],b=f[w.w];!Tf(v)&&!Tf(b)&&(b.indegree++,v.out.push(f[w.w]))});var g=Fx(f,function(w){return!w.indegree});return $He(g)}function $He(i){var a=[];function f(v){return function(b){b.merged||(Tf(b.barycenter)||Tf(v.barycenter)||b.barycenter>=v.barycenter)&&zHe(v,b)}}function g(v){return function(b){b.in.push(v),--b.indegree===0&&i.push(b)}}for(;i.length;){var w=i.pop();a.push(w),yr(w.in.reverse(),f(w)),yr(w.out,g(w))}return u1(Fx(a,function(v){return!v.merged}),function(v){return KF(v,["vs","i","barycenter","weight"])})}function zHe(i,a){var f=0,g=0;i.weight&&(f+=i.barycenter*i.weight,g+=i.weight),a.weight&&(f+=a.barycenter*a.weight,g+=a.weight),i.vs=a.vs.concat(i.vs),i.barycenter=f/g,i.weight=g,i.i=Math.min(a.i,i.i),a.merged=!0}function qHe(i,a){var f=sHe(i,function(M){return lo(M,"barycenter")}),g=f.lhs,w=YF(f.rhs,function(M){return-M.i}),v=[],b=0,E=0,S=0;g.sort(HHe(!!a)),S=Yjt(v,w,S),yr(g,function(M){S+=M.vs.length,v.push(M.vs),b+=M.barycenter*M.weight,E+=M.weight,S=Yjt(v,w,S)});var _={vs:vD(v)};return E&&(_.barycenter=b/E,_.weight=E),_}function Yjt(i,a,f){for(var g;a.length&&(g=GY(a)).i<=f;)a.pop(),i.push(g.vs),f++;return f}function HHe(i){return function(a,f){return a.barycenterf.barycenter?1:i?f.i-a.i:a.i-f.i}}function Xjt(i,a,f,g){var w=i.children(a),v=i.node(a),b=v?v.borderLeft:void 0,E=v?v.borderRight:void 0,S={};b&&(w=Fx(w,function(z){return z!==b&&z!==E}));var _=RHe(i,w);yr(_,function(z){if(i.children(z.v).length){var Y=Xjt(i,z.v,f,g);S[z.v]=Y,lo(Y,"barycenter")&&UHe(z,Y)}});var M=jHe(_,f);VHe(M,S);var F=qHe(M,g);if(b&&(F.vs=vD([b,F.vs,E]),i.predecessors(b).length)){var R=i.node(i.predecessors(b)[0]),B=i.node(i.predecessors(E)[0]);lo(F,"barycenter")||(F.barycenter=0,F.weight=0),F.barycenter=(F.barycenter*F.weight+R.order+B.order)/(F.weight+2),F.weight+=2}return F}function VHe(i,a){yr(i,function(f){f.vs=vD(f.vs.map(function(g){return a[g]?a[g].vs:g}))})}function UHe(i,a){Tf(i.barycenter)?(i.barycenter=a.barycenter,i.weight=a.weight):(i.barycenter=(i.barycenter*i.weight+a.barycenter*a.weight)/(i.weight+a.weight),i.weight+=a.weight)}function GHe(i){var a=Njt(i),f=Qjt(i,M9(1,a+1),"inEdges"),g=Qjt(i,M9(a-1,-1,-1),"outEdges"),w=BHe(i);Jjt(i,w);for(var v=Number.POSITIVE_INFINITY,b,E=0,S=0;S<4;++E,++S){KHe(E%2?f:g,E%4>=2),w=YY(i);var _=PHe(i,w);_b||E>a[S].lim));for(_=S,S=g;(S=i.parent(S))!==_;)v.push(S);return{path:w.concat(v.reverse()),lca:_}}function XHe(i){var a={},f=0;function g(w){var v=f;yr(i.children(w),g),a[w]={low:v,lim:f++}}return yr(i.children(),g),a}function QHe(i,a){var f={};function g(w,v){var b=0,E=0,S=w.length,_=GY(v);return yr(v,function(M,F){var R=ZHe(i,M),B=R?i.node(R).order:S;(R||M===_)&&(yr(v.slice(E,F+1),function(z){yr(i.predecessors(z),function(Y){var nt=i.node(Y),ot=nt.order;(ot_)&&Zjt(f,R,M)})})}function w(v,b){var E=-1,S,_=0;return yr(b,function(M,F){if(i.node(M).dummy==="border"){var R=i.predecessors(M);R.length&&(S=i.node(R[0]).order,g(b,_,F,E,S),_=F,E=S)}g(b,_,b.length,S,v.length)}),b}return WF(a,w),f}function ZHe(i,a){if(i.node(a).dummy)return bpt(i.predecessors(a),function(f){return i.node(f).dummy})}function Zjt(i,a,f){if(a>f){var g=a;a=f,f=g}var w=i[a];w||(i[a]=w={}),w[f]=!0}function tVe(i,a,f){if(a>f){var g=a;a=f,f=g}return lo(i[a],f)}function eVe(i,a,f,g){var w={},v={},b={};return yr(a,function(E){yr(E,function(S,_){w[S]=S,v[S]=S,b[S]=_})}),yr(a,function(E){var S=-1;yr(E,function(_){var M=g(_);if(M.length){M=YF(M,function(Y){return b[Y]});for(var F=(M.length-1)/2,R=Math.floor(F),B=Math.ceil(F);R<=B;++R){var z=M[R];v[_]===_&&S0}function o4(i,a,f){var g=i.x,w=i.y,v=[],b=Number.POSITIVE_INFINITY,E=Number.POSITIVE_INFINITY;a.forEach(function(z){b=Math.min(b,z.x),E=Math.min(E,z.y)});for(var S=g-i.width/2-b,_=w-i.height/2-E,M=0;M1&&v.sort(function(z,Y){var nt=z.x-f.x,ot=z.y-f.y,ft=Math.sqrt(nt*nt+ot*ot),wt=Y.x-f.x,mt=Y.y-f.y,ct=Math.sqrt(wt*wt+mt*mt);return ftMath.abs(w)*E?(v<0&&(E=-E),S=v===0?0:E*w/v,_=E):(w<0&&(b=-b),S=b,_=w===0?0:b*v/w),{x:f+S,y:g+_}}var Rpt={rect:iUe,ellipse:sUe,circle:aUe,diamond:oUe};function rUe(i){Rpt=i}function iUe(i,a,f){var g=i.insert("rect",":first-child").attr("rx",f.rx).attr("ry",f.ry).attr("x",-a.width/2).attr("y",-a.height/2).attr("width",a.width).attr("height",a.height);return f.intersect=function(w){return Bpt(f,w)},g}function sUe(i,a,f){var g=a.width/2,w=a.height/2,v=i.insert("ellipse",":first-child").attr("x",-a.width/2).attr("y",-a.height/2).attr("rx",g).attr("ry",w);return f.intersect=function(b){return s$t(f,g,w,b)},v}function aUe(i,a,f){var g=Math.max(a.width,a.height)/2,w=i.insert("circle",":first-child").attr("x",-a.width/2).attr("y",-a.height/2).attr("r",g);return f.intersect=function(v){return eUe(f,g,v)},w}function oUe(i,a,f){var g=a.width*Math.SQRT2/2,w=a.height*Math.SQRT2/2,v=[{x:0,y:-w},{x:-g,y:0},{x:0,y:w},{x:g,y:0}],b=i.insert("polygon",":first-child").attr("points",v.map(function(E){return E.x+","+E.y}).join(" "));return f.intersect=function(E){return o4(f,v,E)},b}function cUe(){var i=function(a,f){hUe(f);var g=JF(a,"output"),w=JF(g,"clusters"),v=JF(g,"edgePaths"),b=Npt(JF(g,"edgeLabels"),f),E=Fpt(JF(g,"nodes"),f,Rpt);kD(f),tUe(E,f),ZVe(b,f),Ppt(v,f,Dpt);var S=Opt(w,f);JVe(S,f),fUe(f)};return i.createNodes=function(a){return arguments.length?(QVe(a),i):Fpt},i.createClusters=function(a){return arguments.length?(HVe(a),i):Opt},i.createEdgeLabels=function(a){return arguments.length?(VVe(a),i):Npt},i.createEdgePaths=function(a){return arguments.length?(UVe(a),i):Ppt},i.shapes=function(a){return arguments.length?(rUe(a),i):Rpt},i.arrows=function(a){return arguments.length?(FVe(a),i):Dpt},i}var uUe={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:"rect"},lUe={arrowhead:"normal",curve:Kg};function hUe(i){i.nodes().forEach(function(a){var f=i.node(a);!lo(f,"label")&&!i.children(a).length&&(f.label=a),lo(f,"paddingX")&&yD(f,{paddingLeft:f.paddingX,paddingRight:f.paddingX}),lo(f,"paddingY")&&yD(f,{paddingTop:f.paddingY,paddingBottom:f.paddingY}),lo(f,"padding")&&yD(f,{paddingLeft:f.padding,paddingRight:f.padding,paddingTop:f.padding,paddingBottom:f.padding}),yD(f,uUe),yr(["paddingLeft","paddingRight","paddingTop","paddingBottom"],function(g){f[g]=Number(f[g])}),lo(f,"width")&&(f._prevWidth=f.width),lo(f,"height")&&(f._prevHeight=f.height)}),i.edges().forEach(function(a){var f=i.edge(a);lo(f,"label")||(f.label=""),yD(f,lUe)})}function fUe(i){yr(i.nodes(),function(a){var f=i.node(a);lo(f,"_prevWidth")?f.width=f._prevWidth:delete f.width,lo(f,"_prevHeight")?f.height=f._prevHeight:delete f.height,delete f._prevWidth,delete f._prevHeight})}function JF(i,a){var f=i.select("g."+a);return f.empty()&&(f=i.append("g").attr("class",a)),f}function o$t(i,a,f){const g=a.width,w=a.height,v=(g+w)*.9,b=[{x:v/2,y:0},{x:v,y:-v/2},{x:v/2,y:-v},{x:0,y:-v/2}],E=Rx(i,v,v,b);return f.intersect=function(S){return o4(f,b,S)},E}function c$t(i,a,f){const w=a.height,v=w/4,b=a.width+2*v,E=[{x:v,y:0},{x:b-v,y:0},{x:b,y:-w/2},{x:b-v,y:-w},{x:v,y:-w},{x:0,y:-w/2}],S=Rx(i,b,w,E);return f.intersect=function(_){return o4(f,E,_)},S}function u$t(i,a,f){const g=a.width,w=a.height,v=[{x:-w/2,y:0},{x:g,y:0},{x:g,y:-w},{x:-w/2,y:-w},{x:0,y:-w/2}],b=Rx(i,g,w,v);return f.intersect=function(E){return o4(f,v,E)},b}function l$t(i,a,f){const g=a.width,w=a.height,v=[{x:-2*w/6,y:0},{x:g-w/6,y:0},{x:g+2*w/6,y:-w},{x:w/6,y:-w}],b=Rx(i,g,w,v);return f.intersect=function(E){return o4(f,v,E)},b}function h$t(i,a,f){const g=a.width,w=a.height,v=[{x:2*w/6,y:0},{x:g+w/6,y:0},{x:g-2*w/6,y:-w},{x:-w/6,y:-w}],b=Rx(i,g,w,v);return f.intersect=function(E){return o4(f,v,E)},b}function f$t(i,a,f){const g=a.width,w=a.height,v=[{x:-2*w/6,y:0},{x:g+2*w/6,y:0},{x:g-w/6,y:-w},{x:w/6,y:-w}],b=Rx(i,g,w,v);return f.intersect=function(E){return o4(f,v,E)},b}function d$t(i,a,f){const g=a.width,w=a.height,v=[{x:w/6,y:0},{x:g-w/6,y:0},{x:g+2*w/6,y:-w},{x:-2*w/6,y:-w}],b=Rx(i,g,w,v);return f.intersect=function(E){return o4(f,v,E)},b}function g$t(i,a,f){const g=a.width,w=a.height,v=[{x:0,y:0},{x:g+w/2,y:0},{x:g,y:-w/2},{x:g+w/2,y:-w},{x:0,y:-w}],b=Rx(i,g,w,v);return f.intersect=function(E){return o4(f,v,E)},b}function p$t(i,a,f){const g=a.height,w=a.width+g/4,v=i.insert("rect",":first-child").attr("rx",g/2).attr("ry",g/2).attr("x",-w/2).attr("y",-g/2).attr("width",w).attr("height",g);return f.intersect=function(b){return Bpt(f,b)},v}function b$t(i,a,f){const g=a.width,w=a.height,v=[{x:0,y:0},{x:g,y:0},{x:g,y:-w},{x:0,y:-w},{x:0,y:0},{x:-8,y:0},{x:g+8,y:0},{x:g+8,y:-w},{x:-8,y:-w},{x:-8,y:0}],b=Rx(i,g,w,v);return f.intersect=function(E){return o4(f,v,E)},b}function w$t(i,a,f){const g=a.width,w=g/2,v=w/(2.5+g/50),b=a.height+v,E="M 0,"+v+" a "+w+","+v+" 0,0,0 "+g+" 0 a "+w+","+v+" 0,0,0 "+-g+" 0 l 0,"+b+" a "+w+","+v+" 0,0,0 "+g+" 0 l 0,"+-b,S=i.attr("label-offset-y",v).insert("path",":first-child").attr("d",E).attr("transform","translate("+-g/2+","+-(b/2+v)+")");return f.intersect=function(_){const M=Bpt(f,_),F=M.x-f.x;if(w!=0&&(Math.abs(F)f.height/2-v)){let R=v*v*(1-F*F/(w*w));R!=0&&(R=Math.sqrt(R)),R=v-R,_.y-f.y>0&&(R=-R),M.y+=R}return M},S}function dUe(i){i.shapes().question=o$t,i.shapes().hexagon=c$t,i.shapes().stadium=p$t,i.shapes().subroutine=b$t,i.shapes().cylinder=w$t,i.shapes().rect_left_inv_arrow=u$t,i.shapes().lean_right=l$t,i.shapes().lean_left=h$t,i.shapes().trapezoid=f$t,i.shapes().inv_trapezoid=d$t,i.shapes().rect_right_inv_arrow=g$t}function gUe(i){i({question:o$t}),i({hexagon:c$t}),i({stadium:p$t}),i({subroutine:b$t}),i({cylinder:w$t}),i({rect_left_inv_arrow:u$t}),i({lean_right:l$t}),i({lean_left:h$t}),i({trapezoid:f$t}),i({inv_trapezoid:d$t}),i({rect_right_inv_arrow:g$t})}function Rx(i,a,f,g){return i.insert("polygon",":first-child").attr("points",g.map(function(w){return w.x+","+w.y}).join(" ")).attr("transform","translate("+-a/2+","+f/2+")")}const pUe={addToRender:dUe,addToRenderV2:gUe},m$t={},bUe=function(i){const a=Object.keys(i);for(const f of a)m$t[f]=i[f]},v$t=function(i,a,f,g,w,v){const b=g?g.select(`[id="${f}"]`):Tr(`[id="${f}"]`),E=w||document;Object.keys(i).forEach(function(_){const M=i[_];let F="default";M.classes.length>0&&(F=M.classes.join(" "));const R=C2(M.styles);let B=M.text!==void 0?M.text:M.id,z;if(j1(Re().flowchart.htmlLabels)){const ot={label:B.replace(/fa[blrs]?:fa-[\w-]+/g,ft=>``)};z=Mpt(b,ot).node(),z.parentNode.removeChild(z)}else{const ot=E.createElementNS("http://www.w3.org/2000/svg","text");ot.setAttribute("style",R.labelStyle.replace("color:","fill:"));const ft=B.split(ei.lineBreakRegex);for(const wt of ft){const mt=E.createElementNS("http://www.w3.org/2000/svg","tspan");mt.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),mt.setAttribute("dy","1em"),mt.setAttribute("x","1"),mt.textContent=wt,ot.appendChild(mt)}z=ot}let Y=0,nt="";switch(M.type){case"round":Y=5,nt="rect";break;case"square":nt="rect";break;case"diamond":nt="question";break;case"hexagon":nt="hexagon";break;case"odd":nt="rect_left_inv_arrow";break;case"lean_right":nt="lean_right";break;case"lean_left":nt="lean_left";break;case"trapezoid":nt="trapezoid";break;case"inv_trapezoid":nt="inv_trapezoid";break;case"odd_right":nt="rect_left_inv_arrow";break;case"circle":nt="circle";break;case"ellipse":nt="ellipse";break;case"stadium":nt="stadium";break;case"subroutine":nt="subroutine";break;case"cylinder":nt="cylinder";break;case"group":nt="rect";break;default:nt="rect"}Kt.warn("Adding node",M.id,M.domId),a.setNode(v.db.lookUpDomId(M.id),{labelType:"svg",labelStyle:R.labelStyle,shape:nt,label:z,rx:Y,ry:Y,class:F,style:R.style,id:v.db.lookUpDomId(M.id)})})},y$t=function(i,a,f){let g=0,w,v;if(i.defaultStyle!==void 0){const b=C2(i.defaultStyle);w=b.style,v=b.labelStyle}i.forEach(function(b){g++;const E="L-"+b.start+"-"+b.end,S="LS-"+b.start,_="LE-"+b.end,M={};b.type==="arrow_open"?M.arrowhead="none":M.arrowhead="normal";let F="",R="";if(b.style!==void 0){const B=C2(b.style);F=B.style,R=B.labelStyle}else switch(b.stroke){case"normal":F="fill:none",w!==void 0&&(F=w),v!==void 0&&(R=v);break;case"dotted":F="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":F=" stroke-width: 3.5px;fill:none";break}M.style=F,M.labelStyle=R,b.interpolate!==void 0?M.curve=Xw(b.interpolate,Kg):i.defaultInterpolate!==void 0?M.curve=Xw(i.defaultInterpolate,Kg):M.curve=Xw(m$t.curve,Kg),b.text===void 0?b.style!==void 0&&(M.arrowheadStyle="fill: #333"):(M.arrowheadStyle="fill: #333",M.labelpos="c",j1(Re().flowchart.htmlLabels)?(M.labelType="html",M.label=`${b.text.replace(/fa[blrs]?:fa-[\w-]+/g,B=>``)}`):(M.labelType="text",M.label=b.text.replace(ei.lineBreakRegex,` +`),b.style===void 0&&(M.style=M.style||"stroke: #333; stroke-width: 1.5px;fill:none"),M.labelStyle=M.labelStyle.replace("color:","fill:"))),M.id=E,M.class=S+" "+_,M.minlen=b.length||1,a.setEdge(f.db.lookUpDomId(b.start),f.db.lookUpDomId(b.end),M,g)})},wUe={setConf:bUe,addVertices:v$t,addEdges:y$t,getClasses:function(i,a){return Kt.info("Extracting classes"),a.db.getClasses()},draw:function(i,a,f,g){Kt.info("Drawing flowchart");const{securityLevel:w,flowchart:v}=Re();let b;w==="sandbox"&&(b=Tr("#i"+a));const E=Tr(w==="sandbox"?b.nodes()[0].contentDocument.body:"body"),S=w==="sandbox"?b.nodes()[0].contentDocument:document;let _=g.db.getDirection();_===void 0&&(_="TD");const M=v.nodeSpacing||50,F=v.rankSpacing||50,R=new l1({multigraph:!0,compound:!0}).setGraph({rankdir:_,nodesep:M,ranksep:F,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});let B;const z=g.db.getSubGraphs();for(let rt=z.length-1;rt>=0;rt--)B=z[rt],g.db.addVertex(B.id,B.title,"group",void 0,B.classes);const Y=g.db.getVertices();Kt.warn("Get vertices",Y);const nt=g.db.getEdges();let ot=0;for(ot=z.length-1;ot>=0;ot--){B=z[ot],$Ot("cluster").append("text");for(let rt=0;rt{a.forEach(w=>{xUe[w](i,f,g)})},xUe={extension:(i,a,f)=>{Kt.trace("Making markers for ",f),i.append("defs").append("marker").attr("id",f+"_"+a+"-extensionStart").attr("class","marker extension "+a).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),i.append("defs").append("marker").attr("id",f+"_"+a+"-extensionEnd").attr("class","marker extension "+a).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},composition:(i,a,f)=>{i.append("defs").append("marker").attr("id",f+"_"+a+"-compositionStart").attr("class","marker composition "+a).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id",f+"_"+a+"-compositionEnd").attr("class","marker composition "+a).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},aggregation:(i,a,f)=>{i.append("defs").append("marker").attr("id",f+"_"+a+"-aggregationStart").attr("class","marker aggregation "+a).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id",f+"_"+a+"-aggregationEnd").attr("class","marker aggregation "+a).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},dependency:(i,a,f)=>{i.append("defs").append("marker").attr("id",f+"_"+a+"-dependencyStart").attr("class","marker dependency "+a).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id",f+"_"+a+"-dependencyEnd").attr("class","marker dependency "+a).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},lollipop:(i,a,f)=>{i.append("defs").append("marker").attr("id",f+"_"+a+"-lollipopStart").attr("class","marker lollipop "+a).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),i.append("defs").append("marker").attr("id",f+"_"+a+"-lollipopEnd").attr("class","marker lollipop "+a).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},point:(i,a,f)=>{i.append("marker").attr("id",f+"_"+a+"-pointEnd").attr("class","marker "+a).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),i.append("marker").attr("id",f+"_"+a+"-pointStart").attr("class","marker "+a).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},circle:(i,a,f)=>{i.append("marker").attr("id",f+"_"+a+"-circleEnd").attr("class","marker "+a).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),i.append("marker").attr("id",f+"_"+a+"-circleStart").attr("class","marker "+a).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},cross:(i,a,f)=>{i.append("marker").attr("id",f+"_"+a+"-crossEnd").attr("class","marker cross "+a).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),i.append("marker").attr("id",f+"_"+a+"-crossStart").attr("class","marker cross "+a).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},barb:(i,a,f)=>{i.append("defs").append("marker").attr("id",f+"_"+a+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")}},jpt=yUe;function kUe(i,a){a&&i.attr("style",a)}function EUe(i){const a=Tr(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),f=a.append("xhtml:div"),g=i.label,w=i.isNode?"nodeLabel":"edgeLabel";return f.html('"+g+""),kUe(f,i.labelStyle),f.style("display","inline-block"),f.style("white-space","nowrap"),f.attr("xmlns","http://www.w3.org/1999/xhtml"),a.node()}const ab=(i,a,f,g)=>{let w=i||"";if(typeof w=="object"&&(w=w[0]),j1(Re().flowchart.htmlLabels)){w=w.replace(/\\n|\n/g,"
"),Kt.debug("vertexText"+w);const v={isNode:g,label:IF(w).replace(/fa[blrs]?:fa-[\w-]+/g,E=>``),labelStyle:a.replace("fill:","color:")};return EUe(v)}else{const v=document.createElementNS("http://www.w3.org/2000/svg","text");v.setAttribute("style",a.replace("color:","fill:"));let b=[];typeof w=="string"?b=w.split(/\\n|\n|/gi):Array.isArray(w)?b=w:b=[];for(const E of b){const S=document.createElementNS("http://www.w3.org/2000/svg","tspan");S.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),S.setAttribute("dy","1em"),S.setAttribute("x","0"),f?S.setAttribute("class","title-row"):S.setAttribute("class","row"),S.textContent=E.trim(),v.appendChild(S)}return v}},TUe={};function CUe(i,a){const f=a||TUe,g=typeof f.includeImageAlt=="boolean"?f.includeImageAlt:!0,w=typeof f.includeHtml=="boolean"?f.includeHtml:!0;return x$t(i,g,w)}function x$t(i,a,f){if(SUe(i)){if("value"in i)return i.type==="html"&&!f?"":i.value;if(a&&"alt"in i&&i.alt)return i.alt;if("children"in i)return k$t(i.children,a,f)}return Array.isArray(i)?k$t(i,a,f):""}function k$t(i,a,f){const g=[];let w=-1;for(;++ww?0:w+a:a=a>w?w:a,f=f>0?f:0,g.length<1e4)b=Array.from(g),b.unshift(a,f),i.splice(...b);else for(f&&i.splice(a,f);v0?(c4(i,i.length,0,a),i):a}const E$t={}.hasOwnProperty;function _Ue(i){const a={};let f=-1;for(;++fb))return;const it=a.events.length;let gt=it,Q,dt;for(;gt--;)if(a.events[gt][0]==="exit"&&a.events[gt][1].type==="chunkFlow"){if(Q){dt=a.events[gt][1].end;break}Q=!0}for(ot(g),rt=it;rtwt;){const ct=f[mt];a.containerState=ct[1],ct[0].exit.call(a,i)}f.length=wt}function ft(){w.write([null]),v=void 0,w=void 0,a.containerState._closeFlow=void 0}}function $Ue(i,a,f){return Cl(i,i.attempt(this.parser.constructs.document,a,f),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function C$t(i){if(i===null||ob(i)||PUe(i))return 1;if(NUe(i))return 2}function qpt(i,a,f){const g=[];let w=-1;for(;++w1&&i[f][1].end.offset-i[f][1].start.offset>1?2:1;const F=Object.assign({},i[g][1].end),R=Object.assign({},i[f][1].start);S$t(F,-S),S$t(R,S),b={type:S>1?"strongSequence":"emphasisSequence",start:F,end:Object.assign({},i[g][1].end)},E={type:S>1?"strongSequence":"emphasisSequence",start:Object.assign({},i[f][1].start),end:R},v={type:S>1?"strongText":"emphasisText",start:Object.assign({},i[g][1].end),end:Object.assign({},i[f][1].start)},w={type:S>1?"strong":"emphasis",start:Object.assign({},b.start),end:Object.assign({},E.end)},i[g][1].end=Object.assign({},b.start),i[f][1].start=Object.assign({},E.end),_=[],i[g][1].end.offset-i[g][1].start.offset&&(_=tm(_,[["enter",i[g][1],a],["exit",i[g][1],a]])),_=tm(_,[["enter",w,a],["enter",b,a],["exit",b,a],["enter",v,a]]),_=tm(_,qpt(a.parser.constructs.insideSpan.null,i.slice(g+1,f),a)),_=tm(_,[["exit",v,a],["enter",E,a],["exit",E,a],["exit",w,a]]),i[f][1].end.offset-i[f][1].start.offset?(M=2,_=tm(_,[["enter",i[f][1],a],["exit",i[f][1],a]])):M=0,c4(i,g-1,f-g+3,_),f=g+_.length-M-2;break}}for(f=-1;++f0&&du(rt)?Cl(i,ft,"linePrefix",v+1)(rt):ft(rt)}function ft(rt){return rt===null||$a(rt)?i.check(M$t,Y,mt)(rt):(i.enter("codeFlowValue"),wt(rt))}function wt(rt){return rt===null||$a(rt)?(i.exit("codeFlowValue"),ft(rt)):(i.consume(rt),wt)}function mt(rt){return i.exit("codeFenced"),a(rt)}function ct(rt,it,gt){let Q=0;return dt;function dt(It){return rt.enter("lineEnding"),rt.consume(It),rt.exit("lineEnding"),K}function K(It){return rt.enter("codeFencedFence"),du(It)?Cl(rt,yt,"linePrefix",g.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(It):yt(It)}function yt(It){return It===E?(rt.enter("codeFencedFenceSequence"),V(It)):gt(It)}function V(It){return It===E?(Q++,rt.consume(It),V):Q>=b?(rt.exit("codeFencedFenceSequence"),du(It)?Cl(rt,Ot,"whitespace")(It):Ot(It)):gt(It)}function Ot(It){return It===null||$a(It)?(rt.exit("codeFencedFence"),it(It)):gt(It)}}}function JUe(i,a,f){const g=this;return w;function w(b){return b===null?f(b):(i.enter("lineEnding"),i.consume(b),i.exit("lineEnding"),v)}function v(b){return g.parser.lazy[g.now().line]?f(b):a(b)}}const Upt={name:"codeIndented",tokenize:tGe},ZUe={tokenize:eGe,partial:!0};function tGe(i,a,f){const g=this;return w;function w(_){return i.enter("codeIndented"),Cl(i,v,"linePrefix",4+1)(_)}function v(_){const M=g.events[g.events.length-1];return M&&M[1].type==="linePrefix"&&M[2].sliceSerialize(M[1],!0).length>=4?b(_):f(_)}function b(_){return _===null?S(_):$a(_)?i.attempt(ZUe,b,S)(_):(i.enter("codeFlowValue"),E(_))}function E(_){return _===null||$a(_)?(i.exit("codeFlowValue"),b(_)):(i.consume(_),E)}function S(_){return i.exit("codeIndented"),a(_)}}function eGe(i,a,f){const g=this;return w;function w(b){return g.parser.lazy[g.now().line]?f(b):$a(b)?(i.enter("lineEnding"),i.consume(b),i.exit("lineEnding"),w):Cl(i,v,"linePrefix",4+1)(b)}function v(b){const E=g.events[g.events.length-1];return E&&E[1].type==="linePrefix"&&E[2].sliceSerialize(E[1],!0).length>=4?a(b):$a(b)?w(b):f(b)}}const nGe={name:"codeText",tokenize:sGe,resolve:rGe,previous:iGe};function rGe(i){let a=i.length-4,f=3,g,w;if((i[f][1].type==="lineEnding"||i[f][1].type==="space")&&(i[a][1].type==="lineEnding"||i[a][1].type==="space")){for(g=f;++g=4?a(b):i.interrupt(g.parser.constructs.flow,f,a)(b)}}function N$t(i,a,f,g,w,v,b,E,S){const _=S||Number.POSITIVE_INFINITY;let M=0;return F;function F(ot){return ot===60?(i.enter(g),i.enter(w),i.enter(v),i.consume(ot),i.exit(v),R):ot===null||ot===32||ot===41||$pt(ot)?f(ot):(i.enter(g),i.enter(b),i.enter(E),i.enter("chunkString",{contentType:"string"}),Y(ot))}function R(ot){return ot===62?(i.enter(v),i.consume(ot),i.exit(v),i.exit(w),i.exit(g),a):(i.enter(E),i.enter("chunkString",{contentType:"string"}),B(ot))}function B(ot){return ot===62?(i.exit("chunkString"),i.exit(E),R(ot)):ot===null||ot===60||$a(ot)?f(ot):(i.consume(ot),ot===92?z:B)}function z(ot){return ot===60||ot===62||ot===92?(i.consume(ot),B):B(ot)}function Y(ot){return!M&&(ot===null||ot===41||ob(ot))?(i.exit("chunkString"),i.exit(E),i.exit(b),i.exit(g),a(ot)):M<_&&ot===40?(i.consume(ot),M++,Y):ot===41?(i.consume(ot),M--,Y):ot===null||ot===32||ot===40||$pt(ot)?f(ot):(i.consume(ot),ot===92?nt:Y)}function nt(ot){return ot===40||ot===41||ot===92?(i.consume(ot),Y):Y(ot)}}function P$t(i,a,f,g,w,v){const b=this;let E=0,S;return _;function _(B){return i.enter(g),i.enter(w),i.consume(B),i.exit(w),i.enter(v),M}function M(B){return E>999||B===null||B===91||B===93&&!S||B===94&&!E&&"_hiddenFootnoteSupport"in b.parser.constructs?f(B):B===93?(i.exit(v),i.enter(w),i.consume(B),i.exit(w),i.exit(g),a):$a(B)?(i.enter("lineEnding"),i.consume(B),i.exit("lineEnding"),M):(i.enter("chunkString",{contentType:"string"}),F(B))}function F(B){return B===null||B===91||B===93||$a(B)||E++>999?(i.exit("chunkString"),M(B)):(i.consume(B),S||(S=!du(B)),B===92?R:F)}function R(B){return B===91||B===92||B===93?(i.consume(B),E++,F):F(B)}}function F$t(i,a,f,g,w,v){let b;return E;function E(R){return R===34||R===39||R===40?(i.enter(g),i.enter(w),i.consume(R),i.exit(w),b=R===40?41:R,S):f(R)}function S(R){return R===b?(i.enter(w),i.consume(R),i.exit(w),i.exit(g),a):(i.enter(v),_(R))}function _(R){return R===b?(i.exit(v),S(b)):R===null?f(R):$a(R)?(i.enter("lineEnding"),i.consume(R),i.exit("lineEnding"),Cl(i,_,"linePrefix")):(i.enter("chunkString",{contentType:"string"}),M(R))}function M(R){return R===b||R===null||$a(R)?(i.exit("chunkString"),_(R)):(i.consume(R),R===92?F:M)}function F(R){return R===b||R===92?(i.consume(R),M):M(R)}}function ZF(i,a){let f;return g;function g(w){return $a(w)?(i.enter("lineEnding"),i.consume(w),i.exit("lineEnding"),f=!0,g):du(w)?Cl(i,g,f?"linePrefix":"lineSuffix")(w):a(w)}}function ED(i){return i.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const fGe={name:"definition",tokenize:gGe},dGe={tokenize:pGe,partial:!0};function gGe(i,a,f){const g=this;let w;return v;function v(B){return i.enter("definition"),b(B)}function b(B){return P$t.call(g,i,E,f,"definitionLabel","definitionLabelMarker","definitionLabelString")(B)}function E(B){return w=ED(g.sliceSerialize(g.events[g.events.length-1][1]).slice(1,-1)),B===58?(i.enter("definitionMarker"),i.consume(B),i.exit("definitionMarker"),S):f(B)}function S(B){return ob(B)?ZF(i,_)(B):_(B)}function _(B){return N$t(i,M,f,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(B)}function M(B){return i.attempt(dGe,F,F)(B)}function F(B){return du(B)?Cl(i,R,"whitespace")(B):R(B)}function R(B){return B===null||$a(B)?(i.exit("definition"),g.parser.defined.push(w),a(B)):f(B)}}function pGe(i,a,f){return g;function g(E){return ob(E)?ZF(i,w)(E):f(E)}function w(E){return F$t(i,v,f,"definitionTitle","definitionTitleMarker","definitionTitleString")(E)}function v(E){return du(E)?Cl(i,b,"whitespace")(E):b(E)}function b(E){return E===null||$a(E)?a(E):f(E)}}const bGe={name:"hardBreakEscape",tokenize:wGe};function wGe(i,a,f){return g;function g(v){return i.enter("hardBreakEscape"),i.consume(v),w}function w(v){return $a(v)?(i.exit("hardBreakEscape"),a(v)):f(v)}}const mGe={name:"headingAtx",tokenize:yGe,resolve:vGe};function vGe(i,a){let f=i.length-2,g=3,w,v;return i[g][1].type==="whitespace"&&(g+=2),f-2>g&&i[f][1].type==="whitespace"&&(f-=2),i[f][1].type==="atxHeadingSequence"&&(g===f-1||f-4>g&&i[f-2][1].type==="whitespace")&&(f-=g+1===f?2:4),f>g&&(w={type:"atxHeadingText",start:i[g][1].start,end:i[f][1].end},v={type:"chunkText",start:i[g][1].start,end:i[f][1].end,contentType:"text"},c4(i,g,f-g+1,[["enter",w,a],["enter",v,a],["exit",v,a],["exit",w,a]])),i}function yGe(i,a,f){let g=0;return w;function w(M){return i.enter("atxHeading"),v(M)}function v(M){return i.enter("atxHeadingSequence"),b(M)}function b(M){return M===35&&g++<6?(i.consume(M),b):M===null||ob(M)?(i.exit("atxHeadingSequence"),E(M)):f(M)}function E(M){return M===35?(i.enter("atxHeadingSequence"),S(M)):M===null||$a(M)?(i.exit("atxHeading"),a(M)):du(M)?Cl(i,E,"whitespace")(M):(i.enter("atxHeadingText"),_(M))}function S(M){return M===35?(i.consume(M),S):(i.exit("atxHeadingSequence"),E(M))}function _(M){return M===null||M===35||ob(M)?(i.exit("atxHeadingText"),E(M)):(i.consume(M),_)}}const xGe=["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","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],B$t=["pre","script","style","textarea"],kGe={name:"htmlFlow",tokenize:SGe,resolveTo:CGe,concrete:!0},EGe={tokenize:AGe,partial:!0},TGe={tokenize:_Ge,partial:!0};function CGe(i){let a=i.length;for(;a--&&!(i[a][0]==="enter"&&i[a][1].type==="htmlFlow"););return a>1&&i[a-2][1].type==="linePrefix"&&(i[a][1].start=i[a-2][1].start,i[a+1][1].start=i[a-2][1].start,i.splice(a-2,2)),i}function SGe(i,a,f){const g=this;let w,v,b,E,S;return _;function _(Mt){return M(Mt)}function M(Mt){return i.enter("htmlFlow"),i.enter("htmlFlowData"),i.consume(Mt),F}function F(Mt){return Mt===33?(i.consume(Mt),R):Mt===47?(i.consume(Mt),v=!0,Y):Mt===63?(i.consume(Mt),w=3,g.interrupt?a:kt):u4(Mt)?(i.consume(Mt),b=String.fromCharCode(Mt),nt):f(Mt)}function R(Mt){return Mt===45?(i.consume(Mt),w=2,B):Mt===91?(i.consume(Mt),w=5,E=0,z):u4(Mt)?(i.consume(Mt),w=4,g.interrupt?a:kt):f(Mt)}function B(Mt){return Mt===45?(i.consume(Mt),g.interrupt?a:kt):f(Mt)}function z(Mt){const pn="CDATA[";return Mt===pn.charCodeAt(E++)?(i.consume(Mt),E===pn.length?g.interrupt?a:yt:z):f(Mt)}function Y(Mt){return u4(Mt)?(i.consume(Mt),b=String.fromCharCode(Mt),nt):f(Mt)}function nt(Mt){if(Mt===null||Mt===47||Mt===62||ob(Mt)){const pn=Mt===47,Ae=b.toLowerCase();return!pn&&!v&&B$t.includes(Ae)?(w=1,g.interrupt?a(Mt):yt(Mt)):xGe.includes(b.toLowerCase())?(w=6,pn?(i.consume(Mt),ot):g.interrupt?a(Mt):yt(Mt)):(w=7,g.interrupt&&!g.parser.lazy[g.now().line]?f(Mt):v?ft(Mt):wt(Mt))}return Mt===45||Zv(Mt)?(i.consume(Mt),b+=String.fromCharCode(Mt),nt):f(Mt)}function ot(Mt){return Mt===62?(i.consume(Mt),g.interrupt?a:yt):f(Mt)}function ft(Mt){return du(Mt)?(i.consume(Mt),ft):dt(Mt)}function wt(Mt){return Mt===47?(i.consume(Mt),dt):Mt===58||Mt===95||u4(Mt)?(i.consume(Mt),mt):du(Mt)?(i.consume(Mt),wt):dt(Mt)}function mt(Mt){return Mt===45||Mt===46||Mt===58||Mt===95||Zv(Mt)?(i.consume(Mt),mt):ct(Mt)}function ct(Mt){return Mt===61?(i.consume(Mt),rt):du(Mt)?(i.consume(Mt),ct):wt(Mt)}function rt(Mt){return Mt===null||Mt===60||Mt===61||Mt===62||Mt===96?f(Mt):Mt===34||Mt===39?(i.consume(Mt),S=Mt,it):du(Mt)?(i.consume(Mt),rt):gt(Mt)}function it(Mt){return Mt===S?(i.consume(Mt),S=null,Q):Mt===null||$a(Mt)?f(Mt):(i.consume(Mt),it)}function gt(Mt){return Mt===null||Mt===34||Mt===39||Mt===47||Mt===60||Mt===61||Mt===62||Mt===96||ob(Mt)?ct(Mt):(i.consume(Mt),gt)}function Q(Mt){return Mt===47||Mt===62||du(Mt)?wt(Mt):f(Mt)}function dt(Mt){return Mt===62?(i.consume(Mt),K):f(Mt)}function K(Mt){return Mt===null||$a(Mt)?yt(Mt):du(Mt)?(i.consume(Mt),K):f(Mt)}function yt(Mt){return Mt===45&&w===2?(i.consume(Mt),jt):Mt===60&&w===1?(i.consume(Mt),xt):Mt===62&&w===4?(i.consume(Mt),Gt):Mt===63&&w===3?(i.consume(Mt),kt):Mt===93&&w===5?(i.consume(Mt),Ct):$a(Mt)&&(w===6||w===7)?(i.exit("htmlFlowData"),i.check(EGe,Fe,V)(Mt)):Mt===null||$a(Mt)?(i.exit("htmlFlowData"),V(Mt)):(i.consume(Mt),yt)}function V(Mt){return i.check(TGe,Ot,Fe)(Mt)}function Ot(Mt){return i.enter("lineEnding"),i.consume(Mt),i.exit("lineEnding"),It}function It(Mt){return Mt===null||$a(Mt)?V(Mt):(i.enter("htmlFlowData"),yt(Mt))}function jt(Mt){return Mt===45?(i.consume(Mt),kt):yt(Mt)}function xt(Mt){return Mt===47?(i.consume(Mt),b="",Ft):yt(Mt)}function Ft(Mt){if(Mt===62){const pn=b.toLowerCase();return B$t.includes(pn)?(i.consume(Mt),Gt):yt(Mt)}return u4(Mt)&&b.length<8?(i.consume(Mt),b+=String.fromCharCode(Mt),Ft):yt(Mt)}function Ct(Mt){return Mt===93?(i.consume(Mt),kt):yt(Mt)}function kt(Mt){return Mt===62?(i.consume(Mt),Gt):Mt===45&&w===2?(i.consume(Mt),kt):yt(Mt)}function Gt(Mt){return Mt===null||$a(Mt)?(i.exit("htmlFlowData"),Fe(Mt)):(i.consume(Mt),Gt)}function Fe(Mt){return i.exit("htmlFlow"),a(Mt)}}function _Ge(i,a,f){const g=this;return w;function w(b){return $a(b)?(i.enter("lineEnding"),i.consume(b),i.exit("lineEnding"),v):f(b)}function v(b){return g.parser.lazy[g.now().line]?f(b):a(b)}}function AGe(i,a,f){return g;function g(w){return i.enter("lineEnding"),i.consume(w),i.exit("lineEnding"),i.attempt(XY,a,f)}}const LGe={name:"htmlText",tokenize:DGe};function DGe(i,a,f){const g=this;let w,v,b;return E;function E(kt){return i.enter("htmlText"),i.enter("htmlTextData"),i.consume(kt),S}function S(kt){return kt===33?(i.consume(kt),_):kt===47?(i.consume(kt),ct):kt===63?(i.consume(kt),wt):u4(kt)?(i.consume(kt),gt):f(kt)}function _(kt){return kt===45?(i.consume(kt),M):kt===91?(i.consume(kt),v=0,z):u4(kt)?(i.consume(kt),ft):f(kt)}function M(kt){return kt===45?(i.consume(kt),B):f(kt)}function F(kt){return kt===null?f(kt):kt===45?(i.consume(kt),R):$a(kt)?(b=F,xt(kt)):(i.consume(kt),F)}function R(kt){return kt===45?(i.consume(kt),B):F(kt)}function B(kt){return kt===62?jt(kt):kt===45?R(kt):F(kt)}function z(kt){const Gt="CDATA[";return kt===Gt.charCodeAt(v++)?(i.consume(kt),v===Gt.length?Y:z):f(kt)}function Y(kt){return kt===null?f(kt):kt===93?(i.consume(kt),nt):$a(kt)?(b=Y,xt(kt)):(i.consume(kt),Y)}function nt(kt){return kt===93?(i.consume(kt),ot):Y(kt)}function ot(kt){return kt===62?jt(kt):kt===93?(i.consume(kt),ot):Y(kt)}function ft(kt){return kt===null||kt===62?jt(kt):$a(kt)?(b=ft,xt(kt)):(i.consume(kt),ft)}function wt(kt){return kt===null?f(kt):kt===63?(i.consume(kt),mt):$a(kt)?(b=wt,xt(kt)):(i.consume(kt),wt)}function mt(kt){return kt===62?jt(kt):wt(kt)}function ct(kt){return u4(kt)?(i.consume(kt),rt):f(kt)}function rt(kt){return kt===45||Zv(kt)?(i.consume(kt),rt):it(kt)}function it(kt){return $a(kt)?(b=it,xt(kt)):du(kt)?(i.consume(kt),it):jt(kt)}function gt(kt){return kt===45||Zv(kt)?(i.consume(kt),gt):kt===47||kt===62||ob(kt)?Q(kt):f(kt)}function Q(kt){return kt===47?(i.consume(kt),jt):kt===58||kt===95||u4(kt)?(i.consume(kt),dt):$a(kt)?(b=Q,xt(kt)):du(kt)?(i.consume(kt),Q):jt(kt)}function dt(kt){return kt===45||kt===46||kt===58||kt===95||Zv(kt)?(i.consume(kt),dt):K(kt)}function K(kt){return kt===61?(i.consume(kt),yt):$a(kt)?(b=K,xt(kt)):du(kt)?(i.consume(kt),K):Q(kt)}function yt(kt){return kt===null||kt===60||kt===61||kt===62||kt===96?f(kt):kt===34||kt===39?(i.consume(kt),w=kt,V):$a(kt)?(b=yt,xt(kt)):du(kt)?(i.consume(kt),yt):(i.consume(kt),Ot)}function V(kt){return kt===w?(i.consume(kt),w=void 0,It):kt===null?f(kt):$a(kt)?(b=V,xt(kt)):(i.consume(kt),V)}function Ot(kt){return kt===null||kt===34||kt===39||kt===60||kt===61||kt===96?f(kt):kt===47||kt===62||ob(kt)?Q(kt):(i.consume(kt),Ot)}function It(kt){return kt===47||kt===62||ob(kt)?Q(kt):f(kt)}function jt(kt){return kt===62?(i.consume(kt),i.exit("htmlTextData"),i.exit("htmlText"),a):f(kt)}function xt(kt){return i.exit("htmlTextData"),i.enter("lineEnding"),i.consume(kt),i.exit("lineEnding"),Ft}function Ft(kt){return du(kt)?Cl(i,Ct,"linePrefix",g.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(kt):Ct(kt)}function Ct(kt){return i.enter("htmlTextData"),b(kt)}}const Gpt={name:"labelEnd",tokenize:FGe,resolveTo:PGe,resolveAll:NGe},MGe={tokenize:BGe},IGe={tokenize:RGe},OGe={tokenize:jGe};function NGe(i){let a=-1;for(;++a=3&&(_===null||$a(_))?(i.exit("thematicBreak"),a(_)):f(_)}function S(_){return _===w?(i.consume(_),g++,S):(i.exit("thematicBreakSequence"),du(_)?Cl(i,E,"whitespace")(_):E(_))}}const cb={name:"list",tokenize:WGe,continuation:{tokenize:YGe},exit:QGe},GGe={tokenize:JGe,partial:!0},KGe={tokenize:XGe,partial:!0};function WGe(i,a,f){const g=this,w=g.events[g.events.length-1];let v=w&&w[1].type==="linePrefix"?w[2].sliceSerialize(w[1],!0).length:0,b=0;return E;function E(B){const z=g.containerState.type||(B===42||B===43||B===45?"listUnordered":"listOrdered");if(z==="listUnordered"?!g.containerState.marker||B===g.containerState.marker:zpt(B)){if(g.containerState.type||(g.containerState.type=z,i.enter(z,{_container:!0})),z==="listUnordered")return i.enter("listItemPrefix"),B===42||B===45?i.check(QY,f,_)(B):_(B);if(!g.interrupt||B===49)return i.enter("listItemPrefix"),i.enter("listItemValue"),S(B)}return f(B)}function S(B){return zpt(B)&&++b<10?(i.consume(B),S):(!g.interrupt||b<2)&&(g.containerState.marker?B===g.containerState.marker:B===41||B===46)?(i.exit("listItemValue"),_(B)):f(B)}function _(B){return i.enter("listItemMarker"),i.consume(B),i.exit("listItemMarker"),g.containerState.marker=g.containerState.marker||B,i.check(XY,g.interrupt?f:M,i.attempt(GGe,R,F))}function M(B){return g.containerState.initialBlankLine=!0,v++,R(B)}function F(B){return du(B)?(i.enter("listItemPrefixWhitespace"),i.consume(B),i.exit("listItemPrefixWhitespace"),R):f(B)}function R(B){return g.containerState.size=v+g.sliceSerialize(i.exit("listItemPrefix"),!0).length,a(B)}}function YGe(i,a,f){const g=this;return g.containerState._closeFlow=void 0,i.check(XY,w,v);function w(E){return g.containerState.furtherBlankLines=g.containerState.furtherBlankLines||g.containerState.initialBlankLine,Cl(i,a,"listItemIndent",g.containerState.size+1)(E)}function v(E){return g.containerState.furtherBlankLines||!du(E)?(g.containerState.furtherBlankLines=void 0,g.containerState.initialBlankLine=void 0,b(E)):(g.containerState.furtherBlankLines=void 0,g.containerState.initialBlankLine=void 0,i.attempt(KGe,a,b)(E))}function b(E){return g.containerState._closeFlow=!0,g.interrupt=void 0,Cl(i,i.attempt(cb,a,f),"linePrefix",g.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(E)}}function XGe(i,a,f){const g=this;return Cl(i,w,"listItemIndent",g.containerState.size+1);function w(v){const b=g.events[g.events.length-1];return b&&b[1].type==="listItemIndent"&&b[2].sliceSerialize(b[1],!0).length===g.containerState.size?a(v):f(v)}}function QGe(i){i.exit(this.containerState.type)}function JGe(i,a,f){const g=this;return Cl(i,w,"listItemPrefixWhitespace",g.parser.constructs.disable.null.includes("codeIndented")?void 0:4+1);function w(v){const b=g.events[g.events.length-1];return!du(v)&&b&&b[1].type==="listItemPrefixWhitespace"?a(v):f(v)}}const R$t={name:"setextUnderline",tokenize:tKe,resolveTo:ZGe};function ZGe(i,a){let f=i.length,g,w,v;for(;f--;)if(i[f][0]==="enter"){if(i[f][1].type==="content"){g=f;break}i[f][1].type==="paragraph"&&(w=f)}else i[f][1].type==="content"&&i.splice(f,1),!v&&i[f][1].type==="definition"&&(v=f);const b={type:"setextHeading",start:Object.assign({},i[w][1].start),end:Object.assign({},i[i.length-1][1].end)};return i[w][1].type="setextHeadingText",v?(i.splice(w,0,["enter",b,a]),i.splice(v+1,0,["exit",i[g][1],a]),i[g][1].end=Object.assign({},i[v][1].end)):i[g][1]=b,i.push(["exit",b,a]),i}function tKe(i,a,f){const g=this;let w;return v;function v(_){let M=g.events.length,F;for(;M--;)if(g.events[M][1].type!=="lineEnding"&&g.events[M][1].type!=="linePrefix"&&g.events[M][1].type!=="content"){F=g.events[M][1].type==="paragraph";break}return!g.parser.lazy[g.now().line]&&(g.interrupt||F)?(i.enter("setextHeadingLine"),w=_,b(_)):f(_)}function b(_){return i.enter("setextHeadingLineSequence"),E(_)}function E(_){return _===w?(i.consume(_),E):(i.exit("setextHeadingLineSequence"),du(_)?Cl(i,S,"lineSuffix")(_):S(_))}function S(_){return _===null||$a(_)?(i.exit("setextHeadingLine"),a(_)):f(_)}}const eKe={tokenize:nKe};function nKe(i){const a=this,f=i.attempt(XY,g,i.attempt(this.parser.constructs.flowInitial,w,Cl(i,i.attempt(this.parser.constructs.flow,w,i.attempt(oGe,w)),"linePrefix")));return f;function g(v){if(v===null){i.consume(v);return}return i.enter("lineEndingBlank"),i.consume(v),i.exit("lineEndingBlank"),a.currentConstruct=void 0,f}function w(v){if(v===null){i.consume(v);return}return i.enter("lineEnding"),i.consume(v),i.exit("lineEnding"),a.currentConstruct=void 0,f}}const rKe={resolveAll:$$t()},iKe=j$t("string"),sKe=j$t("text");function j$t(i){return{tokenize:a,resolveAll:$$t(i==="text"?aKe:void 0)};function a(f){const g=this,w=this.parser.constructs[i],v=f.attempt(w,b,E);return b;function b(M){return _(M)?v(M):E(M)}function E(M){if(M===null){f.consume(M);return}return f.enter("data"),f.consume(M),S}function S(M){return _(M)?(f.exit("data"),v(M)):(f.consume(M),S)}function _(M){if(M===null)return!0;const F=w[M];let R=-1;if(F)for(;++R-1){const E=b[0];typeof E=="string"?b[0]=E.slice(g):b.shift()}v>0&&b.push(i[w].slice(0,v))}return b}function uKe(i,a){let f=-1;const g=[];let w;for(;++f13&&f<32||f>126&&f<160||f>55295&&f<57344||f>64975&&f<65008||(f&65535)===65535||(f&65535)===65534||f>1114111?"�":String.fromCharCode(f)}const gKe=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function pKe(i){return i.replace(gKe,bKe)}function bKe(i,a,f){if(a)return a;if(f.charCodeAt(0)===35){const w=f.charCodeAt(1),v=w===120||w===88;return q$t(f.slice(v?2:1),v?16:10)}return Vpt(f)||i}function JY(i){return!i||typeof i!="object"?"":"position"in i||"type"in i?H$t(i.position):"start"in i||"end"in i?H$t(i):"line"in i||"column"in i?Wpt(i):""}function Wpt(i){return V$t(i&&i.line)+":"+V$t(i&&i.column)}function H$t(i){return Wpt(i&&i.start)+"-"+Wpt(i&&i.end)}function V$t(i){return i&&typeof i=="number"?i:1}const U$t={}.hasOwnProperty,G$t=function(i,a,f){return typeof a!="string"&&(f=a,a=void 0),wKe(f)(dKe(hKe(f).document().write(fKe()(i,a,!0))))};function wKe(i){const a={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:E(ga),autolinkProtocol:K,autolinkEmail:K,atxHeading:E(Br),blockQuote:E(Xt),characterEscape:K,characterReference:K,codeFenced:E(_e),codeFencedFenceInfo:S,codeFencedFenceMeta:S,codeIndented:E(_e,S),codeText:E(xe,S),codeTextData:K,data:K,codeFlowValue:K,definition:E(Mn),definitionDestinationString:S,definitionLabelString:S,definitionTitleString:S,emphasis:E(ce),hardBreakEscape:E(we),hardBreakTrailing:E(we),htmlFlow:E(Fi,S),htmlFlowData:K,htmlText:E(Fi,S),htmlTextData:K,image:E(mi),label:S,link:E(ga),listItem:E(za),listItemValue:z,listOrdered:E(Ss,B),listUnordered:E(Ss),paragraph:E(br),reference:Ae,referenceString:S,resourceDestinationString:S,resourceTitleString:S,setextHeading:E(Br),strong:E(An),thematicBreak:E(Bn)},exit:{atxHeading:M(),atxHeadingSequence:it,autolink:M(),autolinkEmail:Ne,autolinkProtocol:be,blockQuote:M(),characterEscapeValue:yt,characterReferenceMarkerHexadecimal:tn,characterReferenceMarkerNumeric:tn,characterReferenceValue:sn,codeFenced:M(ft),codeFencedFence:ot,codeFencedFenceInfo:Y,codeFencedFenceMeta:nt,codeFlowValue:yt,codeIndented:M(wt),codeText:M(xt),codeTextData:yt,data:yt,definition:M(),definitionDestinationString:rt,definitionLabelString:mt,definitionTitleString:ct,emphasis:M(),hardBreakEscape:M(Ot),hardBreakTrailing:M(Ot),htmlFlow:M(It),htmlFlowData:yt,htmlText:M(jt),htmlTextData:yt,image:M(Ct),label:Gt,labelText:kt,lineEnding:V,link:M(Ft),listItem:M(),listOrdered:M(),listUnordered:M(),paragraph:M(),referenceString:ye,resourceDestinationString:Fe,resourceTitleString:Mt,resource:pn,setextHeading:M(dt),setextHeadingLineSequence:Q,setextHeadingText:gt,strong:M(),thematicBreak:M()}};K$t(a,(i||{}).mdastExtensions||[]);const f={};return g;function g(ke){let pe={type:"root",children:[]};const Je={stack:[pe],tokenStack:[],config:a,enter:_,exit:F,buffer:S,resume:R,setData:v,getData:b},an=[];let xn=-1;for(;++xn0){const qa=Je.tokenStack[Je.tokenStack.length-1];(qa[1]||W$t).call(Je,void 0,qa[0])}for(pe.position={start:T8(ke.length>0?ke[0][1].start:{line:1,column:1,offset:0}),end:T8(ke.length>0?ke[ke.length-2][1].end:{line:1,column:1,offset:0})},xn=-1;++xn{M!==0&&(w++,g.push([])),_.split(" ").forEach(F=>{F&&g[w].push({content:F,type:E})})}):(b.type==="strong"||b.type==="emphasis")&&b.children.forEach(S=>{v(S,b.type)})}return f.forEach(b=>{b.type==="paragraph"&&b.children.forEach(E=>{v(E)})}),g}function xKe(i){const{children:a}=G$t(i);function f(g){return g.type==="text"?g.value.replace(/\n/g,"
"):g.type==="strong"?`${g.children.map(f).join("")}`:g.type==="emphasis"?`${g.children.map(f).join("")}`:g.type==="paragraph"?`

${g.children.map(f).join("")}

`:`Unsupported markdown: ${g.type}`}return a.map(f).join("")}function kKe(i){return Intl.Segmenter?[...new Intl.Segmenter().segment(i)].map(a=>a.segment):[...i]}function EKe(i,a){const f=kKe(a.content);return Y$t(i,[],f,a.type)}function Y$t(i,a,f,g){if(f.length===0)return[{content:a.join(""),type:g},{content:"",type:g}];const[w,...v]=f,b=[...a,w];return i([{content:b.join(""),type:g}])?Y$t(i,b,v,g):(a.length===0&&w&&(a.push(w),f.shift()),[{content:a.join(""),type:g},{content:f.join(""),type:g}])}function TKe(i,a){if(i.some(({content:f})=>f.includes(` +`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return Ypt(i,a)}function Ypt(i,a,f=[],g=[]){if(i.length===0)return g.length>0&&f.push(g),f.length>0?f:[];let w="";i[0].content===" "&&(w=" ",i.shift());const v=i.shift()??{content:" ",type:"normal"},b=[...g];if(w!==""&&b.push({content:w,type:"normal"}),b.push(v),a(b))return Ypt(i,a,f,b);if(g.length>0)f.push(g),i.unshift(v);else if(v.content){const[E,S]=EKe(a,v);f.push([E]),S.content&&i.unshift(S)}return Ypt(i,a,f)}function CKe(i,a){a&&i.attr("style",a)}function SKe(i,a,f,g,w=!1){const v=i.append("foreignObject"),b=v.append("xhtml:div"),E=a.label,S=a.isNode?"nodeLabel":"edgeLabel";b.html(` + "+E+""),CKe(b,a.labelStyle),b.style("display","table-cell"),b.style("white-space","nowrap"),b.style("max-width",f+"px"),b.attr("xmlns","http://www.w3.org/1999/xhtml"),w&&b.attr("class","labelBkg");let _=b.node().getBoundingClientRect();return _.width===f&&(b.style("display","table"),b.style("white-space","break-spaces"),b.style("width",f+"px"),_=b.node().getBoundingClientRect()),v.style("width",_.width),v.style("height",_.height),v.node()}function Xpt(i,a,f){return i.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",a*f-.1+"em").attr("dy",f+"em")}function _Ke(i,a,f){const g=i.append("text"),w=Xpt(g,1,a);Qpt(w,f);const v=w.node().getComputedTextLength();return g.remove(),v}function AKe(i,a,f){var b;const g=i.append("text"),w=Xpt(g,1,a);Qpt(w,[{content:f,type:"normal"}]);const v=(b=w.node())==null?void 0:b.getBoundingClientRect();return v&&g.remove(),v}function LKe(i,a,f,g=!1){const v=a.append("g"),b=v.insert("rect").attr("class","background"),E=v.append("text").attr("y","-10.1");let S=0;for(const _ of f){const M=R=>_Ke(v,1.1,R)<=i,F=M(_)?[_]:TKe(_,M);for(const R of F){const B=Xpt(E,S,1.1);Qpt(B,R),S++}}if(g){const _=E.node().getBBox(),M=2;return b.attr("x",-M).attr("y",-M).attr("width",_.width+2*M).attr("height",_.height+2*M),v.node()}else return E.node()}function Qpt(i,a){i.text(""),a.forEach((f,g)=>{const w=i.append("tspan").attr("font-style",f.type==="emphasis"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",f.type==="strong"?"bold":"normal");g===0?w.text(f.content):w.text(" "+f.content)})}const ZY=(i,a="",{style:f="",isTitle:g=!1,classes:w="",useHtmlLabels:v=!0,isNode:b=!0,width:E=200,addSvgBackground:S=!1}={})=>{if(Kt.info("createText",a,f,g,w,v,b,S),v){const _=xKe(a),M={isNode:b,label:IF(_).replace(/fa[blrs]?:fa-[\w-]+/g,R=>``),labelStyle:f.replace("fill:","color:")};return SKe(i,M,E,w,S)}else{const _=yKe(a);return LKe(E,i,_,S)}},$1=async(i,a,f,g)=>{let w;const v=a.useHtmlLabels||j1(Re().flowchart.htmlLabels);f?w=f:w="node default";const b=i.insert("g").attr("class",w).attr("id",a.domId||a.id),E=b.insert("g").attr("class","label").attr("style",a.labelStyle);let S;a.labelText===void 0?S="":S=typeof a.labelText=="string"?a.labelText:a.labelText[0];const _=E.node();let M;a.labelType==="markdown"?M=ZY(E,Ef(IF(S),Re()),{useHtmlLabels:v,width:a.width||Re().flowchart.wrappingWidth,classes:"markdown-node-label"}):M=_.appendChild(ab(Ef(IF(S),Re()),a.labelStyle,!1,g));let F=M.getBBox();const R=a.padding/2;if(j1(Re().flowchart.htmlLabels)){const B=M.children[0],z=Tr(M),Y=B.getElementsByTagName("img");if(Y){const nt=S.replace(/]*>/g,"").trim()==="";await Promise.all([...Y].map(ot=>new Promise(ft=>{function wt(){if(ot.style.display="flex",ot.style.flexDirection="column",nt){const mt=Re().fontSize?Re().fontSize:window.getComputedStyle(document.body).fontSize,ct=5,rt=parseInt(mt,10)*ct+"px";ot.style.minWidth=rt,ot.style.maxWidth=rt}else ot.style.width="100%";ft(ot)}setTimeout(()=>{ot.complete&&wt()}),ot.addEventListener("error",wt),ot.addEventListener("load",wt)})))}F=B.getBoundingClientRect(),z.attr("width",F.width),z.attr("height",F.height)}return v?E.attr("transform","translate("+-F.width/2+", "+-F.height/2+")"):E.attr("transform","translate(0, "+-F.height/2+")"),a.centerLabel&&E.attr("transform","translate("+-F.width/2+", "+-F.height/2+")"),E.insert("rect",":first-child"),{shapeSvg:b,bbox:F,halfPadding:R,label:E}},xh=(i,a)=>{const f=a.node().getBBox();i.width=f.width,i.height=f.height};function l4(i,a,f,g){return i.insert("polygon",":first-child").attr("points",g.map(function(w){return w.x+","+w.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-a/2+","+f/2+")")}let ho={},ty={},X$t={};const DKe=()=>{ty={},X$t={},ho={}},tX=(i,a)=>(Kt.trace("In isDecendant",a," ",i," = ",ty[a].includes(i)),!!ty[a].includes(i)),MKe=(i,a)=>(Kt.info("Decendants of ",a," is ",ty[a]),Kt.info("Edge is ",i),i.v===a||i.w===a?!1:ty[a]?ty[a].includes(i.v)||tX(i.v,a)||tX(i.w,a)||ty[a].includes(i.w):(Kt.debug("Tilt, ",a,",not in decendants"),!1)),Q$t=(i,a,f,g)=>{Kt.warn("Copying children of ",i,"root",g,"data",a.node(i),g);const w=a.children(i)||[];i!==g&&w.push(i),Kt.warn("Copying (nodes) clusterId",i,"nodes",w),w.forEach(v=>{if(a.children(v).length>0)Q$t(v,a,f,g);else{const b=a.node(v);Kt.info("cp ",v," to ",g," with parent ",i),f.setNode(v,b),g!==a.parent(v)&&(Kt.warn("Setting parent",v,a.parent(v)),f.setParent(v,a.parent(v))),i!==g&&v!==i?(Kt.debug("Setting parent",v,i),f.setParent(v,i)):(Kt.info("In copy ",i,"root",g,"data",a.node(i),g),Kt.debug("Not Setting parent for node=",v,"cluster!==rootId",i!==g,"node!==clusterId",v!==i));const E=a.edges(v);Kt.debug("Copying Edges",E),E.forEach(S=>{Kt.info("Edge",S);const _=a.edge(S.v,S.w,S.name);Kt.info("Edge data",_,g);try{MKe(S,g)?(Kt.info("Copying as ",S.v,S.w,_,S.name),f.setEdge(S.v,S.w,_,S.name),Kt.info("newGraph edges ",f.edges(),f.edge(f.edges()[0]))):Kt.info("Skipping copy of edge ",S.v,"-->",S.w," rootId: ",g," clusterId:",i)}catch(M){Kt.error(M)}})}Kt.debug("Removing node",v),a.removeNode(v)})},J$t=(i,a)=>{const f=a.children(i);let g=[...f];for(const w of f)X$t[w]=i,g=[...g,...J$t(w,a)];return g},tB=(i,a)=>{Kt.trace("Searching",i);const f=a.children(i);if(Kt.trace("Searching children of id ",i,f),f.length<1)return Kt.trace("This is a valid node",i),i;for(const g of f){const w=tB(g,a);if(w)return Kt.trace("Found replacement for",i," => ",w),w}},eX=i=>!ho[i]||!ho[i].externalConnections?i:ho[i]?ho[i].id:i,IKe=(i,a)=>{if(!i||a>10){Kt.debug("Opting out, no graph ");return}else Kt.debug("Opting in, graph ");i.nodes().forEach(function(f){i.children(f).length>0&&(Kt.warn("Cluster identified",f," Replacement id in edges: ",tB(f,i)),ty[f]=J$t(f,i),ho[f]={id:tB(f,i),clusterData:i.node(f)})}),i.nodes().forEach(function(f){const g=i.children(f),w=i.edges();g.length>0?(Kt.debug("Cluster identified",f,ty),w.forEach(v=>{if(v.v!==f&&v.w!==f){const b=tX(v.v,f),E=tX(v.w,f);b^E&&(Kt.warn("Edge: ",v," leaves cluster ",f),Kt.warn("Decendants of XXX ",f,": ",ty[f]),ho[f].externalConnections=!0)}})):Kt.debug("Not a cluster ",f,ty)});for(let f of Object.keys(ho)){const g=ho[f].id,w=i.parent(g);w!==f&&ho[w]&&!ho[w].externalConnections&&(ho[f].id=w)}i.edges().forEach(function(f){const g=i.edge(f);Kt.warn("Edge "+f.v+" -> "+f.w+": "+JSON.stringify(f)),Kt.warn("Edge "+f.v+" -> "+f.w+": "+JSON.stringify(i.edge(f)));let w=f.v,v=f.w;if(Kt.warn("Fix XXX",ho,"ids:",f.v,f.w,"Translating: ",ho[f.v]," --- ",ho[f.w]),ho[f.v]&&ho[f.w]&&ho[f.v]===ho[f.w]){Kt.warn("Fixing and trixing link to self - removing XXX",f.v,f.w,f.name),Kt.warn("Fixing and trixing - removing XXX",f.v,f.w,f.name),w=eX(f.v),v=eX(f.w),i.removeEdge(f.v,f.w,f.name);const b=f.w+"---"+f.v;i.setNode(b,{domId:b,id:b,labelStyle:"",labelText:g.label,padding:0,shape:"labelRect",style:""});const E=structuredClone(g),S=structuredClone(g);E.label="",E.arrowTypeEnd="none",S.label="",E.fromCluster=f.v,S.toCluster=f.v,i.setEdge(w,b,E,f.name+"-cyclic-special"),i.setEdge(b,v,S,f.name+"-cyclic-special")}else if(ho[f.v]||ho[f.w]){if(Kt.warn("Fixing and trixing - removing XXX",f.v,f.w,f.name),w=eX(f.v),v=eX(f.w),i.removeEdge(f.v,f.w,f.name),w!==f.v){const b=i.parent(w);ho[b].externalConnections=!0,g.fromCluster=f.v}if(v!==f.w){const b=i.parent(v);ho[b].externalConnections=!0,g.toCluster=f.w}Kt.warn("Fix Replacing with XXX",w,v,f.name),i.setEdge(w,v,g,f.name)}}),Kt.warn("Adjusted Graph",jx(i)),Z$t(i,0),Kt.trace(ho)},Z$t=(i,a)=>{if(Kt.warn("extractor - ",a,jx(i),i.children("D")),a>10){Kt.error("Bailing out");return}let f=i.nodes(),g=!1;for(const w of f){const v=i.children(w);g=g||v.length>0}if(!g){Kt.debug("Done, no node has children",i.nodes());return}Kt.debug("Nodes = ",f,a);for(const w of f)if(Kt.debug("Extracting node",w,ho,ho[w]&&!ho[w].externalConnections,!i.parent(w),i.node(w),i.children("D")," Depth ",a),!ho[w])Kt.debug("Not a cluster",w,a);else if(!ho[w].externalConnections&&i.children(w)&&i.children(w).length>0){Kt.warn("Cluster without external connections, without a parent and with children",w,a);let b=i.graph().rankdir==="TB"?"LR":"TB";ho[w]&&ho[w].clusterData&&ho[w].clusterData.dir&&(b=ho[w].clusterData.dir,Kt.warn("Fixing dir",ho[w].clusterData.dir,b));const E=new l1({multigraph:!0,compound:!0}).setGraph({rankdir:b,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});Kt.warn("Old graph before copy",jx(i)),Q$t(w,i,E,w),i.setNode(w,{clusterNode:!0,id:w,clusterData:ho[w].clusterData,labelText:ho[w].labelText,graph:E}),Kt.warn("New graph after copy node: (",w,")",jx(E)),Kt.debug("Old graph after copy",jx(i))}else Kt.warn("Cluster ** ",w," **not meeting the criteria !externalConnections:",!ho[w].externalConnections," no parent: ",!i.parent(w)," children ",i.children(w)&&i.children(w).length>0,i.children("D"),a),Kt.debug(ho);f=i.nodes(),Kt.warn("New list of nodes",f);for(const w of f){const v=i.node(w);Kt.warn(" Now next level",w,v),v.clusterNode&&Z$t(v.graph,a+1)}},tzt=(i,a)=>{if(a.length===0)return[];let f=Object.assign(a);return a.forEach(g=>{const w=i.children(g),v=tzt(i,w);f=[...f,...v]}),f},OKe=i=>tzt(i,i.children());function NKe(i,a){return i.intersect(a)}function ezt(i,a,f,g){var w=i.x,v=i.y,b=w-g.x,E=v-g.y,S=Math.sqrt(a*a*E*E+f*f*b*b),_=Math.abs(a*f*b/S);g.x0}function BKe(i,a,f){var g=i.x,w=i.y,v=[],b=Number.POSITIVE_INFINITY,E=Number.POSITIVE_INFINITY;typeof a.forEach=="function"?a.forEach(function(z){b=Math.min(b,z.x),E=Math.min(E,z.y)}):(b=Math.min(b,a.x),E=Math.min(E,a.y));for(var S=g-i.width/2-b,_=w-i.height/2-E,M=0;M1&&v.sort(function(z,Y){var nt=z.x-f.x,ot=z.y-f.y,ft=Math.sqrt(nt*nt+ot*ot),wt=Y.x-f.x,mt=Y.y-f.y,ct=Math.sqrt(wt*wt+mt*mt);return ft{var f=i.x,g=i.y,w=a.x-f,v=a.y-g,b=i.width/2,E=i.height/2,S,_;return Math.abs(v)*b>Math.abs(w)*E?(v<0&&(E=-E),S=v===0?0:E*w/v,_=E):(w<0&&(b=-b),S=b,_=w===0?0:b*v/w),{x:f+S,y:g+_}},Ql={node:NKe,circle:PKe,ellipse:ezt,polygon:BKe,rect:eB},RKe=async(i,a)=>{a.useHtmlLabels||Re().flowchart.htmlLabels||(a.centerLabel=!0);const{shapeSvg:g,bbox:w,halfPadding:v}=await $1(i,a,"node "+a.classes,!0);Kt.info("Classes = ",a.classes);const b=g.insert("rect",":first-child");return b.attr("rx",a.rx).attr("ry",a.ry).attr("x",-w.width/2-v).attr("y",-w.height/2-v).attr("width",w.width+a.padding).attr("height",w.height+a.padding),xh(a,b),a.intersect=function(E){return Ql.rect(a,E)},g},jKe=i=>{const a=new Set;for(const f of i)switch(f){case"x":a.add("right"),a.add("left");break;case"y":a.add("up"),a.add("down");break;default:a.add(f);break}return a},$Ke=(i,a,f)=>{const g=jKe(i),w=2,v=a.height+2*f.padding,b=v/w,E=a.width+2*b+f.padding,S=f.padding/2;return g.has("right")&&g.has("left")&&g.has("up")&&g.has("down")?[{x:0,y:0},{x:b,y:0},{x:E/2,y:2*S},{x:E-b,y:0},{x:E,y:0},{x:E,y:-v/3},{x:E+2*S,y:-v/2},{x:E,y:-2*v/3},{x:E,y:-v},{x:E-b,y:-v},{x:E/2,y:-v-2*S},{x:b,y:-v},{x:0,y:-v},{x:0,y:-2*v/3},{x:-2*S,y:-v/2},{x:0,y:-v/3}]:g.has("right")&&g.has("left")&&g.has("up")?[{x:b,y:0},{x:E-b,y:0},{x:E,y:-v/2},{x:E-b,y:-v},{x:b,y:-v},{x:0,y:-v/2}]:g.has("right")&&g.has("left")&&g.has("down")?[{x:0,y:0},{x:b,y:-v},{x:E-b,y:-v},{x:E,y:0}]:g.has("right")&&g.has("up")&&g.has("down")?[{x:0,y:0},{x:E,y:-b},{x:E,y:-v+b},{x:0,y:-v}]:g.has("left")&&g.has("up")&&g.has("down")?[{x:E,y:0},{x:0,y:-b},{x:0,y:-v+b},{x:E,y:-v}]:g.has("right")&&g.has("left")?[{x:b,y:0},{x:b,y:-S},{x:E-b,y:-S},{x:E-b,y:0},{x:E,y:-v/2},{x:E-b,y:-v},{x:E-b,y:-v+S},{x:b,y:-v+S},{x:b,y:-v},{x:0,y:-v/2}]:g.has("up")&&g.has("down")?[{x:E/2,y:0},{x:0,y:-S},{x:b,y:-S},{x:b,y:-v+S},{x:0,y:-v+S},{x:E/2,y:-v},{x:E,y:-v+S},{x:E-b,y:-v+S},{x:E-b,y:-S},{x:E,y:-S}]:g.has("right")&&g.has("up")?[{x:0,y:0},{x:E,y:-b},{x:0,y:-v}]:g.has("right")&&g.has("down")?[{x:0,y:0},{x:E,y:0},{x:0,y:-v}]:g.has("left")&&g.has("up")?[{x:E,y:0},{x:0,y:-b},{x:E,y:-v}]:g.has("left")&&g.has("down")?[{x:E,y:0},{x:0,y:0},{x:E,y:-v}]:g.has("right")?[{x:b,y:-S},{x:b,y:-S},{x:E-b,y:-S},{x:E-b,y:0},{x:E,y:-v/2},{x:E-b,y:-v},{x:E-b,y:-v+S},{x:b,y:-v+S},{x:b,y:-v+S}]:g.has("left")?[{x:b,y:0},{x:b,y:-S},{x:E-b,y:-S},{x:E-b,y:-v+S},{x:b,y:-v+S},{x:b,y:-v},{x:0,y:-v/2}]:g.has("up")?[{x:b,y:-S},{x:b,y:-v+S},{x:0,y:-v+S},{x:E/2,y:-v},{x:E,y:-v+S},{x:E-b,y:-v+S},{x:E-b,y:-S}]:g.has("down")?[{x:E/2,y:0},{x:0,y:-S},{x:b,y:-S},{x:b,y:-v+S},{x:E-b,y:-v+S},{x:E-b,y:-S},{x:E,y:-S}]:[{x:0,y:0}]},rzt=i=>i?" "+i:"",L2=(i,a)=>`${a||"node default"}${rzt(i.classes)} ${rzt(i.class)}`,izt=async(i,a)=>{const{shapeSvg:f,bbox:g}=await $1(i,a,L2(a,void 0),!0),w=g.width+a.padding,v=g.height+a.padding,b=w+v,E=[{x:b/2,y:0},{x:b,y:-b/2},{x:b/2,y:-b},{x:0,y:-b/2}];Kt.info("Question main (Circle)");const S=l4(f,b,b,E);return S.attr("style",a.style),xh(a,S),a.intersect=function(_){return Kt.warn("Intersect called"),Ql.polygon(a,E,_)},f},zKe=(i,a)=>{const f=i.insert("g").attr("class","node default").attr("id",a.domId||a.id),g=28,w=[{x:0,y:g/2},{x:g/2,y:0},{x:0,y:-g/2},{x:-g/2,y:0}];return f.insert("polygon",":first-child").attr("points",w.map(function(b){return b.x+","+b.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),a.width=28,a.height=28,a.intersect=function(b){return Ql.circle(a,14,b)},f},qKe=async(i,a)=>{const{shapeSvg:f,bbox:g}=await $1(i,a,L2(a,void 0),!0),w=4,v=g.height+a.padding,b=v/w,E=g.width+2*b+a.padding,S=[{x:b,y:0},{x:E-b,y:0},{x:E,y:-v/2},{x:E-b,y:-v},{x:b,y:-v},{x:0,y:-v/2}],_=l4(f,E,v,S);return _.attr("style",a.style),xh(a,_),a.intersect=function(M){return Ql.polygon(a,S,M)},f},HKe=async(i,a)=>{const{shapeSvg:f,bbox:g}=await $1(i,a,void 0,!0),w=2,v=g.height+2*a.padding,b=v/w,E=g.width+2*b+a.padding,S=$Ke(a.directions,g,a),_=l4(f,E,v,S);return _.attr("style",a.style),xh(a,_),a.intersect=function(M){return Ql.polygon(a,S,M)},f},VKe=async(i,a)=>{const{shapeSvg:f,bbox:g}=await $1(i,a,L2(a,void 0),!0),w=g.width+a.padding,v=g.height+a.padding,b=[{x:-v/2,y:0},{x:w,y:0},{x:w,y:-v},{x:-v/2,y:-v},{x:0,y:-v/2}];return l4(f,w,v,b).attr("style",a.style),a.width=w+v,a.height=v,a.intersect=function(S){return Ql.polygon(a,b,S)},f},UKe=async(i,a)=>{const{shapeSvg:f,bbox:g}=await $1(i,a,L2(a),!0),w=g.width+a.padding,v=g.height+a.padding,b=[{x:-2*v/6,y:0},{x:w-v/6,y:0},{x:w+2*v/6,y:-v},{x:v/6,y:-v}],E=l4(f,w,v,b);return E.attr("style",a.style),xh(a,E),a.intersect=function(S){return Ql.polygon(a,b,S)},f},GKe=async(i,a)=>{const{shapeSvg:f,bbox:g}=await $1(i,a,L2(a,void 0),!0),w=g.width+a.padding,v=g.height+a.padding,b=[{x:2*v/6,y:0},{x:w+v/6,y:0},{x:w-2*v/6,y:-v},{x:-v/6,y:-v}],E=l4(f,w,v,b);return E.attr("style",a.style),xh(a,E),a.intersect=function(S){return Ql.polygon(a,b,S)},f},KKe=async(i,a)=>{const{shapeSvg:f,bbox:g}=await $1(i,a,L2(a,void 0),!0),w=g.width+a.padding,v=g.height+a.padding,b=[{x:-2*v/6,y:0},{x:w+2*v/6,y:0},{x:w-v/6,y:-v},{x:v/6,y:-v}],E=l4(f,w,v,b);return E.attr("style",a.style),xh(a,E),a.intersect=function(S){return Ql.polygon(a,b,S)},f},WKe=async(i,a)=>{const{shapeSvg:f,bbox:g}=await $1(i,a,L2(a,void 0),!0),w=g.width+a.padding,v=g.height+a.padding,b=[{x:v/6,y:0},{x:w-v/6,y:0},{x:w+2*v/6,y:-v},{x:-2*v/6,y:-v}],E=l4(f,w,v,b);return E.attr("style",a.style),xh(a,E),a.intersect=function(S){return Ql.polygon(a,b,S)},f},YKe=async(i,a)=>{const{shapeSvg:f,bbox:g}=await $1(i,a,L2(a,void 0),!0),w=g.width+a.padding,v=g.height+a.padding,b=[{x:0,y:0},{x:w+v/2,y:0},{x:w,y:-v/2},{x:w+v/2,y:-v},{x:0,y:-v}],E=l4(f,w,v,b);return E.attr("style",a.style),xh(a,E),a.intersect=function(S){return Ql.polygon(a,b,S)},f},XKe=async(i,a)=>{const{shapeSvg:f,bbox:g}=await $1(i,a,L2(a,void 0),!0),w=g.width+a.padding,v=w/2,b=v/(2.5+w/50),E=g.height+b+a.padding,S="M 0,"+b+" a "+v+","+b+" 0,0,0 "+w+" 0 a "+v+","+b+" 0,0,0 "+-w+" 0 l 0,"+E+" a "+v+","+b+" 0,0,0 "+w+" 0 l 0,"+-E,_=f.attr("label-offset-y",b).insert("path",":first-child").attr("style",a.style).attr("d",S).attr("transform","translate("+-w/2+","+-(E/2+b)+")");return xh(a,_),a.intersect=function(M){const F=Ql.rect(a,M),R=F.x-a.x;if(v!=0&&(Math.abs(R)a.height/2-b)){let B=b*b*(1-R*R/(v*v));B!=0&&(B=Math.sqrt(B)),B=b-B,M.y-a.y>0&&(B=-B),F.y+=B}return F},f},QKe=async(i,a)=>{const{shapeSvg:f,bbox:g,halfPadding:w}=await $1(i,a,"node "+a.classes+" "+a.class,!0),v=f.insert("rect",":first-child"),b=a.positioned?a.width:g.width+a.padding,E=a.positioned?a.height:g.height+a.padding,S=a.positioned?-b/2:-g.width/2-w,_=a.positioned?-E/2:-g.height/2-w;if(v.attr("class","basic label-container").attr("style",a.style).attr("rx",a.rx).attr("ry",a.ry).attr("x",S).attr("y",_).attr("width",b).attr("height",E),a.props){const M=new Set(Object.keys(a.props));a.props.borders&&(Jpt(v,a.props.borders,b,E),M.delete("borders")),M.forEach(F=>{Kt.warn(`Unknown node property ${F}`)})}return xh(a,v),a.intersect=function(M){return Ql.rect(a,M)},f},JKe=async(i,a)=>{const{shapeSvg:f,bbox:g,halfPadding:w}=await $1(i,a,"node "+a.classes,!0),v=f.insert("rect",":first-child"),b=a.positioned?a.width:g.width+a.padding,E=a.positioned?a.height:g.height+a.padding,S=a.positioned?-b/2:-g.width/2-w,_=a.positioned?-E/2:-g.height/2-w;if(v.attr("class","basic cluster composite label-container").attr("style",a.style).attr("rx",a.rx).attr("ry",a.ry).attr("x",S).attr("y",_).attr("width",b).attr("height",E),a.props){const M=new Set(Object.keys(a.props));a.props.borders&&(Jpt(v,a.props.borders,b,E),M.delete("borders")),M.forEach(F=>{Kt.warn(`Unknown node property ${F}`)})}return xh(a,v),a.intersect=function(M){return Ql.rect(a,M)},f},ZKe=async(i,a)=>{const{shapeSvg:f}=await $1(i,a,"label",!0);Kt.trace("Classes = ",a.class);const g=f.insert("rect",":first-child"),w=0,v=0;if(g.attr("width",w).attr("height",v),f.attr("class","label edgeLabel"),a.props){const b=new Set(Object.keys(a.props));a.props.borders&&(Jpt(g,a.props.borders,w,v),b.delete("borders")),b.forEach(E=>{Kt.warn(`Unknown node property ${E}`)})}return xh(a,g),a.intersect=function(b){return Ql.rect(a,b)},f};function Jpt(i,a,f,g){const w=[],v=E=>{w.push(E,0)},b=E=>{w.push(0,E)};a.includes("t")?(Kt.debug("add top border"),v(f)):b(f),a.includes("r")?(Kt.debug("add right border"),v(g)):b(g),a.includes("b")?(Kt.debug("add bottom border"),v(f)):b(f),a.includes("l")?(Kt.debug("add left border"),v(g)):b(g),i.attr("stroke-dasharray",w.join(" "))}const tWe=(i,a)=>{let f;a.classes?f="node "+a.classes:f="node default";const g=i.insert("g").attr("class",f).attr("id",a.domId||a.id),w=g.insert("rect",":first-child"),v=g.insert("line"),b=g.insert("g").attr("class","label"),E=a.labelText.flat?a.labelText.flat():a.labelText;let S="";typeof E=="object"?S=E[0]:S=E,Kt.info("Label text abc79",S,E,typeof E=="object");const _=b.node().appendChild(ab(S,a.labelStyle,!0,!0));let M={width:0,height:0};if(j1(Re().flowchart.htmlLabels)){const Y=_.children[0],nt=Tr(_);M=Y.getBoundingClientRect(),nt.attr("width",M.width),nt.attr("height",M.height)}Kt.info("Text 2",E);const F=E.slice(1,E.length);let R=_.getBBox();const B=b.node().appendChild(ab(F.join?F.join("
"):F,a.labelStyle,!0,!0));if(j1(Re().flowchart.htmlLabels)){const Y=B.children[0],nt=Tr(B);M=Y.getBoundingClientRect(),nt.attr("width",M.width),nt.attr("height",M.height)}const z=a.padding/2;return Tr(B).attr("transform","translate( "+(M.width>R.width?0:(R.width-M.width)/2)+", "+(R.height+z+5)+")"),Tr(_).attr("transform","translate( "+(M.width{const{shapeSvg:f,bbox:g}=await $1(i,a,L2(a,void 0),!0),w=g.height+a.padding,v=g.width+w/4+a.padding,b=f.insert("rect",":first-child").attr("style",a.style).attr("rx",w/2).attr("ry",w/2).attr("x",-v/2).attr("y",-w/2).attr("width",v).attr("height",w);return xh(a,b),a.intersect=function(E){return Ql.rect(a,E)},f},nWe=async(i,a)=>{const{shapeSvg:f,bbox:g,halfPadding:w}=await $1(i,a,L2(a,void 0),!0),v=f.insert("circle",":first-child");return v.attr("style",a.style).attr("rx",a.rx).attr("ry",a.ry).attr("r",g.width/2+w).attr("width",g.width+a.padding).attr("height",g.height+a.padding),Kt.info("Circle main"),xh(a,v),a.intersect=function(b){return Kt.info("Circle intersect",a,g.width/2+w,b),Ql.circle(a,g.width/2+w,b)},f},rWe=async(i,a)=>{const{shapeSvg:f,bbox:g,halfPadding:w}=await $1(i,a,L2(a,void 0),!0),v=5,b=f.insert("g",":first-child"),E=b.insert("circle"),S=b.insert("circle");return b.attr("class",a.class),E.attr("style",a.style).attr("rx",a.rx).attr("ry",a.ry).attr("r",g.width/2+w+v).attr("width",g.width+a.padding+v*2).attr("height",g.height+a.padding+v*2),S.attr("style",a.style).attr("rx",a.rx).attr("ry",a.ry).attr("r",g.width/2+w).attr("width",g.width+a.padding).attr("height",g.height+a.padding),Kt.info("DoubleCircle main"),xh(a,E),a.intersect=function(_){return Kt.info("DoubleCircle intersect",a,g.width/2+w+v,_),Ql.circle(a,g.width/2+w+v,_)},f},iWe=async(i,a)=>{const{shapeSvg:f,bbox:g}=await $1(i,a,L2(a,void 0),!0),w=g.width+a.padding,v=g.height+a.padding,b=[{x:0,y:0},{x:w,y:0},{x:w,y:-v},{x:0,y:-v},{x:0,y:0},{x:-8,y:0},{x:w+8,y:0},{x:w+8,y:-v},{x:-8,y:-v},{x:-8,y:0}],E=l4(f,w,v,b);return E.attr("style",a.style),xh(a,E),a.intersect=function(S){return Ql.polygon(a,b,S)},f},sWe=(i,a)=>{const f=i.insert("g").attr("class","node default").attr("id",a.domId||a.id),g=f.insert("circle",":first-child");return g.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),xh(a,g),a.intersect=function(w){return Ql.circle(a,7,w)},f},szt=(i,a,f)=>{const g=i.insert("g").attr("class","node default").attr("id",a.domId||a.id);let w=70,v=10;f==="LR"&&(w=10,v=70);const b=g.append("rect").attr("x",-1*w/2).attr("y",-1*v/2).attr("width",w).attr("height",v).attr("class","fork-join");return xh(a,b),a.height=a.height+a.padding/2,a.width=a.width+a.padding/2,a.intersect=function(E){return Ql.rect(a,E)},g},azt={rhombus:izt,composite:JKe,question:izt,rect:QKe,labelRect:ZKe,rectWithTitle:tWe,choice:zKe,circle:nWe,doublecircle:rWe,stadium:eWe,hexagon:qKe,block_arrow:HKe,rect_left_inv_arrow:VKe,lean_right:UKe,lean_left:GKe,trapezoid:KKe,inv_trapezoid:WKe,rect_right_inv_arrow:YKe,cylinder:XKe,start:sWe,end:(i,a)=>{const f=i.insert("g").attr("class","node default").attr("id",a.domId||a.id),g=f.insert("circle",":first-child"),w=f.insert("circle",":first-child");return w.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),g.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),xh(a,w),a.intersect=function(v){return Ql.circle(a,7,v)},f},note:RKe,subroutine:iWe,fork:szt,join:szt,class_box:(i,a)=>{const f=a.padding/2,g=4,w=8;let v;a.classes?v="node "+a.classes:v="node default";const b=i.insert("g").attr("class",v).attr("id",a.domId||a.id),E=b.insert("rect",":first-child"),S=b.insert("line"),_=b.insert("line");let M=0,F=g;const R=b.insert("g").attr("class","label");let B=0;const z=a.classData.annotations&&a.classData.annotations[0],Y=a.classData.annotations[0]?"«"+a.classData.annotations[0]+"»":"",nt=R.node().appendChild(ab(Y,a.labelStyle,!0,!0));let ot=nt.getBBox();if(j1(Re().flowchart.htmlLabels)){const gt=nt.children[0],Q=Tr(nt);ot=gt.getBoundingClientRect(),Q.attr("width",ot.width),Q.attr("height",ot.height)}a.classData.annotations[0]&&(F+=ot.height+g,M+=ot.width);let ft=a.classData.label;a.classData.type!==void 0&&a.classData.type!==""&&(Re().flowchart.htmlLabels?ft+="<"+a.classData.type+">":ft+="<"+a.classData.type+">");const wt=R.node().appendChild(ab(ft,a.labelStyle,!0,!0));Tr(wt).attr("class","classTitle");let mt=wt.getBBox();if(j1(Re().flowchart.htmlLabels)){const gt=wt.children[0],Q=Tr(wt);mt=gt.getBoundingClientRect(),Q.attr("width",mt.width),Q.attr("height",mt.height)}F+=mt.height+g,mt.width>M&&(M=mt.width);const ct=[];a.classData.members.forEach(gt=>{const Q=gt.getDisplayDetails();let dt=Q.displayText;Re().flowchart.htmlLabels&&(dt=dt.replace(//g,">"));const K=R.node().appendChild(ab(dt,Q.cssStyle?Q.cssStyle:a.labelStyle,!0,!0));let yt=K.getBBox();if(j1(Re().flowchart.htmlLabels)){const V=K.children[0],Ot=Tr(K);yt=V.getBoundingClientRect(),Ot.attr("width",yt.width),Ot.attr("height",yt.height)}yt.width>M&&(M=yt.width),F+=yt.height+g,ct.push(K)}),F+=w;const rt=[];if(a.classData.methods.forEach(gt=>{const Q=gt.getDisplayDetails();let dt=Q.displayText;Re().flowchart.htmlLabels&&(dt=dt.replace(//g,">"));const K=R.node().appendChild(ab(dt,Q.cssStyle?Q.cssStyle:a.labelStyle,!0,!0));let yt=K.getBBox();if(j1(Re().flowchart.htmlLabels)){const V=K.children[0],Ot=Tr(K);yt=V.getBoundingClientRect(),Ot.attr("width",yt.width),Ot.attr("height",yt.height)}yt.width>M&&(M=yt.width),F+=yt.height+g,rt.push(K)}),F+=w,z){let gt=(M-ot.width)/2;Tr(nt).attr("transform","translate( "+(-1*M/2+gt)+", "+-1*F/2+")"),B=ot.height+g}let it=(M-mt.width)/2;return Tr(wt).attr("transform","translate( "+(-1*M/2+it)+", "+(-1*F/2+B)+")"),B+=mt.height+g,S.attr("class","divider").attr("x1",-M/2-f).attr("x2",M/2+f).attr("y1",-F/2-f+w+B).attr("y2",-F/2-f+w+B),B+=w,ct.forEach(gt=>{Tr(gt).attr("transform","translate( "+-M/2+", "+(-1*F/2+B+w/2)+")");const Q=gt==null?void 0:gt.getBBox();B+=((Q==null?void 0:Q.height)??0)+g}),B+=w,_.attr("class","divider").attr("x1",-M/2-f).attr("x2",M/2+f).attr("y1",-F/2-f+w+B).attr("y2",-F/2-f+w+B),B+=w,rt.forEach(gt=>{Tr(gt).attr("transform","translate( "+-M/2+", "+(-1*F/2+B)+")");const Q=gt==null?void 0:gt.getBBox();B+=((Q==null?void 0:Q.height)??0)+g}),E.attr("style",a.style).attr("class","outer title-state").attr("x",-M/2-f).attr("y",-(F/2)-f).attr("width",M+a.padding).attr("height",F+a.padding),xh(a,E),a.intersect=function(gt){return Ql.rect(a,gt)},b}};let TD={};const nX=async(i,a,f)=>{let g,w;if(a.link){let v;Re().securityLevel==="sandbox"?v="_top":a.linkTarget&&(v=a.linkTarget||"_blank"),g=i.insert("svg:a").attr("xlink:href",a.link).attr("target",v),w=await azt[a.shape](g,a,f)}else w=await azt[a.shape](i,a,f),g=w;return a.tooltip&&w.attr("title",a.tooltip),a.class&&w.attr("class","node default "+a.class),g.attr("data-node","true"),g.attr("data-id",a.id),TD[a.id]=g,a.haveCallback&&TD[a.id].attr("class",TD[a.id].attr("class")+" clickable"),g},aWe=(i,a)=>{TD[a.id]=i},oWe=()=>{TD={}},Zpt=i=>{const a=TD[i.id];Kt.trace("Transforming node",i.diff,i,"translate("+(i.x-i.width/2-5)+", "+i.width/2+")");const f=8,g=i.diff||0;return i.clusterNode?a.attr("transform","translate("+(i.x+g-i.width/2)+", "+(i.y-i.height/2-f)+")"):a.attr("transform","translate("+i.x+", "+i.y+")"),g},rX=({flowchart:i})=>{var w,v;const a=((w=i==null?void 0:i.subGraphTitleMargin)==null?void 0:w.top)??0,f=((v=i==null?void 0:i.subGraphTitleMargin)==null?void 0:v.bottom)??0,g=a+f;return{subGraphTitleTopMargin:a,subGraphTitleBottomMargin:f,subGraphTitleTotalMargin:g}},cWe={rect:(i,a)=>{Kt.info("Creating subgraph rect for ",a.id,a);const f=Re(),g=i.insert("g").attr("class","cluster"+(a.class?" "+a.class:"")).attr("id",a.id),w=g.insert("rect",":first-child"),v=j1(f.flowchart.htmlLabels),b=g.insert("g").attr("class","cluster-label"),E=a.labelType==="markdown"?ZY(b,a.labelText,{style:a.labelStyle,useHtmlLabels:v}):b.node().appendChild(ab(a.labelText,a.labelStyle,void 0,!0));let S=E.getBBox();if(j1(f.flowchart.htmlLabels)){const z=E.children[0],Y=Tr(E);S=z.getBoundingClientRect(),Y.attr("width",S.width),Y.attr("height",S.height)}const _=0*a.padding,M=_/2,F=a.width<=S.width+_?S.width+_:a.width;a.width<=S.width+_?a.diff=(S.width-a.width)/2-a.padding/2:a.diff=-a.padding/2,Kt.trace("Data ",a,JSON.stringify(a)),w.attr("style",a.style).attr("rx",a.rx).attr("ry",a.ry).attr("x",a.x-F/2).attr("y",a.y-a.height/2-M).attr("width",F).attr("height",a.height+_);const{subGraphTitleTopMargin:R}=rX(f);v?b.attr("transform",`translate(${a.x-S.width/2}, ${a.y-a.height/2+R})`):b.attr("transform",`translate(${a.x}, ${a.y-a.height/2+R})`);const B=w.node().getBBox();return a.width=B.width,a.height=B.height,a.intersect=function(z){return eB(a,z)},g},roundedWithTitle:(i,a)=>{const f=Re(),g=i.insert("g").attr("class",a.classes).attr("id",a.id),w=g.insert("rect",":first-child"),v=g.insert("g").attr("class","cluster-label"),b=g.append("rect"),E=v.node().appendChild(ab(a.labelText,a.labelStyle,void 0,!0));let S=E.getBBox();if(j1(f.flowchart.htmlLabels)){const z=E.children[0],Y=Tr(E);S=z.getBoundingClientRect(),Y.attr("width",S.width),Y.attr("height",S.height)}S=E.getBBox();const _=0*a.padding,M=_/2,F=a.width<=S.width+a.padding?S.width+a.padding:a.width;a.width<=S.width+a.padding?a.diff=(S.width+a.padding*0-a.width)/2:a.diff=-a.padding/2,w.attr("class","outer").attr("x",a.x-F/2-M).attr("y",a.y-a.height/2-M).attr("width",F+_).attr("height",a.height+_),b.attr("class","inner").attr("x",a.x-F/2-M).attr("y",a.y-a.height/2-M+S.height-1).attr("width",F+_).attr("height",a.height+_-S.height-3);const{subGraphTitleTopMargin:R}=rX(f);v.attr("transform",`translate(${a.x-S.width/2}, ${a.y-a.height/2-a.padding/3+(j1(f.flowchart.htmlLabels)?5:3)+R})`);const B=w.node().getBBox();return a.height=B.height,a.intersect=function(z){return eB(a,z)},g},noteGroup:(i,a)=>{const f=i.insert("g").attr("class","note-cluster").attr("id",a.id),g=f.insert("rect",":first-child"),w=0*a.padding,v=w/2;g.attr("rx",a.rx).attr("ry",a.ry).attr("x",a.x-a.width/2-v).attr("y",a.y-a.height/2-v).attr("width",a.width+w).attr("height",a.height+w).attr("fill","none");const b=g.node().getBBox();return a.width=b.width,a.height=b.height,a.intersect=function(E){return eB(a,E)},f},divider:(i,a)=>{const f=i.insert("g").attr("class",a.classes).attr("id",a.id),g=f.insert("rect",":first-child"),w=0*a.padding,v=w/2;g.attr("class","divider").attr("x",a.x-a.width/2-v).attr("y",a.y-a.height/2).attr("width",a.width+w).attr("height",a.height+w);const b=g.node().getBBox();return a.width=b.width,a.height=b.height,a.diff=-a.padding/2,a.intersect=function(E){return eB(a,E)},f}};let ozt={};const uWe=(i,a)=>{Kt.trace("Inserting cluster");const f=a.shape||"rect";ozt[a.id]=cWe[f](i,a)},lWe=()=>{ozt={}},C8={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:5.3};function iX(i,a){if(i===void 0||a===void 0)return{angle:0,deltaX:0,deltaY:0};i=sX(i),a=sX(a);const[f,g]=[i.x,i.y],[w,v]=[a.x,a.y],b=w-f,E=v-g;return{angle:Math.atan(E/b),deltaX:b,deltaY:E}}const sX=i=>Array.isArray(i)?{x:i[0],y:i[1]}:i,czt=i=>({x:function(a,f,g){let w=0;if(f===0&&Object.hasOwn(C8,i.arrowTypeStart)){const{angle:v,deltaX:b}=iX(g[0],g[1]);w=C8[i.arrowTypeStart]*Math.cos(v)*(b>=0?1:-1)}else if(f===g.length-1&&Object.hasOwn(C8,i.arrowTypeEnd)){const{angle:v,deltaX:b}=iX(g[g.length-1],g[g.length-2]);w=C8[i.arrowTypeEnd]*Math.cos(v)*(b>=0?1:-1)}return sX(a).x+w},y:function(a,f,g){let w=0;if(f===0&&Object.hasOwn(C8,i.arrowTypeStart)){const{angle:v,deltaY:b}=iX(g[0],g[1]);w=C8[i.arrowTypeStart]*Math.abs(Math.sin(v))*(b>=0?1:-1)}else if(f===g.length-1&&Object.hasOwn(C8,i.arrowTypeEnd)){const{angle:v,deltaY:b}=iX(g[g.length-1],g[g.length-2]);w=C8[i.arrowTypeEnd]*Math.abs(Math.sin(v))*(b>=0?1:-1)}return sX(a).y+w}}),uzt=(i,a,f,g,w)=>{a.arrowTypeStart&&lzt(i,"start",a.arrowTypeStart,f,g,w),a.arrowTypeEnd&&lzt(i,"end",a.arrowTypeEnd,f,g,w)},hWe={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},lzt=(i,a,f,g,w,v)=>{const b=hWe[f];if(!b){Kt.warn(`Unknown arrow type: ${f}`);return}const E=a==="start"?"Start":"End";i.attr(`marker-${a}`,`url(${g}#${w}_${v}-${b}${E})`)};let aX={},p0={};const fWe=()=>{aX={},p0={}},tbt=(i,a)=>{const f=j1(Re().flowchart.htmlLabels),g=a.labelType==="markdown"?ZY(i,a.label,{style:a.labelStyle,useHtmlLabels:f,addSvgBackground:!0}):ab(a.label,a.labelStyle),w=i.insert("g").attr("class","edgeLabel"),v=w.insert("g").attr("class","label");v.node().appendChild(g);let b=g.getBBox();if(f){const S=g.children[0],_=Tr(g);b=S.getBoundingClientRect(),_.attr("width",b.width),_.attr("height",b.height)}v.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"),aX[a.id]=w,a.width=b.width,a.height=b.height;let E;if(a.startLabelLeft){const S=ab(a.startLabelLeft,a.labelStyle),_=i.insert("g").attr("class","edgeTerminals"),M=_.insert("g").attr("class","inner");E=M.node().appendChild(S);const F=S.getBBox();M.attr("transform","translate("+-F.width/2+", "+-F.height/2+")"),p0[a.id]||(p0[a.id]={}),p0[a.id].startLeft=_,oX(E,a.startLabelLeft)}if(a.startLabelRight){const S=ab(a.startLabelRight,a.labelStyle),_=i.insert("g").attr("class","edgeTerminals"),M=_.insert("g").attr("class","inner");E=_.node().appendChild(S),M.node().appendChild(S);const F=S.getBBox();M.attr("transform","translate("+-F.width/2+", "+-F.height/2+")"),p0[a.id]||(p0[a.id]={}),p0[a.id].startRight=_,oX(E,a.startLabelRight)}if(a.endLabelLeft){const S=ab(a.endLabelLeft,a.labelStyle),_=i.insert("g").attr("class","edgeTerminals"),M=_.insert("g").attr("class","inner");E=M.node().appendChild(S);const F=S.getBBox();M.attr("transform","translate("+-F.width/2+", "+-F.height/2+")"),_.node().appendChild(S),p0[a.id]||(p0[a.id]={}),p0[a.id].endLeft=_,oX(E,a.endLabelLeft)}if(a.endLabelRight){const S=ab(a.endLabelRight,a.labelStyle),_=i.insert("g").attr("class","edgeTerminals"),M=_.insert("g").attr("class","inner");E=M.node().appendChild(S);const F=S.getBBox();M.attr("transform","translate("+-F.width/2+", "+-F.height/2+")"),_.node().appendChild(S),p0[a.id]||(p0[a.id]={}),p0[a.id].endRight=_,oX(E,a.endLabelRight)}return g};function oX(i,a){Re().flowchart.htmlLabels&&i&&(i.style.width=a.length*9+"px",i.style.height="12px")}const hzt=(i,a)=>{Kt.debug("Moving label abc88 ",i.id,i.label,aX[i.id],a);let f=a.updatedPath?a.updatedPath:a.originalPath;const g=Re(),{subGraphTitleTotalMargin:w}=rX(g);if(i.label){const v=aX[i.id];let b=i.x,E=i.y;if(f){const S=uo.calcLabelPosition(f);Kt.debug("Moving label "+i.label+" from (",b,",",E,") to (",S.x,",",S.y,") abc88"),a.updatedPath&&(b=S.x,E=S.y)}v.attr("transform",`translate(${b}, ${E+w/2})`)}if(i.startLabelLeft){const v=p0[i.id].startLeft;let b=i.x,E=i.y;if(f){const S=uo.calcTerminalLabelPosition(i.arrowTypeStart?10:0,"start_left",f);b=S.x,E=S.y}v.attr("transform",`translate(${b}, ${E})`)}if(i.startLabelRight){const v=p0[i.id].startRight;let b=i.x,E=i.y;if(f){const S=uo.calcTerminalLabelPosition(i.arrowTypeStart?10:0,"start_right",f);b=S.x,E=S.y}v.attr("transform",`translate(${b}, ${E})`)}if(i.endLabelLeft){const v=p0[i.id].endLeft;let b=i.x,E=i.y;if(f){const S=uo.calcTerminalLabelPosition(i.arrowTypeEnd?10:0,"end_left",f);b=S.x,E=S.y}v.attr("transform",`translate(${b}, ${E})`)}if(i.endLabelRight){const v=p0[i.id].endRight;let b=i.x,E=i.y;if(f){const S=uo.calcTerminalLabelPosition(i.arrowTypeEnd?10:0,"end_right",f);b=S.x,E=S.y}v.attr("transform",`translate(${b}, ${E})`)}},dWe=(i,a)=>{const f=i.x,g=i.y,w=Math.abs(a.x-f),v=Math.abs(a.y-g),b=i.width/2,E=i.height/2;return w>=b||v>=E},gWe=(i,a,f)=>{Kt.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(a)} + insidePoint : ${JSON.stringify(f)} + node : x:${i.x} y:${i.y} w:${i.width} h:${i.height}`);const g=i.x,w=i.y,v=Math.abs(g-f.x),b=i.width/2;let E=f.xMath.abs(g-a.x)*S){let F=f.y{Kt.debug("abc88 cutPathAtIntersect",i,a);let f=[],g=i[0],w=!1;return i.forEach(v=>{if(!dWe(a,v)&&!w){const b=gWe(a,g,v);let E=!1;f.forEach(S=>{E=E||S.x===b.x&&S.y===b.y}),f.some(S=>S.x===b.x&&S.y===b.y)||f.push(b),w=!0}else g=v,w||f.push(v)}),f},dzt=function(i,a,f,g,w,v,b){let E=f.points;Kt.debug("abc88 InsertEdge: edge=",f,"e=",a);let S=!1;const _=v.node(a.v);var M=v.node(a.w);M!=null&&M.intersect&&(_!=null&&_.intersect)&&(E=E.slice(1,f.points.length-1),E.unshift(_.intersect(E[0])),E.push(M.intersect(E[E.length-1]))),f.toCluster&&(Kt.debug("to cluster abc88",g[f.toCluster]),E=fzt(f.points,g[f.toCluster].node),S=!0),f.fromCluster&&(Kt.debug("from cluster abc88",g[f.fromCluster]),E=fzt(E.reverse(),g[f.fromCluster].node).reverse(),S=!0);const F=E.filter(mt=>!Number.isNaN(mt.y));let R=wF;f.curve&&(w==="graph"||w==="flowchart")&&(R=f.curve);const{x:B,y:z}=czt(f),Y=Ax().x(B).y(z).curve(R);let nt;switch(f.thickness){case"normal":nt="edge-thickness-normal";break;case"thick":nt="edge-thickness-thick";break;case"invisible":nt="edge-thickness-thick";break;default:nt=""}switch(f.pattern){case"solid":nt+=" edge-pattern-solid";break;case"dotted":nt+=" edge-pattern-dotted";break;case"dashed":nt+=" edge-pattern-dashed";break}const ot=i.append("path").attr("d",Y(F)).attr("id",f.id).attr("class"," "+nt+(f.classes?" "+f.classes:"")).attr("style",f.style);let ft="";(Re().flowchart.arrowMarkerAbsolute||Re().state.arrowMarkerAbsolute)&&(ft=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,ft=ft.replace(/\(/g,"\\("),ft=ft.replace(/\)/g,"\\)")),uzt(ot,f,ft,b,w);let wt={};return S&&(wt.updatedPath=E),wt.originalPath=f.points,wt},gzt=async(i,a,f,g,w,v)=>{Kt.info("Graph in recursive render: XXX",jx(a),w);const b=a.graph().rankdir;Kt.trace("Dir in recursive render - dir:",b);const E=i.insert("g").attr("class","root");a.nodes()?Kt.info("Recursive render XXX",a.nodes()):Kt.info("No nodes found for",a),a.edges().length>0&&Kt.trace("Recursive edges",a.edge(a.edges()[0]));const S=E.insert("g").attr("class","clusters"),_=E.insert("g").attr("class","edgePaths"),M=E.insert("g").attr("class","edgeLabels"),F=E.insert("g").attr("class","nodes");await Promise.all(a.nodes().map(async function(z){const Y=a.node(z);if(w!==void 0){const nt=JSON.parse(JSON.stringify(w.clusterData));Kt.info("Setting data for cluster XXX (",z,") ",nt,w),a.setNode(w.id,nt),a.parent(z)||(Kt.trace("Setting parent",z,w.id),a.setParent(z,w.id,nt))}if(Kt.info("(Insert) Node XXX"+z+": "+JSON.stringify(a.node(z))),Y&&Y.clusterNode){Kt.info("Cluster identified",z,Y.width,a.node(z));const nt=await gzt(F,Y.graph,f,g,a.node(z),v),ot=nt.elem;xh(Y,ot),Y.diff=nt.diff||0,Kt.info("Node bounds (abc123)",z,Y,Y.width,Y.x,Y.y),aWe(ot,Y),Kt.warn("Recursive render complete ",ot,Y)}else a.children(z).length>0?(Kt.info("Cluster - the non recursive path XXX",z,Y.id,Y,a),Kt.info(tB(Y.id,a)),ho[Y.id]={id:tB(Y.id,a),node:Y}):(Kt.info("Node - the non recursive path",z,Y.id,Y),await nX(F,a.node(z),b))})),a.edges().forEach(function(z){const Y=a.edge(z.v,z.w,z.name);Kt.info("Edge "+z.v+" -> "+z.w+": "+JSON.stringify(z)),Kt.info("Edge "+z.v+" -> "+z.w+": ",z," ",JSON.stringify(a.edge(z))),Kt.info("Fix",ho,"ids:",z.v,z.w,"Translateing: ",ho[z.v],ho[z.w]),tbt(M,Y)}),a.edges().forEach(function(z){Kt.info("Edge "+z.v+" -> "+z.w+": "+JSON.stringify(z))}),Kt.info("#############################################"),Kt.info("### Layout ###"),Kt.info("#############################################"),Kt.info(a),kD(a),Kt.info("Graph after layout:",jx(a));let R=0;const{subGraphTitleTotalMargin:B}=rX(v);return OKe(a).forEach(function(z){const Y=a.node(z);Kt.info("Position "+z+": "+JSON.stringify(a.node(z))),Kt.info("Position "+z+": ("+Y.x,","+Y.y,") width: ",Y.width," height: ",Y.height),Y&&Y.clusterNode?(Y.y+=B,Zpt(Y)):a.children(z).length>0?(Y.height+=B,uWe(S,Y),ho[Y.id].node=Y):(Y.y+=B/2,Zpt(Y))}),a.edges().forEach(function(z){const Y=a.edge(z);Kt.info("Edge "+z.v+" -> "+z.w+": "+JSON.stringify(Y),Y),Y.points.forEach(ot=>ot.y+=B/2);const nt=dzt(_,z,Y,ho,f,a,g);hzt(Y,nt)}),a.nodes().forEach(function(z){const Y=a.node(z);Kt.info(z,Y.type,Y.diff),Y.type==="group"&&(R=Y.diff)}),{elem:E,diff:R}},ebt=async(i,a,f,g,w)=>{jpt(i,f,g,w),oWe(),fWe(),lWe(),DKe(),Kt.warn("Graph at first:",JSON.stringify(jx(a))),IKe(a),Kt.warn("Graph after:",JSON.stringify(jx(a)));const v=Re();await gzt(i,a,g,w,void 0,v)},pzt={},pWe=function(i){const a=Object.keys(i);for(const f of a)pzt[f]=i[f]},bzt=function(i,a,f,g,w,v){const b=g.select(`[id="${f}"]`);Object.keys(i).forEach(function(S){const _=i[S];let M="default";_.classes.length>0&&(M=_.classes.join(" ")),M=M+" flowchart-label";const F=C2(_.styles);let R=_.text!==void 0?_.text:_.id,B;if(Kt.info("vertex",_,_.labelType),_.labelType==="markdown")Kt.info("vertex",_,_.labelType);else if(j1(Re().flowchart.htmlLabels)){const nt={label:R.replace(/fa[blrs]?:fa-[\w-]+/g,ot=>``)};B=Mpt(b,nt).node(),B.parentNode.removeChild(B)}else{const nt=w.createElementNS("http://www.w3.org/2000/svg","text");nt.setAttribute("style",F.labelStyle.replace("color:","fill:"));const ot=R.split(ei.lineBreakRegex);for(const ft of ot){const wt=w.createElementNS("http://www.w3.org/2000/svg","tspan");wt.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),wt.setAttribute("dy","1em"),wt.setAttribute("x","1"),wt.textContent=ft,nt.appendChild(wt)}B=nt}let z=0,Y="";switch(_.type){case"round":z=5,Y="rect";break;case"square":Y="rect";break;case"diamond":Y="question";break;case"hexagon":Y="hexagon";break;case"odd":Y="rect_left_inv_arrow";break;case"lean_right":Y="lean_right";break;case"lean_left":Y="lean_left";break;case"trapezoid":Y="trapezoid";break;case"inv_trapezoid":Y="inv_trapezoid";break;case"odd_right":Y="rect_left_inv_arrow";break;case"circle":Y="circle";break;case"ellipse":Y="ellipse";break;case"stadium":Y="stadium";break;case"subroutine":Y="subroutine";break;case"cylinder":Y="cylinder";break;case"group":Y="rect";break;case"doublecircle":Y="doublecircle";break;default:Y="rect"}a.setNode(_.id,{labelStyle:F.labelStyle,shape:Y,labelText:R,labelType:_.labelType,rx:z,ry:z,class:M,style:F.style,id:_.id,link:_.link,linkTarget:_.linkTarget,tooltip:v.db.getTooltip(_.id)||"",domId:v.db.lookUpDomId(_.id),haveCallback:_.haveCallback,width:_.type==="group"?500:void 0,dir:_.dir,type:_.type,props:_.props,padding:Re().flowchart.padding}),Kt.info("setNode",{labelStyle:F.labelStyle,labelType:_.labelType,shape:Y,labelText:R,rx:z,ry:z,class:M,style:F.style,id:_.id,domId:v.db.lookUpDomId(_.id),width:_.type==="group"?500:void 0,type:_.type,dir:_.dir,props:_.props,padding:Re().flowchart.padding})})},wzt=function(i,a,f){Kt.info("abc78 edges = ",i);let g=0,w={},v,b;if(i.defaultStyle!==void 0){const E=C2(i.defaultStyle);v=E.style,b=E.labelStyle}i.forEach(function(E){g++;const S="L-"+E.start+"-"+E.end;w[S]===void 0?(w[S]=0,Kt.info("abc78 new entry",S,w[S])):(w[S]++,Kt.info("abc78 new entry",S,w[S]));let _=S+"-"+w[S];Kt.info("abc78 new link id to be used is",S,_,w[S]);const M="LS-"+E.start,F="LE-"+E.end,R={style:"",labelStyle:""};switch(R.minlen=E.length||1,E.type==="arrow_open"?R.arrowhead="none":R.arrowhead="normal",R.arrowTypeStart="arrow_open",R.arrowTypeEnd="arrow_open",E.type){case"double_arrow_cross":R.arrowTypeStart="arrow_cross";case"arrow_cross":R.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":R.arrowTypeStart="arrow_point";case"arrow_point":R.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":R.arrowTypeStart="arrow_circle";case"arrow_circle":R.arrowTypeEnd="arrow_circle";break}let B="",z="";switch(E.stroke){case"normal":B="fill:none;",v!==void 0&&(B=v),b!==void 0&&(z=b),R.thickness="normal",R.pattern="solid";break;case"dotted":R.thickness="normal",R.pattern="dotted",R.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":R.thickness="thick",R.pattern="solid",R.style="stroke-width: 3.5px;fill:none;";break;case"invisible":R.thickness="invisible",R.pattern="solid",R.style="stroke-width: 0;fill:none;";break}if(E.style!==void 0){const Y=C2(E.style);B=Y.style,z=Y.labelStyle}R.style=R.style+=B,R.labelStyle=R.labelStyle+=z,E.interpolate!==void 0?R.curve=Xw(E.interpolate,Kg):i.defaultInterpolate!==void 0?R.curve=Xw(i.defaultInterpolate,Kg):R.curve=Xw(pzt.curve,Kg),E.text===void 0?E.style!==void 0&&(R.arrowheadStyle="fill: #333"):(R.arrowheadStyle="fill: #333",R.labelpos="c"),R.labelType=E.labelType,R.label=E.text.replace(ei.lineBreakRegex,` +`),E.style===void 0&&(R.style=R.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),R.labelStyle=R.labelStyle.replace("color:","fill:"),R.id=_,R.classes="flowchart-link "+M+" "+F,a.setEdge(E.start,E.end,R,g)})},nbt={setConf:pWe,addVertices:bzt,addEdges:wzt,getClasses:function(i,a){return a.db.getClasses()},draw:async function(i,a,f,g){Kt.info("Drawing flowchart");let w=g.db.getDirection();w===void 0&&(w="TD");const{securityLevel:v,flowchart:b}=Re(),E=b.nodeSpacing||50,S=b.rankSpacing||50;let _;v==="sandbox"&&(_=Tr("#i"+a));const M=Tr(v==="sandbox"?_.nodes()[0].contentDocument.body:"body"),F=v==="sandbox"?_.nodes()[0].contentDocument:document,R=new l1({multigraph:!0,compound:!0}).setGraph({rankdir:w,nodesep:E,ranksep:S,marginx:0,marginy:0}).setDefaultEdgeLabel(function(){return{}});let B;const z=g.db.getSubGraphs();Kt.info("Subgraphs - ",z);for(let ct=z.length-1;ct>=0;ct--)B=z[ct],Kt.info("Subgraph - ",B),g.db.addVertex(B.id,{text:B.title,type:B.labelType},"group",void 0,B.classes,B.dir);const Y=g.db.getVertices(),nt=g.db.getEdges();Kt.info("Edges",nt);let ot=0;for(ot=z.length-1;ot>=0;ot--){B=z[ot],$Ot("cluster").append("text");for(let ct=0;ct{const f=jPt,g=f(i,"r"),w=f(i,"g"),v=f(i,"b");return g9(g,w,v,a)},mzt=i=>`.label { + font-family: ${i.fontFamily}; + color: ${i.nodeTextColor||i.textColor}; + } + .cluster-label text { + fill: ${i.titleColor}; + } + .cluster-label span,p { + color: ${i.titleColor}; + } + + .label text,span,p { + fill: ${i.nodeTextColor||i.textColor}; + color: ${i.nodeTextColor||i.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${i.mainBkg}; + stroke: ${i.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${i.arrowheadColor}; + } + + .edgePath .path { + stroke: ${i.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${i.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${i.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${i.edgeLabelBackground}; + fill: ${i.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${bWe(i.edgeLabelBackground,.5)}; + // background-color: + } + + .cluster rect { + fill: ${i.clusterBkg}; + stroke: ${i.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${i.titleColor}; + } + + .cluster span,p { + color: ${i.titleColor}; + } + /* .cluster div { + color: ${i.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${i.fontFamily}; + font-size: 12px; + background: ${i.tertiaryColor}; + border: 1px solid ${i.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${i.textColor}; + } +`,wWe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:spt,db:A9,renderer:nbt,styles:mzt,init:i=>{i.flowchart||(i.flowchart={}),i.flowchart.arrowMarkerAbsolute=i.arrowMarkerAbsolute,wUe.setConf(i.flowchart),A9.clear(),A9.setGen("gen-1")}}},Symbol.toStringTag,{value:"Module"})),mWe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:spt,db:A9,renderer:nbt,styles:mzt,init:i=>{i.flowchart||(i.flowchart={}),i.flowchart.arrowMarkerAbsolute=i.arrowMarkerAbsolute,bPe({flowchart:{arrowMarkerAbsolute:i.arrowMarkerAbsolute}}),nbt.setConf(i.flowchart),A9.clear(),A9.setGen("gen-2")}}},Symbol.toStringTag,{value:"Module"}));var rbt=function(){var i=function(gt,Q,dt,K){for(dt=dt||{},K=gt.length;K--;dt[gt[K]]=Q);return dt},a=[6,8,10,20,22,24,26,27,28],f=[1,10],g=[1,11],w=[1,12],v=[1,13],b=[1,14],E=[1,15],S=[1,21],_=[1,22],M=[1,23],F=[1,24],R=[1,25],B=[6,8,10,13,15,18,19,20,22,24,26,27,28,41,42,43,44,45],z=[1,34],Y=[27,28,46,47],nt=[41,42,43,44,45],ot=[17,34],ft=[1,54],wt=[1,53],mt=[17,34,36,38],ct={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,":":13,role:14,BLOCK_START:15,attributes:16,BLOCK_STOP:17,SQS:18,SQE:19,title:20,title_value:21,acc_title:22,acc_title_value:23,acc_descr:24,acc_descr_value:25,acc_descr_multiline_value:26,ALPHANUM:27,ENTITY_NAME:28,attribute:29,attributeType:30,attributeName:31,attributeKeyTypeList:32,attributeComment:33,ATTRIBUTE_WORD:34,attributeKeyType:35,COMMA:36,ATTRIBUTE_KEY:37,COMMENT:38,cardinality:39,relType:40,ZERO_OR_ONE:41,ZERO_OR_MORE:42,ONE_OR_MORE:43,ONLY_ONE:44,MD_PARENT:45,NON_IDENTIFYING:46,IDENTIFYING:47,WORD:48,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:":",15:"BLOCK_START",17:"BLOCK_STOP",18:"SQS",19:"SQE",20:"title",21:"title_value",22:"acc_title",23:"acc_title_value",24:"acc_descr",25:"acc_descr_value",26:"acc_descr_multiline_value",27:"ALPHANUM",28:"ENTITY_NAME",34:"ATTRIBUTE_WORD",36:"COMMA",37:"ATTRIBUTE_KEY",38:"COMMENT",41:"ZERO_OR_ONE",42:"ZERO_OR_MORE",43:"ONE_OR_MORE",44:"ONLY_ONE",45:"MD_PARENT",46:"NON_IDENTIFYING",47:"IDENTIFYING",48:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,4],[9,3],[9,1],[9,7],[9,6],[9,4],[9,2],[9,2],[9,2],[9,1],[11,1],[11,1],[16,1],[16,2],[29,2],[29,3],[29,3],[29,4],[30,1],[31,1],[32,1],[32,3],[35,1],[33,1],[12,3],[39,1],[39,1],[39,1],[39,1],[39,1],[40,1],[40,1],[14,1],[14,1],[14,1]],performAction:function(Q,dt,K,yt,V,Ot,It){var jt=Ot.length-1;switch(V){case 1:break;case 2:this.$=[];break;case 3:Ot[jt-1].push(Ot[jt]),this.$=Ot[jt-1];break;case 4:case 5:this.$=Ot[jt];break;case 6:case 7:this.$=[];break;case 8:yt.addEntity(Ot[jt-4]),yt.addEntity(Ot[jt-2]),yt.addRelationship(Ot[jt-4],Ot[jt],Ot[jt-2],Ot[jt-3]);break;case 9:yt.addEntity(Ot[jt-3]),yt.addAttributes(Ot[jt-3],Ot[jt-1]);break;case 10:yt.addEntity(Ot[jt-2]);break;case 11:yt.addEntity(Ot[jt]);break;case 12:yt.addEntity(Ot[jt-6],Ot[jt-4]),yt.addAttributes(Ot[jt-6],Ot[jt-1]);break;case 13:yt.addEntity(Ot[jt-5],Ot[jt-3]);break;case 14:yt.addEntity(Ot[jt-3],Ot[jt-1]);break;case 15:case 16:this.$=Ot[jt].trim(),yt.setAccTitle(this.$);break;case 17:case 18:this.$=Ot[jt].trim(),yt.setAccDescription(this.$);break;case 19:case 43:this.$=Ot[jt];break;case 20:case 41:case 42:this.$=Ot[jt].replace(/"/g,"");break;case 21:case 29:this.$=[Ot[jt]];break;case 22:Ot[jt].push(Ot[jt-1]),this.$=Ot[jt];break;case 23:this.$={attributeType:Ot[jt-1],attributeName:Ot[jt]};break;case 24:this.$={attributeType:Ot[jt-2],attributeName:Ot[jt-1],attributeKeyTypeList:Ot[jt]};break;case 25:this.$={attributeType:Ot[jt-2],attributeName:Ot[jt-1],attributeComment:Ot[jt]};break;case 26:this.$={attributeType:Ot[jt-3],attributeName:Ot[jt-2],attributeKeyTypeList:Ot[jt-1],attributeComment:Ot[jt]};break;case 27:case 28:case 31:this.$=Ot[jt];break;case 30:Ot[jt-2].push(Ot[jt]),this.$=Ot[jt-2];break;case 32:this.$=Ot[jt].replace(/"/g,"");break;case 33:this.$={cardA:Ot[jt],relType:Ot[jt-1],cardB:Ot[jt-2]};break;case 34:this.$=yt.Cardinality.ZERO_OR_ONE;break;case 35:this.$=yt.Cardinality.ZERO_OR_MORE;break;case 36:this.$=yt.Cardinality.ONE_OR_MORE;break;case 37:this.$=yt.Cardinality.ONLY_ONE;break;case 38:this.$=yt.Cardinality.MD_PARENT;break;case 39:this.$=yt.Identification.NON_IDENTIFYING;break;case 40:this.$=yt.Identification.IDENTIFYING;break}},table:[{3:1,4:[1,2]},{1:[3]},i(a,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,20:f,22:g,24:w,26:v,27:b,28:E},i(a,[2,7],{1:[2,1]}),i(a,[2,3]),{9:16,11:9,20:f,22:g,24:w,26:v,27:b,28:E},i(a,[2,5]),i(a,[2,6]),i(a,[2,11],{12:17,39:20,15:[1,18],18:[1,19],41:S,42:_,43:M,44:F,45:R}),{21:[1,26]},{23:[1,27]},{25:[1,28]},i(a,[2,18]),i(B,[2,19]),i(B,[2,20]),i(a,[2,4]),{11:29,27:b,28:E},{16:30,17:[1,31],29:32,30:33,34:z},{11:35,27:b,28:E},{40:36,46:[1,37],47:[1,38]},i(Y,[2,34]),i(Y,[2,35]),i(Y,[2,36]),i(Y,[2,37]),i(Y,[2,38]),i(a,[2,15]),i(a,[2,16]),i(a,[2,17]),{13:[1,39]},{17:[1,40]},i(a,[2,10]),{16:41,17:[2,21],29:32,30:33,34:z},{31:42,34:[1,43]},{34:[2,27]},{19:[1,44]},{39:45,41:S,42:_,43:M,44:F,45:R},i(nt,[2,39]),i(nt,[2,40]),{14:46,27:[1,49],28:[1,48],48:[1,47]},i(a,[2,9]),{17:[2,22]},i(ot,[2,23],{32:50,33:51,35:52,37:ft,38:wt}),i([17,34,37,38],[2,28]),i(a,[2,14],{15:[1,55]}),i([27,28],[2,33]),i(a,[2,8]),i(a,[2,41]),i(a,[2,42]),i(a,[2,43]),i(ot,[2,24],{33:56,36:[1,57],38:wt}),i(ot,[2,25]),i(mt,[2,29]),i(ot,[2,32]),i(mt,[2,31]),{16:58,17:[1,59],29:32,30:33,34:z},i(ot,[2,26]),{35:60,37:ft},{17:[1,61]},i(a,[2,13]),i(mt,[2,30]),i(a,[2,12])],defaultActions:{34:[2,27],41:[2,22]},parseError:function(Q,dt){if(dt.recoverable)this.trace(Q);else{var K=new Error(Q);throw K.hash=dt,K}},parse:function(Q){var dt=this,K=[0],yt=[],V=[null],Ot=[],It=this.table,jt="",xt=0,Ft=0,Ct=2,kt=1,Gt=Ot.slice.call(arguments,1),Fe=Object.create(this.lexer),Mt={yy:{}};for(var pn in this.yy)Object.prototype.hasOwnProperty.call(this.yy,pn)&&(Mt.yy[pn]=this.yy[pn]);Fe.setInput(Q,Mt.yy),Mt.yy.lexer=Fe,Mt.yy.parser=this,typeof Fe.yylloc>"u"&&(Fe.yylloc={});var Ae=Fe.yylloc;Ot.push(Ae);var ye=Fe.options&&Fe.options.ranges;typeof Mt.yy.parseError=="function"?this.parseError=Mt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function tn(){var Fi;return Fi=yt.pop()||Fe.lex()||kt,typeof Fi!="number"&&(Fi instanceof Array&&(yt=Fi,Fi=yt.pop()),Fi=dt.symbols_[Fi]||Fi),Fi}for(var sn,be,Ne,Xt,_e={},xe,Mn,ce,Br;;){if(be=K[K.length-1],this.defaultActions[be]?Ne=this.defaultActions[be]:((sn===null||typeof sn>"u")&&(sn=tn()),Ne=It[be]&&It[be][sn]),typeof Ne>"u"||!Ne.length||!Ne[0]){var we="";Br=[];for(xe in It[be])this.terminals_[xe]&&xe>Ct&&Br.push("'"+this.terminals_[xe]+"'");Fe.showPosition?we="Parse error on line "+(xt+1)+`: +`+Fe.showPosition()+` +Expecting `+Br.join(", ")+", got '"+(this.terminals_[sn]||sn)+"'":we="Parse error on line "+(xt+1)+": Unexpected "+(sn==kt?"end of input":"'"+(this.terminals_[sn]||sn)+"'"),this.parseError(we,{text:Fe.match,token:this.terminals_[sn]||sn,line:Fe.yylineno,loc:Ae,expected:Br})}if(Ne[0]instanceof Array&&Ne.length>1)throw new Error("Parse Error: multiple actions possible at state: "+be+", token: "+sn);switch(Ne[0]){case 1:K.push(sn),V.push(Fe.yytext),Ot.push(Fe.yylloc),K.push(Ne[1]),sn=null,Ft=Fe.yyleng,jt=Fe.yytext,xt=Fe.yylineno,Ae=Fe.yylloc;break;case 2:if(Mn=this.productions_[Ne[1]][1],_e.$=V[V.length-Mn],_e._$={first_line:Ot[Ot.length-(Mn||1)].first_line,last_line:Ot[Ot.length-1].last_line,first_column:Ot[Ot.length-(Mn||1)].first_column,last_column:Ot[Ot.length-1].last_column},ye&&(_e._$.range=[Ot[Ot.length-(Mn||1)].range[0],Ot[Ot.length-1].range[1]]),Xt=this.performAction.apply(_e,[jt,Ft,xt,Mt.yy,Ne[1],V,Ot].concat(Gt)),typeof Xt<"u")return Xt;Mn&&(K=K.slice(0,-1*Mn*2),V=V.slice(0,-1*Mn),Ot=Ot.slice(0,-1*Mn)),K.push(this.productions_[Ne[1]][0]),V.push(_e.$),Ot.push(_e._$),ce=It[K[K.length-2]][K[K.length-1]],K.push(ce);break;case 3:return!0}}return!0}},rt=function(){var gt={EOF:1,parseError:function(dt,K){if(this.yy.parser)this.yy.parser.parseError(dt,K);else throw new Error(dt)},setInput:function(Q,dt){return this.yy=dt||this.yy||{},this._input=Q,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Q=this._input[0];this.yytext+=Q,this.yyleng++,this.offset++,this.match+=Q,this.matched+=Q;var dt=Q.match(/(?:\r\n?|\n).*/g);return dt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Q},unput:function(Q){var dt=Q.length,K=Q.split(/(?:\r\n?|\n)/g);this._input=Q+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-dt),this.offset-=dt;var yt=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),K.length-1&&(this.yylineno-=K.length-1);var V=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:K?(K.length===yt.length?this.yylloc.first_column:0)+yt[yt.length-K.length].length-K[0].length:this.yylloc.first_column-dt},this.options.ranges&&(this.yylloc.range=[V[0],V[0]+this.yyleng-dt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Q){this.unput(this.match.slice(Q))},pastInput:function(){var Q=this.matched.substr(0,this.matched.length-this.match.length);return(Q.length>20?"...":"")+Q.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Q=this.match;return Q.length<20&&(Q+=this._input.substr(0,20-Q.length)),(Q.substr(0,20)+(Q.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Q=this.pastInput(),dt=new Array(Q.length+1).join("-");return Q+this.upcomingInput()+` +`+dt+"^"},test_match:function(Q,dt){var K,yt,V;if(this.options.backtrack_lexer&&(V={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(V.yylloc.range=this.yylloc.range.slice(0))),yt=Q[0].match(/(?:\r\n?|\n).*/g),yt&&(this.yylineno+=yt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:yt?yt[yt.length-1].length-yt[yt.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Q[0].length},this.yytext+=Q[0],this.match+=Q[0],this.matches=Q,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Q[0].length),this.matched+=Q[0],K=this.performAction.call(this,this.yy,this,dt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),K)return K;if(this._backtrack){for(var Ot in V)this[Ot]=V[Ot];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Q,dt,K,yt;this._more||(this.yytext="",this.match="");for(var V=this._currentRules(),Ot=0;Otdt[0].length)){if(dt=K,yt=Ot,this.options.backtrack_lexer){if(Q=this.test_match(K,V[Ot]),Q!==!1)return Q;if(this._backtrack){dt=!1;continue}else return!1}else if(!this.options.flex)break}return dt?(Q=this.test_match(dt,V[yt]),Q!==!1?Q:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var dt=this.next();return dt||this.lex()},begin:function(dt){this.conditionStack.push(dt)},popState:function(){var dt=this.conditionStack.length-1;return dt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(dt){return dt=this.conditionStack.length-1-Math.abs(dt||0),dt>=0?this.conditionStack[dt]:"INITIAL"},pushState:function(dt){this.begin(dt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(dt,K,yt,V){switch(yt){case 0:return this.begin("acc_title"),22;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),24;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 10;case 8:break;case 9:return 8;case 10:return 28;case 11:return 48;case 12:return 4;case 13:return this.begin("block"),15;case 14:return 36;case 15:break;case 16:return 37;case 17:return 34;case 18:return 34;case 19:return 38;case 20:break;case 21:return this.popState(),17;case 22:return K.yytext[0];case 23:return 18;case 24:return 19;case 25:return 41;case 26:return 43;case 27:return 43;case 28:return 43;case 29:return 41;case 30:return 41;case 31:return 42;case 32:return 42;case 33:return 42;case 34:return 42;case 35:return 42;case 36:return 43;case 37:return 42;case 38:return 43;case 39:return 44;case 40:return 44;case 41:return 44;case 42:return 44;case 43:return 41;case 44:return 42;case 45:return 43;case 46:return 45;case 47:return 46;case 48:return 47;case 49:return 47;case 50:return 46;case 51:return 46;case 52:return 46;case 53:return 27;case 54:return K.yytext[0];case 55:return 6}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:,)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:(.*?)[~](.*?)*[~])/i,/^(?:[\*A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:1\b)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\s*u\b)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[14,15,16,17,18,19,20,21,22],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55],inclusive:!0}}};return gt}();ct.lexer=rt;function it(){this.yy={}}return it.prototype=ct,ct.Parser=it,new it}();rbt.parser=rbt;const vWe=rbt;let S8={},ibt=[];const yWe={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},xWe={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},vzt=function(i,a=void 0){return S8[i]===void 0?(S8[i]={attributes:[],alias:a},Kt.info("Added new entity :",i)):S8[i]&&!S8[i].alias&&a&&(S8[i].alias=a,Kt.info(`Add alias '${a}' to entity '${i}'`)),S8[i]},kWe={Cardinality:yWe,Identification:xWe,getConfig:()=>Re().er,addEntity:vzt,addAttributes:function(i,a){let f=vzt(i),g;for(g=a.length-1;g>=0;g--)f.attributes.push(a[g]),Kt.debug("Added attribute ",a[g].attributeName)},getEntities:()=>S8,addRelationship:function(i,a,f,g){let w={entityA:i,roleA:a,entityB:f,relSpec:g};ibt.push(w),Kt.debug("Added new relationship :",w)},getRelationships:()=>ibt,clear:function(){S8={},ibt=[],ag()},setAccTitle:og,getAccTitle:Xg,setAccDescription:Qg,getAccDescription:Jg,setDiagramTitle:S2,getDiagramTitle:Zg},ey={ONLY_ONE_START:"ONLY_ONE_START",ONLY_ONE_END:"ONLY_ONE_END",ZERO_OR_ONE_START:"ZERO_OR_ONE_START",ZERO_OR_ONE_END:"ZERO_OR_ONE_END",ONE_OR_MORE_START:"ONE_OR_MORE_START",ONE_OR_MORE_END:"ONE_OR_MORE_END",ZERO_OR_MORE_START:"ZERO_OR_MORE_START",ZERO_OR_MORE_END:"ZERO_OR_MORE_END",MD_PARENT_END:"MD_PARENT_END",MD_PARENT_START:"MD_PARENT_START"},ny={ERMarkers:ey,insertMarkers:function(i,a){let f;i.append("defs").append("marker").attr("id",ey.MD_PARENT_START).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id",ey.MD_PARENT_END).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id",ey.ONLY_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M9,0 L9,18 M15,0 L15,18"),i.append("defs").append("marker").attr("id",ey.ONLY_ONE_END).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M3,0 L3,18 M9,0 L9,18"),f=i.append("defs").append("marker").attr("id",ey.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),f.append("circle").attr("stroke",a.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),f.append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M9,0 L9,18"),f=i.append("defs").append("marker").attr("id",ey.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),f.append("circle").attr("stroke",a.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),f.append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M21,0 L21,18"),i.append("defs").append("marker").attr("id",ey.ONE_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),i.append("defs").append("marker").attr("id",ey.ONE_OR_MORE_END).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"),f=i.append("defs").append("marker").attr("id",ey.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),f.append("circle").attr("stroke",a.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),f.append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),f=i.append("defs").append("marker").attr("id",ey.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),f.append("circle").attr("stroke",a.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),f.append("path").attr("stroke",a.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")}},EWe=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function TWe(i){return typeof i=="string"&&EWe.test(i)}const b0=[];for(let i=0;i<256;++i)b0.push((i+256).toString(16).slice(1));function CWe(i,a=0){return(b0[i[a+0]]+b0[i[a+1]]+b0[i[a+2]]+b0[i[a+3]]+"-"+b0[i[a+4]]+b0[i[a+5]]+"-"+b0[i[a+6]]+b0[i[a+7]]+"-"+b0[i[a+8]]+b0[i[a+9]]+"-"+b0[i[a+10]]+b0[i[a+11]]+b0[i[a+12]]+b0[i[a+13]]+b0[i[a+14]]+b0[i[a+15]]).toLowerCase()}function SWe(i){if(!TWe(i))throw TypeError("Invalid UUID");let a;const f=new Uint8Array(16);return f[0]=(a=parseInt(i.slice(0,8),16))>>>24,f[1]=a>>>16&255,f[2]=a>>>8&255,f[3]=a&255,f[4]=(a=parseInt(i.slice(9,13),16))>>>8,f[5]=a&255,f[6]=(a=parseInt(i.slice(14,18),16))>>>8,f[7]=a&255,f[8]=(a=parseInt(i.slice(19,23),16))>>>8,f[9]=a&255,f[10]=(a=parseInt(i.slice(24,36),16))/1099511627776&255,f[11]=a/4294967296&255,f[12]=a>>>24&255,f[13]=a>>>16&255,f[14]=a>>>8&255,f[15]=a&255,f}function _We(i){i=unescape(encodeURIComponent(i));const a=[];for(let f=0;f>>32-a}function IWe(i){const a=[1518500249,1859775393,2400959708,3395469782],f=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof i=="string"){const b=unescape(encodeURIComponent(i));i=[];for(let E=0;E>>0;R=F,F=M,M=sbt(_,30)>>>0,_=S,S=Y}f[0]=f[0]+S>>>0,f[1]=f[1]+_>>>0,f[2]=f[2]+M>>>0,f[3]=f[3]+F>>>0,f[4]=f[4]+R>>>0}return[f[0]>>24&255,f[0]>>16&255,f[0]>>8&255,f[0]&255,f[1]>>24&255,f[1]>>16&255,f[1]>>8&255,f[1]&255,f[2]>>24&255,f[2]>>16&255,f[2]>>8&255,f[2]&255,f[3]>>24&255,f[3]>>16&255,f[3]>>8&255,f[3]&255,f[4]>>24&255,f[4]>>16&255,f[4]>>8&255,f[4]&255]}const OWe=DWe("v5",80,IWe),NWe=/[^\dA-Za-z](\W)*/g;let z1={},nB=new Map;const PWe=function(i){const a=Object.keys(i);for(const f of a)z1[f]=i[f]},FWe=(i,a,f)=>{const g=z1.entityPadding/3,w=z1.entityPadding/3,v=z1.fontSize*.85,b=a.node().getBBox(),E=[];let S=!1,_=!1,M=0,F=0,R=0,B=0,z=b.height+g*2,Y=1;f.forEach(wt=>{wt.attributeKeyTypeList!==void 0&&wt.attributeKeyTypeList.length>0&&(S=!0),wt.attributeComment!==void 0&&(_=!0)}),f.forEach(wt=>{const mt=`${a.node().id}-attr-${Y}`;let ct=0;const rt=kF(wt.attributeType),it=i.append("text").classed("er entityLabel",!0).attr("id",`${mt}-type`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Re().fontFamily).style("font-size",v+"px").text(rt),gt=i.append("text").classed("er entityLabel",!0).attr("id",`${mt}-name`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Re().fontFamily).style("font-size",v+"px").text(wt.attributeName),Q={};Q.tn=it,Q.nn=gt;const dt=it.node().getBBox(),K=gt.node().getBBox();if(M=Math.max(M,dt.width),F=Math.max(F,K.width),ct=Math.max(dt.height,K.height),S){const yt=wt.attributeKeyTypeList!==void 0?wt.attributeKeyTypeList.join(","):"",V=i.append("text").classed("er entityLabel",!0).attr("id",`${mt}-key`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Re().fontFamily).style("font-size",v+"px").text(yt);Q.kn=V;const Ot=V.node().getBBox();R=Math.max(R,Ot.width),ct=Math.max(ct,Ot.height)}if(_){const yt=i.append("text").classed("er entityLabel",!0).attr("id",`${mt}-comment`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Re().fontFamily).style("font-size",v+"px").text(wt.attributeComment||"");Q.cn=yt;const V=yt.node().getBBox();B=Math.max(B,V.width),ct=Math.max(ct,V.height)}Q.height=ct,E.push(Q),z+=ct+g*2,Y+=1});let nt=4;S&&(nt+=2),_&&(nt+=2);const ot=M+F+R+B,ft={width:Math.max(z1.minEntityWidth,Math.max(b.width+z1.entityPadding*2,ot+w*nt)),height:f.length>0?z:Math.max(z1.minEntityHeight,b.height+z1.entityPadding*2)};if(f.length>0){const wt=Math.max(0,(ft.width-ot-w*nt)/(nt/2));a.attr("transform","translate("+ft.width/2+","+(g+b.height/2)+")");let mt=b.height+g*2,ct="attributeBoxOdd";E.forEach(rt=>{const it=mt+g+rt.height/2;rt.tn.attr("transform","translate("+w+","+it+")");const gt=i.insert("rect","#"+rt.tn.node().id).classed(`er ${ct}`,!0).attr("x",0).attr("y",mt).attr("width",M+w*2+wt).attr("height",rt.height+g*2),Q=parseFloat(gt.attr("x"))+parseFloat(gt.attr("width"));rt.nn.attr("transform","translate("+(Q+w)+","+it+")");const dt=i.insert("rect","#"+rt.nn.node().id).classed(`er ${ct}`,!0).attr("x",Q).attr("y",mt).attr("width",F+w*2+wt).attr("height",rt.height+g*2);let K=parseFloat(dt.attr("x"))+parseFloat(dt.attr("width"));if(S){rt.kn.attr("transform","translate("+(K+w)+","+it+")");const yt=i.insert("rect","#"+rt.kn.node().id).classed(`er ${ct}`,!0).attr("x",K).attr("y",mt).attr("width",R+w*2+wt).attr("height",rt.height+g*2);K=parseFloat(yt.attr("x"))+parseFloat(yt.attr("width"))}_&&(rt.cn.attr("transform","translate("+(K+w)+","+it+")"),i.insert("rect","#"+rt.cn.node().id).classed(`er ${ct}`,"true").attr("x",K).attr("y",mt).attr("width",B+w*2+wt).attr("height",rt.height+g*2)),mt+=rt.height+g*2,ct=ct==="attributeBoxOdd"?"attributeBoxEven":"attributeBoxOdd"})}else ft.height=Math.max(z1.minEntityHeight,z),a.attr("transform","translate("+ft.width/2+","+ft.height/2+")");return ft},BWe=function(i,a,f){const g=Object.keys(a);let w;return g.forEach(function(v){const b=HWe(v,"entity");nB.set(v,b);const E=i.append("g").attr("id",b);w=w===void 0?b:w;const S="text-"+b,_=E.append("text").classed("er entityLabel",!0).attr("id",S).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","middle").style("font-family",Re().fontFamily).style("font-size",z1.fontSize+"px").text(a[v].alias??v),{width:M,height:F}=FWe(E,_,a[v].attributes),B=E.insert("rect","#"+S).classed("er entityBox",!0).attr("x",0).attr("y",0).attr("width",M).attr("height",F).node().getBBox();f.setNode(b,{width:B.width,height:B.height,shape:"rect",id:b})}),w},RWe=function(i,a){a.nodes().forEach(function(f){f!==void 0&&a.node(f)!==void 0&&i.select("#"+f).attr("transform","translate("+(a.node(f).x-a.node(f).width/2)+","+(a.node(f).y-a.node(f).height/2)+" )")})},yzt=function(i){return(i.entityA+i.roleA+i.entityB).replace(/\s/g,"")},jWe=function(i,a){return i.forEach(function(f){a.setEdge(nB.get(f.entityA),nB.get(f.entityB),{relationship:f},yzt(f))}),i};let xzt=0;const $We=function(i,a,f,g,w){xzt++;const v=f.edge(nB.get(a.entityA),nB.get(a.entityB),yzt(a)),b=Ax().x(function(z){return z.x}).y(function(z){return z.y}).curve(wF),E=i.insert("path","#"+g).classed("er relationshipLine",!0).attr("d",b(v.points)).style("stroke",z1.stroke).style("fill","none");a.relSpec.relType===w.db.Identification.NON_IDENTIFYING&&E.attr("stroke-dasharray","8,8");let S="";switch(z1.arrowMarkerAbsolute&&(S=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,S=S.replace(/\(/g,"\\("),S=S.replace(/\)/g,"\\)")),a.relSpec.cardA){case w.db.Cardinality.ZERO_OR_ONE:E.attr("marker-end","url("+S+"#"+ny.ERMarkers.ZERO_OR_ONE_END+")");break;case w.db.Cardinality.ZERO_OR_MORE:E.attr("marker-end","url("+S+"#"+ny.ERMarkers.ZERO_OR_MORE_END+")");break;case w.db.Cardinality.ONE_OR_MORE:E.attr("marker-end","url("+S+"#"+ny.ERMarkers.ONE_OR_MORE_END+")");break;case w.db.Cardinality.ONLY_ONE:E.attr("marker-end","url("+S+"#"+ny.ERMarkers.ONLY_ONE_END+")");break;case w.db.Cardinality.MD_PARENT:E.attr("marker-end","url("+S+"#"+ny.ERMarkers.MD_PARENT_END+")");break}switch(a.relSpec.cardB){case w.db.Cardinality.ZERO_OR_ONE:E.attr("marker-start","url("+S+"#"+ny.ERMarkers.ZERO_OR_ONE_START+")");break;case w.db.Cardinality.ZERO_OR_MORE:E.attr("marker-start","url("+S+"#"+ny.ERMarkers.ZERO_OR_MORE_START+")");break;case w.db.Cardinality.ONE_OR_MORE:E.attr("marker-start","url("+S+"#"+ny.ERMarkers.ONE_OR_MORE_START+")");break;case w.db.Cardinality.ONLY_ONE:E.attr("marker-start","url("+S+"#"+ny.ERMarkers.ONLY_ONE_START+")");break;case w.db.Cardinality.MD_PARENT:E.attr("marker-start","url("+S+"#"+ny.ERMarkers.MD_PARENT_START+")");break}const _=E.node().getTotalLength(),M=E.node().getPointAtLength(_*.5),F="rel"+xzt,B=i.append("text").classed("er relationshipLabel",!0).attr("id",F).attr("x",M.x).attr("y",M.y).style("text-anchor","middle").style("dominant-baseline","middle").style("font-family",Re().fontFamily).style("font-size",z1.fontSize+"px").text(a.roleA).node().getBBox();i.insert("rect","#"+F).classed("er relationshipLabelBox",!0).attr("x",M.x-B.width/2).attr("y",M.y-B.height/2).attr("width",B.width).attr("height",B.height)},zWe=function(i,a,f,g){z1=Re().er,Kt.info("Drawing ER diagram");const w=Re().securityLevel;let v;w==="sandbox"&&(v=Tr("#i"+a));const E=Tr(w==="sandbox"?v.nodes()[0].contentDocument.body:"body").select(`[id='${a}']`);ny.insertMarkers(E,z1);let S;S=new l1({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:z1.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});const _=BWe(E,g.db.getEntities(),S),M=jWe(g.db.getRelationships(),S);kD(S),RWe(E,S),M.forEach(function(Y){$We(E,Y,S,_,g)});const F=z1.diagramPadding;uo.insertTitle(E,"entityTitleText",z1.titleTopMargin,g.db.getDiagramTitle());const R=E.node().getBBox(),B=R.width+F*2,z=R.height+F*2;sg(E,z,B,z1.useMaxWidth),E.attr("viewBox",`${R.x-F} ${R.y-F} ${B} ${z}`)},qWe="28e9f9db-3c8d-5aa5-9faf-44286ae5937c";function HWe(i="",a=""){const f=i.replace(NWe,"");return`${kzt(a)}${kzt(f)}${OWe(i,qWe)}`}function kzt(i=""){return i.length>0?`${i}-`:""}const VWe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:vWe,db:kWe,renderer:{setConf:PWe,draw:zWe},styles:i=>` + .entityBox { + fill: ${i.mainBkg}; + stroke: ${i.nodeBorder}; + } + + .attributeBoxOdd { + fill: ${i.attributeBackgroundColorOdd}; + stroke: ${i.nodeBorder}; + } + + .attributeBoxEven { + fill: ${i.attributeBackgroundColorEven}; + stroke: ${i.nodeBorder}; + } + + .relationshipLabelBox { + fill: ${i.tertiaryColor}; + opacity: 0.7; + background-color: ${i.tertiaryColor}; + rect { + opacity: 0.5; + } + } + + .relationshipLine { + stroke: ${i.lineColor}; + } + + .entityTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${i.textColor}; + } + #MD_PARENT_START { + fill: #f5f5f5 !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; + } + #MD_PARENT_END { + fill: #f5f5f5 !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; + } + +`}},Symbol.toStringTag,{value:"Module"}));var abt=function(){var i=function(ct,rt,it,gt){for(it=it||{},gt=ct.length;gt--;it[ct[gt]]=rt);return it},a=[1,3],f=[1,6],g=[1,4],w=[1,5],v=[2,5],b=[1,12],E=[5,7,13,19,21,23,24,26,28,31,37,40,47],S=[7,13,19,21,23,24,26,28,31,37,40],_=[7,12,13,19,21,23,24,26,28,31,37,40],M=[7,13,47],F=[1,42],R=[1,41],B=[7,13,29,32,35,38,47],z=[1,55],Y=[1,56],nt=[1,57],ot=[7,13,32,35,42,47],ft={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,GG:5,document:6,EOF:7,":":8,DIR:9,options:10,body:11,OPT:12,NL:13,line:14,statement:15,commitStatement:16,mergeStatement:17,cherryPickStatement:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,section:24,branchStatement:25,CHECKOUT:26,ref:27,BRANCH:28,ORDER:29,NUM:30,CHERRY_PICK:31,COMMIT_ID:32,STR:33,PARENT_COMMIT:34,COMMIT_TAG:35,EMPTYSTR:36,MERGE:37,COMMIT_TYPE:38,commitType:39,COMMIT:40,commit_arg:41,COMMIT_MSG:42,NORMAL:43,REVERSE:44,HIGHLIGHT:45,ID:46,";":47,$accept:0,$end:1},terminals_:{2:"error",5:"GG",7:"EOF",8:":",9:"DIR",12:"OPT",13:"NL",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"section",26:"CHECKOUT",28:"BRANCH",29:"ORDER",30:"NUM",31:"CHERRY_PICK",32:"COMMIT_ID",33:"STR",34:"PARENT_COMMIT",35:"COMMIT_TAG",36:"EMPTYSTR",37:"MERGE",38:"COMMIT_TYPE",40:"COMMIT",42:"COMMIT_MSG",43:"NORMAL",44:"REVERSE",45:"HIGHLIGHT",46:"ID",47:";"},productions_:[0,[3,2],[3,3],[3,4],[3,5],[6,0],[6,2],[10,2],[10,1],[11,0],[11,2],[14,2],[14,1],[15,1],[15,1],[15,1],[15,2],[15,2],[15,1],[15,1],[15,1],[15,2],[25,2],[25,4],[18,3],[18,5],[18,5],[18,7],[18,7],[18,5],[18,5],[18,5],[18,7],[18,7],[18,7],[18,7],[17,2],[17,4],[17,4],[17,4],[17,6],[17,6],[17,6],[17,6],[17,6],[17,6],[17,8],[17,8],[17,8],[17,8],[17,8],[17,8],[16,2],[16,3],[16,3],[16,5],[16,5],[16,3],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,3],[16,5],[16,5],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[41,0],[41,1],[39,1],[39,1],[39,1],[27,1],[27,1],[4,1],[4,1],[4,1]],performAction:function(rt,it,gt,Q,dt,K,yt){var V=K.length-1;switch(dt){case 2:return K[V];case 3:return K[V-1];case 4:return Q.setDirection(K[V-3]),K[V-1];case 6:Q.setOptions(K[V-1]),this.$=K[V];break;case 7:K[V-1]+=K[V],this.$=K[V-1];break;case 9:this.$=[];break;case 10:K[V-1].push(K[V]),this.$=K[V-1];break;case 11:this.$=K[V-1];break;case 16:this.$=K[V].trim(),Q.setAccTitle(this.$);break;case 17:case 18:this.$=K[V].trim(),Q.setAccDescription(this.$);break;case 19:Q.addSection(K[V].substr(8)),this.$=K[V].substr(8);break;case 21:Q.checkout(K[V]);break;case 22:Q.branch(K[V]);break;case 23:Q.branch(K[V-2],K[V]);break;case 24:Q.cherryPick(K[V],"",void 0);break;case 25:Q.cherryPick(K[V-2],"",void 0,K[V]);break;case 26:Q.cherryPick(K[V-2],"",K[V]);break;case 27:Q.cherryPick(K[V-4],"",K[V],K[V-2]);break;case 28:Q.cherryPick(K[V-4],"",K[V-2],K[V]);break;case 29:Q.cherryPick(K[V],"",K[V-2]);break;case 30:Q.cherryPick(K[V],"","");break;case 31:Q.cherryPick(K[V-2],"","");break;case 32:Q.cherryPick(K[V-4],"","",K[V-2]);break;case 33:Q.cherryPick(K[V-4],"","",K[V]);break;case 34:Q.cherryPick(K[V-2],"",K[V-4],K[V]);break;case 35:Q.cherryPick(K[V-2],"","",K[V]);break;case 36:Q.merge(K[V],"","","");break;case 37:Q.merge(K[V-2],K[V],"","");break;case 38:Q.merge(K[V-2],"",K[V],"");break;case 39:Q.merge(K[V-2],"","",K[V]);break;case 40:Q.merge(K[V-4],K[V],"",K[V-2]);break;case 41:Q.merge(K[V-4],"",K[V],K[V-2]);break;case 42:Q.merge(K[V-4],"",K[V-2],K[V]);break;case 43:Q.merge(K[V-4],K[V-2],K[V],"");break;case 44:Q.merge(K[V-4],K[V-2],"",K[V]);break;case 45:Q.merge(K[V-4],K[V],K[V-2],"");break;case 46:Q.merge(K[V-6],K[V-4],K[V-2],K[V]);break;case 47:Q.merge(K[V-6],K[V],K[V-4],K[V-2]);break;case 48:Q.merge(K[V-6],K[V-4],K[V],K[V-2]);break;case 49:Q.merge(K[V-6],K[V-2],K[V-4],K[V]);break;case 50:Q.merge(K[V-6],K[V],K[V-2],K[V-4]);break;case 51:Q.merge(K[V-6],K[V-2],K[V],K[V-4]);break;case 52:Q.commit(K[V]);break;case 53:Q.commit("","",Q.commitType.NORMAL,K[V]);break;case 54:Q.commit("","",K[V],"");break;case 55:Q.commit("","",K[V],K[V-2]);break;case 56:Q.commit("","",K[V-2],K[V]);break;case 57:Q.commit("",K[V],Q.commitType.NORMAL,"");break;case 58:Q.commit("",K[V-2],Q.commitType.NORMAL,K[V]);break;case 59:Q.commit("",K[V],Q.commitType.NORMAL,K[V-2]);break;case 60:Q.commit("",K[V-2],K[V],"");break;case 61:Q.commit("",K[V],K[V-2],"");break;case 62:Q.commit("",K[V-4],K[V-2],K[V]);break;case 63:Q.commit("",K[V-4],K[V],K[V-2]);break;case 64:Q.commit("",K[V-2],K[V-4],K[V]);break;case 65:Q.commit("",K[V],K[V-4],K[V-2]);break;case 66:Q.commit("",K[V],K[V-2],K[V-4]);break;case 67:Q.commit("",K[V-2],K[V],K[V-4]);break;case 68:Q.commit(K[V],"",Q.commitType.NORMAL,"");break;case 69:Q.commit(K[V],"",Q.commitType.NORMAL,K[V-2]);break;case 70:Q.commit(K[V-2],"",Q.commitType.NORMAL,K[V]);break;case 71:Q.commit(K[V-2],"",K[V],"");break;case 72:Q.commit(K[V],"",K[V-2],"");break;case 73:Q.commit(K[V],K[V-2],Q.commitType.NORMAL,"");break;case 74:Q.commit(K[V-2],K[V],Q.commitType.NORMAL,"");break;case 75:Q.commit(K[V-4],"",K[V-2],K[V]);break;case 76:Q.commit(K[V-4],"",K[V],K[V-2]);break;case 77:Q.commit(K[V-2],"",K[V-4],K[V]);break;case 78:Q.commit(K[V],"",K[V-4],K[V-2]);break;case 79:Q.commit(K[V],"",K[V-2],K[V-4]);break;case 80:Q.commit(K[V-2],"",K[V],K[V-4]);break;case 81:Q.commit(K[V-4],K[V],K[V-2],"");break;case 82:Q.commit(K[V-4],K[V-2],K[V],"");break;case 83:Q.commit(K[V-2],K[V],K[V-4],"");break;case 84:Q.commit(K[V],K[V-2],K[V-4],"");break;case 85:Q.commit(K[V],K[V-4],K[V-2],"");break;case 86:Q.commit(K[V-2],K[V-4],K[V],"");break;case 87:Q.commit(K[V-4],K[V],Q.commitType.NORMAL,K[V-2]);break;case 88:Q.commit(K[V-4],K[V-2],Q.commitType.NORMAL,K[V]);break;case 89:Q.commit(K[V-2],K[V],Q.commitType.NORMAL,K[V-4]);break;case 90:Q.commit(K[V],K[V-2],Q.commitType.NORMAL,K[V-4]);break;case 91:Q.commit(K[V],K[V-4],Q.commitType.NORMAL,K[V-2]);break;case 92:Q.commit(K[V-2],K[V-4],Q.commitType.NORMAL,K[V]);break;case 93:Q.commit(K[V-6],K[V-4],K[V-2],K[V]);break;case 94:Q.commit(K[V-6],K[V-4],K[V],K[V-2]);break;case 95:Q.commit(K[V-6],K[V-2],K[V-4],K[V]);break;case 96:Q.commit(K[V-6],K[V],K[V-4],K[V-2]);break;case 97:Q.commit(K[V-6],K[V-2],K[V],K[V-4]);break;case 98:Q.commit(K[V-6],K[V],K[V-2],K[V-4]);break;case 99:Q.commit(K[V-4],K[V-6],K[V-2],K[V]);break;case 100:Q.commit(K[V-4],K[V-6],K[V],K[V-2]);break;case 101:Q.commit(K[V-2],K[V-6],K[V-4],K[V]);break;case 102:Q.commit(K[V],K[V-6],K[V-4],K[V-2]);break;case 103:Q.commit(K[V-2],K[V-6],K[V],K[V-4]);break;case 104:Q.commit(K[V],K[V-6],K[V-2],K[V-4]);break;case 105:Q.commit(K[V],K[V-4],K[V-2],K[V-6]);break;case 106:Q.commit(K[V-2],K[V-4],K[V],K[V-6]);break;case 107:Q.commit(K[V],K[V-2],K[V-4],K[V-6]);break;case 108:Q.commit(K[V-2],K[V],K[V-4],K[V-6]);break;case 109:Q.commit(K[V-4],K[V-2],K[V],K[V-6]);break;case 110:Q.commit(K[V-4],K[V],K[V-2],K[V-6]);break;case 111:Q.commit(K[V-2],K[V-4],K[V-6],K[V]);break;case 112:Q.commit(K[V],K[V-4],K[V-6],K[V-2]);break;case 113:Q.commit(K[V-2],K[V],K[V-6],K[V-4]);break;case 114:Q.commit(K[V],K[V-2],K[V-6],K[V-4]);break;case 115:Q.commit(K[V-4],K[V-2],K[V-6],K[V]);break;case 116:Q.commit(K[V-4],K[V],K[V-6],K[V-2]);break;case 117:this.$="";break;case 118:this.$=K[V];break;case 119:this.$=Q.commitType.NORMAL;break;case 120:this.$=Q.commitType.REVERSE;break;case 121:this.$=Q.commitType.HIGHLIGHT;break}},table:[{3:1,4:2,5:a,7:f,13:g,47:w},{1:[3]},{3:7,4:2,5:a,7:f,13:g,47:w},{6:8,7:v,8:[1,9],9:[1,10],10:11,13:b},i(E,[2,124]),i(E,[2,125]),i(E,[2,126]),{1:[2,1]},{7:[1,13]},{6:14,7:v,10:11,13:b},{8:[1,15]},i(S,[2,9],{11:16,12:[1,17]}),i(_,[2,8]),{1:[2,2]},{7:[1,18]},{6:19,7:v,10:11,13:b},{7:[2,6],13:[1,22],14:20,15:21,16:23,17:24,18:25,19:[1,26],21:[1,27],23:[1,28],24:[1,29],25:30,26:[1,31],28:[1,35],31:[1,34],37:[1,33],40:[1,32]},i(_,[2,7]),{1:[2,3]},{7:[1,36]},i(S,[2,10]),{4:37,7:f,13:g,47:w},i(S,[2,12]),i(M,[2,13]),i(M,[2,14]),i(M,[2,15]),{20:[1,38]},{22:[1,39]},i(M,[2,18]),i(M,[2,19]),i(M,[2,20]),{27:40,33:F,46:R},i(M,[2,117],{41:43,32:[1,46],33:[1,48],35:[1,44],38:[1,45],42:[1,47]}),{27:49,33:F,46:R},{32:[1,50],35:[1,51]},{27:52,33:F,46:R},{1:[2,4]},i(S,[2,11]),i(M,[2,16]),i(M,[2,17]),i(M,[2,21]),i(B,[2,122]),i(B,[2,123]),i(M,[2,52]),{33:[1,53]},{39:54,43:z,44:Y,45:nt},{33:[1,58]},{33:[1,59]},i(M,[2,118]),i(M,[2,36],{32:[1,60],35:[1,62],38:[1,61]}),{33:[1,63]},{33:[1,64],36:[1,65]},i(M,[2,22],{29:[1,66]}),i(M,[2,53],{32:[1,68],38:[1,67],42:[1,69]}),i(M,[2,54],{32:[1,71],35:[1,70],42:[1,72]}),i(ot,[2,119]),i(ot,[2,120]),i(ot,[2,121]),i(M,[2,57],{35:[1,73],38:[1,74],42:[1,75]}),i(M,[2,68],{32:[1,78],35:[1,76],38:[1,77]}),{33:[1,79]},{39:80,43:z,44:Y,45:nt},{33:[1,81]},i(M,[2,24],{34:[1,82],35:[1,83]}),{32:[1,84]},{32:[1,85]},{30:[1,86]},{39:87,43:z,44:Y,45:nt},{33:[1,88]},{33:[1,89]},{33:[1,90]},{33:[1,91]},{33:[1,92]},{33:[1,93]},{39:94,43:z,44:Y,45:nt},{33:[1,95]},{33:[1,96]},{39:97,43:z,44:Y,45:nt},{33:[1,98]},i(M,[2,37],{35:[1,100],38:[1,99]}),i(M,[2,38],{32:[1,102],35:[1,101]}),i(M,[2,39],{32:[1,103],38:[1,104]}),{33:[1,105]},{33:[1,106],36:[1,107]},{33:[1,108]},{33:[1,109]},i(M,[2,23]),i(M,[2,55],{32:[1,110],42:[1,111]}),i(M,[2,59],{38:[1,112],42:[1,113]}),i(M,[2,69],{32:[1,115],38:[1,114]}),i(M,[2,56],{32:[1,116],42:[1,117]}),i(M,[2,61],{35:[1,118],42:[1,119]}),i(M,[2,72],{32:[1,121],35:[1,120]}),i(M,[2,58],{38:[1,122],42:[1,123]}),i(M,[2,60],{35:[1,124],42:[1,125]}),i(M,[2,73],{35:[1,127],38:[1,126]}),i(M,[2,70],{32:[1,129],38:[1,128]}),i(M,[2,71],{32:[1,131],35:[1,130]}),i(M,[2,74],{35:[1,133],38:[1,132]}),{39:134,43:z,44:Y,45:nt},{33:[1,135]},{33:[1,136]},{33:[1,137]},{33:[1,138]},{39:139,43:z,44:Y,45:nt},i(M,[2,25],{35:[1,140]}),i(M,[2,26],{34:[1,141]}),i(M,[2,31],{34:[1,142]}),i(M,[2,29],{34:[1,143]}),i(M,[2,30],{34:[1,144]}),{33:[1,145]},{33:[1,146]},{39:147,43:z,44:Y,45:nt},{33:[1,148]},{39:149,43:z,44:Y,45:nt},{33:[1,150]},{33:[1,151]},{33:[1,152]},{33:[1,153]},{33:[1,154]},{33:[1,155]},{33:[1,156]},{39:157,43:z,44:Y,45:nt},{33:[1,158]},{33:[1,159]},{33:[1,160]},{39:161,43:z,44:Y,45:nt},{33:[1,162]},{39:163,43:z,44:Y,45:nt},{33:[1,164]},{33:[1,165]},{33:[1,166]},{39:167,43:z,44:Y,45:nt},{33:[1,168]},i(M,[2,43],{35:[1,169]}),i(M,[2,44],{38:[1,170]}),i(M,[2,42],{32:[1,171]}),i(M,[2,45],{35:[1,172]}),i(M,[2,40],{38:[1,173]}),i(M,[2,41],{32:[1,174]}),{33:[1,175],36:[1,176]},{33:[1,177]},{33:[1,178]},{33:[1,179]},{33:[1,180]},i(M,[2,66],{42:[1,181]}),i(M,[2,79],{32:[1,182]}),i(M,[2,67],{42:[1,183]}),i(M,[2,90],{38:[1,184]}),i(M,[2,80],{32:[1,185]}),i(M,[2,89],{38:[1,186]}),i(M,[2,65],{42:[1,187]}),i(M,[2,78],{32:[1,188]}),i(M,[2,64],{42:[1,189]}),i(M,[2,84],{35:[1,190]}),i(M,[2,77],{32:[1,191]}),i(M,[2,83],{35:[1,192]}),i(M,[2,63],{42:[1,193]}),i(M,[2,91],{38:[1,194]}),i(M,[2,62],{42:[1,195]}),i(M,[2,85],{35:[1,196]}),i(M,[2,86],{35:[1,197]}),i(M,[2,92],{38:[1,198]}),i(M,[2,76],{32:[1,199]}),i(M,[2,87],{38:[1,200]}),i(M,[2,75],{32:[1,201]}),i(M,[2,81],{35:[1,202]}),i(M,[2,82],{35:[1,203]}),i(M,[2,88],{38:[1,204]}),{33:[1,205]},{39:206,43:z,44:Y,45:nt},{33:[1,207]},{33:[1,208]},{39:209,43:z,44:Y,45:nt},{33:[1,210]},i(M,[2,27]),i(M,[2,32]),i(M,[2,28]),i(M,[2,33]),i(M,[2,34]),i(M,[2,35]),{33:[1,211]},{33:[1,212]},{33:[1,213]},{39:214,43:z,44:Y,45:nt},{33:[1,215]},{39:216,43:z,44:Y,45:nt},{33:[1,217]},{33:[1,218]},{33:[1,219]},{33:[1,220]},{33:[1,221]},{33:[1,222]},{33:[1,223]},{39:224,43:z,44:Y,45:nt},{33:[1,225]},{33:[1,226]},{33:[1,227]},{39:228,43:z,44:Y,45:nt},{33:[1,229]},{39:230,43:z,44:Y,45:nt},{33:[1,231]},{33:[1,232]},{33:[1,233]},{39:234,43:z,44:Y,45:nt},i(M,[2,46]),i(M,[2,48]),i(M,[2,47]),i(M,[2,49]),i(M,[2,51]),i(M,[2,50]),i(M,[2,107]),i(M,[2,108]),i(M,[2,105]),i(M,[2,106]),i(M,[2,110]),i(M,[2,109]),i(M,[2,114]),i(M,[2,113]),i(M,[2,112]),i(M,[2,111]),i(M,[2,116]),i(M,[2,115]),i(M,[2,104]),i(M,[2,103]),i(M,[2,102]),i(M,[2,101]),i(M,[2,99]),i(M,[2,100]),i(M,[2,98]),i(M,[2,97]),i(M,[2,96]),i(M,[2,95]),i(M,[2,93]),i(M,[2,94])],defaultActions:{7:[2,1],13:[2,2],18:[2,3],36:[2,4]},parseError:function(rt,it){if(it.recoverable)this.trace(rt);else{var gt=new Error(rt);throw gt.hash=it,gt}},parse:function(rt){var it=this,gt=[0],Q=[],dt=[null],K=[],yt=this.table,V="",Ot=0,It=0,jt=2,xt=1,Ft=K.slice.call(arguments,1),Ct=Object.create(this.lexer),kt={yy:{}};for(var Gt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Gt)&&(kt.yy[Gt]=this.yy[Gt]);Ct.setInput(rt,kt.yy),kt.yy.lexer=Ct,kt.yy.parser=this,typeof Ct.yylloc>"u"&&(Ct.yylloc={});var Fe=Ct.yylloc;K.push(Fe);var Mt=Ct.options&&Ct.options.ranges;typeof kt.yy.parseError=="function"?this.parseError=kt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pn(){var ce;return ce=Q.pop()||Ct.lex()||xt,typeof ce!="number"&&(ce instanceof Array&&(Q=ce,ce=Q.pop()),ce=it.symbols_[ce]||ce),ce}for(var Ae,ye,tn,sn,be={},Ne,Xt,_e,xe;;){if(ye=gt[gt.length-1],this.defaultActions[ye]?tn=this.defaultActions[ye]:((Ae===null||typeof Ae>"u")&&(Ae=pn()),tn=yt[ye]&&yt[ye][Ae]),typeof tn>"u"||!tn.length||!tn[0]){var Mn="";xe=[];for(Ne in yt[ye])this.terminals_[Ne]&&Ne>jt&&xe.push("'"+this.terminals_[Ne]+"'");Ct.showPosition?Mn="Parse error on line "+(Ot+1)+`: +`+Ct.showPosition()+` +Expecting `+xe.join(", ")+", got '"+(this.terminals_[Ae]||Ae)+"'":Mn="Parse error on line "+(Ot+1)+": Unexpected "+(Ae==xt?"end of input":"'"+(this.terminals_[Ae]||Ae)+"'"),this.parseError(Mn,{text:Ct.match,token:this.terminals_[Ae]||Ae,line:Ct.yylineno,loc:Fe,expected:xe})}if(tn[0]instanceof Array&&tn.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ye+", token: "+Ae);switch(tn[0]){case 1:gt.push(Ae),dt.push(Ct.yytext),K.push(Ct.yylloc),gt.push(tn[1]),Ae=null,It=Ct.yyleng,V=Ct.yytext,Ot=Ct.yylineno,Fe=Ct.yylloc;break;case 2:if(Xt=this.productions_[tn[1]][1],be.$=dt[dt.length-Xt],be._$={first_line:K[K.length-(Xt||1)].first_line,last_line:K[K.length-1].last_line,first_column:K[K.length-(Xt||1)].first_column,last_column:K[K.length-1].last_column},Mt&&(be._$.range=[K[K.length-(Xt||1)].range[0],K[K.length-1].range[1]]),sn=this.performAction.apply(be,[V,It,Ot,kt.yy,tn[1],dt,K].concat(Ft)),typeof sn<"u")return sn;Xt&&(gt=gt.slice(0,-1*Xt*2),dt=dt.slice(0,-1*Xt),K=K.slice(0,-1*Xt)),gt.push(this.productions_[tn[1]][0]),dt.push(be.$),K.push(be._$),_e=yt[gt[gt.length-2]][gt[gt.length-1]],gt.push(_e);break;case 3:return!0}}return!0}},wt=function(){var ct={EOF:1,parseError:function(it,gt){if(this.yy.parser)this.yy.parser.parseError(it,gt);else throw new Error(it)},setInput:function(rt,it){return this.yy=it||this.yy||{},this._input=rt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var rt=this._input[0];this.yytext+=rt,this.yyleng++,this.offset++,this.match+=rt,this.matched+=rt;var it=rt.match(/(?:\r\n?|\n).*/g);return it?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),rt},unput:function(rt){var it=rt.length,gt=rt.split(/(?:\r\n?|\n)/g);this._input=rt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-it),this.offset-=it;var Q=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),gt.length-1&&(this.yylineno-=gt.length-1);var dt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:gt?(gt.length===Q.length?this.yylloc.first_column:0)+Q[Q.length-gt.length].length-gt[0].length:this.yylloc.first_column-it},this.options.ranges&&(this.yylloc.range=[dt[0],dt[0]+this.yyleng-it]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(rt){this.unput(this.match.slice(rt))},pastInput:function(){var rt=this.matched.substr(0,this.matched.length-this.match.length);return(rt.length>20?"...":"")+rt.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var rt=this.match;return rt.length<20&&(rt+=this._input.substr(0,20-rt.length)),(rt.substr(0,20)+(rt.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var rt=this.pastInput(),it=new Array(rt.length+1).join("-");return rt+this.upcomingInput()+` +`+it+"^"},test_match:function(rt,it){var gt,Q,dt;if(this.options.backtrack_lexer&&(dt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(dt.yylloc.range=this.yylloc.range.slice(0))),Q=rt[0].match(/(?:\r\n?|\n).*/g),Q&&(this.yylineno+=Q.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Q?Q[Q.length-1].length-Q[Q.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+rt[0].length},this.yytext+=rt[0],this.match+=rt[0],this.matches=rt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(rt[0].length),this.matched+=rt[0],gt=this.performAction.call(this,this.yy,this,it,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),gt)return gt;if(this._backtrack){for(var K in dt)this[K]=dt[K];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var rt,it,gt,Q;this._more||(this.yytext="",this.match="");for(var dt=this._currentRules(),K=0;Kit[0].length)){if(it=gt,Q=K,this.options.backtrack_lexer){if(rt=this.test_match(gt,dt[K]),rt!==!1)return rt;if(this._backtrack){it=!1;continue}else return!1}else if(!this.options.flex)break}return it?(rt=this.test_match(it,dt[Q]),rt!==!1?rt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var it=this.next();return it||this.lex()},begin:function(it){this.conditionStack.push(it)},popState:function(){var it=this.conditionStack.length-1;return it>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(it){return it=this.conditionStack.length-1-Math.abs(it||0),it>=0?this.conditionStack[it]:"INITIAL"},pushState:function(it){this.begin(it)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(it,gt,Q,dt){switch(Q){case 0:return this.begin("acc_title"),19;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),21;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 13;case 8:break;case 9:break;case 10:return 5;case 11:return 40;case 12:return 32;case 13:return 38;case 14:return 42;case 15:return 43;case 16:return 44;case 17:return 45;case 18:return 35;case 19:return 28;case 20:return 29;case 21:return 37;case 22:return 31;case 23:return 34;case 24:return 26;case 25:return 9;case 26:return 9;case 27:return 8;case 28:return"CARET";case 29:this.begin("options");break;case 30:this.popState();break;case 31:return 12;case 32:return 36;case 33:this.begin("string");break;case 34:this.popState();break;case 35:return 33;case 36:return 30;case 37:return 46;case 38:return 7}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit(?=\s|$))/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\b)/i,/^(?:REVERSE\b)/i,/^(?:HIGHLIGHT\b)/i,/^(?:tag:)/i,/^(?:branch(?=\s|$))/i,/^(?:order:)/i,/^(?:merge(?=\s|$))/i,/^(?:cherry-pick(?=\s|$))/i,/^(?:parent:)/i,/^(?:checkout(?=\s|$))/i,/^(?:LR\b)/i,/^(?:TB\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:[ \r\n\t]+end\b)/i,/^(?:[\s\S]+(?=[ \r\n\t]+end))/i,/^(?:["]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[0-9]+(?=\s|$))/i,/^(?:\w([-\./\w]*[-\w])?)/i,/^(?:$)/i,/^(?:\s+)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},options:{rules:[30,31],inclusive:!1},string:{rules:[34,35],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,32,33,36,37,38,39],inclusive:!0}}};return ct}();ft.lexer=wt;function mt(){this.yy={}}return mt.prototype=ft,ft.Parser=mt,new mt}();abt.parser=abt;const UWe=abt;let cX=Re().gitGraph.mainBranchName,GWe=Re().gitGraph.mainBranchOrder,q1={},np=null,rB={};rB[cX]={name:cX,order:GWe};let h1={};h1[cX]=np;let Dd=cX,Ezt="LR",N9=0;function obt(){return AFt({length:7})}function KWe(i,a){const f=Object.create(null);return i.reduce((g,w)=>{const v=a(w);return f[v]||(f[v]=!0,g.push(w)),g},[])}const WWe=function(i){Ezt=i};let Tzt={};const YWe=function(i){Kt.debug("options str",i),i=i&&i.trim(),i=i||"{}";try{Tzt=JSON.parse(i)}catch(a){Kt.error("error while parsing gitGraph options",a.message)}},XWe=function(){return Tzt},QWe=function(i,a,f,g){Kt.debug("Entering commit:",i,a,f,g),a=ei.sanitizeText(a,Re()),i=ei.sanitizeText(i,Re()),g=ei.sanitizeText(g,Re());const w={id:a||N9+"-"+obt(),message:i,seq:N9++,type:f||CD.NORMAL,tag:g||"",parents:np==null?[]:[np.id],branch:Dd};np=w,q1[w.id]=w,h1[Dd]=w.id,Kt.debug("in pushCommit "+w.id)},JWe=function(i,a){if(i=ei.sanitizeText(i,Re()),h1[i]===void 0)h1[i]=np!=null?np.id:null,rB[i]={name:i,order:a?parseInt(a,10):null},Czt(i),Kt.debug("in createBranch");else{let f=new Error('Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout '+i+'")');throw f.hash={text:"branch "+i,token:"branch "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+i+'"']},f}},ZWe=function(i,a,f,g){i=ei.sanitizeText(i,Re()),a=ei.sanitizeText(a,Re());const w=q1[h1[Dd]],v=q1[h1[i]];if(Dd===i){let E=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw E.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},E}else if(w===void 0||!w){let E=new Error('Incorrect usage of "merge". Current branch ('+Dd+")has no commits");throw E.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["commit"]},E}else if(h1[i]===void 0){let E=new Error('Incorrect usage of "merge". Branch to be merged ('+i+") does not exist");throw E.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch "+i]},E}else if(v===void 0||!v){let E=new Error('Incorrect usage of "merge". Branch to be merged ('+i+") has no commits");throw E.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"commit"']},E}else if(w===v){let E=new Error('Incorrect usage of "merge". Both branches have same head');throw E.hash={text:"merge "+i,token:"merge "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},E}else if(a&&q1[a]!==void 0){let E=new Error('Incorrect usage of "merge". Commit with id:'+a+" already exists, use different custom Id");throw E.hash={text:"merge "+i+a+f+g,token:"merge "+i+a+f+g,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["merge "+i+" "+a+"_UNIQUE "+f+" "+g]},E}const b={id:a||N9+"-"+obt(),message:"merged branch "+i+" into "+Dd,seq:N9++,parents:[np==null?null:np.id,h1[i]],branch:Dd,type:CD.MERGE,customType:f,customId:!!a,tag:g||""};np=b,q1[b.id]=b,h1[Dd]=b.id,Kt.debug(h1),Kt.debug("in mergeBranch")},tYe=function(i,a,f,g){if(Kt.debug("Entering cherryPick:",i,a,f),i=ei.sanitizeText(i,Re()),a=ei.sanitizeText(a,Re()),f=ei.sanitizeText(f,Re()),g=ei.sanitizeText(g,Re()),!i||q1[i]===void 0){let b=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw b.hash={text:"cherryPick "+i+" "+a,token:"cherryPick "+i+" "+a,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},b}let w=q1[i],v=w.branch;if(g&&!(Array.isArray(w.parents)&&w.parents.includes(g)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");if(w.type===CD.MERGE&&!g)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!a||q1[a]===void 0){if(v===Dd){let S=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw S.hash={text:"cherryPick "+i+" "+a,token:"cherryPick "+i+" "+a,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},S}const b=q1[h1[Dd]];if(b===void 0||!b){let S=new Error('Incorrect usage of "cherry-pick". Current branch ('+Dd+")has no commits");throw S.hash={text:"cherryPick "+i+" "+a,token:"cherryPick "+i+" "+a,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},S}const E={id:N9+"-"+obt(),message:"cherry-picked "+w+" into "+Dd,seq:N9++,parents:[np==null?null:np.id,w.id],branch:Dd,type:CD.CHERRY_PICK,tag:f??`cherry-pick:${w.id}${w.type===CD.MERGE?`|parent:${g}`:""}`};np=E,q1[E.id]=E,h1[Dd]=E.id,Kt.debug(h1),Kt.debug("in cherryPick")}},Czt=function(i){if(i=ei.sanitizeText(i,Re()),h1[i]===void 0){let a=new Error('Trying to checkout branch which is not yet created. (Help try using "branch '+i+'")');throw a.hash={text:"checkout "+i,token:"checkout "+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"branch '+i+'"']},a}else{Dd=i;const a=h1[Dd];np=q1[a]}};function Szt(i,a,f){const g=i.indexOf(a);g===-1?i.push(f):i.splice(g,1,f)}function _zt(i){const a=i.reduce((w,v)=>w.seq>v.seq?w:v,i[0]);let f="";i.forEach(function(w){w===a?f+=" *":f+=" |"});const g=[f,a.id,a.seq];for(let w in h1)h1[w]===a.id&&g.push(w);if(Kt.debug(g.join(" ")),a.parents&&a.parents.length==2){const w=q1[a.parents[0]];Szt(i,a,w),i.push(q1[a.parents[1]])}else{if(a.parents.length==0)return;{const w=q1[a.parents];Szt(i,a,w)}}i=KWe(i,w=>w.id),_zt(i)}const eYe=function(){Kt.debug(q1);const i=Azt()[0];_zt([i])},nYe=function(){q1={},np=null;let i=Re().gitGraph.mainBranchName,a=Re().gitGraph.mainBranchOrder;h1={},h1[i]=null,rB={},rB[i]={name:i,order:a},Dd=i,N9=0,ag()},rYe=function(){return Object.values(rB).map((a,f)=>a.order!==null?a:{...a,order:parseFloat(`0.${f}`,10)}).sort((a,f)=>a.order-f.order).map(({name:a})=>({name:a}))},iYe=function(){return h1},sYe=function(){return q1},Azt=function(){const i=Object.keys(q1).map(function(a){return q1[a]});return i.forEach(function(a){Kt.debug(a.id)}),i.sort((a,f)=>a.seq-f.seq),i},aYe=function(){return Dd},oYe=function(){return Ezt},cYe=function(){return np},CD={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},uYe={getConfig:()=>Re().gitGraph,setDirection:WWe,setOptions:YWe,getOptions:XWe,commit:QWe,branch:JWe,merge:ZWe,cherryPick:tYe,checkout:Czt,prettyPrint:eYe,clear:nYe,getBranchesAsObjArray:rYe,getBranches:iYe,getCommits:sYe,getCommitsArray:Azt,getCurrentBranch:aYe,getDirection:oYe,getHead:cYe,setAccTitle:og,getAccTitle:Xg,getAccDescription:Jg,setAccDescription:Qg,setDiagramTitle:S2,getDiagramTitle:Zg,commitType:CD};let iB={};const D2={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},P9=8;let Cf={},$x={},uX=[],sB=0,f1="LR";const lYe=()=>{Cf={},$x={},iB={},sB=0,uX=[],f1="LR"},Lzt=i=>{const a=document.createElementNS("http://www.w3.org/2000/svg","text");let f=[];typeof i=="string"?f=i.split(/\\n|\n|/gi):Array.isArray(i)?f=i:f=[];for(const g of f){const w=document.createElementNS("http://www.w3.org/2000/svg","tspan");w.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),w.setAttribute("dy","1em"),w.setAttribute("x","0"),w.setAttribute("class","row"),w.textContent=g.trim(),a.appendChild(w)}return a},hYe=i=>{let a="",f=0;return i.forEach(g=>{const w=f1==="TB"?$x[g].y:$x[g].x;w>=f&&(a=g,f=w)}),a||void 0},Dzt=(i,a,f)=>{const g=Re().gitGraph,w=i.append("g").attr("class","commit-bullets"),v=i.append("g").attr("class","commit-labels");let b=0;f1==="TB"&&(b=30);const S=Object.keys(a).sort((R,B)=>a[R].seq-a[B].seq),_=g.parallelCommits,M=10,F=40;S.forEach(R=>{const B=a[R];if(_)if(B.parents.length){const ot=hYe(B.parents);b=f1==="TB"?$x[ot].y+F:$x[ot].x+F}else b=0,f1==="TB"&&(b=30);const z=b+M,Y=f1==="TB"?z:Cf[B.branch].pos,nt=f1==="TB"?Cf[B.branch].pos:z;if(f){let ot,ft=B.customType!==void 0&&B.customType!==""?B.customType:B.type;switch(ft){case D2.NORMAL:ot="commit-normal";break;case D2.REVERSE:ot="commit-reverse";break;case D2.HIGHLIGHT:ot="commit-highlight";break;case D2.MERGE:ot="commit-merge";break;case D2.CHERRY_PICK:ot="commit-cherry-pick";break;default:ot="commit-normal"}if(ft===D2.HIGHLIGHT){const wt=w.append("rect");wt.attr("x",nt-10),wt.attr("y",Y-10),wt.attr("height",20),wt.attr("width",20),wt.attr("class",`commit ${B.id} commit-highlight${Cf[B.branch].index%P9} ${ot}-outer`),w.append("rect").attr("x",nt-6).attr("y",Y-6).attr("height",12).attr("width",12).attr("class",`commit ${B.id} commit${Cf[B.branch].index%P9} ${ot}-inner`)}else if(ft===D2.CHERRY_PICK)w.append("circle").attr("cx",nt).attr("cy",Y).attr("r",10).attr("class",`commit ${B.id} ${ot}`),w.append("circle").attr("cx",nt-3).attr("cy",Y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${B.id} ${ot}`),w.append("circle").attr("cx",nt+3).attr("cy",Y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${B.id} ${ot}`),w.append("line").attr("x1",nt+3).attr("y1",Y+1).attr("x2",nt).attr("y2",Y-5).attr("stroke","#fff").attr("class",`commit ${B.id} ${ot}`),w.append("line").attr("x1",nt-3).attr("y1",Y+1).attr("x2",nt).attr("y2",Y-5).attr("stroke","#fff").attr("class",`commit ${B.id} ${ot}`);else{const wt=w.append("circle");if(wt.attr("cx",nt),wt.attr("cy",Y),wt.attr("r",B.type===D2.MERGE?9:10),wt.attr("class",`commit ${B.id} commit${Cf[B.branch].index%P9}`),ft===D2.MERGE){const mt=w.append("circle");mt.attr("cx",nt),mt.attr("cy",Y),mt.attr("r",6),mt.attr("class",`commit ${ot} ${B.id} commit${Cf[B.branch].index%P9}`)}ft===D2.REVERSE&&w.append("path").attr("d",`M ${nt-5},${Y-5}L${nt+5},${Y+5}M${nt-5},${Y+5}L${nt+5},${Y-5}`).attr("class",`commit ${ot} ${B.id} commit${Cf[B.branch].index%P9}`)}}if(f1==="TB"?$x[B.id]={x:nt,y:z}:$x[B.id]={x:z,y:Y},f){if(B.type!==D2.CHERRY_PICK&&(B.customId&&B.type===D2.MERGE||B.type!==D2.MERGE)&&g.showCommitLabel){const wt=v.append("g"),mt=wt.insert("rect").attr("class","commit-label-bkg"),ct=wt.append("text").attr("x",b).attr("y",Y+25).attr("class","commit-label").text(B.id);let rt=ct.node().getBBox();if(mt.attr("x",z-rt.width/2-2).attr("y",Y+13.5).attr("width",rt.width+2*2).attr("height",rt.height+2*2),f1==="TB"&&(mt.attr("x",nt-(rt.width+4*4+5)).attr("y",Y-12),ct.attr("x",nt-(rt.width+4*4)).attr("y",Y+rt.height-12)),f1!=="TB"&&ct.attr("x",z-rt.width/2),g.rotateCommitLabel)if(f1==="TB")ct.attr("transform","rotate(-45, "+nt+", "+Y+")"),mt.attr("transform","rotate(-45, "+nt+", "+Y+")");else{let it=-7.5-(rt.width+10)/25*9.5,gt=10+rt.width/25*8.5;wt.attr("transform","translate("+it+", "+gt+") rotate(-45, "+b+", "+Y+")")}}if(B.tag){const wt=v.insert("polygon"),mt=v.append("circle"),ct=v.append("text").attr("y",Y-16).attr("class","tag-label").text(B.tag);let rt=ct.node().getBBox();ct.attr("x",z-rt.width/2);const it=rt.height/2,gt=Y-19.2;wt.attr("class","tag-label-bkg").attr("points",` + ${b-rt.width/2-4/2},${gt+2} + ${b-rt.width/2-4/2},${gt-2} + ${z-rt.width/2-4},${gt-it-2} + ${z+rt.width/2+4},${gt-it-2} + ${z+rt.width/2+4},${gt+it+2} + ${z-rt.width/2-4},${gt+it+2}`),mt.attr("cx",b-rt.width/2+4/2).attr("cy",gt).attr("r",1.5).attr("class","tag-hole"),f1==="TB"&&(wt.attr("class","tag-label-bkg").attr("points",` + ${nt},${b+2} + ${nt},${b-2} + ${nt+M},${b-it-2} + ${nt+M+rt.width+4},${b-it-2} + ${nt+M+rt.width+4},${b+it+2} + ${nt+M},${b+it+2}`).attr("transform","translate(12,12) rotate(45, "+nt+","+b+")"),mt.attr("cx",nt+4/2).attr("cy",b).attr("transform","translate(12,12) rotate(45, "+nt+","+b+")"),ct.attr("x",nt+5).attr("y",b+3).attr("transform","translate(14,14) rotate(45, "+nt+","+b+")"))}}b+=F+M,b>sB&&(sB=b)})},fYe=(i,a,f,g,w)=>{const b=(f1==="TB"?f.x_.branch===b,S=_=>_.seq>i.seq&&_.seqS(_)&&E(_))},aB=(i,a,f=0)=>{const g=i+Math.abs(i-a)/2;if(f>5)return g;if(uX.every(b=>Math.abs(b-g)>=10))return uX.push(g),g;const v=Math.abs(i-a);return aB(i,a-v/5,f+1)},dYe=(i,a,f,g)=>{const w=$x[a.id],v=$x[f.id],b=fYe(a,f,w,v,g);let E="",S="",_=0,M=0,F=Cf[f.branch].index,R;if(b){E="A 10 10, 0, 0, 0,",S="A 10 10, 0, 0, 1,",_=10,M=10;const B=w.yv.x&&(E="A 20 20, 0, 0, 0,",S="A 20 20, 0, 0, 1,",_=20,M=20,F=Cf[a.branch].index,R=`M ${w.x} ${w.y} L ${w.x} ${v.y-_} ${S} ${w.x-M} ${v.y} L ${v.x} ${v.y}`),w.x===v.x&&(F=Cf[a.branch].index,R=`M ${w.x} ${w.y} L ${w.x+_} ${w.y} ${E} ${w.x+M} ${v.y+_} L ${v.x} ${v.y}`)):(w.yv.y&&(E="A 20 20, 0, 0, 0,",_=20,M=20,F=Cf[a.branch].index,R=`M ${w.x} ${w.y} L ${v.x-_} ${w.y} ${E} ${v.x} ${w.y-M} L ${v.x} ${v.y}`),w.y===v.y&&(F=Cf[a.branch].index,R=`M ${w.x} ${w.y} L ${w.x} ${v.y-_} ${E} ${w.x+M} ${v.y} L ${v.x} ${v.y}`));i.append("path").attr("d",R).attr("class","arrow arrow"+F%P9)},gYe=(i,a)=>{const f=i.append("g").attr("class","commit-arrows");Object.keys(a).forEach(g=>{const w=a[g];w.parents&&w.parents.length>0&&w.parents.forEach(v=>{dYe(f,a[v],w,a)})})},pYe=(i,a)=>{const f=Re().gitGraph,g=i.append("g");a.forEach((w,v)=>{const b=v%P9,E=Cf[w.name].pos,S=g.append("line");S.attr("x1",0),S.attr("y1",E),S.attr("x2",sB),S.attr("y2",E),S.attr("class","branch branch"+b),f1==="TB"&&(S.attr("y1",30),S.attr("x1",E),S.attr("y2",sB),S.attr("x2",E)),uX.push(E);let _=w.name;const M=Lzt(_),F=g.insert("rect"),B=g.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+b);B.node().appendChild(M);let z=M.getBBox();F.attr("class","branchLabelBkg label"+b).attr("rx",4).attr("ry",4).attr("x",-z.width-4-(f.rotateCommitLabel===!0?30:0)).attr("y",-z.height/2+8).attr("width",z.width+18).attr("height",z.height+4),B.attr("transform","translate("+(-z.width-14-(f.rotateCommitLabel===!0?30:0))+", "+(E-z.height/2-1)+")"),f1==="TB"&&(F.attr("x",E-z.width/2-10).attr("y",0),B.attr("transform","translate("+(E-z.width/2-5)+", 0)")),f1!=="TB"&&F.attr("transform","translate(-19, "+(E-z.height/2)+")")})},bYe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:UWe,db:uYe,renderer:{draw:function(i,a,f,g){lYe();const w=Re(),v=w.gitGraph;Kt.debug("in gitgraph renderer",i+` +`,"id:",a,f),iB=g.db.getCommits();const b=g.db.getBranchesAsObjArray();f1=g.db.getDirection();const E=Tr(`[id="${a}"]`);let S=0;b.forEach((_,M)=>{const F=Lzt(_.name),R=E.append("g"),B=R.insert("g").attr("class","branchLabel"),z=B.insert("g").attr("class","label branch-label");z.node().appendChild(F);let Y=F.getBBox();Cf[_.name]={pos:S,index:M},S+=50+(v.rotateCommitLabel?40:0)+(f1==="TB"?Y.width/2:0),z.remove(),B.remove(),R.remove()}),Dzt(E,iB,!1),v.showBranches&&pYe(E,b),gYe(E,iB),Dzt(E,iB,!0),uo.insertTitle(E,"gitTitleText",v.titleTopMargin,g.db.getDiagramTitle()),hBt(void 0,E,v.diagramPadding,v.useMaxWidth??w.useMaxWidth)}},styles:i=>` + .commit-id, + .commit-msg, + .branch-label { + fill: lightgrey; + color: lightgrey; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + } + ${[0,1,2,3,4,5,6,7].map(a=>` + .branch-label${a} { fill: ${i["gitBranchLabel"+a]}; } + .commit${a} { stroke: ${i["git"+a]}; fill: ${i["git"+a]}; } + .commit-highlight${a} { stroke: ${i["gitInv"+a]}; fill: ${i["gitInv"+a]}; } + .label${a} { fill: ${i["git"+a]}; } + .arrow${a} { stroke: ${i["git"+a]}; } + `).join(` +`)} + + .branch { + stroke-width: 1; + stroke: ${i.lineColor}; + stroke-dasharray: 2; + } + .commit-label { font-size: ${i.commitLabelFontSize}; fill: ${i.commitLabelColor};} + .commit-label-bkg { font-size: ${i.commitLabelFontSize}; fill: ${i.commitLabelBackground}; opacity: 0.5; } + .tag-label { font-size: ${i.tagLabelFontSize}; fill: ${i.tagLabelColor};} + .tag-label-bkg { fill: ${i.tagLabelBackground}; stroke: ${i.tagLabelBorder}; } + .tag-hole { fill: ${i.textColor}; } + + .commit-merge { + stroke: ${i.primaryColor}; + fill: ${i.primaryColor}; + } + .commit-reverse { + stroke: ${i.primaryColor}; + fill: ${i.primaryColor}; + stroke-width: 3; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${i.primaryColor}; + fill: ${i.primaryColor}; + } + + .arrow { stroke-width: 8; stroke-linecap: round; fill: none} + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${i.textColor}; + } +`}},Symbol.toStringTag,{value:"Module"}));var cbt=function(){var i=function(K,yt,V,Ot){for(V=V||{},Ot=K.length;Ot--;V[K[Ot]]=yt);return V},a=[6,8,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,30,32,33,35,37],f=[1,25],g=[1,26],w=[1,27],v=[1,28],b=[1,29],E=[1,30],S=[1,31],_=[1,9],M=[1,10],F=[1,11],R=[1,12],B=[1,13],z=[1,14],Y=[1,15],nt=[1,16],ot=[1,18],ft=[1,19],wt=[1,20],mt=[1,21],ct=[1,22],rt=[1,24],it=[1,32],gt={trace:function(){},yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,dateFormat:19,inclusiveEndDates:20,topAxis:21,axisFormat:22,tickInterval:23,excludes:24,includes:25,todayMarker:26,title:27,acc_title:28,acc_title_value:29,acc_descr:30,acc_descr_value:31,acc_descr_multiline_value:32,section:33,clickStatement:34,taskTxt:35,taskData:36,click:37,callbackname:38,callbackargs:39,href:40,clickStatementDebug:41,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",19:"dateFormat",20:"inclusiveEndDates",21:"topAxis",22:"axisFormat",23:"tickInterval",24:"excludes",25:"includes",26:"todayMarker",27:"title",28:"acc_title",29:"acc_title_value",30:"acc_descr",31:"acc_descr_value",32:"acc_descr_multiline_value",33:"section",35:"taskTxt",36:"taskData",37:"click",38:"callbackname",39:"callbackargs",40:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[34,2],[34,3],[34,3],[34,4],[34,3],[34,4],[34,2],[41,2],[41,3],[41,3],[41,4],[41,3],[41,4],[41,2]],performAction:function(yt,V,Ot,It,jt,xt,Ft){var Ct=xt.length-1;switch(jt){case 1:return xt[Ct-1];case 2:this.$=[];break;case 3:xt[Ct-1].push(xt[Ct]),this.$=xt[Ct-1];break;case 4:case 5:this.$=xt[Ct];break;case 6:case 7:this.$=[];break;case 8:It.setWeekday("monday");break;case 9:It.setWeekday("tuesday");break;case 10:It.setWeekday("wednesday");break;case 11:It.setWeekday("thursday");break;case 12:It.setWeekday("friday");break;case 13:It.setWeekday("saturday");break;case 14:It.setWeekday("sunday");break;case 15:It.setDateFormat(xt[Ct].substr(11)),this.$=xt[Ct].substr(11);break;case 16:It.enableInclusiveEndDates(),this.$=xt[Ct].substr(18);break;case 17:It.TopAxis(),this.$=xt[Ct].substr(8);break;case 18:It.setAxisFormat(xt[Ct].substr(11)),this.$=xt[Ct].substr(11);break;case 19:It.setTickInterval(xt[Ct].substr(13)),this.$=xt[Ct].substr(13);break;case 20:It.setExcludes(xt[Ct].substr(9)),this.$=xt[Ct].substr(9);break;case 21:It.setIncludes(xt[Ct].substr(9)),this.$=xt[Ct].substr(9);break;case 22:It.setTodayMarker(xt[Ct].substr(12)),this.$=xt[Ct].substr(12);break;case 24:It.setDiagramTitle(xt[Ct].substr(6)),this.$=xt[Ct].substr(6);break;case 25:this.$=xt[Ct].trim(),It.setAccTitle(this.$);break;case 26:case 27:this.$=xt[Ct].trim(),It.setAccDescription(this.$);break;case 28:It.addSection(xt[Ct].substr(8)),this.$=xt[Ct].substr(8);break;case 30:It.addTask(xt[Ct-1],xt[Ct]),this.$="task";break;case 31:this.$=xt[Ct-1],It.setClickEvent(xt[Ct-1],xt[Ct],null);break;case 32:this.$=xt[Ct-2],It.setClickEvent(xt[Ct-2],xt[Ct-1],xt[Ct]);break;case 33:this.$=xt[Ct-2],It.setClickEvent(xt[Ct-2],xt[Ct-1],null),It.setLink(xt[Ct-2],xt[Ct]);break;case 34:this.$=xt[Ct-3],It.setClickEvent(xt[Ct-3],xt[Ct-2],xt[Ct-1]),It.setLink(xt[Ct-3],xt[Ct]);break;case 35:this.$=xt[Ct-2],It.setClickEvent(xt[Ct-2],xt[Ct],null),It.setLink(xt[Ct-2],xt[Ct-1]);break;case 36:this.$=xt[Ct-3],It.setClickEvent(xt[Ct-3],xt[Ct-1],xt[Ct]),It.setLink(xt[Ct-3],xt[Ct-2]);break;case 37:this.$=xt[Ct-1],It.setLink(xt[Ct-1],xt[Ct]);break;case 38:case 44:this.$=xt[Ct-1]+" "+xt[Ct];break;case 39:case 40:case 42:this.$=xt[Ct-2]+" "+xt[Ct-1]+" "+xt[Ct];break;case 41:case 43:this.$=xt[Ct-3]+" "+xt[Ct-2]+" "+xt[Ct-1]+" "+xt[Ct];break}},table:[{3:1,4:[1,2]},{1:[3]},i(a,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:f,13:g,14:w,15:v,16:b,17:E,18:S,19:_,20:M,21:F,22:R,23:B,24:z,25:Y,26:nt,27:ot,28:ft,30:wt,32:mt,33:ct,34:23,35:rt,37:it},i(a,[2,7],{1:[2,1]}),i(a,[2,3]),{9:33,11:17,12:f,13:g,14:w,15:v,16:b,17:E,18:S,19:_,20:M,21:F,22:R,23:B,24:z,25:Y,26:nt,27:ot,28:ft,30:wt,32:mt,33:ct,34:23,35:rt,37:it},i(a,[2,5]),i(a,[2,6]),i(a,[2,15]),i(a,[2,16]),i(a,[2,17]),i(a,[2,18]),i(a,[2,19]),i(a,[2,20]),i(a,[2,21]),i(a,[2,22]),i(a,[2,23]),i(a,[2,24]),{29:[1,34]},{31:[1,35]},i(a,[2,27]),i(a,[2,28]),i(a,[2,29]),{36:[1,36]},i(a,[2,8]),i(a,[2,9]),i(a,[2,10]),i(a,[2,11]),i(a,[2,12]),i(a,[2,13]),i(a,[2,14]),{38:[1,37],40:[1,38]},i(a,[2,4]),i(a,[2,25]),i(a,[2,26]),i(a,[2,30]),i(a,[2,31],{39:[1,39],40:[1,40]}),i(a,[2,37],{38:[1,41]}),i(a,[2,32],{40:[1,42]}),i(a,[2,33]),i(a,[2,35],{39:[1,43]}),i(a,[2,34]),i(a,[2,36])],defaultActions:{},parseError:function(yt,V){if(V.recoverable)this.trace(yt);else{var Ot=new Error(yt);throw Ot.hash=V,Ot}},parse:function(yt){var V=this,Ot=[0],It=[],jt=[null],xt=[],Ft=this.table,Ct="",kt=0,Gt=0,Fe=2,Mt=1,pn=xt.slice.call(arguments,1),Ae=Object.create(this.lexer),ye={yy:{}};for(var tn in this.yy)Object.prototype.hasOwnProperty.call(this.yy,tn)&&(ye.yy[tn]=this.yy[tn]);Ae.setInput(yt,ye.yy),ye.yy.lexer=Ae,ye.yy.parser=this,typeof Ae.yylloc>"u"&&(Ae.yylloc={});var sn=Ae.yylloc;xt.push(sn);var be=Ae.options&&Ae.options.ranges;typeof ye.yy.parseError=="function"?this.parseError=ye.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ne(){var Ss;return Ss=It.pop()||Ae.lex()||Mt,typeof Ss!="number"&&(Ss instanceof Array&&(It=Ss,Ss=It.pop()),Ss=V.symbols_[Ss]||Ss),Ss}for(var Xt,_e,xe,Mn,ce={},Br,we,Fi,mi;;){if(_e=Ot[Ot.length-1],this.defaultActions[_e]?xe=this.defaultActions[_e]:((Xt===null||typeof Xt>"u")&&(Xt=Ne()),xe=Ft[_e]&&Ft[_e][Xt]),typeof xe>"u"||!xe.length||!xe[0]){var ga="";mi=[];for(Br in Ft[_e])this.terminals_[Br]&&Br>Fe&&mi.push("'"+this.terminals_[Br]+"'");Ae.showPosition?ga="Parse error on line "+(kt+1)+`: +`+Ae.showPosition()+` +Expecting `+mi.join(", ")+", got '"+(this.terminals_[Xt]||Xt)+"'":ga="Parse error on line "+(kt+1)+": Unexpected "+(Xt==Mt?"end of input":"'"+(this.terminals_[Xt]||Xt)+"'"),this.parseError(ga,{text:Ae.match,token:this.terminals_[Xt]||Xt,line:Ae.yylineno,loc:sn,expected:mi})}if(xe[0]instanceof Array&&xe.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_e+", token: "+Xt);switch(xe[0]){case 1:Ot.push(Xt),jt.push(Ae.yytext),xt.push(Ae.yylloc),Ot.push(xe[1]),Xt=null,Gt=Ae.yyleng,Ct=Ae.yytext,kt=Ae.yylineno,sn=Ae.yylloc;break;case 2:if(we=this.productions_[xe[1]][1],ce.$=jt[jt.length-we],ce._$={first_line:xt[xt.length-(we||1)].first_line,last_line:xt[xt.length-1].last_line,first_column:xt[xt.length-(we||1)].first_column,last_column:xt[xt.length-1].last_column},be&&(ce._$.range=[xt[xt.length-(we||1)].range[0],xt[xt.length-1].range[1]]),Mn=this.performAction.apply(ce,[Ct,Gt,kt,ye.yy,xe[1],jt,xt].concat(pn)),typeof Mn<"u")return Mn;we&&(Ot=Ot.slice(0,-1*we*2),jt=jt.slice(0,-1*we),xt=xt.slice(0,-1*we)),Ot.push(this.productions_[xe[1]][0]),jt.push(ce.$),xt.push(ce._$),Fi=Ft[Ot[Ot.length-2]][Ot[Ot.length-1]],Ot.push(Fi);break;case 3:return!0}}return!0}},Q=function(){var K={EOF:1,parseError:function(V,Ot){if(this.yy.parser)this.yy.parser.parseError(V,Ot);else throw new Error(V)},setInput:function(yt,V){return this.yy=V||this.yy||{},this._input=yt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var yt=this._input[0];this.yytext+=yt,this.yyleng++,this.offset++,this.match+=yt,this.matched+=yt;var V=yt.match(/(?:\r\n?|\n).*/g);return V?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),yt},unput:function(yt){var V=yt.length,Ot=yt.split(/(?:\r\n?|\n)/g);this._input=yt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-V),this.offset-=V;var It=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Ot.length-1&&(this.yylineno-=Ot.length-1);var jt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Ot?(Ot.length===It.length?this.yylloc.first_column:0)+It[It.length-Ot.length].length-Ot[0].length:this.yylloc.first_column-V},this.options.ranges&&(this.yylloc.range=[jt[0],jt[0]+this.yyleng-V]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(yt){this.unput(this.match.slice(yt))},pastInput:function(){var yt=this.matched.substr(0,this.matched.length-this.match.length);return(yt.length>20?"...":"")+yt.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var yt=this.match;return yt.length<20&&(yt+=this._input.substr(0,20-yt.length)),(yt.substr(0,20)+(yt.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var yt=this.pastInput(),V=new Array(yt.length+1).join("-");return yt+this.upcomingInput()+` +`+V+"^"},test_match:function(yt,V){var Ot,It,jt;if(this.options.backtrack_lexer&&(jt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(jt.yylloc.range=this.yylloc.range.slice(0))),It=yt[0].match(/(?:\r\n?|\n).*/g),It&&(this.yylineno+=It.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:It?It[It.length-1].length-It[It.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+yt[0].length},this.yytext+=yt[0],this.match+=yt[0],this.matches=yt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(yt[0].length),this.matched+=yt[0],Ot=this.performAction.call(this,this.yy,this,V,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Ot)return Ot;if(this._backtrack){for(var xt in jt)this[xt]=jt[xt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var yt,V,Ot,It;this._more||(this.yytext="",this.match="");for(var jt=this._currentRules(),xt=0;xtV[0].length)){if(V=Ot,It=xt,this.options.backtrack_lexer){if(yt=this.test_match(Ot,jt[xt]),yt!==!1)return yt;if(this._backtrack){V=!1;continue}else return!1}else if(!this.options.flex)break}return V?(yt=this.test_match(V,jt[It]),yt!==!1?yt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var V=this.next();return V||this.lex()},begin:function(V){this.conditionStack.push(V)},popState:function(){var V=this.conditionStack.length-1;return V>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(V){return V=this.conditionStack.length-1-Math.abs(V||0),V>=0?this.conditionStack[V]:"INITIAL"},pushState:function(V){this.begin(V)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(V,Ot,It,jt){switch(It){case 0:return this.begin("open_directive"),"open_directive";case 1:return this.begin("acc_title"),28;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),30;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:break;case 9:break;case 10:break;case 11:return 10;case 12:break;case 13:break;case 14:this.begin("href");break;case 15:this.popState();break;case 16:return 40;case 17:this.begin("callbackname");break;case 18:this.popState();break;case 19:this.popState(),this.begin("callbackargs");break;case 20:return 38;case 21:this.popState();break;case 22:return 39;case 23:this.begin("click");break;case 24:this.popState();break;case 25:return 37;case 26:return 4;case 27:return 19;case 28:return 20;case 29:return 21;case 30:return 22;case 31:return 23;case 32:return 25;case 33:return 24;case 34:return 26;case 35:return 12;case 36:return 13;case 37:return 14;case 38:return 15;case 39:return 16;case 40:return 17;case 41:return 18;case 42:return"date";case 43:return 27;case 44:return"accDescription";case 45:return 33;case 46:return 35;case 47:return 36;case 48:return":";case 49:return 6;case 50:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^\n]+)/i,/^(?:[^:\n]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},callbackargs:{rules:[21,22],inclusive:!1},callbackname:{rules:[18,19,20],inclusive:!1},href:{rules:[15,16],inclusive:!1},click:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,17,23,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],inclusive:!0}}};return K}();gt.lexer=Q;function dt(){this.yy={}}return dt.prototype=gt,gt.Parser=dt,new dt}();cbt.parser=cbt;const wYe=cbt;var Mzt={exports:{}};(function(i,a){(function(f,g){i.exports=g()})(Z0,function(){var f="day";return function(g,w,v){var b=function(_){return _.add(4-_.isoWeekday(),f)},E=w.prototype;E.isoWeekYear=function(){return b(this).year()},E.isoWeek=function(_){if(!this.$utils().u(_))return this.add(7*(_-this.isoWeek()),f);var M,F,R,B,z=b(this),Y=(M=this.isoWeekYear(),F=this.$u,R=(F?v.utc:v)().year(M).startOf("year"),B=4-R.isoWeekday(),R.isoWeekday()>4&&(B+=7),R.add(B,f));return z.diff(Y,"week")+1},E.isoWeekday=function(_){return this.$utils().u(_)?this.day()||7:this.day(this.day()%7?_:_-7)};var S=E.startOf;E.startOf=function(_,M){var F=this.$utils(),R=!!F.u(M)||M;return F.p(_)==="isoweek"?R?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):S.bind(this)(_,M)}}})})(Mzt);var mYe=Mzt.exports;const vYe=e9(mYe);var Izt={exports:{}};(function(i,a){(function(f,g){i.exports=g()})(Z0,function(){var f={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},g=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,w=/\d\d/,v=/\d\d?/,b=/\d*[^-_:/,()\s\d]+/,E={},S=function(Y){return(Y=+Y)+(Y>68?1900:2e3)},_=function(Y){return function(nt){this[Y]=+nt}},M=[/[+-]\d\d:?(\d\d)?|Z/,function(Y){(this.zone||(this.zone={})).offset=function(nt){if(!nt||nt==="Z")return 0;var ot=nt.match(/([+-]|\d\d)/g),ft=60*ot[1]+(+ot[2]||0);return ft===0?0:ot[0]==="+"?-ft:ft}(Y)}],F=function(Y){var nt=E[Y];return nt&&(nt.indexOf?nt:nt.s.concat(nt.f))},R=function(Y,nt){var ot,ft=E.meridiem;if(ft){for(var wt=1;wt<=24;wt+=1)if(Y.indexOf(ft(wt,0,nt))>-1){ot=wt>12;break}}else ot=Y===(nt?"pm":"PM");return ot},B={A:[b,function(Y){this.afternoon=R(Y,!1)}],a:[b,function(Y){this.afternoon=R(Y,!0)}],S:[/\d/,function(Y){this.milliseconds=100*+Y}],SS:[w,function(Y){this.milliseconds=10*+Y}],SSS:[/\d{3}/,function(Y){this.milliseconds=+Y}],s:[v,_("seconds")],ss:[v,_("seconds")],m:[v,_("minutes")],mm:[v,_("minutes")],H:[v,_("hours")],h:[v,_("hours")],HH:[v,_("hours")],hh:[v,_("hours")],D:[v,_("day")],DD:[w,_("day")],Do:[b,function(Y){var nt=E.ordinal,ot=Y.match(/\d+/);if(this.day=ot[0],nt)for(var ft=1;ft<=31;ft+=1)nt(ft).replace(/\[|\]/g,"")===Y&&(this.day=ft)}],M:[v,_("month")],MM:[w,_("month")],MMM:[b,function(Y){var nt=F("months"),ot=(F("monthsShort")||nt.map(function(ft){return ft.slice(0,3)})).indexOf(Y)+1;if(ot<1)throw new Error;this.month=ot%12||ot}],MMMM:[b,function(Y){var nt=F("months").indexOf(Y)+1;if(nt<1)throw new Error;this.month=nt%12||nt}],Y:[/[+-]?\d+/,_("year")],YY:[w,function(Y){this.year=S(Y)}],YYYY:[/\d{4}/,_("year")],Z:M,ZZ:M};function z(Y){var nt,ot;nt=Y,ot=E&&E.formats;for(var ft=(Y=nt.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(Q,dt,K){var yt=K&&K.toUpperCase();return dt||ot[K]||f[K]||ot[yt].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(V,Ot,It){return Ot||It.slice(1)})})).match(g),wt=ft.length,mt=0;mt-1)return new Date((xt==="X"?1e3:1)*jt);var Ct=z(xt)(jt),kt=Ct.year,Gt=Ct.month,Fe=Ct.day,Mt=Ct.hours,pn=Ct.minutes,Ae=Ct.seconds,ye=Ct.milliseconds,tn=Ct.zone,sn=new Date,be=Fe||(kt||Gt?1:sn.getDate()),Ne=kt||sn.getFullYear(),Xt=0;kt&&!Gt||(Xt=Gt>0?Gt-1:sn.getMonth());var _e=Mt||0,xe=pn||0,Mn=Ae||0,ce=ye||0;return tn?new Date(Date.UTC(Ne,Xt,be,_e,xe,Mn,ce+60*tn.offset*1e3)):Ft?new Date(Date.UTC(Ne,Xt,be,_e,xe,Mn,ce)):new Date(Ne,Xt,be,_e,xe,Mn,ce)}catch{return new Date("")}}(ct,gt,rt),this.init(),yt&&yt!==!0&&(this.$L=this.locale(yt).$L),K&&ct!=this.format(gt)&&(this.$d=new Date("")),E={}}else if(gt instanceof Array)for(var V=gt.length,Ot=1;Ot<=V;Ot+=1){it[1]=gt[Ot-1];var It=ot.apply(this,it);if(It.isValid()){this.$d=It.$d,this.$L=It.$L,this.init();break}Ot===V&&(this.$d=new Date(""))}else wt.call(this,mt)}}})})(Izt);var yYe=Izt.exports;const xYe=e9(yYe);var Ozt={exports:{}};(function(i,a){(function(f,g){i.exports=g()})(Z0,function(){return function(f,g){var w=g.prototype,v=w.format;w.format=function(b){var E=this,S=this.$locale();if(!this.isValid())return v.bind(this)(b);var _=this.$utils(),M=(b||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(F){switch(F){case"Q":return Math.ceil((E.$M+1)/3);case"Do":return S.ordinal(E.$D);case"gggg":return E.weekYear();case"GGGG":return E.isoWeekYear();case"wo":return S.ordinal(E.week(),"W");case"w":case"ww":return _.s(E.week(),F==="w"?1:2,"0");case"W":case"WW":return _.s(E.isoWeek(),F==="W"?1:2,"0");case"k":case"kk":return _.s(String(E.$H===0?24:E.$H),F==="k"?1:2,"0");case"X":return Math.floor(E.$d.getTime()/1e3);case"x":return E.$d.getTime();case"z":return"["+E.offsetName()+"]";case"zzz":return"["+E.offsetName("long")+"]";default:return F}});return v.bind(this)(M)}}})})(Ozt);var kYe=Ozt.exports;const EYe=e9(kYe);tg.extend(vYe),tg.extend(xYe),tg.extend(EYe);let h4="",ubt="",lbt,hbt="",oB=[],cB=[],fbt={},dbt=[],lX=[],SD="",gbt="";const Nzt=["active","done","crit","milestone"];let pbt=[],uB=!1,bbt=!1,wbt="sunday",mbt=0;const TYe=function(){dbt=[],lX=[],SD="",pbt=[],hX=0,ybt=void 0,fX=void 0,H1=[],h4="",ubt="",gbt="",lbt=void 0,hbt="",oB=[],cB=[],uB=!1,bbt=!1,mbt=0,fbt={},ag(),wbt="sunday"},CYe=function(i){ubt=i},SYe=function(){return ubt},_Ye=function(i){lbt=i},AYe=function(){return lbt},LYe=function(i){hbt=i},DYe=function(){return hbt},MYe=function(i){h4=i},IYe=function(){uB=!0},OYe=function(){return uB},NYe=function(){bbt=!0},PYe=function(){return bbt},FYe=function(i){gbt=i},BYe=function(){return gbt},RYe=function(){return h4},jYe=function(i){oB=i.toLowerCase().split(/[\s,]+/)},$Ye=function(){return oB},zYe=function(i){cB=i.toLowerCase().split(/[\s,]+/)},qYe=function(){return cB},HYe=function(){return fbt},VYe=function(i){SD=i,dbt.push(i)},UYe=function(){return dbt},GYe=function(){let i=$zt();const a=10;let f=0;for(;!i&&f=6&&f.includes("weekends")||f.includes(i.format("dddd").toLowerCase())?!0:f.includes(i.format(a.trim()))},KYe=function(i){wbt=i},WYe=function(){return wbt},Fzt=function(i,a,f,g){if(!f.length||i.manualEndTime)return;let w;i.startTime instanceof Date?w=tg(i.startTime):w=tg(i.startTime,a,!0),w=w.add(1,"d");let v;i.endTime instanceof Date?v=tg(i.endTime):v=tg(i.endTime,a,!0);const[b,E]=YYe(w,v,a,f,g);i.endTime=b.toDate(),i.renderEndTime=E},YYe=function(i,a,f,g,w){let v=!1,b=null;for(;i<=a;)v||(b=a.toDate()),v=Pzt(i,f,g,w),v&&(a=a.add(1,"d")),i=i.add(1,"d");return[a,b]},vbt=function(i,a,f){f=f.trim();const w=/^after\s+([\d\w- ]+)/.exec(f.trim());if(w!==null){let b=null;if(w[1].split(" ").forEach(function(E){let S=AD(E);S!==void 0&&(b?S.endTime>b.endTime&&(b=S):b=S)}),b)return b.endTime;{const E=new Date;return E.setHours(0,0,0,0),E}}let v=tg(f,a.trim(),!0);if(v.isValid())return v.toDate();{Kt.debug("Invalid date:"+f),Kt.debug("With date format:"+a.trim());const b=new Date(f);if(b===void 0||isNaN(b.getTime())||b.getFullYear()<-1e4||b.getFullYear()>1e4)throw new Error("Invalid date:"+f);return b}},Bzt=function(i){const a=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(i.trim());return a!==null?[Number.parseFloat(a[1]),a[2]]:[NaN,"ms"]},Rzt=function(i,a,f,g=!1){f=f.trim();let w=tg(f,a.trim(),!0);if(w.isValid())return g&&(w=w.add(1,"d")),w.toDate();let v=tg(i);const[b,E]=Bzt(f);if(!Number.isNaN(b)){const S=v.add(b,E);S.isValid()&&(v=S)}return v.toDate()};let hX=0;const _D=function(i){return i===void 0?(hX=hX+1,"task"+hX):i},XYe=function(i,a){let f;a.substr(0,1)===":"?f=a.substr(1,a.length):f=a;const g=f.split(","),w={};Hzt(g,w,Nzt);for(let b=0;b{window.open(f,"_self")}),fbt[g]=f)}),zzt(i,"clickable")},zzt=function(i,a){i.split(",").forEach(function(f){let g=AD(f);g!==void 0&&g.classes.push(a)})},eXe=function(i,a,f){if(Re().securityLevel!=="loose"||a===void 0)return;let g=[];if(typeof f=="string"){g=f.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let v=0;v{uo.runFunc(a,...g)})},qzt=function(i,a){pbt.push(function(){const f=document.querySelector(`[id="${i}"]`);f!==null&&f.addEventListener("click",function(){a()})},function(){const f=document.querySelector(`[id="${i}-text"]`);f!==null&&f.addEventListener("click",function(){a()})})},nXe={getConfig:()=>Re().gantt,clear:TYe,setDateFormat:MYe,getDateFormat:RYe,enableInclusiveEndDates:IYe,endDatesAreInclusive:OYe,enableTopAxis:NYe,topAxisEnabled:PYe,setAxisFormat:CYe,getAxisFormat:SYe,setTickInterval:_Ye,getTickInterval:AYe,setTodayMarker:LYe,getTodayMarker:DYe,setAccTitle:og,getAccTitle:Xg,setDiagramTitle:S2,getDiagramTitle:Zg,setDisplayMode:FYe,getDisplayMode:BYe,setAccDescription:Qg,getAccDescription:Jg,addSection:VYe,getSections:UYe,getTasks:GYe,addTask:JYe,findTaskById:AD,addTaskOrg:ZYe,setIncludes:jYe,getIncludes:$Ye,setExcludes:zYe,getExcludes:qYe,setClickEvent:function(i,a,f){i.split(",").forEach(function(g){eXe(g,a,f)}),zzt(i,"clickable")},setLink:tXe,getLinks:HYe,bindFunctions:function(i){pbt.forEach(function(a){a(i)})},parseDuration:Bzt,isInvalidDate:Pzt,setWeekday:KYe,getWeekday:WYe};function Hzt(i,a,f){let g=!0;for(;g;)g=!1,f.forEach(function(w){const v="^\\s*"+w+"\\s*$",b=new RegExp(v);i[0].match(b)&&(a[w]=!0,i.shift(1),g=!0)})}const rXe=function(){Kt.debug("Something is calling, setConf, remove the call")},Vzt={monday:hF,tuesday:NNt,wednesday:PNt,thursday:l9,friday:FNt,saturday:BNt,sunday:lF},iXe=(i,a)=>{let f=[...i].map(()=>-1/0),g=[...i].sort((v,b)=>v.startTime-b.startTime||v.order-b.order),w=0;for(const v of g)for(let b=0;b=f[b]){f[b]=v.endTime,v.order=b+a,b>w&&(w=b);break}return w};let zx;const sXe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:wYe,db:nXe,renderer:{setConf:rXe,draw:function(i,a,f,g){const w=Re().gantt,v=Re().securityLevel;let b;v==="sandbox"&&(b=Tr("#i"+a));const E=Tr(v==="sandbox"?b.nodes()[0].contentDocument.body:"body"),S=v==="sandbox"?b.nodes()[0].contentDocument:document,_=S.getElementById(a);zx=_.parentElement.offsetWidth,zx===void 0&&(zx=1200),w.useWidth!==void 0&&(zx=w.useWidth);const M=g.db.getTasks();let F=[];for(const gt of M)F.push(gt.type);F=it(F);const R={};let B=2*w.topPadding;if(g.db.getDisplayMode()==="compact"||w.displayMode==="compact"){const gt={};for(const dt of M)gt[dt.section]===void 0?gt[dt.section]=[dt]:gt[dt.section].push(dt);let Q=0;for(const dt of Object.keys(gt)){const K=iXe(gt[dt],Q)+1;Q+=K,B+=K*(w.barHeight+w.barGap),R[dt]=K}}else{B+=M.length*(w.barHeight+w.barGap);for(const gt of F)R[gt]=M.filter(Q=>Q.type===gt).length}_.setAttribute("viewBox","0 0 "+zx+" "+B);const z=E.select(`[id="${a}"]`),Y=eDe().domain([B9e(M,function(gt){return gt.startTime}),F9e(M,function(gt){return gt.endTime})]).rangeRound([0,zx-w.leftPadding-w.rightPadding]);function nt(gt,Q){const dt=gt.startTime,K=Q.startTime;let yt=0;return dt>K?yt=1:dtkt.order))].map(kt=>gt.find(Gt=>Gt.order===kt));z.append("g").selectAll("rect").data(jt).enter().append("rect").attr("x",0).attr("y",function(kt,Gt){return Gt=kt.order,Gt*Q+dt-2}).attr("width",function(){return Ot-w.rightPadding/2}).attr("height",Q).attr("class",function(kt){for(const[Gt,Fe]of F.entries())if(kt.type===Fe)return"section section"+Gt%w.numberSectionStyles;return"section section0"});const xt=z.append("g").selectAll("rect").data(gt).enter(),Ft=g.db.getLinks();if(xt.append("rect").attr("id",function(kt){return kt.id}).attr("rx",3).attr("ry",3).attr("x",function(kt){return kt.milestone?Y(kt.startTime)+K+.5*(Y(kt.endTime)-Y(kt.startTime))-.5*yt:Y(kt.startTime)+K}).attr("y",function(kt,Gt){return Gt=kt.order,Gt*Q+dt}).attr("width",function(kt){return kt.milestone?yt:Y(kt.renderEndTime||kt.endTime)-Y(kt.startTime)}).attr("height",yt).attr("transform-origin",function(kt,Gt){return Gt=kt.order,(Y(kt.startTime)+K+.5*(Y(kt.endTime)-Y(kt.startTime))).toString()+"px "+(Gt*Q+dt+.5*yt).toString()+"px"}).attr("class",function(kt){const Gt="task";let Fe="";kt.classes.length>0&&(Fe=kt.classes.join(" "));let Mt=0;for(const[Ae,ye]of F.entries())kt.type===ye&&(Mt=Ae%w.numberSectionStyles);let pn="";return kt.active?kt.crit?pn+=" activeCrit":pn=" active":kt.done?kt.crit?pn=" doneCrit":pn=" done":kt.crit&&(pn+=" crit"),pn.length===0&&(pn=" task"),kt.milestone&&(pn=" milestone "+pn),pn+=Mt,pn+=" "+Fe,Gt+pn}),xt.append("text").attr("id",function(kt){return kt.id+"-text"}).text(function(kt){return kt.task}).attr("font-size",w.fontSize).attr("x",function(kt){let Gt=Y(kt.startTime),Fe=Y(kt.renderEndTime||kt.endTime);kt.milestone&&(Gt+=.5*(Y(kt.endTime)-Y(kt.startTime))-.5*yt),kt.milestone&&(Fe=Gt+yt);const Mt=this.getBBox().width;return Mt>Fe-Gt?Fe+Mt+1.5*w.leftPadding>Ot?Gt+K-5:Fe+K+5:(Fe-Gt)/2+Gt+K}).attr("y",function(kt,Gt){return Gt=kt.order,Gt*Q+w.barHeight/2+(w.fontSize/2-2)+dt}).attr("text-height",yt).attr("class",function(kt){const Gt=Y(kt.startTime);let Fe=Y(kt.endTime);kt.milestone&&(Fe=Gt+yt);const Mt=this.getBBox().width;let pn="";kt.classes.length>0&&(pn=kt.classes.join(" "));let Ae=0;for(const[tn,sn]of F.entries())kt.type===sn&&(Ae=tn%w.numberSectionStyles);let ye="";return kt.active&&(kt.crit?ye="activeCritText"+Ae:ye="activeText"+Ae),kt.done?kt.crit?ye=ye+" doneCritText"+Ae:ye=ye+" doneText"+Ae:kt.crit&&(ye=ye+" critText"+Ae),kt.milestone&&(ye+=" milestoneText"),Mt>Fe-Gt?Fe+Mt+1.5*w.leftPadding>Ot?pn+" taskTextOutsideLeft taskTextOutside"+Ae+" "+ye:pn+" taskTextOutsideRight taskTextOutside"+Ae+" "+ye+" width-"+Mt:pn+" taskText taskText"+Ae+" "+ye+" width-"+Mt}),Re().securityLevel==="sandbox"){let kt;kt=Tr("#i"+a);const Gt=kt.nodes()[0].contentDocument;xt.filter(function(Fe){return Ft[Fe.id]!==void 0}).each(function(Fe){var Mt=Gt.querySelector("#"+Fe.id),pn=Gt.querySelector("#"+Fe.id+"-text");const Ae=Mt.parentNode;var ye=Gt.createElement("a");ye.setAttribute("xlink:href",Ft[Fe.id]),ye.setAttribute("target","_top"),Ae.appendChild(ye),ye.appendChild(Mt),ye.appendChild(pn)})}}function wt(gt,Q,dt,K,yt,V,Ot,It){if(Ot.length===0&&It.length===0)return;let jt,xt;for(const{startTime:Mt,endTime:pn}of V)(jt===void 0||Mtxt)&&(xt=pn);if(!jt||!xt)return;if(tg(xt).diff(tg(jt),"year")>5){Kt.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}const Ft=g.db.getDateFormat(),Ct=[];let kt=null,Gt=tg(jt);for(;Gt.valueOf()<=xt;)g.db.isInvalidDate(Gt,Ft,Ot,It)?kt?kt.end=Gt:kt={start:Gt,end:Gt}:kt&&(Ct.push(kt),kt=null),Gt=Gt.add(1,"d");z.append("g").selectAll("rect").data(Ct).enter().append("rect").attr("id",function(Mt){return"exclude-"+Mt.start.format("YYYY-MM-DD")}).attr("x",function(Mt){return Y(Mt.start)+dt}).attr("y",w.gridLineStartPadding).attr("width",function(Mt){const pn=Mt.end.add(1,"day");return Y(pn)-Y(Mt.start)}).attr("height",yt-Q-w.gridLineStartPadding).attr("transform-origin",function(Mt,pn){return(Y(Mt.start)+dt+.5*(Y(Mt.end)-Y(Mt.start))).toString()+"px "+(pn*gt+.5*yt).toString()+"px"}).attr("class","exclude-range")}function mt(gt,Q,dt,K){let yt=G9e(Y).tickSize(-K+Q+w.gridLineStartPadding).tickFormat(DW(g.db.getAxisFormat()||w.axisFormat||"%Y-%m-%d"));const Ot=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(g.db.getTickInterval()||w.tickInterval);if(Ot!==null){const It=Ot[1],jt=Ot[2],xt=g.db.getWeekday()||w.weekday;switch(jt){case"millisecond":yt.ticks(UL.every(It));break;case"second":yt.ticks(f8.every(It));break;case"minute":yt.ticks(cF.every(It));break;case"hour":yt.ticks(uF.every(It));break;case"day":yt.ticks(c9.every(It));break;case"week":yt.ticks(Vzt[xt].every(It));break;case"month":yt.ticks(fF.every(It));break}}if(z.append("g").attr("class","grid").attr("transform","translate("+gt+", "+(K-50)+")").call(yt).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),g.db.topAxisEnabled()||w.topAxis){let It=U9e(Y).tickSize(-K+Q+w.gridLineStartPadding).tickFormat(DW(g.db.getAxisFormat()||w.axisFormat||"%Y-%m-%d"));if(Ot!==null){const jt=Ot[1],xt=Ot[2],Ft=g.db.getWeekday()||w.weekday;switch(xt){case"millisecond":It.ticks(UL.every(jt));break;case"second":It.ticks(f8.every(jt));break;case"minute":It.ticks(cF.every(jt));break;case"hour":It.ticks(uF.every(jt));break;case"day":It.ticks(c9.every(jt));break;case"week":It.ticks(Vzt[Ft].every(jt));break;case"month":It.ticks(fF.every(jt));break}}z.append("g").attr("class","grid").attr("transform","translate("+gt+", "+Q+")").call(It).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}function ct(gt,Q){let dt=0;const K=Object.keys(R).map(yt=>[yt,R[yt]]);z.append("g").selectAll("text").data(K).enter().append(function(yt){const V=yt[0].split(ei.lineBreakRegex),Ot=-(V.length-1)/2,It=S.createElementNS("http://www.w3.org/2000/svg","text");It.setAttribute("dy",Ot+"em");for(const[jt,xt]of V.entries()){const Ft=S.createElementNS("http://www.w3.org/2000/svg","tspan");Ft.setAttribute("alignment-baseline","central"),Ft.setAttribute("x","10"),jt>0&&Ft.setAttribute("dy","1em"),Ft.textContent=xt,It.appendChild(Ft)}return It}).attr("x",10).attr("y",function(yt,V){if(V>0)for(let Ot=0;Ot` + .mermaid-main-font { + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .exclude-range { + fill: ${i.excludeBkgColor}; + } + + .section { + stroke: none; + opacity: 0.2; + } + + .section0 { + fill: ${i.sectionBkgColor}; + } + + .section2 { + fill: ${i.sectionBkgColor2}; + } + + .section1, + .section3 { + fill: ${i.altSectionBkgColor}; + opacity: 0.2; + } + + .sectionTitle0 { + fill: ${i.titleColor}; + } + + .sectionTitle1 { + fill: ${i.titleColor}; + } + + .sectionTitle2 { + fill: ${i.titleColor}; + } + + .sectionTitle3 { + fill: ${i.titleColor}; + } + + .sectionTitle { + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + + /* Grid and axis */ + + .grid .tick { + stroke: ${i.gridColor}; + opacity: 0.8; + shape-rendering: crispEdges; + } + + .grid .tick text { + font-family: ${i.fontFamily}; + fill: ${i.textColor}; + } + + .grid path { + stroke-width: 0; + } + + + /* Today line */ + + .today { + fill: none; + stroke: ${i.todayLineColor}; + stroke-width: 2px; + } + + + /* Task styling */ + + /* Default task */ + + .task { + stroke-width: 2; + } + + .taskText { + text-anchor: middle; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideRight { + fill: ${i.taskTextDarkColor}; + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideLeft { + fill: ${i.taskTextDarkColor}; + text-anchor: end; + } + + + /* Special case clickable */ + + .task.clickable { + cursor: pointer; + } + + .taskText.clickable { + cursor: pointer; + fill: ${i.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideLeft.clickable { + cursor: pointer; + fill: ${i.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideRight.clickable { + cursor: pointer; + fill: ${i.taskTextClickableColor} !important; + font-weight: bold; + } + + + /* Specific task settings for the sections*/ + + .taskText0, + .taskText1, + .taskText2, + .taskText3 { + fill: ${i.taskTextColor}; + } + + .task0, + .task1, + .task2, + .task3 { + fill: ${i.taskBkgColor}; + stroke: ${i.taskBorderColor}; + } + + .taskTextOutside0, + .taskTextOutside2 + { + fill: ${i.taskTextOutsideColor}; + } + + .taskTextOutside1, + .taskTextOutside3 { + fill: ${i.taskTextOutsideColor}; + } + + + /* Active task */ + + .active0, + .active1, + .active2, + .active3 { + fill: ${i.activeTaskBkgColor}; + stroke: ${i.activeTaskBorderColor}; + } + + .activeText0, + .activeText1, + .activeText2, + .activeText3 { + fill: ${i.taskTextDarkColor} !important; + } + + + /* Completed task */ + + .done0, + .done1, + .done2, + .done3 { + stroke: ${i.doneTaskBorderColor}; + fill: ${i.doneTaskBkgColor}; + stroke-width: 2; + } + + .doneText0, + .doneText1, + .doneText2, + .doneText3 { + fill: ${i.taskTextDarkColor} !important; + } + + + /* Tasks on the critical line */ + + .crit0, + .crit1, + .crit2, + .crit3 { + stroke: ${i.critBorderColor}; + fill: ${i.critBkgColor}; + stroke-width: 2; + } + + .activeCrit0, + .activeCrit1, + .activeCrit2, + .activeCrit3 { + stroke: ${i.critBorderColor}; + fill: ${i.activeTaskBkgColor}; + stroke-width: 2; + } + + .doneCrit0, + .doneCrit1, + .doneCrit2, + .doneCrit3 { + stroke: ${i.critBorderColor}; + fill: ${i.doneTaskBkgColor}; + stroke-width: 2; + cursor: pointer; + shape-rendering: crispEdges; + } + + .milestone { + transform: rotate(45deg) scale(0.8,0.8); + } + + .milestoneText { + font-style: italic; + } + .doneCritText0, + .doneCritText1, + .doneCritText2, + .doneCritText3 { + fill: ${i.taskTextDarkColor} !important; + } + + .activeCritText0, + .activeCritText1, + .activeCritText2, + .activeCritText3 { + fill: ${i.taskTextDarkColor} !important; + } + + .titleText { + text-anchor: middle; + font-size: 18px; + fill: ${i.titleColor||i.textColor}; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } +`}},Symbol.toStringTag,{value:"Module"}));var xbt=function(){var i=function(v,b,E,S){for(E=E||{},S=v.length;S--;E[v[S]]=b);return E},a=[6,9,10],f={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(b,E,S,_,M,F,R){switch(F.length-1,M){case 1:return _;case 4:break;case 6:_.setInfo(!0);break}},table:[{3:1,4:[1,2]},{1:[3]},i(a,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},i(a,[2,3]),i(a,[2,4]),i(a,[2,5]),i(a,[2,6])],defaultActions:{4:[2,1]},parseError:function(b,E){if(E.recoverable)this.trace(b);else{var S=new Error(b);throw S.hash=E,S}},parse:function(b){var E=this,S=[0],_=[],M=[null],F=[],R=this.table,B="",z=0,Y=0,nt=2,ot=1,ft=F.slice.call(arguments,1),wt=Object.create(this.lexer),mt={yy:{}};for(var ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ct)&&(mt.yy[ct]=this.yy[ct]);wt.setInput(b,mt.yy),mt.yy.lexer=wt,mt.yy.parser=this,typeof wt.yylloc>"u"&&(wt.yylloc={});var rt=wt.yylloc;F.push(rt);var it=wt.options&&wt.options.ranges;typeof mt.yy.parseError=="function"?this.parseError=mt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function gt(){var Ct;return Ct=_.pop()||wt.lex()||ot,typeof Ct!="number"&&(Ct instanceof Array&&(_=Ct,Ct=_.pop()),Ct=E.symbols_[Ct]||Ct),Ct}for(var Q,dt,K,yt,V={},Ot,It,jt,xt;;){if(dt=S[S.length-1],this.defaultActions[dt]?K=this.defaultActions[dt]:((Q===null||typeof Q>"u")&&(Q=gt()),K=R[dt]&&R[dt][Q]),typeof K>"u"||!K.length||!K[0]){var Ft="";xt=[];for(Ot in R[dt])this.terminals_[Ot]&&Ot>nt&&xt.push("'"+this.terminals_[Ot]+"'");wt.showPosition?Ft="Parse error on line "+(z+1)+`: +`+wt.showPosition()+` +Expecting `+xt.join(", ")+", got '"+(this.terminals_[Q]||Q)+"'":Ft="Parse error on line "+(z+1)+": Unexpected "+(Q==ot?"end of input":"'"+(this.terminals_[Q]||Q)+"'"),this.parseError(Ft,{text:wt.match,token:this.terminals_[Q]||Q,line:wt.yylineno,loc:rt,expected:xt})}if(K[0]instanceof Array&&K.length>1)throw new Error("Parse Error: multiple actions possible at state: "+dt+", token: "+Q);switch(K[0]){case 1:S.push(Q),M.push(wt.yytext),F.push(wt.yylloc),S.push(K[1]),Q=null,Y=wt.yyleng,B=wt.yytext,z=wt.yylineno,rt=wt.yylloc;break;case 2:if(It=this.productions_[K[1]][1],V.$=M[M.length-It],V._$={first_line:F[F.length-(It||1)].first_line,last_line:F[F.length-1].last_line,first_column:F[F.length-(It||1)].first_column,last_column:F[F.length-1].last_column},it&&(V._$.range=[F[F.length-(It||1)].range[0],F[F.length-1].range[1]]),yt=this.performAction.apply(V,[B,Y,z,mt.yy,K[1],M,F].concat(ft)),typeof yt<"u")return yt;It&&(S=S.slice(0,-1*It*2),M=M.slice(0,-1*It),F=F.slice(0,-1*It)),S.push(this.productions_[K[1]][0]),M.push(V.$),F.push(V._$),jt=R[S[S.length-2]][S[S.length-1]],S.push(jt);break;case 3:return!0}}return!0}},g=function(){var v={EOF:1,parseError:function(E,S){if(this.yy.parser)this.yy.parser.parseError(E,S);else throw new Error(E)},setInput:function(b,E){return this.yy=E||this.yy||{},this._input=b,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var b=this._input[0];this.yytext+=b,this.yyleng++,this.offset++,this.match+=b,this.matched+=b;var E=b.match(/(?:\r\n?|\n).*/g);return E?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),b},unput:function(b){var E=b.length,S=b.split(/(?:\r\n?|\n)/g);this._input=b+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-E),this.offset-=E;var _=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),S.length-1&&(this.yylineno-=S.length-1);var M=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:S?(S.length===_.length?this.yylloc.first_column:0)+_[_.length-S.length].length-S[0].length:this.yylloc.first_column-E},this.options.ranges&&(this.yylloc.range=[M[0],M[0]+this.yyleng-E]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(b){this.unput(this.match.slice(b))},pastInput:function(){var b=this.matched.substr(0,this.matched.length-this.match.length);return(b.length>20?"...":"")+b.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var b=this.match;return b.length<20&&(b+=this._input.substr(0,20-b.length)),(b.substr(0,20)+(b.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var b=this.pastInput(),E=new Array(b.length+1).join("-");return b+this.upcomingInput()+` +`+E+"^"},test_match:function(b,E){var S,_,M;if(this.options.backtrack_lexer&&(M={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(M.yylloc.range=this.yylloc.range.slice(0))),_=b[0].match(/(?:\r\n?|\n).*/g),_&&(this.yylineno+=_.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:_?_[_.length-1].length-_[_.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],S=this.performAction.call(this,this.yy,this,E,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),S)return S;if(this._backtrack){for(var F in M)this[F]=M[F];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var b,E,S,_;this._more||(this.yytext="",this.match="");for(var M=this._currentRules(),F=0;FE[0].length)){if(E=S,_=F,this.options.backtrack_lexer){if(b=this.test_match(S,M[F]),b!==!1)return b;if(this._backtrack){E=!1;continue}else return!1}else if(!this.options.flex)break}return E?(b=this.test_match(E,M[_]),b!==!1?b:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var E=this.next();return E||this.lex()},begin:function(E){this.conditionStack.push(E)},popState:function(){var E=this.conditionStack.length-1;return E>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(E){return E=this.conditionStack.length-1-Math.abs(E||0),E>=0?this.conditionStack[E]:"INITIAL"},pushState:function(E){this.begin(E)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(E,S,_,M){switch(_){case 0:return 4;case 1:return 9;case 2:return"space";case 3:return 10;case 4:return 6;case 5:return"TXT"}},rules:[/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5],inclusive:!0}}};return v}();f.lexer=g;function w(){this.yy={}}return w.prototype=f,f.Parser=w,new w}();xbt.parser=xbt;const aXe=xbt,Uzt={info:!1};let kbt=Uzt.info;const oXe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:aXe,db:{clear:()=>{kbt=Uzt.info},setInfo:i=>{kbt=i},getInfo:()=>kbt},renderer:{draw:(i,a,f)=>{Kt.debug(`rendering info diagram +`+i);const g=FF(a);sg(g,100,400,!0),g.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${f}`)}}}},Symbol.toStringTag,{value:"Module"}));var Ebt=function(){var i=function(wt,mt,ct,rt){for(ct=ct||{},rt=wt.length;rt--;ct[wt[rt]]=mt);return ct},a=[1,3],f=[1,4],g=[1,5],w=[1,6],v=[1,10,12,14,16,18,19,20,21,22],b=[2,4],E=[1,5,10,12,14,16,18,19,20,21,22],S=[20,21,22],_=[2,7],M=[1,12],F=[1,13],R=[1,14],B=[1,15],z=[1,16],Y=[1,17],nt={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,PIE:5,document:6,showData:7,line:8,statement:9,txt:10,value:11,title:12,title_value:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,section:19,NEWLINE:20,";":21,EOF:22,$accept:0,$end:1},terminals_:{2:"error",5:"PIE",7:"showData",10:"txt",11:"value",12:"title",13:"title_value",14:"acc_title",15:"acc_title_value",16:"acc_descr",17:"acc_descr_value",18:"acc_descr_multiline_value",19:"section",20:"NEWLINE",21:";",22:"EOF"},productions_:[0,[3,2],[3,2],[3,3],[6,0],[6,2],[8,2],[9,0],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[4,1],[4,1],[4,1]],performAction:function(mt,ct,rt,it,gt,Q,dt){var K=Q.length-1;switch(gt){case 3:it.setShowData(!0);break;case 6:this.$=Q[K-1];break;case 8:it.addSection(Q[K-1],it.cleanupValue(Q[K]));break;case 9:this.$=Q[K].trim(),it.setDiagramTitle(this.$);break;case 10:this.$=Q[K].trim(),it.setAccTitle(this.$);break;case 11:case 12:this.$=Q[K].trim(),it.setAccDescription(this.$);break;case 13:it.addSection(Q[K].substr(8)),this.$=Q[K].substr(8);break}},table:[{3:1,4:2,5:a,20:f,21:g,22:w},{1:[3]},{3:7,4:2,5:a,20:f,21:g,22:w},i(v,b,{6:8,7:[1,9]}),i(E,[2,14]),i(E,[2,15]),i(E,[2,16]),{1:[2,1]},i(S,_,{8:10,9:11,1:[2,2],10:M,12:F,14:R,16:B,18:z,19:Y}),i(v,b,{6:18}),i(v,[2,5]),{4:19,20:f,21:g,22:w},{11:[1,20]},{13:[1,21]},{15:[1,22]},{17:[1,23]},i(S,[2,12]),i(S,[2,13]),i(S,_,{8:10,9:11,1:[2,3],10:M,12:F,14:R,16:B,18:z,19:Y}),i(v,[2,6]),i(S,[2,8]),i(S,[2,9]),i(S,[2,10]),i(S,[2,11])],defaultActions:{7:[2,1]},parseError:function(mt,ct){if(ct.recoverable)this.trace(mt);else{var rt=new Error(mt);throw rt.hash=ct,rt}},parse:function(mt){var ct=this,rt=[0],it=[],gt=[null],Q=[],dt=this.table,K="",yt=0,V=0,Ot=2,It=1,jt=Q.slice.call(arguments,1),xt=Object.create(this.lexer),Ft={yy:{}};for(var Ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ct)&&(Ft.yy[Ct]=this.yy[Ct]);xt.setInput(mt,Ft.yy),Ft.yy.lexer=xt,Ft.yy.parser=this,typeof xt.yylloc>"u"&&(xt.yylloc={});var kt=xt.yylloc;Q.push(kt);var Gt=xt.options&&xt.options.ranges;typeof Ft.yy.parseError=="function"?this.parseError=Ft.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Fe(){var xe;return xe=it.pop()||xt.lex()||It,typeof xe!="number"&&(xe instanceof Array&&(it=xe,xe=it.pop()),xe=ct.symbols_[xe]||xe),xe}for(var Mt,pn,Ae,ye,tn={},sn,be,Ne,Xt;;){if(pn=rt[rt.length-1],this.defaultActions[pn]?Ae=this.defaultActions[pn]:((Mt===null||typeof Mt>"u")&&(Mt=Fe()),Ae=dt[pn]&&dt[pn][Mt]),typeof Ae>"u"||!Ae.length||!Ae[0]){var _e="";Xt=[];for(sn in dt[pn])this.terminals_[sn]&&sn>Ot&&Xt.push("'"+this.terminals_[sn]+"'");xt.showPosition?_e="Parse error on line "+(yt+1)+`: +`+xt.showPosition()+` +Expecting `+Xt.join(", ")+", got '"+(this.terminals_[Mt]||Mt)+"'":_e="Parse error on line "+(yt+1)+": Unexpected "+(Mt==It?"end of input":"'"+(this.terminals_[Mt]||Mt)+"'"),this.parseError(_e,{text:xt.match,token:this.terminals_[Mt]||Mt,line:xt.yylineno,loc:kt,expected:Xt})}if(Ae[0]instanceof Array&&Ae.length>1)throw new Error("Parse Error: multiple actions possible at state: "+pn+", token: "+Mt);switch(Ae[0]){case 1:rt.push(Mt),gt.push(xt.yytext),Q.push(xt.yylloc),rt.push(Ae[1]),Mt=null,V=xt.yyleng,K=xt.yytext,yt=xt.yylineno,kt=xt.yylloc;break;case 2:if(be=this.productions_[Ae[1]][1],tn.$=gt[gt.length-be],tn._$={first_line:Q[Q.length-(be||1)].first_line,last_line:Q[Q.length-1].last_line,first_column:Q[Q.length-(be||1)].first_column,last_column:Q[Q.length-1].last_column},Gt&&(tn._$.range=[Q[Q.length-(be||1)].range[0],Q[Q.length-1].range[1]]),ye=this.performAction.apply(tn,[K,V,yt,Ft.yy,Ae[1],gt,Q].concat(jt)),typeof ye<"u")return ye;be&&(rt=rt.slice(0,-1*be*2),gt=gt.slice(0,-1*be),Q=Q.slice(0,-1*be)),rt.push(this.productions_[Ae[1]][0]),gt.push(tn.$),Q.push(tn._$),Ne=dt[rt[rt.length-2]][rt[rt.length-1]],rt.push(Ne);break;case 3:return!0}}return!0}},ot=function(){var wt={EOF:1,parseError:function(ct,rt){if(this.yy.parser)this.yy.parser.parseError(ct,rt);else throw new Error(ct)},setInput:function(mt,ct){return this.yy=ct||this.yy||{},this._input=mt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var mt=this._input[0];this.yytext+=mt,this.yyleng++,this.offset++,this.match+=mt,this.matched+=mt;var ct=mt.match(/(?:\r\n?|\n).*/g);return ct?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),mt},unput:function(mt){var ct=mt.length,rt=mt.split(/(?:\r\n?|\n)/g);this._input=mt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ct),this.offset-=ct;var it=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),rt.length-1&&(this.yylineno-=rt.length-1);var gt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:rt?(rt.length===it.length?this.yylloc.first_column:0)+it[it.length-rt.length].length-rt[0].length:this.yylloc.first_column-ct},this.options.ranges&&(this.yylloc.range=[gt[0],gt[0]+this.yyleng-ct]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(mt){this.unput(this.match.slice(mt))},pastInput:function(){var mt=this.matched.substr(0,this.matched.length-this.match.length);return(mt.length>20?"...":"")+mt.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var mt=this.match;return mt.length<20&&(mt+=this._input.substr(0,20-mt.length)),(mt.substr(0,20)+(mt.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var mt=this.pastInput(),ct=new Array(mt.length+1).join("-");return mt+this.upcomingInput()+` +`+ct+"^"},test_match:function(mt,ct){var rt,it,gt;if(this.options.backtrack_lexer&&(gt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(gt.yylloc.range=this.yylloc.range.slice(0))),it=mt[0].match(/(?:\r\n?|\n).*/g),it&&(this.yylineno+=it.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:it?it[it.length-1].length-it[it.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+mt[0].length},this.yytext+=mt[0],this.match+=mt[0],this.matches=mt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(mt[0].length),this.matched+=mt[0],rt=this.performAction.call(this,this.yy,this,ct,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),rt)return rt;if(this._backtrack){for(var Q in gt)this[Q]=gt[Q];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var mt,ct,rt,it;this._more||(this.yytext="",this.match="");for(var gt=this._currentRules(),Q=0;Qct[0].length)){if(ct=rt,it=Q,this.options.backtrack_lexer){if(mt=this.test_match(rt,gt[Q]),mt!==!1)return mt;if(this._backtrack){ct=!1;continue}else return!1}else if(!this.options.flex)break}return ct?(mt=this.test_match(ct,gt[it]),mt!==!1?mt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var ct=this.next();return ct||this.lex()},begin:function(ct){this.conditionStack.push(ct)},popState:function(){var ct=this.conditionStack.length-1;return ct>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(ct){return ct=this.conditionStack.length-1-Math.abs(ct||0),ct>=0?this.conditionStack[ct]:"INITIAL"},pushState:function(ct){this.begin(ct)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(ct,rt,it,gt){switch(it){case 0:break;case 1:break;case 2:return 20;case 3:break;case 4:break;case 5:return this.begin("title"),12;case 6:return this.popState(),"title_value";case 7:return this.begin("acc_title"),14;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),16;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:this.begin("string");break;case 15:this.popState();break;case 16:return"txt";case 17:return 5;case 18:return 7;case 19:return"value";case 20:return 22}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[\s]+)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:pie\b)/i,/^(?:showData\b)/i,/^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[6],inclusive:!1},string:{rules:[15,16],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,7,9,11,14,17,18,19,20],inclusive:!0}}};return wt}();nt.lexer=ot;function ft(){this.yy={}}return ft.prototype=nt,nt.Parser=ft,new ft}();Ebt.parser=Ebt;const cXe=Ebt,Gzt=Bl.pie,dX={sections:{},showData:!1,config:Gzt};let gX=dX.sections,Tbt=dX.showData;const uXe=structuredClone(Gzt),lXe={getConfig:()=>structuredClone(uXe),clear:()=>{gX=structuredClone(dX.sections),Tbt=dX.showData,ag()},setDiagramTitle:S2,getDiagramTitle:Zg,setAccTitle:og,getAccTitle:Xg,setAccDescription:Qg,getAccDescription:Jg,addSection:(i,a)=>{i=Ef(i,Re()),gX[i]===void 0&&(gX[i]=a,Kt.debug(`added new section: ${i}, with value: ${a}`))},getSections:()=>gX,cleanupValue:i=>(i.substring(0,1)===":"&&(i=i.substring(1).trim()),Number(i.trim())),setShowData:i=>{Tbt=i},getShowData:()=>Tbt},hXe=i=>` + .pieCircle{ + stroke: ${i.pieStrokeColor}; + stroke-width : ${i.pieStrokeWidth}; + opacity : ${i.pieOpacity}; + } + .pieOuterCircle{ + stroke: ${i.pieOuterStrokeColor}; + stroke-width: ${i.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${i.pieTitleTextSize}; + fill: ${i.pieTitleTextColor}; + font-family: ${i.fontFamily}; + } + .slice { + font-family: ${i.fontFamily}; + fill: ${i.pieSectionTextColor}; + font-size:${i.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${i.pieLegendTextColor}; + font-family: ${i.fontFamily}; + font-size: ${i.pieLegendTextSize}; + } +`,fXe=i=>{const a=Object.entries(i).map(g=>({label:g[0],value:g[1]})).sort((g,w)=>w.value-g.value);return pDe().value(g=>g.value)(a)},dXe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:cXe,db:lXe,renderer:{draw:(i,a,f,g)=>{Kt.debug(`rendering pie chart +`+i);const w=g.db,v=Re(),b=MF(w.getConfig(),v.pie),E=40,S=18,_=4,M=450,F=M,R=FF(a),B=R.append("g"),z=w.getSections();B.attr("transform","translate("+F/2+","+M/2+")");const{themeVariables:Y}=v;let[nt]=k9(Y.pieOuterStrokeWidth);nt??(nt=2);const ot=b.textPosition,ft=Math.min(F,M)/2-E,wt=YL().innerRadius(0).outerRadius(ft),mt=YL().innerRadius(ft*ot).outerRadius(ft*ot);B.append("circle").attr("cx",0).attr("cy",0).attr("r",ft+nt/2).attr("class","pieOuterCircle");const ct=fXe(z),rt=[Y.pie1,Y.pie2,Y.pie3,Y.pie4,Y.pie5,Y.pie6,Y.pie7,Y.pie8,Y.pie9,Y.pie10,Y.pie11,Y.pie12],it=oF(rt);B.selectAll("mySlices").data(ct).enter().append("path").attr("d",wt).attr("fill",yt=>it(yt.data.label)).attr("class","pieCircle");let gt=0;Object.keys(z).forEach(yt=>{gt+=z[yt]}),B.selectAll("mySlices").data(ct).enter().append("text").text(yt=>(yt.data.value/gt*100).toFixed(0)+"%").attr("transform",yt=>"translate("+mt.centroid(yt)+")").style("text-anchor","middle").attr("class","slice"),B.append("text").text(w.getDiagramTitle()).attr("x",0).attr("y",-(M-50)/2).attr("class","pieTitleText");const Q=B.selectAll(".legend").data(it.domain()).enter().append("g").attr("class","legend").attr("transform",(yt,V)=>{const Ot=S+_,It=Ot*it.domain().length/2,jt=12*S,xt=V*Ot-It;return"translate("+jt+","+xt+")"});Q.append("rect").attr("width",S).attr("height",S).style("fill",it).style("stroke",it),Q.data(ct).append("text").attr("x",S+_).attr("y",S-_).text(yt=>{const{label:V,value:Ot}=yt.data;return w.getShowData()?`${V} [${Ot}]`:V});const dt=Math.max(...Q.selectAll("text").nodes().map(yt=>(yt==null?void 0:yt.getBoundingClientRect().width)??0)),K=F+E+S+_+dt;R.attr("viewBox",`0 0 ${K} ${M}`),sg(R,M,K,b.useMaxWidth)}},styles:hXe}},Symbol.toStringTag,{value:"Module"}));var Cbt=function(){var i=function(Ae,ye,tn,sn){for(tn=tn||{},sn=Ae.length;sn--;tn[Ae[sn]]=ye);return tn},a=[1,3],f=[1,4],g=[1,5],w=[1,6],v=[1,7],b=[1,5,13,15,17,19,20,25,27,28,29,30,31,32,33,34,37,38,40,41,42,43,44,45,46,47,48,49,50],E=[1,5,6,13,15,17,19,20,25,27,28,29,30,31,32,33,34,37,38,40,41,42,43,44,45,46,47,48,49,50],S=[32,33,34],_=[2,7],M=[1,13],F=[1,17],R=[1,18],B=[1,19],z=[1,20],Y=[1,21],nt=[1,22],ot=[1,23],ft=[1,24],wt=[1,25],mt=[1,26],ct=[1,27],rt=[1,30],it=[1,31],gt=[1,32],Q=[1,33],dt=[1,34],K=[1,35],yt=[1,36],V=[1,37],Ot=[1,38],It=[1,39],jt=[1,40],xt=[1,41],Ft=[1,42],Ct=[1,57],kt=[1,58],Gt=[5,22,26,32,33,34,40,41,42,43,44,45,46,47,48,49,50,51],Fe={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,SPACE:5,QUADRANT:6,document:7,line:8,statement:9,axisDetails:10,quadrantDetails:11,points:12,title:13,title_value:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,text:21,point_start:22,point_x:23,point_y:24,"X-AXIS":25,"AXIS-TEXT-DELIMITER":26,"Y-AXIS":27,QUADRANT_1:28,QUADRANT_2:29,QUADRANT_3:30,QUADRANT_4:31,NEWLINE:32,SEMI:33,EOF:34,alphaNumToken:35,textNoTagsToken:36,STR:37,MD_STR:38,alphaNum:39,PUNCTUATION:40,AMP:41,NUM:42,ALPHA:43,COMMA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,UNDERSCORE:50,MINUS:51,$accept:0,$end:1},terminals_:{2:"error",5:"SPACE",6:"QUADRANT",13:"title",14:"title_value",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",22:"point_start",23:"point_x",24:"point_y",25:"X-AXIS",26:"AXIS-TEXT-DELIMITER",27:"Y-AXIS",28:"QUADRANT_1",29:"QUADRANT_2",30:"QUADRANT_3",31:"QUADRANT_4",32:"NEWLINE",33:"SEMI",34:"EOF",37:"STR",38:"MD_STR",40:"PUNCTUATION",41:"AMP",42:"NUM",43:"ALPHA",44:"COMMA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"UNDERSCORE",51:"MINUS"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[9,0],[9,2],[9,1],[9,1],[9,1],[9,2],[9,2],[9,2],[9,1],[9,1],[12,4],[10,4],[10,3],[10,2],[10,4],[10,3],[10,2],[11,2],[11,2],[11,2],[11,2],[4,1],[4,1],[4,1],[21,1],[21,2],[21,1],[21,1],[39,1],[39,2],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[36,1],[36,1],[36,1]],performAction:function(ye,tn,sn,be,Ne,Xt,_e){var xe=Xt.length-1;switch(Ne){case 12:this.$=Xt[xe].trim(),be.setDiagramTitle(this.$);break;case 13:this.$=Xt[xe].trim(),be.setAccTitle(this.$);break;case 14:case 15:this.$=Xt[xe].trim(),be.setAccDescription(this.$);break;case 16:be.addSection(Xt[xe].substr(8)),this.$=Xt[xe].substr(8);break;case 17:be.addPoint(Xt[xe-3],Xt[xe-1],Xt[xe]);break;case 18:be.setXAxisLeftText(Xt[xe-2]),be.setXAxisRightText(Xt[xe]);break;case 19:Xt[xe-1].text+=" ⟶ ",be.setXAxisLeftText(Xt[xe-1]);break;case 20:be.setXAxisLeftText(Xt[xe]);break;case 21:be.setYAxisBottomText(Xt[xe-2]),be.setYAxisTopText(Xt[xe]);break;case 22:Xt[xe-1].text+=" ⟶ ",be.setYAxisBottomText(Xt[xe-1]);break;case 23:be.setYAxisBottomText(Xt[xe]);break;case 24:be.setQuadrant1Text(Xt[xe]);break;case 25:be.setQuadrant2Text(Xt[xe]);break;case 26:be.setQuadrant3Text(Xt[xe]);break;case 27:be.setQuadrant4Text(Xt[xe]);break;case 31:this.$={text:Xt[xe],type:"text"};break;case 32:this.$={text:Xt[xe-1].text+""+Xt[xe],type:Xt[xe-1].type};break;case 33:this.$={text:Xt[xe],type:"text"};break;case 34:this.$={text:Xt[xe],type:"markdown"};break;case 35:this.$=Xt[xe];break;case 36:this.$=Xt[xe-1]+""+Xt[xe];break}},table:[{3:1,4:2,5:a,6:f,32:g,33:w,34:v},{1:[3]},{3:8,4:2,5:a,6:f,32:g,33:w,34:v},{3:9,4:2,5:a,6:f,32:g,33:w,34:v},i(b,[2,4],{7:10}),i(E,[2,28]),i(E,[2,29]),i(E,[2,30]),{1:[2,1]},{1:[2,2]},i(S,_,{8:11,9:12,10:14,11:15,12:16,21:28,35:29,1:[2,3],5:M,13:F,15:R,17:B,19:z,20:Y,25:nt,27:ot,28:ft,29:wt,30:mt,31:ct,37:rt,38:it,40:gt,41:Q,42:dt,43:K,44:yt,45:V,46:Ot,47:It,48:jt,49:xt,50:Ft}),i(b,[2,5]),{4:43,32:g,33:w,34:v},i(S,_,{10:14,11:15,12:16,21:28,35:29,9:44,5:M,13:F,15:R,17:B,19:z,20:Y,25:nt,27:ot,28:ft,29:wt,30:mt,31:ct,37:rt,38:it,40:gt,41:Q,42:dt,43:K,44:yt,45:V,46:Ot,47:It,48:jt,49:xt,50:Ft}),i(S,[2,9]),i(S,[2,10]),i(S,[2,11]),{14:[1,45]},{16:[1,46]},{18:[1,47]},i(S,[2,15]),i(S,[2,16]),{21:48,35:29,37:rt,38:it,40:gt,41:Q,42:dt,43:K,44:yt,45:V,46:Ot,47:It,48:jt,49:xt,50:Ft},{21:49,35:29,37:rt,38:it,40:gt,41:Q,42:dt,43:K,44:yt,45:V,46:Ot,47:It,48:jt,49:xt,50:Ft},{21:50,35:29,37:rt,38:it,40:gt,41:Q,42:dt,43:K,44:yt,45:V,46:Ot,47:It,48:jt,49:xt,50:Ft},{21:51,35:29,37:rt,38:it,40:gt,41:Q,42:dt,43:K,44:yt,45:V,46:Ot,47:It,48:jt,49:xt,50:Ft},{21:52,35:29,37:rt,38:it,40:gt,41:Q,42:dt,43:K,44:yt,45:V,46:Ot,47:It,48:jt,49:xt,50:Ft},{21:53,35:29,37:rt,38:it,40:gt,41:Q,42:dt,43:K,44:yt,45:V,46:Ot,47:It,48:jt,49:xt,50:Ft},{5:Ct,22:[1,54],35:56,36:55,40:gt,41:Q,42:dt,43:K,44:yt,45:V,46:Ot,47:It,48:jt,49:xt,50:Ft,51:kt},i(Gt,[2,31]),i(Gt,[2,33]),i(Gt,[2,34]),i(Gt,[2,37]),i(Gt,[2,38]),i(Gt,[2,39]),i(Gt,[2,40]),i(Gt,[2,41]),i(Gt,[2,42]),i(Gt,[2,43]),i(Gt,[2,44]),i(Gt,[2,45]),i(Gt,[2,46]),i(Gt,[2,47]),i(b,[2,6]),i(S,[2,8]),i(S,[2,12]),i(S,[2,13]),i(S,[2,14]),i(S,[2,20],{36:55,35:56,5:Ct,26:[1,59],40:gt,41:Q,42:dt,43:K,44:yt,45:V,46:Ot,47:It,48:jt,49:xt,50:Ft,51:kt}),i(S,[2,23],{36:55,35:56,5:Ct,26:[1,60],40:gt,41:Q,42:dt,43:K,44:yt,45:V,46:Ot,47:It,48:jt,49:xt,50:Ft,51:kt}),i(S,[2,24],{36:55,35:56,5:Ct,40:gt,41:Q,42:dt,43:K,44:yt,45:V,46:Ot,47:It,48:jt,49:xt,50:Ft,51:kt}),i(S,[2,25],{36:55,35:56,5:Ct,40:gt,41:Q,42:dt,43:K,44:yt,45:V,46:Ot,47:It,48:jt,49:xt,50:Ft,51:kt}),i(S,[2,26],{36:55,35:56,5:Ct,40:gt,41:Q,42:dt,43:K,44:yt,45:V,46:Ot,47:It,48:jt,49:xt,50:Ft,51:kt}),i(S,[2,27],{36:55,35:56,5:Ct,40:gt,41:Q,42:dt,43:K,44:yt,45:V,46:Ot,47:It,48:jt,49:xt,50:Ft,51:kt}),{23:[1,61]},i(Gt,[2,32]),i(Gt,[2,48]),i(Gt,[2,49]),i(Gt,[2,50]),i(S,[2,19],{35:29,21:62,37:rt,38:it,40:gt,41:Q,42:dt,43:K,44:yt,45:V,46:Ot,47:It,48:jt,49:xt,50:Ft}),i(S,[2,22],{35:29,21:63,37:rt,38:it,40:gt,41:Q,42:dt,43:K,44:yt,45:V,46:Ot,47:It,48:jt,49:xt,50:Ft}),{24:[1,64]},i(S,[2,18],{36:55,35:56,5:Ct,40:gt,41:Q,42:dt,43:K,44:yt,45:V,46:Ot,47:It,48:jt,49:xt,50:Ft,51:kt}),i(S,[2,21],{36:55,35:56,5:Ct,40:gt,41:Q,42:dt,43:K,44:yt,45:V,46:Ot,47:It,48:jt,49:xt,50:Ft,51:kt}),i(S,[2,17])],defaultActions:{8:[2,1],9:[2,2]},parseError:function(ye,tn){if(tn.recoverable)this.trace(ye);else{var sn=new Error(ye);throw sn.hash=tn,sn}},parse:function(ye){var tn=this,sn=[0],be=[],Ne=[null],Xt=[],_e=this.table,xe="",Mn=0,ce=0,Br=2,we=1,Fi=Xt.slice.call(arguments,1),mi=Object.create(this.lexer),ga={yy:{}};for(var Ss in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ss)&&(ga.yy[Ss]=this.yy[Ss]);mi.setInput(ye,ga.yy),ga.yy.lexer=mi,ga.yy.parser=this,typeof mi.yylloc>"u"&&(mi.yylloc={});var za=mi.yylloc;Xt.push(za);var br=mi.options&&mi.options.ranges;typeof ga.yy.parseError=="function"?this.parseError=ga.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function An(){var va;return va=be.pop()||mi.lex()||we,typeof va!="number"&&(va instanceof Array&&(be=va,va=be.pop()),va=tn.symbols_[va]||va),va}for(var Nn,Bn,ke,pe,Je={},an,xn,qa,xo;;){if(Bn=sn[sn.length-1],this.defaultActions[Bn]?ke=this.defaultActions[Bn]:((Nn===null||typeof Nn>"u")&&(Nn=An()),ke=_e[Bn]&&_e[Bn][Nn]),typeof ke>"u"||!ke.length||!ke[0]){var ko="";xo=[];for(an in _e[Bn])this.terminals_[an]&&an>Br&&xo.push("'"+this.terminals_[an]+"'");mi.showPosition?ko="Parse error on line "+(Mn+1)+`: +`+mi.showPosition()+` +Expecting `+xo.join(", ")+", got '"+(this.terminals_[Nn]||Nn)+"'":ko="Parse error on line "+(Mn+1)+": Unexpected "+(Nn==we?"end of input":"'"+(this.terminals_[Nn]||Nn)+"'"),this.parseError(ko,{text:mi.match,token:this.terminals_[Nn]||Nn,line:mi.yylineno,loc:za,expected:xo})}if(ke[0]instanceof Array&&ke.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Bn+", token: "+Nn);switch(ke[0]){case 1:sn.push(Nn),Ne.push(mi.yytext),Xt.push(mi.yylloc),sn.push(ke[1]),Nn=null,ce=mi.yyleng,xe=mi.yytext,Mn=mi.yylineno,za=mi.yylloc;break;case 2:if(xn=this.productions_[ke[1]][1],Je.$=Ne[Ne.length-xn],Je._$={first_line:Xt[Xt.length-(xn||1)].first_line,last_line:Xt[Xt.length-1].last_line,first_column:Xt[Xt.length-(xn||1)].first_column,last_column:Xt[Xt.length-1].last_column},br&&(Je._$.range=[Xt[Xt.length-(xn||1)].range[0],Xt[Xt.length-1].range[1]]),pe=this.performAction.apply(Je,[xe,ce,Mn,ga.yy,ke[1],Ne,Xt].concat(Fi)),typeof pe<"u")return pe;xn&&(sn=sn.slice(0,-1*xn*2),Ne=Ne.slice(0,-1*xn),Xt=Xt.slice(0,-1*xn)),sn.push(this.productions_[ke[1]][0]),Ne.push(Je.$),Xt.push(Je._$),qa=_e[sn[sn.length-2]][sn[sn.length-1]],sn.push(qa);break;case 3:return!0}}return!0}},Mt=function(){var Ae={EOF:1,parseError:function(tn,sn){if(this.yy.parser)this.yy.parser.parseError(tn,sn);else throw new Error(tn)},setInput:function(ye,tn){return this.yy=tn||this.yy||{},this._input=ye,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ye=this._input[0];this.yytext+=ye,this.yyleng++,this.offset++,this.match+=ye,this.matched+=ye;var tn=ye.match(/(?:\r\n?|\n).*/g);return tn?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ye},unput:function(ye){var tn=ye.length,sn=ye.split(/(?:\r\n?|\n)/g);this._input=ye+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-tn),this.offset-=tn;var be=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),sn.length-1&&(this.yylineno-=sn.length-1);var Ne=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:sn?(sn.length===be.length?this.yylloc.first_column:0)+be[be.length-sn.length].length-sn[0].length:this.yylloc.first_column-tn},this.options.ranges&&(this.yylloc.range=[Ne[0],Ne[0]+this.yyleng-tn]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(ye){this.unput(this.match.slice(ye))},pastInput:function(){var ye=this.matched.substr(0,this.matched.length-this.match.length);return(ye.length>20?"...":"")+ye.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var ye=this.match;return ye.length<20&&(ye+=this._input.substr(0,20-ye.length)),(ye.substr(0,20)+(ye.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var ye=this.pastInput(),tn=new Array(ye.length+1).join("-");return ye+this.upcomingInput()+` +`+tn+"^"},test_match:function(ye,tn){var sn,be,Ne;if(this.options.backtrack_lexer&&(Ne={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Ne.yylloc.range=this.yylloc.range.slice(0))),be=ye[0].match(/(?:\r\n?|\n).*/g),be&&(this.yylineno+=be.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:be?be[be.length-1].length-be[be.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+ye[0].length},this.yytext+=ye[0],this.match+=ye[0],this.matches=ye,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ye[0].length),this.matched+=ye[0],sn=this.performAction.call(this,this.yy,this,tn,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),sn)return sn;if(this._backtrack){for(var Xt in Ne)this[Xt]=Ne[Xt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ye,tn,sn,be;this._more||(this.yytext="",this.match="");for(var Ne=this._currentRules(),Xt=0;Xttn[0].length)){if(tn=sn,be=Xt,this.options.backtrack_lexer){if(ye=this.test_match(sn,Ne[Xt]),ye!==!1)return ye;if(this._backtrack){tn=!1;continue}else return!1}else if(!this.options.flex)break}return tn?(ye=this.test_match(tn,Ne[be]),ye!==!1?ye:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var tn=this.next();return tn||this.lex()},begin:function(tn){this.conditionStack.push(tn)},popState:function(){var tn=this.conditionStack.length-1;return tn>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(tn){return tn=this.conditionStack.length-1-Math.abs(tn||0),tn>=0?this.conditionStack[tn]:"INITIAL"},pushState:function(tn){this.begin(tn)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(tn,sn,be,Ne){switch(be){case 0:break;case 1:break;case 2:return 32;case 3:break;case 4:return this.begin("title"),13;case 5:return this.popState(),"title_value";case 6:return this.begin("acc_title"),15;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),17;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 25;case 14:return 27;case 15:return 26;case 16:return 28;case 17:return 29;case 18:return 30;case 19:return 31;case 20:this.begin("md_string");break;case 21:return"MD_STR";case 22:this.popState();break;case 23:this.begin("string");break;case 24:this.popState();break;case 25:return"STR";case 26:return this.begin("point_start"),22;case 27:return this.begin("point_x"),23;case 28:this.popState();break;case 29:this.popState(),this.begin("point_y");break;case 30:return this.popState(),24;case 31:return 6;case 32:return 43;case 33:return"COLON";case 34:return 45;case 35:return 44;case 36:return 46;case 37:return 46;case 38:return 47;case 39:return 49;case 40:return 50;case 41:return 48;case 42:return 41;case 43:return 51;case 44:return 42;case 45:return 5;case 46:return 33;case 47:return 40;case 48:return 34}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{point_y:{rules:[30],inclusive:!1},point_x:{rules:[29],inclusive:!1},point_start:{rules:[27,28],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[21,22],inclusive:!1},string:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,23,26,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],inclusive:!0}}};return Ae}();Fe.lexer=Mt;function pn(){this.yy={}}return pn.prototype=Fe,Fe.Parser=pn,new pn}();Cbt.parser=Cbt;const gXe=Cbt,rp=dgt();class pXe{constructor(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){var a,f,g,w,v,b,E,S,_,M,F,R,B,z,Y,nt,ot,ft;return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:((a=Bl.quadrantChart)==null?void 0:a.chartWidth)||500,chartWidth:((f=Bl.quadrantChart)==null?void 0:f.chartHeight)||500,titlePadding:((g=Bl.quadrantChart)==null?void 0:g.titlePadding)||10,titleFontSize:((w=Bl.quadrantChart)==null?void 0:w.titleFontSize)||20,quadrantPadding:((v=Bl.quadrantChart)==null?void 0:v.quadrantPadding)||5,xAxisLabelPadding:((b=Bl.quadrantChart)==null?void 0:b.xAxisLabelPadding)||5,yAxisLabelPadding:((E=Bl.quadrantChart)==null?void 0:E.yAxisLabelPadding)||5,xAxisLabelFontSize:((S=Bl.quadrantChart)==null?void 0:S.xAxisLabelFontSize)||16,yAxisLabelFontSize:((_=Bl.quadrantChart)==null?void 0:_.yAxisLabelFontSize)||16,quadrantLabelFontSize:((M=Bl.quadrantChart)==null?void 0:M.quadrantLabelFontSize)||16,quadrantTextTopPadding:((F=Bl.quadrantChart)==null?void 0:F.quadrantTextTopPadding)||5,pointTextPadding:((R=Bl.quadrantChart)==null?void 0:R.pointTextPadding)||5,pointLabelFontSize:((B=Bl.quadrantChart)==null?void 0:B.pointLabelFontSize)||12,pointRadius:((z=Bl.quadrantChart)==null?void 0:z.pointRadius)||5,xAxisPosition:((Y=Bl.quadrantChart)==null?void 0:Y.xAxisPosition)||"top",yAxisPosition:((nt=Bl.quadrantChart)==null?void 0:nt.yAxisPosition)||"left",quadrantInternalBorderStrokeWidth:((ot=Bl.quadrantChart)==null?void 0:ot.quadrantInternalBorderStrokeWidth)||1,quadrantExternalBorderStrokeWidth:((ft=Bl.quadrantChart)==null?void 0:ft.quadrantExternalBorderStrokeWidth)||2}}getDefaultThemeConfig(){return{quadrant1Fill:rp.quadrant1Fill,quadrant2Fill:rp.quadrant2Fill,quadrant3Fill:rp.quadrant3Fill,quadrant4Fill:rp.quadrant4Fill,quadrant1TextFill:rp.quadrant1TextFill,quadrant2TextFill:rp.quadrant2TextFill,quadrant3TextFill:rp.quadrant3TextFill,quadrant4TextFill:rp.quadrant4TextFill,quadrantPointFill:rp.quadrantPointFill,quadrantPointTextFill:rp.quadrantPointTextFill,quadrantXAxisTextFill:rp.quadrantXAxisTextFill,quadrantYAxisTextFill:rp.quadrantYAxisTextFill,quadrantTitleFill:rp.quadrantTitleFill,quadrantInternalBorderStrokeFill:rp.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:rp.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),Kt.info("clear called")}setData(a){this.data={...this.data,...a}}addPoints(a){this.data.points=[...a,...this.data.points]}setConfig(a){Kt.trace("setConfig called with: ",a),this.config={...this.config,...a}}setThemeConfig(a){Kt.trace("setThemeConfig called with: ",a),this.themeConfig={...this.themeConfig,...a}}calculateSpace(a,f,g,w){const v=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize,b={top:a==="top"&&f?v:0,bottom:a==="bottom"&&f?v:0},E=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize,S={left:this.config.yAxisPosition==="left"&&g?E:0,right:this.config.yAxisPosition==="right"&&g?E:0},_=this.config.titleFontSize+this.config.titlePadding*2,M={top:w?_:0},F=this.config.quadrantPadding+S.left,R=this.config.quadrantPadding+b.top+M.top,B=this.config.chartWidth-this.config.quadrantPadding*2-S.left-S.right,z=this.config.chartHeight-this.config.quadrantPadding*2-b.top-b.bottom-M.top,Y=B/2,nt=z/2;return{xAxisSpace:b,yAxisSpace:S,titleSpace:M,quadrantSpace:{quadrantLeft:F,quadrantTop:R,quadrantWidth:B,quadrantHalfWidth:Y,quadrantHeight:z,quadrantHalfHeight:nt}}}getAxisLabels(a,f,g,w){const{quadrantSpace:v,titleSpace:b}=w,{quadrantHalfHeight:E,quadrantHeight:S,quadrantLeft:_,quadrantHalfWidth:M,quadrantTop:F,quadrantWidth:R}=v,B=!!this.data.xAxisRightText,z=!!this.data.yAxisTopText,Y=[];return this.data.xAxisLeftText&&f&&Y.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:_+(B?M/2:0),y:a==="top"?this.config.xAxisLabelPadding+b.top:this.config.xAxisLabelPadding+F+S+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:B?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&f&&Y.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:_+M+(B?M/2:0),y:a==="top"?this.config.xAxisLabelPadding+b.top:this.config.xAxisLabelPadding+F+S+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:B?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&g&&Y.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+_+R+this.config.quadrantPadding,y:F+S-(z?E/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:z?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&g&&Y.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+_+R+this.config.quadrantPadding,y:F+E-(z?E/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:z?"center":"left",horizontalPos:"top",rotation:-90}),Y}getQuadrants(a){const{quadrantSpace:f}=a,{quadrantHalfHeight:g,quadrantLeft:w,quadrantHalfWidth:v,quadrantTop:b}=f,E=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:w+v,y:b,width:v,height:g,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:w,y:b,width:v,height:g,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:w,y:b+g,width:v,height:g,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:w+v,y:b+g,width:v,height:g,fill:this.themeConfig.quadrant4Fill}];for(const S of E)S.text.x=S.x+S.width/2,this.data.points.length===0?(S.text.y=S.y+S.height/2,S.text.horizontalPos="middle"):(S.text.y=S.y+this.config.quadrantTextTopPadding,S.text.horizontalPos="top");return E}getQuadrantPoints(a){const{quadrantSpace:f}=a,{quadrantHeight:g,quadrantLeft:w,quadrantTop:v,quadrantWidth:b}=f,E=VL().domain([0,1]).range([w,b+w]),S=VL().domain([0,1]).range([g+v,v]);return this.data.points.map(M=>({x:E(M.x),y:S(M.y),fill:this.themeConfig.quadrantPointFill,radius:this.config.pointRadius,text:{text:M.text,fill:this.themeConfig.quadrantPointTextFill,x:E(M.x),y:S(M.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0}}))}getBorders(a){const f=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:g}=a,{quadrantHalfHeight:w,quadrantHeight:v,quadrantLeft:b,quadrantHalfWidth:E,quadrantTop:S,quadrantWidth:_}=g;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:b-f,y1:S,x2:b+_+f,y2:S},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:b+_,y1:S+f,x2:b+_,y2:S+v-f},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:b-f,y1:S+v,x2:b+_+f,y2:S+v},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:b,y1:S+f,x2:b,y2:S+v-f},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:b+E,y1:S+f,x2:b+E,y2:S+v-f},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:b+f,y1:S+w,x2:b+_-f,y2:S+w}]}getTitle(a){if(a)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){const a=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),f=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),g=this.config.showTitle&&!!this.data.titleText,w=this.data.points.length>0?"bottom":this.config.xAxisPosition,v=this.calculateSpace(w,a,f,g);return{points:this.getQuadrantPoints(v),quadrants:this.getQuadrants(v),axisLabels:this.getAxisLabels(w,a,f,v),borderLines:this.getBorders(v),title:this.getTitle(g)}}}const bXe=Re();function qx(i){return Ef(i.trim(),bXe)}const ug=new pXe;function wXe(i){ug.setData({quadrant1Text:qx(i.text)})}function mXe(i){ug.setData({quadrant2Text:qx(i.text)})}function vXe(i){ug.setData({quadrant3Text:qx(i.text)})}function yXe(i){ug.setData({quadrant4Text:qx(i.text)})}function xXe(i){ug.setData({xAxisLeftText:qx(i.text)})}function kXe(i){ug.setData({xAxisRightText:qx(i.text)})}function EXe(i){ug.setData({yAxisTopText:qx(i.text)})}function TXe(i){ug.setData({yAxisBottomText:qx(i.text)})}function CXe(i,a,f){ug.addPoints([{x:a,y:f,text:qx(i.text)}])}function SXe(i){ug.setConfig({chartWidth:i})}function _Xe(i){ug.setConfig({chartHeight:i})}function AXe(){const i=Re(),{themeVariables:a,quadrantChart:f}=i;return f&&ug.setConfig(f),ug.setThemeConfig({quadrant1Fill:a.quadrant1Fill,quadrant2Fill:a.quadrant2Fill,quadrant3Fill:a.quadrant3Fill,quadrant4Fill:a.quadrant4Fill,quadrant1TextFill:a.quadrant1TextFill,quadrant2TextFill:a.quadrant2TextFill,quadrant3TextFill:a.quadrant3TextFill,quadrant4TextFill:a.quadrant4TextFill,quadrantPointFill:a.quadrantPointFill,quadrantPointTextFill:a.quadrantPointTextFill,quadrantXAxisTextFill:a.quadrantXAxisTextFill,quadrantYAxisTextFill:a.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:a.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:a.quadrantInternalBorderStrokeFill,quadrantTitleFill:a.quadrantTitleFill}),ug.setData({titleText:Zg()}),ug.build()}const LXe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:gXe,db:{setWidth:SXe,setHeight:_Xe,setQuadrant1Text:wXe,setQuadrant2Text:mXe,setQuadrant3Text:vXe,setQuadrant4Text:yXe,setXAxisLeftText:xXe,setXAxisRightText:kXe,setYAxisTopText:EXe,setYAxisBottomText:TXe,addPoint:CXe,getQuadrantData:AXe,clear:function(){ug.clear(),ag()},setAccTitle:og,getAccTitle:Xg,setDiagramTitle:S2,getDiagramTitle:Zg,getAccDescription:Jg,setAccDescription:Qg},renderer:{draw:(i,a,f,g)=>{var gt,Q,dt;function w(K){return K==="top"?"hanging":"middle"}function v(K){return K==="left"?"start":"middle"}function b(K){return`translate(${K.x}, ${K.y}) rotate(${K.rotation||0})`}const E=Re();Kt.debug(`Rendering quadrant chart +`+i);const S=E.securityLevel;let _;S==="sandbox"&&(_=Tr("#i"+a));const F=Tr(S==="sandbox"?_.nodes()[0].contentDocument.body:"body").select(`[id="${a}"]`),R=F.append("g").attr("class","main"),B=((gt=E.quadrantChart)==null?void 0:gt.chartWidth)||500,z=((Q=E.quadrantChart)==null?void 0:Q.chartHeight)||500;sg(F,z,B,((dt=E.quadrantChart)==null?void 0:dt.useMaxWidth)||!0),F.attr("viewBox","0 0 "+B+" "+z),g.db.setHeight(z),g.db.setWidth(B);const Y=g.db.getQuadrantData(),nt=R.append("g").attr("class","quadrants"),ot=R.append("g").attr("class","border"),ft=R.append("g").attr("class","data-points"),wt=R.append("g").attr("class","labels"),mt=R.append("g").attr("class","title");Y.title&&mt.append("text").attr("x",0).attr("y",0).attr("fill",Y.title.fill).attr("font-size",Y.title.fontSize).attr("dominant-baseline",w(Y.title.horizontalPos)).attr("text-anchor",v(Y.title.verticalPos)).attr("transform",b(Y.title)).text(Y.title.text),Y.borderLines&&ot.selectAll("line").data(Y.borderLines).enter().append("line").attr("x1",K=>K.x1).attr("y1",K=>K.y1).attr("x2",K=>K.x2).attr("y2",K=>K.y2).style("stroke",K=>K.strokeFill).style("stroke-width",K=>K.strokeWidth);const ct=nt.selectAll("g.quadrant").data(Y.quadrants).enter().append("g").attr("class","quadrant");ct.append("rect").attr("x",K=>K.x).attr("y",K=>K.y).attr("width",K=>K.width).attr("height",K=>K.height).attr("fill",K=>K.fill),ct.append("text").attr("x",0).attr("y",0).attr("fill",K=>K.text.fill).attr("font-size",K=>K.text.fontSize).attr("dominant-baseline",K=>w(K.text.horizontalPos)).attr("text-anchor",K=>v(K.text.verticalPos)).attr("transform",K=>b(K.text)).text(K=>K.text.text),wt.selectAll("g.label").data(Y.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(K=>K.text).attr("fill",K=>K.fill).attr("font-size",K=>K.fontSize).attr("dominant-baseline",K=>w(K.horizontalPos)).attr("text-anchor",K=>v(K.verticalPos)).attr("transform",K=>b(K));const it=ft.selectAll("g.data-point").data(Y.points).enter().append("g").attr("class","data-point");it.append("circle").attr("cx",K=>K.x).attr("cy",K=>K.y).attr("r",K=>K.radius).attr("fill",K=>K.fill),it.append("text").attr("x",0).attr("y",0).text(K=>K.text.text).attr("fill",K=>K.text.fill).attr("font-size",K=>K.text.fontSize).attr("dominant-baseline",K=>w(K.text.horizontalPos)).attr("text-anchor",K=>v(K.text.verticalPos)).attr("transform",K=>b(K.text))}},styles:()=>""}},Symbol.toStringTag,{value:"Module"}));var Sbt=function(){var i=function(It,jt,xt,Ft){for(xt=xt||{},Ft=It.length;Ft--;xt[It[Ft]]=jt);return xt},a=[1,10,12,14,16,18,19,21,23],f=[2,6],g=[1,3],w=[1,5],v=[1,6],b=[1,7],E=[1,5,10,12,14,16,18,19,21,23,34,35,36],S=[1,25],_=[1,26],M=[1,28],F=[1,29],R=[1,30],B=[1,31],z=[1,32],Y=[1,33],nt=[1,34],ot=[1,35],ft=[1,36],wt=[1,37],mt=[1,43],ct=[1,42],rt=[1,47],it=[1,50],gt=[1,10,12,14,16,18,19,21,23,34,35,36],Q=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],dt=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],K=[1,64],yt={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:function(jt,xt,Ft,Ct,kt,Gt,Fe){var Mt=Gt.length-1;switch(kt){case 5:Ct.setOrientation(Gt[Mt]);break;case 9:Ct.setDiagramTitle(Gt[Mt].text.trim());break;case 12:Ct.setLineData({text:"",type:"text"},Gt[Mt]);break;case 13:Ct.setLineData(Gt[Mt-1],Gt[Mt]);break;case 14:Ct.setBarData({text:"",type:"text"},Gt[Mt]);break;case 15:Ct.setBarData(Gt[Mt-1],Gt[Mt]);break;case 16:this.$=Gt[Mt].trim(),Ct.setAccTitle(this.$);break;case 17:case 18:this.$=Gt[Mt].trim(),Ct.setAccDescription(this.$);break;case 19:this.$=Gt[Mt-1];break;case 20:this.$=[Number(Gt[Mt-2]),...Gt[Mt]];break;case 21:this.$=[Number(Gt[Mt])];break;case 22:Ct.setXAxisTitle(Gt[Mt]);break;case 23:Ct.setXAxisTitle(Gt[Mt-1]);break;case 24:Ct.setXAxisTitle({type:"text",text:""});break;case 25:Ct.setXAxisBand(Gt[Mt]);break;case 26:Ct.setXAxisRangeData(Number(Gt[Mt-2]),Number(Gt[Mt]));break;case 27:this.$=Gt[Mt-1];break;case 28:this.$=[Gt[Mt-2],...Gt[Mt]];break;case 29:this.$=[Gt[Mt]];break;case 30:Ct.setYAxisTitle(Gt[Mt]);break;case 31:Ct.setYAxisTitle(Gt[Mt-1]);break;case 32:Ct.setYAxisTitle({type:"text",text:""});break;case 33:Ct.setYAxisRangeData(Number(Gt[Mt-2]),Number(Gt[Mt]));break;case 37:this.$={text:Gt[Mt],type:"text"};break;case 38:this.$={text:Gt[Mt],type:"text"};break;case 39:this.$={text:Gt[Mt],type:"markdown"};break;case 40:this.$=Gt[Mt];break;case 41:this.$=Gt[Mt-1]+""+Gt[Mt];break}},table:[i(a,f,{3:1,4:2,7:4,5:g,34:w,35:v,36:b}),{1:[3]},i(a,f,{4:2,7:4,3:8,5:g,34:w,35:v,36:b}),i(a,f,{4:2,7:4,6:9,3:10,5:g,8:[1,11],34:w,35:v,36:b}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},i(E,[2,34]),i(E,[2,35]),i(E,[2,36]),{1:[2,1]},i(a,f,{4:2,7:4,3:21,5:g,34:w,35:v,36:b}),{1:[2,3]},i(E,[2,5]),i(a,[2,7],{4:22,34:w,35:v,36:b}),{11:23,37:24,38:S,39:_,40:27,41:M,42:F,43:R,44:B,45:z,46:Y,47:nt,48:ot,49:ft,50:wt},{11:39,13:38,24:mt,27:ct,29:40,30:41,37:24,38:S,39:_,40:27,41:M,42:F,43:R,44:B,45:z,46:Y,47:nt,48:ot,49:ft,50:wt},{11:45,15:44,27:rt,33:46,37:24,38:S,39:_,40:27,41:M,42:F,43:R,44:B,45:z,46:Y,47:nt,48:ot,49:ft,50:wt},{11:49,17:48,24:it,37:24,38:S,39:_,40:27,41:M,42:F,43:R,44:B,45:z,46:Y,47:nt,48:ot,49:ft,50:wt},{11:52,17:51,24:it,37:24,38:S,39:_,40:27,41:M,42:F,43:R,44:B,45:z,46:Y,47:nt,48:ot,49:ft,50:wt},{20:[1,53]},{22:[1,54]},i(gt,[2,18]),{1:[2,2]},i(gt,[2,8]),i(gt,[2,9]),i(Q,[2,37],{40:55,41:M,42:F,43:R,44:B,45:z,46:Y,47:nt,48:ot,49:ft,50:wt}),i(Q,[2,38]),i(Q,[2,39]),i(dt,[2,40]),i(dt,[2,42]),i(dt,[2,43]),i(dt,[2,44]),i(dt,[2,45]),i(dt,[2,46]),i(dt,[2,47]),i(dt,[2,48]),i(dt,[2,49]),i(dt,[2,50]),i(dt,[2,51]),i(gt,[2,10]),i(gt,[2,22],{30:41,29:56,24:mt,27:ct}),i(gt,[2,24]),i(gt,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:S,39:_,40:27,41:M,42:F,43:R,44:B,45:z,46:Y,47:nt,48:ot,49:ft,50:wt},i(gt,[2,11]),i(gt,[2,30],{33:60,27:rt}),i(gt,[2,32]),{31:[1,61]},i(gt,[2,12]),{17:62,24:it},{25:63,27:K},i(gt,[2,14]),{17:65,24:it},i(gt,[2,16]),i(gt,[2,17]),i(dt,[2,41]),i(gt,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},i(gt,[2,31]),{27:[1,69]},i(gt,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},i(gt,[2,15]),i(gt,[2,26]),i(gt,[2,27]),{11:59,32:72,37:24,38:S,39:_,40:27,41:M,42:F,43:R,44:B,45:z,46:Y,47:nt,48:ot,49:ft,50:wt},i(gt,[2,33]),i(gt,[2,19]),{25:73,27:K},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:function(jt,xt){if(xt.recoverable)this.trace(jt);else{var Ft=new Error(jt);throw Ft.hash=xt,Ft}},parse:function(jt){var xt=this,Ft=[0],Ct=[],kt=[null],Gt=[],Fe=this.table,Mt="",pn=0,Ae=0,ye=2,tn=1,sn=Gt.slice.call(arguments,1),be=Object.create(this.lexer),Ne={yy:{}};for(var Xt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Xt)&&(Ne.yy[Xt]=this.yy[Xt]);be.setInput(jt,Ne.yy),Ne.yy.lexer=be,Ne.yy.parser=this,typeof be.yylloc>"u"&&(be.yylloc={});var _e=be.yylloc;Gt.push(_e);var xe=be.options&&be.options.ranges;typeof Ne.yy.parseError=="function"?this.parseError=Ne.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Mn(){var Nn;return Nn=Ct.pop()||be.lex()||tn,typeof Nn!="number"&&(Nn instanceof Array&&(Ct=Nn,Nn=Ct.pop()),Nn=xt.symbols_[Nn]||Nn),Nn}for(var ce,Br,we,Fi,mi={},ga,Ss,za,br;;){if(Br=Ft[Ft.length-1],this.defaultActions[Br]?we=this.defaultActions[Br]:((ce===null||typeof ce>"u")&&(ce=Mn()),we=Fe[Br]&&Fe[Br][ce]),typeof we>"u"||!we.length||!we[0]){var An="";br=[];for(ga in Fe[Br])this.terminals_[ga]&&ga>ye&&br.push("'"+this.terminals_[ga]+"'");be.showPosition?An="Parse error on line "+(pn+1)+`: +`+be.showPosition()+` +Expecting `+br.join(", ")+", got '"+(this.terminals_[ce]||ce)+"'":An="Parse error on line "+(pn+1)+": Unexpected "+(ce==tn?"end of input":"'"+(this.terminals_[ce]||ce)+"'"),this.parseError(An,{text:be.match,token:this.terminals_[ce]||ce,line:be.yylineno,loc:_e,expected:br})}if(we[0]instanceof Array&&we.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Br+", token: "+ce);switch(we[0]){case 1:Ft.push(ce),kt.push(be.yytext),Gt.push(be.yylloc),Ft.push(we[1]),ce=null,Ae=be.yyleng,Mt=be.yytext,pn=be.yylineno,_e=be.yylloc;break;case 2:if(Ss=this.productions_[we[1]][1],mi.$=kt[kt.length-Ss],mi._$={first_line:Gt[Gt.length-(Ss||1)].first_line,last_line:Gt[Gt.length-1].last_line,first_column:Gt[Gt.length-(Ss||1)].first_column,last_column:Gt[Gt.length-1].last_column},xe&&(mi._$.range=[Gt[Gt.length-(Ss||1)].range[0],Gt[Gt.length-1].range[1]]),Fi=this.performAction.apply(mi,[Mt,Ae,pn,Ne.yy,we[1],kt,Gt].concat(sn)),typeof Fi<"u")return Fi;Ss&&(Ft=Ft.slice(0,-1*Ss*2),kt=kt.slice(0,-1*Ss),Gt=Gt.slice(0,-1*Ss)),Ft.push(this.productions_[we[1]][0]),kt.push(mi.$),Gt.push(mi._$),za=Fe[Ft[Ft.length-2]][Ft[Ft.length-1]],Ft.push(za);break;case 3:return!0}}return!0}},V=function(){var It={EOF:1,parseError:function(xt,Ft){if(this.yy.parser)this.yy.parser.parseError(xt,Ft);else throw new Error(xt)},setInput:function(jt,xt){return this.yy=xt||this.yy||{},this._input=jt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var jt=this._input[0];this.yytext+=jt,this.yyleng++,this.offset++,this.match+=jt,this.matched+=jt;var xt=jt.match(/(?:\r\n?|\n).*/g);return xt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),jt},unput:function(jt){var xt=jt.length,Ft=jt.split(/(?:\r\n?|\n)/g);this._input=jt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-xt),this.offset-=xt;var Ct=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Ft.length-1&&(this.yylineno-=Ft.length-1);var kt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Ft?(Ft.length===Ct.length?this.yylloc.first_column:0)+Ct[Ct.length-Ft.length].length-Ft[0].length:this.yylloc.first_column-xt},this.options.ranges&&(this.yylloc.range=[kt[0],kt[0]+this.yyleng-xt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(jt){this.unput(this.match.slice(jt))},pastInput:function(){var jt=this.matched.substr(0,this.matched.length-this.match.length);return(jt.length>20?"...":"")+jt.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var jt=this.match;return jt.length<20&&(jt+=this._input.substr(0,20-jt.length)),(jt.substr(0,20)+(jt.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var jt=this.pastInput(),xt=new Array(jt.length+1).join("-");return jt+this.upcomingInput()+` +`+xt+"^"},test_match:function(jt,xt){var Ft,Ct,kt;if(this.options.backtrack_lexer&&(kt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(kt.yylloc.range=this.yylloc.range.slice(0))),Ct=jt[0].match(/(?:\r\n?|\n).*/g),Ct&&(this.yylineno+=Ct.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ct?Ct[Ct.length-1].length-Ct[Ct.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+jt[0].length},this.yytext+=jt[0],this.match+=jt[0],this.matches=jt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(jt[0].length),this.matched+=jt[0],Ft=this.performAction.call(this,this.yy,this,xt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Ft)return Ft;if(this._backtrack){for(var Gt in kt)this[Gt]=kt[Gt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var jt,xt,Ft,Ct;this._more||(this.yytext="",this.match="");for(var kt=this._currentRules(),Gt=0;Gtxt[0].length)){if(xt=Ft,Ct=Gt,this.options.backtrack_lexer){if(jt=this.test_match(Ft,kt[Gt]),jt!==!1)return jt;if(this._backtrack){xt=!1;continue}else return!1}else if(!this.options.flex)break}return xt?(jt=this.test_match(xt,kt[Ct]),jt!==!1?jt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var xt=this.next();return xt||this.lex()},begin:function(xt){this.conditionStack.push(xt)},popState:function(){var xt=this.conditionStack.length-1;return xt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(xt){return xt=this.conditionStack.length-1-Math.abs(xt||0),xt>=0?this.conditionStack[xt]:"INITIAL"},pushState:function(xt){this.begin(xt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(xt,Ft,Ct,kt){switch(Ct){case 0:break;case 1:break;case 2:return this.popState(),34;case 3:return this.popState(),34;case 4:return 34;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;case 8:return this.popState(),"acc_title_value";case 9:return this.pushState("acc_descr"),21;case 10:return this.popState(),"acc_descr_value";case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 8;case 16:return this.pushState("axis_data"),"X_AXIS";case 17:return this.pushState("axis_data"),"Y_AXIS";case 18:return this.pushState("axis_band_data"),24;case 19:return 31;case 20:return this.pushState("data"),16;case 21:return this.pushState("data"),18;case 22:return this.pushState("data_inner"),24;case 23:return 27;case 24:return this.popState(),26;case 25:this.popState();break;case 26:this.pushState("string");break;case 27:this.popState();break;case 28:return"STR";case 29:return 24;case 30:return 26;case 31:return 43;case 32:return"COLON";case 33:return 44;case 34:return 28;case 35:return 45;case 36:return 46;case 37:return 48;case 38:return 50;case 39:return 47;case 40:return 41;case 41:return 49;case 42:return 42;case 43:break;case 44:return 35;case 45:return 36}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\{)/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,20,21,22,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,23,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[27,28],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0}}};return It}();yt.lexer=V;function Ot(){this.yy={}}return Ot.prototype=yt,yt.Parser=Ot,new Ot}();Sbt.parser=Sbt;const DXe=Sbt;function Kzt(i){return i.type==="bar"}function Wzt(i){return i.type==="band"}function lB(i){return i.type==="linear"}class Yzt{constructor(a){this.parentGroup=a}getMaxDimension(a,f){if(!this.parentGroup)return{width:a.reduce((v,b)=>Math.max(b.length,v),0)*f,height:f};const g={width:0,height:0},w=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",f);for(const v of a){const b=AKe(w,1,v),E=b?b.width:v.length*f,S=b?b.height:f;g.width=Math.max(g.width,E),g.height=Math.max(g.height,S)}return w.remove(),g}}const Xzt=.7,Qzt=.2;class Jzt{constructor(a,f,g,w){this.axisConfig=a,this.title=f,this.textDimensionCalculator=g,this.axisThemeConfig=w,this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.showTitle=!1,this.showLabel=!1,this.showTick=!1,this.showAxisLine=!1,this.outerPadding=0,this.titleTextHeight=0,this.labelTextHeight=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}setRange(a){this.range=a,this.axisPosition==="left"||this.axisPosition==="right"?this.boundingRect.height=a[1]-a[0]:this.boundingRect.width=a[1]-a[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(a){this.axisPosition=a,this.setRange(this.range)}getTickDistance(){const a=this.getRange();return Math.abs(a[0]-a[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(a=>a.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){Xzt*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(Xzt*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(a){let f=a.height;if(this.axisConfig.showAxisLine&&f>this.axisConfig.axisLineWidth&&(f-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const g=this.getLabelDimension(),w=Qzt*a.width;this.outerPadding=Math.min(g.width/2,w);const v=g.height+this.axisConfig.labelPadding*2;this.labelTextHeight=g.height,v<=f&&(f-=v,this.showLabel=!0)}if(this.axisConfig.showTick&&f>=this.axisConfig.tickLength&&(this.showTick=!0,f-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const g=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),w=g.height+this.axisConfig.titlePadding*2;this.titleTextHeight=g.height,w<=f&&(f-=w,this.showTitle=!0)}this.boundingRect.width=a.width,this.boundingRect.height=a.height-f}calculateSpaceIfDrawnVertical(a){let f=a.width;if(this.axisConfig.showAxisLine&&f>this.axisConfig.axisLineWidth&&(f-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const g=this.getLabelDimension(),w=Qzt*a.height;this.outerPadding=Math.min(g.height/2,w);const v=g.width+this.axisConfig.labelPadding*2;v<=f&&(f-=v,this.showLabel=!0)}if(this.axisConfig.showTick&&f>=this.axisConfig.tickLength&&(this.showTick=!0,f-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const g=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),w=g.height+this.axisConfig.titlePadding*2;this.titleTextHeight=g.height,w<=f&&(f-=w,this.showTitle=!0)}this.boundingRect.width=a.width-f,this.boundingRect.height=a.height}calculateSpace(a){return this.axisPosition==="left"||this.axisPosition==="right"?this.calculateSpaceIfDrawnVertical(a):this.calculateSpaceIfDrawnHorizontally(a),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(a){this.boundingRect.x=a.x,this.boundingRect.y=a.y}getDrawableElementsForLeftAxis(){const a=[];if(this.showAxisLine){const f=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;a.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${f},${this.boundingRect.y} L ${f},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&a.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(f=>({text:f.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(f),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){const f=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);a.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(g=>({path:`M ${f},${this.getScaleValue(g)} L ${f-this.axisConfig.tickLength},${this.getScaleValue(g)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&a.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),a}getDrawableElementsForBottomAxis(){const a=[];if(this.showAxisLine){const f=this.boundingRect.y+this.axisConfig.axisLineWidth/2;a.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${f} L ${this.boundingRect.x+this.boundingRect.width},${f}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&a.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(f=>({text:f.toString(),x:this.getScaleValue(f),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const f=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);a.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(g=>({path:`M ${this.getScaleValue(g)},${f} L ${this.getScaleValue(g)},${f+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&a.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),a}getDrawableElementsForTopAxis(){const a=[];if(this.showAxisLine){const f=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;a.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${f} L ${this.boundingRect.x+this.boundingRect.width},${f}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&a.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(f=>({text:f.toString(),x:this.getScaleValue(f),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const f=this.boundingRect.y;a.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(g=>({path:`M ${this.getScaleValue(g)},${f+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(g)},${f+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&a.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),a}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");return this.axisPosition==="bottom"?this.getDrawableElementsForBottomAxis():this.axisPosition==="top"?this.getDrawableElementsForTopAxis():[]}}class MXe extends Jzt{constructor(a,f,g,w,v){super(a,w,v,f),this.categories=g,this.scale=V0t().domain(this.categories).range(this.getRange())}setRange(a){super.setRange(a)}recalculateScale(){this.scale=V0t().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),Kt.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(a){return this.scale(a)||this.getRange()[0]}}class IXe extends Jzt{constructor(a,f,g,w,v){super(a,w,v,f),this.domain=g,this.scale=VL().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){const a=[...this.domain];this.axisPosition==="left"&&a.reverse(),this.scale=VL().domain(a).range(this.getRange())}getScaleValue(a){return this.scale(a)}}function Zzt(i,a,f,g){const w=new Yzt(g);return Wzt(i)?new MXe(a,f,i.categories,i.title,w):new IXe(a,f,[i.min,i.max],i.title,w)}class OXe{constructor(a,f,g,w){this.textDimensionCalculator=a,this.chartConfig=f,this.chartData=g,this.chartThemeConfig=w,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}setBoundingBoxXY(a){this.boundingRect.x=a.x,this.boundingRect.y=a.y}calculateSpace(a){const f=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),g=Math.max(f.width,a.width),w=f.height+2*this.chartConfig.titlePadding;return f.width<=g&&f.height<=w&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=g,this.boundingRect.height=w,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){const a=[];return this.showChartTitle&&a.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),a}}function NXe(i,a,f,g){const w=new Yzt(g);return new OXe(w,i,a,f)}class PXe{constructor(a,f,g,w,v){this.plotData=a,this.xAxis=f,this.yAxis=g,this.orientation=w,this.plotIndex=v}getDrawableElement(){const a=this.plotData.data.map(g=>[this.xAxis.getScaleValue(g[0]),this.yAxis.getScaleValue(g[1])]);let f;return this.orientation==="horizontal"?f=Ax().y(g=>g[0]).x(g=>g[1])(a):f=Ax().x(g=>g[0]).y(g=>g[1])(a),f?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:f,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}}class FXe{constructor(a,f,g,w,v,b){this.barData=a,this.boundingRect=f,this.xAxis=g,this.yAxis=w,this.orientation=v,this.plotIndex=b}getDrawableElement(){const a=this.barData.data.map(v=>[this.xAxis.getScaleValue(v[0]),this.yAxis.getScaleValue(v[1])]),f=.05,g=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-f),w=g/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:a.map(v=>({x:this.boundingRect.x,y:v[0]-w,height:g,width:v[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:a.map(v=>({x:v[0]-w,y:v[1],width:g,height:this.boundingRect.y+this.boundingRect.height-v[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}}class BXe{constructor(a,f,g){this.chartConfig=a,this.chartData=f,this.chartThemeConfig=g,this.boundingRect={x:0,y:0,width:0,height:0}}setAxes(a,f){this.xAxis=a,this.yAxis=f}setBoundingBoxXY(a){this.boundingRect.x=a.x,this.boundingRect.y=a.y}calculateSpace(a){return this.boundingRect.width=a.width,this.boundingRect.height=a.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");const a=[];for(const[f,g]of this.chartData.plots.entries())switch(g.type){case"line":{const w=new PXe(g,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,f);a.push(...w.getDrawableElement())}break;case"bar":{const w=new FXe(g,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,f);a.push(...w.getDrawableElement())}break}return a}}function RXe(i,a,f){return new BXe(i,a,f)}class jXe{constructor(a,f,g,w){this.chartConfig=a,this.chartData=f,this.componentStore={title:NXe(a,f,g,w),plot:RXe(a,f,g),xAxis:Zzt(f.xAxis,a.xAxis,{titleColor:g.xAxisTitleColor,labelColor:g.xAxisLabelColor,tickColor:g.xAxisTickColor,axisLineColor:g.xAxisLineColor},w),yAxis:Zzt(f.yAxis,a.yAxis,{titleColor:g.yAxisTitleColor,labelColor:g.yAxisLabelColor,tickColor:g.yAxisTickColor,axisLineColor:g.yAxisLineColor},w)}}calculateVerticalSpace(){let a=this.chartConfig.width,f=this.chartConfig.height,g=0,w=0,v=Math.floor(a*this.chartConfig.plotReservedSpacePercent/100),b=Math.floor(f*this.chartConfig.plotReservedSpacePercent/100),E=this.componentStore.plot.calculateSpace({width:v,height:b});a-=E.width,f-=E.height,E=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:f}),w=E.height,f-=E.height,this.componentStore.xAxis.setAxisPosition("bottom"),E=this.componentStore.xAxis.calculateSpace({width:a,height:f}),f-=E.height,this.componentStore.yAxis.setAxisPosition("left"),E=this.componentStore.yAxis.calculateSpace({width:a,height:f}),g=E.width,a-=E.width,a>0&&(v+=a,a=0),f>0&&(b+=f,f=0),this.componentStore.plot.calculateSpace({width:v,height:b}),this.componentStore.plot.setBoundingBoxXY({x:g,y:w}),this.componentStore.xAxis.setRange([g,g+v]),this.componentStore.xAxis.setBoundingBoxXY({x:g,y:w+b}),this.componentStore.yAxis.setRange([w,w+b]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:w}),this.chartData.plots.some(S=>Kzt(S))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizonatalSpace(){let a=this.chartConfig.width,f=this.chartConfig.height,g=0,w=0,v=0,b=Math.floor(a*this.chartConfig.plotReservedSpacePercent/100),E=Math.floor(f*this.chartConfig.plotReservedSpacePercent/100),S=this.componentStore.plot.calculateSpace({width:b,height:E});a-=S.width,f-=S.height,S=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:f}),g=S.height,f-=S.height,this.componentStore.xAxis.setAxisPosition("left"),S=this.componentStore.xAxis.calculateSpace({width:a,height:f}),a-=S.width,w=S.width,this.componentStore.yAxis.setAxisPosition("top"),S=this.componentStore.yAxis.calculateSpace({width:a,height:f}),f-=S.height,v=g+S.height,a>0&&(b+=a,a=0),f>0&&(E+=f,f=0),this.componentStore.plot.calculateSpace({width:b,height:E}),this.componentStore.plot.setBoundingBoxXY({x:w,y:v}),this.componentStore.yAxis.setRange([w,w+b]),this.componentStore.yAxis.setBoundingBoxXY({x:w,y:g}),this.componentStore.xAxis.setRange([v,v+E]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:v}),this.chartData.plots.some(_=>Kzt(_))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizonatalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();const a=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(const f of Object.values(this.componentStore))a.push(...f.getDrawableElements());return a}}class $Xe{static build(a,f,g,w){return new jXe(a,f,g,w).getDrawableElement()}}let hB=0,tqt,fB=nqt(),dB=eqt(),Pu=rqt(),_bt=dB.plotColorPalette.split(",").map(i=>i.trim()),pX=!1,Abt=!1;function eqt(){const i=dgt(),a=o1();return MF(i.xyChart,a.themeVariables.xyChart)}function nqt(){const i=o1();return MF(Bl.xyChart,i.xyChart)}function rqt(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function Lbt(i){const a=o1();return Ef(i.trim(),a)}function zXe(i){tqt=i}function qXe(i){i==="horizontal"?fB.chartOrientation="horizontal":fB.chartOrientation="vertical"}function HXe(i){Pu.xAxis.title=Lbt(i.text)}function iqt(i,a){Pu.xAxis={type:"linear",title:Pu.xAxis.title,min:i,max:a},pX=!0}function VXe(i){Pu.xAxis={type:"band",title:Pu.xAxis.title,categories:i.map(a=>Lbt(a.text))},pX=!0}function UXe(i){Pu.yAxis.title=Lbt(i.text)}function GXe(i,a){Pu.yAxis={type:"linear",title:Pu.yAxis.title,min:i,max:a},Abt=!0}function KXe(i){const a=Math.min(...i),f=Math.max(...i),g=lB(Pu.yAxis)?Pu.yAxis.min:1/0,w=lB(Pu.yAxis)?Pu.yAxis.max:-1/0;Pu.yAxis={type:"linear",title:Pu.yAxis.title,min:Math.min(g,a),max:Math.max(w,f)}}function sqt(i){let a=[];if(i.length===0)return a;if(!pX){const f=lB(Pu.xAxis)?Pu.xAxis.min:1/0,g=lB(Pu.xAxis)?Pu.xAxis.max:-1/0;iqt(Math.min(f,1),Math.max(g,i.length))}if(Abt||KXe(i),Wzt(Pu.xAxis)&&(a=Pu.xAxis.categories.map((f,g)=>[f,i[g]])),lB(Pu.xAxis)){const f=Pu.xAxis.min,g=Pu.xAxis.max,w=(g-f+1)/i.length,v=[];for(let b=f;b<=g;b+=w)v.push(`${b}`);a=v.map((b,E)=>[b,i[E]])}return a}function aqt(i){return _bt[i===0?0:i%_bt.length]}function WXe(i,a){const f=sqt(a);Pu.plots.push({type:"line",strokeFill:aqt(hB),strokeWidth:2,data:f}),hB++}function YXe(i,a){const f=sqt(a);Pu.plots.push({type:"bar",fill:aqt(hB),data:f}),hB++}function XXe(){if(Pu.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return Pu.title=Zg(),$Xe.build(fB,Pu,dB,tqt)}function QXe(){return dB}function JXe(){return fB}const ZXe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:DXe,db:{getDrawableElem:XXe,clear:function(){ag(),hB=0,fB=nqt(),Pu=rqt(),dB=eqt(),_bt=dB.plotColorPalette.split(",").map(i=>i.trim()),pX=!1,Abt=!1},setAccTitle:og,getAccTitle:Xg,setDiagramTitle:S2,getDiagramTitle:Zg,getAccDescription:Jg,setAccDescription:Qg,setOrientation:qXe,setXAxisTitle:HXe,setXAxisRangeData:iqt,setXAxisBand:VXe,setYAxisTitle:UXe,setYAxisRangeData:GXe,setLineData:WXe,setBarData:YXe,setTmpSVGG:zXe,getChartThemeConfig:QXe,getChartConfig:JXe},renderer:{draw:(i,a,f,g)=>{const w=g.db,v=w.getChartThemeConfig(),b=w.getChartConfig();function E(nt){return nt==="top"?"text-before-edge":"middle"}function S(nt){return nt==="left"?"start":nt==="right"?"end":"middle"}function _(nt){return`translate(${nt.x}, ${nt.y}) rotate(${nt.rotation||0})`}Kt.debug(`Rendering xychart chart +`+i);const M=FF(a),F=M.append("g").attr("class","main"),R=F.append("rect").attr("width",b.width).attr("height",b.height).attr("class","background");sg(M,b.height,b.width,!0),M.attr("viewBox",`0 0 ${b.width} ${b.height}`),R.attr("fill",v.backgroundColor),w.setTmpSVGG(M.append("g").attr("class","mermaid-tmp-group"));const B=w.getDrawableElem(),z={};function Y(nt){let ot=F,ft="";for(const[wt]of nt.entries()){let mt=F;wt>0&&z[ft]&&(mt=z[ft]),ft+=nt[wt],ot=z[ft],ot||(ot=z[ft]=mt.append("g").attr("class",nt[wt]))}return ot}for(const nt of B){if(nt.data.length===0)continue;const ot=Y(nt.groupTexts);switch(nt.type){case"rect":ot.selectAll("rect").data(nt.data).enter().append("rect").attr("x",ft=>ft.x).attr("y",ft=>ft.y).attr("width",ft=>ft.width).attr("height",ft=>ft.height).attr("fill",ft=>ft.fill).attr("stroke",ft=>ft.strokeFill).attr("stroke-width",ft=>ft.strokeWidth);break;case"text":ot.selectAll("text").data(nt.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",ft=>ft.fill).attr("font-size",ft=>ft.fontSize).attr("dominant-baseline",ft=>E(ft.verticalPos)).attr("text-anchor",ft=>S(ft.horizontalPos)).attr("transform",ft=>_(ft)).text(ft=>ft.text);break;case"path":ot.selectAll("path").data(nt.data).enter().append("path").attr("d",ft=>ft.path).attr("fill",ft=>ft.fill?ft.fill:"none").attr("stroke",ft=>ft.strokeFill).attr("stroke-width",ft=>ft.strokeWidth);break}}}}}},Symbol.toStringTag,{value:"Module"}));var Dbt=function(){var i=function(Ae,ye,tn,sn){for(tn=tn||{},sn=Ae.length;sn--;tn[Ae[sn]]=ye);return tn},a=[1,3],f=[1,4],g=[1,5],w=[1,6],v=[5,6,8,9,11,13,31,32,33,34,35,36,44,62,63],b=[1,18],E=[2,7],S=[1,22],_=[1,23],M=[1,24],F=[1,25],R=[1,26],B=[1,27],z=[1,20],Y=[1,28],nt=[1,29],ot=[62,63],ft=[5,8,9,11,13,31,32,33,34,35,36,44,51,53,62,63],wt=[1,47],mt=[1,48],ct=[1,49],rt=[1,50],it=[1,51],gt=[1,52],Q=[1,53],dt=[53,54],K=[1,64],yt=[1,60],V=[1,61],Ot=[1,62],It=[1,63],jt=[1,65],xt=[1,69],Ft=[1,70],Ct=[1,67],kt=[1,68],Gt=[5,8,9,11,13,31,32,33,34,35,36,44,62,63],Fe={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,requirementType:17,requirementName:18,STRUCT_START:19,requirementBody:20,ID:21,COLONSEP:22,id:23,TEXT:24,text:25,RISK:26,riskLevel:27,VERIFYMTHD:28,verifyType:29,STRUCT_STOP:30,REQUIREMENT:31,FUNCTIONAL_REQUIREMENT:32,INTERFACE_REQUIREMENT:33,PERFORMANCE_REQUIREMENT:34,PHYSICAL_REQUIREMENT:35,DESIGN_CONSTRAINT:36,LOW_RISK:37,MED_RISK:38,HIGH_RISK:39,VERIFY_ANALYSIS:40,VERIFY_DEMONSTRATION:41,VERIFY_INSPECTION:42,VERIFY_TEST:43,ELEMENT:44,elementName:45,elementBody:46,TYPE:47,type:48,DOCREF:49,ref:50,END_ARROW_L:51,relationship:52,LINE:53,END_ARROW_R:54,CONTAINS:55,COPIES:56,DERIVES:57,SATISFIES:58,VERIFIES:59,REFINES:60,TRACES:61,unqString:62,qString:63,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",19:"STRUCT_START",21:"ID",22:"COLONSEP",24:"TEXT",26:"RISK",28:"VERIFYMTHD",30:"STRUCT_STOP",31:"REQUIREMENT",32:"FUNCTIONAL_REQUIREMENT",33:"INTERFACE_REQUIREMENT",34:"PERFORMANCE_REQUIREMENT",35:"PHYSICAL_REQUIREMENT",36:"DESIGN_CONSTRAINT",37:"LOW_RISK",38:"MED_RISK",39:"HIGH_RISK",40:"VERIFY_ANALYSIS",41:"VERIFY_DEMONSTRATION",42:"VERIFY_INSPECTION",43:"VERIFY_TEST",44:"ELEMENT",47:"TYPE",49:"DOCREF",51:"END_ARROW_L",53:"LINE",54:"END_ARROW_R",55:"CONTAINS",56:"COPIES",57:"DERIVES",58:"SATISFIES",59:"VERIFIES",60:"REFINES",61:"TRACES",62:"unqString",63:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[14,5],[20,5],[20,5],[20,5],[20,5],[20,2],[20,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[27,1],[27,1],[27,1],[29,1],[29,1],[29,1],[29,1],[15,5],[46,5],[46,5],[46,2],[46,1],[16,5],[16,5],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[18,1],[18,1],[23,1],[23,1],[25,1],[25,1],[45,1],[45,1],[48,1],[48,1],[50,1],[50,1]],performAction:function(ye,tn,sn,be,Ne,Xt,_e){var xe=Xt.length-1;switch(Ne){case 4:this.$=Xt[xe].trim(),be.setAccTitle(this.$);break;case 5:case 6:this.$=Xt[xe].trim(),be.setAccDescription(this.$);break;case 7:this.$=[];break;case 13:be.addRequirement(Xt[xe-3],Xt[xe-4]);break;case 14:be.setNewReqId(Xt[xe-2]);break;case 15:be.setNewReqText(Xt[xe-2]);break;case 16:be.setNewReqRisk(Xt[xe-2]);break;case 17:be.setNewReqVerifyMethod(Xt[xe-2]);break;case 20:this.$=be.RequirementType.REQUIREMENT;break;case 21:this.$=be.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 22:this.$=be.RequirementType.INTERFACE_REQUIREMENT;break;case 23:this.$=be.RequirementType.PERFORMANCE_REQUIREMENT;break;case 24:this.$=be.RequirementType.PHYSICAL_REQUIREMENT;break;case 25:this.$=be.RequirementType.DESIGN_CONSTRAINT;break;case 26:this.$=be.RiskLevel.LOW_RISK;break;case 27:this.$=be.RiskLevel.MED_RISK;break;case 28:this.$=be.RiskLevel.HIGH_RISK;break;case 29:this.$=be.VerifyType.VERIFY_ANALYSIS;break;case 30:this.$=be.VerifyType.VERIFY_DEMONSTRATION;break;case 31:this.$=be.VerifyType.VERIFY_INSPECTION;break;case 32:this.$=be.VerifyType.VERIFY_TEST;break;case 33:be.addElement(Xt[xe-3]);break;case 34:be.setNewElementType(Xt[xe-2]);break;case 35:be.setNewElementDocRef(Xt[xe-2]);break;case 38:be.addRelationship(Xt[xe-2],Xt[xe],Xt[xe-4]);break;case 39:be.addRelationship(Xt[xe-2],Xt[xe-4],Xt[xe]);break;case 40:this.$=be.Relationships.CONTAINS;break;case 41:this.$=be.Relationships.COPIES;break;case 42:this.$=be.Relationships.DERIVES;break;case 43:this.$=be.Relationships.SATISFIES;break;case 44:this.$=be.Relationships.VERIFIES;break;case 45:this.$=be.Relationships.REFINES;break;case 46:this.$=be.Relationships.TRACES;break}},table:[{3:1,4:2,6:a,9:f,11:g,13:w},{1:[3]},{3:8,4:2,5:[1,7],6:a,9:f,11:g,13:w},{5:[1,9]},{10:[1,10]},{12:[1,11]},i(v,[2,6]),{3:12,4:2,6:a,9:f,11:g,13:w},{1:[2,2]},{4:17,5:b,7:13,8:E,9:f,11:g,13:w,14:14,15:15,16:16,17:19,23:21,31:S,32:_,33:M,34:F,35:R,36:B,44:z,62:Y,63:nt},i(v,[2,4]),i(v,[2,5]),{1:[2,1]},{8:[1,30]},{4:17,5:b,7:31,8:E,9:f,11:g,13:w,14:14,15:15,16:16,17:19,23:21,31:S,32:_,33:M,34:F,35:R,36:B,44:z,62:Y,63:nt},{4:17,5:b,7:32,8:E,9:f,11:g,13:w,14:14,15:15,16:16,17:19,23:21,31:S,32:_,33:M,34:F,35:R,36:B,44:z,62:Y,63:nt},{4:17,5:b,7:33,8:E,9:f,11:g,13:w,14:14,15:15,16:16,17:19,23:21,31:S,32:_,33:M,34:F,35:R,36:B,44:z,62:Y,63:nt},{4:17,5:b,7:34,8:E,9:f,11:g,13:w,14:14,15:15,16:16,17:19,23:21,31:S,32:_,33:M,34:F,35:R,36:B,44:z,62:Y,63:nt},{4:17,5:b,7:35,8:E,9:f,11:g,13:w,14:14,15:15,16:16,17:19,23:21,31:S,32:_,33:M,34:F,35:R,36:B,44:z,62:Y,63:nt},{18:36,62:[1,37],63:[1,38]},{45:39,62:[1,40],63:[1,41]},{51:[1,42],53:[1,43]},i(ot,[2,20]),i(ot,[2,21]),i(ot,[2,22]),i(ot,[2,23]),i(ot,[2,24]),i(ot,[2,25]),i(ft,[2,49]),i(ft,[2,50]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{19:[1,44]},{19:[2,47]},{19:[2,48]},{19:[1,45]},{19:[2,53]},{19:[2,54]},{52:46,55:wt,56:mt,57:ct,58:rt,59:it,60:gt,61:Q},{52:54,55:wt,56:mt,57:ct,58:rt,59:it,60:gt,61:Q},{5:[1,55]},{5:[1,56]},{53:[1,57]},i(dt,[2,40]),i(dt,[2,41]),i(dt,[2,42]),i(dt,[2,43]),i(dt,[2,44]),i(dt,[2,45]),i(dt,[2,46]),{54:[1,58]},{5:K,20:59,21:yt,24:V,26:Ot,28:It,30:jt},{5:xt,30:Ft,46:66,47:Ct,49:kt},{23:71,62:Y,63:nt},{23:72,62:Y,63:nt},i(Gt,[2,13]),{22:[1,73]},{22:[1,74]},{22:[1,75]},{22:[1,76]},{5:K,20:77,21:yt,24:V,26:Ot,28:It,30:jt},i(Gt,[2,19]),i(Gt,[2,33]),{22:[1,78]},{22:[1,79]},{5:xt,30:Ft,46:80,47:Ct,49:kt},i(Gt,[2,37]),i(Gt,[2,38]),i(Gt,[2,39]),{23:81,62:Y,63:nt},{25:82,62:[1,83],63:[1,84]},{27:85,37:[1,86],38:[1,87],39:[1,88]},{29:89,40:[1,90],41:[1,91],42:[1,92],43:[1,93]},i(Gt,[2,18]),{48:94,62:[1,95],63:[1,96]},{50:97,62:[1,98],63:[1,99]},i(Gt,[2,36]),{5:[1,100]},{5:[1,101]},{5:[2,51]},{5:[2,52]},{5:[1,102]},{5:[2,26]},{5:[2,27]},{5:[2,28]},{5:[1,103]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[2,32]},{5:[1,104]},{5:[2,55]},{5:[2,56]},{5:[1,105]},{5:[2,57]},{5:[2,58]},{5:K,20:106,21:yt,24:V,26:Ot,28:It,30:jt},{5:K,20:107,21:yt,24:V,26:Ot,28:It,30:jt},{5:K,20:108,21:yt,24:V,26:Ot,28:It,30:jt},{5:K,20:109,21:yt,24:V,26:Ot,28:It,30:jt},{5:xt,30:Ft,46:110,47:Ct,49:kt},{5:xt,30:Ft,46:111,47:Ct,49:kt},i(Gt,[2,14]),i(Gt,[2,15]),i(Gt,[2,16]),i(Gt,[2,17]),i(Gt,[2,34]),i(Gt,[2,35])],defaultActions:{8:[2,2],12:[2,1],30:[2,3],31:[2,8],32:[2,9],33:[2,10],34:[2,11],35:[2,12],37:[2,47],38:[2,48],40:[2,53],41:[2,54],83:[2,51],84:[2,52],86:[2,26],87:[2,27],88:[2,28],90:[2,29],91:[2,30],92:[2,31],93:[2,32],95:[2,55],96:[2,56],98:[2,57],99:[2,58]},parseError:function(ye,tn){if(tn.recoverable)this.trace(ye);else{var sn=new Error(ye);throw sn.hash=tn,sn}},parse:function(ye){var tn=this,sn=[0],be=[],Ne=[null],Xt=[],_e=this.table,xe="",Mn=0,ce=0,Br=2,we=1,Fi=Xt.slice.call(arguments,1),mi=Object.create(this.lexer),ga={yy:{}};for(var Ss in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ss)&&(ga.yy[Ss]=this.yy[Ss]);mi.setInput(ye,ga.yy),ga.yy.lexer=mi,ga.yy.parser=this,typeof mi.yylloc>"u"&&(mi.yylloc={});var za=mi.yylloc;Xt.push(za);var br=mi.options&&mi.options.ranges;typeof ga.yy.parseError=="function"?this.parseError=ga.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function An(){var va;return va=be.pop()||mi.lex()||we,typeof va!="number"&&(va instanceof Array&&(be=va,va=be.pop()),va=tn.symbols_[va]||va),va}for(var Nn,Bn,ke,pe,Je={},an,xn,qa,xo;;){if(Bn=sn[sn.length-1],this.defaultActions[Bn]?ke=this.defaultActions[Bn]:((Nn===null||typeof Nn>"u")&&(Nn=An()),ke=_e[Bn]&&_e[Bn][Nn]),typeof ke>"u"||!ke.length||!ke[0]){var ko="";xo=[];for(an in _e[Bn])this.terminals_[an]&&an>Br&&xo.push("'"+this.terminals_[an]+"'");mi.showPosition?ko="Parse error on line "+(Mn+1)+`: +`+mi.showPosition()+` +Expecting `+xo.join(", ")+", got '"+(this.terminals_[Nn]||Nn)+"'":ko="Parse error on line "+(Mn+1)+": Unexpected "+(Nn==we?"end of input":"'"+(this.terminals_[Nn]||Nn)+"'"),this.parseError(ko,{text:mi.match,token:this.terminals_[Nn]||Nn,line:mi.yylineno,loc:za,expected:xo})}if(ke[0]instanceof Array&&ke.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Bn+", token: "+Nn);switch(ke[0]){case 1:sn.push(Nn),Ne.push(mi.yytext),Xt.push(mi.yylloc),sn.push(ke[1]),Nn=null,ce=mi.yyleng,xe=mi.yytext,Mn=mi.yylineno,za=mi.yylloc;break;case 2:if(xn=this.productions_[ke[1]][1],Je.$=Ne[Ne.length-xn],Je._$={first_line:Xt[Xt.length-(xn||1)].first_line,last_line:Xt[Xt.length-1].last_line,first_column:Xt[Xt.length-(xn||1)].first_column,last_column:Xt[Xt.length-1].last_column},br&&(Je._$.range=[Xt[Xt.length-(xn||1)].range[0],Xt[Xt.length-1].range[1]]),pe=this.performAction.apply(Je,[xe,ce,Mn,ga.yy,ke[1],Ne,Xt].concat(Fi)),typeof pe<"u")return pe;xn&&(sn=sn.slice(0,-1*xn*2),Ne=Ne.slice(0,-1*xn),Xt=Xt.slice(0,-1*xn)),sn.push(this.productions_[ke[1]][0]),Ne.push(Je.$),Xt.push(Je._$),qa=_e[sn[sn.length-2]][sn[sn.length-1]],sn.push(qa);break;case 3:return!0}}return!0}},Mt=function(){var Ae={EOF:1,parseError:function(tn,sn){if(this.yy.parser)this.yy.parser.parseError(tn,sn);else throw new Error(tn)},setInput:function(ye,tn){return this.yy=tn||this.yy||{},this._input=ye,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ye=this._input[0];this.yytext+=ye,this.yyleng++,this.offset++,this.match+=ye,this.matched+=ye;var tn=ye.match(/(?:\r\n?|\n).*/g);return tn?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ye},unput:function(ye){var tn=ye.length,sn=ye.split(/(?:\r\n?|\n)/g);this._input=ye+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-tn),this.offset-=tn;var be=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),sn.length-1&&(this.yylineno-=sn.length-1);var Ne=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:sn?(sn.length===be.length?this.yylloc.first_column:0)+be[be.length-sn.length].length-sn[0].length:this.yylloc.first_column-tn},this.options.ranges&&(this.yylloc.range=[Ne[0],Ne[0]+this.yyleng-tn]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(ye){this.unput(this.match.slice(ye))},pastInput:function(){var ye=this.matched.substr(0,this.matched.length-this.match.length);return(ye.length>20?"...":"")+ye.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var ye=this.match;return ye.length<20&&(ye+=this._input.substr(0,20-ye.length)),(ye.substr(0,20)+(ye.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var ye=this.pastInput(),tn=new Array(ye.length+1).join("-");return ye+this.upcomingInput()+` +`+tn+"^"},test_match:function(ye,tn){var sn,be,Ne;if(this.options.backtrack_lexer&&(Ne={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Ne.yylloc.range=this.yylloc.range.slice(0))),be=ye[0].match(/(?:\r\n?|\n).*/g),be&&(this.yylineno+=be.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:be?be[be.length-1].length-be[be.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+ye[0].length},this.yytext+=ye[0],this.match+=ye[0],this.matches=ye,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ye[0].length),this.matched+=ye[0],sn=this.performAction.call(this,this.yy,this,tn,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),sn)return sn;if(this._backtrack){for(var Xt in Ne)this[Xt]=Ne[Xt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ye,tn,sn,be;this._more||(this.yytext="",this.match="");for(var Ne=this._currentRules(),Xt=0;Xttn[0].length)){if(tn=sn,be=Xt,this.options.backtrack_lexer){if(ye=this.test_match(sn,Ne[Xt]),ye!==!1)return ye;if(this._backtrack){tn=!1;continue}else return!1}else if(!this.options.flex)break}return tn?(ye=this.test_match(tn,Ne[be]),ye!==!1?ye:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var tn=this.next();return tn||this.lex()},begin:function(tn){this.conditionStack.push(tn)},popState:function(){var tn=this.conditionStack.length-1;return tn>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(tn){return tn=this.conditionStack.length-1-Math.abs(tn||0),tn>=0?this.conditionStack[tn]:"INITIAL"},pushState:function(tn){this.begin(tn)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(tn,sn,be,Ne){switch(be){case 0:return"title";case 1:return this.begin("acc_title"),9;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),11;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 5;case 9:break;case 10:break;case 11:break;case 12:return 8;case 13:return 6;case 14:return 19;case 15:return 30;case 16:return 22;case 17:return 21;case 18:return 24;case 19:return 26;case 20:return 28;case 21:return 31;case 22:return 32;case 23:return 33;case 24:return 34;case 25:return 35;case 26:return 36;case 27:return 37;case 28:return 38;case 29:return 39;case 30:return 40;case 31:return 41;case 32:return 42;case 33:return 43;case 34:return 44;case 35:return 55;case 36:return 56;case 37:return 57;case 38:return 58;case 39:return 59;case 40:return 60;case 41:return 61;case 42:return 47;case 43:return 49;case 44:return 51;case 45:return 54;case 46:return 53;case 47:this.begin("string");break;case 48:this.popState();break;case 49:return"qString";case 50:return sn.yytext=sn.yytext.trim(),62}},rules:[/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[48,49],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,50],inclusive:!0}}};return Ae}();Fe.lexer=Mt;function pn(){this.yy={}}return pn.prototype=Fe,Fe.Parser=pn,new pn}();Dbt.parser=Dbt;const tQe=Dbt;let Mbt=[],ub={},gB={},_8={},pB={};const eQe={RequirementType:{REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},RiskLevel:{LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},VerifyType:{VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},Relationships:{CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},getConfig:()=>Re().req,addRequirement:(i,a)=>(gB[i]===void 0&&(gB[i]={name:i,type:a,id:ub.id,text:ub.text,risk:ub.risk,verifyMethod:ub.verifyMethod}),ub={},gB[i]),getRequirements:()=>gB,setNewReqId:i=>{ub!==void 0&&(ub.id=i)},setNewReqText:i=>{ub!==void 0&&(ub.text=i)},setNewReqRisk:i=>{ub!==void 0&&(ub.risk=i)},setNewReqVerifyMethod:i=>{ub!==void 0&&(ub.verifyMethod=i)},setAccTitle:og,getAccTitle:Xg,setAccDescription:Qg,getAccDescription:Jg,addElement:i=>(pB[i]===void 0&&(pB[i]={name:i,type:_8.type,docRef:_8.docRef},Kt.info("Added new requirement: ",i)),_8={},pB[i]),getElements:()=>pB,setNewElementType:i=>{_8!==void 0&&(_8.type=i)},setNewElementDocRef:i=>{_8!==void 0&&(_8.docRef=i)},addRelationship:(i,a,f)=>{Mbt.push({type:i,src:a,dst:f})},getRelationships:()=>Mbt,clear:()=>{Mbt=[],ub={},gB={},_8={},pB={},ag()}},nQe=i=>` + + marker { + fill: ${i.relationColor}; + stroke: ${i.relationColor}; + } + + marker.cross { + stroke: ${i.lineColor}; + } + + svg { + font-family: ${i.fontFamily}; + font-size: ${i.fontSize}; + } + + .reqBox { + fill: ${i.requirementBackground}; + fill-opacity: 1.0; + stroke: ${i.requirementBorderColor}; + stroke-width: ${i.requirementBorderSize}; + } + + .reqTitle, .reqLabel{ + fill: ${i.requirementTextColor}; + } + .reqLabelBox { + fill: ${i.relationLabelBackground}; + fill-opacity: 1.0; + } + + .req-title-line { + stroke: ${i.requirementBorderColor}; + stroke-width: ${i.requirementBorderSize}; + } + .relationshipLine { + stroke: ${i.relationColor}; + stroke-width: 1; + } + .relationshipLabel { + fill: ${i.relationLabelColor}; + } + +`,Ibt={CONTAINS:"contains",ARROW:"arrow"},oqt={ReqMarkers:Ibt,insertLineEndings:(i,a)=>{let f=i.append("defs").append("marker").attr("id",Ibt.CONTAINS+"_line_ending").attr("refX",0).attr("refY",a.line_height/2).attr("markerWidth",a.line_height).attr("markerHeight",a.line_height).attr("orient","auto").append("g");f.append("circle").attr("cx",a.line_height/2).attr("cy",a.line_height/2).attr("r",a.line_height/2).attr("fill","none"),f.append("line").attr("x1",0).attr("x2",a.line_height).attr("y1",a.line_height/2).attr("y2",a.line_height/2).attr("stroke-width",1),f.append("line").attr("y1",0).attr("y2",a.line_height).attr("x1",a.line_height/2).attr("x2",a.line_height/2).attr("stroke-width",1),i.append("defs").append("marker").attr("id",Ibt.ARROW+"_line_ending").attr("refX",a.line_height).attr("refY",.5*a.line_height).attr("markerWidth",a.line_height).attr("markerHeight",a.line_height).attr("orient","auto").append("path").attr("d",`M0,0 + L${a.line_height},${a.line_height/2} + M${a.line_height},${a.line_height/2} + L0,${a.line_height}`).attr("stroke-width",1)}};let Xh={},cqt=0;const uqt=(i,a)=>i.insert("rect","#"+a).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",Xh.rect_min_width+"px").attr("height",Xh.rect_min_height+"px"),lqt=(i,a,f)=>{let g=Xh.rect_min_width/2,w=i.append("text").attr("class","req reqLabel reqTitle").attr("id",a).attr("x",g).attr("y",Xh.rect_padding).attr("dominant-baseline","hanging"),v=0;f.forEach(_=>{v==0?w.append("tspan").attr("text-anchor","middle").attr("x",Xh.rect_min_width/2).attr("dy",0).text(_):w.append("tspan").attr("text-anchor","middle").attr("x",Xh.rect_min_width/2).attr("dy",Xh.line_height*.75).text(_),v++});let b=1.5*Xh.rect_padding,E=v*Xh.line_height*.75,S=b+E;return i.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",Xh.rect_min_width).attr("y1",S).attr("y2",S),{titleNode:w,y:S}},hqt=(i,a,f,g)=>{let w=i.append("text").attr("class","req reqLabel").attr("id",a).attr("x",Xh.rect_padding).attr("y",g).attr("dominant-baseline","hanging"),v=0;const b=30;let E=[];return f.forEach(S=>{let _=S.length;for(;_>b&&v<3;){let M=S.substring(0,b);S=S.substring(b,S.length),_=S.length,E[E.length]=M,v++}if(v==3){let M=E[E.length-1];E[E.length-1]=M.substring(0,M.length-4)+"..."}else E[E.length]=S;v=0}),E.forEach(S=>{w.append("tspan").attr("x",Xh.rect_padding).attr("dy",Xh.line_height).text(S)}),w},rQe=(i,a,f,g)=>{const w=a.node().getTotalLength(),v=a.node().getPointAtLength(w*.5),b="rel"+cqt;cqt++;const S=i.append("text").attr("class","req relationshipLabel").attr("id",b).attr("x",v.x).attr("y",v.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(g).node().getBBox();i.insert("rect","#"+b).attr("class","req reqLabelBox").attr("x",v.x-S.width/2).attr("y",v.y-S.height/2).attr("width",S.width).attr("height",S.height).attr("fill","white").attr("fill-opacity","85%")},iQe=function(i,a,f,g,w){const v=f.edge(LD(a.src),LD(a.dst)),b=Ax().x(function(S){return S.x}).y(function(S){return S.y}),E=i.insert("path","#"+g).attr("class","er relationshipLine").attr("d",b(v.points)).attr("fill","none");a.type==w.db.Relationships.CONTAINS?E.attr("marker-start","url("+ei.getUrl(Xh.arrowMarkerAbsolute)+"#"+a.type+"_line_ending)"):(E.attr("stroke-dasharray","10,7"),E.attr("marker-end","url("+ei.getUrl(Xh.arrowMarkerAbsolute)+"#"+oqt.ReqMarkers.ARROW+"_line_ending)")),rQe(i,E,Xh,`<<${a.type}>>`)},sQe=(i,a,f)=>{Object.keys(i).forEach(g=>{let w=i[g];g=LD(g),Kt.info("Added new requirement: ",g);const v=f.append("g").attr("id",g),b="req-"+g,E=uqt(v,b);let S=lqt(v,g+"_title",[`<<${w.type}>>`,`${w.name}`]);hqt(v,g+"_body",[`Id: ${w.id}`,`Text: ${w.text}`,`Risk: ${w.risk}`,`Verification: ${w.verifyMethod}`],S.y);const _=E.node().getBBox();a.setNode(g,{width:_.width,height:_.height,shape:"rect",id:g})})},aQe=(i,a,f)=>{Object.keys(i).forEach(g=>{let w=i[g];const v=LD(g),b=f.append("g").attr("id",v),E="element-"+v,S=uqt(b,E);let _=lqt(b,E+"_title",["<>",`${g}`]);hqt(b,E+"_body",[`Type: ${w.type||"Not Specified"}`,`Doc Ref: ${w.docRef||"None"}`],_.y);const M=S.node().getBBox();a.setNode(v,{width:M.width,height:M.height,shape:"rect",id:v})})},oQe=(i,a)=>(i.forEach(function(f){let g=LD(f.src),w=LD(f.dst);a.setEdge(g,w,{relationship:f})}),i),cQe=function(i,a){a.nodes().forEach(function(f){f!==void 0&&a.node(f)!==void 0&&(i.select("#"+f),i.select("#"+f).attr("transform","translate("+(a.node(f).x-a.node(f).width/2)+","+(a.node(f).y-a.node(f).height/2)+" )"))})},LD=i=>i.replace(/\s/g,"").replace(/\./g,"_"),uQe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:tQe,db:eQe,renderer:{draw:(i,a,f,g)=>{Xh=Re().requirement;const w=Xh.securityLevel;let v;w==="sandbox"&&(v=Tr("#i"+a));const E=Tr(w==="sandbox"?v.nodes()[0].contentDocument.body:"body").select(`[id='${a}']`);oqt.insertLineEndings(E,Xh);const S=new l1({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:Xh.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});let _=g.db.getRequirements(),M=g.db.getElements(),F=g.db.getRelationships();sQe(_,S,E),aQe(M,S,E),oQe(F,S),kD(S),cQe(E,S),F.forEach(function(nt){iQe(E,nt,S,a,g)});const R=Xh.rect_padding,B=E.node().getBBox(),z=B.width+R*2,Y=B.height+R*2;sg(E,Y,z,Xh.useMaxWidth),E.attr("viewBox",`${B.x-R} ${B.y-R} ${z} ${Y}`)}},styles:nQe}},Symbol.toStringTag,{value:"Module"}));var Obt=function(){var i=function(be,Ne,Xt,_e){for(Xt=Xt||{},_e=be.length;_e--;Xt[be[_e]]=Ne);return Xt},a=[1,2],f=[1,3],g=[1,4],w=[2,4],v=[1,9],b=[1,11],E=[1,13],S=[1,14],_=[1,16],M=[1,17],F=[1,18],R=[1,24],B=[1,25],z=[1,26],Y=[1,27],nt=[1,28],ot=[1,29],ft=[1,30],wt=[1,31],mt=[1,32],ct=[1,33],rt=[1,34],it=[1,35],gt=[1,36],Q=[1,37],dt=[1,38],K=[1,39],yt=[1,41],V=[1,42],Ot=[1,43],It=[1,44],jt=[1,45],xt=[1,46],Ft=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],Ct=[4,5,16,50,52,53],kt=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],Gt=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],Fe=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],Mt=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],pn=[68,69,70],Ae=[1,120],ye={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,DOTTED_ARROW:74,SOLID_CROSS:75,DOTTED_CROSS:76,SOLID_POINT:77,DOTTED_POINT:78,TXT:79,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"DOTTED_ARROW",75:"SOLID_CROSS",76:"DOTTED_CROSS",77:"SOLID_POINT",78:"DOTTED_POINT",79:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:function(Ne,Xt,_e,xe,Mn,ce,Br){var we=ce.length-1;switch(Mn){case 3:return xe.apply(ce[we]),ce[we];case 4:case 9:this.$=[];break;case 5:case 10:ce[we-1].push(ce[we]),this.$=ce[we-1];break;case 6:case 7:case 11:case 12:this.$=ce[we];break;case 8:case 13:this.$=[];break;case 15:ce[we].type="createParticipant",this.$=ce[we];break;case 16:ce[we-1].unshift({type:"boxStart",boxData:xe.parseBoxData(ce[we-2])}),ce[we-1].push({type:"boxEnd",boxText:ce[we-2]}),this.$=ce[we-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(ce[we-2]),sequenceIndexStep:Number(ce[we-1]),sequenceVisible:!0,signalType:xe.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(ce[we-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:xe.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:xe.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:xe.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:xe.LINETYPE.ACTIVE_START,actor:ce[we-1]};break;case 23:this.$={type:"activeEnd",signalType:xe.LINETYPE.ACTIVE_END,actor:ce[we-1]};break;case 29:xe.setDiagramTitle(ce[we].substring(6)),this.$=ce[we].substring(6);break;case 30:xe.setDiagramTitle(ce[we].substring(7)),this.$=ce[we].substring(7);break;case 31:this.$=ce[we].trim(),xe.setAccTitle(this.$);break;case 32:case 33:this.$=ce[we].trim(),xe.setAccDescription(this.$);break;case 34:ce[we-1].unshift({type:"loopStart",loopText:xe.parseMessage(ce[we-2]),signalType:xe.LINETYPE.LOOP_START}),ce[we-1].push({type:"loopEnd",loopText:ce[we-2],signalType:xe.LINETYPE.LOOP_END}),this.$=ce[we-1];break;case 35:ce[we-1].unshift({type:"rectStart",color:xe.parseMessage(ce[we-2]),signalType:xe.LINETYPE.RECT_START}),ce[we-1].push({type:"rectEnd",color:xe.parseMessage(ce[we-2]),signalType:xe.LINETYPE.RECT_END}),this.$=ce[we-1];break;case 36:ce[we-1].unshift({type:"optStart",optText:xe.parseMessage(ce[we-2]),signalType:xe.LINETYPE.OPT_START}),ce[we-1].push({type:"optEnd",optText:xe.parseMessage(ce[we-2]),signalType:xe.LINETYPE.OPT_END}),this.$=ce[we-1];break;case 37:ce[we-1].unshift({type:"altStart",altText:xe.parseMessage(ce[we-2]),signalType:xe.LINETYPE.ALT_START}),ce[we-1].push({type:"altEnd",signalType:xe.LINETYPE.ALT_END}),this.$=ce[we-1];break;case 38:ce[we-1].unshift({type:"parStart",parText:xe.parseMessage(ce[we-2]),signalType:xe.LINETYPE.PAR_START}),ce[we-1].push({type:"parEnd",signalType:xe.LINETYPE.PAR_END}),this.$=ce[we-1];break;case 39:ce[we-1].unshift({type:"parStart",parText:xe.parseMessage(ce[we-2]),signalType:xe.LINETYPE.PAR_OVER_START}),ce[we-1].push({type:"parEnd",signalType:xe.LINETYPE.PAR_END}),this.$=ce[we-1];break;case 40:ce[we-1].unshift({type:"criticalStart",criticalText:xe.parseMessage(ce[we-2]),signalType:xe.LINETYPE.CRITICAL_START}),ce[we-1].push({type:"criticalEnd",signalType:xe.LINETYPE.CRITICAL_END}),this.$=ce[we-1];break;case 41:ce[we-1].unshift({type:"breakStart",breakText:xe.parseMessage(ce[we-2]),signalType:xe.LINETYPE.BREAK_START}),ce[we-1].push({type:"breakEnd",optText:xe.parseMessage(ce[we-2]),signalType:xe.LINETYPE.BREAK_END}),this.$=ce[we-1];break;case 43:this.$=ce[we-3].concat([{type:"option",optionText:xe.parseMessage(ce[we-1]),signalType:xe.LINETYPE.CRITICAL_OPTION},ce[we]]);break;case 45:this.$=ce[we-3].concat([{type:"and",parText:xe.parseMessage(ce[we-1]),signalType:xe.LINETYPE.PAR_AND},ce[we]]);break;case 47:this.$=ce[we-3].concat([{type:"else",altText:xe.parseMessage(ce[we-1]),signalType:xe.LINETYPE.ALT_ELSE},ce[we]]);break;case 48:ce[we-3].draw="participant",ce[we-3].type="addParticipant",ce[we-3].description=xe.parseMessage(ce[we-1]),this.$=ce[we-3];break;case 49:ce[we-1].draw="participant",ce[we-1].type="addParticipant",this.$=ce[we-1];break;case 50:ce[we-3].draw="actor",ce[we-3].type="addParticipant",ce[we-3].description=xe.parseMessage(ce[we-1]),this.$=ce[we-3];break;case 51:ce[we-1].draw="actor",ce[we-1].type="addParticipant",this.$=ce[we-1];break;case 52:ce[we-1].type="destroyParticipant",this.$=ce[we-1];break;case 53:this.$=[ce[we-1],{type:"addNote",placement:ce[we-2],actor:ce[we-1].actor,text:ce[we]}];break;case 54:ce[we-2]=[].concat(ce[we-1],ce[we-1]).slice(0,2),ce[we-2][0]=ce[we-2][0].actor,ce[we-2][1]=ce[we-2][1].actor,this.$=[ce[we-1],{type:"addNote",placement:xe.PLACEMENT.OVER,actor:ce[we-2].slice(0,2),text:ce[we]}];break;case 55:this.$=[ce[we-1],{type:"addLinks",actor:ce[we-1].actor,text:ce[we]}];break;case 56:this.$=[ce[we-1],{type:"addALink",actor:ce[we-1].actor,text:ce[we]}];break;case 57:this.$=[ce[we-1],{type:"addProperties",actor:ce[we-1].actor,text:ce[we]}];break;case 58:this.$=[ce[we-1],{type:"addDetails",actor:ce[we-1].actor,text:ce[we]}];break;case 61:this.$=[ce[we-2],ce[we]];break;case 62:this.$=ce[we];break;case 63:this.$=xe.PLACEMENT.LEFTOF;break;case 64:this.$=xe.PLACEMENT.RIGHTOF;break;case 65:this.$=[ce[we-4],ce[we-1],{type:"addMessage",from:ce[we-4].actor,to:ce[we-1].actor,signalType:ce[we-3],msg:ce[we],activate:!0},{type:"activeStart",signalType:xe.LINETYPE.ACTIVE_START,actor:ce[we-1]}];break;case 66:this.$=[ce[we-4],ce[we-1],{type:"addMessage",from:ce[we-4].actor,to:ce[we-1].actor,signalType:ce[we-3],msg:ce[we]},{type:"activeEnd",signalType:xe.LINETYPE.ACTIVE_END,actor:ce[we-4]}];break;case 67:this.$=[ce[we-3],ce[we-1],{type:"addMessage",from:ce[we-3].actor,to:ce[we-1].actor,signalType:ce[we-2],msg:ce[we]}];break;case 68:this.$={type:"addParticipant",actor:ce[we]};break;case 69:this.$=xe.LINETYPE.SOLID_OPEN;break;case 70:this.$=xe.LINETYPE.DOTTED_OPEN;break;case 71:this.$=xe.LINETYPE.SOLID;break;case 72:this.$=xe.LINETYPE.DOTTED;break;case 73:this.$=xe.LINETYPE.SOLID_CROSS;break;case 74:this.$=xe.LINETYPE.DOTTED_CROSS;break;case 75:this.$=xe.LINETYPE.SOLID_POINT;break;case 76:this.$=xe.LINETYPE.DOTTED_POINT;break;case 77:this.$=xe.parseMessage(ce[we].trim().substring(1));break}},table:[{3:1,4:a,5:f,6:g},{1:[3]},{3:5,4:a,5:f,6:g},{3:6,4:a,5:f,6:g},i([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],w,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:v,5:b,8:8,9:10,12:12,13:E,14:S,17:15,18:_,21:M,22:40,23:F,24:19,25:20,26:21,27:22,28:23,29:R,30:B,31:z,33:Y,35:nt,36:ot,37:ft,38:wt,39:mt,41:ct,43:rt,44:it,46:gt,50:Q,52:dt,53:K,54:yt,59:V,60:Ot,61:It,62:jt,70:xt},i(Ft,[2,5]),{9:47,12:12,13:E,14:S,17:15,18:_,21:M,22:40,23:F,24:19,25:20,26:21,27:22,28:23,29:R,30:B,31:z,33:Y,35:nt,36:ot,37:ft,38:wt,39:mt,41:ct,43:rt,44:it,46:gt,50:Q,52:dt,53:K,54:yt,59:V,60:Ot,61:It,62:jt,70:xt},i(Ft,[2,7]),i(Ft,[2,8]),i(Ft,[2,14]),{12:48,50:Q,52:dt,53:K},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:xt},{22:55,70:xt},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},i(Ft,[2,29]),i(Ft,[2,30]),{32:[1,61]},{34:[1,62]},i(Ft,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:xt},{22:72,70:xt},{22:73,70:xt},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82]},{55:83,57:[1,84],65:[1,85],66:[1,86]},{22:87,70:xt},{22:88,70:xt},{22:89,70:xt},{22:90,70:xt},i([5,51,64,71,72,73,74,75,76,77,78,79],[2,68]),i(Ft,[2,6]),i(Ft,[2,15]),i(Ct,[2,9],{10:91}),i(Ft,[2,17]),{5:[1,93],19:[1,92]},{5:[1,94]},i(Ft,[2,21]),{5:[1,95]},{5:[1,96]},i(Ft,[2,24]),i(Ft,[2,25]),i(Ft,[2,26]),i(Ft,[2,27]),i(Ft,[2,28]),i(Ft,[2,31]),i(Ft,[2,32]),i(kt,w,{7:97}),i(kt,w,{7:98}),i(kt,w,{7:99}),i(Gt,w,{40:100,7:101}),i(Fe,w,{42:102,7:103}),i(Fe,w,{7:103,42:104}),i(Mt,w,{45:105,7:106}),i(kt,w,{7:107}),{5:[1,109],51:[1,108]},{5:[1,111],51:[1,110]},{5:[1,112]},{22:115,68:[1,113],69:[1,114],70:xt},i(pn,[2,69]),i(pn,[2,70]),i(pn,[2,71]),i(pn,[2,72]),i(pn,[2,73]),i(pn,[2,74]),i(pn,[2,75]),i(pn,[2,76]),{22:116,70:xt},{22:118,58:117,70:xt},{70:[2,63]},{70:[2,64]},{56:119,79:Ae},{56:121,79:Ae},{56:122,79:Ae},{56:123,79:Ae},{4:[1,126],5:[1,128],11:125,12:127,16:[1,124],50:Q,52:dt,53:K},{5:[1,129]},i(Ft,[2,19]),i(Ft,[2,20]),i(Ft,[2,22]),i(Ft,[2,23]),{4:v,5:b,8:8,9:10,12:12,13:E,14:S,16:[1,130],17:15,18:_,21:M,22:40,23:F,24:19,25:20,26:21,27:22,28:23,29:R,30:B,31:z,33:Y,35:nt,36:ot,37:ft,38:wt,39:mt,41:ct,43:rt,44:it,46:gt,50:Q,52:dt,53:K,54:yt,59:V,60:Ot,61:It,62:jt,70:xt},{4:v,5:b,8:8,9:10,12:12,13:E,14:S,16:[1,131],17:15,18:_,21:M,22:40,23:F,24:19,25:20,26:21,27:22,28:23,29:R,30:B,31:z,33:Y,35:nt,36:ot,37:ft,38:wt,39:mt,41:ct,43:rt,44:it,46:gt,50:Q,52:dt,53:K,54:yt,59:V,60:Ot,61:It,62:jt,70:xt},{4:v,5:b,8:8,9:10,12:12,13:E,14:S,16:[1,132],17:15,18:_,21:M,22:40,23:F,24:19,25:20,26:21,27:22,28:23,29:R,30:B,31:z,33:Y,35:nt,36:ot,37:ft,38:wt,39:mt,41:ct,43:rt,44:it,46:gt,50:Q,52:dt,53:K,54:yt,59:V,60:Ot,61:It,62:jt,70:xt},{16:[1,133]},{4:v,5:b,8:8,9:10,12:12,13:E,14:S,16:[2,46],17:15,18:_,21:M,22:40,23:F,24:19,25:20,26:21,27:22,28:23,29:R,30:B,31:z,33:Y,35:nt,36:ot,37:ft,38:wt,39:mt,41:ct,43:rt,44:it,46:gt,49:[1,134],50:Q,52:dt,53:K,54:yt,59:V,60:Ot,61:It,62:jt,70:xt},{16:[1,135]},{4:v,5:b,8:8,9:10,12:12,13:E,14:S,16:[2,44],17:15,18:_,21:M,22:40,23:F,24:19,25:20,26:21,27:22,28:23,29:R,30:B,31:z,33:Y,35:nt,36:ot,37:ft,38:wt,39:mt,41:ct,43:rt,44:it,46:gt,48:[1,136],50:Q,52:dt,53:K,54:yt,59:V,60:Ot,61:It,62:jt,70:xt},{16:[1,137]},{16:[1,138]},{4:v,5:b,8:8,9:10,12:12,13:E,14:S,16:[2,42],17:15,18:_,21:M,22:40,23:F,24:19,25:20,26:21,27:22,28:23,29:R,30:B,31:z,33:Y,35:nt,36:ot,37:ft,38:wt,39:mt,41:ct,43:rt,44:it,46:gt,47:[1,139],50:Q,52:dt,53:K,54:yt,59:V,60:Ot,61:It,62:jt,70:xt},{4:v,5:b,8:8,9:10,12:12,13:E,14:S,16:[1,140],17:15,18:_,21:M,22:40,23:F,24:19,25:20,26:21,27:22,28:23,29:R,30:B,31:z,33:Y,35:nt,36:ot,37:ft,38:wt,39:mt,41:ct,43:rt,44:it,46:gt,50:Q,52:dt,53:K,54:yt,59:V,60:Ot,61:It,62:jt,70:xt},{15:[1,141]},i(Ft,[2,49]),{15:[1,142]},i(Ft,[2,51]),i(Ft,[2,52]),{22:143,70:xt},{22:144,70:xt},{56:145,79:Ae},{56:146,79:Ae},{56:147,79:Ae},{64:[1,148],79:[2,62]},{5:[2,55]},{5:[2,77]},{5:[2,56]},{5:[2,57]},{5:[2,58]},i(Ft,[2,16]),i(Ct,[2,10]),{12:149,50:Q,52:dt,53:K},i(Ct,[2,12]),i(Ct,[2,13]),i(Ft,[2,18]),i(Ft,[2,34]),i(Ft,[2,35]),i(Ft,[2,36]),i(Ft,[2,37]),{15:[1,150]},i(Ft,[2,38]),{15:[1,151]},i(Ft,[2,39]),i(Ft,[2,40]),{15:[1,152]},i(Ft,[2,41]),{5:[1,153]},{5:[1,154]},{56:155,79:Ae},{56:156,79:Ae},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:157,70:xt},i(Ct,[2,11]),i(Gt,w,{7:101,40:158}),i(Fe,w,{7:103,42:159}),i(Mt,w,{7:106,45:160}),i(Ft,[2,48]),i(Ft,[2,50]),{5:[2,65]},{5:[2,66]},{79:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],85:[2,63],86:[2,64],119:[2,55],120:[2,77],121:[2,56],122:[2,57],123:[2,58],145:[2,67],146:[2,53],147:[2,54],155:[2,65],156:[2,66],157:[2,61],158:[2,47],159:[2,45],160:[2,43]},parseError:function(Ne,Xt){if(Xt.recoverable)this.trace(Ne);else{var _e=new Error(Ne);throw _e.hash=Xt,_e}},parse:function(Ne){var Xt=this,_e=[0],xe=[],Mn=[null],ce=[],Br=this.table,we="",Fi=0,mi=0,ga=2,Ss=1,za=ce.slice.call(arguments,1),br=Object.create(this.lexer),An={yy:{}};for(var Nn in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Nn)&&(An.yy[Nn]=this.yy[Nn]);br.setInput(Ne,An.yy),An.yy.lexer=br,An.yy.parser=this,typeof br.yylloc>"u"&&(br.yylloc={});var Bn=br.yylloc;ce.push(Bn);var ke=br.options&&br.options.ranges;typeof An.yy.parseError=="function"?this.parseError=An.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pe(){var Zs;return Zs=xe.pop()||br.lex()||Ss,typeof Zs!="number"&&(Zs instanceof Array&&(xe=Zs,Zs=xe.pop()),Zs=Xt.symbols_[Zs]||Zs),Zs}for(var Je,an,xn,qa,xo={},ko,va,Ha,ds;;){if(an=_e[_e.length-1],this.defaultActions[an]?xn=this.defaultActions[an]:((Je===null||typeof Je>"u")&&(Je=pe()),xn=Br[an]&&Br[an][Je]),typeof xn>"u"||!xn.length||!xn[0]){var Fu="";ds=[];for(ko in Br[an])this.terminals_[ko]&&ko>ga&&ds.push("'"+this.terminals_[ko]+"'");br.showPosition?Fu="Parse error on line "+(Fi+1)+`: +`+br.showPosition()+` +Expecting `+ds.join(", ")+", got '"+(this.terminals_[Je]||Je)+"'":Fu="Parse error on line "+(Fi+1)+": Unexpected "+(Je==Ss?"end of input":"'"+(this.terminals_[Je]||Je)+"'"),this.parseError(Fu,{text:br.match,token:this.terminals_[Je]||Je,line:br.yylineno,loc:Bn,expected:ds})}if(xn[0]instanceof Array&&xn.length>1)throw new Error("Parse Error: multiple actions possible at state: "+an+", token: "+Je);switch(xn[0]){case 1:_e.push(Je),Mn.push(br.yytext),ce.push(br.yylloc),_e.push(xn[1]),Je=null,mi=br.yyleng,we=br.yytext,Fi=br.yylineno,Bn=br.yylloc;break;case 2:if(va=this.productions_[xn[1]][1],xo.$=Mn[Mn.length-va],xo._$={first_line:ce[ce.length-(va||1)].first_line,last_line:ce[ce.length-1].last_line,first_column:ce[ce.length-(va||1)].first_column,last_column:ce[ce.length-1].last_column},ke&&(xo._$.range=[ce[ce.length-(va||1)].range[0],ce[ce.length-1].range[1]]),qa=this.performAction.apply(xo,[we,mi,Fi,An.yy,xn[1],Mn,ce].concat(za)),typeof qa<"u")return qa;va&&(_e=_e.slice(0,-1*va*2),Mn=Mn.slice(0,-1*va),ce=ce.slice(0,-1*va)),_e.push(this.productions_[xn[1]][0]),Mn.push(xo.$),ce.push(xo._$),Ha=Br[_e[_e.length-2]][_e[_e.length-1]],_e.push(Ha);break;case 3:return!0}}return!0}},tn=function(){var be={EOF:1,parseError:function(Xt,_e){if(this.yy.parser)this.yy.parser.parseError(Xt,_e);else throw new Error(Xt)},setInput:function(Ne,Xt){return this.yy=Xt||this.yy||{},this._input=Ne,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Ne=this._input[0];this.yytext+=Ne,this.yyleng++,this.offset++,this.match+=Ne,this.matched+=Ne;var Xt=Ne.match(/(?:\r\n?|\n).*/g);return Xt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Ne},unput:function(Ne){var Xt=Ne.length,_e=Ne.split(/(?:\r\n?|\n)/g);this._input=Ne+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Xt),this.offset-=Xt;var xe=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),_e.length-1&&(this.yylineno-=_e.length-1);var Mn=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:_e?(_e.length===xe.length?this.yylloc.first_column:0)+xe[xe.length-_e.length].length-_e[0].length:this.yylloc.first_column-Xt},this.options.ranges&&(this.yylloc.range=[Mn[0],Mn[0]+this.yyleng-Xt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Ne){this.unput(this.match.slice(Ne))},pastInput:function(){var Ne=this.matched.substr(0,this.matched.length-this.match.length);return(Ne.length>20?"...":"")+Ne.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Ne=this.match;return Ne.length<20&&(Ne+=this._input.substr(0,20-Ne.length)),(Ne.substr(0,20)+(Ne.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Ne=this.pastInput(),Xt=new Array(Ne.length+1).join("-");return Ne+this.upcomingInput()+` +`+Xt+"^"},test_match:function(Ne,Xt){var _e,xe,Mn;if(this.options.backtrack_lexer&&(Mn={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Mn.yylloc.range=this.yylloc.range.slice(0))),xe=Ne[0].match(/(?:\r\n?|\n).*/g),xe&&(this.yylineno+=xe.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:xe?xe[xe.length-1].length-xe[xe.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Ne[0].length},this.yytext+=Ne[0],this.match+=Ne[0],this.matches=Ne,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Ne[0].length),this.matched+=Ne[0],_e=this.performAction.call(this,this.yy,this,Xt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),_e)return _e;if(this._backtrack){for(var ce in Mn)this[ce]=Mn[ce];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Ne,Xt,_e,xe;this._more||(this.yytext="",this.match="");for(var Mn=this._currentRules(),ce=0;ceXt[0].length)){if(Xt=_e,xe=ce,this.options.backtrack_lexer){if(Ne=this.test_match(_e,Mn[ce]),Ne!==!1)return Ne;if(this._backtrack){Xt=!1;continue}else return!1}else if(!this.options.flex)break}return Xt?(Ne=this.test_match(Xt,Mn[xe]),Ne!==!1?Ne:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Xt=this.next();return Xt||this.lex()},begin:function(Xt){this.conditionStack.push(Xt)},popState:function(){var Xt=this.conditionStack.length-1;return Xt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Xt){return Xt=this.conditionStack.length-1-Math.abs(Xt||0),Xt>=0?this.conditionStack[Xt]:"INITIAL"},pushState:function(Xt){this.begin(Xt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(Xt,_e,xe,Mn){switch(xe){case 0:return 5;case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:return 19;case 7:return this.begin("LINE"),14;case 8:return this.begin("ID"),50;case 9:return this.begin("ID"),52;case 10:return 13;case 11:return this.begin("ID"),53;case 12:return _e.yytext=_e.yytext.trim(),this.begin("ALIAS"),70;case 13:return this.popState(),this.popState(),this.begin("LINE"),51;case 14:return this.popState(),this.popState(),5;case 15:return this.begin("LINE"),36;case 16:return this.begin("LINE"),37;case 17:return this.begin("LINE"),38;case 18:return this.begin("LINE"),39;case 19:return this.begin("LINE"),49;case 20:return this.begin("LINE"),41;case 21:return this.begin("LINE"),43;case 22:return this.begin("LINE"),48;case 23:return this.begin("LINE"),44;case 24:return this.begin("LINE"),47;case 25:return this.begin("LINE"),46;case 26:return this.popState(),15;case 27:return 16;case 28:return 65;case 29:return 66;case 30:return 59;case 31:return 60;case 32:return 61;case 33:return 62;case 34:return 57;case 35:return 54;case 36:return this.begin("ID"),21;case 37:return this.begin("ID"),23;case 38:return 29;case 39:return 30;case 40:return this.begin("acc_title"),31;case 41:return this.popState(),"acc_title_value";case 42:return this.begin("acc_descr"),33;case 43:return this.popState(),"acc_descr_value";case 44:this.begin("acc_descr_multiline");break;case 45:this.popState();break;case 46:return"acc_descr_multiline_value";case 47:return 6;case 48:return 18;case 49:return 20;case 50:return 64;case 51:return 5;case 52:return _e.yytext=_e.yytext.trim(),70;case 53:return 73;case 54:return 74;case 55:return 71;case 56:return 72;case 57:return 75;case 58:return 76;case 59:return 77;case 60:return 78;case 61:return 79;case 62:return 68;case 63:return 69;case 64:return 5;case 65:return"INVALID"}},rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:[^\->:\n,;]+?([\-]*[^\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[45,46],inclusive:!1},acc_descr:{rules:[43],inclusive:!1},acc_title:{rules:[41],inclusive:!1},ID:{rules:[2,3,12],inclusive:!1},ALIAS:{rules:[2,3,13,14],inclusive:!1},LINE:{rules:[2,3,26],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,7,8,9,10,11,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65],inclusive:!0}}};return be}();ye.lexer=tn;function sn(){this.yy={}}return sn.prototype=ye,ye.Parser=sn,new sn}();Obt.parser=Obt;const lQe=Obt;class hQe{constructor(a){this.init=a,this.records=this.init()}reset(){this.records=this.init()}}const ws=new hQe(()=>({prevActor:void 0,actors:{},createdActors:{},destroyedActors:{},boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0})),fQe=function(i){ws.records.boxes.push({name:i.text,wrap:i.wrap===void 0&&F9()||!!i.wrap,fill:i.color,actorKeys:[]}),ws.records.currentBox=ws.records.boxes.slice(-1)[0]},Nbt=function(i,a,f,g){let w=ws.records.currentBox;const v=ws.records.actors[i];if(v){if(ws.records.currentBox&&v.box&&ws.records.currentBox!==v.box)throw new Error("A same participant should only be defined in one Box: "+v.name+" can't be in '"+v.box.name+"' and in '"+ws.records.currentBox.name+"' at the same time.");if(w=v.box?v.box:ws.records.currentBox,v.box=w,v&&a===v.name&&f==null)return}(f==null||f.text==null)&&(f={text:a,wrap:null,type:g}),(g==null||f.text==null)&&(f={text:a,wrap:null,type:g}),ws.records.actors[i]={box:w,name:a,description:f.text,wrap:f.wrap===void 0&&F9()||!!f.wrap,prevActor:ws.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:g||"participant"},ws.records.prevActor&&ws.records.actors[ws.records.prevActor]&&(ws.records.actors[ws.records.prevActor].nextActor=i),ws.records.currentBox&&ws.records.currentBox.actorKeys.push(i),ws.records.prevActor=i},dQe=i=>{let a,f=0;for(a=0;a>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},b}return ws.records.messages.push({from:i,to:a,message:f.text,wrap:f.wrap===void 0&&F9()||!!f.wrap,type:g,activate:w}),!0},pQe=function(){return ws.records.boxes.length>0},bQe=function(){return ws.records.boxes.some(i=>i.name)},wQe=function(){return ws.records.messages},mQe=function(){return ws.records.boxes},vQe=function(){return ws.records.actors},yQe=function(){return ws.records.createdActors},xQe=function(){return ws.records.destroyedActors},bB=function(i){return ws.records.actors[i]},kQe=function(){return Object.keys(ws.records.actors)},EQe=function(){ws.records.sequenceNumbersEnabled=!0},TQe=function(){ws.records.sequenceNumbersEnabled=!1},CQe=()=>ws.records.sequenceNumbersEnabled,SQe=function(i){ws.records.wrapEnabled=i},F9=()=>ws.records.wrapEnabled!==void 0?ws.records.wrapEnabled:Re().sequence.wrap,_Qe=function(){ws.reset(),ag()},AQe=function(i){const a=i.trim(),f={text:a.replace(/^:?(?:no)?wrap:/,"").trim(),wrap:a.match(/^:?wrap:/)!==null?!0:a.match(/^:?nowrap:/)!==null?!1:void 0};return Kt.debug("parseMessage:",f),f},LQe=function(i){const a=i.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/);let f=a!=null&&a[1]?a[1].trim():"transparent",g=a!=null&&a[2]?a[2].trim():void 0;if(window&&window.CSS)window.CSS.supports("color",f)||(f="transparent",g=i.trim());else{const w=new Option().style;w.color=f,w.color!==f&&(f="transparent",g=i.trim())}return{color:f,text:g!==void 0?Ef(g.replace(/^:?(?:no)?wrap:/,""),Re()):void 0,wrap:g!==void 0?g.match(/^:?wrap:/)!==null?!0:g.match(/^:?nowrap:/)!==null?!1:void 0:void 0}},wB={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32},DQe={FILLED:0,OPEN:1},MQe={LEFTOF:0,RIGHTOF:1,OVER:2},fqt=function(i,a,f){const g={actor:i,placement:a,message:f.text,wrap:f.wrap===void 0&&F9()||!!f.wrap},w=[].concat(i,i);ws.records.notes.push(g),ws.records.messages.push({from:w[0],to:w[1],message:f.text,wrap:f.wrap===void 0&&F9()||!!f.wrap,type:wB.NOTE,placement:a})},dqt=function(i,a){const f=bB(i);try{let g=Ef(a.text,Re());g=g.replace(/&/g,"&"),g=g.replace(/=/g,"=");const w=JSON.parse(g);Pbt(f,w)}catch(g){Kt.error("error while parsing actor link text",g)}},IQe=function(i,a){const f=bB(i);try{const b={};let E=Ef(a.text,Re());var g=E.indexOf("@");E=E.replace(/&/g,"&"),E=E.replace(/=/g,"=");var w=E.slice(0,g-1).trim(),v=E.slice(g+1).trim();b[w]=v,Pbt(f,b)}catch(b){Kt.error("error while parsing actor link text",b)}};function Pbt(i,a){if(i.links==null)i.links=a;else for(let f in a)i.links[f]=a[f]}const gqt=function(i,a){const f=bB(i);try{let g=Ef(a.text,Re());const w=JSON.parse(g);pqt(f,w)}catch(g){Kt.error("error while parsing actor properties text",g)}};function pqt(i,a){if(i.properties==null)i.properties=a;else for(let f in a)i.properties[f]=a[f]}function OQe(){ws.records.currentBox=void 0}const bqt=function(i,a){const f=bB(i),g=document.getElementById(a.text);try{const w=g.innerHTML,v=JSON.parse(w);v.properties&&pqt(f,v.properties),v.links&&Pbt(f,v.links)}catch(w){Kt.error("error while parsing actor details text",w)}},NQe=function(i,a){if(i!==void 0&&i.properties!==void 0)return i.properties[a]},wqt=function(i){if(Array.isArray(i))i.forEach(function(a){wqt(a)});else switch(i.type){case"sequenceIndex":ws.records.messages.push({from:void 0,to:void 0,message:{start:i.sequenceIndex,step:i.sequenceIndexStep,visible:i.sequenceVisible},wrap:!1,type:i.signalType});break;case"addParticipant":Nbt(i.actor,i.actor,i.description,i.draw);break;case"createParticipant":if(ws.records.actors[i.actor])throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");ws.records.lastCreated=i.actor,Nbt(i.actor,i.actor,i.description,i.draw),ws.records.createdActors[i.actor]=ws.records.messages.length;break;case"destroyParticipant":ws.records.lastDestroyed=i.actor,ws.records.destroyedActors[i.actor]=ws.records.messages.length;break;case"activeStart":Sf(i.actor,void 0,void 0,i.signalType);break;case"activeEnd":Sf(i.actor,void 0,void 0,i.signalType);break;case"addNote":fqt(i.actor,i.placement,i.text);break;case"addLinks":dqt(i.actor,i.text);break;case"addALink":IQe(i.actor,i.text);break;case"addProperties":gqt(i.actor,i.text);break;case"addDetails":bqt(i.actor,i.text);break;case"addMessage":if(ws.records.lastCreated){if(i.to!==ws.records.lastCreated)throw new Error("The created participant "+ws.records.lastCreated+" does not have an associated creating message after its declaration. Please check the sequence diagram.");ws.records.lastCreated=void 0}else if(ws.records.lastDestroyed){if(i.to!==ws.records.lastDestroyed&&i.from!==ws.records.lastDestroyed)throw new Error("The destroyed participant "+ws.records.lastDestroyed+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");ws.records.lastDestroyed=void 0}Sf(i.from,i.to,i.msg,i.signalType,i.activate);break;case"boxStart":fQe(i.boxData);break;case"boxEnd":OQe();break;case"loopStart":Sf(void 0,void 0,i.loopText,i.signalType);break;case"loopEnd":Sf(void 0,void 0,void 0,i.signalType);break;case"rectStart":Sf(void 0,void 0,i.color,i.signalType);break;case"rectEnd":Sf(void 0,void 0,void 0,i.signalType);break;case"optStart":Sf(void 0,void 0,i.optText,i.signalType);break;case"optEnd":Sf(void 0,void 0,void 0,i.signalType);break;case"altStart":Sf(void 0,void 0,i.altText,i.signalType);break;case"else":Sf(void 0,void 0,i.altText,i.signalType);break;case"altEnd":Sf(void 0,void 0,void 0,i.signalType);break;case"setAccTitle":og(i.text);break;case"parStart":Sf(void 0,void 0,i.parText,i.signalType);break;case"and":Sf(void 0,void 0,i.parText,i.signalType);break;case"parEnd":Sf(void 0,void 0,void 0,i.signalType);break;case"criticalStart":Sf(void 0,void 0,i.criticalText,i.signalType);break;case"option":Sf(void 0,void 0,i.optionText,i.signalType);break;case"criticalEnd":Sf(void 0,void 0,void 0,i.signalType);break;case"breakStart":Sf(void 0,void 0,i.breakText,i.signalType);break;case"breakEnd":Sf(void 0,void 0,void 0,i.signalType);break}},mqt={addActor:Nbt,addMessage:gQe,addSignal:Sf,addLinks:dqt,addDetails:bqt,addProperties:gqt,autoWrap:F9,setWrap:SQe,enableSequenceNumbers:EQe,disableSequenceNumbers:TQe,showSequenceNumbers:CQe,getMessages:wQe,getActors:vQe,getCreatedActors:yQe,getDestroyedActors:xQe,getActor:bB,getActorKeys:kQe,getActorProperty:NQe,getAccTitle:Xg,getBoxes:mQe,getDiagramTitle:Zg,setDiagramTitle:S2,getConfig:()=>Re().sequence,clear:_Qe,parseMessage:AQe,parseBoxData:LQe,LINETYPE:wB,ARROWTYPE:DQe,PLACEMENT:MQe,addNote:fqt,setAccTitle:og,apply:wqt,setAccDescription:Qg,getAccDescription:Jg,hasAtLeastOneBox:pQe,hasAtLeastOneBoxWithTitle:bQe},PQe=i=>`.actor { + stroke: ${i.actorBorder}; + fill: ${i.actorBkg}; + } + + text.actor > tspan { + fill: ${i.actorTextColor}; + stroke: none; + } + + .actor-line { + stroke: ${i.actorLineColor}; + } + + .messageLine0 { + stroke-width: 1.5; + stroke-dasharray: none; + stroke: ${i.signalColor}; + } + + .messageLine1 { + stroke-width: 1.5; + stroke-dasharray: 2, 2; + stroke: ${i.signalColor}; + } + + #arrowhead path { + fill: ${i.signalColor}; + stroke: ${i.signalColor}; + } + + .sequenceNumber { + fill: ${i.sequenceNumberColor}; + } + + #sequencenumber { + fill: ${i.signalColor}; + } + + #crosshead path { + fill: ${i.signalColor}; + stroke: ${i.signalColor}; + } + + .messageText { + fill: ${i.signalTextColor}; + stroke: none; + } + + .labelBox { + stroke: ${i.labelBoxBorderColor}; + fill: ${i.labelBoxBkgColor}; + } + + .labelText, .labelText > tspan { + fill: ${i.labelTextColor}; + stroke: none; + } + + .loopText, .loopText > tspan { + fill: ${i.loopTextColor}; + stroke: none; + } + + .loopLine { + stroke-width: 2px; + stroke-dasharray: 2, 2; + stroke: ${i.labelBoxBorderColor}; + fill: ${i.labelBoxBorderColor}; + } + + .note { + //stroke: #decc93; + stroke: ${i.noteBorderColor}; + fill: ${i.noteBkgColor}; + } + + .noteText, .noteText > tspan { + fill: ${i.noteTextColor}; + stroke: none; + } + + .activation0 { + fill: ${i.activationBkgColor}; + stroke: ${i.activationBorderColor}; + } + + .activation1 { + fill: ${i.activationBkgColor}; + stroke: ${i.activationBorderColor}; + } + + .activation2 { + fill: ${i.activationBkgColor}; + stroke: ${i.activationBorderColor}; + } + + .actorPopupMenu { + position: absolute; + } + + .actorPopupMenuPanel { + position: absolute; + fill: ${i.actorBkg}; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); +} + .actor-man line { + stroke: ${i.actorBorder}; + fill: ${i.actorBkg}; + } + .actor-man circle, line { + stroke: ${i.actorBorder}; + fill: ${i.actorBkg}; + stroke-width: 2px; + } +`,B9=18*2,vqt="actor-top",yqt="actor-bottom",Fbt=function(i,a){return LY(i,a)},FQe=function(i,a,f,g,w){if(a.links===void 0||a.links===null||Object.keys(a.links).length===0)return{height:0,width:0};const v=a.links,b=a.actorCnt,E=a.rectData;var S="none";w&&(S="block !important");const _=i.append("g");_.attr("id","actor"+b+"_popup"),_.attr("class","actorPopupMenu"),_.attr("display",S);var M="";E.class!==void 0&&(M=" "+E.class);let F=E.width>f?E.width:f;const R=_.append("rect");if(R.attr("class","actorPopupMenuPanel"+M),R.attr("x",E.x),R.attr("y",E.height),R.attr("fill",E.fill),R.attr("stroke",E.stroke),R.attr("width",F),R.attr("height",E.height),R.attr("rx",E.rx),R.attr("ry",E.ry),v!=null){var B=20;for(let nt in v){var z=_.append("a"),Y=h8(v[nt]);z.attr("xlink:href",Y),z.attr("target","_blank"),ZQe(g)(nt,z,E.x+10,E.height+B,F,20,{class:"actor"},g),B+=30}}return R.attr("height",B),{height:E.height+B,width:F}},BQe=function(i){return"var pu = document.getElementById('"+i+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},DD=function(i,a){let f=0,g=0;const w=a.text.split(ei.lineBreakRegex),[v,b]=k9(a.fontSize);let E=[],S=0,_=()=>a.y;if(a.valign!==void 0&&a.textMargin!==void 0&&a.textMargin>0)switch(a.valign){case"top":case"start":_=()=>Math.round(a.y+a.textMargin);break;case"middle":case"center":_=()=>Math.round(a.y+(f+g+a.textMargin)/2);break;case"bottom":case"end":_=()=>Math.round(a.y+(f+g+2*a.textMargin)-a.textMargin);break}if(a.anchor!==void 0&&a.textMargin!==void 0&&a.width!==void 0)switch(a.anchor){case"left":case"start":a.x=Math.round(a.x+a.textMargin),a.anchor="start",a.dominantBaseline="middle",a.alignmentBaseline="middle";break;case"middle":case"center":a.x=Math.round(a.x+a.width/2),a.anchor="middle",a.dominantBaseline="middle",a.alignmentBaseline="middle";break;case"right":case"end":a.x=Math.round(a.x+a.width-a.textMargin),a.anchor="end",a.dominantBaseline="middle",a.alignmentBaseline="middle";break}for(let[M,F]of w.entries()){a.textMargin!==void 0&&a.textMargin===0&&v!==void 0&&(S=M*v);const R=i.append("text");R.attr("x",a.x),R.attr("y",_()),a.anchor!==void 0&&R.attr("text-anchor",a.anchor).attr("dominant-baseline",a.dominantBaseline).attr("alignment-baseline",a.alignmentBaseline),a.fontFamily!==void 0&&R.style("font-family",a.fontFamily),b!==void 0&&R.style("font-size",b),a.fontWeight!==void 0&&R.style("font-weight",a.fontWeight),a.fill!==void 0&&R.attr("fill",a.fill),a.class!==void 0&&R.attr("class",a.class),a.dy!==void 0?R.attr("dy",a.dy):S!==0&&R.attr("dy",S);const B=F||kFt;if(a.tspan){const z=R.append("tspan");z.attr("x",a.x),a.fill!==void 0&&z.attr("fill",a.fill),z.text(B)}else R.text(B);a.valign!==void 0&&a.textMargin!==void 0&&a.textMargin>0&&(g+=(R._groups||R)[0][0].getBBox().height,f=g),E.push(R)}return E},xqt=function(i,a){function f(w,v,b,E,S){return w+","+v+" "+(w+b)+","+v+" "+(w+b)+","+(v+E-S)+" "+(w+b-S*1.2)+","+(v+E)+" "+w+","+(v+E)}const g=i.append("polygon");return g.attr("points",f(a.x,a.y,a.width,a.height,7)),g.attr("class","labelBox"),a.y=a.y+a.height/2,DD(i,a),g};let f4=-1;const kqt=(i,a,f,g)=>{i.select&&f.forEach(w=>{const v=a[w],b=i.select("#actor"+v.actorCnt);!g.mirrorActors&&v.stopy?b.attr("y2",v.stopy+v.height/2):g.mirrorActors&&b.attr("y2",v.stopy)})},RQe=function(i,a,f,g){const w=g?a.stopy:a.starty,v=a.x+a.width/2,b=w+5,E=i.append("g").lower();var S=E;g||(f4++,Object.keys(a.links||{}).length&&!f.forceMenus&&S.attr("onclick",BQe(`actor${f4}_popup`)).attr("cursor","pointer"),S.append("line").attr("id","actor"+f4).attr("x1",v).attr("y1",b).attr("x2",v).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),S=E.append("g"),a.actorCnt=f4,a.links!=null&&S.attr("id","root-"+f4));const _=_9();var M="actor";a.properties!=null&&a.properties.class?M=a.properties.class:_.fill="#eaeaea",g?M+=` ${yqt}`:M+=` ${vqt}`,_.x=a.x,_.y=w,_.width=a.width,_.height=a.height,_.class=M,_.rx=3,_.ry=3;const F=Fbt(S,_);if(a.rectData=_,a.properties!=null&&a.properties.icon){const B=a.properties.icon.trim();B.charAt(0)==="@"?KRe(S,_.x+_.width-20,_.y+10,B.substr(1)):GRe(S,_.x+_.width-20,_.y+10,B)}Bbt(f)(a.description,S,_.x,_.y,_.width,_.height,{class:"actor"},f);let R=a.height;if(F.node){const B=F.node().getBBox();a.height=B.height,R=B.height}return R},jQe=function(i,a,f,g){const w=g?a.stopy:a.starty,v=a.x+a.width/2,b=w+80;i.lower(),g||(f4++,i.append("line").attr("id","actor"+f4).attr("x1",v).attr("y1",b).attr("x2",v).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),a.actorCnt=f4);const E=i.append("g");let S="actor-man";g?S+=` ${yqt}`:S+=` ${vqt}`,E.attr("class",S);const _=_9();_.x=a.x,_.y=w,_.fill="#eaeaea",_.width=a.width,_.height=a.height,_.class="actor",_.rx=3,_.ry=3,E.append("line").attr("id","actor-man-torso"+f4).attr("x1",v).attr("y1",w+25).attr("x2",v).attr("y2",w+45),E.append("line").attr("id","actor-man-arms"+f4).attr("x1",v-B9/2).attr("y1",w+33).attr("x2",v+B9/2).attr("y2",w+33),E.append("line").attr("x1",v-B9/2).attr("y1",w+60).attr("x2",v).attr("y2",w+45),E.append("line").attr("x1",v).attr("y1",w+45).attr("x2",v+B9/2-2).attr("y2",w+60);const M=E.append("circle");M.attr("cx",a.x+a.width/2),M.attr("cy",w+10),M.attr("r",15),M.attr("width",a.width),M.attr("height",a.height);const F=E.node().getBBox();return a.height=F.height,Bbt(f)(a.description,E,_.x,_.y+35,_.width,_.height,{class:"actor"},f),a.height},$Qe=function(i,a,f,g){switch(a.type){case"actor":return jQe(i,a,f,g);case"participant":return RQe(i,a,f,g)}},zQe=function(i,a,f){const w=i.append("g");Eqt(w,a),a.name&&Bbt(f)(a.name,w,a.x,a.y+(a.textMaxHeight||0)/2,a.width,0,{class:"text"},f),w.lower()},qQe=function(i){return i.append("g")},HQe=function(i,a,f,g,w){const v=_9(),b=a.anchored;v.x=a.startx,v.y=a.starty,v.class="activation"+w%3,v.width=a.stopx-a.startx,v.height=f-a.starty,Fbt(b,v)},VQe=function(i,a,f,g){const{boxMargin:w,boxTextMargin:v,labelBoxHeight:b,labelBoxWidth:E,messageFontFamily:S,messageFontSize:_,messageFontWeight:M}=g,F=i.append("g"),R=function(Y,nt,ot,ft){return F.append("line").attr("x1",Y).attr("y1",nt).attr("x2",ot).attr("y2",ft).attr("class","loopLine")};R(a.startx,a.starty,a.stopx,a.starty),R(a.stopx,a.starty,a.stopx,a.stopy),R(a.startx,a.stopy,a.stopx,a.stopy),R(a.startx,a.starty,a.startx,a.stopy),a.sections!==void 0&&a.sections.forEach(function(Y){R(a.startx,Y.y,a.stopx,Y.y).style("stroke-dasharray","3, 3")});let B=tpt();B.text=f,B.x=a.startx,B.y=a.starty,B.fontFamily=S,B.fontSize=_,B.fontWeight=M,B.anchor="middle",B.valign="middle",B.tspan=!1,B.width=E||50,B.height=b||20,B.textMargin=v,B.class="labelText",xqt(F,B),B=Tqt(),B.text=a.title,B.x=a.startx+E/2+(a.stopx-a.startx)/2,B.y=a.starty+w+v,B.anchor="middle",B.valign="middle",B.textMargin=v,B.class="loopText",B.fontFamily=S,B.fontSize=_,B.fontWeight=M,B.wrap=!0;let z=DD(F,B);return a.sectionTitles!==void 0&&a.sectionTitles.forEach(function(Y,nt){if(Y.message){B.text=Y.message,B.x=a.startx+(a.stopx-a.startx)/2,B.y=a.sections[nt].y+w+v,B.class="loopText",B.anchor="middle",B.valign="middle",B.tspan=!1,B.fontFamily=S,B.fontSize=_,B.fontWeight=M,B.wrap=a.wrap,z=DD(F,B);let ot=Math.round(z.map(ft=>(ft._groups||ft)[0][0].getBBox().height).reduce((ft,wt)=>ft+wt));a.sections[nt].height+=ot-(w+v)}}),a.height=Math.round(a.stopy-a.starty),F},Eqt=function(i,a){sRt(i,a)},UQe=function(i){i.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},GQe=function(i){i.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},KQe=function(i){i.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},WQe=function(i){i.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},YQe=function(i){i.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},XQe=function(i){i.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},QQe=function(i){i.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},Tqt=function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},JQe=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},Bbt=function(){function i(w,v,b,E,S,_,M){const F=v.append("text").attr("x",b+S/2).attr("y",E+_/2+5).style("text-anchor","middle").text(w);g(F,M)}function a(w,v,b,E,S,_,M,F){const{actorFontSize:R,actorFontFamily:B,actorFontWeight:z}=F,[Y,nt]=k9(R),ot=w.split(ei.lineBreakRegex);for(let ft=0;fti.height||0))+(this.loops.length===0?0:this.loops.map(i=>i.height||0).reduce((i,a)=>i+a))+(this.messages.length===0?0:this.messages.map(i=>i.height||0).reduce((i,a)=>i+a))+(this.notes.length===0?0:this.notes.map(i=>i.height||0).reduce((i,a)=>i+a))},clear:function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},addBox:function(i){this.boxes.push(i)},addActor:function(i){this.actors.push(i)},addLoop:function(i){this.loops.push(i)},addMessage:function(i){this.messages.push(i)},addNote:function(i){this.notes.push(i)},lastActor:function(){return this.actors[this.actors.length-1]},lastLoop:function(){return this.loops[this.loops.length-1]},lastMessage:function(){return this.messages[this.messages.length-1]},lastNote:function(){return this.notes[this.notes.length-1]},actors:[],boxes:[],loops:[],messages:[],notes:[]},init:function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,Sqt(Re())},updateVal:function(i,a,f,g){i[a]===void 0?i[a]=f:i[a]=g(f,i[a])},updateBounds:function(i,a,f,g){const w=this;let v=0;function b(E){return function(_){v++;const M=w.sequenceItems.length-v+1;w.updateVal(_,"starty",a-M*bn.boxMargin,Math.min),w.updateVal(_,"stopy",g+M*bn.boxMargin,Math.max),w.updateVal(Wr.data,"startx",i-M*bn.boxMargin,Math.min),w.updateVal(Wr.data,"stopx",f+M*bn.boxMargin,Math.max),E!=="activation"&&(w.updateVal(_,"startx",i-M*bn.boxMargin,Math.min),w.updateVal(_,"stopx",f+M*bn.boxMargin,Math.max),w.updateVal(Wr.data,"starty",a-M*bn.boxMargin,Math.min),w.updateVal(Wr.data,"stopy",g+M*bn.boxMargin,Math.max))}}this.sequenceItems.forEach(b()),this.activations.forEach(b("activation"))},insert:function(i,a,f,g){const w=ei.getMin(i,f),v=ei.getMax(i,f),b=ei.getMin(a,g),E=ei.getMax(a,g);this.updateVal(Wr.data,"startx",w,Math.min),this.updateVal(Wr.data,"starty",b,Math.min),this.updateVal(Wr.data,"stopx",v,Math.max),this.updateVal(Wr.data,"stopy",E,Math.max),this.updateBounds(w,b,v,E)},newActivation:function(i,a,f){const g=f[i.from.actor],w=bX(i.from.actor).length||0,v=g.x+g.width/2+(w-1)*bn.activationWidth/2;this.activations.push({startx:v,starty:this.verticalPos+2,stopx:v+bn.activationWidth,stopy:void 0,actor:i.from.actor,anchored:_f.anchorElement(a)})},endActivation:function(i){const a=this.activations.map(function(f){return f.actor}).lastIndexOf(i.from.actor);return this.activations.splice(a,1)[0]},createLoop:function(i={message:void 0,wrap:!1,width:void 0},a){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:i.message,wrap:i.wrap,width:i.width,height:0,fill:a}},newLoop:function(i={message:void 0,wrap:!1,width:void 0},a){this.sequenceItems.push(this.createLoop(i,a))},endLoop:function(){return this.sequenceItems.pop()},isLoopOverlap:function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},addSectionToLoop:function(i){const a=this.sequenceItems.pop();a.sections=a.sections||[],a.sectionTitles=a.sectionTitles||[],a.sections.push({y:Wr.getVerticalPos(),height:0}),a.sectionTitles.push(i),this.sequenceItems.push(a)},saveVerticalPos:function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},resetVerticalPos:function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},bumpVerticalPos:function(i){this.verticalPos=this.verticalPos+i,this.data.stopy=ei.getMax(this.data.stopy,this.verticalPos)},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return{bounds:this.data,models:this.models}}},tJe=function(i,a){Wr.bumpVerticalPos(bn.boxMargin),a.height=bn.boxMargin,a.starty=Wr.getVerticalPos();const f=_9();f.x=a.startx,f.y=a.starty,f.width=a.width||bn.width,f.class="note";const g=i.append("g"),w=_f.drawRect(g,f),v=tpt();v.x=a.startx,v.y=a.starty,v.width=f.width,v.dy="1em",v.text=a.message,v.class="noteText",v.fontFamily=bn.noteFontFamily,v.fontSize=bn.noteFontSize,v.fontWeight=bn.noteFontWeight,v.anchor=bn.noteAlign,v.textMargin=bn.noteMargin,v.valign="center";const b=DD(g,v),E=Math.round(b.map(S=>(S._groups||S)[0][0].getBBox().height).reduce((S,_)=>S+_));w.attr("height",E+2*bn.noteMargin),a.height+=E+2*bn.noteMargin,Wr.bumpVerticalPos(E+2*bn.noteMargin),a.stopy=a.starty+E+2*bn.noteMargin,a.stopx=a.startx+f.width,Wr.insert(a.startx,a.starty,a.stopx,a.stopy),Wr.models.addNote(a)},R9=i=>({fontFamily:i.messageFontFamily,fontSize:i.messageFontSize,fontWeight:i.messageFontWeight}),MD=i=>({fontFamily:i.noteFontFamily,fontSize:i.noteFontSize,fontWeight:i.noteFontWeight}),Rbt=i=>({fontFamily:i.actorFontFamily,fontSize:i.actorFontSize,fontWeight:i.actorFontWeight});function eJe(i,a){Wr.bumpVerticalPos(10);const{startx:f,stopx:g,message:w}=a,v=ei.splitBreaks(w).length,b=uo.calculateTextDimensions(w,R9(bn)),E=b.height/v;a.height+=E,Wr.bumpVerticalPos(E);let S,_=b.height-10;const M=b.width;if(f===g){S=Wr.getVerticalPos()+_,bn.rightAngles||(_+=bn.boxMargin,S=Wr.getVerticalPos()+_),_+=30;const F=ei.getMax(M/2,bn.width/2);Wr.insert(f-F,Wr.getVerticalPos()-10+_,g+F,Wr.getVerticalPos()+30+_)}else _+=bn.boxMargin,S=Wr.getVerticalPos()+_,Wr.insert(f,S-10,g,S);return Wr.bumpVerticalPos(_),a.height+=_,a.stopy=a.starty+a.height,Wr.insert(a.fromBounds,a.starty,a.toBounds,a.stopy),S}const nJe=function(i,a,f,g){const{startx:w,stopx:v,starty:b,message:E,type:S,sequenceIndex:_,sequenceVisible:M}=a,F=uo.calculateTextDimensions(E,R9(bn)),R=tpt();R.x=w,R.y=b+10,R.width=v-w,R.class="messageText",R.dy="1em",R.text=E,R.fontFamily=bn.messageFontFamily,R.fontSize=bn.messageFontSize,R.fontWeight=bn.messageFontWeight,R.anchor=bn.messageAlign,R.valign="center",R.textMargin=bn.wrapPadding,R.tspan=!1,DD(i,R);const B=F.width;let z;w===v?bn.rightAngles?z=i.append("path").attr("d",`M ${w},${f} H ${w+ei.getMax(bn.width/2,B/2)} V ${f+25} H ${w}`):z=i.append("path").attr("d","M "+w+","+f+" C "+(w+60)+","+(f-10)+" "+(w+60)+","+(f+30)+" "+w+","+(f+20)):(z=i.append("line"),z.attr("x1",w),z.attr("y1",f),z.attr("x2",v),z.attr("y2",f)),S===g.db.LINETYPE.DOTTED||S===g.db.LINETYPE.DOTTED_CROSS||S===g.db.LINETYPE.DOTTED_POINT||S===g.db.LINETYPE.DOTTED_OPEN?(z.style("stroke-dasharray","3, 3"),z.attr("class","messageLine1")):z.attr("class","messageLine0");let Y="";bn.arrowMarkerAbsolute&&(Y=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,Y=Y.replace(/\(/g,"\\("),Y=Y.replace(/\)/g,"\\)")),z.attr("stroke-width",2),z.attr("stroke","none"),z.style("fill","none"),(S===g.db.LINETYPE.SOLID||S===g.db.LINETYPE.DOTTED)&&z.attr("marker-end","url("+Y+"#arrowhead)"),(S===g.db.LINETYPE.SOLID_POINT||S===g.db.LINETYPE.DOTTED_POINT)&&z.attr("marker-end","url("+Y+"#filled-head)"),(S===g.db.LINETYPE.SOLID_CROSS||S===g.db.LINETYPE.DOTTED_CROSS)&&z.attr("marker-end","url("+Y+"#crosshead)"),(M||bn.showSequenceNumbers)&&(z.attr("marker-start","url("+Y+"#sequencenumber)"),i.append("text").attr("x",w).attr("y",f+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(_))},rJe=function(i,a,f,g,w,v,b){let E=0,S=0,_,M=0;for(const F of g){const R=a[F],B=R.box;_&&_!=B&&(b||Wr.models.addBox(_),S+=bn.boxMargin+_.margin),B&&B!=_&&(b||(B.x=E+S,B.y=w),S+=B.margin),R.width=R.width||bn.width,R.height=ei.getMax(R.height||bn.height,bn.height),R.margin=R.margin||bn.actorMargin,M=ei.getMax(M,R.height),f[R.name]&&(S+=R.width/2),R.x=E+S,R.starty=Wr.getVerticalPos(),Wr.insert(R.x,w,R.x+R.width,R.height),E+=R.width+S,R.box&&(R.box.width=E+B.margin-R.box.x),S=R.margin,_=R.box,Wr.models.addActor(R)}_&&!b&&Wr.models.addBox(_),Wr.bumpVerticalPos(M)},jbt=function(i,a,f,g){if(g){let w=0;Wr.bumpVerticalPos(bn.boxMargin*2);for(const v of f){const b=a[v];b.stopy||(b.stopy=Wr.getVerticalPos());const E=_f.drawActor(i,b,bn,!0);w=ei.getMax(w,E)}Wr.bumpVerticalPos(w+bn.boxMargin)}else for(const w of f){const v=a[w];_f.drawActor(i,v,bn,!1)}},Cqt=function(i,a,f,g){let w=0,v=0;for(const b of f){const E=a[b],S=oJe(E),_=_f.drawPopup(i,E,S,bn,bn.forceMenus,g);_.height>w&&(w=_.height),_.width+E.x>v&&(v=_.width+E.x)}return{maxHeight:w,maxWidth:v}},Sqt=function(i){Ld(bn,i),i.fontFamily&&(bn.actorFontFamily=bn.noteFontFamily=bn.messageFontFamily=i.fontFamily),i.fontSize&&(bn.actorFontSize=bn.noteFontSize=bn.messageFontSize=i.fontSize),i.fontWeight&&(bn.actorFontWeight=bn.noteFontWeight=bn.messageFontWeight=i.fontWeight)},bX=function(i){return Wr.activations.filter(function(a){return a.actor===i})},_qt=function(i,a){const f=a[i],g=bX(i),w=g.reduce(function(b,E){return ei.getMin(b,E.startx)},f.x+f.width/2-1),v=g.reduce(function(b,E){return ei.getMax(b,E.stopx)},f.x+f.width/2+1);return[w,v]};function d4(i,a,f,g,w){Wr.bumpVerticalPos(f);let v=g;if(a.id&&a.message&&i[a.id]){const b=i[a.id].width,E=R9(bn);a.message=uo.wrapLabel(`[${a.message}]`,b-2*bn.wrapPadding,E),a.width=b,a.wrap=!0;const S=uo.calculateTextDimensions(a.message,E),_=ei.getMax(S.height,bn.labelBoxHeight);v=g+_,Kt.debug(`${_} - ${a.message}`)}w(a),Wr.bumpVerticalPos(v)}function iJe(i,a,f,g,w,v,b){function E(_,M){_.x{xt.add(Ft.from),xt.add(Ft.to)}),z=z.filter(Ft=>xt.has(Ft))}rJe(_,M,F,z,0,Y,!1);const mt=hJe(Y,M,wt,g);_f.insertArrowHead(_),_f.insertArrowCrossHead(_),_f.insertArrowFilledHead(_),_f.insertSequenceNumber(_);function ct(xt,Ft){const Ct=Wr.endActivation(xt);Ct.starty+18>Ft&&(Ct.starty=Ft-6,Ft+=12),_f.drawActivation(_,Ct,Ft,bn,bX(xt.from.actor).length),Wr.insert(Ct.startx,Ft-10,Ct.stopx,Ft)}let rt=1,it=1;const gt=[],Q=[];Y.forEach(function(xt,Ft){let Ct,kt,Gt;switch(xt.type){case g.db.LINETYPE.NOTE:Wr.resetVerticalPos(),kt=xt.noteModel,tJe(_,kt);break;case g.db.LINETYPE.ACTIVE_START:Wr.newActivation(xt,_,M);break;case g.db.LINETYPE.ACTIVE_END:ct(xt,Wr.getVerticalPos());break;case g.db.LINETYPE.LOOP_START:d4(mt,xt,bn.boxMargin,bn.boxMargin+bn.boxTextMargin,Fe=>Wr.newLoop(Fe));break;case g.db.LINETYPE.LOOP_END:Ct=Wr.endLoop(),_f.drawLoop(_,Ct,"loop",bn),Wr.bumpVerticalPos(Ct.stopy-Wr.getVerticalPos()),Wr.models.addLoop(Ct);break;case g.db.LINETYPE.RECT_START:d4(mt,xt,bn.boxMargin,bn.boxMargin,Fe=>Wr.newLoop(void 0,Fe.message));break;case g.db.LINETYPE.RECT_END:Ct=Wr.endLoop(),Q.push(Ct),Wr.models.addLoop(Ct),Wr.bumpVerticalPos(Ct.stopy-Wr.getVerticalPos());break;case g.db.LINETYPE.OPT_START:d4(mt,xt,bn.boxMargin,bn.boxMargin+bn.boxTextMargin,Fe=>Wr.newLoop(Fe));break;case g.db.LINETYPE.OPT_END:Ct=Wr.endLoop(),_f.drawLoop(_,Ct,"opt",bn),Wr.bumpVerticalPos(Ct.stopy-Wr.getVerticalPos()),Wr.models.addLoop(Ct);break;case g.db.LINETYPE.ALT_START:d4(mt,xt,bn.boxMargin,bn.boxMargin+bn.boxTextMargin,Fe=>Wr.newLoop(Fe));break;case g.db.LINETYPE.ALT_ELSE:d4(mt,xt,bn.boxMargin+bn.boxTextMargin,bn.boxMargin,Fe=>Wr.addSectionToLoop(Fe));break;case g.db.LINETYPE.ALT_END:Ct=Wr.endLoop(),_f.drawLoop(_,Ct,"alt",bn),Wr.bumpVerticalPos(Ct.stopy-Wr.getVerticalPos()),Wr.models.addLoop(Ct);break;case g.db.LINETYPE.PAR_START:case g.db.LINETYPE.PAR_OVER_START:d4(mt,xt,bn.boxMargin,bn.boxMargin+bn.boxTextMargin,Fe=>Wr.newLoop(Fe)),Wr.saveVerticalPos();break;case g.db.LINETYPE.PAR_AND:d4(mt,xt,bn.boxMargin+bn.boxTextMargin,bn.boxMargin,Fe=>Wr.addSectionToLoop(Fe));break;case g.db.LINETYPE.PAR_END:Ct=Wr.endLoop(),_f.drawLoop(_,Ct,"par",bn),Wr.bumpVerticalPos(Ct.stopy-Wr.getVerticalPos()),Wr.models.addLoop(Ct);break;case g.db.LINETYPE.AUTONUMBER:rt=xt.message.start||rt,it=xt.message.step||it,xt.message.visible?g.db.enableSequenceNumbers():g.db.disableSequenceNumbers();break;case g.db.LINETYPE.CRITICAL_START:d4(mt,xt,bn.boxMargin,bn.boxMargin+bn.boxTextMargin,Fe=>Wr.newLoop(Fe));break;case g.db.LINETYPE.CRITICAL_OPTION:d4(mt,xt,bn.boxMargin+bn.boxTextMargin,bn.boxMargin,Fe=>Wr.addSectionToLoop(Fe));break;case g.db.LINETYPE.CRITICAL_END:Ct=Wr.endLoop(),_f.drawLoop(_,Ct,"critical",bn),Wr.bumpVerticalPos(Ct.stopy-Wr.getVerticalPos()),Wr.models.addLoop(Ct);break;case g.db.LINETYPE.BREAK_START:d4(mt,xt,bn.boxMargin,bn.boxMargin+bn.boxTextMargin,Fe=>Wr.newLoop(Fe));break;case g.db.LINETYPE.BREAK_END:Ct=Wr.endLoop(),_f.drawLoop(_,Ct,"break",bn),Wr.bumpVerticalPos(Ct.stopy-Wr.getVerticalPos()),Wr.models.addLoop(Ct);break;default:try{Gt=xt.msgModel,Gt.starty=Wr.getVerticalPos(),Gt.sequenceIndex=rt,Gt.sequenceVisible=g.db.showSequenceNumbers();const Fe=eJe(_,Gt);iJe(xt,Gt,Fe,Ft,M,F,R),gt.push({messageModel:Gt,lineStartY:Fe}),Wr.models.addMessage(Gt)}catch(Fe){Kt.error("error while drawing message",Fe)}}[g.db.LINETYPE.SOLID_OPEN,g.db.LINETYPE.DOTTED_OPEN,g.db.LINETYPE.SOLID,g.db.LINETYPE.DOTTED,g.db.LINETYPE.SOLID_CROSS,g.db.LINETYPE.DOTTED_CROSS,g.db.LINETYPE.SOLID_POINT,g.db.LINETYPE.DOTTED_POINT].includes(xt.type)&&(rt=rt+it)}),Kt.debug("createdActors",F),Kt.debug("destroyedActors",R),jbt(_,M,z,!1),gt.forEach(xt=>nJe(_,xt.messageModel,xt.lineStartY,g)),bn.mirrorActors&&jbt(_,M,z,!0),Q.forEach(xt=>_f.drawBackgroundRect(_,xt)),kqt(_,M,z,bn),Wr.models.boxes.forEach(function(xt){xt.height=Wr.getVerticalPos()-xt.y,Wr.insert(xt.x,xt.y,xt.x+xt.width,xt.height),xt.startx=xt.x,xt.starty=xt.y,xt.stopx=xt.startx+xt.width,xt.stopy=xt.starty+xt.height,xt.stroke="rgb(0,0,0, 0.5)",_f.drawBox(_,xt,bn)}),ot&&Wr.bumpVerticalPos(bn.boxMargin);const dt=Cqt(_,M,z,S),{bounds:K}=Wr.getBounds();let yt=K.stopy-K.starty;yt{const b=i[v];b.wrap&&(b.description=uo.wrapLabel(b.description,bn.width-2*bn.wrapPadding,Rbt(bn)));const E=uo.calculateTextDimensions(b.description,Rbt(bn));b.width=b.wrap?bn.width:ei.getMax(bn.width,E.width+2*bn.wrapPadding),b.height=b.wrap?ei.getMax(E.height,bn.height):bn.height,g=ei.getMax(g,b.height)});for(const v in a){const b=i[v];if(!b)continue;const E=i[b.nextActor];if(!E){const F=a[v]+bn.actorMargin-b.width/2;b.margin=ei.getMax(F,bn.actorMargin);continue}const _=a[v]+bn.actorMargin-b.width/2-E.width/2;b.margin=ei.getMax(_,bn.actorMargin)}let w=0;return f.forEach(v=>{const b=R9(bn);let E=v.actorKeys.reduce((M,F)=>M+=i[F].width+(i[F].margin||0),0);E-=2*bn.boxTextMargin,v.wrap&&(v.name=uo.wrapLabel(v.name,E-2*bn.wrapPadding,b));const S=uo.calculateTextDimensions(v.name,b);w=ei.getMax(S.height,w);const _=ei.getMax(E,S.width+2*bn.wrapPadding);if(v.margin=bn.boxTextMargin,E<_){const M=(_-E)/2;v.margin+=M}}),f.forEach(v=>v.textMaxHeight=w),ei.getMax(g,bn.height)}const uJe=function(i,a,f){const g=a[i.from].x,w=a[i.to].x,v=i.wrap&&i.message;let b=uo.calculateTextDimensions(v?uo.wrapLabel(i.message,bn.width,MD(bn)):i.message,MD(bn));const E={width:v?bn.width:ei.getMax(bn.width,b.width+2*bn.noteMargin),height:0,startx:a[i.from].x,stopx:0,starty:0,stopy:0,message:i.message};return i.placement===f.db.PLACEMENT.RIGHTOF?(E.width=v?ei.getMax(bn.width,b.width):ei.getMax(a[i.from].width/2+a[i.to].width/2,b.width+2*bn.noteMargin),E.startx=g+(a[i.from].width+bn.actorMargin)/2):i.placement===f.db.PLACEMENT.LEFTOF?(E.width=v?ei.getMax(bn.width,b.width+2*bn.noteMargin):ei.getMax(a[i.from].width/2+a[i.to].width/2,b.width+2*bn.noteMargin),E.startx=g-E.width+(a[i.from].width-bn.actorMargin)/2):i.to===i.from?(b=uo.calculateTextDimensions(v?uo.wrapLabel(i.message,ei.getMax(bn.width,a[i.from].width),MD(bn)):i.message,MD(bn)),E.width=v?ei.getMax(bn.width,a[i.from].width):ei.getMax(a[i.from].width,bn.width,b.width+2*bn.noteMargin),E.startx=g+(a[i.from].width-E.width)/2):(E.width=Math.abs(g+a[i.from].width/2-(w+a[i.to].width/2))+bn.actorMargin,E.startx=g2,F=Y=>E?-Y:Y;i.from===i.to?_=S:(i.activate&&!M&&(_+=F(bn.activationWidth/2-1)),[f.db.LINETYPE.SOLID_OPEN,f.db.LINETYPE.DOTTED_OPEN].includes(i.type)||(_+=F(3)));const R=[g,w,v,b],B=Math.abs(S-_);i.wrap&&i.message&&(i.message=uo.wrapLabel(i.message,ei.getMax(B+2*bn.wrapPadding,bn.width),R9(bn)));const z=uo.calculateTextDimensions(i.message,R9(bn));return{width:ei.getMax(i.wrap?0:z.width+2*bn.wrapPadding,B+2*bn.wrapPadding,bn.width),height:0,startx:S,stopx:_,starty:0,stopy:0,message:i.message,type:i.type,wrap:i.wrap,fromBounds:Math.min.apply(null,R),toBounds:Math.max.apply(null,R)}},hJe=function(i,a,f,g){const w={},v=[];let b,E,S;return i.forEach(function(_){switch(_.id=uo.random({length:10}),_.type){case g.db.LINETYPE.LOOP_START:case g.db.LINETYPE.ALT_START:case g.db.LINETYPE.OPT_START:case g.db.LINETYPE.PAR_START:case g.db.LINETYPE.PAR_OVER_START:case g.db.LINETYPE.CRITICAL_START:case g.db.LINETYPE.BREAK_START:v.push({id:_.id,msg:_.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case g.db.LINETYPE.ALT_ELSE:case g.db.LINETYPE.PAR_AND:case g.db.LINETYPE.CRITICAL_OPTION:_.message&&(b=v.pop(),w[b.id]=b,w[_.id]=b,v.push(b));break;case g.db.LINETYPE.LOOP_END:case g.db.LINETYPE.ALT_END:case g.db.LINETYPE.OPT_END:case g.db.LINETYPE.PAR_END:case g.db.LINETYPE.CRITICAL_END:case g.db.LINETYPE.BREAK_END:b=v.pop(),w[b.id]=b;break;case g.db.LINETYPE.ACTIVE_START:{const F=a[_.from?_.from.actor:_.to.actor],R=bX(_.from?_.from.actor:_.to.actor).length,B=F.x+F.width/2+(R-1)*bn.activationWidth/2,z={startx:B,stopx:B+bn.activationWidth,actor:_.from.actor,enabled:!0};Wr.activations.push(z)}break;case g.db.LINETYPE.ACTIVE_END:{const F=Wr.activations.map(R=>R.actor).lastIndexOf(_.from.actor);delete Wr.activations.splice(F,1)[0]}break}_.placement!==void 0?(E=uJe(_,a,g),_.noteModel=E,v.forEach(F=>{b=F,b.from=ei.getMin(b.from,E.startx),b.to=ei.getMax(b.to,E.startx+E.width),b.width=ei.getMax(b.width,Math.abs(b.from-b.to))-bn.labelBoxWidth})):(S=lJe(_,a,g),_.msgModel=S,S.startx&&S.stopx&&v.length>0&&v.forEach(F=>{if(b=F,S.startx===S.stopx){const R=a[_.from],B=a[_.to];b.from=ei.getMin(R.x-S.width/2,R.x-R.width/2,b.from),b.to=ei.getMax(B.x+S.width/2,B.x+R.width/2,b.to),b.width=ei.getMax(b.width,Math.abs(b.to-b.from))-bn.labelBoxWidth}else b.from=ei.getMin(S.startx,b.from),b.to=ei.getMax(S.stopx,b.to),b.width=ei.getMax(b.width,S.width)-bn.labelBoxWidth}))}),Wr.activations=[],Kt.debug("Loop type widths:",w),w},fJe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:lQe,db:mqt,renderer:{bounds:Wr,drawActors:jbt,drawActorsPopup:Cqt,setConf:Sqt,draw:sJe},styles:PQe,init:({wrap:i})=>{mqt.setWrap(i)}}},Symbol.toStringTag,{value:"Module"}));var $bt=function(){var i=function(za,br,An,Nn){for(An=An||{},Nn=za.length;Nn--;An[za[Nn]]=br);return An},a=[1,17],f=[1,18],g=[1,19],w=[1,39],v=[1,40],b=[1,25],E=[1,23],S=[1,24],_=[1,31],M=[1,32],F=[1,33],R=[1,34],B=[1,35],z=[1,36],Y=[1,26],nt=[1,27],ot=[1,28],ft=[1,29],wt=[1,43],mt=[1,30],ct=[1,42],rt=[1,44],it=[1,41],gt=[1,45],Q=[1,9],dt=[1,8,9],K=[1,56],yt=[1,57],V=[1,58],Ot=[1,59],It=[1,60],jt=[1,61],xt=[1,62],Ft=[1,8,9,39],Ct=[1,74],kt=[1,8,9,12,13,21,37,39,42,59,60,61,62,63,64,65,70,72],Gt=[1,8,9,12,13,19,21,37,39,42,46,59,60,61,62,63,64,65,70,72,74,80,95,97,98],Fe=[13,74,80,95,97,98],Mt=[13,64,65,74,80,95,97,98],pn=[13,59,60,61,62,63,74,80,95,97,98],Ae=[1,93],ye=[1,110],tn=[1,108],sn=[1,102],be=[1,103],Ne=[1,104],Xt=[1,105],_e=[1,106],xe=[1,107],Mn=[1,109],ce=[1,8,9,37,39,42],Br=[1,8,9,21],we=[1,8,9,78],Fi=[1,8,9,21,73,74,78,80,81,82,83,84,85],mi={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,className:17,classLiteralName:18,GENERICTYPE:19,relationStatement:20,LABEL:21,namespaceStatement:22,classStatement:23,memberStatement:24,annotationStatement:25,clickStatement:26,styleStatement:27,cssClassStatement:28,noteStatement:29,direction:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,namespaceIdentifier:36,STRUCT_START:37,classStatements:38,STRUCT_STOP:39,NAMESPACE:40,classIdentifier:41,STYLE_SEPARATOR:42,members:43,CLASS:44,ANNOTATION_START:45,ANNOTATION_END:46,MEMBER:47,SEPARATOR:48,relation:49,NOTE_FOR:50,noteText:51,NOTE:52,direction_tb:53,direction_bt:54,direction_rl:55,direction_lr:56,relationType:57,lineType:58,AGGREGATION:59,EXTENSION:60,COMPOSITION:61,DEPENDENCY:62,LOLLIPOP:63,LINE:64,DOTTED_LINE:65,CALLBACK:66,LINK:67,LINK_TARGET:68,CLICK:69,CALLBACK_NAME:70,CALLBACK_ARGS:71,HREF:72,STYLE:73,ALPHA:74,stylesOpt:75,CSSCLASS:76,style:77,COMMA:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,commentToken:86,textToken:87,graphCodeTokens:88,textNoTagsToken:89,TAGSTART:90,TAGEND:91,"==":92,"--":93,DEFAULT:94,MINUS:95,keywords:96,UNICODE_TEXT:97,BQUOTE_STR:98,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",19:"GENERICTYPE",21:"LABEL",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",37:"STRUCT_START",39:"STRUCT_STOP",40:"NAMESPACE",42:"STYLE_SEPARATOR",44:"CLASS",45:"ANNOTATION_START",46:"ANNOTATION_END",47:"MEMBER",48:"SEPARATOR",50:"NOTE_FOR",52:"NOTE",53:"direction_tb",54:"direction_bt",55:"direction_rl",56:"direction_lr",59:"AGGREGATION",60:"EXTENSION",61:"COMPOSITION",62:"DEPENDENCY",63:"LOLLIPOP",64:"LINE",65:"DOTTED_LINE",66:"CALLBACK",67:"LINK",68:"LINK_TARGET",69:"CLICK",70:"CALLBACK_NAME",71:"CALLBACK_ARGS",72:"HREF",73:"STYLE",74:"ALPHA",76:"CSSCLASS",78:"COMMA",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",88:"graphCodeTokens",90:"TAGSTART",91:"TAGEND",92:"==",93:"--",94:"DEFAULT",95:"MINUS",96:"keywords",97:"UNICODE_TEXT",98:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,2],[17,1],[17,1],[17,2],[17,2],[17,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[22,4],[22,5],[36,2],[38,1],[38,2],[38,3],[23,1],[23,3],[23,4],[23,6],[41,2],[41,3],[25,4],[43,1],[43,2],[24,1],[24,2],[24,1],[24,1],[20,3],[20,4],[20,4],[20,5],[29,3],[29,2],[30,1],[30,1],[30,1],[30,1],[49,3],[49,2],[49,2],[49,1],[57,1],[57,1],[57,1],[57,1],[57,1],[58,1],[58,1],[26,3],[26,4],[26,3],[26,4],[26,4],[26,5],[26,3],[26,4],[26,4],[26,5],[26,4],[26,5],[26,5],[26,6],[27,3],[28,3],[75,1],[75,3],[77,1],[77,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[86,1],[86,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[89,1],[89,1],[89,1],[89,1],[16,1],[16,1],[16,1],[16,1],[18,1],[51,1]],performAction:function(br,An,Nn,Bn,ke,pe,Je){var an=pe.length-1;switch(ke){case 8:this.$=pe[an-1];break;case 9:case 11:case 12:this.$=pe[an];break;case 10:case 13:this.$=pe[an-1]+pe[an];break;case 14:case 15:this.$=pe[an-1]+"~"+pe[an]+"~";break;case 16:Bn.addRelation(pe[an]);break;case 17:pe[an-1].title=Bn.cleanupLabel(pe[an]),Bn.addRelation(pe[an-1]);break;case 27:this.$=pe[an].trim(),Bn.setAccTitle(this.$);break;case 28:case 29:this.$=pe[an].trim(),Bn.setAccDescription(this.$);break;case 30:Bn.addClassesToNamespace(pe[an-3],pe[an-1]);break;case 31:Bn.addClassesToNamespace(pe[an-4],pe[an-1]);break;case 32:this.$=pe[an],Bn.addNamespace(pe[an]);break;case 33:this.$=[pe[an]];break;case 34:this.$=[pe[an-1]];break;case 35:pe[an].unshift(pe[an-2]),this.$=pe[an];break;case 37:Bn.setCssClass(pe[an-2],pe[an]);break;case 38:Bn.addMembers(pe[an-3],pe[an-1]);break;case 39:Bn.setCssClass(pe[an-5],pe[an-3]),Bn.addMembers(pe[an-5],pe[an-1]);break;case 40:this.$=pe[an],Bn.addClass(pe[an]);break;case 41:this.$=pe[an-1],Bn.addClass(pe[an-1]),Bn.setClassLabel(pe[an-1],pe[an]);break;case 42:Bn.addAnnotation(pe[an],pe[an-2]);break;case 43:this.$=[pe[an]];break;case 44:pe[an].push(pe[an-1]),this.$=pe[an];break;case 45:break;case 46:Bn.addMember(pe[an-1],Bn.cleanupLabel(pe[an]));break;case 47:break;case 48:break;case 49:this.$={id1:pe[an-2],id2:pe[an],relation:pe[an-1],relationTitle1:"none",relationTitle2:"none"};break;case 50:this.$={id1:pe[an-3],id2:pe[an],relation:pe[an-1],relationTitle1:pe[an-2],relationTitle2:"none"};break;case 51:this.$={id1:pe[an-3],id2:pe[an],relation:pe[an-2],relationTitle1:"none",relationTitle2:pe[an-1]};break;case 52:this.$={id1:pe[an-4],id2:pe[an],relation:pe[an-2],relationTitle1:pe[an-3],relationTitle2:pe[an-1]};break;case 53:Bn.addNote(pe[an],pe[an-1]);break;case 54:Bn.addNote(pe[an]);break;case 55:Bn.setDirection("TB");break;case 56:Bn.setDirection("BT");break;case 57:Bn.setDirection("RL");break;case 58:Bn.setDirection("LR");break;case 59:this.$={type1:pe[an-2],type2:pe[an],lineType:pe[an-1]};break;case 60:this.$={type1:"none",type2:pe[an],lineType:pe[an-1]};break;case 61:this.$={type1:pe[an-1],type2:"none",lineType:pe[an]};break;case 62:this.$={type1:"none",type2:"none",lineType:pe[an]};break;case 63:this.$=Bn.relationType.AGGREGATION;break;case 64:this.$=Bn.relationType.EXTENSION;break;case 65:this.$=Bn.relationType.COMPOSITION;break;case 66:this.$=Bn.relationType.DEPENDENCY;break;case 67:this.$=Bn.relationType.LOLLIPOP;break;case 68:this.$=Bn.lineType.LINE;break;case 69:this.$=Bn.lineType.DOTTED_LINE;break;case 70:case 76:this.$=pe[an-2],Bn.setClickEvent(pe[an-1],pe[an]);break;case 71:case 77:this.$=pe[an-3],Bn.setClickEvent(pe[an-2],pe[an-1]),Bn.setTooltip(pe[an-2],pe[an]);break;case 72:this.$=pe[an-2],Bn.setLink(pe[an-1],pe[an]);break;case 73:this.$=pe[an-3],Bn.setLink(pe[an-2],pe[an-1],pe[an]);break;case 74:this.$=pe[an-3],Bn.setLink(pe[an-2],pe[an-1]),Bn.setTooltip(pe[an-2],pe[an]);break;case 75:this.$=pe[an-4],Bn.setLink(pe[an-3],pe[an-2],pe[an]),Bn.setTooltip(pe[an-3],pe[an-1]);break;case 78:this.$=pe[an-3],Bn.setClickEvent(pe[an-2],pe[an-1],pe[an]);break;case 79:this.$=pe[an-4],Bn.setClickEvent(pe[an-3],pe[an-2],pe[an-1]),Bn.setTooltip(pe[an-3],pe[an]);break;case 80:this.$=pe[an-3],Bn.setLink(pe[an-2],pe[an]);break;case 81:this.$=pe[an-4],Bn.setLink(pe[an-3],pe[an-1],pe[an]);break;case 82:this.$=pe[an-4],Bn.setLink(pe[an-3],pe[an-1]),Bn.setTooltip(pe[an-3],pe[an]);break;case 83:this.$=pe[an-5],Bn.setLink(pe[an-4],pe[an-2],pe[an]),Bn.setTooltip(pe[an-4],pe[an-1]);break;case 84:this.$=pe[an-2],Bn.setCssStyle(pe[an-1],pe[an]);break;case 85:Bn.setCssClass(pe[an-1],pe[an]);break;case 86:this.$=[pe[an]];break;case 87:pe[an-2].push(pe[an]),this.$=pe[an-2];break;case 89:this.$=pe[an-1]+pe[an];break}},table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:a,33:f,35:g,36:21,40:w,41:22,44:v,45:b,47:E,48:S,50:_,52:M,53:F,54:R,55:B,56:z,66:Y,67:nt,69:ot,73:ft,74:wt,76:mt,80:ct,95:rt,97:it,98:gt},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},i(Q,[2,5],{8:[1,46]}),{8:[1,47]},i(dt,[2,16],{21:[1,48]}),i(dt,[2,18]),i(dt,[2,19]),i(dt,[2,20]),i(dt,[2,21]),i(dt,[2,22]),i(dt,[2,23]),i(dt,[2,24]),i(dt,[2,25]),i(dt,[2,26]),{32:[1,49]},{34:[1,50]},i(dt,[2,29]),i(dt,[2,45],{49:51,57:54,58:55,13:[1,52],21:[1,53],59:K,60:yt,61:V,62:Ot,63:It,64:jt,65:xt}),{37:[1,63]},i(Ft,[2,36],{37:[1,65],42:[1,64]}),i(dt,[2,47]),i(dt,[2,48]),{16:66,74:wt,80:ct,95:rt,97:it},{16:37,17:67,18:38,74:wt,80:ct,95:rt,97:it,98:gt},{16:37,17:68,18:38,74:wt,80:ct,95:rt,97:it,98:gt},{16:37,17:69,18:38,74:wt,80:ct,95:rt,97:it,98:gt},{74:[1,70]},{13:[1,71]},{16:37,17:72,18:38,74:wt,80:ct,95:rt,97:it,98:gt},{13:Ct,51:73},i(dt,[2,55]),i(dt,[2,56]),i(dt,[2,57]),i(dt,[2,58]),i(kt,[2,11],{16:37,18:38,17:75,19:[1,76],74:wt,80:ct,95:rt,97:it,98:gt}),i(kt,[2,12],{19:[1,77]}),{15:78,16:79,74:wt,80:ct,95:rt,97:it},{16:37,17:80,18:38,74:wt,80:ct,95:rt,97:it,98:gt},i(Gt,[2,112]),i(Gt,[2,113]),i(Gt,[2,114]),i(Gt,[2,115]),i([1,8,9,12,13,19,21,37,39,42,59,60,61,62,63,64,65,70,72],[2,116]),i(Q,[2,6],{10:5,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,17:20,36:21,41:22,16:37,18:38,5:81,31:a,33:f,35:g,40:w,44:v,45:b,47:E,48:S,50:_,52:M,53:F,54:R,55:B,56:z,66:Y,67:nt,69:ot,73:ft,74:wt,76:mt,80:ct,95:rt,97:it,98:gt}),{5:82,10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:a,33:f,35:g,36:21,40:w,41:22,44:v,45:b,47:E,48:S,50:_,52:M,53:F,54:R,55:B,56:z,66:Y,67:nt,69:ot,73:ft,74:wt,76:mt,80:ct,95:rt,97:it,98:gt},i(dt,[2,17]),i(dt,[2,27]),i(dt,[2,28]),{13:[1,84],16:37,17:83,18:38,74:wt,80:ct,95:rt,97:it,98:gt},{49:85,57:54,58:55,59:K,60:yt,61:V,62:Ot,63:It,64:jt,65:xt},i(dt,[2,46]),{58:86,64:jt,65:xt},i(Fe,[2,62],{57:87,59:K,60:yt,61:V,62:Ot,63:It}),i(Mt,[2,63]),i(Mt,[2,64]),i(Mt,[2,65]),i(Mt,[2,66]),i(Mt,[2,67]),i(pn,[2,68]),i(pn,[2,69]),{8:[1,89],23:90,38:88,41:22,44:v},{16:91,74:wt,80:ct,95:rt,97:it},{43:92,47:Ae},{46:[1,94]},{13:[1,95]},{13:[1,96]},{70:[1,97],72:[1,98]},{21:ye,73:tn,74:sn,75:99,77:100,79:101,80:be,81:Ne,82:Xt,83:_e,84:xe,85:Mn},{74:[1,111]},{13:Ct,51:112},i(dt,[2,54]),i(dt,[2,117]),i(kt,[2,13]),i(kt,[2,14]),i(kt,[2,15]),{37:[2,32]},{15:113,16:79,37:[2,9],74:wt,80:ct,95:rt,97:it},i(ce,[2,40],{11:114,12:[1,115]}),i(Q,[2,7]),{9:[1,116]},i(Br,[2,49]),{16:37,17:117,18:38,74:wt,80:ct,95:rt,97:it,98:gt},{13:[1,119],16:37,17:118,18:38,74:wt,80:ct,95:rt,97:it,98:gt},i(Fe,[2,61],{57:120,59:K,60:yt,61:V,62:Ot,63:It}),i(Fe,[2,60]),{39:[1,121]},{23:90,38:122,41:22,44:v},{8:[1,123],39:[2,33]},i(Ft,[2,37],{37:[1,124]}),{39:[1,125]},{39:[2,43],43:126,47:Ae},{16:37,17:127,18:38,74:wt,80:ct,95:rt,97:it,98:gt},i(dt,[2,70],{13:[1,128]}),i(dt,[2,72],{13:[1,130],68:[1,129]}),i(dt,[2,76],{13:[1,131],71:[1,132]}),{13:[1,133]},i(dt,[2,84],{78:[1,134]}),i(we,[2,86],{79:135,21:ye,73:tn,74:sn,80:be,81:Ne,82:Xt,83:_e,84:xe,85:Mn}),i(Fi,[2,88]),i(Fi,[2,90]),i(Fi,[2,91]),i(Fi,[2,92]),i(Fi,[2,93]),i(Fi,[2,94]),i(Fi,[2,95]),i(Fi,[2,96]),i(Fi,[2,97]),i(Fi,[2,98]),i(dt,[2,85]),i(dt,[2,53]),{37:[2,10]},i(ce,[2,41]),{13:[1,136]},{1:[2,4]},i(Br,[2,51]),i(Br,[2,50]),{16:37,17:137,18:38,74:wt,80:ct,95:rt,97:it,98:gt},i(Fe,[2,59]),i(dt,[2,30]),{39:[1,138]},{23:90,38:139,39:[2,34],41:22,44:v},{43:140,47:Ae},i(Ft,[2,38]),{39:[2,44]},i(dt,[2,42]),i(dt,[2,71]),i(dt,[2,73]),i(dt,[2,74],{68:[1,141]}),i(dt,[2,77]),i(dt,[2,78],{13:[1,142]}),i(dt,[2,80],{13:[1,144],68:[1,143]}),{21:ye,73:tn,74:sn,77:145,79:101,80:be,81:Ne,82:Xt,83:_e,84:xe,85:Mn},i(Fi,[2,89]),{14:[1,146]},i(Br,[2,52]),i(dt,[2,31]),{39:[2,35]},{39:[1,147]},i(dt,[2,75]),i(dt,[2,79]),i(dt,[2,81]),i(dt,[2,82],{68:[1,148]}),i(we,[2,87],{79:135,21:ye,73:tn,74:sn,80:be,81:Ne,82:Xt,83:_e,84:xe,85:Mn}),i(ce,[2,8]),i(Ft,[2,39]),i(dt,[2,83])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],78:[2,32],113:[2,10],116:[2,4],126:[2,44],139:[2,35]},parseError:function(br,An){if(An.recoverable)this.trace(br);else{var Nn=new Error(br);throw Nn.hash=An,Nn}},parse:function(br){var An=this,Nn=[0],Bn=[],ke=[null],pe=[],Je=this.table,an="",xn=0,qa=0,xo=2,ko=1,va=pe.slice.call(arguments,1),Ha=Object.create(this.lexer),ds={yy:{}};for(var Fu in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Fu)&&(ds.yy[Fu]=this.yy[Fu]);Ha.setInput(br,ds.yy),ds.yy.lexer=Ha,ds.yy.parser=this,typeof Ha.yylloc>"u"&&(Ha.yylloc={});var Zs=Ha.yylloc;pe.push(Zs);var d1=Ha.options&&Ha.options.ranges;typeof ds.yy.parseError=="function"?this.parseError=ds.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function I2(){var ea;return ea=Bn.pop()||Ha.lex()||ko,typeof ea!="number"&&(ea instanceof Array&&(Bn=ea,ea=Bn.pop()),ea=An.symbols_[ea]||ea),ea}for(var ll,Ic,wc,Ea,gu={},ta,fo,mc,ca;;){if(Ic=Nn[Nn.length-1],this.defaultActions[Ic]?wc=this.defaultActions[Ic]:((ll===null||typeof ll>"u")&&(ll=I2()),wc=Je[Ic]&&Je[Ic][ll]),typeof wc>"u"||!wc.length||!wc[0]){var ya="";ca=[];for(ta in Je[Ic])this.terminals_[ta]&&ta>xo&&ca.push("'"+this.terminals_[ta]+"'");Ha.showPosition?ya="Parse error on line "+(xn+1)+`: +`+Ha.showPosition()+` +Expecting `+ca.join(", ")+", got '"+(this.terminals_[ll]||ll)+"'":ya="Parse error on line "+(xn+1)+": Unexpected "+(ll==ko?"end of input":"'"+(this.terminals_[ll]||ll)+"'"),this.parseError(ya,{text:Ha.match,token:this.terminals_[ll]||ll,line:Ha.yylineno,loc:Zs,expected:ca})}if(wc[0]instanceof Array&&wc.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Ic+", token: "+ll);switch(wc[0]){case 1:Nn.push(ll),ke.push(Ha.yytext),pe.push(Ha.yylloc),Nn.push(wc[1]),ll=null,qa=Ha.yyleng,an=Ha.yytext,xn=Ha.yylineno,Zs=Ha.yylloc;break;case 2:if(fo=this.productions_[wc[1]][1],gu.$=ke[ke.length-fo],gu._$={first_line:pe[pe.length-(fo||1)].first_line,last_line:pe[pe.length-1].last_line,first_column:pe[pe.length-(fo||1)].first_column,last_column:pe[pe.length-1].last_column},d1&&(gu._$.range=[pe[pe.length-(fo||1)].range[0],pe[pe.length-1].range[1]]),Ea=this.performAction.apply(gu,[an,qa,xn,ds.yy,wc[1],ke,pe].concat(va)),typeof Ea<"u")return Ea;fo&&(Nn=Nn.slice(0,-1*fo*2),ke=ke.slice(0,-1*fo),pe=pe.slice(0,-1*fo)),Nn.push(this.productions_[wc[1]][0]),ke.push(gu.$),pe.push(gu._$),mc=Je[Nn[Nn.length-2]][Nn[Nn.length-1]],Nn.push(mc);break;case 3:return!0}}return!0}},ga=function(){var za={EOF:1,parseError:function(An,Nn){if(this.yy.parser)this.yy.parser.parseError(An,Nn);else throw new Error(An)},setInput:function(br,An){return this.yy=An||this.yy||{},this._input=br,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var br=this._input[0];this.yytext+=br,this.yyleng++,this.offset++,this.match+=br,this.matched+=br;var An=br.match(/(?:\r\n?|\n).*/g);return An?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),br},unput:function(br){var An=br.length,Nn=br.split(/(?:\r\n?|\n)/g);this._input=br+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-An),this.offset-=An;var Bn=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Nn.length-1&&(this.yylineno-=Nn.length-1);var ke=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Nn?(Nn.length===Bn.length?this.yylloc.first_column:0)+Bn[Bn.length-Nn.length].length-Nn[0].length:this.yylloc.first_column-An},this.options.ranges&&(this.yylloc.range=[ke[0],ke[0]+this.yyleng-An]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(br){this.unput(this.match.slice(br))},pastInput:function(){var br=this.matched.substr(0,this.matched.length-this.match.length);return(br.length>20?"...":"")+br.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var br=this.match;return br.length<20&&(br+=this._input.substr(0,20-br.length)),(br.substr(0,20)+(br.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var br=this.pastInput(),An=new Array(br.length+1).join("-");return br+this.upcomingInput()+` +`+An+"^"},test_match:function(br,An){var Nn,Bn,ke;if(this.options.backtrack_lexer&&(ke={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ke.yylloc.range=this.yylloc.range.slice(0))),Bn=br[0].match(/(?:\r\n?|\n).*/g),Bn&&(this.yylineno+=Bn.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Bn?Bn[Bn.length-1].length-Bn[Bn.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+br[0].length},this.yytext+=br[0],this.match+=br[0],this.matches=br,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(br[0].length),this.matched+=br[0],Nn=this.performAction.call(this,this.yy,this,An,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Nn)return Nn;if(this._backtrack){for(var pe in ke)this[pe]=ke[pe];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var br,An,Nn,Bn;this._more||(this.yytext="",this.match="");for(var ke=this._currentRules(),pe=0;peAn[0].length)){if(An=Nn,Bn=pe,this.options.backtrack_lexer){if(br=this.test_match(Nn,ke[pe]),br!==!1)return br;if(this._backtrack){An=!1;continue}else return!1}else if(!this.options.flex)break}return An?(br=this.test_match(An,ke[Bn]),br!==!1?br:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var An=this.next();return An||this.lex()},begin:function(An){this.conditionStack.push(An)},popState:function(){var An=this.conditionStack.length-1;return An>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(An){return An=this.conditionStack.length-1-Math.abs(An||0),An>=0?this.conditionStack[An]:"INITIAL"},pushState:function(An){this.begin(An)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(An,Nn,Bn,ke){switch(Bn){case 0:return 53;case 1:return 54;case 2:return 55;case 3:return 56;case 4:break;case 5:break;case 6:return this.begin("acc_title"),31;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),33;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 8;case 14:break;case 15:return 7;case 16:return 7;case 17:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 19:this.popState();break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 70;case 22:this.popState();break;case 23:return 71;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return 73;case 28:return this.begin("namespace"),40;case 29:return this.popState(),8;case 30:break;case 31:return this.begin("namespace-body"),37;case 32:return this.popState(),39;case 33:return"EOF_IN_STRUCT";case 34:return 8;case 35:break;case 36:return"EDGE_STATE";case 37:return this.begin("class"),44;case 38:return this.popState(),8;case 39:break;case 40:return this.popState(),this.popState(),39;case 41:return this.begin("class-body"),37;case 42:return this.popState(),39;case 43:return"EOF_IN_STRUCT";case 44:return"EDGE_STATE";case 45:return"OPEN_IN_STRUCT";case 46:break;case 47:return"MEMBER";case 48:return 76;case 49:return 66;case 50:return 67;case 51:return 69;case 52:return 50;case 53:return 52;case 54:return 45;case 55:return 46;case 56:return 72;case 57:this.popState();break;case 58:return"GENERICTYPE";case 59:this.begin("generic");break;case 60:this.popState();break;case 61:return"BQUOTE_STR";case 62:this.begin("bqstring");break;case 63:return 68;case 64:return 68;case 65:return 68;case 66:return 68;case 67:return 60;case 68:return 60;case 69:return 62;case 70:return 62;case 71:return 61;case 72:return 59;case 73:return 63;case 74:return 64;case 75:return 65;case 76:return 21;case 77:return 42;case 78:return 95;case 79:return"DOT";case 80:return"PLUS";case 81:return 81;case 82:return 78;case 83:return 84;case 84:return 84;case 85:return 85;case 86:return"EQUALS";case 87:return"EQUALS";case 88:return 74;case 89:return 12;case 90:return 14;case 91:return"PUNCTUATION";case 92:return 80;case 93:return 97;case 94:return 83;case 95:return 83;case 96:return 9}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,32,33,34,35,36,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},namespace:{rules:[26,28,29,30,31,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},"class-body":{rules:[26,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},class:{rules:[26,38,39,40,41,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr:{rules:[9,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_title:{rules:[7,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_args:{rules:[22,23,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_name:{rules:[19,20,21,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},href:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},struct:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},generic:{rules:[26,48,49,50,51,52,53,54,55,56,57,58,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},bqstring:{rules:[26,48,49,50,51,52,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},string:{rules:[24,25,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96],inclusive:!0}}};return za}();mi.lexer=ga;function Ss(){this.yy={}}return Ss.prototype=mi,mi.Parser=Ss,new Ss}();$bt.parser=$bt;const Aqt=$bt,Lqt=["#","+","~","-",""];class Dqt{constructor(a,f){this.memberType=f,this.visibility="",this.classifier="";const g=Ef(a,Re());this.parseMember(g)}getDisplayDetails(){let a=this.visibility+kF(this.id);this.memberType==="method"&&(a+=`(${kF(this.parameters.trim())})`,this.returnType&&(a+=" : "+kF(this.returnType))),a=a.trim();const f=this.parseClassifier();return{displayText:a,cssStyle:f}}parseMember(a){let f="";if(this.memberType==="method"){const g=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/,w=a.match(g);if(w){const v=w[1]?w[1].trim():"";if(Lqt.includes(v)&&(this.visibility=v),this.id=w[2].trim(),this.parameters=w[3]?w[3].trim():"",f=w[4]?w[4].trim():"",this.returnType=w[5]?w[5].trim():"",f===""){const b=this.returnType.substring(this.returnType.length-1);b.match(/[$*]/)&&(f=b,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{const g=a.length,w=a.substring(0,1),v=a.substring(g-1);Lqt.includes(w)&&(this.visibility=w),v.match(/[$*]/)&&(f=v),this.id=a.substring(this.visibility===""?0:1,f===""?g:g-1)}this.classifier=f}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}const wX="classId-";let zbt=[],Jl={},mX=[],Mqt=0,A8={},qbt=0,mB=[];const j9=i=>ei.sanitizeText(i,Re()),$9=function(i){const a=ei.sanitizeText(i,Re());let f="",g=a;if(a.indexOf("~")>0){const w=a.split("~");g=j9(w[0]),f=j9(w[1])}return{className:g,type:f}},dJe=function(i,a){const f=ei.sanitizeText(i,Re());a&&(a=j9(a));const{className:g}=$9(f);Jl[g].label=a},vX=function(i){const a=ei.sanitizeText(i,Re()),{className:f,type:g}=$9(a);if(Object.hasOwn(Jl,f))return;const w=ei.sanitizeText(f,Re());Jl[w]={id:w,type:g,label:w,cssClasses:[],methods:[],members:[],annotations:[],styles:[],domId:wX+w+"-"+Mqt},Mqt++},Iqt=function(i){const a=ei.sanitizeText(i,Re());if(a in Jl)return Jl[a].domId;throw new Error("Class not found: "+a)},gJe=function(){zbt=[],Jl={},mX=[],mB=[],mB.push(Nqt),A8={},qbt=0,ag()},pJe=function(i){return Jl[i]},bJe=function(){return Jl},wJe=function(){return zbt},mJe=function(){return mX},vJe=function(i){Kt.debug("Adding relation: "+JSON.stringify(i)),vX(i.id1),vX(i.id2),i.id1=$9(i.id1).className,i.id2=$9(i.id2).className,i.relationTitle1=ei.sanitizeText(i.relationTitle1.trim(),Re()),i.relationTitle2=ei.sanitizeText(i.relationTitle2.trim(),Re()),zbt.push(i)},yJe=function(i,a){const f=$9(i).className;Jl[f].annotations.push(a)},Oqt=function(i,a){vX(i);const f=$9(i).className,g=Jl[f];if(typeof a=="string"){const w=a.trim();w.startsWith("<<")&&w.endsWith(">>")?g.annotations.push(j9(w.substring(2,w.length-2))):w.indexOf(")")>0?g.methods.push(new Dqt(w,"method")):w&&g.members.push(new Dqt(w,"attribute"))}},xJe=function(i,a){Array.isArray(a)&&(a.reverse(),a.forEach(f=>Oqt(i,f)))},kJe=function(i,a){const f={id:`note${mX.length}`,class:a,text:i};mX.push(f)},EJe=function(i){return i.startsWith(":")&&(i=i.substring(1)),j9(i.trim())},Hbt=function(i,a){i.split(",").forEach(function(f){let g=f;f[0].match(/\d/)&&(g=wX+g),Jl[g]!==void 0&&Jl[g].cssClasses.push(a)})},TJe=function(i,a){i.split(",").forEach(function(f){a!==void 0&&(Jl[f].tooltip=j9(a))})},CJe=function(i,a){return a?A8[a].classes[i].tooltip:Jl[i].tooltip},SJe=function(i,a,f){const g=Re();i.split(",").forEach(function(w){let v=w;w[0].match(/\d/)&&(v=wX+v),Jl[v]!==void 0&&(Jl[v].link=uo.formatUrl(a,g),g.securityLevel==="sandbox"?Jl[v].linkTarget="_top":typeof f=="string"?Jl[v].linkTarget=j9(f):Jl[v].linkTarget="_blank")}),Hbt(i,"clickable")},_Je=function(i,a,f){i.split(",").forEach(function(g){AJe(g,a,f),Jl[g].haveCallback=!0}),Hbt(i,"clickable")},AJe=function(i,a,f){const g=ei.sanitizeText(i,Re());if(Re().securityLevel!=="loose"||a===void 0)return;const v=g;if(Jl[v]!==void 0){const b=Iqt(v);let E=[];if(typeof f=="string"){E=f.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let S=0;S")),w.classed("hover",!0)}).on("mouseout",function(){a.transition().duration(500).style("opacity",0),Tr(this).classed("hover",!1)})};mB.push(Nqt);let Pqt="TB";const yX={setAccTitle:og,getAccTitle:Xg,getAccDescription:Jg,setAccDescription:Qg,getConfig:()=>Re().class,addClass:vX,bindFunctions:LJe,clear:gJe,getClass:pJe,getClasses:bJe,getNotes:mJe,addAnnotation:yJe,addNote:kJe,getRelations:wJe,addRelation:vJe,getDirection:()=>Pqt,setDirection:i=>{Pqt=i},addMember:Oqt,addMembers:xJe,cleanupLabel:EJe,lineType:DJe,relationType:MJe,setClickEvent:_Je,setCssClass:Hbt,setLink:SJe,getTooltip:CJe,setTooltip:TJe,lookUpDomId:Iqt,setDiagramTitle:S2,getDiagramTitle:Zg,setClassLabel:dJe,addNamespace:function(i){A8[i]===void 0&&(A8[i]={id:i,classes:{},children:{},domId:wX+i+"-"+qbt},qbt++)},addClassesToNamespace:function(i,a){if(A8[i]!==void 0)for(const f of a){const{className:g}=$9(f);Jl[g].parent=i,A8[i].classes[g]=Jl[g]}},getNamespace:function(i){return A8[i]},getNamespaces:function(){return A8},setCssStyle:function(i,a){const f=Jl[i];if(!(!a||!f))for(const g of a)g.includes(",")?f.styles.push(...g.split(",")):f.styles.push(g)}},Fqt=i=>`g.classGroup text { + fill: ${i.nodeBorder||i.classText}; + stroke: none; + font-family: ${i.fontFamily}; + font-size: 10px; + + .title { + font-weight: bolder; + } + +} + +.nodeLabel, .edgeLabel { + color: ${i.classText}; +} +.edgeLabel .label rect { + fill: ${i.mainBkg}; +} +.label text { + fill: ${i.classText}; +} +.edgeLabel .label span { + background: ${i.mainBkg}; +} + +.classTitle { + font-weight: bolder; +} +.node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${i.mainBkg}; + stroke: ${i.nodeBorder}; + stroke-width: 1px; + } + + +.divider { + stroke: ${i.nodeBorder}; + stroke-width: 1; +} + +g.clickable { + cursor: pointer; +} + +g.classGroup rect { + fill: ${i.mainBkg}; + stroke: ${i.nodeBorder}; +} + +g.classGroup line { + stroke: ${i.nodeBorder}; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: ${i.mainBkg}; + opacity: 0.5; +} + +.classLabel .label { + fill: ${i.nodeBorder}; + font-size: 10px; +} + +.relation { + stroke: ${i.lineColor}; + stroke-width: 1; + fill: none; +} + +.dashed-line{ + stroke-dasharray: 3; +} + +.dotted-line{ + stroke-dasharray: 1 2; +} + +#compositionStart, .composition { + fill: ${i.lineColor} !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; +} + +#compositionEnd, .composition { + fill: ${i.lineColor} !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${i.lineColor} !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${i.lineColor} !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; +} + +#extensionStart, .extension { + fill: transparent !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; +} + +#extensionEnd, .extension { + fill: transparent !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; +} + +#aggregationStart, .aggregation { + fill: transparent !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; +} + +#aggregationEnd, .aggregation { + fill: transparent !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; +} + +#lollipopStart, .lollipop { + fill: ${i.mainBkg} !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; +} + +#lollipopEnd, .lollipop { + fill: ${i.mainBkg} !important; + stroke: ${i.lineColor} !important; + stroke-width: 1; +} + +.edgeTerminals { + font-size: 11px; + line-height: initial; +} + +.classTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${i.textColor}; +} +`;let Bqt=0;const IJe=function(i,a,f,g,w){const v=function(ft){switch(ft){case w.db.relationType.AGGREGATION:return"aggregation";case w.db.relationType.EXTENSION:return"extension";case w.db.relationType.COMPOSITION:return"composition";case w.db.relationType.DEPENDENCY:return"dependency";case w.db.relationType.LOLLIPOP:return"lollipop"}};a.points=a.points.filter(ft=>!Number.isNaN(ft.y));const b=a.points,E=Ax().x(function(ft){return ft.x}).y(function(ft){return ft.y}).curve(wF),S=i.append("path").attr("d",E(b)).attr("id","edge"+Bqt).attr("class","relation");let _="";g.arrowMarkerAbsolute&&(_=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,_=_.replace(/\(/g,"\\("),_=_.replace(/\)/g,"\\)")),f.relation.lineType==1&&S.attr("class","relation dashed-line"),f.relation.lineType==10&&S.attr("class","relation dotted-line"),f.relation.type1!=="none"&&S.attr("marker-start","url("+_+"#"+v(f.relation.type1)+"Start)"),f.relation.type2!=="none"&&S.attr("marker-end","url("+_+"#"+v(f.relation.type2)+"End)");let M,F;const R=a.points.length;let B=uo.calcLabelPosition(a.points);M=B.x,F=B.y;let z,Y,nt,ot;if(R%2!==0&&R>1){let ft=uo.calcCardinalityPosition(f.relation.type1!=="none",a.points,a.points[0]),wt=uo.calcCardinalityPosition(f.relation.type2!=="none",a.points,a.points[R-1]);Kt.debug("cardinality_1_point "+JSON.stringify(ft)),Kt.debug("cardinality_2_point "+JSON.stringify(wt)),z=ft.x,Y=ft.y,nt=wt.x,ot=wt.y}if(f.title!==void 0){const ft=i.append("g").attr("class","classLabel"),wt=ft.append("text").attr("class","label").attr("x",M).attr("y",F).attr("fill","red").attr("text-anchor","middle").text(f.title);window.label=wt;const mt=wt.node().getBBox();ft.insert("rect",":first-child").attr("class","box").attr("x",mt.x-g.padding/2).attr("y",mt.y-g.padding/2).attr("width",mt.width+g.padding).attr("height",mt.height+g.padding)}Kt.info("Rendering relation "+JSON.stringify(f)),f.relationTitle1!==void 0&&f.relationTitle1!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",z).attr("y",Y).attr("fill","black").attr("font-size","6").text(f.relationTitle1),f.relationTitle2!==void 0&&f.relationTitle2!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",nt).attr("y",ot).attr("fill","black").attr("font-size","6").text(f.relationTitle2),Bqt++},OJe=function(i,a,f,g){Kt.debug("Rendering class ",a,f);const w=a.id,v={id:w,label:a.id,width:0,height:0},b=i.append("g").attr("id",g.db.lookUpDomId(w)).attr("class","classGroup");let E;a.link?E=b.append("svg:a").attr("xlink:href",a.link).attr("target",a.linkTarget).append("text").attr("y",f.textHeight+f.padding).attr("x",0):E=b.append("text").attr("y",f.textHeight+f.padding).attr("x",0);let S=!0;a.annotations.forEach(function(wt){const mt=E.append("tspan").text("«"+wt+"»");S||mt.attr("dy",f.textHeight),S=!1});let _=Rqt(a);const M=E.append("tspan").text(_).attr("class","title");S||M.attr("dy",f.textHeight);const F=E.node().getBBox().height;let R,B,z;if(a.members.length>0){R=b.append("line").attr("x1",0).attr("y1",f.padding+F+f.dividerMargin/2).attr("y2",f.padding+F+f.dividerMargin/2);const wt=b.append("text").attr("x",f.padding).attr("y",F+f.dividerMargin+f.textHeight).attr("fill","white").attr("class","classText");S=!0,a.members.forEach(function(mt){jqt(wt,mt,S,f),S=!1}),B=wt.node().getBBox()}if(a.methods.length>0){z=b.append("line").attr("x1",0).attr("y1",f.padding+F+f.dividerMargin+B.height).attr("y2",f.padding+F+f.dividerMargin+B.height);const wt=b.append("text").attr("x",f.padding).attr("y",F+2*f.dividerMargin+B.height+f.textHeight).attr("fill","white").attr("class","classText");S=!0,a.methods.forEach(function(mt){jqt(wt,mt,S,f),S=!1})}const Y=b.node().getBBox();var nt=" ";a.cssClasses.length>0&&(nt=nt+a.cssClasses.join(" "));const ft=b.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",Y.width+2*f.padding).attr("height",Y.height+f.padding+.5*f.dividerMargin).attr("class",nt).node().getBBox().width;return E.node().childNodes.forEach(function(wt){wt.setAttribute("x",(ft-wt.getBBox().width)/2)}),a.tooltip&&E.insert("title").text(a.tooltip),R&&R.attr("x2",ft),z&&z.attr("x2",ft),v.width=ft,v.height=Y.height+f.padding+.5*f.dividerMargin,v},Rqt=function(i){let a=i.id;return i.type&&(a+="<"+kF(i.type)+">"),a},NJe=function(i,a,f,g){Kt.debug("Rendering note ",a,f);const w=a.id,v={id:w,text:a.text,width:0,height:0},b=i.append("g").attr("id",w).attr("class","classGroup");let E=b.append("text").attr("y",f.textHeight+f.padding).attr("x",0);const S=JSON.parse(`"${a.text}"`).split(` +`);S.forEach(function(R){Kt.debug(`Adding line: ${R}`),E.append("tspan").text(R).attr("class","title").attr("dy",f.textHeight)});const _=b.node().getBBox(),F=b.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",_.width+2*f.padding).attr("height",_.height+S.length*f.textHeight+f.padding+.5*f.dividerMargin).node().getBBox().width;return E.node().childNodes.forEach(function(R){R.setAttribute("x",(F-R.getBBox().width)/2)}),v.width=F,v.height=_.height+S.length*f.textHeight+f.padding+.5*f.dividerMargin,v},jqt=function(i,a,f,g){const{displayText:w,cssStyle:v}=a.getDisplayDetails(),b=i.append("tspan").attr("x",g.padding).text(w);v!==""&&b.attr("style",a.cssStyle),f||b.attr("dy",g.textHeight)},Vbt={getClassTitleString:Rqt,drawClass:OJe,drawEdge:IJe,drawNote:NJe};let xX={};const kX=20,vB=function(i){const a=Object.entries(xX).find(f=>f[1].label===i);if(a)return a[0]},PJe=function(i){i.append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),i.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),i.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},FJe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:Aqt,db:yX,renderer:{draw:function(i,a,f,g){const w=Re().class;xX={},Kt.info("Rendering diagram "+i);const v=Re().securityLevel;let b;v==="sandbox"&&(b=Tr("#i"+a));const E=Tr(v==="sandbox"?b.nodes()[0].contentDocument.body:"body"),S=E.select(`[id='${a}']`);PJe(S);const _=new l1({multigraph:!0});_.setGraph({isMultiGraph:!0}),_.setDefaultEdgeLabel(function(){return{}});const M=g.db.getClasses(),F=Object.keys(M);for(const ft of F){const wt=M[ft],mt=Vbt.drawClass(S,wt,w,g);xX[mt.id]=mt,_.setNode(mt.id,mt),Kt.info("Org height: "+mt.height)}g.db.getRelations().forEach(function(ft){Kt.info("tjoho"+vB(ft.id1)+vB(ft.id2)+JSON.stringify(ft)),_.setEdge(vB(ft.id1),vB(ft.id2),{relation:ft},ft.title||"DEFAULT")}),g.db.getNotes().forEach(function(ft){Kt.debug(`Adding note: ${JSON.stringify(ft)}`);const wt=Vbt.drawNote(S,ft,w,g);xX[wt.id]=wt,_.setNode(wt.id,wt),ft.class&&ft.class in M&&_.setEdge(ft.id,vB(ft.class),{relation:{id1:ft.id,id2:ft.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")}),kD(_),_.nodes().forEach(function(ft){ft!==void 0&&_.node(ft)!==void 0&&(Kt.debug("Node "+ft+": "+JSON.stringify(_.node(ft))),E.select("#"+(g.db.lookUpDomId(ft)||ft)).attr("transform","translate("+(_.node(ft).x-_.node(ft).width/2)+","+(_.node(ft).y-_.node(ft).height/2)+" )"))}),_.edges().forEach(function(ft){ft!==void 0&&_.edge(ft)!==void 0&&(Kt.debug("Edge "+ft.v+" -> "+ft.w+": "+JSON.stringify(_.edge(ft))),Vbt.drawEdge(S,_.edge(ft),_.edge(ft).relation,w,g))});const z=S.node().getBBox(),Y=z.width+kX*2,nt=z.height+kX*2;sg(S,nt,Y,w.useMaxWidth);const ot=`${z.x-kX} ${z.y-kX} ${Y} ${nt}`;Kt.debug(`viewBox ${ot}`),S.attr("viewBox",ot)}},styles:Fqt,init:i=>{i.class||(i.class={}),i.class.arrowMarkerAbsolute=i.arrowMarkerAbsolute,yX.clear()}}},Symbol.toStringTag,{value:"Module"})),Ubt=i=>ei.sanitizeText(i,Re());let Gbt={dividerMargin:10,padding:5,textHeight:10,curve:void 0};const BJe=function(i,a,f,g){const w=Object.keys(i);Kt.info("keys:",w),Kt.info(i),w.forEach(function(v){var _,M;const b=i[v],S={shape:"rect",id:b.id,domId:b.domId,labelText:Ubt(b.id),labelStyle:"",style:"fill: none; stroke: black",padding:((_=Re().flowchart)==null?void 0:_.padding)??((M=Re().class)==null?void 0:M.padding)};a.setNode(b.id,S),$qt(b.classes,a,f,g,b.id),Kt.info("setNode",S)})},$qt=function(i,a,f,g,w){const v=Object.keys(i);Kt.info("keys:",v),Kt.info(i),v.filter(b=>i[b].parent==w).forEach(function(b){var z,Y;const E=i[b],S=E.cssClasses.join(" "),_=C2(E.styles),M=E.label??E.id,F=0,R="class_box",B={labelStyle:_.labelStyle,shape:R,labelText:Ubt(M),classData:E,rx:F,ry:F,class:S,style:_.style,id:E.id,domId:E.domId,tooltip:g.db.getTooltip(E.id,w)||"",haveCallback:E.haveCallback,link:E.link,width:E.type==="group"?500:void 0,type:E.type,padding:((z=Re().flowchart)==null?void 0:z.padding)??((Y=Re().class)==null?void 0:Y.padding)};a.setNode(E.id,B),w&&a.setParent(E.id,w),Kt.info("setNode",B)})},RJe=function(i,a,f,g){Kt.info(i),i.forEach(function(w,v){var Y,nt;const b=w,E="",S={labelStyle:"",style:""},_=b.text,M=0,F="note",R={labelStyle:S.labelStyle,shape:F,labelText:Ubt(_),noteData:b,rx:M,ry:M,class:E,style:S.style,id:b.id,domId:b.id,tooltip:"",type:"note",padding:((Y=Re().flowchart)==null?void 0:Y.padding)??((nt=Re().class)==null?void 0:nt.padding)};if(a.setNode(b.id,R),Kt.info("setNode",R),!b.class||!(b.class in g))return;const B=f+v,z={id:`edgeNote${B}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:Xw(Gbt.curve,Kg)};a.setEdge(b.id,b.class,z,B)})},jJe=function(i,a){const f=Re().flowchart;let g=0;i.forEach(function(w){var b;g++;const v={classes:"relation",pattern:w.relation.lineType==1?"dashed":"solid",id:`id_${w.id1}_${w.id2}_${g}`,arrowhead:w.type==="arrow_open"?"none":"normal",startLabelRight:w.relationTitle1==="none"?"":w.relationTitle1,endLabelLeft:w.relationTitle2==="none"?"":w.relationTitle2,arrowTypeStart:zqt(w.relation.type1),arrowTypeEnd:zqt(w.relation.type2),style:"fill:none",labelStyle:"",curve:Xw(f==null?void 0:f.curve,Kg)};if(Kt.info(v,w),w.style!==void 0){const E=C2(w.style);v.style=E.style,v.labelStyle=E.labelStyle}w.text=w.title,w.text===void 0?w.style!==void 0&&(v.arrowheadStyle="fill: #333"):(v.arrowheadStyle="fill: #333",v.labelpos="c",((b=Re().flowchart)==null?void 0:b.htmlLabels)??Re().htmlLabels?(v.labelType="html",v.label=''+w.text+""):(v.labelType="text",v.label=w.text.replace(ei.lineBreakRegex,` +`),w.style===void 0&&(v.style=v.style||"stroke: #333; stroke-width: 1.5px;fill:none"),v.labelStyle=v.labelStyle.replace("color:","fill:"))),a.setEdge(w.id1,w.id2,v,g)})},$Je=function(i){Gbt={...Gbt,...i}},zJe=async function(i,a,f,g){Kt.info("Drawing class - ",a);const w=Re().flowchart??Re().class,v=Re().securityLevel;Kt.info("config:",w);const b=(w==null?void 0:w.nodeSpacing)??50,E=(w==null?void 0:w.rankSpacing)??50,S=new l1({multigraph:!0,compound:!0}).setGraph({rankdir:g.db.getDirection(),nodesep:b,ranksep:E,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),_=g.db.getNamespaces(),M=g.db.getClasses(),F=g.db.getRelations(),R=g.db.getNotes();Kt.info(F),BJe(_,S,a,g),$qt(M,S,a,g),jJe(F,S),RJe(R,S,F.length+1,M);let B;v==="sandbox"&&(B=Tr("#i"+a));const z=Tr(v==="sandbox"?B.nodes()[0].contentDocument.body:"body"),Y=z.select(`[id="${a}"]`),nt=z.select("#"+a+" g");if(await ebt(nt,S,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",a),uo.insertTitle(Y,"classTitleText",(w==null?void 0:w.titleTopMargin)??5,g.db.getDiagramTitle()),w8(S,Y,w==null?void 0:w.diagramPadding,w==null?void 0:w.useMaxWidth),!(w!=null&&w.htmlLabels)){const ot=v==="sandbox"?B.nodes()[0].contentDocument:document,ft=ot.querySelectorAll('[id="'+a+'"] .edgeLabel .label');for(const wt of ft){const mt=wt.getBBox(),ct=ot.createElementNS("http://www.w3.org/2000/svg","rect");ct.setAttribute("rx",0),ct.setAttribute("ry",0),ct.setAttribute("width",mt.width),ct.setAttribute("height",mt.height),wt.insertBefore(ct,wt.firstChild)}}};function zqt(i){let a;switch(i){case 0:a="aggregation";break;case 1:a="extension";break;case 2:a="composition";break;case 3:a="dependency";break;case 4:a="lollipop";break;default:a="none"}return a}const qJe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:Aqt,db:yX,renderer:{setConf:$Je,draw:zJe},styles:Fqt,init:i=>{i.class||(i.class={}),i.class.arrowMarkerAbsolute=i.arrowMarkerAbsolute,yX.clear()}}},Symbol.toStringTag,{value:"Module"}));var Kbt=function(){var i=function(xt,Ft,Ct,kt){for(Ct=Ct||{},kt=xt.length;kt--;Ct[xt[kt]]=Ft);return Ct},a=[1,2],f=[1,3],g=[1,4],w=[2,4],v=[1,9],b=[1,11],E=[1,15],S=[1,16],_=[1,17],M=[1,18],F=[1,30],R=[1,19],B=[1,20],z=[1,21],Y=[1,22],nt=[1,23],ot=[1,25],ft=[1,26],wt=[1,27],mt=[1,28],ct=[1,29],rt=[1,32],it=[1,33],gt=[1,34],Q=[1,35],dt=[1,31],K=[1,4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],yt=[1,4,5,13,14,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],V=[4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],Ot={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,cssClassStatement:11,idStatement:12,DESCR:13,"-->":14,HIDE_EMPTY:15,scale:16,WIDTH:17,COMPOSIT_STATE:18,STRUCT_START:19,STRUCT_STOP:20,STATE_DESCR:21,AS:22,ID:23,FORK:24,JOIN:25,CHOICE:26,CONCURRENT:27,note:28,notePosition:29,NOTE_TEXT:30,direction:31,acc_title:32,acc_title_value:33,acc_descr:34,acc_descr_value:35,acc_descr_multiline_value:36,classDef:37,CLASSDEF_ID:38,CLASSDEF_STYLEOPTS:39,DEFAULT:40,class:41,CLASSENTITY_IDS:42,STYLECLASS:43,direction_tb:44,direction_bt:45,direction_rl:46,direction_lr:47,eol:48,";":49,EDGE_STATE:50,STYLE_SEPARATOR:51,left_of:52,right_of:53,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",13:"DESCR",14:"-->",15:"HIDE_EMPTY",16:"scale",17:"WIDTH",18:"COMPOSIT_STATE",19:"STRUCT_START",20:"STRUCT_STOP",21:"STATE_DESCR",22:"AS",23:"ID",24:"FORK",25:"JOIN",26:"CHOICE",27:"CONCURRENT",28:"note",30:"NOTE_TEXT",32:"acc_title",33:"acc_title_value",34:"acc_descr",35:"acc_descr_value",36:"acc_descr_multiline_value",37:"classDef",38:"CLASSDEF_ID",39:"CLASSDEF_STYLEOPTS",40:"DEFAULT",41:"class",42:"CLASSENTITY_IDS",43:"STYLECLASS",44:"direction_tb",45:"direction_bt",46:"direction_rl",47:"direction_lr",49:";",50:"EDGE_STATE",51:"STYLE_SEPARATOR",52:"left_of",53:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[31,1],[31,1],[31,1],[31,1],[48,1],[48,1],[12,1],[12,1],[12,3],[12,3],[29,1],[29,1]],performAction:function(Ft,Ct,kt,Gt,Fe,Mt,pn){var Ae=Mt.length-1;switch(Fe){case 3:return Gt.setRootDoc(Mt[Ae]),Mt[Ae];case 4:this.$=[];break;case 5:Mt[Ae]!="nl"&&(Mt[Ae-1].push(Mt[Ae]),this.$=Mt[Ae-1]);break;case 6:case 7:this.$=Mt[Ae];break;case 8:this.$="nl";break;case 11:this.$=Mt[Ae];break;case 12:const be=Mt[Ae-1];be.description=Gt.trimColon(Mt[Ae]),this.$=be;break;case 13:this.$={stmt:"relation",state1:Mt[Ae-2],state2:Mt[Ae]};break;case 14:const Ne=Gt.trimColon(Mt[Ae]);this.$={stmt:"relation",state1:Mt[Ae-3],state2:Mt[Ae-1],description:Ne};break;case 18:this.$={stmt:"state",id:Mt[Ae-3],type:"default",description:"",doc:Mt[Ae-1]};break;case 19:var ye=Mt[Ae],tn=Mt[Ae-2].trim();if(Mt[Ae].match(":")){var sn=Mt[Ae].split(":");ye=sn[0],tn=[tn,sn[1]]}this.$={stmt:"state",id:ye,type:"default",description:tn};break;case 20:this.$={stmt:"state",id:Mt[Ae-3],type:"default",description:Mt[Ae-5],doc:Mt[Ae-1]};break;case 21:this.$={stmt:"state",id:Mt[Ae],type:"fork"};break;case 22:this.$={stmt:"state",id:Mt[Ae],type:"join"};break;case 23:this.$={stmt:"state",id:Mt[Ae],type:"choice"};break;case 24:this.$={stmt:"state",id:Gt.getDividerId(),type:"divider"};break;case 25:this.$={stmt:"state",id:Mt[Ae-1].trim(),note:{position:Mt[Ae-2].trim(),text:Mt[Ae].trim()}};break;case 28:this.$=Mt[Ae].trim(),Gt.setAccTitle(this.$);break;case 29:case 30:this.$=Mt[Ae].trim(),Gt.setAccDescription(this.$);break;case 31:case 32:this.$={stmt:"classDef",id:Mt[Ae-1].trim(),classes:Mt[Ae].trim()};break;case 33:this.$={stmt:"applyClass",id:Mt[Ae-1].trim(),styleClass:Mt[Ae].trim()};break;case 34:Gt.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 35:Gt.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 36:Gt.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 37:Gt.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 40:case 41:this.$={stmt:"state",id:Mt[Ae].trim(),type:"default",description:""};break;case 42:this.$={stmt:"state",id:Mt[Ae-2].trim(),classes:[Mt[Ae].trim()],type:"default",description:""};break;case 43:this.$={stmt:"state",id:Mt[Ae-2].trim(),classes:[Mt[Ae].trim()],type:"default",description:""};break}},table:[{3:1,4:a,5:f,6:g},{1:[3]},{3:5,4:a,5:f,6:g},{3:6,4:a,5:f,6:g},i([1,4,5,15,16,18,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],w,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:v,5:b,8:8,9:10,10:12,11:13,12:14,15:E,16:S,18:_,21:M,23:F,24:R,25:B,26:z,27:Y,28:nt,31:24,32:ot,34:ft,36:wt,37:mt,41:ct,44:rt,45:it,46:gt,47:Q,50:dt},i(K,[2,5]),{9:36,10:12,11:13,12:14,15:E,16:S,18:_,21:M,23:F,24:R,25:B,26:z,27:Y,28:nt,31:24,32:ot,34:ft,36:wt,37:mt,41:ct,44:rt,45:it,46:gt,47:Q,50:dt},i(K,[2,7]),i(K,[2,8]),i(K,[2,9]),i(K,[2,10]),i(K,[2,11],{13:[1,37],14:[1,38]}),i(K,[2,15]),{17:[1,39]},i(K,[2,17],{19:[1,40]}),{22:[1,41]},i(K,[2,21]),i(K,[2,22]),i(K,[2,23]),i(K,[2,24]),{29:42,30:[1,43],52:[1,44],53:[1,45]},i(K,[2,27]),{33:[1,46]},{35:[1,47]},i(K,[2,30]),{38:[1,48],40:[1,49]},{42:[1,50]},i(yt,[2,40],{51:[1,51]}),i(yt,[2,41],{51:[1,52]}),i(K,[2,34]),i(K,[2,35]),i(K,[2,36]),i(K,[2,37]),i(K,[2,6]),i(K,[2,12]),{12:53,23:F,50:dt},i(K,[2,16]),i(V,w,{7:54}),{23:[1,55]},{23:[1,56]},{22:[1,57]},{23:[2,44]},{23:[2,45]},i(K,[2,28]),i(K,[2,29]),{39:[1,58]},{39:[1,59]},{43:[1,60]},{23:[1,61]},{23:[1,62]},i(K,[2,13],{13:[1,63]}),{4:v,5:b,8:8,9:10,10:12,11:13,12:14,15:E,16:S,18:_,20:[1,64],21:M,23:F,24:R,25:B,26:z,27:Y,28:nt,31:24,32:ot,34:ft,36:wt,37:mt,41:ct,44:rt,45:it,46:gt,47:Q,50:dt},i(K,[2,19],{19:[1,65]}),{30:[1,66]},{23:[1,67]},i(K,[2,31]),i(K,[2,32]),i(K,[2,33]),i(yt,[2,42]),i(yt,[2,43]),i(K,[2,14]),i(K,[2,18]),i(V,w,{7:68}),i(K,[2,25]),i(K,[2,26]),{4:v,5:b,8:8,9:10,10:12,11:13,12:14,15:E,16:S,18:_,20:[1,69],21:M,23:F,24:R,25:B,26:z,27:Y,28:nt,31:24,32:ot,34:ft,36:wt,37:mt,41:ct,44:rt,45:it,46:gt,47:Q,50:dt},i(K,[2,20])],defaultActions:{5:[2,1],6:[2,2],44:[2,44],45:[2,45]},parseError:function(Ft,Ct){if(Ct.recoverable)this.trace(Ft);else{var kt=new Error(Ft);throw kt.hash=Ct,kt}},parse:function(Ft){var Ct=this,kt=[0],Gt=[],Fe=[null],Mt=[],pn=this.table,Ae="",ye=0,tn=0,sn=2,be=1,Ne=Mt.slice.call(arguments,1),Xt=Object.create(this.lexer),_e={yy:{}};for(var xe in this.yy)Object.prototype.hasOwnProperty.call(this.yy,xe)&&(_e.yy[xe]=this.yy[xe]);Xt.setInput(Ft,_e.yy),_e.yy.lexer=Xt,_e.yy.parser=this,typeof Xt.yylloc>"u"&&(Xt.yylloc={});var Mn=Xt.yylloc;Mt.push(Mn);var ce=Xt.options&&Xt.options.ranges;typeof _e.yy.parseError=="function"?this.parseError=_e.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Br(){var ke;return ke=Gt.pop()||Xt.lex()||be,typeof ke!="number"&&(ke instanceof Array&&(Gt=ke,ke=Gt.pop()),ke=Ct.symbols_[ke]||ke),ke}for(var we,Fi,mi,ga,Ss={},za,br,An,Nn;;){if(Fi=kt[kt.length-1],this.defaultActions[Fi]?mi=this.defaultActions[Fi]:((we===null||typeof we>"u")&&(we=Br()),mi=pn[Fi]&&pn[Fi][we]),typeof mi>"u"||!mi.length||!mi[0]){var Bn="";Nn=[];for(za in pn[Fi])this.terminals_[za]&&za>sn&&Nn.push("'"+this.terminals_[za]+"'");Xt.showPosition?Bn="Parse error on line "+(ye+1)+`: +`+Xt.showPosition()+` +Expecting `+Nn.join(", ")+", got '"+(this.terminals_[we]||we)+"'":Bn="Parse error on line "+(ye+1)+": Unexpected "+(we==be?"end of input":"'"+(this.terminals_[we]||we)+"'"),this.parseError(Bn,{text:Xt.match,token:this.terminals_[we]||we,line:Xt.yylineno,loc:Mn,expected:Nn})}if(mi[0]instanceof Array&&mi.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Fi+", token: "+we);switch(mi[0]){case 1:kt.push(we),Fe.push(Xt.yytext),Mt.push(Xt.yylloc),kt.push(mi[1]),we=null,tn=Xt.yyleng,Ae=Xt.yytext,ye=Xt.yylineno,Mn=Xt.yylloc;break;case 2:if(br=this.productions_[mi[1]][1],Ss.$=Fe[Fe.length-br],Ss._$={first_line:Mt[Mt.length-(br||1)].first_line,last_line:Mt[Mt.length-1].last_line,first_column:Mt[Mt.length-(br||1)].first_column,last_column:Mt[Mt.length-1].last_column},ce&&(Ss._$.range=[Mt[Mt.length-(br||1)].range[0],Mt[Mt.length-1].range[1]]),ga=this.performAction.apply(Ss,[Ae,tn,ye,_e.yy,mi[1],Fe,Mt].concat(Ne)),typeof ga<"u")return ga;br&&(kt=kt.slice(0,-1*br*2),Fe=Fe.slice(0,-1*br),Mt=Mt.slice(0,-1*br)),kt.push(this.productions_[mi[1]][0]),Fe.push(Ss.$),Mt.push(Ss._$),An=pn[kt[kt.length-2]][kt[kt.length-1]],kt.push(An);break;case 3:return!0}}return!0}},It=function(){var xt={EOF:1,parseError:function(Ct,kt){if(this.yy.parser)this.yy.parser.parseError(Ct,kt);else throw new Error(Ct)},setInput:function(Ft,Ct){return this.yy=Ct||this.yy||{},this._input=Ft,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Ft=this._input[0];this.yytext+=Ft,this.yyleng++,this.offset++,this.match+=Ft,this.matched+=Ft;var Ct=Ft.match(/(?:\r\n?|\n).*/g);return Ct?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Ft},unput:function(Ft){var Ct=Ft.length,kt=Ft.split(/(?:\r\n?|\n)/g);this._input=Ft+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ct),this.offset-=Ct;var Gt=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),kt.length-1&&(this.yylineno-=kt.length-1);var Fe=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:kt?(kt.length===Gt.length?this.yylloc.first_column:0)+Gt[Gt.length-kt.length].length-kt[0].length:this.yylloc.first_column-Ct},this.options.ranges&&(this.yylloc.range=[Fe[0],Fe[0]+this.yyleng-Ct]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Ft){this.unput(this.match.slice(Ft))},pastInput:function(){var Ft=this.matched.substr(0,this.matched.length-this.match.length);return(Ft.length>20?"...":"")+Ft.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Ft=this.match;return Ft.length<20&&(Ft+=this._input.substr(0,20-Ft.length)),(Ft.substr(0,20)+(Ft.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Ft=this.pastInput(),Ct=new Array(Ft.length+1).join("-");return Ft+this.upcomingInput()+` +`+Ct+"^"},test_match:function(Ft,Ct){var kt,Gt,Fe;if(this.options.backtrack_lexer&&(Fe={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Fe.yylloc.range=this.yylloc.range.slice(0))),Gt=Ft[0].match(/(?:\r\n?|\n).*/g),Gt&&(this.yylineno+=Gt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Gt?Gt[Gt.length-1].length-Gt[Gt.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Ft[0].length},this.yytext+=Ft[0],this.match+=Ft[0],this.matches=Ft,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Ft[0].length),this.matched+=Ft[0],kt=this.performAction.call(this,this.yy,this,Ct,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),kt)return kt;if(this._backtrack){for(var Mt in Fe)this[Mt]=Fe[Mt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Ft,Ct,kt,Gt;this._more||(this.yytext="",this.match="");for(var Fe=this._currentRules(),Mt=0;MtCt[0].length)){if(Ct=kt,Gt=Mt,this.options.backtrack_lexer){if(Ft=this.test_match(kt,Fe[Mt]),Ft!==!1)return Ft;if(this._backtrack){Ct=!1;continue}else return!1}else if(!this.options.flex)break}return Ct?(Ft=this.test_match(Ct,Fe[Gt]),Ft!==!1?Ft:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Ct=this.next();return Ct||this.lex()},begin:function(Ct){this.conditionStack.push(Ct)},popState:function(){var Ct=this.conditionStack.length-1;return Ct>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Ct){return Ct=this.conditionStack.length-1-Math.abs(Ct||0),Ct>=0?this.conditionStack[Ct]:"INITIAL"},pushState:function(Ct){this.begin(Ct)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(Ct,kt,Gt,Fe){switch(Gt){case 0:return 40;case 1:return 44;case 2:return 45;case 3:return 46;case 4:return 47;case 5:break;case 6:break;case 7:return 5;case 8:break;case 9:break;case 10:break;case 11:break;case 12:return this.pushState("SCALE"),16;case 13:return 17;case 14:this.popState();break;case 15:return this.begin("acc_title"),32;case 16:return this.popState(),"acc_title_value";case 17:return this.begin("acc_descr"),34;case 18:return this.popState(),"acc_descr_value";case 19:this.begin("acc_descr_multiline");break;case 20:this.popState();break;case 21:return"acc_descr_multiline_value";case 22:return this.pushState("CLASSDEF"),37;case 23:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 24:return this.popState(),this.pushState("CLASSDEFID"),38;case 25:return this.popState(),39;case 26:return this.pushState("CLASS"),41;case 27:return this.popState(),this.pushState("CLASS_STYLE"),42;case 28:return this.popState(),43;case 29:return this.pushState("SCALE"),16;case 30:return 17;case 31:this.popState();break;case 32:this.pushState("STATE");break;case 33:return this.popState(),kt.yytext=kt.yytext.slice(0,-8).trim(),24;case 34:return this.popState(),kt.yytext=kt.yytext.slice(0,-8).trim(),25;case 35:return this.popState(),kt.yytext=kt.yytext.slice(0,-10).trim(),26;case 36:return this.popState(),kt.yytext=kt.yytext.slice(0,-8).trim(),24;case 37:return this.popState(),kt.yytext=kt.yytext.slice(0,-8).trim(),25;case 38:return this.popState(),kt.yytext=kt.yytext.slice(0,-10).trim(),26;case 39:return 44;case 40:return 45;case 41:return 46;case 42:return 47;case 43:this.pushState("STATE_STRING");break;case 44:return this.pushState("STATE_ID"),"AS";case 45:return this.popState(),"ID";case 46:this.popState();break;case 47:return"STATE_DESCR";case 48:return 18;case 49:this.popState();break;case 50:return this.popState(),this.pushState("struct"),19;case 51:break;case 52:return this.popState(),20;case 53:break;case 54:return this.begin("NOTE"),28;case 55:return this.popState(),this.pushState("NOTE_ID"),52;case 56:return this.popState(),this.pushState("NOTE_ID"),53;case 57:this.popState(),this.pushState("FLOATING_NOTE");break;case 58:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 59:break;case 60:return"NOTE_TEXT";case 61:return this.popState(),"ID";case 62:return this.popState(),this.pushState("NOTE_TEXT"),23;case 63:return this.popState(),kt.yytext=kt.yytext.substr(2).trim(),30;case 64:return this.popState(),kt.yytext=kt.yytext.slice(0,-8).trim(),30;case 65:return 6;case 66:return 6;case 67:return 15;case 68:return 50;case 69:return 23;case 70:return kt.yytext=kt.yytext.trim(),13;case 71:return 14;case 72:return 27;case 73:return 51;case 74:return 5;case 75:return"INVALID"}},rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,32,39,40,41,42,51,52,53,54,68,69,70,71,72],inclusive:!1},FLOATING_NOTE_ID:{rules:[61],inclusive:!1},FLOATING_NOTE:{rules:[58,59,60],inclusive:!1},NOTE_TEXT:{rules:[63,64],inclusive:!1},NOTE_ID:{rules:[62],inclusive:!1},NOTE:{rules:[55,56,57],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,30,31],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[45],inclusive:!1},STATE_STRING:{rules:[46,47],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,33,34,35,36,37,38,43,44,48,49,50],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,50,54,65,66,67,68,69,70,71,73,74,75],inclusive:!0}}};return xt}();Ot.lexer=It;function jt(){this.yy={}}return jt.prototype=Ot,Ot.Parser=jt,new jt}();Kbt.parser=Kbt;const qqt=Kbt,HJe="LR",VJe="TB",EX="state",Wbt="relation",UJe="classDef",GJe="applyClass",yB="default",Hqt="divider",Ybt="[*]",Vqt="start",Uqt=Ybt,Gqt="end",Kqt="color",Wqt="fill",KJe="bgFill",WJe=",";function Yqt(){return{}}let Xqt=HJe,TX=[],xB=Yqt();const Qqt=()=>({relations:[],states:{},documents:{}});let CX={root:Qqt()},lg=CX.root,kB=0,Jqt=0;const YJe={LINE:0,DOTTED_LINE:1},XJe={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},SX=i=>JSON.parse(JSON.stringify(i)),QJe=i=>{Kt.info("Setting root doc",i),TX=i},JJe=()=>TX,_X=(i,a,f)=>{if(a.stmt===Wbt)_X(i,a.state1,!0),_X(i,a.state2,!1);else if(a.stmt===EX&&(a.id==="[*]"?(a.id=f?i.id+"_start":i.id+"_end",a.start=f):a.id=a.id.trim()),a.doc){const g=[];let w=[],v;for(v=0;v0&&w.length>0){const b={stmt:EX,id:_Ft(),type:"divider",doc:SX(w)};g.push(SX(b)),a.doc=g}a.doc.forEach(b=>_X(a,b,!0))}},ZJe=()=>(_X({id:"root"},{id:"root",doc:TX},!0),{id:"root",doc:TX}),tZe=i=>{let a;i.doc?a=i.doc:a=i,Kt.info(a),Zqt(!0),Kt.info("Extract",a),a.forEach(f=>{switch(f.stmt){case EX:z9(f.id.trim(),f.type,f.doc,f.description,f.note,f.classes,f.styles,f.textStyles);break;case Wbt:tHt(f.state1,f.state2,f.description);break;case UJe:eHt(f.id.trim(),f.classes);break;case GJe:Zbt(f.id.trim(),f.styleClass);break}})},z9=function(i,a=yB,f=null,g=null,w=null,v=null,b=null,E=null){const S=i==null?void 0:i.trim();lg.states[S]===void 0?(Kt.info("Adding state ",S,g),lg.states[S]={id:S,descriptions:[],type:a,doc:f,note:w,classes:[],styles:[],textStyles:[]}):(lg.states[S].doc||(lg.states[S].doc=f),lg.states[S].type||(lg.states[S].type=a)),g&&(Kt.info("Setting state description",S,g),typeof g=="string"&&Jbt(S,g.trim()),typeof g=="object"&&g.forEach(_=>Jbt(S,_.trim()))),w&&(lg.states[S].note=w,lg.states[S].note.text=ei.sanitizeText(lg.states[S].note.text,Re())),v&&(Kt.info("Setting state classes",S,v),(typeof v=="string"?[v]:v).forEach(M=>Zbt(S,M.trim()))),b&&(Kt.info("Setting state styles",S,b),(typeof b=="string"?[b]:b).forEach(M=>lZe(S,M.trim()))),E&&(Kt.info("Setting state styles",S,b),(typeof E=="string"?[E]:E).forEach(M=>hZe(S,M.trim())))},Zqt=function(i){CX={root:Qqt()},lg=CX.root,kB=0,xB=Yqt(),i||ag()},EB=function(i){return lg.states[i]},eZe=function(){return lg.states},nZe=function(){Kt.info("Documents = ",CX)},rZe=function(){return lg.relations};function Xbt(i=""){let a=i;return i===Ybt&&(kB++,a=`${Vqt}${kB}`),a}function Qbt(i="",a=yB){return i===Ybt?Vqt:a}function iZe(i=""){let a=i;return i===Uqt&&(kB++,a=`${Gqt}${kB}`),a}function sZe(i="",a=yB){return i===Uqt?Gqt:a}function aZe(i,a,f){let g=Xbt(i.id.trim()),w=Qbt(i.id.trim(),i.type),v=Xbt(a.id.trim()),b=Qbt(a.id.trim(),a.type);z9(g,w,i.doc,i.description,i.note,i.classes,i.styles,i.textStyles),z9(v,b,a.doc,a.description,a.note,a.classes,a.styles,a.textStyles),lg.relations.push({id1:g,id2:v,relationTitle:ei.sanitizeText(f,Re())})}const tHt=function(i,a,f){if(typeof i=="object")aZe(i,a,f);else{const g=Xbt(i.trim()),w=Qbt(i),v=iZe(a.trim()),b=sZe(a);z9(g,w),z9(v,b),lg.relations.push({id1:g,id2:v,title:ei.sanitizeText(f,Re())})}},Jbt=function(i,a){const f=lg.states[i],g=a.startsWith(":")?a.replace(":","").trim():a;f.descriptions.push(ei.sanitizeText(g,Re()))},oZe=function(i){return i.substring(0,1)===":"?i.substr(2).trim():i.trim()},cZe=()=>(Jqt++,"divider-id-"+Jqt),eHt=function(i,a=""){xB[i]===void 0&&(xB[i]={id:i,styles:[],textStyles:[]});const f=xB[i];a!=null&&a.split(WJe).forEach(g=>{const w=g.replace(/([^;]*);/,"$1").trim();if(g.match(Kqt)){const b=w.replace(Wqt,KJe).replace(Kqt,Wqt);f.textStyles.push(b)}f.styles.push(w)})},uZe=function(){return xB},Zbt=function(i,a){i.split(",").forEach(function(f){let g=EB(f);if(g===void 0){const w=f.trim();z9(w),g=EB(w)}g.classes.push(a)})},lZe=function(i,a){const f=EB(i);f!==void 0&&f.textStyles.push(a)},hZe=function(i,a){const f=EB(i);f!==void 0&&f.textStyles.push(a)},Hx={getConfig:()=>Re().state,addState:z9,clear:Zqt,getState:EB,getStates:eZe,getRelations:rZe,getClasses:uZe,getDirection:()=>Xqt,addRelation:tHt,getDividerId:cZe,setDirection:i=>{Xqt=i},cleanupLabel:oZe,lineType:YJe,relationType:XJe,logDocuments:nZe,getRootDoc:JJe,setRootDoc:QJe,getRootDocV2:ZJe,extract:tZe,trimColon:i=>i&&i[0]===":"?i.substr(1).trim():i.trim(),getAccTitle:Xg,setAccTitle:og,getAccDescription:Jg,setAccDescription:Qg,addStyleClass:eHt,setCssClass:Zbt,addDescription:Jbt,setDiagramTitle:S2,getDiagramTitle:Zg},nHt=i=>` +defs #statediagram-barbEnd { + fill: ${i.transitionColor}; + stroke: ${i.transitionColor}; + } +g.stateGroup text { + fill: ${i.nodeBorder}; + stroke: none; + font-size: 10px; +} +g.stateGroup text { + fill: ${i.textColor}; + stroke: none; + font-size: 10px; + +} +g.stateGroup .state-title { + font-weight: bolder; + fill: ${i.stateLabelColor}; +} + +g.stateGroup rect { + fill: ${i.mainBkg}; + stroke: ${i.nodeBorder}; +} + +g.stateGroup line { + stroke: ${i.lineColor}; + stroke-width: 1; +} + +.transition { + stroke: ${i.transitionColor}; + stroke-width: 1; + fill: none; +} + +.stateGroup .composit { + fill: ${i.background}; + border-bottom: 1px +} + +.stateGroup .alt-composit { + fill: #e0e0e0; + border-bottom: 1px +} + +.state-note { + stroke: ${i.noteBorderColor}; + fill: ${i.noteBkgColor}; + + text { + fill: ${i.noteTextColor}; + stroke: none; + font-size: 10px; + } +} + +.stateLabel .box { + stroke: none; + stroke-width: 0; + fill: ${i.mainBkg}; + opacity: 0.5; +} + +.edgeLabel .label rect { + fill: ${i.labelBackgroundColor}; + opacity: 0.5; +} +.edgeLabel .label text { + fill: ${i.transitionLabelColor||i.tertiaryTextColor}; +} +.label div .edgeLabel { + color: ${i.transitionLabelColor||i.tertiaryTextColor}; +} + +.stateLabel text { + fill: ${i.stateLabelColor}; + font-size: 10px; + font-weight: bold; +} + +.node circle.state-start { + fill: ${i.specialStateColor}; + stroke: ${i.specialStateColor}; +} + +.node .fork-join { + fill: ${i.specialStateColor}; + stroke: ${i.specialStateColor}; +} + +.node circle.state-end { + fill: ${i.innerEndBackground}; + stroke: ${i.background}; + stroke-width: 1.5 +} +.end-state-inner { + fill: ${i.compositeBackground||i.background}; + // stroke: ${i.background}; + stroke-width: 1.5 +} + +.node rect { + fill: ${i.stateBkg||i.mainBkg}; + stroke: ${i.stateBorder||i.nodeBorder}; + stroke-width: 1px; +} +.node polygon { + fill: ${i.mainBkg}; + stroke: ${i.stateBorder||i.nodeBorder};; + stroke-width: 1px; +} +#statediagram-barbEnd { + fill: ${i.lineColor}; +} + +.statediagram-cluster rect { + fill: ${i.compositeTitleBackground}; + stroke: ${i.stateBorder||i.nodeBorder}; + stroke-width: 1px; +} + +.cluster-label, .nodeLabel { + color: ${i.stateLabelColor}; +} + +.statediagram-cluster rect.outer { + rx: 5px; + ry: 5px; +} +.statediagram-state .divider { + stroke: ${i.stateBorder||i.nodeBorder}; +} + +.statediagram-state .title-state { + rx: 5px; + ry: 5px; +} +.statediagram-cluster.statediagram-cluster .inner { + fill: ${i.compositeBackground||i.background}; +} +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: ${i.altBackground?i.altBackground:"#efefef"}; +} + +.statediagram-cluster .inner { + rx:0; + ry:0; +} + +.statediagram-state rect.basic { + rx: 5px; + ry: 5px; +} +.statediagram-state rect.divider { + stroke-dasharray: 10,10; + fill: ${i.altBackground?i.altBackground:"#efefef"}; +} + +.note-edge { + stroke-dasharray: 5; +} + +.statediagram-note rect { + fill: ${i.noteBkgColor}; + stroke: ${i.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} +.statediagram-note rect { + fill: ${i.noteBkgColor}; + stroke: ${i.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} + +.statediagram-note text { + fill: ${i.noteTextColor}; +} + +.statediagram-note .nodeLabel { + color: ${i.noteTextColor}; +} +.statediagram .edgeLabel { + color: red; // ${i.noteTextColor}; +} + +#dependencyStart, #dependencyEnd { + fill: ${i.lineColor}; + stroke: ${i.lineColor}; + stroke-width: 1; +} + +.statediagramTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${i.textColor}; +} +`,t2t={},fZe=(i,a)=>{t2t[i]=a},dZe=i=>t2t[i],rHt=()=>Object.keys(t2t),gZe={get:dZe,set:fZe,keys:rHt,size:()=>rHt().length},pZe=i=>i.append("circle").attr("class","start-state").attr("r",Re().state.sizeUnit).attr("cx",Re().state.padding+Re().state.sizeUnit).attr("cy",Re().state.padding+Re().state.sizeUnit),bZe=i=>i.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",Re().state.textHeight).attr("class","divider").attr("x2",Re().state.textHeight*2).attr("y1",0).attr("y2",0),wZe=(i,a)=>{const f=i.append("text").attr("x",2*Re().state.padding).attr("y",Re().state.textHeight+2*Re().state.padding).attr("font-size",Re().state.fontSize).attr("class","state-title").text(a.id),g=f.node().getBBox();return i.insert("rect",":first-child").attr("x",Re().state.padding).attr("y",Re().state.padding).attr("width",g.width+2*Re().state.padding).attr("height",g.height+2*Re().state.padding).attr("rx",Re().state.radius),f},mZe=(i,a)=>{const f=function(R,B,z){const Y=R.append("tspan").attr("x",2*Re().state.padding).text(B);z||Y.attr("dy",Re().state.textHeight)},w=i.append("text").attr("x",2*Re().state.padding).attr("y",Re().state.textHeight+1.3*Re().state.padding).attr("font-size",Re().state.fontSize).attr("class","state-title").text(a.descriptions[0]).node().getBBox(),v=w.height,b=i.append("text").attr("x",Re().state.padding).attr("y",v+Re().state.padding*.4+Re().state.dividerMargin+Re().state.textHeight).attr("class","state-description");let E=!0,S=!0;a.descriptions.forEach(function(R){E||(f(b,R,S),S=!1),E=!1});const _=i.append("line").attr("x1",Re().state.padding).attr("y1",Re().state.padding+v+Re().state.dividerMargin/2).attr("y2",Re().state.padding+v+Re().state.dividerMargin/2).attr("class","descr-divider"),M=b.node().getBBox(),F=Math.max(M.width,w.width);return _.attr("x2",F+3*Re().state.padding),i.insert("rect",":first-child").attr("x",Re().state.padding).attr("y",Re().state.padding).attr("width",F+2*Re().state.padding).attr("height",M.height+v+2*Re().state.padding).attr("rx",Re().state.radius),i},vZe=(i,a,f)=>{const g=Re().state.padding,w=2*Re().state.padding,v=i.node().getBBox(),b=v.width,E=v.x,S=i.append("text").attr("x",0).attr("y",Re().state.titleShift).attr("font-size",Re().state.fontSize).attr("class","state-title").text(a.id),M=S.node().getBBox().width+w;let F=Math.max(M,b);F===b&&(F=F+w);let R;const B=i.node().getBBox();a.doc,R=E-g,M>b&&(R=(b-F)/2+g),Math.abs(E-B.x)b&&(R=E-(M-b)/2);const z=1-Re().state.textHeight;return i.insert("rect",":first-child").attr("x",R).attr("y",z).attr("class",f?"alt-composit":"composit").attr("width",F).attr("height",B.height+Re().state.textHeight+Re().state.titleShift+1).attr("rx","0"),S.attr("x",R+g),M<=b&&S.attr("x",E+(F-w)/2-M/2+g),i.insert("rect",":first-child").attr("x",R).attr("y",Re().state.titleShift-Re().state.textHeight-Re().state.padding).attr("width",F).attr("height",Re().state.textHeight*3).attr("rx",Re().state.radius),i.insert("rect",":first-child").attr("x",R).attr("y",Re().state.titleShift-Re().state.textHeight-Re().state.padding).attr("width",F).attr("height",B.height+3+2*Re().state.textHeight).attr("rx",Re().state.radius),i},yZe=i=>(i.append("circle").attr("class","end-state-outer").attr("r",Re().state.sizeUnit+Re().state.miniPadding).attr("cx",Re().state.padding+Re().state.sizeUnit+Re().state.miniPadding).attr("cy",Re().state.padding+Re().state.sizeUnit+Re().state.miniPadding),i.append("circle").attr("class","end-state-inner").attr("r",Re().state.sizeUnit).attr("cx",Re().state.padding+Re().state.sizeUnit+2).attr("cy",Re().state.padding+Re().state.sizeUnit+2)),xZe=(i,a)=>{let f=Re().state.forkWidth,g=Re().state.forkHeight;if(a.parentId){let w=f;f=g,g=w}return i.append("rect").style("stroke","black").style("fill","black").attr("width",f).attr("height",g).attr("x",Re().state.padding).attr("y",Re().state.padding)},kZe=(i,a,f,g)=>{let w=0;const v=g.append("text");v.style("text-anchor","start"),v.attr("class","noteText");let b=i.replace(/\r\n/g,"
");b=b.replace(/\n/g,"
");const E=b.split(ei.lineBreakRegex);let S=1.25*Re().state.noteMargin;for(const _ of E){const M=_.trim();if(M.length>0){const F=v.append("tspan");if(F.text(M),S===0){const R=F.node().getBBox();S+=R.height}w+=S,F.attr("x",a+Re().state.noteMargin),F.attr("y",f+w+1.25*Re().state.noteMargin)}}return{textWidth:v.node().getBBox().width,textHeight:w}},EZe=(i,a)=>{a.attr("class","state-note");const f=a.append("rect").attr("x",0).attr("y",Re().state.padding),g=a.append("g"),{textWidth:w,textHeight:v}=kZe(i,0,0,g);return f.attr("height",v+2*Re().state.noteMargin),f.attr("width",w+Re().state.noteMargin*2),f},iHt=function(i,a){const f=a.id,g={id:f,label:a.id,width:0,height:0},w=i.append("g").attr("id",f).attr("class","stateGroup");a.type==="start"&&pZe(w),a.type==="end"&&yZe(w),(a.type==="fork"||a.type==="join")&&xZe(w,a),a.type==="note"&&EZe(a.note.text,w),a.type==="divider"&&bZe(w),a.type==="default"&&a.descriptions.length===0&&wZe(w,a),a.type==="default"&&a.descriptions.length>0&&mZe(w,a);const v=w.node().getBBox();return g.width=v.width+2*Re().state.padding,g.height=v.height+2*Re().state.padding,gZe.set(f,g),g};let sHt=0;const TZe=function(i,a,f){const g=function(S){switch(S){case Hx.relationType.AGGREGATION:return"aggregation";case Hx.relationType.EXTENSION:return"extension";case Hx.relationType.COMPOSITION:return"composition";case Hx.relationType.DEPENDENCY:return"dependency"}};a.points=a.points.filter(S=>!Number.isNaN(S.y));const w=a.points,v=Ax().x(function(S){return S.x}).y(function(S){return S.y}).curve(wF),b=i.append("path").attr("d",v(w)).attr("id","edge"+sHt).attr("class","transition");let E="";if(Re().state.arrowMarkerAbsolute&&(E=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,E=E.replace(/\(/g,"\\("),E=E.replace(/\)/g,"\\)")),b.attr("marker-end","url("+E+"#"+g(Hx.relationType.DEPENDENCY)+"End)"),f.title!==void 0){const S=i.append("g").attr("class","stateLabel"),{x:_,y:M}=uo.calcLabelPosition(a.points),F=ei.getRows(f.title);let R=0;const B=[];let z=0,Y=0;for(let ft=0;ft<=F.length;ft++){const wt=S.append("text").attr("text-anchor","middle").text(F[ft]).attr("x",_).attr("y",M+R),mt=wt.node().getBBox();z=Math.max(z,mt.width),Y=Math.min(Y,mt.x),Kt.info(mt.x,_,M+R),R===0&&(R=wt.node().getBBox().height,Kt.info("Title height",R,M)),B.push(wt)}let nt=R*F.length;if(F.length>1){const ft=(F.length-1)*R*.5;B.forEach((wt,mt)=>wt.attr("y",M+mt*R-ft)),nt=R*F.length}const ot=S.node().getBBox();S.insert("rect",":first-child").attr("class","box").attr("x",_-z/2-Re().state.padding/2).attr("y",M-nt/2-Re().state.padding/2-3.5).attr("width",z+Re().state.padding).attr("height",nt+Re().state.padding),Kt.info(ot)}sHt++};let M2;const e2t={},CZe=function(){},SZe=function(i){i.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},_Ze=function(i,a,f,g){M2=Re().state;const w=Re().securityLevel;let v;w==="sandbox"&&(v=Tr("#i"+a));const b=Tr(w==="sandbox"?v.nodes()[0].contentDocument.body:"body"),E=w==="sandbox"?v.nodes()[0].contentDocument:document;Kt.debug("Rendering diagram "+i);const S=b.select(`[id='${a}']`);SZe(S);const _=g.db.getRootDoc();aHt(_,S,void 0,!1,b,E,g);const M=M2.padding,F=S.node().getBBox(),R=F.width+M*2,B=F.height+M*2,z=R*1.75;sg(S,B,z,M2.useMaxWidth),S.attr("viewBox",`${F.x-M2.padding} ${F.y-M2.padding} `+R+" "+B)},AZe=i=>i?i.length*M2.fontSizeFactor:1,aHt=(i,a,f,g,w,v,b)=>{const E=new l1({compound:!0,multigraph:!0});let S,_=!0;for(S=0;S{const mt=wt.parentElement;let ct=0,rt=0;mt&&(mt.parentElement&&(ct=mt.parentElement.getBBox().width),rt=parseInt(mt.getAttribute("data-x-shift"),10),Number.isNaN(rt)&&(rt=0)),wt.setAttribute("x1",0-rt+8),wt.setAttribute("x2",ct-rt-8)})):Kt.debug("No Node "+ot+": "+JSON.stringify(E.node(ot)))});let Y=z.getBBox();E.edges().forEach(function(ot){ot!==void 0&&E.edge(ot)!==void 0&&(Kt.debug("Edge "+ot.v+" -> "+ot.w+": "+JSON.stringify(E.edge(ot))),TZe(a,E.edge(ot),E.edge(ot).relation))}),Y=z.getBBox();const nt={id:f||"root",label:f||"root",width:0,height:0};return nt.width=Y.width+2*M2.padding,nt.height=Y.height+2*M2.padding,Kt.debug("Doc rendered",nt,E),nt},LZe=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:qqt,db:Hx,renderer:{setConf:CZe,draw:_Ze},styles:nHt,init:i=>{i.state||(i.state={}),i.state.arrowMarkerAbsolute=i.arrowMarkerAbsolute,Hx.clear()}}},Symbol.toStringTag,{value:"Module"})),AX="rect",n2t="rectWithTitle",DZe="start",MZe="end",IZe="divider",OZe="roundedWithTitle",NZe="note",PZe="noteGroup",ID="statediagram",FZe=`${ID}-state`,oHt="transition",BZe="note",RZe=`${oHt} note-edge`,jZe=`${ID}-${BZe}`,$Ze=`${ID}-cluster`,zZe=`${ID}-cluster-alt`,cHt="parent",uHt="note",qZe="state",r2t="----",HZe=`${r2t}${uHt}`,lHt=`${r2t}${cHt}`,hHt="fill:none",fHt="fill: #333",dHt="c",gHt="text",pHt="normal";let LX={},L8=0;const VZe=function(i){const a=Object.keys(i);for(const f of a)i[f]},UZe=function(i,a){return a.db.extract(a.db.getRootDocV2()),a.db.getClasses()};function GZe(i){return i==null?"":i.classes?i.classes.join(" "):""}function i2t(i="",a=0,f="",g=r2t){const w=f!==null&&f.length>0?`${g}${f}`:"";return`${qZe}-${i}${w}-${a}`}const TB=(i,a,f,g,w,v)=>{const b=f.id,E=GZe(g[b]);if(b!=="root"){let S=AX;f.start===!0&&(S=DZe),f.start===!1&&(S=MZe),f.type!==yB&&(S=f.type),LX[b]||(LX[b]={id:b,shape:S,description:ei.sanitizeText(b,Re()),classes:`${E} ${FZe}`});const _=LX[b];f.description&&(Array.isArray(_.description)?(_.shape=n2t,_.description.push(f.description)):_.description.length>0?(_.shape=n2t,_.description===b?_.description=[f.description]:_.description=[_.description,f.description]):(_.shape=AX,_.description=f.description),_.description=ei.sanitizeTextOrArray(_.description,Re())),_.description.length===1&&_.shape===n2t&&(_.shape=AX),!_.type&&f.doc&&(Kt.info("Setting cluster for ",b,s2t(f)),_.type="group",_.dir=s2t(f),_.shape=f.type===Hqt?IZe:OZe,_.classes=_.classes+" "+$Ze+" "+(v?zZe:""));const M={labelStyle:"",shape:_.shape,labelText:_.description,classes:_.classes,style:"",id:b,dir:_.dir,domId:i2t(b,L8),type:_.type,padding:15};if(M.centerLabel=!0,f.note){const F={labelStyle:"",shape:NZe,labelText:f.note.text,classes:jZe,style:"",id:b+HZe+"-"+L8,domId:i2t(b,L8,uHt),type:_.type,padding:15},R={labelStyle:"",shape:PZe,labelText:f.note.text,classes:_.classes,style:"",id:b+lHt,domId:i2t(b,L8,cHt),type:"group",padding:0};L8++;const B=b+lHt;i.setNode(B,R),i.setNode(F.id,F),i.setNode(b,M),i.setParent(b,B),i.setParent(F.id,B);let z=b,Y=F.id;f.note.position==="left of"&&(z=F.id,Y=b),i.setEdge(z,Y,{arrowhead:"none",arrowType:"",style:hHt,labelStyle:"",classes:RZe,arrowheadStyle:fHt,labelpos:dHt,labelType:gHt,thickness:pHt})}else i.setNode(b,M)}a&&a.id!=="root"&&(Kt.trace("Setting node ",b," to be child of its parent ",a.id),i.setParent(b,a.id)),f.doc&&(Kt.trace("Adding nodes children "),KZe(i,f,f.doc,g,w,!v))},KZe=(i,a,f,g,w,v)=>{Kt.trace("items",f),f.forEach(b=>{switch(b.stmt){case EX:TB(i,a,b,g,w,v);break;case yB:TB(i,a,b,g,w,v);break;case Wbt:{TB(i,a,b.state1,g,w,v),TB(i,a,b.state2,g,w,v);const E={id:"edge"+L8,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:hHt,labelStyle:"",label:ei.sanitizeText(b.description,Re()),arrowheadStyle:fHt,labelpos:dHt,labelType:gHt,thickness:pHt,classes:oHt};i.setEdge(b.state1.id,b.state2.id,E,L8),L8++}break}})},s2t=(i,a=VJe)=>{let f=a;if(i.doc)for(let g=0;g{i.state||(i.state={}),i.state.arrowMarkerAbsolute=i.arrowMarkerAbsolute,Hx.clear()}}},Symbol.toStringTag,{value:"Module"}));var a2t=function(){var i=function(F,R,B,z){for(B=B||{},z=F.length;z--;B[F[z]]=R);return B},a=[6,8,10,11,12,14,16,17,18],f=[1,9],g=[1,10],w=[1,11],v=[1,12],b=[1,13],E=[1,14],S={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:function(R,B,z,Y,nt,ot,ft){var wt=ot.length-1;switch(nt){case 1:return ot[wt-1];case 2:this.$=[];break;case 3:ot[wt-1].push(ot[wt]),this.$=ot[wt-1];break;case 4:case 5:this.$=ot[wt];break;case 6:case 7:this.$=[];break;case 8:Y.setDiagramTitle(ot[wt].substr(6)),this.$=ot[wt].substr(6);break;case 9:this.$=ot[wt].trim(),Y.setAccTitle(this.$);break;case 10:case 11:this.$=ot[wt].trim(),Y.setAccDescription(this.$);break;case 12:Y.addSection(ot[wt].substr(8)),this.$=ot[wt].substr(8);break;case 13:Y.addTask(ot[wt-1],ot[wt]),this.$="task";break}},table:[{3:1,4:[1,2]},{1:[3]},i(a,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:f,12:g,14:w,16:v,17:b,18:E},i(a,[2,7],{1:[2,1]}),i(a,[2,3]),{9:15,11:f,12:g,14:w,16:v,17:b,18:E},i(a,[2,5]),i(a,[2,6]),i(a,[2,8]),{13:[1,16]},{15:[1,17]},i(a,[2,11]),i(a,[2,12]),{19:[1,18]},i(a,[2,4]),i(a,[2,9]),i(a,[2,10]),i(a,[2,13])],defaultActions:{},parseError:function(R,B){if(B.recoverable)this.trace(R);else{var z=new Error(R);throw z.hash=B,z}},parse:function(R){var B=this,z=[0],Y=[],nt=[null],ot=[],ft=this.table,wt="",mt=0,ct=0,rt=2,it=1,gt=ot.slice.call(arguments,1),Q=Object.create(this.lexer),dt={yy:{}};for(var K in this.yy)Object.prototype.hasOwnProperty.call(this.yy,K)&&(dt.yy[K]=this.yy[K]);Q.setInput(R,dt.yy),dt.yy.lexer=Q,dt.yy.parser=this,typeof Q.yylloc>"u"&&(Q.yylloc={});var yt=Q.yylloc;ot.push(yt);var V=Q.options&&Q.options.ranges;typeof dt.yy.parseError=="function"?this.parseError=dt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ot(){var Ae;return Ae=Y.pop()||Q.lex()||it,typeof Ae!="number"&&(Ae instanceof Array&&(Y=Ae,Ae=Y.pop()),Ae=B.symbols_[Ae]||Ae),Ae}for(var It,jt,xt,Ft,Ct={},kt,Gt,Fe,Mt;;){if(jt=z[z.length-1],this.defaultActions[jt]?xt=this.defaultActions[jt]:((It===null||typeof It>"u")&&(It=Ot()),xt=ft[jt]&&ft[jt][It]),typeof xt>"u"||!xt.length||!xt[0]){var pn="";Mt=[];for(kt in ft[jt])this.terminals_[kt]&&kt>rt&&Mt.push("'"+this.terminals_[kt]+"'");Q.showPosition?pn="Parse error on line "+(mt+1)+`: +`+Q.showPosition()+` +Expecting `+Mt.join(", ")+", got '"+(this.terminals_[It]||It)+"'":pn="Parse error on line "+(mt+1)+": Unexpected "+(It==it?"end of input":"'"+(this.terminals_[It]||It)+"'"),this.parseError(pn,{text:Q.match,token:this.terminals_[It]||It,line:Q.yylineno,loc:yt,expected:Mt})}if(xt[0]instanceof Array&&xt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+jt+", token: "+It);switch(xt[0]){case 1:z.push(It),nt.push(Q.yytext),ot.push(Q.yylloc),z.push(xt[1]),It=null,ct=Q.yyleng,wt=Q.yytext,mt=Q.yylineno,yt=Q.yylloc;break;case 2:if(Gt=this.productions_[xt[1]][1],Ct.$=nt[nt.length-Gt],Ct._$={first_line:ot[ot.length-(Gt||1)].first_line,last_line:ot[ot.length-1].last_line,first_column:ot[ot.length-(Gt||1)].first_column,last_column:ot[ot.length-1].last_column},V&&(Ct._$.range=[ot[ot.length-(Gt||1)].range[0],ot[ot.length-1].range[1]]),Ft=this.performAction.apply(Ct,[wt,ct,mt,dt.yy,xt[1],nt,ot].concat(gt)),typeof Ft<"u")return Ft;Gt&&(z=z.slice(0,-1*Gt*2),nt=nt.slice(0,-1*Gt),ot=ot.slice(0,-1*Gt)),z.push(this.productions_[xt[1]][0]),nt.push(Ct.$),ot.push(Ct._$),Fe=ft[z[z.length-2]][z[z.length-1]],z.push(Fe);break;case 3:return!0}}return!0}},_=function(){var F={EOF:1,parseError:function(B,z){if(this.yy.parser)this.yy.parser.parseError(B,z);else throw new Error(B)},setInput:function(R,B){return this.yy=B||this.yy||{},this._input=R,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var R=this._input[0];this.yytext+=R,this.yyleng++,this.offset++,this.match+=R,this.matched+=R;var B=R.match(/(?:\r\n?|\n).*/g);return B?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),R},unput:function(R){var B=R.length,z=R.split(/(?:\r\n?|\n)/g);this._input=R+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-B),this.offset-=B;var Y=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),z.length-1&&(this.yylineno-=z.length-1);var nt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:z?(z.length===Y.length?this.yylloc.first_column:0)+Y[Y.length-z.length].length-z[0].length:this.yylloc.first_column-B},this.options.ranges&&(this.yylloc.range=[nt[0],nt[0]+this.yyleng-B]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(R){this.unput(this.match.slice(R))},pastInput:function(){var R=this.matched.substr(0,this.matched.length-this.match.length);return(R.length>20?"...":"")+R.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var R=this.match;return R.length<20&&(R+=this._input.substr(0,20-R.length)),(R.substr(0,20)+(R.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var R=this.pastInput(),B=new Array(R.length+1).join("-");return R+this.upcomingInput()+` +`+B+"^"},test_match:function(R,B){var z,Y,nt;if(this.options.backtrack_lexer&&(nt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(nt.yylloc.range=this.yylloc.range.slice(0))),Y=R[0].match(/(?:\r\n?|\n).*/g),Y&&(this.yylineno+=Y.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Y?Y[Y.length-1].length-Y[Y.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+R[0].length},this.yytext+=R[0],this.match+=R[0],this.matches=R,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(R[0].length),this.matched+=R[0],z=this.performAction.call(this,this.yy,this,B,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),z)return z;if(this._backtrack){for(var ot in nt)this[ot]=nt[ot];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var R,B,z,Y;this._more||(this.yytext="",this.match="");for(var nt=this._currentRules(),ot=0;otB[0].length)){if(B=z,Y=ot,this.options.backtrack_lexer){if(R=this.test_match(z,nt[ot]),R!==!1)return R;if(this._backtrack){B=!1;continue}else return!1}else if(!this.options.flex)break}return B?(R=this.test_match(B,nt[Y]),R!==!1?R:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var B=this.next();return B||this.lex()},begin:function(B){this.conditionStack.push(B)},popState:function(){var B=this.conditionStack.length-1;return B>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(B){return B=this.conditionStack.length-1-Math.abs(B||0),B>=0?this.conditionStack[B]:"INITIAL"},pushState:function(B){this.begin(B)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(B,z,Y,nt){switch(Y){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}};return F}();S.lexer=_;function M(){this.yy={}}return M.prototype=S,S.Parser=M,new M}();a2t.parser=a2t;const YZe=a2t;let OD="";const o2t=[],CB=[],SB=[],XZe=function(){o2t.length=0,CB.length=0,OD="",SB.length=0,ag()},QZe=function(i){OD=i,o2t.push(i)},JZe=function(){return o2t},ZZe=function(){let i=bHt();const a=100;let f=0;for(;!i&&f{f.people&&i.push(...f.people)}),[...new Set(i)].sort()},etn=function(i,a){const f=a.substr(1).split(":");let g=0,w=[];f.length===1?(g=Number(f[0]),w=[]):(g=Number(f[0]),w=f[1].split(","));const v=w.map(E=>E.trim()),b={section:OD,type:OD,people:v,task:i,score:g};SB.push(b)},ntn=function(i){const a={section:OD,type:OD,description:i,task:i,classes:[]};CB.push(a)},bHt=function(){const i=function(f){return SB[f].processed};let a=!0;for(const[f,g]of SB.entries())i(f),a=a&&g.processed;return a},wHt={getConfig:()=>Re().journey,clear:XZe,setDiagramTitle:S2,getDiagramTitle:Zg,setAccTitle:og,getAccTitle:Xg,setAccDescription:Qg,getAccDescription:Jg,addSection:QZe,getSections:JZe,getTasks:ZZe,addTask:etn,addTaskOrg:ntn,getActors:function(){return ttn()}},rtn=i=>`.label { + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + color: ${i.textColor}; + } + .mouth { + stroke: #666; + } + + line { + stroke: ${i.textColor} + } + + .legend { + fill: ${i.textColor}; + } + + .label text { + fill: #333; + } + .label { + color: ${i.textColor} + } + + .face { + ${i.faceColor?`fill: ${i.faceColor}`:"fill: #FFF8DC"}; + stroke: #999; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${i.mainBkg}; + stroke: ${i.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${i.arrowheadColor}; + } + + .edgePath .path { + stroke: ${i.lineColor}; + stroke-width: 1.5px; + } + + .flowchart-link { + stroke: ${i.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${i.edgeLabelBackground}; + rect { + opacity: 0.5; + } + text-align: center; + } + + .cluster rect { + } + + .cluster text { + fill: ${i.titleColor}; + } + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + font-size: 12px; + background: ${i.tertiaryColor}; + border: 1px solid ${i.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .task-type-0, .section-type-0 { + ${i.fillType0?`fill: ${i.fillType0}`:""}; + } + .task-type-1, .section-type-1 { + ${i.fillType0?`fill: ${i.fillType1}`:""}; + } + .task-type-2, .section-type-2 { + ${i.fillType0?`fill: ${i.fillType2}`:""}; + } + .task-type-3, .section-type-3 { + ${i.fillType0?`fill: ${i.fillType3}`:""}; + } + .task-type-4, .section-type-4 { + ${i.fillType0?`fill: ${i.fillType4}`:""}; + } + .task-type-5, .section-type-5 { + ${i.fillType0?`fill: ${i.fillType5}`:""}; + } + .task-type-6, .section-type-6 { + ${i.fillType0?`fill: ${i.fillType6}`:""}; + } + .task-type-7, .section-type-7 { + ${i.fillType0?`fill: ${i.fillType7}`:""}; + } + + .actor-0 { + ${i.actor0?`fill: ${i.actor0}`:""}; + } + .actor-1 { + ${i.actor1?`fill: ${i.actor1}`:""}; + } + .actor-2 { + ${i.actor2?`fill: ${i.actor2}`:""}; + } + .actor-3 { + ${i.actor3?`fill: ${i.actor3}`:""}; + } + .actor-4 { + ${i.actor4?`fill: ${i.actor4}`:""}; + } + .actor-5 { + ${i.actor5?`fill: ${i.actor5}`:""}; + } +`,c2t=function(i,a){return LY(i,a)},itn=function(i,a){const g=i.append("circle").attr("cx",a.cx).attr("cy",a.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),w=i.append("g");w.append("circle").attr("cx",a.cx-15/3).attr("cy",a.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),w.append("circle").attr("cx",a.cx+15/3).attr("cy",a.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function v(S){const _=YL().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);S.append("path").attr("class","mouth").attr("d",_).attr("transform","translate("+a.cx+","+(a.cy+2)+")")}function b(S){const _=YL().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);S.append("path").attr("class","mouth").attr("d",_).attr("transform","translate("+a.cx+","+(a.cy+7)+")")}function E(S){S.append("line").attr("class","mouth").attr("stroke",2).attr("x1",a.cx-5).attr("y1",a.cy+7).attr("x2",a.cx+5).attr("y2",a.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return a.score>3?v(w):a.score<3?b(w):E(w),g},mHt=function(i,a){const f=i.append("circle");return f.attr("cx",a.cx),f.attr("cy",a.cy),f.attr("class","actor-"+a.pos),f.attr("fill",a.fill),f.attr("stroke",a.stroke),f.attr("r",a.r),f.class!==void 0&&f.attr("class",f.class),a.title!==void 0&&f.append("title").text(a.title),f},vHt=function(i,a){return URe(i,a)},stn=function(i,a){function f(w,v,b,E,S){return w+","+v+" "+(w+b)+","+v+" "+(w+b)+","+(v+E-S)+" "+(w+b-S*1.2)+","+(v+E)+" "+w+","+(v+E)}const g=i.append("polygon");g.attr("points",f(a.x,a.y,50,20,7)),g.attr("class","labelBox"),a.y=a.y+a.labelMargin,a.x=a.x+.5*a.labelMargin,vHt(i,a)},atn=function(i,a,f){const g=i.append("g"),w=_9();w.x=a.x,w.y=a.y,w.fill=a.fill,w.width=f.width*a.taskCount+f.diagramMarginX*(a.taskCount-1),w.height=f.height,w.class="journey-section section-type-"+a.num,w.rx=3,w.ry=3,c2t(g,w),xHt(f)(a.text,g,w.x,w.y,w.width,w.height,{class:"journey-section section-type-"+a.num},f,a.colour)};let yHt=-1;const otn=function(i,a,f){const g=a.x+f.width/2,w=i.append("g");yHt++;const v=300+5*30;w.append("line").attr("id","task"+yHt).attr("x1",g).attr("y1",a.y).attr("x2",g).attr("y2",v).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),itn(w,{cx:g,cy:300+(5-a.score)*30,score:a.score});const b=_9();b.x=a.x,b.y=a.y,b.fill=a.fill,b.width=f.width,b.height=f.height,b.class="task task-type-"+a.num,b.rx=3,b.ry=3,c2t(w,b);let E=a.x+14;a.people.forEach(S=>{const _=a.actors[S].color,M={cx:E,cy:a.y,r:7,fill:_,stroke:"#000",title:S,pos:a.actors[S].position};mHt(w,M),E+=10}),xHt(f)(a.task,w,b.x,b.y,b.width,b.height,{class:"task"},f,a.colour)},ctn=function(i,a){sRt(i,a)},xHt=function(){function i(w,v,b,E,S,_,M,F){const R=v.append("text").attr("x",b+S/2).attr("y",E+_/2+5).style("font-color",F).style("text-anchor","middle").text(w);g(R,M)}function a(w,v,b,E,S,_,M,F,R){const{taskFontSize:B,taskFontFamily:z}=F,Y=w.split(//gi);for(let nt=0;nt{const w=Vx[g].color,v={cx:20,cy:f,r:7,fill:w,stroke:"#000",pos:Vx[g].position};_B.drawCircle(i,v);const b={x:40,y:f+7,fill:"#666",text:g,textMargin:a.boxTextMargin|5};_B.drawText(i,b),f+=20})}const DX=Re().journey,q9=DX.leftMargin,htn=function(i,a,f,g){const w=Re().journey,v=Re().securityLevel;let b;v==="sandbox"&&(b=Tr("#i"+a));const E=Tr(v==="sandbox"?b.nodes()[0].contentDocument.body:"body");em.init();const S=E.select("#"+a);_B.initGraphics(S);const _=g.db.getTasks(),M=g.db.getDiagramTitle(),F=g.db.getActors();for(const ot in Vx)delete Vx[ot];let R=0;F.forEach(ot=>{Vx[ot]={color:w.actorColours[R%w.actorColours.length],position:R},R++}),ltn(S),em.insert(0,0,q9,Object.keys(Vx).length*50),ftn(S,_,0);const B=em.getBounds();M&&S.append("text").text(M).attr("x",q9).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);const z=B.stopy-B.starty+2*w.diagramMarginY,Y=q9+B.stopx+2*w.diagramMarginX;sg(S,z,Y,w.useMaxWidth),S.append("line").attr("x1",q9).attr("y1",w.height*4).attr("x2",Y-q9-4).attr("y2",w.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");const nt=M?70:0;S.attr("viewBox",`${B.startx} -25 ${Y} ${z+nt}`),S.attr("preserveAspectRatio","xMinYMin meet"),S.attr("height",z+nt+25)},em={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},updateVal:function(i,a,f,g){i[a]===void 0?i[a]=f:i[a]=g(f,i[a])},updateBounds:function(i,a,f,g){const w=Re().journey,v=this;let b=0;function E(S){return function(M){b++;const F=v.sequenceItems.length-b+1;v.updateVal(M,"starty",a-F*w.boxMargin,Math.min),v.updateVal(M,"stopy",g+F*w.boxMargin,Math.max),v.updateVal(em.data,"startx",i-F*w.boxMargin,Math.min),v.updateVal(em.data,"stopx",f+F*w.boxMargin,Math.max),S!=="activation"&&(v.updateVal(M,"startx",i-F*w.boxMargin,Math.min),v.updateVal(M,"stopx",f+F*w.boxMargin,Math.max),v.updateVal(em.data,"starty",a-F*w.boxMargin,Math.min),v.updateVal(em.data,"stopy",g+F*w.boxMargin,Math.max))}}this.sequenceItems.forEach(E())},insert:function(i,a,f,g){const w=Math.min(i,f),v=Math.max(i,f),b=Math.min(a,g),E=Math.max(a,g);this.updateVal(em.data,"startx",w,Math.min),this.updateVal(em.data,"starty",b,Math.min),this.updateVal(em.data,"stopx",v,Math.max),this.updateVal(em.data,"stopy",E,Math.max),this.updateBounds(w,b,v,E)},bumpVerticalPos:function(i){this.verticalPos=this.verticalPos+i,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},u2t=DX.sectionFills,kHt=DX.sectionColours,ftn=function(i,a,f){const g=Re().journey;let w="";const v=g.height*2+g.diagramMarginY,b=f+v;let E=0,S="#CCC",_="black",M=0;for(const[F,R]of a.entries()){if(w!==R.section){S=u2t[E%u2t.length],M=E%u2t.length,_=kHt[E%kHt.length];let z=0;const Y=R.section;for(let ot=F;ot(Vx[Y]&&(z[Y]=Vx[Y]),z),{});R.x=F*g.taskMargin+F*g.width+q9,R.y=b,R.width=g.diagramMarginX,R.height=g.diagramMarginY,R.colour=_,R.fill=S,R.num=M,R.actors=B,_B.drawTask(i,R,g),em.insert(R.x,R.y,R.x+R.width+g.taskMargin,300+5*30)}},EHt={setConf:utn,draw:htn},dtn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:YZe,db:wHt,renderer:EHt,styles:rtn,init:i=>{EHt.setConf(i.journey),wHt.clear()}}},Symbol.toStringTag,{value:"Module"})),gtn=(i,a,f)=>{const{parentById:g}=f,w=new Set;let v=i;for(;v;){if(w.add(v),v===a)return v;v=g[v]}for(v=a;v;){if(w.has(v))return v;v=g[v]}return"root"};function MX(i){throw new Error('Could not dynamically require "'+i+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var THt={exports:{}};(function(i,a){(function(f){i.exports=f()})(function(){return function(){function f(g,w,v){function b(_,M){if(!w[_]){if(!g[_]){var F=typeof MX=="function"&&MX;if(!M&&F)return F(_,!0);if(E)return E(_,!0);var R=new Error("Cannot find module '"+_+"'");throw R.code="MODULE_NOT_FOUND",R}var B=w[_]={exports:{}};g[_][0].call(B.exports,function(z){var Y=g[_][1][z];return b(Y||z)},B,B.exports,f,g,w,v)}return w[_].exports}for(var E=typeof MX=="function"&&MX,S=0;S0&&arguments[0]!==void 0?arguments[0]:{},R=F.defaultLayoutOptions,B=R===void 0?{}:R,z=F.algorithms,Y=z===void 0?["layered","stress","mrtree","radial","force","disco","sporeOverlap","sporeCompaction","rectpacking"]:z,nt=F.workerFactory,ot=F.workerUrl;if(b(this,_),this.defaultLayoutOptions=B,this.initialized=!1,typeof ot>"u"&&typeof nt>"u")throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");var ft=nt;typeof ot<"u"&&typeof nt>"u"&&(ft=function(ct){return new Worker(ct)});var wt=ft(ot);if(typeof wt.postMessage!="function")throw new TypeError("Created worker does not provide the required 'postMessage' function.");this.worker=new S(wt),this.worker.postMessage({cmd:"register",algorithms:Y}).then(function(mt){return M.initialized=!0}).catch(console.err)}return v(_,[{key:"layout",value:function(F){var R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},B=R.layoutOptions,z=B===void 0?this.defaultLayoutOptions:B,Y=R.logging,nt=Y===void 0?!1:Y,ot=R.measureExecutionTime,ft=ot===void 0?!1:ot;return F?this.worker.postMessage({cmd:"layout",graph:F,layoutOptions:z,options:{logging:nt,measureExecutionTime:ft}}):Promise.reject(new Error("Missing mandatory parameter 'graph'."))}},{key:"knownLayoutAlgorithms",value:function(){return this.worker.postMessage({cmd:"algorithms"})}},{key:"knownLayoutOptions",value:function(){return this.worker.postMessage({cmd:"options"})}},{key:"knownLayoutCategories",value:function(){return this.worker.postMessage({cmd:"categories"})}},{key:"terminateWorker",value:function(){this.worker.terminate()}}]),_}();w.default=E;var S=function(){function _(M){var F=this;if(b(this,_),M===void 0)throw new Error("Missing mandatory parameter 'worker'.");this.resolvers={},this.worker=M,this.worker.onmessage=function(R){setTimeout(function(){F.receive(F,R)},0)}}return v(_,[{key:"postMessage",value:function(F){var R=this.id||0;this.id=R+1,F.id=R;var B=this;return new Promise(function(z,Y){B.resolvers[R]=function(nt,ot){nt?(B.convertGwtStyleError(nt),Y(nt)):z(ot)},B.worker.postMessage(F)})}},{key:"receive",value:function(F,R){var B=R.data,z=F.resolvers[B.id];z&&(delete F.resolvers[B.id],B.error?z(B.error):z(null,B.data))}},{key:"terminate",value:function(){this.worker.terminate&&this.worker.terminate()}},{key:"convertGwtStyleError",value:function(F){if(F){var R=F.__java$exception;R&&(R.cause&&R.cause.backingJsObject&&(F.cause=R.cause.backingJsObject,this.convertGwtStyleError(F.cause)),delete F.__java$exception)}}}]),_}()},{}],2:[function(f,g,w){(function(v){(function(){var b;typeof window<"u"?b=window:typeof v<"u"?b=v:typeof self<"u"&&(b=self);var E;function S(){}function _(){}function M(){}function F(){}function R(){}function B(){}function z(){}function Y(){}function nt(){}function ot(){}function ft(){}function wt(){}function mt(){}function ct(){}function rt(){}function it(){}function gt(){}function Q(){}function dt(){}function K(){}function yt(){}function V(){}function Ot(){}function It(){}function jt(){}function xt(){}function Ft(){}function Ct(){}function kt(){}function Gt(){}function Fe(){}function Mt(){}function pn(){}function Ae(){}function ye(){}function tn(){}function sn(){}function be(){}function Ne(){}function Xt(){}function _e(){}function xe(){}function Mn(){}function ce(){}function Br(){}function we(){}function Fi(){}function mi(){}function ga(){}function Ss(){}function za(){}function br(){}function An(){}function Nn(){}function Bn(){}function ke(){}function pe(){}function Je(){}function an(){}function xn(){}function qa(){}function xo(){}function ko(){}function va(){}function Ha(){}function ds(){}function Fu(){}function Zs(){}function d1(){}function I2(){}function ll(){}function Ic(){}function wc(){}function Ea(){}function gu(){}function ta(){}function fo(){}function mc(){}function ca(){}function ya(){}function ea(){}function Zl(){}function Uc(){}function rm(){}function kh(){}function Md(){}function w0(){}function Id(){}function m0(){}function hg(){}function Gi(){}function cn(){}function Nr(){}function Si(){}function vc(){}function Rc(){}function Eh(){}function Zc(){}function Qh(){}function Od(){}function cs(){}function As(){}function to(){}function Ci(){}function pu(){}function Le(){}function iy(){}function $e(){}function g1(){}function ip(){}function sy(){}function D8(){}function g4(){}function th(){}function fg(){}function O2(){}function M8(){}function N2(){}function p4(){}function U1(){}function Nd(){}function Pd(){}function I8(){}function im(){}function Gx(){}function hb(){}function Kx(){}function b4(){}function ay(){}function sp(){}function BD(){}function $l(){}function U9(){}function Gc(){}function $X(){}function P2(){}function zX(){}function MB(){}function qX(){}function IB(){}function p1(){}function oy(){}function G9(){}function OB(){}function fb(){}function cy(){}function HX(){}function F2(){}function VX(){}function UX(){}function Wx(){}function K9(){}function NB(){}function O8(){}function GX(){}function N8(){}function KX(){}function WX(){}function YX(){}function XX(){}function QX(){}function JX(){}function ZX(){}function tQ(){}function eQ(){}function nQ(){}function rQ(){}function RD(){}function iQ(){}function sQ(){}function W9(){}function PB(){}function Yx(){}function aQ(){}function oQ(){}function cQ(){}function uQ(){}function lQ(){}function Y9(){}function jD(){}function FB(){}function w4(){}function m4(){}function hQ(){}function Lf(){}function Xx(){}function fQ(){}function P8(){}function v0(){}function dQ(){}function gQ(){}function pQ(){}function BB(){}function bQ(){}function X9(){}function Q9(){}function RB(){}function $D(){}function Qx(){}function wQ(){}function jB(){}function $B(){}function mQ(){}function vQ(){}function yQ(){}function xQ(){}function kQ(){}function EQ(){}function y0(){}function sm(){}function TQ(){}function J9(){}function Z9(){}function CQ(){}function v4(){}function F8(){}function zD(){}function uy(){}function B8(){}function SQ(){}function tC(){}function Fd(){}function zB(){}function qD(){}function R8(){}function HD(){}function qB(){}function _Q(){}function VD(){}function AQ(){}function LQ(){}function HB(){}function Jx(){}function VB(){}function Zx(){}function DQ(){}function UD(){}function MQ(){}function IQ(){}function OQ(){}function NQ(){}function UB(){}function PQ(){}function FQ(){}function GB(){}function BQ(){}function RQ(){}function jQ(){}function $Q(){}function KB(){}function zQ(){}function qQ(){}function WB(){}function YB(){}function XB(){}function HQ(){}function VQ(){}function j8(){}function t6(){}function eC(){}function UQ(){}function GD(){}function nC(){}function KD(){}function QB(){}function JB(){}function GQ(){}function KQ(){}function WQ(){}function ZB(){}function tR(){}function YQ(){}function XQ(){}function QQ(){}function JQ(){}function ZQ(){}function eR(){}function tJ(){}function eJ(){}function nJ(){}function rJ(){}function nR(){}function rC(){}function iJ(){}function sJ(){}function rR(){}function aJ(){}function oJ(){}function cJ(){}function uJ(){}function lJ(){}function hJ(){}function iR(){}function fJ(){}function sR(){}function dJ(){}function gJ(){}function pJ(){}function iC(){}function bJ(){}function sC(){}function wJ(){}function aR(){}function oR(){}function cR(){}function uR(){}function am(){}function lR(){}function hR(){}function fR(){}function dR(){}function mJ(){}function e6(){}function WD(){}function y4(){}function vJ(){}function yJ(){}function aC(){}function gR(){}function xJ(){}function kJ(){}function EJ(){}function TJ(){}function CJ(){}function SJ(){}function _J(){}function AJ(){}function LJ(){}function DJ(){}function oC(){}function pR(){}function MJ(){}function IJ(){}function OJ(){}function NJ(){}function PJ(){}function bR(){}function wR(){}function FJ(){}function mR(){}function vR(){}function BJ(){}function RJ(){}function jJ(){}function $J(){}function zJ(){}function qJ(){}function HJ(){}function VJ(){}function YD(){}function UJ(){}function $8(){}function yR(){}function GJ(){}function KJ(){}function WJ(){}function YJ(){}function XJ(){}function QJ(){}function JJ(){}function ZJ(){}function tZ(){}function eZ(){}function nZ(){}function rZ(){}function iZ(){}function sZ(){}function aZ(){}function n6(){}function xR(){}function oZ(){}function cZ(){}function uZ(){}function kR(){}function lZ(){}function cC(){}function hZ(){}function fZ(){}function dZ(){}function gZ(){}function pZ(){}function bZ(){}function wZ(){}function mZ(){}function vZ(){}function yZ(){}function r6(){}function xZ(){}function kZ(){}function EZ(){}function TZ(){}function CZ(){}function SZ(){}function _Z(){}function AZ(){}function uC(){}function LZ(){}function DZ(){}function MZ(){}function IZ(){}function OZ(){}function NZ(){}function PZ(){}function FZ(){}function i6(){}function ER(){}function BZ(){}function XD(){}function RZ(){}function jZ(){}function $Z(){}function zZ(){}function qZ(){}function HZ(){}function VZ(){}function TR(){}function UZ(){}function CR(){}function GZ(){}function SR(){}function _R(){}function AR(){}function KZ(){}function WZ(){}function LR(){}function YZ(){}function DR(){}function XZ(){}function QZ(){}function QD(){}function JZ(){}function ZZ(){}function ttt(){}function ett(){}function ntt(){}function MR(){}function rtt(){}function itt(){}function stt(){}function A2t(){}function att(){}function ott(){}function ctt(){}function utt(){}function ltt(){}function htt(){}function ftt(){}function dtt(){}function gtt(){}function ptt(){}function btt(){}function wtt(){}function mtt(){}function vtt(){}function ytt(){}function xtt(){}function Kc(){}function ktt(){}function lC(){}function yc(){}function bu(){}function Xi(){}function JD(){}function Ett(){}function Ttt(){}function Ctt(){}function s6(){}function B2(){}function z8(){}function Stt(){}function ZD(){}function _tt(){}function Att(){}function Ltt(){}function IR(){}function Dtt(){}function Mtt(){}function tM(){}function Itt(){}function zl(){}function Yu(){}function OR(){}function Ott(){}function Ntt(){}function ly(){}function x4(){}function hy(){}function ap(){}function a6(){}function eM(){}function NR(){}function PR(){}function Ptt(){}function G1(){}function FR(){}function fy(){}function q8(){}function nM(){}function o6(){}function db(){}function BR(){}function RR(){}function jR(){}function Ftt(){}function c6(){}function dy(){}function op(){}function gb(){}function k4(){}function H8(){}function hC(){}function rM(){}function Btt(){}function Rtt(){}function $R(){}function zR(){}function je(){}function V8(){}function qR(){}function HR(){}function jtt(){}function U8(){}function G8(){}function VR(){}function $tt(){}function ztt(){}function qtt(){}function Htt(){}function Vtt(){}function Utt(){}function iM(){}function Gtt(){}function Ktt(){}function UR(){}function fC(){}function Wtt(){}function sM(){}function K8(){}function W8(){}function Y8(){}function GR(){}function Ytt(){}function KR(){}function WR(){}function Xtt(){}function dC(){}function pb(){}function YR(){}function XR(){}function gC(){}function Qtt(){}function E4(){}function QR(){}function aM(){}function Oc(){}function oM(){}function cM(){}function pC(){}function Jtt(){}function Ztt(){}function bC(){}function tet(){}function wC(){}function mC(){}function b1(){}function uM(){}function lM(){}function u6(){}function eet(){}function net(){}function ret(){}function iet(){}function x0(){}function vC(){}function l6(){}function K1(){}function JR(){}function ZR(){}function tj(){}function ej(){}function nj(){}function rj(){}function w1(){}function Bu(){}function set(){}function aet(){}function oet(){}function Ru(){}function yC(){}function ij(){}function sj(){}function h6(){}function cet(){}function X8(){}function uet(){}function aj(){}function het(){}function fet(){}function xC(){}function oj(){}function hM(){}function kC(){}function det(){}function get(){}function fM(){}function EC(){}function W1(){}function Q8(){}function pet(){}function J8(){}function dM(){}function R2(){}function TC(){}function gM(){}function m1(){}function CC(){}function Y1(){}function X1(){}function bet(){}function wet(){}function T4(){}function Z8(){}function tE(){}function SC(){}function met(){}function vet(){}function f6(){}function cj(){}function uj(){}function yet(){}function lj(){}function xet(){}function hj(){}function pM(){}function ket(){}function _C(){}function Eet(){}function Tet(){}function Cet(){}function _et(){}function Aet(){}function fj(){}function Let(){}function Det(){}function Met(){}function dj(){}function Iet(){}function Oet(){}function AC(){}function Net(){}function Pet(){}function Fet(){}function Bet(){}function Ret(){}function jet(){}function gj(){}function $et(){}function pj(){}function zet(){}function bM(){}function qet(){}function bj(){}function Het(){}function wj(){}function Vet(){}function mj(){}function vj(){}function yj(){}function wM(){}function C4(){}function LC(){}function Q1(){}function xj(){}function eE(){}function mM(){}function kj(){}function j2(){}function Ej(){}function DC(){UC()}function Uet(){jM()}function Tj(){RH()}function Cj(){Mat()}function Sj(){b_()}function MC(){u6t()}function IC(){Vf()}function _j(){vxt()}function Aj(){TO()}function d6(){$M()}function om(){gI()}function nE(){UYt()}function Lj(){ok()}function Get(){vse()}function Dj(){m4t()}function g6(){ore()}function vM(){v4t()}function Mj(){Xse()}function Ket(){are()}function Ij(){g7()}function OC(){Ooe()}function NC(){Ioe()}function yM(){nie()}function Wet(){Noe()}function Yet(){Vb()}function Xet(){T$()}function Qet(){o8t()}function Jet(){De()}function Zet(){Poe()}function tnt(){cce()}function ent(){cre()}function nnt(){Ohe()}function rnt(){ure()}function int(){W0e()}function snt(){j6t()}function ant(){Sg()}function ont(){Wue()}function p6(){Cc()}function cnt(){mre()}function rE(){ak()}function Jh(){xkt()}function unt(){Ub()}function iE(){kkt()}function PC(){fd()}function lnt(){LO()}function hnt(){rct()}function fnt(){fot()}function Zh(){WZt()}function dnt(){Tq()}function gnt(){VH()}function Oj(){ai()}function pnt(){aH()}function Nj(){Y5t()}function Pj(){fat()}function Fj(){fV()}function Bj(){Okt()}function Df(t){Wn(t)}function Rj(t){this.a=t}function FC(t){this.a=t}function jj(t){this.a=t}function $j(t){this.a=t}function bnt(t){this.a=t}function wnt(t){this.a=t}function zj(t){this.a=t}function mnt(t){this.a=t}function qj(t){this.a=t}function bb(t){this.a=t}function vnt(t){this.a=t}function ynt(t){this.a=t}function xM(t){this.a=t}function xnt(t){this.a=t}function knt(t){this.a=t}function sE(t){this.a=t}function wb(t){this.a=t}function Hj(t){this.a=t}function aE(t){this.a=t}function S4(t){this.a=t}function kM(t){this.a=t}function b6(t){this.a=t}function EM(t){this.b=t}function dg(t){this.c=t}function Ent(t){this.a=t}function gy(t){this.a=t}function Vj(t){this.a=t}function Uj(t){this.a=t}function TM(t){this.a=t}function CM(t){this.a=t}function Gj(t){this.a=t}function w6(t){this.a=t}function oE(t){this.a=t}function Tnt(t){this.a=t}function Kj(t){this.a=t}function Wj(t){this.a=t}function Yj(t){this.a=t}function Xj(t){this.a=t}function xc(t){this.a=t}function cE(t){this.a=t}function uE(t){this.a=t}function cp(){this.a=[]}function Cnt(t,e){t.a=e}function Snt(t,e){t.a=e}function _nt(t,e){t.b=e}function Ant(t,e){t.b=e}function Lnt(t,e){t.b=e}function Qj(t,e){t.j=e}function L2t(t,e){t.g=e}function Jj(t,e){t.i=e}function Dnt(t,e){t.c=e}function m6(t,e){t.c=e}function D2t(t,e){t.d=e}function v6(t,e){t.d=e}function y(t,e){t.k=e}function p(t,e){t.c=e}function x(t,e){t.c=e}function C(t,e){t.a=e}function L(t,e){t.a=e}function O(t,e){t.f=e}function N(t,e){t.a=e}function j(t,e){t.b=e}function H(t,e){t.d=e}function q(t,e){t.i=e}function W(t,e){t.o=e}function Z(t,e){t.r=e}function st(t,e){t.a=e}function bt(t,e){t.b=e}function pt(t,e){t.e=e}function _t(t,e){t.f=e}function St(t,e){t.g=e}function Et(t,e){t.e=e}function Nt(t,e){t.f=e}function Pt(t,e){t.f=e}function qt(t,e){t.a=e}function re(t,e){t.b=e}function ee(t,e){t.n=e}function Ut(t,e){t.a=e}function de(t,e){t.c=e}function Yt(t,e){t.c=e}function Ee(t,e){t.c=e}function Te(t,e){t.a=e}function ie(t,e){t.a=e}function ze(t,e){t.d=e}function me(t,e){t.d=e}function yn(t,e){t.e=e}function nn(t,e){t.e=e}function qe(t,e){t.g=e}function Tn(t,e){t.f=e}function Xn(t,e){t.j=e}function lr(t,e){t.a=e}function Sn(t,e){t.a=e}function or(t,e){t.b=e}function pr(t){t.b=t.a}function kr(t){t.c=t.d.d}function wr(t){this.a=t}function Cr(t){this.a=t}function $n(t){this.a=t}function cr(t){this.a=t}function mr(t){this.a=t}function Sr(t){this.a=t}function gi(t){this.a=t}function ss(t){this.a=t}function na(t){this.a=t}function vi(t){this.a=t}function si(t){this.a=t}function Qi(t){this.a=t}function ks(t){this.a=t}function as(t){this.a=t}function Es(t){this.b=t}function eo(t){this.b=t}function Ta(t){this.b=t}function pa(t){this.a=t}function mo(t){this.a=t}function Kn(t){this.c=t}function G(t){this.c=t}function Vn(t){this.c=t}function gr(t){this.d=t}function nr(t){this.a=t}function Be(t){this.a=t}function Ls(t){this.a=t}function hr(t){this.a=t}function us(t){this.a=t}function Ya(t){this.a=t}function kc(t){this.a=t}function Ca(t){this.a=t}function oc(t){this.a=t}function ra(t){this.a=t}function no(t){this.a=t}function ql(t){this.a=t}function Sl(t){this.a=t}function mb(t){this.a=t}function vb(t){this.a=t}function v1(t){this.a=t}function up(t){this.a=t}function Bd(t){this.a=t}function cm(t){this.a=t}function py(t){this.a=t}function y6(t){this.a=t}function _4(t){this.a=t}function x6(t){this.a=t}function BC(t){this.a=t}function A4(t){this.a=t}function k0(t){this.a=t}function J1(t){this.a=t}function E0(t){this.a=t}function by(t){this.a=t}function $2(t){this.a=t}function Zj(t){this.a=t}function Mnt(t){this.a=t}function Int(t){this.a=t}function RC(t){this.a=t}function Ont(t){this.a=t}function Nnt(t){this.a=t}function L4(t){this.a=t}function t$(t){this.a=t}function lE(t){this.a=t}function SM(t){this.a=t}function jC(t){this.a=t}function e$(t){this.a=t}function n$(t){this.a=t}function Pnt(t){this.a=t}function lp(t){this.a=t}function $C(t){this.a=t}function _M(t){this.a=t}function z2(t){this.a=t}function T0(t){this.e=t}function D4(t){this.a=t}function yVt(t){this.a=t}function k6(t){this.a=t}function M2t(t){this.a=t}function xVt(t){this.a=t}function kVt(t){this.a=t}function EVt(t){this.a=t}function TVt(t){this.a=t}function CVt(t){this.a=t}function SVt(t){this.a=t}function _Vt(t){this.a=t}function AVt(t){this.a=t}function LVt(t){this.a=t}function DVt(t){this.a=t}function MVt(t){this.a=t}function I2t(t){this.a=t}function IVt(t){this.a=t}function OVt(t){this.a=t}function NVt(t){this.a=t}function PVt(t){this.a=t}function FVt(t){this.a=t}function BVt(t){this.a=t}function RVt(t){this.a=t}function jVt(t){this.a=t}function $Vt(t){this.a=t}function zVt(t){this.a=t}function qVt(t){this.a=t}function HVt(t){this.a=t}function VVt(t){this.a=t}function UVt(t){this.a=t}function GVt(t){this.a=t}function KVt(t){this.a=t}function WVt(t){this.a=t}function YVt(t){this.a=t}function XVt(t){this.a=t}function QVt(t){this.a=t}function JVt(t){this.a=t}function ZVt(t){this.a=t}function tUt(t){this.a=t}function eUt(t){this.a=t}function nUt(t){this.a=t}function rUt(t){this.a=t}function iUt(t){this.a=t}function sUt(t){this.a=t}function aUt(t){this.a=t}function oUt(t){this.a=t}function cUt(t){this.a=t}function uUt(t){this.a=t}function lUt(t){this.a=t}function hUt(t){this.a=t}function fUt(t){this.a=t}function dUt(t){this.a=t}function gUt(t){this.a=t}function pUt(t){this.a=t}function bUt(t){this.c=t}function wUt(t){this.b=t}function mUt(t){this.a=t}function vUt(t){this.a=t}function yUt(t){this.a=t}function xUt(t){this.a=t}function kUt(t){this.a=t}function EUt(t){this.a=t}function TUt(t){this.a=t}function CUt(t){this.a=t}function SUt(t){this.a=t}function _Ut(t){this.a=t}function AUt(t){this.a=t}function LUt(t){this.a=t}function DUt(t){this.a=t}function MUt(t){this.a=t}function IUt(t){this.a=t}function OUt(t){this.a=t}function NUt(t){this.a=t}function PUt(t){this.a=t}function FUt(t){this.a=t}function BUt(t){this.a=t}function RUt(t){this.a=t}function jUt(t){this.a=t}function $Ut(t){this.a=t}function zUt(t){this.a=t}function qUt(t){this.a=t}function HUt(t){this.a=t}function VUt(t){this.a=t}function gg(t){this.a=t}function M4(t){this.a=t}function UUt(t){this.a=t}function GUt(t){this.a=t}function KUt(t){this.a=t}function WUt(t){this.a=t}function YUt(t){this.a=t}function XUt(t){this.a=t}function QUt(t){this.a=t}function JUt(t){this.a=t}function ZUt(t){this.a=t}function tGt(t){this.a=t}function eGt(t){this.a=t}function nGt(t){this.a=t}function rGt(t){this.a=t}function iGt(t){this.a=t}function sGt(t){this.a=t}function aGt(t){this.a=t}function oGt(t){this.a=t}function cGt(t){this.a=t}function uGt(t){this.a=t}function lGt(t){this.a=t}function hGt(t){this.a=t}function fGt(t){this.a=t}function dGt(t){this.a=t}function gGt(t){this.a=t}function pGt(t){this.a=t}function bGt(t){this.a=t}function r$(t){this.a=t}function wGt(t){this.f=t}function mGt(t){this.a=t}function vGt(t){this.a=t}function yGt(t){this.a=t}function xGt(t){this.a=t}function kGt(t){this.a=t}function EGt(t){this.a=t}function TGt(t){this.a=t}function CGt(t){this.a=t}function SGt(t){this.a=t}function _Gt(t){this.a=t}function AGt(t){this.a=t}function LGt(t){this.a=t}function DGt(t){this.a=t}function MGt(t){this.a=t}function IGt(t){this.a=t}function OGt(t){this.a=t}function NGt(t){this.a=t}function PGt(t){this.a=t}function FGt(t){this.a=t}function BGt(t){this.a=t}function RGt(t){this.a=t}function jGt(t){this.a=t}function $Gt(t){this.a=t}function zGt(t){this.a=t}function qGt(t){this.a=t}function HGt(t){this.a=t}function VGt(t){this.a=t}function UGt(t){this.a=t}function Fnt(t){this.a=t}function O2t(t){this.a=t}function Oi(t){this.b=t}function GGt(t){this.a=t}function KGt(t){this.a=t}function WGt(t){this.a=t}function YGt(t){this.a=t}function XGt(t){this.a=t}function QGt(t){this.a=t}function JGt(t){this.a=t}function ZGt(t){this.b=t}function tKt(t){this.a=t}function AM(t){this.a=t}function eKt(t){this.a=t}function nKt(t){this.a=t}function N2t(t){this.c=t}function i$(t){this.e=t}function s$(t){this.a=t}function a$(t){this.a=t}function Bnt(t){this.a=t}function rKt(t){this.d=t}function iKt(t){this.a=t}function P2t(t){this.a=t}function F2t(t){this.a=t}function um(t){this.e=t}function vnn(){this.a=0}function _r(){dl(this)}function fe(){Qrt(this)}function Rnt(){zee(this)}function sKt(){}function lm(){this.c=qIt}function aKt(t,e){t.b+=e}function ynn(t,e){e.Wb(t)}function xnn(t){return t.a}function knn(t){return t.a}function Enn(t){return t.a}function Tnn(t){return t.a}function Cnn(t){return t.a}function at(t){return t.e}function Snn(){return null}function _nn(){return null}function Ann(){xwt(),oSn()}function Lnn(t){t.b.Of(t.e)}function oKt(t){t.b=new irt}function zC(t,e){t.b=e-t.b}function qC(t,e){t.a=e-t.a}function In(t,e){t.push(e)}function cKt(t,e){t.sort(e)}function uKt(t,e){e.jd(t.a)}function Dnn(t,e){Xs(e,t)}function Mnn(t,e,n){t.Yd(n,e)}function LM(t,e){t.e=e,e.b=t}function B2t(t){Vd(),this.a=t}function lKt(t){Vd(),this.a=t}function hKt(t){Vd(),this.a=t}function jnt(t){Dm(),this.a=t}function fKt(t){$E(),Aht.le(t)}function R2t(){R2t=V,new _r}function q2(){MJt.call(this)}function j2t(){MJt.call(this)}function $2t(){q2.call(this)}function $nt(){q2.call(this)}function dKt(){q2.call(this)}function DM(){q2.call(this)}function Xu(){q2.call(this)}function E6(){q2.call(this)}function Vr(){q2.call(this)}function Th(){q2.call(this)}function gKt(){q2.call(this)}function cc(){q2.call(this)}function pKt(){q2.call(this)}function bKt(){this.a=this}function o$(){this.Bb|=256}function wKt(){this.b=new TQt}function wy(t,e){t.length=e}function c$(t,e){ge(t.a,e)}function Inn(t,e){h6t(t.c,e)}function Onn(t,e){qs(t.b,e)}function Nnn(t,e){IH(t.a,e)}function Pnn(t,e){jat(t.a,e)}function hE(t,e){Ei(t.e,e)}function T6(t){WH(t.c,t.b)}function Fnn(t,e){t.kc().Nb(e)}function z2t(t){this.a=A2n(t)}function Os(){this.a=new _r}function mKt(){this.a=new _r}function q2t(){this.a=new BYt}function u$(){this.a=new fe}function znt(){this.a=new fe}function H2t(){this.a=new fe}function tf(){this.a=new I2}function H2(){this.a=new dse}function V2t(){this.a=new O2}function U2t(){this.a=new sre}function G2t(){this.a=new wZt}function vKt(){this.a=new fe}function yKt(){this.a=new fe}function xKt(){this.a=new fe}function K2t(){this.a=new fe}function kKt(){this.d=new fe}function EKt(){this.a=new Cre}function TKt(){this.a=new Os}function CKt(){this.a=new _r}function SKt(){this.b=new _r}function _Kt(){this.b=new fe}function W2t(){this.e=new fe}function AKt(){this.a=new Yet}function LKt(){this.d=new fe}function DKt(){Dne.call(this)}function MKt(){Dne.call(this)}function IKt(){fe.call(this)}function Y2t(){$2t.call(this)}function X2t(){u$.call(this)}function OKt(){gz.call(this)}function NKt(){K2t.call(this)}function HC(){sKt.call(this)}function qnt(){HC.call(this)}function C6(){sKt.call(this)}function Q2t(){C6.call(this)}function PKt(){ewt.call(this)}function FKt(){ewt.call(this)}function BKt(){ewt.call(this)}function RKt(){nwt.call(this)}function VC(){Wtt.call(this)}function J2t(){Wtt.call(this)}function Qu(){Ki.call(this)}function jKt(){tWt.call(this)}function $Kt(){tWt.call(this)}function zKt(){_r.call(this)}function qKt(){_r.call(this)}function HKt(){_r.call(this)}function Hnt(){Roe.call(this)}function VKt(){Os.call(this)}function UKt(){o$.call(this)}function Vnt(){Pmt.call(this)}function Z2t(){_r.call(this)}function Unt(){Pmt.call(this)}function Gnt(){_r.call(this)}function GKt(){_r.call(this)}function twt(){E4.call(this)}function KKt(){twt.call(this)}function WKt(){E4.call(this)}function YKt(){kj.call(this)}function ewt(){this.a=new Os}function XKt(){this.a=new _r}function QKt(){this.a=new fe}function nwt(){this.a=new _r}function S6(){this.a=new Ki}function JKt(){this.j=new fe}function ZKt(){this.a=new QWt}function tWt(){this.a=new Qtt}function rwt(){this.a=new Xi}function UC(){UC=V,yht=new _}function Knt(){Knt=V,xht=new nWt}function Wnt(){Wnt=V,kht=new eWt}function eWt(){sE.call(this,"")}function nWt(){sE.call(this,"")}function rWt(t){ooe.call(this,t)}function iWt(t){ooe.call(this,t)}function iwt(t){qj.call(this,t)}function swt(t){SYt.call(this,t)}function Bnn(t){SYt.call(this,t)}function Rnn(t){swt.call(this,t)}function jnn(t){swt.call(this,t)}function $nn(t){swt.call(this,t)}function sWt(t){Sst.call(this,t)}function aWt(t){Sst.call(this,t)}function oWt(t){jZt.call(this,t)}function cWt(t){Awt.call(this,t)}function GC(t){y$.call(this,t)}function awt(t){y$.call(this,t)}function uWt(t){y$.call(this,t)}function owt(t){c4n.call(this,t)}function cwt(t){owt.call(this,t)}function uc(t){aee.call(this,t)}function lWt(t){uc.call(this,t)}function _6(){uE.call(this,{})}function hWt(){hWt=V,Kve=new K}function l$(){l$=V,Cht=new oJt}function fWt(){fWt=V,r9t=new S}function uwt(){uwt=V,i9t=new ct}function h$(){h$=V,mA=new gt}function Ynt(t){EE(),this.a=t}function Xnt(t){F4t(),this.a=t}function my(t){Nit(),this.f=t}function Qnt(t){Nit(),this.f=t}function dWt(t){KZt(),this.a=t}function gWt(t){t.b=null,t.c=0}function znn(t,e){t.e=e,Wde(t,e)}function qnn(t,e){t.a=e,Y4n(t)}function Jnt(t,e,n){t.a[e.g]=n}function Hnn(t,e,n){lyn(n,t,e)}function Vnn(t,e){jan(e.i,t.n)}function pWt(t,e){ubn(t).Cd(e)}function Unn(t,e){t.a.ec().Mc(e)}function bWt(t,e){return t.g-e.g}function Gnn(t,e){return t*t/e}function Ie(t){return Wn(t),t}function Rt(t){return Wn(t),t}function MM(t){return Wn(t),t}function Knn(t){return new cE(t)}function Wnn(t){return new Oy(t)}function lwt(t){return Wn(t),t}function Ynn(t){return Wn(t),t}function f$(t){uc.call(this,t)}function Bo(t){uc.call(this,t)}function wWt(t){uc.call(this,t)}function Znt(t){aee.call(this,t)}function fE(t){uc.call(this,t)}function zn(t){uc.call(this,t)}function Ro(t){uc.call(this,t)}function mWt(t){uc.call(this,t)}function A6(t){uc.call(this,t)}function hp(t){uc.call(this,t)}function fp(t){uc.call(this,t)}function L6(t){uc.call(this,t)}function Rd(t){uc.call(this,t)}function trt(t){uc.call(this,t)}function Yr(t){uc.call(this,t)}function hl(t){Wn(t),this.a=t}function hwt(t){return cw(t),t}function KC(t){Eyt(t,t.length)}function WC(t){return t.b==t.c}function vy(t){return!!t&&t.b}function Xnn(t){return!!t&&t.k}function Qnn(t){return!!t&&t.j}function Jnn(t,e,n){t.c.Ef(e,n)}function vWt(t,e){t.be(e),e.ae(t)}function D6(t){Vd(),this.a=Hr(t)}function ert(){this.a=Gr(Hr(ao))}function yWt(){throw at(new Vr)}function Znn(){throw at(new Vr)}function fwt(){throw at(new Vr)}function xWt(){throw at(new Vr)}function trn(){throw at(new Vr)}function ern(){throw at(new Vr)}function d$(){d$=V,$E()}function dp(){Sr.call(this,"")}function YC(){Sr.call(this,"")}function yb(){Sr.call(this,"")}function I4(){Sr.call(this,"")}function dwt(t){Bo.call(this,t)}function gwt(t){Bo.call(this,t)}function jd(t){zn.call(this,t)}function dE(t){Ta.call(this,t)}function kWt(t){dE.call(this,t)}function nrt(t){uz.call(this,t)}function rrt(t){Kmt.call(this,t,0)}function irt(){s3t.call(this,12,3)}function ut(t,e){return Zne(t,e)}function g$(t,e){return zst(t,e)}function nrn(t,e){return t.a-e.a}function rrn(t,e){return t.a-e.a}function irn(t,e){return t.a-e.a}function srn(t,e){return e in t.a}function EWt(t){return t.a?t.b:0}function arn(t){return t.a?t.b:0}function orn(t,e,n){e.Cd(t.a[n])}function crn(t,e,n){e.Pe(t.a[n])}function urn(t,e){t.b=new io(e)}function lrn(t,e){return t.b=e,t}function TWt(t,e){return t.c=e,t}function CWt(t,e){return t.f=e,t}function hrn(t,e){return t.g=e,t}function pwt(t,e){return t.a=e,t}function bwt(t,e){return t.f=e,t}function frn(t,e){return t.k=e,t}function wwt(t,e){return t.a=e,t}function drn(t,e){return t.e=e,t}function mwt(t,e){return t.e=e,t}function grn(t,e){return t.f=e,t}function prn(t,e){t.b=!0,t.d=e}function brn(t,e){return t.b-e.b}function wrn(t,e){return t.g-e.g}function mrn(t,e){return t?0:e-1}function SWt(t,e){return t?0:e-1}function vrn(t,e){return t?e-1:0}function yrn(t,e){return t.s-e.s}function xrn(t,e){return e.rg(t)}function hm(t,e){return t.b=e,t}function p$(t,e){return t.a=e,t}function fm(t,e){return t.c=e,t}function dm(t,e){return t.d=e,t}function gm(t,e){return t.e=e,t}function vwt(t,e){return t.f=e,t}function XC(t,e){return t.a=e,t}function gE(t,e){return t.b=e,t}function pE(t,e){return t.c=e,t}function Ve(t,e){return t.c=e,t}function fn(t,e){return t.b=e,t}function Ue(t,e){return t.d=e,t}function Ge(t,e){return t.e=e,t}function krn(t,e){return t.f=e,t}function Ke(t,e){return t.g=e,t}function We(t,e){return t.a=e,t}function Ye(t,e){return t.i=e,t}function Xe(t,e){return t.j=e,t}function Ern(t,e){Vb(),hc(e,t)}function Trn(t,e,n){$un(t.a,e,n)}function b$(t){pit.call(this,t)}function _Wt(t){H2n.call(this,t)}function AWt(t){one.call(this,t)}function ywt(t){one.call(this,t)}function xb(t){$m.call(this,t)}function LWt(t){ist.call(this,t)}function DWt(t){ist.call(this,t)}function MWt(){Lmt.call(this,"")}function Sa(){this.a=0,this.b=0}function IWt(){this.b=0,this.a=0}function OWt(t,e){t.b=0,Hy(t,e)}function NWt(t,e){return t.k=e,t}function Crn(t,e){return t.j=e,t}function Srn(t,e){t.c=e,t.b=!0}function PWt(){PWt=V,aye=Byn()}function kb(){kb=V,Z7e=Wvn()}function FWt(){FWt=V,da=a3n()}function xwt(){xwt=V,b2=e7()}function bE(){bE=V,zIt=Yvn()}function BWt(){BWt=V,BTe=Xvn()}function kwt(){kwt=V,Bc=G4n()}function y1(t){return t.e&&t.e()}function RWt(t){return t.l|t.m<<22}function jWt(t,e){return t.c._b(e)}function $Wt(t,e){return Bue(t.b,e)}function srt(t){return t?t.d:null}function _rn(t){return t?t.g:null}function Arn(t){return t?t.i:null}function V2(t){return wg(t),t.o}function O4(t,e){return t.a+=e,t}function art(t,e){return t.a+=e,t}function gp(t,e){return t.a+=e,t}function pm(t,e){return t.a+=e,t}function Ewt(t,e){for(;t.Bd(e););}function w$(t){this.a=new M6(t)}function zWt(){throw at(new Vr)}function qWt(){throw at(new Vr)}function HWt(){throw at(new Vr)}function VWt(){throw at(new Vr)}function UWt(){throw at(new Vr)}function GWt(){throw at(new Vr)}function pp(t){this.a=new Bit(t)}function KWt(){this.a=new L_(PLt)}function WWt(){this.b=new L_(tLt)}function YWt(){this.a=new L_(sDt)}function XWt(){this.b=new L_(bdt)}function QWt(){this.b=new L_(bdt)}function m$(t){this.a=0,this.b=t}function Twt(t){Spe(),ySn(this,t)}function wE(t){return Mb(t),t.a}function IM(t){return t.b!=t.d.c}function Cwt(t,e){return t.d[e.p]}function JWt(t,e){return Bkn(t,e)}function Swt(t,e,n){t.splice(e,n)}function N4(t,e){for(;t.Re(e););}function ZWt(t){t.c?f0e(t):d0e(t)}function tYt(){throw at(new Vr)}function eYt(){throw at(new Vr)}function nYt(){throw at(new Vr)}function rYt(){throw at(new Vr)}function iYt(){throw at(new Vr)}function sYt(){throw at(new Vr)}function aYt(){throw at(new Vr)}function oYt(){throw at(new Vr)}function cYt(){throw at(new Vr)}function uYt(){throw at(new Vr)}function Lrn(){throw at(new cc)}function Drn(){throw at(new cc)}function OM(t){this.a=new lYt(t)}function lYt(t){Ngn(this,t,f4n())}function NM(t){return!t||$ee(t)}function PM(t){return _d[t]!=-1}function Mrn(){MU!=0&&(MU=0),IU=-1}function hYt(){vht==null&&(vht=[])}function FM(t,e){W4.call(this,t,e)}function mE(t,e){FM.call(this,t,e)}function fYt(t,e){this.a=t,this.b=e}function dYt(t,e){this.a=t,this.b=e}function gYt(t,e){this.a=t,this.b=e}function pYt(t,e){this.a=t,this.b=e}function bYt(t,e){this.a=t,this.b=e}function wYt(t,e){this.a=t,this.b=e}function mYt(t,e){this.a=t,this.b=e}function vE(t,e){this.e=t,this.d=e}function _wt(t,e){this.b=t,this.c=e}function vYt(t,e){this.b=t,this.a=e}function yYt(t,e){this.b=t,this.a=e}function xYt(t,e){this.b=t,this.a=e}function kYt(t,e){this.b=t,this.a=e}function EYt(t,e){this.a=t,this.b=e}function ort(t,e){this.a=t,this.b=e}function TYt(t,e){this.a=t,this.f=e}function bm(t,e){this.g=t,this.i=e}function Rr(t,e){this.f=t,this.g=e}function CYt(t,e){this.b=t,this.c=e}function SYt(t){Bmt(t.dc()),this.c=t}function Irn(t,e){this.a=t,this.b=e}function _Yt(t,e){this.a=t,this.b=e}function AYt(t){this.a=u(Hr(t),15)}function Awt(t){this.a=u(Hr(t),15)}function LYt(t){this.a=u(Hr(t),85)}function v$(t){this.b=u(Hr(t),85)}function y$(t){this.b=u(Hr(t),51)}function x$(){this.q=new b.Date}function crt(t,e){this.a=t,this.b=e}function DYt(t,e){return Tu(t.b,e)}function BM(t,e){return t.b.Hc(e)}function MYt(t,e){return t.b.Ic(e)}function IYt(t,e){return t.b.Qc(e)}function OYt(t,e){return t.b.Hc(e)}function NYt(t,e){return t.c.uc(e)}function PYt(t,e){return Ti(t.c,e)}function x1(t,e){return t.a._b(e)}function FYt(t,e){return t>e&&e0}function grt(t,e){return $c(t,e)<0}function JYt(t,e){return Dit(t.a,e)}function Qrn(t,e){tre.call(this,t,e)}function Pwt(t){Yit(),jZt.call(this,t)}function Fwt(t,e){Kte(t,t.length,e)}function zM(t,e){xee(t,t.length,e)}function iS(t,e){return t.a.get(e)}function ZYt(t,e){return Tu(t.e,e)}function Bwt(t){return Wn(t),!1}function Rwt(t){this.a=u(Hr(t),229)}function D$(t){gn.call(this,t,21)}function M$(t,e){Rr.call(this,t,e)}function prt(t,e){Rr.call(this,t,e)}function tXt(t,e){this.b=t,this.a=e}function I$(t,e){this.d=t,this.e=e}function eXt(t,e){this.a=t,this.b=e}function nXt(t,e){this.a=t,this.b=e}function rXt(t,e){this.a=t,this.b=e}function iXt(t,e){this.a=t,this.b=e}function O6(t,e){this.a=t,this.b=e}function sXt(t,e){this.b=t,this.a=e}function jwt(t,e){this.b=t,this.a=e}function $wt(t,e){Rr.call(this,t,e)}function zwt(t,e){Rr.call(this,t,e)}function P4(t,e){Rr.call(this,t,e)}function brt(t,e){Rr.call(this,t,e)}function wrt(t,e){Rr.call(this,t,e)}function mrt(t,e){Rr.call(this,t,e)}function O$(t,e){Rr.call(this,t,e)}function qwt(t,e){this.b=t,this.a=e}function N$(t,e){Rr.call(this,t,e)}function Hwt(t,e){this.b=t,this.a=e}function P$(t,e){Rr.call(this,t,e)}function aXt(t,e){this.b=t,this.a=e}function Vwt(t,e){Rr.call(this,t,e)}function vrt(t,e){Rr.call(this,t,e)}function qM(t,e){Rr.call(this,t,e)}function sS(t,e,n){t.splice(e,0,n)}function Jrn(t,e,n){t.Mb(n)&&e.Cd(n)}function Zrn(t,e,n){e.Pe(t.a.Ye(n))}function tin(t,e,n){e.Dd(t.a.Ze(n))}function ein(t,e,n){e.Cd(t.a.Kb(n))}function nin(t,e){return Zu(t.c,e)}function rin(t,e){return Zu(t.e,e)}function F$(t,e){Rr.call(this,t,e)}function B$(t,e){Rr.call(this,t,e)}function aS(t,e){Rr.call(this,t,e)}function Uwt(t,e){Rr.call(this,t,e)}function Ns(t,e){Rr.call(this,t,e)}function R$(t,e){Rr.call(this,t,e)}function oXt(t,e){this.a=t,this.b=e}function cXt(t,e){this.a=t,this.b=e}function uXt(t,e){this.a=t,this.b=e}function lXt(t,e){this.a=t,this.b=e}function hXt(t,e){this.a=t,this.b=e}function fXt(t,e){this.a=t,this.b=e}function dXt(t,e){this.b=t,this.a=e}function gXt(t,e){this.b=t,this.a=e}function Gwt(t,e){this.b=t,this.a=e}function kE(t,e){this.c=t,this.d=e}function pXt(t,e){this.e=t,this.d=e}function bXt(t,e){this.a=t,this.b=e}function wXt(t,e){this.a=t,this.b=e}function mXt(t,e){this.a=t,this.b=e}function vXt(t,e){this.b=t,this.a=e}function yXt(t,e){this.b=e,this.c=t}function j$(t,e){Rr.call(this,t,e)}function HM(t,e){Rr.call(this,t,e)}function yrt(t,e){Rr.call(this,t,e)}function Kwt(t,e){Rr.call(this,t,e)}function oS(t,e){Rr.call(this,t,e)}function xrt(t,e){Rr.call(this,t,e)}function krt(t,e){Rr.call(this,t,e)}function VM(t,e){Rr.call(this,t,e)}function Wwt(t,e){Rr.call(this,t,e)}function Ert(t,e){Rr.call(this,t,e)}function cS(t,e){Rr.call(this,t,e)}function Ywt(t,e){Rr.call(this,t,e)}function uS(t,e){Rr.call(this,t,e)}function lS(t,e){Rr.call(this,t,e)}function ky(t,e){Rr.call(this,t,e)}function Trt(t,e){Rr.call(this,t,e)}function Crt(t,e){Rr.call(this,t,e)}function Xwt(t,e){Rr.call(this,t,e)}function UM(t,e){Rr.call(this,t,e)}function F4(t,e){Rr.call(this,t,e)}function Srt(t,e){Rr.call(this,t,e)}function $$(t,e){Rr.call(this,t,e)}function GM(t,e){Rr.call(this,t,e)}function Ey(t,e){Rr.call(this,t,e)}function z$(t,e){Rr.call(this,t,e)}function Qwt(t,e){Rr.call(this,t,e)}function _rt(t,e){Rr.call(this,t,e)}function Art(t,e){Rr.call(this,t,e)}function Lrt(t,e){Rr.call(this,t,e)}function Drt(t,e){Rr.call(this,t,e)}function Mrt(t,e){Rr.call(this,t,e)}function Irt(t,e){Rr.call(this,t,e)}function Ort(t,e){Rr.call(this,t,e)}function xXt(t,e){this.b=t,this.a=e}function Jwt(t,e){Rr.call(this,t,e)}function kXt(t,e){this.a=t,this.b=e}function EXt(t,e){this.a=t,this.b=e}function TXt(t,e){this.a=t,this.b=e}function Zwt(t,e){Rr.call(this,t,e)}function tmt(t,e){Rr.call(this,t,e)}function CXt(t,e){this.a=t,this.b=e}function iin(t,e){return LE(),e!=t}function KM(t){return ur(t.a),t.b}function Nrt(t){return hxn(t,t.c),t}function SXt(){return PWt(),new aye}function _Xt(){vz(),this.a=new wvt}function AXt(){rV(),this.a=new Os}function LXt(){gst(),this.b=new Os}function DXt(t,e){this.b=t,this.d=e}function MXt(t,e){this.a=t,this.b=e}function IXt(t,e){this.a=t,this.b=e}function OXt(t,e){this.a=t,this.b=e}function NXt(t,e){this.b=t,this.a=e}function emt(t,e){Rr.call(this,t,e)}function nmt(t,e){Rr.call(this,t,e)}function q$(t,e){Rr.call(this,t,e)}function mm(t,e){Rr.call(this,t,e)}function Prt(t,e){Rr.call(this,t,e)}function H$(t,e){Rr.call(this,t,e)}function rmt(t,e){Rr.call(this,t,e)}function imt(t,e){Rr.call(this,t,e)}function WM(t,e){Rr.call(this,t,e)}function smt(t,e){Rr.call(this,t,e)}function Frt(t,e){Rr.call(this,t,e)}function V$(t,e){Rr.call(this,t,e)}function Brt(t,e){Rr.call(this,t,e)}function Rrt(t,e){Rr.call(this,t,e)}function jrt(t,e){Rr.call(this,t,e)}function $rt(t,e){Rr.call(this,t,e)}function amt(t,e){Rr.call(this,t,e)}function zrt(t,e){Rr.call(this,t,e)}function omt(t,e){Rr.call(this,t,e)}function YM(t,e){Rr.call(this,t,e)}function qrt(t,e){Rr.call(this,t,e)}function cmt(t,e){Rr.call(this,t,e)}function XM(t,e){Rr.call(this,t,e)}function umt(t,e){Rr.call(this,t,e)}function PXt(t,e){this.b=t,this.a=e}function FXt(t,e){this.b=t,this.a=e}function BXt(t,e){this.b=t,this.a=e}function RXt(t,e){this.b=t,this.a=e}function lmt(t,e){this.a=t,this.b=e}function jXt(t,e){this.a=t,this.b=e}function $Xt(t,e){this.a=t,this.b=e}function ae(t,e){this.a=t,this.b=e}function hS(t,e){Rr.call(this,t,e)}function QM(t,e){Rr.call(this,t,e)}function N6(t,e){Rr.call(this,t,e)}function fS(t,e){Rr.call(this,t,e)}function JM(t,e){Rr.call(this,t,e)}function Hrt(t,e){Rr.call(this,t,e)}function U$(t,e){Rr.call(this,t,e)}function dS(t,e){Rr.call(this,t,e)}function Vrt(t,e){Rr.call(this,t,e)}function G$(t,e){Rr.call(this,t,e)}function B4(t,e){Rr.call(this,t,e)}function ZM(t,e){Rr.call(this,t,e)}function gS(t,e){Rr.call(this,t,e)}function pS(t,e){Rr.call(this,t,e)}function tI(t,e){Rr.call(this,t,e)}function K$(t,e){Rr.call(this,t,e)}function R4(t,e){Rr.call(this,t,e)}function Urt(t,e){Rr.call(this,t,e)}function zXt(t,e){Rr.call(this,t,e)}function W$(t,e){Rr.call(this,t,e)}function qXt(t,e){this.a=t,this.b=e}function HXt(t,e){this.a=t,this.b=e}function VXt(t,e){this.a=t,this.b=e}function UXt(t,e){this.a=t,this.b=e}function GXt(t,e){this.a=t,this.b=e}function KXt(t,e){this.a=t,this.b=e}function Ws(t,e){this.a=t,this.b=e}function WXt(t,e){this.a=t,this.b=e}function YXt(t,e){this.a=t,this.b=e}function XXt(t,e){this.a=t,this.b=e}function QXt(t,e){this.a=t,this.b=e}function JXt(t,e){this.a=t,this.b=e}function ZXt(t,e){this.a=t,this.b=e}function tQt(t,e){this.b=t,this.a=e}function eQt(t,e){this.b=t,this.a=e}function nQt(t,e){this.b=t,this.a=e}function rQt(t,e){this.b=t,this.a=e}function iQt(t,e){this.a=t,this.b=e}function sQt(t,e){this.a=t,this.b=e}function Y$(t,e){Rr.call(this,t,e)}function aQt(t,e){this.a=t,this.b=e}function oQt(t,e){this.a=t,this.b=e}function P6(t,e){Rr.call(this,t,e)}function cQt(t,e){this.f=t,this.c=e}function hmt(t,e){return Zu(t.g,e)}function sin(t,e){return Zu(e.b,t)}function uQt(t,e){return Yat(t.a,e)}function ain(t,e){return-t.b.af(e)}function oin(t,e){t&&hi(VP,t,e)}function fmt(t,e){t.i=null,Gq(t,e)}function cin(t,e,n){tfe(e,zot(t,n))}function uin(t,e,n){tfe(e,zot(t,n))}function lin(t,e){R6n(t.a,u(e,58))}function lQt(t,e){N0n(t.a,u(e,12))}function X$(t,e){this.a=t,this.b=e}function hQt(t,e){this.a=t,this.b=e}function fQt(t,e){this.a=t,this.b=e}function dQt(t,e){this.a=t,this.b=e}function gQt(t,e){this.a=t,this.b=e}function pQt(t,e){this.d=t,this.b=e}function bQt(t,e){this.e=t,this.a=e}function eI(t,e){this.b=t,this.c=e}function dmt(t,e){this.i=t,this.g=e}function gmt(t,e){this.d=t,this.e=e}function hin(t,e){Y0n(new Zn(t),e)}function Q$(t){return wO(t.c,t.b)}function Ko(t){return t?t.md():null}function $t(t){return t??null}function ba(t){return typeof t===Nct}function Ty(t){return typeof t===kk}function Cy(t){return typeof t===u8t}function vm(t,e){return $c(t,e)==0}function J$(t,e){return $c(t,e)>=0}function bS(t,e){return $c(t,e)!=0}function Z$(t,e){return fpn(t.Kc(),e)}function Cb(t,e){return t.Rd().Xb(e)}function wQt(t){return Ll(t),t.d.gc()}function tz(t){return AS(t==null),t}function wS(t,e){return t.a+=""+e,t}function Mo(t,e){return t.a+=""+e,t}function mS(t,e){return t.a+=""+e,t}function tu(t,e){return t.a+=""+e,t}function ni(t,e){return t.a+=""+e,t}function pmt(t,e){return t.a+=""+e,t}function fin(t){return""+(Wn(t),t)}function mQt(t){dl(this),t_(this,t)}function vQt(){i3t(),lyt.call(this)}function yQt(t,e){pyt.call(this,t,e)}function xQt(t,e){pyt.call(this,t,e)}function ez(t,e){pyt.call(this,t,e)}function ro(t,e){hs(t,e,t.c.b,t.c)}function j4(t,e){hs(t,e,t.a,t.a.a)}function bmt(t){return vn(t,0),null}function kQt(){this.b=0,this.a=!1}function EQt(){this.b=0,this.a=!1}function TQt(){this.b=new M6(zy(12))}function CQt(){CQt=V,t3e=$r(not())}function SQt(){SQt=V,k4e=$r(Bde())}function _Qt(){_Qt=V,Uke=$r(pce())}function wmt(){wmt=V,R2t(),s9t=new _r}function k1(t){return t.a=0,t.b=0,t}function AQt(t,e){return t.a=e.g+1,t}function Grt(t,e){Dy.call(this,t,e)}function un(t,e){rs.call(this,t,e)}function $4(t,e){dmt.call(this,t,e)}function LQt(t,e){sI.call(this,t,e)}function Krt(t,e){o7.call(this,t,e)}function ui(t,e){A$(),hi(KK,t,e)}function DQt(t,e){t.q.setTime(tw(e))}function din(t){b.clearTimeout(t)}function gin(t){return Hr(t),new vS(t)}function MQt(t,e){return $t(t)===$t(e)}function IQt(t,e){return t.a.a.a.cc(e)}function Wrt(t,e){return Lh(t.a,0,e)}function mmt(t){return wln(u(t,74))}function F6(t){return Ys((Wn(t),t))}function pin(t){return Ys((Wn(t),t))}function OQt(t){return Eu(t.l,t.m,t.h)}function vmt(t,e){return jc(t.a,e.a)}function bin(t,e){return vee(t.a,e.a)}function win(t,e){return Bi(t.a,e.a)}function $d(t,e){return t.indexOf(e)}function min(t,e){return t.j[e.p]==2}function ym(t,e){return t==e?0:t?1:-1}function nz(t){return t<10?"0"+t:""+t}function ec(t){return typeof t===u8t}function vin(t){return t==bv||t==y3}function yin(t){return t==bv||t==v3}function NQt(t,e){return jc(t.g,e.g)}function ymt(t){return Xo(t.b.b,t,0)}function PQt(){Lz.call(this,0,0,0,0)}function zd(){hr.call(this,new kp)}function xmt(t,e){GE(t,0,t.length,e)}function xin(t,e){return ge(t.a,e),e}function kin(t,e){return Bf(),e.a+=t}function Ein(t,e){return Bf(),e.a+=t}function Tin(t,e){return Bf(),e.c+=t}function Cin(t,e){return ge(t.c,e),t}function kmt(t,e){return ch(t.a,e),t}function FQt(t){this.a=SXt(),this.b=t}function BQt(t){this.a=SXt(),this.b=t}function io(t){this.a=t.a,this.b=t.b}function vS(t){this.a=t,DC.call(this)}function RQt(t){this.a=t,DC.call(this)}function B6(){Ah.call(this,0,0,0,0)}function rz(t){return ch(new Fs,t)}function jQt(t){return Kz(u(t,123))}function Hl(t){return t.vh()&&t.wh()}function z4(t){return t!=Td&&t!=d2}function bg(t){return t==Uo||t==tc}function q4(t){return t==Gh||t==kd}function $Qt(t){return t==J5||t==Q5}function Sin(t,e){return jc(t.g,e.g)}function zQt(t,e){return new o7(e,t)}function _in(t,e){return new o7(e,t)}function Emt(t){return Wcn(t.b.Kc(),t.a)}function Yrt(t,e){p7(t,e),t7(t,t.D)}function Xrt(t,e,n){Rq(t,e),Bq(t,n)}function H4(t,e,n){qm(t,e),zm(t,n)}function Ch(t,e,n){Su(t,e),_u(t,n)}function nI(t,e,n){XE(t,e),JE(t,n)}function rI(t,e,n){QE(t,e),ZE(t,n)}function qQt(t,e,n){svt.call(this,t,e,n)}function Tmt(t){cQt.call(this,t,!0)}function HQt(){M$.call(this,"Tail",3)}function VQt(){M$.call(this,"Head",1)}function Sb(t){Xd(),cpn.call(this,t)}function xm(t){Lz.call(this,t,t,t,t)}function Qrt(t){t.c=Vt(aa,Ln,1,0,5,1)}function Cmt(t){return t.b&&bct(t),t.a}function Smt(t){return t.b&&bct(t),t.c}function Ain(t,e){wd||(t.b=e)}function Lin(t,e){return t[t.length]=e}function Din(t,e){return t[t.length]=e}function Min(t,e){return qy(e,ed(t))}function Iin(t,e){return qy(e,ed(t))}function Oin(t,e){return Hq(Kit(t.d),e)}function Nin(t,e){return Hq(Kit(t.g),e)}function Pin(t,e){return Hq(Kit(t.j),e)}function _a(t,e){rs.call(this,t.b,e)}function Fin(t,e){Or(Wc(t.a),hre(e))}function Bin(t,e){Or(Al(t.a),fre(e))}function Rin(t,e,n){Ch(n,n.i+t,n.j+e)}function UQt(t,e,n){ls(t.c[e.g],e.g,n)}function jin(t,e,n){u(t.c,71).Gi(e,n)}function Jrt(t,e,n){return ls(t,e,n),n}function GQt(t){Cu(t.Sf(),new Int(t))}function V4(t){return t!=null?$i(t):0}function $in(t){return t==null?0:$i(t)}function yS(t){yi(),um.call(this,t)}function KQt(t){this.a=t,$vt.call(this,t)}function Z1(){Z1=V,b.Math.log(2)}function Sh(){Sh=V,Q0=(XYt(),sTe)}function WQt(){WQt=V,I1t=new d_(Udt)}function Ur(){Ur=V,new YQt,new fe}function YQt(){new _r,new _r,new _r}function zin(){throw at(new hp(Mve))}function qin(){throw at(new hp(Mve))}function Hin(){throw at(new hp(Ive))}function Vin(){throw at(new hp(Ive))}function Zrt(t){this.a=t,v$.call(this,t)}function tit(t){this.a=t,v$.call(this,t)}function XQt(t,e){Dm(),this.a=t,this.b=e}function Uin(t,e){Hr(e),X4(t).Jc(new ot)}function Ds(t,e){Mit(t.c,t.c.length,e)}function lc(t){return t.ae?1:0}function Amt(t,e){return $c(t,e)>0?t:e}function Eu(t,e,n){return{l:t,m:e,h:n}}function Gin(t,e){t.a!=null&&lQt(e,t.a)}function Kin(t){Xa(t,null),xa(t,null)}function Win(t,e,n){return hi(t.g,n,e)}function U4(t,e,n){return Q5t(e,n,t.c)}function Yin(t,e,n){return hi(t.k,n,e)}function Xin(t,e,n){return P9n(t,e,n),n}function Qin(t,e){return rh(),e.n.b+=t}function JQt(t){Qyt.call(this),this.b=t}function Lmt(t){bvt.call(this),this.a=t}function ZQt(){M$.call(this,"Range",2)}function iz(t){this.b=t,this.a=new fe}function tJt(t){this.b=new pu,this.a=t}function eJt(t){t.a=new Ae,t.c=new Ae}function nJt(t){t.a=new _r,t.d=new _r}function rJt(t){pst(t,null),bst(t,null)}function iJt(t,e){return B9n(t.a,e,null)}function Jin(t,e){return hi(t.a,e.a,e)}function Oa(t){return new ae(t.a,t.b)}function Dmt(t){return new ae(t.c,t.d)}function Zin(t){return new ae(t.c,t.d)}function xS(t,e){return YTn(t.c,t.b,e)}function Lt(t,e){return t!=null&&aot(t,e)}function eit(t,e){return qpn(t.Kc(),e)!=-1}function sz(t){return t.Ob()?t.Pb():null}function tsn(t){this.b=(mn(),new Kn(t))}function Mmt(t){this.a=t,_r.call(this)}function sJt(){sI.call(this,null,null)}function aJt(){fz.call(this,null,null)}function oJt(){Rr.call(this,"INSTANCE",0)}function cJt(){Dxt(),this.a=new L_(SCt)}function uJt(t){return af(t,0,t.length)}function esn(t,e){return new _Jt(t.Kc(),e)}function Imt(t,e){return t.a.Bc(e)!=null}function lJt(t,e){Ir(t),t.Gc(u(e,15))}function nsn(t,e,n){t.c.bd(e,u(n,136))}function rsn(t,e,n){t.c.Ui(e,u(n,136))}function hJt(t,e){t.c&&(Zvt(e),Bne(e))}function isn(t,e){t.q.setHours(e),N_(t,e)}function ssn(t,e){Tm(e,t.a.a.a,t.a.a.b)}function asn(t,e,n,r){ls(t.a[e.g],n.g,r)}function nit(t,e,n){return t.a[e.g][n.g]}function osn(t,e){return t.e[e.c.p][e.p]}function csn(t,e){return t.c[e.c.p][e.p]}function td(t,e){return t.a[e.c.p][e.p]}function usn(t,e){return t.j[e.p]=y6n(e)}function rit(t,e){return t.a.Bc(e)!=null}function lsn(t,e){return Rt(Ht(e.a))<=t}function hsn(t,e){return Rt(Ht(e.a))>=t}function fsn(t,e){return F3t(t.f,e.Pg())}function R6(t,e){return t.a*e.a+t.b*e.b}function dsn(t,e){return t.a<_vt(e)?-1:1}function gsn(t,e){return F3t(t.b,e.Pg())}function psn(t,e,n){return n?e!=0:e!=t-1}function fJt(t,e,n){t.a=e^1502,t.b=n^dut}function bsn(t,e,n){return t.a=e,t.b=n,t}function qd(t,e){return t.a*=e,t.b*=e,t}function ge(t,e){return In(t.c,e),!0}function kS(t,e,n){return ls(t.g,e,n),n}function Ps(t,e,n){mI.call(this,t,e,n)}function az(t,e,n){Ps.call(this,t,e,n)}function Omt(t,e,n){kz.call(this,t,e,n)}function dJt(t,e,n){kz.call(this,t,e,n)}function gJt(t,e,n){Omt.call(this,t,e,n)}function Ju(t,e,n){Ps.call(this,t,e,n)}function pJt(t,e,n){az.call(this,t,e,n)}function Nmt(t,e,n){mI.call(this,t,e,n)}function G4(t,e,n){mI.call(this,t,e,n)}function bJt(t,e,n){Nmt.call(this,t,e,n)}function oz(t){t.j=Vt(m9t,ue,319,0,0,1)}function K4(){this.a=Vt(aa,Ln,1,8,5,1)}function Pmt(){this.Bb|=256,this.Bb|=512}function Zn(t){this.i=t,this.f=this.i.j}function _b(t){this.c=t,this.a=this.c.a}function W4(t,e){this.a=t,v$.call(this,e)}function Fmt(t,e){return I2n(t,new yb,e).a}function Bmt(t){if(!t)throw at(new DM)}function Rmt(t){if(!t)throw at(new Xu)}function jmt(){jmt=V,jmt(),uye=new sn}function wJt(){wJt=V,hrt(),NTe=new Bj}function EE(){EE=V,A9t=new Ynt(null)}function wsn(t){SI(t,sme),ZH(t,PCn(t))}function mJt(t){t.a=u(jn(t.b.a,4),129)}function vJt(t){t.a=u(jn(t.b.a,4),129)}function yJt(t){t.b.Qb(),--t.d.f.d,Nz(t.d)}function $mt(t){this.a=t,dg.call(this,t.d)}function xJt(t,e){this.a=t,rrt.call(this,e)}function kJt(t,e){this.a=t,rrt.call(this,e)}function EJt(t,e){this.a=t,rrt.call(this,e)}function zmt(t,e){this.a=e,rrt.call(this,t)}function TJt(t,e){this.a=e,Sst.call(this,t)}function CJt(t,e){this.a=t,Sst.call(this,e)}function SJt(t,e){this.a=e,y$.call(this,t)}function _Jt(t,e){this.a=e,y$.call(this,t)}function sr(t,e){return Hr(e),new SJt(t,e)}function AJt(t,e){return new Zfe(t.a,t.b,e)}function qmt(t,e,n){return t.indexOf(e,n)}function cz(t,e){return t.lastIndexOf(e)}function ES(t){return t==null?Vu:rc(t)}function msn(t){return t==null?null:t.name}function vsn(t){return t.l+t.m*Sk+t.h*bw}function ysn(t){return IM(t.a)?dre(t):null}function ef(t){Sr.call(this,(Wn(t),t))}function eh(t){Sr.call(this,(Wn(t),t))}function LJt(t){sE.call(this,u(Hr(t),34))}function DJt(t){sE.call(this,u(Hr(t),34))}function iit(t){hr.call(this,new U3t(t))}function uz(t){Ta.call(this,t),this.a=t}function Hmt(t){eo.call(this,t),this.a=t}function Vmt(t){dE.call(this,t),this.a=t}function MJt(){oz(this),Xz(this),this.je()}function IJt(t){this.a=t,Es.call(this,t)}function Vl(t){return ur(t.a!=null),t.a}function OJt(t,e){return ge(e.a,t.a),t.a}function NJt(t,e){return ge(e.b,t.a),t.a}function km(t,e){return ge(e.a,t.a),t.a}function iI(t,e,n){return dat(t,e,e,n),t}function lz(t,e){return++t.b,ge(t.a,e)}function Umt(t,e){return++t.b,zu(t.a,e)}function xsn(t,e){return Bi(t.c.d,e.c.d)}function ksn(t,e){return Bi(t.c.c,e.c.c)}function Esn(t,e){return Bi(t.n.a,e.n.a)}function ju(t,e){return u(Ai(t.b,e),15)}function Tsn(t,e){return t.n.b=(Wn(e),e)}function Csn(t,e){return t.n.b=(Wn(e),e)}function Zu(t,e){return!!e&&t.b[e.g]==e}function TS(t){return lc(t.a)||lc(t.b)}function Em(t){return t.$H||(t.$H=++i_n)}function Ssn(t){return t.a!=null?t.a:null}function _sn(t,e){return Bi(t.e.b,e.e.b)}function Asn(t,e){return Bi(t.e.a,e.e.a)}function Lsn(t,e,n){return bie(t,e,n,t.b)}function Gmt(t,e,n){return bie(t,e,n,t.c)}function Dsn(t){return Bf(),!!t&&!t.dc()}function PJt(){ZC(),this.b=new WVt(this)}function hz(){hz=V,$U=new rs(Xbe,0)}function Pn(){Pn=V,t2=!1,bT=!0}function wp(t){var e;e=t.a,t.a=t.b,t.b=e}function sI(t,e){rS(),this.a=t,this.b=e}function fz(t,e){bp(),this.b=t,this.c=e}function sit(t,e){Nit(),this.f=e,this.d=t}function Kmt(t,e){P3t(e,t),this.d=t,this.c=e}function Wmt(t,e){ixt.call(this,t,e,null)}function FJt(t,e,n,r){byt.call(this,t,e,n,r)}function j6(t){this.d=t,Zn.call(this,t)}function $6(t){this.c=t,Zn.call(this,t)}function aI(t){this.c=t,j6.call(this,t)}function Msn(t){return new By(3,t)}function C0(t){return oh(t,c3),new wu(t)}function BJt(t){return $E(),parseInt(t)||-1}function Isn(t){return l$(),jr((Vne(),zve),t)}function TE(t,e,n){return qmt(t,Hu(e),n)}function ait(t,e){return new FZt(t,t.gc(),e)}function Osn(t,e){return Pit(t.c).Md().Xb(e)}function CE(t,e,n){var r;r=t.fd(e),r.Rb(n)}function Ymt(t,e,n){u(UI(t,e),21).Fc(n)}function Nsn(t,e,n){jat(t.a,n),IH(t.a,e)}function oI(t){Lt(t,158)&&u(t,158).pi()}function RJt(t){zvt.call(this,t,null,null)}function oit(t){yy(),this.b=t,this.a=!0}function jJt(t){k$(),this.b=t,this.a=!0}function SE(t){return ur(t.b!=0),t.a.a.c}function Pf(t){return ur(t.b!=0),t.c.b.c}function Psn(t,e){return dat(t,e,e+1,""),t}function qi(t,e){return!!t.q&&Tu(t.q,e)}function $Jt(t){return t.b=u(Uyt(t.a),44)}function Fsn(t){return t.f!=null?t.f:""+t.g}function cit(t){return t.f!=null?t.f:""+t.g}function Bsn(t,e){return t>0?e/(t*t):e*100}function Rsn(t,e){return t>0?e*e/t:e*e*100}function Sy(t,e){return u(od(t.a,e),34)}function jsn(t,e){return Vb(),dn(t,e.e,e)}function $sn(t,e,n){return C$(),n.Mg(t,e)}function zsn(t){return Sg(),t.e.a+t.f.a/2}function qsn(t,e,n){return Sg(),n.e.a-t*e}function Hsn(t){return Sg(),t.e.b+t.f.b/2}function Vsn(t,e,n){return Sg(),n.e.b-t*e}function zJt(t){t.d=new RJt(t),t.e=new _r}function qJt(){this.a=new Fm,this.b=new Fm}function HJt(t){this.c=t,this.a=1,this.b=1}function VJt(t){Ict(),oKt(this),this.Ff(t)}function Usn(t,e,n){Tq(),t.pf(e)&&n.Cd(t)}function Gsn(t,e,n){return ge(e,ele(t,n))}function Tm(t,e,n){return t.a+=e,t.b+=n,t}function Ksn(t,e,n){return t.a*=e,t.b*=n,t}function Xmt(t,e){return t.a=e.a,t.b=e.b,t}function dz(t){return t.a=-t.a,t.b=-t.b,t}function CS(t,e,n){return t.a-=e,t.b-=n,t}function UJt(t){Ki.call(this),XS(this,t)}function GJt(){Rr.call(this,"GROW_TREE",0)}function KJt(){Rr.call(this,"POLYOMINO",0)}function Ul(t,e,n){nl.call(this,t,e,n,2)}function Wsn(t,e,n){h_(Wc(t.a),e,hre(n))}function WJt(t,e){rS(),sI.call(this,t,e)}function Qmt(t,e){bp(),fz.call(this,t,e)}function YJt(t,e){bp(),Qmt.call(this,t,e)}function XJt(t,e){bp(),fz.call(this,t,e)}function Ysn(t,e){return t.c.Fc(u(e,136))}function Xsn(t,e,n){h_(Al(t.a),e,fre(n))}function QJt(t){this.c=t,Su(t,0),_u(t,0)}function uit(t,e){Sh(),Iz.call(this,t,e)}function JJt(t,e){Sh(),uit.call(this,t,e)}function Jmt(t,e){Sh(),uit.call(this,t,e)}function Zmt(t,e){Sh(),Iz.call(this,t,e)}function ZJt(t,e){Sh(),Jmt.call(this,t,e)}function tZt(t,e){Sh(),Zmt.call(this,t,e)}function eZt(t,e){Sh(),Iz.call(this,t,e)}function Qsn(t,e,n){return e.zl(t.e,t.c,n)}function Jsn(t,e,n){return e.Al(t.e,t.c,n)}function tvt(t,e,n){return pV(VI(t,e),n)}function lit(t,e){return jb(t.e,u(e,54))}function Zsn(t){return t==null?null:TCn(t)}function tan(t){return t==null?null:w4n(t)}function ean(t){return t==null?null:rc(t)}function nan(t){return t==null?null:rc(t)}function Me(t){return AS(t==null||Ty(t)),t}function Ht(t){return AS(t==null||Cy(t)),t}function Gr(t){return AS(t==null||ba(t)),t}function wg(t){t.o==null&&Yxn(t)}function evt(t){if(!t)throw at(new DM)}function ran(t){if(!t)throw at(new $nt)}function ur(t){if(!t)throw at(new cc)}function _y(t){if(!t)throw at(new Xu)}function nZt(t){if(!t)throw at(new Th)}function _E(){_E=V,GP=new jKt,new $Kt}function Y4(){Y4=V,ex=new Oi("root")}function nvt(){Roe.call(this),this.Bb|=po}function ian(t,e){this.d=t,kr(this),this.b=e}function rvt(t,e){Bst.call(this,t),this.a=e}function ivt(t,e){Bst.call(this,t),this.a=e}function svt(t,e,n){yq.call(this,t,e,n,null)}function rZt(t,e,n){yq.call(this,t,e,n,null)}function cI(t,e){this.c=t,vE.call(this,t,e)}function SS(t,e){this.a=t,cI.call(this,t,e)}function avt(t){this.q=new b.Date(tw(t))}function iZt(t){return t>8?0:t+1}function sZt(t,e){wd||ge(t.a,e)}function san(t,e){return $M(),a7(e.d.i,t)}function aan(t,e){return ok(),new F0e(e,t)}function oan(t,e,n){return t.Ne(e,n)<=0?n:e}function can(t,e,n){return t.Ne(e,n)<=0?e:n}function uan(t,e){return u(od(t.b,e),143)}function lan(t,e){return u(od(t.c,e),233)}function hit(t){return u(Oe(t.a,t.b),293)}function aZt(t){return new ae(t.c,t.d+t.a)}function oZt(t){return Wn(t),t?1231:1237}function cZt(t){return rh(),$Qt(u(t,203))}function Ay(){Ay=V,tCt=en((Yl(),qw))}function han(t,e){e.a?pxn(t,e):rit(t.a,e.b)}function uI(t,e,n){++t.j,t.tj(),Fst(t,e,n)}function uZt(t,e,n){++t.j,t.qj(e,t.Zi(e,n))}function lZt(t,e,n){var r;r=t.fd(e),r.Rb(n)}function ovt(t,e,n){return n=hh(t,e,6,n),n}function cvt(t,e,n){return n=hh(t,e,3,n),n}function uvt(t,e,n){return n=hh(t,e,9,n),n}function Hd(t,e){return SI(e,I8t),t.f=e,t}function lvt(t,e){return(e&xi)%t.d.length}function hZt(t,e,n){return qkt(t.c,t.b,e,n)}function fZt(t,e){this.c=t,$m.call(this,e)}function dZt(t,e){this.a=t,ZGt.call(this,e)}function lI(t,e){this.a=t,ZGt.call(this,e)}function rs(t,e){Oi.call(this,t),this.a=e}function hvt(t,e){N2t.call(this,t),this.a=e}function fit(t,e){N2t.call(this,t),this.a=e}function fan(t){U5t.call(this,0,0),this.f=t}function gZt(t,e,n){return t.a+=af(e,0,n),t}function hI(t){return!t.a&&(t.a=new dt),t.a}function fvt(t,e){var n;return n=t.e,t.e=e,n}function dvt(t,e){var n;return n=e,!!t.Fe(n)}function dan(t,e){return Pn(),t==e?0:t?1:-1}function Ly(t,e){t.a.bd(t.b,e),++t.b,t.c=-1}function fI(t){t.b?fI(t.b):t.f.c.zc(t.e,t.d)}function pZt(t){dl(t.e),t.d.b=t.d,t.d.a=t.d}function gan(t,e,n){U2(),Cnt(t,e.Ve(t.a,n))}function gvt(t,e,n){return W6(t,u(e,22),n)}function Ff(t,e){return g$(new Array(e),t)}function pan(t){return qr(Ab(t,32))^qr(t)}function dit(t){return String.fromCharCode(t)}function ban(t){return t==null?null:t.message}function wan(t,e,n){return t.apply(e,n)}function man(t,e){var n;n=t[fut],n.call(t,e)}function van(t,e){var n;n=t[fut],n.call(t,e)}function yan(t,e){return $M(),!a7(e.d.i,t)}function pvt(t,e,n,r){Lz.call(this,t,e,n,r)}function bZt(){gz.call(this),this.a=new Sa}function bvt(){this.n=new Sa,this.o=new Sa}function wZt(){this.b=new Sa,this.c=new fe}function mZt(){this.a=new fe,this.b=new fe}function vZt(){this.a=new O2,this.b=new wKt}function wvt(){this.b=new kp,this.a=new kp}function yZt(){this.b=new Os,this.a=new Os}function xZt(){this.b=new _r,this.a=new _r}function kZt(){this.b=new WWt,this.a=new uC}function EZt(){this.a=new Xet,this.b=new AJ}function TZt(){this.a=new fe,this.d=new fe}function gz(){this.n=new C6,this.i=new B6}function CZt(t){this.a=(oh(t,c3),new wu(t))}function SZt(t){this.a=(oh(t,c3),new wu(t))}function xan(t){return t<100?null:new xb(t)}function kan(t,e){return t.n.a=(Wn(e),e+10)}function Ean(t,e){return t.n.a=(Wn(e),e+10)}function Tan(t,e){return e==t||L7(JH(e),t)}function _Zt(t,e){return hi(t.a,e,"")==null}function Can(t,e){var n;return n=e.qi(t.a),n}function ki(t,e){return t.a+=e.a,t.b+=e.b,t}function ia(t,e){return t.a-=e.a,t.b-=e.b,t}function San(t){return wy(t.j.c,0),t.a=-1,t}function mvt(t,e,n){return n=hh(t,e,11,n),n}function _an(t,e,n){n!=null&&Vq(e,wot(t,n))}function Aan(t,e,n){n!=null&&Uq(e,wot(t,n))}function z6(t,e,n,r){Jt.call(this,t,e,n,r)}function vvt(t,e,n,r){Jt.call(this,t,e,n,r)}function AZt(t,e,n,r){vvt.call(this,t,e,n,r)}function LZt(t,e,n,r){jz.call(this,t,e,n,r)}function git(t,e,n,r){jz.call(this,t,e,n,r)}function yvt(t,e,n,r){jz.call(this,t,e,n,r)}function DZt(t,e,n,r){git.call(this,t,e,n,r)}function xvt(t,e,n,r){git.call(this,t,e,n,r)}function kn(t,e,n,r){yvt.call(this,t,e,n,r)}function MZt(t,e,n,r){xvt.call(this,t,e,n,r)}function IZt(t,e,n,r){vyt.call(this,t,e,n,r)}function Dy(t,e){Bo.call(this,uA+t+Ew+e)}function kvt(t,e){return t.jk().wi().ri(t,e)}function Evt(t,e){return t.jk().wi().ti(t,e)}function OZt(t,e){return Wn(t),$t(t)===$t(e)}function hn(t,e){return Wn(t),$t(t)===$t(e)}function Lan(t,e){return t.b.Bd(new nXt(t,e))}function Dan(t,e){return t.b.Bd(new rXt(t,e))}function NZt(t,e){return t.b.Bd(new iXt(t,e))}function Man(t,e){return t.e=u(t.d.Kb(e),159)}function Tvt(t,e,n){return t.lastIndexOf(e,n)}function Ian(t,e,n){return Bi(t[e.a],t[n.a])}function Oan(t,e){return Zt(e,(De(),iP),t)}function Nan(t,e){return jc(e.a.d.p,t.a.d.p)}function Pan(t,e){return jc(t.a.d.p,e.a.d.p)}function Fan(t,e){return Bi(t.c-t.s,e.c-e.s)}function Ban(t,e){return Bi(t.b.e.a,e.b.e.a)}function Ran(t,e){return Bi(t.c.e.a,e.c.e.a)}function PZt(t){return t.c?Xo(t.c.a,t,0):-1}function q6(t){return t==zw||t==Y0||t==hu}function Cvt(t,e){this.c=t,zit.call(this,t,e)}function FZt(t,e,n){this.a=t,Kmt.call(this,e,n)}function BZt(t){this.c=t,ez.call(this,rN,0)}function RZt(t,e,n){this.c=e,this.b=n,this.a=t}function dI(t){LE(),this.d=t,this.a=new K4}function jZt(t){Vd(),this.a=(mn(),new dE(t))}function jan(t,e){bg(t.f)?zxn(t,e):m3n(t,e)}function $Zt(t,e){Jcn.call(this,t,t.length,e)}function $an(t,e){wd||e&&(t.d=e)}function zZt(t,e){return Lt(e,15)&&b0e(t.c,e)}function zan(t,e,n){return u(t.c,71).Wk(e,n)}function pz(t,e,n){return u(t.c,71).Xk(e,n)}function qan(t,e,n){return Qsn(t,u(e,343),n)}function Svt(t,e,n){return Jsn(t,u(e,343),n)}function Han(t,e,n){return cfe(t,u(e,343),n)}function qZt(t,e,n){return M3n(t,u(e,343),n)}function _S(t,e){return e==null?null:Gy(t.b,e)}function _vt(t){return Cy(t)?(Wn(t),t):t.ue()}function bz(t){return!isNaN(t)&&!isFinite(t)}function pit(t){eJt(this),nh(this),Ma(this,t)}function fl(t){Qrt(this),Hvt(this.c,0,t.Pc())}function _h(t,e,n){this.a=t,this.b=e,this.c=n}function HZt(t,e,n){this.a=t,this.b=e,this.c=n}function VZt(t,e,n){this.d=t,this.b=n,this.a=e}function UZt(t){this.a=t,pg(),Pc(Date.now())}function GZt(t){Kl(t.a),q3t(t.c,t.b),t.b=null}function bit(){bit=V,_9t=new ye,oye=new tn}function KZt(){KZt=V,lTe=Vt(aa,Ln,1,0,5,1)}function WZt(){WZt=V,ATe=Vt(aa,Ln,1,0,5,1)}function Avt(){Avt=V,LTe=Vt(aa,Ln,1,0,5,1)}function Vd(){Vd=V,new B2t((mn(),mn(),co))}function Van(t){return KE(),jr((tae(),lye),t)}function Uan(t){return bl(),jr((Vse(),bye),t)}function Gan(t){return TH(),jr((Lie(),kye),t)}function Kan(t){return Mq(),jr((Die(),Eye),t)}function Wan(t){return aV(),jr((Lce(),Tye),t)}function Yan(t){return A1(),jr((qse(),_ye),t)}function Xan(t){return pl(),jr((zse(),Lye),t)}function Qan(t){return qu(),jr((Hse(),Mye),t)}function Jan(t){return yV(),jr((CQt(),t3e),t)}function Zan(t){return Gm(),jr((nae(),n3e),t)}function ton(t){return dk(),jr((iae(),i3e),t)}function eon(t){return m_(),jr((rae(),o3e),t)}function non(t){return E$(),jr((eie(),c3e),t)}function ron(t){return Iq(),jr((Mie(),C3e),t)}function ion(t){return WS(),jr((Use(),Q3e),t)}function son(t){return Ua(),jr((jae(),e4e),t)}function aon(t){return u7(),jr((aae(),a4e),t)}function oon(t){return lw(),jr((sae(),f4e),t)}function Lvt(t,e){if(!t)throw at(new zn(e))}function AE(t){if(!t)throw at(new Ro(l8t))}function wit(t,e){if(t!=e)throw at(new Th)}function YZt(t,e,n){this.a=t,this.b=e,this.c=n}function Dvt(t,e,n){this.a=t,this.b=e,this.c=n}function XZt(t,e,n){this.a=t,this.b=e,this.c=n}function wz(t,e,n){this.b=t,this.a=e,this.c=n}function Mvt(t,e,n){this.b=t,this.c=e,this.a=n}function Ivt(t,e,n){this.a=t,this.b=e,this.c=n}function mz(t,e,n){this.e=e,this.b=t,this.d=n}function QZt(t,e,n){this.b=t,this.a=e,this.c=n}function con(t,e,n){return U2(),t.a.Yd(e,n),e}function mit(t){var e;return e=new ll,e.e=t,e}function Ovt(t){var e;return e=new kKt,e.b=t,e}function gI(){gI=V,XU=new pQ,QU=new BB}function vz(){vz=V,_4e=new SQ,S4e=new tC}function Bf(){Bf=V,I4e=new iJ,O4e=new sJ}function uon(t){return Vm(),jr((Ese(),H4e),t)}function lon(t){return Za(),jr((SQt(),k4e),t)}function hon(t){return rH(),jr((cae(),C4e),t)}function fon(t){return ud(),jr((oae(),F4e),t)}function don(t){return Qy(),jr(($ae(),R4e),t)}function gon(t){return iV(),jr((gce(),V4e),t)}function pon(t){return wk(),jr((hoe(),U4e),t)}function bon(t){return Eq(),jr((Pie(),G4e),t)}function won(t){return QS(),jr((yse(),K4e),t)}function mon(t){return $q(),jr((xse(),W4e),t)}function von(t){return Ip(),jr((zae(),Y4e),t)}function yon(t){return YI(),jr((Nie(),X4e),t)}function xon(t){return M7(),jr((goe(),n5e),t)}function kon(t){return Co(),jr((Uce(),r5e),t)}function Eon(t){return c7(),jr((Cse(),i5e),t)}function Ton(t){return Cg(),jr((Tse(),a5e),t)}function Con(t){return fq(),jr((zie(),o5e),t)}function Son(t){return AO(),jr((doe(),e5e),t)}function _on(t){return ow(),jr((kse(),J4e),t)}function Aon(t){return UH(),jr((foe(),Z4e),t)}function Lon(t){return qI(),jr((Oie(),t5e),t)}function Don(t){return Rh(),jr((Hae(),c5e),t)}function Mon(t){return Bp(),jr((Sce(),I6e),t)}function Ion(t){return o_(),jr((Sse(),O6e),t)}function Oon(t){return Yy(),jr((uae(),N6e),t)}function Non(t){return w_(),jr((qae(),P6e),t)}function Pon(t){return cf(),jr((Gce(),F6e),t)}function Fon(t){return Wd(),jr((lae(),B6e),t)}function Bon(t){return KI(),jr((Fie(),R6e),t)}function Ron(t){return To(),jr((Lse(),$6e),t)}function jon(t){return tH(),jr((_se(),z6e),t)}function $on(t){return i_(),jr((Ase(),q6e),t)}function zon(t){return b7(),jr((Mse(),H6e),t)}function qon(t){return jq(),jr((Dse(),V6e),t)}function Hon(t){return iH(),jr((Ise(),U6e),t)}function Von(t){return Hm(),jr(($se(),oke),t)}function Uon(t){return US(),jr((Bie(),fke),t)}function Gon(t){return Gd(),jr((Rie(),vke),t)}function Kon(t){return nd(),jr((jie(),xke),t)}function Won(t){return C1(),jr(($ie(),Fke),t)}function Yon(t){return Bm(),jr((qie(),Hke),t)}function Xon(t){return bk(),jr((wae(),Vke),t)}function Qon(t){return I_(),jr((_Qt(),Uke),t)}function Jon(t){return s_(),jr((Ose(),Gke),t)}function Zon(t){return a_(),jr((bae(),p8e),t)}function tcn(t){return uq(),jr((Vie(),b8e),t)}function ecn(t){return Kq(),jr((Uie(),x8e),t)}function ncn(t){return zH(),jr((Vae(),E8e),t)}function rcn(t){return uO(),jr((Nse(),C8e),t)}function icn(t){return Cq(),jr((Hie(),T8e),t)}function scn(t){return NH(),jr((pae(),U8e),t)}function acn(t){return Zq(),jr((Pse(),G8e),t)}function ocn(t){return vH(),jr((Fse(),K8e),t)}function ccn(t){return DH(),jr((Bse(),Y8e),t)}function ucn(t){return dH(),jr((Rse(),J8e),t)}function lcn(t){return wq(),jr((Gie(),vEe),t)}function hcn(t){return r7(),jr((Iie(),x4e),t)}function fcn(t){return Un(),jr((poe(),b4e),t)}function dcn(t){return Sq(),jr((jse(),yEe),t)}function gcn(t){return gat(),jr((Kie(),xEe),t)}function pcn(t){return A_(),jr((Uae(),EEe),t)}function bcn(t){return S$(),jr((uie(),CEe),t)}function wcn(t){return pO(),jr((Kse(),TEe),t)}function mcn(t){return _$(),jr((lie(),_Ee),t)}function vcn(t){return BI(),jr((Wie(),AEe),t)}function ycn(t){return DO(),jr((Gae(),LEe),t)}function xcn(t){return tS(),jr((hie(),UEe),t)}function kcn(t){return sO(),jr((Yie(),GEe),t)}function Ecn(t){return D1(),jr((Wae(),JEe),t)}function Tcn(t){return Fp(),jr((fce(),t7e),t)}function Ccn(t){return I0(),jr((boe(),e7e),t)}function Scn(t){return fw(),jr((woe(),o7e),t)}function _cn(t){return Rs(),jr((Kae(),S7e),t)}function Acn(t){return cd(),jr((Wse(),_7e),t)}function Lcn(t){return Lg(),jr((mae(),A7e),t)}function Dcn(t){return HH(),jr((moe(),L7e),t)}function Mcn(t){return Ag(),jr((Gse(),M7e),t)}function Icn(t){return uh(),jr((vae(),O7e),t)}function Ocn(t){return e3(),jr((Ace(),N7e),t)}function Ncn(t){return o5(),jr((Yae(),P7e),t)}function Pcn(t){return ka(),jr((voe(),F7e),t)}function Fcn(t){return wl(),jr((yoe(),B7e),t)}function Bcn(t){return ve(),jr((Xae(),R7e),t)}function Rcn(t){return Yl(),jr((yae(),H7e),t)}function jcn(t){return Ml(),jr((_ce(),V7e),t)}function $cn(t){return lk(),jr((Yse(),U7e),t)}function zcn(t,e){return Wn(t),t+(Wn(e),e)}function qcn(t){return vit(),jr((Xie(),G7e),t)}function Hcn(t){return pH(),jr((xae(),K7e),t)}function Vcn(t){return sH(),jr((kae(),X7e),t)}function LE(){LE=V,JAt=(ve(),Gn),nK=Jn}function vit(){vit=V,bIt=new _te,wIt=new fee}function Ucn(t){return!t.e&&(t.e=new fe),t.e}function yit(t,e){this.c=t,this.a=e,this.b=e-t}function JZt(t,e,n){this.a=t,this.b=e,this.c=n}function xit(t,e,n){this.a=t,this.b=e,this.c=n}function Nvt(t,e,n){this.a=t,this.b=e,this.c=n}function Pvt(t,e,n){this.a=t,this.b=e,this.c=n}function ZZt(t,e,n){this.a=t,this.b=e,this.c=n}function tte(t,e,n){this.a=t,this.b=e,this.c=n}function mp(t,e,n){this.e=t,this.a=e,this.c=n}function ete(t,e,n){Sh(),Zyt.call(this,t,e,n)}function kit(t,e,n){Sh(),Fyt.call(this,t,e,n)}function Fvt(t,e,n){Sh(),Fyt.call(this,t,e,n)}function Bvt(t,e,n){Sh(),Fyt.call(this,t,e,n)}function nte(t,e,n){Sh(),kit.call(this,t,e,n)}function Rvt(t,e,n){Sh(),kit.call(this,t,e,n)}function rte(t,e,n){Sh(),Rvt.call(this,t,e,n)}function ite(t,e,n){Sh(),Fvt.call(this,t,e,n)}function ste(t,e,n){Sh(),Bvt.call(this,t,e,n)}function Eit(t){Lz.call(this,t.d,t.c,t.a,t.b)}function jvt(t){Lz.call(this,t.d,t.c,t.a,t.b)}function $vt(t){this.d=t,kr(this),this.b=Vun(t.d)}function Gcn(t){return O7(),jr((dce(),uTe),t)}function pI(t,e){return Hr(t),Hr(e),new dYt(t,e)}function H6(t,e){return Hr(t),Hr(e),new mte(t,e)}function Kcn(t,e){return Hr(t),Hr(e),new vte(t,e)}function Wcn(t,e){return Hr(t),Hr(e),new kYt(t,e)}function Tit(t){return ur(t.b!=0),Oh(t,t.a.a)}function Ycn(t){return ur(t.b!=0),Oh(t,t.c.b)}function Xcn(t){return!t.c&&(t.c=new x0),t.c}function DE(t){var e;return e=new fe,Wst(e,t),e}function Qcn(t){var e;return e=new Os,Wst(e,t),e}function ate(t){var e;return e=new q2t,oat(e,t),e}function bI(t){var e;return e=new Ki,oat(e,t),e}function u(t,e){return AS(t==null||aot(t,e)),t}function Jcn(t,e,n){see.call(this,e,n),this.a=t}function ote(t,e){this.c=t,this.b=e,this.a=!1}function cte(){this.a=";,;",this.b="",this.c=""}function ute(t,e,n){this.b=t,yQt.call(this,e,n)}function zvt(t,e,n){this.c=t,I$.call(this,e,n)}function qvt(t,e,n){kE.call(this,t,e),this.b=n}function Hvt(t,e,n){N6t(n,0,t,e,n.length,!1)}function S0(t,e,n,r,s){t.b=e,t.c=n,t.d=r,t.a=s}function Vvt(t,e,n,r,s){t.d=e,t.c=n,t.a=r,t.b=s}function Zcn(t,e){e&&(t.b=e,t.a=(Mb(e),e.a))}function wI(t,e){if(!t)throw at(new zn(e))}function V6(t,e){if(!t)throw at(new Ro(e))}function Uvt(t,e){if(!t)throw at(new wWt(e))}function tun(t,e){return T$(),jc(t.d.p,e.d.p)}function eun(t,e){return Sg(),Bi(t.e.b,e.e.b)}function nun(t,e){return Sg(),Bi(t.e.a,e.e.a)}function run(t,e){return jc(Tte(t.d),Tte(e.d))}function yz(t,e){return e&&Vz(t,e.d)?e:null}function iun(t,e){return e==(ve(),Gn)?t.c:t.d}function Gvt(t){return Fb(rln(ec(t)?rf(t):t))}function sun(t){return new ae(t.c+t.b,t.d+t.a)}function lte(t){return t!=null&&!Uat(t,CL,SL)}function aun(t,e){return(que(t)<<4|que(e))&js}function hte(t,e,n,r,s){t.c=e,t.d=n,t.b=r,t.a=s}function Kvt(t){var e,n;e=t.b,n=t.c,t.b=n,t.c=e}function Wvt(t){var e,n;n=t.d,e=t.a,t.d=e,t.a=n}function oun(t,e){var n;return n=t.c,S4t(t,e),n}function Yvt(t,e){return e<0?t.g=-1:t.g=e,t}function xz(t,e){return pgn(t),t.a*=e,t.b*=e,t}function fte(t,e,n){aoe.call(this,e,n),this.d=t}function mI(t,e,n){gmt.call(this,t,e),this.c=n}function kz(t,e,n){gmt.call(this,t,e),this.c=n}function Xvt(t){Avt(),E4.call(this),this.ci(t)}function dte(){VE(),Aln.call(this,(Eb(),yf))}function gte(t){return yi(),new _0(0,t)}function pte(){pte=V,a0t=(mn(),new pa(lht))}function Ez(){Ez=V,new oxt((Wnt(),kht),(Knt(),xht))}function bte(){bte=V,d9t=Vt(Ra,ue,17,256,0,1)}function wte(){this.b=Rt(Ht(Se((Vf(),eft))))}function Cit(t){this.b=t,this.a=K2(this.b.a).Od()}function mte(t,e){this.b=t,this.a=e,DC.call(this)}function vte(t,e){this.a=t,this.b=e,DC.call(this)}function yte(t,e,n){this.a=t,$4.call(this,e,n)}function xte(t,e,n){this.a=t,$4.call(this,e,n)}function ME(t,e,n){var r;r=new Oy(n),_1(t,e,r)}function Qvt(t,e,n){var r;return r=t[e],t[e]=n,r}function Tz(t){var e;return e=t.slice(),zst(e,t)}function Cz(t){var e;return e=t.n,t.a.b+e.d+e.a}function kte(t){var e;return e=t.n,t.e.b+e.d+e.a}function Jvt(t){var e;return e=t.n,t.e.a+e.b+e.c}function Zvt(t){t.a.b=t.b,t.b.a=t.a,t.a=t.b=null}function Zr(t,e){return hs(t,e,t.c.b,t.c),!0}function cun(t){return t.a?t.a:Zit(t)}function uun(t){return J6(),O0(t)==Ji(qb(t))}function lun(t){return J6(),qb(t)==Ji(O0(t))}function Cm(t,e){return k_(t,new kE(e.a,e.b))}function hun(t,e){return Gz(),got(t,e),new Vee(t,e)}function fun(t,e){return t.c=e)throw at(new Y2t)}function My(t,e){return dO(t,(Wn(e),new no(e)))}function G6(t,e){return dO(t,(Wn(e),new ql(e)))}function oee(t,e,n){return RSn(t,u(e,12),u(n,12))}function cee(t){return rl(),u(t,12).g.c.length!=0}function uee(t){return rl(),u(t,12).e.c.length!=0}function Xun(t,e){return ok(),Bi(e.a.o.a,t.a.o.a)}function Qun(t,e){e.Bb&Fc&&!t.a.o&&(t.a.o=e)}function Jun(t,e){e.Ug("General 'Rotator",1),fCn(t)}function Zun(t,e,n){e.qf(n,Rt(Ht(tr(t.b,n)))*t.a)}function lee(t,e,n){return w5(),i7(t,e)&&i7(t,n)}function IS(t){return wl(),!t.Hc(Hg)&&!t.Hc(g2)}function tln(t){return t.e?$3t(t.e):null}function OS(t){return ec(t)?""+t:p0e(t)}function myt(t){var e;for(e=t;e.f;)e=e.f;return e}function eln(t,e,n){return ls(e,0,iyt(e[0],n[0])),e}function vp(t,e,n,r){var s;s=t.i,s.i=e,s.a=n,s.b=r}function Jt(t,e,n,r){Ps.call(this,t,e,n),this.b=r}function ha(t,e,n,r,s){jst.call(this,t,e,n,r,s,-1)}function NS(t,e,n,r,s){jI.call(this,t,e,n,r,s,-1)}function jz(t,e,n,r){mI.call(this,t,e,n),this.b=r}function hee(t){cQt.call(this,t,!1),this.a=!1}function fee(){zXt.call(this,"LOOKAHEAD_LAYOUT",1)}function dee(t){this.b=t,j6.call(this,t),mJt(this)}function gee(t){this.b=t,aI.call(this,t),vJt(this)}function Iy(t,e,n){this.a=t,z6.call(this,e,n,5,6)}function vyt(t,e,n,r){this.b=t,Ps.call(this,e,n,r)}function pee(t,e){this.b=t,dg.call(this,t.b),this.a=e}function bee(t){this.a=Zle(t.a),this.b=new fl(t.b)}function yyt(t,e){Dm(),Irn.call(this,t,uH(new hl(e)))}function $z(t,e){return yi(),new Pyt(t,e,0)}function Rit(t,e){return yi(),new Pyt(6,t,e)}function Na(t,e){for(Wn(e);t.Ob();)e.Cd(t.Pb())}function Tu(t,e){return ba(e)?ost(t,e):!!Eo(t.f,e)}function jit(t,e){return e.Vh()?jb(t.b,u(e,54)):e}function nln(t,e){return hn(t.substr(0,e.length),e)}function A0(t){return new rr(new zmt(t.a.length,t.a))}function zz(t){return new ae(t.c+t.b/2,t.d+t.a/2)}function rln(t){return Eu(~t.l&Il,~t.m&Il,~t.h&Fg)}function $it(t){return typeof t===ZO||typeof t===Pct}function dl(t){t.f=new FQt(t),t.i=new BQt(t),++t.g}function wee(t){if(!t)throw at(new cc);return t.d}function K6(t){var e;return e=r_(t),ur(e!=null),e}function iln(t){var e;return e=y2n(t),ur(e!=null),e}function OE(t,e){var n;return n=t.a.gc(),P3t(e,n),n-e}function qs(t,e){var n;return n=t.a.zc(e,t),n==null}function yI(t,e){return t.a.zc(e,(Pn(),t2))==null}function xyt(t){return new ln(null,uln(t,t.length))}function kyt(t,e,n){return jge(t,u(e,42),u(n,176))}function W6(t,e,n){return zf(t.a,e),Qvt(t.b,e.g,n)}function sln(t,e,n){IE(n,t.a.c.length),Mh(t.a,n,e)}function zt(t,e,n,r){pue(e,n,t.length),aln(t,e,n,r)}function aln(t,e,n,r){var s;for(s=e;s0?b.Math.log(t/e):-100}function vee(t,e){return $c(t,e)<0?-1:$c(t,e)>0?1:0}function xI(t,e){lJt(t,Lt(e,160)?e:u(e,2036).Rl())}function Syt(t,e){if(t==null)throw at(new A6(e))}function uln(t,e){return hgn(e,t.length),new Ste(t,e)}function _yt(t,e){return e?Ma(t,e):!1}function lln(){return l$(),lt(ut($ve,1),te,549,0,[Cht])}function FS(t){return t.e==0?t:new Y2(-t.e,t.d,t.a)}function hln(t,e){return Bi(t.c.c+t.c.b,e.c.c+e.c.b)}function kI(t,e){hs(t.d,e,t.b.b,t.b),++t.a,t.c=null}function yee(t,e){return t.c?yee(t.c,e):ge(t.b,e),t}function fln(t,e,n){var r;return r=$y(t,e),Est(t,e,n),r}function xee(t,e,n){var r;for(r=0;r=t.g}function ls(t,e,n){return ran(n==null||JEn(t,n)),t[e]=n}function Iyt(t,e){return qn(e,t.length+1),t.substr(e)}function Xit(t,e){for(Wn(e);t.c=t?new Lwt:Pgn(t-1)}function Pa(t){return!t.a&&t.c?t.c.b:t.a}function Byt(t){return Lt(t,616)?t:new $ne(t)}function Mb(t){t.c?Mb(t.c):($b(t),t.d=!0)}function jS(t){t.c?t.c.$e():(t.d=!0,Z6n(t))}function zee(t){t.b=!1,t.c=!1,t.d=!1,t.a=!1}function qee(t){var e,n;return e=t.c.i.c,n=t.d.i.c,e==n}function Mln(t,e){var n;n=t.Ih(e),n>=0?t.ki(n):C6t(t,e)}function Hee(t,e){t.c<0||t.b.b0;)t=t<<1|(t<0?1:0);return t}function Qee(t,e){var n;return n=new eu(t),In(e.c,n),n}function Jee(t,e){t.u.Hc((wl(),Hg))&&F5n(t,e),t0n(t,e)}function Nc(t,e){return $t(t)===$t(e)||t!=null&&Ti(t,e)}function Io(t,e){return Dit(t.a,e)?t.b[u(e,22).g]:null}function Vln(){return E$(),lt(ut(rCt,1),te,488,0,[Wht])}function Uln(){return S$(),lt(ut(IDt,1),te,489,0,[wdt])}function Gln(){return _$(),lt(ut(SEe,1),te,558,0,[mdt])}function Kln(){return tS(),lt(ut(ZDt,1),te,539,0,[kP])}function Kz(t){return!t.n&&(t.n=new Jt(Po,t,1,7)),t.n}function Jit(t){return!t.c&&(t.c=new Jt(kl,t,9,9)),t.c}function zyt(t){return!t.c&&(t.c=new kn(vr,t,5,8)),t.c}function Wln(t){return!t.b&&(t.b=new kn(vr,t,4,7)),t.b}function EI(t){return t.j.c.length=0,Hyt(t.c),San(t.a),t}function RE(t){return t.e==dT&&nn(t,qwn(t.g,t.b)),t.e}function TI(t){return t.f==dT&&Tn(t,Ovn(t.g,t.b)),t.f}function fi(t,e,n,r){return xce(t,e,n,!1),lH(t,r),t}function Zee(t,e){this.b=t,zit.call(this,t,e),mJt(this)}function tne(t,e){this.b=t,Cvt.call(this,t,e),vJt(this)}function $S(t){this.d=t,this.a=this.d.b,this.b=this.d.c}function qyt(t,e){this.b=t,this.c=e,this.a=new I6(this.b)}function Va(t,e){return qn(e,t.length),t.charCodeAt(e)}function Yln(t,e){L5t(t,Rt(_g(e,"x")),Rt(_g(e,"y")))}function Xln(t,e){L5t(t,Rt(_g(e,"x")),Rt(_g(e,"y")))}function _i(t,e){return $b(t),new ln(t,new Z3t(e,t.a))}function Wo(t,e){return $b(t),new ln(t,new R3t(e,t.a))}function Ny(t,e){return $b(t),new rvt(t,new use(e,t.a))}function Wz(t,e){return $b(t),new ivt(t,new lse(e,t.a))}function Qln(t,e){return new Tne(u(Hr(t),50),u(Hr(e),50))}function Jln(t,e){return Bi(t.d.c+t.d.b/2,e.d.c+e.d.b/2)}function ene(t,e,n){n.a?_u(t,e.b-t.f/2):Su(t,e.a-t.g/2)}function Zln(t,e){return Bi(t.g.c+t.g.b/2,e.g.c+e.g.b/2)}function thn(t,e){return Iwt(),Bi((Wn(t),t),(Wn(e),e))}function ehn(t){return t!=null&&BM(WK,t.toLowerCase())}function Hyt(t){var e;for(e=t.Kc();e.Ob();)e.Pb(),e.Qb()}function X4(t){var e;return e=t.b,!e&&(t.b=e=new vnt(t)),e}function Zit(t){var e;return e=jgn(t),e||null}function nne(t,e){var n,r;return n=t/e,r=Ys(n),n>r&&++r,r}function nhn(t,e,n){var r;r=u(t.d.Kb(n),159),r&&r.Nb(e)}function rhn(t,e,n){sTn(t.a,n),Fpn(n),Sxn(t.b,n),STn(e,n)}function Yz(t,e,n,r){this.a=t,this.c=e,this.b=n,this.d=r}function Vyt(t,e,n,r){this.c=t,this.b=e,this.a=n,this.d=r}function rne(t,e,n,r){this.c=t,this.b=e,this.d=n,this.a=r}function Ah(t,e,n,r){this.c=t,this.d=e,this.b=n,this.a=r}function ine(t,e,n,r){this.a=t,this.d=e,this.c=n,this.b=r}function tst(t,e,n,r){this.a=t,this.e=e,this.d=n,this.c=r}function sne(t,e,n,r){this.a=t,this.c=e,this.d=n,this.b=r}function est(t,e,n){this.a=b8t,this.d=t,this.b=e,this.c=n}function X6(t,e,n,r){Rr.call(this,t,e),this.a=n,this.b=r}function ane(t,e){this.d=(Wn(t),t),this.a=16449,this.c=e}function one(t){this.a=new fe,this.e=Vt(Fr,ue,53,t,0,2)}function ihn(t){t.Ug("No crossing minimization",1),t.Vg()}function cne(){uc.call(this,"There is no more element.")}function une(t,e,n,r){this.a=t,this.b=e,this.c=n,this.d=r}function lne(t,e,n,r){this.a=t,this.b=e,this.c=n,this.d=r}function X2(t,e,n,r){this.e=t,this.a=e,this.c=n,this.d=r}function hne(t,e,n,r){this.a=t,this.c=e,this.d=n,this.b=r}function fne(t,e,n,r){Sh(),hse.call(this,e,n,r),this.a=t}function dne(t,e,n,r){Sh(),hse.call(this,e,n,r),this.a=t}function nst(t,e,n){var r,s;return r=n8t(t),s=e.ti(n,r),s}function mg(t){var e,n;return n=(e=new lm,e),YE(n,t),n}function rst(t){var e,n;return n=(e=new lm,e),a6t(n,t),n}function shn(t,e){var n;return n=tr(t.f,e),j4t(e,n),null}function gne(t){return!t.b&&(t.b=new Jt(Ts,t,12,3)),t.b}function pne(t){return AS(t==null||$it(t)&&t.Tm!==yt),t}function Xz(t){return t.n&&(t.e!==wbe&&t.je(),t.j=null),t}function jE(t){if(Ll(t.d),t.d.d!=t.c)throw at(new Th)}function Uyt(t){return ur(t.b0&&Khe(this)}function bne(t,e){this.a=t,ian.call(this,t,u(t.d,15).fd(e))}function ahn(t,e){return Bi(tl(t)*Gl(t),tl(e)*Gl(e))}function ohn(t,e){return Bi(tl(t)*Gl(t),tl(e)*Gl(e))}function chn(t){return Zm(t)&&Ie(Me(ne(t,(De(),Mw))))}function uhn(t,e){return dn(t,u(X(e,(De(),OT)),17),e)}function lhn(t,e){return u(X(t,(oe(),Uk)),15).Fc(e),e}function Gyt(t,e){return t.b=e.b,t.c=e.c,t.d=e.d,t.a=e.a,t}function wne(t,e,n,r){this.b=t,this.c=r,ez.call(this,e,n)}function hhn(t,e,n){t.i=0,t.e=0,e!=n&&tue(t,e,n)}function fhn(t,e,n){t.i=0,t.e=0,e!=n&&eue(t,e,n)}function dhn(t,e,n){return ZC(),$2n(u(tr(t.e,e),529),n)}function Q6(t){var e;return e=t.f,e||(t.f=new vE(t,t.c))}function mne(t,e){return a5(t.j,e.s,e.c)+a5(e.e,t.s,t.c)}function vne(t,e){t.e&&!t.e.a&&(aKt(t.e,e),vne(t.e,e))}function yne(t,e){t.d&&!t.d.a&&(aKt(t.d,e),yne(t.d,e))}function ghn(t,e){return-Bi(tl(t)*Gl(t),tl(e)*Gl(e))}function phn(t){return u(t.ld(),149).Pg()+":"+rc(t.md())}function xne(){Fot(this,new Fj),this.wb=(Lb(),Fn),bE()}function kne(t){this.b=new fe,Hs(this.b,this.b),this.a=t}function Kyt(t,e){new Ki,this.a=new Qu,this.b=t,this.c=e}function Nm(){Nm=V,C9t=new Gt,Oht=new Gt,S9t=new Fe}function mn(){mn=V,co=new jt,q0=new Ft,FU=new Ct}function Wyt(){Wyt=V,vye=new Ha,xye=new uyt,yye=new ds}function J6(){J6=V,VU=new fe,Jht=new _r,Qht=new fe}function Qz(t,e){if(t==null)throw at(new A6(e));return t}function Jz(t){return!t.a&&(t.a=new Jt(bi,t,10,11)),t.a}function Di(t){return!t.q&&(t.q=new Jt(vf,t,11,10)),t.q}function Qt(t){return!t.s&&(t.s=new Jt(Wu,t,21,17)),t.s}function bhn(t){return Hr(t),uhe(new rr(sr(t.a.Kc(),new z)))}function whn(t,e){return Wl(t),Wl(e),bWt(u(t,22),u(e,22))}function Q2(t,e,n){var r,s;r=_vt(n),s=new cE(r),_1(t,e,s)}function sst(t,e,n,r,s,o){jI.call(this,t,e,n,r,s,o?-2:-1)}function Ene(t,e,n,r){gmt.call(this,e,n),this.b=t,this.a=r}function Tne(t,e){Rnn.call(this,new Bit(t)),this.a=t,this.b=e}function Yyt(t){this.b=t,this.c=t,t.e=null,t.c=null,this.a=1}function mhn(t){Bf();var e;e=u(t.g,10),e.n.a=t.d.c+e.d.b}function $E(){$E=V;var t,e;e=!Cwn(),t=new it,Aht=e?new rt:t}function ast(t){return mn(),Lt(t,59)?new nrt(t):new uz(t)}function Zz(t){return Lt(t,16)?new LS(u(t,16)):Qcn(t.Kc())}function vhn(t){return new xJt(t,t.e.Rd().gc()*t.c.Rd().gc())}function yhn(t){return new kJt(t,t.e.Rd().gc()*t.c.Rd().gc())}function Xyt(t){return t&&t.hashCode?t.hashCode():Em(t)}function ost(t,e){return e==null?!!Eo(t.f,null):Fun(t.i,e)}function xhn(t,e){var n;return n=Imt(t.a,e),n&&(e.d=null),n}function Cne(t,e,n){return t.f?t.f.ef(e,n):!1}function CI(t,e,n,r){ls(t.c[e.g],n.g,r),ls(t.c[n.g],e.g,r)}function cst(t,e,n,r){ls(t.c[e.g],e.g,n),ls(t.b[e.g],e.g,r)}function khn(t,e,n){return Rt(Ht(n.a))<=t&&Rt(Ht(n.b))>=e}function Sne(t,e){this.g=t,this.d=lt(ut(V0,1),jp,10,0,[e])}function _ne(t){this.c=t,this.b=new pp(u(Hr(new Fu),50))}function Ane(t){this.c=t,this.b=new pp(u(Hr(new b4),50))}function Lne(t){this.b=t,this.a=new pp(u(Hr(new Ci),50))}function Dne(){this.b=new Os,this.d=new Ki,this.e=new X2t}function Qyt(){this.c=new Sa,this.d=new Sa,this.e=new Sa}function Pm(){this.a=new Qu,this.b=(oh(3,c3),new wu(3))}function yp(t,e){this.e=t,this.a=aa,this.b=M0e(e),this.c=e}function tq(t){this.c=t.c,this.d=t.d,this.b=t.b,this.a=t.a}function Mne(t,e,n,r,s,o){this.a=t,tat.call(this,e,n,r,s,o)}function Ine(t,e,n,r,s,o){this.a=t,tat.call(this,e,n,r,s,o)}function Ib(t,e,n,r,s,o,h){return new Cst(t.e,e,n,r,s,o,h)}function Ehn(t,e,n){return n>=0&&hn(t.substr(n,e.length),e)}function One(t,e){return Lt(e,149)&&hn(t.b,u(e,149).Pg())}function Thn(t,e){return t.a?e.Gh().Kc():u(e.Gh(),71).Ii()}function Nne(t,e){var n;return n=t.b.Qc(e),Aie(n,t.b.gc()),n}function SI(t,e){if(t==null)throw at(new A6(e));return t}function Yo(t){return t.u||(_l(t),t.u=new dZt(t,t)),t.u}function ust(t){this.a=(mn(),Lt(t,59)?new nrt(t):new uz(t))}function $u(t){var e;return e=u(jn(t,16),29),e||t.ii()}function eq(t,e){var n;return n=V2(t.Rm),e==null?n:n+": "+e}function Lh(t,e,n){return Da(e,n,t.length),t.substr(e,n-e)}function Pne(t,e){gz.call(this),c4t(this),this.a=t,this.c=e}function Chn(t){t&&eq(t,t.ie())}function Shn(t){d$(),b.setTimeout(function(){throw t},0)}function _hn(){return TH(),lt(ut(N9t,1),te,436,0,[zht,O9t])}function Ahn(){return Mq(),lt(ut(F9t,1),te,435,0,[P9t,qht])}function Lhn(){return Iq(),lt(ut(lCt,1),te,432,0,[Zht,UU])}function Dhn(){return r7(),lt(ut(y4e,1),te,517,0,[KN,dft])}function Mhn(){return qI(),lt(ut(NSt,1),te,487,0,[OSt,EG])}function Ihn(){return YI(),lt(ut(MSt,1),te,428,0,[xG,DSt])}function Ohn(){return Eq(),lt(ut(ESt,1),te,431,0,[kSt,Aft])}function Nhn(){return KI(),lt(ut(jAt,1),te,430,0,[T1t,C1t])}function Phn(){return US(),lt(ut(hke,1),te,531,0,[KA,GA])}function Fhn(){return Gd(),lt(ut(mke,1),te,523,0,[Dv,Gp])}function Bhn(){return nd(),lt(ut(yke,1),te,522,0,[Fw,yd])}function Rhn(){return C1(),lt(ut(Pke,1),te,528,0,[F3,o2])}function jhn(){return fq(),lt(ut(KSt,1),te,429,0,[Hft,GSt])}function $hn(){return wq(),lt(ut(CDt,1),te,490,0,[gdt,TDt])}function zhn(){return gat(),lt(ut(MDt,1),te,491,0,[LDt,DDt])}function qhn(){return uq(),lt(ut(NLt,1),te,433,0,[K1t,OLt])}function Hhn(){return Cq(),lt(ut(BLt,1),te,434,0,[FLt,Z1t])}function Vhn(){return Bm(),lt(ut(qke,1),te,464,0,[c2,Z5])}function Uhn(){return Kq(),lt(ut(PLt,1),te,500,0,[hK,nx])}function Ghn(){return BI(),lt(ut(ODt,1),te,438,0,[vdt,kK])}function Khn(){return sO(),lt(ut(eMt,1),te,437,0,[TK,tMt])}function Whn(){return vit(),lt(ut(jK,1),te,347,0,[bIt,wIt])}function nq(t,e,n,r){return n>=0?t.Uh(e,n,r):t.Ch(null,n,r)}function _I(t){return t.b.b==0?t.a.sf():Tit(t.b)}function Yhn(t){if(t.p!=5)throw at(new Xu);return qr(t.f)}function Xhn(t){if(t.p!=5)throw at(new Xu);return qr(t.k)}function Jyt(t){return $t(t.a)===$t((fat(),r0t))&&WTn(t),t.a}function Qhn(t,e){t.b=e,t.c>0&&t.b>0&&(t.g=Dz(t.c,t.b,t.a))}function Jhn(t,e){t.c=e,t.c>0&&t.b>0&&(t.g=Dz(t.c,t.b,t.a))}function Fne(t,e){st(this,new ae(t.a,t.b)),bt(this,bI(e))}function Fm(){jnn.call(this,new M6(zy(12))),Bmt(!0),this.a=2}function lst(t,e,n){yi(),um.call(this,t),this.b=e,this.a=n}function Zyt(t,e,n){Sh(),i$.call(this,e),this.a=t,this.b=n}function Bne(t){var e;e=t.c.d.b,t.b=e,t.a=t.c.d,e.a=t.c.d.b=t}function Zhn(t){return t.b==0?null:(ur(t.b!=0),Oh(t,t.a.a))}function nu(t,e){return e==null?Ko(Eo(t.f,null)):iS(t.i,e)}function Rne(t,e,n,r,s){return new Rot(t,(KE(),Bht),e,n,r,s)}function rq(t,e){return Cie(e),Egn(t,Vt(Fr,ii,28,e,15,1),e)}function iq(t,e){return Qz(t,"set1"),Qz(e,"set2"),new _Yt(t,e)}function tfn(t,e){var n=_ht[t.charCodeAt(0)];return n??t}function jne(t,e){var n,r;return n=e,r=new be,dpe(t,n,r),r.d}function hst(t,e,n,r){var s;s=new bZt,e.a[n.g]=s,W6(t.b,r,s)}function efn(t,e){var n;return n=ygn(t.f,e),ki(dz(n),t.f.d)}function sq(t){var e;Mgn(t.a),GQt(t.a),e=new RC(t.a),j5t(e)}function nfn(t,e){x0e(t,!0),Cu(t.e.Rf(),new Mvt(t,!0,e))}function rfn(t,e){return J6(),t==Ji(O0(e))||t==Ji(qb(e))}function ifn(t,e){return Sg(),u(X(e,(Cc(),h0)),17).a==t}function Ys(t){return Math.max(Math.min(t,xi),-2147483648)|0}function $ne(t){this.a=u(Hr(t),277),this.b=(mn(),new Vmt(t))}function zne(t,e,n){this.i=new fe,this.b=t,this.g=e,this.a=n}function t3t(t,e,n){this.a=new fe,this.e=t,this.f=e,this.c=n}function aq(t,e,n){this.c=new fe,this.e=t,this.f=e,this.b=n}function qne(t){gz.call(this),c4t(this),this.a=t,this.c=!0}function sfn(t){function e(){}return e.prototype=t||{},new e}function afn(t){if(t.Ae())return null;var e=t.n;return DU[e]}function AI(t){return t.Db>>16!=3?null:u(t.Cb,27)}function ed(t){return t.Db>>16!=9?null:u(t.Cb,27)}function Hne(t){return t.Db>>16!=6?null:u(t.Cb,74)}function Bm(){Bm=V,c2=new nmt(_k,0),Z5=new nmt(Ak,1)}function Gd(){Gd=V,Dv=new Zwt(Ak,0),Gp=new Zwt(_k,1)}function nd(){nd=V,Fw=new tmt(xut,0),yd=new tmt("UP",1)}function Vne(){Vne=V,zve=$r((l$(),lt(ut($ve,1),te,549,0,[Cht])))}function Une(t){var e;return e=new w$(zy(t.length)),J4t(e,t),e}function Gne(t,e){return t.b+=e.b,t.c+=e.c,t.d+=e.d,t.a+=e.a,t}function ofn(t,e){return Ice(t,e)?(Aoe(t),!0):!1}function vg(t,e){if(e==null)throw at(new E6);return _wn(t,e)}function LI(t,e){var n;n=t.q.getHours(),t.q.setDate(e),N_(t,n)}function e3t(t,e,n){var r;r=t.Ih(e),r>=0?t.bi(r,n):J6t(t,e,n)}function Kne(t,e){var n;return n=t.Ih(e),n>=0?t.Wh(n):Vot(t,e)}function Wne(t,e){var n;for(Hr(e),n=t.a;n;n=n.c)e.Yd(n.g,n.i)}function fst(t,e,n){var r;r=Jce(t,e,n),t.b=new Yq(r.c.length)}function Q4(t,e,n){oq(),t&&hi(t0t,t,e),t&&hi(VP,t,n)}function cfn(t,e){return vz(),Pn(),u(e.a,17).a0}function n3t(t){var e;return e=t.d,e=t.bj(t.f),Or(t,e),e.Ob()}function Yne(t,e){var n;return n=new ayt(e),yfe(n,t),new fl(n)}function hfn(t){if(t.p!=0)throw at(new Xu);return bS(t.f,0)}function ffn(t){if(t.p!=0)throw at(new Xu);return bS(t.k,0)}function Xne(t){return t.Db>>16!=7?null:u(t.Cb,241)}function zE(t){return t.Db>>16!=6?null:u(t.Cb,241)}function Qne(t){return t.Db>>16!=7?null:u(t.Cb,167)}function Ji(t){return t.Db>>16!=11?null:u(t.Cb,27)}function Py(t){return t.Db>>16!=17?null:u(t.Cb,29)}function Jne(t){return t.Db>>16!=3?null:u(t.Cb,155)}function r3t(t){var e;return $b(t),e=new Os,_i(t,new A4(e))}function Zne(t,e){var n=t.a=t.a||[];return n[e]||(n[e]=t.ve(e))}function dfn(t,e){var n;n=t.q.getHours(),t.q.setMonth(e),N_(t,n)}function tre(t,e){oz(this),this.f=e,this.g=t,Xz(this),this.je()}function ere(t,e){this.a=t,this.c=Oa(this.a),this.b=new tq(e)}function nre(t,e,n){this.a=e,this.c=t,this.b=(Hr(n),new fl(n))}function rre(t,e,n){this.a=e,this.c=t,this.b=(Hr(n),new fl(n))}function ire(t){this.a=t,this.b=Vt(cke,ue,2043,t.e.length,0,2)}function sre(){this.a=new zd,this.e=new Os,this.g=0,this.i=0}function oq(){oq=V,t0t=new _r,VP=new _r,oin(sye,new dC)}function are(){are=V,G6e=el(new Fs,(Ua(),Zo),(Za(),WN))}function i3t(){i3t=V,K6e=el(new Fs,(Ua(),Zo),(Za(),WN))}function ore(){ore=V,Y6e=el(new Fs,(Ua(),Zo),(Za(),WN))}function cre(){cre=V,dke=ri(new Fs,(Ua(),Zo),(Za(),CA))}function rh(){rh=V,bke=ri(new Fs,(Ua(),Zo),(Za(),CA))}function ure(){ure=V,wke=ri(new Fs,(Ua(),Zo),(Za(),CA))}function gst(){gst=V,kke=ri(new Fs,(Ua(),Zo),(Za(),CA))}function zS(t,e,n,r,s,o){return new Tg(t.e,e,t.Lj(),n,r,s,o)}function jo(t,e,n){return e==null?yu(t.f,null,n):Km(t.i,e,n)}function Xa(t,e){t.c&&zu(t.c.g,t),t.c=e,t.c&&ge(t.c.g,t)}function Aa(t,e){t.c&&zu(t.c.a,t),t.c=e,t.c&&ge(t.c.a,t)}function hc(t,e){t.i&&zu(t.i.j,t),t.i=e,t.i&&ge(t.i.j,t)}function xa(t,e){t.d&&zu(t.d.e,t),t.d=e,t.d&&ge(t.d.e,t)}function pst(t,e){t.a&&zu(t.a.k,t),t.a=e,t.a&&ge(t.a.k,t)}function bst(t,e){t.b&&zu(t.b.f,t),t.b=e,t.b&&ge(t.b.f,t)}function lre(t,e){Cln(t,t.b,t.c),u(t.b.b,68),e&&u(e.b,68).b}function gfn(t,e){return Bi(u(t.c,65).c.e.b,u(e.c,65).c.e.b)}function pfn(t,e){return Bi(u(t.c,65).c.e.a,u(e.c,65).c.e.a)}function bfn(t){return Iat(),Pn(),u(t.a,86).d.e!=0}function cq(t,e){Lt(t.Cb,184)&&(u(t.Cb,184).tb=null),mu(t,e)}function wst(t,e){Lt(t.Cb,90)&&t3(_l(u(t.Cb,90)),4),mu(t,e)}function wfn(t,e){D5t(t,e),Lt(t.Cb,90)&&t3(_l(u(t.Cb,90)),2)}function mfn(t,e){var n,r;n=e.c,r=n!=null,r&&Y6(t,new Oy(e.c))}function hre(t){var e,n;return n=(bE(),e=new lm,e),YE(n,t),n}function fre(t){var e,n;return n=(bE(),e=new lm,e),YE(n,t),n}function dre(t){for(var e;;)if(e=t.Pb(),!t.Ob())return e}function vfn(t,e,n){return ge(t.a,(Gz(),got(e,n),new bm(e,n))),t}function ru(t,e){return vo(),Gst(e)?new Sz(e,t):new eI(e,t)}function DI(t){return Xd(),$c(t,0)>=0?zb(t):FS(zb(Cp(t)))}function yfn(t){var e;return e=u(Tz(t.b),9),new _h(t.a,e,t.c)}function gre(t,e){var n;return n=u(Gy(Q6(t.a),e),16),n?n.gc():0}function pre(t,e,n){var r;$ue(e,n,t.c.length),r=n-e,Swt(t.c,e,r)}function xp(t,e,n){$ue(e,n,t.gc()),this.c=t,this.a=e,this.b=n-e}function Z6(t){this.c=new Ki,this.b=t.b,this.d=t.c,this.a=t.a}function mst(t){this.a=b.Math.cos(t),this.b=b.Math.sin(t)}function J2(t,e,n,r){this.c=t,this.d=r,pst(this,e),bst(this,n)}function s3t(t,e){Bnn.call(this,new M6(zy(t))),oh(e,hbe),this.a=e}function bre(t,e,n){return new Rot(t,(KE(),Fht),null,!1,e,n)}function wre(t,e,n){return new Rot(t,(KE(),Rht),e,n,null,!1)}function xfn(){return bl(),lt(ut(Ho,1),te,108,0,[I9t,sc,w3])}function kfn(){return qu(),lt(ut(Dye,1),te,471,0,[O1,n2,Kf])}function Efn(){return pl(),lt(ut(Aye,1),te,470,0,[c0,e2,Gf])}function Tfn(){return A1(),lt(ut(m3,1),te,237,0,[Ac,xu,Lc])}function Cfn(){return WS(),lt(ut(CCt,1),te,391,0,[rft,nft,ift])}function Sfn(){return Vm(),lt(ut(vft,1),te,372,0,[mv,r2,wv])}function _fn(){return QS(),lt(ut(CSt,1),te,322,0,[_A,QN,TSt])}function Afn(){return $q(),lt(ut(_St,1),te,351,0,[SSt,yG,Lft])}function Lfn(){return ow(),lt(ut(Q4e,1),te,459,0,[Ift,_T,z5])}function Dfn(){return c7(),lt(ut(qft,1),te,298,0,[$ft,zft,JN])}function Mfn(){return Cg(),lt(ut(s5e,1),te,311,0,[ZN,H5,qk])}function Ifn(){return o_(),lt(ut(LAt,1),te,390,0,[w1t,AAt,QG])}function Ofn(){return To(),lt(ut(j6e,1),te,462,0,[HA,vl,ku])}function Nfn(){return tH(),lt(ut(qAt,1),te,387,0,[$At,S1t,zAt])}function Pfn(){return i_(),lt(ut(HAt,1),te,349,0,[A1t,_1t,lP])}function Ffn(){return b7(),lt(ut(UAt,1),te,350,0,[L1t,VAt,VA])}function Bfn(){return jq(),lt(ut(WAt,1),te,352,0,[KAt,D1t,GAt])}function Rfn(){return iH(),lt(ut(YAt,1),te,388,0,[M1t,$T,P3])}function jfn(){return Hm(),lt(ut(ake,1),te,463,0,[hP,UA,eK])}function rd(t){return dc(lt(ut(la,1),ue,8,0,[t.i.n,t.n,t.a]))}function $fn(){return s_(),lt(ut(fLt,1),te,392,0,[hLt,N1t,dP])}function mre(){mre=V,w8e=el(new Fs,(bk(),YA),(I_(),nLt))}function uq(){uq=V,K1t=new rmt("DFS",0),OLt=new rmt("BFS",1)}function vre(t,e,n){var r;r=new hZ,r.b=e,r.a=n,++e.b,ge(t.d,r)}function zfn(t,e,n){var r;r=new io(n.d),ki(r,t),L5t(e,r.a,r.b)}function qfn(t,e){fJt(t,qr(sa(_m(e,24),TV)),qr(sa(e,TV)))}function Fy(t,e){if(t<0||t>e)throw at(new Bo(C8t+t+S8t+e))}function vn(t,e){if(t<0||t>=e)throw at(new Bo(C8t+t+S8t+e))}function qn(t,e){if(t<0||t>=e)throw at(new dwt(C8t+t+S8t+e))}function gn(t,e){this.b=(Wn(t),t),this.a=e&u3?e:e|64|Jd}function a3t(t){var e;return $b(t),e=(Nm(),Nm(),Oht),Pq(t,e)}function Hfn(t,e,n){var r;return r=B_(t,e,!1),r.b<=e&&r.a<=n}function Vfn(){return Sq(),lt(ut(ADt,1),te,439,0,[pdt,_Dt,SDt])}function Ufn(){return dH(),lt(ut(cDt,1),te,394,0,[oDt,hdt,aDt])}function Gfn(){return vH(),lt(ut(sDt,1),te,445,0,[mP,pK,sdt])}function Kfn(){return DH(),lt(ut(W8e,1),te,455,0,[adt,cdt,odt])}function Wfn(){return uO(),lt(ut($Lt,1),te,393,0,[fK,RLt,jLt])}function Yfn(){return Zq(),lt(ut(iDt,1),te,299,0,[idt,rDt,nDt])}function Xfn(){return cd(),lt(ut(XMt,1),te,278,0,[GT,$3,KT])}function Qfn(){return lk(),lt(ut(pIt,1),te,280,0,[gIt,q3,RK])}function Jfn(){return Ag(),lt(ut(cIt,1),te,346,0,[IK,Xp,bL])}function Zfn(){return pO(),lt(ut(bdt,1),te,444,0,[vK,yK,xK])}function Rm(t){return Hr(t),Lt(t,16)?new fl(u(t,16)):DE(t.Kc())}function o3t(t,e){return t&&t.equals?t.equals(e):$t(t)===$t(e)}function sa(t,e){return Fb(Uun(ec(t)?rf(t):t,ec(e)?rf(e):e))}function T1(t,e){return Fb(Gun(ec(t)?rf(t):t,ec(e)?rf(e):e))}function vst(t,e){return Fb(Kun(ec(t)?rf(t):t,ec(e)?rf(e):e))}function t1n(t,e){var n;return n=(Wn(t),t).g,evt(!!n),Wn(e),n(e)}function yre(t,e){var n,r;return r=OE(t,e),n=t.a.fd(r),new CYt(t,n)}function e1n(t){return t.Db>>16!=6?null:u(Kot(t),241)}function n1n(t){if(t.p!=2)throw at(new Xu);return qr(t.f)&js}function r1n(t){if(t.p!=2)throw at(new Xu);return qr(t.k)&js}function et(t){return ur(t.ar?1:0}function Tre(t,e){var n,r;return n=qst(e),r=n,u(tr(t.c,r),17).a}function yst(t,e,n){var r;r=t.d[e.p],t.d[e.p]=t.d[n.p],t.d[n.p]=r}function g1n(t,e,n){var r;t.n&&e&&n&&(r=new Ktt,ge(t.e,r))}function xst(t,e){if(qs(t.a,e),e.d)throw at(new uc(Nbe));e.d=t}function l3t(t,e){this.a=new fe,this.d=new fe,this.f=t,this.c=e}function Cre(){this.c=new cJt,this.a=new gse,this.b=new SKt,VYt()}function Sre(){ck(),this.b=new _r,this.a=new _r,this.c=new fe}function _re(t,e,n){this.d=t,this.j=e,this.e=n,this.o=-1,this.p=3}function Are(t,e,n){this.d=t,this.k=e,this.f=n,this.o=-1,this.p=5}function Lre(t,e,n,r,s,o){l4t.call(this,t,e,n,r,s),o&&(this.o=-2)}function Dre(t,e,n,r,s,o){h4t.call(this,t,e,n,r,s),o&&(this.o=-2)}function Mre(t,e,n,r,s,o){A3t.call(this,t,e,n,r,s),o&&(this.o=-2)}function Ire(t,e,n,r,s,o){g4t.call(this,t,e,n,r,s),o&&(this.o=-2)}function Ore(t,e,n,r,s,o){L3t.call(this,t,e,n,r,s),o&&(this.o=-2)}function Nre(t,e,n,r,s,o){f4t.call(this,t,e,n,r,s),o&&(this.o=-2)}function Pre(t,e,n,r,s,o){d4t.call(this,t,e,n,r,s),o&&(this.o=-2)}function Fre(t,e,n,r,s,o){D3t.call(this,t,e,n,r,s),o&&(this.o=-2)}function Bre(t,e,n,r){i$.call(this,n),this.b=t,this.c=e,this.d=r}function Rre(t,e){this.f=t,this.a=(VE(),QK),this.c=QK,this.b=e}function jre(t,e){this.g=t,this.d=(VE(),JK),this.a=JK,this.b=e}function h3t(t,e){!t.c&&(t.c=new ps(t,0)),gV(t.c,(Ni(),AL),e)}function p1n(t,e){return Qxn(t,e,Lt(e,102)&&(u(e,19).Bb&po)!=0)}function b1n(t,e){return vee(Pc(t.q.getTime()),Pc(e.q.getTime()))}function $re(t){return _it(t.e.Rd().gc()*t.c.Rd().gc(),16,new wnt(t))}function w1n(t){return!!t.u&&Wc(t.u.a).i!=0&&!(t.n&&lot(t.n))}function m1n(t){return!!t.a&&Al(t.a.a).i!=0&&!(t.b&&hot(t.b))}function f3t(t,e){return e==0?!!t.o&&t.o.f!=0:iot(t,e)}function v1n(t,e,n){var r;return r=u(t.Zb().xc(e),16),!!r&&r.Hc(n)}function zre(t,e,n){var r;return r=u(t.Zb().xc(e),16),!!r&&r.Mc(n)}function qre(t,e){var n;return n=1-e,t.a[n]=Wq(t.a[n],n),Wq(t,e)}function Hre(t,e){var n,r;return r=sa(t,So),n=Rf(e,32),T1(n,r)}function Vre(t,e,n){var r;r=(Hr(t),new fl(t)),xvn(new nre(r,e,n))}function MI(t,e,n){var r;r=(Hr(t),new fl(t)),kvn(new rre(r,e,n))}function Ec(t,e,n,r,s,o){return xce(t,e,n,o),x5t(t,r),k5t(t,s),t}function Ure(t,e,n,r){return t.a+=""+Lh(e==null?Vu:rc(e),n,r),t}function La(t,e){this.a=t,gr.call(this,t),Fy(e,t.gc()),this.b=e}function Gre(t){this.a=Vt(aa,Ln,1,W4t(b.Math.max(8,t))<<1,5,1)}function II(t){return u(ld(t,Vt(V0,jp,10,t.c.length,0,1)),199)}function Kd(t){return u(ld(t,Vt(hft,Rut,18,t.c.length,0,1)),482)}function Kre(t){return t.a?t.e.length==0?t.a.a:t.a.a+(""+t.e):t.c}function qS(t){for(;t.d>0&&t.a[--t.d]==0;);t.a[t.d++]==0&&(t.e=0)}function Wre(t){return ur(t.b.b!=t.d.a),t.c=t.b=t.b.b,--t.a,t.c.c}function y1n(t,e,n){t.a=e,t.c=n,t.b.a.$b(),nh(t.d),wy(t.e.a.c,0)}function Yre(t,e){var n;t.e=new rwt,n=n3(e),Ds(n,t.c),l0e(t,n,0)}function Bs(t,e,n,r){var s;s=new q8,s.a=e,s.b=n,s.c=r,Zr(t.a,s)}function le(t,e,n,r){var s;s=new q8,s.a=e,s.b=n,s.c=r,Zr(t.b,s)}function Xre(t,e,n){if(t<0||en)throw at(new Bo(O4n(t,e,n)))}function OI(t,e){if(t<0||t>=e)throw at(new Bo(l5n(t,e)));return t}function x1n(t){if(!("stack"in t))try{throw t}catch{}return t}function J4(t){return ZC(),Lt(t.g,10)?u(t.g,10):null}function k1n(t){return X4(t).dc()?!1:(Uin(t,new ft),!0)}function tw(t){var e;return ec(t)?(e=t,e==-0?0:e):B0n(t)}function Qre(t,e){return Lt(e,44)?bot(t.a,u(e,44)):!1}function Jre(t,e){return Lt(e,44)?bot(t.a,u(e,44)):!1}function Zre(t,e){return Lt(e,44)?bot(t.a,u(e,44)):!1}function d3t(t){var e;return Mb(t),e=new Mt,N4(t.a,new _4(e)),e}function g3t(){var t,e,n;return e=(n=(t=new lm,t),n),ge(QIt,e),e}function lq(t){var e;return Mb(t),e=new pn,N4(t.a,new x6(e)),e}function E1n(t,e){return t.a<=t.b?(e.Dd(t.a++),!0):!1}function tie(t){uat.call(this,t,(KE(),Pht),null,!1,null,!1)}function eie(){eie=V,c3e=$r((E$(),lt(ut(rCt,1),te,488,0,[Wht])))}function nie(){nie=V,QAt=Wee(he(1),he(4)),XAt=Wee(he(1),he(2))}function T1n(t,e){return new xit(e,CS(Oa(e.e),t,t),(Pn(),!0))}function hq(t){return new wu((oh(t,jct),Oq(Qa(Qa(5,t),t/10|0))))}function C1n(t){return _it(t.e.Rd().gc()*t.c.Rd().gc(),273,new bnt(t))}function rie(t){return u(ld(t,Vt(w4e,f2e,12,t.c.length,0,1)),2042)}function S1n(t){return rh(),!go(t)&&!(!go(t)&&t.c.i.c==t.d.i.c)}function _1n(t,e){return ak(),u(X(e,(Cc(),tx)),17).a>=t.gc()}function HS(t,e){uSn(e,t),Kvt(t.d),Kvt(u(X(t,(De(),VG)),214))}function kst(t,e){lSn(e,t),Wvt(t.d),Wvt(u(X(t,(De(),VG)),214))}function A1n(t,e,n){t.d&&zu(t.d.e,t),t.d=e,t.d&&Sm(t.d.e,n,t)}function L1n(t,e,n){return n.f.c.length>0?kyt(t.a,e,n):kyt(t.b,e,n)}function D1n(t,e,n){var r;r=Kwn();try{return wan(t,e,n)}finally{kdn(r)}}function jm(t,e){var n,r;return n=vg(t,e),r=null,n&&(r=n.pe()),r}function VS(t,e){var n,r;return n=vg(t,e),r=null,n&&(r=n.se()),r}function qE(t,e){var n,r;return n=$y(t,e),r=null,n&&(r=n.se()),r}function yg(t,e){var n,r;return n=vg(t,e),r=null,n&&(r=d6t(n)),r}function M1n(t,e,n){var r;return r=T7(n),uV(t.g,r,e),uV(t.i,e,n),e}function p3t(t,e,n){this.d=new gUt(this),this.e=t,this.i=e,this.f=n}function iie(t,e,n,r){this.e=null,this.c=t,this.d=e,this.a=n,this.b=r}function sie(t,e,n,r){nJt(this),this.c=t,this.e=e,this.f=n,this.b=r}function b3t(t,e,n,r){this.d=t,this.n=e,this.g=n,this.o=r,this.p=-1}function aie(t,e,n,r){return Lt(n,59)?new FJt(t,e,n,r):new byt(t,e,n,r)}function HE(t){return Lt(t,16)?u(t,16).dc():!t.Kc().Ob()}function oie(t){if(t.e.g!=t.b)throw at(new Th);return!!t.c&&t.d>0}function Ar(t){return ur(t.b!=t.d.c),t.c=t.b,t.b=t.b.a,++t.a,t.c.c}function w3t(t,e){Wn(e),ls(t.a,t.c,e),t.c=t.c+1&t.a.length-1,Lhe(t)}function Ob(t,e){Wn(e),t.b=t.b-1&t.a.length-1,ls(t.a,t.b,e),Lhe(t)}function cie(t){var e;e=t.Gh(),this.a=Lt(e,71)?u(e,71).Ii():e.Kc()}function I1n(t){return new gn(wgn(u(t.a.md(),16).gc(),t.a.ld()),16)}function uie(){uie=V,CEe=$r((S$(),lt(ut(IDt,1),te,489,0,[wdt])))}function lie(){lie=V,_Ee=$r((_$(),lt(ut(SEe,1),te,558,0,[mdt])))}function hie(){hie=V,UEe=$r((tS(),lt(ut(ZDt,1),te,539,0,[kP])))}function O1n(){return lw(),lt(ut(LCt,1),te,389,0,[x3,ACt,uft,lft])}function N1n(){return KE(),lt(ut(BU,1),te,303,0,[Pht,Fht,Bht,Rht])}function P1n(){return dk(),lt(ut(r3e,1),te,332,0,[$N,jN,zN,qN])}function F1n(){return m_(),lt(ut(a3e,1),te,406,0,[HN,zU,qU,VN])}function B1n(){return Gm(),lt(ut(e3e,1),te,417,0,[RN,BN,Ght,Kht])}function R1n(){return u7(),lt(ut(s4e,1),te,416,0,[bv,y3,v3,F5])}function j1n(){return ud(),lt(ut(P4e,1),te,421,0,[zk,yT,xT,mft])}function $1n(){return rH(),lt(ut(T4e,1),te,371,0,[wft,gG,pG,YN])}function z1n(){return Yy(),lt(ut(v1t,1),te,203,0,[JG,m1t,J5,Q5])}function q1n(){return Wd(),lt(ut(RAt,1),te,284,0,[Up,BAt,k1t,E1t])}function H1n(t){var e;return t.j==(ve(),Er)&&(e=J1e(t),Zu(e,Jn))}function V1n(t,e){var n;n=e.a,Xa(n,e.c.d),xa(n,e.d.d),Vy(n.a,t.n)}function m3t(t,e){var n;return n=u(od(t.b,e),67),!n&&(n=new Ki),n}function ek(t){return ZC(),Lt(t.g,154)?u(t.g,154):null}function U1n(t){t.a=null,t.e=null,wy(t.b.c,0),wy(t.f.c,0),t.c=null}function fq(){fq=V,Hft=new Xwt(J7,0),GSt=new Xwt("TOP_LEFT",1)}function US(){US=V,KA=new Jwt("UPPER",0),GA=new Jwt("LOWER",1)}function G1n(t,e){return R6(new ae(e.e.a+e.f.a/2,e.e.b+e.f.b/2),t)}function fie(t,e){return u(Vl(My(u(Ai(t.k,e),15).Oc(),R5)),113)}function die(t,e){return u(Vl(G6(u(Ai(t.k,e),15).Oc(),R5)),113)}function K1n(){return bk(),lt(ut(tLt,1),te,405,0,[sK,WA,YA,XA])}function W1n(){return a_(),lt(ut(ILt,1),te,353,0,[G1t,lK,U1t,V1t])}function Y1n(){return NH(),lt(ut(eDt,1),te,354,0,[rdt,ZLt,tDt,JLt])}function X1n(){return Yl(),lt(ut(xL,1),te,386,0,[RP,qw,BP,z3])}function Q1n(){return uh(),lt(ut(I7e,1),te,290,0,[NP,K0,h2,OP])}function J1n(){return Lg(),lt(ut(Udt,1),te,223,0,[Vdt,IP,WT,e8])}function Z1n(){return pH(),lt(ut(xIt,1),te,320,0,[Wdt,mIt,yIt,vIt])}function tdn(){return sH(),lt(ut(Y7e,1),te,415,0,[Ydt,EIt,kIt,TIt])}function edn(t){return oq(),Tu(t0t,t)?u(tr(t0t,t),341).Qg():null}function Dh(t,e,n){return e<0?Vot(t,n):u(n,69).wk().Bk(t,t.hi(),e)}function ndn(t,e,n){var r;return r=T7(n),uV(t.j,r,e),hi(t.k,e,n),e}function rdn(t,e,n){var r;return r=T7(n),uV(t.d,r,e),hi(t.e,e,n),e}function gie(t){var e,n;return e=(kb(),n=new sM,n),t&&ZH(e,t),e}function v3t(t){var e;return e=t.aj(t.i),t.i>0&&Xc(t.g,0,e,0,t.i),e}function pie(t,e){var n;for(n=t.j.c.length;n>24}function sdn(t){if(t.p!=1)throw at(new Xu);return qr(t.k)<<24>>24}function adn(t){if(t.p!=7)throw at(new Xu);return qr(t.k)<<16>>16}function odn(t){if(t.p!=7)throw at(new Xu);return qr(t.f)<<16>>16}function Z4(t,e){return e.e==0||t.e==0?yA:(F7(),Zot(t,e))}function mie(t,e){return $t(e)===$t(t)?"(this Map)":e==null?Vu:rc(e)}function cdn(t,e,n){return Fit(Ht(Ko(Eo(t.f,e))),Ht(Ko(Eo(t.f,n))))}function udn(t,e,n){var r;r=u(tr(t.g,n),60),ge(t.a.c,new Ws(e,r))}function vie(t,e,n){t.i=0,t.e=0,e!=n&&(eue(t,e,n),tue(t,e,n))}function ldn(t,e,n,r,s){var o;o=h6n(s,n,r),ge(e,r5n(s,o)),W3n(t,s,e)}function y3t(t,e,n,r,s){this.i=t,this.a=e,this.e=n,this.j=r,this.f=s}function yie(t,e){Qyt.call(this),this.a=t,this.b=e,ge(this.a.b,this)}function xie(t){this.b=new _r,this.c=new _r,this.d=new _r,this.a=t}function kie(t,e){var n;return n=new I4,t.Gd(n),n.a+="..",e.Hd(n),n.a}function Eie(t,e){var n;for(n=e;n;)Tm(t,n.i,n.j),n=Ji(n);return t}function Tie(t,e,n){var r;return r=T7(n),hi(t.b,r,e),hi(t.c,e,n),e}function xg(t){var e;for(e=0;t.Ob();)t.Pb(),e=Qa(e,1);return Oq(e)}function D0(t,e){vo();var n;return n=u(t,69).vk(),l4n(n,e),n.xl(e)}function hdn(t,e,n){if(n){var r=n.oe();t.a[e]=r(n)}else delete t.a[e]}function x3t(t,e){var n;n=t.q.getHours(),t.q.setFullYear(e+Wb),N_(t,n)}function fdn(t,e){return u(e==null?Ko(Eo(t.f,null)):iS(t.i,e),288)}function k3t(t,e){return t==(Un(),xs)&&e==xs?4:t==xs||e==xs?8:32}function dq(t,e,n){return hV(t,e,n,Lt(e,102)&&(u(e,19).Bb&po)!=0)}function ddn(t,e,n){return $7(t,e,n,Lt(e,102)&&(u(e,19).Bb&po)!=0)}function gdn(t,e,n){return i6n(t,e,n,Lt(e,102)&&(u(e,19).Bb&po)!=0)}function E3t(t){t.b!=t.c&&(t.a=Vt(aa,Ln,1,8,5,1),t.b=0,t.c=0)}function GS(t){return ur(t.a=0&&t.a[n]===e[n];n--);return n<0}function gq(t){var e;return t?new ayt(t):(e=new zd,oat(e,t),e)}function xdn(t,e){var n,r;r=!1;do n=Vce(t,e),r=r|n;while(n);return r}function kdn(t){t&&W0n((uwt(),i9t)),--MU,t&&IU!=-1&&(din(IU),IU=-1)}function pq(t){Qxt(),fJt(this,qr(sa(_m(t,24),TV)),qr(sa(t,TV)))}function Lie(){Lie=V,kye=$r((TH(),lt(ut(N9t,1),te,436,0,[zht,O9t])))}function Die(){Die=V,Eye=$r((Mq(),lt(ut(F9t,1),te,435,0,[P9t,qht])))}function Mie(){Mie=V,C3e=$r((Iq(),lt(ut(lCt,1),te,432,0,[Zht,UU])))}function Iie(){Iie=V,x4e=$r((r7(),lt(ut(y4e,1),te,517,0,[KN,dft])))}function Oie(){Oie=V,t5e=$r((qI(),lt(ut(NSt,1),te,487,0,[OSt,EG])))}function Nie(){Nie=V,X4e=$r((YI(),lt(ut(MSt,1),te,428,0,[xG,DSt])))}function Pie(){Pie=V,G4e=$r((Eq(),lt(ut(ESt,1),te,431,0,[kSt,Aft])))}function Fie(){Fie=V,R6e=$r((KI(),lt(ut(jAt,1),te,430,0,[T1t,C1t])))}function Bie(){Bie=V,fke=$r((US(),lt(ut(hke,1),te,531,0,[KA,GA])))}function Rie(){Rie=V,vke=$r((Gd(),lt(ut(mke,1),te,523,0,[Dv,Gp])))}function jie(){jie=V,xke=$r((nd(),lt(ut(yke,1),te,522,0,[Fw,yd])))}function $ie(){$ie=V,Fke=$r((C1(),lt(ut(Pke,1),te,528,0,[F3,o2])))}function zie(){zie=V,o5e=$r((fq(),lt(ut(KSt,1),te,429,0,[Hft,GSt])))}function qie(){qie=V,Hke=$r((Bm(),lt(ut(qke,1),te,464,0,[c2,Z5])))}function Hie(){Hie=V,T8e=$r((Cq(),lt(ut(BLt,1),te,434,0,[FLt,Z1t])))}function Vie(){Vie=V,b8e=$r((uq(),lt(ut(NLt,1),te,433,0,[K1t,OLt])))}function Uie(){Uie=V,x8e=$r((Kq(),lt(ut(PLt,1),te,500,0,[hK,nx])))}function Gie(){Gie=V,vEe=$r((wq(),lt(ut(CDt,1),te,490,0,[gdt,TDt])))}function Kie(){Kie=V,xEe=$r((gat(),lt(ut(MDt,1),te,491,0,[LDt,DDt])))}function Wie(){Wie=V,AEe=$r((BI(),lt(ut(ODt,1),te,438,0,[vdt,kK])))}function Yie(){Yie=V,GEe=$r((sO(),lt(ut(eMt,1),te,437,0,[TK,tMt])))}function Xie(){Xie=V,G7e=$r((vit(),lt(ut(jK,1),te,347,0,[bIt,wIt])))}function Edn(){return Rs(),lt(ut(gL,1),te,88,0,[Ed,tc,Uo,kd,Gh])}function Tdn(){return ve(),lt(ut(bo,1),qc,64,0,[bc,Hn,Jn,Er,Gn])}function Cdn(t,e,n){return u(e==null?yu(t.f,null,n):Km(t.i,e,n),288)}function Sdn(t){return(t.k==(Un(),xs)||t.k==Ms)&&qi(t,(oe(),MA))}function _st(t){return t.c&&t.d?u3t(t.c)+"->"+u3t(t.d):"e_"+Em(t)}function Fa(t,e){var n,r;for(Wn(e),r=t.Kc();r.Ob();)n=r.Pb(),e.Cd(n)}function _dn(t,e){var n;n=new _6,Q2(n,"x",e.a),Q2(n,"y",e.b),Y6(t,n)}function Adn(t,e){var n;n=new _6,Q2(n,"x",e.a),Q2(n,"y",e.b),Y6(t,n)}function Qie(t,e){var n;for(n=e;n;)Tm(t,-n.i,-n.j),n=Ji(n);return t}function C3t(t,e){var n,r;for(n=e,r=0;n>0;)r+=t.a[n],n-=n&-n;return r}function Mh(t,e,n){var r;return r=(vn(e,t.c.length),t.c[e]),t.c[e]=n,r}function S3t(t,e,n){t.a.c.length=0,ZTn(t,e,n),t.a.c.length==0||_En(t,e)}function NI(t){t.i=0,zM(t.b,null),zM(t.c,null),t.a=null,t.e=null,++t.g}function bq(){bq=V,wd=!0,fye=!1,dye=!1,pye=!1,gye=!1}function Ast(t){bq(),!wd&&(this.c=t,this.e=!0,this.a=new fe)}function Jie(t,e){this.c=0,this.b=e,xQt.call(this,t,17493),this.a=this.c}function Zie(t){nbe(),oKt(this),this.a=new Ki,s5t(this,t),Zr(this.a,t)}function tse(){Qrt(this),this.b=new ae(Zi,Zi),this.a=new ae(Vs,Vs)}function wq(){wq=V,gdt=new amt(eEt,0),TDt=new amt("TARGET_WIDTH",1)}function t5(t,e){return($b(t),wE(new ln(t,new Z3t(e,t.a)))).Bd(Rk)}function Ldn(){return Ua(),lt(ut(SCt,1),te,367,0,[Wf,H0,Qc,cu,Zo])}function Ddn(){return Qy(),lt(ut(B4e,1),te,375,0,[XN,mG,vG,wG,bG])}function Mdn(){return Ip(),lt(ut(LSt,1),te,348,0,[Dft,ASt,Mft,ST,CT])}function Idn(){return w_(),lt(ut(MAt,1),te,323,0,[DAt,y1t,x1t,zA,qA])}function Odn(){return Rh(),lt(ut(a_t,1),te,171,0,[rP,OA,s2,NA,S3])}function Ndn(){return zH(),lt(ut(k8e,1),te,368,0,[Q1t,W1t,J1t,Y1t,X1t])}function Pdn(){return A_(),lt(ut(kEe,1),te,373,0,[rx,Xk,aL,sL,xP])}function Fdn(){return DO(),lt(ut(BDt,1),te,324,0,[NDt,ydt,FDt,xdt,PDt])}function Bdn(){return D1(),lt(ut(G0,1),te,170,0,[_n,Qs,f0,Bw,Wp])}function Rdn(){return o5(),lt(ut(mL,1),te,256,0,[f2,PP,uIt,wL,lIt])}function jdn(t){return d$(),function(){return D1n(t,this,arguments)}}function go(t){return!t.c||!t.d?!1:!!t.c.i&&t.c.i==t.d.i}function _3t(t,e){return Lt(e,143)?hn(t.c,u(e,143).c):!1}function _l(t){return t.t||(t.t=new QGt(t),h_(new dWt(t),0,t.t)),t.t}function ese(t){this.b=t,Zn.call(this,t),this.a=u(jn(this.b.a,4),129)}function nse(t){this.b=t,$6.call(this,t),this.a=u(jn(this.b.a,4),129)}function jf(t,e,n,r,s){fse.call(this,e,r,s),this.c=t,this.b=n}function A3t(t,e,n,r,s){_re.call(this,e,r,s),this.c=t,this.a=n}function L3t(t,e,n,r,s){Are.call(this,e,r,s),this.c=t,this.a=n}function D3t(t,e,n,r,s){fse.call(this,e,r,s),this.c=t,this.a=n}function Lst(t,e){var n;return n=u(od(t.d,e),23),n||u(od(t.e,e),23)}function rse(t,e){var n,r;return n=e.ld(),r=t.Fe(n),!!r&&Nc(r.e,e.md())}function ise(t,e){var n;return n=e.ld(),new bm(n,t.e.pc(n,u(e.md(),16)))}function $dn(t,e){var n;return n=t.a.get(e),n??Vt(aa,Ln,1,0,5,1)}function sse(t){var e;return e=t.length,hn(Qn.substr(Qn.length-e,e),t)}function dr(t){if(Mr(t))return t.c=t.a,t.a.Pb();throw at(new cc)}function M3t(t,e){return e==0||t.e==0?t:e>0?Yde(t,e):mle(t,-e)}function nk(t,e){return e==0||t.e==0?t:e>0?mle(t,e):Yde(t,-e)}function I3t(t){Qrn.call(this,t==null?Vu:rc(t),Lt(t,82)?u(t,82):null)}function ase(t){var e;return t.c||(e=t.r,Lt(e,90)&&(t.c=u(e,29))),t.c}function Dst(t){var e;return e=new Pm,Qo(e,t),Zt(e,(De(),Vo),null),e}function ose(t){var e,n;return e=t.c.i,n=t.d.i,e.k==(Un(),Ms)&&n.k==Ms}function Mst(t){var e,n,r;return e=t&Il,n=t>>22&Il,r=t<0?Fg:0,Eu(e,n,r)}function zdn(t){var e,n,r,s;for(n=t,r=0,s=n.length;r=0?t.Lh(r,n,!0):tv(t,e,n)}function Hdn(t,e,n){return Bi(R6(S7(t),Oa(e.b)),R6(S7(t),Oa(n.b)))}function Vdn(t,e,n){return Bi(R6(S7(t),Oa(e.e)),R6(S7(t),Oa(n.e)))}function Udn(t,e){return b.Math.min(Nb(e.a,t.d.d.c),Nb(e.b,t.d.d.c))}function PI(t,e){t._i(t.i+1),kS(t,t.i,t.Zi(t.i,e)),t.Mi(t.i++,e),t.Ni()}function KS(t){var e,n;++t.j,e=t.g,n=t.i,t.g=null,t.i=0,t.Oi(n,e),t.Ni()}function cse(t,e,n){var r;r=new Mmt(t.a),t_(r,t.a.a),yu(r.f,e,n),t.a.a=r}function O3t(t,e,n,r){var s;for(s=0;se)throw at(new Bo(x6t(t,e,"index")));return t}function Ep(t,e){var n;return n=(vn(e,t.c.length),t.c[e]),Swt(t.c,e,1),n}function F3t(t,e){var n,r;return n=(Wn(t),t),r=(Wn(e),e),n==r?0:ne.p?-1:0}function bse(t){var e;return t.a||(e=t.r,Lt(e,156)&&(t.a=u(e,156))),t.a}function Qdn(t,e,n){var r;return++t.e,--t.f,r=u(t.d[e].gd(n),136),r.md()}function Jdn(t){var e,n;return e=t.ld(),n=u(t.md(),16),pI(n.Nc(),new mnt(e))}function wse(t,e){return Tu(t.a,e)?(rk(t.a,e),!0):!1}function ik(t,e,n){return OI(e,t.e.Rd().gc()),OI(n,t.c.Rd().gc()),t.a[e][n]}function vq(t,e,n){this.a=t,this.b=e,this.c=n,ge(t.t,this),ge(e.i,this)}function yq(t,e,n,r){this.f=t,this.e=e,this.d=n,this.b=r,this.c=r?r.d:null}function FI(){this.b=new Ki,this.a=new Ki,this.b=new Ki,this.a=new Ki}function VE(){VE=V;var t,e;QK=(bE(),e=new o$,e),JK=(t=new Hnt,t)}function Zdn(t){var e;return $b(t),e=new ute(t,t.a.e,t.a.d|4),new rvt(t,e)}function mse(t){var e;for(Mb(t),e=0;t.a.Bd(new xn);)e=Qa(e,1);return e}function xq(t,e){return Wn(e),t.c=0,"Initial capacity must not be negative")}function kq(){kq=V,oL=new Oi("org.eclipse.elk.labels.labelManager")}function vse(){vse=V,wSt=new rs("separateLayerConnections",(rH(),wft))}function C1(){C1=V,F3=new emt("REGULAR",0),o2=new emt("CRITICAL",1)}function BI(){BI=V,vdt=new cmt("FIXED",0),kK=new cmt("CENTER_NODE",1)}function Eq(){Eq=V,kSt=new Kwt("QUADRATIC",0),Aft=new Kwt("SCANLINE",1)}function yse(){yse=V,K4e=$r((QS(),lt(ut(CSt,1),te,322,0,[_A,QN,TSt])))}function xse(){xse=V,W4e=$r(($q(),lt(ut(_St,1),te,351,0,[SSt,yG,Lft])))}function kse(){kse=V,J4e=$r((ow(),lt(ut(Q4e,1),te,459,0,[Ift,_T,z5])))}function Ese(){Ese=V,H4e=$r((Vm(),lt(ut(vft,1),te,372,0,[mv,r2,wv])))}function Tse(){Tse=V,a5e=$r((Cg(),lt(ut(s5e,1),te,311,0,[ZN,H5,qk])))}function Cse(){Cse=V,i5e=$r((c7(),lt(ut(qft,1),te,298,0,[$ft,zft,JN])))}function Sse(){Sse=V,O6e=$r((o_(),lt(ut(LAt,1),te,390,0,[w1t,AAt,QG])))}function _se(){_se=V,z6e=$r((tH(),lt(ut(qAt,1),te,387,0,[$At,S1t,zAt])))}function Ase(){Ase=V,q6e=$r((i_(),lt(ut(HAt,1),te,349,0,[A1t,_1t,lP])))}function Lse(){Lse=V,$6e=$r((To(),lt(ut(j6e,1),te,462,0,[HA,vl,ku])))}function Dse(){Dse=V,V6e=$r((jq(),lt(ut(WAt,1),te,352,0,[KAt,D1t,GAt])))}function Mse(){Mse=V,H6e=$r((b7(),lt(ut(UAt,1),te,350,0,[L1t,VAt,VA])))}function Ise(){Ise=V,U6e=$r((iH(),lt(ut(YAt,1),te,388,0,[M1t,$T,P3])))}function Ose(){Ose=V,Gke=$r((s_(),lt(ut(fLt,1),te,392,0,[hLt,N1t,dP])))}function Nse(){Nse=V,C8e=$r((uO(),lt(ut($Lt,1),te,393,0,[fK,RLt,jLt])))}function Pse(){Pse=V,G8e=$r((Zq(),lt(ut(iDt,1),te,299,0,[idt,rDt,nDt])))}function Fse(){Fse=V,K8e=$r((vH(),lt(ut(sDt,1),te,445,0,[mP,pK,sdt])))}function Bse(){Bse=V,Y8e=$r((DH(),lt(ut(W8e,1),te,455,0,[adt,cdt,odt])))}function Rse(){Rse=V,J8e=$r((dH(),lt(ut(cDt,1),te,394,0,[oDt,hdt,aDt])))}function jse(){jse=V,yEe=$r((Sq(),lt(ut(ADt,1),te,439,0,[pdt,_Dt,SDt])))}function $se(){$se=V,oke=$r((Hm(),lt(ut(ake,1),te,463,0,[hP,UA,eK])))}function zse(){zse=V,Lye=$r((pl(),lt(ut(Aye,1),te,470,0,[c0,e2,Gf])))}function qse(){qse=V,_ye=$r((A1(),lt(ut(m3,1),te,237,0,[Ac,xu,Lc])))}function Hse(){Hse=V,Mye=$r((qu(),lt(ut(Dye,1),te,471,0,[O1,n2,Kf])))}function Vse(){Vse=V,bye=$r((bl(),lt(ut(Ho,1),te,108,0,[I9t,sc,w3])))}function Use(){Use=V,Q3e=$r((WS(),lt(ut(CCt,1),te,391,0,[rft,nft,ift])))}function Gse(){Gse=V,M7e=$r((Ag(),lt(ut(cIt,1),te,346,0,[IK,Xp,bL])))}function Kse(){Kse=V,TEe=$r((pO(),lt(ut(bdt,1),te,444,0,[vK,yK,xK])))}function Wse(){Wse=V,_7e=$r((cd(),lt(ut(XMt,1),te,278,0,[GT,$3,KT])))}function Yse(){Yse=V,U7e=$r((lk(),lt(ut(pIt,1),te,280,0,[gIt,q3,RK])))}function ad(t,e){return!t.o&&(t.o=new nl((zc(),X0),Qp,t,0)),Yat(t.o,e)}function t0n(t,e){var n;t.C&&(n=u(Io(t.b,e),127).n,n.d=t.C.d,n.a=t.C.a)}function z3t(t){var e,n,r,s;s=t.d,e=t.a,n=t.b,r=t.c,t.d=n,t.a=r,t.b=s,t.c=e}function e0n(t){return!t.g&&(t.g=new gC),!t.g.b&&(t.g.b=new KGt(t)),t.g.b}function RI(t){return!t.g&&(t.g=new gC),!t.g.c&&(t.g.c=new XGt(t)),t.g.c}function n0n(t){return!t.g&&(t.g=new gC),!t.g.d&&(t.g.d=new WGt(t)),t.g.d}function r0n(t){return!t.g&&(t.g=new gC),!t.g.a&&(t.g.a=new YGt(t)),t.g.a}function i0n(t,e,n,r){return n&&(r=n.Rh(e,ns(n.Dh(),t.c.uk()),null,r)),r}function s0n(t,e,n,r){return n&&(r=n.Th(e,ns(n.Dh(),t.c.uk()),null,r)),r}function Pst(t,e,n,r){var s;return s=Vt(Fr,ii,28,e+1,15,1),u7n(s,t,e,n,r),s}function Vt(t,e,n,r,s,o){var h;return h=yhe(s,r),s!=10&<(ut(t,o),e,n,s,h),h}function a0n(t,e,n){var r,s;for(s=new o7(e,t),r=0;rn||e=0?t.Lh(n,!0,!0):tv(t,e,!0)}function E0n(t,e,n){var r;return r=Jce(t,e,n),t.b=new Yq(r.c.length),ukt(t,r)}function T0n(t){if(t.b<=0)throw at(new cc);return--t.b,t.a-=t.c.c,he(t.a)}function C0n(t){var e;if(!t.a)throw at(new cne);return e=t.a,t.a=Ji(t.a),e}function S0n(t){for(;!t.a;)if(!NZt(t.c,new BC(t)))return!1;return!0}function sk(t){var e;return Hr(t),Lt(t,204)?(e=u(t,204),e):new b6(t)}function _0n(t){Tq(),u(t.of((ai(),j3)),181).Fc((wl(),FP)),t.qf(zdt,null)}function Tq(){Tq=V,YEe=new NR,QEe=new PR,XEe=pbn((ai(),zdt),YEe,l2,QEe)}function Cq(){Cq=V,FLt=new smt("LEAF_NUMBER",0),Z1t=new smt("NODE_SIZE",1)}function $st(t){t.a=Vt(Fr,ii,28,t.b+1,15,1),t.c=Vt(Fr,ii,28,t.b,15,1),t.d=0}function A0n(t,e){t.a.Ne(e.d,t.b)>0&&(ge(t.c,new qvt(e.c,e.d,t.d)),t.b=e.d)}function Q3t(t,e){if(t.g==null||e>=t.i)throw at(new Grt(e,t.i));return t.g[e]}function Zse(t,e,n){if(d7(t,n),n!=null&&!t.fk(n))throw at(new $nt);return n}function zst(t,e){return WI(e)!=10&<(Wl(e),e.Sm,e.__elementTypeId$,WI(e),t),t}function GE(t,e,n,r){var s;r=(Nm(),r||C9t),s=t.slice(e,n),k6t(s,t,e,n,-e,r)}function Ih(t,e,n,r,s){return e<0?tv(t,n,r):u(n,69).wk().yk(t,t.hi(),e,r,s)}function L0n(t,e){return Bi(Rt(Ht(X(t,(oe(),xv)))),Rt(Ht(X(e,xv))))}function tae(){tae=V,lye=$r((KE(),lt(ut(BU,1),te,303,0,[Pht,Fht,Bht,Rht])))}function KE(){KE=V,Pht=new M$("All",0),Fht=new VQt,Bht=new ZQt,Rht=new HQt}function pl(){pl=V,c0=new wrt(_k,0),e2=new wrt(J7,1),Gf=new wrt(Ak,2)}function eae(){eae=V,fV(),sOt=Zi,JTe=Vs,aOt=new na(Zi),ZTe=new na(Vs)}function nae(){nae=V,n3e=$r((Gm(),lt(ut(e3e,1),te,417,0,[RN,BN,Ght,Kht])))}function rae(){rae=V,o3e=$r((m_(),lt(ut(a3e,1),te,406,0,[HN,zU,qU,VN])))}function iae(){iae=V,i3e=$r((dk(),lt(ut(r3e,1),te,332,0,[$N,jN,zN,qN])))}function sae(){sae=V,f4e=$r((lw(),lt(ut(LCt,1),te,389,0,[x3,ACt,uft,lft])))}function aae(){aae=V,a4e=$r((u7(),lt(ut(s4e,1),te,416,0,[bv,y3,v3,F5])))}function oae(){oae=V,F4e=$r((ud(),lt(ut(P4e,1),te,421,0,[zk,yT,xT,mft])))}function cae(){cae=V,C4e=$r((rH(),lt(ut(T4e,1),te,371,0,[wft,gG,pG,YN])))}function uae(){uae=V,N6e=$r((Yy(),lt(ut(v1t,1),te,203,0,[JG,m1t,J5,Q5])))}function lae(){lae=V,B6e=$r((Wd(),lt(ut(RAt,1),te,284,0,[Up,BAt,k1t,E1t])))}function qI(){qI=V,OSt=new Ywt(r0,0),EG=new Ywt("IMPROVE_STRAIGHTNESS",1)}function hae(t,e){var n,r;return r=e/t.c.Rd().gc()|0,n=e%t.c.Rd().gc(),ik(t,r,n)}function fae(t){var e;if(t.nl())for(e=t.i-1;e>=0;--e)Dt(t,e);return v3t(t)}function J3t(t){var e,n;if(!t.b)return null;for(n=t.b;e=n.a[0];)n=e;return n}function dae(t){var e,n;if(!t.b)return null;for(n=t.b;e=n.a[1];)n=e;return n}function D0n(t){return Lt(t,180)?""+u(t,180).a:t==null?null:rc(t)}function M0n(t){return Lt(t,180)?""+u(t,180).a:t==null?null:rc(t)}function gae(t,e){if(e.a)throw at(new uc(Nbe));qs(t.a,e),e.a=t,!t.j&&(t.j=e)}function Z3t(t,e){ez.call(this,e.zd(),e.yd()&-16449),Wn(t),this.a=t,this.c=e}function I0n(t,e){return new xit(e,Tm(Oa(e.e),e.f.a+t,e.f.b+t),(Pn(),!1))}function O0n(t,e){return LE(),ge(t,new Ws(e,he(e.e.c.length+e.g.c.length)))}function N0n(t,e){return LE(),ge(t,new Ws(e,he(e.e.c.length+e.g.c.length)))}function pae(){pae=V,U8e=$r((NH(),lt(ut(eDt,1),te,354,0,[rdt,ZLt,tDt,JLt])))}function bae(){bae=V,p8e=$r((a_(),lt(ut(ILt,1),te,353,0,[G1t,lK,U1t,V1t])))}function wae(){wae=V,Vke=$r((bk(),lt(ut(tLt,1),te,405,0,[sK,WA,YA,XA])))}function mae(){mae=V,A7e=$r((Lg(),lt(ut(Udt,1),te,223,0,[Vdt,IP,WT,e8])))}function vae(){vae=V,O7e=$r((uh(),lt(ut(I7e,1),te,290,0,[NP,K0,h2,OP])))}function yae(){yae=V,H7e=$r((Yl(),lt(ut(xL,1),te,386,0,[RP,qw,BP,z3])))}function xae(){xae=V,K7e=$r((pH(),lt(ut(xIt,1),te,320,0,[Wdt,mIt,yIt,vIt])))}function kae(){kae=V,X7e=$r((sH(),lt(ut(Y7e,1),te,415,0,[Ydt,EIt,kIt,TIt])))}function Sq(){Sq=V,pdt=new zrt(J2e,0),_Dt=new zrt(y7t,1),SDt=new zrt(r0,2)}function jy(t,e,n,r,s){return Wn(t),Wn(e),Wn(n),Wn(r),Wn(s),new Tyt(t,e,r)}function Eae(t,e){var n;return n=u(rk(t.e,e),400),n?(Zvt(n),n.e):null}function zu(t,e){var n;return n=Xo(t,e,0),n==-1?!1:(Ep(t,n),!0)}function Tae(t,e,n){var r;return Mb(t),r=new Je,r.a=e,t.a.Nb(new sXt(r,n)),r.a}function P0n(t){var e;return Mb(t),e=Vt(ma,No,28,0,15,1),N4(t.a,new y6(e)),e}function t4t(t){var e;if(!rat(t))throw at(new cc);return t.e=1,e=t.d,t.d=null,e}function Cp(t){var e;return ec(t)&&(e=0-t,!isNaN(e))?e:Fb(h7(t))}function Xo(t,e,n){for(;n=0?AH(t,n,!0,!0):tv(t,e,!0)}function n4t(t){var e;return e=nw(jn(t,32)),e==null&&(Au(t),e=nw(jn(t,32))),e}function r4t(t){var e;return t.Oh()||(e=fr(t.Dh())-t.ji(),t.$h().Mk(e)),t.zh()}function Dae(t,e){eCt=new Le,s3e=e,kA=t,u(kA.b,68),V3t(kA,eCt,null),Gge(kA)}function WS(){WS=V,rft=new vrt("XY",0),nft=new vrt("X",1),ift=new vrt("Y",2)}function qu(){qu=V,O1=new mrt("TOP",0),n2=new mrt(J7,1),Kf=new mrt(O8t,2)}function Cg(){Cg=V,ZN=new Crt(r0,0),H5=new Crt("TOP",1),qk=new Crt(O8t,2)}function KI(){KI=V,T1t=new Qwt("INPUT_ORDER",0),C1t=new Qwt("PORT_DEGREE",1)}function WE(){WE=V,a9t=Eu(Il,Il,524287),Wve=Eu(0,0,aN),o9t=Mst(1),Mst(2),c9t=Mst(0)}function Gst(t){var e;return t.d!=t.r&&(e=of(t),t.e=!!e&&e.lk()==Wme,t.d=e),t.e}function Kst(t,e,n){var r;return r=t.g[e],kS(t,e,t.Zi(e,n)),t.Ri(e,n,r),t.Ni(),r}function Dq(t,e){var n;return n=t.dd(e),n>=0?(t.gd(n),!0):!1}function Wst(t,e){var n;for(Hr(t),Hr(e),n=!1;e.Ob();)n=n|t.Fc(e.Pb());return n}function od(t,e){var n;return n=u(tr(t.e,e),400),n?(hJt(t,n),n.e):null}function Mae(t){var e,n;return e=t/60|0,n=t%60,n==0?""+e:""+e+":"+(""+n)}function $y(t,e){var n=t.a[e],r=(yat(),Lht)[typeof n];return r?r(n):f5t(typeof n)}function fc(t,e){var n,r;return $b(t),r=new R3t(e,t.a),n=new BZt(r),new ln(t,n)}function Yst(t){var e;return e=t.b.c.length==0?null:Oe(t.b,0),e!=null&&sat(t,0),e}function j0n(t,e){var n,r,s;s=e.c.i,n=u(tr(t.f,s),60),r=n.d.c-n.e.c,P4t(e.a,r,0)}function i4t(t,e){var n;for(++t.d,++t.c[e],n=e+1;n=0;)++e[0]}function $0n(t,e){Su(t,e==null||bz((Wn(e),e))||isNaN((Wn(e),e))?0:(Wn(e),e))}function z0n(t,e){_u(t,e==null||bz((Wn(e),e))||isNaN((Wn(e),e))?0:(Wn(e),e))}function q0n(t,e){qm(t,e==null||bz((Wn(e),e))||isNaN((Wn(e),e))?0:(Wn(e),e))}function H0n(t,e){zm(t,e==null||bz((Wn(e),e))||isNaN((Wn(e),e))?0:(Wn(e),e))}function V0n(t,e,n){return R6(new ae(n.e.a+n.f.a/2,n.e.b+n.f.b/2),t)==(Wn(e),e)}function U0n(t,e){return Lt(e,102)&&u(e,19).Bb&po?new Krt(e,t):new o7(e,t)}function G0n(t,e){return Lt(e,102)&&u(e,19).Bb&po?new Krt(e,t):new o7(e,t)}function WI(t){return t.__elementTypeCategory$==null?10:t.__elementTypeCategory$}function Nae(t,e){return e==(bit(),bit(),oye)?t.toLocaleLowerCase():t.toLowerCase()}function Pae(t){if(!t.e)throw at(new cc);return t.c=t.a=t.e,t.e=t.e.e,--t.d,t.a.f}function s4t(t){if(!t.c)throw at(new cc);return t.e=t.a=t.c,t.c=t.c.c,++t.d,t.a.f}function Fae(t){var e;for(++t.a,e=t.c.a.length;t.at.a[r]&&(r=n);return r}function Bae(t){var e;return e=u(X(t,(oe(),vv)),313),e?e.a==t:!1}function Rae(t){var e;return e=u(X(t,(oe(),vv)),313),e?e.i==t:!1}function jae(){jae=V,e4e=$r((Ua(),lt(ut(SCt,1),te,367,0,[Wf,H0,Qc,cu,Zo])))}function $ae(){$ae=V,R4e=$r((Qy(),lt(ut(B4e,1),te,375,0,[XN,mG,vG,wG,bG])))}function zae(){zae=V,Y4e=$r((Ip(),lt(ut(LSt,1),te,348,0,[Dft,ASt,Mft,ST,CT])))}function qae(){qae=V,P6e=$r((w_(),lt(ut(MAt,1),te,323,0,[DAt,y1t,x1t,zA,qA])))}function Hae(){Hae=V,c5e=$r((Rh(),lt(ut(a_t,1),te,171,0,[rP,OA,s2,NA,S3])))}function Vae(){Vae=V,E8e=$r((zH(),lt(ut(k8e,1),te,368,0,[Q1t,W1t,J1t,Y1t,X1t])))}function Uae(){Uae=V,EEe=$r((A_(),lt(ut(kEe,1),te,373,0,[rx,Xk,aL,sL,xP])))}function Gae(){Gae=V,LEe=$r((DO(),lt(ut(BDt,1),te,324,0,[NDt,ydt,FDt,xdt,PDt])))}function Kae(){Kae=V,S7e=$r((Rs(),lt(ut(gL,1),te,88,0,[Ed,tc,Uo,kd,Gh])))}function Wae(){Wae=V,JEe=$r((D1(),lt(ut(G0,1),te,170,0,[_n,Qs,f0,Bw,Wp])))}function Yae(){Yae=V,P7e=$r((o5(),lt(ut(mL,1),te,256,0,[f2,PP,uIt,wL,lIt])))}function Xae(){Xae=V,R7e=$r((ve(),lt(ut(bo,1),qc,64,0,[bc,Hn,Jn,Er,Gn])))}function Mq(){Mq=V,P9t=new zwt("BY_SIZE",0),qht=new zwt("BY_SIZE_AND_SHAPE",1)}function Iq(){Iq=V,Zht=new Vwt("EADES",0),UU=new Vwt("FRUCHTERMAN_REINGOLD",1)}function YI(){YI=V,xG=new Wwt("READING_DIRECTION",0),DSt=new Wwt("ROTATION",1)}function YS(){YS=V,u4e=new BD,l4e=new $X,o4e=new P2,c4e=new Gc,h4e=new zX}function Qae(t){this.b=new fe,this.a=new fe,this.c=new fe,this.d=new fe,this.e=t}function Jae(t){this.g=t,this.f=new fe,this.a=b.Math.min(this.g.c.c,this.g.d.c)}function Zae(t,e,n){gz.call(this),c4t(this),this.a=t,this.c=n,this.b=e.d,this.f=e.e}function J0n(t,e,n){var r,s;for(s=new G(n);s.a=0&&e0?e-1:e,NWt(Crn(Eoe(Yvt(new S6,n),t.n),t.j),t.k)}function zo(t){var e,n;n=(e=new Vnt,e),Or((!t.q&&(t.q=new Jt(vf,t,11,10)),t.q),n)}function a4t(t){return(t.i&2?"interface ":t.i&1?"":"class ")+(wg(t),t.o)}function Oq(t){return $c(t,xi)>0?xi:$c(t,Ga)<0?Ga:qr(t)}function zy(t){return t<3?(oh(t,pbe),t+1):t=-.01&&t.a<=gd&&(t.a=0),t.b>=-.01&&t.b<=gd&&(t.b=0),t}function e5(t){w5();var e,n;for(n=E7t,e=0;en&&(n=t[e]);return n}function roe(t,e){var n;if(n=zO(t.Dh(),e),!n)throw at(new zn(Jb+e+qlt));return n}function qy(t,e){var n;for(n=t;Ji(n);)if(n=Ji(n),n==e)return!0;return!1}function ugn(t,e){var n,r,s;for(r=e.a.ld(),n=u(e.a.md(),16).gc(),s=0;st||t>e)throw at(new gwt("fromIndex: 0, toIndex: "+t+x8t+e))}function $m(t){if(t<0)throw at(new zn("Illegal Capacity: "+t));this.g=this.aj(t)}function o4t(t,e){return Z1(),$f(Kb),b.Math.abs(t-e)<=Kb||t==e||isNaN(t)&&isNaN(e)}function Jst(t,e){var n,r,s,o;for(r=t.d,s=0,o=r.length;s0&&(t.a/=e,t.b/=e),t}function sh(t){var e;return t.w?t.w:(e=e1n(t),e&&!e.Vh()&&(t.w=e),e)}function YE(t,e){var n,r;r=t.a,n=s2n(t,e,null),r!=e&&!t.e&&(n=H7(t,e,n)),n&&n.oj()}function coe(t,e,n){var r,s;r=e;do s=Rt(t.p[r.p])+n,t.p[r.p]=s,r=t.a[r.p];while(r!=e)}function uoe(t,e,n){var r=function(){return t.apply(r,arguments)};return e.apply(r,n),r}function bgn(t){var e;return t==null?null:(e=u(t,195),A3n(e,e.length))}function Dt(t,e){if(t.g==null||e>=t.i)throw at(new Grt(e,t.i));return t.Wi(e,t.g[e])}function wgn(t,e){mn();var n,r;for(r=new fe,n=0;n=14&&e<=16))),t}function jr(t,e){var n;return Wn(e),n=t[":"+e],wI(!!n,"Enum constant undefined: "+e),n}function Lr(t,e,n,r,s,o){var h;return h=Wit(t,e),Toe(n,h),h.i=s?8:0,h.f=r,h.e=s,h.g=o,h}function l4t(t,e,n,r,s){this.d=e,this.k=r,this.f=s,this.o=-1,this.p=1,this.c=t,this.a=n}function h4t(t,e,n,r,s){this.d=e,this.k=r,this.f=s,this.o=-1,this.p=2,this.c=t,this.a=n}function f4t(t,e,n,r,s){this.d=e,this.k=r,this.f=s,this.o=-1,this.p=6,this.c=t,this.a=n}function d4t(t,e,n,r,s){this.d=e,this.k=r,this.f=s,this.o=-1,this.p=7,this.c=t,this.a=n}function g4t(t,e,n,r,s){this.d=e,this.j=r,this.e=s,this.o=-1,this.p=4,this.c=t,this.a=n}function Coe(t,e){var n,r,s,o;for(r=e,s=0,o=r.length;s=0))throw at(new zn("tolerance ("+t+") must be >= 0"));return t}function _oe(t,e){var n;return Lt(e,44)?t.c.Mc(e):(n=Yat(t,e),yH(t,e),n)}function Oo(t,e,n){return uw(t,e),mu(t,n),Sp(t,0),Hy(t,1),Mp(t,!0),Dp(t,!0),t}function QI(t,e){var n;if(n=t.gc(),e<0||e>n)throw at(new Dy(e,n));return new Cvt(t,e)}function zq(t,e){t.b=b.Math.max(t.b,e.d),t.e+=e.r+(t.a.c.length==0?0:t.c),ge(t.a,e)}function Aoe(t){_y(t.c>=0),Mwn(t.d,t.c)<0&&(t.a=t.a-1&t.d.a.length-1,t.b=t.d.c),t.c=-1}function qq(t){var e,n;for(n=t.c.Cc().Kc();n.Ob();)e=u(n.Pb(),16),e.$b();t.c.$b(),t.d=0}function _gn(t){var e,n,r,s;for(n=t.a,r=0,s=n.length;r=0}function x4t(t,e){t.r>0&&t.c0&&t.g!=0&&x4t(t.i,e/t.r*t.i.d))}function k4t(t,e){var n;n=t.c,t.c=e,t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,1,n,t.c))}function eat(t,e){var n;n=t.c,t.c=e,t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,4,n,t.c))}function n7(t,e){var n;n=t.k,t.k=e,t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,2,n,t.k))}function nat(t,e){var n;n=t.D,t.D=e,t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,2,n,t.D))}function Vq(t,e){var n;n=t.f,t.f=e,t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,8,n,t.f))}function Uq(t,e){var n;n=t.i,t.i=e,t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,7,n,t.i))}function E4t(t,e){var n;n=t.a,t.a=e,t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,8,n,t.a))}function T4t(t,e){var n;n=t.b,t.b=e,t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,0,n,t.b))}function C4t(t,e){var n;n=t.b,t.b=e,t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,0,n,t.b))}function S4t(t,e){var n;n=t.c,t.c=e,t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,1,n,t.c))}function _4t(t,e){var n;n=t.d,t.d=e,t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,1,n,t.d))}function Ngn(t,e,n){var r;t.b=e,t.a=n,r=(t.a&512)==512?new YKt:new kj,t.c=Wkn(r,t.b,t.a)}function $oe(t,e){return Ng(t.e,e)?(vo(),Gst(e)?new Sz(e,t):new eI(e,t)):new gQt(e,t)}function Pgn(t){var e,n;return 0>t?new Lwt:(e=t+1,n=new Jie(e,t),new ivt(null,n))}function Fgn(t,e){mn();var n;return n=new M6(1),ba(t)?jo(n,t,e):yu(n.f,t,e),new Kn(n)}function Bgn(t,e){var n,r;return n=t.c,r=e.e[t.p],r>0?u(Oe(n.a,r-1),10):null}function Rgn(t,e){var n,r;return n=t.o+t.p,r=e.o+e.p,ne?(e<<=1,e>0?e:z_):e}function rat(t){switch(Rmt(t.e!=3),t.e){case 2:return!1;case 0:return!0}return Kdn(t)}function qoe(t,e){var n;return Lt(e,8)?(n=u(e,8),t.a==n.a&&t.b==n.b):!1}function $gn(t,e){var n;n=new Le,u(e.b,68),u(e.b,68),u(e.b,68),Cu(e.a,new Pvt(t,n,e))}function Hoe(t,e){var n,r;for(r=e.vc().Kc();r.Ob();)n=u(r.Pb(),44),SO(t,n.ld(),n.md())}function A4t(t,e){var n;n=t.d,t.d=e,t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,11,n,t.d))}function Gq(t,e){var n;n=t.j,t.j=e,t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,13,n,t.j))}function L4t(t,e){var n;n=t.b,t.b=e,t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,21,n,t.b))}function zgn(t,e){(bq(),wd?null:e.c).length==0&&sZt(e,new _e),jo(t.a,wd?null:e.c,e)}function qgn(t,e){e.Ug("Hierarchical port constraint processing",1),amn(t),SSn(t),e.Vg()}function Vm(){Vm=V,mv=new yrt("START",0),r2=new yrt("MIDDLE",1),wv=new yrt("END",2)}function Kq(){Kq=V,hK=new imt("P1_NODE_PLACEMENT",0),nx=new imt("P2_EDGE_ROUTING",1)}function Pb(){Pb=V,$k=new Oi(G8t),WU=new Oi(s2e),TA=new Oi(a2e),UN=new Oi(o2e)}function Um(t){var e;return wit(t.f.g,t.d),ur(t.b),t.c=t.a,e=u(t.a.Pb(),44),t.b=q4t(t),e}function D4t(t){var e;return t.b==null?(bp(),bp(),KP):(e=t.ul()?t.tl():t.sl(),e)}function Voe(t,e){var n;return n=e==null?-1:Xo(t.b,e,0),n<0?!1:(sat(t,n),!0)}function zf(t,e){var n;return Wn(e),n=e.g,t.b[n]?!1:(ls(t.b,n,e),++t.c,!0)}function Wq(t,e){var n,r;return n=1-e,r=t.a[n],t.a[n]=r.a[e],r.a[e]=t,t.b=!0,r.b=!1,r}function Hgn(t,e){var n,r;for(r=e.Kc();r.Ob();)n=u(r.Pb(),272),t.b=!0,qs(t.e,n),n.b=t}function Vgn(t,e){var n,r;return n=u(X(t,(De(),I3)),8),r=u(X(e,I3),8),Bi(n.b,r.b)}function iat(t,e,n){var r,s,o;return o=e>>5,s=e&31,r=sa(Ab(t.n[n][o],qr(Rf(s,1))),3),r}function Uoe(t,e,n){var r,s,o;for(o=t.a.length-1,s=t.b,r=0;r0?1:0:(!t.c&&(t.c=DI(Pc(t.f))),t.c).e}function tce(t,e){e?t.B==null&&(t.B=t.D,t.D=null):t.B!=null&&(t.D=t.B,t.B=null)}function Wgn(t,e){return u7(),t==bv&&e==y3||t==y3&&e==bv||t==F5&&e==v3||t==v3&&e==F5}function Ygn(t,e){return u7(),t==bv&&e==v3||t==bv&&e==F5||t==y3&&e==F5||t==y3&&e==v3}function ece(t,e){return Z1(),$f(gd),b.Math.abs(0-e)<=gd||e==0||isNaN(0)&&isNaN(e)?0:t/e}function nce(t,e){return Rt(Ht(Vl(dO(Wo(new ln(null,new gn(t.c.b,16)),new uUt(t)),e))))}function N4t(t,e){return Rt(Ht(Vl(dO(Wo(new ln(null,new gn(t.c.b,16)),new cUt(t)),e))))}function Xgn(){return Co(),lt(ut(jft,1),te,259,0,[CG,Uh,LA,SG,DT,q5,DA,AT,LT,_G])}function Qgn(){return cf(),lt(ut(FAt,1),te,243,0,[ZG,cP,uP,OAt,NAt,IAt,PAt,tK,Lv,N3])}function Jgn(t,e){var n;e.Ug("General Compactor",1),n=rwn(u(ne(t,(Ub(),edt)),393)),n.Cg(t)}function Zgn(t,e){var n,r;return n=u(ne(t,(Ub(),dK)),17),r=u(ne(e,dK),17),jc(n.a,r.a)}function P4t(t,e,n){var r,s;for(s=Dr(t,0);s.b!=s.d.c;)r=u(Ar(s),8),r.a+=e,r.b+=n;return t}function JS(t,e,n){var r;for(r=t.b[n&t.f];r;r=r.b)if(n==r.a&&Ud(e,r.g))return r;return null}function ZS(t,e,n){var r;for(r=t.c[n&t.f];r;r=r.d)if(n==r.f&&Ud(e,r.i))return r;return null}function tpn(t,e,n){var r,s,o;for(r=0,s=0;s>>31;r!=0&&(t[n]=r)}function uat(t,e,n,r,s,o){var h;this.c=t,h=new fe,gxt(t,h,e,t.b,n,r,s,o),this.a=new La(h,0)}function rce(){this.c=new m$(0),this.b=new m$(k7t),this.d=new m$(U2e),this.a=new m$(Mut)}function Nh(t,e,n,r,s,o,h){Rr.call(this,t,e),this.d=n,this.e=r,this.c=s,this.b=o,this.a=id(h)}function vs(t,e,n,r,s,o,h,d,m,k,T,A,P){return u1e(t,e,n,r,s,o,h,d,m,k,T,A,P),qat(t,!1),t}function epn(t){return t.b.c.i.k==(Un(),Ms)?u(X(t.b.c.i,(oe(),Li)),12):t.b.c}function ice(t){return t.b.d.i.k==(Un(),Ms)?u(X(t.b.d.i,(oe(),Li)),12):t.b.d}function npn(t){var e;return e=lq(t),vm(e.a,0)?(k$(),k$(),cye):(k$(),new jJt(e.b))}function lat(t){var e;return e=d3t(t),vm(e.a,0)?(yy(),yy(),Nht):(yy(),new oit(e.b))}function hat(t){var e;return e=d3t(t),vm(e.a,0)?(yy(),yy(),Nht):(yy(),new oit(e.c))}function sce(t){switch(t.g){case 2:return ve(),Gn;case 4:return ve(),Jn;default:return t}}function ace(t){switch(t.g){case 1:return ve(),Er;case 3:return ve(),Hn;default:return t}}function oce(t){switch(t.g){case 0:return new Dtt;case 1:return new Mtt;default:return null}}function ok(){ok=V,bft=new rs("edgelabelcenterednessanalysis.includelabel",(Pn(),t2))}function F4t(){F4t=V,ske=Yd(AQt(ri(ri(new Fs,(Ua(),Qc),(Za(),aG)),cu,eG),Zo),sG)}function cce(){cce=V,uke=Yd(AQt(ri(ri(new Fs,(Ua(),Qc),(Za(),aG)),cu,eG),Zo),sG)}function fat(){fat=V,_L=new VKt,r0t=lt(ut(Wu,1),I5,179,0,[]),DTe=lt(ut(vf,1),zTt,62,0,[])}function r7(){r7=V,KN=new Uwt("TO_INTERNAL_LTR",0),dft=new Uwt("TO_INPUT_DIRECTION",1)}function rl(){rl=V,PCt=new fb,OCt=new cy,NCt=new HX,ICt=new F2,FCt=new VX,BCt=new UX}function rpn(t,e){e.Ug(k2e,1),j5t(zrn(new RC((JC(),new tst(t,!1,!1,new G9))))),e.Vg()}function ipn(t,e,n){n.Ug("DFS Treeifying phase",1),xwn(t,e),vkn(t,e),t.a=null,t.b=null,n.Vg()}function JI(t,e){return Pn(),ba(t)?F3t(t,Gr(e)):Cy(t)?Fit(t,Ht(e)):Ty(t)?Wun(t,Me(e)):t.Fd(e)}function t_(t,e){var n,r;for(Wn(e),r=e.vc().Kc();r.Ob();)n=u(r.Pb(),44),t.zc(n.ld(),n.md())}function spn(t,e,n){var r;for(r=n.Kc();r.Ob();)if(!dq(t,e,r.Pb()))return!1;return!0}function apn(t,e,n,r,s){var o;return n&&(o=ns(e.Dh(),t.c),s=n.Rh(e,-1-(o==-1?r:o),null,s)),s}function opn(t,e,n,r,s){var o;return n&&(o=ns(e.Dh(),t.c),s=n.Th(e,-1-(o==-1?r:o),null,s)),s}function uce(t){var e;if(t.b==-2){if(t.e==0)e=-1;else for(e=0;t.a[e]==0;e++);t.b=e}return t.b}function cpn(t){if(Wn(t),t.length==0)throw at(new jd("Zero length BigInteger"));gEn(this,t)}function B4t(t){this.i=t.gc(),this.i>0&&(this.g=this.aj(this.i+(this.i/8|0)+1),t.Qc(this.g))}function lce(t,e,n){this.g=t,this.d=e,this.e=n,this.a=new fe,y5n(this),mn(),Ds(this.a,null)}function R4t(t,e){e.q=t,t.d=b.Math.max(t.d,e.r),t.b+=e.d+(t.a.c.length==0?0:t.c),ge(t.a,e)}function i7(t,e){var n,r,s,o;return s=t.c,n=t.c+t.b,o=t.d,r=t.d+t.a,e.a>s&&e.ao&&e.bs?n=s:qn(e,n+1),t.a=Lh(t.a,0,e)+(""+r)+Iyt(t.a,n)}function vce(t,e){t.a=Qa(t.a,1),t.c=b.Math.min(t.c,e),t.b=b.Math.max(t.b,e),t.d=Qa(t.d,e)}function ppn(t,e){return e1||t.Ob())return++t.a,t.g=0,e=t.i,t.Ob(),e;throw at(new cc)}function Ece(t){switch(t.a.g){case 1:return new AXt;case 3:return new Ahe;default:return new int}}function $4t(t,e){switch(e){case 1:return!!t.n&&t.n.i!=0;case 2:return t.k!=null}return f3t(t,e)}function Pc(t){return oN>22),s=t.h+e.h+(r>>22),Eu(n&Il,r&Il,s&Fg)}function Mce(t,e){var n,r,s;return n=t.l-e.l,r=t.m-e.m+(n>>22),s=t.h-e.h+(r>>22),Eu(n&Il,r&Il,s&Fg)}function Fpn(t){var e,n;for(LCn(t),n=new G(t.d);n.ar)throw at(new Dy(e,r));return t.Si()&&(n=Yne(t,n)),t.Ei(e,n)}function l7(t,e,n,r,s){var o,h;for(h=n;h<=s;h++)for(o=e;o<=r;o++)u5(t,o,h)||cV(t,o,h,!0,!1)}function Xpn(t){w5();var e,n,r;for(n=Vt(la,ue,8,2,0,1),r=0,e=0;e<2;e++)r+=.5,n[e]=Hmn(r,t);return n}function h7(t){var e,n,r;return e=~t.l+1&Il,n=~t.m+(e==0?1:0)&Il,r=~t.h+(e==0&&n==0?1:0)&Fg,Eu(e,n,r)}function W4t(t){var e;if(t<0)return Ga;if(t==0)return 0;for(e=z_;!(e&t);e>>=1);return e}function vat(t,e,n){return t>=128?!1:t<64?bS(sa(Rf(1,t),n),0):bS(sa(Rf(1,t-64),e),0)}function oO(t,e,n){return n==null?(!t.q&&(t.q=new _r),rk(t.q,e)):(!t.q&&(t.q=new _r),hi(t.q,e,n)),t}function Zt(t,e,n){return n==null?(!t.q&&(t.q=new _r),rk(t.q,e)):(!t.q&&(t.q=new _r),hi(t.q,e,n)),t}function qce(t){var e,n;return n=new mq,Qo(n,t),Zt(n,(Pb(),$k),t),e=new _r,C7n(t,n,e),Z9n(t,n,e),n}function Hce(t){var e,n;return e=t.t-t.k[t.o.p]*t.d+t.j[t.o.p]>t.f,n=t.u+t.e[t.o.p]*t.d>t.f*t.s*t.d,e||n}function Vce(t,e){var n,r,s,o;for(n=!1,r=t.a[e].length,o=0;o=0,"Negative initial capacity"),wI(e>=0,"Non-positive load factor"),dl(this)}function Jpn(t,e,n,r,s){var o,h;if(h=t.length,o=n.length,e<0||r<0||s<0||e+s>h||r+s>o)throw at(new $2t)}function J4t(t,e){mn();var n,r,s,o,h;for(h=!1,r=e,s=0,o=r.length;s1||e>=0&&t.b<3)}function kat(t){var e,n,r;e=~t.l+1&Il,n=~t.m+(e==0?1:0)&Il,r=~t.h+(e==0&&n==0?1:0)&Fg,t.l=e,t.m=n,t.h=r}function e5t(t){mn();var e,n,r;for(r=1,n=t.Kc();n.Ob();)e=n.Pb(),r=31*r+(e!=null?$i(e):0),r=r|0;return r}function rbn(t,e,n,r,s){var o;return o=H6t(t,e),n&&kat(o),s&&(t=Xmn(t,e),r?Zb=h7(t):Zb=Eu(t.l,t.m,t.h)),o}function tue(t,e,n){t.g=$ot(t,e,(ve(),Jn),t.b),t.d=$ot(t,n,Jn,t.b),!(t.g.c==0||t.d.c==0)&&Mfe(t)}function eue(t,e,n){t.g=$ot(t,e,(ve(),Gn),t.j),t.d=$ot(t,n,Gn,t.j),!(t.g.c==0||t.d.c==0)&&Mfe(t)}function n5t(t,e){switch(e){case 7:return!!t.e&&t.e.i!=0;case 8:return!!t.d&&t.d.i!=0}return $5t(t,e)}function ibn(t,e){switch(e.g){case 0:Lt(t.b,641)||(t.b=new mce);break;case 1:Lt(t.b,642)||(t.b=new wte)}}function nue(t){switch(t.g){case 0:return new Ott;default:throw at(new zn(cU+(t.f!=null?t.f:""+t.g)))}}function rue(t){switch(t.g){case 0:return new Yu;default:throw at(new zn(cU+(t.f!=null?t.f:""+t.g)))}}function sbn(t,e,n){return!wE(_i(new ln(null,new gn(t.c,16)),new Sl(new HXt(e,n)))).Bd((U2(),Rk))}function iue(t,e){return R6(S7(u(X(e,(Cc(),Mv)),88)),new ae(t.c.e.a-t.b.e.a,t.c.e.b-t.b.e.b))<=0}function abn(t,e){for(;t.g==null&&!t.c?n3t(t):t.g==null||t.i!=0&&u(t.g[t.i-1],51).Ob();)lin(e,XH(t))}function cw(t){var e,n;for(n=new G(t.a.b);n.ar?1:0}function ubn(t){return ge(t.c,(ck(),WEe)),o4t(t.a,Rt(Ht(Se((Wat(),YG)))))?new Htt:new gGt(t)}function lbn(t){for(;!t.d||!t.d.Ob();)if(t.b&&!WC(t.b))t.d=u(K6(t.b),51);else return null;return t.d}function i5t(t){switch(t.g){case 1:return U2e;default:case 2:return 0;case 3:return Mut;case 4:return k7t}}function hbn(){yi();var t;return u0t||(t=Msn(Gb("M",!0)),t=Mz(Gb("M",!1),t),u0t=t,u0t)}function sH(){sH=V,Ydt=new Y$("ELK",0),EIt=new Y$("JSON",1),kIt=new Y$("DOT",2),TIt=new Y$("SVG",3)}function i_(){i_=V,A1t=new Lrt("STACKED",0),_1t=new Lrt("REVERSE_STACKED",1),lP=new Lrt("SEQUENCED",2)}function s_(){s_=V,hLt=new Prt(r0,0),N1t=new Prt("MIDDLE_TO_MIDDLE",1),dP=new Prt("AVOID_OVERLAP",2)}function g7(){g7=V,vSt=new DQ,ySt=new UD,D4e=new VB,L4e=new MQ,A4e=new Zx,mSt=(Wn(A4e),new kt)}function aH(){aH=V,oIt=new xm(15),D7e=new _a((ai(),Yp),oIt),pL=Jk,rIt=u7e,iIt=jw,aIt=lx,sIt=R3}function r5(t,e){var n,r,s,o,h;for(r=e,s=0,o=r.length;s=t.b.c.length||(a5t(t,2*e+1),n=2*e+2,n0&&(e.Cd(n),n.i&&d2n(n))}function o5t(t,e,n){var r;for(r=n-1;r>=0&&t[r]===e[r];r--);return r<0?0:grt(sa(t[r],So),sa(e[r],So))?-1:1}function oue(t,e,n){var r,s;this.g=t,this.c=e,this.a=this,this.d=this,s=zoe(n),r=Vt(qve,iN,227,s,0,1),this.b=r}function _at(t,e,n,r,s){var o,h;for(h=n;h<=s;h++)for(o=e;o<=r;o++)if(u5(t,o,h))return!0;return!1}function wbn(t,e){var n,r;for(r=t.Zb().Cc().Kc();r.Ob();)if(n=u(r.Pb(),16),n.Hc(e))return!0;return!1}function cue(t,e,n){var r,s,o,h;for(Wn(n),h=!1,o=t.fd(e),s=n.Kc();s.Ob();)r=s.Pb(),o.Rb(r),h=!0;return h}function Aat(t,e){var n,r;return r=u(jn(t.a,4),129),n=Vt(e0t,sht,424,e,0,1),r!=null&&Xc(r,0,n,0,r.length),n}function uue(t,e){var n;return n=new nct((t.f&256)!=0,t.i,t.a,t.d,(t.f&16)!=0,t.j,t.g,e),t.e!=null||(n.c=t),n}function mbn(t,e){var n;return t===e?!0:Lt(e,85)?(n=u(e,85),l6t(K2(t),n.vc())):!1}function lue(t,e,n){var r,s;for(s=n.Kc();s.Ob();)if(r=u(s.Pb(),44),t.Be(e,r.md()))return!0;return!1}function hue(t,e,n){return t.d[e.p][n.p]||(xmn(t,e,n),t.d[e.p][n.p]=!0,t.d[n.p][e.p]=!0),t.a[e.p][n.p]}function vbn(t,e){var n;return!t||t==e||!qi(e,(oe(),yv))?!1:(n=u(X(e,(oe(),yv)),10),n!=t)}function Lat(t){switch(t.i){case 2:return!0;case 1:return!1;case-1:++t.c;default:return t.$l()}}function fue(t){switch(t.i){case-2:return!0;case-1:return!1;case 1:--t.c;default:return t._l()}}function due(t){tre.call(this,"The given string does not match the expected format for individual spacings.",t)}function ybn(t,e){var n;e.Ug("Min Size Preprocessing",1),n=v6t(t),Mi(t,(N0(),nL),n.a),Mi(t,bK,n.b),e.Vg()}function xbn(t){var e,n,r;for(e=0,r=Vt(la,ue,8,t.b,0,1),n=Dr(t,0);n.b!=n.d.c;)r[e++]=u(Ar(n),8);return r}function Dat(t,e,n){var r,s,o;for(r=new Ki,o=Dr(n,0);o.b!=o.d.c;)s=u(Ar(o),8),Zr(r,new io(s));cue(t,e,r)}function kbn(t,e){var n;return n=Qa(t,e),grt(vst(t,e),0)|J$(vst(t,n),0)?n:Qa(rN,vst(Ab(n,63),1))}function Ebn(t,e){var n,r;return n=u(t.d.Bc(e),16),n?(r=t.e.hc(),r.Gc(n),t.e.d-=n.gc(),n.$b(),r):null}function gue(t){var e;if(e=t.a.c.length,e>0)return IE(e-1,t.a.c.length),Ep(t.a,e-1);throw at(new gKt)}function pue(t,e,n){if(t>e)throw at(new zn(CV+t+Mbe+e));if(t<0||e>n)throw at(new gwt(CV+t+T8t+e+x8t+n))}function p7(t,e){t.D==null&&t.B!=null&&(t.D=t.B,t.B=null),nat(t,e==null?null:(Wn(e),e)),t.C&&t.hl(null)}function Tbn(t,e){var n;n=Se((Wat(),YG))!=null&&e.Sg()!=null?Rt(Ht(e.Sg()))/Rt(Ht(Se(YG))):1,hi(t.b,e,n)}function c5t(t,e){var n,r;if(r=t.c[e],r!=0)for(t.c[e]=0,t.d-=r,n=e+1;neU?t-n>eU:n-t>eU}function Sue(t,e){var n;for(n=0;ns&&(nfe(e.q,s),r=n!=e.q.d)),r}function _ue(t,e){var n,r,s,o,h,d,m,k;return m=e.i,k=e.j,r=t.f,s=r.i,o=r.j,h=m-s,d=k-o,n=b.Math.sqrt(h*h+d*d),n}function g5t(t,e){var n,r;return r=xH(t),r||(n=(Tct(),pde(e)),r=new rKt(n),Or(r.El(),t)),r}function hO(t,e){var n,r;return n=u(t.c.Bc(e),16),n?(r=t.hc(),r.Gc(n),t.d-=n.gc(),n.$b(),t.mc(r)):t.jc()}function Pbn(t,e){var n,r;for(r=Dl(t.d,1)!=0,n=!0;n;)n=!1,n=e.c.mg(e.e,r),n=n|qO(t,e,r,!1),r=!r;I4t(t)}function Aue(t,e,n,r){var s,o;t.a=e,o=r?0:1,t.f=(s=new zfe(t.c,t.a,n,o),new y0e(n,t.a,s,t.e,t.b,t.c==(Hm(),UA)))}function cH(t){var e;return ur(t.a!=t.b),e=t.d.a[t.a],nZt(t.b==t.d.c&&e!=null),t.c=t.a,t.a=t.a+1&t.d.a.length-1,e}function Lue(t){var e;if(t.c!=0)return t.c;for(e=0;e=t.c.b:t.a<=t.c.b))throw at(new cc);return e=t.a,t.a+=t.c.c,++t.b,he(e)}function Pat(t){var e;return e=new Lmt(t.a),Qo(e,t),Zt(e,(oe(),Li),t),e.o.a=t.g,e.o.b=t.f,e.n.a=t.i,e.n.b=t.j,e}function Fat(t){return(ve(),Gu).Hc(t.j)?Rt(Ht(X(t,(oe(),MT)))):dc(lt(ut(la,1),ue,8,0,[t.i.n,t.n,t.a])).b}function Bbn(t){var e;return e=rz(ike),u(X(t,(oe(),lu)),21).Hc((Co(),DT))&&ri(e,(Ua(),Qc),(Za(),uG)),e}function Rbn(t){var e,n,r,s;for(s=new Os,r=new G(t);r.a=0?e:-e;r>0;)r%2==0?(n*=n,r=r/2|0):(s*=n,r-=1);return e<0?1/s:s}function Hbn(t,e){var n,r,s;for(s=1,n=t,r=e>=0?e:-e;r>0;)r%2==0?(n*=n,r=r/2|0):(s*=n,r-=1);return e<0?1/s:s}function jb(t,e){var n,r,s,o;return o=(s=t?xH(t):null,h1e((r=e,s&&s.Gl(),r))),o==e&&(n=xH(t),n&&n.Gl()),o}function Due(t,e,n){var r,s;return s=t.f,t.f=e,t.Db&4&&!(t.Db&1)&&(r=new ha(t,1,0,s,e),n?n.nj(r):n=r),n}function Mue(t,e,n){var r,s;return s=t.b,t.b=e,t.Db&4&&!(t.Db&1)&&(r=new ha(t,1,3,s,e),n?n.nj(r):n=r),n}function b5t(t,e,n){var r,s;return s=t.a,t.a=e,t.Db&4&&!(t.Db&1)&&(r=new ha(t,1,1,s,e),n?n.nj(r):n=r),n}function Iue(t){var e,n;if(t!=null)for(n=0;n=r||e-129&&t<128?(bte(),e=t+128,n=d9t[e],!n&&(n=d9t[e]=new wr(t)),n):new wr(t)}function w7(t){var e,n;return t>-129&&t<128?(Ote(),e=t+128,n=w9t[e],!n&&(n=w9t[e]=new $n(t)),n):new $n(t)}function Pue(t,e){var n;t.a.c.length>0&&(n=u(Oe(t.a,t.a.c.length-1),579),s5t(n,e))||ge(t.a,new Zie(e))}function Ybn(t){Bf();var e,n;e=t.d.c-t.e.c,n=u(t.g,154),Cu(n.b,new XVt(e)),Cu(n.c,new QVt(e)),Fa(n.i,new JVt(e))}function Fue(t){var e;return e=new yb,e.a+="VerticalSegment ",tu(e,t.e),e.a+=" ",ni(e,Fmt(new ert,new G(t.k))),e.a}function Bat(t,e){var n,r,s;for(n=0,s=gc(t,e).Kc();s.Ob();)r=u(s.Pb(),12),n+=X(r,(oe(),ml))!=null?1:0;return n}function a5(t,e,n){var r,s,o;for(r=0,o=Dr(t,0);o.b!=o.d.c&&(s=Rt(Ht(Ar(o))),!(s>n));)s>=e&&++r;return r}function Bue(t,e){Hr(t);try{return t._b(e)}catch(n){if(n=es(n),Lt(n,212)||Lt(n,169))return!1;throw at(n)}}function m5t(t,e){Hr(t);try{return t.Hc(e)}catch(n){if(n=es(n),Lt(n,212)||Lt(n,169))return!1;throw at(n)}}function Xbn(t,e){Hr(t);try{return t.Mc(e)}catch(n){if(n=es(n),Lt(n,212)||Lt(n,169))return!1;throw at(n)}}function Gy(t,e){Hr(t);try{return t.xc(e)}catch(n){if(n=es(n),Lt(n,212)||Lt(n,169))return null;throw at(n)}}function Qbn(t,e){Hr(t);try{return t.Bc(e)}catch(n){if(n=es(n),Lt(n,212)||Lt(n,169))return null;throw at(n)}}function c_(t,e){switch(e.g){case 2:case 1:return gc(t,e);case 3:case 4:return Bh(gc(t,e))}return mn(),mn(),co}function u_(t){var e;return t.Db&64?qf(t):(e=new ef(qf(t)),e.a+=" (name: ",Mo(e,t.zb),e.a+=")",e.a)}function Jbn(t){var e;return e=u(od(t.c.c,""),233),e||(e=new Z6(pE(gE(new fy,""),"Other")),Op(t.c.c,"",e)),e}function v5t(t,e,n){var r,s;return s=t.sb,t.sb=e,t.Db&4&&!(t.Db&1)&&(r=new ha(t,1,4,s,e),n?n.nj(r):n=r),n}function y5t(t,e,n){var r,s;return s=t.r,t.r=e,t.Db&4&&!(t.Db&1)&&(r=new ha(t,1,8,s,t.r),n?n.nj(r):n=r),n}function Zbn(t,e,n){var r,s;return r=new Tg(t.e,4,13,(s=e.c,s||(wn(),Sd)),null,Np(t,e),!1),n?n.nj(r):n=r,n}function t2n(t,e,n){var r,s;return r=new Tg(t.e,3,13,null,(s=e.c,s||(wn(),Sd)),Np(t,e),!1),n?n.nj(r):n=r,n}function Lp(t,e){var n,r;return n=u(e,691),r=n.el(),!r&&n.fl(r=Lt(e,90)?new pQt(t,u(e,29)):new Rre(t,u(e,156))),r}function fO(t,e,n){var r;t._i(t.i+1),r=t.Zi(e,n),e!=t.i&&Xc(t.g,e,t.g,e+1,t.i-e),ls(t.g,e,r),++t.i,t.Mi(e,n),t.Ni()}function e2n(t,e){var n;return e.a&&(n=e.a.a.length,t.a?ni(t.a,t.b):t.a=new eh(t.d),Ure(t.a,e.a,e.d.length,n)),t}function n2n(t,e){var n;t.c=e,t.a=own(e),t.a<54&&(t.f=(n=e.d>1?Hre(e.a[0],e.a[1]):Hre(e.a[0],0),tw(e.e>0?n:Cp(n))))}function dO(t,e){var n;return n=new Je,t.a.Bd(n)?(EE(),new Ynt(Wn(Tae(t,n.a,e)))):(Mb(t),EE(),EE(),A9t)}function Rue(t,e){var n;t.c.length!=0&&(n=u(ld(t,Vt(V0,jp,10,t.c.length,0,1)),199),xmt(n,new P8),I1e(n,e))}function jue(t,e){var n;t.c.length!=0&&(n=u(ld(t,Vt(V0,jp,10,t.c.length,0,1)),199),xmt(n,new v0),I1e(n,e))}function Ti(t,e){return ba(t)?hn(t,e):Cy(t)?OZt(t,e):Ty(t)?(Wn(t),$t(t)===$t(e)):gyt(t)?t.Fb(e):oyt(t)?MQt(t,e):o3t(t,e)}function Ph(t,e,n){if(e<0)C6t(t,n);else{if(!n.rk())throw at(new zn(Jb+n.xe()+aA));u(n,69).wk().Ek(t,t.hi(),e)}}function $ue(t,e,n){if(t<0||e>n)throw at(new Bo(CV+t+T8t+e+", size: "+n));if(t>e)throw at(new zn(CV+t+Mbe+e))}function zue(t){var e;return t.Db&64?qf(t):(e=new ef(qf(t)),e.a+=" (source: ",Mo(e,t.d),e.a+=")",e.a)}function que(t){return t>=65&&t<=70?t-65+10:t>=97&&t<=102?t-97+10:t>=48&&t<=57?t-48:0}function r2n(t){yV();var e,n,r,s;for(n=not(),r=0,s=n.length;r=0?zb(t):FS(zb(Cp(t))))}function Uue(t,e,n,r,s,o){this.e=new fe,this.f=(To(),HA),ge(this.e,t),this.d=e,this.a=n,this.b=r,this.f=s,this.c=o}function a2n(t,e,n){t.n=G2(x2,[ue,cut],[376,28],14,[n,Ys(b.Math.ceil(e/32))],2),t.o=e,t.p=n,t.j=e-1>>1,t.k=n-1>>1}function Gue(t){return t-=t>>1&1431655765,t=(t>>2&858993459)+(t&858993459),t=(t>>4)+t&252645135,t+=t>>8,t+=t>>16,t&63}function Kue(t,e){var n,r;for(r=new Zn(t);r.e!=r.i.gc();)if(n=u(ar(r),142),$t(e)===$t(n))return!0;return!1}function o2n(t,e,n){var r,s,o;return o=(s=N7(t.b,e),s),o&&(r=u(pV(VI(t,o),""),29),r)?K6t(t,r,e,n):null}function Rat(t,e,n){var r,s,o;return o=(s=N7(t.b,e),s),o&&(r=u(pV(VI(t,o),""),29),r)?W6t(t,r,e,n):null}function c2n(t,e){var n;if(n=n5(t.i,e),n==null)throw at(new Rd("Node did not exist in input."));return j4t(e,n),null}function u2n(t,e){var n;if(n=zO(t,e),Lt(n,331))return u(n,35);throw at(new zn(Jb+e+"' is not a valid attribute"))}function h_(t,e,n){var r;if(r=t.gc(),e>r)throw at(new Dy(e,r));if(t.Si()&&t.Hc(n))throw at(new zn(AN));t.Gi(e,n)}function l2n(t,e){e.Ug("Sort end labels",1),ms(_i(fc(new ln(null,new gn(t.b,16)),new PB),new Yx),new aQ),e.Vg()}function Rs(){Rs=V,Ed=new JM(G_,0),tc=new JM(Ak,1),Uo=new JM(_k,2),kd=new JM(xut,3),Gh=new JM("UP",4)}function pO(){pO=V,vK=new qrt("P1_STRUCTURE",0),yK=new qrt("P2_PROCESSING_ORDER",1),xK=new qrt("P3_EXECUTION",2)}function Wue(){Wue=V,v8e=Yd(Yd(nS(Yd(Yd(nS(ri(new Fs,(bk(),WA),(I_(),O1t)),YA),oLt),uLt),XA),rLt),lLt)}function h2n(t){switch(u(X(t,(oe(),Aw)),311).g){case 1:Zt(t,Aw,(Cg(),qk));break;case 2:Zt(t,Aw,(Cg(),H5))}}function f2n(t){switch(t){case 0:return new BKt;case 1:return new PKt;case 2:return new FKt;default:throw at(new DM)}}function Yue(t){switch(t.g){case 2:return tc;case 1:return Uo;case 4:return kd;case 3:return Gh;default:return Ed}}function T5t(t,e){switch(t.b.g){case 0:case 1:return e;case 2:case 3:return new Ah(e.d,0,e.a,e.b);default:return null}}function C5t(t){switch(t.g){case 1:return Gn;case 2:return Hn;case 3:return Jn;case 4:return Er;default:return bc}}function bO(t){switch(t.g){case 1:return Er;case 2:return Gn;case 3:return Hn;case 4:return Jn;default:return bc}}function hH(t){switch(t.g){case 1:return Jn;case 2:return Er;case 3:return Gn;case 4:return Hn;default:return bc}}function S5t(t,e,n,r){switch(e){case 1:return!t.n&&(t.n=new Jt(Po,t,1,7)),t.n;case 2:return t.k}return mxt(t,e,n,r)}function f_(t,e,n){var r,s;return t.Pj()?(s=t.Qj(),r=Uot(t,e,n),t.Jj(t.Ij(7,he(n),r,e,s)),r):Uot(t,e,n)}function jat(t,e){var n,r,s;t.d==null?(++t.e,--t.f):(s=e.ld(),n=e.Bi(),r=(n&xi)%t.d.length,Qdn(t,r,vde(t,r,n,s)))}function m7(t,e){var n;n=(t.Bb&Uf)!=0,e?t.Bb|=Uf:t.Bb&=-1025,t.Db&4&&!(t.Db&1)&&Ei(t,new jf(t,1,10,n,e))}function v7(t,e){var n;n=(t.Bb&u3)!=0,e?t.Bb|=u3:t.Bb&=-4097,t.Db&4&&!(t.Db&1)&&Ei(t,new jf(t,1,12,n,e))}function y7(t,e){var n;n=(t.Bb&ol)!=0,e?t.Bb|=ol:t.Bb&=-8193,t.Db&4&&!(t.Db&1)&&Ei(t,new jf(t,1,15,n,e))}function x7(t,e){var n;n=(t.Bb&b3)!=0,e?t.Bb|=b3:t.Bb&=-2049,t.Db&4&&!(t.Db&1)&&Ei(t,new jf(t,1,11,n,e))}function d2n(t){var e;t.g&&(e=t.c.kg()?t.f:t.a,okt(e.a,t.o,!0),okt(e.a,t.o,!1),Zt(t.o,(De(),bs),(ka(),zw)))}function g2n(t){var e;if(!t.a)throw at(new Ro("Cannot offset an unassigned cut."));e=t.c-t.b,t.b+=e,yne(t,e),vne(t,e)}function p2n(t,e){var n;if(n=tr(t.k,e),n==null)throw at(new Rd("Port did not exist in input."));return j4t(e,n),null}function b2n(t){var e,n;for(n=bde(sh(t)).Kc();n.Ob();)if(e=Gr(n.Pb()),O_(t,e))return wdn((QYt(),mTe),e);return null}function Xue(t){var e,n;for(n=t.p.a.ec().Kc();n.Ob();)if(e=u(n.Pb(),218),e.f&&t.b[e.c]<-1e-10)return e;return null}function w2n(t){var e,n;for(n=Db(new yb,91),e=!0;t.Ob();)e||(n.a+=ao),e=!1,tu(n,t.Pb());return(n.a+="]",n).a}function m2n(t){var e,n,r;for(e=new fe,r=new G(t.b);r.ae?1:t==e?t==0?Bi(1/t,1/e):0:isNaN(t)?isNaN(e)?0:1:-1}function y2n(t){var e;return e=t.a[t.c-1&t.a.length-1],e==null?null:(t.c=t.c-1&t.a.length-1,ls(t.a,t.c,null),e)}function x2n(t){var e,n,r;for(r=0,n=t.length,e=0;e=1?tc:kd):n}function C2n(t){switch(u(X(t,(De(),zg)),223).g){case 1:return new TJ;case 3:return new LJ;default:return new EJ}}function $b(t){if(t.c)$b(t.c);else if(t.d)throw at(new Ro("Stream already terminated, can't be modified or used"))}function Km(t,e,n){var r;return r=t.a.get(e),t.a.set(e,n===void 0?null:n),r===void 0?(++t.c,++t.b.g):++t.d,r}function S2n(t,e,n){var r,s;for(s=t.a.ec().Kc();s.Ob();)if(r=u(s.Pb(),10),rO(n,u(Oe(e,r.p),16)))return r;return null}function A5t(t,e,n){var r;return r=0,e&&(q4(t.a)?r+=e.f.a/2:r+=e.f.b/2),n&&(q4(t.a)?r+=n.f.a/2:r+=n.f.b/2),r}function _2n(t,e,n){var r;r=n,!r&&(r=Yvt(new S6,0)),r.Ug(u2e,2),ehe(t.b,e,r.eh(1)),qTn(t,e,r.eh(1)),UCn(e,r.eh(1)),r.Vg()}function L5t(t,e,n){var r,s;return r=(kb(),s=new fC,s),Rq(r,e),Bq(r,n),t&&Or((!t.a&&(t.a=new Ps(vh,t,5)),t.a),r),r}function zat(t){var e;return t.Db&64?qf(t):(e=new ef(qf(t)),e.a+=" (identifier: ",Mo(e,t.k),e.a+=")",e.a)}function qat(t,e){var n;n=(t.Bb&Fc)!=0,e?t.Bb|=Fc:t.Bb&=-32769,t.Db&4&&!(t.Db&1)&&Ei(t,new jf(t,1,18,n,e))}function D5t(t,e){var n;n=(t.Bb&Fc)!=0,e?t.Bb|=Fc:t.Bb&=-32769,t.Db&4&&!(t.Db&1)&&Ei(t,new jf(t,1,18,n,e))}function k7(t,e){var n;n=(t.Bb&Jd)!=0,e?t.Bb|=Jd:t.Bb&=-16385,t.Db&4&&!(t.Db&1)&&Ei(t,new jf(t,1,16,n,e))}function M5t(t,e){var n;n=(t.Bb&po)!=0,e?t.Bb|=po:t.Bb&=-65537,t.Db&4&&!(t.Db&1)&&Ei(t,new jf(t,1,20,n,e))}function I5t(t){var e;return e=Vt(Yh,Zd,28,2,15,1),t-=po,e[0]=(t>>10)+cN&js,e[1]=(t&1023)+56320&js,af(e,0,e.length)}function A2n(t){var e;return e=Jy(t),e>34028234663852886e22?Zi:e<-34028234663852886e22?Vs:e}function Qa(t,e){var n;return ec(t)&&ec(e)&&(n=t+e,oN"+Z2(e.c):"e_"+$i(e),t.b&&t.c?Z2(t.b)+"->"+Z2(t.c):"e_"+$i(t))}function M2n(t,e){return hn(e.b&&e.c?Z2(e.b)+"->"+Z2(e.c):"e_"+$i(e),t.b&&t.c?Z2(t.b)+"->"+Z2(t.c):"e_"+$i(t))}function Wm(t,e){return Z1(),$f(Kb),b.Math.abs(t-e)<=Kb||t==e||isNaN(t)&&isNaN(e)?0:te?1:ym(isNaN(t),isNaN(e))}function Lg(){Lg=V,Vdt=new U$(G_,0),IP=new U$("POLYLINE",1),WT=new U$("ORTHOGONAL",2),e8=new U$("SPLINES",3)}function dH(){dH=V,oDt=new $rt("ASPECT_RATIO_DRIVEN",0),hdt=new $rt("MAX_SCALE_DRIVEN",1),aDt=new $rt("AREA_DRIVEN",2)}function I2n(t,e,n){var r;try{ebn(t,e,n)}catch(s){throw s=es(s),Lt(s,606)?(r=s,at(new I3t(r))):at(s)}return e}function O2n(t){var e,n,r;for(n=0,r=t.length;ne&&r.Ne(t[o-1],t[o])>0;--o)h=t[o],ls(t,o,t[o-1]),ls(t,o-1,h)}function Qe(t,e){var n,r,s,o,h;if(n=e.f,Op(t.c.d,n,e),e.g!=null)for(s=e.g,o=0,h=s.length;oe){Wre(n);break}}kI(n,e)}function B2n(t,e){var n,r,s;r=J4(e),s=Rt(Ht(Wy(r,(De(),Yf)))),n=b.Math.max(0,s/2-.5),x_(e,n,1),ge(t,new dXt(e,n))}function R2n(t,e,n){var r;n.Ug("Straight Line Edge Routing",1),n.dh(e,I7t),r=u(ne(e,(Y4(),ex)),27),Bge(t,r),n.dh(e,iU)}function O5t(t,e){t.n.c.length==0&&ge(t.n,new aq(t.s,t.t,t.i)),ge(t.b,e),dxt(u(Oe(t.n,t.n.c.length-1),209),e),vge(t,e)}function d_(t){var e;this.a=(e=u(t.e&&t.e(),9),new _h(e,u(Ff(e,e.length),9),0)),this.b=Vt(aa,Ln,1,this.a.a.length,5,1)}function rc(t){var e;return Array.isArray(t)&&t.Tm===yt?V2(Wl(t))+"@"+(e=$i(t)>>>0,e.toString(16)):t.toString()}function j2n(t,e){return t.h==aN&&t.m==0&&t.l==0?(e&&(Zb=Eu(0,0,0)),OQt((WE(),o9t))):(e&&(Zb=Eu(t.l,t.m,t.h)),Eu(0,0,0))}function $2n(t,e){switch(e.g){case 2:return t.b;case 1:return t.c;case 4:return t.d;case 3:return t.a;default:return!1}}function tle(t,e){switch(e.g){case 2:return t.b;case 1:return t.c;case 4:return t.d;case 3:return t.a;default:return!1}}function N5t(t,e,n,r){switch(e){case 3:return t.f;case 4:return t.g;case 5:return t.i;case 6:return t.j}return S5t(t,e,n,r)}function gH(t,e){if(e==t.d)return t.e;if(e==t.e)return t.d;throw at(new zn("Node "+e+" not part of edge "+t))}function z2n(t,e){var n;if(n=zO(t.Dh(),e),Lt(n,102))return u(n,19);throw at(new zn(Jb+e+"' is not a valid reference"))}function Fh(t,e,n,r){if(e<0)J6t(t,n,r);else{if(!n.rk())throw at(new zn(Jb+n.xe()+aA));u(n,69).wk().Ck(t,t.hi(),e,r)}}function Ll(t){var e;if(t.b){if(Ll(t.b),t.b.d!=t.c)throw at(new Th)}else t.d.dc()&&(e=u(t.f.c.xc(t.e),16),e&&(t.d=e))}function q2n(t){Ay();var e,n,r,s;for(e=t.o.b,r=u(u(Ai(t.r,(ve(),Er)),21),87).Kc();r.Ob();)n=u(r.Pb(),117),s=n.e,s.b+=e}function H2n(t){var e,n,r;for(this.a=new zd,r=new G(t);r.a=s)return e.c+n;return e.c+e.b.gc()}function U2n(t,e){_E();var n,r,s,o;for(r=fae(t),s=e,GE(r,0,r.length,s),n=0;n0&&(r+=s,++n);return n>1&&(r+=t.d*(n-1)),r}function K2n(t){var e,n,r,s,o;return o=Jxt(t),n=NM(t.c),r=!n,r&&(s=new cp,_1(o,"knownLayouters",s),e=new VGt(s),Fa(t.c,e)),o}function B5t(t){var e,n,r;for(r=new dp,r.a+="[",e=0,n=t.gc();e0&&(qn(e-1,t.length),t.charCodeAt(e-1)==58)&&!Uat(t,CL,SL))}function R5t(t,e){var n;return $t(t)===$t(e)?!0:Lt(e,92)?(n=u(e,92),t.e==n.e&&t.d==n.d&&ydn(t,n.a)):!1}function hk(t){switch(ve(),t.g){case 4:return Hn;case 1:return Jn;case 3:return Er;case 2:return Gn;default:return bc}}function Q2n(t){var e,n;if(t.b)return t.b;for(n=wd?null:t.d;n;){if(e=wd?null:n.b,e)return e;n=wd?null:n.d}return xE(),M9t}function j5t(t){var e,n,r;for(r=Rt(Ht(t.a.of((ai(),LK)))),n=new G(t.a.Sf());n.a>5,e=t&31,r=Vt(Fr,ii,28,n+1,15,1),r[n]=1<3;)s*=10,--o;t=(t+(s>>1))/s|0}return r.i=t,!0}function ns(t,e){var n,r,s;if(n=(t.i==null&&Qd(t),t.i),r=e.Lj(),r!=-1){for(s=n.length;r=0;--r)for(e=n[r],s=0;s>1,this.k=e-1>>1}function fwn(t){Tq(),u(t.of((ai(),l2)),181).Hc((Ml(),FK))&&(u(t.of(j3),181).Fc((wl(),n8)),u(t.of(l2),181).Mc(FK))}function ole(t){var e,n;e=t.d==(wk(),kT),n=qxt(t),e&&!n||!e&&n?Zt(t.a,(De(),u0),(I0(),TP)):Zt(t.a,(De(),u0),(I0(),EP))}function Wat(){Wat=V,C$(),YG=(De(),Av),M6e=id(lt(ut(Sdt,1),v7t,149,0,[aP,Yf,Y5,_v,O3,l1t,FT,BT,h1t,jA,W5,Pw,X5]))}function dwn(t,e){var n;return n=u(nc(t,gl(new Br,new ce,new An,lt(ut(Ho,1),te,108,0,[(bl(),sc)]))),15),n.Qc(Ate(n.gc()))}function cle(t,e){var n,r;if(r=new ra(t.a.ad(e,!0)),r.a.gc()<=1)throw at(new E6);return n=r.a.ec().Kc(),n.Pb(),u(n.Pb(),39)}function gwn(t,e,n){var r,s;return r=Rt(t.p[e.i.p])+Rt(t.d[e.i.p])+e.n.b+e.a.b,s=Rt(t.p[n.i.p])+Rt(t.d[n.i.p])+n.n.b+n.a.b,s-r}function G5t(t,e){var n;return t.i>0&&(e.lengtht.i&&ls(e,t.i,null),e}function bH(t){var e;return t.Db&64?u_(t):(e=new ef(u_(t)),e.a+=" (instanceClassName: ",Mo(e,t.D),e.a+=")",e.a)}function wH(t){var e,n,r,s;for(s=0,n=0,r=t.length;n0?(t._j(),r=e==null?0:$i(e),s=(r&xi)%t.d.length,n=vde(t,s,r,e),n!=-1):!1}function ule(t,e){var n,r;t.a=Qa(t.a,1),t.c=b.Math.min(t.c,e),t.b=b.Math.max(t.b,e),t.d+=e,n=e-t.f,r=t.e+n,t.f=r-t.e-n,t.e=r}function K5t(t,e){switch(e){case 3:zm(t,0);return;case 4:qm(t,0);return;case 5:Su(t,0);return;case 6:_u(t,0);return}w5t(t,e)}function Ym(t,e){switch(e.g){case 1:return H6(t.j,(rl(),OCt));case 2:return H6(t.j,(rl(),PCt));default:return mn(),mn(),co}}function W5t(t){Dm();var e;switch(e=t.Pc(),e.length){case 0:return Eht;case 1:return new Ait(Hr(e[0]));default:return new ust(O2n(e))}}function lle(t,e){t.Xj();try{t.d.bd(t.e++,e),t.f=t.d.j,t.g=-1}catch(n){throw n=es(n),Lt(n,77)?at(new Th):at(n)}}function Xat(){Xat=V,s0t=new mC,HIt=new b1,VIt=new uM,UIt=new lM,GIt=new u6,KIt=new eet,WIt=new net,YIt=new ret,XIt=new iet}function mH(t,e){wmt();var n,r;return n=hI((h$(),h$(),mA)),r=null,e==n&&(r=u(nu(s9t,t),624)),r||(r=new Lee(t),e==n&&jo(s9t,t,r)),r}function hle(t){Yy();var e;return(t.q?t.q:(mn(),mn(),q0))._b((De(),Cv))?e=u(X(t,Cv),203):e=u(X(Pa(t),RA),203),e}function Wy(t,e){var n,r;return r=null,qi(t,(De(),KG))&&(n=u(X(t,KG),96),n.pf(e)&&(r=n.of(e))),r==null&&(r=X(Pa(t),e)),r}function fle(t,e){var n,r,s;return Lt(e,44)?(n=u(e,44),r=n.ld(),s=Gy(t.Rc(),r),Ud(s,n.md())&&(s!=null||t.Rc()._b(r))):!1}function L1(t,e){var n,r,s;return t.f>0&&(t._j(),r=e==null?0:$i(e),s=(r&xi)%t.d.length,n=I6t(t,s,r,e),n)?n.md():null}function vu(t,e,n){var r,s,o;return t.Pj()?(r=t.i,o=t.Qj(),fO(t,r,e),s=t.Ij(3,null,e,r,o),n?n.nj(s):n=s):fO(t,t.i,e),n}function bwn(t,e,n){var r,s;return r=new Tg(t.e,4,10,(s=e.c,Lt(s,90)?u(s,29):(wn(),xf)),null,Np(t,e),!1),n?n.nj(r):n=r,n}function wwn(t,e,n){var r,s;return r=new Tg(t.e,3,10,null,(s=e.c,Lt(s,90)?u(s,29):(wn(),xf)),Np(t,e),!1),n?n.nj(r):n=r,n}function dle(t){Ay();var e;return e=new io(u(t.e.of((ai(),lx)),8)),t.B.Hc((Ml(),XT))&&(e.a<=0&&(e.a=20),e.b<=0&&(e.b=20)),e}function zb(t){Xd();var e,n;return n=qr(t),e=qr(Ab(t,32)),e!=0?new xre(n,e):n>10||n<0?new kg(1,n):tye[n]}function mO(t,e){var n;return ec(t)&&ec(e)&&(n=t%e,oN=0?o=o.a[1]:(s=o,o=o.a[0])}return s}function yO(t,e,n){var r,s,o;for(s=null,o=t.b;o;){if(r=t.a.Ne(e,o.d),n&&r==0)return o;r<=0?o=o.a[0]:(s=o,o=o.a[1])}return s}function Ewn(t,e,n,r){var s,o,h;return s=!1,S9n(t.f,n,r)&&(Uwn(t.f,t.a[e][n],t.a[e][r]),o=t.a[e],h=o[r],o[r]=o[n],o[n]=h,s=!0),s}function wle(t,e,n){var r,s,o,h;for(s=u(tr(t.b,n),183),r=0,h=new G(e.j);h.a>5,e&=31,s=t.d+n+(e==0?0:1),r=Vt(Fr,ii,28,s,15,1),x3n(r,t.a,n,e),o=new Y2(t.e,s,r),qS(o),o}function Twn(t,e){var n,r,s;for(r=new rr(sr(_s(t).a.Kc(),new z));Mr(r);)if(n=u(dr(r),18),s=n.d.i,s.c==e)return!1;return!0}function Q5t(t,e,n){var r,s,o,h,d;return h=t.k,d=e.k,r=n[h.g][d.g],s=Ht(Wy(t,r)),o=Ht(Wy(e,r)),b.Math.max((Wn(s),s),(Wn(o),o))}function Cwn(){return Error.stackTraceLimit>0?(b.Error.stackTraceLimit=Error.stackTraceLimit=64,!0):"stack"in new Error}function Swn(t,e){return Z1(),Z1(),$f(Kb),(b.Math.abs(t-e)<=Kb||t==e||isNaN(t)&&isNaN(e)?0:te?1:ym(isNaN(t),isNaN(e)))>0}function J5t(t,e){return Z1(),Z1(),$f(Kb),(b.Math.abs(t-e)<=Kb||t==e||isNaN(t)&&isNaN(e)?0:te?1:ym(isNaN(t),isNaN(e)))<0}function vle(t,e){return Z1(),Z1(),$f(Kb),(b.Math.abs(t-e)<=Kb||t==e||isNaN(t)&&isNaN(e)?0:te?1:ym(isNaN(t),isNaN(e)))<=0}function Jat(t,e){for(var n=0;!e[n]||e[n]=="";)n++;for(var r=e[n++];n0&&this.b>0&&(this.g=Dz(this.c,this.b,this.a))}function _wn(t,e){var n=t.a,r;e=String(e),n.hasOwnProperty(e)&&(r=n[e]);var s=(yat(),Lht)[typeof r],o=s?s(r):f5t(typeof r);return o}function T7(t){var e,n,r;if(r=null,e=a0 in t.a,n=!e,n)throw at(new Rd("Every element must have an id."));return r=mk(vg(t,a0)),r}function Xm(t){var e,n;for(n=Ufe(t),e=null;t.c==2;)wi(t),e||(e=(yi(),yi(),new yS(2)),gw(e,n),n=e),n.Jm(Ufe(t));return n}function yH(t,e){var n,r,s;return t._j(),r=e==null?0:$i(e),s=(r&xi)%t.d.length,n=I6t(t,s,r,e),n?(_oe(t,n),n.md()):null}function Sle(t,e){return t.e>e.e?1:t.ee.d?t.e:t.d=48&&t<48+b.Math.min(10,10)?t-48:t>=97&&t<97?t-97+10:t>=65&&t<65?t-65+10:-1}function Awn(t,e){if(e.c==t)return e.d;if(e.d==t)return e.c;throw at(new zn("Input edge is not connected to the input port."))}function Lwn(t){if(kH(uT,t))return Pn(),bT;if(kH(jlt,t))return Pn(),t2;throw at(new zn("Expecting true or false"))}function ext(t){switch(typeof t){case Nct:return _p(t);case u8t:return F6(t);case kk:return oZt(t);default:return t==null?0:Em(t)}}function Yd(t,e){if(t.a<0)throw at(new Ro("Did not call before(...) or after(...) before calling add(...)."));return Ymt(t,t.a,e),t}function nxt(t){return oq(),Lt(t,162)?u(tr(VP,sye),294).Rg(t):Tu(VP,Wl(t))?u(tr(VP,Wl(t)),294).Rg(t):null}function Au(t){var e,n;return t.Db&32||(n=(e=u(jn(t,16),29),fr(e||t.ii())-fr(t.ii())),n!=0&&fk(t,32,Vt(aa,Ln,1,n,5,1))),t}function fk(t,e,n){var r;t.Db&e?n==null?fxn(t,e):(r=vot(t,e),r==-1?t.Eb=n:ls(nw(t.Eb),r,n)):n!=null&&Pkn(t,e,n)}function Dwn(t,e,n,r){var s,o;e.c.length!=0&&(s=C6n(n,r),o=S5n(e),ms(Pq(new ln(null,new gn(o,1)),new r6),new ine(t,n,s,r)))}function Mwn(t,e){var n,r,s,o;return r=t.a.length-1,n=e-t.b&r,o=t.c-e&r,s=t.c-t.b&r,nZt(n=o?(Lbn(t,e),-1):(Abn(t,e),1)}function xH(t){var e,n,r;if(r=t.Jh(),!r)for(e=0,n=t.Ph();n;n=n.Ph()){if(++e>uut)return n.Qh();if(r=n.Jh(),r||n==t)break}return r}function Ale(t,e){var n;return $t(e)===$t(t)?!0:!Lt(e,21)||(n=u(e,21),n.gc()!=t.gc())?!1:t.Ic(n)}function Iwn(t,e){return t.ee.e?1:t.fe.f?1:$i(t)-$i(e)}function kH(t,e){return Wn(t),e==null?!1:hn(t,e)?!0:t.length==e.length&&hn(t.toLowerCase(),e.toLowerCase())}function Mg(t){var e,n;return $c(t,-129)>0&&$c(t,128)<0?(Ite(),e=qr(t)+128,n=g9t[e],!n&&(n=g9t[e]=new Cr(t)),n):new Cr(t)}function lw(){lw=V,x3=new B$(r0,0),ACt=new B$("INSIDE_PORT_SIDE_GROUPS",1),uft=new B$("GROUP_MODEL_ORDER",2),lft=new B$(J8t,3)}function Own(t){var e;return t.b||Srn(t,(e=Can(t.e,t.a),!e||!hn(jlt,L1((!e.b&&(e.b=new Ul((wn(),wo),Mc,e)),e.b),"qualified")))),t.c}function Nwn(t,e){var n,r;for(n=(qn(e,t.length),t.charCodeAt(e)),r=e+1;r2e3&&(Vve=t,IU=b.setTimeout(Mrn,10))),MU++==0?(K0n((uwt(),i9t)),!0):!1}function Wwn(t,e,n){var r;(fye?(Q2n(t),!0):dye||pye?(xE(),!0):gye&&(xE(),!1))&&(r=new UZt(e),r.b=n,n4n(t,r))}function tot(t,e){var n;n=!t.A.Hc((Yl(),qw))||t.q==(ka(),hu),t.u.Hc((wl(),Hg))?n?BCn(t,e):Tpe(t,e):t.u.Hc(g2)&&(n?rCn(t,e):jpe(t,e))}function Nle(t){var e;$t(ne(t,(ai(),cx)))===$t((Ag(),IK))&&(Ji(t)?(e=u(ne(Ji(t),cx),346),Mi(t,cx,e)):Mi(t,cx,bL))}function Ywn(t){var e,n;return qi(t.d.i,(De(),OT))?(e=u(X(t.c.i,OT),17),n=u(X(t.d.i,OT),17),jc(e.a,n.a)>0):!1}function Ple(t,e,n){return new Ah(b.Math.min(t.a,e.a)-n/2,b.Math.min(t.b,e.b)-n/2,b.Math.abs(t.a-e.a)+n,b.Math.abs(t.b-e.b)+n)}function Fle(t){var e;this.d=new fe,this.j=new Sa,this.g=new Sa,e=t.g.b,this.f=u(X(Pa(e),(De(),ph)),88),this.e=Rt(Ht(SH(e,O3)))}function Ble(t){this.d=new fe,this.e=new kp,this.c=Vt(Fr,ii,28,(ve(),lt(ut(bo,1),qc,64,0,[bc,Hn,Jn,Er,Gn])).length,15,1),this.b=t}function sxt(t,e,n){var r;switch(r=n[t.g][e],t.g){case 1:case 3:return new ae(0,r);case 2:case 4:return new ae(r,0);default:return null}}function Rle(t,e,n){var r,s;s=u(_I(e.f),205);try{s.rf(t,n),Hee(e.f,s)}catch(o){throw o=es(o),Lt(o,103)?(r=o,at(r)):at(o)}}function jle(t,e,n){var r,s,o,h,d,m;return r=null,d=Ykt(e7(),e),o=null,d&&(s=null,m=Kkt(d,n),h=null,m!=null&&(h=t.qf(d,m)),s=h,o=s),r=o,r}function eot(t,e,n,r){var s;if(s=t.length,e>=s)return s;for(e=e>0?e:0;er&&ls(e,r,null),e}function $le(t,e){var n,r;for(r=t.a.length,e.lengthr&&ls(e,r,null),e}function C7(t,e){var n,r;if(++t.j,e!=null&&(n=(r=t.a.Cb,Lt(r,99)?u(r,99).th():null),txn(e,n))){fk(t.a,4,n);return}fk(t.a,4,u(e,129))}function Xwn(t){var e;if(t==null)return null;if(e=e6n(su(t,!0)),e==null)throw at(new trt("Invalid hexBinary value: '"+t+"'"));return e}function EH(t,e,n){var r;e.a.length>0&&(ge(t.b,new ote(e.a,n)),r=e.a.length,0r&&(e.a+=uJt(Vt(Yh,Zd,28,-r,15,1))))}function zle(t,e,n){var r,s,o;if(!n[e.d])for(n[e.d]=!0,s=new G(s5(e));s.a=t.b>>1)for(r=t.c,n=t.b;n>e;--n)r=r.b;else for(r=t.a.a,n=0;n=0?t.Wh(s):Vot(t,r)):n<0?Vot(t,r):u(r,69).wk().Bk(t,t.hi(),n)}function Ule(t){var e,n,r;for(r=(!t.o&&(t.o=new nl((zc(),X0),Qp,t,0)),t.o),n=r.c.Kc();n.e!=n.i.gc();)e=u(n.Yj(),44),e.md();return RI(r)}function Se(t){var e;if(Lt(t.a,4)){if(e=nxt(t.a),e==null)throw at(new Ro(gwe+t.b+"'. "+dwe+(wg(UP),UP.k)+lTt));return e}else return t.a}function imn(t,e){var n,r;if(t.j.length!=e.j.length)return!1;for(n=0,r=t.j.length;n=64&&e<128&&(s=T1(s,Rf(1,e-64)));return s}function SH(t,e){var n,r;return r=null,qi(t,(ai(),Zk))&&(n=u(X(t,Zk),96),n.pf(e)&&(r=n.of(e))),r==null&&Pa(t)&&(r=X(Pa(t),e)),r}function smn(t,e){var n;return n=u(X(t,(De(),Vo)),75),eit(e,d4e)?n?nh(n):(n=new Qu,Zt(t,Vo,n)):n&&Zt(t,Vo,null),n}function b_(){b_=V,cCt=(ai(),$Mt),Xht=yMt,f3e=sx,oCt=Yp,b3e=(RH(),$9t),p3e=R9t,w3e=q9t,g3e=B9t,d3e=(Mat(),iCt),Yht=u3e,aCt=l3e,HU=h3e}function _H(t){switch(Iwt(),this.c=new fe,this.d=t,t.g){case 0:case 2:this.a=$yt(_Ct),this.b=Zi;break;case 3:case 1:this.a=_Ct,this.b=Vs}}function amn(t){var e;q6(u(X(t,(De(),bs)),101))&&(e=t.b,N1e((vn(0,e.c.length),u(e.c[0],30))),N1e(u(Oe(e,e.c.length-1),30)))}function omn(t,e){e.Ug("Self-Loop post-processing",1),ms(_i(_i(fc(new ln(null,new gn(t.b,16)),new RQ),new jQ),new $Q),new KB),e.Vg()}function Gle(t,e,n){var r,s;if(t.c)Su(t.c,t.c.i+e),_u(t.c,t.c.j+n);else for(s=new G(t.b);s.a=0&&(n.d=t.t);break;case 3:t.t>=0&&(n.a=t.t)}t.C&&(n.b=t.C.b,n.c=t.C.c)}function w_(){w_=V,DAt=new GM(y7t,0),y1t=new GM(qut,1),x1t=new GM("LINEAR_SEGMENTS",2),zA=new GM("BRANDES_KOEPF",3),qA=new GM(q2e,4)}function m_(){m_=V,HN=new P$(_V,0),zU=new P$(kut,1),qU=new P$(Eut,2),VN=new P$(Tut,3),HN.a=!1,zU.a=!0,qU.a=!1,VN.a=!0}function dk(){dk=V,$N=new N$(_V,0),jN=new N$(kut,1),zN=new N$(Eut,2),qN=new N$(Tut,3),$N.a=!1,jN.a=!0,zN.a=!1,qN.a=!0}function gk(t,e,n,r){var s;return n>=0?t.Sh(e,n,r):(t.Ph()&&(r=(s=t.Fh(),s>=0?t.Ah(r):t.Ph().Th(t,-1-s,null,r))),t.Ch(e,n,r))}function axt(t,e){switch(e){case 7:!t.e&&(t.e=new kn(Ts,t,7,4)),Ir(t.e);return;case 8:!t.d&&(t.d=new kn(Ts,t,8,5)),Ir(t.d);return}K5t(t,e)}function Mi(t,e,n){return n==null?(!t.o&&(t.o=new nl((zc(),X0),Qp,t,0)),yH(t.o,e)):(!t.o&&(t.o=new nl((zc(),X0),Qp,t,0)),SO(t.o,e,n)),t}function Xle(t,e){mn();var n,r,s,o;for(n=t,o=e,Lt(t,21)&&!Lt(e,21)&&(n=e,o=t),s=n.Kc();s.Ob();)if(r=s.Pb(),o.Hc(r))return!1;return!0}function fmn(t,e,n,r){if(e.an.b)return!0}return!1}function aot(t,e){return ba(t)?!!Bve[e]:t.Sm?!!t.Sm[e]:Cy(t)?!!Fve[e]:Ty(t)?!!Pve[e]:!1}function dmn(t){var e;e=t.a;do e=u(dr(new rr(sr(ua(e).a.Kc(),new z))),18).c.i,e.k==(Un(),fa)&&t.b.Fc(e);while(e.k==(Un(),fa));t.b=Bh(t.b)}function Qle(t,e){var n,r,s;for(s=t,r=new rr(sr(ua(e).a.Kc(),new z));Mr(r);)n=u(dr(r),18),n.c.i.c&&(s=b.Math.max(s,n.c.i.c.p));return s}function gmn(t,e){var n,r,s;for(s=0,r=u(u(Ai(t.r,e),21),87).Kc();r.Ob();)n=u(r.Pb(),117),s+=n.d.d+n.b.Mf().b+n.d.a,r.Ob()&&(s+=t.w);return s}function pmn(t,e){var n,r,s;for(s=0,r=u(u(Ai(t.r,e),21),87).Kc();r.Ob();)n=u(r.Pb(),117),s+=n.d.b+n.b.Mf().a+n.d.c,r.Ob()&&(s+=t.w);return s}function Jle(t){var e,n,r,s;if(r=0,s=n3(t),s.c.length==0)return 1;for(n=new G(s);n.a=0?t.Lh(h,n,!0):tv(t,o,n)):u(o,69).wk().yk(t,t.hi(),s,n,r)}function vmn(t,e,n,r){var s,o;o=e.pf((ai(),ux))?u(e.of(ux),21):t.j,s=r2n(o),s!=(yV(),Uht)&&(n&&!Z5t(s)||h6t(n6n(t,s,r),e))}function ymn(t){switch(t.g){case 1:return Gm(),RN;case 3:return Gm(),BN;case 2:return Gm(),Kht;case 4:return Gm(),Ght;default:return null}}function xmn(t,e,n){if(t.e)switch(t.b){case 1:hhn(t.c,e,n);break;case 0:fhn(t.c,e,n)}else vie(t.c,e,n);t.a[e.p][n.p]=t.c.i,t.a[n.p][e.p]=t.c.e}function Zle(t){var e,n;if(t==null)return null;for(n=Vt(V0,ue,199,t.length,0,2),e=0;e=0)return s;if(t.ol()){for(r=0;r=s)throw at(new Dy(e,s));if(t.Si()&&(r=t.dd(n),r>=0&&r!=e))throw at(new zn(AN));return t.Xi(e,n)}function oxt(t,e){if(this.a=u(Hr(t),253),this.b=u(Hr(e),253),t.Ed(e)>0||t==(Knt(),xht)||e==(Wnt(),kht))throw at(new zn("Invalid range: "+kie(t,e)))}function the(t){var e,n;for(this.b=new fe,this.c=t,this.a=!1,n=new G(t.a);n.a0),(e&-e)==e)return Ys(e*Dl(t,31)*4656612873077393e-25);do n=Dl(t,31),r=n%e;while(n-r+(e-1)<0);return Ys(r)}function _mn(t,e,n){switch(n.g){case 1:t.a=e.a/2,t.b=0;break;case 2:t.a=e.a,t.b=e.b/2;break;case 3:t.a=e.a/2,t.b=e.b;break;case 4:t.a=0,t.b=e.b/2}}function xO(t,e,n,r){var s,o;for(s=e;s1&&(o=Emn(t,e)),o}function rhe(t){var e;return e=Rt(Ht(ne(t,(ai(),MP))))*b.Math.sqrt((!t.a&&(t.a=new Jt(bi,t,10,11)),t.a).i),new ae(e,e/Rt(Ht(ne(t,DK))))}function cot(t){var e;return t.f&&t.f.Vh()&&(e=u(t.f,54),t.f=u(jb(t,e),84),t.f!=e&&t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,9,8,e,t.f))),t.f}function uot(t){var e;return t.i&&t.i.Vh()&&(e=u(t.i,54),t.i=u(jb(t,e),84),t.i!=e&&t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,9,7,e,t.i))),t.i}function yo(t){var e;return t.b&&t.b.Db&64&&(e=t.b,t.b=u(jb(t,e),19),t.b!=e&&t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,9,21,e,t.b))),t.b}function IH(t,e){var n,r,s;t.d==null?(++t.e,++t.f):(r=e.Bi(),X6n(t,t.f+1),s=(r&xi)%t.d.length,n=t.d[s],!n&&(n=t.d[s]=t.dk()),n.Fc(e),++t.f)}function lxt(t,e,n){var r;return e.tk()?!1:e.Ik()!=-2?(r=e.ik(),r==null?n==null:Ti(r,n)):e.qk()==t.e.Dh()&&n==null}function OH(){var t;oh(16,pbe),t=zoe(16),this.b=Vt(Tht,iN,302,t,0,1),this.c=Vt(Tht,iN,302,t,0,1),this.a=null,this.e=null,this.i=0,this.f=t-1,this.g=0}function Ig(t){bvt.call(this),this.k=(Un(),xs),this.j=(oh(6,c3),new wu(6)),this.b=(oh(2,c3),new wu(2)),this.d=new qnt,this.f=new Q2t,this.a=t}function Lmn(t){var e,n;t.c.length<=1||(e=c0e(t,(ve(),Er)),Wfe(t,u(e.a,17).a,u(e.b,17).a),n=c0e(t,Gn),Wfe(t,u(n.a,17).a,u(n.b,17).a))}function Dmn(t,e,n){var r,s;for(s=t.a.b,r=s.c.length;r102?-1:t<=57?t-48:t<65?-1:t<=70?t-65+10:t<97?-1:t-97+10}function got(t,e){if(t==null)throw at(new A6("null key in entry: null="+e));if(e==null)throw at(new A6("null value in entry: "+t+"=null"))}function Omn(t,e){for(var n,r;t.Ob();)if(!e.Ob()||(n=t.Pb(),r=e.Pb(),!($t(n)===$t(r)||n!=null&&Ti(n,r))))return!1;return!e.Ob()}function ahe(t,e){var n;return n=lt(ut(ma,1),No,28,15,[Oat(t.a[0],e),Oat(t.a[1],e),Oat(t.a[2],e)]),t.d&&(n[0]=b.Math.max(n[0],n[2]),n[2]=n[0]),n}function ohe(t,e){var n;return n=lt(ut(ma,1),No,28,15,[oH(t.a[0],e),oH(t.a[1],e),oH(t.a[2],e)]),t.d&&(n[0]=b.Math.max(n[0],n[2]),n[2]=n[0]),n}function fxt(t,e,n){q6(u(X(e,(De(),bs)),101))||(S3t(t,e,Pp(e,n)),S3t(t,e,Pp(e,(ve(),Er))),S3t(t,e,Pp(e,Hn)),mn(),Ds(e.j,new dUt(t)))}function che(t){var e,n;for(t.c||JTn(t),n=new Qu,e=new G(t.a),et(e);e.a0&&(qn(0,e.length),e.charCodeAt(0)==43)?(qn(1,e.length+1),e.substr(1)):e))}function Kmn(t){var e;return t==null?null:new Sb((e=su(t,!0),e.length>0&&(qn(0,e.length),e.charCodeAt(0)==43)?(qn(1,e.length+1),e.substr(1)):e))}function gxt(t,e,n,r,s,o,h,d){var m,k;r&&(m=r.a[0],m&&gxt(t,e,n,m,s,o,h,d),Eot(t,n,r.d,s,o,h,d)&&e.Fc(r),k=r.a[1],k&&gxt(t,e,n,k,s,o,h,d))}function u5(t,e,n){try{return vm(iat(t,e,n),1)}catch(r){throw r=es(r),Lt(r,333)?at(new Bo(Cut+t.o+"*"+t.p+Sut+e+ao+n+_ut)):at(r)}}function dhe(t,e,n){try{return vm(iat(t,e,n),0)}catch(r){throw r=es(r),Lt(r,333)?at(new Bo(Cut+t.o+"*"+t.p+Sut+e+ao+n+_ut)):at(r)}}function ghe(t,e,n){try{return vm(iat(t,e,n),2)}catch(r){throw r=es(r),Lt(r,333)?at(new Bo(Cut+t.o+"*"+t.p+Sut+e+ao+n+_ut)):at(r)}}function phe(t,e){if(t.g==-1)throw at(new Xu);t.Xj();try{t.d.hd(t.g,e),t.f=t.d.j}catch(n){throw n=es(n),Lt(n,77)?at(new Th):at(n)}}function Wmn(t){var e,n,r,s,o;for(r=new G(t.b);r.ao&&ls(e,o,null),e}function Ymn(t,e){var n,r;if(r=t.gc(),e==null){for(n=0;n0&&(m+=s),k[T]=h,h+=d*(m+r)}function whe(t){var e,n,r;for(r=t.f,t.n=Vt(ma,No,28,r,15,1),t.d=Vt(ma,No,28,r,15,1),e=0;e0?t.c:0),++s;t.b=r,t.d=o}function khe(t,e){var n;return n=lt(ut(ma,1),No,28,15,[uxt(t,(A1(),Ac),e),uxt(t,xu,e),uxt(t,Lc,e)]),t.f&&(n[0]=b.Math.max(n[0],n[2]),n[2]=n[0]),n}function rvn(t,e,n){var r;try{cV(t,e+t.j,n+t.k,!1,!0)}catch(s){throw s=es(s),Lt(s,77)?(r=s,at(new Bo(r.g+LV+e+ao+n+")."))):at(s)}}function ivn(t,e,n){var r;try{cV(t,e+t.j,n+t.k,!0,!1)}catch(s){throw s=es(s),Lt(s,77)?(r=s,at(new Bo(r.g+LV+e+ao+n+")."))):at(s)}}function Ehe(t){var e;qi(t,(De(),Tv))&&(e=u(X(t,Tv),21),e.Hc((e3(),Qf))?(e.Mc(Qf),e.Fc(Jf)):e.Hc(Jf)&&(e.Mc(Jf),e.Fc(Qf)))}function The(t){var e;qi(t,(De(),Tv))&&(e=u(X(t,Tv),21),e.Hc((e3(),t1))?(e.Mc(t1),e.Fc(bf)):e.Hc(bf)&&(e.Mc(bf),e.Fc(t1)))}function yot(t,e,n,r){var s,o,h,d;return t.a==null&&a4n(t,e),h=e.b.j.c.length,o=n.d.p,d=r.d.p,s=d-1,s<0&&(s=h-1),o<=s?t.a[s]-t.a[o]:t.a[h-1]-t.a[o]+t.a[s]}function svn(t){var e,n;if(!t.b)for(t.b=hq(u(t.f,27).kh().i),n=new Zn(u(t.f,27).kh());n.e!=n.i.gc();)e=u(ar(n),135),ge(t.b,new Qnt(e));return t.b}function avn(t){var e,n;if(!t.e)for(t.e=hq(Jit(u(t.f,27)).i),n=new Zn(Jit(u(t.f,27)));n.e!=n.i.gc();)e=u(ar(n),123),ge(t.e,new wGt(e));return t.e}function Che(t){var e,n;if(!t.a)for(t.a=hq(Jz(u(t.f,27)).i),n=new Zn(Jz(u(t.f,27)));n.e!=n.i.gc();)e=u(ar(n),27),ge(t.a,new sit(t,e));return t.a}function Jm(t){var e;if(!t.C&&(t.D!=null||t.B!=null))if(e=K9n(t),e)t.hl(e);else try{t.hl(null)}catch(n){if(n=es(n),!Lt(n,63))throw at(n)}return t.C}function ovn(t){switch(t.q.g){case 5:Yhe(t,(ve(),Hn)),Yhe(t,Er);break;case 4:Jge(t,(ve(),Hn)),Jge(t,Er);break;default:t1e(t,(ve(),Hn)),t1e(t,Er)}}function cvn(t){switch(t.q.g){case 5:Xhe(t,(ve(),Jn)),Xhe(t,Gn);break;case 4:Zge(t,(ve(),Jn)),Zge(t,Gn);break;default:e1e(t,(ve(),Jn)),e1e(t,Gn)}}function l5(t,e){var n,r,s;for(s=new Sa,r=t.Kc();r.Ob();)n=u(r.Pb(),36),B7(n,s.a,0),s.a+=n.f.a+e,s.b=b.Math.max(s.b,n.f.b);return s.b>0&&(s.b+=e),s}function FH(t,e){var n,r,s;for(s=new Sa,r=t.Kc();r.Ob();)n=u(r.Pb(),36),B7(n,0,s.b),s.b+=n.f.b+e,s.a=b.Math.max(s.a,n.f.a);return s.a>0&&(s.a+=e),s}function She(t){var e,n,r;for(r=xi,n=new G(t.a);n.a>16==6?t.Cb.Th(t,5,F1,e):(r=yo(u(En((n=u(jn(t,16),29),n||t.ii()),t.Db>>16),19)),t.Cb.Th(t,r.n,r.f,e))}function uvn(t){$E();var e=t.e;if(e&&e.stack){var n=e.stack,r=e+` +`;return n.substring(0,r.length)==r&&(n=n.substring(r.length)),n.split(` +`)}return[]}function lvn(t){var e;return e=(Doe(),Yve),e[t>>>28]|e[t>>24&15]<<4|e[t>>20&15]<<8|e[t>>16&15]<<12|e[t>>12&15]<<16|e[t>>8&15]<<20|e[t>>4&15]<<24|e[t&15]<<28}function Lhe(t){var e,n,r;t.b==t.c&&(r=t.a.length,n=W4t(b.Math.max(8,r))<<1,t.b!=0?(e=Ff(t.a,n),Uoe(t,e,r),t.a=e,t.b=0):wy(t.a,n),t.c=r)}function hvn(t,e){var n;return n=t.b,n.pf((ai(),Pl))?n.ag()==(ve(),Gn)?-n.Mf().a-Rt(Ht(n.of(Pl))):e+Rt(Ht(n.of(Pl))):n.ag()==(ve(),Gn)?-n.Mf().a:e}function EO(t){var e;return t.b.c.length!=0&&u(Oe(t.b,0),72).a?u(Oe(t.b,0),72).a:(e=Zit(t),e??""+(t.c?Xo(t.c.a,t,0):-1))}function BH(t){var e;return t.f.c.length!=0&&u(Oe(t.f,0),72).a?u(Oe(t.f,0),72).a:(e=Zit(t),e??""+(t.i?Xo(t.i.j,t,0):-1))}function fvn(t,e){var n,r;if(e<0||e>=t.gc())return null;for(n=e;n0?t.c:0),s=b.Math.max(s,e.d),++r;t.e=o,t.b=s}function gvn(t){var e,n;if(!t.b)for(t.b=hq(u(t.f,123).kh().i),n=new Zn(u(t.f,123).kh());n.e!=n.i.gc();)e=u(ar(n),135),ge(t.b,new Qnt(e));return t.b}function pvn(t,e){var n,r,s;if(e.dc())return _E(),_E(),GP;for(n=new fZt(t,e.gc()),s=new Zn(t);s.e!=s.i.gc();)r=ar(s),e.Hc(r)&&Or(n,r);return n}function mxt(t,e,n,r){return e==0?r?(!t.o&&(t.o=new nl((zc(),X0),Qp,t,0)),t.o):(!t.o&&(t.o=new nl((zc(),X0),Qp,t,0)),RI(t.o)):AH(t,e,n,r)}function kot(t){var e,n;if(t.rb)for(e=0,n=t.rb.i;e>22),s+=r>>22,s<0)?!1:(t.l=n&Il,t.m=r&Il,t.h=s&Fg,!0)}function Eot(t,e,n,r,s,o,h){var d,m;return!(e.Te()&&(m=t.a.Ne(n,r),m<0||!s&&m==0)||e.Ue()&&(d=t.a.Ne(n,o),d>0||!h&&d==0))}function vvn(t,e){g7();var n;if(n=t.j.g-e.j.g,n!=0)return 0;switch(t.j.g){case 2:return Hat(e,ySt)-Hat(t,ySt);case 4:return Hat(t,vSt)-Hat(e,vSt)}return 0}function yvn(t){switch(t.g){case 0:return Oft;case 1:return Nft;case 2:return Pft;case 3:return Fft;case 4:return kG;case 5:return Bft;default:return null}}function qo(t,e,n){var r,s;return r=(s=new Unt,uw(s,e),mu(s,n),Or((!t.c&&(t.c=new Jt(Ov,t,12,10)),t.c),s),s),Sp(r,0),Hy(r,1),Mp(r,!0),Dp(r,!0),r}function pk(t,e){var n,r;if(e>=t.i)throw at(new Grt(e,t.i));return++t.j,n=t.g[e],r=t.i-e-1,r>0&&Xc(t.g,e+1,t.g,e,r),ls(t.g,--t.i,null),t.Qi(e,n),t.Ni(),n}function Dhe(t,e){var n,r;return t.Db>>16==17?t.Cb.Th(t,21,mf,e):(r=yo(u(En((n=u(jn(t,16),29),n||t.ii()),t.Db>>16),19)),t.Cb.Th(t,r.n,r.f,e))}function xvn(t){var e,n,r,s;for(mn(),Ds(t.c,t.a),s=new G(t.c);s.an.a.c.length))throw at(new zn("index must be >= 0 and <= layer node count"));t.c&&zu(t.c.a,t),t.c=n,n&&Sm(n.a,e,t)}function Phe(t,e){var n,r,s;for(r=new rr(sr(Dg(t).a.Kc(),new z));Mr(r);)return n=u(dr(r),18),s=u(e.Kb(n),10),new FC(Hr(s.n.b+s.o.b/2));return UC(),UC(),yht}function Fhe(t,e){this.c=new _r,this.a=t,this.b=e,this.d=u(X(t,(oe(),G5)),312),$t(X(t,(De(),iAt)))===$t((qI(),EG))?this.e=new MKt:this.e=new DKt}function y_(t,e){var n,r;return r=null,t.pf((ai(),Zk))&&(n=u(t.of(Zk),96),n.pf(e)&&(r=n.of(e))),r==null&&t.Tf()&&(r=t.Tf().of(e)),r==null&&(r=Se(e)),r}function Tot(t,e){var n,r;n=t.fd(e);try{return r=n.Pb(),n.Qb(),r}catch(s){throw s=es(s),Lt(s,112)?at(new Bo("Can't remove element "+e)):at(s)}}function Lvn(t,e){var n,r,s;if(r=new x$,s=new Q4t(r.q.getFullYear()-Wb,r.q.getMonth(),r.q.getDate()),n=$7n(t,e,s),n==0||n0?e:0),++n;return new ae(r,s)}function Ext(t,e){var n,r;return t.Db>>16==6?t.Cb.Th(t,6,Ts,e):(r=yo(u(En((n=u(jn(t,16),29),n||(zc(),$K)),t.Db>>16),19)),t.Cb.Th(t,r.n,r.f,e))}function Txt(t,e){var n,r;return t.Db>>16==7?t.Cb.Th(t,1,zP,e):(r=yo(u(En((n=u(jn(t,16),29),n||(zc(),SIt)),t.Db>>16),19)),t.Cb.Th(t,r.n,r.f,e))}function Cxt(t,e){var n,r;return t.Db>>16==9?t.Cb.Th(t,9,bi,e):(r=yo(u(En((n=u(jn(t,16),29),n||(zc(),AIt)),t.Db>>16),19)),t.Cb.Th(t,r.n,r.f,e))}function jhe(t,e){var n,r;return t.Db>>16==5?t.Cb.Th(t,9,YK,e):(r=yo(u(En((n=u(jn(t,16),29),n||(wn(),Zp)),t.Db>>16),19)),t.Cb.Th(t,r.n,r.f,e))}function $he(t,e){var n,r;return t.Db>>16==7?t.Cb.Th(t,6,F1,e):(r=yo(u(En((n=u(jn(t,16),29),n||(wn(),eb)),t.Db>>16),19)),t.Cb.Th(t,r.n,r.f,e))}function Sxt(t,e){var n,r;return t.Db>>16==3?t.Cb.Th(t,0,HP,e):(r=yo(u(En((n=u(jn(t,16),29),n||(wn(),Jp)),t.Db>>16),19)),t.Cb.Th(t,r.n,r.f,e))}function zhe(){this.a=new WR,this.g=new OH,this.j=new OH,this.b=new _r,this.d=new OH,this.i=new OH,this.k=new _r,this.c=new _r,this.e=new _r,this.f=new _r}function Ivn(t,e,n){var r,s,o;for(n<0&&(n=0),o=t.i,s=n;suut)return _7(t,r);if(r==t)return!0}}return!1}function Nvn(t){switch(hz(),t.q.g){case 5:T1e(t,(ve(),Hn)),T1e(t,Er);break;case 4:Cde(t,(ve(),Hn)),Cde(t,Er);break;default:Ape(t,(ve(),Hn)),Ape(t,Er)}}function Pvn(t){switch(hz(),t.q.g){case 5:H1e(t,(ve(),Jn)),H1e(t,Gn);break;case 4:Kle(t,(ve(),Jn)),Kle(t,Gn);break;default:Lpe(t,(ve(),Jn)),Lpe(t,Gn)}}function Fvn(t){var e,n;e=u(X(t,(Vf(),N3e)),17),e?(n=e.a,n==0?Zt(t,(Pb(),WU),new Kat):Zt(t,(Pb(),WU),new pq(n))):Zt(t,(Pb(),WU),new pq(1))}function Bvn(t,e){var n;switch(n=t.i,e.g){case 1:return-(t.n.b+t.o.b);case 2:return t.n.a-n.o.a;case 3:return t.n.b-n.o.b;case 4:return-(t.n.a+t.o.a)}return 0}function Rvn(t,e){switch(t.g){case 0:return e==(Rh(),s2)?gG:pG;case 1:return e==(Rh(),s2)?gG:YN;case 2:return e==(Rh(),s2)?YN:pG;default:return YN}}function CO(t,e){var n,r,s;for(zu(t.a,e),t.e-=e.r+(t.a.c.length==0?0:t.c),s=O7t,r=new G(t.a);r.a>16==3?t.Cb.Th(t,12,bi,e):(r=yo(u(En((n=u(jn(t,16),29),n||(zc(),CIt)),t.Db>>16),19)),t.Cb.Th(t,r.n,r.f,e))}function Axt(t,e){var n,r;return t.Db>>16==11?t.Cb.Th(t,10,bi,e):(r=yo(u(En((n=u(jn(t,16),29),n||(zc(),_It)),t.Db>>16),19)),t.Cb.Th(t,r.n,r.f,e))}function qhe(t,e){var n,r;return t.Db>>16==10?t.Cb.Th(t,11,mf,e):(r=yo(u(En((n=u(jn(t,16),29),n||(wn(),tb)),t.Db>>16),19)),t.Cb.Th(t,r.n,r.f,e))}function Hhe(t,e){var n,r;return t.Db>>16==10?t.Cb.Th(t,12,vf,e):(r=yo(u(En((n=u(jn(t,16),29),n||(wn(),K3)),t.Db>>16),19)),t.Cb.Th(t,r.n,r.f,e))}function of(t){var e;return!(t.Bb&1)&&t.r&&t.r.Vh()&&(e=u(t.r,54),t.r=u(jb(t,e),142),t.r!=e&&t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,9,8,e,t.r))),t.r}function Cot(t,e,n){var r;return r=lt(ut(ma,1),No,28,15,[t6t(t,(A1(),Ac),e,n),t6t(t,xu,e,n),t6t(t,Lc,e,n)]),t.f&&(r[0]=b.Math.max(r[0],r[2]),r[2]=r[0]),r}function jvn(t,e){var n,r,s;if(s=umn(t,e),s.c.length!=0)for(Ds(s,new Z9),n=s.c.length,r=0;r>19,k=e.h>>19,m!=k?k-m:(s=t.h,d=e.h,s!=d?s-d:(r=t.m,h=e.m,r!=h?r-h:(n=t.l,o=e.l,n-o)))}function RH(){RH=V,H9t=(aV(),Hht),q9t=new un(_8t,H9t),z9t=(Mq(),qht),$9t=new un(A8t,z9t),j9t=(TH(),zht),R9t=new un(L8t,j9t),B9t=new un(D8t,(Pn(),!0))}function x_(t,e,n){var r,s;r=e*n,Lt(t.g,154)?(s=ek(t),s.f.d?s.f.a||(t.d.a+=r+gd):(t.d.d-=r+gd,t.d.a+=r+gd)):Lt(t.g,10)&&(t.d.d-=r,t.d.a+=2*r)}function Vhe(t,e,n){var r,s,o,h,d;for(s=t[n.g],d=new G(e.d);d.a0?t.b:0),++n;e.b=r,e.e=s}function Uhe(t){var e,n,r;if(r=t.b,FYt(t.i,r.length)){for(n=r.length*2,t.b=Vt(Tht,iN,302,n,0,1),t.c=Vt(Tht,iN,302,n,0,1),t.f=n-1,t.i=0,e=t.a;e;e=e.c)NO(t,e,e);++t.g}}function Gvn(t,e,n,r){var s,o,h,d;for(s=0;sh&&(d=h/r),s>o&&(m=o/s),qd(t,b.Math.min(d,m)),t}function Wvn(){fV();var t,e;try{if(e=u(jxt((Eb(),yf),hT),2113),e)return e}catch(n){if(n=es(n),Lt(n,103))t=n,Ayt((Ur(),t));else throw at(n)}return new W8}function Yvn(){fV();var t,e;try{if(e=u(jxt((Eb(),yf),hf),2040),e)return e}catch(n){if(n=es(n),Lt(n,103))t=n,Ayt((Ur(),t));else throw at(n)}return new l6}function Xvn(){eae();var t,e;try{if(e=u(jxt((Eb(),yf),Cw),2122),e)return e}catch(n){if(n=es(n),Lt(n,103))t=n,Ayt((Ur(),t));else throw at(n)}return new Z8}function Qvn(t,e,n){var r,s;return s=t.e,t.e=e,t.Db&4&&!(t.Db&1)&&(r=new ha(t,1,4,s,e),n?n.nj(r):n=r),s!=e&&(e?n=H7(t,QH(t,e),n):n=H7(t,t.a,n)),n}function Ghe(){x$.call(this),this.e=-1,this.a=!1,this.p=Ga,this.k=-1,this.c=-1,this.b=-1,this.g=!1,this.f=-1,this.j=-1,this.n=-1,this.i=-1,this.d=-1,this.o=Ga}function Jvn(t,e){var n,r,s;if(r=t.b.d.d,t.a||(r+=t.b.d.a),s=e.b.d.d,e.a||(s+=e.b.d.a),n=Bi(r,s),n==0){if(!t.a&&e.a)return-1;if(!e.a&&t.a)return 1}return n}function Zvn(t,e){var n,r,s;if(r=t.b.b.d,t.a||(r+=t.b.b.a),s=e.b.b.d,e.a||(s+=e.b.b.a),n=Bi(r,s),n==0){if(!t.a&&e.a)return-1;if(!e.a&&t.a)return 1}return n}function tyn(t,e){var n,r,s;if(r=t.b.g.d,t.a||(r+=t.b.g.a),s=e.b.g.d,e.a||(s+=e.b.g.a),n=Bi(r,s),n==0){if(!t.a&&e.a)return-1;if(!e.a&&t.a)return 1}return n}function Dxt(){Dxt=V,J3e=el(ri(ri(ri(new Fs,(Ua(),cu),(Za(),sSt)),cu,aSt),Zo,oSt),Zo,WCt),t4e=ri(ri(new Fs,cu,zCt),cu,YCt),Z3e=el(new Fs,Zo,QCt)}function eyn(t){var e,n,r,s,o;for(e=u(X(t,(oe(),MA)),85),o=t.n,r=e.Cc().Kc();r.Ob();)n=u(r.Pb(),314),s=n.i,s.c+=o.a,s.d+=o.b,n.c?f0e(n):d0e(n);Zt(t,MA,null)}function nyn(t,e,n){var r,s;switch(s=t.b,r=s.d,e.g){case 1:return-r.d-n;case 2:return s.o.a+r.c+n;case 3:return s.o.b+r.a+n;case 4:return-r.b-n;default:return-1}}function ryn(t,e,n){var r,s;for(n.Ug("Interactive node placement",1),t.a=u(X(e,(oe(),G5)),312),s=new G(e.b);s.a0&&(h=(o&xi)%t.d.length,s=I6t(t,h,o,e),s)?(d=s.nd(n),d):(r=t.ck(o,e,n),t.c.Fc(r),null)}function Oxt(t,e){var n,r,s,o;switch(Lp(t,e).Kl()){case 3:case 2:{for(n=v5(e),s=0,o=n.i;s=0;r--)if(hn(t[r].d,e)||hn(t[r].d,n)){t.length>=r+1&&t.splice(0,r+1);break}return t}function _O(t,e){var n;return ec(t)&&ec(e)&&(n=t/e,oN0&&(t.b+=2,t.a+=r):(t.b+=1,t.a+=b.Math.min(r,s))}function Zhe(t){var e;e=u(X(u(jh(t.b,0),39),(Cc(),SLt)),107),Zt(t,(ji(),zT),new ae(0,0)),U0e(new FI,t,e.b+e.c-Rt(Ht(X(t,R1t))),e.d+e.a-Rt(Ht(X(t,j1t))))}function tfe(t,e){var n,r;if(r=!1,ba(e)&&(r=!0,Y6(t,new Oy(Gr(e)))),r||Lt(e,242)&&(r=!0,Y6(t,(n=_vt(u(e,242)),new cE(n)))),!r)throw at(new Znt(LTt))}function yyn(t,e,n,r){var s,o,h;return s=new Tg(t.e,1,10,(h=e.c,Lt(h,90)?u(h,29):(wn(),xf)),(o=n.c,Lt(o,90)?u(o,29):(wn(),xf)),Np(t,e),!1),r?r.nj(s):r=s,r}function Fxt(t){var e,n;switch(u(X(Pa(t),(De(),Q_t)),429).g){case 0:return e=t.n,n=t.o,new ae(e.a+n.a/2,e.b+n.b/2);case 1:return new io(t.n);default:return null}}function AO(){AO=V,TG=new uS(r0,0),FSt=new uS("LEFTUP",1),RSt=new uS("RIGHTUP",2),PSt=new uS("LEFTDOWN",3),BSt=new uS("RIGHTDOWN",4),Rft=new uS("BALANCED",5)}function xyn(t,e,n){var r,s,o;if(r=Bi(t.a[e.p],t.a[n.p]),r==0){if(s=u(X(e,(oe(),Uk)),15),o=u(X(n,Uk),15),s.Hc(n))return-1;if(o.Hc(e))return 1}return r}function kyn(t){switch(t.g){case 1:return new mtt;case 2:return new vtt;case 3:return new wtt;case 0:return null;default:throw at(new zn(Clt+(t.f!=null?t.f:""+t.g)))}}function Bxt(t,e,n){switch(e){case 1:!t.n&&(t.n=new Jt(Po,t,1,7)),Ir(t.n),!t.n&&(t.n=new Jt(Po,t,1,7)),gs(t.n,u(n,16));return;case 2:n7(t,Gr(n));return}r5t(t,e,n)}function Rxt(t,e,n){switch(e){case 3:zm(t,Rt(Ht(n)));return;case 4:qm(t,Rt(Ht(n)));return;case 5:Su(t,Rt(Ht(n)));return;case 6:_u(t,Rt(Ht(n)));return}Bxt(t,e,n)}function jH(t,e,n){var r,s,o;o=(r=new Unt,r),s=hd(o,e,null),s&&s.oj(),mu(o,n),Or((!t.c&&(t.c=new Jt(Ov,t,12,10)),t.c),o),Sp(o,0),Hy(o,1),Mp(o,!0),Dp(o,!0)}function jxt(t,e){var n,r,s;return n=iS(t.i,e),Lt(n,241)?(s=u(n,241),s.zi()==null,s.wi()):Lt(n,507)?(r=u(n,2037),s=r.b,s):null}function Eyn(t,e,n,r){var s,o;return Hr(e),Hr(n),o=u(_S(t.d,e),17),_ae(!!o,"Row %s not in %s",e,t.e),s=u(_S(t.b,n),17),_ae(!!s,"Column %s not in %s",n,t.c),Rce(t,o.a,s.a,r)}function efe(t,e,n,r,s,o,h){var d,m,k,T,A;if(T=s[o],k=o==h-1,d=k?r:0,A=yhe(d,T),r!=10&<(ut(t,h-o),e[o],n[o],d,A),!k)for(++o,m=0;m1||d==-1?(o=u(m,15),s.Wb(awn(t,o))):s.Wb(lct(t,u(m,58)))))}function Dyn(t,e,n,r){hYt();var s=vht;function o(){for(var h=0;h0)return!1;return!0}function Oyn(t){var e,n,r,s,o;for(r=new sw(new mr(t.b).a);r.b;)n=Um(r),e=u(n.ld(),10),o=u(u(n.md(),42).a,10),s=u(u(n.md(),42).b,8),ki(k1(e.n),ki(Oa(o.n),s))}function Nyn(t){switch(u(X(t.b,(De(),V_t)),387).g){case 1:ms(Wo(fc(new ln(null,new gn(t.d,16)),new WD),new y4),new vJ);break;case 2:L8n(t);break;case 0:o5n(t)}}function Pyn(t,e,n){var r,s,o;for(r=n,!r&&(r=new S6),r.Ug("Layout",t.a.c.length),o=new G(t.a);o.axlt)return n;s>-1e-6&&++n}return n}function zxt(t,e){var n;e!=t.b?(n=null,t.b&&(n=nq(t.b,t,-4,n)),e&&(n=gk(e,t,-4,n)),n=Mue(t,e,n),n&&n.oj()):t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,3,e,e))}function ife(t,e){var n;e!=t.f?(n=null,t.f&&(n=nq(t.f,t,-1,n)),e&&(n=gk(e,t,-1,n)),n=Due(t,e,n),n&&n.oj()):t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,0,e,e))}function jyn(t,e,n,r){var s,o,h,d;return Hl(t.e)&&(s=e.Lk(),d=e.md(),o=n.md(),h=Ib(t,1,s,d,o,s.Jk()?$7(t,s,o,Lt(s,102)&&(u(s,19).Bb&po)!=0):-1,!0),r?r.nj(h):r=h),r}function sfe(t){var e,n,r;if(t==null)return null;if(n=u(t,15),n.dc())return"";for(r=new dp,e=n.Kc();e.Ob();)Mo(r,(Ni(),Gr(e.Pb()))),r.a+=" ";return Wrt(r,r.a.length-1)}function afe(t){var e,n,r;if(t==null)return null;if(n=u(t,15),n.dc())return"";for(r=new dp,e=n.Kc();e.Ob();)Mo(r,(Ni(),Gr(e.Pb()))),r.a+=" ";return Wrt(r,r.a.length-1)}function $yn(t,e,n){var r,s;return r=t.c[e.c.p][e.p],s=t.c[n.c.p][n.p],r.a!=null&&s.a!=null?Fit(r.a,s.a):r.a!=null?-1:s.a!=null?1:0}function zyn(t,e,n){return n.Ug("Tree layout",1),EI(t.b),E1(t.b,(bk(),sK),sK),E1(t.b,WA,WA),E1(t.b,YA,YA),E1(t.b,XA,XA),t.a=XO(t.b,e),Pyn(t,e,n.eh(1)),n.Vg(),e}function qyn(t,e){var n,r,s,o,h,d;if(e)for(o=e.a.length,n=new W2(o),d=(n.b-n.a)*n.c<0?(Tb(),y2):new _b(n);d.Ob();)h=u(d.Pb(),17),s=qE(e,h.a),r=new _Gt(t),Xln(r.a,s)}function Hyn(t,e){var n,r,s,o,h,d;if(e)for(o=e.a.length,n=new W2(o),d=(n.b-n.a)*n.c<0?(Tb(),y2):new _b(n);d.Ob();)h=u(d.Pb(),17),s=qE(e,h.a),r=new mGt(t),Yln(r.a,s)}function Vyn(t){var e;if(t!=null&&t.length>0&&Va(t,t.length-1)==33)try{return e=pde(Lh(t,0,t.length-1)),e.e==null}catch(n){if(n=es(n),!Lt(n,33))throw at(n)}return!1}function Uyn(t,e,n){var r,s,o;switch(r=Pa(e),s=fH(r),o=new Yc,hc(o,e),n.g){case 1:Xs(o,bO(hk(s)));break;case 2:Xs(o,hk(s))}return Zt(o,(De(),D3),Ht(X(t,D3))),o}function qxt(t){var e,n;return e=u(dr(new rr(sr(ua(t.a).a.Kc(),new z))),18),n=u(dr(new rr(sr(_s(t.a).a.Kc(),new z))),18),Ie(Me(X(e,(oe(),vd))))||Ie(Me(X(n,vd)))}function Qy(){Qy=V,XN=new HM("ONE_SIDE",0),mG=new HM("TWO_SIDES_CORNER",1),vG=new HM("TWO_SIDES_OPPOSING",2),wG=new HM("THREE_SIDES",3),bG=new HM("FOUR_SIDES",4)}function ofe(t,e){var n,r,s,o;for(o=new fe,s=0,r=e.Kc();r.Ob();){for(n=he(u(r.Pb(),17).a+s);n.a=t.f)break;In(o.c,n)}return o}function Gyn(t,e){var n,r,s,o,h;for(o=new G(e.a);o.a0&&Mhe(this,this.c-1,(ve(),Jn)),this.c0&&t[0].length>0&&(this.c=Ie(Me(X(Pa(t[0][0]),(oe(),ZSt))))),this.a=Vt(nke,ue,2117,t.length,0,2),this.b=Vt(rke,ue,2118,t.length,0,2),this.d=new Cue}function Qyn(t){return t.c.length==0?!1:(vn(0,t.c.length),u(t.c[0],18)).c.i.k==(Un(),fa)?!0:t5(Wo(new ln(null,new gn(t,16)),new WJ),new YJ)}function lfe(t,e){var n,r,s,o,h,d,m;for(d=n3(e),o=e.f,m=e.g,h=b.Math.sqrt(o*o+m*m),s=0,r=new G(d);r.a=0?(n=_O(t,EV),r=mO(t,EV)):(e=Ab(t,1),n=_O(e,5e8),r=mO(e,5e8),r=Qa(Rf(r,1),sa(t,1))),T1(Rf(r,32),sa(n,So))}function dfe(t,e,n){var r,s;switch(r=(ur(e.b!=0),u(Oh(e,e.a.a),8)),n.g){case 0:r.b=0;break;case 2:r.b=t.f;break;case 3:r.a=0;break;default:r.a=t.g}return s=Dr(e,0),kI(s,r),e}function gfe(t,e,n,r){var s,o,h,d,m;switch(m=t.b,o=e.d,h=o.j,d=sxt(h,m.d[h.g],n),s=ki(Oa(o.n),o.a),o.j.g){case 1:case 3:d.a+=s.a;break;case 2:case 4:d.b+=s.b}hs(r,d,r.c.b,r.c)}function u3n(t,e,n){var r,s,o,h;for(h=Xo(t.e,e,0),o=new W2t,o.b=n,r=new La(t.e,h);r.b1;e>>=1)e&1&&(r=Z4(r,n)),n.d==1?n=Z4(n,n):n=new Dle(Q0e(n.a,n.d,Vt(Fr,ii,28,n.d<<1,15,1)));return r=Z4(r,n),r}function Qxt(){Qxt=V;var t,e,n,r;for(L9t=Vt(ma,No,28,25,15,1),D9t=Vt(ma,No,28,33,15,1),r=152587890625e-16,e=32;e>=0;e--)D9t[e]=r,r*=.5;for(n=1,t=24;t>=0;t--)L9t[t]=n,n*=.5}function p3n(t){var e,n;if(Ie(Me(ne(t,(De(),L3))))){for(n=new rr(sr(Og(t).a.Kc(),new z));Mr(n);)if(e=u(dr(n),74),Zm(e)&&Ie(Me(ne(e,Mw))))return!0}return!1}function pfe(t,e){var n,r,s;qs(t.f,e)&&(e.b=t,r=e.c,Xo(t.j,r,0)!=-1||ge(t.j,r),s=e.d,Xo(t.j,s,0)!=-1||ge(t.j,s),n=e.a.b,n.c.length!=0&&(!t.i&&(t.i=new Fle(t)),ypn(t.i,n)))}function b3n(t){var e,n,r,s,o;return n=t.c.d,r=n.j,s=t.d.d,o=s.j,r==o?n.p=0&&hn(t.substr(e,3),"GMT")||e>=0&&hn(t.substr(e,3),"UTC"))&&(n[0]=e+3),Lkt(t,n,r)}function m3n(t,e){var n,r,s,o,h;for(o=t.g.a,h=t.g.b,r=new G(t.d);r.an;o--)t[o]|=e[o-n-1]>>>h,t[o-1]=e[o-n-1]<0&&Xc(t.g,e,t.g,e+r,d),h=n.Kc(),t.i+=r,s=0;s>4&15,o=t[r]&15,h[s++]=LIt[n],h[s++]=LIt[o];return af(h,0,h.length)}function Hu(t){var e,n;return t>=po?(e=cN+(t-po>>10&1023)&js,n=56320+(t-po&1023)&js,String.fromCharCode(e)+(""+String.fromCharCode(n))):String.fromCharCode(t&js)}function L3n(t,e){Ay();var n,r,s,o;return s=u(u(Ai(t.r,e),21),87),s.gc()>=2?(r=u(s.Kc().Pb(),117),n=t.u.Hc((wl(),yL)),o=t.u.Hc(n8),!r.a&&!n&&(s.gc()==2||o)):!1}function mfe(t,e,n,r,s){var o,h,d;for(o=i0e(t,e,n,r,s),d=!1;!o;)YH(t,s,!0),d=!0,o=i0e(t,e,n,r,s);d&&YH(t,s,!1),h=mat(s),h.c.length!=0&&(t.d&&t.d.Gg(h),mfe(t,s,n,r,h))}function HH(){HH=V,Gdt=new dS(r0,0),ZMt=new dS("DIRECTED",1),eIt=new dS("UNDIRECTED",2),QMt=new dS("ASSOCIATION",3),tIt=new dS("GENERALIZATION",4),JMt=new dS("DEPENDENCY",5)}function D3n(t,e){var n;if(!ed(t))throw at(new Ro(Pwe));switch(n=ed(t),e.g){case 1:return-(t.j+t.f);case 2:return t.i-n.g;case 3:return t.j-n.f;case 4:return-(t.i+t.g)}return 0}function M3n(t,e,n){var r,s,o;return r=e.Lk(),o=e.md(),s=r.Jk()?Ib(t,4,r,o,null,$7(t,r,o,Lt(r,102)&&(u(r,19).Bb&po)!=0),!0):Ib(t,r.tk()?2:1,r,o,r.ik(),-1,!0),n?n.nj(s):n=s,n}function D7(t,e){var n,r;for(Wn(e),r=t.b.c.length,ge(t.b,e);r>0;){if(n=r,r=(r-1)/2|0,t.a.Ne(Oe(t.b,r),e)<=0)return Mh(t.b,n,e),!0;Mh(t.b,n,Oe(t.b,r))}return Mh(t.b,r,e),!0}function t6t(t,e,n,r){var s,o;if(s=0,n)s=oH(t.a[n.g][e.g],r);else for(o=0;o=d)}function vfe(t){switch(t.g){case 0:return new Stt;case 1:return new _tt;default:throw at(new zn("No implementation is available for the width approximator "+(t.f!=null?t.f:""+t.g)))}}function e6t(t,e,n,r){var s;if(s=!1,ba(r)&&(s=!0,ME(e,n,Gr(r))),s||Ty(r)&&(s=!0,e6t(t,e,n,r)),s||Lt(r,242)&&(s=!0,Q2(e,n,u(r,242))),!s)throw at(new Znt(LTt))}function O3n(t,e){var n,r,s;if(n=e.qi(t.a),n&&(s=L1((!n.b&&(n.b=new Ul((wn(),wo),Mc,n)),n.b),lf),s!=null)){for(r=1;r<(il(),ZIt).length;++r)if(hn(ZIt[r],s))return r}return 0}function N3n(t,e){var n,r,s;if(n=e.qi(t.a),n&&(s=L1((!n.b&&(n.b=new Ul((wn(),wo),Mc,n)),n.b),lf),s!=null)){for(r=1;r<(il(),tOt).length;++r)if(hn(tOt[r],s))return r}return 0}function yfe(t,e){var n,r,s,o;if(Wn(e),o=t.a.gc(),o0?1:0;o.a[s]!=n;)o=o.a[s],s=t.a.Ne(n.d,o.d)>0?1:0;o.a[s]=r,r.b=n.b,r.a[0]=n.a[0],r.a[1]=n.a[1],n.a[0]=null,n.a[1]=null}function B3n(t){var e,n,r,s;for(e=new fe,n=Vt(Fl,$0,28,t.a.c.length,16,1),Eyt(n,n.length),s=new G(t.a);s.a0&&K0e((vn(0,n.c.length),u(n.c[0],30)),t),n.c.length>1&&K0e(u(Oe(n,n.c.length-1),30),t),e.Vg()}function j3n(t){wl();var e,n;return e=Hi(Hg,lt(ut(OK,1),te,279,0,[g2])),!(tO(iq(e,t))>1||(n=Hi(yL,lt(ut(OK,1),te,279,0,[vL,n8])),tO(iq(n,t))>1))}function r6t(t,e){var n;n=nu((Eb(),yf),t),Lt(n,507)?jo(yf,t,new fQt(this,e)):jo(yf,t,this),Fot(this,e),e==(bE(),zIt)?(this.wb=u(this,2038),u(e,2040)):this.wb=(Lb(),Fn)}function $3n(t){var e,n,r;if(t==null)return null;for(e=null,n=0;n=Rp?"error":r>=900?"warn":r>=800?"info":"log"),Oee(n,t.a),t.b&&ikt(e,n,t.b,"Exception: ",!0))}function X(t,e){var n,r;return r=(!t.q&&(t.q=new _r),tr(t.q,e)),r??(n=e.Sg(),Lt(n,4)&&(n==null?(!t.q&&(t.q=new _r),rk(t.q,e)):(!t.q&&(t.q=new _r),hi(t.q,e,n))),n)}function Ua(){Ua=V,Wf=new qM("P1_CYCLE_BREAKING",0),H0=new qM("P2_LAYERING",1),Qc=new qM("P3_NODE_ORDERING",2),cu=new qM("P4_NODE_PLACEMENT",3),Zo=new qM("P5_EDGE_ROUTING",4)}function z3n(t,e){YS();var n;if(t.c==e.c){if(t.b==e.b||Wgn(t.b,e.b)){if(n=vin(t.b)?1:-1,t.a&&!e.a)return n;if(!t.a&&e.a)return-n}return jc(t.b.g,e.b.g)}else return Bi(t.c,e.c)}function Cfe(t,e){var n,r,s;if(s6t(t,e))return!0;for(r=new G(e);r.a=s||e<0)throw at(new Bo(Zlt+e+Ew+s));if(n>=s||n<0)throw at(new Bo(tht+n+Ew+s));return e!=n?r=(o=t.Cj(n),t.qj(e,o),o):r=t.xj(n),r}function Afe(t){var e,n,r;if(r=t,t)for(e=0,n=t.Eh();n;n=n.Eh()){if(++e>uut)return Afe(n);if(r=n,n==t)throw at(new Ro("There is a cycle in the containment hierarchy of "+t))}return r}function Hb(t){var e,n,r;for(r=new aw(ao,"[","]"),n=t.Kc();n.Ob();)e=n.Pb(),Eg(r,$t(e)===$t(t)?"(this Collection)":e==null?Vu:rc(e));return r.a?r.e.length==0?r.a.a:r.a.a+(""+r.e):r.c}function s6t(t,e){var n,r;if(r=!1,e.gc()<2)return!1;for(n=0;n1&&(t.j.b+=t.e)):(t.j.a+=n.a,t.j.b=b.Math.max(t.j.b,n.b),t.d.c.length>1&&(t.j.a+=t.e))}function Vb(){Vb=V,$4e=lt(ut(bo,1),qc,64,0,[(ve(),Hn),Jn,Er]),j4e=lt(ut(bo,1),qc,64,0,[Jn,Er,Gn]),z4e=lt(ut(bo,1),qc,64,0,[Er,Gn,Hn]),q4e=lt(ut(bo,1),qc,64,0,[Gn,Hn,Jn])}function H3n(t,e,n,r){var s,o,h,d,m,k,T;if(h=t.c.d,d=t.d.d,h.j!=d.j)for(T=t.b,s=h.j,m=null;s!=d.j;)m=e==0?hH(s):C5t(s),o=sxt(s,T.d[s.g],n),k=sxt(m,T.d[m.g],n),Zr(r,ki(o,k)),s=m}function V3n(t,e,n,r){var s,o,h,d,m;return h=Ihe(t.a,e,n),d=u(h.a,17).a,o=u(h.b,17).a,r&&(m=u(X(e,(oe(),ml)),10),s=u(X(n,ml),10),m&&s&&(vie(t.b,m,s),d+=t.b.i,o+=t.b.e)),d>o}function Dfe(t){var e,n,r,s,o,h,d,m,k;for(this.a=Zle(t),this.b=new fe,n=t,r=0,s=n.length;rhit(t.d).c?(t.i+=t.g.c,Qat(t.d)):hit(t.d).c>hit(t.g).c?(t.e+=t.d.c,Qat(t.g)):(t.i+=zte(t.g),t.e+=zte(t.d),Qat(t.g),Qat(t.d))}function W3n(t,e,n){var r,s,o,h;for(o=e.q,h=e.r,new J2((C1(),o2),e,o,1),new J2(o2,o,h,1),s=new G(n);s.ad&&(m=d/r),s>o&&(k=o/s),h=b.Math.min(m,k),t.a+=h*(e.a-t.a),t.b+=h*(e.b-t.b)}function J3n(t,e,n,r,s){var o,h;for(h=!1,o=u(Oe(n.b,0),27);_7n(t,e,o,r,s)&&(h=!0,Ayn(n,o),n.b.c.length!=0);)o=u(Oe(n.b,0),27);return n.b.c.length==0&&CO(n.j,n),h&&PH(e.q),h}function Z3n(t,e){w5();var n,r,s,o;if(e.b<2)return!1;for(o=Dr(e,0),n=u(Ar(o),8),r=n;o.b!=o.d.c;){if(s=u(Ar(o),8),Jot(t,r,s))return!0;r=s}return!!Jot(t,r,n)}function o6t(t,e,n,r){var s,o;return n==0?(!t.o&&(t.o=new nl((zc(),X0),Qp,t,0)),pz(t.o,e,r)):(o=u(En((s=u(jn(t,16),29),s||t.ii()),n),69),o.wk().Ak(t,Au(t),n-fr(t.ii()),e,r))}function Fot(t,e){var n;e!=t.sb?(n=null,t.sb&&(n=u(t.sb,54).Th(t,1,EL,n)),e&&(n=u(e,54).Rh(t,1,EL,n)),n=v5t(t,e,n),n&&n.oj()):t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,4,e,e))}function t4n(t,e){var n,r,s,o;if(e)s=_g(e,"x"),n=new TGt(t),XE(n.a,(Wn(s),s)),o=_g(e,"y"),r=new CGt(t),JE(r.a,(Wn(o),o));else throw at(new Rd("All edge sections need an end point."))}function e4n(t,e){var n,r,s,o;if(e)s=_g(e,"x"),n=new xGt(t),QE(n.a,(Wn(s),s)),o=_g(e,"y"),r=new kGt(t),ZE(r.a,(Wn(o),o));else throw at(new Rd("All edge sections need a start point."))}function n4n(t,e){var n,r,s,o,h,d,m;for(r=aue(t),o=0,d=r.length;o>22-e,s=t.h<>22-e):e<44?(n=0,r=t.l<>44-e):(n=0,r=0,s=t.l<t)throw at(new zn("k must be smaller than n"));return e==0||e==t?1:t==0?0:Nxt(t)/(Nxt(e)*Nxt(t-e))}function c6t(t,e){var n,r,s,o;for(n=new Tmt(t);n.g==null&&!n.c?n3t(n):n.g==null||n.i!=0&&u(n.g[n.i-1],51).Ob();)if(o=u(XH(n),58),Lt(o,167))for(r=u(o,167),s=0;s>4],e[n*2+1]=tW[o&15];return af(e,0,e.length)}function m4n(t){Gz();var e,n,r;switch(r=t.c.length,r){case 0:return Rve;case 1:return e=u(m1e(new G(t)),44),hun(e.ld(),e.md());default:return n=u(ld(t,Vt(Sw,xV,44,t.c.length,0,1)),173),new owt(n)}}function v4n(t){var e,n,r,s,o,h;for(e=new K4,n=new K4,Ob(e,t),Ob(n,t);n.b!=n.c;)for(s=u(K6(n),36),h=new G(s.a);h.a0&&VO(t,n,e),s):oxn(t,e,n)}function Ub(){Ub=V,H8e=(ai(),Jk),V8e=$w,j8e=jw,$8e=lx,z8e=l2,R8e=ux,GLt=LP,q8e=j3,tdt=(xkt(),_8e),edt=A8e,WLt=I8e,ndt=P8e,YLt=O8e,XLt=N8e,KLt=L8e,dK=D8e,gK=M8e,wP=F8e,QLt=B8e,ULt=S8e}function Rfe(t,e){var n,r,s,o,h;if(t.e<=e||Hfn(t,t.g,e))return t.g;for(o=t.r,r=t.g,h=t.r,s=(o-r)/2+r;r+11&&(t.e.b+=t.a)):(t.e.a+=n.a,t.e.b=b.Math.max(t.e.b,n.b),t.d.c.length>1&&(t.e.a+=t.a))}function T4n(t){var e,n,r,s;switch(s=t.i,e=s.b,r=s.j,n=s.g,s.a.g){case 0:n.a=(t.g.b.o.a-r.a)/2;break;case 1:n.a=e.d.n.a+e.d.a.a;break;case 2:n.a=e.d.n.a+e.d.a.a-r.a;break;case 3:n.b=e.d.n.b+e.d.a.b}}function C4n(t,e,n){var r,s,o;for(s=new rr(sr(Dg(n).a.Kc(),new z));Mr(s);)r=u(dr(s),18),!go(r)&&!(!go(r)&&r.c.i.c==r.d.i.c)&&(o=Lde(t,r,n,new IKt),o.c.length>1&&In(e.c,o))}function $fe(t,e,n,r,s){if(rr&&(t.a=r),t.bs&&(t.b=s),t}function S4n(t){if(Lt(t,143))return rkn(u(t,143));if(Lt(t,233))return K2n(u(t,233));if(Lt(t,23))return i4n(u(t,23));throw at(new zn(DTt+Hb(new hl(lt(ut(aa,1),Ln,1,5,[t])))))}function _4n(t,e,n,r,s){var o,h,d;for(o=!0,h=0;h>>s|n[h+r+1]<>>s,++h}return o}function f6t(t,e,n,r){var s,o,h;if(e.k==(Un(),fa)){for(o=new rr(sr(ua(e).a.Kc(),new z));Mr(o);)if(s=u(dr(o),18),h=s.c.i.k,h==fa&&t.c.a[s.c.i.c.p]==r&&t.c.a[e.c.p]==n)return!0}return!1}function A4n(t,e){var n,r,s,o;return e&=63,n=t.h&Fg,e<22?(o=n>>>e,s=t.m>>e|n<<22-e,r=t.l>>e|t.m<<22-e):e<44?(o=0,s=n>>>e-22,r=t.m>>e-22|t.h<<44-e):(o=0,s=0,r=n>>>e-44),Eu(r&Il,s&Il,o&Fg)}function zfe(t,e,n,r){var s;this.b=r,this.e=t==(Hm(),UA),s=e[n],this.d=G2(Fl,[ue,$0],[183,28],16,[s.length,s.length],2),this.a=G2(Fr,[ue,ii],[53,28],15,[s.length,s.length],2),this.c=new Kxt(e,n)}function L4n(t){var e,n,r;for(t.k=new s3t((ve(),lt(ut(bo,1),qc,64,0,[bc,Hn,Jn,Er,Gn])).length,t.j.c.length),r=new G(t.j);r.a=n)return I7(t,e,r.p),!0;return!1}function d5(t,e,n,r){var s,o,h,d,m,k;for(h=n.length,o=0,s=-1,k=Nae((qn(e,t.length+1),t.substr(e)),(bit(),_9t)),d=0;do&&nln(k,Nae(n[d],_9t))&&(s=d,o=m);return s>=0&&(r[0]=e+o),s}function Hfe(t){var e;return t.Db&64?Bot(t):(e=new eh(vTt),!t.a||ni(ni((e.a+=' "',e),t.a),'"'),ni(pm(ni(pm(ni(pm(ni(pm((e.a+=" (",e),t.i),","),t.j)," | "),t.g),","),t.f),")"),e.a)}function Vfe(t,e,n){var r,s,o,h,d;for(d=Lu(t.e.Dh(),e),s=u(t.g,124),r=0,h=0;hn?x6t(t,n,"start index"):e<0||e>n?x6t(e,n,"end index"):M_("end index (%s) must not be less than start index (%s)",lt(ut(aa,1),Ln,1,5,[he(e),he(t)]))}function Gfe(t,e){var n,r,s,o;for(r=0,s=t.length;r0&&Kfe(t,o,n));e.p=0}function He(t){var e;this.c=new Ki,this.f=t.e,this.e=t.d,this.i=t.g,this.d=t.c,this.b=t.b,this.k=t.j,this.a=t.a,t.i?this.j=t.i:this.j=(e=u(y1(G0),9),new _h(e,u(Ff(e,e.length),9),0)),this.g=t.f}function P4n(t){var e,n,r,s;for(e=Db(ni(new eh("Predicates."),"and"),40),n=!0,s=new gr(t);s.b0?d[h-1]:Vt(V0,jp,10,0,0,1),s=d[h],k=h=0?t.ki(s):C6t(t,r);else throw at(new zn(Jb+r.xe()+aA));else throw at(new zn(Gwe+e+Kwe));else Ph(t,n,r)}function d6t(t){var e,n;if(n=null,e=!1,Lt(t,211)&&(e=!0,n=u(t,211).a),e||Lt(t,263)&&(e=!0,n=""+u(t,263).a),e||Lt(t,492)&&(e=!0,n=""+u(t,492).a),!e)throw at(new Znt(LTt));return n}function g6t(t,e,n){var r,s,o,h,d,m;for(m=Lu(t.e.Dh(),e),r=0,d=t.i,s=u(t.g,124),h=0;h=t.d.b.c.length&&(e=new eu(t.d),e.p=r.p-1,ge(t.d.b,e),n=new eu(t.d),n.p=r.p,ge(t.d.b,n)),Aa(r,u(Oe(t.d.b,r.p),30))}function w6t(t,e,n){var r,s,o;if(!t.b[e.g]){for(t.b[e.g]=!0,r=n,!r&&(r=new FI),Zr(r.b,e),o=t.a[e.g].Kc();o.Ob();)s=u(o.Pb(),65),s.b!=e&&w6t(t,s.b,r),s.c!=e&&w6t(t,s.c,r),Zr(r.a,s);return r}return null}function j4n(t){switch(t.g){case 0:case 1:case 2:return ve(),Hn;case 3:case 4:case 5:return ve(),Er;case 6:case 7:case 8:return ve(),Gn;case 9:case 10:case 11:return ve(),Jn;default:return ve(),bc}}function $4n(t,e){var n;return t.c.length==0?!1:(n=hle((vn(0,t.c.length),u(t.c[0],18)).c.i),rh(),n==(Yy(),J5)||n==Q5?!0:t5(Wo(new ln(null,new gn(t,16)),new XJ),new MUt(e)))}function zot(t,e){if(Lt(e,207))return Nin(t,u(e,27));if(Lt(e,193))return Pin(t,u(e,123));if(Lt(e,451))return Oin(t,u(e,166));throw at(new zn(DTt+Hb(new hl(lt(ut(aa,1),Ln,1,5,[e])))))}function Zfe(t,e,n){var r,s;if(this.f=t,r=u(tr(t.b,e),260),s=r?r.a:0,P3t(n,s),n>=(s/2|0))for(this.e=r?r.c:null,this.d=s;n++0;)s4t(this);this.b=e,this.a=null}function z4n(t,e){var n,r;e.a?xkn(t,e):(n=u(lrt(t.b,e.b),60),n&&n==t.a[e.b.f]&&n.a&&n.a!=e.b.a&&n.c.Fc(e.b),r=u(urt(t.b,e.b),60),r&&t.a[r.f]==e.b&&r.a&&r.a!=e.b.a&&e.b.c.Fc(r),rit(t.b,e.b))}function t1e(t,e){var n,r;if(n=u(Io(t.b,e),127),u(u(Ai(t.r,e),21),87).dc()){n.n.b=0,n.n.c=0;return}n.n.b=t.C.b,n.n.c=t.C.c,t.A.Hc((Yl(),qw))&&_0e(t,e),r=pmn(t,e),tct(t,e)==(o5(),f2)&&(r+=2*t.w),n.a.a=r}function e1e(t,e){var n,r;if(n=u(Io(t.b,e),127),u(u(Ai(t.r,e),21),87).dc()){n.n.d=0,n.n.a=0;return}n.n.d=t.C.d,n.n.a=t.C.a,t.A.Hc((Yl(),qw))&&A0e(t,e),r=gmn(t,e),tct(t,e)==(o5(),f2)&&(r+=2*t.w),n.a.b=r}function q4n(t,e){var n,r,s,o;for(o=new fe,r=new G(e);r.ar&&(qn(e-1,t.length),t.charCodeAt(e-1)<=32);)--e;return r>0||en.a&&(r.Hc((fw(),cL))?s=(e.a-n.a)/2:r.Hc(uL)&&(s=e.a-n.a)),e.b>n.b&&(r.Hc((fw(),hL))?o=(e.b-n.b)/2:r.Hc(lL)&&(o=e.b-n.b)),n6t(t,s,o)}function u1e(t,e,n,r,s,o,h,d,m,k,T,A,P){Lt(t.Cb,90)&&t3(_l(u(t.Cb,90)),4),mu(t,n),t.f=h,v7(t,d),x7(t,m),m7(t,k),y7(t,T),Mp(t,A),k7(t,P),Dp(t,!0),Sp(t,s),t.Zk(o),uw(t,e),r!=null&&(t.i=null,Gq(t,r))}function x6t(t,e,n){if(t<0)return M_(abe,lt(ut(aa,1),Ln,1,5,[n,he(t)]));if(e<0)throw at(new zn(obe+e));return M_("%s (%s) must not be greater than size (%s)",lt(ut(aa,1),Ln,1,5,[n,he(t),he(e)]))}function k6t(t,e,n,r,s,o){var h,d,m,k;if(h=r-n,h<7){F2n(e,n,r,o);return}if(m=n+s,d=r+s,k=m+(d-m>>1),k6t(e,t,m,k,-s,o),k6t(e,t,k,d,-s,o),o.Ne(t[k-1],t[k])<=0){for(;n=0?t.bi(o,n):J6t(t,s,n);else throw at(new zn(Jb+s.xe()+aA));else throw at(new zn(Gwe+e+Kwe));else Fh(t,r,s,n)}function l1e(t){var e,n;if(t.f){for(;t.n>0;){if(e=u(t.k.Xb(t.n-1),76),n=e.Lk(),Lt(n,102)&&u(n,19).Bb&Fc&&(!t.e||n.pk()!=QT||n.Lj()!=0)&&e.md()!=null)return!0;--t.n}return!1}else return t.n>0}function h1e(t){var e,n,r,s;if(n=u(t,54)._h(),n)try{if(r=null,e=N7((Eb(),yf),X0e(W2n(n))),e&&(s=e.ai(),s&&(r=s.Fl(Ynn(n.e)))),r&&r!=t)return h1e(r)}catch(o){if(o=es(o),!Lt(o,63))throw at(o)}return t}function i5n(t,e,n){var r,s,o;n.Ug("Remove overlaps",1),n.dh(e,I7t),r=u(ne(e,(Y4(),ex)),27),t.f=r,t.a=oot(u(ne(e,(Ub(),wP)),299)),s=Ht(ne(e,(ai(),$w))),St(t,(Wn(s),s)),o=n3(r),mpe(t,e,o,n),n.dh(e,iU)}function s5n(t){var e,n,r;if(Ie(Me(ne(t,(ai(),_P))))){for(r=new fe,n=new rr(sr(Og(t).a.Kc(),new z));Mr(n);)e=u(dr(n),74),Zm(e)&&Ie(Me(ne(e,Ndt)))&&In(r.c,e);return r}else return mn(),mn(),co}function f1e(t){if(!t)return hWt(),Kve;var e=t.valueOf?t.valueOf():t;if(e!==t){var n=Lht[typeof e];return n?n(e):f5t(typeof e)}else return t instanceof Array||t instanceof b.Array?new Xj(t):new uE(t)}function d1e(t,e,n){var r,s,o;switch(o=t.o,r=u(Io(t.p,n),252),s=r.i,s.b=FO(r),s.a=PO(r),s.b=b.Math.max(s.b,o.a),s.b>o.a&&!e&&(s.b=o.a),s.c=-(s.b-o.a)/2,n.g){case 1:s.d=-s.a;break;case 3:s.d=o.b}dct(r),gct(r)}function g1e(t,e,n){var r,s,o;switch(o=t.o,r=u(Io(t.p,n),252),s=r.i,s.b=FO(r),s.a=PO(r),s.a=b.Math.max(s.a,o.b),s.a>o.b&&!e&&(s.a=o.b),s.d=-(s.a-o.b)/2,n.g){case 4:s.c=-s.b;break;case 2:s.c=o.a}dct(r),gct(r)}function a5n(t,e){var n,r,s,o,h;if(!e.dc()){if(s=u(e.Xb(0),131),e.gc()==1){Ude(t,s,s,1,0,e);return}for(n=1;n0)try{s=lh(e,Ga,xi)}catch(o){throw o=es(o),Lt(o,130)?(r=o,at(new _q(r))):at(o)}return n=(!t.a&&(t.a=new Bnt(t)),t.a),s=0?u(Dt(n,s),58):null}function l5n(t,e){if(t<0)return M_(abe,lt(ut(aa,1),Ln,1,5,["index",he(t)]));if(e<0)throw at(new zn(obe+e));return M_("%s (%s) must be less than size (%s)",lt(ut(aa,1),Ln,1,5,["index",he(t),he(e)]))}function h5n(t){var e,n,r,s,o;if(t==null)return Vu;for(o=new aw(ao,"[","]"),n=t,r=0,s=n.length;r=0?t.Lh(n,!0,!0):tv(t,s,!0),160)),u(r,220).Zl(e);else throw at(new zn(Jb+e.xe()+aA))}function S6t(t){var e,n;return t>-0x800000000000&&t<0x800000000000?t==0?0:(e=t<0,e&&(t=-t),n=Ys(b.Math.floor(b.Math.log(t)/.6931471805599453)),(!e||t!=b.Math.pow(2,n))&&++n,n):Dce(Pc(t))}function S5n(t){var e,n,r,s,o,h,d;for(o=new zd,n=new G(t);n.a2&&d.e.b+d.j.b<=2&&(s=d,r=h),o.a.zc(s,o),s.q=r);return o}function _5n(t,e,n){n.Ug("Eades radial",1),n.dh(e,iU),t.d=u(ne(e,(Y4(),ex)),27),t.c=Rt(Ht(ne(e,(Ub(),gK)))),t.e=oot(u(ne(e,wP),299)),t.a=nwn(u(ne(e,QLt),434)),t.b=kyn(u(ne(e,KLt),354)),iyn(t),n.dh(e,iU)}function A5n(t,e){if(e.Ug("Target Width Setter",1),ad(t,(fd(),ddt)))Mi(t,(N0(),B3),Ht(ne(t,ddt)));else throw at(new fp("A target width has to be set if the TargetWidthWidthApproximator should be used."));e.Vg()}function v1e(t,e){var n,r,s;return r=new Ig(t),Qo(r,e),Zt(r,(oe(),MG),e),Zt(r,(De(),bs),(ka(),hu)),Zt(r,u0,(I0(),SK)),y(r,(Un(),Ms)),n=new Yc,hc(n,r),Xs(n,(ve(),Gn)),s=new Yc,hc(s,r),Xs(s,Jn),r}function y1e(t){switch(t.g){case 0:return new Xnt((Hm(),hP));case 1:return new Zet;case 2:return new tnt;default:throw at(new zn("No implementation is available for the crossing minimizer "+(t.f!=null?t.f:""+t.g)))}}function x1e(t,e){var n,r,s,o,h;for(t.c[e.p]=!0,ge(t.a,e),h=new G(e.j);h.a=o)h.$b();else for(s=h.Kc(),r=0;r0?fwt():h<0&&C1e(t,e,-h),!0):!1}function PO(t){var e,n,r,s,o,h,d;if(d=0,t.b==0){for(h=ahe(t,!0),e=0,r=h,s=0,o=r.length;s0&&(d+=n,++e);e>1&&(d+=t.c*(e-1))}else d=EWt(lat(Ny(_i(xyt(t.a),new Ea),new gu)));return d>0?d+t.n.d+t.n.a:0}function FO(t){var e,n,r,s,o,h,d;if(d=0,t.b==0)d=EWt(lat(Ny(_i(xyt(t.a),new Ic),new wc)));else{for(h=ohe(t,!0),e=0,r=h,s=0,o=r.length;s0&&(d+=n,++e);e>1&&(d+=t.c*(e-1))}return d>0?d+t.n.b+t.n.c:0}function P5n(t){var e,n;if(t.c.length!=2)throw at(new Ro("Order only allowed for two paths."));e=(vn(0,t.c.length),u(t.c[0],18)),n=(vn(1,t.c.length),u(t.c[1],18)),e.d.i!=n.c.i&&(t.c.length=0,In(t.c,n),In(t.c,e))}function S1e(t,e,n){var r;for(H4(n,e.g,e.f),Ch(n,e.i,e.j),r=0;r<(!e.a&&(e.a=new Jt(bi,e,10,11)),e.a).i;r++)S1e(t,u(Dt((!e.a&&(e.a=new Jt(bi,e,10,11)),e.a),r),27),u(Dt((!n.a&&(n.a=new Jt(bi,n,10,11)),n.a),r),27))}function F5n(t,e){var n,r,s,o;for(o=u(Io(t.b,e),127),n=o.a,s=u(u(Ai(t.r,e),21),87).Kc();s.Ob();)r=u(s.Pb(),117),r.c&&(n.a=b.Math.max(n.a,Jvt(r.c)));if(n.a>0)switch(e.g){case 2:o.n.c=t.s;break;case 4:o.n.b=t.s}}function B5n(t,e){var n,r,s;return n=u(X(e,(Vf(),jk)),17).a-u(X(t,jk),17).a,n==0?(r=ia(Oa(u(X(t,(Pb(),UN)),8)),u(X(t,TA),8)),s=ia(Oa(u(X(e,UN),8)),u(X(e,TA),8)),Bi(r.a*r.b,s.a*s.b)):n}function R5n(t,e){var n,r,s;return n=u(X(e,(Cc(),uK)),17).a-u(X(t,uK),17).a,n==0?(r=ia(Oa(u(X(t,(ji(),gP)),8)),u(X(t,zT),8)),s=ia(Oa(u(X(e,gP),8)),u(X(e,zT),8)),Bi(r.a*r.b,s.a*s.b)):n}function _1e(t){var e,n;return n=new yb,n.a+="e_",e=Mpn(t),e!=null&&(n.a+=""+e),t.c&&t.d&&(ni((n.a+=" ",n),BH(t.c)),ni(tu((n.a+="[",n),t.c.i),"]"),ni((n.a+=But,n),BH(t.d)),ni(tu((n.a+="[",n),t.d.i),"]")),n.a}function A1e(t){switch(t.g){case 0:return new cnt;case 1:return new rE;case 2:return new ont;case 3:return new ant;default:throw at(new zn("No implementation is available for the layout phase "+(t.f!=null?t.f:""+t.g)))}}function L6t(t,e,n,r,s){var o;switch(o=0,s.g){case 1:o=b.Math.max(0,e.b+t.b-(n.b+r));break;case 3:o=b.Math.max(0,-t.b-r);break;case 2:o=b.Math.max(0,-t.a-r);break;case 4:o=b.Math.max(0,e.a+t.a-(n.a+r))}return o}function j5n(t,e,n){var r,s,o,h,d;if(n)for(s=n.a.length,r=new W2(s),d=(r.b-r.a)*r.c<0?(Tb(),y2):new _b(r);d.Ob();)h=u(d.Pb(),17),o=qE(n,h.a),ETt in o.a||Qlt in o.a?Z8n(t,o,e):mSn(t,o,e),wsn(u(tr(t.b,T7(o)),74))}function D6t(t){var e,n;switch(t.b){case-1:return!0;case 0:return n=t.t,n>1||n==-1?(t.b=-1,!0):(e=of(t),e&&(vo(),e.lk()==Wme)?(t.b=-1,!0):(t.b=1,!1));default:case 1:return!1}}function M6t(t,e){var n,r,s,o;if(wi(t),t.c!=0||t.a!=123)throw at(new Yr(Qr((Ur(),bme))));if(o=e==112,r=t.d,n=TE(t.i,125,r),n<0)throw at(new Yr(Qr((Ur(),wme))));return s=Lh(t.i,r,n),t.d=n+1,Qse(s,o,(t.e&512)==512)}function L1e(t){var e,n,r,s,o,h,d;if(r=t.a.c.length,r>0)for(h=t.c.d,d=t.d.d,s=qd(ia(new ae(d.a,d.b),h),1/(r+1)),o=new ae(h.a,h.b),n=new G(t.a);n.a=0&&r=0?t.Lh(n,!0,!0):tv(t,s,!0),160)),u(r,220).Wl(e);throw at(new zn(Jb+e.xe()+qlt))}function H5n(){Nwt();var t;return ITe?u(N7((Eb(),yf),hf),2038):(ui(Sw,new gM),R9n(),t=u(Lt(nu((Eb(),yf),hf),560)?nu(yf,hf):new Uee,560),ITe=!0,jSn(t),GSn(t),hi((Owt(),$It),t,new K1),jo(yf,hf,t),t)}function V5n(t,e){var n,r,s,o;t.j=-1,Hl(t.e)?(n=t.i,o=t.i!=0,PI(t,e),r=new Tg(t.e,3,t.c,null,e,n,o),s=e.zl(t.e,t.c,null),s=cfe(t,e,s),s?(s.nj(r),s.oj()):Ei(t.e,r)):(PI(t,e),s=e.zl(t.e,t.c,null),s&&s.oj())}function KH(t,e){var n,r,s;if(s=0,r=e[0],r>=t.length)return-1;for(n=(qn(r,t.length),t.charCodeAt(r));n>=48&&n<=57&&(s=s*10+(n-48),++r,!(r>=t.length));)n=(qn(r,t.length),t.charCodeAt(r));return r>e[0]?e[0]=r:s=-1,s}function U5n(t){var e,n,r,s,o;return s=u(t.a,17).a,o=u(t.b,17).a,n=s,r=o,e=b.Math.max(b.Math.abs(s),b.Math.abs(o)),s<=0&&s==o?(n=0,r=o-1):s==-e&&o!=e?(n=o,r=s,o>=0&&++n):(n=-o,r=s),new Ws(he(n),he(r))}function G5n(t,e,n,r){var s,o,h,d,m,k;for(s=0;s=0&&k>=0&&m=t.i)throw at(new Bo(Zlt+e+Ew+t.i));if(n>=t.i)throw at(new Bo(tht+n+Ew+t.i));return r=t.g[n],e!=n&&(e>16),e=r>>16&16,n=16-e,t=t>>e,r=t-256,e=r>>16&8,n+=e,t<<=e,r=t-u3,e=r>>16&4,n+=e,t<<=e,r=t-Jd,e=r>>16&2,n+=e,t<<=e,r=t>>14,e=r&~(r>>1),n+2-e)}function W5n(t){J6();var e,n,r,s;for(VU=new fe,Jht=new _r,Qht=new fe,e=(!t.a&&(t.a=new Jt(bi,t,10,11)),t.a),RCn(e),s=new Zn(e);s.e!=s.i.gc();)r=u(ar(s),27),Xo(VU,r,0)==-1&&(n=new fe,ge(Qht,n),Ile(r,n));return Qht}function Y5n(t,e,n){var r,s,o,h;t.a=n.b.d,Lt(e,326)?(s=b5(u(e,74),!1,!1),o=MO(s),r=new jC(t),Fa(o,r),KO(o,s),e.of((ai(),Iv))!=null&&Fa(u(e.of(Iv),75),r)):(h=u(e,422),h.rh(h.nh()+t.a.a),h.sh(h.oh()+t.a.b))}function X5n(t,e){var n,r,s;for(s=new fe,r=Dr(e.a,0);r.b!=r.d.c;)n=u(Ar(r),65),n.c.g==t.g&&$t(X(n.b,(Cc(),h0)))!==$t(X(n.c,h0))&&!t5(new ln(null,new gn(s,16)),new HUt(n))&&In(s.c,n);return Ds(s,new DZ),s}function M1e(t,e,n){var r,s,o,h;return Lt(e,153)&&Lt(n,153)?(o=u(e,153),h=u(n,153),t.a[o.a][h.a]+t.a[h.a][o.a]):Lt(e,250)&&Lt(n,250)&&(r=u(e,250),s=u(n,250),r.a==s.a)?u(X(s.a,(Vf(),jk)),17).a:0}function I1e(t,e){var n,r,s,o,h,d,m,k;for(k=Rt(Ht(X(e,(De(),jA)))),m=t[0].n.a+t[0].o.a+t[0].d.c+k,d=1;d=0?n:(d=RS(ia(new ae(h.c+h.b/2,h.d+h.a/2),new ae(o.c+o.b/2,o.d+o.a/2))),-(ige(o,h)-1)*d)}function J5n(t,e,n){var r;ms(new ln(null,(!n.a&&(n.a=new Jt(Wi,n,6,6)),new gn(n.a,16))),new GXt(t,e)),ms(new ln(null,(!n.n&&(n.n=new Jt(Po,n,1,7)),new gn(n.n,16))),new KXt(t,e)),r=u(ne(n,(ai(),Iv)),75),r&&P4t(r,t,e)}function tv(t,e,n){var r,s,o;if(o=y5((il(),ja),t.Dh(),e),o)return vo(),u(o,69).xk()||(o=tk($o(ja,o))),s=(r=t.Ih(o),u(r>=0?t.Lh(r,!0,!0):tv(t,o,!0),160)),u(s,220).Sl(e,n);throw at(new zn(Jb+e.xe()+qlt))}function I6t(t,e,n,r){var s,o,h,d,m;if(s=t.d[e],s){if(o=s.g,m=s.i,r!=null){for(d=0;d=n&&(r=e,k=(m.c+m.a)/2,h=k-n,m.c<=k-n&&(s=new yit(m.c,h),Sm(t,r++,s)),d=k+n,d<=m.a&&(o=new yit(d,m.a),Fy(r,t.c.length),sS(t.c,r,o)))}function P1e(t,e,n){var r,s,o,h,d,m;if(!e.dc()){for(s=new Ki,m=e.Kc();m.Ob();)for(d=u(m.Pb(),39),hi(t.a,he(d.g),he(n)),h=(r=Dr(new gg(d).a.d,0),new M4(r));IM(h.a);)o=u(Ar(h.a),65).c,hs(s,o,s.c.b,s.c);P1e(t,s,n+1)}}function O6t(t){var e;if(!t.c&&t.g==null)t.d=t.bj(t.f),Or(t,t.d),e=t.d;else{if(t.g==null)return!0;if(t.i==0)return!1;e=u(t.g[t.i-1],51)}return e==t.b&&null.Vm>=null.Um()?(XH(t),O6t(t)):e.Ob()}function F1e(t){if(this.a=t,t.c.i.k==(Un(),Ms))this.c=t.c,this.d=u(X(t.c.i,(oe(),Dc)),64);else if(t.d.i.k==Ms)this.c=t.d,this.d=u(X(t.d.i,(oe(),Dc)),64);else throw at(new zn("Edge "+t+" is not an external edge."))}function B1e(t,e){var n,r,s;s=t.b,t.b=e,t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,3,s,t.b)),e?e!=t&&(mu(t,e.zb),Zst(t,e.d),n=(r=e.c,r??e.zb),eat(t,n==null||hn(n,e.zb)?null:n)):(mu(t,null),Zst(t,0),eat(t,null))}function R1e(t,e){var n;this.e=(Dm(),Hr(t),Dm(),W5t(t)),this.c=(Hr(e),W5t(e)),Bmt(this.e.Rd().dc()==this.c.Rd().dc()),this.d=Jue(this.e),this.b=Jue(this.c),n=G2(aa,[ue,Ln],[5,1],5,[this.e.Rd().gc(),this.c.Rd().gc()],2),this.a=n,_gn(this)}function j1e(t){!_ht&&(_ht=XCn());var e=t.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,function(n){return tfn(n)});return'"'+e+'"'}function N6t(t,e,n,r,s,o){var h,d,m,k,T;if(s!=0)for($t(t)===$t(n)&&(t=t.slice(e,e+s),e=0),m=n,d=e,k=e+s;d=h)throw at(new Dy(e,h));return s=n[e],h==1?r=null:(r=Vt(e0t,sht,424,h-1,0,1),Xc(n,0,r,0,e),o=h-e-1,o>0&&Xc(n,e+1,r,e,o)),C7(t,r),o1e(t,e,s),s}function z1e(t){var e,n;if(t.f){for(;t.n0?o=hk(n):o=bO(hk(n))),Mi(e,NT,o)}function sxn(t,e){var n;e.Ug("Partition preprocessing",1),n=u(nc(_i(fc(_i(new ln(null,new gn(t.a,16)),new AQ),new LQ),new HB),gl(new Br,new ce,new An,lt(ut(Ho,1),te,108,0,[(bl(),sc)]))),15),ms(n.Oc(),new Jx),e.Vg()}function axn(t,e){var n,r,s,o,h;for(h=t.j,e.a!=e.b&&Ds(h,new aC),s=h.c.length/2|0,r=0;r0&&VO(t,n,e),o):r.a!=null?(VO(t,e,n),-1):s.a!=null?(VO(t,n,e),1):0}function cxn(t,e){var n,r,s,o,h;for(s=e.b.b,t.a=Vt(Vh,l3,15,s,0,1),t.b=Vt(Fl,$0,28,s,16,1),h=Dr(e.b,0);h.b!=h.d.c;)o=u(Ar(h),39),t.a[o.g]=new Ki;for(r=Dr(e.a,0);r.b!=r.d.c;)n=u(Ar(r),65),t.a[n.b.g].Fc(n),t.a[n.c.g].Fc(n)}function U1e(t,e){var n,r,s,o;t.Pj()?(n=t.Ej(),o=t.Qj(),++t.j,t.qj(n,t.Zi(n,e)),r=t.Ij(3,null,e,n,o),t.Mj()?(s=t.Nj(e,null),s?(s.nj(r),s.oj()):t.Jj(r)):t.Jj(r)):(Nee(t,e),t.Mj()&&(s=t.Nj(e,null),s&&s.oj()))}function P6t(t,e,n){var r,s,o;t.Pj()?(o=t.Qj(),fO(t,e,n),r=t.Ij(3,null,n,e,o),t.Mj()?(s=t.Nj(n,null),t.Tj()&&(s=t.Uj(n,s)),s?(s.nj(r),s.oj()):t.Jj(r)):t.Jj(r)):(fO(t,e,n),t.Mj()&&(s=t.Nj(n,null),s&&s.oj()))}function WH(t,e){var n,r,s,o,h;for(h=Lu(t.e.Dh(),e),s=new pb,n=u(t.g,124),o=t.i;--o>=0;)r=n[o],h.am(r.Lk())&&Or(s,r);!$pe(t,s)&&Hl(t.e)&&hE(t,e.Jk()?Ib(t,6,e,(mn(),co),null,-1,!1):Ib(t,e.tk()?2:1,e,null,null,-1,!1))}function uxn(t,e){var n,r,s,o,h;return t.a==(M7(),AA)?!0:(o=e.a.c,n=e.a.c+e.a.b,!(e.j&&(r=e.A,h=r.c.c.a-r.o.a/2,s=o-(r.n.a+r.o.a),s>h)||e.q&&(r=e.C,h=r.c.c.a-r.o.a/2,s=r.n.a-n,s>h)))}function G1e(t){gst();var e,n,r,s,o,h,d;for(n=new kp,s=new G(t.e.b);s.a1?t.e*=Rt(t.a):t.f/=Rt(t.a),Mbn(t),Bwn(t),N8n(t),Zt(t.b,(b_(),HU),t.g)}function X1e(t,e,n){var r,s,o,h,d,m;for(r=0,m=n,e||(r=n*(t.c.length-1),m*=-1),o=new G(t);o.a=0?t.Ah(null):t.Ph().Th(t,-1-e,null,null)),t.Bh(u(s,54),n),r&&r.oj(),t.vh()&&t.wh()&&n>-1&&Ei(t,new ha(t,9,n,o,s)),s):o}function R6t(t,e){var n,r,s,o,h;for(o=t.b.Ce(e),r=(n=t.a.get(o),n??Vt(aa,Ln,1,0,5,1)),h=0;h>5,s>=t.d)return t.e<0;if(n=t.a[s],e=1<<(e&31),t.e<0){if(r=uce(t),s>16)),15).dd(o),d0&&(!(bg(t.a.c)&&e.n.d)&&!(q4(t.a.c)&&e.n.b)&&(e.g.d+=b.Math.max(0,r/2-.5)),!(bg(t.a.c)&&e.n.a)&&!(q4(t.a.c)&&e.n.c)&&(e.g.a-=r-1))}function sde(t){var e,n,r,s,o;if(s=new fe,o=tge(t,s),e=u(X(t,(oe(),ml)),10),e)for(r=new G(e.j);r.a>e,o=t.m>>e|n<<22-e,s=t.l>>e|t.m<<22-e):e<44?(h=r?Fg:0,o=n>>e-22,s=t.m>>e-22|n<<44-e):(h=r?Fg:0,o=r?Il:0,s=n>>e-44),Eu(s&Il,o&Il,h&Fg)}function Wot(t){var e,n,r,s,o,h;for(this.c=new fe,this.d=t,r=Zi,s=Zi,e=Vs,n=Vs,h=Dr(t,0);h.b!=h.d.c;)o=u(Ar(h),8),r=b.Math.min(r,o.a),s=b.Math.min(s,o.b),e=b.Math.max(e,o.a),n=b.Math.max(n,o.b);this.a=new Ah(r,s,e-r,n-s)}function ode(t,e){var n,r,s,o,h,d;for(o=new G(t.b);o.a0&&Lt(e,44)&&(t.a._j(),k=u(e,44),m=k.ld(),o=m==null?0:$i(m),h=lvt(t.a,o),n=t.a.d[h],n)){for(r=u(n.g,379),T=n.i,d=0;d=2)for(n=s.Kc(),e=Ht(n.Pb());n.Ob();)o=e,e=Ht(n.Pb()),r=b.Math.min(r,(Wn(e),e-(Wn(o),o)));return r}function Mxn(t,e){var n,r,s;for(s=new fe,r=Dr(e.a,0);r.b!=r.d.c;)n=u(Ar(r),65),n.b.g==t.g&&!hn(n.b.c,nU)&&$t(X(n.b,(Cc(),h0)))!==$t(X(n.c,h0))&&!t5(new ln(null,new gn(s,16)),new VUt(n))&&In(s.c,n);return Ds(s,new NZ),s}function Ixn(t,e){var n,r,s;if($t(e)===$t(Hr(t)))return!0;if(!Lt(e,15)||(r=u(e,15),s=t.gc(),s!=r.gc()))return!1;if(Lt(r,59)){for(n=0;n0&&(s=n),h=new G(t.f.e);h.a0?(e-=1,n-=1):r>=0&&s<0?(e+=1,n+=1):r>0&&s>=0?(e-=1,n+=1):(e+=1,n-=1),new Ws(he(e),he(n))}function Gxn(t,e){return t.ce.c?1:t.be.b?1:t.a!=e.a?$i(t.a)-$i(e.a):t.d==(US(),KA)&&e.d==GA?-1:t.d==GA&&e.d==KA?1:0}function gde(t,e){var n,r,s,o,h;return o=e.a,o.c.i==e.b?h=o.d:h=o.c,o.c.i==e.b?r=o.c:r=o.d,s=gwn(t.a,h,r),s>0&&s0):s<0&&-s0):!1}function Kxn(t,e,n,r){var s,o,h,d,m,k,T,A;for(s=(e-t.d)/t.c.c.length,o=0,t.a+=n,t.d=e,A=new G(t.c);A.a>24;return h}function Yxn(t){if(t.ze()){var e=t.c;e.Ae()?t.o="["+e.n:e.ze()?t.o="["+e.xe():t.o="[L"+e.xe()+";",t.b=e.we()+"[]",t.k=e.ye()+"[]";return}var n=t.j,r=t.d;r=r.split("/"),t.o=Jat(".",[n,Jat("$",r)]),t.b=Jat(".",[n,Jat(".",r)]),t.k=r[r.length-1]}function Xxn(t,e){var n,r,s,o,h;for(h=null,o=new G(t.e.a);o.a=0;e-=2)for(n=0;n<=e;n+=2)(t.b[n]>t.b[n+2]||t.b[n]===t.b[n+2]&&t.b[n+1]>t.b[n+3])&&(r=t.b[n+2],t.b[n+2]=t.b[n],t.b[n]=r,r=t.b[n+3],t.b[n+3]=t.b[n+1],t.b[n+1]=r);t.c=!0}}function Zxn(t,e){var n,r,s,o,h,d,m,k,T;for(k=-1,T=0,h=t,d=0,m=h.length;d0&&++T;++k}return T}function qf(t){var e,n;return n=new eh(V2(t.Rm)),n.a+="@",ni(n,(e=$i(t)>>>0,e.toString(16))),t.Vh()?(n.a+=" (eProxyURI: ",tu(n,t._h()),t.Kh()&&(n.a+=" eClass: ",tu(n,t.Kh())),n.a+=")"):t.Kh()&&(n.a+=" (eClass: ",tu(n,t.Kh()),n.a+=")"),n.a}function __(t){var e,n,r,s;if(t.e)throw at(new Ro((wg($ht),wut+$ht.k+mut)));for(t.d==(Rs(),Ed)&&bV(t,Uo),n=new G(t.a.a);n.a>24}return n}function n6n(t,e,n){var r,s,o;if(s=u(Io(t.i,e),314),!s)if(s=new Zae(t.d,e,n),W6(t.i,e,s),Z5t(e))asn(t.a,e.c,e.b,s);else switch(o=j4n(e),r=u(Io(t.p,o),252),o.g){case 1:case 3:s.j=!0,Jnt(r,e.b,s);break;case 4:case 2:s.k=!0,Jnt(r,e.c,s)}return s}function r6n(t,e){var n,r,s,o,h,d,m,k,T;for(m=C0(t.c-t.b&t.a.length-1),k=null,T=null,o=new $S(t);o.a!=o.b;)s=u(cH(o),10),n=(d=u(X(s,(oe(),N1)),12),d?d.i:null),r=(h=u(X(s,gf),12),h?h.i:null),(k!=n||T!=r)&&(Q1e(m,e),k=n,T=r),In(m.c,s);Q1e(m,e)}function i6n(t,e,n,r){var s,o,h,d,m,k;if(d=new pb,m=Lu(t.e.Dh(),e),s=u(t.g,124),vo(),u(e,69).xk())for(h=0;h=0)return s;for(o=1,d=new G(e.j);d.a=0)return s;for(o=1,d=new G(e.j);d.a0&&e.Ne((vn(s-1,t.c.length),u(t.c[s-1],10)),o)>0;)Mh(t,s,(vn(s-1,t.c.length),u(t.c[s-1],10))),--s;vn(s,t.c.length),t.c[s]=o}n.a=new _r,n.b=new _r}function s6n(t,e,n){var r,s,o,h,d,m,k,T;for(T=(r=u(e.e&&e.e(),9),new _h(r,u(Ff(r,r.length),9),0)),m=s3(n,"[\\[\\]\\s,]+"),o=m,h=0,d=o.length;h=0?(e||(e=new YC,r>0&&Mo(e,(Da(0,r,t.length),t.substr(0,r)))),e.a+="\\",PE(e,n&js)):e&&PE(e,n&js);return e?e.a:t}function o6n(t){var e,n,r;for(n=new G(t.a.a.b);n.a0&&(!(bg(t.a.c)&&e.n.d)&&!(q4(t.a.c)&&e.n.b)&&(e.g.d-=b.Math.max(0,r/2-.5)),!(bg(t.a.c)&&e.n.a)&&!(q4(t.a.c)&&e.n.c)&&(e.g.a+=b.Math.max(0,r-1)))}function Ede(t,e,n){var r,s;if((t.c-t.b&t.a.length-1)==2)e==(ve(),Hn)||e==Jn?(Nq(u(r_(t),15),(uh(),K0)),Nq(u(r_(t),15),h2)):(Nq(u(r_(t),15),(uh(),h2)),Nq(u(r_(t),15),K0));else for(s=new $S(t);s.a!=s.b;)r=u(cH(s),15),Nq(r,n)}function c6n(t,e){var n,r,s,o,h,d,m;for(s=DE(new O2t(t)),d=new La(s,s.c.length),o=DE(new O2t(e)),m=new La(o,o.c.length),h=null;d.b>0&&m.b>0&&(n=(ur(d.b>0),u(d.a.Xb(d.c=--d.b),27)),r=(ur(m.b>0),u(m.a.Xb(m.c=--m.b),27)),n==r);)h=n;return h}function Tde(t,e,n){var r,s,o,h;Tre(t,e)>Tre(t,n)?(r=gc(n,(ve(),Jn)),t.d=r.dc()?0:Sit(u(r.Xb(0),12)),h=gc(e,Gn),t.b=h.dc()?0:Sit(u(h.Xb(0),12))):(s=gc(n,(ve(),Gn)),t.d=s.dc()?0:Sit(u(s.Xb(0),12)),o=gc(e,Jn),t.b=o.dc()?0:Sit(u(o.Xb(0),12)))}function Cde(t,e){var n,r,s,o;for(n=t.o.a,o=u(u(Ai(t.r,e),21),87).Kc();o.Ob();)s=u(o.Pb(),117),s.e.a=n*Rt(Ht(s.b.of($U))),s.e.b=(r=s.b,r.pf((ai(),Pl))?r.ag()==(ve(),Hn)?-r.Mf().b-Rt(Ht(r.of(Pl))):Rt(Ht(r.of(Pl))):r.ag()==(ve(),Hn)?-r.Mf().b:0)}function u6n(t,e){var n,r,s,o;for(e.Ug("Self-Loop pre-processing",1),r=new G(t.a);r.at.c));h++)s.a>=t.s&&(o<0&&(o=h),d=h);return m=(t.s+t.c)/2,o>=0&&(r=Q8n(t,e,o,d),m=Yrn((vn(r,e.c.length),u(e.c[r],339))),nxn(e,r,n)),m}function zr(t,e,n){var r,s,o,h,d,m,k;for(h=(o=new aM,o),_4t(h,(Wn(e),e)),k=(!h.b&&(h.b=new Ul((wn(),wo),Mc,h)),h.b),m=1;m0&&KTn(this,s)}function Y6t(t,e,n,r,s,o){var h,d,m;if(!s[e.a]){for(s[e.a]=!0,h=r,!h&&(h=new mq),ge(h.e,e),m=o[e.a].Kc();m.Ob();)d=u(m.Pb(),289),!(d.d==n||d.c==n)&&(d.c!=e&&Y6t(t,d.c,e,h,s,o),d.d!=e&&Y6t(t,d.d,e,h,s,o),ge(h.c,d),Hs(h.d,d.b));return h}return null}function f6n(t){var e,n,r,s,o,h,d;for(e=0,s=new G(t.e);s.a=2}function d6n(t,e,n,r,s){var o,h,d,m,k,T;for(o=t.c.d.j,h=u(jh(n,0),8),T=1;T1||(e=Hi(Qf,lt(ut(Lo,1),te,95,0,[qg,Jf])),tO(iq(e,t))>1)||(r=Hi(t1,lt(ut(Lo,1),te,95,0,[W0,bf])),tO(iq(r,t))>1))}function X6t(t,e,n){var r,s,o;for(o=new G(t.t);o.a0&&(r.b.n-=r.c,r.b.n<=0&&r.b.u>0&&Zr(e,r.b));for(s=new G(t.i);s.a0&&(r.a.u-=r.c,r.a.u<=0&&r.a.n>0&&Zr(n,r.a))}function XH(t){var e,n,r,s,o;if(t.g==null&&(t.d=t.bj(t.f),Or(t,t.d),t.c))return o=t.f,o;if(e=u(t.g[t.i-1],51),s=e.Pb(),t.e=e,n=t.bj(s),n.Ob())t.d=n,Or(t,n);else for(t.d=null;!e.Ob()&&(ls(t.g,--t.i,null),t.i!=0);)r=u(t.g[t.i-1],51),e=r;return s}function p6n(t,e){var n,r,s,o,h,d;if(r=e,s=r.Lk(),Ng(t.e,s)){if(s.Si()&&dq(t,s,r.md()))return!1}else for(d=Lu(t.e.Dh(),s),n=u(t.g,124),o=0;o1||n>1)return 2;return e+n==1?2:0}function Dl(t,e){var n,r,s,o,h,d;return o=t.a*dut+t.b*1502,d=t.b*dut+11,n=b.Math.floor(d*lN),o+=n,d-=n*y8t,o%=y8t,t.a=o,t.b=d,e<=24?b.Math.floor(t.a*L9t[e]):(s=t.a*(1<=2147483648&&(r-=4294967296),r)}function Dde(t,e,n){var r,s,o,h,d,m,k;for(o=new fe,k=new Ki,h=new Ki,B7n(t,k,h,e),p9n(t,k,h,e,n),m=new G(t);m.ar.b.g&&In(o.c,r);return o}function x6n(t,e,n){var r,s,o,h,d,m;for(d=t.c,h=(n.q?n.q:(mn(),mn(),q0)).vc().Kc();h.Ob();)o=u(h.Pb(),44),r=!wE(_i(new ln(null,new gn(d,16)),new Sl(new jXt(e,o)))).Bd((U2(),Rk)),r&&(m=o.md(),Lt(m,4)&&(s=nxt(m),s!=null&&(m=s)),e.qf(u(o.ld(),149),m))}function k6n(t,e,n){var r,s;if(EI(t.b),E1(t.b,(pO(),vK),(tS(),kP)),E1(t.b,yK,e.g),E1(t.b,xK,e.a),t.a=XO(t.b,e),n.Ug("Compaction by shrinking a tree",t.a.c.length),e.i.c.length>1)for(s=new G(t.a);s.a=0?t.Lh(r,!0,!0):tv(t,o,!0),160)),u(s,220).Xl(e,n)}else throw at(new zn(Jb+e.xe()+aA))}function QH(t,e){var n,r,s,o,h;if(e){for(o=Lt(t.Cb,90)||Lt(t.Cb,102),h=!o&&Lt(t.Cb,331),r=new Zn((!e.a&&(e.a=new DS(e,Do,e)),e.a));r.e!=r.i.gc();)if(n=u(ar(r),89),s=lV(n),o?Lt(s,90):h?Lt(s,156):s)return s;return o?(wn(),xf):(wn(),Sd)}else return null}function E6n(t,e){var n,r,s,o;for(e.Ug("Resize child graph to fit parent.",1),r=new G(t.b);r.a=2*e&&ge(n,new yit(h[r-1]+e,h[r]-e));return n}function S6n(t,e,n){var r,s,o,h,d,m,k,T;if(n)for(o=n.a.length,r=new W2(o),d=(r.b-r.a)*r.c<0?(Tb(),y2):new _b(r);d.Ob();)h=u(d.Pb(),17),s=qE(n,h.a),s&&(m=ndn(t,(k=(kb(),T=new J2t,T),e&&Z6t(k,e),k),s),n7(m,yg(s,a0)),qH(s,m),E6t(s,m),xat(t,s,m))}function JH(t){var e,n,r,s,o,h;if(!t.j){if(h=new bC,e=_L,o=e.a.zc(t,e),o==null){for(r=new Zn(Yo(t));r.e!=r.i.gc();)n=u(ar(r),29),s=JH(n),gs(h,s),Or(h,n);e.a.Bc(t)!=null}Uy(h),t.j=new $4((u(Dt(Qt((Lb(),Fn).o),11),19),h.i),h.g),_l(t).b&=-33}return t.j}function _6n(t){var e,n,r,s;if(t==null)return null;if(r=su(t,!0),s=NN.length,hn(r.substr(r.length-s,s),NN)){if(n=r.length,n==4){if(e=(qn(0,r.length),r.charCodeAt(0)),e==43)return aOt;if(e==45)return ZTe}else if(n==3)return aOt}return new z2t(r)}function A6n(t){var e,n,r;return n=t.l,n&n-1||(r=t.m,r&r-1)||(e=t.h,e&e-1)||e==0&&r==0&&n==0?-1:e==0&&r==0&&n!=0?w4t(n):e==0&&r!=0&&n==0?w4t(r)+22:e!=0&&r==0&&n==0?w4t(e)+44:-1}function p5(t,e){var n,r,s,o,h;for(s=e.a&t.f,o=null,r=t.b[s];;r=r.b){if(r==e){o?o.b=e.b:t.b[s]=e.b;break}o=r}for(h=e.f&t.f,o=null,n=t.c[h];;n=n.d){if(n==e){o?o.d=e.d:t.c[h]=e.d;break}o=n}e.e?e.e.c=e.c:t.a=e.c,e.c?e.c.e=e.e:t.e=e.e,--t.i,++t.g}function L6n(t,e){var n;e.d?e.d.b=e.b:t.a=e.b,e.b?e.b.d=e.d:t.e=e.d,!e.e&&!e.c?(n=u(nf(u(rk(t.b,e.a),260)),260),n.a=0,++t.c):(n=u(nf(u(tr(t.b,e.a),260)),260),--n.a,e.e?e.e.c=e.c:n.b=u(nf(e.c),511),e.c?e.c.e=e.e:n.c=u(nf(e.e),511)),--t.d}function D6n(t){var e,n,r,s,o,h,d,m,k,T;for(n=t.o,e=t.p,h=xi,s=Ga,d=xi,o=Ga,k=0;k0),o.a.Xb(o.c=--o.b),Ly(o,s),ur(o.b3&&M0(t,0,e-3))}function I6n(t){var e,n,r,s;return $t(X(t,(De(),A3)))===$t((Ag(),Xp))?!t.e&&$t(X(t,iP))!==$t((c7(),JN)):(r=u(X(t,e1t),298),s=Ie(Me(X(t,n1t)))||$t(X(t,FA))===$t((QS(),QN)),e=u(X(t,R_t),17).a,n=t.a.c.length,!s&&r!=(c7(),JN)&&(e==0||e>n))}function O6n(t){var e,n;for(n=0;n0);n++);if(n>0&&n0);e++);return e>0&&n>16!=6&&e){if(_7(t,e))throw at(new zn(oA+K1e(t)));r=null,t.Cb&&(r=(n=t.Db>>16,n>=0?Ext(t,r):t.Cb.Th(t,-1-n,null,r))),e&&(r=gk(e,t,6,r)),r=ovt(t,e,r),r&&r.oj()}else t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,6,e,e))}function ZH(t,e){var n,r;if(e!=t.Cb||t.Db>>16!=3&&e){if(_7(t,e))throw at(new zn(oA+Nge(t)));r=null,t.Cb&&(r=(n=t.Db>>16,n>=0?_xt(t,r):t.Cb.Th(t,-1-n,null,r))),e&&(r=gk(e,t,12,r)),r=cvt(t,e,r),r&&r.oj()}else t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,3,e,e))}function Z6t(t,e){var n,r;if(e!=t.Cb||t.Db>>16!=9&&e){if(_7(t,e))throw at(new zn(oA+I0e(t)));r=null,t.Cb&&(r=(n=t.Db>>16,n>=0?Cxt(t,r):t.Cb.Th(t,-1-n,null,r))),e&&(r=gk(e,t,9,r)),r=uvt(t,e,r),r&&r.oj()}else t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,9,e,e))}function P7(t){var e,n,r,s,o;if(r=of(t),o=t.j,o==null&&r)return t.Jk()?null:r.ik();if(Lt(r,156)){if(n=r.jk(),n&&(s=n.wi(),s!=t.i)){if(e=u(r,156),e.nk())try{t.g=s.ti(e,o)}catch(h){if(h=es(h),Lt(h,82))t.g=null;else throw at(h)}t.i=s}return t.g}return null}function Nde(t){var e;return e=new fe,ge(e,new O6(new ae(t.c,t.d),new ae(t.c+t.b,t.d))),ge(e,new O6(new ae(t.c,t.d),new ae(t.c,t.d+t.a))),ge(e,new O6(new ae(t.c+t.b,t.d+t.a),new ae(t.c+t.b,t.d))),ge(e,new O6(new ae(t.c+t.b,t.d+t.a),new ae(t.c,t.d+t.a))),e}function N6n(t){var e,n,r;if(t==null)return Vu;try{return rc(t)}catch(s){if(s=es(s),Lt(s,103))return e=s,r=V2(Wl(t))+"@"+(n=(pg(),ext(t)>>>0),n.toString(16)),Wwn(Opn(),(xE(),"Exception during lenientFormat for "+r),e),"<"+r+" threw "+V2(e.Rm)+">";throw at(s)}}function P6n(t,e,n){var r,s,o;for(o=e.a.ec().Kc();o.Ob();)s=u(o.Pb(),74),r=u(tr(t.b,s),272),!r&&(Ji(O0(s))==Ji(qb(s))?kkn(t,s,n):O0(s)==Ji(qb(s))?tr(t.c,s)==null&&tr(t.b,qb(s))!=null&&fpe(t,s,n,!1):tr(t.d,s)==null&&tr(t.b,O0(s))!=null&&fpe(t,s,n,!0))}function F6n(t,e){var n,r,s,o,h,d,m;for(s=t.Kc();s.Ob();)for(r=u(s.Pb(),10),d=new Yc,hc(d,r),Xs(d,(ve(),Jn)),Zt(d,(oe(),IG),(Pn(),!0)),h=e.Kc();h.Ob();)o=u(h.Pb(),10),m=new Yc,hc(m,o),Xs(m,Gn),Zt(m,IG,!0),n=new Pm,Zt(n,IG,!0),Xa(n,d),xa(n,m)}function B6n(t,e,n,r){var s,o,h,d;s=wle(t,e,n),o=wle(t,n,e),h=u(tr(t.c,e),118),d=u(tr(t.c,n),118),s1)for(e=km((n=new H2,++t.b,n),t.d),d=Dr(o,0);d.b!=d.d.c;)h=u(Ar(d),125),Hf(Of(If(Nf(Mf(new tf,1),0),e),h))}function $6n(t,e,n){var r,s,o,h,d;for(n.Ug("Breaking Point Removing",1),t.a=u(X(e,(De(),zg)),223),o=new G(e.b);o.a>16!=11&&e){if(_7(t,e))throw at(new zn(oA+vkt(t)));r=null,t.Cb&&(r=(n=t.Db>>16,n>=0?Axt(t,r):t.Cb.Th(t,-1-n,null,r))),e&&(r=gk(e,t,10,r)),r=mvt(t,e,r),r&&r.oj()}else t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,11,e,e))}function z6n(t){var e,n,r,s;for(r=new sw(new mr(t.b).a);r.b;)n=Um(r),s=u(n.ld(),12),e=u(n.md(),10),Zt(e,(oe(),Li),s),Zt(s,ml,e),Zt(s,eP,(Pn(),!0)),Xs(s,u(X(e,Dc),64)),X(e,Dc),Zt(s.i,(De(),bs),(ka(),YT)),u(X(Pa(s.i),lu),21).Fc((Co(),DT))}function q6n(t,e,n){var r,s,o,h,d,m;if(o=0,h=0,t.c)for(m=new G(t.d.i.j);m.ao.a?-1:s.am){for(T=t.d,t.d=Vt(MIt,jTt,66,2*m+4,0,1),o=0;o=9223372036854776e3?(WE(),a9t):(s=!1,t<0&&(s=!0,t=-t),r=0,t>=bw&&(r=Ys(t/bw),t-=r*bw),n=0,t>=Sk&&(n=Ys(t/Sk),t-=n*Sk),e=Ys(t),o=Eu(e,n,r),s&&kat(o),o)}function Z6n(t){var e,n,r,s,o;if(o=new fe,Cu(t.b,new E0(o)),t.b.c.length=0,o.c.length!=0){for(e=(vn(0,o.c.length),u(o.c[0],82)),n=1,r=o.c.length;n=-e&&r==e?new Ws(he(n-1),he(r)):new Ws(he(n),he(r-1))}function Bde(){return Za(),lt(ut(h_n,1),te,81,0,[KCt,VCt,B5,gft,fSt,nG,fG,E3,lSt,eSt,cSt,k3,hSt,JCt,dSt,RCt,aG,pft,tG,uG,pSt,cG,jCt,uSt,bSt,lG,gSt,eG,YCt,aSt,sSt,dG,qCt,ZU,iG,zCt,vT,rSt,ZCt,oSt,CA,UCt,HCt,iSt,tSt,sG,hG,$Ct,oG,nSt,rG,XCt,WCt,WN,JU,QCt,GCt])}function nkn(t,e,n){t.d=0,t.b=0,e.k==(Un(),uu)&&n.k==uu&&u(X(e,(oe(),Li)),10)==u(X(n,Li),10)&&(qst(e).j==(ve(),Hn)?Tde(t,e,n):Tde(t,n,e)),e.k==uu&&n.k==fa?qst(e).j==(ve(),Hn)?t.d=1:t.b=1:n.k==uu&&e.k==fa&&(qst(n).j==(ve(),Hn)?t.b=1:t.d=1),$mn(t,e,n)}function rkn(t){var e,n,r,s,o,h,d,m,k,T,A;return A=Jxt(t),e=t.a,m=e!=null,m&&ME(A,"category",t.a),s=NM(new cr(t.d)),h=!s,h&&(k=new cp,_1(A,"knownOptions",k),n=new qGt(k),Fa(new cr(t.d),n)),o=NM(t.g),d=!o,d&&(T=new cp,_1(A,"supportedFeatures",T),r=new HGt(T),Fa(t.g,r)),A}function ikn(t){var e,n,r,s,o,h,d,m,k;for(r=!1,e=336,n=0,o=new CZt(t.length),d=t,m=0,k=d.length;m>16!=7&&e){if(_7(t,e))throw at(new zn(oA+Hfe(t)));r=null,t.Cb&&(r=(n=t.Db>>16,n>=0?Txt(t,r):t.Cb.Th(t,-1-n,null,r))),e&&(r=u(e,54).Rh(t,1,zP,r)),r=hyt(t,e,r),r&&r.oj()}else t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,7,e,e))}function Rde(t,e){var n,r;if(e!=t.Cb||t.Db>>16!=3&&e){if(_7(t,e))throw at(new zn(oA+zue(t)));r=null,t.Cb&&(r=(n=t.Db>>16,n>=0?Sxt(t,r):t.Cb.Th(t,-1-n,null,r))),e&&(r=u(e,54).Rh(t,0,HP,r)),r=fyt(t,e,r),r&&r.oj()}else t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,3,e,e))}function Zot(t,e){F7();var n,r,s,o,h,d,m,k,T;return e.d>t.d&&(d=t,t=e,e=d),e.d<63?Gkn(t,e):(h=(t.d&-2)<<4,k=M3t(t,h),T=M3t(e,h),r=vct(t,nk(k,h)),s=vct(e,nk(T,h)),m=Zot(k,T),n=Zot(r,s),o=Zot(vct(k,r),vct(s,T)),o=Sct(Sct(o,m),n),o=nk(o,h),m=nk(m,h<<1),Sct(Sct(m,o),n))}function Bp(){Bp=V,b1t=new F4(q2e,0),TAt=new F4("LONGEST_PATH",1),CAt=new F4("LONGEST_PATH_SOURCE",2),p1t=new F4("COFFMAN_GRAHAM",3),EAt=new F4(qut,4),SAt=new F4("STRETCH_WIDTH",5),XG=new F4("MIN_WIDTH",6),RT=new F4("BF_MODEL_ORDER",7),jT=new F4("DF_MODEL_ORDER",8)}function akn(t,e,n){var r,s,o,h,d;for(h=c_(t,n),d=Vt(V0,jp,10,e.length,0,1),r=0,o=h.Kc();o.Ob();)s=u(o.Pb(),12),Ie(Me(X(s,(oe(),eP))))&&(d[r++]=u(X(s,ml),10));if(r=0;o+=n?1:-1)h=h|e.c.lg(m,o,n,r&&!Ie(Me(X(e.j,(oe(),i2))))&&!Ie(Me(X(e.j,(oe(),U5))))),h=h|e.q.ug(m,o,n),h=h|C0e(t,m[o],n,r);return qs(t.c,e),h}function nV(t,e,n){var r,s,o,h,d,m,k,T,A,P;for(T=rie(t.j),A=0,P=T.length;A1&&(t.a=!0),jun(u(n.b,68),ki(Oa(u(e.b,68).c),qd(ia(Oa(u(n.b,68).a),u(e.b,68).a),s))),lre(t,e),jde(t,n)}function $de(t){var e,n,r,s,o,h,d;for(o=new G(t.a.a);o.a0&&o>0?h.p=e++:r>0?h.p=n++:o>0?h.p=s++:h.p=n++}mn(),Ds(t.j,new R8)}function hkn(t){var e,n;n=null,e=u(Oe(t.g,0),18);do{if(n=e.d.i,qi(n,(oe(),gf)))return u(X(n,gf),12).i;if(n.k!=(Un(),xs)&&Mr(new rr(sr(_s(n).a.Kc(),new z))))e=u(dr(new rr(sr(_s(n).a.Kc(),new z))),18);else if(n.k!=xs)return null}while(n&&n.k!=(Un(),xs));return n}function fkn(t,e){var n,r,s,o,h,d,m,k,T;for(d=e.j,h=e.g,m=u(Oe(d,d.c.length-1),113),T=(vn(0,d.c.length),u(d.c[0],113)),k=yot(t,h,m,T),o=1;ok&&(m=n,T=s,k=r);e.a=T,e.c=m}function dkn(t,e,n){var r,s,o,h,d,m,k;for(k=new pp(new SUt(t)),h=lt(ut(w4e,1),f2e,12,0,[e,n]),d=0,m=h.length;dm-t.b&&dm-t.a&&d0?o.a?(d=o.b.Mf().a,n>d&&(s=(n-d)/2,o.d.b=s,o.d.c=s)):o.d.c=t.s+n:IS(t.u)&&(r=Zxt(o.b),r.c<0&&(o.d.b=-r.c),r.c+r.b>o.b.Mf().a&&(o.d.c=r.c+r.b-o.b.Mf().a))}function Dkn(t,e){var n,r,s,o,h;h=new fe,n=e;do o=u(tr(t.b,n),131),o.B=n.c,o.D=n.d,In(h.c,o),n=u(tr(t.k,n),18);while(n);return r=(vn(0,h.c.length),u(h.c[0],131)),r.j=!0,r.A=u(r.d.a.ec().Kc().Pb(),18).c.i,s=u(Oe(h,h.c.length-1),131),s.q=!0,s.C=u(s.d.a.ec().Kc().Pb(),18).d.i,h}function Mkn(t){var e,n;if(e=u(t.a,17).a,n=u(t.b,17).a,e>=0){if(e==n)return new Ws(he(-e-1),he(-e-1));if(e==-n)return new Ws(he(-e),he(n+1))}return b.Math.abs(e)>b.Math.abs(n)?e<0?new Ws(he(-e),he(n)):new Ws(he(-e),he(n+1)):new Ws(he(e+1),he(n))}function Ikn(t){var e,n;n=u(X(t,(De(),Iu)),171),e=u(X(t,(oe(),Aw)),311),n==(Rh(),s2)?(Zt(t,Iu,rP),Zt(t,Aw,(Cg(),H5))):n==S3?(Zt(t,Iu,rP),Zt(t,Aw,(Cg(),qk))):e==(Cg(),H5)?(Zt(t,Iu,s2),Zt(t,Aw,ZN)):e==qk&&(Zt(t,Iu,S3),Zt(t,Aw,ZN))}function rV(){rV=V,fP=new pZ,Dke=ri(new Fs,(Ua(),Qc),(Za(),tG)),Oke=el(ri(new Fs,Qc,cG),Zo,oG),Nke=Yd(Yd(nS(el(ri(new Fs,Wf,fG),Zo,hG),cu),lG),dG),Mke=el(ri(ri(ri(new Fs,H0,nG),cu,iG),cu,vT),Zo,rG),Ike=el(ri(ri(new Fs,cu,vT),cu,ZU),Zo,JU)}function D_(){D_=V,Bke=ri(el(new Fs,(Ua(),Zo),(Za(),XCt)),Qc,tG),zke=Yd(Yd(nS(el(ri(new Fs,Wf,fG),Zo,hG),cu),lG),dG),Rke=el(ri(ri(ri(new Fs,H0,nG),cu,iG),cu,vT),Zo,rG),$ke=ri(ri(new Fs,Qc,cG),Zo,oG),jke=el(ri(ri(new Fs,cu,vT),cu,ZU),Zo,JU)}function Okn(t,e,n,r,s){var o,h;(!go(e)&&e.c.i.c==e.d.i.c||!qoe(dc(lt(ut(la,1),ue,8,0,[s.i.n,s.n,s.a])),n))&&!go(e)&&(e.c==s?CE(e.a,0,new io(n)):Zr(e.a,new io(n)),r&&!x1(t.a,n)&&(h=u(X(e,(De(),Vo)),75),h||(h=new Qu,Zt(e,Vo,h)),o=new io(n),hs(h,o,h.c.b,h.c),qs(t.a,o)))}function Hde(t,e){var n,r,s,o;for(o=qr(Ja(B0,L0(qr(Ja(e==null?0:$i(e),R0)),15))),n=o&t.b.length-1,s=null,r=t.b[n];r;s=r,r=r.a)if(r.d==o&&Ud(r.i,e))return s?s.a=r.a:t.b[n]=r.a,vWt(u(nf(r.c),604),u(nf(r.f),604)),LM(u(nf(r.b),227),u(nf(r.e),227)),--t.f,++t.e,!0;return!1}function Nkn(t){var e,n;for(n=new rr(sr(ua(t).a.Kc(),new z));Mr(n);)if(e=u(dr(n),18),e.c.i.k!=(Un(),Vc))throw at(new fp(zut+EO(t)+"' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen."))}function Pkn(t,e,n){var r,s,o,h,d,m,k;if(s=Gue(t.Db&254),s==0)t.Eb=n;else{if(s==1)d=Vt(aa,Ln,1,2,5,1),o=vot(t,e),o==0?(d[0]=n,d[1]=t.Eb):(d[0]=t.Eb,d[1]=n);else for(d=Vt(aa,Ln,1,s+1,5,1),h=nw(t.Eb),r=2,m=0,k=0;r<=128;r<<=1)r==e?d[k++]=n:t.Db&r&&(d[k++]=h[m++]);t.Eb=d}t.Db|=e}function Vde(t,e,n){var r,s,o,h;for(this.b=new fe,s=0,r=0,h=new G(t);h.a0&&(o=u(Oe(this.b,0),176),s+=o.o,r+=o.p),s*=2,r*=2,e>1?s=Ys(b.Math.ceil(s*e)):r=Ys(b.Math.ceil(r/e)),this.a=new U5t(s,r)}function Ude(t,e,n,r,s,o){var h,d,m,k,T,A,P,$,U,J,tt,ht;for(T=r,e.j&&e.o?($=u(tr(t.f,e.A),60),J=$.d.c+$.d.b,--T):J=e.a.c+e.a.b,A=s,n.q&&n.o?($=u(tr(t.f,n.C),60),k=$.d.c,++A):k=n.a.c,tt=k-J,m=b.Math.max(2,A-T),d=tt/m,U=J+d,P=T;P=0;h+=s?1:-1){for(d=e[h],m=r==(ve(),Jn)?s?gc(d,r):Bh(gc(d,r)):s?Bh(gc(d,r)):gc(d,r),o&&(t.c[d.p]=m.gc()),A=m.Kc();A.Ob();)T=u(A.Pb(),12),t.d[T.p]=k++;Hs(n,m)}}function Kde(t,e,n){var r,s,o,h,d,m,k,T;for(o=Rt(Ht(t.b.Kc().Pb())),k=Rt(Ht(Ipn(e.b))),r=qd(Oa(t.a),k-n),s=qd(Oa(e.a),n-o),T=ki(r,s),qd(T,1/(k-o)),this.a=T,this.b=new fe,d=!0,h=t.b.Kc(),h.Pb();h.Ob();)m=Rt(Ht(h.Pb())),d&&m-n>xlt&&(this.b.Fc(n),d=!1),this.b.Fc(m);d&&this.b.Fc(n)}function Fkn(t){var e,n,r,s;if(tEn(t,t.n),t.d.c.length>0){for(KC(t.c);z6t(t,u(et(new G(t.e.a)),125))>5,e&=31,r>=t.d)return t.e<0?(Xd(),Zve):(Xd(),yA);if(o=t.d-r,s=Vt(Fr,ii,28,o+1,15,1),_4n(s,o,t.a,r,e),t.e<0){for(n=0;n0&&t.a[n]<<32-e){for(n=0;n=0?!1:(n=y5((il(),ja),s,e),n?(r=n.Ik(),(r>1||r==-1)&&Om($o(ja,n))!=3):!0)):!1}function $kn(t,e,n,r){var s,o,h,d,m;return d=Jo(u(Dt((!e.b&&(e.b=new kn(vr,e,4,7)),e.b),0),84)),m=Jo(u(Dt((!e.c&&(e.c=new kn(vr,e,5,8)),e.c),0),84)),Ji(d)==Ji(m)||qy(m,d)?null:(h=AI(e),h==n?r:(o=u(tr(t.a,h),10),o&&(s=o.e,s)?s:null))}function zkn(t,e,n){var r,s,o,h,d;for(n.Ug("Longest path to source layering",1),t.a=e,d=t.a.a,t.b=Vt(Fr,ii,28,d.c.length,15,1),r=0,h=new G(d);h.a0&&(n[0]+=t.d,h-=n[0]),n[2]>0&&(n[2]+=t.d,h-=n[2]),o=b.Math.max(0,h),n[1]=b.Math.max(n[1],h),O3t(t,xu,s.c+r.b+n[0]-(n[1]-h)/2,n),e==xu&&(t.c.b=o,t.c.c=s.c+r.b+(o-h)/2)}function r0e(){this.c=Vt(ma,No,28,(ve(),lt(ut(bo,1),qc,64,0,[bc,Hn,Jn,Er,Gn])).length,15,1),this.b=Vt(ma,No,28,lt(ut(bo,1),qc,64,0,[bc,Hn,Jn,Er,Gn]).length,15,1),this.a=Vt(ma,No,28,lt(ut(bo,1),qc,64,0,[bc,Hn,Jn,Er,Gn]).length,15,1),Fwt(this.c,Zi),Fwt(this.b,Vs),Fwt(this.a,Vs)}function iu(t,e,n){var r,s,o,h;if(e<=n?(s=e,o=n):(s=n,o=e),r=0,t.b==null)t.b=Vt(Fr,ii,28,2,15,1),t.b[0]=s,t.b[1]=o,t.c=!0;else{if(r=t.b.length,t.b[r-1]+1==s){t.b[r-1]=o;return}h=Vt(Fr,ii,28,r+2,15,1),Xc(t.b,0,h,0,r),t.b=h,t.b[r-1]>=s&&(t.c=!1,t.a=!1),t.b[r++]=s,t.b[r]=o,t.c||g5(t)}}function Kkn(t,e,n){var r,s,o,h,d,m,k;for(k=e.d,t.a=new wu(k.c.length),t.c=new _r,d=new G(k);d.a=0?t.Lh(k,!1,!0):tv(t,n,!1),61));t:for(o=A.Kc();o.Ob();){for(s=u(o.Pb(),58),T=0;T1;)r3(s,s.i-1);return r}function s0e(t,e){var n,r,s,o,h,d,m;for(n=new K4,o=new G(t.b);o.at.d[h.p]&&(n+=C3t(t.b,o),Ob(t.a,he(o)));for(;!WC(t.a);)i4t(t.b,u(K6(t.a),17).a)}return n}function Zkn(t){var e,n,r,s,o,h,d,m,k;for(t.a=new wvt,k=0,s=0,r=new G(t.i.b);r.ad.d&&(T=d.d+d.a+k));n.c.d=T,e.a.zc(n,e),m=b.Math.max(m,n.c.d+n.c.a)}return m}function Co(){Co=V,CG=new ky("COMMENTS",0),Uh=new ky("EXTERNAL_PORTS",1),LA=new ky("HYPEREDGES",2),SG=new ky("HYPERNODES",3),DT=new ky("NON_FREE_PORTS",4),q5=new ky("NORTH_SOUTH_PORTS",5),DA=new ky(D2e,6),AT=new ky("CENTER_LABELS",7),LT=new ky("END_LABELS",8),_G=new ky("PARTITIONS",9)}function e8n(t,e,n,r,s){return r<0?(r=d5(t,s,lt(ut(Pe,1),ue,2,6,[qct,Hct,Vct,Uct,Tk,Gct,Kct,Wct,Yct,Xct,Qct,Jct]),e),r<0&&(r=d5(t,s,lt(ut(Pe,1),ue,2,6,["Jan","Feb","Mar","Apr",Tk,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),e)),r<0?!1:(n.k=r,!0)):r>0?(n.k=r-1,!0):!1}function n8n(t,e,n,r,s){return r<0?(r=d5(t,s,lt(ut(Pe,1),ue,2,6,[qct,Hct,Vct,Uct,Tk,Gct,Kct,Wct,Yct,Xct,Qct,Jct]),e),r<0&&(r=d5(t,s,lt(ut(Pe,1),ue,2,6,["Jan","Feb","Mar","Apr",Tk,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),e)),r<0?!1:(n.k=r,!0)):r>0?(n.k=r-1,!0):!1}function r8n(t,e,n,r,s,o){var h,d,m,k;if(d=32,r<0){if(e[0]>=t.length||(d=Va(t,e[0]),d!=43&&d!=45)||(++e[0],r=KH(t,e),r<0))return!1;d==45&&(r=-r)}return d==32&&e[0]-n==2&&s.b==2&&(m=new x$,k=m.q.getFullYear()-Wb+Wb-80,h=k%100,o.a=r==h,r+=(k/100|0)*100+(r=0?zb(t):FS(zb(Cp(t)))),xA[e]=J$(Rf(t,e),0)?zb(Rf(t,e)):FS(zb(Cp(Rf(t,e)))),t=Ja(t,5);for(;e=k&&(m=r);m&&(T=b.Math.max(T,m.a.o.a)),T>P&&(A=k,P=T)}return A}function u8n(t){var e,n,r,s,o,h,d;for(o=new pp(u(Hr(new kh),50)),d=Vs,n=new G(t.d);n.anwe?Ds(m,t.b):r<=nwe&&r>rwe?Ds(m,t.d):r<=rwe&&r>iwe?Ds(m,t.c):r<=iwe&&Ds(m,t.a),o=l0e(t,m,o);return s}function h0e(t,e,n,r){var s,o,h,d,m,k;for(s=(r.c+r.a)/2,nh(e.j),Zr(e.j,s),nh(n.e),Zr(n.e,s),k=new IWt,d=new G(t.f);d.a1,d&&(r=new ae(s,n.b),Zr(e.a,r)),XS(e.a,lt(ut(la,1),ue,8,0,[P,A]))}function lkt(t,e,n){var r,s;for(e=48;n--)ML[n]=n-48<<24>>24;for(r=70;r>=65;r--)ML[r]=r-65+10<<24>>24;for(s=102;s>=97;s--)ML[s]=s-97+10<<24>>24;for(o=0;o<10;o++)tW[o]=48+o&js;for(t=10;t<=15;t++)tW[t]=65+t-10&js}function d8n(t,e){e.Ug("Process graph bounds",1),Zt(t,(ji(),R1t),KM(hat(Ny(new ln(null,new gn(t.b,16)),new zZ)))),Zt(t,j1t,KM(hat(Ny(new ln(null,new gn(t.b,16)),new qZ)))),Zt(t,pLt,KM(lat(Ny(new ln(null,new gn(t.b,16)),new HZ)))),Zt(t,bLt,KM(lat(Ny(new ln(null,new gn(t.b,16)),new VZ)))),e.Vg()}function g8n(t){var e,n,r,s,o;s=u(X(t,(De(),Ow)),21),o=u(X(t,GG),21),n=new ae(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a),e=new io(n),s.Hc((Yl(),z3))&&(r=u(X(t,IT),8),o.Hc((Ml(),XT))&&(r.a<=0&&(r.a=20),r.b<=0&&(r.b=20)),e.a=b.Math.max(n.a,r.a),e.b=b.Math.max(n.b,r.b)),Ie(Me(X(t,c1t)))||V7n(t,n,e)}function p8n(t,e){var n,r,s,o;for(o=gc(e,(ve(),Er)).Kc();o.Ob();)r=u(o.Pb(),12),n=u(X(r,(oe(),ml)),10),n&&Hf(Of(If(Nf(Mf(new tf,0),.1),t.i[e.p].d),t.i[n.p].a));for(s=gc(e,Hn).Kc();s.Ob();)r=u(s.Pb(),12),n=u(X(r,(oe(),ml)),10),n&&Hf(Of(If(Nf(Mf(new tf,0),.1),t.i[n.p].d),t.i[e.p].a))}function ect(t){var e,n,r,s,o,h;if(!t.c){if(h=new Oc,e=_L,o=e.a.zc(t,e),o==null){for(r=new Zn(Wc(t));r.e!=r.i.gc();)n=u(ar(r),89),s=lV(n),Lt(s,90)&&gs(h,ect(u(s,29))),Or(h,n);e.a.Bc(t)!=null,e.a.gc()==0}lwn(h),Uy(h),t.c=new $4((u(Dt(Qt((Lb(),Fn).o),15),19),h.i),h.g),_l(t).b&=-33}return t.c}function fkt(t){var e;if(t.c!=10)throw at(new Yr(Qr((Ur(),pU))));switch(e=t.a,e){case 110:e=10;break;case 114:e=13;break;case 116:e=9;break;case 92:case 124:case 46:case 94:case 45:case 63:case 42:case 43:case 123:case 125:case 40:case 41:case 91:case 93:break;default:throw at(new Yr(Qr((Ur(),Hh))))}return e}function p0e(t){var e,n,r,s,o;if(t.l==0&&t.m==0&&t.h==0)return"0";if(t.h==aN&&t.m==0&&t.l==0)return"-9223372036854775808";if(t.h>>19)return"-"+p0e(h7(t));for(n=t,r="";!(n.l==0&&n.m==0&&n.h==0);){if(s=Mst(EV),n=Gkt(n,s,!0),e=""+RWt(Zb),!(n.l==0&&n.m==0&&n.h==0))for(o=9-e.length;o>0;o--)e="0"+e;r=e+r}return r}function b8n(t){var e,n,r,s,o,h,d;for(e=!1,n=0,s=new G(t.d.b);s.a=t.a||!Yxt(e,n))return-1;if(HE(u(r.Kb(e),20)))return 1;for(s=0,h=u(r.Kb(e),20).Kc();h.Ob();)if(o=u(h.Pb(),18),m=o.c.i==e?o.d.i:o.c.i,d=dkt(t,m,n,r),d==-1||(s=b.Math.max(s,d),s>t.c-1))return-1;return s+1}function b0e(t,e){var n,r,s,o,h,d;if($t(e)===$t(t))return!0;if(!Lt(e,15)||(r=u(e,15),d=t.gc(),r.gc()!=d))return!1;if(h=r.Kc(),t.Yi()){for(n=0;n0){if(t._j(),e!=null){for(o=0;o>24;case 97:case 98:case 99:case 100:case 101:case 102:return t-97+10<<24>>24;case 65:case 66:case 67:case 68:case 69:case 70:return t-65+10<<24>>24;default:throw at(new jd("Invalid hexadecimal"))}}function aV(){aV=V,Q9t=new P4("SPIRAL",0),K9t=new P4("LINE_BY_LINE",1),W9t=new P4("MANHATTAN",2),G9t=new P4("JITTER",3),Hht=new P4("QUADRANTS_LINE_BY_LINE",4),X9t=new P4("QUADRANTS_MANHATTAN",5),Y9t=new P4("QUADRANTS_JITTER",6),U9t=new P4("COMBINE_LINE_BY_LINE_MANHATTAN",7),V9t=new P4("COMBINE_JITTER_MANHATTAN",8)}function m0e(t,e,n,r){var s,o,h,d,m,k;for(m=Sot(t,n),k=Sot(e,n),s=!1;m&&k&&(r||dvn(m,k,n));)h=Sot(m,n),d=Sot(k,n),HI(e),HI(t),o=m.c,_ct(m,!1),_ct(k,!1),n?(Xy(e,k.p,o),e.p=k.p,Xy(t,m.p+1,o),t.p=m.p):(Xy(t,m.p,o),t.p=m.p,Xy(e,k.p+1,o),e.p=k.p),Aa(m,null),Aa(k,null),m=h,k=d,s=!0;return s}function v0e(t){switch(t.g){case 0:return new Wet;case 1:return new NC;case 3:return new GYt;case 4:return new zJ;case 5:return new yZt;case 6:return new yM;case 2:return new OC;case 7:return new Dj;case 8:return new vM;default:throw at(new zn("No implementation is available for the layerer "+(t.f!=null?t.f:""+t.g)))}}function k8n(t,e,n,r){var s,o,h,d,m;for(s=!1,o=!1,d=new G(r.j);d.a=e.length)throw at(new Bo("Greedy SwitchDecider: Free layer not in graph."));this.c=e[t],this.e=new dI(r),aat(this.e,this.c,(ve(),Gn)),this.i=new dI(r),aat(this.i,this.c,Jn),this.f=new Bte(this.c),this.a=!o&&s.i&&!s.s&&this.c[0].k==(Un(),Ms),this.a&&F4n(this,t,e.length)}function x0e(t,e){var n,r,s,o,h,d;o=!t.B.Hc((Ml(),jP)),h=t.B.Hc(Kdt),t.a=new ale(h,o,t.c),t.n&&Gyt(t.a.n,t.n),Jnt(t.g,(A1(),xu),t.a),e||(r=new p_(1,o,t.c),r.n.a=t.k,W6(t.p,(ve(),Hn),r),s=new p_(1,o,t.c),s.n.d=t.k,W6(t.p,Er,s),d=new p_(0,o,t.c),d.n.c=t.k,W6(t.p,Gn,d),n=new p_(0,o,t.c),n.n.b=t.k,W6(t.p,Jn,n))}function T8n(t){var e,n,r;switch(e=u(X(t.d,(De(),zg)),223),e.g){case 2:n=fSn(t);break;case 3:n=(r=new fe,ms(_i(Wo(fc(fc(new ln(null,new gn(t.d.b,16)),new dJ),new gJ),new pJ),new rC),new nUt(r)),r);break;default:throw at(new Ro("Compaction not supported for "+e+" edges."))}NTn(t,n),Fa(new cr(t.g),new tUt(t))}function C8n(t,e){var n,r,s,o,h,d,m;if(e.Ug("Process directions",1),n=u(X(t,(Cc(),Mv)),88),n!=(Rs(),kd))for(s=Dr(t.b,0);s.b!=s.d.c;){switch(r=u(Ar(s),39),d=u(X(r,(ji(),pP)),17).a,m=u(X(r,bP),17).a,n.g){case 4:m*=-1;break;case 1:o=d,d=m,m=o;break;case 2:h=d,d=-m,m=h}Zt(r,pP,he(d)),Zt(r,bP,he(m))}e.Vg()}function S8n(t,e){var n;return n=new As,e&&Qo(n,u(tr(t.a,zP),96)),Lt(e,422)&&Qo(n,u(tr(t.a,qP),96)),Lt(e,366)?(Qo(n,u(tr(t.a,Po),96)),n):(Lt(e,84)&&Qo(n,u(tr(t.a,vr),96)),Lt(e,207)?(Qo(n,u(tr(t.a,bi),96)),n):Lt(e,193)?(Qo(n,u(tr(t.a,kl),96)),n):(Lt(e,326)&&Qo(n,u(tr(t.a,Ts),96)),n))}function _8n(t){var e,n,r,s,o,h,d,m;for(m=new tse,d=new G(t.a);d.a0&&e=0)return!1;if(e.p=n.b,ge(n.e,e),s==(Un(),fa)||s==uu){for(h=new G(e.j);h.at.d[d.p]&&(n+=C3t(t.b,o),Ob(t.a,he(o)))):++h;for(n+=t.b.d*h;!WC(t.a);)i4t(t.b,u(K6(t.a),17).a)}return n}function M0e(t){var e,n,r,s,o,h;return o=0,e=of(t),e.kk()&&(o|=4),t.Bb&ol&&(o|=2),Lt(t,102)?(n=u(t,19),s=yo(n),n.Bb&Fc&&(o|=32),s&&(fr(Py(s)),o|=8,h=s.t,(h>1||h==-1)&&(o|=16),s.Bb&Fc&&(o|=64)),n.Bb&po&&(o|=b3),o|=Uf):Lt(e,468)?o|=512:(r=e.kk(),r&&r.i&1&&(o|=256)),t.Bb&512&&(o|=128),o}function j8n(t,e){var n;return t.f==a0t?(n=Om($o((il(),ja),e)),t.e?n==4&&e!=(vk(),s8)&&e!=(vk(),i8)&&e!=(vk(),o0t)&&e!=(vk(),c0t):n==2):t.d&&(t.d.Hc(e)||t.d.Hc(tk($o((il(),ja),e)))||t.d.Hc(y5((il(),ja),t.b,e)))?!0:t.f&&tkt((il(),t.f),TI($o(ja,e)))?(n=Om($o(ja,e)),t.e?n==4:n==2):!1}function $8n(t){var e,n,r,s,o,h,d,m,k,T,A,P,$;for(P=-1,$=0,k=t,T=0,A=k.length;T0&&++$;++P}return $}function z8n(t,e,n,r){var s,o,h,d,m,k,T,A;return h=u(ne(n,(ai(),Jk)),8),m=h.a,T=h.b+t,s=b.Math.atan2(T,m),s<0&&(s+=xw),s+=e,s>xw&&(s-=xw),d=u(ne(r,Jk),8),k=d.a,A=d.b+t,o=b.Math.atan2(A,k),o<0&&(o+=xw),o+=e,o>xw&&(o-=xw),Z1(),$f(1e-10),b.Math.abs(s-o)<=1e-10||s==o||isNaN(s)&&isNaN(o)?0:so?1:ym(isNaN(s),isNaN(o))}function ict(t){var e,n,r,s,o,h,d;for(d=new _r,r=new G(t.a.b);r.a=t.o)throw at(new Y2t);d=e>>5,h=e&31,o=Rf(1,qr(Rf(h,1))),s?t.n[n][d]=T1(t.n[n][d],o):t.n[n][d]=sa(t.n[n][d],Gvt(o)),o=Rf(o,1),r?t.n[n][d]=T1(t.n[n][d],o):t.n[n][d]=sa(t.n[n][d],Gvt(o))}catch(m){throw m=es(m),Lt(m,333)?at(new Bo(Cut+t.o+"*"+t.p+Sut+e+ao+n+_ut)):at(m)}}function V8n(t,e,n,r){var s,o,h,d,m,k,T,A,P;for(P=new pp(new CUt(t)),d=lt(ut(V0,1),jp,10,0,[e,n]),m=0,k=d.length;m0&&(r=(!t.n&&(t.n=new Jt(Po,t,1,7)),u(Dt(t.n,0),135)).a,!r||ni(ni((e.a+=' "',e),r),'"'))),ni(pm(ni(pm(ni(pm(ni(pm((e.a+=" (",e),t.i),","),t.j)," | "),t.g),","),t.f),")"),e.a)}function I0e(t){var e,n,r;return t.Db&64?Bot(t):(e=new eh(xTt),n=t.k,n?ni(ni((e.a+=' "',e),n),'"'):(!t.n&&(t.n=new Jt(Po,t,1,7)),t.n.i>0&&(r=(!t.n&&(t.n=new Jt(Po,t,1,7)),u(Dt(t.n,0),135)).a,!r||ni(ni((e.a+=' "',e),r),'"'))),ni(pm(ni(pm(ni(pm(ni(pm((e.a+=" (",e),t.i),","),t.j)," | "),t.g),","),t.f),")"),e.a)}function K8n(t,e){var n,r,s,o,h;for(e==(i_(),_1t)&&IO(u(Ai(t.a,(Qy(),XN)),15)),s=u(Ai(t.a,(Qy(),XN)),15).Kc();s.Ob();)switch(r=u(s.Pb(),105),n=u(Oe(r.j,0),113).d.j,o=new fl(r.j),Ds(o,new cR),e.g){case 2:Mot(t,o,n,(Vm(),r2),1);break;case 1:case 0:h=O6n(o),Mot(t,new xp(o,0,h),n,(Vm(),r2),0),Mot(t,new xp(o,h,o.c.length),n,r2,1)}}function act(t,e){var n,r,s,o,h,d,m;if(e==null||e.length==0)return null;if(s=u(nu(t.a,e),143),!s){for(r=(d=new si(t.b).a.vc().Kc(),new Qi(d));r.a.Ob();)if(n=(o=u(r.a.Pb(),44),u(o.md(),143)),h=n.c,m=e.length,hn(h.substr(h.length-m,m),e)&&(e.length==h.length||Va(h,h.length-e.length-1)==46)){if(s)return null;s=n}s&&jo(t.a,e,s)}return s}function W8n(t,e){var n,r,s,o;return n=new Gi,r=u(nc(Wo(new ln(null,new gn(t.f,16)),n),jy(new we,new Fi,new Nn,new Bn,lt(ut(Ho,1),te,108,0,[(bl(),w3),sc]))),21),s=r.gc(),r=u(nc(Wo(new ln(null,new gn(e.f,16)),n),jy(new we,new Fi,new Nn,new Bn,lt(ut(Ho,1),te,108,0,[w3,sc]))),21),o=r.gc(),ss.p?(Xs(o,Er),o.d&&(d=o.o.b,e=o.a.b,o.a.b=d-e)):o.j==Er&&s.p>t.p&&(Xs(o,Hn),o.d&&(d=o.o.b,e=o.a.b,o.a.b=-(d-e)));break}return s}function HO(t,e,n,r,s){var o,h,d,m,k,T,A;if(!(Lt(e,207)||Lt(e,366)||Lt(e,193)))throw at(new zn("Method only works for ElkNode-, ElkLabel and ElkPort-objects."));return h=t.a/2,m=e.i+r-h,T=e.j+s-h,k=m+e.g+t.a,A=T+e.f+t.a,o=new Qu,Zr(o,new ae(m,T)),Zr(o,new ae(m,A)),Zr(o,new ae(k,A)),Zr(o,new ae(k,T)),d=new Wot(o),Qo(d,e),n&&hi(t.b,e,d),d}function B7(t,e,n){var r,s,o,h,d,m,k,T,A,P;for(o=new ae(e,n),T=new G(t.a);T.a1,d&&(r=new ae(s,n.b),Zr(e.a,r)),XS(e.a,lt(ut(la,1),ue,8,0,[P,A]))}function cf(){cf=V,ZG=new Ey(r0,0),cP=new Ey("NIKOLOV",1),uP=new Ey("NIKOLOV_PIXEL",2),OAt=new Ey("NIKOLOV_IMPROVED",3),NAt=new Ey("NIKOLOV_IMPROVED_PIXEL",4),IAt=new Ey("DUMMYNODE_PERCENTAGE",5),PAt=new Ey("NODECOUNT_PERCENTAGE",6),tK=new Ey("NO_BOUNDARY",7),Lv=new Ey("MODEL_ORDER_LEFT_TO_RIGHT",8),N3=new Ey("MODEL_ORDER_RIGHT_TO_LEFT",9)}function iEn(t){var e,n,r,s,o;for(r=t.length,e=new YC,o=0;o=40,h&&s7n(t),gTn(t),Fkn(t),n=Xue(t),r=0;n&&r0&&Zr(t.f,o)):(t.c[h]-=k+1,t.c[h]<=0&&t.a[h]>0&&Zr(t.e,o))))}function U0e(t,e,n,r){var s,o,h,d,m,k,T;for(m=new ae(n,r),ia(m,u(X(e,(ji(),zT)),8)),T=Dr(e.b,0);T.b!=T.d.c;)k=u(Ar(T),39),ki(k.e,m),Zr(t.b,k);for(d=u(nc(r3t(new ln(null,new gn(e.a,16))),gl(new Br,new ce,new An,lt(ut(Ho,1),te,108,0,[(bl(),sc)]))),15).Kc();d.Ob();){for(h=u(d.Pb(),65),o=Dr(h.a,0);o.b!=o.d.c;)s=u(Ar(o),8),s.a+=m.a,s.b+=m.b;Zr(t.a,h)}}function Akt(t,e){var n,r,s,o;if(0<(Lt(t,16)?u(t,16).gc():xg(t.Kc()))){if(s=e,1=0&&mo*2?(T=new Fq(A),k=tl(h)/Gl(h),m=Mct(T,e,new C6,n,r,s,k),ki(k1(T.e),m),A.c.length=0,o=0,In(A.c,T),In(A.c,h),o=tl(T)*Gl(T)+tl(h)*Gl(h)):(In(A.c,h),o+=tl(h)*Gl(h));return A}function K0e(t,e){var n,r,s,o,h,d;if(d=u(X(e,(De(),bs)),101),d==(ka(),Y0)||d==hu)for(s=new ae(e.f.a+e.d.b+e.d.c,e.f.b+e.d.d+e.d.a).b,h=new G(t.a);h.an?e:n;k<=A;++k)k==n?d=r++:(o=s[k],T=U.am(o.Lk()),k==e&&(m=k==A&&!T?r-1:r),T&&++r);return P=u(f_(t,e,n),76),d!=m&&hE(t,new jI(t.e,7,h,he(d),$.md(),m)),P}}else return u(Uot(t,e,n),76);return u(f_(t,e,n),76)}function TEn(t,e){var n,r,s,o,h,d,m;for(e.Ug("Port order processing",1),m=u(X(t,(De(),hAt)),430),r=new G(t.b);r.a=0&&(d=mvn(t,h),!(d&&(k<22?m.l|=1<>>1,h.m=T>>>1|(A&1)<<21,h.l=P>>>1|(T&1)<<21,--k;return n&&kat(m),o&&(r?(Zb=h7(t),s&&(Zb=Mce(Zb,(WE(),o9t)))):Zb=Eu(t.l,t.m,t.h)),m}function _En(t,e){var n,r,s,o,h,d,m,k,T,A;for(k=t.e[e.c.p][e.p]+1,m=e.c.a.c.length+1,d=new G(t.a);d.a0&&(qn(0,t.length),t.charCodeAt(0)==45||(qn(0,t.length),t.charCodeAt(0)==43))?1:0,r=h;rn)throw at(new jd(av+t+'"'));return d}function AEn(t){var e,n,r,s,o,h,d;for(h=new Ki,o=new G(t.a);o.a1)&&e==1&&u(t.a[t.b],10).k==(Un(),Vc)?xk(u(t.a[t.b],10),(uh(),K0)):r&&(!n||(t.c-t.b&t.a.length-1)>1)&&e==1&&u(t.a[t.c-1&t.a.length-1],10).k==(Un(),Vc)?xk(u(t.a[t.c-1&t.a.length-1],10),(uh(),h2)):(t.c-t.b&t.a.length-1)==2?(xk(u(r_(t),10),(uh(),K0)),xk(u(r_(t),10),h2)):r6n(t,s),E3t(t)}function MEn(t,e,n){var r,s,o,h,d;for(o=0,s=new Zn((!t.a&&(t.a=new Jt(bi,t,10,11)),t.a));s.e!=s.i.gc();)r=u(ar(s),27),h="",(!r.n&&(r.n=new Jt(Po,r,1,7)),r.n).i==0||(h=u(Dt((!r.n&&(r.n=new Jt(Po,r,1,7)),r.n),0),135).a),d=new Eat(o++,e,h),Qo(d,r),Zt(d,(ji(),JA),r),d.e.b=r.j+r.f/2,d.f.a=b.Math.max(r.g,1),d.e.a=r.i+r.g/2,d.f.b=b.Math.max(r.f,1),Zr(e.b,d),yu(n.f,r,d)}function IEn(t){var e,n,r,s,o;r=u(X(t,(oe(),Li)),27),o=u(ne(r,(De(),Ow)),181).Hc((Yl(),qw)),t.e||(s=u(X(t,lu),21),e=new ae(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a),s.Hc((Co(),Uh))?(Mi(r,bs,(ka(),hu)),rv(r,e.a,e.b,!1,!0)):Ie(Me(ne(r,c1t)))||rv(r,e.a,e.b,!0,!0)),o?Mi(r,Ow,en(qw)):Mi(r,Ow,(n=u(y1(xL),9),new _h(n,u(Ff(n,n.length),9),0)))}function Lkt(t,e,n){var r,s,o,h;if(e[0]>=t.length)return n.o=0,!0;switch(Va(t,e[0])){case 43:s=1;break;case 45:s=-1;break;default:return n.o=0,!0}if(++e[0],o=e[0],h=KH(t,e),h==0&&e[0]==o)return!1;if(e[0]d&&(d=s,T.c.length=0),s==d&&ge(T,new Ws(n.c.i,n)));mn(),Ds(T,t.c),Sm(t.b,m.p,T)}}function FEn(t,e){var n,r,s,o,h,d,m,k,T;for(h=new G(e.b);h.ad&&(d=s,T.c.length=0),s==d&&ge(T,new Ws(n.d.i,n)));mn(),Ds(T,t.c),Sm(t.f,m.p,T)}}function BEn(t,e){var n,r,s,o,h,d,m,k;if(k=Me(X(e,(Cc(),l8e))),k==null||(Wn(k),k)){for(cxn(t,e),s=new fe,m=Dr(e.b,0);m.b!=m.d.c;)h=u(Ar(m),39),n=w6t(t,h,null),n&&(Qo(n,e),In(s.c,n));if(t.a=null,t.b=null,s.c.length>1)for(r=new G(s);r.a=0&&d!=n&&(o=new ha(t,1,d,h,null),r?r.nj(o):r=o),n>=0&&(o=new ha(t,1,n,d==n?h:null,e),r?r.nj(o):r=o)),r}function X0e(t){var e,n,r;if(t.b==null){if(r=new dp,t.i!=null&&(Mo(r,t.i),r.a+=":"),t.f&256){for(t.f&256&&t.a!=null&&(ehn(t.i)||(r.a+="//"),Mo(r,t.a)),t.d!=null&&(r.a+="/",Mo(r,t.d)),t.f&16&&(r.a+="/"),e=0,n=t.j.length;eP?!1:(A=(m=B_(r,P,!1),m.a),T+d+A<=e.b&&($I(n,o-n.s),n.c=!0,$I(r,o-n.s),kO(r,n.s,n.t+n.d+d),r.k=!0,R4t(n.q,r),$=!0,s&&(zq(e,r),r.j=e,t.c.length>h&&(CO((vn(h,t.c.length),u(t.c[h],186)),r),(vn(h,t.c.length),u(t.c[h],186)).a.c.length==0&&Ep(t,h)))),$)}function VEn(t,e){var n,r,s,o,h,d;if(e.Ug("Partition midprocessing",1),s=new Fm,ms(_i(new ln(null,new gn(t.a,16)),new qB),new HVt(s)),s.d!=0){for(d=u(nc(a3t((o=s.i,new ln(null,(o||(s.i=new W4(s,s.c))).Nc()))),gl(new Br,new ce,new An,lt(ut(Ho,1),te,108,0,[(bl(),sc)]))),15),r=d.Kc(),n=u(r.Pb(),17);r.Ob();)h=u(r.Pb(),17),F6n(u(Ai(s,n),21),u(Ai(s,h),21)),n=h;e.Vg()}}function Z0e(t,e,n){var r,s,o,h,d,m,k,T;if(e.p==0){for(e.p=1,h=n,h||(s=new fe,o=(r=u(y1(bo),9),new _h(r,u(Ff(r,r.length),9),0)),h=new Ws(s,o)),u(h.a,15).Fc(e),e.k==(Un(),Ms)&&u(h.b,21).Fc(u(X(e,(oe(),Dc)),64)),m=new G(e.j);m.a0){if(s=u(t.Ab.g,2033),e==null){for(o=0;on.s&&dh)return ve(),Jn;break;case 4:case 3:if(T<0)return ve(),Hn;if(T+n>o)return ve(),Er}return m=(k+d/2)/h,r=(T+n/2)/o,m+r<=1&&m-r<=0?(ve(),Gn):m+r>=1&&m-r>=0?(ve(),Jn):r<.5?(ve(),Hn):(ve(),Er)}function YEn(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J;for(n=!1,T=Rt(Ht(X(e,(De(),Av)))),U=Kb*T,s=new G(e.b);s.am+U&&(J=A.g+P.g,P.a=(P.g*P.a+A.g*A.a)/J,P.g=J,A.f=P,n=!0)),o=d,A=P;return n}function rge(t,e,n,r,s,o,h){var d,m,k,T,A,P;for(P=new B6,k=e.Kc();k.Ob();)for(d=u(k.Pb(),853),A=new G(d.Rf());A.a0?d.a?(k=d.b.Mf().b,s>k&&(t.v||d.c.d.c.length==1?(h=(s-k)/2,d.d.d=h,d.d.a=h):(n=u(Oe(d.c.d,0),187).Mf().b,r=(n-k)/2,d.d.d=b.Math.max(0,r),d.d.a=s-r-k))):d.d.a=t.t+s:IS(t.u)&&(o=Zxt(d.b),o.d<0&&(d.d.d=-o.d),o.d+o.a>d.b.Mf().b&&(d.d.a=o.d+o.a-d.b.Mf().b))}function Vf(){Vf=V,jk=new _a((ai(),DP),he(1)),KU=new _a($w,80),F3e=new _a(zMt,5),S3e=new _a(sx,tT),N3e=new _a(qdt,he(1)),P3e=new _a(Hdt,(Pn(),!0)),gCt=new xm(50),I3e=new _a(Yp,gCt),hCt=AP,pCt=fL,_3e=new _a(Idt,!1),dCt=LP,D3e=R3,M3e=l2,L3e=jw,A3e=ux,O3e=j3,fCt=(u6t(),v3e),eft=E3e,GU=m3e,tft=y3e,bCt=k3e,j3e=dL,$3e=MK,R3e=MP,B3e=DK,wCt=(lk(),q3),new _a(t8,wCt)}function JEn(t,e){var n;switch(WI(t)){case 6:return ba(e);case 7:return Cy(e);case 8:return Ty(e);case 3:return Array.isArray(e)&&(n=WI(e),!(n>=14&&n<=16));case 11:return e!=null&&typeof e===Pct;case 12:return e!=null&&(typeof e===ZO||typeof e==Pct);case 0:return aot(e,t.__elementTypeId$);case 2:return $it(e)&&e.Tm!==yt;case 1:return $it(e)&&e.Tm!==yt||aot(e,t.__elementTypeId$);default:return!0}}function ige(t,e){var n,r,s,o;return r=b.Math.min(b.Math.abs(t.c-(e.c+e.b)),b.Math.abs(t.c+t.b-e.c)),o=b.Math.min(b.Math.abs(t.d-(e.d+e.a)),b.Math.abs(t.d+t.a-e.d)),n=b.Math.abs(t.c+t.b/2-(e.c+e.b/2)),n>t.b/2+e.b/2||(s=b.Math.abs(t.d+t.a/2-(e.d+e.a/2)),s>t.a/2+e.a/2)?1:n==0&&s==0?0:n==0?o/s+1:s==0?r/n+1:b.Math.min(r/n,o/s)+1}function ZEn(t,e){var n,r,s,o,h,d,m;for(o=0,d=0,m=0,s=new G(t.f.e);s.a0&&t.d!=(WS(),ift)&&(d+=h*(r.d.a+t.a[e.a][r.a]*(e.d.a-r.d.a)/n)),n>0&&t.d!=(WS(),nft)&&(m+=h*(r.d.b+t.a[e.a][r.a]*(e.d.b-r.d.b)/n)));switch(t.d.g){case 1:return new ae(d/o,e.d.b);case 2:return new ae(e.d.a,m/o);default:return new ae(d/o,m/o)}}function sge(t){var e,n,r,s,o,h;for(n=(!t.a&&(t.a=new Ps(vh,t,5)),t.a).i+2,h=new wu(n),ge(h,new ae(t.j,t.k)),ms(new ln(null,(!t.a&&(t.a=new Ps(vh,t,5)),new gn(t.a,16))),new pGt(h)),ge(h,new ae(t.b,t.c)),e=1;e0&&(aO(m,!1,(Rs(),Uo)),aO(m,!0,tc)),Cu(e.g,new mXt(t,n)),hi(t.g,e,n)}function cge(){cge=V;var t;for(p9t=lt(ut(Fr,1),ii,28,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]),Dht=Vt(Fr,ii,28,37,15,1),Xve=lt(ut(Fr,1),ii,28,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]),b9t=Vt(x2,cut,28,37,14,1),t=2;t<=36;t++)Dht[t]=Ys(b.Math.pow(t,p9t[t])),b9t[t]=_O(rN,Dht[t])}function t7n(t){var e;if((!t.a&&(t.a=new Jt(Wi,t,6,6)),t.a).i!=1)throw at(new zn(Fwe+(!t.a&&(t.a=new Jt(Wi,t,6,6)),t.a).i));return e=new Qu,iO(u(Dt((!t.b&&(t.b=new kn(vr,t,4,7)),t.b),0),84))&&Ma(e,Xpe(t,iO(u(Dt((!t.b&&(t.b=new kn(vr,t,4,7)),t.b),0),84)),!1)),iO(u(Dt((!t.c&&(t.c=new kn(vr,t,5,8)),t.c),0),84))&&Ma(e,Xpe(t,iO(u(Dt((!t.c&&(t.c=new kn(vr,t,5,8)),t.c),0),84)),!0)),e}function uge(t,e){var n,r,s,o,h;for(e.d?s=t.a.c==(Gd(),Dv)?ua(e.b):_s(e.b):s=t.a.c==(Gd(),Gp)?ua(e.b):_s(e.b),o=!1,r=new rr(sr(s.a.Kc(),new z));Mr(r);)if(n=u(dr(r),18),h=Ie(t.a.f[t.a.g[e.b.p].p]),!(!h&&!go(n)&&n.c.i.c==n.d.i.c)&&!(Ie(t.a.n[t.a.g[e.b.p].p])||Ie(t.a.n[t.a.g[e.b.p].p]))&&(o=!0,x1(t.b,t.a.g[tvn(n,e.b).p])))return e.c=!0,e.a=n,e;return e.c=o,e.a=null,e}function Mkt(t,e,n){var r,s,o,h,d,m,k;if(r=n.gc(),r==0)return!1;if(t.Pj())if(m=t.Qj(),z5t(t,e,n),h=r==1?t.Ij(3,null,n.Kc().Pb(),e,m):t.Ij(5,null,n,e,m),t.Mj()){for(d=r<100?null:new xb(r),o=e+r,s=e;s0){for(h=0;h>16==-15&&t.Cb.Yh()&&Vst(new jst(t.Cb,9,13,n,t.c,Np(Al(u(t.Cb,62)),t))):Lt(t.Cb,90)&&t.Db>>16==-23&&t.Cb.Yh()&&(e=t.c,Lt(e,90)||(e=(wn(),xf)),Lt(n,90)||(n=(wn(),xf)),Vst(new jst(t.Cb,9,10,n,e,Np(Wc(u(t.Cb,29)),t)))))),t.c}function r7n(t,e,n){var r,s,o,h,d,m,k,T,A;for(n.Ug("Hyperedge merging",1),_xn(t,e),m=new La(e.b,0);m.b0,d=gH(e,o),Umt(n?d.b:d.g,e),s5(d).c.length==1&&hs(r,d,r.c.b,r.c),s=new Ws(o,e),Ob(t.o,s),zu(t.e.a,o))}function bge(t,e){var n,r,s,o,h,d,m;return r=b.Math.abs(zz(t.b).a-zz(e.b).a),d=b.Math.abs(zz(t.b).b-zz(e.b).b),s=0,m=0,n=1,h=1,r>t.b.b/2+e.b.b/2&&(s=b.Math.min(b.Math.abs(t.b.c-(e.b.c+e.b.b)),b.Math.abs(t.b.c+t.b.b-e.b.c)),n=1-s/r),d>t.b.a/2+e.b.a/2&&(m=b.Math.min(b.Math.abs(t.b.d-(e.b.d+e.b.a)),b.Math.abs(t.b.d+t.b.a-e.b.d)),h=1-m/d),o=b.Math.min(n,h),(1-o)*b.Math.sqrt(r*r+d*d)}function a7n(t){var e,n,r,s;for(Dct(t,t.e,t.f,(Bm(),c2),!0,t.c,t.i),Dct(t,t.e,t.f,c2,!1,t.c,t.i),Dct(t,t.e,t.f,Z5,!0,t.c,t.i),Dct(t,t.e,t.f,Z5,!1,t.c,t.i),n7n(t,t.c,t.e,t.f,t.i),r=new La(t.i,0);r.b=65;n--)_d[n]=n-65<<24>>24;for(r=122;r>=97;r--)_d[r]=r-97+26<<24>>24;for(s=57;s>=48;s--)_d[s]=s-48+52<<24>>24;for(_d[43]=62,_d[47]=63,o=0;o<=25;o++)nb[o]=65+o&js;for(h=26,m=0;h<=51;++h,m++)nb[h]=97+m&js;for(t=52,d=0;t<=61;++t,d++)nb[t]=48+d&js;nb[62]=43,nb[63]=47}function wge(t,e){var n,r,s,o,h,d;return s=O4t(t),d=O4t(e),s==d?t.e==e.e&&t.a<54&&e.a<54?t.fe.f?1:0:(r=t.e-e.e,n=(t.d>0?t.d:b.Math.floor((t.a-1)*Tbe)+1)-(e.d>0?e.d:b.Math.floor((e.a-1)*Tbe)+1),n>r+1?s:n0&&(h=Z4(h,Age(r))),Sle(o,h))):sk&&(P=0,$+=m+e,m=0),B7(h,P,$),n=b.Math.max(n,P+T.a),m=b.Math.max(m,T.b),P+=T.a+e;return new ae(n+e,$+m+e)}function Pkt(t,e){var n,r,s,o,h,d,m;if(!ed(t))throw at(new Ro(Pwe));if(r=ed(t),o=r.g,s=r.f,o<=0&&s<=0)return ve(),bc;switch(d=t.i,m=t.j,e.g){case 2:case 1:if(d<0)return ve(),Gn;if(d+t.g>o)return ve(),Jn;break;case 4:case 3:if(m<0)return ve(),Hn;if(m+t.f>s)return ve(),Er}return h=(d+t.g/2)/o,n=(m+t.f/2)/s,h+n<=1&&h-n<=0?(ve(),Gn):h+n>=1&&h-n>=0?(ve(),Jn):n<.5?(ve(),Hn):(ve(),Er)}function u7n(t,e,n,r,s){var o,h;if(o=Qa(sa(e[0],So),sa(r[0],So)),t[0]=qr(o),o=_m(o,32),n>=s){for(h=1;h0&&(s.b[h++]=0,s.b[h++]=o.b[0]-1),e=1;e0&&(H(m,m.d-s.d),s.c==(C1(),o2)&&N(m,m.a-s.d),m.d<=0&&m.i>0&&hs(e,m,e.c.b,e.c)));for(o=new G(t.f);o.a0&&(q(d,d.i-s.d),s.c==(C1(),o2)&&j(d,d.b-s.d),d.i<=0&&d.d>0&&hs(n,d,n.c.b,n.c)))}function f7n(t,e,n,r,s){var o,h,d,m,k,T,A,P,$;for(mn(),Ds(t,new U8),h=bI(t),$=new fe,P=new fe,d=null,m=0;h.b!=0;)o=u(h.b==0?null:(ur(h.b!=0),Oh(h,h.a.a)),163),!d||tl(d)*Gl(d)/21&&(m>tl(d)*Gl(d)/2||h.b==0)&&(A=new Fq(P),T=tl(d)/Gl(d),k=Mct(A,e,new C6,n,r,s,T),ki(k1(A.e),k),d=A,In($.c,A),m=0,P.c.length=0));return Hs($,P),$}function Xc(t,e,n,r,s){pg();var o,h,d,m,k,T,A;if(Syt(t,"src"),Syt(n,"dest"),A=Wl(t),m=Wl(n),Uvt((A.i&4)!=0,"srcType is not an array"),Uvt((m.i&4)!=0,"destType is not an array"),T=A.c,h=m.c,Uvt(T.i&1?T==h:(h.i&1)==0,"Array types don't match"),Jpn(t,e,n,r,s),!(T.i&1)&&A!=m)if(k=nw(t),o=nw(n),$t(t)===$t(n)&&er;)ls(o,d,k[--e]);else for(d=r+s;r0),r.a.Xb(r.c=--r.b),A>P+m&&Kl(r);for(h=new G($);h.a0),r.a.Xb(r.c=--r.b)}}function g7n(){yi();var t,e,n,r,s,o;if(l0t)return l0t;for(t=new ih(4),a3(t,Gb(wht,!0)),$_(t,Gb("M",!0)),$_(t,Gb("C",!0)),o=new ih(4),r=0;r<11;r++)iu(o,r,r);return e=new ih(4),a3(e,Gb("M",!0)),iu(e,4448,4607),iu(e,65438,65439),s=new yS(2),gw(s,t),gw(s,OL),n=new yS(2),n.Jm(Mz(o,Gb("L",!0))),n.Jm(e),n=new By(3,n),n=new Cyt(s,n),l0t=n,l0t}function s3(t,e){var n,r,s,o,h,d,m,k;for(n=new RegExp(e,"g"),m=Vt(Pe,ue,2,0,6,1),r=0,k=t,o=null;;)if(d=n.exec(k),d==null||k==""){m[r]=k;break}else h=d.index,m[r]=(Da(0,h,k.length),k.substr(0,h)),k=Lh(k,h+d[0].length,k.length),n.lastIndex=0,o==k&&(m[r]=(Da(0,1,k.length),k.substr(0,1)),k=(qn(1,k.length+1),k.substr(1))),o=k,++r;if(t.length>0){for(s=m.length;s>0&&m[s-1]=="";)--s;s0&&(A-=r[0]+t.c,r[0]+=t.c),r[2]>0&&(A-=r[2]+t.c),r[1]=b.Math.max(r[1],A),Pz(t.a[1],n.c+e.b+r[0]-(r[1]-A)/2,r[1]);for(o=t.a,d=0,k=o.length;d0?(t.n.c.length-1)*t.i:0,r=new G(t.n);r.a1)for(r=Dr(s,0);r.b!=r.d.c;)for(n=u(Ar(r),235),o=0,m=new G(n.e);m.a0&&(e[0]+=t.c,A-=e[0]),e[2]>0&&(A-=e[2]+t.c),e[1]=b.Math.max(e[1],A),Fz(t.a[1],r.d+n.d+e[0]-(e[1]-A)/2,e[1]);else for(U=r.d+n.d,$=r.a-n.d-n.a,h=t.a,m=0,T=h.length;m0||Wm(s.b.d,t.b.d+t.b.a)==0&&r.b<0||Wm(s.b.d+s.b.a,t.b.d)==0&&r.b>0){d=0;break}}else d=b.Math.min(d,b1e(t,s,r));d=b.Math.min(d,xge(t,o,d,r))}return d}function KO(t,e){var n,r,s,o,h,d,m;if(t.b<2)throw at(new zn("The vector chain must contain at least a source and a target point."));for(s=(ur(t.b!=0),u(t.a.a.c,8)),rI(e,s.a,s.b),m=new j6((!e.a&&(e.a=new Ps(vh,e,5)),e.a)),h=Dr(t,1);h.a=0&&o!=n))throw at(new zn(AN));for(s=0,m=0;mRt(td(h.g,h.d[0]).a)?(ur(m.b>0),m.a.Xb(m.c=--m.b),Ly(m,h),s=!0):d.e&&d.e.gc()>0&&(o=(!d.e&&(d.e=new fe),d.e).Mc(e),k=(!d.e&&(d.e=new fe),d.e).Mc(n),(o||k)&&((!d.e&&(d.e=new fe),d.e).Fc(h),++h.c));s||In(r.c,h)}function x7n(t,e,n){var r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht;return A=t.a.i+t.a.g/2,P=t.a.i+t.a.g/2,U=e.i+e.g/2,tt=e.j+e.f/2,d=new ae(U,tt),k=u(ne(e,(ai(),Jk)),8),k.a=k.a+A,k.b=k.b+P,o=(d.b-k.b)/(d.a-k.a),r=d.b-o*d.a,J=n.i+n.g/2,ht=n.j+n.f/2,m=new ae(J,ht),T=u(ne(n,Jk),8),T.a=T.a+A,T.b=T.b+P,h=(m.b-T.b)/(m.a-T.a),s=m.b-h*m.a,$=(r-s)/(h-o),k.a<$&&d.a<$||$>>0,"0"+e.toString(16)),r="\\x"+Lh(n,n.length-2,n.length)):t>=po?(n=(e=t>>>0,"0"+e.toString(16)),r="\\v"+Lh(n,n.length-6,n.length)):r=""+String.fromCharCode(t&js)}return r}function Cge(t){var e,n,r;if(z4(u(X(t,(De(),bs)),101)))for(n=new G(t.j);n.a=e.o&&n.f<=e.f||e.a*.5<=n.f&&e.a*1.5>=n.f){if(h=u(Oe(e.n,e.n.c.length-1),209),h.e+h.d+n.g+s<=r&&(o=u(Oe(e.n,e.n.c.length-1),209),o.f-t.f+n.f<=t.b||t.a.c.length==1))return O5t(e,n),!0;if(e.s+n.g<=r&&(e.t+e.d+n.f+s<=t.b||t.a.c.length==1))return ge(e.b,n),d=u(Oe(e.n,e.n.c.length-1),209),ge(e.n,new aq(e.s,d.f+d.a+e.i,e.i)),dxt(u(Oe(e.n,e.n.c.length-1),209),n),vge(e,n),!0}return!1}function _ge(t,e,n){var r,s,o,h;return t.Pj()?(s=null,o=t.Qj(),r=t.Ij(1,h=Kst(t,e,n),n,e,o),t.Mj()&&!(t.Yi()&&h!=null?Ti(h,n):$t(h)===$t(n))?(h!=null&&(s=t.Oj(h,s)),s=t.Nj(n,s),t.Tj()&&(s=t.Wj(h,n,s)),s?(s.nj(r),s.oj()):t.Jj(r)):(t.Tj()&&(s=t.Wj(h,n,s)),s?(s.nj(r),s.oj()):t.Jj(r)),h):(h=Kst(t,e,n),t.Mj()&&!(t.Yi()&&h!=null?Ti(h,n):$t(h)===$t(n))&&(s=null,h!=null&&(s=t.Oj(h,null)),s=t.Nj(n,s),s&&s.oj()),h)}function A7n(t,e){var n,r,s,o,h;if(e.Ug("Path-Like Graph Wrapping",1),t.b.c.length==0){e.Vg();return}if(s=new q6t(t),h=(s.i==null&&(s.i=N4t(s,new bR)),Rt(s.i)*s.f),n=h/(s.i==null&&(s.i=N4t(s,new bR)),Rt(s.i)),s.b>n){e.Vg();return}switch(u(X(t,(De(),d1t)),351).g){case 2:o=new mR;break;case 0:o=new oC;break;default:o=new vR}if(r=o.og(t,s),!o.pg())switch(u(X(t,WG),352).g){case 2:r=w1e(s,r);break;case 1:r=ofe(s,r)}TTn(t,s,r),e.Vg()}function N_(t,e){var n,r,s,o,h,d,m,k;e%=24,t.q.getHours()!=e&&(r=new b.Date(t.q.getTime()),r.setDate(r.getDate()+1),d=t.q.getTimezoneOffset()-r.getTimezoneOffset(),d>0&&(m=d/60|0,k=d%60,s=t.q.getDate(),n=t.q.getHours(),n+m>=24&&++s,o=new b.Date(t.q.getFullYear(),t.q.getMonth(),s,e+m,t.q.getMinutes()+k,t.q.getSeconds(),t.q.getMilliseconds()),t.q.setTime(o.getTime()))),h=t.q.getTime(),t.q.setTime(h+36e5),t.q.getHours()!=e&&t.q.setTime(h)}function L7n(t,e){var n,r,s,o;if(qfn(t.d,t.e),t.c.a.$b(),Rt(Ht(X(e.j,(De(),FG))))!=0||Rt(Ht(X(e.j,FG)))!=0)for(n=S5,$t(X(e.j,U0))!==$t((Wd(),Up))&&Zt(e.j,(oe(),i2),(Pn(),!0)),o=u(X(e.j,$A),17).a,s=0;ss&&++k,ge(h,(vn(d+k,e.c.length),u(e.c[d+k],17))),m+=(vn(d+k,e.c.length),u(e.c[d+k],17)).a-r,++n;n=tt&&t.e[m.p]>U*t.b||At>=n*tt)&&(In(P.c,d),d=new fe,Ma(h,o),o.a.$b(),k-=T,$=b.Math.max($,k*t.b+J),k+=At,Tt=At,At=0,T=0,J=0);return new Ws($,P)}function pct(t){var e,n,r,s,o,h,d;if(!t.d){if(d=new Jtt,e=_L,o=e.a.zc(t,e),o==null){for(r=new Zn(Yo(t));r.e!=r.i.gc();)n=u(ar(r),29),gs(d,pct(n));e.a.Bc(t)!=null,e.a.gc()==0}for(h=d.i,s=(!t.q&&(t.q=new Jt(vf,t,11,10)),new Zn(t.q));s.e!=s.i.gc();++h)u(ar(s),411);gs(d,(!t.q&&(t.q=new Jt(vf,t,11,10)),t.q)),Uy(d),t.d=new $4((u(Dt(Qt((Lb(),Fn).o),9),19),d.i),d.g),t.e=u(d.g,688),t.e==null&&(t.e=DTe),_l(t).b&=-17}return t.d}function $7(t,e,n,r){var s,o,h,d,m,k;if(k=Lu(t.e.Dh(),e),m=0,s=u(t.g,124),vo(),u(e,69).xk()){for(h=0;h1||U==-1)if(A=u(J,71),P=u(T,71),A.dc())P.$b();else for(h=!!yo(e),o=0,d=t.a?A.Kc():A.Ii();d.Ob();)k=u(d.Pb(),58),s=u(od(t,k),58),s?(h?(m=P.dd(s),m==-1?P.Gi(o,s):o!=m&&P.Ui(o,s)):P.Gi(o,s),++o):t.b&&!h&&(P.Gi(o,k),++o);else J==null?T.Wb(null):(s=od(t,J),s==null?t.b&&!yo(e)&&T.Wb(J):T.Wb(s))}function N7n(t,e){var n,r,s,o,h,d,m,k;for(n=new gQ,s=new rr(sr(ua(e).a.Kc(),new z));Mr(s);)if(r=u(dr(s),18),!go(r)&&(d=r.c.i,Yxt(d,QU))){if(k=dkt(t,d,QU,XU),k==-1)continue;n.b=b.Math.max(n.b,k),!n.a&&(n.a=new fe),ge(n.a,d)}for(h=new rr(sr(_s(e).a.Kc(),new z));Mr(h);)if(o=u(dr(h),18),!go(o)&&(m=o.d.i,Yxt(m,XU))){if(k=dkt(t,m,XU,QU),k==-1)continue;n.d=b.Math.max(n.d,k),!n.c&&(n.c=new fe),ge(n.c,m)}return n}function P7n(t,e,n,r){var s,o,h,d,m,k,T;if(n.d.i!=e.i){for(s=new Ig(t),y(s,(Un(),fa)),Zt(s,(oe(),Li),n),Zt(s,(De(),bs),(ka(),hu)),In(r.c,s),h=new Yc,hc(h,s),Xs(h,(ve(),Gn)),d=new Yc,hc(d,s),Xs(d,Jn),T=n.d,xa(n,h),o=new Pm,Qo(o,n),Zt(o,Vo,null),Xa(o,d),xa(o,T),k=new La(n.b,0);k.b1e6)throw at(new f$("power of ten too big"));if(t<=xi)return nk(RO(Bk[1],e),e);for(r=RO(Bk[1],xi),s=r,n=Pc(t-xi),e=Ys(t%xi);$c(n,xi)>0;)s=Z4(s,r),n=sf(n,xi);for(s=Z4(s,RO(Bk[1],e)),s=nk(s,xi),n=Pc(t-xi);$c(n,xi)>0;)s=nk(s,xi),n=sf(n,xi);return s=nk(s,e),s}function Lge(t){var e,n,r,s,o,h,d,m,k,T;for(m=new G(t.a);m.ak&&r>k)T=d,k=Rt(e.p[d.p])+Rt(e.d[d.p])+d.o.b+d.d.a;else{s=!1,n._g()&&n.bh("bk node placement breaks on "+d+" which should have been after "+T);break}if(!s)break}return n._g()&&n.bh(e+" is feasible: "+s),s}function jkt(t,e,n,r){var s,o,h,d,m,k,T,A,P;if(o=new Ig(t),y(o,(Un(),uu)),Zt(o,(De(),bs),(ka(),hu)),s=0,e){for(h=new Yc,Zt(h,(oe(),Li),e),Zt(o,Li,e.i),Xs(h,(ve(),Gn)),hc(h,o),P=Kd(e.e),k=P,T=0,A=k.length;T0){if(s<0&&T.a&&(s=m,o=k[0],r=0),s>=0){if(d=T.b,m==s&&(d-=r++,d==0))return 0;if(!Ope(e,k,T,d,h)){m=s-1,k[0]=o;continue}}else if(s=-1,!Ope(e,k,T,0,h))return 0}else{if(s=-1,Va(T.c,0)==32){if(A=k[0],Oae(e,k),k[0]>A)continue}else if(Ehn(e,T.c,k[0])){k[0]+=T.c.length;continue}return 0}return CCn(h,n)?k[0]:0}function z7n(t,e,n){var r,s,o,h,d,m,k,T,A,P;for(T=new Rz(new e$(n)),d=Vt(Fl,$0,28,t.f.e.c.length,16,1),Eyt(d,d.length),n[e.a]=0,k=new G(t.f.e);k.a=0&&!u5(t,T,A);)--A;s[T]=A}for($=0;$=0&&!u5(t,d,U);)--d;o[U]=d}for(m=0;me[P]&&Pr[m]&&cV(t,m,P,!1,!0)}function $kt(t){var e,n,r,s,o,h,d,m;n=Ie(Me(X(t,(Vf(),_3e)))),o=t.a.c.d,d=t.a.d.d,n?(h=qd(ia(new ae(d.a,d.b),o),.5),m=qd(Oa(t.e),.5),e=ia(ki(new ae(o.a,o.b),h),m),Xmt(t.d,e)):(s=Rt(Ht(X(t.a,F3e))),r=t.d,o.a>=d.a?o.b>=d.b?(r.a=d.a+(o.a-d.a)/2+s,r.b=d.b+(o.b-d.b)/2-s-t.e.b):(r.a=d.a+(o.a-d.a)/2+s,r.b=o.b+(d.b-o.b)/2+s):o.b>=d.b?(r.a=o.a+(d.a-o.a)/2+s,r.b=d.b+(o.b-d.b)/2+s):(r.a=o.a+(d.a-o.a)/2+s,r.b=o.b+(d.b-o.b)/2-s-t.e.b))}function F_(t){var e,n,r,s,o,h,d,m;if(!t.f){if(m=new cM,d=new cM,e=_L,h=e.a.zc(t,e),h==null){for(o=new Zn(Yo(t));o.e!=o.i.gc();)s=u(ar(o),29),gs(m,F_(s));e.a.Bc(t)!=null,e.a.gc()==0}for(r=(!t.s&&(t.s=new Jt(Wu,t,21,17)),new Zn(t.s));r.e!=r.i.gc();)n=u(ar(r),179),Lt(n,102)&&Or(d,u(n,19));Uy(d),t.r=new yte(t,(u(Dt(Qt((Lb(),Fn).o),6),19),d.i),d.g),gs(m,t.r),Uy(m),t.f=new $4((u(Dt(Qt(Fn.o),5),19),m.i),m.g),_l(t).b&=-3}return t.f}function Mge(t){wm(t,new dw(gm(hm(dm(fm(new G1,vw),"ELK DisCo"),"Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."),new g1))),le(t,vw,Lut,Se(cCt)),le(t,vw,Dut,Se(Xht)),le(t,vw,Dk,Se(f3e)),le(t,vw,ov,Se(oCt)),le(t,vw,A8t,Se(b3e)),le(t,vw,L8t,Se(p3e)),le(t,vw,_8t,Se(w3e)),le(t,vw,D8t,Se(g3e)),le(t,vw,B8t,Se(d3e)),le(t,vw,R8t,Se(Yht)),le(t,vw,j8t,Se(aCt)),le(t,vw,$8t,Se(HU))}function fV(){fV=V,LIt=lt(ut(Yh,1),Zd,28,15,[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70]),aTe=new RegExp(`[ +\r\f]+`);try{TL=lt(ut(E_n,1),Ln,2114,0,[new AM((wmt(),mH("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",hI((h$(),h$(),mA))))),new AM(mH("yyyy-MM-dd'T'HH:mm:ss'.'SSS",hI(mA))),new AM(mH("yyyy-MM-dd'T'HH:mm:ss",hI(mA))),new AM(mH("yyyy-MM-dd'T'HH:mm",hI(mA))),new AM(mH("yyyy-MM-dd",hI(mA)))])}catch(t){if(t=es(t),!Lt(t,82))throw at(t)}}function H7n(t,e){var n,r,s,o;if(s=Dl(t.d,1)!=0,r=ykt(t,e),r==0&&Ie(Me(X(e.j,(oe(),i2)))))return 0;!Ie(Me(X(e.j,(oe(),i2))))&&!Ie(Me(X(e.j,U5)))||$t(X(e.j,(De(),U0)))===$t((Wd(),Up))?e.c.mg(e.e,s):s=Ie(Me(X(e.j,i2))),qO(t,e,s,!0),Ie(Me(X(e.j,U5)))&&Zt(e.j,U5,(Pn(),!1)),Ie(Me(X(e.j,i2)))&&(Zt(e.j,i2,(Pn(),!1)),Zt(e.j,U5,!0)),n=ykt(t,e);do{if(I4t(t),n==0)return 0;s=!s,o=n,qO(t,e,s,!1),n=ykt(t,e)}while(o>n);return o}function Ige(t,e){var n,r,s,o;if(s=Dl(t.d,1)!=0,r=GH(t,e),r==0&&Ie(Me(X(e.j,(oe(),i2)))))return 0;!Ie(Me(X(e.j,(oe(),i2))))&&!Ie(Me(X(e.j,U5)))||$t(X(e.j,(De(),U0)))===$t((Wd(),Up))?e.c.mg(e.e,s):s=Ie(Me(X(e.j,i2))),qO(t,e,s,!0),Ie(Me(X(e.j,U5)))&&Zt(e.j,U5,(Pn(),!1)),Ie(Me(X(e.j,i2)))&&(Zt(e.j,i2,(Pn(),!1)),Zt(e.j,U5,!0)),n=GH(t,e);do{if(I4t(t),n==0)return 0;s=!s,o=n,qO(t,e,s,!1),n=GH(t,e)}while(o>n);return o}function zkt(t,e,n,r){var s,o,h,d,m,k,T,A,P;return m=ia(new ae(n.a,n.b),t),k=m.a*e.b-m.b*e.a,T=e.a*r.b-e.b*r.a,A=(m.a*r.b-m.b*r.a)/T,P=k/T,T==0?k==0?(s=ki(new ae(n.a,n.b),qd(new ae(r.a,r.b),.5)),o=Nb(t,s),h=Nb(ki(new ae(t.a,t.b),e),s),d=b.Math.sqrt(r.a*r.a+r.b*r.b)*.5,o=0&&A<=1&&P>=0&&P<=1?ki(new ae(t.a,t.b),qd(new ae(e.a,e.b),A)):null}function V7n(t,e,n){var r,s,o,h,d;if(r=u(X(t,(De(),t1t)),21),n.a>e.a&&(r.Hc((fw(),cL))?t.c.a+=(n.a-e.a)/2:r.Hc(uL)&&(t.c.a+=n.a-e.a)),n.b>e.b&&(r.Hc((fw(),hL))?t.c.b+=(n.b-e.b)/2:r.Hc(lL)&&(t.c.b+=n.b-e.b)),u(X(t,(oe(),lu)),21).Hc((Co(),Uh))&&(n.a>e.a||n.b>e.b))for(d=new G(t.a);d.ae.a&&(r.Hc((fw(),cL))?t.c.a+=(n.a-e.a)/2:r.Hc(uL)&&(t.c.a+=n.a-e.a)),n.b>e.b&&(r.Hc((fw(),hL))?t.c.b+=(n.b-e.b)/2:r.Hc(lL)&&(t.c.b+=n.b-e.b)),u(X(t,(oe(),lu)),21).Hc((Co(),Uh))&&(n.a>e.a||n.b>e.b))for(h=new G(t.a);h.a0?t.i:0)>e&&m>0&&(o=0,h+=m+t.i,s=b.Math.max(s,P),r+=m+t.i,m=0,P=0,n&&(++A,ge(t.n,new aq(t.s,h,t.i))),d=0),P+=k.g+(d>0?t.i:0),m=b.Math.max(m,k.f),n&&dxt(u(Oe(t.n,A),209),k),o+=k.g+(d>0?t.i:0),++d;return s=b.Math.max(s,P),r+=m,n&&(t.r=s,t.d=r,wxt(t.j)),new Ah(t.s,t.t,s,r)}function bct(t){var e,n,r,s,o,h,d,m,k,T,A,P;for(t.b=!1,A=Zi,m=Vs,P=Zi,k=Vs,r=t.e.a.ec().Kc();r.Ob();)for(n=u(r.Pb(),272),s=n.a,A=b.Math.min(A,s.c),m=b.Math.max(m,s.c+s.b),P=b.Math.min(P,s.d),k=b.Math.max(k,s.d+s.a),h=new G(n.c);h.at.o.a&&(T=(m-t.o.a)/2,d.b=b.Math.max(d.b,T),d.c=b.Math.max(d.c,T))}}function W7n(t){var e,n,r,s,o,h,d,m;for(o=new Sre,Cin(o,(ck(),KEe)),r=(s=cat(t,Vt(Pe,ue,2,0,6,1)),new gr(new hl(new crt(t,s).b)));r.bd?1:-1:o5t(t.a,e.a,o),s==-1)A=-m,T=h==m?Ost(e.a,d,t.a,o):Pst(e.a,d,t.a,o);else if(A=h,h==m){if(s==0)return Xd(),yA;T=Ost(t.a,o,e.a,d)}else T=Pst(t.a,o,e.a,d);return k=new Y2(A,T.length,T),qS(k),k}function Y7n(t,e){var n,r,s,o;if(o=pge(e),!e.c&&(e.c=new Jt(kl,e,9,9)),ms(new ln(null,(!e.c&&(e.c=new Jt(kl,e,9,9)),new gn(e.c,16))),new xVt(o)),s=u(X(o,(oe(),lu)),21),z9n(e,s),s.Hc((Co(),Uh)))for(r=new Zn((!e.c&&(e.c=new Jt(kl,e,9,9)),e.c));r.e!=r.i.gc();)n=u(ar(r),123),bCn(t,e,o,n);return u(ne(e,(De(),Ow)),181).gc()!=0&&o0e(e,o),Ie(Me(X(o,cAt)))&&s.Fc(_G),qi(o,sP)&&pWt(new V5t(Rt(Ht(X(o,sP)))),o),$t(ne(e,A3))===$t((Ag(),Xp))?$Sn(t,e,o):TSn(t,e,o),o}function X7n(t){var e,n,r,s,o,h,d,m;for(s=new G(t.b);s.a0?Lh(n.a,0,o-1):""):(Da(0,o-1,t.length),t.substr(0,o-1)):n?n.a:t}function Q7n(t,e){var n,r,s,o,h,d,m;for(e.Ug("Sort By Input Model "+X(t,(De(),U0)),1),s=0,r=new G(t.b);r.a=t.b.length?(o[s++]=h.b[r++],o[s++]=h.b[r++]):r>=h.b.length?(o[s++]=t.b[n++],o[s++]=t.b[n++]):h.b[r]0?t.i:0)),++e;for(_5t(t.n,m),t.d=n,t.r=r,t.g=0,t.f=0,t.e=0,t.o=Zi,t.p=Zi,o=new G(t.b);o.a0&&(s=(!t.n&&(t.n=new Jt(Po,t,1,7)),u(Dt(t.n,0),135)).a,!s||ni(ni((e.a+=' "',e),s),'"'))),n=(!t.b&&(t.b=new kn(vr,t,4,7)),!(t.b.i<=1&&(!t.c&&(t.c=new kn(vr,t,5,8)),t.c.i<=1))),n?e.a+=" [":e.a+=" ",ni(e,Fmt(new ert,new Zn(t.b))),n&&(e.a+="]"),e.a+=But,n&&(e.a+="["),ni(e,Fmt(new ert,new Zn(t.c))),n&&(e.a+="]"),e.a)}function Z7n(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se,Ce,rn,Ze,On;for(Wt=t.c,se=e.c,n=Xo(Wt.a,t,0),r=Xo(se.a,e,0),At=u(Ym(t,(To(),vl)).Kc().Pb(),12),Ze=u(Ym(t,ku).Kc().Pb(),12),Bt=u(Ym(e,vl).Kc().Pb(),12),On=u(Ym(e,ku).Kc().Pb(),12),ht=Kd(At.e),Ce=Kd(Ze.g),Tt=Kd(Bt.e),rn=Kd(On.g),Xy(t,r,se),h=Tt,T=0,U=h.length;TT?new J2((C1(),F3),n,e,k-T):k>0&&T>0&&(new J2((C1(),F3),e,n,0),new J2(F3,n,e,0))),h)}function nTn(t,e,n){var r,s,o;for(t.a=new fe,o=Dr(e.b,0);o.b!=o.d.c;){for(s=u(Ar(o),39);u(X(s,(Cc(),h0)),17).a>t.a.c.length-1;)ge(t.a,new Ws(S5,E7t));r=u(X(s,h0),17).a,n==(Rs(),Uo)||n==tc?(s.e.aRt(Ht(u(Oe(t.a,r),42).b))&&re(u(Oe(t.a,r),42),s.e.a+s.f.a)):(s.e.bRt(Ht(u(Oe(t.a,r),42).b))&&re(u(Oe(t.a,r),42),s.e.b+s.f.b))}}function Pge(t,e,n,r){var s,o,h,d,m,k,T;if(o=fH(r),d=Ie(Me(X(r,(De(),nAt)))),(d||Ie(Me(X(t,zG))))&&!z4(u(X(t,bs),101)))s=hk(o),m=Dkt(t,n,n==(To(),ku)?s:bO(s));else switch(m=new Yc,hc(m,t),e?(T=m.n,T.a=e.a-t.n.a,T.b=e.b-t.n.b,$fe(T,0,0,t.o.a,t.o.b),Xs(m,nge(m,o))):(s=hk(o),Xs(m,n==(To(),ku)?s:bO(s))),h=u(X(r,(oe(),lu)),21),k=m.j,o.g){case 2:case 1:(k==(ve(),Hn)||k==Er)&&h.Fc((Co(),q5));break;case 4:case 3:(k==(ve(),Jn)||k==Gn)&&h.Fc((Co(),q5))}return m}function Fge(t,e){var n,r,s,o,h,d;for(h=new sw(new mr(t.f.b).a);h.b;){if(o=Um(h),s=u(o.ld(),602),e==1){if(s.Af()!=(Rs(),Gh)&&s.Af()!=kd)continue}else if(s.Af()!=(Rs(),Uo)&&s.Af()!=tc)continue;switch(r=u(u(o.md(),42).b,86),d=u(u(o.md(),42).a,194),n=d.c,s.Af().g){case 2:r.g.c=t.e.a,r.g.b=b.Math.max(1,r.g.b+n);break;case 1:r.g.c=r.g.c+n,r.g.b=b.Math.max(1,r.g.b-n);break;case 4:r.g.d=t.e.b,r.g.a=b.Math.max(1,r.g.a+n);break;case 3:r.g.d=r.g.d+n,r.g.a=b.Math.max(1,r.g.a-n)}}}function rTn(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J;for(d=Vt(Fr,ii,28,e.b.c.length,15,1),k=Vt(fft,te,273,e.b.c.length,0,1),m=Vt(V0,jp,10,e.b.c.length,0,1),A=t.a,P=0,$=A.length;P<$;++P){for(T=A[P],J=0,h=new G(T.e);h.a0&&m[r]&&(U=U4(t.b,m[r],s)),J=b.Math.max(J,s.c.c.b+U);for(o=new G(T.e);o.a1)throw at(new zn(ON));m||(o=D0(e,r.Kc().Pb()),h.Fc(o))}return K4t(t,g6t(t,e,n),h)}function gV(t,e,n){var r,s,o,h,d,m,k,T;if(Ng(t.e,e))m=(vo(),u(e,69).xk()?new Sz(e,t):new eI(e,t)),WH(m.c,m.b),xS(m,u(n,16));else{for(T=Lu(t.e.Dh(),e),r=u(t.g,124),h=0;h"}m!=null&&(e.a+=""+m)}else t.e?(d=t.e.zb,d!=null&&(e.a+=""+d)):(e.a+="?",t.b?(e.a+=" super ",xct(t.b,e)):t.f&&(e.a+=" extends ",xct(t.f,e)))}function uTn(t){t.b=null,t.a=null,t.o=null,t.q=null,t.v=null,t.w=null,t.B=null,t.p=null,t.Q=null,t.R=null,t.S=null,t.T=null,t.U=null,t.V=null,t.W=null,t.bb=null,t.eb=null,t.ab=null,t.H=null,t.db=null,t.c=null,t.d=null,t.f=null,t.n=null,t.r=null,t.s=null,t.u=null,t.G=null,t.J=null,t.e=null,t.j=null,t.i=null,t.g=null,t.k=null,t.t=null,t.F=null,t.I=null,t.L=null,t.M=null,t.O=null,t.P=null,t.$=null,t.N=null,t.Z=null,t.cb=null,t.K=null,t.D=null,t.A=null,t.C=null,t._=null,t.fb=null,t.X=null,t.Y=null,t.gb=!1,t.hb=!1}function lTn(t){var e,n,r,s;if(r=Oct((!t.c&&(t.c=DI(Pc(t.f))),t.c),0),t.e==0||t.a==0&&t.f!=-1&&t.e<0)return r;if(e=O4t(t)<0?1:0,n=t.e,s=(r.length+1+b.Math.abs(Ys(t.e)),new I4),e==1&&(s.a+="-"),t.e>0)if(n-=r.length-e,n>=0){for(s.a+="0.";n>_w.length;n-=_w.length)Dte(s,_w);gZt(s,_w,Ys(n)),ni(s,(qn(e,r.length+1),r.substr(e)))}else n=e-n,ni(s,Lh(r,e,Ys(n))),s.a+=".",ni(s,Iyt(r,Ys(n)));else{for(ni(s,(qn(e,r.length+1),r.substr(e)));n<-_w.length;n+=_w.length)Dte(s,_w);gZt(s,_w,Ys(-n))}return s.a}function kct(t){var e,n,r,s,o,h,d,m,k;return!(t.k!=(Un(),xs)||t.j.c.length<=1||(o=u(X(t,(De(),bs)),101),o==(ka(),hu))||(s=(Yy(),(t.q?t.q:(mn(),mn(),q0))._b(Cv)?r=u(X(t,Cv),203):r=u(X(Pa(t),RA),203),r),s==JG)||!(s==J5||s==Q5)&&(h=Rt(Ht(Wy(t,jA))),e=u(X(t,oP),140),!e&&(e=new pvt(h,h,h,h)),k=gc(t,(ve(),Gn)),m=e.d+e.a+(k.gc()-1)*h,m>t.o.b||(n=gc(t,Jn),d=e.d+e.a+(n.gc()-1)*h,d>t.o.b)))}function hTn(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt;e.Ug("Orthogonal edge routing",1),k=Rt(Ht(X(t,(De(),X5)))),n=Rt(Ht(X(t,W5))),r=Rt(Ht(X(t,Pw))),P=new Uit(0,n),tt=0,h=new La(t.b,0),d=null,T=null,m=null,A=null;do T=h.b0?($=(U-1)*n,d&&($+=r),T&&($+=r),$e||Ie(Me(ne(m,(fd(),yP)))))&&(s=0,o+=T.b+n,In(A.c,T),T=new l3t(o,n),r=new Tat(0,T.f,T,n),zq(T,r),s=0),r.b.c.length==0||!Ie(Me(ne(Ji(m),(fd(),fdt))))&&(m.f>=r.o&&m.f<=r.f||r.a*.5<=m.f&&r.a*1.5>=m.f)?O5t(r,m):(h=new Tat(r.s+r.r+n,T.f,T,n),zq(T,h),O5t(h,m)),s=m.i+m.g;return In(A.c,T),A}function R_(t){var e,n,r,s;if(!(t.b==null||t.b.length<=2)&&!t.a){for(e=0,s=0;s=t.b[s+1])s+=2;else if(n0)for(r=new fl(u(Ai(t.a,o),21)),mn(),Ds(r,new _M(e)),s=new La(o.b,0);s.b0&&r>=-6?r>=0?iI(o,n-Ys(t.e),String.fromCharCode(46)):(dat(o,e-1,e-1,"0."),iI(o,e+1,af(_w,0,-Ys(r)-1))):(n-e>=1&&(iI(o,e,String.fromCharCode(46)),++n),iI(o,n,String.fromCharCode(69)),r>0&&iI(o,++n,String.fromCharCode(43)),iI(o,++n,""+OS(Pc(r)))),t.g=o.a,t.g))}function xTn(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se,Ce;r=Rt(Ht(X(e,(De(),sAt)))),Wt=u(X(e,$A),17).a,P=4,s=3,se=20/Wt,$=!1,m=0,h=xi;do{for(o=m!=1,A=m!=0,Ce=0,tt=t.a,Tt=0,Bt=tt.length;TtWt)?(m=2,h=xi):m==0?(m=1,h=Ce):(m=0,h=Ce)):($=Ce>=h||h-Ce0?1:ym(isNaN(r),isNaN(0)))>=0^($f(s0),(b.Math.abs(d)<=s0||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:ym(isNaN(d),isNaN(0)))>=0)?b.Math.max(d,r):($f(s0),(b.Math.abs(r)<=s0||r==0||isNaN(r)&&isNaN(0)?0:r<0?-1:r>0?1:ym(isNaN(r),isNaN(0)))>0?b.Math.sqrt(d*d+r*r):-b.Math.sqrt(d*d+r*r))}function gw(t,e){var n,r,s,o,h,d;if(e){if(!t.a&&(t.a=new u$),t.e==2){c$(t.a,e);return}if(e.e==1){for(s=0;s=po?Mo(n,I5t(r)):PE(n,r&js),h=new lst(10,null,0),sln(t.a,h,d-1)):(n=(h.Mm().length+o,new YC),Mo(n,h.Mm())),e.e==0?(r=e.Km(),r>=po?Mo(n,I5t(r)):PE(n,r&js)):Mo(n,e.Mm()),u(h,530).b=n.a}}function TTn(t,e,n){var r,s,o,h,d,m,k,T,A,P,$,U,J,tt;if(!n.dc()){for(d=0,P=0,r=n.Kc(),U=u(r.Pb(),17).a;d1&&(m=k.Hg(m,t.a,d));return m.c.length==1?u(Oe(m,m.c.length-1),238):m.c.length==2?dTn((vn(0,m.c.length),u(m.c[0],238)),(vn(1,m.c.length),u(m.c[1],238)),h,o):null}function ATn(t,e,n){var r,s,o,h,d,m,k;for(n.Ug("Find roots",1),t.a.c.length=0,s=Dr(e.b,0);s.b!=s.d.c;)r=u(Ar(s),39),r.b.b==0&&(Zt(r,(ji(),u2),(Pn(),!0)),ge(t.a,r));switch(t.a.c.length){case 0:o=new Eat(0,e,"DUMMY_ROOT"),Zt(o,(ji(),u2),(Pn(),!0)),Zt(o,F1t,!0),Zr(e.b,o);break;case 1:break;default:for(h=new Eat(0,e,nU),m=new G(t.a);m.a=b.Math.abs(r.b)?(r.b=0,o.d+o.a>h.d&&o.dh.c&&o.c0){if(e=new dmt(t.i,t.g),n=t.i,o=n<100?null:new xb(n),t.Tj())for(r=0;r0){for(d=t.g,k=t.i,KS(t),o=k<100?null:new xb(k),r=0;r>13|(t.m&15)<<9,s=t.m>>4&8191,o=t.m>>17|(t.h&255)<<5,h=(t.h&1048320)>>8,d=e.l&8191,m=e.l>>13|(e.m&15)<<9,k=e.m>>4&8191,T=e.m>>17|(e.h&255)<<5,A=(e.h&1048320)>>8,rn=n*d,Ze=r*d,On=s*d,Dn=o*d,er=h*d,m!=0&&(Ze+=n*m,On+=r*m,Dn+=s*m,er+=o*m),k!=0&&(On+=n*k,Dn+=r*k,er+=s*k),T!=0&&(Dn+=n*T,er+=r*T),A!=0&&(er+=n*A),$=rn&Il,U=(Ze&511)<<13,P=$+U,tt=rn>>22,ht=Ze>>9,Tt=(On&262143)<<4,At=(Dn&31)<<17,J=tt+ht+Tt+At,Wt=On>>18,se=Dn>>5,Ce=(er&4095)<<8,Bt=Wt+se+Ce,J+=P>>22,P&=Il,Bt+=J>>22,J&=Il,Bt&=Fg,Eu(P,J,Bt)}function Kge(t){var e,n,r,s,o,h,d;if(d=u(Oe(t.j,0),12),d.g.c.length!=0&&d.e.c.length!=0)throw at(new Ro("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges."));if(d.g.c.length!=0){for(o=Zi,n=new G(d.g);n.a4)if(t.fk(e)){if(t.al()){if(s=u(e,54),r=s.Eh(),m=r==t.e&&(t.ml()?s.yh(s.Fh(),t.il())==t.jl():-1-s.Fh()==t.Lj()),t.nl()&&!m&&!r&&s.Jh()){for(o=0;o0&&Kfe(t,d,A);for(s=new G(A);s.at.d[h.p]&&(n+=C3t(t.b,o)*u(m.b,17).a,Ob(t.a,he(o)));for(;!WC(t.a);)i4t(t.b,u(K6(t.a),17).a)}return n}function OTn(t,e){var n,r,s,o,h,d,m,k,T,A;if(T=u(X(t,(oe(),Dc)),64),r=u(Oe(t.j,0),12),T==(ve(),Hn)?Xs(r,Er):T==Er&&Xs(r,Hn),u(X(e,(De(),Ow)),181).Hc((Yl(),qw))){if(m=Rt(Ht(X(t,FT))),k=Rt(Ht(X(t,BT))),h=Rt(Ht(X(t,O3))),d=u(X(e,M3),21),d.Hc((wl(),Hg)))for(n=k,A=t.o.a/2-r.n.a,o=new G(r.f);o.a0&&(k=t.n.a/o);break;case 2:case 4:s=t.i.o.b,s>0&&(k=t.n.b/s)}Zt(t,(oe(),xv),k)}if(m=t.o,h=t.a,r)h.a=r.a,h.b=r.b,t.d=!0;else if(e!=Td&&e!=d2&&d!=bc)switch(d.g){case 1:h.a=m.a/2;break;case 2:h.a=m.a,h.b=m.b/2;break;case 3:h.a=m.a/2,h.b=m.b;break;case 4:h.b=m.b/2}else h.a=m.a/2,h.b=m.b/2}function j_(t){var e,n,r,s,o,h,d,m,k,T;if(t.Pj())if(T=t.Ej(),m=t.Qj(),T>0)if(e=new B4t(t.pj()),n=T,o=n<100?null:new xb(n),uI(t,n,e.g),s=n==1?t.Ij(4,Dt(e,0),null,0,m):t.Ij(6,e,null,-1,m),t.Mj()){for(r=new Zn(e);r.e!=r.i.gc();)o=t.Oj(ar(r),o);o?(o.nj(s),o.oj()):t.Jj(s)}else o?(o.nj(s),o.oj()):t.Jj(s);else uI(t,t.Ej(),t.Fj()),t.Jj(t.Ij(6,(mn(),co),null,-1,m));else if(t.Mj())if(T=t.Ej(),T>0){for(d=t.Fj(),k=T,uI(t,T,d),o=k<100?null:new xb(k),r=0;r1&&tl(h)*Gl(h)/2>d[0]){for(o=0;od[o];)++o;U=new xp(J,0,o+1),A=new Fq(U),T=tl(h)/Gl(h),m=Mct(A,e,new C6,n,r,s,T),ki(k1(A.e),m),V6(D7(P,A),X7),$=new xp(J,o+1,J.c.length),xxt(P,$),J.c.length=0,k=0,Kte(d,d.length,0)}else tt=P.b.c.length==0?null:Oe(P.b,0),tt!=null&&sat(P,0),k>0&&(d[k]=d[k-1]),d[k]+=tl(h)*Gl(h),++k,In(J.c,h);return J}function jTn(t,e){var n,r,s,o;n=e.b,o=new fl(n.j),s=0,r=n.j,r.c.length=0,Am(u(iw(t.b,(ve(),Hn),(Vm(),mv)),15),n),s=xO(o,s,new am,r),Am(u(iw(t.b,Hn,r2),15),n),s=xO(o,s,new bJ,r),Am(u(iw(t.b,Hn,wv),15),n),Am(u(iw(t.b,Jn,mv),15),n),Am(u(iw(t.b,Jn,r2),15),n),s=xO(o,s,new lR,r),Am(u(iw(t.b,Jn,wv),15),n),Am(u(iw(t.b,Er,mv),15),n),s=xO(o,s,new hR,r),Am(u(iw(t.b,Er,r2),15),n),s=xO(o,s,new fR,r),Am(u(iw(t.b,Er,wv),15),n),Am(u(iw(t.b,Gn,mv),15),n),s=xO(o,s,new aR,r),Am(u(iw(t.b,Gn,r2),15),n),Am(u(iw(t.b,Gn,wv),15),n)}function $Tn(t,e,n){var r,s,o,h,d,m,k,T,A,P,$;for(d=new G(e);d.a.5?ht-=h*2*(U-.5):U<.5&&(ht+=o*2*(.5-U)),s=d.d.b,httt.a-J-T&&(ht=tt.a-J-T),d.n.a=e+ht}}function VTn(t){var e,n,r,s,o;if(r=u(X(t,(De(),Iu)),171),r==(Rh(),s2)){for(n=new rr(sr(ua(t).a.Kc(),new z));Mr(n);)if(e=u(dr(n),18),!ose(e))throw at(new fp(zut+EO(t)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges."))}else if(r==S3){for(o=new rr(sr(_s(t).a.Kc(),new z));Mr(o);)if(s=u(dr(o),18),!ose(s))throw at(new fp(zut+EO(t)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges."))}}function XO(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U;if(t.e&&t.c.c>19&&(e=h7(e),m=!m),h=A6n(e),o=!1,s=!1,r=!1,t.h==aN&&t.m==0&&t.l==0)if(s=!0,o=!0,h==-1)t=OQt((WE(),a9t)),r=!0,m=!m;else return d=H6t(t,h),m&&kat(d),n&&(Zb=Eu(0,0,0)),d;else t.h>>19&&(o=!0,t=h7(t),r=!0,m=!m);return h!=-1?rbn(t,h,m,o,n):Lxt(t,e)<0?(n&&(o?Zb=h7(t):Zb=Eu(t.l,t.m,t.h)),Eu(0,0,0)):SEn(r?t:Eu(t.l,t.m,t.h),e,m,o,s,n)}function Sct(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U;if(h=t.e,m=e.e,h==0)return e;if(m==0)return t;if(o=t.d,d=e.d,o+d==2)return n=sa(t.a[0],So),r=sa(e.a[0],So),h==m?(T=Qa(n,r),U=qr(T),$=qr(Ab(T,32)),$==0?new kg(h,U):new Y2(h,2,lt(ut(Fr,1),ii,28,15,[U,$]))):(Xd(),J$(h<0?sf(r,n):sf(n,r),0)?zb(h<0?sf(r,n):sf(n,r)):FS(zb(Cp(h<0?sf(r,n):sf(n,r)))));if(h==m)P=h,A=o>=d?Pst(t.a,o,e.a,d):Pst(e.a,d,t.a,o);else{if(s=o!=d?o>d?1:-1:o5t(t.a,e.a,o),s==0)return Xd(),yA;s==1?(P=h,A=Ost(t.a,o,e.a,d)):(P=m,A=Ost(e.a,d,t.a,o))}return k=new Y2(P,A.length,A),qS(k),k}function GTn(t,e){var n,r,s,o,h,d,m;if(!(t.g>e.f||e.g>t.f)){for(n=0,r=0,h=t.w.a.ec().Kc();h.Ob();)s=u(h.Pb(),12),Nat(dc(lt(ut(la,1),ue,8,0,[s.i.n,s.n,s.a])).b,e.g,e.f)&&++n;for(d=t.r.a.ec().Kc();d.Ob();)s=u(d.Pb(),12),Nat(dc(lt(ut(la,1),ue,8,0,[s.i.n,s.n,s.a])).b,e.g,e.f)&&--n;for(m=e.w.a.ec().Kc();m.Ob();)s=u(m.Pb(),12),Nat(dc(lt(ut(la,1),ue,8,0,[s.i.n,s.n,s.a])).b,t.g,t.f)&&++r;for(o=e.r.a.ec().Kc();o.Ob();)s=u(o.Pb(),12),Nat(dc(lt(ut(la,1),ue,8,0,[s.i.n,s.n,s.a])).b,t.g,t.f)&&--r;n=0)return n;switch(Om($o(t,n))){case 2:{if(hn("",Lp(t,n.qk()).xe())){if(m=TI($o(t,n)),d=RE($o(t,n)),T=K6t(t,e,m,d),T)return T;for(s=Ekt(t,e),h=0,A=s.gc();h1)throw at(new zn(ON));for(T=Lu(t.e.Dh(),e),r=u(t.g,124),h=0;h1,k=new sd(P.b);lc(k.a)||lc(k.b);)m=u(lc(k.a)?et(k.a):et(k.b),18),A=m.c==P?m.d:m.c,b.Math.abs(dc(lt(ut(la,1),ue,8,0,[A.i.n,A.n,A.a])).b-h.b)>1&&Okn(t,m,h,o,P)}}function JTn(t){var e,n,r,s,o,h;if(s=new La(t.e,0),r=new La(t.a,0),t.d)for(n=0;nxlt;){for(o=e,h=0;b.Math.abs(e-o)0),s.a.Xb(s.c=--s.b),d7n(t,t.b-h,o,r,s),ur(s.b0),r.a.Xb(r.c=--r.b)}if(!t.d)for(n=0;n0?(t.f[T.p]=$/(T.e.c.length+T.g.c.length),t.c=b.Math.min(t.c,t.f[T.p]),t.b=b.Math.max(t.b,t.f[T.p])):d&&(t.f[T.p]=$)}}function t9n(t){t.b=null,t.bb=null,t.fb=null,t.qb=null,t.a=null,t.c=null,t.d=null,t.e=null,t.f=null,t.n=null,t.M=null,t.L=null,t.Q=null,t.R=null,t.K=null,t.db=null,t.eb=null,t.g=null,t.i=null,t.j=null,t.k=null,t.gb=null,t.o=null,t.p=null,t.q=null,t.r=null,t.$=null,t.ib=null,t.S=null,t.T=null,t.t=null,t.s=null,t.u=null,t.v=null,t.w=null,t.B=null,t.A=null,t.C=null,t.D=null,t.F=null,t.G=null,t.H=null,t.I=null,t.J=null,t.P=null,t.Z=null,t.U=null,t.V=null,t.W=null,t.X=null,t.Y=null,t._=null,t.ab=null,t.cb=null,t.hb=null,t.nb=null,t.lb=null,t.mb=null,t.ob=null,t.pb=null,t.jb=null,t.kb=null,t.N=!1,t.O=!1}function e9n(t,e,n){var r,s,o,h;for(n.Ug("Graph transformation ("+t.a+")",1),h=Rm(e.a),o=new G(e.b);o.a=d.b.c)&&(d.b=e),(!d.c||e.c<=d.c.c)&&(d.d=d.c,d.c=e),(!d.e||e.d>=d.e.d)&&(d.e=e),(!d.f||e.d<=d.f.d)&&(d.f=e);return r=new _H((u7(),bv)),MI(t,l4e,new hl(lt(ut(GN,1),Ln,382,0,[r]))),h=new _H(y3),MI(t,u4e,new hl(lt(ut(GN,1),Ln,382,0,[h]))),s=new _H(v3),MI(t,c4e,new hl(lt(ut(GN,1),Ln,382,0,[s]))),o=new _H(F5),MI(t,o4e,new hl(lt(ut(GN,1),Ln,382,0,[o]))),Qot(r.c,bv),Qot(s.c,v3),Qot(o.c,F5),Qot(h.c,y3),d.a.c.length=0,Hs(d.a,r.c),Hs(d.a,Bh(s.c)),Hs(d.a,o.c),Hs(d.a,Bh(h.c)),d}function i9n(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U;for(e.Ug(cwe,1),$=Rt(Ht(ne(t,(N0(),B3)))),h=Rt(Ht(ne(t,(fd(),iL)))),d=u(ne(t,rL),107),M4t((!t.a&&(t.a=new Jt(bi,t,10,11)),t.a)),T=Hge((!t.a&&(t.a=new Jt(bi,t,10,11)),t.a),$,h),!t.a&&(t.a=new Jt(bi,t,10,11)),k=new G(T);k.a0&&(t.a=m+($-1)*o,e.c.b+=t.a,e.f.b+=t.a)),U.a.gc()!=0&&(P=new Uit(1,o),$=Xkt(P,e,U,J,e.f.b+m-e.c.b),$>0&&(e.f.b+=m+($-1)*o))}function Xge(t,e,n){var r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt;for(T=Rt(Ht(X(t,(De(),_v)))),r=Rt(Ht(X(t,pAt))),P=new iM,Zt(P,_v,T+r),k=e,ht=k.d,J=k.c.i,Tt=k.d.i,tt=ymt(J.c),At=ymt(Tt.c),s=new fe,A=tt;A<=At;A++)d=new Ig(t),y(d,(Un(),fa)),Zt(d,(oe(),Li),k),Zt(d,bs,(ka(),hu)),Zt(d,KG,P),$=u(Oe(t.b,A),30),A==tt?Xy(d,$.a.c.length-n,$):Aa(d,$),Bt=Rt(Ht(X(k,Hp))),Bt<0&&(Bt=0,Zt(k,Hp,Bt)),d.o.b=Bt,U=b.Math.floor(Bt/2),h=new Yc,Xs(h,(ve(),Gn)),hc(h,d),h.n.b=U,m=new Yc,Xs(m,Jn),hc(m,d),m.n.b=U,xa(k,h),o=new Pm,Qo(o,k),Zt(o,Vo,null),Xa(o,m),xa(o,ht),Kvn(d,k,o),In(s.c,o),k=o;return s}function _ct(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At;for(m=u(Pp(t,(ve(),Gn)).Kc().Pb(),12).e,$=u(Pp(t,Jn).Kc().Pb(),12).g,d=m.c.length,At=rd(u(Oe(t.j,0),12));d-- >0;){for(J=(vn(0,m.c.length),u(m.c[0],18)),s=(vn(0,$.c.length),u($.c[0],18)),Tt=s.d.e,o=Xo(Tt,s,0),A1n(J,s.d,o),Xa(s,null),xa(s,null),U=J.a,e&&Zr(U,new io(At)),r=Dr(s.a,0);r.b!=r.d.c;)n=u(Ar(r),8),Zr(U,new io(n));for(ht=J.b,P=new G(s.b);P.ah)&&qs(t.b,u(tt.b,18));++d}o=h}}}function Kkt(t,e){var n;if(e==null||hn(e,Vu)||e.length==0&&t.k!=(Fp(),Qk))return null;switch(t.k.g){case 1:return kH(e,uT)?(Pn(),bT):kH(e,jlt)?(Pn(),t2):null;case 2:try{return he(lh(e,Ga,xi))}catch(r){if(r=es(r),Lt(r,130))return null;throw at(r)}case 4:try{return Jy(e)}catch(r){if(r=es(r),Lt(r,130))return null;throw at(r)}case 3:return e;case 5:return bue(t),D1e(t,e);case 6:return bue(t),s6n(t,t.a,e);case 7:try{return n=bxn(t),n.cg(e),n}catch(r){if(r=es(r),Lt(r,33))return null;throw at(r)}default:throw at(new Ro("Invalid type set for this layout option."))}}function Wkt(t){var e;switch(t.d){case 1:{if(t.Sj())return t.o!=-2;break}case 2:{if(t.Sj())return t.o==-2;break}case 3:case 5:case 4:case 6:case 7:return t.o>-2;default:return!1}switch(e=t.Rj(),t.p){case 0:return e!=null&&Ie(Me(e))!=bS(t.k,0);case 1:return e!=null&&u(e,222).a!=qr(t.k)<<24>>24;case 2:return e!=null&&u(e,180).a!=(qr(t.k)&js);case 6:return e!=null&&bS(u(e,168).a,t.k);case 5:return e!=null&&u(e,17).a!=qr(t.k);case 7:return e!=null&&u(e,191).a!=qr(t.k)<<16>>16;case 3:return e!=null&&Rt(Ht(e))!=t.j;case 4:return e!=null&&u(e,161).a!=t.j;default:return e==null?t.n!=null:!Ti(e,t.n)}}function QO(t,e,n){var r,s,o,h;return t.ol()&&t.nl()&&(h=jit(t,u(n,58)),$t(h)!==$t(n))?(t.xj(e),t.Dj(e,Zse(t,e,h)),t.al()&&(o=(s=u(n,54),t.ml()?t.kl()?s.Th(t.b,yo(u(En($u(t.b),t.Lj()),19)).n,u(En($u(t.b),t.Lj()).Hk(),29).kk(),null):s.Th(t.b,ns(s.Dh(),yo(u(En($u(t.b),t.Lj()),19))),null,null):s.Th(t.b,-1-t.Lj(),null,null)),!u(h,54).Ph()&&(o=(r=u(h,54),t.ml()?t.kl()?r.Rh(t.b,yo(u(En($u(t.b),t.Lj()),19)).n,u(En($u(t.b),t.Lj()).Hk(),29).kk(),o):r.Rh(t.b,ns(r.Dh(),yo(u(En($u(t.b),t.Lj()),19))),null,o):r.Rh(t.b,-1-t.Lj(),null,o))),o&&o.oj()),Hl(t.b)&&t.Jj(t.Ij(9,n,h,e,!1)),h):n}function Qge(t){var e,n,r,s,o,h,d,m,k,T;for(r=new fe,h=new G(t.e.a);h.a0&&(h=b.Math.max(h,ece(t.C.b+r.d.b,s))),T=r,A=s,P=o;t.C&&t.C.c>0&&($=P+t.C.c,k&&($+=T.d.c),h=b.Math.max(h,(Z1(),$f(gd),b.Math.abs(A-1)<=gd||A==1||isNaN(A)&&isNaN(1)?0:$/(1-A)))),n.n.b=0,n.a.a=h}function Zge(t,e){var n,r,s,o,h,d,m,k,T,A,P,$;if(n=u(Io(t.b,e),127),m=u(u(Ai(t.r,e),21),87),m.dc()){n.n.d=0,n.n.a=0;return}for(k=t.u.Hc((wl(),Hg)),h=0,t.A.Hc((Yl(),qw))&&A0e(t,e),d=m.Kc(),T=null,P=0,A=0;d.Ob();)r=u(d.Pb(),117),o=Rt(Ht(r.b.of((hz(),$U)))),s=r.b.Mf().b,T?($=A+T.d.a+t.w+r.d.d,h=b.Math.max(h,(Z1(),$f(gd),b.Math.abs(P-o)<=gd||P==o||isNaN(P)&&isNaN(o)?0:$/(o-P)))):t.C&&t.C.d>0&&(h=b.Math.max(h,ece(t.C.d+r.d.d,o))),T=r,P=o,A=s;t.C&&t.C.a>0&&($=A+t.C.a,k&&($+=T.d.a),h=b.Math.max(h,(Z1(),$f(gd),b.Math.abs(P-1)<=gd||P==1||isNaN(P)&&isNaN(1)?0:$/(1-P)))),n.n.d=0,n.a.b=h}function o9n(t,e,n,r,s,o,h,d){var m,k,T,A,P,$,U,J,tt,ht;if(U=!1,k=ekt(n.q,e.f+e.b-n.q.f),$=r.f>e.b&&d,ht=s-(n.q.e+k-h),A=(m=B_(r,ht,!1),m.a),$&&A>r.f)return!1;if($){for(P=0,tt=new G(e.d);tt.a=(vn(o,t.c.length),u(t.c[o],186)).e,!$&&A>e.b&&!T)?!1:((T||$||A<=e.b)&&(T&&A>e.b?(n.d=A,$I(n,Rfe(n,A))):(nfe(n.q,k),n.c=!0),$I(r,s-(n.s+n.r)),kO(r,n.q.e+n.q.d,e.f),zq(e,r),t.c.length>o&&(CO((vn(o,t.c.length),u(t.c[o],186)),r),(vn(o,t.c.length),u(t.c[o],186)).a.c.length==0&&Ep(t,o)),U=!0),U)}function tpe(t,e,n){var r,s,o,h,d,m;for(this.g=t,d=e.d.length,m=n.d.length,this.d=Vt(V0,jp,10,d+m,0,1),h=0;h0?Jst(this,this.f/this.a):td(e.g,e.d[0]).a!=null&&td(n.g,n.d[0]).a!=null?Jst(this,(Rt(td(e.g,e.d[0]).a)+Rt(td(n.g,n.d[0]).a))/2):td(e.g,e.d[0]).a!=null?Jst(this,td(e.g,e.d[0]).a):td(n.g,n.d[0]).a!=null&&Jst(this,td(n.g,n.d[0]).a)}function c9n(t,e){var n,r,s,o,h,d,m,k,T,A;for(t.a=new Iee(Vpn(gL)),r=new G(e.a);r.a=1&&(tt-h>0&&A>=0?(m.n.a+=J,m.n.b+=o*h):tt-h<0&&T>=0&&(m.n.a+=J*tt,m.n.b+=o));t.o.a=e.a,t.o.b=e.b,Zt(t,(De(),Ow),(Yl(),r=u(y1(xL),9),new _h(r,u(Ff(r,r.length),9),0)))}function h9n(t,e,n,r,s,o){var h;if(!(e==null||!Uat(e,BIt,RIt)))throw at(new zn("invalid scheme: "+e));if(!t&&!(n!=null&&$d(n,Hu(35))==-1&&n.length>0&&(qn(0,n.length),n.charCodeAt(0)!=47)))throw at(new zn("invalid opaquePart: "+n));if(t&&!(e!=null&&BM(WK,e.toLowerCase()))&&!(n==null||!Uat(n,CL,SL)))throw at(new zn(Fme+n));if(t&&e!=null&&BM(WK,e.toLowerCase())&&!Vyn(n))throw at(new zn(Fme+n));if(!X2n(r))throw at(new zn("invalid device: "+r));if(!Nbn(s))throw h=s==null?"invalid segments: null":"invalid segment: "+Dbn(s),at(new zn(h));if(!(o==null||$d(o,Hu(35))==-1))throw at(new zn("invalid query: "+o))}function f9n(t,e,n){var r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht;if(n.Ug("Network simplex layering",1),t.b=e,ht=u(X(e,(De(),$A)),17).a*4,tt=t.b.a,tt.c.length<1){n.Vg();return}for(o=lEn(t,tt),J=null,s=Dr(o,0);s.b!=s.d.c;){for(r=u(Ar(s),15),d=ht*Ys(b.Math.sqrt(r.gc())),h=CEn(r),uct(pwt(frn(bwt(mit(h),d),J),!0),n.eh(1)),P=t.b.b,U=new G(h.a);U.a1)for(J=Vt(Fr,ii,28,t.b.b.c.length,15,1),A=0,k=new G(t.b.b);k.a0){EH(t,n,0),n.a+=String.fromCharCode(r),s=Nwn(e,o),EH(t,n,s),o+=s-1;continue}r==39?o+10&&U.a<=0){m.c.length=0,In(m.c,U);break}$=U.i-U.d,$>=d&&($>d&&(m.c.length=0,d=$),In(m.c,U))}m.c.length!=0&&(h=u(Oe(m,MH(s,m.c.length)),118),At.a.Bc(h)!=null,h.g=T++,Fkt(h,e,n,r),m.c.length=0)}for(tt=t.c.length+1,P=new G(t);P.aVs||e.o==Fw&&T=d&&s<=m)d<=s&&o<=m?(n[T++]=s,n[T++]=o,r+=2):d<=s?(n[T++]=s,n[T++]=m,t.b[r]=m+1,h+=2):o<=m?(n[T++]=d,n[T++]=o,r+=2):(n[T++]=d,n[T++]=m,t.b[r]=m+1);else if(mKb)&&d<10);mwt(t.c,new Gx),ipe(t),oln(t.c),n9n(t.f)}function x9n(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J;for(n=u(X(t,(De(),bs)),101),h=t.f,o=t.d,d=h.a+o.b+o.c,m=0-o.d-t.c.b,T=h.b+o.d+o.a-t.c.b,k=new fe,A=new fe,s=new G(e);s.a=2){for(m=Dr(n,0),h=u(Ar(m),8),d=u(Ar(m),8);d.a0&&aO(k,!0,(Rs(),tc)),d.k==(Un(),Ms)&&zee(k),hi(t.f,d,e)}}function T9n(t){var e,n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt;for(s=u(X(t,(ji(),JA)),27),k=xi,T=xi,d=Ga,m=Ga,At=Dr(t.b,0);At.b!=At.d.c;)ht=u(Ar(At),39),$=ht.e,U=ht.f,k=b.Math.min(k,$.a-U.a/2),T=b.Math.min(T,$.b-U.b/2),d=b.Math.max(d,$.a+U.a/2),m=b.Math.max(m,$.b+U.b/2);for(P=u(ne(s,(Cc(),SLt)),107),Tt=Dr(t.b,0);Tt.b!=Tt.d.c;)ht=u(Ar(Tt),39),A=X(ht,JA),Lt(A,207)&&(o=u(A,27),Ch(o,ht.e.a,ht.e.b),$O(o,ht));for(tt=Dr(t.a,0);tt.b!=tt.d.c;)J=u(Ar(tt),65),r=u(X(J,JA),74),r&&(e=J.a,n=b5(r,!0,!0),KO(e,n));Bt=d-k+(P.b+P.c),h=m-T+(P.d+P.a),Ie(Me(ne(s,(ai(),R3))))||rv(s,Bt,h,!1,!1),Mi(s,ox,Bt-(P.b+P.c)),Mi(s,ax,h-(P.d+P.a))}function ape(t,e){var n,r,s,o,h,d,m,k,T,A;for(m=!0,s=0,k=t.g[e.p],T=e.o.b+t.o,n=t.d[e.p][2],Mh(t.b,k,he(u(Oe(t.b,k),17).a-1+n)),Mh(t.c,k,Rt(Ht(Oe(t.c,k)))-T+n*t.f),++k,k>=t.j?(++t.j,ge(t.b,he(1)),ge(t.c,T)):(r=t.d[e.p][1],Mh(t.b,k,he(u(Oe(t.b,k),17).a+1-r)),Mh(t.c,k,Rt(Ht(Oe(t.c,k)))+T-r*t.f)),(t.r==(cf(),cP)&&(u(Oe(t.b,k),17).a>t.k||u(Oe(t.b,k-1),17).a>t.k)||t.r==uP&&(Rt(Ht(Oe(t.c,k)))>t.n||Rt(Ht(Oe(t.c,k-1)))>t.n))&&(m=!1),h=new rr(sr(ua(e).a.Kc(),new z));Mr(h);)o=u(dr(h),18),d=o.c.i,t.g[d.p]==k&&(A=ape(t,d),s=s+u(A.a,17).a,m=m&&Ie(Me(A.b)));return t.g[e.p]=k,s=s+t.d[e.p][0],new Ws(he(s),(Pn(),!!m))}function ope(t,e){var n,r,s,o,h;n=Rt(Ht(X(e,(De(),Yf)))),n<2&&Zt(e,Yf,2),r=u(X(e,ph),88),r==(Rs(),Ed)&&Zt(e,ph,fH(e)),s=u(X(e,T6e),17),s.a==0?Zt(e,(oe(),Kk),new Kat):Zt(e,(oe(),Kk),new pq(s.a)),o=Me(X(e,BA)),o==null&&Zt(e,BA,(Pn(),$t(X(e,zg))===$t((Lg(),WT)))),ms(new ln(null,new gn(e.a,16)),new lp(t)),ms(fc(new ln(null,new gn(e.b,16)),new p4),new $C(t)),h=new epe(e),Zt(e,(oe(),G5),h),EI(t.a),E1(t.a,(Ua(),Wf),u(X(e,Dw),188)),E1(t.a,H0,u(X(e,Iw),188)),E1(t.a,Qc,u(X(e,FA),188)),E1(t.a,cu,u(X(e,UG),188)),E1(t.a,Zo,Tpn(u(X(e,zg),223))),kmt(t.a,vSn(e)),Zt(e,Yft,XO(t.a,e))}function Xkt(t,e,n,r,s){var o,h,d,m,k,T,A,P,$,U,J,tt,ht;for(A=new _r,h=new fe,s1e(t,n,t.d.Ag(),h,A),s1e(t,r,t.d.Bg(),h,A),t.b=.2*(J=hde(fc(new ln(null,new gn(h,16)),new TZ)),tt=hde(fc(new ln(null,new gn(h,16)),new CZ)),b.Math.min(J,tt)),o=0,d=0;d=2&&(ht=Dde(h,!0,P),!t.e&&(t.e=new $Ut(t)),Dwn(t.e,ht,h,t.b)),ffe(h,P),D9n(h),$=-1,T=new G(h);T.ad)}function cpe(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt;for(k=Zi,T=Zi,d=Vs,m=Vs,P=new G(e.i);P.a-1){for(s=Dr(d,0);s.b!=s.d.c;)r=u(Ar(s),131),r.v=h;for(;d.b!=0;)for(r=u(Tot(d,0),131),n=new G(r.i);n.a-1){for(o=new G(d);o.a0)&&(W(m,b.Math.min(m.o,s.o-1)),q(m,m.i-1),m.i==0&&In(d.c,m))}}function lpe(t,e,n,r,s){var o,h,d,m;return m=Zi,h=!1,d=zkt(t,ia(new ae(e.a,e.b),t),ki(new ae(n.a,n.b),s),ia(new ae(r.a,r.b),n)),o=!!d&&!(b.Math.abs(d.a-t.a)<=lv&&b.Math.abs(d.b-t.b)<=lv||b.Math.abs(d.a-e.a)<=lv&&b.Math.abs(d.b-e.b)<=lv),d=zkt(t,ia(new ae(e.a,e.b),t),n,s),d&&((b.Math.abs(d.a-t.a)<=lv&&b.Math.abs(d.b-t.b)<=lv)==(b.Math.abs(d.a-e.a)<=lv&&b.Math.abs(d.b-e.b)<=lv)||o?m=b.Math.min(m,RS(ia(d,n))):h=!0),d=zkt(t,ia(new ae(e.a,e.b),t),r,s),d&&(h||(b.Math.abs(d.a-t.a)<=lv&&b.Math.abs(d.b-t.b)<=lv)==(b.Math.abs(d.a-e.a)<=lv&&b.Math.abs(d.b-e.b)<=lv)||o)&&(m=b.Math.min(m,RS(ia(d,r)))),m}function hpe(t){wm(t,new dw(p$(gm(hm(dm(fm(new G1,Yb),c2e),"Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."),new U1),Du))),le(t,Yb,Y_,Se(kCt)),le(t,Yb,OV,(Pn(),!0)),le(t,Yb,_5,Se(K3e)),le(t,Yb,Ik,Se(W3e)),le(t,Yb,Mk,Se(Y3e)),le(t,Yb,nT,Se(G3e)),le(t,Yb,X_,Se(TCt)),le(t,Yb,rT,Se(X3e)),le(t,Yb,K8t,Se(xCt)),le(t,Yb,Y8t,Se(vCt)),le(t,Yb,X8t,Se(yCt)),le(t,Yb,Q8t,Se(ECt)),le(t,Yb,W8t,Se(YU))}function M9n(t){var e,n,r,s,o,h,d,m;for(e=null,r=new G(t);r.a0&&n.c==0&&(!e&&(e=new fe),In(e.c,n));if(e)for(;e.c.length!=0;){if(n=u(Ep(e,0),239),n.b&&n.b.c.length>0){for(o=(!n.b&&(n.b=new fe),new G(n.b));o.aXo(t,n,0))return new Ws(s,n)}else if(Rt(td(s.g,s.d[0]).a)>Rt(td(n.g,n.d[0]).a))return new Ws(s,n)}for(d=(!n.e&&(n.e=new fe),n.e).Kc();d.Ob();)h=u(d.Pb(),239),m=(!h.b&&(h.b=new fe),h.b),Fy(0,m.c.length),sS(m.c,0,n),h.c==m.c.length&&In(e.c,h)}return null}function I9n(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht;for(e.Ug("Interactive crossing minimization",1),h=0,o=new G(t.b);o.a0&&(n+=m.n.a+m.o.a/2,++A),U=new G(m.j);U.a0&&(n/=A),ht=Vt(ma,No,28,r.a.c.length,15,1),d=0,k=new G(r.a);k.a=d&&s<=m)d<=s&&o<=m?r+=2:d<=s?(t.b[r]=m+1,h+=2):o<=m?(n[T++]=s,n[T++]=d-1,r+=2):(n[T++]=s,n[T++]=d-1,t.b[r]=m+1,h+=2);else if(m2?(T=new fe,Hs(T,new xp(ht,1,ht.b)),o=Jpe(T,At+t.a),Tt=new Wot(o),Qo(Tt,e),In(n.c,Tt)):r?Tt=u(tr(t.b,O0(e)),272):Tt=u(tr(t.b,qb(e)),272),m=O0(e),r&&(m=qb(e)),h=M4n(tt,m),k=At+t.a,h.a?(k+=b.Math.abs(tt.b-A.b),J=new ae(A.a,(A.b+tt.b)/2)):(k+=b.Math.abs(tt.a-A.a),J=new ae((A.a+tt.a)/2,A.b)),r?hi(t.d,e,new pxt(Tt,h,J,k)):hi(t.c,e,new pxt(Tt,h,J,k)),hi(t.b,e,Tt),U=(!e.n&&(e.n=new Jt(Po,e,1,7)),e.n),$=new Zn(U);$.e!=$.i.gc();)P=u(ar($),135),s=HO(t,P,!0,0,0),In(n.c,s)}function O9n(t){var e,n,r,s,o,h,d;if(!t.A.dc()){if(t.A.Hc((Yl(),RP))&&(u(Io(t.b,(ve(),Hn)),127).k=!0,u(Io(t.b,Er),127).k=!0,e=t.q!=(ka(),Y0)&&t.q!=hu,Qj(u(Io(t.b,Jn),127),e),Qj(u(Io(t.b,Gn),127),e),Qj(t.g,e),t.A.Hc(qw)&&(u(Io(t.b,Hn),127).j=!0,u(Io(t.b,Er),127).j=!0,u(Io(t.b,Jn),127).k=!0,u(Io(t.b,Gn),127).k=!0,t.g.k=!0)),t.A.Hc(BP))for(t.a.j=!0,t.a.k=!0,t.g.j=!0,t.g.k=!0,d=t.B.Hc((Ml(),kL)),s=not(),o=0,h=s.length;o0),u(T.a.Xb(T.c=--T.b),18));o!=r&&T.b>0;)t.a[o.p]=!0,t.a[r.p]=!0,o=(ur(T.b>0),u(T.a.Xb(T.c=--T.b),18));T.b>0&&Kl(T)}}function dpe(t,e,n){var r,s,o,h,d,m,k,T,A,P,$;if(!t.b)return!1;for(h=null,P=null,m=new Rst(null,null),s=1,m.a[1]=t.b,A=m;A.a[s];)k=s,d=P,P=A,A=A.a[s],r=t.a.Ne(e,A.d),s=r<0?0:1,r==0&&(!n.c||Nc(A.e,n.d))&&(h=A),!(A&&A.b)&&!vy(A.a[s])&&(vy(A.a[1-s])?P=P.a[k]=Wq(A,s):vy(A.a[1-s])||($=P.a[1-k],$&&(!vy($.a[1-k])&&!vy($.a[k])?(P.b=!1,$.b=!0,A.b=!0):(o=d.a[1]==P?1:0,vy($.a[k])?d.a[o]=qre(P,k):vy($.a[1-k])&&(d.a[o]=Wq(P,k)),A.b=d.a[o].b=!0,d.a[o].a[0].b=!1,d.a[o].a[1].b=!1))));return h&&(n.b=!0,n.d=h.e,A!=h&&(T=new Rst(A.d,A.e),F3n(t,m,h,T),P==h&&(P=T)),P.a[P.a[1]==A?1:0]=A.a[A.a[0]?0:1],--t.c),t.b=m.a[1],t.b&&(t.b.b=!1),n.b}function F9n(t){var e,n,r,s,o,h,d,m,k,T,A,P;for(s=new G(t.a.a.b);s.a0?s-=864e5:s+=864e5,m=new avt(Qa(Pc(e.q.getTime()),s))),T=new I4,k=t.a.length,o=0;o=97&&r<=122||r>=65&&r<=90){for(h=o+1;h=k)throw at(new zn("Missing trailing '"));h+1=14&&T<=16))?e.a._b(r)?(n.a?ni(n.a,n.b):n.a=new eh(n.d),mS(n.a,"[...]")):(d=nw(r),k=new LS(e),Eg(n,ppe(d,k))):Lt(r,183)?Eg(n,g5n(u(r,183))):Lt(r,195)?Eg(n,Zyn(u(r,195))):Lt(r,201)?Eg(n,u4n(u(r,201))):Lt(r,2111)?Eg(n,t3n(u(r,2111))):Lt(r,53)?Eg(n,d5n(u(r,53))):Lt(r,376)?Eg(n,M5n(u(r,376))):Lt(r,846)?Eg(n,f5n(u(r,846))):Lt(r,109)&&Eg(n,h5n(u(r,109))):Eg(n,r==null?Vu:rc(r));return n.a?n.e.length==0?n.a.a:n.a.a+(""+n.e):n.c}function q7(t,e){var n,r,s,o;o=t.F,e==null?(t.F=null,p7(t,null)):(t.F=(Wn(e),e),r=$d(e,Hu(60)),r!=-1?(s=(Da(0,r,e.length),e.substr(0,r)),$d(e,Hu(46))==-1&&!hn(s,kk)&&!hn(s,lA)&&!hn(s,wU)&&!hn(s,hA)&&!hn(s,fA)&&!hn(s,dA)&&!hn(s,gA)&&!hn(s,pA)&&(s=Yme),n=cz(e,Hu(62)),n!=-1&&(s+=""+(qn(n+1,e.length+1),e.substr(n+1))),p7(t,s)):(s=e,$d(e,Hu(46))==-1&&(r=$d(e,Hu(91)),r!=-1&&(s=(Da(0,r,e.length),e.substr(0,r))),!hn(s,kk)&&!hn(s,lA)&&!hn(s,wU)&&!hn(s,hA)&&!hn(s,fA)&&!hn(s,dA)&&!hn(s,gA)&&!hn(s,pA)?(s=Yme,r!=-1&&(s+=""+(qn(r,e.length+1),e.substr(r)))):s=e),p7(t,s),s==e&&(t.F=t.D))),t.Db&4&&!(t.Db&1)&&Ei(t,new ha(t,1,5,o,e))}function bpe(t,e){var n,r,s,o,h,d,m,k,T,A;if(m=e.length-1,d=(qn(m,e.length),e.charCodeAt(m)),d==93){if(h=$d(e,Hu(91)),h>=0)return s=z2n(t,(Da(1,h,e.length),e.substr(1,h-1))),T=(Da(h+1,m,e.length),e.substr(h+1,m-(h+1))),dSn(t,T,s)}else{if(n=-1,h9t==null&&(h9t=new RegExp("\\d")),h9t.test(String.fromCharCode(d))&&(n=Tvt(e,Hu(46),m-1),n>=0)){r=u(Ist(t,roe(t,(Da(1,n,e.length),e.substr(1,n-1))),!1),61),k=0;try{k=lh((qn(n+1,e.length+1),e.substr(n+1)),Ga,xi)}catch(P){throw P=es(P),Lt(P,130)?(o=P,at(new _q(o))):at(P)}if(k>16==-10?n=u(t.Cb,291).Yk(e,n):t.Db>>16==-15&&(!e&&(e=(wn(),Sd)),!k&&(k=(wn(),Sd)),t.Cb.Yh()&&(m=new Tg(t.Cb,1,13,k,e,Np(Al(u(t.Cb,62)),t),!1),n?n.nj(m):n=m));else if(Lt(t.Cb,90))t.Db>>16==-23&&(Lt(e,90)||(e=(wn(),xf)),Lt(k,90)||(k=(wn(),xf)),t.Cb.Yh()&&(m=new Tg(t.Cb,1,10,k,e,Np(Wc(u(t.Cb,29)),t),!1),n?n.nj(m):n=m));else if(Lt(t.Cb,456))for(d=u(t.Cb,850),h=(!d.b&&(d.b=new s$(new Gnt)),d.b),o=(r=new sw(new mr(h.a).a),new a$(r));o.a.b;)s=u(Um(o.a).ld(),89),n=H7(s,QH(s,d),n)}return n}function z9n(t,e){var n,r,s,o,h,d,m,k,T,A,P;for(h=Ie(Me(ne(t,(De(),L3)))),P=u(ne(t,M3),21),m=!1,k=!1,A=new Zn((!t.c&&(t.c=new Jt(kl,t,9,9)),t.c));A.e!=A.i.gc()&&(!m||!k);){for(o=u(ar(A),123),d=0,s=A0(ah(lt(ut(gh,1),Ln,20,0,[(!o.d&&(o.d=new kn(Ts,o,8,5)),o.d),(!o.e&&(o.e=new kn(Ts,o,7,4)),o.e)])));Mr(s)&&(r=u(dr(s),74),T=h&&Zm(r)&&Ie(Me(ne(r,Mw))),n=Wge((!r.b&&(r.b=new kn(vr,r,4,7)),r.b),o)?t==Ji(Jo(u(Dt((!r.c&&(r.c=new kn(vr,r,5,8)),r.c),0),84))):t==Ji(Jo(u(Dt((!r.b&&(r.b=new kn(vr,r,4,7)),r.b),0),84))),!((T||n)&&(++d,d>1))););(d>0||P.Hc((wl(),Hg))&&(!o.n&&(o.n=new Jt(Po,o,1,7)),o.n).i>0)&&(m=!0),d>1&&(k=!0)}m&&e.Fc((Co(),Uh)),k&&e.Fc((Co(),LA))}function wpe(t){var e,n,r,s,o,h,d,m,k,T,A,P;if(P=u(ne(t,(ai(),jw)),21),P.dc())return null;if(d=0,h=0,P.Hc((Yl(),RP))){for(T=u(ne(t,fL),101),r=2,n=2,s=2,o=2,e=Ji(t)?u(ne(Ji(t),Rw),88):u(ne(t,Rw),88),k=new Zn((!t.c&&(t.c=new Jt(kl,t,9,9)),t.c));k.e!=k.i.gc();)if(m=u(ar(k),123),A=u(ne(m,hx),64),A==(ve(),bc)&&(A=Pkt(m,e),Mi(m,hx,A)),T==(ka(),hu))switch(A.g){case 1:r=b.Math.max(r,m.i+m.g);break;case 2:n=b.Math.max(n,m.j+m.f);break;case 3:s=b.Math.max(s,m.i+m.g);break;case 4:o=b.Math.max(o,m.j+m.f)}else switch(A.g){case 1:r+=m.g+2;break;case 2:n+=m.f+2;break;case 3:s+=m.g+2;break;case 4:o+=m.f+2}d=b.Math.max(r,s),h=b.Math.max(n,o)}return rv(t,d,h,!0,!0)}function Act(t,e,n,r,s){var o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt;for(Tt=u(nc(Pq(_i(new ln(null,new gn(e.d,16)),new aUt(n)),new oUt(n)),gl(new Br,new ce,new An,lt(ut(Ho,1),te,108,0,[(bl(),sc)]))),15),A=xi,T=Ga,m=new G(e.b.j);m.a0,k?k&&(P=ht.p,h?++P:--P,A=u(Oe(ht.c.a,P),10),r=$ce(A),$=!(Jot(r,se,n[0])||lee(r,se,n[0]))):$=!0),U=!1,Wt=e.D.i,Wt&&Wt.c&&d.e&&(T=h&&Wt.p>0||!h&&Wt.p=0){for(m=null,d=new La(T.a,k+1);d.bh?1:ym(isNaN(0),isNaN(h)))<0&&($f(s0),(b.Math.abs(h-1)<=s0||h==1||isNaN(h)&&isNaN(1)?0:h<1?-1:h>1?1:ym(isNaN(h),isNaN(1)))<0)&&($f(s0),(b.Math.abs(0-d)<=s0||d==0||isNaN(0)&&isNaN(d)?0:0d?1:ym(isNaN(0),isNaN(d)))<0)&&($f(s0),(b.Math.abs(d-1)<=s0||d==1||isNaN(d)&&isNaN(1)?0:d<1?-1:d>1?1:ym(isNaN(d),isNaN(1)))<0)),o)}function K9n(t){var e,n,r,s;if(n=t.D!=null?t.D:t.B,e=$d(n,Hu(91)),e!=-1){r=(Da(0,e,n.length),n.substr(0,e)),s=new dp;do s.a+="[";while((e=TE(n,91,++e))!=-1);hn(r,kk)?s.a+="Z":hn(r,lA)?s.a+="B":hn(r,wU)?s.a+="C":hn(r,hA)?s.a+="D":hn(r,fA)?s.a+="F":hn(r,dA)?s.a+="I":hn(r,gA)?s.a+="J":hn(r,pA)?s.a+="S":(s.a+="L",s.a+=""+r,s.a+=";");try{return null}catch(o){if(o=es(o),!Lt(o,63))throw at(o)}}else if($d(n,Hu(46))==-1){if(hn(n,kk))return Fl;if(hn(n,lA))return ul;if(hn(n,wU))return Yh;if(hn(n,hA))return ma;if(hn(n,fA))return Y3;if(hn(n,dA))return Fr;if(hn(n,gA))return x2;if(hn(n,pA))return wx}return null}function W9n(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se,Ce;for(t.e=e,d=W5n(e),se=new fe,r=new G(d);r.a=0&&J=k.c.c.length?T=k3t((Un(),xs),fa):T=k3t((Un(),fa),fa),T*=2,o=n.a.g,n.a.g=b.Math.max(o,o+(T-o)),h=n.b.g,n.b.g=b.Math.max(h,h+(T-h)),s=e}}function J9n(t){var e,n,r,s;for(ms(_i(new ln(null,new gn(t.a.b,16)),new rR),new aJ),Oyn(t),ms(_i(new ln(null,new gn(t.a.b,16)),new oJ),new cJ),t.c==(Lg(),e8)&&(ms(_i(fc(new ln(null,new gn(new cr(t.f),1)),new uJ),new lJ),new ZVt(t)),ms(_i(Wo(fc(fc(new ln(null,new gn(t.d.b,16)),new hJ),new iR),new fJ),new sR),new eUt(t))),s=new ae(Zi,Zi),e=new ae(Vs,Vs),r=new G(t.a.b);r.a0&&(e.a+=ao),wV(u(ar(d),167),e);for(e.a+=But,m=new j6((!r.c&&(r.c=new kn(vr,r,5,8)),r.c));m.e!=m.i.gc();)m.e>0&&(e.a+=ao),wV(u(ar(m),167),e);e.a+=")"}}function Z9n(t,e,n){var r,s,o,h,d,m,k,T;for(m=new Zn((!t.a&&(t.a=new Jt(bi,t,10,11)),t.a));m.e!=m.i.gc();)for(d=u(ar(m),27),s=new rr(sr(Og(d).a.Kc(),new z));Mr(s);){if(r=u(dr(s),74),!r.b&&(r.b=new kn(vr,r,4,7)),!(r.b.i<=1&&(!r.c&&(r.c=new kn(vr,r,5,8)),r.c.i<=1)))throw at(new L6("Graph must not contain hyperedges."));if(!S_(r)&&d!=Jo(u(Dt((!r.c&&(r.c=new kn(vr,r,5,8)),r.c),0),84)))for(k=new mZt,Qo(k,r),Zt(k,(Pb(),$k),r),Dnt(k,u(Ko(Eo(n.f,d)),153)),v6(k,u(tr(n,Jo(u(Dt((!r.c&&(r.c=new kn(vr,r,5,8)),r.c),0),84))),153)),ge(e.c,k),h=new Zn((!r.n&&(r.n=new Jt(Po,r,1,7)),r.n));h.e!=h.i.gc();)o=u(ar(h),135),T=new yie(k,o.a),Qo(T,o),Zt(T,$k,o),T.e.a=b.Math.max(o.g,1),T.e.b=b.Math.max(o.f,1),$kt(T),ge(e.d,T)}}function tCn(t,e,n){var r,s,o,h,d,m,k,T,A,P;switch(n.Ug("Node promotion heuristic",1),t.i=e,t.r=u(X(e,(De(),a2)),243),t.r!=(cf(),Lv)&&t.r!=N3?_Cn(t):Zkn(t),T=u(X(t.i,eAt),17).a,o=new Fd,t.r.g){case 2:case 1:z7(t,o);break;case 3:for(t.r=tK,z7(t,o),m=0,d=new G(t.b);d.at.k&&(t.r=cP,z7(t,o));break;case 4:for(t.r=tK,z7(t,o),k=0,s=new G(t.c);s.at.n&&(t.r=uP,z7(t,o));break;case 6:P=Ys(b.Math.ceil(t.g.length*T/100)),z7(t,new zVt(P));break;case 5:A=Ys(b.Math.ceil(t.e*T/100)),z7(t,new qVt(A));break;case 8:ebe(t,!0);break;case 9:ebe(t,!1);break;default:z7(t,o)}t.r!=Lv&&t.r!=N3?Ekn(t,e):H8n(t,e),n.Vg()}function eCn(t){var e,n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At;for(A=t.b,T=new La(A,0),Ly(T,new eu(t)),Tt=!1,h=1;T.b0&&(P.d+=T.n.d,P.d+=T.d),P.a>0&&(P.a+=T.n.a,P.a+=T.d),P.b>0&&(P.b+=T.n.b,P.b+=T.d),P.c>0&&(P.c+=T.n.c,P.c+=T.d),P}function vpe(t,e,n){var r,s,o,h,d,m,k,T,A,P,$,U;for(P=n.d,A=n.c,o=new ae(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a),h=o.b,k=new G(t.a);k.a0&&(t.c[e.c.p][e.p].d+=Dl(t.i,24)*lN*.07000000029802322-.03500000014901161,t.c[e.c.p][e.p].a=t.c[e.c.p][e.p].d/t.c[e.c.p][e.p].b)}}function iCn(t){var e,n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt;for(U=new G(t);U.ar.d,r.d=b.Math.max(r.d,e),d&&n&&(r.d=b.Math.max(r.d,r.a),r.a=r.d+s);break;case 3:n=e>r.a,r.a=b.Math.max(r.a,e),d&&n&&(r.a=b.Math.max(r.a,r.d),r.d=r.a+s);break;case 2:n=e>r.c,r.c=b.Math.max(r.c,e),d&&n&&(r.c=b.Math.max(r.b,r.c),r.b=r.c+s);break;case 4:n=e>r.b,r.b=b.Math.max(r.b,e),d&&n&&(r.b=b.Math.max(r.b,r.c),r.c=r.b+s)}}}function xpe(t,e){var n,r,s,o,h,d,m,k,T;return k="",e.length==0?t.ne(b8t,$ct,-1,-1):(T=Zy(e),hn(T.substr(0,3),"at ")&&(T=(qn(3,T.length+1),T.substr(3))),T=T.replace(/\[.*?\]/g,""),h=T.indexOf("("),h==-1?(h=T.indexOf("@"),h==-1?(k=T,T=""):(k=Zy((qn(h+1,T.length+1),T.substr(h+1))),T=Zy((Da(0,h,T.length),T.substr(0,h))))):(n=T.indexOf(")",h),k=(Da(h+1,n,T.length),T.substr(h+1,n-(h+1))),T=Zy((Da(0,h,T.length),T.substr(0,h)))),h=$d(T,Hu(46)),h!=-1&&(T=(qn(h+1,T.length+1),T.substr(h+1))),(T.length==0||hn(T,"Anonymous function"))&&(T=$ct),d=cz(k,Hu(58)),s=Tvt(k,Hu(58),d-1),m=-1,r=-1,o=b8t,d!=-1&&s!=-1&&(o=(Da(0,s,k.length),k.substr(0,s)),m=BJt((Da(s+1,d,k.length),k.substr(s+1,d-(s+1)))),r=BJt((qn(d+1,k.length+1),k.substr(d+1)))),t.ne(o,T,m,r))}function oCn(t){var e,n,r,s,o,h,d,m,k,T,A;for(k=new G(t);k.a0||T.j==Gn&&T.e.c.length-T.g.c.length<0)){e=!1;break}for(s=new G(T.g);s.a=k&&Wt>=tt&&(P+=U.n.b+J.n.b+J.a.b-Bt,++d));if(n)for(h=new G(Tt.e);h.a=k&&Wt>=tt&&(P+=U.n.b+J.n.b+J.a.b-Bt,++d))}d>0&&(se+=P/d,++$)}$>0?(e.a=s*se/$,e.g=$):(e.a=0,e.g=0)}function uCn(t){var e,n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se,Ce;for(o=t.f.b,P=o.a,T=o.b,U=t.e.g,$=t.e.f,H4(t.e,o.a,o.b),se=P/U,Ce=T/$,k=new Zn(Kz(t.e));k.e!=k.i.gc();)m=u(ar(k),135),Su(m,m.i*se),_u(m,m.j*Ce);for(Tt=new Zn(Jit(t.e));Tt.e!=Tt.i.gc();)ht=u(ar(Tt),123),Bt=ht.i,Wt=ht.j,Bt>0&&Su(ht,Bt*se),Wt>0&&_u(ht,Wt*Ce);for(e_(t.b,new fg),e=new fe,d=new sw(new mr(t.c).a);d.b;)h=Um(d),r=u(h.ld(),74),n=u(h.md(),407).a,s=b5(r,!1,!1),A=dfe(O0(r),MO(s),n),KO(A,s),At=Sfe(r),At&&Xo(e,At,0)==-1&&(In(e.c,At),ene(At,(ur(A.b!=0),u(A.a.a.c,8)),n));for(tt=new sw(new mr(t.d).a);tt.b;)J=Um(tt),r=u(J.ld(),74),n=u(J.md(),407).a,s=b5(r,!1,!1),A=dfe(qb(r),cO(MO(s)),n),A=cO(A),KO(A,s),At=_fe(r),At&&Xo(e,At,0)==-1&&(In(e.c,At),ene(At,(ur(A.b!=0),u(A.c.b.c,8)),n))}function kpe(t,e,n,r){var s,o,h,d,m;return d=new Zkt(e),tkn(d,r),s=!0,t&&t.pf((ai(),Rw))&&(o=u(t.of((ai(),Rw)),88),s=o==(Rs(),Ed)||o==Uo||o==tc),x0e(d,!1),Cu(d.e.Rf(),new Mvt(d,!1,s)),hst(d,d.f,(A1(),Ac),(ve(),Hn)),hst(d,d.f,Lc,Er),hst(d,d.g,Ac,Gn),hst(d,d.g,Lc,Jn),Yle(d,Hn),Yle(d,Er),Jee(d,Jn),Jee(d,Gn),Ay(),h=d.A.Hc((Yl(),z3))&&d.B.Hc((Ml(),$P))?dle(d):null,h&&urn(d.a,h),aCn(d),ovn(d),cvn(d),O9n(d),oEn(d),Nvn(d),tot(d,Hn),tot(d,Er),R8n(d),oTn(d),n&&(q2n(d),Pvn(d),tot(d,Jn),tot(d,Gn),m=d.B.Hc((Ml(),kL)),d1e(d,m,Hn),d1e(d,m,Er),g1e(d,m,Jn),g1e(d,m,Gn),ms(new ln(null,new gn(new si(d.i),0)),new mc),ms(_i(new ln(null,Lyt(d.r).a.oc()),new ca),new ya),Yyn(d),d.e.Pf(d.o),ms(new ln(null,Lyt(d.r).a.oc()),new ea)),d.o}function lCn(t){var e,n,r,s,o,h,d,m,k,T,A,P,$,U,J;for(k=Zi,r=new G(t.a.b);r.a1)for($=new Vkt(U,At,r),Fa(At,new MXt(t,$)),In(h.c,$),A=At.a.ec().Kc();A.Ob();)T=u(A.Pb(),42),zu(o,T.b);if(d.a.gc()>1)for($=new Vkt(U,d,r),Fa(d,new IXt(t,$)),In(h.c,$),A=d.a.ec().Kc();A.Ob();)T=u(A.Pb(),42),zu(o,T.b)}}function gCn(t,e,n){var r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht;if(J=t.n,tt=t.o,P=t.d,A=Rt(Ht(Wy(t,(De(),u1t)))),e){for(T=A*(e.gc()-1),$=0,m=e.Kc();m.Ob();)h=u(m.Pb(),10),T+=h.o.a,$=b.Math.max($,h.o.b);for(ht=J.a-(T-tt.a)/2,o=J.b-P.d+$,r=tt.a/(e.gc()+1),s=r,d=e.Kc();d.Ob();)h=u(d.Pb(),10),h.n.a=ht,h.n.b=o-h.o.b,ht+=h.o.a+A,k=Mde(h),k.n.a=h.o.a/2-k.a.a,k.n.b=h.o.b,U=u(X(h,(oe(),AG)),12),U.e.c.length+U.g.c.length==1&&(U.n.a=s-U.a.a,U.n.b=0,hc(U,t)),s+=r}if(n){for(T=A*(n.gc()-1),$=0,m=n.Kc();m.Ob();)h=u(m.Pb(),10),T+=h.o.a,$=b.Math.max($,h.o.b);for(ht=J.a-(T-tt.a)/2,o=J.b+tt.b+P.a-$,r=tt.a/(n.gc()+1),s=r,d=n.Kc();d.Ob();)h=u(d.Pb(),10),h.n.a=ht,h.n.b=o,ht+=h.o.a+A,k=Mde(h),k.n.a=h.o.a/2-k.a.a,k.n.b=0,U=u(X(h,(oe(),AG)),12),U.e.c.length+U.g.c.length==1&&(U.n.a=s-U.a.a,U.n.b=tt.b,hc(U,t)),s+=r}}function pCn(t,e){var n,r,s,o,h,d;if(u(X(e,(oe(),lu)),21).Hc((Co(),Uh))){for(d=new G(e.a);d.a=0&&h0&&(u(Io(t.b,e),127).a.b=n)}function yCn(t,e,n,r){var s,o,h,d,m,k,T,A,P,$,U,J;if(P=Rt(Ht(X(t,(De(),FT)))),$=Rt(Ht(X(t,BT))),A=Rt(Ht(X(t,O3))),d=t.o,o=u(Oe(t.j,0),12),h=o.n,J=B4n(o,A),!!J){if(e.Hc((wl(),Hg)))switch(u(X(t,(oe(),Dc)),64).g){case 1:J.c=(d.a-J.b)/2-h.a,J.d=$;break;case 3:J.c=(d.a-J.b)/2-h.a,J.d=-$-J.a;break;case 2:n&&o.e.c.length==0&&o.g.c.length==0?(T=r?J.a:u(Oe(o.f,0),72).o.b,J.d=(d.b-T)/2-h.b):J.d=d.b+$-h.b,J.c=-P-J.b;break;case 4:n&&o.e.c.length==0&&o.g.c.length==0?(T=r?J.a:u(Oe(o.f,0),72).o.b,J.d=(d.b-T)/2-h.b):J.d=d.b+$-h.b,J.c=P}else if(e.Hc(g2))switch(u(X(t,(oe(),Dc)),64).g){case 1:case 3:J.c=h.a+P;break;case 2:case 4:n&&!o.c?(T=r?J.a:u(Oe(o.f,0),72).o.b,J.d=(d.b-T)/2-h.b):J.d=h.b+$}for(s=J.d,k=new G(o.f);k.a=e.length)return{done:!0};var s=e[r++];return{value:[s,n.get(s)],done:!1}}}},w8n()||(t.prototype.createObject=function(){return{}},t.prototype.get=function(e){return this.obj[":"+e]},t.prototype.set=function(e,n){this.obj[":"+e]=n},t.prototype[fut]=function(e){delete this.obj[":"+e]},t.prototype.keys=function(){var e=[];for(var n in this.obj)n.charCodeAt(0)==58&&e.push(n.substring(1));return e}),t}function ji(){ji=V,JA=new Oi(G8t),new rs("DEPTH",he(0)),B1t=new rs("FAN",he(0)),gLt=new rs(W2e,he(0)),u2=new rs("ROOT",(Pn(),!1)),$1t=new rs("LEFTNEIGHBOR",null),Kke=new rs("RIGHTNEIGHBOR",null),oK=new rs("LEFTSIBLING",null),z1t=new rs("RIGHTSIBLING",null),F1t=new rs("DUMMY",!1),new rs("LEVEL",he(0)),wLt=new rs("REMOVABLE_EDGES",new Ki),pP=new rs("XCOOR",he(0)),bP=new rs("YCOOR",he(0)),cK=new rs("LEVELHEIGHT",0),P1=new rs("LEVELMIN",0),Xf=new rs("LEVELMAX",0),R1t=new rs("GRAPH_XMIN",0),j1t=new rs("GRAPH_YMIN",0),pLt=new rs("GRAPH_XMAX",0),bLt=new rs("GRAPH_YMAX",0),dLt=new rs("COMPACT_LEVEL_ASCENSION",!1),P1t=new rs("COMPACT_CONSTRAINTS",new fe),QA=new rs("ID",""),ZA=new rs("POSITION",he(0)),Kp=new rs("PRELIM",0),qT=new rs("MODIFIER",0),zT=new Oi(a2e),gP=new Oi(o2e)}function TCn(t){Nkt();var e,n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt;if(t==null)return null;if(A=t.length*8,A==0)return"";for(d=A%24,$=A/24|0,P=d!=0?$+1:$,o=null,o=Vt(Yh,Zd,28,P*4,15,1),k=0,T=0,e=0,n=0,r=0,h=0,s=0,m=0;m<$;m++)e=t[s++],n=t[s++],r=t[s++],T=(n&15)<<24>>24,k=(e&3)<<24>>24,U=e&-128?(e>>2^192)<<24>>24:e>>2<<24>>24,J=n&-128?(n>>4^240)<<24>>24:n>>4<<24>>24,tt=r&-128?(r>>6^252)<<24>>24:r>>6<<24>>24,o[h++]=nb[U],o[h++]=nb[J|k<<4],o[h++]=nb[T<<2|tt],o[h++]=nb[r&63];return d==8?(e=t[s],k=(e&3)<<24>>24,U=e&-128?(e>>2^192)<<24>>24:e>>2<<24>>24,o[h++]=nb[U],o[h++]=nb[k<<4],o[h++]=61,o[h++]=61):d==16&&(e=t[s],n=t[s+1],T=(n&15)<<24>>24,k=(e&3)<<24>>24,U=e&-128?(e>>2^192)<<24>>24:e>>2<<24>>24,J=n&-128?(n>>4^240)<<24>>24:n>>4<<24>>24,o[h++]=nb[U],o[h++]=nb[J|k<<4],o[h++]=nb[T<<2],o[h++]=61),af(o,0,o.length)}function CCn(t,e){var n,r,s,o,h,d,m;if(t.e==0&&t.p>0&&(t.p=-(t.p-1)),t.p>Ga&&x3t(e,t.p-Wb),h=e.q.getDate(),LI(e,1),t.k>=0&&dfn(e,t.k),t.c>=0?LI(e,t.c):t.k>=0?(m=new Q4t(e.q.getFullYear()-Wb,e.q.getMonth(),35),r=35-m.q.getDate(),LI(e,b.Math.min(r,h))):LI(e,h),t.f<0&&(t.f=e.q.getHours()),t.b>0&&t.f<12&&(t.f+=12),isn(e,t.f==24&&t.g?0:t.f),t.j>=0&&Ydn(e,t.j),t.n>=0&&o0n(e,t.n),t.i>=0&&DQt(e,Qa(Ja(_O(Pc(e.q.getTime()),Rp),Rp),t.i)),t.a&&(s=new x$,x3t(s,s.q.getFullYear()-Wb-80),grt(Pc(e.q.getTime()),Pc(s.q.getTime()))&&x3t(e,s.q.getFullYear()-Wb+100)),t.d>=0){if(t.c==-1)n=(7+t.d-e.q.getDay())%7,n>3&&(n-=7),d=e.q.getMonth(),LI(e,e.q.getDate()+n),e.q.getMonth()!=d&&LI(e,e.q.getDate()+(n>0?-7:7));else if(e.q.getDay()!=t.d)return!1}return t.o>Ga&&(o=e.q.getTimezoneOffset(),DQt(e,Qa(Pc(e.q.getTime()),(t.o-o)*60*Rp))),!0}function _pe(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt;if(s=X(e,(oe(),Li)),!!Lt(s,207)){for(U=u(s,27),J=e.e,P=new io(e.c),o=e.d,P.a+=o.b,P.b+=o.d,Bt=u(ne(U,(De(),GG)),181),Zu(Bt,(Ml(),NK))&&($=u(ne(U,aAt),107),Snt($,o.a),D2t($,o.d),_nt($,o.b),m6($,o.c)),n=new fe,T=new G(e.a);T.ar.c.length-1;)ge(r,new Ws(S5,E7t));n=u(X(s,h0),17).a,bg(u(X(t,Mv),88))?(s.e.aRt(Ht((vn(n,r.c.length),u(r.c[n],42)).b))&&re((vn(n,r.c.length),u(r.c[n],42)),s.e.a+s.f.a)):(s.e.bRt(Ht((vn(n,r.c.length),u(r.c[n],42)).b))&&re((vn(n,r.c.length),u(r.c[n],42)),s.e.b+s.f.b))}for(o=Dr(t.b,0);o.b!=o.d.c;)s=u(Ar(o),39),n=u(X(s,(Cc(),h0)),17).a,Zt(s,(ji(),P1),Ht((vn(n,r.c.length),u(r.c[n],42)).a)),Zt(s,Xf,Ht((vn(n,r.c.length),u(r.c[n],42)).b));e.Vg()}function _Cn(t){var e,n,r,s,o,h,d,m,k,T,A,P,$,U,J;for(t.o=Rt(Ht(X(t.i,(De(),Av)))),t.f=Rt(Ht(X(t.i,Pw))),t.j=t.i.b.c.length,d=t.j-1,P=0,t.k=0,t.n=0,t.b=id(Vt(Ra,ue,17,t.j,0,1)),t.c=id(Vt(zs,ue,345,t.j,7,1)),h=new G(t.i.b);h.a0&&ge(t.q,T),ge(t.p,T);e-=r,$=m+e,k+=e*t.f,Mh(t.b,d,he($)),Mh(t.c,d,k),t.k=b.Math.max(t.k,$),t.n=b.Math.max(t.n,k),t.e+=e,e+=J}}function ve(){ve=V;var t;bc=new tI(G_,0),Hn=new tI(_V,1),Jn=new tI(kut,2),Er=new tI(Eut,3),Gn=new tI(Tut,4),Cd=(mn(),new dE((t=u(y1(bo),9),new _h(t,u(Ff(t,t.length),9),0)))),e1=Ap(Hi(Hn,lt(ut(bo,1),qc,64,0,[]))),Kh=Ap(Hi(Jn,lt(ut(bo,1),qc,64,0,[]))),wh=Ap(Hi(Er,lt(ut(bo,1),qc,64,0,[]))),wf=Ap(Hi(Gn,lt(ut(bo,1),qc,64,0,[]))),Gu=Ap(Hi(Hn,lt(ut(bo,1),qc,64,0,[Er]))),Ou=Ap(Hi(Jn,lt(ut(bo,1),qc,64,0,[Gn]))),n1=Ap(Hi(Hn,lt(ut(bo,1),qc,64,0,[Gn]))),yl=Ap(Hi(Hn,lt(ut(bo,1),qc,64,0,[Jn]))),mh=Ap(Hi(Er,lt(ut(bo,1),qc,64,0,[Gn]))),Wh=Ap(Hi(Jn,lt(ut(bo,1),qc,64,0,[Er]))),xl=Ap(Hi(Hn,lt(ut(bo,1),qc,64,0,[Jn,Gn]))),Uu=Ap(Hi(Jn,lt(ut(bo,1),qc,64,0,[Er,Gn]))),Ku=Ap(Hi(Hn,lt(ut(bo,1),qc,64,0,[Er,Gn]))),cl=Ap(Hi(Hn,lt(ut(bo,1),qc,64,0,[Jn,Er]))),fu=Ap(Hi(Hn,lt(ut(bo,1),qc,64,0,[Jn,Er,Gn])))}function ACn(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se,Ce;for(e.Ug(_2e,1),J=new fe,se=new fe,k=new G(t.b);k.a0&&(At-=$),Ukt(h,At),T=0,P=new G(h.a);P.a0),d.a.Xb(d.c=--d.b)),m=.4*r*T,!o&&d.b0&&(m=(qn(0,e.length),e.charCodeAt(0)),m!=64)){if(m==37&&(A=e.lastIndexOf("%"),k=!1,A!=0&&(A==P-1||(k=(qn(A+1,e.length),e.charCodeAt(A+1)==46))))){if(h=(Da(1,A,e.length),e.substr(1,A-1)),At=hn("%",h)?null:n8t(h),r=0,k)try{r=lh((qn(A+2,e.length+1),e.substr(A+2)),Ga,xi)}catch(Bt){throw Bt=es(Bt),Lt(Bt,130)?(d=Bt,at(new _q(d))):at(Bt)}for(tt=D4t(t.Gh());tt.Ob();)if(U=eH(tt),Lt(U,519)&&(s=u(U,598),Tt=s.d,(At==null?Tt==null:hn(At,Tt))&&r--==0))return s;return null}if(T=e.lastIndexOf("."),$=T==-1?e:(Da(0,T,e.length),e.substr(0,T)),n=0,T!=-1)try{n=lh((qn(T+1,e.length+1),e.substr(T+1)),Ga,xi)}catch(Bt){if(Bt=es(Bt),Lt(Bt,130))$=e;else throw at(Bt)}for($=hn("%",$)?null:n8t($),J=D4t(t.Gh());J.Ob();)if(U=eH(J),Lt(U,197)&&(o=u(U,197),ht=o.xe(),($==null?ht==null:hn($,ht))&&n--==0))return o;return null}return bpe(t,e)}function FCn(t){var e,n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt;for(T=new _r,m=new Fm,r=new G(t.a.a.b);r.ae.d.c){if($=t.c[e.a.d],tt=t.c[A.a.d],$==tt)continue;Hf(Of(If(Nf(Mf(new tf,1),100),$),tt))}}}}}function BCn(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se;if(P=u(u(Ai(t.r,e),21),87),e==(ve(),Jn)||e==Gn){Tpe(t,e);return}for(o=e==Hn?(Gm(),BN):(Gm(),RN),Bt=e==Hn?(qu(),O1):(qu(),Kf),n=u(Io(t.b,e),127),r=n.i,s=r.c+e5(lt(ut(ma,1),No,28,15,[n.n.b,t.C.b,t.k])),ht=r.c+r.b-e5(lt(ut(ma,1),No,28,15,[n.n.c,t.C.c,t.k])),h=wwt(Ovt(o),t.t),Tt=e==Hn?Vs:Zi,A=P.Kc();A.Ob();)k=u(A.Pb(),117),!(!k.c||k.c.d.c.length<=0)&&(tt=k.b.Mf(),J=k.e,$=k.c,U=$.i,U.b=(m=$.n,$.e.a+m.b+m.c),U.a=(d=$.n,$.e.b+d.d+d.a),SI(Bt,I8t),$.f=Bt,S1($,(pl(),Gf)),U.c=J.a-(U.b-tt.a)/2,Wt=b.Math.min(s,J.a),se=b.Math.max(ht,J.a+tt.a),U.cse&&(U.c=se-U.b),ge(h.d,new Oit(U,T5t(h,U))),Tt=e==Hn?b.Math.max(Tt,J.b+k.b.Mf().b):b.Math.min(Tt,J.b));for(Tt+=e==Hn?t.t:-t.t,At=H5t((h.e=Tt,h)),At>0&&(u(Io(t.b,e),127).a.b=At),T=P.Kc();T.Ob();)k=u(T.Pb(),117),!(!k.c||k.c.d.c.length<=0)&&(U=k.c.i,U.c-=k.e.a,U.d-=k.e.b)}function RCn(t){var e,n,r,s,o,h,d,m,k,T,A,P,$;for(e=new _r,m=new Zn(t);m.e!=m.i.gc();){for(d=u(ar(m),27),n=new Os,hi(Jht,d,n),$=new ip,s=u(nc(new ln(null,new Lm(new rr(sr(jO(d).a.Kc(),new z)))),Gte($,gl(new Br,new ce,new An,lt(ut(Ho,1),te,108,0,[(bl(),sc)])))),85),Soe(n,u(s.xc((Pn(),!0)),16),new sy),r=u(nc(_i(u(s.xc(!1),15).Lc(),new D8),gl(new Br,new ce,new An,lt(ut(Ho,1),te,108,0,[sc]))),15),h=r.Kc();h.Ob();)o=u(h.Pb(),74),P=Sfe(o),P&&(k=u(Ko(Eo(e.f,P)),21),k||(k=Xde(P),yu(e.f,P,k)),Ma(n,k));for(s=u(nc(new ln(null,new Lm(new rr(sr(Og(d).a.Kc(),new z)))),Gte($,gl(new Br,new ce,new An,lt(ut(Ho,1),te,108,0,[sc])))),85),Soe(n,u(s.xc(!0),16),new g4),r=u(nc(_i(u(s.xc(!1),15).Lc(),new th),gl(new Br,new ce,new An,lt(ut(Ho,1),te,108,0,[sc]))),15),A=r.Kc();A.Ob();)T=u(A.Pb(),74),P=_fe(T),P&&(k=u(Ko(Eo(e.f,P)),21),k||(k=Xde(P),yu(e.f,P,k)),Ma(n,k))}}function jCn(t,e){mct();var n,r,s,o,h,d,m,k,T,A,P,$,U,J;if(m=$c(t,0)<0,m&&(t=Cp(t)),$c(t,0)==0)switch(e){case 0:return"0";case 1:return Y7;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return $=new yb,e<0?$.a+="0E+":$.a+="0E",$.a+=e==Ga?"2147483648":""+-e,$.a}T=18,A=Vt(Yh,Zd,28,T+1,15,1),n=T,J=t;do k=J,J=_O(J,10),A[--n]=qr(Qa(48,sf(k,Ja(J,10))))&js;while($c(J,0)!=0);if(s=sf(sf(sf(T,n),e),1),e==0)return m&&(A[--n]=45),af(A,n,T-n);if(e>0&&$c(s,-6)>=0){if($c(s,0)>=0){for(o=n+qr(s),d=T-1;d>=o;d--)A[d+1]=A[d];return A[++o]=46,m&&(A[--n]=45),af(A,n,T-n+1)}for(h=2;grt(h,Qa(Cp(s),1));h++)A[--n]=48;return A[--n]=46,A[--n]=48,m&&(A[--n]=45),af(A,n,T-n)}return U=n+1,r=T,P=new I4,m&&(P.a+="-"),r-U>=1?(Db(P,A[n]),P.a+=".",P.a+=af(A,n+1,T-n-1)):P.a+=af(A,n,T-n),P.a+="E",$c(s,0)>0&&(P.a+="+"),P.a+=""+OS(s),P.a}function rv(t,e,n,r,s){var o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se;if(tt=new ae(t.g,t.f),J=v6t(t),J.a=b.Math.max(J.a,e),J.b=b.Math.max(J.b,n),se=J.a/tt.a,T=J.b/tt.b,Bt=J.a-tt.a,m=J.b-tt.b,r)for(h=Ji(t)?u(ne(Ji(t),(ai(),Rw)),88):u(ne(t,(ai(),Rw)),88),d=$t(ne(t,(ai(),fL)))===$t((ka(),hu)),Tt=new Zn((!t.c&&(t.c=new Jt(kl,t,9,9)),t.c));Tt.e!=Tt.i.gc();)switch(ht=u(ar(Tt),123),At=u(ne(ht,hx),64),At==(ve(),bc)&&(At=Pkt(ht,h),Mi(ht,hx,At)),At.g){case 1:d||Su(ht,ht.i*se);break;case 2:Su(ht,ht.i+Bt),d||_u(ht,ht.j*T);break;case 3:d||Su(ht,ht.i*se),_u(ht,ht.j+m);break;case 4:d||_u(ht,ht.j*T)}if(H4(t,J.a,J.b),s)for(P=new Zn((!t.n&&(t.n=new Jt(Po,t,1,7)),t.n));P.e!=P.i.gc();)A=u(ar(P),135),$=A.i+A.g/2,U=A.j+A.f/2,Wt=$/tt.a,k=U/tt.b,Wt+k>=1&&(Wt-k>0&&U>=0?(Su(A,A.i+Bt),_u(A,A.j+m*k)):Wt-k<0&&$>=0&&(Su(A,A.i+Bt*Wt),_u(A,A.j+m)));return Mi(t,(ai(),jw),(Yl(),o=u(y1(xL),9),new _h(o,u(Ff(o,o.length),9),0))),new ae(se,T)}function Mpe(t){wm(t,new dw(p$(gm(hm(dm(fm(new G1,zh),"ELK Radial"),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new Kc),zh))),le(t,zh,JV,Se(H8e)),le(t,zh,h3,Se(V8e)),le(t,zh,_5,Se(j8e)),le(t,zh,Ik,Se($8e)),le(t,zh,Mk,Se(z8e)),le(t,zh,nT,Se(R8e)),le(t,zh,X_,Se(GLt)),le(t,zh,rT,Se(q8e)),le(t,zh,_lt,Se(tdt)),le(t,zh,Slt,Se(edt)),le(t,zh,sU,Se(WLt)),le(t,zh,Alt,Se(ndt)),le(t,zh,Llt,Se(YLt)),le(t,zh,q7t,Se(XLt)),le(t,zh,z7t,Se(KLt)),le(t,zh,B7t,Se(dK)),le(t,zh,R7t,Se(gK)),le(t,zh,j7t,Se(wP)),le(t,zh,$7t,Se(QLt)),le(t,zh,F7t,Se(ULt))}function mV(t){var e,n,r,s,o,h,d,m,k,T,A;if(t==null)throw at(new jd(Vu));if(k=t,o=t.length,m=!1,o>0&&(e=(qn(0,t.length),t.charCodeAt(0)),(e==45||e==43)&&(t=(qn(1,t.length+1),t.substr(1)),--o,m=e==45)),o==0)throw at(new jd(av+k+'"'));for(;t.length>0&&(qn(0,t.length),t.charCodeAt(0)==48);)t=(qn(1,t.length+1),t.substr(1)),--o;if(o>(cge(),Xve)[10])throw at(new jd(av+k+'"'));for(s=0;s0&&(A=-parseInt((Da(0,r,t.length),t.substr(0,r)),10),t=(qn(r,t.length+1),t.substr(r)),o-=r,n=!1);o>=h;){if(r=parseInt((Da(0,h,t.length),t.substr(0,h)),10),t=(qn(h,t.length+1),t.substr(h)),o-=h,n)n=!1;else{if($c(A,d)<0)throw at(new jd(av+k+'"'));A=Ja(A,T)}A=sf(A,r)}if($c(A,0)>0)throw at(new jd(av+k+'"'));if(!m&&(A=Cp(A),$c(A,0)<0))throw at(new jd(av+k+'"'));return A}function n8t(t){Tct();var e,n,r,s,o,h,d,m;if(t==null)return null;if(s=$d(t,Hu(37)),s<0)return t;for(m=new eh((Da(0,s,t.length),t.substr(0,s))),e=Vt(ul,M5,28,4,15,1),d=0,r=0,h=t.length;ss+2&&vat((qn(s+1,t.length),t.charCodeAt(s+1)),PIt,FIt)&&vat((qn(s+2,t.length),t.charCodeAt(s+2)),PIt,FIt))if(n=aun((qn(s+1,t.length),t.charCodeAt(s+1)),(qn(s+2,t.length),t.charCodeAt(s+2))),s+=2,r>0?(n&192)==128?e[d++]=n<<24>>24:r=0:n>=128&&((n&224)==192?(e[d++]=n<<24>>24,r=2):(n&240)==224?(e[d++]=n<<24>>24,r=3):(n&248)==240&&(e[d++]=n<<24>>24,r=4)),r>0){if(d==r){switch(d){case 2:{Db(m,((e[0]&31)<<6|e[1]&63)&js);break}case 3:{Db(m,((e[0]&15)<<12|(e[1]&63)<<6|e[2]&63)&js);break}}d=0,r=0}}else{for(o=0;o=2){if((!t.a&&(t.a=new Jt(Wi,t,6,6)),t.a).i==0)n=(kb(),s=new K8,s),Or((!t.a&&(t.a=new Jt(Wi,t,6,6)),t.a),n);else if((!t.a&&(t.a=new Jt(Wi,t,6,6)),t.a).i>1)for(P=new j6((!t.a&&(t.a=new Jt(Wi,t,6,6)),t.a));P.e!=P.i.gc();)E_(P);KO(e,u(Dt((!t.a&&(t.a=new Jt(Wi,t,6,6)),t.a),0),166))}if(A)for(r=new Zn((!t.a&&(t.a=new Jt(Wi,t,6,6)),t.a));r.e!=r.i.gc();)for(n=u(ar(r),166),k=new Zn((!n.a&&(n.a=new Ps(vh,n,5)),n.a));k.e!=k.i.gc();)m=u(ar(k),377),d.a=b.Math.max(d.a,m.a),d.b=b.Math.max(d.b,m.b);for(h=new Zn((!t.n&&(t.n=new Jt(Po,t,1,7)),t.n));h.e!=h.i.gc();)o=u(ar(h),135),T=u(ne(o,pL),8),T&&Ch(o,T.a,T.b),A&&(d.a=b.Math.max(d.a,o.i+o.g),d.b=b.Math.max(d.b,o.j+o.f));return d}function Ope(t,e,n,r,s){var o,h,d;if(Oae(t,e),h=e[0],o=Va(n.c,0),d=-1,t5t(n))if(r>0){if(h+r>t.length)return!1;d=KH((Da(0,h+r,t.length),t.substr(0,h+r)),e)}else d=KH(t,e);switch(o){case 71:return d=d5(t,h,lt(ut(Pe,1),ue,2,6,[mbe,vbe]),e),s.e=d,!0;case 77:return e8n(t,e,s,d,h);case 76:return n8n(t,e,s,d,h);case 69:return K4n(t,e,h,s);case 99:return W4n(t,e,h,s);case 97:return d=d5(t,h,lt(ut(Pe,1),ue,2,6,["AM","PM"]),e),s.b=d,!0;case 121:return r8n(t,e,h,d,n,s);case 100:return d<=0?!1:(s.c=d,!0);case 83:return d<0?!1:uwn(d,h,e[0],s);case 104:d==12&&(d=0);case 75:case 72:return d<0?!1:(s.f=d,s.g=!1,!0);case 107:return d<0?!1:(s.f=d,s.g=!0,!0);case 109:return d<0?!1:(s.j=d,!0);case 115:return d<0?!1:(s.n=d,!0);case 90:if(hrn[m]&&(tt=m),A=new G(t.a.b);A.a1;){if(s=W6n(e),A=o.g,U=u(ne(e,rL),107),J=Rt(Ht(ne(e,mK))),(!e.a&&(e.a=new Jt(bi,e,10,11)),e.a).i>1&&Rt(Ht(ne(e,(N0(),ldt))))!=Zi&&(o.c+(U.b+U.c))/(o.b+(U.d+U.a))1&&Rt(Ht(ne(e,(N0(),udt))))!=Zi&&(o.c+(U.b+U.c))/(o.b+(U.d+U.a))>J&&Mi(s,(N0(),B3),b.Math.max(Rt(Ht(ne(e,nL))),Rt(Ht(ne(s,B3)))-Rt(Ht(ne(e,udt))))),$=new lmt(r,T),m=Zpe($,s,P),k=m.g,k>=A&&k==k){for(h=0;h<(!s.a&&(s.a=new Jt(bi,s,10,11)),s.a).i;h++)S1e(t,u(Dt((!s.a&&(s.a=new Jt(bi,s,10,11)),s.a),h),27),u(Dt((!e.a&&(e.a=new Jt(bi,e,10,11)),e.a),h),27));soe(e,$),Jhn(o,m.c),Qhn(o,m.b)}--d}Mi(e,(N0(),eL),o.b),Mi(e,HT,o.c),n.Vg()}function HCn(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt;for(e.Ug("Interactive node layering",1),n=new fe,P=new G(t.a);P.a=d){ur(Tt.b>0),Tt.a.Xb(Tt.c=--Tt.b);break}else tt.a>m&&(r?(Hs(r.b,tt.b),r.a=b.Math.max(r.a,tt.a),Kl(Tt)):(ge(tt.b,T),tt.c=b.Math.min(tt.c,m),tt.a=b.Math.max(tt.a,d),r=tt));r||(r=new _Kt,r.c=m,r.a=d,Ly(Tt,r),ge(r.b,T))}for(h=t.b,k=0,ht=new G(n);ht.a$&&(o&&(ro(se,P),ro(rn,he(k.b-1))),Jr=n.b,is+=P+e,P=0,T=b.Math.max(T,n.b+n.c+er)),Su(d,Jr),_u(d,is),T=b.Math.max(T,Jr+er+n.c),P=b.Math.max(P,A),Jr+=er+e;if(T=b.Math.max(T,r),Dn=is+P+n.a,Dnn0,Ze=b.Math.abs(P.b-U.b)>n0,(!n&&rn&&Ze||n&&(rn||Ze))&&Zr(tt.a,Bt)),Ma(tt.a,r),r.b==0?P=Bt:P=(ur(r.b!=0),u(r.c.b.c,8)),Lpn($,A,J),ice(s)==Ce&&(Pa(Ce.i)!=s.a&&(J=new Sa,p6t(J,Pa(Ce.i),Tt)),Zt(tt,Qft,J)),h4n($,tt,Tt),T.a.zc($,T);Xa(tt,Wt),xa(tt,Ce)}for(k=T.a.ec().Kc();k.Ob();)m=u(k.Pb(),18),Xa(m,null),xa(m,null);e.Vg()}function GCn(t,e){var n,r,s,o,h,d,m,k,T,A,P;for(s=u(X(t,(Cc(),Mv)),88),T=s==(Rs(),Uo)||s==tc?kd:tc,n=u(nc(_i(new ln(null,new gn(t.b,16)),new XD),gl(new Br,new ce,new An,lt(ut(Ho,1),te,108,0,[(bl(),sc)]))),15),m=u(nc(Wo(n.Oc(),new WUt(e)),gl(new Br,new ce,new An,lt(ut(Ho,1),te,108,0,[sc]))),15),m.Gc(u(nc(Wo(n.Oc(),new YUt(e)),gl(new Br,new ce,new An,lt(ut(Ho,1),te,108,0,[sc]))),16)),m.jd(new XUt(T)),P=new pp(new QUt(s)),r=new _r,d=m.Kc();d.Ob();)h=u(d.Pb(),240),k=u(h.a,39),Ie(Me(h.c))?(P.a.zc(k,(Pn(),t2))==null,new ra(P.a.Zc(k,!1)).a.gc()>0&&hi(r,k,u(new ra(P.a.Zc(k,!1)).a.Vc(),39)),new ra(P.a.ad(k,!0)).a.gc()>1&&hi(r,cle(P,k),k)):(new ra(P.a.Zc(k,!1)).a.gc()>0&&(o=u(new ra(P.a.Zc(k,!1)).a.Vc(),39),$t(o)===$t(Ko(Eo(r.f,k)))&&u(X(k,(ji(),P1t)),15).Fc(o)),new ra(P.a.ad(k,!0)).a.gc()>1&&(A=cle(P,k),$t(Ko(Eo(r.f,A)))===$t(k)&&u(X(A,(ji(),P1t)),15).Fc(k)),P.a.Bc(k)!=null)}function Npe(t){var e,n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt;if(t.gc()==1)return u(t.Xb(0),235);if(t.gc()<=0)return new mq;for(s=t.Kc();s.Ob();){for(n=u(s.Pb(),235),U=0,T=xi,A=xi,m=Ga,k=Ga,$=new G(n.e);$.a<$.c.c.length;)P=u(et($),153),U+=u(X(P,(Vf(),jk)),17).a,T=b.Math.min(T,P.d.a-P.e.a/2),A=b.Math.min(A,P.d.b-P.e.b/2),m=b.Math.max(m,P.d.a+P.e.a/2),k=b.Math.max(k,P.d.b+P.e.b/2);Zt(n,(Vf(),jk),he(U)),Zt(n,(Pb(),TA),new ae(T,A)),Zt(n,UN,new ae(m,k))}for(mn(),t.jd(new M8),J=new mq,Qo(J,u(t.Xb(0),96)),d=0,Tt=0,o=t.Kc();o.Ob();)n=u(o.Pb(),235),tt=ia(Oa(u(X(n,(Pb(),UN)),8)),u(X(n,TA),8)),d=b.Math.max(d,tt.a),Tt+=tt.a*tt.b;for(d=b.Math.max(d,b.Math.sqrt(Tt)*Rt(Ht(X(J,(Vf(),S3e))))),ht=Rt(Ht(X(J,KU))),At=0,Bt=0,h=0,e=ht,r=t.Kc();r.Ob();)n=u(r.Pb(),235),tt=ia(Oa(u(X(n,(Pb(),UN)),8)),u(X(n,TA),8)),At+tt.a>d&&(At=0,Bt+=h+ht,h=0),vEn(J,n,At,Bt),e=b.Math.max(e,At+tt.a),h=b.Math.max(h,tt.b),At+=tt.a+ht;return J}function KCn(t){Nkt();var e,n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt;if(t==null||(o=Lq(t),U=x2n(o),U%4!=0))return null;if(J=U/4|0,J==0)return Vt(ul,M5,28,0,15,1);for(A=null,e=0,n=0,r=0,s=0,h=0,d=0,m=0,k=0,$=0,P=0,T=0,A=Vt(ul,M5,28,J*3,15,1);$>4)<<24>>24,A[P++]=((n&15)<<4|r>>2&15)<<24>>24,A[P++]=(r<<6|s)<<24>>24}return!PM(h=o[T++])||!PM(d=o[T++])?null:(e=_d[h],n=_d[d],m=o[T++],k=o[T++],_d[m]==-1||_d[k]==-1?m==61&&k==61?n&15?null:(tt=Vt(ul,M5,28,$*3+1,15,1),Xc(A,0,tt,0,$*3),tt[P]=(e<<2|n>>4)<<24>>24,tt):m!=61&&k==61?(r=_d[m],r&3?null:(tt=Vt(ul,M5,28,$*3+2,15,1),Xc(A,0,tt,0,$*3),tt[P++]=(e<<2|n>>4)<<24>>24,tt[P]=((n&15)<<4|r>>2&15)<<24>>24,tt)):null:(r=_d[m],s=_d[k],A[P++]=(e<<2|n>>4)<<24>>24,A[P++]=((n&15)<<4|r>>2&15)<<24>>24,A[P++]=(r<<6|s)<<24>>24,A))}function WCn(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt;for(e.Ug(_2e,1),U=u(X(t,(De(),zg)),223),s=new G(t.b);s.a=2){for(J=!0,P=new G(o.j),n=u(et(P),12),$=null;P.a0)if(r=A.gc(),k=Ys(b.Math.floor((r+1)/2))-1,s=Ys(b.Math.ceil((r+1)/2))-1,e.o==yd)for(T=s;T>=k;T--)e.a[Bt.p]==Bt&&(J=u(A.Xb(T),42),U=u(J.a,10),!x1(n,J.b)&&$>t.b.e[U.p]&&(e.a[U.p]=Bt,e.g[Bt.p]=e.g[U.p],e.a[Bt.p]=e.g[Bt.p],e.f[e.g[Bt.p].p]=(Pn(),!!(Ie(e.f[e.g[Bt.p].p])&Bt.k==(Un(),fa))),$=t.b.e[U.p]));else for(T=k;T<=s;T++)e.a[Bt.p]==Bt&&(ht=u(A.Xb(T),42),tt=u(ht.a,10),!x1(n,ht.b)&&$0&&(s=u(Oe(tt.c.a,se-1),10),h=t.i[s.p],rn=b.Math.ceil(U4(t.n,s,tt)),o=Wt.a.e-tt.d.d-(h.a.e+s.o.b+s.d.a)-rn),k=Zi,se0&&Ce.a.e.e-Ce.a.a-(Ce.b.e.e-Ce.b.a)<0,U=At.a.e.e-At.a.a-(At.b.e.e-At.b.a)<0&&Ce.a.e.e-Ce.a.a-(Ce.b.e.e-Ce.b.a)>0,$=At.a.e.e+At.b.aCe.b.e.e+Ce.a.a,Bt=0,!J&&!U&&(P?o+A>0?Bt=A:k-r>0&&(Bt=r):$&&(o+d>0?Bt=d:k-Tt>0&&(Bt=Tt))),Wt.a.e+=Bt,Wt.b&&(Wt.d.e+=Bt),!1))}function Fpe(t,e,n){var r,s,o,h,d,m,k,T,A,P;if(r=new Ah(e.Lf().a,e.Lf().b,e.Mf().a,e.Mf().b),s=new B6,t.c)for(h=new G(e.Rf());h.ak&&(r.a+=uJt(Vt(Yh,Zd,28,-k,15,1))),r.a+="Is",$d(m,Hu(32))>=0)for(s=0;s=r.o.b/2}else Tt=!A;Tt?(ht=u(X(r,(oe(),Wk)),15),ht?P?o=ht:(s=u(X(r,Hk),15),s?ht.gc()<=s.gc()?o=ht:o=s:(o=new fe,Zt(r,Hk,o))):(o=new fe,Zt(r,Wk,o))):(s=u(X(r,(oe(),Hk)),15),s?A?o=s:(ht=u(X(r,Wk),15),ht?s.gc()<=ht.gc()?o=s:o=ht:(o=new fe,Zt(r,Wk,o))):(o=new fe,Zt(r,Hk,o))),o.Fc(t),Zt(t,(oe(),AG),n),e.d==n?(xa(e,null),n.e.c.length+n.g.c.length==0&&hc(n,null),fbn(n)):(Xa(e,null),n.e.c.length+n.g.c.length==0&&hc(n,null)),nh(e.a)}function JCn(t,e,n){var r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se,Ce,rn,Ze,On,Dn,er,Jr,is;for(n.Ug("MinWidth layering",1),$=e.b,Ce=e.a,is=u(X(e,(De(),Z_t)),17).a,d=u(X(e,tAt),17).a,t.b=Rt(Ht(X(e,Yf))),t.d=Zi,Bt=new G(Ce);Bt.a0?(k=0,tt&&(k+=d),k+=(Ze-1)*h,At&&(k+=d),rn&&At&&(k=b.Math.max(k,mkn(At,h,Tt,Ce))),k=t.a&&(r=N7n(t,Tt),T=b.Math.max(T,r.b),Bt=b.Math.max(Bt,r.d),ge(d,new Ws(Tt,r)));for(rn=new fe,k=0;k0),tt.a.Xb(tt.c=--tt.b),Ze=new eu(t.b),Ly(tt,Ze),ur(tt.b0){for(P=T<100?null:new xb(T),k=new B4t(e),U=k.g,ht=Vt(Fr,ii,28,T,15,1),r=0,Bt=new $m(T),s=0;s=0;)if($!=null?Ti($,U[m]):$t($)===$t(U[m])){ht.length<=r&&(tt=ht,ht=Vt(Fr,ii,28,2*ht.length,15,1),Xc(tt,0,ht,0,r)),ht[r++]=s,Or(Bt,U[m]);break t}if($=$,$t($)===$t(d))break}}if(k=Bt,U=Bt.g,T=r,r>ht.length&&(tt=ht,ht=Vt(Fr,ii,28,r,15,1),Xc(tt,0,ht,0,r)),r>0){for(At=!0,o=0;o=0;)pk(t,ht[h]);if(r!=T){for(s=T;--s>=r;)pk(k,s);tt=ht,ht=Vt(Fr,ii,28,r,15,1),Xc(tt,0,ht,0,r)}e=k}}}else for(e=pvn(t,e),s=t.i;--s>=0;)e.Hc(t.g[s])&&(pk(t,s),At=!0);if(At){if(ht!=null){for(n=e.gc(),A=n==1?zS(t,4,e.Kc().Pb(),null,ht[0],J):zS(t,6,e,ht,ht[0],J),P=n<100?null:new xb(n),s=e.Kc();s.Ob();)$=s.Pb(),P=Svt(t,u($,76),P);P?(P.nj(A),P.oj()):Ei(t.e,A)}else{for(P=xan(e.gc()),s=e.Kc();s.Ob();)$=s.Pb(),P=Svt(t,u($,76),P);P&&P.oj()}return!0}else return!1}function eSn(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At;for(n=new the(e),n.a||DEn(e),k=_8n(e),m=new Fm,tt=new r0e,J=new G(e.a);J.a0||n.o==yd&&s=n}function rSn(t,e,n){var r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se,Ce,rn,Ze,On,Dn,er;for(At=e,Tt=new Fm,Bt=new Fm,T=jm(At,TTt),r=new une(t,n,Tt,Bt),E4n(r.a,r.b,r.c,r.d,T),m=(Ce=Tt.i,Ce||(Tt.i=new W4(Tt,Tt.c))),Ze=m.Kc();Ze.Ob();)for(rn=u(Ze.Pb(),166),s=u(Ai(Tt,rn),21),J=s.Kc();J.Ob();)if(U=J.Pb(),Wt=u(n5(t.d,U),166),Wt)d=(!rn.e&&(rn.e=new kn(Wi,rn,10,9)),rn.e),Or(d,Wt);else throw h=yg(At,a0),P=tme+U+eme+h,$=P+fT,at(new Rd($));for(k=(se=Bt.i,se||(Bt.i=new W4(Bt,Bt.c))),Dn=k.Kc();Dn.Ob();)for(On=u(Dn.Pb(),166),o=u(Ai(Bt,On),21),ht=o.Kc();ht.Ob();)if(tt=ht.Pb(),Wt=u(n5(t.d,tt),166),Wt)A=(!On.g&&(On.g=new kn(Wi,On,9,10)),On.g),Or(A,Wt);else throw h=yg(At,a0),P=tme+tt+eme+h,$=P+fT,at(new Rd($));!n.b&&(n.b=new kn(vr,n,4,7)),n.b.i!=0&&(!n.c&&(n.c=new kn(vr,n,5,8)),n.c.i!=0)&&(!n.b&&(n.b=new kn(vr,n,4,7)),n.b.i<=1&&(!n.c&&(n.c=new kn(vr,n,5,8)),n.c.i<=1))&&(!n.a&&(n.a=new Jt(Wi,n,6,6)),n.a).i==1&&(er=u(Dt((!n.a&&(n.a=new Jt(Wi,n,6,6)),n.a),0),166),!cot(er)&&!uot(er)&&(Vq(er,u(Dt((!n.b&&(n.b=new kn(vr,n,4,7)),n.b),0),84)),Uq(er,u(Dt((!n.c&&(n.c=new kn(vr,n,5,8)),n.c),0),84))))}function iSn(t){var e,n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se,Ce,rn,Ze,On;for(At=t.a,Bt=0,Wt=At.length;Bt0?(A=u(Oe(P.c.a,h-1),10),rn=U4(t.b,P,A),tt=P.n.b-P.d.d-(A.n.b+A.o.b+A.d.a+rn)):tt=P.n.b-P.d.d,k=b.Math.min(tt,k),h1&&(h=b.Math.min(h,b.Math.abs(u(jh(d.a,1),8).b-T.b)))));else for(J=new G(e.j);J.as&&(o=P.a-s,h=xi,r.c.length=0,s=P.a),P.a>=s&&(In(r.c,d),d.a.b>1&&(h=b.Math.min(h,b.Math.abs(u(jh(d.a,d.a.b-2),8).b-P.b)))));if(r.c.length!=0&&o>e.o.a/2&&h>e.o.b/2){for($=new Yc,hc($,e),Xs($,(ve(),Hn)),$.n.a=e.o.a/2,ht=new Yc,hc(ht,e),Xs(ht,Er),ht.n.a=e.o.a/2,ht.n.b=e.o.b,m=new G(r);m.a=k.b?Xa(d,ht):Xa(d,$)):(k=u(Ycn(d.a),8),tt=d.a.b==0?rd(d.c):u(Pf(d.a),8),tt.b>=k.b?xa(d,ht):xa(d,$)),A=u(X(d,(De(),Vo)),75),A&&Ky(A,k,!0);e.n.a=s-e.o.a/2}}function aSn(t,e,n){var r,s,o,h,d,m,k,T,A,P;for(d=Dr(t.b,0);d.b!=d.d.c;)if(h=u(Ar(d),39),!hn(h.c,nU))for(k=Mxn(h,t),e==(Rs(),Uo)||e==tc?Ds(k,new ttt):Ds(k,new ett),m=k.c.length,r=0;r=0?$=hk(d):$=bO(hk(d)),t.qf(NT,$)),k=new Sa,P=!1,t.pf(Sv)?(Xmt(k,u(t.of(Sv),8)),P=!0):bsn(k,h.a/2,h.b/2),$.g){case 4:Zt(T,Iu,(Rh(),s2)),Zt(T,DG,(ow(),z5)),T.o.b=h.b,J<0&&(T.o.a=-J),Xs(A,(ve(),Jn)),P||(k.a=h.a),k.a-=h.a;break;case 2:Zt(T,Iu,(Rh(),S3)),Zt(T,DG,(ow(),_T)),T.o.b=h.b,J<0&&(T.o.a=-J),Xs(A,(ve(),Gn)),P||(k.a=0);break;case 1:Zt(T,Aw,(Cg(),H5)),T.o.a=h.a,J<0&&(T.o.b=-J),Xs(A,(ve(),Er)),P||(k.b=h.b),k.b-=h.b;break;case 3:Zt(T,Aw,(Cg(),qk)),T.o.a=h.a,J<0&&(T.o.b=-J),Xs(A,(ve(),Hn)),P||(k.b=0)}if(Xmt(A.n,k),Zt(T,Sv,k),e==zw||e==Y0||e==hu){if(U=0,e==zw&&t.pf(Vp))switch($.g){case 1:case 2:U=u(t.of(Vp),17).a;break;case 3:case 4:U=-u(t.of(Vp),17).a}else switch($.g){case 4:case 2:U=o.b,e==Y0&&(U/=s.b);break;case 1:case 3:U=o.a,e==Y0&&(U/=s.a)}Zt(T,xv,U)}return Zt(T,Dc,$),T}function oSn(){xwt();function t(r){var s=this;this.dispatch=function(o){var h=o.data;switch(h.cmd){case"algorithms":var d=q5t((mn(),new Ta(new si(b2.b))));r.postMessage({id:h.id,data:d});break;case"categories":var m=q5t((mn(),new Ta(new si(b2.c))));r.postMessage({id:h.id,data:m});break;case"options":var k=q5t((mn(),new Ta(new si(b2.d))));r.postMessage({id:h.id,data:k});break;case"register":l9n(h.algorithms),r.postMessage({id:h.id});break;case"layout":j7n(h.graph,h.layoutOptions||{},h.options||{}),r.postMessage({id:h.id,data:h.graph});break}},this.saveDispatch=function(o){try{s.dispatch(o)}catch(h){r.postMessage({id:o.data.id,error:h})}}}function e(r){var s=this;this.dispatcher=new t({postMessage:function(o){s.onmessage({data:o})}}),this.postMessage=function(o){setTimeout(function(){s.dispatcher.saveDispatch({data:o})},0)}}if(typeof document===but&&typeof self!==but){var n=new t(self);self.onmessage=n.saveDispatch}else typeof g!==but&&g.exports&&(Object.defineProperty(w,"__esModule",{value:!0}),g.exports={default:e,Worker:e})}function qpe(t,e,n){var r,s,o,h,d,m,k,T,A,P;for(T=new Ig(n),Qo(T,e),Zt(T,(oe(),Li),e),T.o.a=e.g,T.o.b=e.f,T.n.a=e.i,T.n.b=e.j,ge(n.a,T),hi(t.a,e,T),((!e.a&&(e.a=new Jt(bi,e,10,11)),e.a).i!=0||Ie(Me(ne(e,(De(),L3)))))&&Zt(T,YSt,(Pn(),!0)),k=u(X(n,lu),21),A=u(X(T,(De(),bs)),101),A==(ka(),d2)?Zt(T,bs,Td):A!=Td&&k.Fc((Co(),DT)),P=0,r=u(X(n,ph),88),m=new Zn((!e.c&&(e.c=new Jt(kl,e,9,9)),e.c));m.e!=m.i.gc();)d=u(ar(m),123),s=Ji(e),($t(ne(s,U0))!==$t((Wd(),Up))||$t(ne(s,Dw))===$t((Ip(),ST))||$t(ne(s,Dw))===$t((Ip(),CT))||Ie(Me(ne(s,Ev)))||$t(ne(s,_3))!==$t((lw(),x3))||$t(ne(s,a2))===$t((cf(),Lv))||$t(ne(s,a2))===$t((cf(),N3))||$t(ne(s,Iw))===$t((Bp(),RT))||$t(ne(s,Iw))===$t((Bp(),jT)))&&!Ie(Me(ne(e,BG)))&&Mi(d,Pi,he(P++)),Ie(Me(ne(d,Nw)))||wCn(t,d,T,k,r,A);for(h=new Zn((!e.n&&(e.n=new Jt(Po,e,1,7)),e.n));h.e!=h.i.gc();)o=u(ar(h),135),!Ie(Me(ne(o,Nw)))&&o.a&&ge(T.b,Pat(o));return Ie(Me(X(T,PA)))&&k.Fc((Co(),CG)),Ie(Me(X(T,zG)))&&(k.Fc((Co(),SG)),k.Fc(LA),Zt(T,bs,Td)),T}function Mct(t,e,n,r,s,o,h){var d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se,Ce,rn,Ze,On,Dn,er,Jr,is;for(J=0,On=0,k=new G(t.b);k.aJ&&(o&&(ro(se,$),ro(rn,he(T.b-1)),ge(t.d,U),d.c.length=0),Jr=n.b,is+=$+e,$=0,A=b.Math.max(A,n.b+n.c+er)),In(d.c,m),Gle(m,Jr,is),A=b.Math.max(A,Jr+er+n.c),$=b.Math.max($,P),Jr+=er+e,U=m;if(Hs(t.a,d),ge(t.d,u(Oe(d,d.c.length-1),163)),A=b.Math.max(A,r),Dn=is+$+n.a,Dns.d.d+s.d.a?T.f.d=!0:(T.f.d=!0,T.f.a=!0))),r.b!=r.d.c&&(e=n);T&&(o=u(tr(t.f,h.d.i),60),e.bo.d.d+o.d.a?T.f.d=!0:(T.f.d=!0,T.f.a=!0))}for(d=new rr(sr(ua($).a.Kc(),new z));Mr(d);)h=u(dr(d),18),h.a.b!=0&&(e=u(Pf(h.a),8),h.d.j==(ve(),Hn)&&(tt=new P_(e,new ae(e.a,s.d.d),s,h),tt.f.a=!0,tt.a=h.d,In(J.c,tt)),h.d.j==Er&&(tt=new P_(e,new ae(e.a,s.d.d+s.d.a),s,h),tt.f.d=!0,tt.a=h.d,In(J.c,tt)))}return J}function dSn(t,e,n){var r,s,o,h,d,m,k,T,A,P;for(m=new fe,A=e.length,h=Z4t(n),k=0;k=U&&(Tt>U&&($.c.length=0,U=Tt),In($.c,h));$.c.length!=0&&(P=u(Oe($,MH(e,$.c.length)),131),Dn.a.Bc(P)!=null,P.s=J++,X6t(P,Ze,se),$.c.length=0)}for(Bt=t.c.length+1,d=new G(t);d.aOn.s&&(Kl(n),zu(On.i,r),r.c>0&&(r.a=On,ge(On.t,r),r.b=Ce,ge(Ce.i,r)))}function Hpe(t,e,n,r,s){var o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se,Ce,rn,Ze,On,Dn;for(J=new wu(e.b),Bt=new wu(e.b),P=new wu(e.b),rn=new wu(e.b),tt=new wu(e.b),Ce=Dr(e,0);Ce.b!=Ce.d.c;)for(Wt=u(Ar(Ce),12),d=new G(Wt.g);d.a0,ht=Wt.g.c.length>0,k&&ht?In(P.c,Wt):k?In(J.c,Wt):ht&&In(Bt.c,Wt);for(U=new G(J);U.aTt.nh()-k.b&&(P=Tt.nh()-k.b),$>Tt.oh()-k.d&&($=Tt.oh()-k.d),T0){for(At=Dr(t.f,0);At.b!=At.d.c;)Tt=u(Ar(At),10),Tt.p+=P-t.e;b6t(t),nh(t.f),lkt(t,r,$)}else{for(Zr(t.f,$),$.p=r,t.e=b.Math.max(t.e,r),o=new rr(sr(ua($).a.Kc(),new z));Mr(o);)s=u(dr(o),18),!s.c.i.c&&s.c.i.k==(Un(),Vc)&&(Zr(t.f,s.c.i),s.c.i.p=r-1);t.c=r}else b6t(t),nh(t.f),r=0,Mr(new rr(sr(ua($).a.Kc(),new z)))?(P=0,P=Qle(P,$),r=P+2,lkt(t,r,$)):(Zr(t.f,$),$.p=0,t.e=b.Math.max(t.e,0),t.b=u(Oe(t.d.b,0),30),t.c=0);for(t.f.b==0||b6t(t),t.d.a.c.length=0,ht=new fe,k=new G(t.d.b);k.a=48&&e<=57){for(r=e-48;s=48&&e<=57;)if(r=r*10+e-48,r<0)throw at(new Yr(Qr((Ur(),BTt))))}else throw at(new Yr(Qr((Ur(),_me))));if(n=r,e==44){if(s>=t.j)throw at(new Yr(Qr((Ur(),Lme))));if((e=Va(t.i,s++))>=48&&e<=57){for(n=e-48;s=48&&e<=57;)if(n=n*10+e-48,n<0)throw at(new Yr(Qr((Ur(),BTt))));if(r>n)throw at(new Yr(Qr((Ur(),Dme))))}else n=-1}if(e!=125)throw at(new Yr(Qr((Ur(),Ame))));t.bm(s)?(o=(yi(),yi(),new By(9,o)),t.d=s+1):(o=(yi(),yi(),new By(3,o)),t.d=s),o.Om(r),o.Nm(n),wi(t)}}return o}function vSn(t){var e,n,r,s,o;switch(n=u(X(t,(oe(),lu)),21),e=rz(J3e),s=u(X(t,(De(),A3)),346),s==(Ag(),Xp)&&ch(e,Z3e),Ie(Me(X(t,a1t)))?ri(e,(Ua(),Wf),(Za(),pft)):ri(e,(Ua(),Qc),(Za(),pft)),X(t,(kq(),oL))!=null&&ch(e,t4e),(Ie(Me(X(t,X_t)))||Ie(Me(X(t,G_t))))&&el(e,(Ua(),Zo),(Za(),UCt)),u(X(t,ph),88).g){case 2:case 3:case 4:el(ri(e,(Ua(),Wf),(Za(),KCt)),Zo,GCt)}switch(n.Hc((Co(),CG))&&el(ri(ri(e,(Ua(),Wf),(Za(),VCt)),cu,qCt),Zo,HCt),$t(X(t,a2))!==$t((cf(),ZG))&&ri(e,(Ua(),Qc),(Za(),cSt)),n.Hc(_G)&&(ri(e,(Ua(),Wf),(Za(),fSt)),ri(e,H0,lSt),ri(e,Qc,hSt)),$t(X(t,PG))!==$t((M7(),AA))&&$t(X(t,zg))!==$t((Lg(),IP))&&el(e,(Ua(),Zo),(Za(),nSt)),Ie(Me(X(t,W_t)))&&ri(e,(Ua(),Qc),(Za(),eSt)),Ie(Me(X(t,n1t)))&&ri(e,(Ua(),Qc),(Za(),dSt)),I6n(t)&&($t(X(t,A3))===$t(Xp)?r=u(X(t,iP),298):r=u(X(t,e1t),298),o=r==(c7(),$ft)?(Za(),uSt):(Za(),bSt),ri(e,(Ua(),cu),o)),u(X(t,kAt),388).g){case 1:ri(e,(Ua(),cu),(Za(),gSt));break;case 2:el(ri(ri(e,(Ua(),Qc),(Za(),RCt)),cu,jCt),Zo,$Ct)}return $t(X(t,U0))!==$t((Wd(),Up))&&ri(e,(Ua(),Qc),(Za(),pSt)),e}function Kpe(t,e,n){var r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At;if(Tu(t.a,e)){if(x1(u(tr(t.a,e),49),n))return 1}else hi(t.a,e,new Os);if(Tu(t.a,n)){if(x1(u(tr(t.a,n),49),e))return-1}else hi(t.a,n,new Os);if(Tu(t.e,e)){if(x1(u(tr(t.e,e),49),n))return-1}else hi(t.e,e,new Os);if(Tu(t.e,n)){if(x1(u(tr(t.a,n),49),e))return 1}else hi(t.e,n,new Os);if(t.c==(Wd(),k1t)||!qi(e,(oe(),Pi))||!qi(n,(oe(),Pi))){for(A=null,k=new G(e.j);k.ah?R7(t,e,n):R7(t,n,e),sh?1:0}return r=u(X(e,(oe(),Pi)),17).a,o=u(X(n,Pi),17).a,r>o?R7(t,e,n):R7(t,n,e),ro?1:0}function iv(t,e,n){var r,s,o,h,d,m,k,T,A,P,$,U,J,tt;if(n==null)return null;if(t.a!=e.jk())throw at(new zn(lT+e.xe()+fv));if(Lt(e,468)){if(tt=l8n(u(e,685),n),!tt)throw at(new zn(Hlt+n+"' is not a valid enumerator of '"+e.xe()+"'"));return tt}switch(Lp((il(),ja),e).Nl()){case 2:{n=su(n,!1);break}case 3:{n=su(n,!0);break}}if(r=Lp(ja,e).Jl(),r)return r.jk().wi().ti(r,n);if(P=Lp(ja,e).Ll(),P){for(tt=new fe,k=Sat(n),T=0,A=k.length;T1)for(U=new j6((!t.a&&(t.a=new Jt(Wi,t,6,6)),t.a));U.e!=U.i.gc();)E_(U);for(h=u(Dt((!t.a&&(t.a=new Jt(Wi,t,6,6)),t.a),0),166),tt=Jr,Jr>Wt+Bt?tt=Wt+Bt:Jrse+J?ht=se+J:isWt-Bt&&ttse-J&&htJr+er?rn=Jr+er:Wtis+Ce?Ze=is+Ce:seJr-er&&rnis-Ce&&Zen&&(P=n-1),$=rb+Dl(e,24)*lN*A-A/2,$<0?$=1:$>r&&($=r-1),s=(kb(),m=new fC,m),Rq(s,P),Bq(s,$),Or((!h.a&&(h.a=new Ps(vh,h,5)),h.a),s)}function Wpe(t){wm(t,new dw(gm(hm(dm(fm(new G1,Ol),"ELK Rectangle Packing"),"Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces."),new s6))),le(t,Ol,Dk,1.3),le(t,Ol,eT,(Pn(),!1)),le(t,Ol,ov,wDt),le(t,Ol,h3,15),le(t,Ol,QV,Se(hEe)),le(t,Ol,_5,Se(gEe)),le(t,Ol,Ik,Se(bEe)),le(t,Ol,Mk,Se(wEe)),le(t,Ol,nT,Se(dEe)),le(t,Ol,X_,Se(gDt)),le(t,Ol,rT,Se(mEe)),le(t,Ol,Q7t,Se(xDt)),le(t,Ol,J7t,Se(yDt)),le(t,Ol,X7t,Se(ddt)),le(t,Ol,Y7t,Se(kDt)),le(t,Ol,Z7t,Se(bDt)),le(t,Ol,tTt,Se(fdt)),le(t,Ol,eTt,Se(pDt)),le(t,Ol,nTt,Se(vDt)),le(t,Ol,Y_,Se(dDt)),le(t,Ol,ZV,Se(fEe)),le(t,Ol,K7t,Se(vP)),le(t,Ol,G7t,Se(fDt)),le(t,Ol,W7t,Se(yP)),le(t,Ol,U7t,Se(mDt))}function Oct(t,e){mct();var n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se,Ce,rn,Ze,On,Dn,er,Jr;if(rn=t.e,U=t.d,s=t.a,rn==0)switch(e){case 0:return"0";case 1:return Y7;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return se=new yb,e<0?se.a+="0E+":se.a+="0E",se.a+=-e,se.a}if(At=U*10+1+7,Bt=Vt(Yh,Zd,28,At+1,15,1),n=At,U==1)if(d=s[0],d<0){Jr=sa(d,So);do J=Jr,Jr=_O(Jr,10),Bt[--n]=48+qr(sf(J,Ja(Jr,10)))&js;while($c(Jr,0)!=0)}else{Jr=d;do J=Jr,Jr=Jr/10|0,Bt[--n]=48+(J-Jr*10)&js;while(Jr!=0)}else{On=Vt(Fr,ii,28,U,15,1),er=U,Xc(s,0,On,0,er);t:for(;;){for(Ce=0,k=er-1;k>=0;k--)Dn=Qa(Rf(Ce,32),sa(On[k],So)),ht=c3n(Dn),On[k]=qr(ht),Ce=qr(_m(ht,32));Tt=qr(Ce),tt=n;do Bt[--n]=48+Tt%10&js;while((Tt=Tt/10|0)!=0&&n!=0);for(r=9-tt+n,m=0;m0;m++)Bt[--n]=48;for(A=er-1;On[A]==0;A--)if(A==0)break t;er=A+1}for(;Bt[n]==48;)++n}if($=rn<0,h=At-n-e-1,e==0)return $&&(Bt[--n]=45),af(Bt,n,At-n);if(e>0&&h>=-6){if(h>=0){for(T=n+h,P=At-1;P>=T;P--)Bt[P+1]=Bt[P];return Bt[++T]=46,$&&(Bt[--n]=45),af(Bt,n,At-n+1)}for(A=2;A<-h+1;A++)Bt[--n]=48;return Bt[--n]=46,Bt[--n]=48,$&&(Bt[--n]=45),af(Bt,n,At-n)}return Ze=n+1,o=At,Wt=new I4,$&&(Wt.a+="-"),o-Ze>=1?(Db(Wt,Bt[n]),Wt.a+=".",Wt.a+=af(Bt,n+1,At-n-1)):Wt.a+=af(Bt,n,At-n),Wt.a+="E",h>0&&(Wt.a+="+"),Wt.a+=""+h,Wt.a}function Ype(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se;switch(t.c=e,t.g=new _r,n=(xy(),new my(t.c)),r=new RC(n),j5t(r),At=Gr(ne(t.c,(LO(),zDt))),m=u(ne(t.c,Edt),324),Wt=u(ne(t.c,Tdt),437),h=u(ne(t.c,RDt),489),Bt=u(ne(t.c,kdt),438),t.j=Rt(Ht(ne(t.c,IEe))),d=t.a,m.g){case 0:d=t.a;break;case 1:d=t.b;break;case 2:d=t.i;break;case 3:d=t.e;break;case 4:d=t.f;break;default:throw at(new zn(cU+(m.f!=null?m.f:""+m.g)))}if(t.d=new zne(d,Wt,h),Zt(t.d,(s7(),EA),Me(ne(t.c,DEe))),t.d.c=Ie(Me(ne(t.c,jDt))),Jz(t.c).i==0)return t.d;for(A=new Zn(Jz(t.c));A.e!=A.i.gc();){for(T=u(ar(A),27),$=T.g/2,P=T.f/2,se=new ae(T.i+$,T.j+P);Tu(t.g,se);)Tm(se,(b.Math.random()-.5)*n0,(b.Math.random()-.5)*n0);J=u(ne(T,(ai(),UT)),140),tt=new ere(se,new Ah(se.a-$-t.j/2-J.b,se.b-P-t.j/2-J.d,T.g+t.j+(J.b+J.c),T.f+t.j+(J.d+J.a))),ge(t.d.i,tt),hi(t.g,se,new Ws(tt,T))}switch(Bt.g){case 0:if(At==null)t.d.d=u(Oe(t.d.i,0),68);else for(Tt=new G(t.d.i);Tt.a0?er+1:1);for(h=new G(se.g);h.a0?er+1:1)}t.c[k]==0?Zr(t.e,J):t.a[k]==0&&Zr(t.f,J),++k}for(U=-1,$=1,A=new fe,t.d=u(X(e,(oe(),Kk)),234);yh>0;){for(;t.e.b!=0;)is=u(Tit(t.e),10),t.b[is.p]=U--,_kt(t,is),--yh;for(;t.f.b!=0;)El=u(Tit(t.f),10),t.b[El.p]=$++,_kt(t,El),--yh;if(yh>0){for(P=Ga,Tt=new G(At);Tt.a=P&&(Bt>P&&(A.c.length=0,P=Bt),In(A.c,J)));T=t.sg(A),t.b[T.p]=$++,_kt(t,T),--yh}}for(Jr=At.c.length+1,k=0;kt.b[Go]&&(nv(r,!0),Zt(e,tP,(Pn(),!0)));t.a=null,t.c=null,t.b=null,nh(t.f),nh(t.e),n.Vg()}function Xpe(t,e,n){var r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se;for(Wt=u(Dt((!t.a&&(t.a=new Jt(Wi,t,6,6)),t.a),0),166),T=new Qu,Bt=new _r,se=sge(Wt),yu(Bt.f,Wt,se),P=new _r,r=new Ki,U=A0(ah(lt(ut(gh,1),Ln,20,0,[(!e.d&&(e.d=new kn(Ts,e,8,5)),e.d),(!e.e&&(e.e=new kn(Ts,e,7,4)),e.e)])));Mr(U);){if($=u(dr(U),74),(!t.a&&(t.a=new Jt(Wi,t,6,6)),t.a).i!=1)throw at(new zn(Fwe+(!t.a&&(t.a=new Jt(Wi,t,6,6)),t.a).i));$!=t&&(tt=u(Dt((!$.a&&($.a=new Jt(Wi,$,6,6)),$.a),0),166),hs(r,tt,r.c.b,r.c),J=u(Ko(Eo(Bt.f,tt)),13),J||(J=sge(tt),yu(Bt.f,tt,J)),A=n?ia(new io(u(Oe(se,se.c.length-1),8)),u(Oe(J,J.c.length-1),8)):ia(new io((vn(0,se.c.length),u(se.c[0],8))),(vn(0,J.c.length),u(J.c[0],8))),yu(P.f,tt,A))}if(r.b!=0)for(ht=u(Oe(se,n?se.c.length-1:0),8),k=1;k1&&hs(T,ht,T.c.b,T.c),Qst(s)));ht=Tt}return T}function Qpe(t,e,n){var r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se,Ce,rn,Ze,On;for(n.Ug(Q2e,1),On=u(nc(_i(new ln(null,new gn(e,16)),new ott),gl(new Br,new ce,new An,lt(ut(Ho,1),te,108,0,[(bl(),sc)]))),15),T=u(nc(_i(new ln(null,new gn(e,16)),new ZUt(e)),gl(new Br,new ce,new An,lt(ut(Ho,1),te,108,0,[sc]))),15),U=u(nc(_i(new ln(null,new gn(e,16)),new JUt(e)),gl(new Br,new ce,new An,lt(ut(Ho,1),te,108,0,[sc]))),15),J=Vt(aK,rU,39,e.gc(),0,1),h=0;h=0&&Ze=0&&!J[$]){J[$]=s,T.gd(d),--d;break}if($=Ze-P,$=0&&!J[$]){J[$]=s,T.gd(d),--d;break}}for(U.jd(new ctt),m=J.length-1;m>=0;m--)!J[m]&&!U.dc()&&(J[m]=u(U.Xb(0),39),U.gd(0));for(k=0;k=0;m--)Zr(n,(vn(m,h.c.length),u(h.c[m],8)));return n}function Zpe(t,e,n){var r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt;for(At=Rt(Ht(ne(e,(N0(),B3)))),$=Rt(Ht(ne(e,nL))),P=Rt(Ht(ne(e,bK))),M4t((!e.a&&(e.a=new Jt(bi,e,10,11)),e.a)),ht=Hge((!e.a&&(e.a=new Jt(bi,e,10,11)),e.a),At,t.b),tt=0;ttP&&CO((vn(P,e.c.length),u(e.c[P],186)),T),T=null;e.c.length>P&&(vn(P,e.c.length),u(e.c[P],186)).a.c.length==0;)zu(e,(vn(P,e.c.length),e.c[P]));if(!T){--h;continue}if(!Ie(Me(u(Oe(T.b,0),27).of((fd(),yP))))&&HEn(e,U,o,T,tt,n,P,r)){J=!0;continue}if(tt){if($=U.b,A=T.f,!Ie(Me(u(Oe(T.b,0),27).of(yP)))&&o9n(e,U,o,T,n,P,r,s)){if(J=!0,$=t.j){t.a=-1,t.c=1;return}if(e=Va(t.i,t.d++),t.a=e,t.b==1){switch(e){case 92:if(r=10,t.d>=t.j)throw at(new Yr(Qr((Ur(),pU))));t.a=Va(t.i,t.d++);break;case 45:(t.e&512)==512&&t.d=t.j||Va(t.i,t.d)!=63)break;if(++t.d>=t.j)throw at(new Yr(Qr((Ur(),nht))));switch(e=Va(t.i,t.d++),e){case 58:r=13;break;case 61:r=14;break;case 33:r=15;break;case 91:r=19;break;case 62:r=18;break;case 60:if(t.d>=t.j)throw at(new Yr(Qr((Ur(),nht))));if(e=Va(t.i,t.d++),e==61)r=16;else if(e==33)r=17;else throw at(new Yr(Qr((Ur(),ume))));break;case 35:for(;t.d=t.j)throw at(new Yr(Qr((Ur(),pU))));t.a=Va(t.i,t.d++);break;default:r=0}t.c=r}function LSn(t,e,n){var r,s,o,h,d,m,k,T,A,P,$,U,J,tt;if(n.Ug("Process compaction",1),!!Ie(Me(X(e,(Cc(),xLt))))){for(s=u(X(e,Mv),88),$=Rt(Ht(X(e,H1t))),nTn(t,e,s),GCn(e,$/2/2),U=e.b,rw(U,new UUt(s)),k=Dr(U,0);k.b!=k.d.c;)if(m=u(Ar(k),39),!Ie(Me(X(m,(ji(),u2))))){if(r=A8n(m,s),J=E7n(m,e),A=0,P=0,r)switch(tt=r.e,s.g){case 2:A=tt.a-$-m.f.a,J.e.a-$-m.f.aA&&(A=J.e.a+J.f.a+$),P=A+m.f.a;break;case 4:A=tt.b-$-m.f.b,J.e.b-$-m.f.bA&&(A=J.e.b+J.f.b+$),P=A+m.f.b}else if(J)switch(s.g){case 2:A=J.e.a-$-m.f.a,P=A+m.f.a;break;case 1:A=J.e.a+J.f.a+$,P=A+m.f.a;break;case 4:A=J.e.b-$-m.f.b,P=A+m.f.b;break;case 3:A=J.e.b+J.f.b+$,P=A+m.f.b}$t(X(e,q1t))===$t((s_(),dP))?(o=A,h=P,d=f7(_i(new ln(null,new gn(t.a,16)),new NXt(o,h))),d.a!=null?s==(Rs(),Uo)||s==tc?m.e.a=A:m.e.b=A:(s==(Rs(),Uo)||s==Gh?d=f7(_i(loe(new ln(null,new gn(t.a,16))),new GUt(o))):d=f7(_i(loe(new ln(null,new gn(t.a,16))),new KUt(o))),d.a!=null&&(s==Uo||s==tc?m.e.a=Rt(Ht((ur(d.a!=null),u(d.a,42)).a)):m.e.b=Rt(Ht((ur(d.a!=null),u(d.a,42)).a)))),d.a!=null&&(T=Xo(t.a,(ur(d.a!=null),d.a),0),T>0&&T!=u(X(m,h0),17).a&&(Zt(m,dLt,(Pn(),!0)),Zt(m,h0,he(T))))):s==(Rs(),Uo)||s==tc?m.e.a=A:m.e.b=A}n.Vg()}}function tbe(t){var e,n,r,s,o,h,d,m,k;for(t.b=1,wi(t),e=null,t.c==0&&t.a==94?(wi(t),e=(yi(),yi(),new ih(4)),iu(e,0,gT),d=new ih(4)):d=(yi(),yi(),new ih(4)),s=!0;(k=t.c)!=1;){if(k==0&&t.a==93&&!s){e&&($_(e,d),d=e);break}if(n=t.a,r=!1,k==10)switch(n){case 100:case 68:case 119:case 87:case 115:case 83:a3(d,j7(n)),r=!0;break;case 105:case 73:case 99:case 67:n=(a3(d,j7(n)),-1),n<0&&(r=!0);break;case 112:case 80:if(m=M6t(t,n),!m)throw at(new Yr(Qr((Ur(),rht))));a3(d,m),r=!0;break;default:n=fkt(t)}else if(k==24&&!s){if(e&&($_(e,d),d=e),o=tbe(t),$_(d,o),t.c!=0||t.a!=93)throw at(new Yr(Qr((Ur(),vme))));break}if(wi(t),!r){if(k==0){if(n==91)throw at(new Yr(Qr((Ur(),PTt))));if(n==93)throw at(new Yr(Qr((Ur(),FTt))));if(n==45&&!s&&t.a!=93)throw at(new Yr(Qr((Ur(),iht))))}if(t.c!=0||t.a!=45||n==45&&s)iu(d,n,n);else{if(wi(t),(k=t.c)==1)throw at(new Yr(Qr((Ur(),bU))));if(k==0&&t.a==93)iu(d,n,n),iu(d,45,45);else{if(k==0&&t.a==93||k==24)throw at(new Yr(Qr((Ur(),iht))));if(h=t.a,k==0){if(h==91)throw at(new Yr(Qr((Ur(),PTt))));if(h==93)throw at(new Yr(Qr((Ur(),FTt))));if(h==45)throw at(new Yr(Qr((Ur(),iht))))}else k==10&&(h=fkt(t));if(wi(t),n>h)throw at(new Yr(Qr((Ur(),kme))));iu(d,n,h)}}}s=!1}if(t.c==1)throw at(new Yr(Qr((Ur(),bU))));return g5(d),R_(d),t.b=0,wi(t),d}function DSn(t,e,n){var r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt;if(n.Ug("Coffman-Graham Layering",1),e.a.c.length==0){n.Vg();return}for(Wt=u(X(e,(De(),J_t)),17).a,m=0,h=0,P=new G(e.a);P.a=Wt||!Twn(ht,r))&&(r=Qee(e,T)),Aa(ht,r),o=new rr(sr(ua(ht).a.Kc(),new z));Mr(o);)s=u(dr(o),18),!t.a[s.p]&&(J=s.c.i,--t.e[J.p],t.e[J.p]==0&&V6(D7($,J),X7));for(k=T.c.length-1;k>=0;--k)ge(e.b,(vn(k,T.c.length),u(T.c[k],30)));e.a.c.length=0,n.Vg()}function ebe(t,e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt;Bt=!1;do for(Bt=!1,o=e?new cr(t.a.b).a.gc()-2:1;e?o>=0:ou(X(tt,Pi),17).a)&&(At=!1);if(At){for(m=e?o+1:o-1,d=m3t(t.a,he(m)),h=!1,Tt=!0,r=!1,T=Dr(d,0);T.b!=T.d.c;)k=u(Ar(T),10),qi(k,Pi)?k.p!=A.p&&(h=h|(e?u(X(k,Pi),17).au(X(A,Pi),17).a),Tt=!1):!h&&Tt&&k.k==(Un(),Vc)&&(r=!0,e?P=u(dr(new rr(sr(ua(k).a.Kc(),new z))),18).c.i:P=u(dr(new rr(sr(_s(k).a.Kc(),new z))),18).d.i,P==A&&(e?n=u(dr(new rr(sr(_s(k).a.Kc(),new z))),18).d.i:n=u(dr(new rr(sr(ua(k).a.Kc(),new z))),18).c.i,(e?u(Sy(t.a,n),17).a-u(Sy(t.a,P),17).a:u(Sy(t.a,P),17).a-u(Sy(t.a,n),17).a)<=2&&(Tt=!1)));if(r&&Tt&&(e?n=u(dr(new rr(sr(_s(A).a.Kc(),new z))),18).d.i:n=u(dr(new rr(sr(ua(A).a.Kc(),new z))),18).c.i,(e?u(Sy(t.a,n),17).a-u(Sy(t.a,A),17).a:u(Sy(t.a,A),17).a-u(Sy(t.a,n),17).a)<=2&&n.k==(Un(),xs)&&(Tt=!1)),h||Tt){for(J=Ide(t,A,e);J.a.gc()!=0;)U=u(J.a.ec().Kc().Pb(),10),J.a.Bc(U)!=null,Ma(J,Ide(t,U,e));--$,Bt=!0}}}while(Bt)}function MSn(t){zr(t.c,ti,lt(ut(Pe,1),ue,2,6,[Ka,"http://www.w3.org/2001/XMLSchema#decimal"])),zr(t.d,ti,lt(ut(Pe,1),ue,2,6,[Ka,"http://www.w3.org/2001/XMLSchema#integer"])),zr(t.e,ti,lt(ut(Pe,1),ue,2,6,[Ka,"http://www.w3.org/2001/XMLSchema#boolean"])),zr(t.f,ti,lt(ut(Pe,1),ue,2,6,[Ka,"EBoolean",pi,"EBoolean:Object"])),zr(t.i,ti,lt(ut(Pe,1),ue,2,6,[Ka,"http://www.w3.org/2001/XMLSchema#byte"])),zr(t.g,ti,lt(ut(Pe,1),ue,2,6,[Ka,"http://www.w3.org/2001/XMLSchema#hexBinary"])),zr(t.j,ti,lt(ut(Pe,1),ue,2,6,[Ka,"EByte",pi,"EByte:Object"])),zr(t.n,ti,lt(ut(Pe,1),ue,2,6,[Ka,"EChar",pi,"EChar:Object"])),zr(t.t,ti,lt(ut(Pe,1),ue,2,6,[Ka,"http://www.w3.org/2001/XMLSchema#double"])),zr(t.u,ti,lt(ut(Pe,1),ue,2,6,[Ka,"EDouble",pi,"EDouble:Object"])),zr(t.F,ti,lt(ut(Pe,1),ue,2,6,[Ka,"http://www.w3.org/2001/XMLSchema#float"])),zr(t.G,ti,lt(ut(Pe,1),ue,2,6,[Ka,"EFloat",pi,"EFloat:Object"])),zr(t.I,ti,lt(ut(Pe,1),ue,2,6,[Ka,"http://www.w3.org/2001/XMLSchema#int"])),zr(t.J,ti,lt(ut(Pe,1),ue,2,6,[Ka,"EInt",pi,"EInt:Object"])),zr(t.N,ti,lt(ut(Pe,1),ue,2,6,[Ka,"http://www.w3.org/2001/XMLSchema#long"])),zr(t.O,ti,lt(ut(Pe,1),ue,2,6,[Ka,"ELong",pi,"ELong:Object"])),zr(t.Z,ti,lt(ut(Pe,1),ue,2,6,[Ka,"http://www.w3.org/2001/XMLSchema#short"])),zr(t.$,ti,lt(ut(Pe,1),ue,2,6,[Ka,"EShort",pi,"EShort:Object"])),zr(t._,ti,lt(ut(Pe,1),ue,2,6,[Ka,"http://www.w3.org/2001/XMLSchema#string"]))}function ISn(t,e,n,r,s,o,h){var d,m,k,T,A,P,$,U;return P=u(r.a,17).a,$=u(r.b,17).a,A=t.b,U=t.c,d=0,T=0,e==(Rs(),Uo)||e==tc?(T=KM(Vue(Ny(Wo(new ln(null,new gn(n.b,16)),new ltt),new YZ))),A.e.b+A.f.b/2>T?(k=++$,d=Rt(Ht(Vl(My(Wo(new ln(null,new gn(n.b,16)),new BXt(s,k)),new DR))))):(m=++P,d=Rt(Ht(Vl(G6(Wo(new ln(null,new gn(n.b,16)),new RXt(s,m)),new XZ)))))):(T=KM(Vue(Ny(Wo(new ln(null,new gn(n.b,16)),new ZZ),new LR))),A.e.a+A.f.a/2>T?(k=++$,d=Rt(Ht(Vl(My(Wo(new ln(null,new gn(n.b,16)),new PXt(s,k)),new QZ))))):(m=++P,d=Rt(Ht(Vl(G6(Wo(new ln(null,new gn(n.b,16)),new FXt(s,m)),new QD)))))),e==Uo?(ro(t.a,new ae(Rt(Ht(X(A,(ji(),P1))))-s,d)),ro(t.a,new ae(U.e.a+U.f.a+s+o,d)),ro(t.a,new ae(U.e.a+U.f.a+s+o,U.e.b+U.f.b/2)),ro(t.a,new ae(U.e.a+U.f.a,U.e.b+U.f.b/2))):e==tc?(ro(t.a,new ae(Rt(Ht(X(A,(ji(),Xf))))+s,A.e.b+A.f.b/2)),ro(t.a,new ae(A.e.a+A.f.a+s,d)),ro(t.a,new ae(U.e.a-s-o,d)),ro(t.a,new ae(U.e.a-s-o,U.e.b+U.f.b/2)),ro(t.a,new ae(U.e.a,U.e.b+U.f.b/2))):e==Gh?(ro(t.a,new ae(d,Rt(Ht(X(A,(ji(),P1))))-s)),ro(t.a,new ae(d,U.e.b+U.f.b+s+o)),ro(t.a,new ae(U.e.a+U.f.a/2,U.e.b+U.f.b+s+o)),ro(t.a,new ae(U.e.a+U.f.a/2,U.e.b+U.f.b+s))):(t.a.b==0||(u(Pf(t.a),8).b=Rt(Ht(X(A,(ji(),Xf))))+s*u(h.b,17).a),ro(t.a,new ae(d,Rt(Ht(X(A,(ji(),Xf))))+s*u(h.b,17).a)),ro(t.a,new ae(d,U.e.b-s*u(h.a,17).a-o))),new Ws(he(P),he($))}function OSn(t){var e,n,r,s,o,h,d,m,k,T,A,P,$;if(h=!0,A=null,r=null,s=null,e=!1,$=pTe,k=null,o=null,d=0,m=eot(t,d,BIt,RIt),m=0&&hn(t.substr(d,2),"//")?(d+=2,m=eot(t,d,CL,SL),r=(Da(d,m,t.length),t.substr(d,m-d)),d=m):A!=null&&(d==t.length||(qn(d,t.length),t.charCodeAt(d)!=47))&&(h=!1,m=qmt(t,Hu(35),d),m==-1&&(m=t.length),r=(Da(d,m,t.length),t.substr(d,m-d)),d=m);if(!n&&d0&&Va(T,T.length-1)==58&&(s=T,d=m)),dXot(o))&&(A=o);for(!A&&(A=(vn(0,tt.c.length),u(tt.c[0],185))),J=new G(e.b);J.aA&&(Dn=0,er+=T+Ce,T=0),U0e(Wt,h,Dn,er),e=b.Math.max(e,Dn+se.a),T=b.Math.max(T,se.b),Dn+=se.a+Ce;for(Bt=new _r,n=new _r,Ze=new G(t);Ze.a=-1900?1:0,n>=4?ni(t,lt(ut(Pe,1),ue,2,6,[mbe,vbe])[d]):ni(t,lt(ut(Pe,1),ue,2,6,["BC","AD"])[d]);break;case 121:Zwn(t,n,r);break;case 77:mEn(t,n,r);break;case 107:m=s.q.getHours(),m==0?M0(t,24,n):M0(t,m,n);break;case 83:M6n(t,n,s);break;case 69:T=r.q.getDay(),n==5?ni(t,lt(ut(Pe,1),ue,2,6,["S","M","T","W","T","F","S"])[T]):n==4?ni(t,lt(ut(Pe,1),ue,2,6,[Zct,tut,eut,nut,rut,iut,sut])[T]):ni(t,lt(ut(Pe,1),ue,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[T]);break;case 97:s.q.getHours()>=12&&s.q.getHours()<24?ni(t,lt(ut(Pe,1),ue,2,6,["AM","PM"])[1]):ni(t,lt(ut(Pe,1),ue,2,6,["AM","PM"])[0]);break;case 104:A=s.q.getHours()%12,A==0?M0(t,12,n):M0(t,A,n);break;case 75:P=s.q.getHours()%12,M0(t,P,n);break;case 72:$=s.q.getHours(),M0(t,$,n);break;case 99:U=r.q.getDay(),n==5?ni(t,lt(ut(Pe,1),ue,2,6,["S","M","T","W","T","F","S"])[U]):n==4?ni(t,lt(ut(Pe,1),ue,2,6,[Zct,tut,eut,nut,rut,iut,sut])[U]):n==3?ni(t,lt(ut(Pe,1),ue,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[U]):M0(t,U,1);break;case 76:J=r.q.getMonth(),n==5?ni(t,lt(ut(Pe,1),ue,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[J]):n==4?ni(t,lt(ut(Pe,1),ue,2,6,[qct,Hct,Vct,Uct,Tk,Gct,Kct,Wct,Yct,Xct,Qct,Jct])[J]):n==3?ni(t,lt(ut(Pe,1),ue,2,6,["Jan","Feb","Mar","Apr",Tk,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[J]):M0(t,J+1,n);break;case 81:tt=r.q.getMonth()/3|0,n<4?ni(t,lt(ut(Pe,1),ue,2,6,["Q1","Q2","Q3","Q4"])[tt]):ni(t,lt(ut(Pe,1),ue,2,6,["1st quarter","2nd quarter","3rd quarter","4th quarter"])[tt]);break;case 100:ht=r.q.getDate(),M0(t,ht,n);break;case 109:k=s.q.getMinutes(),M0(t,k,n);break;case 115:h=s.q.getSeconds(),M0(t,h,n);break;case 122:n<4?ni(t,o.c[0]):ni(t,o.c[1]);break;case 118:ni(t,o.b);break;case 90:n<3?ni(t,T5n(o)):n==3?ni(t,L5n(o)):ni(t,D5n(o.a));break;default:return!1}return!0}function a8t(t,e,n,r){var s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se,Ce,rn,Ze,On,Dn,er,Jr;if(N0e(e),m=u(Dt((!e.b&&(e.b=new kn(vr,e,4,7)),e.b),0),84),T=u(Dt((!e.c&&(e.c=new kn(vr,e,5,8)),e.c),0),84),d=Jo(m),k=Jo(T),h=(!e.a&&(e.a=new Jt(Wi,e,6,6)),e.a).i==0?null:u(Dt((!e.a&&(e.a=new Jt(Wi,e,6,6)),e.a),0),166),Ce=u(tr(t.a,d),10),Dn=u(tr(t.a,k),10),rn=null,er=null,Lt(m,193)&&(se=u(tr(t.a,m),304),Lt(se,12)?rn=u(se,12):Lt(se,10)&&(Ce=u(se,10),rn=u(Oe(Ce.j,0),12))),Lt(T,193)&&(On=u(tr(t.a,T),304),Lt(On,12)?er=u(On,12):Lt(On,10)&&(Dn=u(On,10),er=u(Oe(Dn.j,0),12))),!Ce||!Dn)throw at(new L6("The source or the target of edge "+e+" could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN."));for(J=new Pm,Qo(J,e),Zt(J,(oe(),Li),e),Zt(J,(De(),Vo),null),$=u(X(r,lu),21),Ce==Dn&&$.Fc((Co(),DA)),rn||(Wt=(To(),ku),Ze=null,h&&z4(u(X(Ce,bs),101))&&(Ze=new ae(h.j,h.k),Eie(Ze,AI(e)),Qie(Ze,n),qy(k,d)&&(Wt=vl,ki(Ze,Ce.n))),rn=Pge(Ce,Ze,Wt,r)),er||(Wt=(To(),vl),Jr=null,h&&z4(u(X(Dn,bs),101))&&(Jr=new ae(h.b,h.c),Eie(Jr,AI(e)),Qie(Jr,n)),er=Pge(Dn,Jr,Wt,Pa(Dn))),Xa(J,rn),xa(J,er),(rn.e.c.length>1||rn.g.c.length>1||er.e.c.length>1||er.g.c.length>1)&&$.Fc((Co(),LA)),P=new Zn((!e.n&&(e.n=new Jt(Po,e,1,7)),e.n));P.e!=P.i.gc();)if(A=u(ar(P),135),!Ie(Me(ne(A,Nw)))&&A.a)switch(tt=Pat(A),ge(J.b,tt),u(X(tt,l0),278).g){case 1:case 2:$.Fc((Co(),LT));break;case 0:$.Fc((Co(),AT)),Zt(tt,l0,(cd(),GT))}if(o=u(X(r,FA),322),ht=u(X(r,UG),323),s=o==(QS(),QN)||ht==(w_(),y1t),h&&(!h.a&&(h.a=new Ps(vh,h,5)),h.a).i!=0&&s){for(Tt=MO(h),U=new Qu,Bt=Dr(Tt,0);Bt.b!=Bt.d.c;)At=u(Ar(Bt),8),Zr(U,new io(At));Zt(J,t_t,U)}return J}function BSn(t,e,n,r){var s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se,Ce,rn,Ze,On,Dn,er,Jr,is;for(Ze=0,On=0,Ce=new _r,Wt=u(Vl(My(Wo(new ln(null,new gn(t.b,16)),new JZ),new stt)),17).a+1,rn=Vt(Fr,ii,28,Wt,15,1),tt=Vt(Fr,ii,28,Wt,15,1),J=0;J1)for(d=er+1;dk.b.e.b*(1-ht)+k.c.e.b*ht));U++);if(se.gc()>0&&(Jr=k.a.b==0?Oa(k.b.e):u(Pf(k.a),8),At=ki(Oa(u(se.Xb(se.gc()-1),39).e),u(se.Xb(se.gc()-1),39).f),P=ki(Oa(u(se.Xb(0),39).e),u(se.Xb(0),39).f),U>=se.gc()-1&&Jr.b>At.b&&k.c.e.b>At.b||U<=0&&Jr.bk.b.e.a*(1-ht)+k.c.e.a*ht));U++);if(se.gc()>0&&(Jr=k.a.b==0?Oa(k.b.e):u(Pf(k.a),8),At=ki(Oa(u(se.Xb(se.gc()-1),39).e),u(se.Xb(se.gc()-1),39).f),P=ki(Oa(u(se.Xb(0),39).e),u(se.Xb(0),39).f),U>=se.gc()-1&&Jr.a>At.a&&k.c.e.a>At.a||U<=0&&Jr.a=Rt(Ht(X(t,(ji(),bLt))))&&++On):($.f&&$.d.e.a<=Rt(Ht(X(t,(ji(),R1t))))&&++Ze,$.g&&$.c.e.a+$.c.f.a>=Rt(Ht(X(t,(ji(),pLt))))&&++On)}else Bt==0?A6t(k):Bt<0&&(++rn[er],++tt[is],Dn=ISn(k,e,t,new Ws(he(Ze),he(On)),n,r,new Ws(he(tt[is]),he(rn[er]))),Ze=u(Dn.a,17).a,On=u(Dn.b,17).a)}function RSn(t,e,n){var r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt;if(r=e,m=n,t.b&&r.j==(ve(),Gn)&&m.j==(ve(),Gn)&&(Tt=r,r=m,m=Tt),Tu(t.a,r)){if(x1(u(tr(t.a,r),49),m))return 1}else hi(t.a,r,new Os);if(Tu(t.a,m)){if(x1(u(tr(t.a,m),49),r))return-1}else hi(t.a,m,new Os);if(Tu(t.d,r)){if(x1(u(tr(t.d,r),49),m))return-1}else hi(t.d,r,new Os);if(Tu(t.d,m)){if(x1(u(tr(t.a,m),49),r))return 1}else hi(t.d,m,new Os);if(r.j!=m.j)return ht=Sin(r.j,m.j),ht==-1?$h(t,m,r):$h(t,r,m),ht;if(r.e.c.length!=0&&m.e.c.length!=0){if(t.b&&(ht=mue(r,m),ht!=0))return ht==-1?$h(t,m,r):ht==1&&$h(t,r,m),ht;if(o=u(Oe(r.e,0),18).c.i,T=u(Oe(m.e,0),18).c.i,o==T)return s=u(X(u(Oe(r.e,0),18),(oe(),Pi)),17).a,k=u(X(u(Oe(m.e,0),18),Pi),17).a,s>k?$h(t,r,m):$h(t,m,r),sk?1:0;for(U=t.c,J=0,tt=U.length;Jk?$h(t,r,m):$h(t,m,r),sk?1:0):t.b&&(ht=mue(r,m),ht!=0)?(ht==-1?$h(t,m,r):ht==1&&$h(t,r,m),ht):(h=0,A=0,qi(u(Oe(r.g,0),18),Pi)&&(h=u(X(u(Oe(r.g,0),18),Pi),17).a),qi(u(Oe(m.g,0),18),Pi)&&(A=u(X(u(Oe(r.g,0),18),Pi),17).a),d&&d==P?Ie(Me(X(u(Oe(r.g,0),18),vd)))&&!Ie(Me(X(u(Oe(m.g,0),18),vd)))?($h(t,r,m),1):!Ie(Me(X(u(Oe(r.g,0),18),vd)))&&Ie(Me(X(u(Oe(m.g,0),18),vd)))?($h(t,m,r),-1):(h>A?$h(t,r,m):$h(t,m,r),hA?1:0):(t.f&&(t.f._b(d)&&(h=u(t.f.xc(d),17).a),t.f._b(P)&&(A=u(t.f.xc(P),17).a)),h>A?$h(t,r,m):$h(t,m,r),hA?1:0))):r.e.c.length!=0&&m.g.c.length!=0?($h(t,r,m),1):r.g.c.length!=0&&m.e.c.length!=0?($h(t,m,r),-1):qi(r,(oe(),Pi))&&qi(m,Pi)?(s=u(X(r,Pi),17).a,k=u(X(m,Pi),17).a,s>k?$h(t,r,m):$h(t,m,r),sk?1:0):($h(t,m,r),-1)}function jSn(t){t.gb||(t.gb=!0,t.b=Tc(t,0),fs(t.b,18),Vi(t.b,19),t.a=Tc(t,1),fs(t.a,1),Vi(t.a,2),Vi(t.a,3),Vi(t.a,4),Vi(t.a,5),t.o=Tc(t,2),fs(t.o,8),fs(t.o,9),Vi(t.o,10),Vi(t.o,11),Vi(t.o,12),Vi(t.o,13),Vi(t.o,14),Vi(t.o,15),Vi(t.o,16),Vi(t.o,17),Vi(t.o,18),Vi(t.o,19),Vi(t.o,20),Vi(t.o,21),Vi(t.o,22),Vi(t.o,23),zo(t.o),zo(t.o),zo(t.o),zo(t.o),zo(t.o),zo(t.o),zo(t.o),zo(t.o),zo(t.o),zo(t.o),t.p=Tc(t,3),fs(t.p,2),fs(t.p,3),fs(t.p,4),fs(t.p,5),Vi(t.p,6),Vi(t.p,7),zo(t.p),zo(t.p),t.q=Tc(t,4),fs(t.q,8),t.v=Tc(t,5),Vi(t.v,9),zo(t.v),zo(t.v),zo(t.v),t.w=Tc(t,6),fs(t.w,2),fs(t.w,3),fs(t.w,4),Vi(t.w,5),t.B=Tc(t,7),Vi(t.B,1),zo(t.B),zo(t.B),zo(t.B),t.Q=Tc(t,8),Vi(t.Q,0),zo(t.Q),t.R=Tc(t,9),fs(t.R,1),t.S=Tc(t,10),zo(t.S),zo(t.S),zo(t.S),zo(t.S),zo(t.S),zo(t.S),zo(t.S),zo(t.S),zo(t.S),zo(t.S),zo(t.S),zo(t.S),zo(t.S),zo(t.S),zo(t.S),t.T=Tc(t,11),Vi(t.T,10),Vi(t.T,11),Vi(t.T,12),Vi(t.T,13),Vi(t.T,14),zo(t.T),zo(t.T),t.U=Tc(t,12),fs(t.U,2),fs(t.U,3),Vi(t.U,4),Vi(t.U,5),Vi(t.U,6),Vi(t.U,7),zo(t.U),t.V=Tc(t,13),Vi(t.V,10),t.W=Tc(t,14),fs(t.W,18),fs(t.W,19),fs(t.W,20),Vi(t.W,21),Vi(t.W,22),Vi(t.W,23),t.bb=Tc(t,15),fs(t.bb,10),fs(t.bb,11),fs(t.bb,12),fs(t.bb,13),fs(t.bb,14),fs(t.bb,15),fs(t.bb,16),Vi(t.bb,17),zo(t.bb),zo(t.bb),t.eb=Tc(t,16),fs(t.eb,2),fs(t.eb,3),fs(t.eb,4),fs(t.eb,5),fs(t.eb,6),fs(t.eb,7),Vi(t.eb,8),Vi(t.eb,9),t.ab=Tc(t,17),fs(t.ab,0),fs(t.ab,1),t.H=Tc(t,18),Vi(t.H,0),Vi(t.H,1),Vi(t.H,2),Vi(t.H,3),Vi(t.H,4),Vi(t.H,5),zo(t.H),t.db=Tc(t,19),Vi(t.db,2),t.c=di(t,20),t.d=di(t,21),t.e=di(t,22),t.f=di(t,23),t.i=di(t,24),t.g=di(t,25),t.j=di(t,26),t.k=di(t,27),t.n=di(t,28),t.r=di(t,29),t.s=di(t,30),t.t=di(t,31),t.u=di(t,32),t.fb=di(t,33),t.A=di(t,34),t.C=di(t,35),t.D=di(t,36),t.F=di(t,37),t.G=di(t,38),t.I=di(t,39),t.J=di(t,40),t.L=di(t,41),t.M=di(t,42),t.N=di(t,43),t.O=di(t,44),t.P=di(t,45),t.X=di(t,46),t.Y=di(t,47),t.Z=di(t,48),t.$=di(t,49),t._=di(t,50),t.cb=di(t,51),t.K=di(t,52))}function $Sn(t,e,n){var r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se,Ce,rn,Ze,On,Dn,er;for(h=new Ki,se=u(X(n,(De(),ph)),88),J=0,Ma(h,(!e.a&&(e.a=new Jt(bi,e,10,11)),e.a));h.b!=0;)T=u(h.b==0?null:(ur(h.b!=0),Oh(h,h.a.a)),27),k=Ji(T),($t(ne(k,U0))!==$t((Wd(),Up))||$t(ne(k,Dw))===$t((Ip(),ST))||$t(ne(k,Dw))===$t((Ip(),CT))||Ie(Me(ne(k,Ev)))||$t(ne(k,_3))!==$t((lw(),x3))||$t(ne(k,a2))===$t((cf(),Lv))||$t(ne(k,a2))===$t((cf(),N3))||$t(ne(k,Iw))===$t((Bp(),RT))||$t(ne(k,Iw))===$t((Bp(),jT)))&&!Ie(Me(ne(T,BG)))&&Mi(T,(oe(),Pi),he(J++)),ht=!Ie(Me(ne(T,Nw))),ht&&(P=(!T.a&&(T.a=new Jt(bi,T,10,11)),T.a).i!=0,U=p3n(T),$=$t(ne(T,A3))===$t((Ag(),Xp)),er=!ad(T,(ai(),VT))||sse(Gr(ne(T,VT))),Bt=null,er&&$&&(P||U)&&(Bt=pge(T),Zt(Bt,ph,se),qi(Bt,sP)&&pWt(new V5t(Rt(Ht(X(Bt,sP)))),Bt),u(ne(T,Ow),181).gc()!=0&&(A=Bt,ms(new ln(null,(!T.c&&(T.c=new Jt(kl,T,9,9)),new gn(T.c,16))),new kVt(A)),o0e(T,Bt))),Ce=n,rn=u(tr(t.a,Ji(T)),10),rn&&(Ce=rn.e),At=qpe(t,T,Ce),Bt&&(At.e=Bt,Bt.e=At,Ma(h,(!T.a&&(T.a=new Jt(bi,T,10,11)),T.a))));for(J=0,hs(h,e,h.c.b,h.c);h.b!=0;){for(o=u(h.b==0?null:(ur(h.b!=0),Oh(h,h.a.a)),27),m=new Zn((!o.b&&(o.b=new Jt(Ts,o,12,3)),o.b));m.e!=m.i.gc();)d=u(ar(m),74),N0e(d),($t(ne(e,U0))!==$t((Wd(),Up))||$t(ne(e,Dw))===$t((Ip(),ST))||$t(ne(e,Dw))===$t((Ip(),CT))||Ie(Me(ne(e,Ev)))||$t(ne(e,_3))!==$t((lw(),x3))||$t(ne(e,a2))===$t((cf(),Lv))||$t(ne(e,a2))===$t((cf(),N3))||$t(ne(e,Iw))===$t((Bp(),RT))||$t(ne(e,Iw))===$t((Bp(),jT)))&&Mi(d,(oe(),Pi),he(J++)),On=Jo(u(Dt((!d.b&&(d.b=new kn(vr,d,4,7)),d.b),0),84)),Dn=Jo(u(Dt((!d.c&&(d.c=new kn(vr,d,5,8)),d.c),0),84)),!(Ie(Me(ne(d,Nw)))||Ie(Me(ne(On,Nw)))||Ie(Me(ne(Dn,Nw))))&&(tt=Zm(d)&&Ie(Me(ne(On,L3)))&&Ie(Me(ne(d,Mw))),Wt=o,tt||qy(Dn,On)?Wt=On:qy(On,Dn)&&(Wt=Dn),Ce=n,rn=u(tr(t.a,Wt),10),rn&&(Ce=rn.e),Tt=a8t(t,d,Wt,Ce),Zt(Tt,(oe(),XSt),$kn(t,d,e,n)));if($=$t(ne(o,A3))===$t((Ag(),Xp)),$)for(s=new Zn((!o.a&&(o.a=new Jt(bi,o,10,11)),o.a));s.e!=s.i.gc();)r=u(ar(s),27),er=!ad(r,(ai(),VT))||sse(Gr(ne(r,VT))),Ze=$t(ne(r,A3))===$t(Xp),er&&Ze&&hs(h,r,h.c.b,h.c)}}function oe(){oe=V;var t,e;Li=new Oi(G8t),XSt=new Oi("coordinateOrigin"),Yft=new Oi("processors"),YSt=new rs("compoundNode",(Pn(),!1)),eP=new rs("insideConnections",!1),t_t=new Oi("originalBendpoints"),e_t=new Oi("originalDummyNodePosition"),n_t=new Oi("originalLabelEdge"),IA=new Oi("representedLabels"),MA=new Oi("endLabels"),Vk=new Oi("endLabel.origin"),Gk=new rs("labelSide",(uh(),NP)),V5=new rs("maxEdgeThickness",0),vd=new rs("reversed",!1),Kk=new Oi(s2e),N1=new rs("longEdgeSource",null),gf=new rs("longEdgeTarget",null),C3=new rs("longEdgeHasLabelDummies",!1),nP=new rs("longEdgeBeforeLabelDummy",!1),DG=new rs("edgeConstraint",(ow(),Ift)),yv=new Oi("inLayerLayoutUnit"),Aw=new rs("inLayerConstraint",(Cg(),ZN)),Uk=new rs("inLayerSuccessorConstraint",new fe),ZSt=new rs("inLayerSuccessorConstraintBetweenNonDummies",!1),ml=new Oi("portDummy"),LG=new rs("crossingHint",he(0)),lu=new rs("graphProperties",(e=u(y1(jft),9),new _h(e,u(Ff(e,e.length),9),0))),Dc=new rs("externalPortSide",(ve(),bc)),JSt=new rs("externalPortSize",new Sa),Vft=new Oi("externalPortReplacedDummies"),MG=new Oi("externalPortReplacedDummy"),$g=new rs("externalPortConnections",(t=u(y1(bo),9),new _h(t,u(Ff(t,t.length),9),0))),xv=new rs(Xbe,0),WSt=new Oi("barycenterAssociates"),Wk=new Oi("TopSideComments"),Hk=new Oi("BottomSideComments"),AG=new Oi("CommentConnectionPort"),Gft=new rs("inputCollect",!1),Wft=new rs("outputCollect",!1),tP=new rs("cyclic",!1),QSt=new Oi("crossHierarchyMap"),Qft=new Oi("targetOffset"),new rs("splineLabelSize",new Sa),G5=new Oi("spacings"),IG=new rs("partitionConstraint",!1),vv=new Oi("breakingPoint.info"),s_t=new Oi("splines.survivingEdge"),Lw=new Oi("splines.route.start"),K5=new Oi("splines.edgeChain"),i_t=new Oi("originalPortConstraints"),kv=new Oi("selfLoopHolder"),MT=new Oi("splines.nsPortY"),Pi=new Oi("modelOrder"),Kft=new Oi("longEdgeTargetNode"),i2=new rs(M2e,!1),U5=new rs(M2e,!1),Uft=new Oi("layerConstraints.hiddenNodes"),r_t=new Oi("layerConstraints.opposidePort"),Xft=new Oi("targetNode.modelOrder")}function zSn(t,e,n,r){var s,o,h,d,m,k,T,A,P,$,U;for(A=Dr(t.b,0);A.b!=A.d.c;)if(T=u(Ar(A),39),!hn(T.c,nU))for(o=u(nc(new ln(null,new gn(X5n(T,t),16)),gl(new Br,new ce,new An,lt(ut(Ho,1),te,108,0,[(bl(),sc)]))),15),e==(Rs(),Uo)||e==tc?o.jd(new ntt):o.jd(new MR),U=o.gc(),s=0;s0&&(d=u(Pf(u(o.Xb(s),65).a),8).a,P=T.e.a+T.f.a/2,m=u(Pf(u(o.Xb(s),65).a),8).b,$=T.e.b+T.f.b/2,r>0&&b.Math.abs(m-$)/(b.Math.abs(d-P)/40)>50&&($>m?ro(u(o.Xb(s),65).a,new ae(T.e.a+T.f.a+r/5.3,T.e.b+T.f.b*h-r/2)):ro(u(o.Xb(s),65).a,new ae(T.e.a+T.f.a+r/5.3,T.e.b+T.f.b*h+r/2)))),ro(u(o.Xb(s),65).a,new ae(T.e.a+T.f.a,T.e.b+T.f.b*h))):e==tc?(k=Rt(Ht(X(T,(ji(),P1)))),T.e.a-r>k?ro(u(o.Xb(s),65).a,new ae(k-n,T.e.b+T.f.b*h)):u(o.Xb(s),65).a.b>0&&(d=u(Pf(u(o.Xb(s),65).a),8).a,P=T.e.a+T.f.a/2,m=u(Pf(u(o.Xb(s),65).a),8).b,$=T.e.b+T.f.b/2,r>0&&b.Math.abs(m-$)/(b.Math.abs(d-P)/40)>50&&($>m?ro(u(o.Xb(s),65).a,new ae(T.e.a-r/5.3,T.e.b+T.f.b*h-r/2)):ro(u(o.Xb(s),65).a,new ae(T.e.a-r/5.3,T.e.b+T.f.b*h+r/2)))),ro(u(o.Xb(s),65).a,new ae(T.e.a,T.e.b+T.f.b*h))):e==Gh?(k=Rt(Ht(X(T,(ji(),Xf)))),T.e.b+T.f.b+r0&&(d=u(Pf(u(o.Xb(s),65).a),8).a,P=T.e.a+T.f.a/2,m=u(Pf(u(o.Xb(s),65).a),8).b,$=T.e.b+T.f.b/2,r>0&&b.Math.abs(d-P)/(b.Math.abs(m-$)/40)>50&&(P>d?ro(u(o.Xb(s),65).a,new ae(T.e.a+T.f.a*h-r/2,T.e.b+r/5.3+T.f.b)):ro(u(o.Xb(s),65).a,new ae(T.e.a+T.f.a*h+r/2,T.e.b+r/5.3+T.f.b)))),ro(u(o.Xb(s),65).a,new ae(T.e.a+T.f.a*h,T.e.b+T.f.b))):(k=Rt(Ht(X(T,(ji(),P1)))),iue(u(o.Xb(s),65),t)?ro(u(o.Xb(s),65).a,new ae(T.e.a+T.f.a*h,u(Pf(u(o.Xb(s),65).a),8).b)):T.e.b-r>k?ro(u(o.Xb(s),65).a,new ae(T.e.a+T.f.a*h,k-n)):u(o.Xb(s),65).a.b>0&&(d=u(Pf(u(o.Xb(s),65).a),8).a,P=T.e.a+T.f.a/2,m=u(Pf(u(o.Xb(s),65).a),8).b,$=T.e.b+T.f.b/2,r>0&&b.Math.abs(d-P)/(b.Math.abs(m-$)/40)>50&&(P>d?ro(u(o.Xb(s),65).a,new ae(T.e.a+T.f.a*h-r/2,T.e.b-r/5.3)):ro(u(o.Xb(s),65).a,new ae(T.e.a+T.f.a*h+r/2,T.e.b-r/5.3)))),ro(u(o.Xb(s),65).a,new ae(T.e.a+T.f.a*h,T.e.b)))}function ai(){ai=V;var t,e;VT=new Oi(bwe),fx=new Oi(wwe),dMt=(I0(),_dt),c7e=new un(t7t,dMt),sx=new un(Dk,null),u7e=new Oi(dTt),pMt=(fw(),Hi(Ddt,lt(ut(Mdt,1),te,297,0,[Ldt]))),CP=new un(QV,pMt),SP=new un(TN,(Pn(),!1)),bMt=(Rs(),Ed),Rw=new un(blt,bMt),vMt=(Lg(),Vdt),mMt=new un(EN,vMt),f7e=new un(hTt,!1),kMt=(Ag(),IK),cx=new un(XV,kMt),MMt=new xm(12),Yp=new un(ov,MMt),AP=new un(Y_,!1),Pdt=new un(ZV,!1),LP=new un(X_,!1),FMt=(ka(),d2),fL=new un(Fut,FMt),Jk=new Oi(JV),DP=new Oi(gN),qdt=new Oi(IV),Hdt=new Oi(W_),EMt=new Qu,Iv=new un(h7t,EMt),h7e=new un(g7t,!1),d7e=new un(p7t,!1),TMt=new HC,UT=new un(w7t,TMt),AK=new un(JEt,!1),w7e=new un(mwe,1),ox=new Oi(vwe),ax=new Oi(ywe),dL=new un(pN,!1),new un(xwe,!0),he(0),new un(kwe,he(100)),new un(Ewe,!1),he(0),new un(Twe,he(4e3)),he(0),new un(Cwe,he(400)),new un(Swe,!1),new un(_we,!1),new un(Awe,!0),new un(Lwe,!1),gMt=(pH(),Wdt),l7e=new un(fTt,gMt),m7e=new un(zEt,10),v7e=new un(qEt,10),$Mt=new un(Lut,20),y7e=new un(HEt,10),zMt=new un(Put,2),qMt=new un(plt,10),HMt=new un(VEt,0),LK=new un(KEt,5),VMt=new un(UEt,1),UMt=new un(GEt,1),$w=new un(h3,20),x7e=new un(WEt,10),WMt=new un(YEt,10),Zk=new Oi(XEt),KMt=new PQt,GMt=new un(m7t,KMt),p7e=new Oi(mlt),IMt=!1,g7e=new un(wlt,IMt),SMt=new xm(5),CMt=new un(r7t,SMt),_Mt=(e3(),e=u(y1(Lo),9),new _h(e,u(Ff(e,e.length),9),0)),ux=new un(nT,_Mt),NMt=(o5(),f2),OMt=new un(a7t,NMt),Bdt=new Oi(o7t),Rdt=new Oi(c7t),jdt=new Oi(u7t),Fdt=new Oi(l7t),AMt=(t=u(y1(xL),9),new _h(t,u(Ff(t,t.length),9),0)),jw=new un(_5,AMt),DMt=en((Ml(),XT)),l2=new un(Mk,DMt),LMt=new ae(0,0),lx=new un(Ik,LMt),R3=new un(eT,!1),wMt=(cd(),GT),Odt=new un(f7t,wMt),Idt=new un(OV,!1),he(1),new un(Dwe,null),PMt=new Oi(b7t),$dt=new Oi(d7t),jMt=(ve(),bc),hx=new un(ZEt,jMt),Pl=new Oi(QEt),BMt=(wl(),en(g2)),j3=new un(rT,BMt),zdt=new un(i7t,!1),RMt=new un(s7t,!0),MK=new un(bN,1),YMt=new un(gTt,null),MP=new un(wN,150),DK=new un(mN,1.414),t8=new un(cv,null),k7e=new un(pTt,1),_P=new un(e7t,!1),Ndt=new un(n7t,!1),yMt=new un(Dut,1),xMt=(HH(),Gdt),new un(Mwe,xMt),b7e=!0,T7e=(lk(),q3),C7e=q3,E7e=q3}function Za(){Za=V,KCt=new Ns("DIRECTION_PREPROCESSOR",0),VCt=new Ns("COMMENT_PREPROCESSOR",1),B5=new Ns("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER",2),gft=new Ns("INTERACTIVE_EXTERNAL_PORT_POSITIONER",3),fSt=new Ns("PARTITION_PREPROCESSOR",4),nG=new Ns("LABEL_DUMMY_INSERTER",5),fG=new Ns("SELF_LOOP_PREPROCESSOR",6),E3=new Ns("LAYER_CONSTRAINT_PREPROCESSOR",7),lSt=new Ns("PARTITION_MIDPROCESSOR",8),eSt=new Ns("HIGH_DEGREE_NODE_LAYER_PROCESSOR",9),cSt=new Ns("NODE_PROMOTION",10),k3=new Ns("LAYER_CONSTRAINT_POSTPROCESSOR",11),hSt=new Ns("PARTITION_POSTPROCESSOR",12),JCt=new Ns("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR",13),dSt=new Ns("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR",14),RCt=new Ns("BREAKING_POINT_INSERTER",15),aG=new Ns("LONG_EDGE_SPLITTER",16),pft=new Ns("PORT_SIDE_PROCESSOR",17),tG=new Ns("INVERTED_PORT_PROCESSOR",18),uG=new Ns("PORT_LIST_SORTER",19),pSt=new Ns("SORT_BY_INPUT_ORDER_OF_MODEL",20),cG=new Ns("NORTH_SOUTH_PORT_PREPROCESSOR",21),jCt=new Ns("BREAKING_POINT_PROCESSOR",22),uSt=new Ns(E2e,23),bSt=new Ns(T2e,24),lG=new Ns("SELF_LOOP_PORT_RESTORER",25),gSt=new Ns("SINGLE_EDGE_GRAPH_WRAPPER",26),eG=new Ns("IN_LAYER_CONSTRAINT_PROCESSOR",27),YCt=new Ns("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR",28),aSt=new Ns("LABEL_AND_NODE_SIZE_PROCESSOR",29),sSt=new Ns("INNERMOST_NODE_MARGIN_CALCULATOR",30),dG=new Ns("SELF_LOOP_ROUTER",31),qCt=new Ns("COMMENT_NODE_MARGIN_CALCULATOR",32),ZU=new Ns("END_LABEL_PREPROCESSOR",33),iG=new Ns("LABEL_DUMMY_SWITCHER",34),zCt=new Ns("CENTER_LABEL_MANAGEMENT_PROCESSOR",35),vT=new Ns("LABEL_SIDE_SELECTOR",36),rSt=new Ns("HYPEREDGE_DUMMY_MERGER",37),ZCt=new Ns("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR",38),oSt=new Ns("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR",39),CA=new Ns("HIERARCHICAL_PORT_POSITION_PROCESSOR",40),UCt=new Ns("CONSTRAINTS_POSTPROCESSOR",41),HCt=new Ns("COMMENT_POSTPROCESSOR",42),iSt=new Ns("HYPERNODE_PROCESSOR",43),tSt=new Ns("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER",44),sG=new Ns("LONG_EDGE_JOINER",45),hG=new Ns("SELF_LOOP_POSTPROCESSOR",46),$Ct=new Ns("BREAKING_POINT_REMOVER",47),oG=new Ns("NORTH_SOUTH_PORT_POSTPROCESSOR",48),nSt=new Ns("HORIZONTAL_COMPACTOR",49),rG=new Ns("LABEL_DUMMY_REMOVER",50),XCt=new Ns("FINAL_SPLINE_BENDPOINTS_CALCULATOR",51),WCt=new Ns("END_LABEL_SORTER",52),WN=new Ns("REVERSED_EDGE_RESTORER",53),JU=new Ns("END_LABEL_POSTPROCESSOR",54),QCt=new Ns("HIERARCHICAL_NODE_RESIZER",55),GCt=new Ns("DIRECTION_POSTPROCESSOR",56)}function o8t(){o8t=V,b_t=(YI(),xG),B5e=new un(nEt,b_t),Y5e=new un(rEt,(Pn(),!1)),k_t=(fq(),Hft),txe=new un(BV,k_t),pxe=new un(iEt,!1),bxe=new un(sEt,!0),u5e=new un(aEt,!1),D_t=(KI(),T1t),Mxe=new un(oEt,D_t),he(1),jxe=new un(cEt,he(7)),$xe=new un(uEt,!1),X5e=new un(lEt,!1),p_t=(Ip(),Dft),F5e=new un(Hut,p_t),C_t=(Bp(),b1t),gxe=new un(kN,C_t),E_t=(Rh(),rP),axe=new un(hEt,E_t),he(-1),sxe=new un(fEt,null),he(-1),oxe=new un(dEt,he(-1)),he(-1),cxe=new un(Vut,he(4)),he(-1),lxe=new un(Uut,he(2)),T_t=(cf(),ZG),dxe=new un(Gut,T_t),he(0),fxe=new un(Kut,he(0)),rxe=new un(Wut,he(xi)),g_t=(QS(),_A),P5e=new un(Z_,g_t),y5e=new un(gEt,!1),_5e=new un(Yut,.1),O5e=new un(Xut,!1),L5e=new un(pEt,null),D5e=new un(bEt,null),he(-1),M5e=new un(wEt,null),he(-1),I5e=new un(mEt,he(-1)),he(0),x5e=new un(vEt,he(40)),d_t=(c7(),zft),C5e=new un(Qut,d_t),f_t=JN,k5e=new un(RV,f_t),L_t=(w_(),zA),Dxe=new un(A5,L_t),xxe=new Oi(jV),S_t=(qI(),EG),wxe=new un(Jut,S_t),__t=(AO(),TG),vxe=new un(Zut,__t),Txe=new un(tlt,.3),Sxe=new Oi(elt),A_t=(Yy(),JG),_xe=new un(nlt,A_t),v_t=(tH(),S1t),q5e=new un(yEt,v_t),y_t=(i_(),A1t),H5e=new un(xEt,y_t),x_t=(b7(),VA),V5e=new un($V,x_t),G5e=new un(zV,.2),$5e=new un(rlt,2),Pxe=new un(kEt,null),Bxe=new un(EEt,10),Fxe=new un(TEt,10),Rxe=new un(CEt,20),he(0),Ixe=new un(SEt,he(0)),he(0),Oxe=new un(_Et,he(0)),he(0),Nxe=new un(AEt,he(0)),l5e=new un(ilt,!1),c_t=(M7(),AA),f5e=new un(LEt,c_t),o_t=(Eq(),Aft),h5e=new un(DEt,o_t),J5e=new un(qV,!1),he(0),Q5e=new un(slt,he(16)),he(0),Z5e=new un(alt,he(5)),O_t=(iH(),M1t),a6e=new un(Bg,O_t),zxe=new un(HV,10),Vxe=new un(VV,1),I_t=($q(),yG),Qxe=new un(tA,I_t),Kxe=new Oi(olt),M_t=he(1),he(0),Yxe=new un(clt,M_t),N_t=(jq(),D1t),l6e=new un(UV,N_t),o6e=new Oi(GV),n6e=new un(KV,!0),t6e=new un(WV,2),i6e=new un(ult,!0),m_t=(UH(),kG),j5e=new un(MEt,m_t),w_t=(wk(),ET),R5e=new un(IEt,w_t),h_t=(Wd(),Up),v5e=new un(YV,h_t),m5e=new un(OEt,!1),w5e=new un(NEt,!1),u_t=(lw(),x3),d5e=new un(llt,u_t),l_t=(o_(),w1t),b5e=new un(PEt,l_t),g5e=new un(hlt,0),p5e=new un(flt,0),nxe=Mft,exe=QN,uxe=XG,hxe=XG,ixe=p1t,A5e=(Ag(),Xp),N5e=_A,S5e=_A,E5e=_A,T5e=Xp,kxe=qA,Exe=zA,mxe=zA,yxe=zA,Cxe=x1t,Lxe=qA,Axe=qA,U5e=(Lg(),e8),K5e=e8,W5e=VA,z5e=IP,qxe=$T,Hxe=P3,Uxe=$T,Gxe=P3,Jxe=$T,Zxe=P3,Wxe=Lft,Xxe=yG,h6e=$T,f6e=P3,c6e=$T,u6e=P3,r6e=P3,e6e=P3,s6e=P3}function qSn(t,e,n){var r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se,Ce,rn,Ze,On,Dn,er,Jr,is,El,Go,yh,mx,rb,r1,i1,Vw,o8,k2,c8,d0,J0,Bv,u8,vx,g0,Uw,Ug,f9e,mOt,Rv,NL,h0t,l8,PL,X3,FL,f0t,d9e;for(mOt=0,Jr=e,Go=0,rb=Jr.length;Go0&&(t.a[d0.p]=mOt++)}for(PL=0,is=n,yh=0,r1=is.length;yh0;){for(d0=(ur(vx.b>0),u(vx.a.Xb(vx.c=--vx.b),12)),u8=0,d=new G(d0.e);d.a0&&(d0.j==(ve(),Hn)?(t.a[d0.p]=PL,++PL):(t.a[d0.p]=PL+i1+o8,++o8))}PL+=o8}for(Bv=new _r,U=new zd,er=e,El=0,mx=er.length;Elk.b&&(k.b=g0)):d0.i.c==f9e&&(g0k.c&&(k.c=g0));for(GE(J,0,J.length,null),l8=Vt(Fr,ii,28,J.length,15,1),r=Vt(Fr,ii,28,PL+1,15,1),ht=0;ht0;)Ce%2>0&&(s+=f0t[Ce+1]),Ce=(Ce-1)/2|0,++f0t[Ce];for(Ze=Vt(lke,Ln,374,J.length*2,0,1),Bt=0;Bt0&&_I(El.f),ne(ht,YMt)!=null&&(d=u(ne(ht,YMt),347),Bv=d.Tg(ht),H4(ht,b.Math.max(ht.g,Bv.a),b.Math.max(ht.f,Bv.b)));if(r1=u(ne(e,Yp),107),$=e.g-(r1.b+r1.c),P=e.f-(r1.d+r1.a),g0.bh("Available Child Area: ("+$+"|"+P+")"),Mi(e,sx,$/P),Rle(e,s,r.eh(mx)),u(ne(e,t8),280)==RK&&(r8t(e),H4(e,r1.b+Rt(Ht(ne(e,ox)))+r1.c,r1.d+Rt(Ht(ne(e,ax)))+r1.a)),g0.bh("Executed layout algorithm: "+Gr(ne(e,VT))+" on node "+e.k),u(ne(e,t8),280)==q3){if($<0||P<0)throw at(new fp("The size defined by the parent parallel node is too small for the space provided by the paddings of the child hierarchical node. "+e.k));for(ad(e,ox)||ad(e,ax)||r8t(e),J=Rt(Ht(ne(e,ox))),U=Rt(Ht(ne(e,ax))),g0.bh("Desired Child Area: ("+J+"|"+U+")"),Vw=$/J,o8=P/U,i1=b.Math.min(Vw,b.Math.min(o8,Rt(Ht(ne(e,k7e))))),Mi(e,MK,i1),g0.bh(e.k+" -- Local Scale Factor (X|Y): ("+Vw+"|"+o8+")"),Bt=u(ne(e,CP),21),o=0,h=0,i1'?":hn(ume,t)?"'(?<' or '(? toIndex: ",T8t=", toIndex: ",C8t="Index: ",S8t=", Size: ",Q7="org.eclipse.elk.alg.common",Xr={50:1},Ibe="org.eclipse.elk.alg.common.compaction",Obe="Scanline/EventHandler",j0="org.eclipse.elk.alg.common.compaction.oned",Nbe="CNode belongs to another CGroup.",Pbe="ISpacingsHandler/1",wut="The ",mut=" instance has been finished already.",Fbe="The direction ",Bbe=" is not supported by the CGraph instance.",Rbe="OneDimensionalCompactor",jbe="OneDimensionalCompactor/lambda$0$Type",$be="Quadruplet",zbe="ScanlineConstraintCalculator",qbe="ScanlineConstraintCalculator/ConstraintsScanlineHandler",Hbe="ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type",Vbe="ScanlineConstraintCalculator/Timestamp",Ube="ScanlineConstraintCalculator/lambda$0$Type",t0={178:1,46:1},vut="org.eclipse.elk.alg.common.compaction.options",pc="org.eclipse.elk.core.data",_8t="org.eclipse.elk.polyomino.traversalStrategy",A8t="org.eclipse.elk.polyomino.lowLevelSort",L8t="org.eclipse.elk.polyomino.highLevelSort",D8t="org.eclipse.elk.polyomino.fill",uf={134:1},yut="polyomino",U_="org.eclipse.elk.alg.common.networksimplex",$0={183:1,3:1,4:1},Gbe="org.eclipse.elk.alg.common.nodespacing",ww="org.eclipse.elk.alg.common.nodespacing.cellsystem",J7="CENTER",Kbe={217:1,336:1},M8t={3:1,4:1,5:1,603:1},_k="LEFT",Ak="RIGHT",I8t="Vertical alignment cannot be null",O8t="BOTTOM",SV="org.eclipse.elk.alg.common.nodespacing.internal",G_="UNDEFINED",gd=.01,hN="org.eclipse.elk.alg.common.nodespacing.internal.algorithm",Wbe="LabelPlacer/lambda$0$Type",Ybe="LabelPlacer/lambda$1$Type",Xbe="portRatioOrPosition",Z7="org.eclipse.elk.alg.common.overlaps",xut="DOWN",e0="org.eclipse.elk.alg.common.polyomino",_V="NORTH",kut="EAST",Eut="SOUTH",Tut="WEST",AV="org.eclipse.elk.alg.common.polyomino.structures",N8t="Direction",Cut="Grid is only of size ",Sut=". Requested point (",_ut=") is out of bounds.",LV=" Given center based coordinates were (",fN="org.eclipse.elk.graph.properties",Qbe="IPropertyHolder",P8t={3:1,96:1,137:1},Lk="org.eclipse.elk.alg.common.spore",Jbe="org.eclipse.elk.alg.common.utils",mw={205:1},T5="org.eclipse.elk.core",Zbe="Connected Components Compaction",t2e="org.eclipse.elk.alg.disco",DV="org.eclipse.elk.alg.disco.graph",Aut="org.eclipse.elk.alg.disco.options",F8t="CompactionStrategy",B8t="org.eclipse.elk.disco.componentCompaction.strategy",R8t="org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm",j8t="org.eclipse.elk.disco.debug.discoGraph",$8t="org.eclipse.elk.disco.debug.discoPolys",e2e="componentCompaction",vw="org.eclipse.elk.disco",Lut="org.eclipse.elk.spacing.componentComponent",Dut="org.eclipse.elk.edge.thickness",Dk="org.eclipse.elk.aspectRatio",ov="org.eclipse.elk.padding",C5="org.eclipse.elk.alg.disco.transform",Mut=1.5707963267948966,S5=17976931348623157e292,l3={3:1,4:1,5:1,198:1},n2e={3:1,6:1,4:1,5:1,100:1,115:1},Iut="org.eclipse.elk.alg.force",z8t="ComponentsProcessor",r2e="ComponentsProcessor/1",q8t="ElkGraphImporter/lambda$0$Type",dN="org.eclipse.elk.alg.force.graph",i2e="Component Layout",H8t="org.eclipse.elk.alg.force.model",MV="org.eclipse.elk.force.model",V8t="org.eclipse.elk.force.iterations",U8t="org.eclipse.elk.force.repulsivePower",Out="org.eclipse.elk.force.temperature",n0=.001,Nut="org.eclipse.elk.force.repulsion",K_="org.eclipse.elk.alg.force.options",tT=1.600000023841858,Du="org.eclipse.elk.force",gN="org.eclipse.elk.priority",h3="org.eclipse.elk.spacing.nodeNode",Put="org.eclipse.elk.spacing.edgeLabel",IV="org.eclipse.elk.randomSeed",W_="org.eclipse.elk.separateConnectedComponents",Y_="org.eclipse.elk.interactive",Fut="org.eclipse.elk.portConstraints",OV="org.eclipse.elk.edgeLabels.inline",X_="org.eclipse.elk.omitNodeMicroLayout",eT="org.eclipse.elk.nodeSize.fixedGraphSize",Mk="org.eclipse.elk.nodeSize.options",_5="org.eclipse.elk.nodeSize.constraints",nT="org.eclipse.elk.nodeLabels.placement",rT="org.eclipse.elk.portLabels.placement",pN="org.eclipse.elk.topdownLayout",bN="org.eclipse.elk.topdown.scaleFactor",wN="org.eclipse.elk.topdown.hierarchicalNodeWidth",mN="org.eclipse.elk.topdown.hierarchicalNodeAspectRatio",cv="org.eclipse.elk.topdown.nodeType",G8t="origin",s2e="random",a2e="boundingBox.upLeft",o2e="boundingBox.lowRight",K8t="org.eclipse.elk.stress.fixed",W8t="org.eclipse.elk.stress.desiredEdgeLength",Y8t="org.eclipse.elk.stress.dimension",X8t="org.eclipse.elk.stress.epsilon",Q8t="org.eclipse.elk.stress.iterationLimit",Yb="org.eclipse.elk.stress",c2e="ELK Stress",Ik="org.eclipse.elk.nodeSize.minimum",NV="org.eclipse.elk.alg.force.stress",u2e="Layered layout",Ok="org.eclipse.elk.alg.layered",vN="org.eclipse.elk.alg.layered.compaction.components",Q_="org.eclipse.elk.alg.layered.compaction.oned",PV="org.eclipse.elk.alg.layered.compaction.oned.algs",yw="org.eclipse.elk.alg.layered.compaction.recthull",pd="org.eclipse.elk.alg.layered.components",r0="NONE",J8t="MODEL_ORDER",qc={3:1,6:1,4:1,9:1,5:1,126:1},l2e={3:1,6:1,4:1,5:1,150:1,100:1,115:1},FV="org.eclipse.elk.alg.layered.compound",zi={47:1},au="org.eclipse.elk.alg.layered.graph",But=" -> ",h2e="Not supported by LGraph",Z8t="Port side is undefined",Rut={3:1,6:1,4:1,5:1,482:1,150:1,100:1,115:1},jp={3:1,6:1,4:1,5:1,150:1,199:1,210:1,100:1,115:1},f2e={3:1,6:1,4:1,5:1,150:1,2042:1,210:1,100:1,115:1},d2e=`([{"' \r +`,g2e=`)]}"' \r +`,p2e="The given string contains parts that cannot be parsed as numbers.",yN="org.eclipse.elk.core.math",b2e={3:1,4:1,140:1,214:1,423:1},w2e={3:1,4:1,107:1,214:1,423:1},$p="org.eclipse.elk.alg.layered.graph.transform",m2e="ElkGraphImporter",v2e="ElkGraphImporter/lambda$1$Type",y2e="ElkGraphImporter/lambda$2$Type",x2e="ElkGraphImporter/lambda$4$Type",Yn="org.eclipse.elk.alg.layered.intermediate",k2e="Node margin calculation",E2e="ONE_SIDED_GREEDY_SWITCH",T2e="TWO_SIDED_GREEDY_SWITCH",jut="No implementation is available for the layout processor ",$ut="IntermediateProcessorStrategy",zut="Node '",C2e="FIRST_SEPARATE",S2e="LAST_SEPARATE",_2e="Odd port side processing",Gs="org.eclipse.elk.alg.layered.intermediate.compaction",J_="org.eclipse.elk.alg.layered.intermediate.greedyswitch",z0="org.eclipse.elk.alg.layered.p3order.counting",xN={230:1},Nk="org.eclipse.elk.alg.layered.intermediate.loops",dh="org.eclipse.elk.alg.layered.intermediate.loops.ordering",Xb="org.eclipse.elk.alg.layered.intermediate.loops.routing",tEt="org.eclipse.elk.alg.layered.intermediate.preserveorder",i0="org.eclipse.elk.alg.layered.intermediate.wrapping",Hc="org.eclipse.elk.alg.layered.options",qut="INTERACTIVE",eEt="GREEDY",A2e="DEPTH_FIRST",L2e="EDGE_LENGTH",D2e="SELF_LOOPS",M2e="firstTryWithInitialOrder",nEt="org.eclipse.elk.layered.directionCongruency",rEt="org.eclipse.elk.layered.feedbackEdges",BV="org.eclipse.elk.layered.interactiveReferencePoint",iEt="org.eclipse.elk.layered.mergeEdges",sEt="org.eclipse.elk.layered.mergeHierarchyEdges",aEt="org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides",oEt="org.eclipse.elk.layered.portSortingStrategy",cEt="org.eclipse.elk.layered.thoroughness",uEt="org.eclipse.elk.layered.unnecessaryBendpoints",lEt="org.eclipse.elk.layered.generatePositionAndLayerIds",Hut="org.eclipse.elk.layered.cycleBreaking.strategy",kN="org.eclipse.elk.layered.layering.strategy",hEt="org.eclipse.elk.layered.layering.layerConstraint",fEt="org.eclipse.elk.layered.layering.layerChoiceConstraint",dEt="org.eclipse.elk.layered.layering.layerId",Vut="org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth",Uut="org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor",Gut="org.eclipse.elk.layered.layering.nodePromotion.strategy",Kut="org.eclipse.elk.layered.layering.nodePromotion.maxIterations",Wut="org.eclipse.elk.layered.layering.coffmanGraham.layerBound",Z_="org.eclipse.elk.layered.crossingMinimization.strategy",gEt="org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder",Yut="org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness",Xut="org.eclipse.elk.layered.crossingMinimization.semiInteractive",pEt="org.eclipse.elk.layered.crossingMinimization.inLayerPredOf",bEt="org.eclipse.elk.layered.crossingMinimization.inLayerSuccOf",wEt="org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint",mEt="org.eclipse.elk.layered.crossingMinimization.positionId",vEt="org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold",Qut="org.eclipse.elk.layered.crossingMinimization.greedySwitch.type",RV="org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type",A5="org.eclipse.elk.layered.nodePlacement.strategy",jV="org.eclipse.elk.layered.nodePlacement.favorStraightEdges",Jut="org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening",Zut="org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment",tlt="org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening",elt="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility",nlt="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default",yEt="org.eclipse.elk.layered.edgeRouting.selfLoopDistribution",xEt="org.eclipse.elk.layered.edgeRouting.selfLoopOrdering",$V="org.eclipse.elk.layered.edgeRouting.splines.mode",zV="org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor",rlt="org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth",kEt="org.eclipse.elk.layered.spacing.baseValue",EEt="org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers",TEt="org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers",CEt="org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers",SEt="org.eclipse.elk.layered.priority.direction",_Et="org.eclipse.elk.layered.priority.shortness",AEt="org.eclipse.elk.layered.priority.straightness",ilt="org.eclipse.elk.layered.compaction.connectedComponents",LEt="org.eclipse.elk.layered.compaction.postCompaction.strategy",DEt="org.eclipse.elk.layered.compaction.postCompaction.constraints",qV="org.eclipse.elk.layered.highDegreeNodes.treatment",slt="org.eclipse.elk.layered.highDegreeNodes.threshold",alt="org.eclipse.elk.layered.highDegreeNodes.treeHeight",Bg="org.eclipse.elk.layered.wrapping.strategy",HV="org.eclipse.elk.layered.wrapping.additionalEdgeSpacing",VV="org.eclipse.elk.layered.wrapping.correctionFactor",tA="org.eclipse.elk.layered.wrapping.cutting.strategy",olt="org.eclipse.elk.layered.wrapping.cutting.cuts",clt="org.eclipse.elk.layered.wrapping.cutting.msd.freedom",UV="org.eclipse.elk.layered.wrapping.validify.strategy",GV="org.eclipse.elk.layered.wrapping.validify.forbiddenIndices",KV="org.eclipse.elk.layered.wrapping.multiEdge.improveCuts",WV="org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty",ult="org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges",MEt="org.eclipse.elk.layered.edgeLabels.sideSelection",IEt="org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy",YV="org.eclipse.elk.layered.considerModelOrder.strategy",OEt="org.eclipse.elk.layered.considerModelOrder.portModelOrder",NEt="org.eclipse.elk.layered.considerModelOrder.noModelOrder",llt="org.eclipse.elk.layered.considerModelOrder.components",PEt="org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy",hlt="org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence",flt="org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence",dlt="layering",I2e="layering.minWidth",O2e="layering.nodePromotion",iT="crossingMinimization",XV="org.eclipse.elk.hierarchyHandling",N2e="crossingMinimization.greedySwitch",P2e="nodePlacement",F2e="nodePlacement.bk",B2e="edgeRouting",EN="org.eclipse.elk.edgeRouting",bd="spacing",FEt="priority",BEt="compaction",R2e="compaction.postCompaction",j2e="Specifies whether and how post-process compaction is applied.",REt="highDegreeNodes",jEt="wrapping",$2e="wrapping.cutting",z2e="wrapping.validify",$Et="wrapping.multiEdge",glt="edgeLabels",eA="considerModelOrder",zEt="org.eclipse.elk.spacing.commentComment",qEt="org.eclipse.elk.spacing.commentNode",HEt="org.eclipse.elk.spacing.edgeEdge",plt="org.eclipse.elk.spacing.edgeNode",VEt="org.eclipse.elk.spacing.labelLabel",UEt="org.eclipse.elk.spacing.labelPortHorizontal",GEt="org.eclipse.elk.spacing.labelPortVertical",KEt="org.eclipse.elk.spacing.labelNode",WEt="org.eclipse.elk.spacing.nodeSelfLoop",YEt="org.eclipse.elk.spacing.portPort",XEt="org.eclipse.elk.spacing.individual",QEt="org.eclipse.elk.port.borderOffset",JEt="org.eclipse.elk.noLayout",ZEt="org.eclipse.elk.port.side",TN="org.eclipse.elk.debugMode",t7t="org.eclipse.elk.alignment",e7t="org.eclipse.elk.insideSelfLoops.activate",n7t="org.eclipse.elk.insideSelfLoops.yo",blt="org.eclipse.elk.direction",r7t="org.eclipse.elk.nodeLabels.padding",i7t="org.eclipse.elk.portLabels.nextToPortIfPossible",s7t="org.eclipse.elk.portLabels.treatAsGroup",a7t="org.eclipse.elk.portAlignment.default",o7t="org.eclipse.elk.portAlignment.north",c7t="org.eclipse.elk.portAlignment.south",u7t="org.eclipse.elk.portAlignment.west",l7t="org.eclipse.elk.portAlignment.east",QV="org.eclipse.elk.contentAlignment",h7t="org.eclipse.elk.junctionPoints",f7t="org.eclipse.elk.edgeLabels.placement",d7t="org.eclipse.elk.port.index",g7t="org.eclipse.elk.commentBox",p7t="org.eclipse.elk.hypernode",b7t="org.eclipse.elk.port.anchor",wlt="org.eclipse.elk.partitioning.activate",mlt="org.eclipse.elk.partitioning.partition",JV="org.eclipse.elk.position",w7t="org.eclipse.elk.margins",m7t="org.eclipse.elk.spacing.portsSurrounding",ZV="org.eclipse.elk.interactiveLayout",_c="org.eclipse.elk.core.util",v7t={3:1,4:1,5:1,601:1},q2e="NETWORK_SIMPLEX",y7t="SIMPLE",_o={106:1,47:1},tU="org.eclipse.elk.alg.layered.p1cycles",Rg="org.eclipse.elk.alg.layered.p2layers",x7t={413:1,230:1},H2e={846:1,3:1,4:1},al="org.eclipse.elk.alg.layered.p3order",Ao="org.eclipse.elk.alg.layered.p4nodes",V2e={3:1,4:1,5:1,854:1},s0=1e-5,Qb="org.eclipse.elk.alg.layered.p4nodes.bk",vlt="org.eclipse.elk.alg.layered.p5edges",M1="org.eclipse.elk.alg.layered.p5edges.orthogonal",ylt="org.eclipse.elk.alg.layered.p5edges.orthogonal.direction",xlt=1e-6,f3="org.eclipse.elk.alg.layered.p5edges.splines",klt=.09999999999999998,eU=1e-8,U2e=4.71238898038469,k7t=3.141592653589793,jg="org.eclipse.elk.alg.mrtree",Elt=.10000000149011612,nU="SUPER_ROOT",nA="org.eclipse.elk.alg.mrtree.graph",E7t=-17976931348623157e292,ou="org.eclipse.elk.alg.mrtree.intermediate",G2e="Processor compute fanout",rU={3:1,6:1,4:1,5:1,534:1,100:1,115:1},K2e="Set neighbors in level",CN="org.eclipse.elk.alg.mrtree.options",W2e="DESCENDANTS",T7t="org.eclipse.elk.mrtree.compaction",C7t="org.eclipse.elk.mrtree.edgeEndTextureLength",S7t="org.eclipse.elk.mrtree.treeLevel",_7t="org.eclipse.elk.mrtree.positionConstraint",A7t="org.eclipse.elk.mrtree.weighting",L7t="org.eclipse.elk.mrtree.edgeRoutingMode",D7t="org.eclipse.elk.mrtree.searchOrder",Y2e="Position Constraint",Mu="org.eclipse.elk.mrtree",X2e="org.eclipse.elk.tree",Q2e="Processor arrange level",sT="org.eclipse.elk.alg.mrtree.p2order",Xl="org.eclipse.elk.alg.mrtree.p4route",M7t="org.eclipse.elk.alg.radial",xw=6.283185307179586,I7t="Before",O7t=5e-324,iU="After",N7t="org.eclipse.elk.alg.radial.intermediate",J2e="COMPACTION",Tlt="org.eclipse.elk.alg.radial.intermediate.compaction",Z2e={3:1,4:1,5:1,100:1},P7t="org.eclipse.elk.alg.radial.intermediate.optimization",Clt="No implementation is available for the layout option ",rA="org.eclipse.elk.alg.radial.options",F7t="org.eclipse.elk.radial.centerOnRoot",B7t="org.eclipse.elk.radial.orderId",R7t="org.eclipse.elk.radial.radius",sU="org.eclipse.elk.radial.rotate",Slt="org.eclipse.elk.radial.compactor",_lt="org.eclipse.elk.radial.compactionStepSize",j7t="org.eclipse.elk.radial.sorter",$7t="org.eclipse.elk.radial.wedgeCriteria",z7t="org.eclipse.elk.radial.optimizationCriteria",Alt="org.eclipse.elk.radial.rotation.targetAngle",Llt="org.eclipse.elk.radial.rotation.computeAdditionalWedgeSpace",q7t="org.eclipse.elk.radial.rotation.outgoingEdgeAngles",twe="Compaction",H7t="rotation",zh="org.eclipse.elk.radial",ewe="org.eclipse.elk.alg.radial.p1position.wedge",V7t="org.eclipse.elk.alg.radial.sorting",nwe=5.497787143782138,rwe=3.9269908169872414,iwe=2.356194490192345,swe="org.eclipse.elk.alg.rectpacking",aU="org.eclipse.elk.alg.rectpacking.intermediate",Dlt="org.eclipse.elk.alg.rectpacking.options",U7t="org.eclipse.elk.rectpacking.trybox",G7t="org.eclipse.elk.rectpacking.currentPosition",K7t="org.eclipse.elk.rectpacking.desiredPosition",W7t="org.eclipse.elk.rectpacking.inNewRow",Y7t="org.eclipse.elk.rectpacking.widthApproximation.strategy",X7t="org.eclipse.elk.rectpacking.widthApproximation.targetWidth",Q7t="org.eclipse.elk.rectpacking.widthApproximation.optimizationGoal",J7t="org.eclipse.elk.rectpacking.widthApproximation.lastPlaceShift",Z7t="org.eclipse.elk.rectpacking.packing.strategy",tTt="org.eclipse.elk.rectpacking.packing.compaction.rowHeightReevaluation",eTt="org.eclipse.elk.rectpacking.packing.compaction.iterations",nTt="org.eclipse.elk.rectpacking.whiteSpaceElimination.strategy",Mlt="widthApproximation",awe="Compaction Strategy",owe="packing.compaction",Ol="org.eclipse.elk.rectpacking",aT="org.eclipse.elk.alg.rectpacking.p1widthapproximation",oU="org.eclipse.elk.alg.rectpacking.p2packing",cwe="No Compaction",rTt="org.eclipse.elk.alg.rectpacking.p3whitespaceelimination",SN="org.eclipse.elk.alg.rectpacking.util",cU="No implementation available for ",d3="org.eclipse.elk.alg.spore",g3="org.eclipse.elk.alg.spore.options",uv="org.eclipse.elk.sporeCompaction",Ilt="org.eclipse.elk.underlyingLayoutAlgorithm",iTt="org.eclipse.elk.processingOrder.treeConstruction",sTt="org.eclipse.elk.processingOrder.spanningTreeCostFunction",Olt="org.eclipse.elk.processingOrder.preferredRoot",Nlt="org.eclipse.elk.processingOrder.rootSelection",Plt="org.eclipse.elk.structure.structureExtractionStrategy",aTt="org.eclipse.elk.compaction.compactionStrategy",oTt="org.eclipse.elk.compaction.orthogonal",cTt="org.eclipse.elk.overlapRemoval.maxIterations",uTt="org.eclipse.elk.overlapRemoval.runScanline",Flt="processingOrder",uwe="overlapRemoval",oT="org.eclipse.elk.sporeOverlap",lwe="org.eclipse.elk.alg.spore.p1structure",Blt="org.eclipse.elk.alg.spore.p2processingorder",Rlt="org.eclipse.elk.alg.spore.p3execution",hwe="Topdown Layout",fwe="Invalid index: ",cT="org.eclipse.elk.core.alg",L5={341:1},p3={294:1},dwe="Make sure its type is registered with the ",lTt=" utility class.",uT="true",jlt="false",gwe="Couldn't clone property '",lv=.05,Nl="org.eclipse.elk.core.options",pwe=1.2999999523162842,hv="org.eclipse.elk.box",hTt="org.eclipse.elk.expandNodes",fTt="org.eclipse.elk.box.packingMode",bwe="org.eclipse.elk.algorithm",wwe="org.eclipse.elk.resolvedAlgorithm",dTt="org.eclipse.elk.bendPoints",KSn="org.eclipse.elk.labelManager",mwe="org.eclipse.elk.scaleFactor",vwe="org.eclipse.elk.childAreaWidth",ywe="org.eclipse.elk.childAreaHeight",xwe="org.eclipse.elk.animate",kwe="org.eclipse.elk.animTimeFactor",Ewe="org.eclipse.elk.layoutAncestors",Twe="org.eclipse.elk.maxAnimTime",Cwe="org.eclipse.elk.minAnimTime",Swe="org.eclipse.elk.progressBar",_we="org.eclipse.elk.validateGraph",Awe="org.eclipse.elk.validateOptions",Lwe="org.eclipse.elk.zoomToFit",WSn="org.eclipse.elk.font.name",Dwe="org.eclipse.elk.font.size",gTt="org.eclipse.elk.topdown.sizeApproximator",pTt="org.eclipse.elk.topdown.scaleCap",Mwe="org.eclipse.elk.edge.type",Iwe="partitioning",Owe="nodeLabels",uU="portAlignment",$lt="nodeSize",zlt="port",bTt="portLabels",_N="topdown",Nwe="insideSelfLoops",iA="org.eclipse.elk.fixed",lU="org.eclipse.elk.random",wTt={3:1,34:1,22:1,347:1},Pwe="port must have a parent node to calculate the port side",Fwe="The edge needs to have exactly one edge section. Found: ",sA="org.eclipse.elk.core.util.adapters",qh="org.eclipse.emf.ecore",D5="org.eclipse.elk.graph",Bwe="EMapPropertyHolder",Rwe="ElkBendPoint",jwe="ElkGraphElement",$we="ElkConnectableShape",mTt="ElkEdge",zwe="ElkEdgeSection",qwe="EModelElement",Hwe="ENamedElement",vTt="ElkLabel",yTt="ElkNode",xTt="ElkPort",Vwe={94:1,93:1},Pk="org.eclipse.emf.common.notify.impl",Jb="The feature '",aA="' is not a valid changeable feature",Uwe="Expecting null",qlt="' is not a valid feature",Gwe="The feature ID",Kwe=" is not a valid feature ID",Fc=32768,Wwe={110:1,94:1,93:1,58:1,54:1,99:1},Rn="org.eclipse.emf.ecore.impl",kw="org.eclipse.elk.graph.impl",oA="Recursive containment not allowed for ",lT="The datatype '",fv="' is not a valid classifier",Hlt="The value '",M5={195:1,3:1,4:1},Vlt="The class '",hT="http://www.eclipse.org/elk/ElkGraph",kTt="property",cA="value",Ult="source",Ywe="properties",Xwe="identifier",Glt="height",Klt="width",Wlt="parent",Ylt="text",Xlt="children",Qwe="hierarchical",ETt="sources",Qlt="targets",TTt="sections",hU="bendPoints",CTt="outgoingShape",STt="incomingShape",_Tt="outgoingSections",ATt="incomingSections",oo="org.eclipse.emf.common.util",LTt="Severe implementation error in the Json to ElkGraph importer.",a0="id",Ba="org.eclipse.elk.graph.json",DTt="Unhandled parameter types: ",Jwe="startPoint",Zwe="An edge must have at least one source and one target (edge id: '",fT="').",tme="Referenced edge section does not exist: ",eme=" (edge id: '",MTt="target",nme="sourcePoint",rme="targetPoint",fU="group",pi="name",ime="connectableShape cannot be null",sme="edge cannot be null",Jlt="Passed edge is not 'simple'.",dU="org.eclipse.elk.graph.util",AN="The 'no duplicates' constraint is violated",Zlt="targetIndex=",Ew=", size=",tht="sourceIndex=",o0={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1},eht={3:1,4:1,20:1,31:1,56:1,16:1,51:1,15:1,59:1,70:1,66:1,61:1,596:1},gU="logging",ame="measureExecutionTime",ome="parser.parse.1",cme="parser.parse.2",pU="parser.next.1",nht="parser.next.2",ume="parser.next.3",lme="parser.next.4",Tw="parser.factor.1",ITt="parser.factor.2",hme="parser.factor.3",fme="parser.factor.4",dme="parser.factor.5",gme="parser.factor.6",pme="parser.atom.1",bme="parser.atom.2",wme="parser.atom.3",OTt="parser.atom.4",rht="parser.atom.5",NTt="parser.cc.1",bU="parser.cc.2",mme="parser.cc.3",vme="parser.cc.5",PTt="parser.cc.6",FTt="parser.cc.7",iht="parser.cc.8",yme="parser.ope.1",xme="parser.ope.2",kme="parser.ope.3",zp="parser.descape.1",Eme="parser.descape.2",Tme="parser.descape.3",Cme="parser.descape.4",Sme="parser.descape.5",Hh="parser.process.1",_me="parser.quantifier.1",Ame="parser.quantifier.2",Lme="parser.quantifier.3",Dme="parser.quantifier.4",BTt="parser.quantifier.5",Mme="org.eclipse.emf.common.notify",RTt={424:1,686:1},Ime={3:1,4:1,20:1,31:1,56:1,16:1,15:1,70:1,61:1},LN={378:1,152:1},uA="index=",sht={3:1,4:1,5:1,129:1},Ome={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,61:1},jTt={3:1,6:1,4:1,5:1,198:1},Nme={3:1,4:1,5:1,173:1,379:1},Pme=";/?:@&=+$,",Fme="invalid authority: ",Bme="EAnnotation",Rme="ETypedElement",jme="EStructuralFeature",$me="EAttribute",zme="EClassifier",qme="EEnumLiteral",Hme="EGenericType",Vme="EOperation",Ume="EParameter",Gme="EReference",Kme="ETypeParameter",Yi="org.eclipse.emf.ecore.util",aht={79:1},$Tt={3:1,20:1,16:1,15:1,61:1,597:1,79:1,71:1,97:1},Wme="org.eclipse.emf.ecore.util.FeatureMap$Entry",ol=8192,b3=2048,lA="byte",wU="char",hA="double",fA="float",dA="int",gA="long",pA="short",Yme="java.lang.Object",I5={3:1,4:1,5:1,254:1},zTt={3:1,4:1,5:1,688:1},Xme={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,71:1},ic={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,79:1,71:1,97:1},DN="mixed",ti="http:///org/eclipse/emf/ecore/util/ExtendedMetaData",lf="kind",Qme={3:1,4:1,5:1,689:1},qTt={3:1,4:1,20:1,31:1,56:1,16:1,15:1,70:1,61:1,79:1,71:1,97:1},mU={20:1,31:1,56:1,16:1,15:1,61:1,71:1},vU={51:1,128:1,287:1},yU={76:1,343:1},xU="The value of type '",kU="' must be of type '",O5=1352,hf="http://www.eclipse.org/emf/2002/Ecore",EU=-32768,dv="constraints",Ka="baseType",Jme="getEStructuralFeature",Zme="getFeatureID",bA="feature",tve="getOperationID",HTt="operation",eve="defaultValue",nve="eTypeParameters",rve="isInstance",ive="getEEnumLiteral",sve="eContainingClass",li={57:1},ave={3:1,4:1,5:1,124:1},ove="org.eclipse.emf.ecore.resource",cve={94:1,93:1,599:1,2034:1},oht="org.eclipse.emf.ecore.resource.impl",VTt="unspecified",MN="simple",TU="attribute",uve="attributeWildcard",CU="element",cht="elementWildcard",I1="collapse",uht="itemType",SU="namespace",IN="##targetNamespace",ff="whiteSpace",UTt="wildcards",Cw="http://www.eclipse.org/emf/2003/XMLType",lht="##any",dT="uninitialized",ON="The multiplicity constraint is violated",_U="org.eclipse.emf.ecore.xml.type",lve="ProcessingInstruction",hve="SimpleAnyType",fve="XMLTypeDocumentRoot",$s="org.eclipse.emf.ecore.xml.type.impl",NN="INF",dve="processing",gve="ENTITIES_._base",GTt="minLength",KTt="ENTITY",AU="NCName",pve="IDREFS_._base",WTt="integer",hht="token",fht="pattern",bve="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",YTt="\\i\\c*",wve="[\\i-[:]][\\c-[:]]*",mve="nonPositiveInteger",PN="maxInclusive",XTt="NMTOKEN",vve="NMTOKENS_._base",QTt="nonNegativeInteger",FN="minInclusive",yve="normalizedString",xve="unsignedByte",kve="unsignedInt",Eve="18446744073709551615",Tve="unsignedShort",Cve="processingInstruction",qp="org.eclipse.emf.ecore.xml.type.internal",gT=1114111,Sve="Internal Error: shorthands: \\u",wA="xml:isDigit",dht="xml:isWord",ght="xml:isSpace",pht="xml:isNameChar",bht="xml:isInitialNameChar",_ve="09٠٩۰۹०९০৯੦੯૦૯୦୯௧௯౦౯೦೯൦൯๐๙໐໙༠༩",Ave="AZazÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁΆΆΈΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆאתװײءغفيٱڷںھۀێېۓەەۥۦअहऽऽक़ॡঅঌএঐওনপরললশহড়ঢ়য়ৡৰৱਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹਖ਼ੜਫ਼ਫ਼ੲੴઅઋઍઍએઑઓનપરલળવહઽઽૠૠଅଌଏଐଓନପରଲଳଶହଽଽଡ଼ଢ଼ୟୡஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹఅఌఎఐఒనపళవహౠౡಅಌಎಐಒನಪಳವಹೞೞೠೡഅഌഎഐഒനപഹൠൡกฮะะาำเๅກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະະາຳຽຽເໄཀཇཉཀྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼΩΩKÅ℮℮ↀↂ〇〇〡〩ぁゔァヺㄅㄬ一龥가힣",Lve="Private Use",wht="ASSIGNED",mht="\0€ÿĀſƀɏɐʯʰ˿̀ͯͰϿЀӿ԰֏֐׿؀ۿ܀ݏހ޿ऀॿঀ৿਀੿઀૿଀୿஀௿ఀ౿ಀ೿ഀൿ඀෿฀๿຀໿ༀ࿿က႟Ⴀჿᄀᇿሀ፿Ꭰ᏿᐀ᙿ ᚟ᚠ᛿ក៿᠀᢯Ḁỿἀ῿ ⁰₟₠⃏⃐⃿℀⅏⅐↏←⇿∀⋿⌀⏿␀␿⑀⑟①⓿─╿▀▟■◿☀⛿✀➿⠀⣿⺀⻿⼀⿟⿰⿿ 〿぀ゟ゠ヿ㄀ㄯ㄰㆏㆐㆟ㆠㆿ㈀㋿㌀㏿㐀䶵一鿿ꀀ꒏꒐꓏가힣豈﫿ffﭏﭐ﷿︠︯︰﹏﹐﹯ﹰ﻾\uFEFF\uFEFF＀￯",JTt="UNASSIGNED",pT={3:1,122:1},Dve="org.eclipse.emf.ecore.xml.type.util",LU={3:1,4:1,5:1,381:1},ZTt="org.eclipse.xtext.xbase.lib",Mve="Cannot add elements to a Range",Ive="Cannot set elements in a Range",Ove="Cannot remove elements from a Range",Nve="user.agent",l,DU,vht;b.goog=b.goog||{},b.goog.global=b.goog.global||b,DU={},D(1,null,{},S),l.Fb=function(e){return MQt(this,e)},l.Gb=function(){return this.Rm},l.Hb=function(){return Em(this)},l.Ib=function(){var e;return V2(Wl(this))+"@"+(e=$i(this)>>>0,e.toString(16))},l.equals=function(t){return this.Fb(t)},l.hashCode=function(){return this.Hb()},l.toString=function(){return this.Ib()};var Pve,Fve,Bve;D(296,1,{296:1,2124:1},Y4t),l.ve=function(e){var n;return n=new Y4t,n.i=4,e>1?n.c=Zne(this,e-1):n.c=this,n},l.we=function(){return wg(this),this.b},l.xe=function(){return V2(this)},l.ye=function(){return wg(this),this.k},l.ze=function(){return(this.i&4)!=0},l.Ae=function(){return(this.i&1)!=0},l.Ib=function(){return a4t(this)},l.i=0;var aa=I(Sc,"Object",1),t9t=I(Sc,"Class",296);D(2096,1,tN),I(eN,"Optional",2096),D(1191,2096,tN,_),l.Fb=function(e){return e===this},l.Hb=function(){return 2040732332},l.Ib=function(){return"Optional.absent()"},l.Jb=function(e){return Hr(e),UC(),yht};var yht;I(eN,"Absent",1191),D(636,1,{},ert),I(eN,"Joiner",636);var YSn=os(eN,"Predicate");D(589,1,{178:1,589:1,3:1,46:1},Rj),l.Mb=function(e){return Zce(this,e)},l.Lb=function(e){return Zce(this,e)},l.Fb=function(e){var n;return Lt(e,589)?(n=u(e,589),U6t(this.a,n.a)):!1},l.Hb=function(){return e5t(this.a)+306654252},l.Ib=function(){return P4n(this.a)},I(eN,"Predicates/AndPredicate",589),D(419,2096,{419:1,3:1},FC),l.Fb=function(e){var n;return Lt(e,419)?(n=u(e,419),Ti(this.a,n.a)):!1},l.Hb=function(){return 1502476572+$i(this.a)},l.Ib=function(){return cbe+this.a+")"},l.Jb=function(e){return new FC(Qz(e.Kb(this.a),"the Function passed to Optional.transform() must not return null."))},I(eN,"Present",419),D(204,1,V7),l.Nb=function(e){Na(this,e)},l.Qb=function(){yWt()},I(on,"UnmodifiableIterator",204),D(2076,204,U7),l.Qb=function(){yWt()},l.Rb=function(e){throw at(new Vr)},l.Wb=function(e){throw at(new Vr)},I(on,"UnmodifiableListIterator",2076),D(399,2076,U7),l.Ob=function(){return this.c0},l.Pb=function(){if(this.c>=this.d)throw at(new cc);return this.Xb(this.c++)},l.Tb=function(){return this.c},l.Ub=function(){if(this.c<=0)throw at(new cc);return this.Xb(--this.c)},l.Vb=function(){return this.c-1},l.c=0,l.d=0,I(on,"AbstractIndexedListIterator",399),D(713,204,V7),l.Ob=function(){return rat(this)},l.Pb=function(){return t4t(this)},l.e=1,I(on,"AbstractIterator",713),D(2084,1,{229:1}),l.Zb=function(){var e;return e=this.f,e||(this.f=this.ac())},l.Fb=function(e){return Cat(this,e)},l.Hb=function(){return $i(this.Zb())},l.dc=function(){return this.gc()==0},l.ec=function(){return U6(this)},l.Ib=function(){return rc(this.Zb())},I(on,"AbstractMultimap",2084),D(742,2084,pw),l.$b=function(){qq(this)},l._b=function(e){return jWt(this,e)},l.ac=function(){return new vE(this,this.c)},l.ic=function(e){return this.hc()},l.bc=function(){return new W4(this,this.c)},l.jc=function(){return this.mc(this.hc())},l.kc=function(){return new iWt(this)},l.lc=function(){return Not(this.c.vc().Nc(),new F,64,this.d)},l.cc=function(e){return Ai(this,e)},l.fc=function(e){return hO(this,e)},l.gc=function(){return this.d},l.mc=function(e){return mn(),new Ta(e)},l.nc=function(){return new rWt(this)},l.oc=function(){return Not(this.c.Cc().Nc(),new M,64,this.d)},l.pc=function(e,n){return new yq(this,e,n,null)},l.d=0,I(on,"AbstractMapBasedMultimap",742),D(1696,742,pw),l.hc=function(){return new wu(this.a)},l.jc=function(){return mn(),mn(),co},l.cc=function(e){return u(Ai(this,e),15)},l.fc=function(e){return u(hO(this,e),15)},l.Zb=function(){return Q6(this)},l.Fb=function(e){return Cat(this,e)},l.qc=function(e){return u(Ai(this,e),15)},l.rc=function(e){return u(hO(this,e),15)},l.mc=function(e){return ast(u(e,15))},l.pc=function(e,n){return aie(this,e,u(n,15),null)},I(on,"AbstractListMultimap",1696),D(748,1,wa),l.Nb=function(e){Na(this,e)},l.Ob=function(){return this.c.Ob()||this.e.Ob()},l.Pb=function(){var e;return this.e.Ob()||(e=u(this.c.Pb(),44),this.b=e.ld(),this.a=u(e.md(),16),this.e=this.a.Kc()),this.sc(this.b,this.e.Pb())},l.Qb=function(){this.e.Qb(),u(nf(this.a),16).dc()&&this.c.Qb(),--this.d.d},I(on,"AbstractMapBasedMultimap/Itr",748),D(1129,748,wa,rWt),l.sc=function(e,n){return n},I(on,"AbstractMapBasedMultimap/1",1129),D(1130,1,{},M),l.Kb=function(e){return u(e,16).Nc()},I(on,"AbstractMapBasedMultimap/1methodref$spliterator$Type",1130),D(1131,748,wa,iWt),l.sc=function(e,n){return new bm(e,n)},I(on,"AbstractMapBasedMultimap/2",1131);var e9t=os(xr,"Map");D(2065,1,sv),l.wc=function(e){e_(this,e)},l.yc=function(e,n,r){return Vat(this,e,n,r)},l.$b=function(){this.vc().$b()},l.tc=function(e){return bot(this,e)},l._b=function(e){return!!Vxt(this,e,!1)},l.uc=function(e){var n,r,s;for(r=this.vc().Kc();r.Ob();)if(n=u(r.Pb(),44),s=n.md(),$t(e)===$t(s)||e!=null&&Ti(e,s))return!0;return!1},l.Fb=function(e){var n,r,s;if(e===this)return!0;if(!Lt(e,85)||(s=u(e,85),this.gc()!=s.gc()))return!1;for(r=s.vc().Kc();r.Ob();)if(n=u(r.Pb(),44),!this.tc(n))return!1;return!0},l.xc=function(e){return Ko(Vxt(this,e,!1))},l.Hb=function(){return U4t(this.vc())},l.dc=function(){return this.gc()==0},l.ec=function(){return new cr(this)},l.zc=function(e,n){throw at(new hp("Put not supported on this map"))},l.Ac=function(e){t_(this,e)},l.Bc=function(e){return Ko(Vxt(this,e,!0))},l.gc=function(){return this.vc().gc()},l.Ib=function(){return hfe(this)},l.Cc=function(){return new si(this)},I(xr,"AbstractMap",2065),D(2085,2065,sv),l.bc=function(){return new v$(this)},l.vc=function(){return nee(this)},l.ec=function(){var e;return e=this.g,e||(this.g=this.bc())},l.Cc=function(){var e;return e=this.i,e||(this.i=new LYt(this))},I(on,"Maps/ViewCachingAbstractMap",2085),D(402,2085,sv,vE),l.xc=function(e){return tgn(this,e)},l.Bc=function(e){return Ebn(this,e)},l.$b=function(){this.d==this.e.c?this.e.$b():Az(new ryt(this))},l._b=function(e){return Bue(this.d,e)},l.Ec=function(){return new jj(this)},l.Dc=function(){return this.Ec()},l.Fb=function(e){return this===e||Ti(this.d,e)},l.Hb=function(){return $i(this.d)},l.ec=function(){return this.e.ec()},l.gc=function(){return this.d.gc()},l.Ib=function(){return rc(this.d)},I(on,"AbstractMapBasedMultimap/AsMap",402);var gh=os(Sc,"Iterable");D(31,1,o3),l.Jc=function(e){Fa(this,e)},l.Lc=function(){return this.Oc()},l.Nc=function(){return new gn(this,0)},l.Oc=function(){return new ln(null,this.Nc())},l.Fc=function(e){throw at(new hp("Add not supported on this collection"))},l.Gc=function(e){return Ma(this,e)},l.$b=function(){Hyt(this)},l.Hc=function(e){return Ky(this,e,!1)},l.Ic=function(e){return rO(this,e)},l.dc=function(){return this.gc()==0},l.Mc=function(e){return Ky(this,e,!0)},l.Pc=function(){return dyt(this)},l.Qc=function(e){return v_(this,e)},l.Ib=function(){return Hb(this)},I(xr,"AbstractCollection",31);var df=os(xr,"Set");D(dd,31,sl),l.Nc=function(){return new gn(this,1)},l.Fb=function(e){return Ale(this,e)},l.Hb=function(){return U4t(this)},I(xr,"AbstractSet",dd),D(2068,dd,sl),I(on,"Sets/ImprovedAbstractSet",2068),D(2069,2068,sl),l.$b=function(){this.Rc().$b()},l.Hc=function(e){return fle(this,e)},l.dc=function(){return this.Rc().dc()},l.Mc=function(e){var n;return this.Hc(e)&&Lt(e,44)?(n=u(e,44),this.Rc().ec().Mc(n.ld())):!1},l.gc=function(){return this.Rc().gc()},I(on,"Maps/EntrySet",2069),D(1127,2069,sl,jj),l.Hc=function(e){return m5t(this.a.d.vc(),e)},l.Kc=function(){return new ryt(this.a)},l.Rc=function(){return this.a},l.Mc=function(e){var n;return m5t(this.a.d.vc(),e)?(n=u(nf(u(e,44)),44),qdn(this.a.e,n.ld()),!0):!1},l.Nc=function(){return pI(this.a.d.vc().Nc(),new $j(this.a))},I(on,"AbstractMapBasedMultimap/AsMap/AsMapEntries",1127),D(1128,1,{},$j),l.Kb=function(e){return ise(this.a,u(e,44))},I(on,"AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type",1128),D(746,1,wa,ryt),l.Nb=function(e){Na(this,e)},l.Pb=function(){var e;return e=u(this.b.Pb(),44),this.a=u(e.md(),16),ise(this.c,e)},l.Ob=function(){return this.b.Ob()},l.Qb=function(){AE(!!this.a),this.b.Qb(),this.c.e.d-=this.a.gc(),this.a.$b(),this.a=null},I(on,"AbstractMapBasedMultimap/AsMap/AsMapIterator",746),D(542,2068,sl,v$),l.$b=function(){this.b.$b()},l.Hc=function(e){return this.b._b(e)},l.Jc=function(e){Hr(e),this.b.wc(new Uj(e))},l.dc=function(){return this.b.dc()},l.Kc=function(){return new GC(this.b.vc().Kc())},l.Mc=function(e){return this.b._b(e)?(this.b.Bc(e),!0):!1},l.gc=function(){return this.b.gc()},I(on,"Maps/KeySet",542),D(327,542,sl,W4),l.$b=function(){var e;Az((e=this.b.vc().Kc(),new _wt(this,e)))},l.Ic=function(e){return this.b.ec().Ic(e)},l.Fb=function(e){return this===e||Ti(this.b.ec(),e)},l.Hb=function(){return $i(this.b.ec())},l.Kc=function(){var e;return e=this.b.vc().Kc(),new _wt(this,e)},l.Mc=function(e){var n,r;return r=0,n=u(this.b.Bc(e),16),n&&(r=n.gc(),n.$b(),this.a.d-=r),r>0},l.Nc=function(){return this.b.ec().Nc()},I(on,"AbstractMapBasedMultimap/KeySet",327),D(747,1,wa,_wt),l.Nb=function(e){Na(this,e)},l.Ob=function(){return this.c.Ob()},l.Pb=function(){return this.a=u(this.c.Pb(),44),this.a.ld()},l.Qb=function(){var e;AE(!!this.a),e=u(this.a.md(),16),this.c.Qb(),this.b.a.d-=e.gc(),e.$b(),this.a=null},I(on,"AbstractMapBasedMultimap/KeySet/1",747),D(502,402,{85:1,133:1},cI),l.bc=function(){return this.Sc()},l.ec=function(){return this.Uc()},l.Sc=function(){return new FM(this.c,this.Wc())},l.Tc=function(){return this.Wc().Tc()},l.Uc=function(){var e;return e=this.b,e||(this.b=this.Sc())},l.Vc=function(){return this.Wc().Vc()},l.Wc=function(){return u(this.d,133)},I(on,"AbstractMapBasedMultimap/SortedAsMap",502),D(446,502,h8t,SS),l.bc=function(){return new mE(this.a,u(u(this.d,133),139))},l.Sc=function(){return new mE(this.a,u(u(this.d,133),139))},l.ec=function(){var e;return e=this.b,u(e||(this.b=new mE(this.a,u(u(this.d,133),139))),277)},l.Uc=function(){var e;return e=this.b,u(e||(this.b=new mE(this.a,u(u(this.d,133),139))),277)},l.Wc=function(){return u(u(this.d,133),139)},l.Xc=function(e){return u(u(this.d,133),139).Xc(e)},l.Yc=function(e){return u(u(this.d,133),139).Yc(e)},l.Zc=function(e,n){return new SS(this.a,u(u(this.d,133),139).Zc(e,n))},l.$c=function(e){return u(u(this.d,133),139).$c(e)},l._c=function(e){return u(u(this.d,133),139)._c(e)},l.ad=function(e,n){return new SS(this.a,u(u(this.d,133),139).ad(e,n))},I(on,"AbstractMapBasedMultimap/NavigableAsMap",446),D(501,327,ube,FM),l.Nc=function(){return this.b.ec().Nc()},I(on,"AbstractMapBasedMultimap/SortedKeySet",501),D(401,501,f8t,mE),I(on,"AbstractMapBasedMultimap/NavigableKeySet",401),D(551,31,o3,yq),l.Fc=function(e){var n,r;return Ll(this),r=this.d.dc(),n=this.d.Fc(e),n&&(++this.f.d,r&&fI(this)),n},l.Gc=function(e){var n,r,s;return e.dc()?!1:(s=(Ll(this),this.d.gc()),n=this.d.Gc(e),n&&(r=this.d.gc(),this.f.d+=r-s,s==0&&fI(this)),n)},l.$b=function(){var e;e=(Ll(this),this.d.gc()),e!=0&&(this.d.$b(),this.f.d-=e,Nz(this))},l.Hc=function(e){return Ll(this),this.d.Hc(e)},l.Ic=function(e){return Ll(this),this.d.Ic(e)},l.Fb=function(e){return e===this?!0:(Ll(this),Ti(this.d,e))},l.Hb=function(){return Ll(this),$i(this.d)},l.Kc=function(){return Ll(this),new $vt(this)},l.Mc=function(e){var n;return Ll(this),n=this.d.Mc(e),n&&(--this.f.d,Nz(this)),n},l.gc=function(){return wQt(this)},l.Nc=function(){return Ll(this),this.d.Nc()},l.Ib=function(){return Ll(this),rc(this.d)},I(on,"AbstractMapBasedMultimap/WrappedCollection",551);var Vh=os(xr,"List");D(744,551,{20:1,31:1,16:1,15:1},byt),l.jd=function(e){rw(this,e)},l.Nc=function(){return Ll(this),this.d.Nc()},l.bd=function(e,n){var r;Ll(this),r=this.d.dc(),u(this.d,15).bd(e,n),++this.a.d,r&&fI(this)},l.cd=function(e,n){var r,s,o;return n.dc()?!1:(o=(Ll(this),this.d.gc()),r=u(this.d,15).cd(e,n),r&&(s=this.d.gc(),this.a.d+=s-o,o==0&&fI(this)),r)},l.Xb=function(e){return Ll(this),u(this.d,15).Xb(e)},l.dd=function(e){return Ll(this),u(this.d,15).dd(e)},l.ed=function(){return Ll(this),new KQt(this)},l.fd=function(e){return Ll(this),new bne(this,e)},l.gd=function(e){var n;return Ll(this),n=u(this.d,15).gd(e),--this.a.d,Nz(this),n},l.hd=function(e,n){return Ll(this),u(this.d,15).hd(e,n)},l.kd=function(e,n){return Ll(this),aie(this.a,this.e,u(this.d,15).kd(e,n),this.b?this.b:this)},I(on,"AbstractMapBasedMultimap/WrappedList",744),D(1126,744,{20:1,31:1,16:1,15:1,59:1},FJt),I(on,"AbstractMapBasedMultimap/RandomAccessWrappedList",1126),D(628,1,wa,$vt),l.Nb=function(e){Na(this,e)},l.Ob=function(){return jE(this),this.b.Ob()},l.Pb=function(){return jE(this),this.b.Pb()},l.Qb=function(){yJt(this)},I(on,"AbstractMapBasedMultimap/WrappedCollection/WrappedIterator",628),D(745,628,P0,KQt,bne),l.Qb=function(){yJt(this)},l.Rb=function(e){var n;n=wQt(this.a)==0,(jE(this),u(this.b,128)).Rb(e),++this.a.a.d,n&&fI(this.a)},l.Sb=function(){return(jE(this),u(this.b,128)).Sb()},l.Tb=function(){return(jE(this),u(this.b,128)).Tb()},l.Ub=function(){return(jE(this),u(this.b,128)).Ub()},l.Vb=function(){return(jE(this),u(this.b,128)).Vb()},l.Wb=function(e){(jE(this),u(this.b,128)).Wb(e)},I(on,"AbstractMapBasedMultimap/WrappedList/WrappedListIterator",745),D(743,551,ube,svt),l.Nc=function(){return Ll(this),this.d.Nc()},I(on,"AbstractMapBasedMultimap/WrappedSortedSet",743),D(1125,743,f8t,qQt),I(on,"AbstractMapBasedMultimap/WrappedNavigableSet",1125),D(1124,551,sl,rZt),l.Nc=function(){return Ll(this),this.d.Nc()},I(on,"AbstractMapBasedMultimap/WrappedSet",1124),D(1133,1,{},F),l.Kb=function(e){return Jdn(u(e,44))},I(on,"AbstractMapBasedMultimap/lambda$1$Type",1133),D(1132,1,{},mnt),l.Kb=function(e){return new bm(this.a,e)},I(on,"AbstractMapBasedMultimap/lambda$2$Type",1132);var Sw=os(xr,"Map/Entry");D(358,1,Fct),l.Fb=function(e){var n;return Lt(e,44)?(n=u(e,44),Ud(this.ld(),n.ld())&&Ud(this.md(),n.md())):!1},l.Hb=function(){var e,n;return e=this.ld(),n=this.md(),(e==null?0:$i(e))^(n==null?0:$i(n))},l.nd=function(e){throw at(new Vr)},l.Ib=function(){return this.ld()+"="+this.md()},I(on,lbe,358),D(2086,31,o3),l.$b=function(){this.od().$b()},l.Hc=function(e){var n;return Lt(e,44)?(n=u(e,44),v1n(this.od(),n.ld(),n.md())):!1},l.Mc=function(e){var n;return Lt(e,44)?(n=u(e,44),zre(this.od(),n.ld(),n.md())):!1},l.gc=function(){return this.od().d},I(on,"Multimaps/Entries",2086),D(749,2086,o3,qj),l.Kc=function(){return this.a.kc()},l.od=function(){return this.a},l.Nc=function(){return this.a.lc()},I(on,"AbstractMultimap/Entries",749),D(750,749,sl,iwt),l.Nc=function(){return this.a.lc()},l.Fb=function(e){return l6t(this,e)},l.Hb=function(){return Joe(this)},I(on,"AbstractMultimap/EntrySet",750),D(751,31,o3,bb),l.$b=function(){this.a.$b()},l.Hc=function(e){return wbn(this.a,e)},l.Kc=function(){return this.a.nc()},l.gc=function(){return this.a.d},l.Nc=function(){return this.a.oc()},I(on,"AbstractMultimap/Values",751),D(2087,31,{849:1,20:1,31:1,16:1}),l.Jc=function(e){Hr(e),X4(this).Jc(new Tnt(e))},l.Nc=function(){var e;return e=X4(this).Nc(),Not(e,new wt,64|e.yd()&1296,this.a.d)},l.Fc=function(e){return fwt(),!0},l.Gc=function(e){return Hr(this),Hr(e),Lt(e,552)?k1n(u(e,849)):!e.dc()&&Wst(this,e.Kc())},l.Hc=function(e){var n;return n=u(Gy(Q6(this.a),e),16),(n?n.gc():0)>0},l.Fb=function(e){return Vxn(this,e)},l.Hb=function(){return $i(X4(this))},l.dc=function(){return X4(this).dc()},l.Mc=function(e){return C1e(this,e,1)>0},l.Ib=function(){return rc(X4(this))},I(on,"AbstractMultiset",2087),D(2089,2068,sl),l.$b=function(){qq(this.a.a)},l.Hc=function(e){var n,r;return Lt(e,503)?(r=u(e,425),u(r.a.md(),16).gc()<=0?!1:(n=gre(this.a,r.a.ld()),n==u(r.a.md(),16).gc())):!1},l.Mc=function(e){var n,r,s,o;return Lt(e,503)&&(r=u(e,425),n=r.a.ld(),s=u(r.a.md(),16).gc(),s!=0)?(o=this.a,N5n(o,n,s)):!1},I(on,"Multisets/EntrySet",2089),D(1139,2089,sl,vnt),l.Kc=function(){return new uWt(nee(Q6(this.a.a)).Kc())},l.gc=function(){return Q6(this.a.a).gc()},I(on,"AbstractMultiset/EntrySet",1139),D(627,742,pw),l.hc=function(){return this.pd()},l.jc=function(){return this.qd()},l.cc=function(e){return this.rd(e)},l.fc=function(e){return this.sd(e)},l.Zb=function(){var e;return e=this.f,e||(this.f=this.ac())},l.qd=function(){return mn(),mn(),FU},l.Fb=function(e){return Cat(this,e)},l.rd=function(e){return u(Ai(this,e),21)},l.sd=function(e){return u(hO(this,e),21)},l.mc=function(e){return mn(),new dE(u(e,21))},l.pc=function(e,n){return new rZt(this,e,u(n,21))},I(on,"AbstractSetMultimap",627),D(1723,627,pw),l.hc=function(){return new pp(this.b)},l.pd=function(){return new pp(this.b)},l.jc=function(){return Byt(new pp(this.b))},l.qd=function(){return Byt(new pp(this.b))},l.cc=function(e){return u(u(Ai(this,e),21),87)},l.rd=function(e){return u(u(Ai(this,e),21),87)},l.fc=function(e){return u(u(hO(this,e),21),87)},l.sd=function(e){return u(u(hO(this,e),21),87)},l.mc=function(e){return Lt(e,277)?Byt(u(e,277)):(mn(),new Vmt(u(e,87)))},l.Zb=function(){var e;return e=this.f,e||(this.f=Lt(this.c,139)?new SS(this,u(this.c,139)):Lt(this.c,133)?new cI(this,u(this.c,133)):new vE(this,this.c))},l.pc=function(e,n){return Lt(n,277)?new qQt(this,e,u(n,277)):new svt(this,e,u(n,87))},I(on,"AbstractSortedSetMultimap",1723),D(1724,1723,pw),l.Zb=function(){var e;return e=this.f,u(u(e||(this.f=Lt(this.c,139)?new SS(this,u(this.c,139)):Lt(this.c,133)?new cI(this,u(this.c,133)):new vE(this,this.c)),133),139)},l.ec=function(){var e;return e=this.i,u(u(e||(this.i=Lt(this.c,139)?new mE(this,u(this.c,139)):Lt(this.c,133)?new FM(this,u(this.c,133)):new W4(this,this.c)),87),277)},l.bc=function(){return Lt(this.c,139)?new mE(this,u(this.c,139)):Lt(this.c,133)?new FM(this,u(this.c,133)):new W4(this,this.c)},I(on,"AbstractSortedKeySortedSetMultimap",1724),D(2109,1,{2046:1}),l.Fb=function(e){return pyn(this,e)},l.Hb=function(){var e;return U4t((e=this.g,e||(this.g=new xM(this))))},l.Ib=function(){var e;return hfe((e=this.f,e||(this.f=new $mt(this))))},I(on,"AbstractTable",2109),D(679,dd,sl,xM),l.$b=function(){xWt()},l.Hc=function(e){var n,r;return Lt(e,478)?(n=u(e,697),r=u(Gy(See(this.a),Cb(n.c.e,n.b)),85),!!r&&m5t(r.vc(),new bm(Cb(n.c.c,n.a),ik(n.c,n.b,n.a)))):!1},l.Kc=function(){return vhn(this.a)},l.Mc=function(e){var n,r;return Lt(e,478)?(n=u(e,697),r=u(Gy(See(this.a),Cb(n.c.e,n.b)),85),!!r&&Xbn(r.vc(),new bm(Cb(n.c.c,n.a),ik(n.c,n.b,n.a)))):!1},l.gc=function(){return Lte(this.a)},l.Nc=function(){return C1n(this.a)},I(on,"AbstractTable/CellSet",679),D(2025,31,o3,xnt),l.$b=function(){xWt()},l.Hc=function(e){return o3n(this.a,e)},l.Kc=function(){return yhn(this.a)},l.gc=function(){return Lte(this.a)},l.Nc=function(){return $re(this.a)},I(on,"AbstractTable/Values",2025),D(1697,1696,pw),I(on,"ArrayListMultimapGwtSerializationDependencies",1697),D(520,1697,pw,irt,s3t),l.hc=function(){return new wu(this.a)},l.a=0,I(on,"ArrayListMultimap",520),D(678,2109,{678:1,2046:1,3:1},R1e),I(on,"ArrayTable",678),D(2021,399,U7,xJt),l.Xb=function(e){return new X4t(this.a,e)},I(on,"ArrayTable/1",2021),D(2022,1,{},bnt),l.td=function(e){return new X4t(this.a,e)},I(on,"ArrayTable/1methodref$getCell$Type",2022),D(2110,1,{697:1}),l.Fb=function(e){var n;return e===this?!0:Lt(e,478)?(n=u(e,697),Ud(Cb(this.c.e,this.b),Cb(n.c.e,n.b))&&Ud(Cb(this.c.c,this.a),Cb(n.c.c,n.a))&&Ud(ik(this.c,this.b,this.a),ik(n.c,n.b,n.a))):!1},l.Hb=function(){return lO(lt(ut(aa,1),Ln,1,5,[Cb(this.c.e,this.b),Cb(this.c.c,this.a),ik(this.c,this.b,this.a)]))},l.Ib=function(){return"("+Cb(this.c.e,this.b)+","+Cb(this.c.c,this.a)+")="+ik(this.c,this.b,this.a)},I(on,"Tables/AbstractCell",2110),D(478,2110,{478:1,697:1},X4t),l.a=0,l.b=0,l.d=0,I(on,"ArrayTable/2",478),D(2024,1,{},wnt),l.td=function(e){return hae(this.a,e)},I(on,"ArrayTable/2methodref$getValue$Type",2024),D(2023,399,U7,kJt),l.Xb=function(e){return hae(this.a,e)},I(on,"ArrayTable/3",2023),D(2077,2065,sv),l.$b=function(){Az(this.kc())},l.vc=function(){return new Vj(this)},l.lc=function(){return new ane(this.kc(),this.gc())},I(on,"Maps/IteratorBasedAbstractMap",2077),D(842,2077,sv),l.$b=function(){throw at(new Vr)},l._b=function(e){return $Wt(this.c,e)},l.kc=function(){return new EJt(this,this.c.b.c.gc())},l.lc=function(){return _it(this.c.b.c.gc(),16,new zj(this))},l.xc=function(e){var n;return n=u(_S(this.c,e),17),n?this.vd(n.a):null},l.dc=function(){return this.c.b.c.dc()},l.ec=function(){return Pit(this.c)},l.zc=function(e,n){var r;if(r=u(_S(this.c,e),17),!r)throw at(new zn(this.ud()+" "+e+" not in "+Pit(this.c)));return this.wd(r.a,n)},l.Bc=function(e){throw at(new Vr)},l.gc=function(){return this.c.b.c.gc()},I(on,"ArrayTable/ArrayMap",842),D(2020,1,{},zj),l.td=function(e){return Aee(this.a,e)},I(on,"ArrayTable/ArrayMap/0methodref$getEntry$Type",2020),D(2018,358,Fct,fYt),l.ld=function(){return Osn(this.a,this.b)},l.md=function(){return this.a.vd(this.b)},l.nd=function(e){return this.a.wd(this.b,e)},l.b=0,I(on,"ArrayTable/ArrayMap/1",2018),D(2019,399,U7,EJt),l.Xb=function(e){return Aee(this.a,e)},I(on,"ArrayTable/ArrayMap/2",2019),D(2017,842,sv,pee),l.ud=function(){return"Column"},l.vd=function(e){return ik(this.b,this.a,e)},l.wd=function(e,n){return Rce(this.b,this.a,e,n)},l.a=0,I(on,"ArrayTable/Row",2017),D(843,842,sv,$mt),l.vd=function(e){return new pee(this.a,e)},l.zc=function(e,n){return u(n,85),trn()},l.wd=function(e,n){return u(n,85),ern()},l.ud=function(){return"Row"},I(on,"ArrayTable/RowMap",843),D(1157,1,fh,dYt),l.Ad=function(e){return(this.a.yd()&-262&e)!=0},l.yd=function(){return this.a.yd()&-262},l.zd=function(){return this.a.zd()},l.Nb=function(e){this.a.Nb(new pYt(e,this.b))},l.Bd=function(e){return this.a.Bd(new gYt(e,this.b))},I(on,"CollectSpliterators/1",1157),D(1158,1,ir,gYt),l.Cd=function(e){this.a.Cd(this.b.Kb(e))},I(on,"CollectSpliterators/1/lambda$0$Type",1158),D(1159,1,ir,pYt),l.Cd=function(e){this.a.Cd(this.b.Kb(e))},I(on,"CollectSpliterators/1/lambda$1$Type",1159),D(1154,1,fh,RZt),l.Ad=function(e){return((16464|this.b)&e)!=0},l.yd=function(){return 16464|this.b},l.zd=function(){return this.a.zd()},l.Nb=function(e){this.a.Qe(new wYt(e,this.c))},l.Bd=function(e){return this.a.Re(new bYt(e,this.c))},l.b=0,I(on,"CollectSpliterators/1WithCharacteristics",1154),D(1155,1,nN,bYt),l.Dd=function(e){this.a.Cd(this.b.td(e))},I(on,"CollectSpliterators/1WithCharacteristics/lambda$0$Type",1155),D(1156,1,nN,wYt),l.Dd=function(e){this.a.Cd(this.b.td(e))},I(on,"CollectSpliterators/1WithCharacteristics/lambda$1$Type",1156),D(1150,1,fh),l.Ad=function(e){return(this.a&e)!=0},l.yd=function(){return this.a},l.zd=function(){return this.e&&(this.b=Amt(this.b,this.e.zd())),Amt(this.b,0)},l.Nb=function(e){this.e&&(this.e.Nb(e),this.e=null),this.c.Nb(new mYt(this,e)),this.b=0},l.Bd=function(e){for(;;){if(this.e&&this.e.Bd(e))return bS(this.b,rN)&&(this.b=sf(this.b,1)),!0;if(this.e=null,!this.c.Bd(new knt(this)))return!1}},l.a=0,l.b=0,I(on,"CollectSpliterators/FlatMapSpliterator",1150),D(1152,1,ir,knt),l.Cd=function(e){Man(this.a,e)},I(on,"CollectSpliterators/FlatMapSpliterator/lambda$0$Type",1152),D(1153,1,ir,mYt),l.Cd=function(e){nhn(this.a,this.b,e)},I(on,"CollectSpliterators/FlatMapSpliterator/lambda$1$Type",1153),D(1151,1150,fh,iie),I(on,"CollectSpliterators/FlatMapSpliteratorOfObject",1151),D(253,1,Bct),l.Fd=function(e){return this.Ed(u(e,253))},l.Ed=function(e){var n;return e==(Wnt(),kht)?1:e==(Knt(),xht)?-1:(n=(Ez(),JI(this.a,e.a)),n!=0?n:Lt(this,526)==Lt(e,526)?0:Lt(this,526)?1:-1)},l.Id=function(){return this.a},l.Fb=function(e){return bxt(this,e)},I(on,"Cut",253),D(1823,253,Bct,nWt),l.Ed=function(e){return e==this?0:1},l.Gd=function(e){throw at(new j2t)},l.Hd=function(e){e.a+="+∞)"},l.Id=function(){throw at(new Ro(fbe))},l.Hb=function(){return pg(),ext(this)},l.Jd=function(e){return!1},l.Ib=function(){return"+∞"};var xht;I(on,"Cut/AboveAll",1823),D(526,253,{253:1,526:1,3:1,34:1},LJt),l.Gd=function(e){tu((e.a+="(",e),this.a)},l.Hd=function(e){Db(tu(e,this.a),93)},l.Hb=function(){return~$i(this.a)},l.Jd=function(e){return Ez(),JI(this.a,e)<0},l.Ib=function(){return"/"+this.a+"\\"},I(on,"Cut/AboveValue",526),D(1822,253,Bct,eWt),l.Ed=function(e){return e==this?0:-1},l.Gd=function(e){e.a+="(-∞"},l.Hd=function(e){throw at(new j2t)},l.Id=function(){throw at(new Ro(fbe))},l.Hb=function(){return pg(),ext(this)},l.Jd=function(e){return!0},l.Ib=function(){return"-∞"};var kht;I(on,"Cut/BelowAll",1822),D(1824,253,Bct,DJt),l.Gd=function(e){tu((e.a+="[",e),this.a)},l.Hd=function(e){Db(tu(e,this.a),41)},l.Hb=function(){return $i(this.a)},l.Jd=function(e){return Ez(),JI(this.a,e)<=0},l.Ib=function(){return"\\"+this.a+"/"},I(on,"Cut/BelowValue",1824),D(547,1,F0),l.Jc=function(e){Fa(this,e)},l.Ib=function(){return w2n(u(Qz(this,"use Optional.orNull() instead of Optional.or(null)"),20).Kc())},I(on,"FluentIterable",547),D(442,547,F0,vS),l.Kc=function(){return new rr(sr(this.a.Kc(),new z))},I(on,"FluentIterable/2",442),D(1059,547,F0,RQt),l.Kc=function(){return A0(this)},I(on,"FluentIterable/3",1059),D(724,399,U7,zmt),l.Xb=function(e){return this.a[e].Kc()},I(on,"FluentIterable/3/1",724),D(2070,1,{}),l.Ib=function(){return rc(this.Kd().b)},I(on,"ForwardingObject",2070),D(2071,2070,dbe),l.Kd=function(){return this.Ld()},l.Jc=function(e){Fa(this,e)},l.Lc=function(){return this.Oc()},l.Nc=function(){return new gn(this,0)},l.Oc=function(){return new ln(null,this.Nc())},l.Fc=function(e){return this.Ld(),qWt()},l.Gc=function(e){return this.Ld(),HWt()},l.$b=function(){this.Ld(),VWt()},l.Hc=function(e){return this.Ld().Hc(e)},l.Ic=function(e){return this.Ld().Ic(e)},l.dc=function(){return this.Ld().b.dc()},l.Kc=function(){return this.Ld().Kc()},l.Mc=function(e){return this.Ld(),UWt()},l.gc=function(){return this.Ld().b.gc()},l.Pc=function(){return this.Ld().Pc()},l.Qc=function(e){return this.Ld().Qc(e)},I(on,"ForwardingCollection",2071),D(2078,31,d8t),l.Kc=function(){return this.Od()},l.Fc=function(e){throw at(new Vr)},l.Gc=function(e){throw at(new Vr)},l.Md=function(){var e;return e=this.c,e||(this.c=this.Nd())},l.$b=function(){throw at(new Vr)},l.Hc=function(e){return e!=null&&Ky(this,e,!1)},l.Nd=function(){switch(this.gc()){case 0:return Dm(),Dm(),Eht;case 1:return Dm(),new Ait(Hr(this.Od().Pb()));default:return new yyt(this,this.Pc())}},l.Mc=function(e){throw at(new Vr)},I(on,"ImmutableCollection",2078),D(727,2078,d8t,B2t),l.Kc=function(){return sk(this.a.Kc())},l.Hc=function(e){return e!=null&&this.a.Hc(e)},l.Ic=function(e){return this.a.Ic(e)},l.dc=function(){return this.a.dc()},l.Od=function(){return sk(this.a.Kc())},l.gc=function(){return this.a.gc()},l.Pc=function(){return this.a.Pc()},l.Qc=function(e){return this.a.Qc(e)},l.Ib=function(){return rc(this.a)},I(on,"ForwardingImmutableCollection",727),D(306,2078,G7),l.Kc=function(){return this.Od()},l.ed=function(){return this.Pd(0)},l.fd=function(e){return this.Pd(e)},l.jd=function(e){rw(this,e)},l.Nc=function(){return new gn(this,16)},l.kd=function(e,n){return this.Qd(e,n)},l.bd=function(e,n){throw at(new Vr)},l.cd=function(e,n){throw at(new Vr)},l.Md=function(){return this},l.Fb=function(e){return Ixn(this,e)},l.Hb=function(){return Spn(this)},l.dd=function(e){return e==null?-1:Ymn(this,e)},l.Od=function(){return this.Pd(0)},l.Pd=function(e){return ait(this,e)},l.gd=function(e){throw at(new Vr)},l.hd=function(e,n){throw at(new Vr)},l.Qd=function(e,n){var r;return uH((r=new AYt(this),new xp(r,e,n)))};var Eht;I(on,"ImmutableList",306),D(2105,306,G7),l.Kc=function(){return sk(this.Rd().Kc())},l.kd=function(e,n){return uH(this.Rd().kd(e,n))},l.Hc=function(e){return e!=null&&this.Rd().Hc(e)},l.Ic=function(e){return this.Rd().Ic(e)},l.Fb=function(e){return Ti(this.Rd(),e)},l.Xb=function(e){return Cb(this,e)},l.Hb=function(){return $i(this.Rd())},l.dd=function(e){return this.Rd().dd(e)},l.dc=function(){return this.Rd().dc()},l.Od=function(){return sk(this.Rd().Kc())},l.gc=function(){return this.Rd().gc()},l.Qd=function(e,n){return uH(this.Rd().kd(e,n))},l.Pc=function(){return this.Rd().Qc(Vt(aa,Ln,1,this.Rd().gc(),5,1))},l.Qc=function(e){return this.Rd().Qc(e)},l.Ib=function(){return rc(this.Rd())},I(on,"ForwardingImmutableList",2105),D(729,1,K7),l.vc=function(){return K2(this)},l.wc=function(e){e_(this,e)},l.ec=function(){return Pit(this)},l.yc=function(e,n,r){return Vat(this,e,n,r)},l.Cc=function(){return this.Vd()},l.$b=function(){throw at(new Vr)},l._b=function(e){return this.xc(e)!=null},l.uc=function(e){return this.Vd().Hc(e)},l.Td=function(){return new lKt(this)},l.Ud=function(){return new hKt(this)},l.Fb=function(e){return mbn(this,e)},l.Hb=function(){return K2(this).Hb()},l.dc=function(){return this.gc()==0},l.zc=function(e,n){return Znn()},l.Bc=function(e){throw at(new Vr)},l.Ib=function(){return s4n(this)},l.Vd=function(){return this.e?this.e:this.e=this.Ud()},l.c=null,l.d=null,l.e=null;var Rve;I(on,"ImmutableMap",729),D(730,729,K7),l._b=function(e){return $Wt(this,e)},l.uc=function(e){return NYt(this.b,e)},l.Sd=function(){return Nue(new ynt(this))},l.Td=function(){return Nue(Xee(this.b))},l.Ud=function(){return Vd(),new B2t(Yee(this.b))},l.Fb=function(e){return PYt(this.b,e)},l.xc=function(e){return _S(this,e)},l.Hb=function(){return $i(this.b.c)},l.dc=function(){return this.b.c.dc()},l.gc=function(){return this.b.c.gc()},l.Ib=function(){return rc(this.b.c)},I(on,"ForwardingImmutableMap",730),D(2072,2071,Rct),l.Kd=function(){return this.Wd()},l.Ld=function(){return this.Wd()},l.Nc=function(){return new gn(this,1)},l.Fb=function(e){return e===this||this.Wd().Fb(e)},l.Hb=function(){return this.Wd().Hb()},I(on,"ForwardingSet",2072),D(1085,2072,Rct,ynt),l.Kd=function(){return BE(this.a.b)},l.Ld=function(){return BE(this.a.b)},l.Hc=function(e){if(Lt(e,44)&&u(e,44).ld()==null)return!1;try{return OYt(BE(this.a.b),e)}catch(n){if(n=es(n),Lt(n,212))return!1;throw at(n)}},l.Wd=function(){return BE(this.a.b)},l.Qc=function(e){var n;return n=Nne(BE(this.a.b),e),BE(this.a.b).b.gc()=0?"+":"")+(r/60|0),n=nz(b.Math.abs(r)%60),(Efe(),rye)[this.q.getDay()]+" "+iye[this.q.getMonth()]+" "+nz(this.q.getDate())+" "+nz(this.q.getHours())+":"+nz(this.q.getMinutes())+":"+nz(this.q.getSeconds())+" GMT"+e+n+" "+this.q.getFullYear()};var OU=I(xr,"Date",206);D(2015,206,kbe,Ghe),l.a=!1,l.b=0,l.c=0,l.d=0,l.e=0,l.f=0,l.g=!1,l.i=0,l.j=0,l.k=0,l.n=0,l.o=0,l.p=0,I("com.google.gwt.i18n.shared.impl","DateRecord",2015),D(2064,1,{}),l.pe=function(){return null},l.qe=function(){return null},l.re=function(){return null},l.se=function(){return null},l.te=function(){return null},I(Ck,"JSONValue",2064),D(221,2064,{221:1},cp,Xj),l.Fb=function(e){return Lt(e,221)?o3t(this.a,u(e,221).a):!1},l.oe=function(){return Tnn},l.Hb=function(){return Xyt(this.a)},l.pe=function(){return this},l.Ib=function(){var e,n,r;for(r=new eh("["),n=0,e=this.a.length;n0&&(r.a+=","),tu(r,$y(this,n));return r.a+="]",r.a},I(Ck,"JSONArray",221),D(492,2064,{492:1},xc),l.oe=function(){return Cnn},l.qe=function(){return this},l.Ib=function(){return Pn(),""+this.a},l.a=!1;var Uve,Gve;I(Ck,"JSONBoolean",492),D(997,63,Pg,lWt),I(Ck,"JSONException",997),D(1036,2064,{},K),l.oe=function(){return Snn},l.Ib=function(){return Vu};var Kve;I(Ck,"JSONNull",1036),D(263,2064,{263:1},cE),l.Fb=function(e){return Lt(e,263)?this.a==u(e,263).a:!1},l.oe=function(){return knn},l.Hb=function(){return F6(this.a)},l.re=function(){return this},l.Ib=function(){return this.a+""},l.a=0,I(Ck,"JSONNumber",263),D(190,2064,{190:1},_6,uE),l.Fb=function(e){return Lt(e,190)?o3t(this.a,u(e,190).a):!1},l.oe=function(){return Enn},l.Hb=function(){return Xyt(this.a)},l.se=function(){return this},l.Ib=function(){var e,n,r,s,o,h,d;for(d=new eh("{"),e=!0,h=cat(this,Vt(Pe,ue,2,0,6,1)),r=h,s=0,o=r.length;s=0?":"+this.c:"")+")"},l.c=0;var m9t=I(Sc,"StackTraceElement",319);Bve={3:1,483:1,34:1,2:1};var Pe=I(Sc,g8t,2);D(111,427,{483:1},dp,YC,ef),I(Sc,"StringBuffer",111),D(104,427,{483:1},yb,I4,eh),I(Sc,"StringBuilder",104),D(702,77,out,dwt),I(Sc,"StringIndexOutOfBoundsException",702),D(2145,1,{});var Qve;D(48,63,{3:1,103:1,63:1,82:1,48:1},Vr,hp),I(Sc,"UnsupportedOperationException",48),D(247,242,{3:1,34:1,242:1,247:1},gO,Twt),l.Fd=function(e){return wge(this,u(e,247))},l.ue=function(){return Jy(Uge(this))},l.Fb=function(e){var n;return this===e?!0:Lt(e,247)?(n=u(e,247),this.e==n.e&&wge(this,n)==0):!1},l.Hb=function(){var e;return this.b!=0?this.b:this.a<54?(e=Pc(this.f),this.b=qr(sa(e,-1)),this.b=33*this.b+qr(sa(_m(e,32),-1)),this.b=17*this.b+Ys(this.e),this.b):(this.b=17*Lue(this.c)+Ys(this.e),this.b)},l.Ib=function(){return Uge(this)},l.a=0,l.b=0,l.d=0,l.e=0,l.f=0;var Jve,_w,v9t,y9t,x9t,k9t,E9t,T9t,Mht=I("java.math","BigDecimal",247);D(92,242,{3:1,34:1,242:1,92:1},kg,xre,Y2,Dle,Sb),l.Fd=function(e){return Sle(this,u(e,92))},l.ue=function(){return Jy(Oct(this,0))},l.Fb=function(e){return R5t(this,e)},l.Hb=function(){return Lue(this)},l.Ib=function(){return Oct(this,0)},l.b=-2,l.c=0,l.d=0,l.e=0;var Zve,NU,tye,Iht,PU,yA,N5=I("java.math","BigInteger",92),eye,nye,Bk,xA;D(497,2065,sv),l.$b=function(){dl(this)},l._b=function(e){return Tu(this,e)},l.uc=function(e){return lue(this,e,this.i)||lue(this,e,this.f)},l.vc=function(){return new mr(this)},l.xc=function(e){return tr(this,e)},l.zc=function(e,n){return hi(this,e,n)},l.Bc=function(e){return rk(this,e)},l.gc=function(){return QC(this)},l.g=0,I(xr,"AbstractHashMap",497),D(267,dd,sl,mr),l.$b=function(){this.a.$b()},l.Hc=function(e){return Qre(this,e)},l.Kc=function(){return new sw(this.a)},l.Mc=function(e){var n;return Qre(this,e)?(n=u(e,44).ld(),this.a.Bc(n),!0):!1},l.gc=function(){return this.a.gc()},I(xr,"AbstractHashMap/EntrySet",267),D(268,1,wa,sw),l.Nb=function(e){Na(this,e)},l.Pb=function(){return Um(this)},l.Ob=function(){return this.b},l.Qb=function(){Sae(this)},l.b=!1,l.d=0,I(xr,"AbstractHashMap/EntrySetIterator",268),D(426,1,wa,gr),l.Nb=function(e){Na(this,e)},l.Ob=function(){return frt(this)},l.Pb=function(){return Uyt(this)},l.Qb=function(){Kl(this)},l.b=0,l.c=-1,I(xr,"AbstractList/IteratorImpl",426),D(98,426,P0,La),l.Qb=function(){Kl(this)},l.Rb=function(e){Ly(this,e)},l.Sb=function(){return this.b>0},l.Tb=function(){return this.b},l.Ub=function(){return ur(this.b>0),this.a.Xb(this.c=--this.b)},l.Vb=function(){return this.b-1},l.Wb=function(e){_y(this.c!=-1),this.a.hd(this.c,e)},I(xr,"AbstractList/ListIteratorImpl",98),D(244,56,W7,xp),l.bd=function(e,n){Fy(e,this.b),this.c.bd(this.a+e,n),++this.b},l.Xb=function(e){return vn(e,this.b),this.c.Xb(this.a+e)},l.gd=function(e){var n;return vn(e,this.b),n=this.c.gd(this.a+e),--this.b,n},l.hd=function(e,n){return vn(e,this.b),this.c.hd(this.a+e,n)},l.gc=function(){return this.b},l.a=0,l.b=0,I(xr,"AbstractList/SubList",244),D(266,dd,sl,cr),l.$b=function(){this.a.$b()},l.Hc=function(e){return this.a._b(e)},l.Kc=function(){var e;return e=this.a.vc().Kc(),new vi(e)},l.Mc=function(e){return this.a._b(e)?(this.a.Bc(e),!0):!1},l.gc=function(){return this.a.gc()},I(xr,"AbstractMap/1",266),D(541,1,wa,vi),l.Nb=function(e){Na(this,e)},l.Ob=function(){return this.a.Ob()},l.Pb=function(){var e;return e=u(this.a.Pb(),44),e.ld()},l.Qb=function(){this.a.Qb()},I(xr,"AbstractMap/1/1",541),D(231,31,o3,si),l.$b=function(){this.a.$b()},l.Hc=function(e){return this.a.uc(e)},l.Kc=function(){var e;return e=this.a.vc().Kc(),new Qi(e)},l.gc=function(){return this.a.gc()},I(xr,"AbstractMap/2",231),D(300,1,wa,Qi),l.Nb=function(e){Na(this,e)},l.Ob=function(){return this.a.Ob()},l.Pb=function(){var e;return e=u(this.a.Pb(),44),e.md()},l.Qb=function(){this.a.Qb()},I(xr,"AbstractMap/2/1",300),D(493,1,{493:1,44:1}),l.Fb=function(e){var n;return Lt(e,44)?(n=u(e,44),Nc(this.d,n.ld())&&Nc(this.e,n.md())):!1},l.ld=function(){return this.d},l.md=function(){return this.e},l.Hb=function(){return V4(this.d)^V4(this.e)},l.nd=function(e){return fvt(this,e)},l.Ib=function(){return this.d+"="+this.e},I(xr,"AbstractMap/AbstractEntry",493),D(397,493,{493:1,397:1,44:1},I$),I(xr,"AbstractMap/SimpleEntry",397),D(2082,1,lut),l.Fb=function(e){var n;return Lt(e,44)?(n=u(e,44),Nc(this.ld(),n.ld())&&Nc(this.md(),n.md())):!1},l.Hb=function(){return V4(this.ld())^V4(this.md())},l.Ib=function(){return this.ld()+"="+this.md()},I(xr,lbe,2082),D(2090,2065,h8t),l.Xc=function(e){return srt(this.Ee(e))},l.tc=function(e){return rse(this,e)},l._b=function(e){return dvt(this,e)},l.vc=function(){return new Es(this)},l.Tc=function(){return wee(this.Ge())},l.Yc=function(e){return srt(this.He(e))},l.xc=function(e){var n;return n=e,Ko(this.Fe(n))},l.$c=function(e){return srt(this.Ie(e))},l.ec=function(){return new ks(this)},l.Vc=function(){return wee(this.Je())},l._c=function(e){return srt(this.Ke(e))},I(xr,"AbstractNavigableMap",2090),D(629,dd,sl,Es),l.Hc=function(e){return Lt(e,44)&&rse(this.b,u(e,44))},l.Kc=function(){return this.b.De()},l.Mc=function(e){var n;return Lt(e,44)?(n=u(e,44),this.b.Le(n)):!1},l.gc=function(){return this.b.gc()},I(xr,"AbstractNavigableMap/EntrySet",629),D(1146,dd,f8t,ks),l.Nc=function(){return new D$(this)},l.$b=function(){this.a.$b()},l.Hc=function(e){return dvt(this.a,e)},l.Kc=function(){var e;return e=this.a.vc().b.De(),new as(e)},l.Mc=function(e){return dvt(this.a,e)?(this.a.Bc(e),!0):!1},l.gc=function(){return this.a.gc()},I(xr,"AbstractNavigableMap/NavigableKeySet",1146),D(1147,1,wa,as),l.Nb=function(e){Na(this,e)},l.Ob=function(){return frt(this.a.a)},l.Pb=function(){var e;return e=$Jt(this.a),e.ld()},l.Qb=function(){GZt(this.a)},I(xr,"AbstractNavigableMap/NavigableKeySet/1",1147),D(2103,31,o3),l.Fc=function(e){return V6(D7(this,e),X7),!0},l.Gc=function(e){return Wn(e),wI(e!=this,"Can't add a queue to itself"),Ma(this,e)},l.$b=function(){for(;Yst(this)!=null;);},I(xr,"AbstractQueue",2103),D(310,31,{4:1,20:1,31:1,16:1},K4,Gre),l.Fc=function(e){return w3t(this,e),!0},l.$b=function(){E3t(this)},l.Hc=function(e){return Ice(new $S(this),e)},l.dc=function(){return WC(this)},l.Kc=function(){return new $S(this)},l.Mc=function(e){return ofn(new $S(this),e)},l.gc=function(){return this.c-this.b&this.a.length-1},l.Nc=function(){return new gn(this,272)},l.Qc=function(e){var n;return n=this.c-this.b&this.a.length-1,e.lengthn&&ls(e,n,null),e},l.b=0,l.c=0,I(xr,"ArrayDeque",310),D(458,1,wa,$S),l.Nb=function(e){Na(this,e)},l.Ob=function(){return this.a!=this.b},l.Pb=function(){return cH(this)},l.Qb=function(){Aoe(this)},l.a=0,l.b=0,l.c=-1,I(xr,"ArrayDeque/IteratorImpl",458),D(13,56,Cbe,fe,wu,fl),l.bd=function(e,n){Sm(this,e,n)},l.Fc=function(e){return ge(this,e)},l.cd=function(e,n){return l5t(this,e,n)},l.Gc=function(e){return Hs(this,e)},l.$b=function(){wy(this.c,0)},l.Hc=function(e){return Xo(this,e,0)!=-1},l.Jc=function(e){Cu(this,e)},l.Xb=function(e){return Oe(this,e)},l.dd=function(e){return Xo(this,e,0)},l.dc=function(){return this.c.length==0},l.Kc=function(){return new G(this)},l.gd=function(e){return Ep(this,e)},l.Mc=function(e){return zu(this,e)},l.ce=function(e,n){pre(this,e,n)},l.hd=function(e,n){return Mh(this,e,n)},l.gc=function(){return this.c.length},l.jd=function(e){Ds(this,e)},l.Pc=function(){return Tz(this.c)},l.Qc=function(e){return ld(this,e)};var XSn=I(xr,"ArrayList",13);D(7,1,wa,G),l.Nb=function(e){Na(this,e)},l.Ob=function(){return lc(this)},l.Pb=function(){return et(this)},l.Qb=function(){PS(this)},l.a=0,l.b=-1,I(xr,"ArrayList/1",7),D(2112,b.Function,{},It),l.Me=function(e,n){return Bi(e,n)},D(151,56,Sbe,hl),l.Hc=function(e){return Loe(this,e)!=-1},l.Jc=function(e){var n,r,s,o;for(Wn(e),r=this.a,s=0,o=r.length;s0)throw at(new zn(k8t+e+" greater than "+this.e));return this.f.Te()?Rne(this.c,this.b,this.a,e,n):bre(this.c,e,n)},l.zc=function(e,n){if(!Eot(this.c,this.f,e,this.b,this.a,this.e,this.d))throw at(new zn(e+" outside the range "+this.b+" to "+this.e));return Yce(this.c,e,n)},l.Bc=function(e){var n;return n=e,Eot(this.c,this.f,n,this.b,this.a,this.e,this.d)?jne(this.c,n):null},l.Le=function(e){return Vz(this,e.ld())&&q3t(this.c,e)},l.gc=function(){var e,n,r;if(this.f.Te()?this.a?n=E7(this.c,this.b,!0):n=E7(this.c,this.b,!1):n=J3t(this.c),!(n&&Vz(this,n.d)&&n))return 0;for(e=0,r=new uat(this.c,this.f,this.b,this.a,this.e,this.d);frt(r.a);r.b=u(Uyt(r.a),44))++e;return e},l.ad=function(e,n){if(this.f.Te()&&this.c.a.Ne(e,this.b)<0)throw at(new zn(k8t+e+Lbe+this.b));return this.f.Ue()?Rne(this.c,e,n,this.e,this.d):wre(this.c,e,n)},l.a=!1,l.d=!1,I(xr,"TreeMap/SubMap",631),D(303,22,gut,M$),l.Te=function(){return!1},l.Ue=function(){return!1};var Pht,Fht,Bht,Rht,BU=Lr(xr,"TreeMap/SubMapType",303,Pr,N1n,Van);D(1143,303,gut,VQt),l.Ue=function(){return!0},Lr(xr,"TreeMap/SubMapType/1",1143,BU,null,null),D(1144,303,gut,ZQt),l.Te=function(){return!0},l.Ue=function(){return!0},Lr(xr,"TreeMap/SubMapType/2",1144,BU,null,null),D(1145,303,gut,HQt),l.Te=function(){return!0},Lr(xr,"TreeMap/SubMapType/3",1145,BU,null,null);var lye;D(157,dd,{3:1,20:1,31:1,16:1,277:1,21:1,87:1,157:1},q2t,pp,ra),l.Nc=function(){return new D$(this)},l.Fc=function(e){return yI(this,e)},l.$b=function(){this.a.$b()},l.Hc=function(e){return this.a._b(e)},l.Kc=function(){return this.a.ec().Kc()},l.Mc=function(e){return rit(this,e)},l.gc=function(){return this.a.gc()};var n_n=I(xr,"TreeSet",157);D(1082,1,{},no),l.Ve=function(e,n){return oan(this.a,e,n)},I(put,"BinaryOperator/lambda$0$Type",1082),D(1083,1,{},ql),l.Ve=function(e,n){return can(this.a,e,n)},I(put,"BinaryOperator/lambda$1$Type",1083),D(952,1,{},Ne),l.Kb=function(e){return e},I(put,"Function/lambda$0$Type",952),D(395,1,Kr,Sl),l.Mb=function(e){return!this.a.Mb(e)},I(put,"Predicate/lambda$2$Type",395),D(581,1,{581:1});var hye=I(V_,"Handler",581);D(2107,1,tN),l.xe=function(){return"DUMMY"},l.Ib=function(){return this.xe()};var M9t;I(V_,"Level",2107),D(1706,2107,tN,Xt),l.xe=function(){return"INFO"},I(V_,"Level/LevelInfo",1706),D(1843,1,{},mKt);var jht;I(V_,"LogManager",1843),D(1896,1,tN,UZt),l.b=null,I(V_,"LogRecord",1896),D(525,1,{525:1},Ast),l.e=!1;var fye=!1,dye=!1,wd=!1,gye=!1,pye=!1;I(V_,"Logger",525),D(835,581,{581:1},_e),I(V_,"SimpleConsoleLogHandler",835),D(108,22,{3:1,34:1,22:1,108:1},prt);var I9t,sc,w3,Ho=Lr(Us,"Collector/Characteristics",108,Pr,xfn,Uan),bye;D(758,1,{},Tyt),I(Us,"CollectorImpl",758),D(1074,1,{},xe),l.Ve=function(e,n){return e2n(u(e,213),u(n,213))},I(Us,"Collectors/10methodref$merge$Type",1074),D(1075,1,{},Mn),l.Kb=function(e){return Kre(u(e,213))},I(Us,"Collectors/11methodref$toString$Type",1075),D(1076,1,{},mb),l.Kb=function(e){return Pn(),!!mmt(e)},I(Us,"Collectors/12methodref$test$Type",1076),D(144,1,{},ce),l.Yd=function(e,n){u(e,16).Fc(n)},I(Us,"Collectors/20methodref$add$Type",144),D(146,1,{},Br),l.Xe=function(){return new fe},I(Us,"Collectors/21methodref$ctor$Type",146),D(359,1,{},we),l.Xe=function(){return new Os},I(Us,"Collectors/23methodref$ctor$Type",359),D(360,1,{},Fi),l.Yd=function(e,n){qs(u(e,49),n)},I(Us,"Collectors/24methodref$add$Type",360),D(1069,1,{},mi),l.Ve=function(e,n){return RYt(u(e,15),u(n,16))},I(Us,"Collectors/4methodref$addAll$Type",1069),D(1073,1,{},ga),l.Yd=function(e,n){Eg(u(e,213),u(n,483))},I(Us,"Collectors/9methodref$add$Type",1073),D(1072,1,{},cte),l.Xe=function(){return new aw(this.a,this.b,this.c)},I(Us,"Collectors/lambda$15$Type",1072),D(1077,1,{},Ss),l.Xe=function(){var e;return e=new kp,Op(e,(Pn(),!1),new fe),Op(e,!0,new fe),e},I(Us,"Collectors/lambda$22$Type",1077),D(1078,1,{},vb),l.Xe=function(){return lt(ut(aa,1),Ln,1,5,[this.a])},I(Us,"Collectors/lambda$25$Type",1078),D(1079,1,{},v1),l.Yd=function(e,n){_un(this.a,nw(e))},I(Us,"Collectors/lambda$26$Type",1079),D(1080,1,{},up),l.Ve=function(e,n){return eln(this.a,nw(e),nw(n))},I(Us,"Collectors/lambda$27$Type",1080),D(1081,1,{},za),l.Kb=function(e){return nw(e)[0]},I(Us,"Collectors/lambda$28$Type",1081),D(728,1,{},br),l.Ve=function(e,n){return iyt(e,n)},I(Us,"Collectors/lambda$4$Type",728),D(145,1,{},An),l.Ve=function(e,n){return Frn(u(e,16),u(n,16))},I(Us,"Collectors/lambda$42$Type",145),D(361,1,{},Nn),l.Ve=function(e,n){return Brn(u(e,49),u(n,49))},I(Us,"Collectors/lambda$50$Type",361),D(362,1,{},Bn),l.Kb=function(e){return u(e,49)},I(Us,"Collectors/lambda$51$Type",362),D(1068,1,{},Bd),l.Yd=function(e,n){obn(this.a,u(e,85),n)},I(Us,"Collectors/lambda$7$Type",1068),D(1070,1,{},ke),l.Ve=function(e,n){return Bpn(u(e,85),u(n,85),new mi)},I(Us,"Collectors/lambda$8$Type",1070),D(1071,1,{},cm),l.Kb=function(e){return N2n(this.a,u(e,85))},I(Us,"Collectors/lambda$9$Type",1071),D(550,1,{}),l.$e=function(){jS(this)},l.d=!1,I(Us,"TerminatableStream",550),D(827,550,E8t,rvt),l.$e=function(){jS(this)},I(Us,"DoubleStreamImpl",827),D(1847,736,fh,ute),l.Re=function(e){return Bmn(this,u(e,189))},l.a=null,I(Us,"DoubleStreamImpl/2",1847),D(1848,1,uN,py),l.Pe=function(e){Din(this.a,e)},I(Us,"DoubleStreamImpl/2/lambda$0$Type",1848),D(1845,1,uN,y6),l.Pe=function(e){Lin(this.a,e)},I(Us,"DoubleStreamImpl/lambda$0$Type",1845),D(1846,1,uN,_4),l.Pe=function(e){ule(this.a,e)},I(Us,"DoubleStreamImpl/lambda$2$Type",1846),D(1397,735,fh,Jie),l.Re=function(e){return E1n(this,u(e,202))},l.a=0,l.b=0,l.c=0,I(Us,"IntStream/5",1397),D(806,550,E8t,ivt),l.$e=function(){jS(this)},l._e=function(){return Mb(this),this.a},I(Us,"IntStreamImpl",806),D(807,550,E8t,Lwt),l.$e=function(){jS(this)},l._e=function(){return Mb(this),jmt(),uye},I(Us,"IntStreamImpl/Empty",807),D(1687,1,nN,x6),l.Dd=function(e){vce(this.a,e)},I(Us,"IntStreamImpl/lambda$4$Type",1687);var r_n=os(Us,"Stream");D(26,550,{533:1,687:1,848:1},ln),l.$e=function(){jS(this)};var Rk;I(Us,"StreamImpl",26),D(1102,499,fh,BZt),l.Bd=function(e){for(;S0n(this);){if(this.a.Bd(e))return!0;jS(this.b),this.b=null,this.a=null}return!1},I(Us,"StreamImpl/1",1102),D(1103,1,ir,BC),l.Cd=function(e){Zcn(this.a,u(e,848))},I(Us,"StreamImpl/1/lambda$0$Type",1103),D(1104,1,Kr,A4),l.Mb=function(e){return qs(this.a,e)},I(Us,"StreamImpl/1methodref$add$Type",1104),D(1105,499,fh,wne),l.Bd=function(e){var n;return this.a||(n=new fe,this.b.a.Nb(new k0(n)),mn(),Ds(n,this.c),this.a=new gn(n,16)),toe(this.a,e)},l.a=null,I(Us,"StreamImpl/5",1105),D(1106,1,ir,k0),l.Cd=function(e){ge(this.a,e)},I(Us,"StreamImpl/5/2methodref$add$Type",1106),D(737,499,fh,Z3t),l.Bd=function(e){for(this.b=!1;!this.b&&this.c.Bd(new eXt(this,e)););return this.b},l.b=!1,I(Us,"StreamImpl/FilterSpliterator",737),D(1096,1,ir,eXt),l.Cd=function(e){Yun(this.a,this.b,e)},I(Us,"StreamImpl/FilterSpliterator/lambda$0$Type",1096),D(1091,736,fh,use),l.Re=function(e){return Lan(this,u(e,189))},I(Us,"StreamImpl/MapToDoubleSpliterator",1091),D(1095,1,ir,nXt),l.Cd=function(e){Zrn(this.a,this.b,e)},I(Us,"StreamImpl/MapToDoubleSpliterator/lambda$0$Type",1095),D(1090,735,fh,lse),l.Re=function(e){return Dan(this,u(e,202))},I(Us,"StreamImpl/MapToIntSpliterator",1090),D(1094,1,ir,rXt),l.Cd=function(e){tin(this.a,this.b,e)},I(Us,"StreamImpl/MapToIntSpliterator/lambda$0$Type",1094),D(734,499,fh,R3t),l.Bd=function(e){return NZt(this,e)},I(Us,"StreamImpl/MapToObjSpliterator",734),D(1093,1,ir,iXt),l.Cd=function(e){ein(this.a,this.b,e)},I(Us,"StreamImpl/MapToObjSpliterator/lambda$0$Type",1093),D(1092,499,fh,joe),l.Bd=function(e){for(;drt(this.b,0);){if(!this.a.Bd(new pe))return!1;this.b=sf(this.b,1)}return this.a.Bd(e)},l.b=0,I(Us,"StreamImpl/SkipSpliterator",1092),D(1097,1,ir,pe),l.Cd=function(e){},I(Us,"StreamImpl/SkipSpliterator/lambda$0$Type",1097),D(626,1,ir,Je),l.Cd=function(e){Cnt(this,e)},I(Us,"StreamImpl/ValueConsumer",626),D(1098,1,ir,an),l.Cd=function(e){U2()},I(Us,"StreamImpl/lambda$0$Type",1098),D(1099,1,ir,xn),l.Cd=function(e){U2()},I(Us,"StreamImpl/lambda$1$Type",1099),D(1100,1,{},J1),l.Ve=function(e,n){return con(this.a,e,n)},I(Us,"StreamImpl/lambda$4$Type",1100),D(1101,1,ir,sXt),l.Cd=function(e){gan(this.b,this.a,e)},I(Us,"StreamImpl/lambda$5$Type",1101),D(1107,1,ir,E0),l.Cd=function(e){Cpn(this.a,u(e,380))},I(Us,"TerminatableStream/lambda$0$Type",1107),D(2142,1,{}),D(2014,1,{},qa),I("javaemul.internal","ConsoleLogger",2014);var i_n=0;D(2134,1,{}),D(1830,1,ir,xo),l.Cd=function(e){u(e,317)},I(Q7,"BowyerWatsonTriangulation/lambda$0$Type",1830),D(1831,1,ir,$2),l.Cd=function(e){Ma(this.a,u(e,317).e)},I(Q7,"BowyerWatsonTriangulation/lambda$1$Type",1831),D(1832,1,ir,ko),l.Cd=function(e){u(e,177)},I(Q7,"BowyerWatsonTriangulation/lambda$2$Type",1832),D(1827,1,Xr,Zj),l.Ne=function(e,n){return cdn(this.a,u(e,177),u(n,177))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Q7,"NaiveMinST/lambda$0$Type",1827),D(506,1,{},by),I(Q7,"NodeMicroLayout",506),D(177,1,{177:1},O6),l.Fb=function(e){var n;return Lt(e,177)?(n=u(e,177),Nc(this.a,n.a)&&Nc(this.b,n.b)||Nc(this.a,n.b)&&Nc(this.b,n.a)):!1},l.Hb=function(){return V4(this.a)+V4(this.b)};var s_n=I(Q7,"TEdge",177);D(317,1,{317:1},Bkt),l.Fb=function(e){var n;return Lt(e,317)?(n=u(e,317),Aq(this,n.a)&&Aq(this,n.b)&&Aq(this,n.c)):!1},l.Hb=function(){return V4(this.a)+V4(this.b)+V4(this.c)},I(Q7,"TTriangle",317),D(225,1,{225:1},iz),I(Q7,"Tree",225),D(1218,1,{},nre),I(Ibe,"Scanline",1218);var wye=os(Ibe,Obe);D(1758,1,{},Qae),I(j0,"CGraph",1758),D(316,1,{316:1},sre),l.b=0,l.c=0,l.d=0,l.g=0,l.i=0,l.k=Vs,I(j0,"CGroup",316),D(830,1,{},U2t),I(j0,"CGroup/CGroupBuilder",830),D(60,1,{60:1},wZt),l.Ib=function(){var e;return this.j?Gr(this.j.Kb(this)):(wg(RU),RU.o+"@"+(e=Em(this)>>>0,e.toString(16)))},l.f=0,l.i=Vs;var RU=I(j0,"CNode",60);D(829,1,{},G2t),I(j0,"CNode/CNodeBuilder",829);var mye;D(1590,1,{},va),l.ff=function(e,n){return 0},l.gf=function(e,n){return 0},I(j0,Pbe,1590),D(1853,1,{},Ha),l.cf=function(e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt;for(T=Zi,s=new G(e.a.b);s.as.d.c||s.d.c==h.d.c&&s.d.b0?e+this.n.d+this.n.a:0},l.kf=function(){var e,n,r,s,o;if(o=0,this.e)this.b?o=this.b.a:this.a[1][1]&&(o=this.a[1][1].kf());else if(this.g)o=F5t(this,Cot(this,null,!0));else for(n=(A1(),lt(ut(m3,1),te,237,0,[Ac,xu,Lc])),r=0,s=n.length;r0?o+this.n.b+this.n.c:0},l.lf=function(){var e,n,r,s,o;if(this.g)for(e=Cot(this,null,!1),r=(A1(),lt(ut(m3,1),te,237,0,[Ac,xu,Lc])),s=0,o=r.length;s0&&(s[0]+=this.d,r-=s[0]),s[2]>0&&(s[2]+=this.d,r-=s[2]),this.c.a=b.Math.max(0,r),this.c.d=n.d+e.d+(this.c.a-r)/2,s[1]=b.Math.max(s[1],r),N3t(this,xu,n.d+e.d+s[0]-(s[1]-r)/2,s)},l.b=null,l.d=0,l.e=!1,l.f=!1,l.g=!1;var Vht=0,jU=0;I(ww,"GridContainerCell",1538),D(470,22,{3:1,34:1,22:1,470:1},wrt);var e2,c0,Gf,Aye=Lr(ww,"HorizontalLabelAlignment",470,Pr,Efn,Xan),Lye;D(314,217,{217:1,314:1},qne,Zae,Pne),l.jf=function(){return kte(this)},l.kf=function(){return Jvt(this)},l.a=0,l.c=!1;var a_n=I(ww,"LabelCell",314);D(252,336,{217:1,336:1,252:1},p_),l.jf=function(){return PO(this)},l.kf=function(){return FO(this)},l.lf=function(){dct(this)},l.mf=function(){gct(this)},l.b=0,l.c=0,l.d=!1,I(ww,"StripContainerCell",252),D(1691,1,Kr,Ic),l.Mb=function(e){return Xnn(u(e,217))},I(ww,"StripContainerCell/lambda$0$Type",1691),D(1692,1,{},wc),l.Ye=function(e){return u(e,217).kf()},I(ww,"StripContainerCell/lambda$1$Type",1692),D(1693,1,Kr,Ea),l.Mb=function(e){return Qnn(u(e,217))},I(ww,"StripContainerCell/lambda$2$Type",1693),D(1694,1,{},gu),l.Ye=function(e){return u(e,217).jf()},I(ww,"StripContainerCell/lambda$3$Type",1694),D(471,22,{3:1,34:1,22:1,471:1},mrt);var Kf,n2,O1,Dye=Lr(ww,"VerticalLabelAlignment",471,Pr,kfn,Qan),Mye;D(800,1,{},Zkt),l.c=0,l.d=0,l.k=0,l.s=0,l.t=0,l.v=!1,l.w=0,l.D=!1,I(SV,"NodeContext",800),D(1536,1,Xr,ta),l.Ne=function(e,n){return NQt(u(e,64),u(n,64))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(SV,"NodeContext/0methodref$comparePortSides$Type",1536),D(1537,1,Xr,fo),l.Ne=function(e,n){return S3n(u(e,117),u(n,117))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(SV,"NodeContext/1methodref$comparePortContexts$Type",1537),D(164,22,{3:1,34:1,22:1,164:1},Nh);var Iye,Oye,Nye,Pye,Fye,Bye,Rye,jye,$ye,zye,qye,Hye,Vye,Uye,Gye,Kye,Wye,Yye,Xye,Qye,Jye,Uht,Zye=Lr(SV,"NodeLabelLocation",164,Pr,not,Jan),t3e;D(117,1,{117:1},q1e),l.a=!1,I(SV,"PortContext",117),D(1541,1,ir,mc),l.Cd=function(e){ZWt(u(e,314))},I(hN,Wbe,1541),D(1542,1,Kr,ca),l.Mb=function(e){return!!u(e,117).c},I(hN,Ybe,1542),D(1543,1,ir,ya),l.Cd=function(e){ZWt(u(e,117).c)},I(hN,"LabelPlacer/lambda$2$Type",1543);var tCt;D(1540,1,ir,ea),l.Cd=function(e){Ay(),Lnn(u(e,117))},I(hN,"NodeLabelAndSizeUtilities/lambda$0$Type",1540),D(801,1,ir,Mvt),l.Cd=function(e){Hrn(this.b,this.c,this.a,u(e,187))},l.a=!1,l.c=!1,I(hN,"NodeLabelCellCreator/lambda$0$Type",801),D(1539,1,ir,Ont),l.Cd=function(e){Inn(this.a,u(e,187))},I(hN,"PortContextCreator/lambda$0$Type",1539);var $U;D(1902,1,{},Zl),I(Z7,"GreedyRectangleStripOverlapRemover",1902),D(1903,1,Xr,Uc),l.Ne=function(e,n){return xsn(u(e,226),u(n,226))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Z7,"GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type",1903),D(1849,1,{},kKt),l.a=5,l.e=0,I(Z7,"RectangleStripOverlapRemover",1849),D(1850,1,Xr,rm),l.Ne=function(e,n){return ksn(u(e,226),u(n,226))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Z7,"RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type",1850),D(1852,1,Xr,kh),l.Ne=function(e,n){return hln(u(e,226),u(n,226))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Z7,"RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type",1852),D(417,22,{3:1,34:1,22:1,417:1},O$);var BN,Ght,Kht,RN,e3e=Lr(Z7,"RectangleStripOverlapRemover/OverlapRemovalDirection",417,Pr,B1n,Zan),n3e;D(226,1,{226:1},Oit),I(Z7,"RectangleStripOverlapRemover/RectangleNode",226),D(1851,1,ir,Nnt),l.Cd=function(e){Jmn(this.a,u(e,226))},I(Z7,"RectangleStripOverlapRemover/lambda$1$Type",1851),D(1323,1,Xr,Md),l.Ne=function(e,n){return mTn(u(e,176),u(n,176))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(e0,"PolyominoCompactor/CornerCasesGreaterThanRestComparator",1323),D(1326,1,{},w0),l.Kb=function(e){return u(e,334).a},I(e0,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type",1326),D(1327,1,Kr,Id),l.Mb=function(e){return u(e,332).a},I(e0,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type",1327),D(1328,1,Kr,m0),l.Mb=function(e){return u(e,332).a},I(e0,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type",1328),D(1321,1,Xr,hg),l.Ne=function(e,n){return W8n(u(e,176),u(n,176))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(e0,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator",1321),D(1324,1,{},Gi),l.Kb=function(e){return u(e,334).a},I(e0,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type",1324),D(781,1,Xr,cn),l.Ne=function(e,n){return Dpn(u(e,176),u(n,176))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(e0,"PolyominoCompactor/MinNumOfExtensionsComparator",781),D(1319,1,Xr,Nr),l.Ne=function(e,n){return Rgn(u(e,330),u(n,330))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(e0,"PolyominoCompactor/MinPerimeterComparator",1319),D(1320,1,Xr,Si),l.Ne=function(e,n){return kmn(u(e,330),u(n,330))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(e0,"PolyominoCompactor/MinPerimeterComparatorWithShape",1320),D(1322,1,Xr,vc),l.Ne=function(e,n){return pEn(u(e,176),u(n,176))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(e0,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator",1322),D(1325,1,{},Rc),l.Kb=function(e){return u(e,334).a},I(e0,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type",1325),D(782,1,{},qwt),l.Ve=function(e,n){return L1n(this,u(e,42),u(n,176))},I(e0,"SuccessorCombination",782),D(649,1,{},Eh),l.Ve=function(e,n){var r;return U5n((r=u(e,42),u(n,176),r))},I(e0,"SuccessorJitter",649),D(648,1,{},Zc),l.Ve=function(e,n){var r;return Mkn((r=u(e,42),u(n,176),r))},I(e0,"SuccessorLineByLine",648),D(573,1,{},Qh),l.Ve=function(e,n){var r;return Uxn((r=u(e,42),u(n,176),r))},I(e0,"SuccessorManhattan",573),D(1344,1,{},Od),l.Ve=function(e,n){var r;return ekn((r=u(e,42),u(n,176),r))},I(e0,"SuccessorMaxNormWindingInMathPosSense",1344),D(409,1,{},L4),l.Ve=function(e,n){return kyt(this,e,n)},l.c=!1,l.d=!1,l.e=!1,l.f=!1,I(e0,"SuccessorQuadrantsGeneric",409),D(1345,1,{},cs),l.Kb=function(e){return u(e,334).a},I(e0,"SuccessorQuadrantsGeneric/lambda$0$Type",1345),D(332,22,{3:1,34:1,22:1,332:1},N$),l.a=!1;var jN,$N,zN,qN,r3e=Lr(AV,N8t,332,Pr,P1n,ton),i3e;D(1317,1,{}),l.Ib=function(){var e,n,r,s,o,h;for(r=" ",e=he(0),o=0;o=0?"b"+e+"["+_st(this.a)+"]":"b["+_st(this.a)+"]"):"b_"+Em(this)},I(dN,"FBendpoint",250),D(289,137,{3:1,289:1,96:1,137:1},mZt),l.Ib=function(){return _st(this)},I(dN,"FEdge",289),D(235,137,{3:1,235:1,96:1,137:1},mq);var c_n=I(dN,"FGraph",235);D(453,309,{3:1,453:1,309:1,96:1,137:1},yie),l.Ib=function(){return this.b==null||this.b.length==0?"l["+_st(this.a)+"]":"l_"+this.b},I(dN,"FLabel",453),D(153,309,{3:1,153:1,309:1,96:1,137:1},JQt),l.Ib=function(){return u3t(this)},l.a=0,I(dN,"FNode",153),D(2100,1,{}),l.vf=function(e){Ikt(this,e)},l.wf=function(){xhe(this)},l.d=0,I(H8t,"AbstractForceModel",2100),D(641,2100,{641:1},mce),l.uf=function(e,n){var r,s,o,h,d;return Yge(this.f,e,n),o=ia(Oa(n.d),e.d),d=b.Math.sqrt(o.a*o.a+o.b*o.b),s=b.Math.max(0,d-RS(e.e)/2-RS(n.e)/2),r=M1e(this.e,e,n),r>0?h=-cln(s,this.c)*r:h=Bsn(s,this.b)*u(X(e,(Vf(),jk)),17).a,qd(o,h/d),o},l.vf=function(e){Ikt(this,e),this.a=u(X(e,(Vf(),GU)),17).a,this.c=Rt(Ht(X(e,KU))),this.b=Rt(Ht(X(e,tft)))},l.xf=function(e){return e0&&(h-=Gnn(s,this.a)*r),qd(o,h*this.b/d),o},l.vf=function(e){var n,r,s,o,h,d,m;for(Ikt(this,e),this.b=Rt(Ht(X(e,(Vf(),eft)))),this.c=this.b/u(X(e,GU),17).a,s=e.e.c.length,h=0,o=0,m=new G(e.e);m.a0},l.a=0,l.b=0,l.c=0,I(H8t,"FruchtermanReingoldModel",642),D(860,1,uf,MC),l.hf=function(e){Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,MV),""),"Force Model"),"Determines the model for force calculation."),uCt),(Fp(),ts)),lCt),en((D1(),_n))))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,V8t),""),"Iterations"),"The number of iterations on the force model."),he(300)),ac),Ra),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,U8t),""),"Repulsive Power"),"Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"),he(0)),ac),Ra),en(f0)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Out),""),"FR Temperature"),"The temperature is used as a scaling factor for particle displacements."),n0),Wa),zs),en(_n)))),Bs(e,Out,MV,T3e),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Nut),""),"Eades Repulsion"),"Factor for repulsive forces in Eades' model."),5),Wa),zs),en(_n)))),Bs(e,Nut,MV,x3e),Bpe((new IC,e))};var m3e,v3e,uCt,y3e,x3e,k3e,E3e,T3e;I(K_,"ForceMetaDataProvider",860),D(432,22,{3:1,34:1,22:1,432:1},Vwt);var Zht,UU,lCt=Lr(K_,"ForceModelStrategy",432,Pr,Lhn,ron),C3e;D(Rp,1,uf,IC),l.hf=function(e){Bpe(e)};var S3e,_3e,hCt,GU,fCt,A3e,L3e,D3e,M3e,dCt,I3e,gCt,pCt,O3e,jk,N3e,tft,bCt,P3e,F3e,KU,eft,B3e,R3e,j3e,wCt,$3e;I(K_,"ForceOptions",Rp),D(1001,1,{},Pd),l.sf=function(){var e;return e=new V2t,e},l.tf=function(e){},I(K_,"ForceOptions/ForceFactory",1001);var UN,TA,$k,WU;D(861,1,uf,_j),l.hf=function(e){Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,K8t),""),"Fixed Position"),"Prevent that the node is moved by the layout algorithm."),(Pn(),!1)),(Fp(),oa)),ys),en((D1(),Qs))))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,W8t),""),"Desired Edge Length"),"Either specified for parent nodes or for individual edges, where the latter takes higher precedence."),100),Wa),zs),Hi(_n,lt(ut(G0,1),te,170,0,[f0]))))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Y8t),""),"Layout Dimension"),"Dimensions that are permitted to be altered during layout."),mCt),ts),CCt),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,X8t),""),"Stress Epsilon"),"Termination criterion for the iterative process."),n0),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Q8t),""),"Iteration Limit"),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),he(xi)),ac),Ra),en(_n)))),hpe((new Aj,e))};var z3e,q3e,mCt,H3e,V3e,U3e;I(K_,"StressMetaDataProvider",861),D(1004,1,uf,Aj),l.hf=function(e){hpe(e)};var YU,vCt,yCt,xCt,kCt,ECt,G3e,K3e,W3e,Y3e,TCt,X3e;I(K_,"StressOptions",1004),D(1005,1,{},U1),l.sf=function(){var e;return e=new vZt,e},l.tf=function(e){},I(K_,"StressOptions/StressFactory",1005),D(1110,205,mw,vZt),l.rf=function(e,n){var r,s,o,h,d;for(n.Ug(c2e,1),Ie(Me(ne(e,(TO(),kCt))))?Ie(Me(ne(e,TCt)))||sq((r=new by((xy(),new my(e))),r)):Ade(new V2t,e,n.eh(1)),o=qce(e),s=yge(this.a,o),d=s.Kc();d.Ob();)h=u(d.Pb(),235),!(h.e.c.length<=1)&&(pTn(this.b,h),$xn(this.b),Cu(h.d,new Nd));o=Npe(s),Vpe(o),n.Vg()},I(NV,"StressLayoutProvider",1110),D(1111,1,ir,Nd),l.Cd=function(e){$kt(u(e,453))},I(NV,"StressLayoutProvider/lambda$0$Type",1111),D(1002,1,{},wKt),l.c=0,l.e=0,l.g=0,I(NV,"StressMajorization",1002),D(391,22,{3:1,34:1,22:1,391:1},vrt);var nft,rft,ift,CCt=Lr(NV,"StressMajorization/Dimension",391,Pr,Cfn,ion),Q3e;D(1003,1,Xr,e$),l.Ne=function(e,n){return Ian(this.a,u(e,153),u(n,153))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(NV,"StressMajorization/lambda$0$Type",1003),D(1192,1,{},Cre),I(Ok,"ElkLayered",1192),D(1193,1,ir,n$),l.Cd=function(e){p5n(this.a,u(e,36))},I(Ok,"ElkLayered/lambda$0$Type",1193),D(1194,1,ir,Pnt),l.Cd=function(e){Oan(this.a,u(e,36))},I(Ok,"ElkLayered/lambda$1$Type",1194),D(1281,1,{},cJt);var J3e,Z3e,t4e;I(Ok,"GraphConfigurator",1281),D(770,1,ir,lp),l.Cd=function(e){Nfe(this.a,u(e,10))},I(Ok,"GraphConfigurator/lambda$0$Type",770),D(771,1,{},p4),l.Kb=function(e){return Dxt(),new ln(null,new gn(u(e,30).a,16))},I(Ok,"GraphConfigurator/lambda$1$Type",771),D(772,1,ir,$C),l.Cd=function(e){Nfe(this.a,u(e,10))},I(Ok,"GraphConfigurator/lambda$2$Type",772),D(1109,205,mw,EKt),l.rf=function(e,n){var r;r=Y7n(new CKt,e),$t(ne(e,(De(),A3)))===$t((Ag(),Xp))?_2n(this.a,r,n):Fxn(this.a,r,n),n.$g()||_pe(new d6,r)},I(Ok,"LayeredLayoutProvider",1109),D(367,22,{3:1,34:1,22:1,367:1},qM);var Wf,H0,Qc,cu,Zo,SCt=Lr(Ok,"LayeredPhases",367,Pr,Ldn,son),e4e;D(1717,1,{},Foe),l.i=0;var n4e;I(vN,"ComponentsToCGraphTransformer",1717);var r4e;D(1718,1,{},N2),l.yf=function(e,n){return b.Math.min(e.a!=null?Rt(e.a):e.c.i,n.a!=null?Rt(n.a):n.c.i)},l.zf=function(e,n){return b.Math.min(e.a!=null?Rt(e.a):e.c.i,n.a!=null?Rt(n.a):n.c.i)},I(vN,"ComponentsToCGraphTransformer/1",1718),D(86,1,{86:1}),l.i=0,l.k=!0,l.o=Vs;var sft=I(Q_,"CNode",86);D(469,86,{469:1,86:1},Wmt,ixt),l.Ib=function(){return""},I(vN,"ComponentsToCGraphTransformer/CRectNode",469),D(1688,1,{},I8);var aft,oft;I(vN,"OneDimensionalComponentsCompaction",1688),D(1689,1,{},im),l.Kb=function(e){return bfn(u(e,42))},l.Fb=function(e){return this===e},I(vN,"OneDimensionalComponentsCompaction/lambda$0$Type",1689),D(1690,1,{},Gx),l.Kb=function(e){return L2n(u(e,42))},l.Fb=function(e){return this===e},I(vN,"OneDimensionalComponentsCompaction/lambda$1$Type",1690),D(1720,1,{},Iee),I(Q_,"CGraph",1720),D(194,1,{194:1},Zat),l.b=0,l.c=0,l.e=0,l.g=!0,l.i=Vs,I(Q_,"CGroup",194),D(1719,1,{},hb),l.yf=function(e,n){return b.Math.max(e.a!=null?Rt(e.a):e.c.i,n.a!=null?Rt(n.a):n.c.i)},l.zf=function(e,n){return b.Math.max(e.a!=null?Rt(e.a):e.c.i,n.a!=null?Rt(n.a):n.c.i)},I(Q_,Pbe,1719),D(1721,1,{},O1e),l.d=!1;var i4e,cft=I(Q_,Rbe,1721);D(1722,1,{},Kx),l.Kb=function(e){return Mwt(),Pn(),u(u(e,42).a,86).d.e!=0},l.Fb=function(e){return this===e},I(Q_,jbe,1722),D(833,1,{},syt),l.a=!1,l.b=!1,l.c=!1,l.d=!1,I(Q_,$be,833),D(1898,1,{},Wte),I(PV,zbe,1898);var GN=os(yw,Obe);D(1899,1,{382:1},Ane),l.bf=function(e){Vkn(this,u(e,475))},I(PV,qbe,1899),D(Wb,1,Xr,b4),l.Ne=function(e,n){return Zln(u(e,86),u(n,86))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(PV,Hbe,Wb),D(475,1,{475:1},Gwt),l.a=!1,I(PV,Vbe,475),D(1901,1,Xr,ay),l.Ne=function(e,n){return tyn(u(e,475),u(n,475))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(PV,Ube,1901),D(148,1,{148:1},kE,qvt),l.Fb=function(e){var n;return e==null||u_n!=Wl(e)?!1:(n=u(e,148),Nc(this.c,n.c)&&Nc(this.d,n.d))},l.Hb=function(){return lO(lt(ut(aa,1),Ln,1,5,[this.c,this.d]))},l.Ib=function(){return"("+this.c+ao+this.d+(this.a?"cx":"")+this.b+")"},l.a=!0,l.c=0,l.d=0;var u_n=I(yw,"Point",148);D(416,22,{3:1,34:1,22:1,416:1},F$);var bv,v3,F5,y3,s4e=Lr(yw,"Point/Quadrant",416,Pr,R1n,aon),a4e;D(1708,1,{},xKt),l.b=null,l.c=null,l.d=null,l.e=null,l.f=null;var o4e,c4e,u4e,l4e,h4e;I(yw,"RectilinearConvexHull",1708),D(583,1,{382:1},_H),l.bf=function(e){A0n(this,u(e,148))},l.b=0;var _Ct;I(yw,"RectilinearConvexHull/MaximalElementsEventHandler",583),D(1710,1,Xr,sp),l.Ne=function(e,n){return thn(Ht(e),Ht(n))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(yw,"RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type",1710),D(1709,1,{382:1},Jae),l.bf=function(e){skn(this,u(e,148))},l.a=0,l.b=null,l.c=null,l.d=null,l.e=null,I(yw,"RectilinearConvexHull/RectangleEventHandler",1709),D(1711,1,Xr,BD),l.Ne=function(e,n){return c1n(u(e,148),u(n,148))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(yw,"RectilinearConvexHull/lambda$0$Type",1711),D(1712,1,Xr,$X),l.Ne=function(e,n){return u1n(u(e,148),u(n,148))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(yw,"RectilinearConvexHull/lambda$1$Type",1712),D(1713,1,Xr,P2),l.Ne=function(e,n){return o1n(u(e,148),u(n,148))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(yw,"RectilinearConvexHull/lambda$2$Type",1713),D(1714,1,Xr,Gc),l.Ne=function(e,n){return l1n(u(e,148),u(n,148))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(yw,"RectilinearConvexHull/lambda$3$Type",1714),D(1715,1,Xr,zX),l.Ne=function(e,n){return z3n(u(e,148),u(n,148))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(yw,"RectilinearConvexHull/lambda$4$Type",1715),D(1716,1,{},rre),I(yw,"Scanline",1716),D(2104,1,{}),I(pd,"AbstractGraphPlacer",2104),D(335,1,{335:1},VJt),l.Ff=function(e){return this.Gf(e)?(dn(this.b,u(X(e,(oe(),$g)),21),e),!0):!1},l.Gf=function(e){var n,r,s,o;for(n=u(X(e,(oe(),$g)),21),o=u(Ai(Ri,n),21),s=o.Kc();s.Ob();)if(r=u(s.Pb(),21),!u(Ai(this.b,r),15).dc())return!1;return!0};var Ri;I(pd,"ComponentGroup",335),D(779,2104,{},K2t),l.Hf=function(e){var n,r;for(r=new G(this.a);r.ar&&(A=0,P+=m+s,m=0),k=h.c,B7(h,A+k.a,P+k.b),k1(k),o=b.Math.max(o,A+T.a),m=b.Math.max(m,T.b),A+=T.a+s;n.f.a=o,n.f.b=P+m},l.Jf=function(e,n){var r,s,o,h,d;if($t(X(n,(De(),_3)))===$t((lw(),x3))){for(s=e.Kc();s.Ob();){for(r=u(s.Pb(),36),d=0,h=new G(r.a);h.ar&&!u(X(h,(oe(),$g)),21).Hc((ve(),Hn))||k&&u(X(k,(oe(),$g)),21).Hc((ve(),Jn))||u(X(h,(oe(),$g)),21).Hc((ve(),Gn)))&&($=P,U+=m+s,m=0),T=h.c,u(X(h,(oe(),$g)),21).Hc((ve(),Hn))&&($=o+s),B7(h,$+T.a,U+T.b),o=b.Math.max(o,$+A.a),u(X(h,$g),21).Hc(Er)&&(P=b.Math.max(P,$+A.a+s)),k1(T),m=b.Math.max(m,A.b),$+=A.a+s,k=h;n.f.a=o,n.f.b=U+m},l.Jf=function(e,n){},I(pd,"ModelOrderRowGraphPlacer",1313),D(1311,1,Xr,IB),l.Ne=function(e,n){return _pn(u(e,36),u(n,36))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(pd,"SimpleRowGraphPlacer/1",1311);var d4e;D(1280,1,t0,p1),l.Lb=function(e){var n;return n=u(X(u(e,249).b,(De(),Vo)),75),!!n&&n.b!=0},l.Fb=function(e){return this===e},l.Mb=function(e){var n;return n=u(X(u(e,249).b,(De(),Vo)),75),!!n&&n.b!=0},I(FV,"CompoundGraphPostprocessor/1",1280),D(1279,1,zi,SKt),l.Kf=function(e,n){ehe(this,u(e,36),n)},I(FV,"CompoundGraphPreprocessor",1279),D(452,1,{452:1},Uue),l.c=!1,I(FV,"CompoundGraphPreprocessor/ExternalPort",452),D(249,1,{249:1},wz),l.Ib=function(){return cit(this.c)+":"+_1e(this.b)},I(FV,"CrossHierarchyEdge",249),D(777,1,Xr,_M),l.Ne=function(e,n){return Avn(this,u(e,249),u(n,249))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(FV,"CrossHierarchyEdgeComparator",777),D(304,137,{3:1,304:1,96:1,137:1}),l.p=0,I(au,"LGraphElement",304),D(18,304,{3:1,18:1,304:1,96:1,137:1},Pm),l.Ib=function(){return _1e(this)};var hft=I(au,"LEdge",18);D(36,304,{3:1,20:1,36:1,304:1,96:1,137:1},y4t),l.Jc=function(e){Fa(this,e)},l.Kc=function(){return new G(this.b)},l.Ib=function(){return this.b.c.length==0?"G-unlayered"+Hb(this.a):this.a.c.length==0?"G-layered"+Hb(this.b):"G[layerless"+Hb(this.a)+", layers"+Hb(this.b)+"]"};var g4e=I(au,"LGraph",36),p4e;D(666,1,{}),l.Lf=function(){return this.e.n},l.of=function(e){return X(this.e,e)},l.Mf=function(){return this.e.o},l.Nf=function(){return this.e.p},l.pf=function(e){return qi(this.e,e)},l.Of=function(e){this.e.n.a=e.a,this.e.n.b=e.b},l.Pf=function(e){this.e.o.a=e.a,this.e.o.b=e.b},l.Qf=function(e){this.e.p=e},I(au,"LGraphAdapters/AbstractLShapeAdapter",666),D(473,1,{853:1},z2),l.Rf=function(){var e,n;if(!this.b)for(this.b=C0(this.a.b.c.length),n=new G(this.a.b);n.a0&&kue((qn(n-1,e.length),e.charCodeAt(n-1)),g2e);)--n;if(h> ",e),BH(r)),ni(tu((e.a+="[",e),r.i),"]")),e.a},l.c=!0,l.d=!1;var ICt,OCt,NCt,PCt,FCt,BCt,w4e=I(au,"LPort",12);D(408,1,F0,D4),l.Jc=function(e){Fa(this,e)},l.Kc=function(){var e;return e=new G(this.a.e),new yVt(e)},I(au,"LPort/1",408),D(1309,1,wa,yVt),l.Nb=function(e){Na(this,e)},l.Pb=function(){return u(et(this.a),18).c},l.Ob=function(){return lc(this.a)},l.Qb=function(){PS(this.a)},I(au,"LPort/1/1",1309),D(369,1,F0,k6),l.Jc=function(e){Fa(this,e)},l.Kc=function(){var e;return e=new G(this.a.g),new M2t(e)},I(au,"LPort/2",369),D(776,1,wa,M2t),l.Nb=function(e){Na(this,e)},l.Pb=function(){return u(et(this.a),18).d},l.Ob=function(){return lc(this.a)},l.Qb=function(){PS(this.a)},I(au,"LPort/2/1",776),D(1302,1,F0,uXt),l.Jc=function(e){Fa(this,e)},l.Kc=function(){return new sd(this)},I(au,"LPort/CombineIter",1302),D(208,1,wa,sd),l.Nb=function(e){Na(this,e)},l.Qb=function(){zWt()},l.Ob=function(){return TS(this)},l.Pb=function(){return lc(this.a)?et(this.a):et(this.b)},I(au,"LPort/CombineIter/1",208),D(1303,1,t0,fb),l.Lb=function(e){return cee(e)},l.Fb=function(e){return this===e},l.Mb=function(e){return rl(),u(e,12).g.c.length!=0},I(au,"LPort/lambda$0$Type",1303),D(1304,1,t0,cy),l.Lb=function(e){return uee(e)},l.Fb=function(e){return this===e},l.Mb=function(e){return rl(),u(e,12).e.c.length!=0},I(au,"LPort/lambda$1$Type",1304),D(1305,1,t0,HX),l.Lb=function(e){return rl(),u(e,12).j==(ve(),Hn)},l.Fb=function(e){return this===e},l.Mb=function(e){return rl(),u(e,12).j==(ve(),Hn)},I(au,"LPort/lambda$2$Type",1305),D(1306,1,t0,F2),l.Lb=function(e){return rl(),u(e,12).j==(ve(),Jn)},l.Fb=function(e){return this===e},l.Mb=function(e){return rl(),u(e,12).j==(ve(),Jn)},I(au,"LPort/lambda$3$Type",1306),D(1307,1,t0,VX),l.Lb=function(e){return rl(),u(e,12).j==(ve(),Er)},l.Fb=function(e){return this===e},l.Mb=function(e){return rl(),u(e,12).j==(ve(),Er)},I(au,"LPort/lambda$4$Type",1307),D(1308,1,t0,UX),l.Lb=function(e){return rl(),u(e,12).j==(ve(),Gn)},l.Fb=function(e){return this===e},l.Mb=function(e){return rl(),u(e,12).j==(ve(),Gn)},I(au,"LPort/lambda$5$Type",1308),D(30,304,{3:1,20:1,304:1,30:1,96:1,137:1},eu),l.Jc=function(e){Fa(this,e)},l.Kc=function(){return new G(this.a)},l.Ib=function(){return"L_"+Xo(this.b.b,this,0)+Hb(this.a)},I(au,"Layer",30),D(1330,1,{},CKt),I($p,m2e,1330),D(1334,1,{},Wx),l.Kb=function(e){return Jo(u(e,84))},I($p,"ElkGraphImporter/0methodref$connectableShapeToNode$Type",1334),D(1337,1,{},K9),l.Kb=function(e){return Jo(u(e,84))},I($p,"ElkGraphImporter/1methodref$connectableShapeToNode$Type",1337),D(1331,1,ir,xVt),l.Cd=function(e){V1e(this.a,u(e,123))},I($p,q8t,1331),D(1332,1,ir,kVt),l.Cd=function(e){V1e(this.a,u(e,123))},I($p,v2e,1332),D(1333,1,{},NB),l.Kb=function(e){return new ln(null,new gn(zyt(u(e,74)),16))},I($p,y2e,1333),D(1335,1,Kr,EVt),l.Mb=function(e){return Min(this.a,u(e,27))},I($p,x2e,1335),D(1336,1,{},O8),l.Kb=function(e){return new ln(null,new gn(Wln(u(e,74)),16))},I($p,"ElkGraphImporter/lambda$5$Type",1336),D(1338,1,Kr,TVt),l.Mb=function(e){return Iin(this.a,u(e,27))},I($p,"ElkGraphImporter/lambda$7$Type",1338),D(1339,1,Kr,GX),l.Mb=function(e){return chn(u(e,74))},I($p,"ElkGraphImporter/lambda$8$Type",1339),D(1297,1,{},d6);var m4e;I($p,"ElkGraphLayoutTransferrer",1297),D(1298,1,Kr,CVt),l.Mb=function(e){return yan(this.a,u(e,18))},I($p,"ElkGraphLayoutTransferrer/lambda$0$Type",1298),D(1299,1,ir,SVt),l.Cd=function(e){$M(),ge(this.a,u(e,18))},I($p,"ElkGraphLayoutTransferrer/lambda$1$Type",1299),D(1300,1,Kr,_Vt),l.Mb=function(e){return san(this.a,u(e,18))},I($p,"ElkGraphLayoutTransferrer/lambda$2$Type",1300),D(1301,1,ir,AVt),l.Cd=function(e){$M(),ge(this.a,u(e,18))},I($p,"ElkGraphLayoutTransferrer/lambda$3$Type",1301),D(819,1,{},wvt),I(Yn,"BiLinkedHashMultiMap",819),D(1550,1,zi,N8),l.Kf=function(e,n){Kgn(u(e,36),n)},I(Yn,"CommentNodeMarginCalculator",1550),D(1551,1,{},KX),l.Kb=function(e){return new ln(null,new gn(u(e,30).a,16))},I(Yn,"CommentNodeMarginCalculator/lambda$0$Type",1551),D(1552,1,ir,WX),l.Cd=function(e){K7n(u(e,10))},I(Yn,"CommentNodeMarginCalculator/lambda$1$Type",1552),D(1553,1,zi,YX),l.Kf=function(e,n){Qkn(u(e,36),n)},I(Yn,"CommentPostprocessor",1553),D(1554,1,zi,XX),l.Kf=function(e,n){vCn(u(e,36),n)},I(Yn,"CommentPreprocessor",1554),D(1555,1,zi,QX),l.Kf=function(e,n){gkn(u(e,36),n)},I(Yn,"ConstraintsPostprocessor",1555),D(1556,1,zi,JX),l.Kf=function(e,n){xpn(u(e,36),n)},I(Yn,"EdgeAndLayerConstraintEdgeReverser",1556),D(1557,1,zi,ZX),l.Kf=function(e,n){hwn(u(e,36),n)},I(Yn,"EndLabelPostprocessor",1557),D(1558,1,{},tQ),l.Kb=function(e){return new ln(null,new gn(u(e,30).a,16))},I(Yn,"EndLabelPostprocessor/lambda$0$Type",1558),D(1559,1,Kr,eQ),l.Mb=function(e){return Sdn(u(e,10))},I(Yn,"EndLabelPostprocessor/lambda$1$Type",1559),D(1560,1,ir,nQ),l.Cd=function(e){eyn(u(e,10))},I(Yn,"EndLabelPostprocessor/lambda$2$Type",1560),D(1561,1,zi,rQ),l.Kf=function(e,n){H4n(u(e,36),n)},I(Yn,"EndLabelPreprocessor",1561),D(1562,1,{},RD),l.Kb=function(e){return new ln(null,new gn(u(e,30).a,16))},I(Yn,"EndLabelPreprocessor/lambda$0$Type",1562),D(1563,1,ir,XZt),l.Cd=function(e){Vrn(this.a,this.b,this.c,u(e,10))},l.a=0,l.b=0,l.c=!1,I(Yn,"EndLabelPreprocessor/lambda$1$Type",1563),D(1564,1,Kr,iQ),l.Mb=function(e){return $t(X(u(e,72),(De(),l0)))===$t((cd(),KT))},I(Yn,"EndLabelPreprocessor/lambda$2$Type",1564),D(1565,1,ir,LVt),l.Cd=function(e){Zr(this.a,u(e,72))},I(Yn,"EndLabelPreprocessor/lambda$3$Type",1565),D(1566,1,Kr,sQ),l.Mb=function(e){return $t(X(u(e,72),(De(),l0)))===$t((cd(),$3))},I(Yn,"EndLabelPreprocessor/lambda$4$Type",1566),D(1567,1,ir,DVt),l.Cd=function(e){Zr(this.a,u(e,72))},I(Yn,"EndLabelPreprocessor/lambda$5$Type",1567),D(1615,1,zi,Uet),l.Kf=function(e,n){l2n(u(e,36),n)};var v4e;I(Yn,"EndLabelSorter",1615),D(1616,1,Xr,W9),l.Ne=function(e,n){return Hwn(u(e,465),u(n,465))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Yn,"EndLabelSorter/1",1616),D(465,1,{465:1},kne),I(Yn,"EndLabelSorter/LabelGroup",465),D(1617,1,{},PB),l.Kb=function(e){return jM(),new ln(null,new gn(u(e,30).a,16))},I(Yn,"EndLabelSorter/lambda$0$Type",1617),D(1618,1,Kr,Yx),l.Mb=function(e){return jM(),u(e,10).k==(Un(),xs)},I(Yn,"EndLabelSorter/lambda$1$Type",1618),D(1619,1,ir,aQ),l.Cd=function(e){r4n(u(e,10))},I(Yn,"EndLabelSorter/lambda$2$Type",1619),D(1620,1,Kr,oQ),l.Mb=function(e){return jM(),$t(X(u(e,72),(De(),l0)))===$t((cd(),$3))},I(Yn,"EndLabelSorter/lambda$3$Type",1620),D(1621,1,Kr,cQ),l.Mb=function(e){return jM(),$t(X(u(e,72),(De(),l0)))===$t((cd(),KT))},I(Yn,"EndLabelSorter/lambda$4$Type",1621),D(1568,1,zi,uQ),l.Kf=function(e,n){cTn(this,u(e,36))},l.b=0,l.c=0,I(Yn,"FinalSplineBendpointsCalculator",1568),D(1569,1,{},lQ),l.Kb=function(e){return new ln(null,new gn(u(e,30).a,16))},I(Yn,"FinalSplineBendpointsCalculator/lambda$0$Type",1569),D(1570,1,{},Y9),l.Kb=function(e){return new ln(null,new Lm(new rr(sr(_s(u(e,10)).a.Kc(),new z))))},I(Yn,"FinalSplineBendpointsCalculator/lambda$1$Type",1570),D(1571,1,Kr,jD),l.Mb=function(e){return!go(u(e,18))},I(Yn,"FinalSplineBendpointsCalculator/lambda$2$Type",1571),D(1572,1,Kr,FB),l.Mb=function(e){return qi(u(e,18),(oe(),Lw))},I(Yn,"FinalSplineBendpointsCalculator/lambda$3$Type",1572),D(1573,1,ir,MVt),l.Cd=function(e){wEn(this.a,u(e,131))},I(Yn,"FinalSplineBendpointsCalculator/lambda$4$Type",1573),D(1574,1,ir,w4),l.Cd=function(e){IO(u(e,18).a)},I(Yn,"FinalSplineBendpointsCalculator/lambda$5$Type",1574),D(803,1,zi,I2t),l.Kf=function(e,n){e9n(this,u(e,36),n)},I(Yn,"GraphTransformer",803),D(517,22,{3:1,34:1,22:1,517:1},Uwt);var dft,KN,y4e=Lr(Yn,"GraphTransformer/Mode",517,Pr,Dhn,hcn),x4e;D(1575,1,zi,m4),l.Kf=function(e,n){E6n(u(e,36),n)},I(Yn,"HierarchicalNodeResizingProcessor",1575),D(1576,1,zi,hQ),l.Kf=function(e,n){qgn(u(e,36),n)},I(Yn,"HierarchicalPortConstraintProcessor",1576),D(1577,1,Xr,Lf),l.Ne=function(e,n){return lmn(u(e,10),u(n,10))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Yn,"HierarchicalPortConstraintProcessor/NodeComparator",1577),D(1578,1,zi,Xx),l.Kf=function(e,n){h7n(u(e,36),n)},I(Yn,"HierarchicalPortDummySizeProcessor",1578),D(1579,1,zi,fQ),l.Kf=function(e,n){x8n(this,u(e,36),n)},l.a=0,I(Yn,"HierarchicalPortOrthogonalEdgeRouter",1579),D(1580,1,Xr,P8),l.Ne=function(e,n){return Esn(u(e,10),u(n,10))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Yn,"HierarchicalPortOrthogonalEdgeRouter/1",1580),D(1581,1,Xr,v0),l.Ne=function(e,n){return L0n(u(e,10),u(n,10))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Yn,"HierarchicalPortOrthogonalEdgeRouter/2",1581),D(1582,1,zi,dQ),l.Kf=function(e,n){R3n(u(e,36),n)},I(Yn,"HierarchicalPortPositionProcessor",1582),D(1583,1,zi,om),l.Kf=function(e,n){tSn(this,u(e,36))},l.a=0,l.c=0;var XU,QU;I(Yn,"HighDegreeNodeLayeringProcessor",1583),D(580,1,{580:1},gQ),l.b=-1,l.d=-1,I(Yn,"HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation",580),D(1584,1,{},pQ),l.Kb=function(e){return gI(),ua(u(e,10))},l.Fb=function(e){return this===e},I(Yn,"HighDegreeNodeLayeringProcessor/lambda$0$Type",1584),D(1585,1,{},BB),l.Kb=function(e){return gI(),_s(u(e,10))},l.Fb=function(e){return this===e},I(Yn,"HighDegreeNodeLayeringProcessor/lambda$1$Type",1585),D(1591,1,zi,bQ),l.Kf=function(e,n){r7n(this,u(e,36),n)},I(Yn,"HyperedgeDummyMerger",1591),D(804,1,{},Ivt),l.a=!1,l.b=!1,l.c=!1,I(Yn,"HyperedgeDummyMerger/MergeState",804),D(1592,1,{},X9),l.Kb=function(e){return new ln(null,new gn(u(e,30).a,16))},I(Yn,"HyperedgeDummyMerger/lambda$0$Type",1592),D(1593,1,{},Q9),l.Kb=function(e){return new ln(null,new gn(u(e,10).j,16))},I(Yn,"HyperedgeDummyMerger/lambda$1$Type",1593),D(1594,1,ir,RB),l.Cd=function(e){u(e,12).p=-1},I(Yn,"HyperedgeDummyMerger/lambda$2$Type",1594),D(1595,1,zi,$D),l.Kf=function(e,n){e7n(u(e,36),n)},I(Yn,"HypernodesProcessor",1595),D(1596,1,zi,Qx),l.Kf=function(e,n){l7n(u(e,36),n)},I(Yn,"InLayerConstraintProcessor",1596),D(1597,1,zi,wQ),l.Kf=function(e,n){rpn(u(e,36),n)},I(Yn,"InnermostNodeMarginCalculator",1597),D(1598,1,zi,jB),l.Kf=function(e,n){pCn(this,u(e,36))},l.a=Vs,l.b=Vs,l.c=Zi,l.d=Zi;var l_n=I(Yn,"InteractiveExternalPortPositioner",1598);D(1599,1,{},$B),l.Kb=function(e){return u(e,18).d.i},l.Fb=function(e){return this===e},I(Yn,"InteractiveExternalPortPositioner/lambda$0$Type",1599),D(1600,1,{},IVt),l.Kb=function(e){return Tsn(this.a,Ht(e))},l.Fb=function(e){return this===e},I(Yn,"InteractiveExternalPortPositioner/lambda$1$Type",1600),D(1601,1,{},mQ),l.Kb=function(e){return u(e,18).c.i},l.Fb=function(e){return this===e},I(Yn,"InteractiveExternalPortPositioner/lambda$2$Type",1601),D(1602,1,{},OVt),l.Kb=function(e){return Csn(this.a,Ht(e))},l.Fb=function(e){return this===e},I(Yn,"InteractiveExternalPortPositioner/lambda$3$Type",1602),D(1603,1,{},NVt),l.Kb=function(e){return kan(this.a,Ht(e))},l.Fb=function(e){return this===e},I(Yn,"InteractiveExternalPortPositioner/lambda$4$Type",1603),D(1604,1,{},PVt),l.Kb=function(e){return Ean(this.a,Ht(e))},l.Fb=function(e){return this===e},I(Yn,"InteractiveExternalPortPositioner/lambda$5$Type",1604),D(81,22,{3:1,34:1,22:1,81:1,196:1},Ns),l.dg=function(){switch(this.g){case 15:return new pR;case 22:return new MJ;case 47:return new NJ;case 28:case 35:return new CQ;case 32:return new N8;case 42:return new YX;case 1:return new XX;case 41:return new QX;case 56:return new I2t((r7(),KN));case 0:return new I2t((r7(),dft));case 2:return new JX;case 54:return new ZX;case 33:return new rQ;case 51:return new uQ;case 55:return new m4;case 13:return new hQ;case 38:return new Xx;case 44:return new fQ;case 40:return new dQ;case 9:return new om;case 49:return new PJt;case 37:return new bQ;case 43:return new $D;case 27:return new Qx;case 30:return new wQ;case 3:return new jB;case 18:return new yQ;case 29:return new xQ;case 5:return new nE;case 50:return new vQ;case 34:return new Lj;case 36:return new v4;case 52:return new Uet;case 11:return new F8;case 7:return new Get;case 39:return new zD;case 45:return new uy;case 16:return new B8;case 10:return new _Xt;case 48:return new zB;case 21:return new qD;case 23:return new Xnt((Hm(),UA));case 8:return new HD;case 12:return new _Q;case 4:return new VD;case 19:return new Ij;case 17:return new IQ;case 53:return new OQ;case 6:return new WB;case 25:return new AKt;case 46:return new BQ;case 31:return new EZt;case 14:return new UQ;case 26:return new BJ;case 20:return new JB;case 24:return new Xnt((Hm(),eK));default:throw at(new zn(jut+(this.f!=null?this.f:""+this.g)))}};var RCt,jCt,$Ct,zCt,qCt,HCt,VCt,UCt,GCt,KCt,B5,JU,ZU,WCt,YCt,XCt,QCt,JCt,ZCt,tSt,CA,eSt,nSt,rSt,iSt,sSt,gft,tG,eG,aSt,nG,rG,iG,vT,k3,E3,oSt,sG,aG,cSt,oG,cG,uSt,lSt,hSt,fSt,uG,pft,WN,lG,hG,fG,dG,dSt,gSt,pSt,bSt,h_n=Lr(Yn,$ut,81,Pr,Bde,lon),k4e;D(1605,1,zi,yQ),l.Kf=function(e,n){dCn(u(e,36),n)},I(Yn,"InvertedPortProcessor",1605),D(1606,1,zi,xQ),l.Kf=function(e,n){uEn(u(e,36),n)},I(Yn,"LabelAndNodeSizeProcessor",1606),D(1607,1,Kr,kQ),l.Mb=function(e){return u(e,10).k==(Un(),xs)},I(Yn,"LabelAndNodeSizeProcessor/lambda$0$Type",1607),D(1608,1,Kr,EQ),l.Mb=function(e){return u(e,10).k==(Un(),Ms)},I(Yn,"LabelAndNodeSizeProcessor/lambda$1$Type",1608),D(1609,1,ir,QZt),l.Cd=function(e){Urn(this.b,this.a,this.c,u(e,10))},l.a=!1,l.c=!1,I(Yn,"LabelAndNodeSizeProcessor/lambda$2$Type",1609),D(1610,1,zi,nE),l.Kf=function(e,n){j9n(u(e,36),n)};var E4e;I(Yn,"LabelDummyInserter",1610),D(1611,1,t0,y0),l.Lb=function(e){return $t(X(u(e,72),(De(),l0)))===$t((cd(),GT))},l.Fb=function(e){return this===e},l.Mb=function(e){return $t(X(u(e,72),(De(),l0)))===$t((cd(),GT))},I(Yn,"LabelDummyInserter/1",1611),D(1612,1,zi,vQ),l.Kf=function(e,n){_9n(u(e,36),n)},I(Yn,"LabelDummyRemover",1612),D(1613,1,Kr,sm),l.Mb=function(e){return Ie(Me(X(u(e,72),(De(),r1t))))},I(Yn,"LabelDummyRemover/lambda$0$Type",1613),D(1378,1,zi,Lj),l.Kf=function(e,n){v9n(this,u(e,36),n)},l.a=null;var bft;I(Yn,"LabelDummySwitcher",1378),D(292,1,{292:1},F0e),l.c=0,l.d=null,l.f=0,I(Yn,"LabelDummySwitcher/LabelDummyInfo",292),D(1379,1,{},TQ),l.Kb=function(e){return ok(),new ln(null,new gn(u(e,30).a,16))},I(Yn,"LabelDummySwitcher/lambda$0$Type",1379),D(1380,1,Kr,J9),l.Mb=function(e){return ok(),u(e,10).k==(Un(),Vc)},I(Yn,"LabelDummySwitcher/lambda$1$Type",1380),D(1381,1,{},FVt),l.Kb=function(e){return aan(this.a,u(e,10))},I(Yn,"LabelDummySwitcher/lambda$2$Type",1381),D(1382,1,ir,BVt),l.Cd=function(e){Sln(this.a,u(e,292))},I(Yn,"LabelDummySwitcher/lambda$3$Type",1382),D(1383,1,Xr,Z9),l.Ne=function(e,n){return Xun(u(e,292),u(n,292))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Yn,"LabelDummySwitcher/lambda$4$Type",1383),D(802,1,zi,CQ),l.Kf=function(e,n){c0n(u(e,36),n)},I(Yn,"LabelManagementProcessor",802),D(1614,1,zi,v4),l.Kf=function(e,n){jkn(u(e,36),n)},I(Yn,"LabelSideSelector",1614),D(1622,1,zi,F8),l.Kf=function(e,n){S7n(u(e,36),n)},I(Yn,"LayerConstraintPostprocessor",1622),D(1623,1,zi,Get),l.Kf=function(e,n){xxn(u(e,36),n)};var wSt;I(Yn,"LayerConstraintPreprocessor",1623),D(371,22,{3:1,34:1,22:1,371:1},R$);var YN,gG,pG,wft,T4e=Lr(Yn,"LayerConstraintPreprocessor/HiddenNodeConnections",371,Pr,$1n,hon),C4e;D(1624,1,zi,zD),l.Kf=function(e,n){HTn(u(e,36),n)},I(Yn,"LayerSizeAndGraphHeightCalculator",1624),D(1625,1,zi,uy),l.Kf=function(e,n){T6n(u(e,36),n)},I(Yn,"LongEdgeJoiner",1625),D(1626,1,zi,B8),l.Kf=function(e,n){vTn(u(e,36),n)},I(Yn,"LongEdgeSplitter",1626),D(1627,1,zi,_Xt),l.Kf=function(e,n){tCn(this,u(e,36),n)},l.e=0,l.f=0,l.j=0,l.k=0,l.n=0,l.o=0;var S4e,_4e;I(Yn,"NodePromotion",1627),D(1628,1,Xr,SQ),l.Ne=function(e,n){return dbn(u(e,10),u(n,10))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Yn,"NodePromotion/1",1628),D(1629,1,Xr,tC),l.Ne=function(e,n){return gbn(u(e,10),u(n,10))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Yn,"NodePromotion/2",1629),D(1630,1,{},Fd),l.Kb=function(e){return u(e,42),vz(),Pn(),!0},l.Fb=function(e){return this===e},I(Yn,"NodePromotion/lambda$0$Type",1630),D(1631,1,{},zVt),l.Kb=function(e){return ufn(this.a,u(e,42))},l.Fb=function(e){return this===e},l.a=0,I(Yn,"NodePromotion/lambda$1$Type",1631),D(1632,1,{},qVt),l.Kb=function(e){return cfn(this.a,u(e,42))},l.Fb=function(e){return this===e},l.a=0,I(Yn,"NodePromotion/lambda$2$Type",1632),D(1633,1,zi,zB),l.Kf=function(e,n){WCn(u(e,36),n)},I(Yn,"NorthSouthPortPostprocessor",1633),D(1634,1,zi,qD),l.Kf=function(e,n){ACn(u(e,36),n)},I(Yn,"NorthSouthPortPreprocessor",1634),D(1635,1,Xr,R8),l.Ne=function(e,n){return Apn(u(e,12),u(n,12))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Yn,"NorthSouthPortPreprocessor/lambda$0$Type",1635),D(1636,1,zi,HD),l.Kf=function(e,n){VEn(u(e,36),n)},I(Yn,"PartitionMidprocessor",1636),D(1637,1,Kr,qB),l.Mb=function(e){return qi(u(e,10),(De(),OT))},I(Yn,"PartitionMidprocessor/lambda$0$Type",1637),D(1638,1,ir,HVt),l.Cd=function(e){uhn(this.a,u(e,10))},I(Yn,"PartitionMidprocessor/lambda$1$Type",1638),D(1639,1,zi,_Q),l.Kf=function(e,n){U6n(u(e,36),n)},I(Yn,"PartitionPostprocessor",1639),D(1640,1,zi,VD),l.Kf=function(e,n){sxn(u(e,36),n)},I(Yn,"PartitionPreprocessor",1640),D(1641,1,Kr,AQ),l.Mb=function(e){return qi(u(e,10),(De(),OT))},I(Yn,"PartitionPreprocessor/lambda$0$Type",1641),D(1642,1,{},LQ),l.Kb=function(e){return new ln(null,new Lm(new rr(sr(_s(u(e,10)).a.Kc(),new z))))},I(Yn,"PartitionPreprocessor/lambda$1$Type",1642),D(1643,1,Kr,HB),l.Mb=function(e){return Ywn(u(e,18))},I(Yn,"PartitionPreprocessor/lambda$2$Type",1643),D(1644,1,ir,Jx),l.Cd=function(e){Upn(u(e,18))},I(Yn,"PartitionPreprocessor/lambda$3$Type",1644),D(1645,1,zi,Ij),l.Kf=function(e,n){TEn(u(e,36),n)};var mSt,A4e,L4e,D4e,vSt,ySt;I(Yn,"PortListSorter",1645),D(1648,1,Xr,VB),l.Ne=function(e,n){return Sie(u(e,12),u(n,12))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Yn,"PortListSorter/lambda$0$Type",1648),D(1650,1,Xr,Zx),l.Ne=function(e,n){return age(u(e,12),u(n,12))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Yn,"PortListSorter/lambda$1$Type",1650),D(1646,1,{},DQ),l.Kb=function(e){return g7(),u(e,12).e},I(Yn,"PortListSorter/lambda$2$Type",1646),D(1647,1,{},UD),l.Kb=function(e){return g7(),u(e,12).g},I(Yn,"PortListSorter/lambda$3$Type",1647),D(1649,1,Xr,MQ),l.Ne=function(e,n){return vvn(u(e,12),u(n,12))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Yn,"PortListSorter/lambda$4$Type",1649),D(1651,1,zi,IQ),l.Kf=function(e,n){Nxn(u(e,36),n)},I(Yn,"PortSideProcessor",1651),D(1652,1,zi,OQ),l.Kf=function(e,n){P8n(u(e,36),n)},I(Yn,"ReversedEdgeRestorer",1652),D(1657,1,zi,AKt),l.Kf=function(e,n){evn(this,u(e,36),n)},I(Yn,"SelfLoopPortRestorer",1657),D(1658,1,{},NQ),l.Kb=function(e){return new ln(null,new gn(u(e,30).a,16))},I(Yn,"SelfLoopPortRestorer/lambda$0$Type",1658),D(1659,1,Kr,UB),l.Mb=function(e){return u(e,10).k==(Un(),xs)},I(Yn,"SelfLoopPortRestorer/lambda$1$Type",1659),D(1660,1,Kr,PQ),l.Mb=function(e){return qi(u(e,10),(oe(),kv))},I(Yn,"SelfLoopPortRestorer/lambda$2$Type",1660),D(1661,1,{},FQ),l.Kb=function(e){return u(X(u(e,10),(oe(),kv)),337)},I(Yn,"SelfLoopPortRestorer/lambda$3$Type",1661),D(1662,1,ir,jVt),l.Cd=function(e){b4n(this.a,u(e,337))},I(Yn,"SelfLoopPortRestorer/lambda$4$Type",1662),D(805,1,ir,GB),l.Cd=function(e){L4n(u(e,105))},I(Yn,"SelfLoopPortRestorer/lambda$5$Type",805),D(1663,1,zi,BQ),l.Kf=function(e,n){omn(u(e,36),n)},I(Yn,"SelfLoopPostProcessor",1663),D(1664,1,{},RQ),l.Kb=function(e){return new ln(null,new gn(u(e,30).a,16))},I(Yn,"SelfLoopPostProcessor/lambda$0$Type",1664),D(1665,1,Kr,jQ),l.Mb=function(e){return u(e,10).k==(Un(),xs)},I(Yn,"SelfLoopPostProcessor/lambda$1$Type",1665),D(1666,1,Kr,$Q),l.Mb=function(e){return qi(u(e,10),(oe(),kv))},I(Yn,"SelfLoopPostProcessor/lambda$2$Type",1666),D(1667,1,ir,KB),l.Cd=function(e){myn(u(e,10))},I(Yn,"SelfLoopPostProcessor/lambda$3$Type",1667),D(1668,1,{},zQ),l.Kb=function(e){return new ln(null,new gn(u(e,105).f,1))},I(Yn,"SelfLoopPostProcessor/lambda$4$Type",1668),D(1669,1,ir,RVt),l.Cd=function(e){V1n(this.a,u(e,340))},I(Yn,"SelfLoopPostProcessor/lambda$5$Type",1669),D(1670,1,Kr,qQ),l.Mb=function(e){return!!u(e,105).i},I(Yn,"SelfLoopPostProcessor/lambda$6$Type",1670),D(1671,1,ir,$Vt),l.Cd=function(e){Vnn(this.a,u(e,105))},I(Yn,"SelfLoopPostProcessor/lambda$7$Type",1671),D(1653,1,zi,WB),l.Kf=function(e,n){u6n(u(e,36),n)},I(Yn,"SelfLoopPreProcessor",1653),D(1654,1,{},YB),l.Kb=function(e){return new ln(null,new gn(u(e,105).f,1))},I(Yn,"SelfLoopPreProcessor/lambda$0$Type",1654),D(1655,1,{},XB),l.Kb=function(e){return u(e,340).a},I(Yn,"SelfLoopPreProcessor/lambda$1$Type",1655),D(1656,1,ir,HQ),l.Cd=function(e){Kin(u(e,18))},I(Yn,"SelfLoopPreProcessor/lambda$2$Type",1656),D(1672,1,zi,EZt),l.Kf=function(e,n){Q3n(this,u(e,36),n)},I(Yn,"SelfLoopRouter",1672),D(1673,1,{},VQ),l.Kb=function(e){return new ln(null,new gn(u(e,30).a,16))},I(Yn,"SelfLoopRouter/lambda$0$Type",1673),D(1674,1,Kr,j8),l.Mb=function(e){return u(e,10).k==(Un(),xs)},I(Yn,"SelfLoopRouter/lambda$1$Type",1674),D(1675,1,Kr,t6),l.Mb=function(e){return qi(u(e,10),(oe(),kv))},I(Yn,"SelfLoopRouter/lambda$2$Type",1675),D(1676,1,{},eC),l.Kb=function(e){return u(X(u(e,10),(oe(),kv)),337)},I(Yn,"SelfLoopRouter/lambda$3$Type",1676),D(1677,1,ir,oXt),l.Cd=function(e){rhn(this.a,this.b,u(e,337))},I(Yn,"SelfLoopRouter/lambda$4$Type",1677),D(1678,1,zi,UQ),l.Kf=function(e,n){_kn(u(e,36),n)},I(Yn,"SemiInteractiveCrossMinProcessor",1678),D(1679,1,Kr,GD),l.Mb=function(e){return u(e,10).k==(Un(),xs)},I(Yn,"SemiInteractiveCrossMinProcessor/lambda$0$Type",1679),D(1680,1,Kr,nC),l.Mb=function(e){return $te(u(e,10))._b((De(),I3))},I(Yn,"SemiInteractiveCrossMinProcessor/lambda$1$Type",1680),D(1681,1,Xr,KD),l.Ne=function(e,n){return Vgn(u(e,10),u(n,10))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Yn,"SemiInteractiveCrossMinProcessor/lambda$2$Type",1681),D(1682,1,{},QB),l.Ve=function(e,n){return lhn(u(e,10),u(n,10))},I(Yn,"SemiInteractiveCrossMinProcessor/lambda$3$Type",1682),D(1684,1,zi,JB),l.Kf=function(e,n){Q7n(u(e,36),n)},I(Yn,"SortByInputModelProcessor",1684),D(1685,1,Kr,GQ),l.Mb=function(e){return u(e,12).g.c.length!=0},I(Yn,"SortByInputModelProcessor/lambda$0$Type",1685),D(1686,1,ir,VVt),l.Cd=function(e){N4n(this.a,u(e,12))},I(Yn,"SortByInputModelProcessor/lambda$1$Type",1686),D(1759,817,{},Xoe),l.df=function(e){var n,r,s,o;switch(this.c=e,this.a.g){case 2:n=new fe,ms(_i(new ln(null,new gn(this.c.a.b,16)),new rJ),new bXt(this,n)),OO(this,new WQ),Cu(n,new ZB),n.c.length=0,ms(_i(new ln(null,new gn(this.c.a.b,16)),new tR),new GVt(n)),OO(this,new YQ),Cu(n,new XQ),n.c.length=0,r=QQt(hat(Ny(new ln(null,new gn(this.c.a.b,16)),new KVt(this))),new QQ),ms(new ln(null,new gn(this.c.a.a,16)),new lXt(r,n)),OO(this,new ZQ),Cu(n,new eR),n.c.length=0;break;case 3:s=new fe,OO(this,new KQ),o=QQt(hat(Ny(new ln(null,new gn(this.c.a.b,16)),new UVt(this))),new JQ),ms(_i(new ln(null,new gn(this.c.a.b,16)),new tJ),new fXt(o,s)),OO(this,new eJ),Cu(s,new nJ),s.c.length=0;break;default:throw at(new pKt)}},l.b=0,I(Gs,"EdgeAwareScanlineConstraintCalculation",1759),D(1760,1,t0,KQ),l.Lb=function(e){return Lt(u(e,60).g,154)},l.Fb=function(e){return this===e},l.Mb=function(e){return Lt(u(e,60).g,154)},I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$0$Type",1760),D(1761,1,{},UVt),l.Ye=function(e){return w5n(this.a,u(e,60))},I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$1$Type",1761),D(1769,1,kV,cXt),l.de=function(){x_(this.a,this.b,-1)},l.b=0,I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$10$Type",1769),D(1771,1,t0,WQ),l.Lb=function(e){return Lt(u(e,60).g,154)},l.Fb=function(e){return this===e},l.Mb=function(e){return Lt(u(e,60).g,154)},I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$11$Type",1771),D(1772,1,ir,ZB),l.Cd=function(e){u(e,380).de()},I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$12$Type",1772),D(1773,1,Kr,tR),l.Mb=function(e){return Lt(u(e,60).g,10)},I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$13$Type",1773),D(1775,1,ir,GVt),l.Cd=function(e){B2n(this.a,u(e,60))},I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$14$Type",1775),D(1774,1,kV,dXt),l.de=function(){x_(this.b,this.a,-1)},l.a=0,I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$15$Type",1774),D(1776,1,t0,YQ),l.Lb=function(e){return Lt(u(e,60).g,10)},l.Fb=function(e){return this===e},l.Mb=function(e){return Lt(u(e,60).g,10)},I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$16$Type",1776),D(1777,1,ir,XQ),l.Cd=function(e){u(e,380).de()},I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$17$Type",1777),D(1778,1,{},KVt),l.Ye=function(e){return m5n(this.a,u(e,60))},I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$18$Type",1778),D(1779,1,{},QQ),l.We=function(){return 0},I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$19$Type",1779),D(1762,1,{},JQ),l.We=function(){return 0},I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$2$Type",1762),D(1781,1,ir,lXt),l.Cd=function(e){qun(this.a,this.b,u(e,316))},l.a=0,I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$20$Type",1781),D(1780,1,kV,hXt),l.de=function(){fde(this.a,this.b,-1)},l.b=0,I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$21$Type",1780),D(1782,1,t0,ZQ),l.Lb=function(e){return u(e,60),!0},l.Fb=function(e){return this===e},l.Mb=function(e){return u(e,60),!0},I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$22$Type",1782),D(1783,1,ir,eR),l.Cd=function(e){u(e,380).de()},I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$23$Type",1783),D(1763,1,Kr,tJ),l.Mb=function(e){return Lt(u(e,60).g,10)},I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$3$Type",1763),D(1765,1,ir,fXt),l.Cd=function(e){Hun(this.a,this.b,u(e,60))},l.a=0,I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$4$Type",1765),D(1764,1,kV,gXt),l.de=function(){x_(this.b,this.a,-1)},l.a=0,I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$5$Type",1764),D(1766,1,t0,eJ),l.Lb=function(e){return u(e,60),!0},l.Fb=function(e){return this===e},l.Mb=function(e){return u(e,60),!0},I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$6$Type",1766),D(1767,1,ir,nJ),l.Cd=function(e){u(e,380).de()},I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$7$Type",1767),D(1768,1,Kr,rJ),l.Mb=function(e){return Lt(u(e,60).g,154)},I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$8$Type",1768),D(1770,1,ir,bXt),l.Cd=function(e){ogn(this.a,this.b,u(e,60))},I(Gs,"EdgeAwareScanlineConstraintCalculation/lambda$9$Type",1770),D(1586,1,zi,PJt),l.Kf=function(e,n){CTn(this,u(e,36),n)};var M4e;I(Gs,"HorizontalGraphCompactor",1586),D(1587,1,{},WVt),l.ff=function(e,n){var r,s,o;return e4t(e,n)||(r=J4(e),s=J4(n),r&&r.k==(Un(),Ms)||s&&s.k==(Un(),Ms))?0:(o=u(X(this.a.a,(oe(),G5)),312),Lsn(o,r?r.k:(Un(),fa),s?s.k:(Un(),fa)))},l.gf=function(e,n){var r,s,o;return e4t(e,n)?1:(r=J4(e),s=J4(n),o=u(X(this.a.a,(oe(),G5)),312),Gmt(o,r?r.k:(Un(),fa),s?s.k:(Un(),fa)))},I(Gs,"HorizontalGraphCompactor/1",1587),D(1588,1,{},nR),l.ef=function(e,n){return ZC(),e.a.i==0},I(Gs,"HorizontalGraphCompactor/lambda$0$Type",1588),D(1589,1,{},YVt),l.ef=function(e,n){return dhn(this.a,e,n)},I(Gs,"HorizontalGraphCompactor/lambda$1$Type",1589),D(1730,1,{},Cae);var I4e,O4e;I(Gs,"LGraphToCGraphTransformer",1730),D(1738,1,Kr,rC),l.Mb=function(e){return e!=null},I(Gs,"LGraphToCGraphTransformer/0methodref$nonNull$Type",1738),D(1731,1,{},iJ),l.Kb=function(e){return Bf(),rc(X(u(u(e,60).g,10),(oe(),Li)))},I(Gs,"LGraphToCGraphTransformer/lambda$0$Type",1731),D(1732,1,{},sJ),l.Kb=function(e){return Bf(),Fue(u(u(e,60).g,154))},I(Gs,"LGraphToCGraphTransformer/lambda$1$Type",1732),D(1741,1,Kr,rR),l.Mb=function(e){return Bf(),Lt(u(e,60).g,10)},I(Gs,"LGraphToCGraphTransformer/lambda$10$Type",1741),D(1742,1,ir,aJ),l.Cd=function(e){mhn(u(e,60))},I(Gs,"LGraphToCGraphTransformer/lambda$11$Type",1742),D(1743,1,Kr,oJ),l.Mb=function(e){return Bf(),Lt(u(e,60).g,154)},I(Gs,"LGraphToCGraphTransformer/lambda$12$Type",1743),D(1747,1,ir,cJ),l.Cd=function(e){Ybn(u(e,60))},I(Gs,"LGraphToCGraphTransformer/lambda$13$Type",1747),D(1744,1,ir,XVt),l.Cd=function(e){kin(this.a,u(e,8))},l.a=0,I(Gs,"LGraphToCGraphTransformer/lambda$14$Type",1744),D(1745,1,ir,QVt),l.Cd=function(e){Tin(this.a,u(e,116))},l.a=0,I(Gs,"LGraphToCGraphTransformer/lambda$15$Type",1745),D(1746,1,ir,JVt),l.Cd=function(e){Ein(this.a,u(e,8))},l.a=0,I(Gs,"LGraphToCGraphTransformer/lambda$16$Type",1746),D(1748,1,{},uJ),l.Kb=function(e){return Bf(),new ln(null,new Lm(new rr(sr(_s(u(e,10)).a.Kc(),new z))))},I(Gs,"LGraphToCGraphTransformer/lambda$17$Type",1748),D(1749,1,Kr,lJ),l.Mb=function(e){return Bf(),go(u(e,18))},I(Gs,"LGraphToCGraphTransformer/lambda$18$Type",1749),D(1750,1,ir,ZVt),l.Cd=function(e){j0n(this.a,u(e,18))},I(Gs,"LGraphToCGraphTransformer/lambda$19$Type",1750),D(1734,1,ir,tUt),l.Cd=function(e){f1n(this.a,u(e,154))},I(Gs,"LGraphToCGraphTransformer/lambda$2$Type",1734),D(1751,1,{},hJ),l.Kb=function(e){return Bf(),new ln(null,new gn(u(e,30).a,16))},I(Gs,"LGraphToCGraphTransformer/lambda$20$Type",1751),D(1752,1,{},iR),l.Kb=function(e){return Bf(),new ln(null,new Lm(new rr(sr(_s(u(e,10)).a.Kc(),new z))))},I(Gs,"LGraphToCGraphTransformer/lambda$21$Type",1752),D(1753,1,{},fJ),l.Kb=function(e){return Bf(),u(X(u(e,18),(oe(),Lw)),15)},I(Gs,"LGraphToCGraphTransformer/lambda$22$Type",1753),D(1754,1,Kr,sR),l.Mb=function(e){return Dsn(u(e,15))},I(Gs,"LGraphToCGraphTransformer/lambda$23$Type",1754),D(1755,1,ir,eUt),l.Cd=function(e){a5n(this.a,u(e,15))},I(Gs,"LGraphToCGraphTransformer/lambda$24$Type",1755),D(1733,1,ir,wXt),l.Cd=function(e){udn(this.a,this.b,u(e,154))},I(Gs,"LGraphToCGraphTransformer/lambda$3$Type",1733),D(1735,1,{},dJ),l.Kb=function(e){return Bf(),new ln(null,new gn(u(e,30).a,16))},I(Gs,"LGraphToCGraphTransformer/lambda$4$Type",1735),D(1736,1,{},gJ),l.Kb=function(e){return Bf(),new ln(null,new Lm(new rr(sr(_s(u(e,10)).a.Kc(),new z))))},I(Gs,"LGraphToCGraphTransformer/lambda$5$Type",1736),D(1737,1,{},pJ),l.Kb=function(e){return Bf(),u(X(u(e,18),(oe(),Lw)),15)},I(Gs,"LGraphToCGraphTransformer/lambda$6$Type",1737),D(1739,1,ir,nUt),l.Cd=function(e){v5n(this.a,u(e,15))},I(Gs,"LGraphToCGraphTransformer/lambda$8$Type",1739),D(1740,1,ir,mXt),l.Cd=function(e){Win(this.a,this.b,u(e,154))},I(Gs,"LGraphToCGraphTransformer/lambda$9$Type",1740),D(1729,1,{},iC),l.cf=function(e){var n,r,s,o,h;for(this.a=e,this.d=new znt,this.c=Vt(Z9t,Ln,125,this.a.a.a.c.length,0,1),this.b=0,r=new G(this.a.a.a);r.a=tt&&(ge(h,he(A)),At=b.Math.max(At,Bt[A-1]-P),m+=J,ht+=Bt[A-1]-ht,P=Bt[A-1],J=k[A]),J=b.Math.max(J,k[A]),++A;m+=J}U=b.Math.min(1/At,1/n.b/m),U>s&&(s=U,r=h)}return r},l.pg=function(){return!1},I(i0,"MSDCutIndexHeuristic",816),D(1683,1,zi,BJ),l.Kf=function(e,n){A7n(u(e,36),n)},I(i0,"SingleEdgeGraphWrapper",1683),D(232,22,{3:1,34:1,22:1,232:1},oS);var j5,kT,ET,T3,SA,$5,TT=Lr(Hc,"CenterEdgeLabelPlacementStrategy",232,Pr,d0n,pon),U4e;D(431,22,{3:1,34:1,22:1,431:1},Kwt);var kSt,Aft,ESt=Lr(Hc,"ConstraintCalculationStrategy",431,Pr,Ohn,bon),G4e;D(322,22,{3:1,34:1,22:1,322:1,188:1,196:1},xrt),l.dg=function(){return y1e(this)},l.qg=function(){return y1e(this)};var QN,_A,TSt,CSt=Lr(Hc,"CrossingMinimizationStrategy",322,Pr,_fn,won),K4e;D(351,22,{3:1,34:1,22:1,351:1},krt);var SSt,Lft,yG,_St=Lr(Hc,"CuttingStrategy",351,Pr,Afn,mon),W4e;D(348,22,{3:1,34:1,22:1,348:1,188:1,196:1},VM),l.dg=function(){return lde(this)},l.qg=function(){return lde(this)};var ASt,Dft,CT,Mft,ST,LSt=Lr(Hc,"CycleBreakingStrategy",348,Pr,Mdn,von),Y4e;D(428,22,{3:1,34:1,22:1,428:1},Wwt);var xG,DSt,MSt=Lr(Hc,"DirectionCongruency",428,Pr,Ihn,yon),X4e;D(459,22,{3:1,34:1,22:1,459:1},Ert);var _T,Ift,z5,Q4e=Lr(Hc,"EdgeConstraint",459,Pr,Lfn,_on),J4e;D(283,22,{3:1,34:1,22:1,283:1},cS);var Oft,Nft,Pft,Fft,kG,Bft,ISt=Lr(Hc,"EdgeLabelSideSelection",283,Pr,l0n,Aon),Z4e;D(487,22,{3:1,34:1,22:1,487:1},Ywt);var EG,OSt,NSt=Lr(Hc,"EdgeStraighteningStrategy",487,Pr,Mhn,Lon),t5e;D(281,22,{3:1,34:1,22:1,281:1},uS);var Rft,PSt,FSt,TG,BSt,RSt,jSt=Lr(Hc,"FixedAlignment",281,Pr,h0n,Son),e5e;D(282,22,{3:1,34:1,22:1,282:1},lS);var $St,zSt,qSt,HSt,AA,VSt,USt=Lr(Hc,"GraphCompactionStrategy",282,Pr,f0n,xon),n5e;D(259,22,{3:1,34:1,22:1,259:1},ky);var AT,CG,LT,Uh,LA,SG,DT,q5,_G,DA,jft=Lr(Hc,"GraphProperties",259,Pr,Xgn,kon),r5e;D(298,22,{3:1,34:1,22:1,298:1},Trt);var JN,$ft,zft,qft=Lr(Hc,"GreedySwitchType",298,Pr,Dfn,Eon),i5e;D(311,22,{3:1,34:1,22:1,311:1},Crt);var qk,ZN,H5,s5e=Lr(Hc,"InLayerConstraint",311,Pr,Mfn,Ton),a5e;D(429,22,{3:1,34:1,22:1,429:1},Xwt);var Hft,GSt,KSt=Lr(Hc,"InteractiveReferencePoint",429,Pr,jhn,Con),o5e,WSt,Hk,vv,AG,YSt,XSt,LG,QSt,tP,DG,MA,Vk,$g,Vft,MG,Dc,JSt,i2,lu,Uft,Gft,eP,Aw,yv,Uk,ZSt,Gk,nP,C3,N1,gf,Kft,V5,Pi,Li,t_t,e_t,n_t,r_t,i_t,Wft,IG,ml,xv,Yft,Kk,IA,vd,U5,kv,G5,K5,MT,Lw,s_t,Xft,Qft,Wk;D(171,22,{3:1,34:1,22:1,171:1},UM);var OA,s2,NA,S3,rP,a_t=Lr(Hc,"LayerConstraint",171,Pr,Odn,Don),c5e;D(859,1,uf,Qet),l.hf=function(e){Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,nEt),""),"Direction Congruency"),"Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."),b_t),(Fp(),ts)),MSt),en((D1(),_n))))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,rEt),""),"Feedback Edges"),"Whether feedback edges should be highlighted by routing around the nodes."),(Pn(),!1)),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,BV),""),"Interactive Reference Point"),"Determines which point of a node is considered by interactive layout phases."),k_t),ts),KSt),en(_n)))),Bs(e,BV,Hut,nxe),Bs(e,BV,Z_,exe),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,iEt),""),"Merge Edges"),"Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."),!1),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,sEt),""),"Merge Hierarchy-Crossing Edges"),"If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."),!0),oa),ys),en(_n)))),Qe(e,new He(krn(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,aEt),""),"Allow Non-Flow Ports To Switch Sides"),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),!1),oa),ys),en(Bw)),lt(ut(Pe,1),ue,2,6,["org.eclipse.elk.layered.northOrSouthPort"])))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,oEt),""),"Port Sorting Strategy"),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),D_t),ts),jAt),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,cEt),""),"Thoroughness"),"How much effort should be spent to produce a nice layout."),he(7)),ac),Ra),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,uEt),""),"Add Unnecessary Bendpoints"),"Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."),!1),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,lEt),""),"Generate Position and Layer IDs"),"If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."),!1),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Hut),"cycleBreaking"),"Cycle Breaking Strategy"),"Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."),p_t),ts),LSt),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,kN),dlt),"Node Layering Strategy"),"Strategy for node layering."),C_t),ts),_At),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,hEt),dlt),"Layer Constraint"),"Determines a constraint on the placement of the node regarding the layering."),E_t),ts),a_t),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,fEt),dlt),"Layer Choice Constraint"),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),null),ac),Ra),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,dEt),dlt),"Layer ID"),"Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),he(-1)),ac),Ra),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Vut),I2e),"Upper Bound On Width [MinWidth Layerer]"),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),he(4)),ac),Ra),en(_n)))),Bs(e,Vut,kN,uxe),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Uut),I2e),"Upper Layer Estimation Scaling Factor [MinWidth Layerer]"),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),he(2)),ac),Ra),en(_n)))),Bs(e,Uut,kN,hxe),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Gut),O2e),"Node Promotion Strategy"),"Reduces number of dummy nodes after layering phase (if possible)."),T_t),ts),FAt),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Kut),O2e),"Max Node Promotion Iterations"),"Limits the number of iterations for node promotion."),he(0)),ac),Ra),en(_n)))),Bs(e,Kut,Gut,null),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Wut),"layering.coffmanGraham"),"Layer Bound"),"The maximum number of nodes allowed per layer."),he(xi)),ac),Ra),en(_n)))),Bs(e,Wut,kN,ixe),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Z_),iT),"Crossing Minimization Strategy"),"Strategy for crossing minimization."),g_t),ts),CSt),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,gEt),iT),"Force Node Model Order"),"The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."),!1),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Yut),iT),"Hierarchical Sweepiness"),"How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."),.1),Wa),zs),en(_n)))),Bs(e,Yut,XV,A5e),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Xut),iT),"Semi-Interactive Crossing Minimization"),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),!1),oa),ys),en(_n)))),Bs(e,Xut,Z_,N5e),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,pEt),iT),"In Layer Predecessor of"),"Allows to set a constraint which specifies of which node the current node is the predecessor. If set to 's' then the node is the predecessor of 's' and is in the same layer"),null),ix),Pe),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,bEt),iT),"In Layer Successor of"),"Allows to set a constraint which specifies of which node the current node is the successor. If set to 's' then the node is the successor of 's' and is in the same layer"),null),ix),Pe),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,wEt),iT),"Position Choice Constraint"),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),null),ac),Ra),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,mEt),iT),"Position ID"),"Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),he(-1)),ac),Ra),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,vEt),N2e),"Greedy Switch Activation Threshold"),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),he(40)),ac),Ra),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Qut),N2e),"Greedy Switch Crossing Minimization"),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),d_t),ts),qft),en(_n)))),Bs(e,Qut,Z_,S5e),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,RV),"crossingMinimization.greedySwitchHierarchical"),"Greedy Switch Crossing Minimization (hierarchical)"),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),f_t),ts),qft),en(_n)))),Bs(e,RV,Z_,E5e),Bs(e,RV,XV,T5e),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,A5),P2e),"Node Placement Strategy"),"Strategy for node placement."),L_t),ts),MAt),en(_n)))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,jV),P2e),"Favor Straight Edges Over Balancing"),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),oa),ys),en(_n)))),Bs(e,jV,A5,kxe),Bs(e,jV,A5,Exe),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Jut),F2e),"BK Edge Straightening"),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),S_t),ts),NSt),en(_n)))),Bs(e,Jut,A5,mxe),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Zut),F2e),"BK Fixed Alignment"),"Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."),__t),ts),jSt),en(_n)))),Bs(e,Zut,A5,yxe),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,tlt),"nodePlacement.linearSegments"),"Linear Segments Deflection Dampening"),"Dampens the movement of nodes to keep the diagram from getting too large."),.3),Wa),zs),en(_n)))),Bs(e,tlt,A5,Cxe),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,elt),"nodePlacement.networkSimplex"),"Node Flexibility"),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),ts),v1t),en(Qs)))),Bs(e,elt,A5,Lxe),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,nlt),"nodePlacement.networkSimplex.nodeFlexibility"),"Node Flexibility Default"),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),A_t),ts),v1t),en(_n)))),Bs(e,nlt,A5,Axe),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,yEt),B2e),"Self-Loop Distribution"),"Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."),v_t),ts),qAt),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,xEt),B2e),"Self-Loop Ordering"),"Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."),y_t),ts),HAt),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,$V),"edgeRouting.splines"),"Spline Routing Mode"),"Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."),x_t),ts),UAt),en(_n)))),Bs(e,$V,EN,U5e),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,zV),"edgeRouting.splines.sloppy"),"Sloppy Spline Layer Spacing Factor"),"Spacing factor for routing area between layers when using sloppy spline routing."),.2),Wa),zs),en(_n)))),Bs(e,zV,EN,K5e),Bs(e,zV,$V,W5e),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,rlt),"edgeRouting.polyline"),"Sloped Edge Zone Width"),"Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."),2),Wa),zs),en(_n)))),Bs(e,rlt,EN,z5e),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,kEt),bd),"Spacing Base Value"),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,EEt),bd),"Edge Node Between Layers Spacing"),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,TEt),bd),"Edge Edge Between Layer Spacing"),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,CEt),bd),"Node Node Between Layers Spacing"),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,SEt),FEt),"Direction Priority"),"Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."),he(0)),ac),Ra),en(f0)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,_Et),FEt),"Shortness Priority"),"Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."),he(0)),ac),Ra),en(f0)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,AEt),FEt),"Straightness Priority"),"Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."),he(0)),ac),Ra),en(f0)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,ilt),BEt),Zbe),"Tries to further compact components (disconnected sub-graphs)."),!1),oa),ys),en(_n)))),Bs(e,ilt,W_,!0),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,LEt),R2e),"Post Compaction Strategy"),j2e),c_t),ts),USt),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,DEt),R2e),"Post Compaction Constraint Calculation"),j2e),o_t),ts),ESt),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,qV),REt),"High Degree Node Treatment"),"Makes room around high degree nodes to place leafs and trees."),!1),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,slt),REt),"High Degree Node Threshold"),"Whether a node is considered to have a high degree."),he(16)),ac),Ra),en(_n)))),Bs(e,slt,qV,!0),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,alt),REt),"High Degree Node Maximum Tree Height"),"Maximum height of a subtree connected to a high degree node to be moved to separate layers."),he(5)),ac),Ra),en(_n)))),Bs(e,alt,qV,!0),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Bg),jEt),"Graph Wrapping Strategy"),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),O_t),ts),YAt),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,HV),jEt),"Additional Wrapped Edges Spacing"),"To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."),10),Wa),zs),en(_n)))),Bs(e,HV,Bg,qxe),Bs(e,HV,Bg,Hxe),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,VV),jEt),"Correction Factor for Wrapping"),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),Wa),zs),en(_n)))),Bs(e,VV,Bg,Uxe),Bs(e,VV,Bg,Gxe),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,tA),$2e),"Cutting Strategy"),"The strategy by which the layer indexes are determined at which the layering crumbles into chunks."),I_t),ts),_St),en(_n)))),Bs(e,tA,Bg,Jxe),Bs(e,tA,Bg,Zxe),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,olt),$2e),"Manually Specified Cuts"),"Allows the user to specify her own cuts for a certain graph."),xd),Vh),en(_n)))),Bs(e,olt,tA,Wxe),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,clt),"wrapping.cutting.msd"),"MSD Freedom"),"The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."),M_t),ac),Ra),en(_n)))),Bs(e,clt,tA,Xxe),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,UV),z2e),"Validification Strategy"),"When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."),N_t),ts),WAt),en(_n)))),Bs(e,UV,Bg,h6e),Bs(e,UV,Bg,f6e),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,GV),z2e),"Valid Indices for Wrapping"),null),xd),Vh),en(_n)))),Bs(e,GV,Bg,c6e),Bs(e,GV,Bg,u6e),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,KV),$Et),"Improve Cuts"),"For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."),!0),oa),ys),en(_n)))),Bs(e,KV,Bg,r6e),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,WV),$Et),"Distance Penalty When Improving Cuts"),null),2),Wa),zs),en(_n)))),Bs(e,WV,Bg,e6e),Bs(e,WV,KV,!0),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,ult),$Et),"Improve Wrapped Edges"),"The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."),!0),oa),ys),en(_n)))),Bs(e,ult,Bg,s6e),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,MEt),glt),"Edge Label Side Selection"),"Method to decide on edge label sides."),m_t),ts),ISt),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,IEt),glt),"Edge Center Label Placement Strategy"),"Determines in which layer center labels of long edges should be placed."),w_t),ts),TT),Hi(_n,lt(ut(G0,1),te,170,0,[Wp]))))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,YV),eA),"Consider Model Order"),"Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."),h_t),ts),RAt),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,OEt),eA),"Consider Port Order"),"If disabled the port order of output ports is derived from the edge order and input ports are ordered by their incoming connections. If enabled all ports are ordered by the port model order."),!1),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,NEt),eA),"No Model Order"),"Set on a node to not set a model order for this node even though it is a real node."),!1),oa),ys),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,llt),eA),"Consider Model Order for Components"),"If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."),u_t),ts),LCt),en(_n)))),Bs(e,llt,W_,null),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,PEt),eA),"Long Edge Ordering Strategy"),"Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."),l_t),ts),LAt),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,hlt),eA),"Crossing Counter Node Order Influence"),"Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."),0),Wa),zs),en(_n)))),Bs(e,hlt,YV,null),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,flt),eA),"Crossing Counter Port Order Influence"),"Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."),0),Wa),zs),en(_n)))),Bs(e,flt,YV,null),ibe((new Jet,e))};var u5e,l5e,h5e,o_t,f5e,c_t,d5e,u_t,g5e,p5e,b5e,l_t,w5e,m5e,v5e,h_t,y5e,x5e,k5e,f_t,E5e,T5e,C5e,d_t,S5e,_5e,A5e,L5e,D5e,M5e,I5e,O5e,N5e,P5e,g_t,F5e,p_t,B5e,b_t,R5e,w_t,j5e,m_t,$5e,z5e,q5e,v_t,H5e,y_t,V5e,x_t,U5e,G5e,K5e,W5e,Y5e,X5e,Q5e,J5e,Z5e,txe,k_t,exe,nxe,rxe,ixe,sxe,axe,E_t,oxe,cxe,uxe,lxe,hxe,fxe,dxe,T_t,gxe,C_t,pxe,bxe,wxe,S_t,mxe,vxe,__t,yxe,xxe,kxe,Exe,Txe,Cxe,Sxe,_xe,A_t,Axe,Lxe,Dxe,L_t,Mxe,D_t,Ixe,Oxe,Nxe,Pxe,Fxe,Bxe,Rxe,jxe,$xe,zxe,qxe,Hxe,Vxe,Uxe,Gxe,Kxe,Wxe,Yxe,M_t,Xxe,Qxe,I_t,Jxe,Zxe,t6e,e6e,n6e,r6e,i6e,s6e,a6e,O_t,o6e,c6e,u6e,l6e,N_t,h6e,f6e;I(Hc,"LayeredMetaDataProvider",859),D(998,1,uf,Jet),l.hf=function(e){ibe(e)};var u0,Jft,OG,PA,NG,P_t,PG,_3,FG,F_t,B_t,BG,Zft,U0,t1t,Ev,R_t,iP,e1t,j_t,d6e,g6e,p6e,RG,n1t,FA,Dw,b6e,ph,$_t,z_t,jG,r1t,l0,$G,zg,q_t,H_t,V_t,i1t,s1t,U_t,Hp,a1t,G_t,A3,K_t,W_t,Y_t,zG,L3,Mw,X_t,Q_t,Vo,J_t,w6e,Iu,qG,Z_t,tAt,eAt,a2,Iw,HG,nAt,rAt,VG,Tv,iAt,o1t,BA,sAt,Cv,RA,UG,Ow,c1t,IT,GG,Nw,aAt,oAt,cAt,OT,uAt,m6e,v6e,y6e,x6e,Sv,D3,bs,Vp,k6e,M3,lAt,NT,hAt,I3,E6e,PT,fAt,Yk,T6e,C6e,sP,u1t,dAt,aP,Yf,W5,Y5,_v,Pw,KG,O3,l1t,FT,BT,Av,X5,h1t,oP,jA,$A,S6e,_6e,A6e,gAt,L6e,f1t,pAt,bAt,wAt,mAt,d1t,vAt,yAt,xAt,kAt,g1t,WG;I(Hc,"LayeredOptions",998),D(999,1,{},RJ),l.sf=function(){var e;return e=new EKt,e},l.tf=function(e){},I(Hc,"LayeredOptions/LayeredFactory",999),D(1391,1,{}),l.a=0;var D6e;I(_c,"ElkSpacings/AbstractSpacingsBuilder",1391),D(792,1391,{},V5t);var YG,M6e;I(Hc,"LayeredSpacings/LayeredSpacingsBuilder",792),D(265,22,{3:1,34:1,22:1,265:1,188:1,196:1},F4),l.dg=function(){return v0e(this)},l.qg=function(){return v0e(this)};var RT,p1t,jT,EAt,TAt,CAt,XG,b1t,SAt,_At=Lr(Hc,"LayeringStrategy",265,Pr,Sgn,Mon),I6e;D(390,22,{3:1,34:1,22:1,390:1},Srt);var w1t,AAt,QG,LAt=Lr(Hc,"LongEdgeOrderingStrategy",390,Pr,Ifn,Ion),O6e;D(203,22,{3:1,34:1,22:1,203:1},$$);var Q5,J5,JG,m1t,v1t=Lr(Hc,"NodeFlexibility",203,Pr,z1n,Oon),N6e;D(323,22,{3:1,34:1,22:1,323:1,188:1,196:1},GM),l.dg=function(){return ude(this)},l.qg=function(){return ude(this)};var zA,y1t,x1t,qA,DAt,MAt=Lr(Hc,"NodePlacementStrategy",323,Pr,Idn,Non),P6e;D(243,22,{3:1,34:1,22:1,243:1},Ey);var IAt,Lv,N3,cP,OAt,NAt,uP,PAt,ZG,tK,FAt=Lr(Hc,"NodePromotionStrategy",243,Pr,Qgn,Pon),F6e;D(284,22,{3:1,34:1,22:1,284:1},z$);var BAt,Up,k1t,E1t,RAt=Lr(Hc,"OrderingStrategy",284,Pr,q1n,Fon),B6e;D(430,22,{3:1,34:1,22:1,430:1},Qwt);var T1t,C1t,jAt=Lr(Hc,"PortSortingStrategy",430,Pr,Nhn,Bon),R6e;D(462,22,{3:1,34:1,22:1,462:1},_rt);var vl,ku,HA,j6e=Lr(Hc,"PortType",462,Pr,Ofn,Ron),$6e;D(387,22,{3:1,34:1,22:1,387:1},Art);var $At,S1t,zAt,qAt=Lr(Hc,"SelfLoopDistributionStrategy",387,Pr,Nfn,jon),z6e;D(349,22,{3:1,34:1,22:1,349:1},Lrt);var _1t,lP,A1t,HAt=Lr(Hc,"SelfLoopOrderingStrategy",349,Pr,Pfn,$on),q6e;D(312,1,{312:1},epe),I(Hc,"Spacings",312),D(350,22,{3:1,34:1,22:1,350:1},Drt);var L1t,VAt,VA,UAt=Lr(Hc,"SplineRoutingMode",350,Pr,Ffn,zon),H6e;D(352,22,{3:1,34:1,22:1,352:1},Mrt);var D1t,GAt,KAt,WAt=Lr(Hc,"ValidifyStrategy",352,Pr,Bfn,qon),V6e;D(388,22,{3:1,34:1,22:1,388:1},Irt);var P3,M1t,$T,YAt=Lr(Hc,"WrappingStrategy",388,Pr,Rfn,Hon),U6e;D(1398,1,_o,Ket),l.rg=function(e){return u(e,36),G6e},l.Kf=function(e,n){kTn(this,u(e,36),n)};var G6e;I(tU,"DepthFirstCycleBreaker",1398),D(793,1,_o,lyt),l.rg=function(e){return u(e,36),K6e},l.Kf=function(e,n){CSn(this,u(e,36),n)},l.sg=function(e){return u(Oe(e,MH(this.d,e.c.length)),10)};var K6e;I(tU,"GreedyCycleBreaker",793),D(1401,793,_o,vQt),l.sg=function(e){var n,r,s,o;for(o=null,n=xi,s=new G(e);s.a1&&(Ie(Me(X(Pa((vn(0,e.c.length),u(e.c[0],10))),(De(),Ev))))?kde(e,this.d,u(this,669)):(mn(),Ds(e,this.d)),kce(this.e,e))},l.lg=function(e,n,r,s){var o,h,d,m,k,T,A;for(n!=jte(r,e.length)&&(h=e[n-(r?1:-1)],j3t(this.f,h,r?(To(),ku):(To(),vl))),o=e[n][0],A=!s||o.k==(Un(),Ms),T=id(e[n]),this.vg(T,A,!1,r),d=0,k=new G(T);k.a"),e0?fst(this.a,e[n-1],e[n]):!r&&n1&&(Ie(Me(X(Pa((vn(0,e.c.length),u(e.c[0],10))),(De(),Ev))))?kde(e,this.d,this):(mn(),Ds(e,this.d)),Ie(Me(X(Pa((vn(0,e.c.length),u(e.c[0],10))),Ev)))||kce(this.e,e))},I(al,"ModelOrderBarycenterHeuristic",669),D(1866,1,Xr,kUt),l.Ne=function(e,n){return x4n(this.a,u(e,10),u(n,10))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(al,"ModelOrderBarycenterHeuristic/lambda$0$Type",1866),D(1423,1,_o,tnt),l.rg=function(e){var n;return u(e,36),n=rz(uke),ri(n,(Ua(),Qc),(Za(),uG)),n},l.Kf=function(e,n){ihn((u(e,36),n))};var uke;I(al,"NoCrossingMinimizer",1423),D(809,413,x7t,ywt),l.tg=function(e,n,r){var s,o,h,d,m,k,T,A,P,$,U;switch(P=this.g,r.g){case 1:{for(o=0,h=0,A=new G(e.j);A.a1&&(o.j==(ve(),Jn)?this.b[e]=!0:o.j==Gn&&e>0&&(this.b[e-1]=!0))},l.f=0,I(z0,"AllCrossingsCounter",1861),D(595,1,{},Yq),l.b=0,l.d=0,I(z0,"BinaryIndexedTree",595),D(532,1,{},dI);var JAt,nK;I(z0,"CrossingsCounter",532),D(1950,1,Xr,EUt),l.Ne=function(e,n){return Dun(this.a,u(e,12),u(n,12))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(z0,"CrossingsCounter/lambda$0$Type",1950),D(1951,1,Xr,TUt),l.Ne=function(e,n){return Mun(this.a,u(e,12),u(n,12))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(z0,"CrossingsCounter/lambda$1$Type",1951),D(1952,1,Xr,CUt),l.Ne=function(e,n){return Iun(this.a,u(e,12),u(n,12))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(z0,"CrossingsCounter/lambda$2$Type",1952),D(1953,1,Xr,SUt),l.Ne=function(e,n){return Oun(this.a,u(e,12),u(n,12))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(z0,"CrossingsCounter/lambda$3$Type",1953),D(1954,1,ir,_Ut),l.Cd=function(e){O0n(this.a,u(e,12))},I(z0,"CrossingsCounter/lambda$4$Type",1954),D(1955,1,Kr,AUt),l.Mb=function(e){return iin(this.a,u(e,12))},I(z0,"CrossingsCounter/lambda$5$Type",1955),D(1956,1,ir,LUt),l.Cd=function(e){lQt(this,e)},I(z0,"CrossingsCounter/lambda$6$Type",1956),D(1957,1,ir,xXt),l.Cd=function(e){var n;LE(),Ob(this.b,(n=this.a,u(e,12),n))},I(z0,"CrossingsCounter/lambda$7$Type",1957),D(839,1,t0,yR),l.Lb=function(e){return LE(),qi(u(e,12),(oe(),ml))},l.Fb=function(e){return this===e},l.Mb=function(e){return LE(),qi(u(e,12),(oe(),ml))},I(z0,"CrossingsCounter/lambda$8$Type",839),D(1949,1,{},DUt),I(z0,"HyperedgeCrossingsCounter",1949),D(477,1,{34:1,477:1},TZt),l.Fd=function(e){return Iwn(this,u(e,477))},l.b=0,l.c=0,l.e=0,l.f=0;var f_n=I(z0,"HyperedgeCrossingsCounter/Hyperedge",477);D(374,1,{34:1,374:1},Yz),l.Fd=function(e){return Gxn(this,u(e,374))},l.b=0,l.c=0;var lke=I(z0,"HyperedgeCrossingsCounter/HyperedgeCorner",374);D(531,22,{3:1,34:1,22:1,531:1},Jwt);var GA,KA,hke=Lr(z0,"HyperedgeCrossingsCounter/HyperedgeCorner/Type",531,Pr,Phn,Uon),fke;D(1425,1,_o,ent),l.rg=function(e){return u(X(u(e,36),(oe(),lu)),21).Hc((Co(),Uh))?dke:null},l.Kf=function(e,n){ryn(this,u(e,36),n)};var dke;I(Ao,"InteractiveNodePlacer",1425),D(1426,1,_o,nnt),l.rg=function(e){return u(X(u(e,36),(oe(),lu)),21).Hc((Co(),Uh))?gke:null},l.Kf=function(e,n){zmn(this,u(e,36),n)};var gke,rK,iK;I(Ao,"LinearSegmentsNodePlacer",1426),D(261,1,{34:1,261:1},W2t),l.Fd=function(e){return brn(this,u(e,261))},l.Fb=function(e){var n;return Lt(e,261)?(n=u(e,261),this.b==n.b):!1},l.Hb=function(){return this.b},l.Ib=function(){return"ls"+Hb(this.e)},l.a=0,l.b=0,l.c=-1,l.d=-1,l.g=0;var pke=I(Ao,"LinearSegmentsNodePlacer/LinearSegment",261);D(1428,1,_o,Yte),l.rg=function(e){return u(X(u(e,36),(oe(),lu)),21).Hc((Co(),Uh))?bke:null},l.Kf=function(e,n){bSn(this,u(e,36),n)},l.b=0,l.g=0;var bke;I(Ao,"NetworkSimplexPlacer",1428),D(1447,1,Xr,GJ),l.Ne=function(e,n){return jc(u(e,17).a,u(n,17).a)},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Ao,"NetworkSimplexPlacer/0methodref$compare$Type",1447),D(1449,1,Xr,KJ),l.Ne=function(e,n){return jc(u(e,17).a,u(n,17).a)},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Ao,"NetworkSimplexPlacer/1methodref$compare$Type",1449),D(655,1,{655:1},kXt);var d_n=I(Ao,"NetworkSimplexPlacer/EdgeRep",655);D(412,1,{412:1},Vyt),l.b=!1;var g_n=I(Ao,"NetworkSimplexPlacer/NodeRep",412);D(515,13,{3:1,4:1,20:1,31:1,56:1,13:1,16:1,15:1,59:1,515:1},IKt),I(Ao,"NetworkSimplexPlacer/Path",515),D(1429,1,{},WJ),l.Kb=function(e){return u(e,18).d.i.k},I(Ao,"NetworkSimplexPlacer/Path/lambda$0$Type",1429),D(1430,1,Kr,YJ),l.Mb=function(e){return u(e,273)==(Un(),fa)},I(Ao,"NetworkSimplexPlacer/Path/lambda$1$Type",1430),D(1431,1,{},XJ),l.Kb=function(e){return u(e,18).d.i},I(Ao,"NetworkSimplexPlacer/Path/lambda$2$Type",1431),D(1432,1,Kr,MUt),l.Mb=function(e){return cZt(hle(u(e,10)))},I(Ao,"NetworkSimplexPlacer/Path/lambda$3$Type",1432),D(1433,1,Kr,QJ),l.Mb=function(e){return gun(u(e,12))},I(Ao,"NetworkSimplexPlacer/lambda$0$Type",1433),D(1434,1,ir,EXt),l.Cd=function(e){Yin(this.a,this.b,u(e,12))},I(Ao,"NetworkSimplexPlacer/lambda$1$Type",1434),D(1443,1,ir,IUt),l.Cd=function(e){x5n(this.a,u(e,18))},I(Ao,"NetworkSimplexPlacer/lambda$10$Type",1443),D(1444,1,{},JJ),l.Kb=function(e){return rh(),new ln(null,new gn(u(e,30).a,16))},I(Ao,"NetworkSimplexPlacer/lambda$11$Type",1444),D(1445,1,ir,OUt),l.Cd=function(e){p8n(this.a,u(e,10))},I(Ao,"NetworkSimplexPlacer/lambda$12$Type",1445),D(1446,1,{},ZJ),l.Kb=function(e){return rh(),he(u(e,125).e)},I(Ao,"NetworkSimplexPlacer/lambda$13$Type",1446),D(1448,1,{},tZ),l.Kb=function(e){return rh(),he(u(e,125).e)},I(Ao,"NetworkSimplexPlacer/lambda$15$Type",1448),D(1450,1,Kr,eZ),l.Mb=function(e){return rh(),u(e,412).c.k==(Un(),xs)},I(Ao,"NetworkSimplexPlacer/lambda$17$Type",1450),D(1451,1,Kr,nZ),l.Mb=function(e){return rh(),u(e,412).c.j.c.length>1},I(Ao,"NetworkSimplexPlacer/lambda$18$Type",1451),D(1452,1,ir,rne),l.Cd=function(e){twn(this.c,this.b,this.d,this.a,u(e,412))},l.c=0,l.d=0,I(Ao,"NetworkSimplexPlacer/lambda$19$Type",1452),D(1435,1,{},rZ),l.Kb=function(e){return rh(),new ln(null,new gn(u(e,30).a,16))},I(Ao,"NetworkSimplexPlacer/lambda$2$Type",1435),D(1453,1,ir,NUt),l.Cd=function(e){Qin(this.a,u(e,12))},l.a=0,I(Ao,"NetworkSimplexPlacer/lambda$20$Type",1453),D(1454,1,{},iZ),l.Kb=function(e){return rh(),new ln(null,new gn(u(e,30).a,16))},I(Ao,"NetworkSimplexPlacer/lambda$21$Type",1454),D(1455,1,ir,PUt),l.Cd=function(e){usn(this.a,u(e,10))},I(Ao,"NetworkSimplexPlacer/lambda$22$Type",1455),D(1456,1,Kr,sZ),l.Mb=function(e){return cZt(e)},I(Ao,"NetworkSimplexPlacer/lambda$23$Type",1456),D(1457,1,{},aZ),l.Kb=function(e){return rh(),new ln(null,new gn(u(e,30).a,16))},I(Ao,"NetworkSimplexPlacer/lambda$24$Type",1457),D(1458,1,Kr,FUt),l.Mb=function(e){return min(this.a,u(e,10))},I(Ao,"NetworkSimplexPlacer/lambda$25$Type",1458),D(1459,1,ir,TXt),l.Cd=function(e){C4n(this.a,this.b,u(e,10))},I(Ao,"NetworkSimplexPlacer/lambda$26$Type",1459),D(1460,1,Kr,n6),l.Mb=function(e){return rh(),!go(u(e,18))},I(Ao,"NetworkSimplexPlacer/lambda$27$Type",1460),D(1461,1,Kr,xR),l.Mb=function(e){return rh(),!go(u(e,18))},I(Ao,"NetworkSimplexPlacer/lambda$28$Type",1461),D(1462,1,{},BUt),l.Ve=function(e,n){return Xin(this.a,u(e,30),u(n,30))},I(Ao,"NetworkSimplexPlacer/lambda$29$Type",1462),D(1436,1,{},oZ),l.Kb=function(e){return rh(),new ln(null,new Lm(new rr(sr(_s(u(e,10)).a.Kc(),new z))))},I(Ao,"NetworkSimplexPlacer/lambda$3$Type",1436),D(1437,1,Kr,cZ),l.Mb=function(e){return rh(),S1n(u(e,18))},I(Ao,"NetworkSimplexPlacer/lambda$4$Type",1437),D(1438,1,ir,RUt),l.Cd=function(e){T7n(this.a,u(e,18))},I(Ao,"NetworkSimplexPlacer/lambda$5$Type",1438),D(1439,1,{},uZ),l.Kb=function(e){return rh(),new ln(null,new gn(u(e,30).a,16))},I(Ao,"NetworkSimplexPlacer/lambda$6$Type",1439),D(1440,1,Kr,kR),l.Mb=function(e){return rh(),u(e,10).k==(Un(),xs)},I(Ao,"NetworkSimplexPlacer/lambda$7$Type",1440),D(1441,1,{},lZ),l.Kb=function(e){return rh(),new ln(null,new Lm(new rr(sr(Dg(u(e,10)).a.Kc(),new z))))},I(Ao,"NetworkSimplexPlacer/lambda$8$Type",1441),D(1442,1,Kr,cC),l.Mb=function(e){return rh(),dun(u(e,18))},I(Ao,"NetworkSimplexPlacer/lambda$9$Type",1442),D(1424,1,_o,rnt),l.rg=function(e){return u(X(u(e,36),(oe(),lu)),21).Hc((Co(),Uh))?wke:null},l.Kf=function(e,n){iTn(u(e,36),n)};var wke;I(Ao,"SimpleNodePlacer",1424),D(185,1,{185:1},m5),l.Ib=function(){var e;return e="",this.c==(Gd(),Dv)?e+=Ak:this.c==Gp&&(e+=_k),this.o==(nd(),Fw)?e+=xut:this.o==yd?e+="UP":e+="BALANCED",e},I(Qb,"BKAlignedLayout",185),D(523,22,{3:1,34:1,22:1,523:1},Zwt);var Gp,Dv,mke=Lr(Qb,"BKAlignedLayout/HDirection",523,Pr,Fhn,Gon),vke;D(522,22,{3:1,34:1,22:1,522:1},tmt);var Fw,yd,yke=Lr(Qb,"BKAlignedLayout/VDirection",522,Pr,Bhn,Kon),xke;D(1699,1,{},CXt),I(Qb,"BKAligner",1699),D(1702,1,{},Fhe),I(Qb,"BKCompactor",1702),D(663,1,{663:1},hZ),l.a=0,I(Qb,"BKCompactor/ClassEdge",663),D(466,1,{466:1},LKt),l.a=null,l.b=0,I(Qb,"BKCompactor/ClassNode",466),D(1427,1,_o,LXt),l.rg=function(e){return u(X(u(e,36),(oe(),lu)),21).Hc((Co(),Uh))?kke:null},l.Kf=function(e,n){NSn(this,u(e,36),n)},l.d=!1;var kke;I(Qb,"BKNodePlacer",1427),D(1700,1,{},fZ),l.d=0,I(Qb,"NeighborhoodInformation",1700),D(1701,1,Xr,jUt),l.Ne=function(e,n){return cgn(this,u(e,42),u(n,42))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Qb,"NeighborhoodInformation/NeighborComparator",1701),D(823,1,{}),I(Qb,"ThresholdStrategy",823),D(1825,823,{},DKt),l.wg=function(e,n,r){return this.a.o==(nd(),yd)?Zi:Vs},l.xg=function(){},I(Qb,"ThresholdStrategy/NullThresholdStrategy",1825),D(587,1,{587:1},DXt),l.c=!1,l.d=!1,I(Qb,"ThresholdStrategy/Postprocessable",587),D(1826,823,{},MKt),l.wg=function(e,n,r){var s,o,h;return o=n==r,s=this.a.a[r.p]==n,o||s?(h=e,this.a.c==(Gd(),Dv)?(o&&(h=yct(this,n,!0)),!isNaN(h)&&!isFinite(h)&&s&&(h=yct(this,r,!1))):(o&&(h=yct(this,n,!0)),!isNaN(h)&&!isFinite(h)&&s&&(h=yct(this,r,!1))),h):e},l.xg=function(){for(var e,n,r,s,o;this.d.b!=0;)o=u(Zhn(this.d),587),s=uge(this,o),s.a&&(e=s.a,r=Ie(this.a.f[this.a.g[o.b.p].p]),!(!r&&!go(e)&&e.c.i.c==e.d.i.c)&&(n=gde(this,o),n||xin(this.e,o)));for(;this.e.a.c.length!=0;)gde(this,u(gue(this.e),587))},I(Qb,"ThresholdStrategy/SimpleThresholdStrategy",1826),D(645,1,{645:1,188:1,196:1},dZ),l.dg=function(){return Ece(this)},l.qg=function(){return Ece(this)};var I1t;I(vlt,"EdgeRouterFactory",645),D(1485,1,_o,int),l.rg=function(e){return Ukn(u(e,36))},l.Kf=function(e,n){hTn(u(e,36),n)};var Eke,Tke,Cke,Ske,_ke,ZAt,Ake,Lke;I(vlt,"OrthogonalEdgeRouter",1485),D(1478,1,_o,AXt),l.rg=function(e){return dyn(u(e,36))},l.Kf=function(e,n){NCn(this,u(e,36),n)};var Dke,Mke,Ike,Oke,fP,Nke;I(vlt,"PolylineEdgeRouter",1478),D(1479,1,t0,pZ),l.Lb=function(e){return z4t(u(e,10))},l.Fb=function(e){return this===e},l.Mb=function(e){return z4t(u(e,10))},I(vlt,"PolylineEdgeRouter/1",1479),D(1872,1,Kr,bZ),l.Mb=function(e){return u(e,132).c==(C1(),o2)},I(M1,"HyperEdgeCycleDetector/lambda$0$Type",1872),D(1873,1,{},wZ),l.Ze=function(e){return u(e,132).d},I(M1,"HyperEdgeCycleDetector/lambda$1$Type",1873),D(1874,1,Kr,mZ),l.Mb=function(e){return u(e,132).c==(C1(),o2)},I(M1,"HyperEdgeCycleDetector/lambda$2$Type",1874),D(1875,1,{},vZ),l.Ze=function(e){return u(e,132).d},I(M1,"HyperEdgeCycleDetector/lambda$3$Type",1875),D(1876,1,{},yZ),l.Ze=function(e){return u(e,132).d},I(M1,"HyperEdgeCycleDetector/lambda$4$Type",1876),D(1877,1,{},gZ),l.Ze=function(e){return u(e,132).d},I(M1,"HyperEdgeCycleDetector/lambda$5$Type",1877),D(118,1,{34:1,118:1},eO),l.Fd=function(e){return wrn(this,u(e,118))},l.Fb=function(e){var n;return Lt(e,118)?(n=u(e,118),this.g==n.g):!1},l.Hb=function(){return this.g},l.Ib=function(){var e,n,r,s;for(e=new eh("{"),s=new G(this.n);s.a"+this.b+" ("+Fsn(this.c)+")"},l.d=0,I(M1,"HyperEdgeSegmentDependency",132),D(528,22,{3:1,34:1,22:1,528:1},emt);var o2,F3,Pke=Lr(M1,"HyperEdgeSegmentDependency/DependencyType",528,Pr,Rhn,Won),Fke;D(1878,1,{},$Ut),I(M1,"HyperEdgeSegmentSplitter",1878),D(1879,1,{},IWt),l.a=0,l.b=0,I(M1,"HyperEdgeSegmentSplitter/AreaRating",1879),D(339,1,{339:1},yit),l.a=0,l.b=0,l.c=0,I(M1,"HyperEdgeSegmentSplitter/FreeArea",339),D(1880,1,Xr,r6),l.Ne=function(e,n){return Fan(u(e,118),u(n,118))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(M1,"HyperEdgeSegmentSplitter/lambda$0$Type",1880),D(1881,1,ir,ine),l.Cd=function(e){ldn(this.a,this.d,this.c,this.b,u(e,118))},l.b=0,I(M1,"HyperEdgeSegmentSplitter/lambda$1$Type",1881),D(1882,1,{},xZ),l.Kb=function(e){return new ln(null,new gn(u(e,118).e,16))},I(M1,"HyperEdgeSegmentSplitter/lambda$2$Type",1882),D(1883,1,{},kZ),l.Kb=function(e){return new ln(null,new gn(u(e,118).j,16))},I(M1,"HyperEdgeSegmentSplitter/lambda$3$Type",1883),D(1884,1,{},EZ),l.Ye=function(e){return Rt(Ht(e))},I(M1,"HyperEdgeSegmentSplitter/lambda$4$Type",1884),D(664,1,{},Uit),l.a=0,l.b=0,l.c=0,I(M1,"OrthogonalRoutingGenerator",664),D(1703,1,{},TZ),l.Kb=function(e){return new ln(null,new gn(u(e,118).e,16))},I(M1,"OrthogonalRoutingGenerator/lambda$0$Type",1703),D(1704,1,{},CZ),l.Kb=function(e){return new ln(null,new gn(u(e,118).j,16))},I(M1,"OrthogonalRoutingGenerator/lambda$1$Type",1704),D(670,1,{}),I(ylt,"BaseRoutingDirectionStrategy",670),D(1870,670,{},PKt),l.yg=function(e,n,r){var s,o,h,d,m,k,T,A,P,$,U,J,tt;if(!(e.r&&!e.q))for(A=n+e.o*r,T=new G(e.n);T.an0&&(h=A,o=e,s=new ae(P,h),Zr(d.a,s),ev(this,d,o,s,!1),$=e.r,$&&(U=Rt(Ht(jh($.e,0))),s=new ae(U,h),Zr(d.a,s),ev(this,d,o,s,!1),h=n+$.o*r,o=$,s=new ae(U,h),Zr(d.a,s),ev(this,d,o,s,!1)),s=new ae(tt,h),Zr(d.a,s),ev(this,d,o,s,!1)))},l.zg=function(e){return e.i.n.a+e.n.a+e.a.a},l.Ag=function(){return ve(),Er},l.Bg=function(){return ve(),Hn},I(ylt,"NorthToSouthRoutingStrategy",1870),D(1871,670,{},FKt),l.yg=function(e,n,r){var s,o,h,d,m,k,T,A,P,$,U,J,tt;if(!(e.r&&!e.q))for(A=n-e.o*r,T=new G(e.n);T.an0&&(h=A,o=e,s=new ae(P,h),Zr(d.a,s),ev(this,d,o,s,!1),$=e.r,$&&(U=Rt(Ht(jh($.e,0))),s=new ae(U,h),Zr(d.a,s),ev(this,d,o,s,!1),h=n-$.o*r,o=$,s=new ae(U,h),Zr(d.a,s),ev(this,d,o,s,!1)),s=new ae(tt,h),Zr(d.a,s),ev(this,d,o,s,!1)))},l.zg=function(e){return e.i.n.a+e.n.a+e.a.a},l.Ag=function(){return ve(),Hn},l.Bg=function(){return ve(),Er},I(ylt,"SouthToNorthRoutingStrategy",1871),D(1869,670,{},BKt),l.yg=function(e,n,r){var s,o,h,d,m,k,T,A,P,$,U,J,tt;if(!(e.r&&!e.q))for(A=n+e.o*r,T=new G(e.n);T.an0&&(h=A,o=e,s=new ae(h,P),Zr(d.a,s),ev(this,d,o,s,!0),$=e.r,$&&(U=Rt(Ht(jh($.e,0))),s=new ae(h,U),Zr(d.a,s),ev(this,d,o,s,!0),h=n+$.o*r,o=$,s=new ae(h,U),Zr(d.a,s),ev(this,d,o,s,!0)),s=new ae(h,tt),Zr(d.a,s),ev(this,d,o,s,!0)))},l.zg=function(e){return e.i.n.b+e.n.b+e.a.b},l.Ag=function(){return ve(),Jn},l.Bg=function(){return ve(),Gn},I(ylt,"WestToEastRoutingStrategy",1869),D(828,1,{},Rkt),l.Ib=function(){return Hb(this.a)},l.b=0,l.c=!1,l.d=!1,l.f=0,I(f3,"NubSpline",828),D(418,1,{418:1},Kde,Fne),I(f3,"NubSpline/PolarCP",418),D(1480,1,_o,Ahe),l.rg=function(e){return n3n(u(e,36))},l.Kf=function(e,n){ZCn(this,u(e,36),n)};var Bke,Rke,jke,$ke,zke;I(f3,"SplineEdgeRouter",1480),D(274,1,{274:1},vq),l.Ib=function(){return this.a+" ->("+this.c+") "+this.b},l.c=0,I(f3,"SplineEdgeRouter/Dependency",274),D(464,22,{3:1,34:1,22:1,464:1},nmt);var c2,Z5,qke=Lr(f3,"SplineEdgeRouter/SideToProcess",464,Pr,Vhn,Yon),Hke;D(1481,1,Kr,SZ),l.Mb=function(e){return D_(),!u(e,131).o},I(f3,"SplineEdgeRouter/lambda$0$Type",1481),D(1482,1,{},_Z),l.Ze=function(e){return D_(),u(e,131).v+1},I(f3,"SplineEdgeRouter/lambda$1$Type",1482),D(1483,1,ir,MXt),l.Cd=function(e){wun(this.a,this.b,u(e,42))},I(f3,"SplineEdgeRouter/lambda$2$Type",1483),D(1484,1,ir,IXt),l.Cd=function(e){mun(this.a,this.b,u(e,42))},I(f3,"SplineEdgeRouter/lambda$3$Type",1484),D(131,1,{34:1,131:1},a1e,Vkt),l.Fd=function(e){return yrn(this,u(e,131))},l.b=0,l.e=!1,l.f=0,l.g=0,l.j=!1,l.k=!1,l.n=0,l.o=!1,l.p=!1,l.q=!1,l.s=0,l.u=0,l.v=0,l.F=0,I(f3,"SplineSegment",131),D(467,1,{467:1},AZ),l.a=0,l.b=!1,l.c=!1,l.d=!1,l.e=!1,l.f=0,I(f3,"SplineSegment/EdgeInformation",467),D(1198,1,{},uC),I(jg,z8t,1198),D(1199,1,Xr,LZ),l.Ne=function(e,n){return R5n(u(e,121),u(n,121))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(jg,r2e,1199),D(1197,1,{},WWt),I(jg,"MrTree",1197),D(405,22,{3:1,34:1,22:1,405:1,188:1,196:1},q$),l.dg=function(){return A1e(this)},l.qg=function(){return A1e(this)};var sK,WA,YA,XA,tLt=Lr(jg,"TreeLayoutPhases",405,Pr,K1n,Xon),Vke;D(1112,205,mw,kZt),l.rf=function(e,n){var r,s,o,h,d,m,k,T;for(Ie(Me(ne(e,(Cc(),CLt))))||sq((r=new by((xy(),new my(e))),r)),d=n.eh(Elt),d.Ug("build tGraph",1),m=(k=new FI,Qo(k,e),Zt(k,(ji(),JA),e),T=new _r,MEn(e,k,T),XEn(e,k,T),k),d.Vg(),d=n.eh(Elt),d.Ug("Split graph",1),h=BEn(this.a,m),d.Vg(),o=new G(h);o.a"+Z2(this.c):"e_"+$i(this)},I(nA,"TEdge",65),D(121,137,{3:1,121:1,96:1,137:1},FI),l.Ib=function(){var e,n,r,s,o;for(o=null,s=Dr(this.b,0);s.b!=s.d.c;)r=u(Ar(s),39),o+=(r.c==null||r.c.length==0?"n_"+r.g:"n_"+r.c)+` +`;for(n=Dr(this.a,0);n.b!=n.d.c;)e=u(Ar(n),65),o+=(e.b&&e.c?Z2(e.b)+"->"+Z2(e.c):"e_"+$i(e))+` +`;return o};var p_n=I(nA,"TGraph",121);D(643,508,{3:1,508:1,643:1,96:1,137:1}),I(nA,"TShape",643),D(39,643,{3:1,508:1,39:1,643:1,96:1,137:1},Eat),l.Ib=function(){return Z2(this)};var aK=I(nA,"TNode",39);D(236,1,F0,gg),l.Jc=function(e){Fa(this,e)},l.Kc=function(){var e;return e=Dr(this.a.d,0),new M4(e)},I(nA,"TNode/2",236),D(329,1,wa,M4),l.Nb=function(e){Na(this,e)},l.Pb=function(){return u(Ar(this.a),65).c},l.Ob=function(){return IM(this.a)},l.Qb=function(){Qst(this.a)},I(nA,"TNode/2/1",329),D(1923,1,zi,FZ),l.Kf=function(e,n){LSn(this,u(e,121),n)},I(ou,"CompactionProcessor",1923),D(1924,1,Xr,UUt),l.Ne=function(e,n){return bpn(this.a,u(e,39),u(n,39))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(ou,"CompactionProcessor/lambda$0$Type",1924),D(1925,1,Kr,NXt),l.Mb=function(e){return khn(this.b,this.a,u(e,42))},l.a=0,l.b=0,I(ou,"CompactionProcessor/lambda$1$Type",1925),D(1934,1,Xr,i6),l.Ne=function(e,n){return dln(u(e,39),u(n,39))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(ou,"CompactionProcessor/lambda$10$Type",1934),D(1935,1,Xr,ER),l.Ne=function(e,n){return _sn(u(e,39),u(n,39))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(ou,"CompactionProcessor/lambda$11$Type",1935),D(1936,1,Xr,BZ),l.Ne=function(e,n){return gln(u(e,39),u(n,39))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(ou,"CompactionProcessor/lambda$12$Type",1936),D(1926,1,Kr,GUt),l.Mb=function(e){return lsn(this.a,u(e,42))},l.a=0,I(ou,"CompactionProcessor/lambda$2$Type",1926),D(1927,1,Kr,KUt),l.Mb=function(e){return hsn(this.a,u(e,42))},l.a=0,I(ou,"CompactionProcessor/lambda$3$Type",1927),D(1928,1,Kr,XD),l.Mb=function(e){return u(e,39).c.indexOf(nU)==-1},I(ou,"CompactionProcessor/lambda$4$Type",1928),D(1929,1,{},WUt),l.Kb=function(e){return T1n(this.a,u(e,39))},l.a=0,I(ou,"CompactionProcessor/lambda$5$Type",1929),D(1930,1,{},YUt),l.Kb=function(e){return I0n(this.a,u(e,39))},l.a=0,I(ou,"CompactionProcessor/lambda$6$Type",1930),D(1931,1,Xr,XUt),l.Ne=function(e,n){return Hdn(this.a,u(e,240),u(n,240))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(ou,"CompactionProcessor/lambda$7$Type",1931),D(1932,1,Xr,QUt),l.Ne=function(e,n){return Vdn(this.a,u(e,39),u(n,39))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(ou,"CompactionProcessor/lambda$8$Type",1932),D(1933,1,Xr,RZ),l.Ne=function(e,n){return Asn(u(e,39),u(n,39))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(ou,"CompactionProcessor/lambda$9$Type",1933),D(1921,1,zi,jZ),l.Kf=function(e,n){C8n(u(e,121),n)},I(ou,"DirectionProcessor",1921),D(1913,1,zi,xZt),l.Kf=function(e,n){WEn(this,u(e,121),n)},I(ou,"FanProcessor",1913),D(1937,1,zi,$Z),l.Kf=function(e,n){d8n(u(e,121),n)},I(ou,"GraphBoundsProcessor",1937),D(1938,1,{},zZ),l.Ye=function(e){return u(e,39).e.a},I(ou,"GraphBoundsProcessor/lambda$0$Type",1938),D(1939,1,{},qZ),l.Ye=function(e){return u(e,39).e.b},I(ou,"GraphBoundsProcessor/lambda$1$Type",1939),D(1940,1,{},HZ),l.Ye=function(e){return Krn(u(e,39))},I(ou,"GraphBoundsProcessor/lambda$2$Type",1940),D(1941,1,{},VZ),l.Ye=function(e){return Grn(u(e,39))},I(ou,"GraphBoundsProcessor/lambda$3$Type",1941),D(262,22,{3:1,34:1,22:1,262:1,196:1},mm),l.dg=function(){switch(this.g){case 0:return new QKt;case 1:return new xZt;case 2:return new XKt;case 3:return new SR;case 4:return new UZ;case 8:return new TR;case 5:return new jZ;case 6:return new AR;case 7:return new FZ;case 9:return new $Z;case 10:return new KZ;default:throw at(new zn(jut+(this.f!=null?this.f:""+this.g)))}};var eLt,nLt,rLt,iLt,sLt,aLt,oLt,cLt,uLt,lLt,O1t,b_n=Lr(ou,$ut,262,Pr,pce,Qon),Uke;D(1920,1,zi,TR),l.Kf=function(e,n){SCn(u(e,121),n)},I(ou,"LevelCoordinatesProcessor",1920),D(1918,1,zi,UZ),l.Kf=function(e,n){K6n(this,u(e,121),n)},l.a=0,I(ou,"LevelHeightProcessor",1918),D(1919,1,F0,CR),l.Jc=function(e){Fa(this,e)},l.Kc=function(){return mn(),yE(),mT},I(ou,"LevelHeightProcessor/1",1919),D(1914,1,zi,XKt),l.Kf=function(e,n){o8n(this,u(e,121),n)},I(ou,"LevelProcessor",1914),D(1915,1,Kr,GZ),l.Mb=function(e){return Ie(Me(X(u(e,39),(ji(),u2))))},I(ou,"LevelProcessor/lambda$0$Type",1915),D(1916,1,zi,SR),l.Kf=function(e,n){V4n(this,u(e,121),n)},l.a=0,I(ou,"NeighborsProcessor",1916),D(1917,1,F0,_R),l.Jc=function(e){Fa(this,e)},l.Kc=function(){return mn(),yE(),mT},I(ou,"NeighborsProcessor/1",1917),D(1922,1,zi,AR),l.Kf=function(e,n){KEn(this,u(e,121),n)},l.a=0,I(ou,"NodePositionProcessor",1922),D(1912,1,zi,QKt),l.Kf=function(e,n){ATn(this,u(e,121),n)},I(ou,"RootProcessor",1912),D(1942,1,zi,KZ),l.Kf=function(e,n){Tmn(u(e,121),n)},I(ou,"Untreeifyer",1942),D(392,22,{3:1,34:1,22:1,392:1},Prt);var dP,N1t,hLt,fLt=Lr(CN,"EdgeRoutingMode",392,Pr,$fn,Jon),Gke,gP,zT,P1t,dLt,gLt,F1t,B1t,pLt,R1t,bLt,j1t,QA,$1t,oK,cK,Xf,P1,qT,JA,ZA,Kp,wLt,Kke,z1t,u2,pP,bP;D(862,1,uf,snt),l.hf=function(e){Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,T7t),""),Y2e),"Turns on Tree compaction which decreases the size of the whole tree by placing nodes of multiple levels in one large level"),(Pn(),!1)),(Fp(),oa)),ys),en((D1(),_n))))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,C7t),""),"Edge End Texture Length"),"Should be set to the length of the texture at the end of an edge. This value can be used to improve the Edge Routing."),7),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,S7t),""),"Tree Level"),"The index for the tree level the node is in"),he(0)),ac),Ra),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,_7t),""),Y2e),"When set to a positive number this option will force the algorithm to place the node to the specified position within the trees layer if weighting is set to constraint"),he(-1)),ac),Ra),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,A7t),""),"Weighting of Nodes"),"Which weighting to use when computing a node order."),yLt),ts),ILt),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,L7t),""),"Edge Routing Mode"),"Chooses an Edge Routing algorithm."),mLt),ts),fLt),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,D7t),""),"Search Order"),"Which search order to use when computing a spanning tree."),vLt),ts),NLt),en(_n)))),Rpe((new p6,e))};var Wke,Yke,Xke,mLt,Qke,Jke,vLt,Zke,t8e,yLt;I(CN,"MrTreeMetaDataProvider",862),D(1006,1,uf,p6),l.hf=function(e){Rpe(e)};var e8e,xLt,kLt,Mv,ELt,TLt,q1t,n8e,r8e,i8e,s8e,a8e,o8e,c8e,CLt,SLt,_Lt,u8e,tx,uK,ALt,l8e,LLt,H1t,h8e,f8e,d8e,DLt,g8e,h0,MLt;I(CN,"MrTreeOptions",1006),D(1007,1,{},WZ),l.sf=function(){var e;return e=new kZt,e},l.tf=function(e){},I(CN,"MrTreeOptions/MrtreeFactory",1007),D(353,22,{3:1,34:1,22:1,353:1},H$);var V1t,lK,U1t,G1t,ILt=Lr(CN,"OrderWeighting",353,Pr,W1n,Zon),p8e;D(433,22,{3:1,34:1,22:1,433:1},rmt);var OLt,K1t,NLt=Lr(CN,"TreeifyingOrder",433,Pr,qhn,tcn),b8e;D(1486,1,_o,cnt),l.rg=function(e){return u(e,121),w8e},l.Kf=function(e,n){ipn(this,u(e,121),n)};var w8e;I("org.eclipse.elk.alg.mrtree.p1treeify","DFSTreeifyer",1486),D(1487,1,_o,rE),l.rg=function(e){return u(e,121),m8e},l.Kf=function(e,n){h8n(this,u(e,121),n)};var m8e;I(sT,"NodeOrderer",1487),D(1494,1,{},A2t),l.td=function(e){return Ate(e)},I(sT,"NodeOrderer/0methodref$lambda$6$Type",1494),D(1488,1,Kr,att),l.Mb=function(e){return ak(),Ie(Me(X(u(e,39),(ji(),u2))))},I(sT,"NodeOrderer/lambda$0$Type",1488),D(1489,1,Kr,ott),l.Mb=function(e){return ak(),u(X(u(e,39),(Cc(),tx)),17).a<0},I(sT,"NodeOrderer/lambda$1$Type",1489),D(1490,1,Kr,ZUt),l.Mb=function(e){return Ogn(this.a,u(e,39))},I(sT,"NodeOrderer/lambda$2$Type",1490),D(1491,1,Kr,JUt),l.Mb=function(e){return _1n(this.a,u(e,39))},I(sT,"NodeOrderer/lambda$3$Type",1491),D(1492,1,Xr,ctt),l.Ne=function(e,n){return ngn(u(e,39),u(n,39))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(sT,"NodeOrderer/lambda$4$Type",1492),D(1493,1,Kr,utt),l.Mb=function(e){return ak(),u(X(u(e,39),(ji(),B1t)),17).a!=0},I(sT,"NodeOrderer/lambda$5$Type",1493),D(1495,1,_o,ont),l.rg=function(e){return u(e,121),v8e},l.Kf=function(e,n){yEn(this,u(e,121),n)},l.b=0;var v8e;I("org.eclipse.elk.alg.mrtree.p3place","NodePlacer",1495),D(1496,1,_o,ant),l.rg=function(e){return u(e,121),y8e},l.Kf=function(e,n){eEn(u(e,121),n)};var y8e,w_n=I(Xl,"EdgeRouter",1496);D(1498,1,Xr,stt),l.Ne=function(e,n){return jc(u(e,17).a,u(n,17).a)},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Xl,"EdgeRouter/0methodref$compare$Type",1498),D(1503,1,{},YZ),l.Ye=function(e){return Rt(Ht(e))},I(Xl,"EdgeRouter/1methodref$doubleValue$Type",1503),D(1505,1,Xr,DR),l.Ne=function(e,n){return Bi(Rt(Ht(e)),Rt(Ht(n)))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Xl,"EdgeRouter/2methodref$compare$Type",1505),D(1507,1,Xr,XZ),l.Ne=function(e,n){return Bi(Rt(Ht(e)),Rt(Ht(n)))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Xl,"EdgeRouter/3methodref$compare$Type",1507),D(1509,1,{},LR),l.Ye=function(e){return Rt(Ht(e))},I(Xl,"EdgeRouter/4methodref$doubleValue$Type",1509),D(1511,1,Xr,QZ),l.Ne=function(e,n){return Bi(Rt(Ht(e)),Rt(Ht(n)))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Xl,"EdgeRouter/5methodref$compare$Type",1511),D(1513,1,Xr,QD),l.Ne=function(e,n){return Bi(Rt(Ht(e)),Rt(Ht(n)))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Xl,"EdgeRouter/6methodref$compare$Type",1513),D(1497,1,{},JZ),l.Kb=function(e){return Sg(),u(X(u(e,39),(Cc(),h0)),17)},I(Xl,"EdgeRouter/lambda$0$Type",1497),D(1508,1,{},ZZ),l.Kb=function(e){return zsn(u(e,39))},I(Xl,"EdgeRouter/lambda$11$Type",1508),D(1510,1,{},PXt),l.Kb=function(e){return pun(this.b,this.a,u(e,39))},l.a=0,l.b=0,I(Xl,"EdgeRouter/lambda$13$Type",1510),D(1512,1,{},FXt),l.Kb=function(e){return qsn(this.b,this.a,u(e,39))},l.a=0,l.b=0,I(Xl,"EdgeRouter/lambda$15$Type",1512),D(1514,1,Xr,ttt),l.Ne=function(e,n){return tmn(u(e,65),u(n,65))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Xl,"EdgeRouter/lambda$17$Type",1514),D(1515,1,Xr,ett),l.Ne=function(e,n){return emn(u(e,65),u(n,65))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Xl,"EdgeRouter/lambda$18$Type",1515),D(1516,1,Xr,ntt),l.Ne=function(e,n){return rmn(u(e,65),u(n,65))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Xl,"EdgeRouter/lambda$19$Type",1516),D(1499,1,Kr,tGt),l.Mb=function(e){return ifn(this.a,u(e,39))},l.a=0,I(Xl,"EdgeRouter/lambda$2$Type",1499),D(1517,1,Xr,MR),l.Ne=function(e,n){return nmn(u(e,65),u(n,65))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Xl,"EdgeRouter/lambda$20$Type",1517),D(1500,1,Xr,rtt),l.Ne=function(e,n){return eun(u(e,39),u(n,39))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Xl,"EdgeRouter/lambda$3$Type",1500),D(1501,1,Xr,itt),l.Ne=function(e,n){return nun(u(e,39),u(n,39))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Xl,"EdgeRouter/lambda$4$Type",1501),D(1502,1,{},ltt),l.Kb=function(e){return Hsn(u(e,39))},I(Xl,"EdgeRouter/lambda$5$Type",1502),D(1504,1,{},BXt),l.Kb=function(e){return bun(this.b,this.a,u(e,39))},l.a=0,l.b=0,I(Xl,"EdgeRouter/lambda$7$Type",1504),D(1506,1,{},RXt),l.Kb=function(e){return Vsn(this.b,this.a,u(e,39))},l.a=0,l.b=0,I(Xl,"EdgeRouter/lambda$9$Type",1506),D(675,1,{675:1},bhe),l.e=0,l.f=!1,l.g=!1,I(Xl,"MultiLevelEdgeNodeNodeGap",675),D(1943,1,Xr,htt),l.Ne=function(e,n){return gfn(u(e,240),u(n,240))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Xl,"MultiLevelEdgeNodeNodeGap/lambda$0$Type",1943),D(1944,1,Xr,ftt),l.Ne=function(e,n){return pfn(u(e,240),u(n,240))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(Xl,"MultiLevelEdgeNodeNodeGap/lambda$1$Type",1944);var ex;D(500,22,{3:1,34:1,22:1,500:1,188:1,196:1},imt),l.dg=function(){return nle(this)},l.qg=function(){return nle(this)};var hK,nx,PLt=Lr(M7t,"RadialLayoutPhases",500,Pr,Uhn,ecn),x8e;D(1113,205,mw,KWt),l.rf=function(e,n){var r,s,o,h,d,m;if(r=qde(this,e),n.Ug("Radial layout",r.c.length),Ie(Me(ne(e,(Ub(),GLt))))||sq((s=new by((xy(),new my(e))),s)),m=s3n(e),Mi(e,(Y4(),ex),m),!m)throw at(new zn("The given graph is not a tree!"));for(o=Rt(Ht(ne(e,gK))),o==0&&(o=k1e(e)),Mi(e,gK,o),d=new G(qde(this,e));d.a=3)for(ht=u(Dt(J,0),27),Tt=u(Dt(J,1),27),o=0;o+2=ht.f+Tt.f+T||Tt.f>=tt.f+ht.f+T){At=!0;break}else++o;else At=!0;if(!At){for(P=J.i,d=new Zn(J);d.e!=d.i.gc();)h=u(ar(d),27),Mi(h,(ai(),DP),he(P)),--P;mge(e,new S6),n.Vg();return}for(r=(EI(this.a),E1(this.a,(vH(),mP),u(ne(e,kDt),188)),E1(this.a,pK,u(ne(e,bDt),188)),E1(this.a,sdt,u(ne(e,vDt),188)),kmt(this.a,(Wt=new Fs,ri(Wt,mP,(DH(),cdt)),ri(Wt,pK,odt),Ie(Me(ne(e,dDt)))&&ri(Wt,mP,adt),Wt)),XO(this.a,e)),k=1/r.c.length,U=new G(r);U.a0&&Sue((qn(n-1,e.length),e.charCodeAt(n-1)),g2e);)--n;if(s>=n)throw at(new zn("The given string does not contain any numbers."));if(o=s3((Da(s,n,e.length),e.substr(s,n-s)),`,|;|\r| +`),o.length!=2)throw at(new zn("Exactly two numbers are expected, "+o.length+" were found."));try{this.a=Jy(Zy(o[0])),this.b=Jy(Zy(o[1]))}catch(h){throw h=es(h),Lt(h,130)?(r=h,at(new zn(p2e+r))):at(h)}},l.Ib=function(){return"("+this.a+","+this.b+")"},l.a=0,l.b=0;var la=I(yN,"KVector",8);D(75,67,{3:1,4:1,20:1,31:1,56:1,16:1,67:1,15:1,75:1,423:1},Qu,b$,UJt),l.Pc=function(){return xbn(this)},l.cg=function(e){var n,r,s,o,h,d;s=s3(e,`,|;|\\(|\\)|\\[|\\]|\\{|\\}| | | +`),nh(this);try{for(r=0,h=0,o=0,d=0;r0&&(h%2==0?o=Jy(s[r]):d=Jy(s[r]),h>0&&h%2!=0&&Zr(this,new ae(o,d)),++h),++r}catch(m){throw m=es(m),Lt(m,130)?(n=m,at(new zn("The given string does not match the expected format for vectors."+n))):at(m)}},l.Ib=function(){var e,n,r;for(e=new eh("("),n=Dr(this,0);n.b!=n.d.c;)r=u(Ar(n),8),ni(e,r.a+","+r.b),n.b!=n.d.c&&(e.a+="; ");return(e.a+=")",e).a};var sMt=I(yN,"KVectorChain",75);D(255,22,{3:1,34:1,22:1,255:1},hS);var _dt,CK,SK,EP,TP,_K,aMt=Lr(Nl,"Alignment",255,Pr,m0n,Ccn),e7e;D(991,1,uf,gnt),l.hf=function(e){ege(e)};var oMt,Adt,n7e,cMt,uMt,r7e,lMt,i7e,s7e,hMt,fMt,a7e;I(Nl,"BoxLayouterOptions",991),D(992,1,{},V8),l.sf=function(){var e;return e=new jtt,e},l.tf=function(e){},I(Nl,"BoxLayouterOptions/BoxFactory",992),D(297,22,{3:1,34:1,22:1,297:1},fS);var cL,Ldt,uL,lL,hL,Ddt,Mdt=Lr(Nl,"ContentAlignment",297,Pr,v0n,Scn),o7e;D(699,1,uf,Oj),l.hf=function(e){Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,bwe),""),"Layout Algorithm"),"Select a specific layout algorithm."),(Fp(),ix)),Pe),en((D1(),_n))))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,wwe),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),xd),y_n),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,t7t),""),"Alignment"),"Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."),dMt),ts),aMt),en(Qs)))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,Dk),""),"Aspect Ratio"),"The desired aspect ratio of the drawing, that is the quotient of width by height."),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,dTt),""),"Bend Points"),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),xd),sMt),en(f0)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,QV),""),"Content Alignment"),"Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."),pMt),Qk),Mdt),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,TN),""),"Debug Mode"),"Whether additional debug information shall be generated."),(Pn(),!1)),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,blt),""),N8t),"Overall direction of edges: horizontal (right / left) or vertical (down / up)."),bMt),ts),gL),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,EN),""),"Edge Routing"),"What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."),vMt),ts),Udt),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,hTt),""),"Expand Nodes"),"If active, nodes are expanded to fill the area of their parent."),!1),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,XV),""),"Hierarchy Handling"),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),kMt),ts),cIt),Hi(_n,lt(ut(G0,1),te,170,0,[Qs]))))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,ov),""),"Padding"),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),MMt),xd),MCt),Hi(_n,lt(ut(G0,1),te,170,0,[Qs]))))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Y_),""),"Interactive"),"Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."),!1),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,ZV),""),"interactive Layout"),"Whether the graph should be changeable interactively and by setting constraints"),!1),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,X_),""),"Omit Node Micro Layout"),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),!1),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Fut),""),"Port Constraints"),"Defines constraints of the position of the ports of a node."),FMt),ts),hIt),en(Qs)))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,JV),""),"Position"),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),xd),la),Hi(Qs,lt(ut(G0,1),te,170,0,[Bw,Wp]))))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,gN),""),"Priority"),"Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."),ac),Ra),Hi(Qs,lt(ut(G0,1),te,170,0,[f0]))))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,IV),""),"Randomization Seed"),"Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."),ac),Ra),en(_n)))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,W_),""),"Separate Connected Components"),"Whether each connected component should be processed separately."),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,h7t),""),"Junction Points"),"This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."),EMt),xd),sMt),en(f0)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,g7t),""),"Comment Box"),"Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."),!1),oa),ys),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,p7t),""),"Hypernode"),"Whether the node should be handled as a hypernode."),!1),oa),ys),en(Qs)))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,KSn),""),"Label Manager"),"Label managers can shorten labels upon a layout algorithm's request."),xd),C_n),Hi(_n,lt(ut(G0,1),te,170,0,[Wp]))))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,w7t),""),"Margins"),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),TMt),xd),DCt),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,JEt),""),"No Layout"),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),!1),oa),ys),Hi(Qs,lt(ut(G0,1),te,170,0,[f0,Bw,Wp]))))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,mwe),""),"Scale Factor"),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),Wa),zs),en(Qs)))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,vwe),""),"Child Area Width"),"The width of the area occupied by the laid out children of a node."),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,ywe),""),"Child Area Height"),"The height of the area occupied by the laid out children of a node."),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,pN),""),hwe),"Turns topdown layout on and off. If this option is enabled, hierarchical layout will be computed first for the root node and then for its children recursively. Layouts are then scaled down to fit the area provided by their parents. Graphs must follow a certain structure for topdown layout to work properly. {@link TopdownNodeTypes.PARALLEL_NODE} nodes must have children of type {@link TopdownNodeTypes.HIERARCHICAL_NODE} and must define {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} for their children. Furthermore they need to be laid out using an algorithm that is a {@link TopdownLayoutProvider}. Hierarchical nodes can also be parents of other hierarchical nodes and can optionally use a {@link TopdownSizeApproximator} to dynamically set sizes during topdown layout. In this case {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} should be set on the node itself rather than the parent. The values are then used by the size approximator as base values. Hierarchical nodes require the layout option {@link nodeSize.fixedGraphSize} to be true to prevent the algorithm used there from resizing the hierarchical node. This option is not supported if 'Hierarchy Handling' is set to 'INCLUDE_CHILDREN'"),!1),oa),ys),en(_n)))),Bs(e,pN,cv,null),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,xwe),""),"Animate"),"Whether the shift from the old layout to the new computed layout shall be animated."),!0),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,kwe),""),"Animation Time Factor"),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),he(100)),ac),Ra),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Ewe),""),"Layout Ancestors"),"Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."),!1),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Twe),""),"Maximal Animation Time"),"The maximal time for animations, in milliseconds."),he(4e3)),ac),Ra),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Cwe),""),"Minimal Animation Time"),"The minimal time for animations, in milliseconds."),he(400)),ac),Ra),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Swe),""),"Progress Bar"),"Whether a progress bar shall be displayed during layout computations."),!1),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,_we),""),"Validate Graph"),"Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!1),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Awe),""),"Validate Options"),"Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!0),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Lwe),""),"Zoom to Fit"),"Whether the zoom level shall be set to view the whole diagram after layout."),!1),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,fTt),"box"),"Box Layout Mode"),"Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."),gMt),ts),xIt),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,zEt),bd),"Comment Comment Spacing"),"Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."),10),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,qEt),bd),"Comment Node Spacing"),"Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."),10),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Lut),bd),"Components Spacing"),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,HEt),bd),"Edge Spacing"),"Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."),10),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Put),bd),"Edge Label Spacing"),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,plt),bd),"Edge Node Spacing"),"Spacing to be preserved between nodes and edges."),10),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,VEt),bd),"Label Spacing"),"Determines the amount of space to be left between two labels of the same graph element."),0),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,KEt),bd),"Label Node Spacing"),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,UEt),bd),"Horizontal spacing between Label and Port"),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,GEt),bd),"Vertical spacing between Label and Port"),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,h3),bd),"Node Spacing"),"The minimal distance to be preserved between each two nodes."),20),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,WEt),bd),"Node Self Loop Spacing"),"Spacing to be preserved between a node and its self loops."),10),Wa),zs),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,YEt),bd),"Port Spacing"),"Spacing between pairs of ports of the same node."),10),Wa),zs),Hi(_n,lt(ut(G0,1),te,170,0,[Qs]))))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,XEt),bd),"Individual Spacing"),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),xd),W7e),Hi(Qs,lt(ut(G0,1),te,170,0,[f0,Bw,Wp]))))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,m7t),bd),"Additional Port Space"),"Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."),KMt),xd),DCt),en(_n)))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,mlt),Iwe),"Layout Partition"),"Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."),ac),Ra),Hi(_n,lt(ut(G0,1),te,170,0,[Qs]))))),Bs(e,mlt,wlt,b7e),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,wlt),Iwe),"Layout Partitioning"),"Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."),IMt),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,r7t),Owe),"Node Label Padding"),"Define padding for node labels that are placed inside of a node."),SMt),xd),MCt),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,nT),Owe),"Node Label Placement"),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),_Mt),Qk),Lo),Hi(Qs,lt(ut(G0,1),te,170,0,[Wp]))))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,a7t),uU),"Port Alignment"),"Defines the default port distribution for a node. May be overridden for each side individually."),NMt),ts),mL),en(Qs)))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,o7t),uU),"Port Alignment (North)"),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),ts),mL),en(Qs)))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,c7t),uU),"Port Alignment (South)"),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),ts),mL),en(Qs)))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,u7t),uU),"Port Alignment (West)"),"Defines how ports on the western side are placed, overriding the node's general port alignment."),ts),mL),en(Qs)))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,l7t),uU),"Port Alignment (East)"),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),ts),mL),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,_5),$lt),"Node Size Constraints"),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),AMt),Qk),xL),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Mk),$lt),"Node Size Options"),"Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."),DMt),Qk),dIt),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Ik),$lt),"Node Size Minimum"),"The minimal size to which a node can be reduced."),LMt),xd),la),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,eT),$lt),"Fixed Graph Size"),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),!1),oa),ys),en(_n)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,f7t),glt),"Edge Label Placement"),"Gives a hint on where to put edge labels."),wMt),ts),XMt),en(Wp)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,OV),glt),"Inline Edge Labels"),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),!1),oa),ys),en(Wp)))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,WSn),"font"),"Font Name"),"Font name used for a label."),ix),Pe),en(Wp)))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,Dwe),"font"),"Font Size"),"Font size used for a label."),ac),Ra),en(Wp)))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,b7t),zlt),"Port Anchor Offset"),"The offset to the port position where connections shall be attached."),xd),la),en(Bw)))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,d7t),zlt),"Port Index"),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),ac),Ra),en(Bw)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,ZEt),zlt),"Port Side"),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),jMt),ts),bo),en(Bw)))),Qe(e,new He(Ye(We(Xe(Ve(Ke(Ue(Ge(new je,QEt),zlt),"Port Border Offset"),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),Wa),zs),en(Bw)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,rT),bTt),"Port Label Placement"),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),BMt),Qk),OK),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,i7t),bTt),"Port Labels Next to Port"),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),!1),oa),ys),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,s7t),bTt),"Treat Port Labels as Group"),"If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."),!0),oa),ys),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,bN),_N),"Topdown Scale Factor"),"The scaling factor to be applied to the nodes laid out within the node in recursive topdown layout. The difference to 'Scale Factor' is that the node itself is not scaled. This value has to be set on hierarchical nodes."),1),Wa),zs),en(_n)))),Bs(e,bN,cv,T7e),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,gTt),_N),"Topdown Size Approximator"),"The size approximator to be used to set sizes of hierarchical nodes during topdown layout. The default value is null, which results in nodes keeping whatever size is defined for them e.g. through parent parallel node or by manually setting the size."),null),ts),jK),en(Qs)))),Bs(e,gTt,cv,C7e),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,wN),_N),"Topdown Hierarchical Node Width"),"The fixed size of a hierarchical node when using topdown layout. If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself."),150),Wa),zs),Hi(_n,lt(ut(G0,1),te,170,0,[Qs]))))),Bs(e,wN,cv,null),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,mN),_N),"Topdown Hierarchical Node Aspect Ratio"),"The fixed aspect ratio of a hierarchical node when using topdown layout. Default is 1/sqrt(2). If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself."),1.414),Wa),zs),Hi(_n,lt(ut(G0,1),te,170,0,[Qs]))))),Bs(e,mN,cv,null),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,cv),_N),"Topdown Node Type"),"The different node types used for topdown layout. If the node type is set to {@link TopdownNodeTypes.PARALLEL_NODE} the algorithm must be set to a {@link TopdownLayoutProvider} such as {@link TopdownPacking}. The {@link nodeSize.fixedGraphSize} option is technically only required for hierarchical nodes."),null),ts),pIt),en(Qs)))),Bs(e,cv,eT,null),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,pTt),_N),"Topdown Scale Cap"),"Determines the upper limit for the topdown scale factor. The default value is 1.0 which ensures that nested children never end up appearing larger than their parents in terms of unit sizes such as the font size. If the limit is larger, nodes will fully utilize the available space, but it is counteriniuitive for inner nodes to have a larger scale than outer nodes."),1),Wa),zs),en(_n)))),Bs(e,pTt,cv,E7e),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,e7t),Nwe),"Activate Inside Self Loops"),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),!1),oa),ys),en(Qs)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,n7t),Nwe),"Inside Self Loop"),"Whether a self loop should be routed inside a node instead of around that node."),!1),oa),ys),en(f0)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Dut),"edge"),"Edge Thickness"),"The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."),1),Wa),zs),en(f0)))),Qe(e,new He(Ye(We(Xe(fn(Ve(Ke(Ue(Ge(new je,Mwe),"edge"),"Edge Type"),"The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."),xMt),ts),nIt),en(f0)))),eS(e,new Z6(XC(pE(gE(new fy,Qn),"Layered"),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))),eS(e,new Z6(XC(pE(gE(new fy,"org.eclipse.elk.orthogonal"),"Orthogonal"),`Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia '86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.`))),eS(e,new Z6(XC(pE(gE(new fy,Du),"Force"),"Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984."))),eS(e,new Z6(XC(pE(gE(new fy,"org.eclipse.elk.circle"),"Circle"),"Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph."))),eS(e,new Z6(XC(pE(gE(new fy,X2e),"Tree"),"Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type."))),eS(e,new Z6(XC(pE(gE(new fy,"org.eclipse.elk.planar"),"Planar"),"Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable."))),eS(e,new Z6(XC(pE(gE(new fy,zh),"Radial"),"Radial layout algorithms usually position the nodes of the graph on concentric circles."))),$0e((new pnt,e)),ege((new gnt,e)),g0e((new Nj,e))};var VT,c7e,dMt,sx,u7e,l7e,gMt,ax,ox,h7e,CP,pMt,SP,Rw,bMt,Idt,Odt,wMt,mMt,vMt,yMt,xMt,f7e,cx,kMt,d7e,_P,Ndt,AP,Pdt,Iv,EMt,UT,TMt,CMt,SMt,ux,_Mt,jw,AMt,R3,lx,LMt,l2,DMt,AK,LP,Yp,MMt,g7e,IMt,p7e,b7e,OMt,NMt,Fdt,Bdt,Rdt,jdt,PMt,Pl,fL,FMt,$dt,zdt,j3,BMt,RMt,hx,jMt,Jk,DP,qdt,fx,w7e,Hdt,m7e,v7e,$Mt,y7e,zMt,qMt,Zk,HMt,LK,VMt,UMt,$w,x7e,GMt,KMt,WMt,DK,MP,dL,t8,k7e,E7e,MK,T7e,YMt,C7e;I(Nl,"CoreOptions",699),D(88,22,{3:1,34:1,22:1,88:1},JM);var kd,Uo,tc,Ed,Gh,gL=Lr(Nl,N8t,88,Pr,Edn,_cn),S7e;D(278,22,{3:1,34:1,22:1,278:1},Hrt);var GT,$3,KT,XMt=Lr(Nl,"EdgeLabelPlacement",278,Pr,Xfn,Acn),_7e;D(223,22,{3:1,34:1,22:1,223:1},U$);var WT,IP,e8,Vdt,Udt=Lr(Nl,"EdgeRouting",223,Pr,J1n,Lcn),A7e;D(321,22,{3:1,34:1,22:1,321:1},dS);var QMt,JMt,ZMt,tIt,Gdt,eIt,nIt=Lr(Nl,"EdgeType",321,Pr,w0n,Dcn),L7e;D(989,1,uf,pnt),l.hf=function(e){$0e(e)};var rIt,iIt,sIt,aIt,D7e,oIt,pL;I(Nl,"FixedLayouterOptions",989),D(990,1,{},qR),l.sf=function(){var e;return e=new Utt,e},l.tf=function(e){},I(Nl,"FixedLayouterOptions/FixedFactory",990),D(346,22,{3:1,34:1,22:1,346:1},Vrt);var Xp,IK,bL,cIt=Lr(Nl,"HierarchyHandling",346,Pr,Jfn,Mcn),M7e;D(290,22,{3:1,34:1,22:1,290:1},G$);var K0,h2,OP,NP,I7e=Lr(Nl,"LabelSide",290,Pr,Q1n,Icn),O7e;D(95,22,{3:1,34:1,22:1,95:1},B4);var qg,Qf,pf,Jf,bh,Zf,bf,W0,t1,Lo=Lr(Nl,"NodeLabelPlacement",95,Pr,mgn,Ocn),N7e;D(256,22,{3:1,34:1,22:1,256:1},ZM);var uIt,wL,f2,lIt,PP,mL=Lr(Nl,"PortAlignment",256,Pr,Rdn,Ncn),P7e;D(101,22,{3:1,34:1,22:1,101:1},gS);var zw,hu,Y0,YT,Td,d2,hIt=Lr(Nl,"PortConstraints",101,Pr,b0n,Pcn),F7e;D(279,22,{3:1,34:1,22:1,279:1},pS);var vL,yL,Hg,FP,g2,n8,OK=Lr(Nl,"PortLabelPlacement",279,Pr,p0n,Fcn),B7e;D(64,22,{3:1,34:1,22:1,64:1},tI);var Jn,Hn,Kh,Wh,Uu,Ou,Cd,e1,yl,cl,fu,xl,Gu,Ku,n1,wh,mh,wf,Er,bc,Gn,bo=Lr(Nl,"PortSide",64,Pr,Tdn,Bcn),R7e;D(993,1,uf,Nj),l.hf=function(e){g0e(e)};var j7e,$7e,fIt,z7e,q7e;I(Nl,"RandomLayouterOptions",993),D(994,1,{},HR),l.sf=function(){var e;return e=new qtt,e},l.tf=function(e){},I(Nl,"RandomLayouterOptions/RandomFactory",994),D(386,22,{3:1,34:1,22:1,386:1},K$);var z3,BP,RP,qw,xL=Lr(Nl,"SizeConstraint",386,Pr,X1n,Rcn),H7e;D(264,22,{3:1,34:1,22:1,264:1},R4);var jP,NK,XT,Kdt,$P,kL,PK,FK,BK,dIt=Lr(Nl,"SizeOptions",264,Pr,Dgn,jcn),V7e;D(280,22,{3:1,34:1,22:1,280:1},Urt);var q3,gIt,RK,pIt=Lr(Nl,"TopdownNodeTypes",280,Pr,Qfn,$cn),U7e;D(347,22,wTt);var bIt,wIt,jK=Lr(Nl,"TopdownSizeApproximator",347,Pr,Whn,qcn);D(987,347,wTt,_te),l.Tg=function(e){return rhe(e)},Lr(Nl,"TopdownSizeApproximator/1",987,jK,null,null),D(988,347,wTt,fee),l.Tg=function(e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se,Ce,rn,Ze,On;for(n=u(ne(e,(ai(),fx)),143),Ce=(kb(),U=new VC,U),$O(Ce,e),rn=new _r,h=new Zn((!e.a&&(e.a=new Jt(bi,e,10,11)),e.a));h.e!=h.i.gc();)s=u(ar(h),27),At=($=new VC,$),tV(At,Ce),$O(At,s),On=rhe(s),H4(At,b.Math.max(s.g,On.a),b.Math.max(s.f,On.b)),yu(rn.f,s,At);for(o=new Zn((!e.a&&(e.a=new Jt(bi,e,10,11)),e.a));o.e!=o.i.gc();)for(s=u(ar(o),27),A=new Zn((!s.e&&(s.e=new kn(Ts,s,7,4)),s.e));A.e!=A.i.gc();)T=u(ar(A),74),Wt=u(Ko(Eo(rn.f,s)),27),se=u(tr(rn,Dt((!T.c&&(T.c=new kn(vr,T,5,8)),T.c),0)),27),Bt=(P=new sM,P),Or((!Bt.b&&(Bt.b=new kn(vr,Bt,4,7)),Bt.b),Wt),Or((!Bt.c&&(Bt.c=new kn(vr,Bt,5,8)),Bt.c),se),ZH(Bt,Ji(Wt)),$O(Bt,T);tt=u(_I(n.f),205);try{tt.rf(Ce,new UR),Hee(n.f,tt)}catch(Dn){throw Dn=es(Dn),Lt(Dn,103)?(J=Dn,at(J)):at(Dn)}return ad(Ce,ox)||ad(Ce,ax)||r8t(Ce),k=Rt(Ht(ne(Ce,ox))),m=Rt(Ht(ne(Ce,ax))),d=k/m,r=Rt(Ht(ne(Ce,MP)))*b.Math.sqrt((!Ce.a&&(Ce.a=new Jt(bi,Ce,10,11)),Ce.a).i),Ze=u(ne(Ce,Yp),107),Tt=Ze.b+Ze.c+1,ht=Ze.d+Ze.a+1,new ae(b.Math.max(Tt,r),b.Math.max(ht,r/d))},Lr(Nl,"TopdownSizeApproximator/2",988,jK,null,null);var G7e;D(344,1,{871:1},S6),l.Ug=function(e,n){return bfe(this,e,n)},l.Vg=function(){jfe(this)},l.Wg=function(){return this.q},l.Xg=function(){return this.f?ast(this.f):null},l.Yg=function(){return ast(this.a)},l.Zg=function(){return this.p},l.$g=function(){return!1},l._g=function(){return this.n},l.ah=function(){return this.p!=null&&!this.b},l.bh=function(e){var n;this.n&&(n=e,ge(this.f,n))},l.dh=function(e,n){var r,s;this.n&&e&&g1n(this,(r=new Tee,s=lct(r,e),Y9n(r),s),(sH(),Ydt))},l.eh=function(e){var n;return this.b?null:(n=Z0n(this,this.g),Zr(this.a,n),n.i=this,this.d=e,n)},l.fh=function(e){e>0&&!this.b&&x4t(this,e)},l.b=!1,l.c=0,l.d=-1,l.e=null,l.f=null,l.g=-1,l.j=!1,l.k=!1,l.n=!1,l.o=0,l.q=0,l.r=0,I(_c,"BasicProgressMonitor",344),D(717,205,mw,jtt),l.rf=function(e,n){mge(e,n)},I(_c,"BoxLayoutProvider",717),D(983,1,Xr,fGt),l.Ne=function(e,n){return Y6n(this,u(e,27),u(n,27))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},l.a=!1,I(_c,"BoxLayoutProvider/1",983),D(163,1,{163:1},Fq,QJt),l.Ib=function(){return this.c?vkt(this.c):Hb(this.b)},I(_c,"BoxLayoutProvider/Group",163),D(320,22,{3:1,34:1,22:1,320:1},W$);var mIt,vIt,yIt,Wdt,xIt=Lr(_c,"BoxLayoutProvider/PackingMode",320,Pr,Z1n,Hcn),K7e;D(984,1,Xr,U8),l.Ne=function(e,n){return ghn(u(e,163),u(n,163))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(_c,"BoxLayoutProvider/lambda$0$Type",984),D(985,1,Xr,G8),l.Ne=function(e,n){return ahn(u(e,163),u(n,163))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(_c,"BoxLayoutProvider/lambda$1$Type",985),D(986,1,Xr,VR),l.Ne=function(e,n){return ohn(u(e,163),u(n,163))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(_c,"BoxLayoutProvider/lambda$2$Type",986),D(1384,1,{845:1},$tt),l.Mg=function(e,n){return C$(),!Lt(n,167)||JWt((ck(),u(e,167)),n)},I(_c,"ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type",1384),D(1385,1,ir,dGt),l.Cd=function(e){Tbn(this.a,u(e,149))},I(_c,"ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type",1385),D(1386,1,ir,Htt),l.Cd=function(e){u(e,96),C$()},I(_c,"ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type",1386),D(1390,1,ir,gGt),l.Cd=function(e){Ggn(this.a,u(e,96))},I(_c,"ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type",1390),D(1388,1,Kr,qXt),l.Mb=function(e){return sbn(this.a,this.b,u(e,149))},I(_c,"ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type",1388),D(1387,1,Kr,HXt),l.Mb=function(e){return $sn(this.a,this.b,u(e,845))},I(_c,"ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type",1387),D(1389,1,ir,VXt),l.Cd=function(e){Zun(this.a,this.b,u(e,149))},I(_c,"ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type",1389),D(947,1,{},Vtt),l.Kb=function(e){return jQt(e)},l.Fb=function(e){return this===e},I(_c,"ElkUtil/lambda$0$Type",947),D(948,1,ir,UXt),l.Cd=function(e){J5n(this.a,this.b,u(e,74))},l.a=0,l.b=0,I(_c,"ElkUtil/lambda$1$Type",948),D(949,1,ir,GXt),l.Cd=function(e){Hnn(this.a,this.b,u(e,166))},l.a=0,l.b=0,I(_c,"ElkUtil/lambda$2$Type",949),D(950,1,ir,KXt),l.Cd=function(e){Rin(this.a,this.b,u(e,135))},l.a=0,l.b=0,I(_c,"ElkUtil/lambda$3$Type",950),D(951,1,ir,pGt),l.Cd=function(e){yun(this.a,u(e,377))},I(_c,"ElkUtil/lambda$4$Type",951),D(325,1,{34:1,325:1},vnn),l.Fd=function(e){return dsn(this,u(e,242))},l.Fb=function(e){var n;return Lt(e,325)?(n=u(e,325),this.a==n.a):!1},l.Hb=function(){return Ys(this.a)},l.Ib=function(){return this.a+" (exclusive)"},l.a=0,I(_c,"ExclusiveBounds/ExclusiveLowerBound",325),D(1119,205,mw,Utt),l.rf=function(e,n){var r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt,At,Bt,Wt,se,Ce,rn,Ze;for(n.Ug("Fixed Layout",1),h=u(ne(e,(ai(),mMt)),223),P=0,$=0,At=new Zn((!e.a&&(e.a=new Jt(bi,e,10,11)),e.a));At.e!=At.i.gc();){for(ht=u(ar(At),27),Ze=u(ne(ht,(aH(),pL)),8),Ze&&(Ch(ht,Ze.a,Ze.b),u(ne(ht,iIt),181).Hc((Yl(),z3))&&(U=u(ne(ht,aIt),8),U.a>0&&U.b>0&&rv(ht,U.a,U.b,!0,!0))),P=b.Math.max(P,ht.i+ht.g),$=b.Math.max($,ht.j+ht.f),T=new Zn((!ht.n&&(ht.n=new Jt(Po,ht,1,7)),ht.n));T.e!=T.i.gc();)m=u(ar(T),135),Ze=u(ne(m,pL),8),Ze&&Ch(m,Ze.a,Ze.b),P=b.Math.max(P,ht.i+m.i+m.g),$=b.Math.max($,ht.j+m.j+m.f);for(se=new Zn((!ht.c&&(ht.c=new Jt(kl,ht,9,9)),ht.c));se.e!=se.i.gc();)for(Wt=u(ar(se),123),Ze=u(ne(Wt,pL),8),Ze&&Ch(Wt,Ze.a,Ze.b),Ce=ht.i+Wt.i,rn=ht.j+Wt.j,P=b.Math.max(P,Ce+Wt.g),$=b.Math.max($,rn+Wt.f),k=new Zn((!Wt.n&&(Wt.n=new Jt(Po,Wt,1,7)),Wt.n));k.e!=k.i.gc();)m=u(ar(k),135),Ze=u(ne(m,pL),8),Ze&&Ch(m,Ze.a,Ze.b),P=b.Math.max(P,Ce+m.i+m.g),$=b.Math.max($,rn+m.j+m.f);for(o=new rr(sr(Og(ht).a.Kc(),new z));Mr(o);)r=u(dr(o),74),A=Ipe(r),P=b.Math.max(P,A.a),$=b.Math.max($,A.b);for(s=new rr(sr(jO(ht).a.Kc(),new z));Mr(s);)r=u(dr(s),74),Ji(O0(r))!=e&&(A=Ipe(r),P=b.Math.max(P,A.a),$=b.Math.max($,A.b))}if(h==(Lg(),WT))for(Tt=new Zn((!e.a&&(e.a=new Jt(bi,e,10,11)),e.a));Tt.e!=Tt.i.gc();)for(ht=u(ar(Tt),27),s=new rr(sr(Og(ht).a.Kc(),new z));Mr(s);)r=u(dr(s),74),d=t7n(r),d.b==0?Mi(r,Iv,null):Mi(r,Iv,d);Ie(Me(ne(e,(aH(),sIt))))||(Bt=u(ne(e,D7e),107),tt=P+Bt.b+Bt.c,J=$+Bt.d+Bt.a,rv(e,tt,J,!0,!0)),n.Vg()},I(_c,"FixedLayoutProvider",1119),D(385,137,{3:1,423:1,385:1,96:1,137:1},iM,Lae),l.cg=function(e){var n,r,s,o,h,d,m,k,T;if(e)try{for(k=s3(e,";,;"),h=k,d=0,m=h.length;d>16&js|n^s<<16},l.Kc=function(){return new bGt(this)},l.Ib=function(){return this.a==null&&this.b==null?"pair(null,null)":this.a==null?"pair(null,"+rc(this.b)+")":this.b==null?"pair("+rc(this.a)+",null)":"pair("+rc(this.a)+","+rc(this.b)+")"},I(_c,"Pair",42),D(995,1,wa,bGt),l.Nb=function(e){Na(this,e)},l.Ob=function(){return!this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)},l.Pb=function(){if(!this.c&&!this.b&&this.a.a!=null)return this.b=!0,this.a.a;if(!this.c&&this.a.b!=null)return this.c=!0,this.a.b;throw at(new cc)},l.Qb=function(){throw this.c&&this.a.b!=null?this.a.b=null:this.b&&this.a.a!=null&&(this.a.a=null),at(new Xu)},l.b=!1,l.c=!1,I(_c,"Pair/1",995),D(454,1,{454:1},sne),l.Fb=function(e){return Nc(this.a,u(e,454).a)&&Nc(this.c,u(e,454).c)&&Nc(this.d,u(e,454).d)&&Nc(this.b,u(e,454).b)},l.Hb=function(){return lO(lt(ut(aa,1),Ln,1,5,[this.a,this.c,this.d,this.b]))},l.Ib=function(){return"("+this.a+ao+this.c+ao+this.d+ao+this.b+")"},I(_c,"Quadruple",454),D(1108,205,mw,qtt),l.rf=function(e,n){var r,s,o,h,d;if(n.Ug("Random Layout",1),(!e.a&&(e.a=new Jt(bi,e,10,11)),e.a).i==0){n.Vg();return}h=u(ne(e,(Y5t(),z7e)),17),h&&h.a!=0?o=new pq(h.a):o=new Kat,r=MM(Ht(ne(e,j7e))),d=MM(Ht(ne(e,q7e))),s=u(ne(e,$7e),107),mCn(e,o,r,d,s),n.Vg()},I(_c,"RandomLayoutProvider",1108),D(240,1,{240:1},xit),l.Fb=function(e){return Nc(this.a,u(e,240).a)&&Nc(this.b,u(e,240).b)&&Nc(this.c,u(e,240).c)},l.Hb=function(){return lO(lt(ut(aa,1),Ln,1,5,[this.a,this.b,this.c]))},l.Ib=function(){return"("+this.a+ao+this.b+ao+this.c+")"},I(_c,"Triple",240);var Q7e;D(562,1,{}),l.Lf=function(){return new ae(this.f.i,this.f.j)},l.of=function(e){return One(e,(ai(),Pl))?ne(this.f,J7e):ne(this.f,e)},l.Mf=function(){return new ae(this.f.g,this.f.f)},l.Nf=function(){return this.g},l.pf=function(e){return ad(this.f,e)},l.Of=function(e){Su(this.f,e.a),_u(this.f,e.b)},l.Pf=function(e){qm(this.f,e.a),zm(this.f,e.b)},l.Qf=function(e){this.g=e},l.g=0;var J7e;I(sA,"ElkGraphAdapters/AbstractElkGraphElementAdapter",562),D(563,1,{853:1},r$),l.Rf=function(){var e,n;if(!this.b)for(this.b=hq(Kz(this.a).i),n=new Zn(Kz(this.a));n.e!=n.i.gc();)e=u(ar(n),135),ge(this.b,new Qnt(e));return this.b},l.b=null,I(sA,"ElkGraphAdapters/ElkEdgeAdapter",563),D(308,562,{},my),l.Sf=function(){return Che(this)},l.a=null,I(sA,"ElkGraphAdapters/ElkGraphAdapter",308),D(640,562,{187:1},Qnt),I(sA,"ElkGraphAdapters/ElkLabelAdapter",640),D(639,562,{695:1},sit),l.Rf=function(){return svn(this)},l.Vf=function(){var e;return e=u(ne(this.f,(ai(),UT)),140),!e&&(e=new HC),e},l.Xf=function(){return avn(this)},l.Zf=function(e){var n;n=new Eit(e),Mi(this.f,(ai(),UT),n)},l.$f=function(e){Mi(this.f,(ai(),Yp),new jvt(e))},l.Tf=function(){return this.d},l.Uf=function(){var e,n;if(!this.a)for(this.a=new fe,n=new rr(sr(jO(u(this.f,27)).a.Kc(),new z));Mr(n);)e=u(dr(n),74),ge(this.a,new r$(e));return this.a},l.Wf=function(){var e,n;if(!this.c)for(this.c=new fe,n=new rr(sr(Og(u(this.f,27)).a.Kc(),new z));Mr(n);)e=u(dr(n),74),ge(this.c,new r$(e));return this.c},l.Yf=function(){return Jz(u(this.f,27)).i!=0||Ie(Me(u(this.f,27).of((ai(),_P))))},l._f=function(){R0n(this,(xy(),Q7e))},l.a=null,l.b=null,l.c=null,l.d=null,l.e=null,I(sA,"ElkGraphAdapters/ElkNodeAdapter",639),D(1284,562,{852:1},wGt),l.Rf=function(){return gvn(this)},l.Uf=function(){var e,n;if(!this.a)for(this.a=C0(u(this.f,123).hh().i),n=new Zn(u(this.f,123).hh());n.e!=n.i.gc();)e=u(ar(n),74),ge(this.a,new r$(e));return this.a},l.Wf=function(){var e,n;if(!this.c)for(this.c=C0(u(this.f,123).ih().i),n=new Zn(u(this.f,123).ih());n.e!=n.i.gc();)e=u(ar(n),74),ge(this.c,new r$(e));return this.c},l.ag=function(){return u(u(this.f,123).of((ai(),hx)),64)},l.bg=function(){var e,n,r,s,o,h,d,m;for(s=ed(u(this.f,123)),r=new Zn(u(this.f,123).ih());r.e!=r.i.gc();)for(e=u(ar(r),74),m=new Zn((!e.c&&(e.c=new kn(vr,e,5,8)),e.c));m.e!=m.i.gc();){if(d=u(ar(m),84),qy(Jo(d),s))return!0;if(Jo(d)==s&&Ie(Me(ne(e,(ai(),Ndt)))))return!0}for(n=new Zn(u(this.f,123).hh());n.e!=n.i.gc();)for(e=u(ar(n),74),h=new Zn((!e.b&&(e.b=new kn(vr,e,4,7)),e.b));h.e!=h.i.gc();)if(o=u(ar(h),84),qy(Jo(o),s))return!0;return!1},l.a=null,l.b=null,l.c=null,I(sA,"ElkGraphAdapters/ElkPortAdapter",1284),D(1285,1,Xr,ztt),l.Ne=function(e,n){return G8n(u(e,123),u(n,123))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(sA,"ElkGraphAdapters/PortComparator",1285);var p2=os(qh,"EObject"),QT=os(D5,Bwe),vh=os(D5,Rwe),zP=os(D5,jwe),qP=os(D5,"ElkShape"),vr=os(D5,$we),Ts=os(D5,mTt),Wi=os(D5,zwe),HP=os(qh,qwe),EL=os(qh,"EFactory"),Z7e,Xdt=os(qh,Hwe),F1=os(qh,"EPackage"),da,tTe,eTe,CIt,$K,nTe,SIt,_It,AIt,X0,rTe,iTe,Po=os(D5,vTt),bi=os(D5,yTt),kl=os(D5,xTt);D(93,1,Vwe),l.th=function(){return this.uh(),null},l.uh=function(){return null},l.vh=function(){return this.uh(),!1},l.wh=function(){return!1},l.xh=function(e){Ei(this,e)},I(Pk,"BasicNotifierImpl",93),D(99,93,Wwe),l.Yh=function(){return Hl(this)},l.yh=function(e,n){return e},l.zh=function(){throw at(new Vr)},l.Ah=function(e){var n;return n=yo(u(En(this.Dh(),this.Fh()),19)),this.Ph().Th(this,n.n,n.f,e)},l.Bh=function(e,n){throw at(new Vr)},l.Ch=function(e,n,r){return hh(this,e,n,r)},l.Dh=function(){var e;return this.zh()&&(e=this.zh().Nk(),e)?e:this.ii()},l.Eh=function(){return Kot(this)},l.Fh=function(){throw at(new Vr)},l.Gh=function(){var e,n;return n=this.$h().Ok(),!n&&this.zh().Tk(n=(rS(),e=Jyt(Qd(this.Dh())),e==null?i0t:new sI(this,e))),n},l.Hh=function(e,n){return e},l.Ih=function(e){var n;return n=e.pk(),n?e.Lj():ns(this.Dh(),e)},l.Jh=function(){var e;return e=this.zh(),e?e.Qk():null},l.Kh=function(){return this.zh()?this.zh().Nk():null},l.Lh=function(e,n,r){return AH(this,e,n,r)},l.Mh=function(e){return UE(this,e)},l.Nh=function(e,n){return Ist(this,e,n)},l.Oh=function(){var e;return e=this.zh(),!!e&&e.Rk()},l.Ph=function(){throw at(new Vr)},l.Qh=function(){return xH(this)},l.Rh=function(e,n,r,s){return gk(this,e,n,s)},l.Sh=function(e,n,r){var s;return s=u(En(this.Dh(),n),69),s.wk().zk(this,this.hi(),n-this.ji(),e,r)},l.Th=function(e,n,r,s){return nq(this,e,n,s)},l.Uh=function(e,n,r){var s;return s=u(En(this.Dh(),n),69),s.wk().Ak(this,this.hi(),n-this.ji(),e,r)},l.Vh=function(){return!!this.zh()&&!!this.zh().Pk()},l.Wh=function(e){return iot(this,e)},l.Xh=function(e){return Kne(this,e)},l.Zh=function(e){return bpe(this,e)},l.$h=function(){throw at(new Vr)},l._h=function(){return this.zh()?this.zh().Pk():null},l.ai=function(){return xH(this)},l.bi=function(e,n){qot(this,e,n)},l.ci=function(e){this.$h().Sk(e)},l.di=function(e){this.$h().Vk(e)},l.ei=function(e){this.$h().Uk(e)},l.fi=function(e,n){var r,s,o,h;return h=this.Jh(),h&&e&&(n=so(h.El(),this,n),h.Il(this)),s=this.Ph(),s&&(oct(this,this.Ph(),this.Fh()).Bb&po?(o=s.Qh(),o&&(e?!h&&o.Il(this):o.Hl(this))):(n=(r=this.Fh(),r>=0?this.Ah(n):this.Ph().Th(this,-1-r,null,n)),n=this.Ch(null,-1,n))),this.di(e),n},l.gi=function(e){var n,r,s,o,h,d,m,k;if(r=this.Dh(),h=ns(r,e),n=this.ji(),h>=n)return u(e,69).wk().Dk(this,this.hi(),h-n);if(h<=-1)if(d=y5((il(),ja),r,e),d){if(vo(),u(d,69).xk()||(d=tk($o(ja,d))),o=(s=this.Ih(d),u(s>=0?this.Lh(s,!0,!0):tv(this,d,!0),160)),k=d.Ik(),k>1||k==-1)return u(u(o,220).Sl(e,!1),79)}else throw at(new zn(Jb+e.xe()+qlt));else if(e.Jk())return s=this.Ih(e),u(s>=0?this.Lh(s,!1,!0):tv(this,e,!1),79);return m=new hQt(this,e),m},l.hi=function(){return r4t(this)},l.ii=function(){return(Lb(),Fn).S},l.ji=function(){return fr(this.ii())},l.ki=function(e){jot(this,e)},l.Ib=function(){return qf(this)},I(Rn,"BasicEObjectImpl",99);var sTe;D(119,99,{110:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1}),l.li=function(e){var n;return n=n4t(this),n[e]},l.mi=function(e,n){var r;r=n4t(this),ls(r,e,n)},l.ni=function(e){var n;n=n4t(this),ls(n,e,null)},l.th=function(){return u(jn(this,4),129)},l.uh=function(){throw at(new Vr)},l.vh=function(){return(this.Db&4)!=0},l.zh=function(){throw at(new Vr)},l.oi=function(e){fk(this,2,e)},l.Bh=function(e,n){this.Db=n<<16|this.Db&255,this.oi(e)},l.Dh=function(){return $u(this)},l.Fh=function(){return this.Db>>16},l.Gh=function(){var e,n;return rS(),n=Jyt(Qd((e=u(jn(this,16),29),e||this.ii()))),n==null?i0t:new sI(this,n)},l.wh=function(){return(this.Db&1)==0},l.Jh=function(){return u(jn(this,128),2034)},l.Kh=function(){return u(jn(this,16),29)},l.Oh=function(){return(this.Db&32)!=0},l.Ph=function(){return u(jn(this,2),54)},l.Vh=function(){return(this.Db&64)!=0},l.$h=function(){throw at(new Vr)},l._h=function(){return u(jn(this,64),288)},l.ci=function(e){fk(this,16,e)},l.di=function(e){fk(this,128,e)},l.ei=function(e){fk(this,64,e)},l.hi=function(){return Au(this)},l.Db=0,I(Rn,"MinimalEObjectImpl",119),D(120,119,{110:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),l.oi=function(e){this.Cb=e},l.Ph=function(){return this.Cb},I(Rn,"MinimalEObjectImpl/Container",120),D(2083,120,{110:1,342:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),l.Lh=function(e,n,r){return mxt(this,e,n,r)},l.Uh=function(e,n,r){return o6t(this,e,n,r)},l.Wh=function(e){return f3t(this,e)},l.bi=function(e,n){r5t(this,e,n)},l.ii=function(){return zc(),iTe},l.ki=function(e){G4t(this,e)},l.nf=function(){return Ule(this)},l.gh=function(){return!this.o&&(this.o=new nl((zc(),X0),Qp,this,0)),this.o},l.of=function(e){return ne(this,e)},l.pf=function(e){return ad(this,e)},l.qf=function(e,n){return Mi(this,e,n)},I(kw,"EMapPropertyHolderImpl",2083),D(572,120,{110:1,377:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},fC),l.Lh=function(e,n,r){switch(e){case 0:return this.a;case 1:return this.b}return AH(this,e,n,r)},l.Wh=function(e){switch(e){case 0:return this.a!=0;case 1:return this.b!=0}return iot(this,e)},l.bi=function(e,n){switch(e){case 0:Rq(this,Rt(Ht(n)));return;case 1:Bq(this,Rt(Ht(n)));return}qot(this,e,n)},l.ii=function(){return zc(),tTe},l.ki=function(e){switch(e){case 0:Rq(this,0);return;case 1:Bq(this,0);return}jot(this,e)},l.Ib=function(){var e;return this.Db&64?qf(this):(e=new ef(qf(this)),e.a+=" (x: ",O4(e,this.a),e.a+=", y: ",O4(e,this.b),e.a+=")",e.a)},l.a=0,l.b=0,I(kw,"ElkBendPointImpl",572),D(739,2083,{110:1,342:1,167:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),l.Lh=function(e,n,r){return S5t(this,e,n,r)},l.Sh=function(e,n,r){return Iot(this,e,n,r)},l.Uh=function(e,n,r){return pat(this,e,n,r)},l.Wh=function(e){return $4t(this,e)},l.bi=function(e,n){Bxt(this,e,n)},l.ii=function(){return zc(),nTe},l.ki=function(e){w5t(this,e)},l.jh=function(){return this.k},l.kh=function(){return Kz(this)},l.Ib=function(){return zat(this)},l.k=null,I(kw,"ElkGraphElementImpl",739),D(740,739,{110:1,342:1,167:1,422:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),l.Lh=function(e,n,r){return N5t(this,e,n,r)},l.Wh=function(e){return $5t(this,e)},l.bi=function(e,n){Rxt(this,e,n)},l.ii=function(){return zc(),rTe},l.ki=function(e){K5t(this,e)},l.lh=function(){return this.f},l.mh=function(){return this.g},l.nh=function(){return this.i},l.oh=function(){return this.j},l.ph=function(e,n){H4(this,e,n)},l.qh=function(e,n){Ch(this,e,n)},l.rh=function(e){Su(this,e)},l.sh=function(e){_u(this,e)},l.Ib=function(){return Bot(this)},l.f=0,l.g=0,l.i=0,l.j=0,I(kw,"ElkShapeImpl",740),D(741,740,{110:1,342:1,84:1,167:1,422:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),l.Lh=function(e,n,r){return hxt(this,e,n,r)},l.Sh=function(e,n,r){return Mxt(this,e,n,r)},l.Uh=function(e,n,r){return Ixt(this,e,n,r)},l.Wh=function(e){return n5t(this,e)},l.bi=function(e,n){V6t(this,e,n)},l.ii=function(){return zc(),eTe},l.ki=function(e){axt(this,e)},l.hh=function(){return!this.d&&(this.d=new kn(Ts,this,8,5)),this.d},l.ih=function(){return!this.e&&(this.e=new kn(Ts,this,7,4)),this.e},I(kw,"ElkConnectableShapeImpl",741),D(326,739,{110:1,342:1,74:1,167:1,326:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},sM),l.Ah=function(e){return _xt(this,e)},l.Lh=function(e,n,r){switch(e){case 3:return AI(this);case 4:return!this.b&&(this.b=new kn(vr,this,4,7)),this.b;case 5:return!this.c&&(this.c=new kn(vr,this,5,8)),this.c;case 6:return!this.a&&(this.a=new Jt(Wi,this,6,6)),this.a;case 7:return Pn(),!this.b&&(this.b=new kn(vr,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new kn(vr,this,5,8)),this.c.i<=1));case 8:return Pn(),!!S_(this);case 9:return Pn(),!!Zm(this);case 10:return Pn(),!this.b&&(this.b=new kn(vr,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new kn(vr,this,5,8)),this.c.i!=0)}return S5t(this,e,n,r)},l.Sh=function(e,n,r){var s;switch(n){case 3:return this.Cb&&(r=(s=this.Db>>16,s>=0?_xt(this,r):this.Cb.Th(this,-1-s,null,r))),cvt(this,u(e,27),r);case 4:return!this.b&&(this.b=new kn(vr,this,4,7)),vu(this.b,e,r);case 5:return!this.c&&(this.c=new kn(vr,this,5,8)),vu(this.c,e,r);case 6:return!this.a&&(this.a=new Jt(Wi,this,6,6)),vu(this.a,e,r)}return Iot(this,e,n,r)},l.Uh=function(e,n,r){switch(n){case 3:return cvt(this,null,r);case 4:return!this.b&&(this.b=new kn(vr,this,4,7)),so(this.b,e,r);case 5:return!this.c&&(this.c=new kn(vr,this,5,8)),so(this.c,e,r);case 6:return!this.a&&(this.a=new Jt(Wi,this,6,6)),so(this.a,e,r)}return pat(this,e,n,r)},l.Wh=function(e){switch(e){case 3:return!!AI(this);case 4:return!!this.b&&this.b.i!=0;case 5:return!!this.c&&this.c.i!=0;case 6:return!!this.a&&this.a.i!=0;case 7:return!this.b&&(this.b=new kn(vr,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new kn(vr,this,5,8)),this.c.i<=1));case 8:return S_(this);case 9:return Zm(this);case 10:return!this.b&&(this.b=new kn(vr,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new kn(vr,this,5,8)),this.c.i!=0)}return $4t(this,e)},l.bi=function(e,n){switch(e){case 3:ZH(this,u(n,27));return;case 4:!this.b&&(this.b=new kn(vr,this,4,7)),Ir(this.b),!this.b&&(this.b=new kn(vr,this,4,7)),gs(this.b,u(n,16));return;case 5:!this.c&&(this.c=new kn(vr,this,5,8)),Ir(this.c),!this.c&&(this.c=new kn(vr,this,5,8)),gs(this.c,u(n,16));return;case 6:!this.a&&(this.a=new Jt(Wi,this,6,6)),Ir(this.a),!this.a&&(this.a=new Jt(Wi,this,6,6)),gs(this.a,u(n,16));return}Bxt(this,e,n)},l.ii=function(){return zc(),CIt},l.ki=function(e){switch(e){case 3:ZH(this,null);return;case 4:!this.b&&(this.b=new kn(vr,this,4,7)),Ir(this.b);return;case 5:!this.c&&(this.c=new kn(vr,this,5,8)),Ir(this.c);return;case 6:!this.a&&(this.a=new Jt(Wi,this,6,6)),Ir(this.a);return}w5t(this,e)},l.Ib=function(){return Nge(this)},I(kw,"ElkEdgeImpl",326),D(451,2083,{110:1,342:1,166:1,451:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},K8),l.Ah=function(e){return Ext(this,e)},l.Lh=function(e,n,r){switch(e){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return!this.a&&(this.a=new Ps(vh,this,5)),this.a;case 6:return Hne(this);case 7:return n?uot(this):this.i;case 8:return n?cot(this):this.f;case 9:return!this.g&&(this.g=new kn(Wi,this,9,10)),this.g;case 10:return!this.e&&(this.e=new kn(Wi,this,10,9)),this.e;case 11:return this.d}return mxt(this,e,n,r)},l.Sh=function(e,n,r){var s,o,h;switch(n){case 6:return this.Cb&&(r=(o=this.Db>>16,o>=0?Ext(this,r):this.Cb.Th(this,-1-o,null,r))),ovt(this,u(e,74),r);case 9:return!this.g&&(this.g=new kn(Wi,this,9,10)),vu(this.g,e,r);case 10:return!this.e&&(this.e=new kn(Wi,this,10,9)),vu(this.e,e,r)}return h=u(En((s=u(jn(this,16),29),s||(zc(),$K)),n),69),h.wk().zk(this,Au(this),n-fr((zc(),$K)),e,r)},l.Uh=function(e,n,r){switch(n){case 5:return!this.a&&(this.a=new Ps(vh,this,5)),so(this.a,e,r);case 6:return ovt(this,null,r);case 9:return!this.g&&(this.g=new kn(Wi,this,9,10)),so(this.g,e,r);case 10:return!this.e&&(this.e=new kn(Wi,this,10,9)),so(this.e,e,r)}return o6t(this,e,n,r)},l.Wh=function(e){switch(e){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return!!this.a&&this.a.i!=0;case 6:return!!Hne(this);case 7:return!!this.i;case 8:return!!this.f;case 9:return!!this.g&&this.g.i!=0;case 10:return!!this.e&&this.e.i!=0;case 11:return this.d!=null}return f3t(this,e)},l.bi=function(e,n){switch(e){case 1:QE(this,Rt(Ht(n)));return;case 2:ZE(this,Rt(Ht(n)));return;case 3:XE(this,Rt(Ht(n)));return;case 4:JE(this,Rt(Ht(n)));return;case 5:!this.a&&(this.a=new Ps(vh,this,5)),Ir(this.a),!this.a&&(this.a=new Ps(vh,this,5)),gs(this.a,u(n,16));return;case 6:Ode(this,u(n,74));return;case 7:Uq(this,u(n,84));return;case 8:Vq(this,u(n,84));return;case 9:!this.g&&(this.g=new kn(Wi,this,9,10)),Ir(this.g),!this.g&&(this.g=new kn(Wi,this,9,10)),gs(this.g,u(n,16));return;case 10:!this.e&&(this.e=new kn(Wi,this,10,9)),Ir(this.e),!this.e&&(this.e=new kn(Wi,this,10,9)),gs(this.e,u(n,16));return;case 11:A4t(this,Gr(n));return}r5t(this,e,n)},l.ii=function(){return zc(),$K},l.ki=function(e){switch(e){case 1:QE(this,0);return;case 2:ZE(this,0);return;case 3:XE(this,0);return;case 4:JE(this,0);return;case 5:!this.a&&(this.a=new Ps(vh,this,5)),Ir(this.a);return;case 6:Ode(this,null);return;case 7:Uq(this,null);return;case 8:Vq(this,null);return;case 9:!this.g&&(this.g=new kn(Wi,this,9,10)),Ir(this.g);return;case 10:!this.e&&(this.e=new kn(Wi,this,10,9)),Ir(this.e);return;case 11:A4t(this,null);return}G4t(this,e)},l.Ib=function(){return K1e(this)},l.b=0,l.c=0,l.d=null,l.j=0,l.k=0,I(kw,"ElkEdgeSectionImpl",451),D(158,120,{110:1,94:1,93:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1}),l.Lh=function(e,n,r){var s;return e==0?(!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),this.Ab):Ih(this,e-fr(this.ii()),En((s=u(jn(this,16),29),s||this.ii()),e),n,r)},l.Sh=function(e,n,r){var s,o;return n==0?(!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),vu(this.Ab,e,r)):(o=u(En((s=u(jn(this,16),29),s||this.ii()),n),69),o.wk().zk(this,Au(this),n-fr(this.ii()),e,r))},l.Uh=function(e,n,r){var s,o;return n==0?(!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),so(this.Ab,e,r)):(o=u(En((s=u(jn(this,16),29),s||this.ii()),n),69),o.wk().Ak(this,Au(this),n-fr(this.ii()),e,r))},l.Wh=function(e){var n;return e==0?!!this.Ab&&this.Ab.i!=0:Dh(this,e-fr(this.ii()),En((n=u(jn(this,16),29),n||this.ii()),e))},l.Zh=function(e){return e8t(this,e)},l.bi=function(e,n){var r;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab),!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),gs(this.Ab,u(n,16));return}Fh(this,e-fr(this.ii()),En((r=u(jn(this,16),29),r||this.ii()),e),n)},l.di=function(e){fk(this,128,e)},l.ii=function(){return wn(),ETe},l.ki=function(e){var n;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab);return}Ph(this,e-fr(this.ii()),En((n=u(jn(this,16),29),n||this.ii()),e))},l.pi=function(){this.Bb|=1},l.qi=function(e){return O_(this,e)},l.Bb=0,I(Rn,"EModelElementImpl",158),D(720,158,{110:1,94:1,93:1,479:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1},Fj),l.ri=function(e,n){return upe(this,e,n)},l.si=function(e){var n,r,s,o,h;if(this.a!=sh(e)||e.Bb&256)throw at(new zn(Vlt+e.zb+fv));for(s=Yo(e);Wc(s.a).i!=0;){if(r=u(QO(s,0,(n=u(Dt(Wc(s.a),0),89),h=n.c,Lt(h,90)?u(h,29):(wn(),xf))),29),Jm(r))return o=sh(r).wi().si(r),u(o,54).ci(e),o;s=Yo(r)}return(e.D!=null?e.D:e.B)=="java.util.Map$Entry"?new Cte(e):new Xvt(e)},l.ti=function(e,n){return iv(this,e,n)},l.Lh=function(e,n,r){var s;switch(e){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),this.Ab;case 1:return this.a}return Ih(this,e-fr((wn(),v2)),En((s=u(jn(this,16),29),s||v2),e),n,r)},l.Sh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),vu(this.Ab,e,r);case 1:return this.a&&(r=u(this.a,54).Th(this,4,F1,r)),b5t(this,u(e,241),r)}return o=u(En((s=u(jn(this,16),29),s||(wn(),v2)),n),69),o.wk().zk(this,Au(this),n-fr((wn(),v2)),e,r)},l.Uh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),so(this.Ab,e,r);case 1:return b5t(this,null,r)}return o=u(En((s=u(jn(this,16),29),s||(wn(),v2)),n),69),o.wk().Ak(this,Au(this),n-fr((wn(),v2)),e,r)},l.Wh=function(e){var n;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return!!this.a}return Dh(this,e-fr((wn(),v2)),En((n=u(jn(this,16),29),n||v2),e))},l.bi=function(e,n){var r;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab),!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),gs(this.Ab,u(n,16));return;case 1:Lfe(this,u(n,241));return}Fh(this,e-fr((wn(),v2)),En((r=u(jn(this,16),29),r||v2),e),n)},l.ii=function(){return wn(),v2},l.ki=function(e){var n;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab);return;case 1:Lfe(this,null);return}Ph(this,e-fr((wn(),v2)),En((n=u(jn(this,16),29),n||v2),e))};var TL,LIt,aTe;I(Rn,"EFactoryImpl",720),D(1037,720,{110:1,2113:1,94:1,93:1,479:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1},W8),l.ri=function(e,n){switch(e.hk()){case 12:return u(n,149).Pg();case 13:return rc(n);default:throw at(new zn(lT+e.xe()+fv))}},l.si=function(e){var n,r,s,o,h,d,m,k;switch(e.G==-1&&(e.G=(n=sh(e),n?Np(n.vi(),e):-1)),e.G){case 4:return h=new Y8,h;case 6:return d=new VC,d;case 7:return m=new J2t,m;case 8:return s=new sM,s;case 9:return r=new fC,r;case 10:return o=new K8,o;case 11:return k=new GR,k;default:throw at(new zn(Vlt+e.zb+fv))}},l.ti=function(e,n){switch(e.hk()){case 13:case 12:return null;default:throw at(new zn(lT+e.xe()+fv))}},I(kw,"ElkGraphFactoryImpl",1037),D(448,158,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1}),l.Gh=function(){var e,n;return n=(e=u(jn(this,16),29),Jyt(Qd(e||this.ii()))),n==null?(rS(),rS(),i0t):new WJt(this,n)},l.Lh=function(e,n,r){var s;switch(e){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),this.Ab;case 1:return this.xe()}return Ih(this,e-fr(this.ii()),En((s=u(jn(this,16),29),s||this.ii()),e),n,r)},l.Wh=function(e){var n;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null}return Dh(this,e-fr(this.ii()),En((n=u(jn(this,16),29),n||this.ii()),e))},l.bi=function(e,n){var r;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab),!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),gs(this.Ab,u(n,16));return;case 1:this.ui(Gr(n));return}Fh(this,e-fr(this.ii()),En((r=u(jn(this,16),29),r||this.ii()),e),n)},l.ii=function(){return wn(),TTe},l.ki=function(e){var n;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab);return;case 1:this.ui(null);return}Ph(this,e-fr(this.ii()),En((n=u(jn(this,16),29),n||this.ii()),e))},l.xe=function(){return this.zb},l.ui=function(e){mu(this,e)},l.Ib=function(){return u_(this)},l.zb=null,I(Rn,"ENamedElementImpl",448),D(184,448,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1},xne),l.Ah=function(e){return $he(this,e)},l.Lh=function(e,n,r){var s;switch(e){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return!this.rb&&(this.rb=new Iy(this,B1,this)),this.rb;case 6:return!this.vb&&(this.vb=new z6(F1,this,6,7)),this.vb;case 7:return n?this.Db>>16==7?u(this.Cb,241):null:Xne(this)}return Ih(this,e-fr((wn(),eb)),En((s=u(jn(this,16),29),s||eb),e),n,r)},l.Sh=function(e,n,r){var s,o,h;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),vu(this.Ab,e,r);case 4:return this.sb&&(r=u(this.sb,54).Th(this,1,EL,r)),v5t(this,u(e,479),r);case 5:return!this.rb&&(this.rb=new Iy(this,B1,this)),vu(this.rb,e,r);case 6:return!this.vb&&(this.vb=new z6(F1,this,6,7)),vu(this.vb,e,r);case 7:return this.Cb&&(r=(o=this.Db>>16,o>=0?$he(this,r):this.Cb.Th(this,-1-o,null,r))),hh(this,e,7,r)}return h=u(En((s=u(jn(this,16),29),s||(wn(),eb)),n),69),h.wk().zk(this,Au(this),n-fr((wn(),eb)),e,r)},l.Uh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),so(this.Ab,e,r);case 4:return v5t(this,null,r);case 5:return!this.rb&&(this.rb=new Iy(this,B1,this)),so(this.rb,e,r);case 6:return!this.vb&&(this.vb=new z6(F1,this,6,7)),so(this.vb,e,r);case 7:return hh(this,null,7,r)}return o=u(En((s=u(jn(this,16),29),s||(wn(),eb)),n),69),o.wk().Ak(this,Au(this),n-fr((wn(),eb)),e,r)},l.Wh=function(e){var n;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return!!this.sb;case 5:return!!this.rb&&this.rb.i!=0;case 6:return!!this.vb&&this.vb.i!=0;case 7:return!!Xne(this)}return Dh(this,e-fr((wn(),eb)),En((n=u(jn(this,16),29),n||eb),e))},l.Zh=function(e){var n;return n=okn(this,e),n||e8t(this,e)},l.bi=function(e,n){var r;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab),!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),gs(this.Ab,u(n,16));return;case 1:mu(this,Gr(n));return;case 2:Qq(this,Gr(n));return;case 3:Xq(this,Gr(n));return;case 4:Fot(this,u(n,479));return;case 5:!this.rb&&(this.rb=new Iy(this,B1,this)),Ir(this.rb),!this.rb&&(this.rb=new Iy(this,B1,this)),gs(this.rb,u(n,16));return;case 6:!this.vb&&(this.vb=new z6(F1,this,6,7)),Ir(this.vb),!this.vb&&(this.vb=new z6(F1,this,6,7)),gs(this.vb,u(n,16));return}Fh(this,e-fr((wn(),eb)),En((r=u(jn(this,16),29),r||eb),e),n)},l.ei=function(e){var n,r;if(e&&this.rb)for(r=new Zn(this.rb);r.e!=r.i.gc();)n=ar(r),Lt(n,364)&&(u(n,364).w=null);fk(this,64,e)},l.ii=function(){return wn(),eb},l.ki=function(e){var n;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab);return;case 1:mu(this,null);return;case 2:Qq(this,null);return;case 3:Xq(this,null);return;case 4:Fot(this,null);return;case 5:!this.rb&&(this.rb=new Iy(this,B1,this)),Ir(this.rb);return;case 6:!this.vb&&(this.vb=new z6(F1,this,6,7)),Ir(this.vb);return}Ph(this,e-fr((wn(),eb)),En((n=u(jn(this,16),29),n||eb),e))},l.pi=function(){kot(this)},l.vi=function(){return!this.rb&&(this.rb=new Iy(this,B1,this)),this.rb},l.wi=function(){return this.sb},l.xi=function(){return this.ub},l.yi=function(){return this.xb},l.zi=function(){return this.yb},l.Ai=function(e){this.ub=e},l.Ib=function(){var e;return this.Db&64?u_(this):(e=new ef(u_(this)),e.a+=" (nsURI: ",Mo(e,this.yb),e.a+=", nsPrefix: ",Mo(e,this.xb),e.a+=")",e.a)},l.xb=null,l.yb=null,I(Rn,"EPackageImpl",184),D(569,184,{110:1,2115:1,569:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1},nde),l.q=!1,l.r=!1;var oTe=!1;I(kw,"ElkGraphPackageImpl",569),D(366,740,{110:1,342:1,167:1,135:1,422:1,366:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},Y8),l.Ah=function(e){return Txt(this,e)},l.Lh=function(e,n,r){switch(e){case 7:return Qne(this);case 8:return this.a}return N5t(this,e,n,r)},l.Sh=function(e,n,r){var s;switch(n){case 7:return this.Cb&&(r=(s=this.Db>>16,s>=0?Txt(this,r):this.Cb.Th(this,-1-s,null,r))),hyt(this,u(e,167),r)}return Iot(this,e,n,r)},l.Uh=function(e,n,r){return n==7?hyt(this,null,r):pat(this,e,n,r)},l.Wh=function(e){switch(e){case 7:return!!Qne(this);case 8:return!hn("",this.a)}return $5t(this,e)},l.bi=function(e,n){switch(e){case 7:rkt(this,u(n,167));return;case 8:E4t(this,Gr(n));return}Rxt(this,e,n)},l.ii=function(){return zc(),SIt},l.ki=function(e){switch(e){case 7:rkt(this,null);return;case 8:E4t(this,"");return}K5t(this,e)},l.Ib=function(){return Hfe(this)},l.a="",I(kw,"ElkLabelImpl",366),D(207,741,{110:1,342:1,84:1,167:1,27:1,422:1,207:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},VC),l.Ah=function(e){return Axt(this,e)},l.Lh=function(e,n,r){switch(e){case 9:return!this.c&&(this.c=new Jt(kl,this,9,9)),this.c;case 10:return!this.a&&(this.a=new Jt(bi,this,10,11)),this.a;case 11:return Ji(this);case 12:return!this.b&&(this.b=new Jt(Ts,this,12,3)),this.b;case 13:return Pn(),!this.a&&(this.a=new Jt(bi,this,10,11)),this.a.i>0}return hxt(this,e,n,r)},l.Sh=function(e,n,r){var s;switch(n){case 9:return!this.c&&(this.c=new Jt(kl,this,9,9)),vu(this.c,e,r);case 10:return!this.a&&(this.a=new Jt(bi,this,10,11)),vu(this.a,e,r);case 11:return this.Cb&&(r=(s=this.Db>>16,s>=0?Axt(this,r):this.Cb.Th(this,-1-s,null,r))),mvt(this,u(e,27),r);case 12:return!this.b&&(this.b=new Jt(Ts,this,12,3)),vu(this.b,e,r)}return Mxt(this,e,n,r)},l.Uh=function(e,n,r){switch(n){case 9:return!this.c&&(this.c=new Jt(kl,this,9,9)),so(this.c,e,r);case 10:return!this.a&&(this.a=new Jt(bi,this,10,11)),so(this.a,e,r);case 11:return mvt(this,null,r);case 12:return!this.b&&(this.b=new Jt(Ts,this,12,3)),so(this.b,e,r)}return Ixt(this,e,n,r)},l.Wh=function(e){switch(e){case 9:return!!this.c&&this.c.i!=0;case 10:return!!this.a&&this.a.i!=0;case 11:return!!Ji(this);case 12:return!!this.b&&this.b.i!=0;case 13:return!this.a&&(this.a=new Jt(bi,this,10,11)),this.a.i>0}return n5t(this,e)},l.bi=function(e,n){switch(e){case 9:!this.c&&(this.c=new Jt(kl,this,9,9)),Ir(this.c),!this.c&&(this.c=new Jt(kl,this,9,9)),gs(this.c,u(n,16));return;case 10:!this.a&&(this.a=new Jt(bi,this,10,11)),Ir(this.a),!this.a&&(this.a=new Jt(bi,this,10,11)),gs(this.a,u(n,16));return;case 11:tV(this,u(n,27));return;case 12:!this.b&&(this.b=new Jt(Ts,this,12,3)),Ir(this.b),!this.b&&(this.b=new Jt(Ts,this,12,3)),gs(this.b,u(n,16));return}V6t(this,e,n)},l.ii=function(){return zc(),_It},l.ki=function(e){switch(e){case 9:!this.c&&(this.c=new Jt(kl,this,9,9)),Ir(this.c);return;case 10:!this.a&&(this.a=new Jt(bi,this,10,11)),Ir(this.a);return;case 11:tV(this,null);return;case 12:!this.b&&(this.b=new Jt(Ts,this,12,3)),Ir(this.b);return}axt(this,e)},l.Ib=function(){return vkt(this)},I(kw,"ElkNodeImpl",207),D(193,741,{110:1,342:1,84:1,167:1,123:1,422:1,193:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},J2t),l.Ah=function(e){return Cxt(this,e)},l.Lh=function(e,n,r){return e==9?ed(this):hxt(this,e,n,r)},l.Sh=function(e,n,r){var s;switch(n){case 9:return this.Cb&&(r=(s=this.Db>>16,s>=0?Cxt(this,r):this.Cb.Th(this,-1-s,null,r))),uvt(this,u(e,27),r)}return Mxt(this,e,n,r)},l.Uh=function(e,n,r){return n==9?uvt(this,null,r):Ixt(this,e,n,r)},l.Wh=function(e){return e==9?!!ed(this):n5t(this,e)},l.bi=function(e,n){switch(e){case 9:Z6t(this,u(n,27));return}V6t(this,e,n)},l.ii=function(){return zc(),AIt},l.ki=function(e){switch(e){case 9:Z6t(this,null);return}axt(this,e)},l.Ib=function(){return I0e(this)},I(kw,"ElkPortImpl",193);var cTe=os(oo,"BasicEMap/Entry");D(1122,120,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1,119:1,120:1},GR),l.Fb=function(e){return this===e},l.ld=function(){return this.b},l.Hb=function(){return Em(this)},l.Di=function(e){T4t(this,u(e,149))},l.Lh=function(e,n,r){switch(e){case 0:return this.b;case 1:return this.c}return AH(this,e,n,r)},l.Wh=function(e){switch(e){case 0:return!!this.b;case 1:return this.c!=null}return iot(this,e)},l.bi=function(e,n){switch(e){case 0:T4t(this,u(n,149));return;case 1:k4t(this,n);return}qot(this,e,n)},l.ii=function(){return zc(),X0},l.ki=function(e){switch(e){case 0:T4t(this,null);return;case 1:k4t(this,null);return}jot(this,e)},l.Bi=function(){var e;return this.a==-1&&(e=this.b,this.a=e?$i(e):0),this.a},l.md=function(){return this.c},l.Ci=function(e){this.a=e},l.nd=function(e){var n;return n=this.c,k4t(this,e),n},l.Ib=function(){var e;return this.Db&64?qf(this):(e=new yb,ni(ni(ni(e,this.b?this.b.Pg():Vu),But),ES(this.c)),e.a)},l.a=-1,l.c=null;var Qp=I(kw,"ElkPropertyToValueMapEntryImpl",1122);D(996,1,{},WR),I(Ba,"JsonAdapter",996),D(216,63,Pg,Rd),I(Ba,"JsonImportException",216),D(868,1,{},zhe),I(Ba,"JsonImporter",868),D(903,1,{},WXt),I(Ba,"JsonImporter/lambda$0$Type",903),D(904,1,{},YXt),I(Ba,"JsonImporter/lambda$1$Type",904),D(912,1,{},mGt),I(Ba,"JsonImporter/lambda$10$Type",912),D(914,1,{},XXt),I(Ba,"JsonImporter/lambda$11$Type",914),D(915,1,{},QXt),I(Ba,"JsonImporter/lambda$12$Type",915),D(921,1,{},une),I(Ba,"JsonImporter/lambda$13$Type",921),D(920,1,{},lne),I(Ba,"JsonImporter/lambda$14$Type",920),D(916,1,{},JXt),I(Ba,"JsonImporter/lambda$15$Type",916),D(917,1,{},ZXt),I(Ba,"JsonImporter/lambda$16$Type",917),D(918,1,{},tQt),I(Ba,"JsonImporter/lambda$17$Type",918),D(919,1,{},eQt),I(Ba,"JsonImporter/lambda$18$Type",919),D(924,1,{},vGt),I(Ba,"JsonImporter/lambda$19$Type",924),D(905,1,{},yGt),I(Ba,"JsonImporter/lambda$2$Type",905),D(922,1,{},xGt),I(Ba,"JsonImporter/lambda$20$Type",922),D(923,1,{},kGt),I(Ba,"JsonImporter/lambda$21$Type",923),D(927,1,{},EGt),I(Ba,"JsonImporter/lambda$22$Type",927),D(925,1,{},TGt),I(Ba,"JsonImporter/lambda$23$Type",925),D(926,1,{},CGt),I(Ba,"JsonImporter/lambda$24$Type",926),D(929,1,{},SGt),I(Ba,"JsonImporter/lambda$25$Type",929),D(928,1,{},_Gt),I(Ba,"JsonImporter/lambda$26$Type",928),D(930,1,ir,nQt),l.Cd=function(e){x0n(this.b,this.a,Gr(e))},I(Ba,"JsonImporter/lambda$27$Type",930),D(931,1,ir,rQt),l.Cd=function(e){k0n(this.b,this.a,Gr(e))},I(Ba,"JsonImporter/lambda$28$Type",931),D(932,1,{},iQt),I(Ba,"JsonImporter/lambda$29$Type",932),D(908,1,{},AGt),I(Ba,"JsonImporter/lambda$3$Type",908),D(933,1,{},sQt),I(Ba,"JsonImporter/lambda$30$Type",933),D(934,1,{},LGt),I(Ba,"JsonImporter/lambda$31$Type",934),D(935,1,{},DGt),I(Ba,"JsonImporter/lambda$32$Type",935),D(936,1,{},MGt),I(Ba,"JsonImporter/lambda$33$Type",936),D(937,1,{},IGt),I(Ba,"JsonImporter/lambda$34$Type",937),D(870,1,{},OGt),I(Ba,"JsonImporter/lambda$35$Type",870),D(941,1,{},ZZt),I(Ba,"JsonImporter/lambda$36$Type",941),D(938,1,ir,NGt),l.Cd=function(e){_dn(this.a,u(e,377))},I(Ba,"JsonImporter/lambda$37$Type",938),D(939,1,ir,aQt),l.Cd=function(e){cin(this.a,this.b,u(e,166))},I(Ba,"JsonImporter/lambda$38$Type",939),D(940,1,ir,oQt),l.Cd=function(e){uin(this.a,this.b,u(e,166))},I(Ba,"JsonImporter/lambda$39$Type",940),D(906,1,{},PGt),I(Ba,"JsonImporter/lambda$4$Type",906),D(942,1,ir,FGt),l.Cd=function(e){Adn(this.a,u(e,8))},I(Ba,"JsonImporter/lambda$40$Type",942),D(907,1,{},BGt),I(Ba,"JsonImporter/lambda$5$Type",907),D(911,1,{},RGt),I(Ba,"JsonImporter/lambda$6$Type",911),D(909,1,{},jGt),I(Ba,"JsonImporter/lambda$7$Type",909),D(910,1,{},$Gt),I(Ba,"JsonImporter/lambda$8$Type",910),D(913,1,{},zGt),I(Ba,"JsonImporter/lambda$9$Type",913),D(961,1,ir,qGt),l.Cd=function(e){Y6(this.a,new Oy(Gr(e)))},I(Ba,"JsonMetaDataConverter/lambda$0$Type",961),D(962,1,ir,HGt),l.Cd=function(e){vln(this.a,u(e,245))},I(Ba,"JsonMetaDataConverter/lambda$1$Type",962),D(963,1,ir,VGt),l.Cd=function(e){mfn(this.a,u(e,143))},I(Ba,"JsonMetaDataConverter/lambda$2$Type",963),D(964,1,ir,UGt),l.Cd=function(e){yln(this.a,u(e,170))},I(Ba,"JsonMetaDataConverter/lambda$3$Type",964),D(245,22,{3:1,34:1,22:1,245:1},P6);var zK,qK,Qdt,HK,VK,UK,Jdt,Zdt,GK=Lr(fN,"GraphFeature",245,Pr,rgn,Gcn),uTe;D(11,1,{34:1,149:1},Oi,rs,un,_a),l.Fd=function(e){return gsn(this,u(e,149))},l.Fb=function(e){return One(this,e)},l.Sg=function(){return Se(this)},l.Pg=function(){return this.b},l.Hb=function(){return _p(this.b)},l.Ib=function(){return this.b},I(fN,"Property",11),D(671,1,Xr,Fnt),l.Ne=function(e,n){return T2n(this,u(e,96),u(n,96))},l.Fb=function(e){return this===e},l.Oe=function(){return new Be(this)},I(fN,"PropertyHolderComparator",671),D(709,1,wa,O2t),l.Nb=function(e){Na(this,e)},l.Pb=function(){return C0n(this)},l.Qb=function(){zWt()},l.Ob=function(){return!!this.a},I(dU,"ElkGraphUtil/AncestorIterator",709);var DIt=os(oo,"EList");D(70,56,{20:1,31:1,56:1,16:1,15:1,70:1,61:1}),l.bd=function(e,n){h_(this,e,n)},l.Fc=function(e){return Or(this,e)},l.cd=function(e,n){return K4t(this,e,n)},l.Gc=function(e){return gs(this,e)},l.Ii=function(){return new $6(this)},l.Ji=function(){return new aI(this)},l.Ki=function(e){return QI(this,e)},l.Li=function(){return!0},l.Mi=function(e,n){},l.Ni=function(){},l.Oi=function(e,n){Fst(this,e,n)},l.Pi=function(e,n,r){},l.Qi=function(e,n){},l.Ri=function(e,n,r){},l.Fb=function(e){return b0e(this,e)},l.Hb=function(){return H4t(this)},l.Si=function(){return!1},l.Kc=function(){return new Zn(this)},l.ed=function(){return new j6(this)},l.fd=function(e){var n;if(n=this.gc(),e<0||e>n)throw at(new Dy(e,n));return new zit(this,e)},l.Ui=function(e,n){this.Ti(e,this.dd(n))},l.Mc=function(e){return Dq(this,e)},l.Wi=function(e,n){return n},l.hd=function(e,n){return c5(this,e,n)},l.Ib=function(){return B5t(this)},l.Yi=function(){return!0},l.Zi=function(e,n){return d7(this,n)},I(oo,"AbstractEList",70),D(66,70,o0,pb,$m,B4t),l.Ei=function(e,n){return Oot(this,e,n)},l.Fi=function(e){return fhe(this,e)},l.Gi=function(e,n){fO(this,e,n)},l.Hi=function(e){PI(this,e)},l.$i=function(e){return Q3t(this,e)},l.$b=function(){KS(this)},l.Hc=function(e){return L7(this,e)},l.Xb=function(e){return Dt(this,e)},l._i=function(e){var n,r,s;++this.j,r=this.g==null?0:this.g.length,e>r&&(s=this.g,n=r+(r/2|0)+4,n=0?(this.gd(n),!0):!1},l.Xi=function(e,n){return this.Dj(e,this.Zi(e,n))},l.gc=function(){return this.Ej()},l.Pc=function(){return this.Fj()},l.Qc=function(e){return this.Gj(e)},l.Ib=function(){return this.Hj()},I(oo,"DelegatingEList",2093),D(2094,2093,Ime),l.Ei=function(e,n){return Mkt(this,e,n)},l.Fi=function(e){return this.Ei(this.Ej(),e)},l.Gi=function(e,n){rde(this,e,n)},l.Hi=function(e){U1e(this,e)},l.Li=function(){return!this.Mj()},l.$b=function(){j_(this)},l.Ij=function(e,n,r,s,o){return new Ine(this,e,n,r,s,o)},l.Jj=function(e){Ei(this.jj(),e)},l.Kj=function(){return null},l.Lj=function(){return-1},l.jj=function(){return null},l.Mj=function(){return!1},l.Nj=function(e,n){return n},l.Oj=function(e,n){return n},l.Pj=function(){return!1},l.Qj=function(){return!this.Aj()},l.Ti=function(e,n){var r,s;return this.Pj()?(s=this.Qj(),r=i6t(this,e,n),this.Jj(this.Ij(7,he(n),r,e,s)),r):i6t(this,e,n)},l.gd=function(e){var n,r,s,o;return this.Pj()?(r=null,s=this.Qj(),n=this.Ij(4,o=_z(this,e),null,e,s),this.Mj()&&o?(r=this.Oj(o,r),r?(r.nj(n),r.oj()):this.Jj(n)):r?(r.nj(n),r.oj()):this.Jj(n),o):(o=_z(this,e),this.Mj()&&o&&(r=this.Oj(o,null),r&&r.oj()),o)},l.Xi=function(e,n){return lge(this,e,n)},I(Pk,"DelegatingNotifyingListImpl",2094),D(152,1,LN),l.nj=function(e){return Hxt(this,e)},l.oj=function(){Vst(this)},l.gj=function(){return this.d},l.Kj=function(){return null},l.Rj=function(){return null},l.hj=function(e){return-1},l.ij=function(){return Qde(this)},l.jj=function(){return null},l.kj=function(){return ckt(this)},l.lj=function(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o},l.Sj=function(){return!1},l.mj=function(e){var n,r,s,o,h,d,m,k,T,A,P;switch(this.d){case 1:case 2:switch(o=e.gj(),o){case 1:case 2:if(h=e.jj(),$t(h)===$t(this.jj())&&this.hj(null)==e.hj(null))return this.g=e.ij(),e.gj()==1&&(this.d=1),!0}case 4:{switch(o=e.gj(),o){case 4:{if(h=e.jj(),$t(h)===$t(this.jj())&&this.hj(null)==e.hj(null))return T=Wkt(this),k=this.o<0?this.o<-2?-2-this.o-1:-1:this.o,d=e.lj(),this.d=6,P=new $m(2),k<=d?(Or(P,this.n),Or(P,e.kj()),this.g=lt(ut(Fr,1),ii,28,15,[this.o=k,d+1])):(Or(P,e.kj()),Or(P,this.n),this.g=lt(ut(Fr,1),ii,28,15,[this.o=d,k])),this.n=P,T||(this.o=-2-this.o-1),!0;break}}break}case 6:{switch(o=e.gj(),o){case 4:{if(h=e.jj(),$t(h)===$t(this.jj())&&this.hj(null)==e.hj(null)){for(T=Wkt(this),d=e.lj(),A=u(this.g,53),s=Vt(Fr,ii,28,A.length+1,15,1),n=0;n>>0,n.toString(16))),s.a+=" (eventType: ",this.d){case 1:{s.a+="SET";break}case 2:{s.a+="UNSET";break}case 3:{s.a+="ADD";break}case 5:{s.a+="ADD_MANY";break}case 4:{s.a+="REMOVE";break}case 6:{s.a+="REMOVE_MANY";break}case 7:{s.a+="MOVE";break}case 8:{s.a+="REMOVING_ADAPTER";break}case 9:{s.a+="RESOLVE";break}default:{art(s,this.d);break}}if(R0e(this)&&(s.a+=", touch: true"),s.a+=", position: ",art(s,this.o<0?this.o<-2?-2-this.o-1:-1:this.o),s.a+=", notifier: ",wS(s,this.jj()),s.a+=", feature: ",wS(s,this.Kj()),s.a+=", oldValue: ",wS(s,ckt(this)),s.a+=", newValue: ",this.d==6&&Lt(this.g,53)){for(r=u(this.g,53),s.a+="[",e=0;e10?((!this.b||this.c.j!=this.a)&&(this.b=new LS(this),this.a=this.j),x1(this.b,e)):L7(this,e)},l.Yi=function(){return!0},l.a=0,I(oo,"AbstractEList/1",966),D(301,77,out,Dy),I(oo,"AbstractEList/BasicIndexOutOfBoundsException",301),D(40,1,wa,Zn),l.Nb=function(e){Na(this,e)},l.Xj=function(){if(this.i.j!=this.f)throw at(new Th)},l.Yj=function(){return ar(this)},l.Ob=function(){return this.e!=this.i.gc()},l.Pb=function(){return this.Yj()},l.Qb=function(){E_(this)},l.e=0,l.f=0,l.g=-1,I(oo,"AbstractEList/EIterator",40),D(286,40,P0,j6,zit),l.Qb=function(){E_(this)},l.Rb=function(e){lle(this,e)},l.Zj=function(){var e;try{return e=this.d.Xb(--this.e),this.Xj(),this.g=this.e,e}catch(n){throw n=es(n),Lt(n,77)?(this.Xj(),at(new cc)):at(n)}},l.$j=function(e){phe(this,e)},l.Sb=function(){return this.e!=0},l.Tb=function(){return this.e},l.Ub=function(){return this.Zj()},l.Vb=function(){return this.e-1},l.Wb=function(e){this.$j(e)},I(oo,"AbstractEList/EListIterator",286),D(355,40,wa,$6),l.Yj=function(){return sot(this)},l.Qb=function(){throw at(new Vr)},I(oo,"AbstractEList/NonResolvingEIterator",355),D(398,286,P0,aI,Cvt),l.Rb=function(e){throw at(new Vr)},l.Yj=function(){var e;try{return e=this.c.Vi(this.e),this.Xj(),this.g=this.e++,e}catch(n){throw n=es(n),Lt(n,77)?(this.Xj(),at(new cc)):at(n)}},l.Zj=function(){var e;try{return e=this.c.Vi(--this.e),this.Xj(),this.g=this.e,e}catch(n){throw n=es(n),Lt(n,77)?(this.Xj(),at(new cc)):at(n)}},l.Qb=function(){throw at(new Vr)},l.Wb=function(e){throw at(new Vr)},I(oo,"AbstractEList/NonResolvingEListIterator",398),D(2080,70,Ome),l.Ei=function(e,n){var r,s,o,h,d,m,k,T,A,P,$;if(o=n.gc(),o!=0){for(T=u(jn(this.a,4),129),A=T==null?0:T.length,$=A+o,s=Aat(this,$),P=A-e,P>0&&Xc(T,e,s,e+o,P),k=n.Kc(),d=0;dr)throw at(new Dy(e,r));return new tne(this,e)},l.$b=function(){var e,n;++this.j,e=u(jn(this.a,4),129),n=e==null?0:e.length,C7(this,null),Fst(this,n,e)},l.Hc=function(e){var n,r,s,o,h;if(n=u(jn(this.a,4),129),n!=null){if(e!=null){for(s=n,o=0,h=s.length;o=r)throw at(new Dy(e,r));return n[e]},l.dd=function(e){var n,r,s;if(n=u(jn(this.a,4),129),n!=null){if(e!=null){for(r=0,s=n.length;rr)throw at(new Dy(e,r));return new Zee(this,e)},l.Ti=function(e,n){var r,s,o;if(r=yle(this),o=r==null?0:r.length,e>=o)throw at(new Bo(Zlt+e+Ew+o));if(n>=o)throw at(new Bo(tht+n+Ew+o));return s=r[n],e!=n&&(e0&&Xc(e,0,n,0,r),n},l.Qc=function(e){var n,r,s;return n=u(jn(this.a,4),129),s=n==null?0:n.length,s>0&&(e.lengths&&ls(e,s,null),e};var lTe;I(oo,"ArrayDelegatingEList",2080),D(1051,40,wa,ese),l.Xj=function(){if(this.b.j!=this.f||$t(u(jn(this.b.a,4),129))!==$t(this.a))throw at(new Th)},l.Qb=function(){E_(this),this.a=u(jn(this.b.a,4),129)},I(oo,"ArrayDelegatingEList/EIterator",1051),D(722,286,P0,dee,Zee),l.Xj=function(){if(this.b.j!=this.f||$t(u(jn(this.b.a,4),129))!==$t(this.a))throw at(new Th)},l.$j=function(e){phe(this,e),this.a=u(jn(this.b.a,4),129)},l.Qb=function(){E_(this),this.a=u(jn(this.b.a,4),129)},I(oo,"ArrayDelegatingEList/EListIterator",722),D(1052,355,wa,nse),l.Xj=function(){if(this.b.j!=this.f||$t(u(jn(this.b.a,4),129))!==$t(this.a))throw at(new Th)},I(oo,"ArrayDelegatingEList/NonResolvingEIterator",1052),D(723,398,P0,gee,tne),l.Xj=function(){if(this.b.j!=this.f||$t(u(jn(this.b.a,4),129))!==$t(this.a))throw at(new Th)},I(oo,"ArrayDelegatingEList/NonResolvingEListIterator",723),D(615,301,out,Grt),I(oo,"BasicEList/BasicIndexOutOfBoundsException",615),D(710,66,o0,dmt),l.bd=function(e,n){throw at(new Vr)},l.Fc=function(e){throw at(new Vr)},l.cd=function(e,n){throw at(new Vr)},l.Gc=function(e){throw at(new Vr)},l.$b=function(){throw at(new Vr)},l._i=function(e){throw at(new Vr)},l.Kc=function(){return this.Ii()},l.ed=function(){return this.Ji()},l.fd=function(e){return this.Ki(e)},l.Ti=function(e,n){throw at(new Vr)},l.Ui=function(e,n){throw at(new Vr)},l.gd=function(e){throw at(new Vr)},l.Mc=function(e){throw at(new Vr)},l.hd=function(e,n){throw at(new Vr)},I(oo,"BasicEList/UnmodifiableEList",710),D(721,1,{3:1,20:1,16:1,15:1,61:1,597:1}),l.bd=function(e,n){nsn(this,e,u(n,44))},l.Fc=function(e){return Ysn(this,u(e,44))},l.Jc=function(e){Fa(this,e)},l.Xb=function(e){return u(Dt(this.c,e),136)},l.Ti=function(e,n){return u(this.c.Ti(e,n),44)},l.Ui=function(e,n){rsn(this,e,u(n,44))},l.Lc=function(){return new ln(null,new gn(this,16))},l.gd=function(e){return u(this.c.gd(e),44)},l.hd=function(e,n){return mln(this,e,u(n,44))},l.jd=function(e){rw(this,e)},l.Nc=function(){return new gn(this,16)},l.Oc=function(){return new ln(null,new gn(this,16))},l.cd=function(e,n){return this.c.cd(e,n)},l.Gc=function(e){return this.c.Gc(e)},l.$b=function(){this.c.$b()},l.Hc=function(e){return this.c.Hc(e)},l.Ic=function(e){return rO(this.c,e)},l._j=function(){var e,n,r;if(this.d==null){for(this.d=Vt(MIt,jTt,66,2*this.f+1,0,1),r=this.e,this.f=0,n=this.c.Kc();n.e!=n.i.gc();)e=u(n.Yj(),136),IH(this,e);this.e=r}},l.Fb=function(e){return zZt(this,e)},l.Hb=function(){return H4t(this.c)},l.dd=function(e){return this.c.dd(e)},l.ak=function(){this.c=new GGt(this)},l.dc=function(){return this.f==0},l.Kc=function(){return this.c.Kc()},l.ed=function(){return this.c.ed()},l.fd=function(e){return this.c.fd(e)},l.bk=function(){return RI(this)},l.ck=function(e,n,r){return new tte(e,n,r)},l.dk=function(){return new XR},l.Mc=function(e){return _oe(this,e)},l.gc=function(){return this.f},l.kd=function(e,n){return new xp(this.c,e,n)},l.Pc=function(){return this.c.Pc()},l.Qc=function(e){return this.c.Qc(e)},l.Ib=function(){return B5t(this.c)},l.e=0,l.f=0,I(oo,"BasicEMap",721),D(1046,66,o0,GGt),l.Mi=function(e,n){Nnn(this,u(n,136))},l.Pi=function(e,n,r){var s;++(s=this,u(n,136),s).a.e},l.Qi=function(e,n){Pnn(this,u(n,136))},l.Ri=function(e,n,r){Nsn(this,u(n,136),u(r,136))},l.Oi=function(e,n){yce(this.a)},I(oo,"BasicEMap/1",1046),D(1047,66,o0,XR),l.aj=function(e){return Vt(k_n,Nme,621,e,0,1)},I(oo,"BasicEMap/2",1047),D(1048,dd,sl,KGt),l.$b=function(){this.a.c.$b()},l.Hc=function(e){return Yat(this.a,e)},l.Kc=function(){return this.a.f==0?(_E(),GP.a):new LWt(this.a)},l.Mc=function(e){var n;return n=this.a.f,yH(this.a,e),this.a.f!=n},l.gc=function(){return this.a.f},I(oo,"BasicEMap/3",1048),D(1049,31,o3,WGt),l.$b=function(){this.a.c.$b()},l.Hc=function(e){return w0e(this.a,e)},l.Kc=function(){return this.a.f==0?(_E(),GP.a):new DWt(this.a)},l.gc=function(){return this.a.f},I(oo,"BasicEMap/4",1049),D(1050,dd,sl,YGt),l.$b=function(){this.a.c.$b()},l.Hc=function(e){var n,r,s,o,h,d,m,k,T;if(this.a.f>0&&Lt(e,44)&&(this.a._j(),k=u(e,44),m=k.ld(),o=m==null?0:$i(m),h=lvt(this.a,o),n=this.a.d[h],n)){for(r=u(n.g,379),T=n.i,d=0;d"+this.c},l.a=0;var k_n=I(oo,"BasicEMap/EntryImpl",621);D(546,1,{},gC),I(oo,"BasicEMap/View",546);var GP;D(783,1,{}),l.Fb=function(e){return U6t((mn(),co),e)},l.Hb=function(){return e5t((mn(),co))},l.Ib=function(){return Hb((mn(),co))},I(oo,"ECollections/BasicEmptyUnmodifiableEList",783),D(1348,1,P0,Qtt),l.Nb=function(e){Na(this,e)},l.Rb=function(e){throw at(new Vr)},l.Ob=function(){return!1},l.Sb=function(){return!1},l.Pb=function(){throw at(new cc)},l.Tb=function(){return 0},l.Ub=function(){throw at(new cc)},l.Vb=function(){return-1},l.Qb=function(){throw at(new Vr)},l.Wb=function(e){throw at(new Vr)},I(oo,"ECollections/BasicEmptyUnmodifiableEList/1",1348),D(1346,783,{20:1,16:1,15:1,61:1},jKt),l.bd=function(e,n){tYt()},l.Fc=function(e){return eYt()},l.cd=function(e,n){return nYt()},l.Gc=function(e){return rYt()},l.$b=function(){iYt()},l.Hc=function(e){return!1},l.Ic=function(e){return!1},l.Jc=function(e){Fa(this,e)},l.Xb=function(e){return bmt((mn(),e)),null},l.dd=function(e){return-1},l.dc=function(){return!0},l.Kc=function(){return this.a},l.ed=function(){return this.a},l.fd=function(e){return this.a},l.Ti=function(e,n){return sYt()},l.Ui=function(e,n){aYt()},l.Lc=function(){return new ln(null,new gn(this,16))},l.gd=function(e){return oYt()},l.Mc=function(e){return cYt()},l.hd=function(e,n){return uYt()},l.gc=function(){return 0},l.jd=function(e){rw(this,e)},l.Nc=function(){return new gn(this,16)},l.Oc=function(){return new ln(null,new gn(this,16))},l.kd=function(e,n){return mn(),new xp(co,e,n)},l.Pc=function(){return dyt((mn(),co))},l.Qc=function(e){return mn(),v_(co,e)},I(oo,"ECollections/EmptyUnmodifiableEList",1346),D(1347,783,{20:1,16:1,15:1,61:1,597:1},$Kt),l.bd=function(e,n){tYt()},l.Fc=function(e){return eYt()},l.cd=function(e,n){return nYt()},l.Gc=function(e){return rYt()},l.$b=function(){iYt()},l.Hc=function(e){return!1},l.Ic=function(e){return!1},l.Jc=function(e){Fa(this,e)},l.Xb=function(e){return bmt((mn(),e)),null},l.dd=function(e){return-1},l.dc=function(){return!0},l.Kc=function(){return this.a},l.ed=function(){return this.a},l.fd=function(e){return this.a},l.Ti=function(e,n){return sYt()},l.Ui=function(e,n){aYt()},l.Lc=function(){return new ln(null,new gn(this,16))},l.gd=function(e){return oYt()},l.Mc=function(e){return cYt()},l.hd=function(e,n){return uYt()},l.gc=function(){return 0},l.jd=function(e){rw(this,e)},l.Nc=function(){return new gn(this,16)},l.Oc=function(){return new ln(null,new gn(this,16))},l.kd=function(e,n){return mn(),new xp(co,e,n)},l.Pc=function(){return dyt((mn(),co))},l.Qc=function(e){return mn(),v_(co,e)},l.bk=function(){return mn(),mn(),q0},I(oo,"ECollections/EmptyUnmodifiableEMap",1347);var OIt=os(oo,"Enumerator"),KK;D(288,1,{288:1},nct),l.Fb=function(e){var n;return this===e?!0:Lt(e,288)?(n=u(e,288),this.f==n.f&&Nun(this.i,n.i)&&Lit(this.a,this.f&256?n.f&256?n.a:null:n.f&256?null:n.a)&&Lit(this.d,n.d)&&Lit(this.g,n.g)&&Lit(this.e,n.e)&&imn(this,n)):!1},l.Hb=function(){return this.f},l.Ib=function(){return X0e(this)},l.f=0;var hTe=0,fTe=0,dTe=0,gTe=0,NIt=0,PIt=0,FIt=0,BIt=0,RIt=0,pTe,CL=0,SL=0,bTe=0,wTe=0,WK,jIt;I(oo,"URI",288),D(1121,45,E5,zKt),l.zc=function(e,n){return u(jo(this,Gr(e),u(n,288)),288)},I(oo,"URI/URICache",1121),D(505,66,o0,KR,Oz),l.Si=function(){return!0},I(oo,"UniqueEList",505),D(590,63,Pg,_q),I(oo,"WrappedException",590);var ci=os(qh,Bme),H3=os(qh,Rme),Wu=os(qh,jme),V3=os(qh,$me),B1=os(qh,zme),mf=os(qh,"EClass"),n0t=os(qh,"EDataType"),mTe;D(1233,45,E5,qKt),l.xc=function(e){return ba(e)?nu(this,e):Ko(Eo(this.f,e))},I(qh,"EDataType/Internal/ConversionDelegate/Factory/Registry/Impl",1233);var YK=os(qh,"EEnum"),Vg=os(qh,qme),Do=os(qh,Hme),vf=os(qh,Vme),yf,Ov=os(qh,Ume),U3=os(qh,Gme);D(1042,1,{},Ytt),l.Ib=function(){return"NIL"},I(qh,"EStructuralFeature/Internal/DynamicValueHolder/1",1042);var vTe;D(1041,45,E5,HKt),l.xc=function(e){return ba(e)?nu(this,e):Ko(Eo(this.f,e))},I(qh,"EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl",1041);var Nu=os(qh,Kme),r8=os(qh,"EValidator/PatternMatcher"),$It,zIt,Fn,Jp,G3,w2,yTe,xTe,kTe,m2,Zp,v2,Nv,Sd,ETe,TTe,xf,tb,CTe,eb,K3,dx,wo,STe,_Te,Pv,XK=os(Yi,"FeatureMap/Entry");D(545,1,{76:1},X$),l.Lk=function(){return this.a},l.md=function(){return this.b},I(Rn,"BasicEObjectImpl/1",545),D(1040,1,aht,hQt),l.Fk=function(e){return Ist(this.a,this.b,e)},l.Qj=function(){return Kne(this.a,this.b)},l.Wb=function(e){e3t(this.a,this.b,e)},l.Gk=function(){Mln(this.a,this.b)},I(Rn,"BasicEObjectImpl/4",1040),D(2081,1,{114:1}),l.Mk=function(e){this.e=e==0?ATe:Vt(aa,Ln,1,e,5,1)},l.li=function(e){return this.e[e]},l.mi=function(e,n){this.e[e]=n},l.ni=function(e){this.e[e]=null},l.Nk=function(){return this.c},l.Ok=function(){throw at(new Vr)},l.Pk=function(){throw at(new Vr)},l.Qk=function(){return this.d},l.Rk=function(){return this.e!=null},l.Sk=function(e){this.c=e},l.Tk=function(e){throw at(new Vr)},l.Uk=function(e){throw at(new Vr)},l.Vk=function(e){this.d=e};var ATe;I(Rn,"BasicEObjectImpl/EPropertiesHolderBaseImpl",2081),D(192,2081,{114:1},Zh),l.Ok=function(){return this.a},l.Pk=function(){return this.b},l.Tk=function(e){this.a=e},l.Uk=function(e){this.b=e},I(Rn,"BasicEObjectImpl/EPropertiesHolderImpl",192),D(516,99,Wwe,E4),l.uh=function(){return this.f},l.zh=function(){return this.k},l.Bh=function(e,n){this.g=e,this.i=n},l.Dh=function(){return this.j&2?this.$h().Nk():this.ii()},l.Fh=function(){return this.i},l.wh=function(){return(this.j&1)!=0},l.Ph=function(){return this.g},l.Vh=function(){return(this.j&4)!=0},l.$h=function(){return!this.k&&(this.k=new Zh),this.k},l.ci=function(e){this.$h().Sk(e),e?this.j|=2:this.j&=-3},l.ei=function(e){this.$h().Uk(e),e?this.j|=4:this.j&=-5},l.ii=function(){return(Lb(),Fn).S},l.i=0,l.j=1,I(Rn,"EObjectImpl",516),D(798,516,{110:1,94:1,93:1,58:1,114:1,54:1,99:1},Xvt),l.li=function(e){return this.e[e]},l.mi=function(e,n){this.e[e]=n},l.ni=function(e){this.e[e]=null},l.Dh=function(){return this.d},l.Ih=function(e){return ns(this.d,e)},l.Kh=function(){return this.d},l.Oh=function(){return this.e!=null},l.$h=function(){return!this.k&&(this.k=new QR),this.k},l.ci=function(e){this.d=e},l.hi=function(){var e;return this.e==null&&(e=fr(this.d),this.e=e==0?LTe:Vt(aa,Ln,1,e,5,1)),this},l.ji=function(){return 0};var LTe;I(Rn,"DynamicEObjectImpl",798),D(1522,798,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1},Cte),l.Fb=function(e){return this===e},l.Hb=function(){return Em(this)},l.ci=function(e){this.d=e,this.b=zO(e,"key"),this.c=zO(e,cA)},l.Bi=function(){var e;return this.a==-1&&(e=Ust(this,this.b),this.a=e==null?0:$i(e)),this.a},l.ld=function(){return Ust(this,this.b)},l.md=function(){return Ust(this,this.c)},l.Ci=function(e){this.a=e},l.Di=function(e){e3t(this,this.b,e)},l.nd=function(e){var n;return n=Ust(this,this.c),e3t(this,this.c,e),n},l.a=0,I(Rn,"DynamicEObjectImpl/BasicEMapEntry",1522),D(1523,1,{114:1},QR),l.Mk=function(e){throw at(new Vr)},l.li=function(e){throw at(new Vr)},l.mi=function(e,n){throw at(new Vr)},l.ni=function(e){throw at(new Vr)},l.Nk=function(){throw at(new Vr)},l.Ok=function(){return this.a},l.Pk=function(){return this.b},l.Qk=function(){return this.c},l.Rk=function(){throw at(new Vr)},l.Sk=function(e){throw at(new Vr)},l.Tk=function(e){this.a=e},l.Uk=function(e){this.b=e},l.Vk=function(e){this.c=e},I(Rn,"DynamicEObjectImpl/DynamicEPropertiesHolderImpl",1523),D(519,158,{110:1,94:1,93:1,598:1,155:1,58:1,114:1,54:1,99:1,519:1,158:1,119:1,120:1},aM),l.Ah=function(e){return Sxt(this,e)},l.Lh=function(e,n,r){var s;switch(e){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),this.Ab;case 1:return this.d;case 2:return r?(!this.b&&(this.b=new Ul((wn(),wo),Mc,this)),this.b):(!this.b&&(this.b=new Ul((wn(),wo),Mc,this)),RI(this.b));case 3:return Jne(this);case 4:return!this.a&&(this.a=new Ps(p2,this,4)),this.a;case 5:return!this.c&&(this.c=new G4(p2,this,5)),this.c}return Ih(this,e-fr((wn(),Jp)),En((s=u(jn(this,16),29),s||Jp),e),n,r)},l.Sh=function(e,n,r){var s,o,h;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),vu(this.Ab,e,r);case 3:return this.Cb&&(r=(o=this.Db>>16,o>=0?Sxt(this,r):this.Cb.Th(this,-1-o,null,r))),fyt(this,u(e,155),r)}return h=u(En((s=u(jn(this,16),29),s||(wn(),Jp)),n),69),h.wk().zk(this,Au(this),n-fr((wn(),Jp)),e,r)},l.Uh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),so(this.Ab,e,r);case 2:return!this.b&&(this.b=new Ul((wn(),wo),Mc,this)),pz(this.b,e,r);case 3:return fyt(this,null,r);case 4:return!this.a&&(this.a=new Ps(p2,this,4)),so(this.a,e,r)}return o=u(En((s=u(jn(this,16),29),s||(wn(),Jp)),n),69),o.wk().Ak(this,Au(this),n-fr((wn(),Jp)),e,r)},l.Wh=function(e){var n;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return!!this.b&&this.b.f!=0;case 3:return!!Jne(this);case 4:return!!this.a&&this.a.i!=0;case 5:return!!this.c&&this.c.i!=0}return Dh(this,e-fr((wn(),Jp)),En((n=u(jn(this,16),29),n||Jp),e))},l.bi=function(e,n){var r;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab),!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),gs(this.Ab,u(n,16));return;case 1:xun(this,Gr(n));return;case 2:!this.b&&(this.b=new Ul((wn(),wo),Mc,this)),Jq(this.b,n);return;case 3:Rde(this,u(n,155));return;case 4:!this.a&&(this.a=new Ps(p2,this,4)),Ir(this.a),!this.a&&(this.a=new Ps(p2,this,4)),gs(this.a,u(n,16));return;case 5:!this.c&&(this.c=new G4(p2,this,5)),Ir(this.c),!this.c&&(this.c=new G4(p2,this,5)),gs(this.c,u(n,16));return}Fh(this,e-fr((wn(),Jp)),En((r=u(jn(this,16),29),r||Jp),e),n)},l.ii=function(){return wn(),Jp},l.ki=function(e){var n;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab);return;case 1:_4t(this,null);return;case 2:!this.b&&(this.b=new Ul((wn(),wo),Mc,this)),this.b.c.$b();return;case 3:Rde(this,null);return;case 4:!this.a&&(this.a=new Ps(p2,this,4)),Ir(this.a);return;case 5:!this.c&&(this.c=new G4(p2,this,5)),Ir(this.c);return}Ph(this,e-fr((wn(),Jp)),En((n=u(jn(this,16),29),n||Jp),e))},l.Ib=function(){return zue(this)},l.d=null,I(Rn,"EAnnotationImpl",519),D(141,721,$Tt,nl),l.Gi=function(e,n){jin(this,e,u(n,44))},l.Wk=function(e,n){return zan(this,u(e,44),n)},l.$i=function(e){return u(u(this.c,71).$i(e),136)},l.Ii=function(){return u(this.c,71).Ii()},l.Ji=function(){return u(this.c,71).Ji()},l.Ki=function(e){return u(this.c,71).Ki(e)},l.Xk=function(e,n){return pz(this,e,n)},l.Fk=function(e){return u(this.c,79).Fk(e)},l.ak=function(){},l.Qj=function(){return u(this.c,79).Qj()},l.ck=function(e,n,r){var s;return s=u(sh(this.b).wi().si(this.b),136),s.Ci(e),s.Di(n),s.nd(r),s},l.dk=function(){return new P2t(this)},l.Wb=function(e){Jq(this,e)},l.Gk=function(){u(this.c,79).Gk()},I(Yi,"EcoreEMap",141),D(165,141,$Tt,Ul),l._j=function(){var e,n,r,s,o,h;if(this.d==null){for(h=Vt(MIt,jTt,66,2*this.f+1,0,1),r=this.c.Kc();r.e!=r.i.gc();)n=u(r.Yj(),136),s=n.Bi(),o=(s&xi)%h.length,e=h[o],!e&&(e=h[o]=new P2t(this)),e.Fc(n);this.d=h}},I(Rn,"EAnnotationImpl/1",165),D(291,448,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,480:1,54:1,99:1,158:1,291:1,119:1,120:1}),l.Lh=function(e,n,r){var s,o;switch(e){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Pn(),!!(this.Bb&256);case 3:return Pn(),!!(this.Bb&512);case 4:return he(this.s);case 5:return he(this.t);case 6:return Pn(),!!this.Jk();case 7:return Pn(),o=this.s,o>=1;case 8:return n?of(this):this.r;case 9:return this.q}return Ih(this,e-fr(this.ii()),En((s=u(jn(this,16),29),s||this.ii()),e),n,r)},l.Uh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),so(this.Ab,e,r);case 9:return Vit(this,r)}return o=u(En((s=u(jn(this,16),29),s||this.ii()),n),69),o.wk().Ak(this,Au(this),n-fr(this.ii()),e,r)},l.Wh=function(e){var n,r;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.Jk();case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&Mm(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&Mm(this.q).i==0)}return Dh(this,e-fr(this.ii()),En((n=u(jn(this,16),29),n||this.ii()),e))},l.bi=function(e,n){var r,s;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab),!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),gs(this.Ab,u(n,16));return;case 1:this.ui(Gr(n));return;case 2:Dp(this,Ie(Me(n)));return;case 3:Mp(this,Ie(Me(n)));return;case 4:Sp(this,u(n,17).a);return;case 5:this.Zk(u(n,17).a);return;case 8:uw(this,u(n,142));return;case 9:s=hd(this,u(n,89),null),s&&s.oj();return}Fh(this,e-fr(this.ii()),En((r=u(jn(this,16),29),r||this.ii()),e),n)},l.ii=function(){return wn(),_Te},l.ki=function(e){var n,r;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab);return;case 1:this.ui(null);return;case 2:Dp(this,!0);return;case 3:Mp(this,!0);return;case 4:Sp(this,0);return;case 5:this.Zk(1);return;case 8:uw(this,null);return;case 9:r=hd(this,null,null),r&&r.oj();return}Ph(this,e-fr(this.ii()),En((n=u(jn(this,16),29),n||this.ii()),e))},l.pi=function(){of(this),this.Bb|=1},l.Hk=function(){return of(this)},l.Ik=function(){return this.t},l.Jk=function(){var e;return e=this.t,e>1||e==-1},l.Si=function(){return(this.Bb&512)!=0},l.Yk=function(e,n){return y5t(this,e,n)},l.Zk=function(e){Hy(this,e)},l.Ib=function(){return F6t(this)},l.s=0,l.t=1,I(Rn,"ETypedElementImpl",291),D(461,291,{110:1,94:1,93:1,155:1,197:1,58:1,179:1,69:1,114:1,480:1,54:1,99:1,158:1,461:1,291:1,119:1,120:1,692:1}),l.Ah=function(e){return Dhe(this,e)},l.Lh=function(e,n,r){var s,o;switch(e){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Pn(),!!(this.Bb&256);case 3:return Pn(),!!(this.Bb&512);case 4:return he(this.s);case 5:return he(this.t);case 6:return Pn(),!!this.Jk();case 7:return Pn(),o=this.s,o>=1;case 8:return n?of(this):this.r;case 9:return this.q;case 10:return Pn(),!!(this.Bb&Uf);case 11:return Pn(),!!(this.Bb&b3);case 12:return Pn(),!!(this.Bb&u3);case 13:return this.j;case 14:return P7(this);case 15:return Pn(),!!(this.Bb&ol);case 16:return Pn(),!!(this.Bb&Jd);case 17:return Py(this)}return Ih(this,e-fr(this.ii()),En((s=u(jn(this,16),29),s||this.ii()),e),n,r)},l.Sh=function(e,n,r){var s,o,h;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),vu(this.Ab,e,r);case 17:return this.Cb&&(r=(o=this.Db>>16,o>=0?Dhe(this,r):this.Cb.Th(this,-1-o,null,r))),hh(this,e,17,r)}return h=u(En((s=u(jn(this,16),29),s||this.ii()),n),69),h.wk().zk(this,Au(this),n-fr(this.ii()),e,r)},l.Uh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),so(this.Ab,e,r);case 9:return Vit(this,r);case 17:return hh(this,null,17,r)}return o=u(En((s=u(jn(this,16),29),s||this.ii()),n),69),o.wk().Ak(this,Au(this),n-fr(this.ii()),e,r)},l.Wh=function(e){var n,r;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.Jk();case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&Mm(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&Mm(this.q).i==0);case 10:return(this.Bb&Uf)==0;case 11:return(this.Bb&b3)!=0;case 12:return(this.Bb&u3)!=0;case 13:return this.j!=null;case 14:return P7(this)!=null;case 15:return(this.Bb&ol)!=0;case 16:return(this.Bb&Jd)!=0;case 17:return!!Py(this)}return Dh(this,e-fr(this.ii()),En((n=u(jn(this,16),29),n||this.ii()),e))},l.bi=function(e,n){var r,s;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab),!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),gs(this.Ab,u(n,16));return;case 1:wst(this,Gr(n));return;case 2:Dp(this,Ie(Me(n)));return;case 3:Mp(this,Ie(Me(n)));return;case 4:Sp(this,u(n,17).a);return;case 5:this.Zk(u(n,17).a);return;case 8:uw(this,u(n,142));return;case 9:s=hd(this,u(n,89),null),s&&s.oj();return;case 10:m7(this,Ie(Me(n)));return;case 11:x7(this,Ie(Me(n)));return;case 12:v7(this,Ie(Me(n)));return;case 13:fmt(this,Gr(n));return;case 15:y7(this,Ie(Me(n)));return;case 16:k7(this,Ie(Me(n)));return}Fh(this,e-fr(this.ii()),En((r=u(jn(this,16),29),r||this.ii()),e),n)},l.ii=function(){return wn(),STe},l.ki=function(e){var n,r;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab);return;case 1:Lt(this.Cb,90)&&t3(_l(u(this.Cb,90)),4),mu(this,null);return;case 2:Dp(this,!0);return;case 3:Mp(this,!0);return;case 4:Sp(this,0);return;case 5:this.Zk(1);return;case 8:uw(this,null);return;case 9:r=hd(this,null,null),r&&r.oj();return;case 10:m7(this,!0);return;case 11:x7(this,!1);return;case 12:v7(this,!1);return;case 13:this.i=null,Gq(this,null);return;case 15:y7(this,!1);return;case 16:k7(this,!1);return}Ph(this,e-fr(this.ii()),En((n=u(jn(this,16),29),n||this.ii()),e))},l.pi=function(){RE($o((il(),ja),this)),of(this),this.Bb|=1},l.pk=function(){return this.f},l.ik=function(){return P7(this)},l.qk=function(){return Py(this)},l.uk=function(){return null},l.$k=function(){return this.k},l.Lj=function(){return this.n},l.vk=function(){return $H(this)},l.wk=function(){var e,n,r,s,o,h,d,m,k;return this.p||(r=Py(this),(r.i==null&&Qd(r),r.i).length,s=this.uk(),s&&fr(Py(s)),o=of(this),d=o.kk(),e=d?d.i&1?d==Fl?ys:d==Fr?Ra:d==Y3?wT:d==ma?zs:d==x2?gv:d==wx?pv:d==ul?Fk:vA:d:null,n=P7(this),m=o.ik(),P2n(this),this.Bb&Jd&&((h=Oxt((il(),ja),r))&&h!=this||(h=tk($o(ja,this))))?this.p=new dQt(this,h):this.Jk()?this.al()?s?this.Bb&ol?e?this.bl()?this.p=new X2(47,e,this,s):this.p=new X2(5,e,this,s):this.bl()?this.p=new ew(46,this,s):this.p=new ew(4,this,s):e?this.bl()?this.p=new X2(49,e,this,s):this.p=new X2(7,e,this,s):this.bl()?this.p=new ew(48,this,s):this.p=new ew(6,this,s):this.Bb&ol?e?e==Sw?this.p=new mp(50,cTe,this):this.bl()?this.p=new mp(43,e,this):this.p=new mp(1,e,this):this.bl()?this.p=new yp(42,this):this.p=new yp(0,this):e?e==Sw?this.p=new mp(41,cTe,this):this.bl()?this.p=new mp(45,e,this):this.p=new mp(3,e,this):this.bl()?this.p=new yp(44,this):this.p=new yp(2,this):Lt(o,156)?e==XK?this.p=new yp(40,this):this.Bb&512?this.Bb&ol?e?this.p=new mp(9,e,this):this.p=new yp(8,this):e?this.p=new mp(11,e,this):this.p=new yp(10,this):this.Bb&ol?e?this.p=new mp(13,e,this):this.p=new yp(12,this):e?this.p=new mp(15,e,this):this.p=new yp(14,this):s?(k=s.t,k>1||k==-1?this.bl()?this.Bb&ol?e?this.p=new X2(25,e,this,s):this.p=new ew(24,this,s):e?this.p=new X2(27,e,this,s):this.p=new ew(26,this,s):this.Bb&ol?e?this.p=new X2(29,e,this,s):this.p=new ew(28,this,s):e?this.p=new X2(31,e,this,s):this.p=new ew(30,this,s):this.bl()?this.Bb&ol?e?this.p=new X2(33,e,this,s):this.p=new ew(32,this,s):e?this.p=new X2(35,e,this,s):this.p=new ew(34,this,s):this.Bb&ol?e?this.p=new X2(37,e,this,s):this.p=new ew(36,this,s):e?this.p=new X2(39,e,this,s):this.p=new ew(38,this,s)):this.bl()?this.Bb&ol?e?this.p=new mp(17,e,this):this.p=new yp(16,this):e?this.p=new mp(19,e,this):this.p=new yp(18,this):this.Bb&ol?e?this.p=new mp(21,e,this):this.p=new yp(20,this):e?this.p=new mp(23,e,this):this.p=new yp(22,this):this._k()?this.bl()?this.p=new ete(u(o,29),this,s):this.p=new Zyt(u(o,29),this,s):Lt(o,156)?e==XK?this.p=new yp(40,this):this.Bb&ol?e?this.p=new tee(n,m,this,(Xat(),d==Fr?WIt:d==Fl?HIt:d==x2?YIt:d==Y3?KIt:d==ma?GIt:d==wx?XIt:d==ul?VIt:d==Yh?UIt:s0t)):this.p=new dne(u(o,156),n,m,this):e?this.p=new Zte(n,m,this,(Xat(),d==Fr?WIt:d==Fl?HIt:d==x2?YIt:d==Y3?KIt:d==ma?GIt:d==wx?XIt:d==ul?VIt:d==Yh?UIt:s0t)):this.p=new fne(u(o,156),n,m,this):this.al()?s?this.Bb&ol?this.bl()?this.p=new rte(u(o,29),this,s):this.p=new Rvt(u(o,29),this,s):this.bl()?this.p=new nte(u(o,29),this,s):this.p=new kit(u(o,29),this,s):this.Bb&ol?this.bl()?this.p=new ZJt(u(o,29),this):this.p=new Jmt(u(o,29),this):this.bl()?this.p=new JJt(u(o,29),this):this.p=new uit(u(o,29),this):this.bl()?s?this.Bb&ol?this.p=new ite(u(o,29),this,s):this.p=new Fvt(u(o,29),this,s):this.Bb&ol?this.p=new tZt(u(o,29),this):this.p=new Zmt(u(o,29),this):s?this.Bb&ol?this.p=new ste(u(o,29),this,s):this.p=new Bvt(u(o,29),this,s):this.Bb&ol?this.p=new eZt(u(o,29),this):this.p=new Iz(u(o,29),this)),this.p},l.rk=function(){return(this.Bb&Uf)!=0},l._k=function(){return!1},l.al=function(){return!1},l.sk=function(){return(this.Bb&Jd)!=0},l.xk=function(){return Gst(this)},l.bl=function(){return!1},l.tk=function(){return(this.Bb&ol)!=0},l.cl=function(e){this.k=e},l.ui=function(e){wst(this,e)},l.Ib=function(){return oV(this)},l.e=!1,l.n=0,I(Rn,"EStructuralFeatureImpl",461),D(331,461,{110:1,94:1,93:1,35:1,155:1,197:1,58:1,179:1,69:1,114:1,480:1,54:1,99:1,331:1,158:1,461:1,291:1,119:1,120:1,692:1},Hnt),l.Lh=function(e,n,r){var s,o;switch(e){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Pn(),!!(this.Bb&256);case 3:return Pn(),!!(this.Bb&512);case 4:return he(this.s);case 5:return he(this.t);case 6:return Pn(),!!D6t(this);case 7:return Pn(),o=this.s,o>=1;case 8:return n?of(this):this.r;case 9:return this.q;case 10:return Pn(),!!(this.Bb&Uf);case 11:return Pn(),!!(this.Bb&b3);case 12:return Pn(),!!(this.Bb&u3);case 13:return this.j;case 14:return P7(this);case 15:return Pn(),!!(this.Bb&ol);case 16:return Pn(),!!(this.Bb&Jd);case 17:return Py(this);case 18:return Pn(),!!(this.Bb&Fc);case 19:return n?bat(this):bse(this)}return Ih(this,e-fr((wn(),G3)),En((s=u(jn(this,16),29),s||G3),e),n,r)},l.Wh=function(e){var n,r;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return D6t(this);case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&Mm(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&Mm(this.q).i==0);case 10:return(this.Bb&Uf)==0;case 11:return(this.Bb&b3)!=0;case 12:return(this.Bb&u3)!=0;case 13:return this.j!=null;case 14:return P7(this)!=null;case 15:return(this.Bb&ol)!=0;case 16:return(this.Bb&Jd)!=0;case 17:return!!Py(this);case 18:return(this.Bb&Fc)!=0;case 19:return!!bse(this)}return Dh(this,e-fr((wn(),G3)),En((n=u(jn(this,16),29),n||G3),e))},l.bi=function(e,n){var r,s;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab),!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),gs(this.Ab,u(n,16));return;case 1:wst(this,Gr(n));return;case 2:Dp(this,Ie(Me(n)));return;case 3:Mp(this,Ie(Me(n)));return;case 4:Sp(this,u(n,17).a);return;case 5:OWt(this,u(n,17).a);return;case 8:uw(this,u(n,142));return;case 9:s=hd(this,u(n,89),null),s&&s.oj();return;case 10:m7(this,Ie(Me(n)));return;case 11:x7(this,Ie(Me(n)));return;case 12:v7(this,Ie(Me(n)));return;case 13:fmt(this,Gr(n));return;case 15:y7(this,Ie(Me(n)));return;case 16:k7(this,Ie(Me(n)));return;case 18:qat(this,Ie(Me(n)));return}Fh(this,e-fr((wn(),G3)),En((r=u(jn(this,16),29),r||G3),e),n)},l.ii=function(){return wn(),G3},l.ki=function(e){var n,r;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab);return;case 1:Lt(this.Cb,90)&&t3(_l(u(this.Cb,90)),4),mu(this,null);return;case 2:Dp(this,!0);return;case 3:Mp(this,!0);return;case 4:Sp(this,0);return;case 5:this.b=0,Hy(this,1);return;case 8:uw(this,null);return;case 9:r=hd(this,null,null),r&&r.oj();return;case 10:m7(this,!0);return;case 11:x7(this,!1);return;case 12:v7(this,!1);return;case 13:this.i=null,Gq(this,null);return;case 15:y7(this,!1);return;case 16:k7(this,!1);return;case 18:qat(this,!1);return}Ph(this,e-fr((wn(),G3)),En((n=u(jn(this,16),29),n||G3),e))},l.pi=function(){bat(this),RE($o((il(),ja),this)),of(this),this.Bb|=1},l.Jk=function(){return D6t(this)},l.Yk=function(e,n){return this.b=0,this.a=null,y5t(this,e,n)},l.Zk=function(e){OWt(this,e)},l.Ib=function(){var e;return this.Db&64?oV(this):(e=new ef(oV(this)),e.a+=" (iD: ",gp(e,(this.Bb&Fc)!=0),e.a+=")",e.a)},l.b=0,I(Rn,"EAttributeImpl",331),D(364,448,{110:1,94:1,93:1,142:1,155:1,197:1,58:1,114:1,54:1,99:1,364:1,158:1,119:1,120:1,691:1}),l.dl=function(e){return e.Dh()==this},l.Ah=function(e){return xot(this,e)},l.Bh=function(e,n){this.w=null,this.Db=n<<16|this.Db&255,this.Cb=e},l.Lh=function(e,n,r){var s;switch(e){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return Jm(this);case 4:return this.ik();case 5:return this.F;case 6:return n?sh(this):zE(this);case 7:return!this.A&&(this.A=new Ju(Nu,this,7)),this.A}return Ih(this,e-fr(this.ii()),En((s=u(jn(this,16),29),s||this.ii()),e),n,r)},l.Sh=function(e,n,r){var s,o,h;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),vu(this.Ab,e,r);case 6:return this.Cb&&(r=(o=this.Db>>16,o>=0?xot(this,r):this.Cb.Th(this,-1-o,null,r))),hh(this,e,6,r)}return h=u(En((s=u(jn(this,16),29),s||this.ii()),n),69),h.wk().zk(this,Au(this),n-fr(this.ii()),e,r)},l.Uh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),so(this.Ab,e,r);case 6:return hh(this,null,6,r);case 7:return!this.A&&(this.A=new Ju(Nu,this,7)),so(this.A,e,r)}return o=u(En((s=u(jn(this,16),29),s||this.ii()),n),69),o.wk().Ak(this,Au(this),n-fr(this.ii()),e,r)},l.Wh=function(e){var n;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!Jm(this);case 4:return this.ik()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!zE(this);case 7:return!!this.A&&this.A.i!=0}return Dh(this,e-fr(this.ii()),En((n=u(jn(this,16),29),n||this.ii()),e))},l.bi=function(e,n){var r;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab),!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),gs(this.Ab,u(n,16));return;case 1:cq(this,Gr(n));return;case 2:Yrt(this,Gr(n));return;case 5:q7(this,Gr(n));return;case 7:!this.A&&(this.A=new Ju(Nu,this,7)),Ir(this.A),!this.A&&(this.A=new Ju(Nu,this,7)),gs(this.A,u(n,16));return}Fh(this,e-fr(this.ii()),En((r=u(jn(this,16),29),r||this.ii()),e),n)},l.ii=function(){return wn(),yTe},l.ki=function(e){var n;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab);return;case 1:Lt(this.Cb,184)&&(u(this.Cb,184).tb=null),mu(this,null);return;case 2:p7(this,null),t7(this,this.D);return;case 5:q7(this,null);return;case 7:!this.A&&(this.A=new Ju(Nu,this,7)),Ir(this.A);return}Ph(this,e-fr(this.ii()),En((n=u(jn(this,16),29),n||this.ii()),e))},l.hk=function(){var e;return this.G==-1&&(this.G=(e=sh(this),e?Np(e.vi(),this):-1)),this.G},l.ik=function(){return null},l.jk=function(){return sh(this)},l.el=function(){return this.v},l.kk=function(){return Jm(this)},l.lk=function(){return this.D!=null?this.D:this.B},l.mk=function(){return this.F},l.fk=function(e){return hct(this,e)},l.fl=function(e){this.v=e},l.gl=function(e){tce(this,e)},l.hl=function(e){this.C=e},l.ui=function(e){cq(this,e)},l.Ib=function(){return bH(this)},l.C=null,l.D=null,l.G=-1,I(Rn,"EClassifierImpl",364),D(90,364,{110:1,94:1,93:1,29:1,142:1,155:1,197:1,58:1,114:1,54:1,99:1,90:1,364:1,158:1,481:1,119:1,120:1,691:1},Pj),l.dl=function(e){return Tan(this,e.Dh())},l.Lh=function(e,n,r){var s;switch(e){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return Jm(this);case 4:return null;case 5:return this.F;case 6:return n?sh(this):zE(this);case 7:return!this.A&&(this.A=new Ju(Nu,this,7)),this.A;case 8:return Pn(),!!(this.Bb&256);case 9:return Pn(),!!(this.Bb&512);case 10:return Yo(this);case 11:return!this.q&&(this.q=new Jt(vf,this,11,10)),this.q;case 12:return v5(this);case 13:return F_(this);case 14:return F_(this),this.r;case 15:return v5(this),this.k;case 16:return y6t(this);case 17:return pct(this);case 18:return Qd(this);case 19:return JH(this);case 20:return v5(this),this.o;case 21:return!this.s&&(this.s=new Jt(Wu,this,21,17)),this.s;case 22:return Wc(this);case 23:return ect(this)}return Ih(this,e-fr((wn(),w2)),En((s=u(jn(this,16),29),s||w2),e),n,r)},l.Sh=function(e,n,r){var s,o,h;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),vu(this.Ab,e,r);case 6:return this.Cb&&(r=(o=this.Db>>16,o>=0?xot(this,r):this.Cb.Th(this,-1-o,null,r))),hh(this,e,6,r);case 11:return!this.q&&(this.q=new Jt(vf,this,11,10)),vu(this.q,e,r);case 21:return!this.s&&(this.s=new Jt(Wu,this,21,17)),vu(this.s,e,r)}return h=u(En((s=u(jn(this,16),29),s||(wn(),w2)),n),69),h.wk().zk(this,Au(this),n-fr((wn(),w2)),e,r)},l.Uh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),so(this.Ab,e,r);case 6:return hh(this,null,6,r);case 7:return!this.A&&(this.A=new Ju(Nu,this,7)),so(this.A,e,r);case 11:return!this.q&&(this.q=new Jt(vf,this,11,10)),so(this.q,e,r);case 21:return!this.s&&(this.s=new Jt(Wu,this,21,17)),so(this.s,e,r);case 22:return so(Wc(this),e,r)}return o=u(En((s=u(jn(this,16),29),s||(wn(),w2)),n),69),o.wk().Ak(this,Au(this),n-fr((wn(),w2)),e,r)},l.Wh=function(e){var n;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!Jm(this);case 4:return!1;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!zE(this);case 7:return!!this.A&&this.A.i!=0;case 8:return(this.Bb&256)!=0;case 9:return(this.Bb&512)!=0;case 10:return!!this.u&&Wc(this.u.a).i!=0&&!(this.n&&lot(this.n));case 11:return!!this.q&&this.q.i!=0;case 12:return v5(this).i!=0;case 13:return F_(this).i!=0;case 14:return F_(this),this.r.i!=0;case 15:return v5(this),this.k.i!=0;case 16:return y6t(this).i!=0;case 17:return pct(this).i!=0;case 18:return Qd(this).i!=0;case 19:return JH(this).i!=0;case 20:return v5(this),!!this.o;case 21:return!!this.s&&this.s.i!=0;case 22:return!!this.n&&lot(this.n);case 23:return ect(this).i!=0}return Dh(this,e-fr((wn(),w2)),En((n=u(jn(this,16),29),n||w2),e))},l.Zh=function(e){var n;return n=this.i==null||this.q&&this.q.i!=0?null:zO(this,e),n||e8t(this,e)},l.bi=function(e,n){var r;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab),!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),gs(this.Ab,u(n,16));return;case 1:cq(this,Gr(n));return;case 2:Yrt(this,Gr(n));return;case 5:q7(this,Gr(n));return;case 7:!this.A&&(this.A=new Ju(Nu,this,7)),Ir(this.A),!this.A&&(this.A=new Ju(Nu,this,7)),gs(this.A,u(n,16));return;case 8:x5t(this,Ie(Me(n)));return;case 9:k5t(this,Ie(Me(n)));return;case 10:j_(Yo(this)),gs(Yo(this),u(n,16));return;case 11:!this.q&&(this.q=new Jt(vf,this,11,10)),Ir(this.q),!this.q&&(this.q=new Jt(vf,this,11,10)),gs(this.q,u(n,16));return;case 21:!this.s&&(this.s=new Jt(Wu,this,21,17)),Ir(this.s),!this.s&&(this.s=new Jt(Wu,this,21,17)),gs(this.s,u(n,16));return;case 22:Ir(Wc(this)),gs(Wc(this),u(n,16));return}Fh(this,e-fr((wn(),w2)),En((r=u(jn(this,16),29),r||w2),e),n)},l.ii=function(){return wn(),w2},l.ki=function(e){var n;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab);return;case 1:Lt(this.Cb,184)&&(u(this.Cb,184).tb=null),mu(this,null);return;case 2:p7(this,null),t7(this,this.D);return;case 5:q7(this,null);return;case 7:!this.A&&(this.A=new Ju(Nu,this,7)),Ir(this.A);return;case 8:x5t(this,!1);return;case 9:k5t(this,!1);return;case 10:this.u&&j_(this.u);return;case 11:!this.q&&(this.q=new Jt(vf,this,11,10)),Ir(this.q);return;case 21:!this.s&&(this.s=new Jt(Wu,this,21,17)),Ir(this.s);return;case 22:this.n&&Ir(this.n);return}Ph(this,e-fr((wn(),w2)),En((n=u(jn(this,16),29),n||w2),e))},l.pi=function(){var e,n;if(v5(this),F_(this),y6t(this),pct(this),Qd(this),JH(this),ect(this),KS(Xcn(_l(this))),this.s)for(e=0,n=this.s.i;e=0;--n)Dt(this,n);return G5t(this,e)},l.Gk=function(){Ir(this)},l.Zi=function(e,n){return koe(this,e,n)},I(Yi,"EcoreEList",632),D(504,632,ic,mI),l.Li=function(){return!1},l.Lj=function(){return this.c},l.Mj=function(){return!1},l.ol=function(){return!0},l.Si=function(){return!0},l.Wi=function(e,n){return n},l.Yi=function(){return!1},l.c=0,I(Yi,"EObjectEList",504),D(83,504,ic,Ps),l.Mj=function(){return!0},l.ml=function(){return!1},l.al=function(){return!0},I(Yi,"EObjectContainmentEList",83),D(555,83,ic,az),l.Ni=function(){this.b=!0},l.Qj=function(){return this.b},l.Gk=function(){var e;Ir(this),Hl(this.e)?(e=this.b,this.b=!1,Ei(this.e,new jf(this.e,2,this.c,e,!1))):this.b=!1},l.b=!1,I(Yi,"EObjectContainmentEList/Unsettable",555),D(1161,555,ic,Qte),l.Ti=function(e,n){var r,s;return r=u(f_(this,e,n),89),Hl(this.e)&&hE(this,new jI(this.a,7,(wn(),xTe),he(n),(s=r.c,Lt(s,90)?u(s,29):xf),e)),r},l.Uj=function(e,n){return wwn(this,u(e,89),n)},l.Vj=function(e,n){return bwn(this,u(e,89),n)},l.Wj=function(e,n,r){return yyn(this,u(e,89),u(n,89),r)},l.Ij=function(e,n,r,s,o){switch(e){case 3:return zS(this,e,n,r,s,this.i>1);case 5:return zS(this,e,n,r,s,this.i-u(r,15).gc()>0);default:return new Tg(this.e,e,this.c,n,r,s,!0)}},l.Tj=function(){return!0},l.Qj=function(){return lot(this)},l.Gk=function(){Ir(this)},I(Rn,"EClassImpl/1",1161),D(1175,1174,RTt),l.dj=function(e){var n,r,s,o,h,d,m;if(r=e.gj(),r!=8){if(s=Jwn(e),s==0)switch(r){case 1:case 9:{m=e.kj(),m!=null&&(n=_l(u(m,481)),!n.c&&(n.c=new x0),Dq(n.c,e.jj())),d=e.ij(),d!=null&&(o=u(d,481),o.Bb&1||(n=_l(o),!n.c&&(n.c=new x0),Or(n.c,u(e.jj(),29))));break}case 3:{d=e.ij(),d!=null&&(o=u(d,481),o.Bb&1||(n=_l(o),!n.c&&(n.c=new x0),Or(n.c,u(e.jj(),29))));break}case 5:{if(d=e.ij(),d!=null)for(h=u(d,16).Kc();h.Ob();)o=u(h.Pb(),481),o.Bb&1||(n=_l(o),!n.c&&(n.c=new x0),Or(n.c,u(e.jj(),29)));break}case 4:{m=e.kj(),m!=null&&(o=u(m,481),o.Bb&1||(n=_l(o),!n.c&&(n.c=new x0),Dq(n.c,e.jj())));break}case 6:{if(m=e.kj(),m!=null)for(h=u(m,16).Kc();h.Ob();)o=u(h.Pb(),481),o.Bb&1||(n=_l(o),!n.c&&(n.c=new x0),Dq(n.c,e.jj()));break}}this.ql(s)}},l.ql=function(e){T0e(this,e)},l.b=63,I(Rn,"ESuperAdapter",1175),D(1176,1175,RTt,QGt),l.ql=function(e){t3(this,e)},I(Rn,"EClassImpl/10",1176),D(1165,710,ic),l.Ei=function(e,n){return Oot(this,e,n)},l.Fi=function(e){return fhe(this,e)},l.Gi=function(e,n){fO(this,e,n)},l.Hi=function(e){PI(this,e)},l.$i=function(e){return Q3t(this,e)},l.Xi=function(e,n){return Kst(this,e,n)},l.Wk=function(e,n){throw at(new Vr)},l.Ii=function(){return new $6(this)},l.Ji=function(){return new aI(this)},l.Ki=function(e){return QI(this,e)},l.Xk=function(e,n){throw at(new Vr)},l.Fk=function(e){return this},l.Qj=function(){return this.i!=0},l.Wb=function(e){throw at(new Vr)},l.Gk=function(){throw at(new Vr)},I(Yi,"EcoreEList/UnmodifiableEList",1165),D(328,1165,ic,$4),l.Yi=function(){return!1},I(Yi,"EcoreEList/UnmodifiableEList/FastCompare",328),D(1168,328,ic,Kce),l.dd=function(e){var n,r,s;if(Lt(e,179)&&(n=u(e,179),r=n.Lj(),r!=-1)){for(s=this.i;r4)if(this.fk(e)){if(this.al()){if(s=u(e,54),r=s.Eh(),m=r==this.b&&(this.ml()?s.yh(s.Fh(),u(En($u(this.b),this.Lj()).Hk(),29).kk())==yo(u(En($u(this.b),this.Lj()),19)).n:-1-s.Fh()==this.Lj()),this.nl()&&!m&&!r&&s.Jh()){for(o=0;o1||s==-1)):!1},l.ml=function(){var e,n,r;return n=En($u(this.b),this.Lj()),Lt(n,102)?(e=u(n,19),r=yo(e),!!r):!1},l.nl=function(){var e,n;return n=En($u(this.b),this.Lj()),Lt(n,102)?(e=u(n,19),(e.Bb&po)!=0):!1},l.dd=function(e){var n,r,s,o;if(s=this.zj(e),s>=0)return s;if(this.ol()){for(r=0,o=this.Ej();r=0;--e)QO(this,e,this.xj(e));return this.Fj()},l.Qc=function(e){var n;if(this.nl())for(n=this.Ej()-1;n>=0;--n)QO(this,n,this.xj(n));return this.Gj(e)},l.Gk=function(){j_(this)},l.Zi=function(e,n){return Zse(this,e,n)},I(Yi,"DelegatingEcoreEList",756),D(1171,756,qTt,dZt),l.qj=function(e,n){Wsn(this,e,u(n,29))},l.rj=function(e){Fin(this,u(e,29))},l.xj=function(e){var n,r;return n=u(Dt(Wc(this.a),e),89),r=n.c,Lt(r,90)?u(r,29):(wn(),xf)},l.Cj=function(e){var n,r;return n=u(r3(Wc(this.a),e),89),r=n.c,Lt(r,90)?u(r,29):(wn(),xf)},l.Dj=function(e,n){return Umn(this,e,u(n,29))},l.Li=function(){return!1},l.Ij=function(e,n,r,s,o){return null},l.sj=function(){return new tKt(this)},l.tj=function(){Ir(Wc(this.a))},l.uj=function(e){return Hue(this,e)},l.vj=function(e){var n,r;for(r=e.Kc();r.Ob();)if(n=r.Pb(),!Hue(this,n))return!1;return!0},l.wj=function(e){var n,r,s;if(Lt(e,15)&&(s=u(e,15),s.gc()==Wc(this.a).i)){for(n=s.Kc(),r=new Zn(this);n.Ob();)if($t(n.Pb())!==$t(ar(r)))return!1;return!0}return!1},l.yj=function(){var e,n,r,s,o;for(r=1,n=new Zn(Wc(this.a));n.e!=n.i.gc();)e=u(ar(n),89),s=(o=e.c,Lt(o,90)?u(o,29):(wn(),xf)),r=31*r+(s?Em(s):0);return r},l.zj=function(e){var n,r,s,o;for(s=0,r=new Zn(Wc(this.a));r.e!=r.i.gc();){if(n=u(ar(r),89),$t(e)===$t((o=n.c,Lt(o,90)?u(o,29):(wn(),xf))))return s;++s}return-1},l.Aj=function(){return Wc(this.a).i==0},l.Bj=function(){return null},l.Ej=function(){return Wc(this.a).i},l.Fj=function(){var e,n,r,s,o,h;for(h=Wc(this.a).i,o=Vt(aa,Ln,1,h,5,1),r=0,n=new Zn(Wc(this.a));n.e!=n.i.gc();)e=u(ar(n),89),o[r++]=(s=e.c,Lt(s,90)?u(s,29):(wn(),xf));return o},l.Gj=function(e){var n,r,s,o,h,d,m;for(m=Wc(this.a).i,e.lengthm&&ls(e,m,null),s=0,r=new Zn(Wc(this.a));r.e!=r.i.gc();)n=u(ar(r),89),h=(d=n.c,Lt(d,90)?u(d,29):(wn(),xf)),ls(e,s++,h);return e},l.Hj=function(){var e,n,r,s,o;for(o=new dp,o.a+="[",e=Wc(this.a),n=0,s=Wc(this.a).i;n>16,o>=0?xot(this,r):this.Cb.Th(this,-1-o,null,r))),hh(this,e,6,r);case 9:return!this.a&&(this.a=new Jt(Vg,this,9,5)),vu(this.a,e,r)}return h=u(En((s=u(jn(this,16),29),s||(wn(),m2)),n),69),h.wk().zk(this,Au(this),n-fr((wn(),m2)),e,r)},l.Uh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),so(this.Ab,e,r);case 6:return hh(this,null,6,r);case 7:return!this.A&&(this.A=new Ju(Nu,this,7)),so(this.A,e,r);case 9:return!this.a&&(this.a=new Jt(Vg,this,9,5)),so(this.a,e,r)}return o=u(En((s=u(jn(this,16),29),s||(wn(),m2)),n),69),o.wk().Ak(this,Au(this),n-fr((wn(),m2)),e,r)},l.Wh=function(e){var n;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!Jm(this);case 4:return!!u5t(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!zE(this);case 7:return!!this.A&&this.A.i!=0;case 8:return(this.Bb&256)==0;case 9:return!!this.a&&this.a.i!=0}return Dh(this,e-fr((wn(),m2)),En((n=u(jn(this,16),29),n||m2),e))},l.bi=function(e,n){var r;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab),!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),gs(this.Ab,u(n,16));return;case 1:cq(this,Gr(n));return;case 2:Yrt(this,Gr(n));return;case 5:q7(this,Gr(n));return;case 7:!this.A&&(this.A=new Ju(Nu,this,7)),Ir(this.A),!this.A&&(this.A=new Ju(Nu,this,7)),gs(this.A,u(n,16));return;case 8:lH(this,Ie(Me(n)));return;case 9:!this.a&&(this.a=new Jt(Vg,this,9,5)),Ir(this.a),!this.a&&(this.a=new Jt(Vg,this,9,5)),gs(this.a,u(n,16));return}Fh(this,e-fr((wn(),m2)),En((r=u(jn(this,16),29),r||m2),e),n)},l.ii=function(){return wn(),m2},l.ki=function(e){var n;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab);return;case 1:Lt(this.Cb,184)&&(u(this.Cb,184).tb=null),mu(this,null);return;case 2:p7(this,null),t7(this,this.D);return;case 5:q7(this,null);return;case 7:!this.A&&(this.A=new Ju(Nu,this,7)),Ir(this.A);return;case 8:lH(this,!0);return;case 9:!this.a&&(this.a=new Jt(Vg,this,9,5)),Ir(this.a);return}Ph(this,e-fr((wn(),m2)),En((n=u(jn(this,16),29),n||m2),e))},l.pi=function(){var e,n;if(this.a)for(e=0,n=this.a.i;e>16==5?u(this.Cb,685):null}return Ih(this,e-fr((wn(),Zp)),En((s=u(jn(this,16),29),s||Zp),e),n,r)},l.Sh=function(e,n,r){var s,o,h;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),vu(this.Ab,e,r);case 5:return this.Cb&&(r=(o=this.Db>>16,o>=0?jhe(this,r):this.Cb.Th(this,-1-o,null,r))),hh(this,e,5,r)}return h=u(En((s=u(jn(this,16),29),s||(wn(),Zp)),n),69),h.wk().zk(this,Au(this),n-fr((wn(),Zp)),e,r)},l.Uh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),so(this.Ab,e,r);case 5:return hh(this,null,5,r)}return o=u(En((s=u(jn(this,16),29),s||(wn(),Zp)),n),69),o.wk().Ak(this,Au(this),n-fr((wn(),Zp)),e,r)},l.Wh=function(e){var n;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return!!this.b;case 4:return this.c!=null;case 5:return!!(this.Db>>16==5&&u(this.Cb,685))}return Dh(this,e-fr((wn(),Zp)),En((n=u(jn(this,16),29),n||Zp),e))},l.bi=function(e,n){var r;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab),!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),gs(this.Ab,u(n,16));return;case 1:mu(this,Gr(n));return;case 2:Zst(this,u(n,17).a);return;case 3:B1e(this,u(n,2039));return;case 4:eat(this,Gr(n));return}Fh(this,e-fr((wn(),Zp)),En((r=u(jn(this,16),29),r||Zp),e),n)},l.ii=function(){return wn(),Zp},l.ki=function(e){var n;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab);return;case 1:mu(this,null);return;case 2:Zst(this,0);return;case 3:B1e(this,null);return;case 4:eat(this,null);return}Ph(this,e-fr((wn(),Zp)),En((n=u(jn(this,16),29),n||Zp),e))},l.Ib=function(){var e;return e=this.c,e??this.zb},l.b=null,l.c=null,l.d=0,I(Rn,"EEnumLiteralImpl",582);var E_n=os(Rn,"EFactoryImpl/InternalEDateTimeFormat");D(498,1,{2114:1},AM),I(Rn,"EFactoryImpl/1ClientInternalEDateTimeFormat",498),D(248,120,{110:1,94:1,93:1,89:1,58:1,114:1,54:1,99:1,248:1,119:1,120:1},lm),l.Ch=function(e,n,r){var s;return r=hh(this,e,n,r),this.e&&Lt(e,179)&&(s=QH(this,this.e),s!=this.c&&(r=H7(this,s,r))),r},l.Lh=function(e,n,r){var s;switch(e){case 0:return this.f;case 1:return!this.d&&(this.d=new Ps(Do,this,1)),this.d;case 2:return n?lV(this):this.c;case 3:return this.b;case 4:return this.e;case 5:return n?dot(this):this.a}return Ih(this,e-fr((wn(),Nv)),En((s=u(jn(this,16),29),s||Nv),e),n,r)},l.Uh=function(e,n,r){var s,o;switch(n){case 0:return Due(this,null,r);case 1:return!this.d&&(this.d=new Ps(Do,this,1)),so(this.d,e,r);case 3:return Mue(this,null,r)}return o=u(En((s=u(jn(this,16),29),s||(wn(),Nv)),n),69),o.wk().Ak(this,Au(this),n-fr((wn(),Nv)),e,r)},l.Wh=function(e){var n;switch(e){case 0:return!!this.f;case 1:return!!this.d&&this.d.i!=0;case 2:return!!this.c;case 3:return!!this.b;case 4:return!!this.e;case 5:return!!this.a}return Dh(this,e-fr((wn(),Nv)),En((n=u(jn(this,16),29),n||Nv),e))},l.bi=function(e,n){var r;switch(e){case 0:ife(this,u(n,89));return;case 1:!this.d&&(this.d=new Ps(Do,this,1)),Ir(this.d),!this.d&&(this.d=new Ps(Do,this,1)),gs(this.d,u(n,16));return;case 3:zxt(this,u(n,89));return;case 4:a6t(this,u(n,850));return;case 5:YE(this,u(n,142));return}Fh(this,e-fr((wn(),Nv)),En((r=u(jn(this,16),29),r||Nv),e),n)},l.ii=function(){return wn(),Nv},l.ki=function(e){var n;switch(e){case 0:ife(this,null);return;case 1:!this.d&&(this.d=new Ps(Do,this,1)),Ir(this.d);return;case 3:zxt(this,null);return;case 4:a6t(this,null);return;case 5:YE(this,null);return}Ph(this,e-fr((wn(),Nv)),En((n=u(jn(this,16),29),n||Nv),e))},l.Ib=function(){var e;return e=new eh(qf(this)),e.a+=" (expression: ",xct(this,e),e.a+=")",e.a};var qIt;I(Rn,"EGenericTypeImpl",248),D(2067,2062,mU),l.Gi=function(e,n){lZt(this,e,n)},l.Wk=function(e,n){return lZt(this,this.gc(),e),n},l.$i=function(e){return jh(this.pj(),e)},l.Ii=function(){return this.Ji()},l.pj=function(){return new iKt(this)},l.Ji=function(){return this.Ki(0)},l.Ki=function(e){return this.pj().fd(e)},l.Xk=function(e,n){return Ky(this,e,!0),n},l.Ti=function(e,n){var r,s;return s=Tot(this,n),r=this.fd(e),r.Rb(s),s},l.Ui=function(e,n){var r;Ky(this,n,!0),r=this.fd(e),r.Rb(n)},I(Yi,"AbstractSequentialInternalEList",2067),D(495,2067,mU,sI),l.$i=function(e){return jh(this.pj(),e)},l.Ii=function(){return this.b==null?(bp(),bp(),KP):this.sl()},l.pj=function(){return new LQt(this.a,this.b)},l.Ji=function(){return this.b==null?(bp(),bp(),KP):this.sl()},l.Ki=function(e){var n,r;if(this.b==null){if(e<0||e>1)throw at(new Bo(uA+e+", size=0"));return bp(),bp(),KP}for(r=this.sl(),n=0;n0;)if(n=this.c[--this.d],(!this.e||n.pk()!=QT||n.Lj()!=0)&&(!this.vl()||this.b.Xh(n))){if(h=this.b.Nh(n,this.ul()),this.f=(vo(),u(n,69).xk()),this.f||n.Jk()){if(this.ul()?(s=u(h,15),this.k=s):(s=u(h,71),this.k=this.j=s),Lt(this.k,59)?(this.o=this.k.gc(),this.n=this.o):this.p=this.j?this.j.Ki(this.k.gc()):this.k.fd(this.k.gc()),this.p?Jfe(this,this.p):l1e(this))return o=this.p?this.p.Ub():this.j?this.j.$i(--this.n):this.k.Xb(--this.n),this.f?(e=u(o,76),e.Lk(),r=e.md(),this.i=r):(r=o,this.i=r),this.g=-3,!0}else if(h!=null)return this.k=null,this.p=null,r=h,this.i=r,this.g=-2,!0}return this.k=null,this.p=null,this.g=-1,!1}else return o=this.p?this.p.Ub():this.j?this.j.$i(--this.n):this.k.Xb(--this.n),this.f?(e=u(o,76),e.Lk(),r=e.md(),this.i=r):(r=o,this.i=r),this.g=-3,!0}},l.Pb=function(){return eH(this)},l.Tb=function(){return this.a},l.Ub=function(){var e;if(this.g<-1||this.Sb())return--this.a,this.g=0,e=this.i,this.Sb(),e;throw at(new cc)},l.Vb=function(){return this.a-1},l.Qb=function(){throw at(new Vr)},l.ul=function(){return!1},l.Wb=function(e){throw at(new Vr)},l.vl=function(){return!0},l.a=0,l.d=0,l.f=!1,l.g=0,l.n=0,l.o=0;var KP;I(Yi,"EContentsEList/FeatureIteratorImpl",287),D(711,287,vU,Qmt),l.ul=function(){return!0},I(Yi,"EContentsEList/ResolvingFeatureIteratorImpl",711),D(1178,711,vU,YJt),l.vl=function(){return!1},I(Rn,"ENamedElementImpl/1/1",1178),D(1179,287,vU,XJt),l.vl=function(){return!1},I(Rn,"ENamedElementImpl/1/2",1179),D(38,152,LN,Ry,Tst,ha,jst,Tg,jf,l4t,Lre,h4t,Dre,A3t,Mre,g4t,Ire,L3t,Ore,f4t,Nre,NS,jI,sst,d4t,Pre,D3t,Fre),l.Kj=function(){return K3t(this)},l.Rj=function(){var e;return e=K3t(this),e?e.ik():null},l.hj=function(e){return this.b==-1&&this.a&&(this.b=this.c.Hh(this.a.Lj(),this.a.pk())),this.c.yh(this.b,e)},l.jj=function(){return this.c},l.Sj=function(){var e;return e=K3t(this),e?e.tk():!1},l.b=-1,I(Rn,"ENotificationImpl",38),D(411,291,{110:1,94:1,93:1,155:1,197:1,58:1,62:1,114:1,480:1,54:1,99:1,158:1,411:1,291:1,119:1,120:1},Vnt),l.Ah=function(e){return qhe(this,e)},l.Lh=function(e,n,r){var s,o,h;switch(e){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Pn(),!!(this.Bb&256);case 3:return Pn(),!!(this.Bb&512);case 4:return he(this.s);case 5:return he(this.t);case 6:return Pn(),h=this.t,h>1||h==-1;case 7:return Pn(),o=this.s,o>=1;case 8:return n?of(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?u(this.Cb,29):null;case 11:return!this.d&&(this.d=new Ju(Nu,this,11)),this.d;case 12:return!this.c&&(this.c=new Jt(Ov,this,12,10)),this.c;case 13:return!this.a&&(this.a=new lI(this,this)),this.a;case 14:return Al(this)}return Ih(this,e-fr((wn(),tb)),En((s=u(jn(this,16),29),s||tb),e),n,r)},l.Sh=function(e,n,r){var s,o,h;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),vu(this.Ab,e,r);case 10:return this.Cb&&(r=(o=this.Db>>16,o>=0?qhe(this,r):this.Cb.Th(this,-1-o,null,r))),hh(this,e,10,r);case 12:return!this.c&&(this.c=new Jt(Ov,this,12,10)),vu(this.c,e,r)}return h=u(En((s=u(jn(this,16),29),s||(wn(),tb)),n),69),h.wk().zk(this,Au(this),n-fr((wn(),tb)),e,r)},l.Uh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),so(this.Ab,e,r);case 9:return Vit(this,r);case 10:return hh(this,null,10,r);case 11:return!this.d&&(this.d=new Ju(Nu,this,11)),so(this.d,e,r);case 12:return!this.c&&(this.c=new Jt(Ov,this,12,10)),so(this.c,e,r);case 14:return so(Al(this),e,r)}return o=u(En((s=u(jn(this,16),29),s||(wn(),tb)),n),69),o.wk().Ak(this,Au(this),n-fr((wn(),tb)),e,r)},l.Wh=function(e){var n,r,s;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return s=this.t,s>1||s==-1;case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&Mm(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&Mm(this.q).i==0);case 10:return!!(this.Db>>16==10&&u(this.Cb,29));case 11:return!!this.d&&this.d.i!=0;case 12:return!!this.c&&this.c.i!=0;case 13:return!!this.a&&Al(this.a.a).i!=0&&!(this.b&&hot(this.b));case 14:return!!this.b&&hot(this.b)}return Dh(this,e-fr((wn(),tb)),En((n=u(jn(this,16),29),n||tb),e))},l.bi=function(e,n){var r,s;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab),!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),gs(this.Ab,u(n,16));return;case 1:mu(this,Gr(n));return;case 2:Dp(this,Ie(Me(n)));return;case 3:Mp(this,Ie(Me(n)));return;case 4:Sp(this,u(n,17).a);return;case 5:Hy(this,u(n,17).a);return;case 8:uw(this,u(n,142));return;case 9:s=hd(this,u(n,89),null),s&&s.oj();return;case 11:!this.d&&(this.d=new Ju(Nu,this,11)),Ir(this.d),!this.d&&(this.d=new Ju(Nu,this,11)),gs(this.d,u(n,16));return;case 12:!this.c&&(this.c=new Jt(Ov,this,12,10)),Ir(this.c),!this.c&&(this.c=new Jt(Ov,this,12,10)),gs(this.c,u(n,16));return;case 13:!this.a&&(this.a=new lI(this,this)),j_(this.a),!this.a&&(this.a=new lI(this,this)),gs(this.a,u(n,16));return;case 14:Ir(Al(this)),gs(Al(this),u(n,16));return}Fh(this,e-fr((wn(),tb)),En((r=u(jn(this,16),29),r||tb),e),n)},l.ii=function(){return wn(),tb},l.ki=function(e){var n,r;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab);return;case 1:mu(this,null);return;case 2:Dp(this,!0);return;case 3:Mp(this,!0);return;case 4:Sp(this,0);return;case 5:Hy(this,1);return;case 8:uw(this,null);return;case 9:r=hd(this,null,null),r&&r.oj();return;case 11:!this.d&&(this.d=new Ju(Nu,this,11)),Ir(this.d);return;case 12:!this.c&&(this.c=new Jt(Ov,this,12,10)),Ir(this.c);return;case 13:this.a&&j_(this.a);return;case 14:this.b&&Ir(this.b);return}Ph(this,e-fr((wn(),tb)),En((n=u(jn(this,16),29),n||tb),e))},l.pi=function(){var e,n;if(this.c)for(e=0,n=this.c.i;em&&ls(e,m,null),s=0,r=new Zn(Al(this.a));r.e!=r.i.gc();)n=u(ar(r),89),h=(d=n.c,d||(wn(),Sd)),ls(e,s++,h);return e},l.Hj=function(){var e,n,r,s,o;for(o=new dp,o.a+="[",e=Al(this.a),n=0,s=Al(this.a).i;n1);case 5:return zS(this,e,n,r,s,this.i-u(r,15).gc()>0);default:return new Tg(this.e,e,this.c,n,r,s,!0)}},l.Tj=function(){return!0},l.Qj=function(){return hot(this)},l.Gk=function(){Ir(this)},I(Rn,"EOperationImpl/2",1377),D(507,1,{2037:1,507:1},fQt),I(Rn,"EPackageImpl/1",507),D(14,83,ic,Jt),l.il=function(){return this.d},l.jl=function(){return this.b},l.ml=function(){return!0},l.b=0,I(Yi,"EObjectContainmentWithInverseEList",14),D(365,14,ic,z6),l.nl=function(){return!0},l.Wi=function(e,n){return yk(this,e,u(n,58))},I(Yi,"EObjectContainmentWithInverseEList/Resolving",365),D(307,365,ic,Iy),l.Ni=function(){this.a.tb=null},I(Rn,"EPackageImpl/2",307),D(1278,1,{},tet),I(Rn,"EPackageImpl/3",1278),D(733,45,E5,Z2t),l._b=function(e){return ba(e)?ost(this,e):!!Eo(this.f,e)},I(Rn,"EPackageRegistryImpl",733),D(518,291,{110:1,94:1,93:1,155:1,197:1,58:1,2116:1,114:1,480:1,54:1,99:1,158:1,518:1,291:1,119:1,120:1},Unt),l.Ah=function(e){return Hhe(this,e)},l.Lh=function(e,n,r){var s,o,h;switch(e){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Pn(),!!(this.Bb&256);case 3:return Pn(),!!(this.Bb&512);case 4:return he(this.s);case 5:return he(this.t);case 6:return Pn(),h=this.t,h>1||h==-1;case 7:return Pn(),o=this.s,o>=1;case 8:return n?of(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?u(this.Cb,62):null}return Ih(this,e-fr((wn(),K3)),En((s=u(jn(this,16),29),s||K3),e),n,r)},l.Sh=function(e,n,r){var s,o,h;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),vu(this.Ab,e,r);case 10:return this.Cb&&(r=(o=this.Db>>16,o>=0?Hhe(this,r):this.Cb.Th(this,-1-o,null,r))),hh(this,e,10,r)}return h=u(En((s=u(jn(this,16),29),s||(wn(),K3)),n),69),h.wk().zk(this,Au(this),n-fr((wn(),K3)),e,r)},l.Uh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),so(this.Ab,e,r);case 9:return Vit(this,r);case 10:return hh(this,null,10,r)}return o=u(En((s=u(jn(this,16),29),s||(wn(),K3)),n),69),o.wk().Ak(this,Au(this),n-fr((wn(),K3)),e,r)},l.Wh=function(e){var n,r,s;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return s=this.t,s>1||s==-1;case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&Mm(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&Mm(this.q).i==0);case 10:return!!(this.Db>>16==10&&u(this.Cb,62))}return Dh(this,e-fr((wn(),K3)),En((n=u(jn(this,16),29),n||K3),e))},l.ii=function(){return wn(),K3},I(Rn,"EParameterImpl",518),D(102,461,{110:1,94:1,93:1,155:1,197:1,58:1,19:1,179:1,69:1,114:1,480:1,54:1,99:1,158:1,102:1,461:1,291:1,119:1,120:1,692:1},nvt),l.Lh=function(e,n,r){var s,o,h,d;switch(e){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Pn(),!!(this.Bb&256);case 3:return Pn(),!!(this.Bb&512);case 4:return he(this.s);case 5:return he(this.t);case 6:return Pn(),d=this.t,d>1||d==-1;case 7:return Pn(),o=this.s,o>=1;case 8:return n?of(this):this.r;case 9:return this.q;case 10:return Pn(),!!(this.Bb&Uf);case 11:return Pn(),!!(this.Bb&b3);case 12:return Pn(),!!(this.Bb&u3);case 13:return this.j;case 14:return P7(this);case 15:return Pn(),!!(this.Bb&ol);case 16:return Pn(),!!(this.Bb&Jd);case 17:return Py(this);case 18:return Pn(),!!(this.Bb&Fc);case 19:return Pn(),h=yo(this),!!(h&&h.Bb&Fc);case 20:return Pn(),!!(this.Bb&po);case 21:return n?yo(this):this.b;case 22:return n?Z4t(this):ase(this);case 23:return!this.a&&(this.a=new G4(V3,this,23)),this.a}return Ih(this,e-fr((wn(),dx)),En((s=u(jn(this,16),29),s||dx),e),n,r)},l.Wh=function(e){var n,r,s,o;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return o=this.t,o>1||o==-1;case 7:return r=this.s,r>=1;case 8:return!!this.r&&!this.q.e&&Mm(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&Mm(this.q).i==0);case 10:return(this.Bb&Uf)==0;case 11:return(this.Bb&b3)!=0;case 12:return(this.Bb&u3)!=0;case 13:return this.j!=null;case 14:return P7(this)!=null;case 15:return(this.Bb&ol)!=0;case 16:return(this.Bb&Jd)!=0;case 17:return!!Py(this);case 18:return(this.Bb&Fc)!=0;case 19:return s=yo(this),!!s&&(s.Bb&Fc)!=0;case 20:return(this.Bb&po)==0;case 21:return!!this.b;case 22:return!!ase(this);case 23:return!!this.a&&this.a.i!=0}return Dh(this,e-fr((wn(),dx)),En((n=u(jn(this,16),29),n||dx),e))},l.bi=function(e,n){var r,s;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab),!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),gs(this.Ab,u(n,16));return;case 1:wst(this,Gr(n));return;case 2:Dp(this,Ie(Me(n)));return;case 3:Mp(this,Ie(Me(n)));return;case 4:Sp(this,u(n,17).a);return;case 5:Hy(this,u(n,17).a);return;case 8:uw(this,u(n,142));return;case 9:s=hd(this,u(n,89),null),s&&s.oj();return;case 10:m7(this,Ie(Me(n)));return;case 11:x7(this,Ie(Me(n)));return;case 12:v7(this,Ie(Me(n)));return;case 13:fmt(this,Gr(n));return;case 15:y7(this,Ie(Me(n)));return;case 16:k7(this,Ie(Me(n)));return;case 18:wfn(this,Ie(Me(n)));return;case 20:M5t(this,Ie(Me(n)));return;case 21:L4t(this,u(n,19));return;case 23:!this.a&&(this.a=new G4(V3,this,23)),Ir(this.a),!this.a&&(this.a=new G4(V3,this,23)),gs(this.a,u(n,16));return}Fh(this,e-fr((wn(),dx)),En((r=u(jn(this,16),29),r||dx),e),n)},l.ii=function(){return wn(),dx},l.ki=function(e){var n,r;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab);return;case 1:Lt(this.Cb,90)&&t3(_l(u(this.Cb,90)),4),mu(this,null);return;case 2:Dp(this,!0);return;case 3:Mp(this,!0);return;case 4:Sp(this,0);return;case 5:Hy(this,1);return;case 8:uw(this,null);return;case 9:r=hd(this,null,null),r&&r.oj();return;case 10:m7(this,!0);return;case 11:x7(this,!1);return;case 12:v7(this,!1);return;case 13:this.i=null,Gq(this,null);return;case 15:y7(this,!1);return;case 16:k7(this,!1);return;case 18:D5t(this,!1),Lt(this.Cb,90)&&t3(_l(u(this.Cb,90)),2);return;case 20:M5t(this,!0);return;case 21:L4t(this,null);return;case 23:!this.a&&(this.a=new G4(V3,this,23)),Ir(this.a);return}Ph(this,e-fr((wn(),dx)),En((n=u(jn(this,16),29),n||dx),e))},l.pi=function(){Z4t(this),RE($o((il(),ja),this)),of(this),this.Bb|=1},l.uk=function(){return yo(this)},l._k=function(){var e;return e=yo(this),!!e&&(e.Bb&Fc)!=0},l.al=function(){return(this.Bb&Fc)!=0},l.bl=function(){return(this.Bb&po)!=0},l.Yk=function(e,n){return this.c=null,y5t(this,e,n)},l.Ib=function(){var e;return this.Db&64?oV(this):(e=new ef(oV(this)),e.a+=" (containment: ",gp(e,(this.Bb&Fc)!=0),e.a+=", resolveProxies: ",gp(e,(this.Bb&po)!=0),e.a+=")",e.a)},I(Rn,"EReferenceImpl",102),D(561,120,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1,561:1,119:1,120:1},wC),l.Fb=function(e){return this===e},l.ld=function(){return this.b},l.md=function(){return this.c},l.Hb=function(){return Em(this)},l.Di=function(e){kun(this,Gr(e))},l.nd=function(e){return oun(this,Gr(e))},l.Lh=function(e,n,r){var s;switch(e){case 0:return this.b;case 1:return this.c}return Ih(this,e-fr((wn(),wo)),En((s=u(jn(this,16),29),s||wo),e),n,r)},l.Wh=function(e){var n;switch(e){case 0:return this.b!=null;case 1:return this.c!=null}return Dh(this,e-fr((wn(),wo)),En((n=u(jn(this,16),29),n||wo),e))},l.bi=function(e,n){var r;switch(e){case 0:Eun(this,Gr(n));return;case 1:S4t(this,Gr(n));return}Fh(this,e-fr((wn(),wo)),En((r=u(jn(this,16),29),r||wo),e),n)},l.ii=function(){return wn(),wo},l.ki=function(e){var n;switch(e){case 0:C4t(this,null);return;case 1:S4t(this,null);return}Ph(this,e-fr((wn(),wo)),En((n=u(jn(this,16),29),n||wo),e))},l.Bi=function(){var e;return this.a==-1&&(e=this.b,this.a=e==null?0:_p(e)),this.a},l.Ci=function(e){this.a=e},l.Ib=function(){var e;return this.Db&64?qf(this):(e=new ef(qf(this)),e.a+=" (key: ",Mo(e,this.b),e.a+=", value: ",Mo(e,this.c),e.a+=")",e.a)},l.a=-1,l.b=null,l.c=null;var Mc=I(Rn,"EStringToStringMapEntryImpl",561),MTe=os(Yi,"FeatureMap/Entry/Internal");D(576,1,yU),l.xl=function(e){return this.yl(u(e,54))},l.yl=function(e){return this.xl(e)},l.Fb=function(e){var n,r;return this===e?!0:Lt(e,76)?(n=u(e,76),n.Lk()==this.c?(r=this.md(),r==null?n.md()==null:Ti(r,n.md())):!1):!1},l.Lk=function(){return this.c},l.Hb=function(){var e;return e=this.md(),$i(this.c)^(e==null?0:$i(e))},l.Ib=function(){var e,n;return e=this.c,n=sh(e.qk()).yi(),e.xe(),(n!=null&&n.length!=0?n+":"+e.xe():e.xe())+"="+this.md()},I(Rn,"EStructuralFeatureImpl/BasicFeatureMapEntry",576),D(791,576,yU,hvt),l.yl=function(e){return new hvt(this.c,e)},l.md=function(){return this.a},l.zl=function(e,n,r){return apn(this,e,this.a,n,r)},l.Al=function(e,n,r){return opn(this,e,this.a,n,r)},I(Rn,"EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry",791),D(1350,1,{},dQt),l.yk=function(e,n,r,s,o){var h;return h=u(UE(e,this.b),220),h.Yl(this.a).Fk(s)},l.zk=function(e,n,r,s,o){var h;return h=u(UE(e,this.b),220),h.Pl(this.a,s,o)},l.Ak=function(e,n,r,s,o){var h;return h=u(UE(e,this.b),220),h.Ql(this.a,s,o)},l.Bk=function(e,n,r){var s;return s=u(UE(e,this.b),220),s.Yl(this.a).Qj()},l.Ck=function(e,n,r,s){var o;o=u(UE(e,this.b),220),o.Yl(this.a).Wb(s)},l.Dk=function(e,n,r){return u(UE(e,this.b),220).Yl(this.a)},l.Ek=function(e,n,r){var s;s=u(UE(e,this.b),220),s.Yl(this.a).Gk()},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator",1350),D(91,1,{},mp,X2,yp,ew),l.yk=function(e,n,r,s,o){var h;if(h=n.li(r),h==null&&n.mi(r,h=vV(this,e)),!o)switch(this.e){case 50:case 41:return u(h,597).bk();case 40:return u(h,220).Vl()}return h},l.zk=function(e,n,r,s,o){var h,d;return d=n.li(r),d==null&&n.mi(r,d=vV(this,e)),h=u(d,71).Wk(s,o),h},l.Ak=function(e,n,r,s,o){var h;return h=n.li(r),h!=null&&(o=u(h,71).Xk(s,o)),o},l.Bk=function(e,n,r){var s;return s=n.li(r),s!=null&&u(s,79).Qj()},l.Ck=function(e,n,r,s){var o;o=u(n.li(r),79),!o&&n.mi(r,o=vV(this,e)),o.Wb(s)},l.Dk=function(e,n,r){var s,o;return o=n.li(r),o==null&&n.mi(r,o=vV(this,e)),Lt(o,79)?u(o,79):(s=u(n.li(r),15),new nKt(s))},l.Ek=function(e,n,r){var s;s=u(n.li(r),79),!s&&n.mi(r,s=vV(this,e)),s.Gk()},l.b=0,l.e=0,I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateMany",91),D(512,1,{}),l.zk=function(e,n,r,s,o){throw at(new Vr)},l.Ak=function(e,n,r,s,o){throw at(new Vr)},l.Dk=function(e,n,r){return new hne(this,e,n,r)};var Q0;I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingle",512),D(1367,1,aht,hne),l.Fk=function(e){return this.a.yk(this.c,this.d,this.b,e,!0)},l.Qj=function(){return this.a.Bk(this.c,this.d,this.b)},l.Wb=function(e){this.a.Ck(this.c,this.d,this.b,e)},l.Gk=function(){this.a.Ek(this.c,this.d,this.b)},l.b=0,I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingle/1",1367),D(784,512,{},Zyt),l.yk=function(e,n,r,s,o){return oct(e,e.Ph(),e.Fh())==this.b?this.bl()&&s?Kot(e):e.Ph():null},l.zk=function(e,n,r,s,o){var h,d;return e.Ph()&&(o=(h=e.Fh(),h>=0?e.Ah(o):e.Ph().Th(e,-1-h,null,o))),d=ns(e.Dh(),this.e),e.Ch(s,d,o)},l.Ak=function(e,n,r,s,o){var h;return h=ns(e.Dh(),this.e),e.Ch(null,h,o)},l.Bk=function(e,n,r){var s;return s=ns(e.Dh(),this.e),!!e.Ph()&&e.Fh()==s},l.Ck=function(e,n,r,s){var o,h,d,m,k;if(s!=null&&!hct(this.a,s))throw at(new fE(xU+(Lt(s,58)?$xt(u(s,58).Dh()):a4t(Wl(s)))+kU+this.a+"'"));if(o=e.Ph(),d=ns(e.Dh(),this.e),$t(s)!==$t(o)||e.Fh()!=d&&s!=null){if(_7(e,u(s,58)))throw at(new zn(oA+e.Ib()));k=null,o&&(k=(h=e.Fh(),h>=0?e.Ah(k):e.Ph().Th(e,-1-h,null,k))),m=u(s,54),m&&(k=m.Rh(e,ns(m.Dh(),this.b),null,k)),k=e.Ch(m,d,k),k&&k.oj()}else e.vh()&&e.wh()&&Ei(e,new ha(e,1,d,s,s))},l.Ek=function(e,n,r){var s,o,h,d;s=e.Ph(),s?(d=(o=e.Fh(),o>=0?e.Ah(null):e.Ph().Th(e,-1-o,null,null)),h=ns(e.Dh(),this.e),d=e.Ch(null,h,d),d&&d.oj()):e.vh()&&e.wh()&&Ei(e,new NS(e,1,this.e,null,null))},l.bl=function(){return!1},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainer",784),D(1351,784,{},ete),l.bl=function(){return!0},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving",1351),D(574,512,{}),l.yk=function(e,n,r,s,o){var h;return h=n.li(r),h==null?this.b:$t(h)===$t(Q0)?null:h},l.Bk=function(e,n,r){var s;return s=n.li(r),s!=null&&($t(s)===$t(Q0)||!Ti(s,this.b))},l.Ck=function(e,n,r,s){var o,h;e.vh()&&e.wh()?(o=(h=n.li(r),h==null?this.b:$t(h)===$t(Q0)?null:h),s==null?this.c!=null?(n.mi(r,null),s=this.b):this.b!=null?n.mi(r,Q0):n.mi(r,null):(this.Bl(s),n.mi(r,s)),Ei(e,this.d.Cl(e,1,this.e,o,s))):s==null?this.c!=null?n.mi(r,null):this.b!=null?n.mi(r,Q0):n.mi(r,null):(this.Bl(s),n.mi(r,s))},l.Ek=function(e,n,r){var s,o;e.vh()&&e.wh()?(s=(o=n.li(r),o==null?this.b:$t(o)===$t(Q0)?null:o),n.ni(r),Ei(e,this.d.Cl(e,1,this.e,s,this.b))):n.ni(r)},l.Bl=function(e){throw at(new dKt)},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData",574),D(O5,1,{},mC),l.Cl=function(e,n,r,s,o){return new NS(e,n,r,s,o)},l.Dl=function(e,n,r,s,o,h){return new sst(e,n,r,s,o,h)};var HIt,VIt,UIt,GIt,KIt,WIt,YIt,s0t,XIt;I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator",O5),D(1368,O5,{},b1),l.Cl=function(e,n,r,s,o){return new D3t(e,n,r,Ie(Me(s)),Ie(Me(o)))},l.Dl=function(e,n,r,s,o,h){return new Fre(e,n,r,Ie(Me(s)),Ie(Me(o)),h)},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1",1368),D(1369,O5,{},uM),l.Cl=function(e,n,r,s,o){return new l4t(e,n,r,u(s,222).a,u(o,222).a)},l.Dl=function(e,n,r,s,o,h){return new Lre(e,n,r,u(s,222).a,u(o,222).a,h)},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2",1369),D(1370,O5,{},lM),l.Cl=function(e,n,r,s,o){return new h4t(e,n,r,u(s,180).a,u(o,180).a)},l.Dl=function(e,n,r,s,o,h){return new Dre(e,n,r,u(s,180).a,u(o,180).a,h)},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3",1370),D(1371,O5,{},u6),l.Cl=function(e,n,r,s,o){return new A3t(e,n,r,Rt(Ht(s)),Rt(Ht(o)))},l.Dl=function(e,n,r,s,o,h){return new Mre(e,n,r,Rt(Ht(s)),Rt(Ht(o)),h)},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4",1371),D(1372,O5,{},eet),l.Cl=function(e,n,r,s,o){return new g4t(e,n,r,u(s,161).a,u(o,161).a)},l.Dl=function(e,n,r,s,o,h){return new Ire(e,n,r,u(s,161).a,u(o,161).a,h)},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5",1372),D(1373,O5,{},net),l.Cl=function(e,n,r,s,o){return new L3t(e,n,r,u(s,17).a,u(o,17).a)},l.Dl=function(e,n,r,s,o,h){return new Ore(e,n,r,u(s,17).a,u(o,17).a,h)},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6",1373),D(1374,O5,{},ret),l.Cl=function(e,n,r,s,o){return new f4t(e,n,r,u(s,168).a,u(o,168).a)},l.Dl=function(e,n,r,s,o,h){return new Nre(e,n,r,u(s,168).a,u(o,168).a,h)},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7",1374),D(1375,O5,{},iet),l.Cl=function(e,n,r,s,o){return new d4t(e,n,r,u(s,191).a,u(o,191).a)},l.Dl=function(e,n,r,s,o,h){return new Pre(e,n,r,u(s,191).a,u(o,191).a,h)},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8",1375),D(1353,574,{},fne),l.Bl=function(e){if(!this.a.fk(e))throw at(new fE(xU+Wl(e)+kU+this.a+"'"))},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic",1353),D(1354,574,{},Zte),l.Bl=function(e){},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic",1354),D(785,574,{}),l.Bk=function(e,n,r){var s;return s=n.li(r),s!=null},l.Ck=function(e,n,r,s){var o,h;e.vh()&&e.wh()?(o=!0,h=n.li(r),h==null?(o=!1,h=this.b):$t(h)===$t(Q0)&&(h=null),s==null?this.c!=null?(n.mi(r,null),s=this.b):n.mi(r,Q0):(this.Bl(s),n.mi(r,s)),Ei(e,this.d.Dl(e,1,this.e,h,s,!o))):s==null?this.c!=null?n.mi(r,null):n.mi(r,Q0):(this.Bl(s),n.mi(r,s))},l.Ek=function(e,n,r){var s,o;e.vh()&&e.wh()?(s=!0,o=n.li(r),o==null?(s=!1,o=this.b):$t(o)===$t(Q0)&&(o=null),n.ni(r),Ei(e,this.d.Dl(e,2,this.e,o,this.b,s))):n.ni(r)},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable",785),D(1355,785,{},dne),l.Bl=function(e){if(!this.a.fk(e))throw at(new fE(xU+Wl(e)+kU+this.a+"'"))},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic",1355),D(1356,785,{},tee),l.Bl=function(e){},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic",1356),D(410,512,{},Iz),l.yk=function(e,n,r,s,o){var h,d,m,k,T;if(T=n.li(r),this.tk()&&$t(T)===$t(Q0))return null;if(this.bl()&&s&&T!=null){if(m=u(T,54),m.Vh()&&(k=jb(e,m),m!=k)){if(!hct(this.a,k))throw at(new fE(xU+Wl(k)+kU+this.a+"'"));n.mi(r,T=k),this.al()&&(h=u(k,54),d=m.Th(e,this.b?ns(m.Dh(),this.b):-1-ns(e.Dh(),this.e),null,null),!h.Ph()&&(d=h.Rh(e,this.b?ns(h.Dh(),this.b):-1-ns(e.Dh(),this.e),null,d)),d&&d.oj()),e.vh()&&e.wh()&&Ei(e,new NS(e,9,this.e,m,k))}return T}else return T},l.zk=function(e,n,r,s,o){var h,d;return d=n.li(r),$t(d)===$t(Q0)&&(d=null),n.mi(r,s),this.Mj()?$t(d)!==$t(s)&&d!=null&&(h=u(d,54),o=h.Th(e,ns(h.Dh(),this.b),null,o)):this.al()&&d!=null&&(o=u(d,54).Th(e,-1-ns(e.Dh(),this.e),null,o)),e.vh()&&e.wh()&&(!o&&(o=new xb(4)),o.nj(new NS(e,1,this.e,d,s))),o},l.Ak=function(e,n,r,s,o){var h;return h=n.li(r),$t(h)===$t(Q0)&&(h=null),n.ni(r),e.vh()&&e.wh()&&(!o&&(o=new xb(4)),this.tk()?o.nj(new NS(e,2,this.e,h,null)):o.nj(new NS(e,1,this.e,h,null))),o},l.Bk=function(e,n,r){var s;return s=n.li(r),s!=null},l.Ck=function(e,n,r,s){var o,h,d,m,k;if(s!=null&&!hct(this.a,s))throw at(new fE(xU+(Lt(s,58)?$xt(u(s,58).Dh()):a4t(Wl(s)))+kU+this.a+"'"));k=n.li(r),m=k!=null,this.tk()&&$t(k)===$t(Q0)&&(k=null),d=null,this.Mj()?$t(k)!==$t(s)&&(k!=null&&(o=u(k,54),d=o.Th(e,ns(o.Dh(),this.b),null,d)),s!=null&&(o=u(s,54),d=o.Rh(e,ns(o.Dh(),this.b),null,d))):this.al()&&$t(k)!==$t(s)&&(k!=null&&(d=u(k,54).Th(e,-1-ns(e.Dh(),this.e),null,d)),s!=null&&(d=u(s,54).Rh(e,-1-ns(e.Dh(),this.e),null,d))),s==null&&this.tk()?n.mi(r,Q0):n.mi(r,s),e.vh()&&e.wh()?(h=new sst(e,1,this.e,k,s,this.tk()&&!m),d?(d.nj(h),d.oj()):Ei(e,h)):d&&d.oj()},l.Ek=function(e,n,r){var s,o,h,d,m;m=n.li(r),d=m!=null,this.tk()&&$t(m)===$t(Q0)&&(m=null),h=null,m!=null&&(this.Mj()?(s=u(m,54),h=s.Th(e,ns(s.Dh(),this.b),null,h)):this.al()&&(h=u(m,54).Th(e,-1-ns(e.Dh(),this.e),null,h))),n.ni(r),e.vh()&&e.wh()?(o=new sst(e,this.tk()?2:1,this.e,m,null,d),h?(h.nj(o),h.oj()):Ei(e,o)):h&&h.oj()},l.Mj=function(){return!1},l.al=function(){return!1},l.bl=function(){return!1},l.tk=function(){return!1},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObject",410),D(575,410,{},uit),l.al=function(){return!0},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment",575),D(1359,575,{},JJt),l.bl=function(){return!0},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving",1359),D(787,575,{},Jmt),l.tk=function(){return!0},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable",787),D(1361,787,{},ZJt),l.bl=function(){return!0},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving",1361),D(650,575,{},kit),l.Mj=function(){return!0},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse",650),D(1360,650,{},nte),l.bl=function(){return!0},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving",1360),D(788,650,{},Rvt),l.tk=function(){return!0},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable",788),D(1362,788,{},rte),l.bl=function(){return!0},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving",1362),D(651,410,{},Zmt),l.bl=function(){return!0},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving",651),D(1363,651,{},tZt),l.tk=function(){return!0},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable",1363),D(789,651,{},Fvt),l.Mj=function(){return!0},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse",789),D(1364,789,{},ite),l.tk=function(){return!0},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable",1364),D(1357,410,{},eZt),l.tk=function(){return!0},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable",1357),D(786,410,{},Bvt),l.Mj=function(){return!0},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse",786),D(1358,786,{},ste),l.tk=function(){return!0},I(Rn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable",1358),D(790,576,yU,Nyt),l.yl=function(e){return new Nyt(this.a,this.c,e)},l.md=function(){return this.b},l.zl=function(e,n,r){return i0n(this,e,this.b,r)},l.Al=function(e,n,r){return s0n(this,e,this.b,r)},I(Rn,"EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry",790),D(1365,1,aht,nKt),l.Fk=function(e){return this.a},l.Qj=function(){return Lt(this.a,97)?u(this.a,97).Qj():!this.a.dc()},l.Wb=function(e){this.a.$b(),this.a.Gc(u(e,15))},l.Gk=function(){Lt(this.a,97)?u(this.a,97).Gk():this.a.$b()},I(Rn,"EStructuralFeatureImpl/SettingMany",1365),D(1366,576,yU,_ie),l.xl=function(e){return new fit((Ni(),DL),this.b.ri(this.a,e))},l.md=function(){return null},l.zl=function(e,n,r){return r},l.Al=function(e,n,r){return r},I(Rn,"EStructuralFeatureImpl/SimpleContentFeatureMapEntry",1366),D(652,576,yU,fit),l.xl=function(e){return new fit(this.c,e)},l.md=function(){return this.a},l.zl=function(e,n,r){return r},l.Al=function(e,n,r){return r},I(Rn,"EStructuralFeatureImpl/SimpleFeatureMapEntry",652),D(403,505,o0,x0),l.aj=function(e){return Vt(mf,Ln,29,e,0,1)},l.Yi=function(){return!1},I(Rn,"ESuperAdapter/1",403),D(456,448,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,850:1,54:1,99:1,158:1,456:1,119:1,120:1},vC),l.Lh=function(e,n,r){var s;switch(e){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),this.Ab;case 1:return this.zb;case 2:return!this.a&&(this.a=new DS(this,Do,this)),this.a}return Ih(this,e-fr((wn(),Pv)),En((s=u(jn(this,16),29),s||Pv),e),n,r)},l.Uh=function(e,n,r){var s,o;switch(n){case 0:return!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),so(this.Ab,e,r);case 2:return!this.a&&(this.a=new DS(this,Do,this)),so(this.a,e,r)}return o=u(En((s=u(jn(this,16),29),s||(wn(),Pv)),n),69),o.wk().Ak(this,Au(this),n-fr((wn(),Pv)),e,r)},l.Wh=function(e){var n;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return!!this.a&&this.a.i!=0}return Dh(this,e-fr((wn(),Pv)),En((n=u(jn(this,16),29),n||Pv),e))},l.bi=function(e,n){var r;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab),!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),gs(this.Ab,u(n,16));return;case 1:mu(this,Gr(n));return;case 2:!this.a&&(this.a=new DS(this,Do,this)),Ir(this.a),!this.a&&(this.a=new DS(this,Do,this)),gs(this.a,u(n,16));return}Fh(this,e-fr((wn(),Pv)),En((r=u(jn(this,16),29),r||Pv),e),n)},l.ii=function(){return wn(),Pv},l.ki=function(e){var n;switch(e){case 0:!this.Ab&&(this.Ab=new Jt(ci,this,0,3)),Ir(this.Ab);return;case 1:mu(this,null);return;case 2:!this.a&&(this.a=new DS(this,Do,this)),Ir(this.a);return}Ph(this,e-fr((wn(),Pv)),En((n=u(jn(this,16),29),n||Pv),e))},I(Rn,"ETypeParameterImpl",456),D(457,83,ic,DS),l.Nj=function(e,n){return v3n(this,u(e,89),n)},l.Oj=function(e,n){return y3n(this,u(e,89),n)},I(Rn,"ETypeParameterImpl/1",457),D(647,45,E5,Gnt),l.ec=function(){return new s$(this)},I(Rn,"ETypeParameterImpl/2",647),D(570,dd,sl,s$),l.Fc=function(e){return _Zt(this,u(e,89))},l.Gc=function(e){var n,r,s;for(s=!1,r=e.Kc();r.Ob();)n=u(r.Pb(),89),hi(this.a,n,"")==null&&(s=!0);return s},l.$b=function(){dl(this.a)},l.Hc=function(e){return Tu(this.a,e)},l.Kc=function(){var e;return e=new sw(new mr(this.a).a),new a$(e)},l.Mc=function(e){return wse(this,e)},l.gc=function(){return QC(this.a)},I(Rn,"ETypeParameterImpl/2/1",570),D(571,1,wa,a$),l.Nb=function(e){Na(this,e)},l.Pb=function(){return u(Um(this.a).ld(),89)},l.Ob=function(){return this.a.b},l.Qb=function(){Sae(this.a)},I(Rn,"ETypeParameterImpl/2/1/1",571),D(1329,45,E5,GKt),l._b=function(e){return ba(e)?ost(this,e):!!Eo(this.f,e)},l.xc=function(e){var n,r;return n=ba(e)?nu(this,e):Ko(Eo(this.f,e)),Lt(n,851)?(r=u(n,851),n=r.Kk(),hi(this,u(e,241),n),n):n??(e==null?(hrt(),OTe):null)},I(Rn,"EValidatorRegistryImpl",1329),D(1349,720,{110:1,94:1,93:1,479:1,155:1,58:1,114:1,2040:1,54:1,99:1,158:1,119:1,120:1},l6),l.ri=function(e,n){switch(e.hk()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return n==null?null:rc(n);case 25:return bgn(n);case 27:return D0n(n);case 28:return M0n(n);case 29:return n==null?null:iJt(TL[0],u(n,206));case 41:return n==null?"":V2(u(n,296));case 42:return rc(n);case 50:return Gr(n);default:throw at(new zn(lT+e.xe()+fv))}},l.si=function(e){var n,r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht;switch(e.G==-1&&(e.G=($=sh(e),$?Np($.vi(),e):-1)),e.G){case 0:return r=new Hnt,r;case 1:return n=new aM,n;case 2:return s=new Pj,s;case 4:return o=new o$,o;case 5:return h=new UKt,h;case 6:return d=new bKt,d;case 7:return m=new Fj,m;case 10:return T=new E4,T;case 11:return A=new Vnt,A;case 12:return P=new xne,P;case 13:return U=new Unt,U;case 14:return J=new nvt,J;case 17:return tt=new wC,tt;case 18:return k=new lm,k;case 19:return ht=new vC,ht;default:throw at(new zn(Vlt+e.zb+fv))}},l.ti=function(e,n){switch(e.hk()){case 20:return n==null?null:new Twt(n);case 21:return n==null?null:new Sb(n);case 23:case 22:return n==null?null:Lwn(n);case 26:case 24:return n==null?null:GI(lh(n,-128,127)<<24>>24);case 25:return Wxn(n);case 27:return bvn(n);case 28:return wvn(n);case 29:return $3n(n);case 32:case 31:return n==null?null:Jy(n);case 38:case 37:return n==null?null:new z2t(n);case 40:case 39:return n==null?null:he(lh(n,Ga,xi));case 41:return null;case 42:return n==null,null;case 44:case 43:return n==null?null:Mg(mV(n));case 49:case 48:return n==null?null:w7(lh(n,EU,32767)<<16>>16);case 50:return n;default:throw at(new zn(lT+e.xe()+fv))}},I(Rn,"EcoreFactoryImpl",1349),D(560,184,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,2038:1,54:1,99:1,158:1,184:1,560:1,119:1,120:1,690:1},Uee),l.gb=!1,l.hb=!1;var QIt,ITe=!1;I(Rn,"EcorePackageImpl",560),D(1234,1,{851:1},K1),l.Kk=function(){return wJt(),NTe},I(Rn,"EcorePackageImpl/1",1234),D(1243,1,li,JR),l.fk=function(e){return Lt(e,155)},l.gk=function(e){return Vt(HP,Ln,155,e,0,1)},I(Rn,"EcorePackageImpl/10",1243),D(1244,1,li,ZR),l.fk=function(e){return Lt(e,197)},l.gk=function(e){return Vt(Xdt,Ln,197,e,0,1)},I(Rn,"EcorePackageImpl/11",1244),D(1245,1,li,tj),l.fk=function(e){return Lt(e,58)},l.gk=function(e){return Vt(p2,Ln,58,e,0,1)},I(Rn,"EcorePackageImpl/12",1245),D(1246,1,li,ej),l.fk=function(e){return Lt(e,411)},l.gk=function(e){return Vt(vf,zTt,62,e,0,1)},I(Rn,"EcorePackageImpl/13",1246),D(1247,1,li,nj),l.fk=function(e){return Lt(e,241)},l.gk=function(e){return Vt(F1,Ln,241,e,0,1)},I(Rn,"EcorePackageImpl/14",1247),D(1248,1,li,rj),l.fk=function(e){return Lt(e,518)},l.gk=function(e){return Vt(Ov,Ln,2116,e,0,1)},I(Rn,"EcorePackageImpl/15",1248),D(1249,1,li,w1),l.fk=function(e){return Lt(e,102)},l.gk=function(e){return Vt(U3,I5,19,e,0,1)},I(Rn,"EcorePackageImpl/16",1249),D(1250,1,li,Bu),l.fk=function(e){return Lt(e,179)},l.gk=function(e){return Vt(Wu,I5,179,e,0,1)},I(Rn,"EcorePackageImpl/17",1250),D(1251,1,li,set),l.fk=function(e){return Lt(e,480)},l.gk=function(e){return Vt(H3,Ln,480,e,0,1)},I(Rn,"EcorePackageImpl/18",1251),D(1252,1,li,aet),l.fk=function(e){return Lt(e,561)},l.gk=function(e){return Vt(Mc,Nme,561,e,0,1)},I(Rn,"EcorePackageImpl/19",1252),D(1235,1,li,oet),l.fk=function(e){return Lt(e,331)},l.gk=function(e){return Vt(V3,I5,35,e,0,1)},I(Rn,"EcorePackageImpl/2",1235),D(1253,1,li,Ru),l.fk=function(e){return Lt(e,248)},l.gk=function(e){return Vt(Do,Qme,89,e,0,1)},I(Rn,"EcorePackageImpl/20",1253),D(1254,1,li,yC),l.fk=function(e){return Lt(e,456)},l.gk=function(e){return Vt(Nu,Ln,850,e,0,1)},I(Rn,"EcorePackageImpl/21",1254),D(1255,1,li,ij),l.fk=function(e){return Ty(e)},l.gk=function(e){return Vt(ys,ue,484,e,8,1)},I(Rn,"EcorePackageImpl/22",1255),D(1256,1,li,sj),l.fk=function(e){return Lt(e,195)},l.gk=function(e){return Vt(ul,ue,195,e,0,2)},I(Rn,"EcorePackageImpl/23",1256),D(1257,1,li,h6),l.fk=function(e){return Lt(e,222)},l.gk=function(e){return Vt(Fk,ue,222,e,0,1)},I(Rn,"EcorePackageImpl/24",1257),D(1258,1,li,cet),l.fk=function(e){return Lt(e,180)},l.gk=function(e){return Vt(vA,ue,180,e,0,1)},I(Rn,"EcorePackageImpl/25",1258),D(1259,1,li,X8),l.fk=function(e){return Lt(e,206)},l.gk=function(e){return Vt(OU,ue,206,e,0,1)},I(Rn,"EcorePackageImpl/26",1259),D(1260,1,li,uet),l.fk=function(e){return!1},l.gk=function(e){return Vt(pOt,Ln,2215,e,0,1)},I(Rn,"EcorePackageImpl/27",1260),D(1261,1,li,aj),l.fk=function(e){return Cy(e)},l.gk=function(e){return Vt(zs,ue,345,e,7,1)},I(Rn,"EcorePackageImpl/28",1261),D(1262,1,li,het),l.fk=function(e){return Lt(e,61)},l.gk=function(e){return Vt(DIt,l3,61,e,0,1)},I(Rn,"EcorePackageImpl/29",1262),D(1236,1,li,fet),l.fk=function(e){return Lt(e,519)},l.gk=function(e){return Vt(ci,{3:1,4:1,5:1,2033:1},598,e,0,1)},I(Rn,"EcorePackageImpl/3",1236),D(1263,1,li,xC),l.fk=function(e){return Lt(e,582)},l.gk=function(e){return Vt(OIt,Ln,2039,e,0,1)},I(Rn,"EcorePackageImpl/30",1263),D(1264,1,li,oj),l.fk=function(e){return Lt(e,160)},l.gk=function(e){return Vt(nOt,l3,160,e,0,1)},I(Rn,"EcorePackageImpl/31",1264),D(1265,1,li,hM),l.fk=function(e){return Lt(e,76)},l.gk=function(e){return Vt(XK,ave,76,e,0,1)},I(Rn,"EcorePackageImpl/32",1265),D(1266,1,li,kC),l.fk=function(e){return Lt(e,161)},l.gk=function(e){return Vt(wT,ue,161,e,0,1)},I(Rn,"EcorePackageImpl/33",1266),D(1267,1,li,det),l.fk=function(e){return Lt(e,17)},l.gk=function(e){return Vt(Ra,ue,17,e,0,1)},I(Rn,"EcorePackageImpl/34",1267),D(1268,1,li,get),l.fk=function(e){return Lt(e,296)},l.gk=function(e){return Vt(t9t,Ln,296,e,0,1)},I(Rn,"EcorePackageImpl/35",1268),D(1269,1,li,fM),l.fk=function(e){return Lt(e,168)},l.gk=function(e){return Vt(gv,ue,168,e,0,1)},I(Rn,"EcorePackageImpl/36",1269),D(1270,1,li,EC),l.fk=function(e){return Lt(e,85)},l.gk=function(e){return Vt(e9t,Ln,85,e,0,1)},I(Rn,"EcorePackageImpl/37",1270),D(1271,1,li,W1),l.fk=function(e){return Lt(e,599)},l.gk=function(e){return Vt(JIt,Ln,599,e,0,1)},I(Rn,"EcorePackageImpl/38",1271),D(1272,1,li,Q8),l.fk=function(e){return!1},l.gk=function(e){return Vt(bOt,Ln,2216,e,0,1)},I(Rn,"EcorePackageImpl/39",1272),D(1237,1,li,pet),l.fk=function(e){return Lt(e,90)},l.gk=function(e){return Vt(mf,Ln,29,e,0,1)},I(Rn,"EcorePackageImpl/4",1237),D(1273,1,li,J8),l.fk=function(e){return Lt(e,191)},l.gk=function(e){return Vt(pv,ue,191,e,0,1)},I(Rn,"EcorePackageImpl/40",1273),D(1274,1,li,dM),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I(Rn,"EcorePackageImpl/41",1274),D(1275,1,li,R2),l.fk=function(e){return Lt(e,596)},l.gk=function(e){return Vt(IIt,Ln,596,e,0,1)},I(Rn,"EcorePackageImpl/42",1275),D(1276,1,li,TC),l.fk=function(e){return!1},l.gk=function(e){return Vt(wOt,ue,2217,e,0,1)},I(Rn,"EcorePackageImpl/43",1276),D(1277,1,li,gM),l.fk=function(e){return Lt(e,44)},l.gk=function(e){return Vt(Sw,xV,44,e,0,1)},I(Rn,"EcorePackageImpl/44",1277),D(1238,1,li,m1),l.fk=function(e){return Lt(e,142)},l.gk=function(e){return Vt(B1,Ln,142,e,0,1)},I(Rn,"EcorePackageImpl/5",1238),D(1239,1,li,CC),l.fk=function(e){return Lt(e,156)},l.gk=function(e){return Vt(n0t,Ln,156,e,0,1)},I(Rn,"EcorePackageImpl/6",1239),D(1240,1,li,Y1),l.fk=function(e){return Lt(e,468)},l.gk=function(e){return Vt(YK,Ln,685,e,0,1)},I(Rn,"EcorePackageImpl/7",1240),D(1241,1,li,X1),l.fk=function(e){return Lt(e,582)},l.gk=function(e){return Vt(Vg,Ln,694,e,0,1)},I(Rn,"EcorePackageImpl/8",1241),D(1242,1,li,bet),l.fk=function(e){return Lt(e,479)},l.gk=function(e){return Vt(EL,Ln,479,e,0,1)},I(Rn,"EcorePackageImpl/9",1242),D(1038,2080,Ome,dWt),l.Mi=function(e,n){i2n(this,u(n,424))},l.Qi=function(e,n){o1e(this,e,u(n,424))},I(Rn,"MinimalEObjectImpl/1ArrayDelegatingAdapterList",1038),D(1039,152,LN,Pee),l.jj=function(){return this.a.a},I(Rn,"MinimalEObjectImpl/1ArrayDelegatingAdapterList/1",1039),D(1067,1066,{},YQt),I("org.eclipse.emf.ecore.plugin","EcorePlugin",1067);var JIt=os(ove,"Resource");D(799,1524,cve),l.Hl=function(e){},l.Il=function(e){},l.El=function(){return!this.a&&(this.a=new Bnt(this)),this.a},l.Fl=function(e){var n,r,s,o,h;if(s=e.length,s>0)if(qn(0,e.length),e.charCodeAt(0)==47){for(h=new wu(4),o=1,n=1;n0&&(e=(Da(0,r,e.length),e.substr(0,r))));return O5n(this,e)},l.Gl=function(){return this.c},l.Ib=function(){var e;return V2(this.Rm)+"@"+(e=$i(this)>>>0,e.toString(16))+" uri='"+this.d+"'"},l.b=!1,I(oht,"ResourceImpl",799),D(1525,799,cve,rKt),I(oht,"BinaryResourceImpl",1525),D(1190,708,eht),l.bj=function(e){return Lt(e,58)?Thn(this,u(e,58)):Lt(e,599)?new Zn(u(e,599).El()):$t(e)===$t(this.f)?u(e,16).Kc():(_E(),GP.a)},l.Ob=function(){return O6t(this)},l.a=!1,I(Yi,"EcoreUtil/ContentTreeIterator",1190),D(1526,1190,eht,hee),l.bj=function(e){return $t(e)===$t(this.f)?u(e,15).Kc():new cie(u(e,58))},I(oht,"ResourceImpl/5",1526),D(658,2092,Xme,Bnt),l.Hc=function(e){return this.i<=4?L7(this,e):Lt(e,54)&&u(e,54).Jh()==this.a},l.Mi=function(e,n){e==this.i-1&&(this.a.b||(this.a.b=!0))},l.Oi=function(e,n){e==0?this.a.b||(this.a.b=!0):Fst(this,e,n)},l.Qi=function(e,n){},l.Ri=function(e,n,r){},l.Lj=function(){return 2},l.jj=function(){return this.a},l.Mj=function(){return!0},l.Nj=function(e,n){var r;return r=u(e,54),n=r.fi(this.a,n),n},l.Oj=function(e,n){var r;return r=u(e,54),r.fi(null,n)},l.Pj=function(){return!1},l.Si=function(){return!0},l.aj=function(e){return Vt(p2,Ln,58,e,0,1)},l.Yi=function(){return!1},I(oht,"ResourceImpl/ContentsEList",658),D(970,2062,W7,iKt),l.fd=function(e){return this.a.Ki(e)},l.gc=function(){return this.a.gc()},I(Yi,"AbstractSequentialInternalEList/1",970);var ZIt,tOt,ja,eOt;D(634,1,{},dte);var QK,JK;I(Yi,"BasicExtendedMetaData",634),D(1181,1,{},pQt),l.Jl=function(){return null},l.Kl=function(){return this.a==-2&&Ut(this,O3n(this.d,this.b)),this.a},l.Ll=function(){return null},l.Ml=function(){return mn(),mn(),co},l.xe=function(){return this.c==dT&&de(this,Mle(this.d,this.b)),this.c},l.Nl=function(){return 0},l.a=-2,l.c=dT,I(Yi,"BasicExtendedMetaData/EClassExtendedMetaDataImpl",1181),D(1182,1,{},Rre),l.Jl=function(){return this.a==(VE(),QK)&&Te(this,I8n(this.f,this.b)),this.a},l.Kl=function(){return 0},l.Ll=function(){return this.c==(VE(),QK)&&Yt(this,O8n(this.f,this.b)),this.c},l.Ml=function(){return!this.d&&ze(this,w7n(this.f,this.b)),this.d},l.xe=function(){return this.e==dT&&yn(this,Mle(this.f,this.b)),this.e},l.Nl=function(){return this.g==-2&&qe(this,Jyn(this.f,this.b)),this.g},l.e=dT,l.g=-2,I(Yi,"BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl",1182),D(1180,1,{},bQt),l.b=!1,l.c=!1,I(Yi,"BasicExtendedMetaData/EPackageExtendedMetaDataImpl",1180),D(1183,1,{},jre),l.c=-2,l.e=dT,l.f=dT,I(Yi,"BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl",1183),D(593,632,ic,kz),l.Lj=function(){return this.c},l.ol=function(){return!1},l.Wi=function(e,n){return n},l.c=0,I(Yi,"EDataTypeEList",593);var nOt=os(Yi,"FeatureMap");D(78,593,{3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,79:1,160:1,220:1,2036:1,71:1,97:1},ps),l.bd=function(e,n){Q6n(this,e,u(n,76))},l.Fc=function(e){return p6n(this,u(e,76))},l.Hi=function(e){xln(this,u(e,76))},l.Nj=function(e,n){return qan(this,u(e,76),n)},l.Oj=function(e,n){return Svt(this,u(e,76),n)},l.Ti=function(e,n){return EEn(this,e,n)},l.Wi=function(e,n){return u9n(this,e,u(n,76))},l.hd=function(e,n){return Rkn(this,e,u(n,76))},l.Uj=function(e,n){return Han(this,u(e,76),n)},l.Vj=function(e,n){return qZt(this,u(e,76),n)},l.Wj=function(e,n,r){return jyn(this,u(e,76),u(n,76),r)},l.Zi=function(e,n){return Dot(this,e,u(n,76))},l.Ol=function(e,n){return Tkt(this,e,n)},l.cd=function(e,n){var r,s,o,h,d,m,k,T,A;for(T=new $m(n.gc()),o=n.Kc();o.Ob();)if(s=u(o.Pb(),76),h=s.Lk(),Ng(this.e,h))(!h.Si()||!dq(this,h,s.md())&&!L7(T,s))&&Or(T,s);else{for(A=Lu(this.e.Dh(),h),r=u(this.g,124),d=!0,m=0;m=0;)if(n=e[this.c],this.k.am(n.Lk()))return this.j=this.f?n:n.md(),this.i=-2,!0;return this.i=-1,this.g=-1,!1},I(Yi,"BasicFeatureMap/FeatureEIterator",420),D(676,420,P0,Krt),l.ul=function(){return!0},I(Yi,"BasicFeatureMap/ResolvingFeatureEIterator",676),D(968,495,mU,sJt),l.pj=function(){return this},I(Yi,"EContentsEList/1",968),D(969,495,mU,LQt),l.ul=function(){return!1},I(Yi,"EContentsEList/2",969),D(967,287,vU,aJt),l.wl=function(e){},l.Ob=function(){return!1},l.Sb=function(){return!1},I(Yi,"EContentsEList/FeatureIteratorImpl/1",967),D(840,593,ic,Omt),l.Ni=function(){this.a=!0},l.Qj=function(){return this.a},l.Gk=function(){var e;Ir(this),Hl(this.e)?(e=this.a,this.a=!1,Ei(this.e,new jf(this.e,2,this.c,e,!1))):this.a=!1},l.a=!1,I(Yi,"EDataTypeEList/Unsettable",840),D(1958,593,ic,dJt),l.Si=function(){return!0},I(Yi,"EDataTypeUniqueEList",1958),D(1959,840,ic,gJt),l.Si=function(){return!0},I(Yi,"EDataTypeUniqueEList/Unsettable",1959),D(147,83,ic,Ju),l.nl=function(){return!0},l.Wi=function(e,n){return yk(this,e,u(n,58))},I(Yi,"EObjectContainmentEList/Resolving",147),D(1184,555,ic,pJt),l.nl=function(){return!0},l.Wi=function(e,n){return yk(this,e,u(n,58))},I(Yi,"EObjectContainmentEList/Unsettable/Resolving",1184),D(766,14,ic,vvt),l.Ni=function(){this.a=!0},l.Qj=function(){return this.a},l.Gk=function(){var e;Ir(this),Hl(this.e)?(e=this.a,this.a=!1,Ei(this.e,new jf(this.e,2,this.c,e,!1))):this.a=!1},l.a=!1,I(Yi,"EObjectContainmentWithInverseEList/Unsettable",766),D(1222,766,ic,AZt),l.nl=function(){return!0},l.Wi=function(e,n){return yk(this,e,u(n,58))},I(Yi,"EObjectContainmentWithInverseEList/Unsettable/Resolving",1222),D(757,504,ic,Nmt),l.Ni=function(){this.a=!0},l.Qj=function(){return this.a},l.Gk=function(){var e;Ir(this),Hl(this.e)?(e=this.a,this.a=!1,Ei(this.e,new jf(this.e,2,this.c,e,!1))):this.a=!1},l.a=!1,I(Yi,"EObjectEList/Unsettable",757),D(338,504,ic,G4),l.nl=function(){return!0},l.Wi=function(e,n){return yk(this,e,u(n,58))},I(Yi,"EObjectResolvingEList",338),D(1844,757,ic,bJt),l.nl=function(){return!0},l.Wi=function(e,n){return yk(this,e,u(n,58))},I(Yi,"EObjectResolvingEList/Unsettable",1844),D(1527,1,{},wet);var OTe;I(Yi,"EObjectValidator",1527),D(559,504,ic,jz),l.il=function(){return this.d},l.jl=function(){return this.b},l.Mj=function(){return!0},l.ml=function(){return!0},l.b=0,I(Yi,"EObjectWithInverseEList",559),D(1225,559,ic,LZt),l.ll=function(){return!0},I(Yi,"EObjectWithInverseEList/ManyInverse",1225),D(635,559,ic,git),l.Ni=function(){this.a=!0},l.Qj=function(){return this.a},l.Gk=function(){var e;Ir(this),Hl(this.e)?(e=this.a,this.a=!1,Ei(this.e,new jf(this.e,2,this.c,e,!1))):this.a=!1},l.a=!1,I(Yi,"EObjectWithInverseEList/Unsettable",635),D(1224,635,ic,DZt),l.ll=function(){return!0},I(Yi,"EObjectWithInverseEList/Unsettable/ManyInverse",1224),D(767,559,ic,yvt),l.nl=function(){return!0},l.Wi=function(e,n){return yk(this,e,u(n,58))},I(Yi,"EObjectWithInverseResolvingEList",767),D(32,767,ic,kn),l.ll=function(){return!0},I(Yi,"EObjectWithInverseResolvingEList/ManyInverse",32),D(768,635,ic,xvt),l.nl=function(){return!0},l.Wi=function(e,n){return yk(this,e,u(n,58))},I(Yi,"EObjectWithInverseResolvingEList/Unsettable",768),D(1223,768,ic,MZt),l.ll=function(){return!0},I(Yi,"EObjectWithInverseResolvingEList/Unsettable/ManyInverse",1223),D(1185,632,ic),l.Li=function(){return(this.b&1792)==0},l.Ni=function(){this.b|=1},l.kl=function(){return(this.b&4)!=0},l.Mj=function(){return(this.b&40)!=0},l.ll=function(){return(this.b&16)!=0},l.ml=function(){return(this.b&8)!=0},l.nl=function(){return(this.b&b3)!=0},l.al=function(){return(this.b&32)!=0},l.ol=function(){return(this.b&Uf)!=0},l.fk=function(e){return this.d?wie(this.d,e):this.Lk().Hk().fk(e)},l.Qj=function(){return this.b&2?(this.b&1)!=0:this.i!=0},l.Si=function(){return(this.b&128)!=0},l.Gk=function(){var e;Ir(this),this.b&2&&(Hl(this.e)?(e=(this.b&1)!=0,this.b&=-2,hE(this,new jf(this.e,2,ns(this.e.Dh(),this.Lk()),e,!1))):this.b&=-2)},l.Yi=function(){return(this.b&1536)==0},l.b=0,I(Yi,"EcoreEList/Generic",1185),D(1186,1185,ic,Ene),l.Lk=function(){return this.a},I(Yi,"EcoreEList/Dynamic",1186),D(765,66,o0,P2t),l.aj=function(e){return XI(this.a.a,e)},I(Yi,"EcoreEMap/1",765),D(764,83,ic,vyt),l.Mi=function(e,n){IH(this.b,u(n,136))},l.Oi=function(e,n){yce(this.b)},l.Pi=function(e,n,r){var s;++(s=this.b,u(n,136),s).e},l.Qi=function(e,n){jat(this.b,u(n,136))},l.Ri=function(e,n,r){jat(this.b,u(r,136)),$t(r)===$t(n)&&u(r,136).Ci($in(u(n,136).ld())),IH(this.b,u(n,136))},I(Yi,"EcoreEMap/DelegateEObjectContainmentEList",764),D(1220,141,$Tt,Boe),I(Yi,"EcoreEMap/Unsettable",1220),D(1221,764,ic,IZt),l.Ni=function(){this.a=!0},l.Qj=function(){return this.a},l.Gk=function(){var e;Ir(this),Hl(this.e)?(e=this.a,this.a=!1,Ei(this.e,new jf(this.e,2,this.c,e,!1))):this.a=!1},l.a=!1,I(Yi,"EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList",1221),D(1189,215,E5,Tee),l.a=!1,l.b=!1,I(Yi,"EcoreUtil/Copier",1189),D(759,1,wa,cie),l.Nb=function(e){Na(this,e)},l.Ob=function(){return ble(this)},l.Pb=function(){var e;return ble(this),e=this.b,this.b=null,e},l.Qb=function(){this.a.Qb()},I(Yi,"EcoreUtil/ProperContentIterator",759),D(1528,1527,{},Bj);var NTe;I(Yi,"EcoreValidator",1528);var PTe;os(Yi,"FeatureMapUtil/Validator"),D(1295,1,{2041:1},T4),l.am=function(e){return!0},I(Yi,"FeatureMapUtil/1",1295),D(773,1,{2041:1},t8t),l.am=function(e){var n;return this.c==e?!0:(n=Me(tr(this.a,e)),n==null?j8n(this,e)?(cse(this.a,e,(Pn(),bT)),!0):(cse(this.a,e,(Pn(),t2)),!1):n==(Pn(),bT))},l.e=!1;var a0t;I(Yi,"FeatureMapUtil/BasicValidator",773),D(774,45,E5,Mmt),I(Yi,"FeatureMapUtil/BasicValidator/Cache",774),D(509,56,{20:1,31:1,56:1,16:1,15:1,61:1,79:1,71:1,97:1},eI),l.bd=function(e,n){Jde(this.c,this.b,e,n)},l.Fc=function(e){return Tkt(this.c,this.b,e)},l.cd=function(e,n){return aTn(this.c,this.b,e,n)},l.Gc=function(e){return xS(this,e)},l.Gi=function(e,n){egn(this.c,this.b,e,n)},l.Wk=function(e,n){return bkt(this.c,this.b,e,n)},l.$i=function(e){return dV(this.c,this.b,e,!1)},l.Ii=function(){return zQt(this.c,this.b)},l.Ji=function(){return _in(this.c,this.b)},l.Ki=function(e){return a0n(this.c,this.b,e)},l.Xk=function(e,n){return hZt(this,e,n)},l.$b=function(){T6(this)},l.Hc=function(e){return dq(this.c,this.b,e)},l.Ic=function(e){return spn(this.c,this.b,e)},l.Xb=function(e){return dV(this.c,this.b,e,!0)},l.Fk=function(e){return this},l.dd=function(e){return ddn(this.c,this.b,e)},l.dc=function(){return Q$(this)},l.Qj=function(){return!wO(this.c,this.b)},l.Kc=function(){return U0n(this.c,this.b)},l.ed=function(){return G0n(this.c,this.b)},l.fd=function(e){return E2n(this.c,this.b,e)},l.Ti=function(e,n){return dge(this.c,this.b,e,n)},l.Ui=function(e,n){u0n(this.c,this.b,e,n)},l.gd=function(e){return Vfe(this.c,this.b,e)},l.Mc=function(e){return cEn(this.c,this.b,e)},l.hd=function(e,n){return kge(this.c,this.b,e,n)},l.Wb=function(e){WH(this.c,this.b),xS(this,u(e,15))},l.gc=function(){return k2n(this.c,this.b)},l.Pc=function(){return p1n(this.c,this.b)},l.Qc=function(e){return gdn(this.c,this.b,e)},l.Ib=function(){var e,n;for(n=new dp,n.a+="[",e=zQt(this.c,this.b);Lat(e);)Mo(n,ES(LH(e))),Lat(e)&&(n.a+=ao);return n.a+="]",n.a},l.Gk=function(){WH(this.c,this.b)},I(Yi,"FeatureMapUtil/FeatureEList",509),D(644,38,LN,Cst),l.hj=function(e){return l_(this,e)},l.mj=function(e){var n,r,s,o,h,d,m;switch(this.d){case 1:case 2:{if(h=e.jj(),$t(h)===$t(this.c)&&l_(this,null)==e.hj(null))return this.g=e.ij(),e.gj()==1&&(this.d=1),!0;break}case 3:{switch(o=e.gj(),o){case 3:{if(h=e.jj(),$t(h)===$t(this.c)&&l_(this,null)==e.hj(null))return this.d=5,n=new $m(2),Or(n,this.g),Or(n,e.ij()),this.g=n,!0;break}}break}case 5:{switch(o=e.gj(),o){case 3:{if(h=e.jj(),$t(h)===$t(this.c)&&l_(this,null)==e.hj(null))return r=u(this.g,16),r.Fc(e.ij()),!0;break}}break}case 4:{switch(o=e.gj(),o){case 3:{if(h=e.jj(),$t(h)===$t(this.c)&&l_(this,null)==e.hj(null))return this.d=1,this.g=e.ij(),!0;break}case 4:{if(h=e.jj(),$t(h)===$t(this.c)&&l_(this,null)==e.hj(null))return this.d=6,m=new $m(2),Or(m,this.n),Or(m,e.kj()),this.n=m,d=lt(ut(Fr,1),ii,28,15,[this.o,e.lj()]),this.g=d,!0;break}}break}case 6:{switch(o=e.gj(),o){case 4:{if(h=e.jj(),$t(h)===$t(this.c)&&l_(this,null)==e.hj(null))return r=u(this.n,16),r.Fc(e.kj()),d=u(this.g,53),s=Vt(Fr,ii,28,d.length+1,15,1),Xc(d,0,s,0,d.length),s[d.length]=e.lj(),this.g=s,!0;break}}break}}return!1},I(Yi,"FeatureMapUtil/FeatureENotificationImpl",644),D(564,509,{20:1,31:1,56:1,16:1,15:1,61:1,79:1,160:1,220:1,2036:1,71:1,97:1},Sz),l.Ol=function(e,n){return Tkt(this.c,e,n)},l.Pl=function(e,n,r){return bkt(this.c,e,n,r)},l.Ql=function(e,n,r){return qkt(this.c,e,n,r)},l.Rl=function(){return this},l.Sl=function(e,n){return YO(this.c,e,n)},l.Tl=function(e){return u(dV(this.c,this.b,e,!1),76).Lk()},l.Ul=function(e){return u(dV(this.c,this.b,e,!1),76).md()},l.Vl=function(){return this.a},l.Wl=function(e){return!wO(this.c,e)},l.Xl=function(e,n){gV(this.c,e,n)},l.Yl=function(e){return $oe(this.c,e)},l.Zl=function(e){mhe(this.c,e)},I(Yi,"FeatureMapUtil/FeatureFeatureMap",564),D(1294,1,aht,gQt),l.Fk=function(e){return dV(this.b,this.a,-1,e)},l.Qj=function(){return!wO(this.b,this.a)},l.Wb=function(e){gV(this.b,this.a,e)},l.Gk=function(){WH(this.b,this.a)},I(Yi,"FeatureMapUtil/FeatureValue",1294);var i8,o0t,c0t,s8,FTe,WP=os(_U,"AnyType");D(680,63,Pg,trt),I(_U,"InvalidDatatypeValueException",680);var ZK=os(_U,lve),YP=os(_U,hve),rOt=os(_U,fve),BTe,Bc,iOt,Hw,RTe,jTe,$Te,zTe,qTe,HTe,VTe,UTe,GTe,KTe,WTe,gx,YTe,px,AL,XTe,Fv,XP,QP,QTe,LL,DL;D(844,516,{110:1,94:1,93:1,58:1,54:1,99:1,857:1},twt),l.Lh=function(e,n,r){switch(e){case 0:return r?(!this.c&&(this.c=new ps(this,0)),this.c):(!this.c&&(this.c=new ps(this,0)),this.c.b);case 1:return r?(!this.c&&(this.c=new ps(this,0)),u(ru(this.c,(Ni(),Hw)),160)):(!this.c&&(this.c=new ps(this,0)),u(u(ru(this.c,(Ni(),Hw)),160),220)).Vl();case 2:return r?(!this.b&&(this.b=new ps(this,2)),this.b):(!this.b&&(this.b=new ps(this,2)),this.b.b)}return Ih(this,e-fr(this.ii()),En(this.j&2?(!this.k&&(this.k=new Zh),this.k).Nk():this.ii(),e),n,r)},l.Uh=function(e,n,r){var s;switch(n){case 0:return!this.c&&(this.c=new ps(this,0)),UO(this.c,e,r);case 1:return(!this.c&&(this.c=new ps(this,0)),u(u(ru(this.c,(Ni(),Hw)),160),71)).Xk(e,r);case 2:return!this.b&&(this.b=new ps(this,2)),UO(this.b,e,r)}return s=u(En(this.j&2?(!this.k&&(this.k=new Zh),this.k).Nk():this.ii(),n),69),s.wk().Ak(this,r4t(this),n-fr(this.ii()),e,r)},l.Wh=function(e){switch(e){case 0:return!!this.c&&this.c.i!=0;case 1:return!(!this.c&&(this.c=new ps(this,0)),u(ru(this.c,(Ni(),Hw)),160)).dc();case 2:return!!this.b&&this.b.i!=0}return Dh(this,e-fr(this.ii()),En(this.j&2?(!this.k&&(this.k=new Zh),this.k).Nk():this.ii(),e))},l.bi=function(e,n){switch(e){case 0:!this.c&&(this.c=new ps(this,0)),xI(this.c,n);return;case 1:(!this.c&&(this.c=new ps(this,0)),u(u(ru(this.c,(Ni(),Hw)),160),220)).Wb(n);return;case 2:!this.b&&(this.b=new ps(this,2)),xI(this.b,n);return}Fh(this,e-fr(this.ii()),En(this.j&2?(!this.k&&(this.k=new Zh),this.k).Nk():this.ii(),e),n)},l.ii=function(){return Ni(),iOt},l.ki=function(e){switch(e){case 0:!this.c&&(this.c=new ps(this,0)),Ir(this.c);return;case 1:(!this.c&&(this.c=new ps(this,0)),u(ru(this.c,(Ni(),Hw)),160)).$b();return;case 2:!this.b&&(this.b=new ps(this,2)),Ir(this.b);return}Ph(this,e-fr(this.ii()),En(this.j&2?(!this.k&&(this.k=new Zh),this.k).Nk():this.ii(),e))},l.Ib=function(){var e;return this.j&4?qf(this):(e=new ef(qf(this)),e.a+=" (mixed: ",wS(e,this.c),e.a+=", anyAttribute: ",wS(e,this.b),e.a+=")",e.a)},I($s,"AnyTypeImpl",844),D(681,516,{110:1,94:1,93:1,58:1,54:1,99:1,2119:1,681:1},xet),l.Lh=function(e,n,r){switch(e){case 0:return this.a;case 1:return this.b}return Ih(this,e-fr((Ni(),gx)),En(this.j&2?(!this.k&&(this.k=new Zh),this.k).Nk():gx,e),n,r)},l.Wh=function(e){switch(e){case 0:return this.a!=null;case 1:return this.b!=null}return Dh(this,e-fr((Ni(),gx)),En(this.j&2?(!this.k&&(this.k=new Zh),this.k).Nk():gx,e))},l.bi=function(e,n){switch(e){case 0:lr(this,Gr(n));return;case 1:or(this,Gr(n));return}Fh(this,e-fr((Ni(),gx)),En(this.j&2?(!this.k&&(this.k=new Zh),this.k).Nk():gx,e),n)},l.ii=function(){return Ni(),gx},l.ki=function(e){switch(e){case 0:this.a=null;return;case 1:this.b=null;return}Ph(this,e-fr((Ni(),gx)),En(this.j&2?(!this.k&&(this.k=new Zh),this.k).Nk():gx,e))},l.Ib=function(){var e;return this.j&4?qf(this):(e=new ef(qf(this)),e.a+=" (data: ",Mo(e,this.a),e.a+=", target: ",Mo(e,this.b),e.a+=")",e.a)},l.a=null,l.b=null,I($s,"ProcessingInstructionImpl",681),D(682,844,{110:1,94:1,93:1,58:1,54:1,99:1,857:1,2120:1,682:1},KKt),l.Lh=function(e,n,r){switch(e){case 0:return r?(!this.c&&(this.c=new ps(this,0)),this.c):(!this.c&&(this.c=new ps(this,0)),this.c.b);case 1:return r?(!this.c&&(this.c=new ps(this,0)),u(ru(this.c,(Ni(),Hw)),160)):(!this.c&&(this.c=new ps(this,0)),u(u(ru(this.c,(Ni(),Hw)),160),220)).Vl();case 2:return r?(!this.b&&(this.b=new ps(this,2)),this.b):(!this.b&&(this.b=new ps(this,2)),this.b.b);case 3:return!this.c&&(this.c=new ps(this,0)),Gr(YO(this.c,(Ni(),AL),!0));case 4:return Evt(this.a,(!this.c&&(this.c=new ps(this,0)),Gr(YO(this.c,(Ni(),AL),!0))));case 5:return this.a}return Ih(this,e-fr((Ni(),px)),En(this.j&2?(!this.k&&(this.k=new Zh),this.k).Nk():px,e),n,r)},l.Wh=function(e){switch(e){case 0:return!!this.c&&this.c.i!=0;case 1:return!(!this.c&&(this.c=new ps(this,0)),u(ru(this.c,(Ni(),Hw)),160)).dc();case 2:return!!this.b&&this.b.i!=0;case 3:return!this.c&&(this.c=new ps(this,0)),Gr(YO(this.c,(Ni(),AL),!0))!=null;case 4:return Evt(this.a,(!this.c&&(this.c=new ps(this,0)),Gr(YO(this.c,(Ni(),AL),!0))))!=null;case 5:return!!this.a}return Dh(this,e-fr((Ni(),px)),En(this.j&2?(!this.k&&(this.k=new Zh),this.k).Nk():px,e))},l.bi=function(e,n){switch(e){case 0:!this.c&&(this.c=new ps(this,0)),xI(this.c,n);return;case 1:(!this.c&&(this.c=new ps(this,0)),u(u(ru(this.c,(Ni(),Hw)),160),220)).Wb(n);return;case 2:!this.b&&(this.b=new ps(this,2)),xI(this.b,n);return;case 3:h3t(this,Gr(n));return;case 4:h3t(this,kvt(this.a,n));return;case 5:Sn(this,u(n,156));return}Fh(this,e-fr((Ni(),px)),En(this.j&2?(!this.k&&(this.k=new Zh),this.k).Nk():px,e),n)},l.ii=function(){return Ni(),px},l.ki=function(e){switch(e){case 0:!this.c&&(this.c=new ps(this,0)),Ir(this.c);return;case 1:(!this.c&&(this.c=new ps(this,0)),u(ru(this.c,(Ni(),Hw)),160)).$b();return;case 2:!this.b&&(this.b=new ps(this,2)),Ir(this.b);return;case 3:!this.c&&(this.c=new ps(this,0)),gV(this.c,(Ni(),AL),null);return;case 4:h3t(this,kvt(this.a,null));return;case 5:this.a=null;return}Ph(this,e-fr((Ni(),px)),En(this.j&2?(!this.k&&(this.k=new Zh),this.k).Nk():px,e))},I($s,"SimpleAnyTypeImpl",682),D(683,516,{110:1,94:1,93:1,58:1,54:1,99:1,2121:1,683:1},WKt),l.Lh=function(e,n,r){switch(e){case 0:return r?(!this.a&&(this.a=new ps(this,0)),this.a):(!this.a&&(this.a=new ps(this,0)),this.a.b);case 1:return r?(!this.b&&(this.b=new nl((wn(),wo),Mc,this,1)),this.b):(!this.b&&(this.b=new nl((wn(),wo),Mc,this,1)),RI(this.b));case 2:return r?(!this.c&&(this.c=new nl((wn(),wo),Mc,this,2)),this.c):(!this.c&&(this.c=new nl((wn(),wo),Mc,this,2)),RI(this.c));case 3:return!this.a&&(this.a=new ps(this,0)),ru(this.a,(Ni(),XP));case 4:return!this.a&&(this.a=new ps(this,0)),ru(this.a,(Ni(),QP));case 5:return!this.a&&(this.a=new ps(this,0)),ru(this.a,(Ni(),LL));case 6:return!this.a&&(this.a=new ps(this,0)),ru(this.a,(Ni(),DL))}return Ih(this,e-fr((Ni(),Fv)),En(this.j&2?(!this.k&&(this.k=new Zh),this.k).Nk():Fv,e),n,r)},l.Uh=function(e,n,r){var s;switch(n){case 0:return!this.a&&(this.a=new ps(this,0)),UO(this.a,e,r);case 1:return!this.b&&(this.b=new nl((wn(),wo),Mc,this,1)),pz(this.b,e,r);case 2:return!this.c&&(this.c=new nl((wn(),wo),Mc,this,2)),pz(this.c,e,r);case 5:return!this.a&&(this.a=new ps(this,0)),hZt(ru(this.a,(Ni(),LL)),e,r)}return s=u(En(this.j&2?(!this.k&&(this.k=new Zh),this.k).Nk():(Ni(),Fv),n),69),s.wk().Ak(this,r4t(this),n-fr((Ni(),Fv)),e,r)},l.Wh=function(e){switch(e){case 0:return!!this.a&&this.a.i!=0;case 1:return!!this.b&&this.b.f!=0;case 2:return!!this.c&&this.c.f!=0;case 3:return!this.a&&(this.a=new ps(this,0)),!Q$(ru(this.a,(Ni(),XP)));case 4:return!this.a&&(this.a=new ps(this,0)),!Q$(ru(this.a,(Ni(),QP)));case 5:return!this.a&&(this.a=new ps(this,0)),!Q$(ru(this.a,(Ni(),LL)));case 6:return!this.a&&(this.a=new ps(this,0)),!Q$(ru(this.a,(Ni(),DL)))}return Dh(this,e-fr((Ni(),Fv)),En(this.j&2?(!this.k&&(this.k=new Zh),this.k).Nk():Fv,e))},l.bi=function(e,n){switch(e){case 0:!this.a&&(this.a=new ps(this,0)),xI(this.a,n);return;case 1:!this.b&&(this.b=new nl((wn(),wo),Mc,this,1)),Jq(this.b,n);return;case 2:!this.c&&(this.c=new nl((wn(),wo),Mc,this,2)),Jq(this.c,n);return;case 3:!this.a&&(this.a=new ps(this,0)),T6(ru(this.a,(Ni(),XP))),!this.a&&(this.a=new ps(this,0)),xS(ru(this.a,XP),u(n,16));return;case 4:!this.a&&(this.a=new ps(this,0)),T6(ru(this.a,(Ni(),QP))),!this.a&&(this.a=new ps(this,0)),xS(ru(this.a,QP),u(n,16));return;case 5:!this.a&&(this.a=new ps(this,0)),T6(ru(this.a,(Ni(),LL))),!this.a&&(this.a=new ps(this,0)),xS(ru(this.a,LL),u(n,16));return;case 6:!this.a&&(this.a=new ps(this,0)),T6(ru(this.a,(Ni(),DL))),!this.a&&(this.a=new ps(this,0)),xS(ru(this.a,DL),u(n,16));return}Fh(this,e-fr((Ni(),Fv)),En(this.j&2?(!this.k&&(this.k=new Zh),this.k).Nk():Fv,e),n)},l.ii=function(){return Ni(),Fv},l.ki=function(e){switch(e){case 0:!this.a&&(this.a=new ps(this,0)),Ir(this.a);return;case 1:!this.b&&(this.b=new nl((wn(),wo),Mc,this,1)),this.b.c.$b();return;case 2:!this.c&&(this.c=new nl((wn(),wo),Mc,this,2)),this.c.c.$b();return;case 3:!this.a&&(this.a=new ps(this,0)),T6(ru(this.a,(Ni(),XP)));return;case 4:!this.a&&(this.a=new ps(this,0)),T6(ru(this.a,(Ni(),QP)));return;case 5:!this.a&&(this.a=new ps(this,0)),T6(ru(this.a,(Ni(),LL)));return;case 6:!this.a&&(this.a=new ps(this,0)),T6(ru(this.a,(Ni(),DL)));return}Ph(this,e-fr((Ni(),Fv)),En(this.j&2?(!this.k&&(this.k=new Zh),this.k).Nk():Fv,e))},l.Ib=function(){var e;return this.j&4?qf(this):(e=new ef(qf(this)),e.a+=" (mixed: ",wS(e,this.a),e.a+=")",e.a)},I($s,"XMLTypeDocumentRootImpl",683),D(2028,720,{110:1,94:1,93:1,479:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1,2122:1},Z8),l.ri=function(e,n){switch(e.hk()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return n==null?null:rc(n);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return Gr(n);case 6:return Zsn(u(n,195));case 12:case 47:case 49:case 11:return upe(this,e,n);case 13:return n==null?null:lTn(u(n,247));case 15:case 14:return n==null?null:pln(Rt(Ht(n)));case 17:return sfe((Ni(),n));case 18:return sfe(n);case 21:case 20:return n==null?null:bln(u(n,161).a);case 27:return tan(u(n,195));case 30:return vhe((Ni(),u(n,15)));case 31:return vhe(u(n,15));case 40:return nan((Ni(),n));case 42:return afe((Ni(),n));case 43:return afe(n);case 59:case 48:return ean((Ni(),n));default:throw at(new zn(lT+e.xe()+fv))}},l.si=function(e){var n,r,s,o,h;switch(e.G==-1&&(e.G=(r=sh(e),r?Np(r.vi(),e):-1)),e.G){case 0:return n=new twt,n;case 1:return s=new xet,s;case 2:return o=new KKt,o;case 3:return h=new WKt,h;default:throw at(new zn(Vlt+e.zb+fv))}},l.ti=function(e,n){var r,s,o,h,d,m,k,T,A,P,$,U,J,tt,ht,Tt;switch(e.hk()){case 5:case 52:case 4:return n;case 6:return cmn(n);case 8:case 7:return n==null?null:Wyn(n);case 9:return n==null?null:GI(lh((s=su(n,!0),s.length>0&&(qn(0,s.length),s.charCodeAt(0)==43)?(qn(1,s.length+1),s.substr(1)):s),-128,127)<<24>>24);case 10:return n==null?null:GI(lh((o=su(n,!0),o.length>0&&(qn(0,o.length),o.charCodeAt(0)==43)?(qn(1,o.length+1),o.substr(1)):o),-128,127)<<24>>24);case 11:return Gr(iv(this,(Ni(),$Te),n));case 12:return Gr(iv(this,(Ni(),zTe),n));case 13:return n==null?null:new Twt(su(n,!0));case 15:case 14:return w6n(n);case 16:return Gr(iv(this,(Ni(),qTe),n));case 17:return xle((Ni(),n));case 18:return xle(n);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return su(n,!0);case 21:case 20:return _6n(n);case 22:return Gr(iv(this,(Ni(),HTe),n));case 23:return Gr(iv(this,(Ni(),VTe),n));case 24:return Gr(iv(this,(Ni(),UTe),n));case 25:return Gr(iv(this,(Ni(),GTe),n));case 26:return Gr(iv(this,(Ni(),KTe),n));case 27:return Xwn(n);case 30:return kle((Ni(),n));case 31:return kle(n);case 32:return n==null?null:he(lh((A=su(n,!0),A.length>0&&(qn(0,A.length),A.charCodeAt(0)==43)?(qn(1,A.length+1),A.substr(1)):A),Ga,xi));case 33:return n==null?null:new Sb((P=su(n,!0),P.length>0&&(qn(0,P.length),P.charCodeAt(0)==43)?(qn(1,P.length+1),P.substr(1)):P));case 34:return n==null?null:he(lh(($=su(n,!0),$.length>0&&(qn(0,$.length),$.charCodeAt(0)==43)?(qn(1,$.length+1),$.substr(1)):$),Ga,xi));case 36:return n==null?null:Mg(mV((U=su(n,!0),U.length>0&&(qn(0,U.length),U.charCodeAt(0)==43)?(qn(1,U.length+1),U.substr(1)):U)));case 37:return n==null?null:Mg(mV((J=su(n,!0),J.length>0&&(qn(0,J.length),J.charCodeAt(0)==43)?(qn(1,J.length+1),J.substr(1)):J)));case 40:return Kmn((Ni(),n));case 42:return Ele((Ni(),n));case 43:return Ele(n);case 44:return n==null?null:new Sb((tt=su(n,!0),tt.length>0&&(qn(0,tt.length),tt.charCodeAt(0)==43)?(qn(1,tt.length+1),tt.substr(1)):tt));case 45:return n==null?null:new Sb((ht=su(n,!0),ht.length>0&&(qn(0,ht.length),ht.charCodeAt(0)==43)?(qn(1,ht.length+1),ht.substr(1)):ht));case 46:return su(n,!1);case 47:return Gr(iv(this,(Ni(),WTe),n));case 59:case 48:return Gmn((Ni(),n));case 49:return Gr(iv(this,(Ni(),YTe),n));case 50:return n==null?null:w7(lh((Tt=su(n,!0),Tt.length>0&&(qn(0,Tt.length),Tt.charCodeAt(0)==43)?(qn(1,Tt.length+1),Tt.substr(1)):Tt),EU,32767)<<16>>16);case 51:return n==null?null:w7(lh((h=su(n,!0),h.length>0&&(qn(0,h.length),h.charCodeAt(0)==43)?(qn(1,h.length+1),h.substr(1)):h),EU,32767)<<16>>16);case 53:return Gr(iv(this,(Ni(),XTe),n));case 55:return n==null?null:w7(lh((d=su(n,!0),d.length>0&&(qn(0,d.length),d.charCodeAt(0)==43)?(qn(1,d.length+1),d.substr(1)):d),EU,32767)<<16>>16);case 56:return n==null?null:w7(lh((m=su(n,!0),m.length>0&&(qn(0,m.length),m.charCodeAt(0)==43)?(qn(1,m.length+1),m.substr(1)):m),EU,32767)<<16>>16);case 57:return n==null?null:Mg(mV((k=su(n,!0),k.length>0&&(qn(0,k.length),k.charCodeAt(0)==43)?(qn(1,k.length+1),k.substr(1)):k)));case 58:return n==null?null:Mg(mV((T=su(n,!0),T.length>0&&(qn(0,T.length),T.charCodeAt(0)==43)?(qn(1,T.length+1),T.substr(1)):T)));case 60:return n==null?null:he(lh((r=su(n,!0),r.length>0&&(qn(0,r.length),r.charCodeAt(0)==43)?(qn(1,r.length+1),r.substr(1)):r),Ga,xi));case 61:return n==null?null:he(lh(su(n,!0),Ga,xi));default:throw at(new zn(lT+e.xe()+fv))}};var JTe,sOt,ZTe,aOt;I($s,"XMLTypeFactoryImpl",2028),D(594,184,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1,2044:1,594:1},Gee),l.N=!1,l.O=!1;var t9e=!1;I($s,"XMLTypePackageImpl",594),D(1961,1,{851:1},tE),l.Kk=function(){return Okt(),u9e},I($s,"XMLTypePackageImpl/1",1961),D(1970,1,li,SC),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/10",1970),D(1971,1,li,met),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/11",1971),D(1972,1,li,vet),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/12",1972),D(1973,1,li,f6),l.fk=function(e){return Cy(e)},l.gk=function(e){return Vt(zs,ue,345,e,7,1)},I($s,"XMLTypePackageImpl/13",1973),D(1974,1,li,cj),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/14",1974),D(1975,1,li,uj),l.fk=function(e){return Lt(e,15)},l.gk=function(e){return Vt(Vh,l3,15,e,0,1)},I($s,"XMLTypePackageImpl/15",1975),D(1976,1,li,yet),l.fk=function(e){return Lt(e,15)},l.gk=function(e){return Vt(Vh,l3,15,e,0,1)},I($s,"XMLTypePackageImpl/16",1976),D(1977,1,li,lj),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/17",1977),D(1978,1,li,hj),l.fk=function(e){return Lt(e,161)},l.gk=function(e){return Vt(wT,ue,161,e,0,1)},I($s,"XMLTypePackageImpl/18",1978),D(1979,1,li,pM),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/19",1979),D(1962,1,li,ket),l.fk=function(e){return Lt(e,857)},l.gk=function(e){return Vt(WP,Ln,857,e,0,1)},I($s,"XMLTypePackageImpl/2",1962),D(1980,1,li,_C),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/20",1980),D(1981,1,li,Eet),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/21",1981),D(1982,1,li,Tet),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/22",1982),D(1983,1,li,Cet),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/23",1983),D(1984,1,li,_et),l.fk=function(e){return Lt(e,195)},l.gk=function(e){return Vt(ul,ue,195,e,0,2)},I($s,"XMLTypePackageImpl/24",1984),D(1985,1,li,Aet),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/25",1985),D(1986,1,li,fj),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/26",1986),D(1987,1,li,Let),l.fk=function(e){return Lt(e,15)},l.gk=function(e){return Vt(Vh,l3,15,e,0,1)},I($s,"XMLTypePackageImpl/27",1987),D(1988,1,li,Det),l.fk=function(e){return Lt(e,15)},l.gk=function(e){return Vt(Vh,l3,15,e,0,1)},I($s,"XMLTypePackageImpl/28",1988),D(1989,1,li,Met),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/29",1989),D(1963,1,li,dj),l.fk=function(e){return Lt(e,681)},l.gk=function(e){return Vt(ZK,Ln,2119,e,0,1)},I($s,"XMLTypePackageImpl/3",1963),D(1990,1,li,Iet),l.fk=function(e){return Lt(e,17)},l.gk=function(e){return Vt(Ra,ue,17,e,0,1)},I($s,"XMLTypePackageImpl/30",1990),D(1991,1,li,Oet),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/31",1991),D(1992,1,li,AC),l.fk=function(e){return Lt(e,168)},l.gk=function(e){return Vt(gv,ue,168,e,0,1)},I($s,"XMLTypePackageImpl/32",1992),D(1993,1,li,Net),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/33",1993),D(1994,1,li,Pet),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/34",1994),D(1995,1,li,Fet),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/35",1995),D(1996,1,li,Bet),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/36",1996),D(1997,1,li,Ret),l.fk=function(e){return Lt(e,15)},l.gk=function(e){return Vt(Vh,l3,15,e,0,1)},I($s,"XMLTypePackageImpl/37",1997),D(1998,1,li,jet),l.fk=function(e){return Lt(e,15)},l.gk=function(e){return Vt(Vh,l3,15,e,0,1)},I($s,"XMLTypePackageImpl/38",1998),D(1999,1,li,gj),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/39",1999),D(1964,1,li,$et),l.fk=function(e){return Lt(e,682)},l.gk=function(e){return Vt(YP,Ln,2120,e,0,1)},I($s,"XMLTypePackageImpl/4",1964),D(2e3,1,li,pj),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/40",2e3),D(2001,1,li,zet),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/41",2001),D(2002,1,li,bM),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/42",2002),D(2003,1,li,qet),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/43",2003),D(2004,1,li,bj),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/44",2004),D(2005,1,li,Het),l.fk=function(e){return Lt(e,191)},l.gk=function(e){return Vt(pv,ue,191,e,0,1)},I($s,"XMLTypePackageImpl/45",2005),D(2006,1,li,wj),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/46",2006),D(2007,1,li,Vet),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/47",2007),D(2008,1,li,mj),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/48",2008),D(2009,1,li,vj),l.fk=function(e){return Lt(e,191)},l.gk=function(e){return Vt(pv,ue,191,e,0,1)},I($s,"XMLTypePackageImpl/49",2009),D(1965,1,li,yj),l.fk=function(e){return Lt(e,683)},l.gk=function(e){return Vt(rOt,Ln,2121,e,0,1)},I($s,"XMLTypePackageImpl/5",1965),D(2010,1,li,wM),l.fk=function(e){return Lt(e,168)},l.gk=function(e){return Vt(gv,ue,168,e,0,1)},I($s,"XMLTypePackageImpl/50",2010),D(2011,1,li,C4),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/51",2011),D(2012,1,li,LC),l.fk=function(e){return Lt(e,17)},l.gk=function(e){return Vt(Ra,ue,17,e,0,1)},I($s,"XMLTypePackageImpl/52",2012),D(1966,1,li,Q1),l.fk=function(e){return ba(e)},l.gk=function(e){return Vt(Pe,ue,2,e,6,1)},I($s,"XMLTypePackageImpl/6",1966),D(1967,1,li,xj),l.fk=function(e){return Lt(e,195)},l.gk=function(e){return Vt(ul,ue,195,e,0,2)},I($s,"XMLTypePackageImpl/7",1967),D(1968,1,li,eE),l.fk=function(e){return Ty(e)},l.gk=function(e){return Vt(ys,ue,484,e,8,1)},I($s,"XMLTypePackageImpl/8",1968),D(1969,1,li,mM),l.fk=function(e){return Lt(e,222)},l.gk=function(e){return Vt(Fk,ue,222,e,0,1)},I($s,"XMLTypePackageImpl/9",1969);var _d,nb,ML,tW,vt;D(55,63,Pg,Yr),I(qp,"RegEx/ParseException",55),D(836,1,{},kj),l.bm=function(e){return er*16)throw at(new Yr(Qr((Ur(),Eme))));r=r*16+o}while(!0);if(this.a!=125)throw at(new Yr(Qr((Ur(),Tme))));if(r>gT)throw at(new Yr(Qr((Ur(),Cme))));e=r}else{if(o=0,this.c!=0||(o=hw(this.a))<0)throw at(new Yr(Qr((Ur(),zp))));if(r=o,wi(this),this.c!=0||(o=hw(this.a))<0)throw at(new Yr(Qr((Ur(),zp))));r=r*16+o,e=r}break;case 117:if(s=0,wi(this),this.c!=0||(s=hw(this.a))<0)throw at(new Yr(Qr((Ur(),zp))));if(n=s,wi(this),this.c!=0||(s=hw(this.a))<0)throw at(new Yr(Qr((Ur(),zp))));if(n=n*16+s,wi(this),this.c!=0||(s=hw(this.a))<0)throw at(new Yr(Qr((Ur(),zp))));if(n=n*16+s,wi(this),this.c!=0||(s=hw(this.a))<0)throw at(new Yr(Qr((Ur(),zp))));n=n*16+s,e=n;break;case 118:if(wi(this),this.c!=0||(s=hw(this.a))<0)throw at(new Yr(Qr((Ur(),zp))));if(n=s,wi(this),this.c!=0||(s=hw(this.a))<0)throw at(new Yr(Qr((Ur(),zp))));if(n=n*16+s,wi(this),this.c!=0||(s=hw(this.a))<0)throw at(new Yr(Qr((Ur(),zp))));if(n=n*16+s,wi(this),this.c!=0||(s=hw(this.a))<0)throw at(new Yr(Qr((Ur(),zp))));if(n=n*16+s,wi(this),this.c!=0||(s=hw(this.a))<0)throw at(new Yr(Qr((Ur(),zp))));if(n=n*16+s,wi(this),this.c!=0||(s=hw(this.a))<0)throw at(new Yr(Qr((Ur(),zp))));if(n=n*16+s,n>gT)throw at(new Yr(Qr((Ur(),"parser.descappe.4"))));e=n;break;case 65:case 90:case 122:throw at(new Yr(Qr((Ur(),Sme))))}return e},l.dm=function(e){var n,r;switch(e){case 100:r=(this.e&32)==32?Gb("Nd",!0):(yi(),eW);break;case 68:r=(this.e&32)==32?Gb("Nd",!1):(yi(),fOt);break;case 119:r=(this.e&32)==32?Gb("IsWord",!0):(yi(),t9);break;case 87:r=(this.e&32)==32?Gb("IsWord",!1):(yi(),gOt);break;case 115:r=(this.e&32)==32?Gb("IsSpace",!0):(yi(),a8);break;case 83:r=(this.e&32)==32?Gb("IsSpace",!1):(yi(),dOt);break;default:throw at(new uc((n=e,Sve+n.toString(16))))}return r},l.em=function(e){var n,r,s,o,h,d,m,k,T,A,P,$;for(this.b=1,wi(this),n=null,this.c==0&&this.a==94?(wi(this),e?A=(yi(),yi(),new ih(5)):(n=(yi(),yi(),new ih(4)),iu(n,0,gT),A=new ih(4))):A=(yi(),yi(),new ih(4)),o=!0;($=this.c)!=1&&!($==0&&this.a==93&&!o);){if(o=!1,r=this.a,s=!1,$==10)switch(r){case 100:case 68:case 119:case 87:case 115:case 83:a3(A,this.dm(r)),s=!0;break;case 105:case 73:case 99:case 67:r=this.um(A,r),r<0&&(s=!0);break;case 112:case 80:if(P=M6t(this,r),!P)throw at(new Yr(Qr((Ur(),rht))));a3(A,P),s=!0;break;default:r=this.cm()}else if($==20){if(d=TE(this.i,58,this.d),d<0)throw at(new Yr(Qr((Ur(),NTt))));if(m=!0,Va(this.i,this.d)==94&&(++this.d,m=!1),h=Lh(this.i,this.d,d),k=Qse(h,m,(this.e&512)==512),!k)throw at(new Yr(Qr((Ur(),mme))));if(a3(A,k),s=!0,d+1>=this.j||Va(this.i,d+1)!=93)throw at(new Yr(Qr((Ur(),NTt))));this.d=d+2}if(wi(this),!s)if(this.c!=0||this.a!=45)iu(A,r,r);else{if(wi(this),($=this.c)==1)throw at(new Yr(Qr((Ur(),bU))));$==0&&this.a==93?(iu(A,r,r),iu(A,45,45)):(T=this.a,$==10&&(T=this.cm()),wi(this),iu(A,r,T))}(this.e&Uf)==Uf&&this.c==0&&this.a==44&&wi(this)}if(this.c==1)throw at(new Yr(Qr((Ur(),bU))));return n&&($_(n,A),A=n),g5(A),R_(A),this.b=0,wi(this),A},l.fm=function(){var e,n,r,s;for(r=this.em(!1);(s=this.c)!=7;)if(e=this.a,s==0&&(e==45||e==38)||s==4){if(wi(this),this.c!=9)throw at(new Yr(Qr((Ur(),yme))));if(n=this.em(!1),s==4)a3(r,n);else if(e==45)$_(r,n);else if(e==38)spe(r,n);else throw at(new uc("ASSERT"))}else throw at(new Yr(Qr((Ur(),xme))));return wi(this),r},l.gm=function(){var e,n;return e=this.a-48,n=(yi(),yi(),new lst(12,null,e)),!this.g&&(this.g=new u$),c$(this.g,new F2t(e)),wi(this),n},l.hm=function(){return wi(this),yi(),r9e},l.im=function(){return wi(this),yi(),n9e},l.jm=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.km=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.lm=function(){return wi(this),hbn()},l.mm=function(){return wi(this),yi(),s9e},l.nm=function(){return wi(this),yi(),o9e},l.om=function(){var e;if(this.d>=this.j||((e=Va(this.i,this.d++))&65504)!=64)throw at(new Yr(Qr((Ur(),pme))));return wi(this),yi(),yi(),new _0(0,e-64)},l.pm=function(){return wi(this),g7n()},l.qm=function(){return wi(this),yi(),c9e},l.rm=function(){var e;return e=(yi(),yi(),new _0(0,105)),wi(this),e},l.sm=function(){return wi(this),yi(),a9e},l.tm=function(){return wi(this),yi(),i9e},l.um=function(e,n){return this.cm()},l.vm=function(){return wi(this),yi(),lOt},l.wm=function(){var e,n,r,s,o;if(this.d+1>=this.j)throw at(new Yr(Qr((Ur(),fme))));if(s=-1,n=null,e=Va(this.i,this.d),49<=e&&e<=57){if(s=e-48,!this.g&&(this.g=new u$),c$(this.g,new F2t(s)),++this.d,Va(this.i,this.d)!=41)throw at(new Yr(Qr((Ur(),Tw))));++this.d}else switch(e==63&&--this.d,wi(this),n=i8t(this),n.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw at(new Yr(Qr((Ur(),Tw))));break;default:throw at(new Yr(Qr((Ur(),dme))))}if(wi(this),o=Xm(this),r=null,o.e==2){if(o.Pm()!=2)throw at(new Yr(Qr((Ur(),gme))));r=o.Lm(1),o=o.Lm(0)}if(this.c!=7)throw at(new Yr(Qr((Ur(),Tw))));return wi(this),yi(),yi(),new Iae(s,n,o,r)},l.xm=function(){return wi(this),yi(),hOt},l.ym=function(){var e;if(wi(this),e=$z(24,Xm(this)),this.c!=7)throw at(new Yr(Qr((Ur(),Tw))));return wi(this),e},l.zm=function(){var e;if(wi(this),e=$z(20,Xm(this)),this.c!=7)throw at(new Yr(Qr((Ur(),Tw))));return wi(this),e},l.Am=function(){var e;if(wi(this),e=$z(22,Xm(this)),this.c!=7)throw at(new Yr(Qr((Ur(),Tw))));return wi(this),e},l.Bm=function(){var e,n,r,s,o;for(e=0,r=0,n=-1;this.d=this.j)throw at(new Yr(Qr((Ur(),ITt))));if(n==45){for(++this.d;this.d=this.j)throw at(new Yr(Qr((Ur(),ITt))))}if(n==58){if(++this.d,wi(this),s=_ee(Xm(this),e,r),this.c!=7)throw at(new Yr(Qr((Ur(),Tw))));wi(this)}else if(n==41)++this.d,wi(this),s=_ee(Xm(this),e,r);else throw at(new Yr(Qr((Ur(),hme))));return s},l.Cm=function(){var e;if(wi(this),e=$z(21,Xm(this)),this.c!=7)throw at(new Yr(Qr((Ur(),Tw))));return wi(this),e},l.Dm=function(){var e;if(wi(this),e=$z(23,Xm(this)),this.c!=7)throw at(new Yr(Qr((Ur(),Tw))));return wi(this),e},l.Em=function(){var e,n;if(wi(this),e=this.f++,n=Rit(Xm(this),e),this.c!=7)throw at(new Yr(Qr((Ur(),Tw))));return wi(this),n},l.Fm=function(){var e;if(wi(this),e=Rit(Xm(this),0),this.c!=7)throw at(new Yr(Qr((Ur(),Tw))));return wi(this),e},l.Gm=function(e){return wi(this),this.c==5?(wi(this),Mz(e,(yi(),yi(),new By(9,e)))):Mz(e,(yi(),yi(),new By(3,e)))},l.Hm=function(e){var n;return wi(this),n=(yi(),yi(),new yS(2)),this.c==5?(wi(this),gw(n,OL),gw(n,e)):(gw(n,e),gw(n,OL)),n},l.Im=function(e){return wi(this),this.c==5?(wi(this),yi(),yi(),new By(9,e)):(yi(),yi(),new By(3,e))},l.a=0,l.b=0,l.c=0,l.d=0,l.e=0,l.f=1,l.g=null,l.j=0,I(qp,"RegEx/RegexParser",836),D(1947,836,{},YKt),l.bm=function(e){return!1},l.cm=function(){return fkt(this)},l.dm=function(e){return j7(e)},l.em=function(e){return tbe(this)},l.fm=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.gm=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.hm=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.im=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.jm=function(){return wi(this),j7(67)},l.km=function(){return wi(this),j7(73)},l.lm=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.mm=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.nm=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.om=function(){return wi(this),j7(99)},l.pm=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.qm=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.rm=function(){return wi(this),j7(105)},l.sm=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.tm=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.um=function(e,n){return a3(e,j7(n)),-1},l.vm=function(){return wi(this),yi(),yi(),new _0(0,94)},l.wm=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.xm=function(){return wi(this),yi(),yi(),new _0(0,36)},l.ym=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.zm=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.Am=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.Bm=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.Cm=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.Dm=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.Em=function(){var e;if(wi(this),e=Rit(Xm(this),0),this.c!=7)throw at(new Yr(Qr((Ur(),Tw))));return wi(this),e},l.Fm=function(){throw at(new Yr(Qr((Ur(),Hh))))},l.Gm=function(e){return wi(this),Mz(e,(yi(),yi(),new By(3,e)))},l.Hm=function(e){var n;return wi(this),n=(yi(),yi(),new yS(2)),gw(n,e),gw(n,OL),n},l.Im=function(e){return wi(this),yi(),yi(),new By(3,e)};var bx=null,JT=null;I(qp,"RegEx/ParserForXMLSchema",1947),D(122,1,pT,um),l.Jm=function(e){throw at(new uc("Not supported."))},l.Km=function(){return-1},l.Lm=function(e){return null},l.Mm=function(){return null},l.Nm=function(e){},l.Om=function(e){},l.Pm=function(){return 0},l.Ib=function(){return this.Qm(0)},l.Qm=function(e){return this.e==11?".":""},l.e=0;var oOt,ZT,IL,e9e,cOt,W3=null,eW,u0t=null,uOt,OL,l0t=null,lOt,hOt,fOt,dOt,gOt,n9e,a8,r9e,i9e,s9e,a9e,t9,o9e,c9e,T_n=I(qp,"RegEx/Token",122);D(138,122,{3:1,138:1,122:1},ih),l.Qm=function(e){var n,r,s;if(this.e==4)if(this==uOt)r=".";else if(this==eW)r="\\d";else if(this==t9)r="\\w";else if(this==a8)r="\\s";else{for(s=new dp,s.a+="[",n=0;n0&&(s.a+=","),this.b[n]===this.b[n+1]?Mo(s,WO(this.b[n])):(Mo(s,WO(this.b[n])),s.a+="-",Mo(s,WO(this.b[n+1])));s.a+="]",r=s.a}else if(this==fOt)r="\\D";else if(this==gOt)r="\\W";else if(this==dOt)r="\\S";else{for(s=new dp,s.a+="[^",n=0;n0&&(s.a+=","),this.b[n]===this.b[n+1]?Mo(s,WO(this.b[n])):(Mo(s,WO(this.b[n])),s.a+="-",Mo(s,WO(this.b[n+1])));s.a+="]",r=s.a}return r},l.a=!1,l.c=!1,I(qp,"RegEx/RangeToken",138),D(592,1,{592:1},F2t),l.a=0,I(qp,"RegEx/RegexParser/ReferencePosition",592),D(591,1,{3:1,591:1},lYt),l.Fb=function(e){var n;return e==null||!Lt(e,591)?!1:(n=u(e,591),hn(this.b,n.b)&&this.a==n.a)},l.Hb=function(){return _p(this.b+"/"+skt(this.a))},l.Ib=function(){return this.c.Qm(this.a)},l.a=0,I(qp,"RegEx/RegularExpression",591),D(228,122,pT,_0),l.Km=function(){return this.a},l.Qm=function(e){var n,r,s;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:s="\\"+dit(this.a&js);break;case 12:s="\\f";break;case 10:s="\\n";break;case 13:s="\\r";break;case 9:s="\\t";break;case 27:s="\\e";break;default:this.a>=po?(r=(n=this.a>>>0,"0"+n.toString(16)),s="\\v"+Lh(r,r.length-6,r.length)):s=""+dit(this.a&js)}break;case 8:this==lOt||this==hOt?s=""+dit(this.a&js):s="\\"+dit(this.a&js);break;default:s=null}return s},l.a=0,I(qp,"RegEx/Token/CharToken",228),D(318,122,pT,By),l.Lm=function(e){return this.a},l.Nm=function(e){this.b=e},l.Om=function(e){this.c=e},l.Pm=function(){return 1},l.Qm=function(e){var n;if(this.e==3)if(this.c<0&&this.b<0)n=this.a.Qm(e)+"*";else if(this.c==this.b)n=this.a.Qm(e)+"{"+this.c+"}";else if(this.c>=0&&this.b>=0)n=this.a.Qm(e)+"{"+this.c+","+this.b+"}";else if(this.c>=0&&this.b<0)n=this.a.Qm(e)+"{"+this.c+",}";else throw at(new uc("Token#toString(): CLOSURE "+this.c+ao+this.b));else if(this.c<0&&this.b<0)n=this.a.Qm(e)+"*?";else if(this.c==this.b)n=this.a.Qm(e)+"{"+this.c+"}?";else if(this.c>=0&&this.b>=0)n=this.a.Qm(e)+"{"+this.c+","+this.b+"}?";else if(this.c>=0&&this.b<0)n=this.a.Qm(e)+"{"+this.c+",}?";else throw at(new uc("Token#toString(): NONGREEDYCLOSURE "+this.c+ao+this.b));return n},l.b=0,l.c=0,I(qp,"RegEx/Token/ClosureToken",318),D(837,122,pT,Cyt),l.Lm=function(e){return e==0?this.a:this.b},l.Pm=function(){return 2},l.Qm=function(e){var n;return this.b.e==3&&this.b.Lm(0)==this.a?n=this.a.Qm(e)+"+":this.b.e==9&&this.b.Lm(0)==this.a?n=this.a.Qm(e)+"+?":n=this.a.Qm(e)+(""+this.b.Qm(e)),n},I(qp,"RegEx/Token/ConcatToken",837),D(1945,122,pT,Iae),l.Lm=function(e){if(e==0)return this.d;if(e==1)return this.b;throw at(new uc("Internal Error: "+e))},l.Pm=function(){return this.b?2:1},l.Qm=function(e){var n;return this.c>0?n="(?("+this.c+")":this.a.e==8?n="(?("+this.a+")":n="(?"+this.a,this.b?n+=this.d+"|"+this.b+")":n+=this.d+")",n},l.c=0,I(qp,"RegEx/Token/ConditionToken",1945),D(1946,122,pT,kre),l.Lm=function(e){return this.b},l.Pm=function(){return 1},l.Qm=function(e){return"(?"+(this.a==0?"":skt(this.a))+(this.c==0?"":skt(this.c))+":"+this.b.Qm(e)+")"},l.a=0,l.c=0,I(qp,"RegEx/Token/ModifierToken",1946),D(838,122,pT,Pyt),l.Lm=function(e){return this.a},l.Pm=function(){return 1},l.Qm=function(e){var n;switch(n=null,this.e){case 6:this.b==0?n="(?:"+this.a.Qm(e)+")":n="("+this.a.Qm(e)+")";break;case 20:n="(?="+this.a.Qm(e)+")";break;case 21:n="(?!"+this.a.Qm(e)+")";break;case 22:n="(?<="+this.a.Qm(e)+")";break;case 23:n="(?"+this.a.Qm(e)+")"}return n},l.b=0,I(qp,"RegEx/Token/ParenToken",838),D(530,122,{3:1,122:1,530:1},lst),l.Mm=function(){return this.b},l.Qm=function(e){return this.e==12?"\\"+this.a:a6n(this.b)},l.a=0,I(qp,"RegEx/Token/StringToken",530),D(476,122,pT,yS),l.Jm=function(e){gw(this,e)},l.Lm=function(e){return u(Im(this.a,e),122)},l.Pm=function(){return this.a?this.a.a.c.length:0},l.Qm=function(e){var n,r,s,o,h;if(this.e==1){if(this.a.a.c.length==2)n=u(Im(this.a,0),122),r=u(Im(this.a,1),122),r.e==3&&r.Lm(0)==n?o=n.Qm(e)+"+":r.e==9&&r.Lm(0)==n?o=n.Qm(e)+"+?":o=n.Qm(e)+(""+r.Qm(e));else{for(h=new dp,s=0;s=this.c.b:this.a<=this.c.b},l.Sb=function(){return this.b>0},l.Tb=function(){return this.b},l.Vb=function(){return this.b-1},l.Qb=function(){throw at(new hp(Ove))},l.a=0,l.b=0,I(ZTt,"ExclusiveRange/RangeIterator",258);var Yh=FE(wU,"C"),Fr=FE(dA,"I"),Fl=FE(kk,"Z"),x2=FE(gA,"J"),ul=FE(lA,"B"),ma=FE(hA,"D"),Y3=FE(fA,"F"),wx=FE(pA,"S"),C_n=os("org.eclipse.elk.core.labels","ILabelManager"),pOt=os(oo,"DiagnosticChain"),bOt=os(ove,"ResourceSet"),wOt=I(oo,"InvocationTargetException",null),l9e=(d$(),jdn),h9e=h9e=Dyn;Ign(Ann),Agn("permProps",[[["locale","default"],[Nve,"gecko1_8"]],[["locale","default"],[Nve,"safari"]]]),h9e(null,"elk",null)}).call(this)}).call(this,typeof Z0<"u"?Z0:typeof self<"u"?self:typeof window<"u"?window:{})},{}],3:[function(f,g,w){function v(M,F){if(!(M instanceof F))throw new TypeError("Cannot call a class as a function")}function b(M,F){if(!M)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return F&&(typeof F=="object"||typeof F=="function")?F:M}function E(M,F){if(typeof F!="function"&&F!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof F);M.prototype=Object.create(F&&F.prototype,{constructor:{value:M,enumerable:!1,writable:!0,configurable:!0}}),F&&(Object.setPrototypeOf?Object.setPrototypeOf(M,F):M.__proto__=F)}var S=f("./elk-api.js").default,_=function(M){E(F,M);function F(){var R=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};v(this,F);var B=Object.assign({},R),z=!1;try{f.resolve("web-worker"),z=!0}catch{}if(R.workerUrl)if(z){var Y=f("web-worker");B.workerFactory=function(ft){return new Y(ft)}}else console.warn(`Web worker requested but 'web-worker' package not installed. +Consider installing the package or pass your own 'workerFactory' to ELK's constructor. +... Falling back to non-web worker version.`);if(!B.workerFactory){var nt=f("./elk-worker.min.js"),ot=nt.Worker;B.workerFactory=function(ft){return new ot(ft)}}return b(this,(F.__proto__||Object.getPrototypeOf(F)).call(this,B))}return F}(S);Object.defineProperty(g.exports,"__esModule",{value:!0}),g.exports=_,_.default=_},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(f,g,w){g.exports=Worker},{}]},{},[3])(3)})})(THt);var ptn=THt.exports;const btn=e9(ptn),CHt=new btn;let nm={};const wtn={};let Ux={};const mtn=async function(i,a,f,g,w,v,b){const S=f.select(`[id="${a}"]`).insert("g").attr("class","nodes"),_=Object.keys(i);return await Promise.all(_.map(async function(M){const F=i[M];let R="default";F.classes.length>0&&(R=F.classes.join(" ")),R=R+" flowchart-label";const B=C2(F.styles);let z=F.text!==void 0?F.text:F.id;const Y={width:0,height:0},nt=[{id:F.id+"-west",layoutOptions:{"port.side":"WEST"}},{id:F.id+"-east",layoutOptions:{"port.side":"EAST"}},{id:F.id+"-south",layoutOptions:{"port.side":"SOUTH"}},{id:F.id+"-north",layoutOptions:{"port.side":"NORTH"}}];let ot=0,ft="",wt={};switch(F.type){case"round":ot=5,ft="rect";break;case"square":ft="rect";break;case"diamond":ft="question",wt={portConstraints:"FIXED_SIDE"};break;case"hexagon":ft="hexagon";break;case"odd":ft="rect_left_inv_arrow";break;case"lean_right":ft="lean_right";break;case"lean_left":ft="lean_left";break;case"trapezoid":ft="trapezoid";break;case"inv_trapezoid":ft="inv_trapezoid";break;case"odd_right":ft="rect_left_inv_arrow";break;case"circle":ft="circle";break;case"ellipse":ft="ellipse";break;case"stadium":ft="stadium";break;case"subroutine":ft="subroutine";break;case"cylinder":ft="cylinder";break;case"group":ft="rect";break;case"doublecircle":ft="doublecircle";break;default:ft="rect"}const mt={labelStyle:B.labelStyle,shape:ft,labelText:z,labelType:F.labelType,rx:ot,ry:ot,class:R,style:B.style,id:F.id,link:F.link,linkTarget:F.linkTarget,tooltip:w.db.getTooltip(F.id)||"",domId:w.db.lookUpDomId(F.id),haveCallback:F.haveCallback,width:F.type==="group"?500:void 0,dir:F.dir,type:F.type,props:F.props,padding:o1().flowchart.padding};let ct,rt;if(mt.type!=="group")rt=await nX(S,mt,F.dir),ct=rt.node().getBBox();else{g.createElementNS("http://www.w3.org/2000/svg","text");const{shapeSvg:gt,bbox:Q}=await $1(S,mt,void 0,!0);Y.width=Q.width,Y.wrappingWidth=o1().flowchart.wrappingWidth,Y.height=Q.height,Y.labelNode=gt.node(),mt.labelData=Y}const it={id:F.id,ports:F.type==="diamond"?nt:[],layoutOptions:wt,labelText:z,labelData:Y,domId:w.db.lookUpDomId(F.id),width:ct==null?void 0:ct.width,height:ct==null?void 0:ct.height,type:F.type,el:rt,parent:v.parentById[F.id]};Ux[mt.id]=it})),b},SHt=(i,a,f)=>{const g={TB:{in:{north:"north"},out:{south:"west",west:"east",east:"south"}},LR:{in:{west:"west"},out:{east:"south",south:"north",north:"east"}},RL:{in:{east:"east"},out:{west:"north",north:"south",south:"west"}},BT:{in:{south:"south"},out:{north:"east",east:"west",west:"north"}}};return g.TD=g.TB,g[f][a][i]},_Ht=(i,a,f)=>{if(Kt.info("getNextPort",{node:i,edgeDirection:a,graphDirection:f}),!nm[i])switch(f){case"TB":case"TD":nm[i]={inPosition:"north",outPosition:"south"};break;case"BT":nm[i]={inPosition:"south",outPosition:"north"};break;case"RL":nm[i]={inPosition:"east",outPosition:"west"};break;case"LR":nm[i]={inPosition:"west",outPosition:"east"};break}const g=a==="in"?nm[i].inPosition:nm[i].outPosition;return a==="in"?nm[i].inPosition=SHt(nm[i].inPosition,a,f):nm[i].outPosition=SHt(nm[i].outPosition,a,f),g},vtn=(i,a)=>{let f=i.start,g=i.end;const w=f,v=g,b=Ux[f],E=Ux[g];return!b||!E?{source:f,target:g}:(b.type==="diamond"&&(f=`${f}-${_Ht(f,"out",a)}`),E.type==="diamond"&&(g=`${g}-${_Ht(g,"in",a)}`),{source:f,target:g,sourceId:w,targetId:v})},ytn=function(i,a,f,g){Kt.info("abc78 edges = ",i);const w=g.insert("g").attr("class","edgeLabels");let v={},b=a.db.getDirection(),E,S;if(i.defaultStyle!==void 0){const _=C2(i.defaultStyle);E=_.style,S=_.labelStyle}return i.forEach(function(_){const M="L-"+_.start+"-"+_.end;v[M]===void 0?(v[M]=0,Kt.info("abc78 new entry",M,v[M])):(v[M]++,Kt.info("abc78 new entry",M,v[M]));let F=M+"-"+v[M];Kt.info("abc78 new link id to be used is",M,F,v[M]);const R="LS-"+_.start,B="LE-"+_.end,z={style:"",labelStyle:""};switch(z.minlen=_.length||1,_.type==="arrow_open"?z.arrowhead="none":z.arrowhead="normal",z.arrowTypeStart="arrow_open",z.arrowTypeEnd="arrow_open",_.type){case"double_arrow_cross":z.arrowTypeStart="arrow_cross";case"arrow_cross":z.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":z.arrowTypeStart="arrow_point";case"arrow_point":z.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":z.arrowTypeStart="arrow_circle";case"arrow_circle":z.arrowTypeEnd="arrow_circle";break}let Y="",nt="";switch(_.stroke){case"normal":Y="fill:none;",E!==void 0&&(Y=E),S!==void 0&&(nt=S),z.thickness="normal",z.pattern="solid";break;case"dotted":z.thickness="normal",z.pattern="dotted",z.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":z.thickness="thick",z.pattern="solid",z.style="stroke-width: 3.5px;fill:none;";break}if(_.style!==void 0){const rt=C2(_.style);Y=rt.style,nt=rt.labelStyle}z.style=z.style+=Y,z.labelStyle=z.labelStyle+=nt,_.interpolate!==void 0?z.curve=Xw(_.interpolate,Kg):i.defaultInterpolate!==void 0?z.curve=Xw(i.defaultInterpolate,Kg):z.curve=Xw(wtn.curve,Kg),_.text===void 0?_.style!==void 0&&(z.arrowheadStyle="fill: #333"):(z.arrowheadStyle="fill: #333",z.labelpos="c"),z.labelType=_.labelType,z.label=_.text.replace(ei.lineBreakRegex,` +`),_.style===void 0&&(z.style=z.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),z.labelStyle=z.labelStyle.replace("color:","fill:"),z.id=F,z.classes="flowchart-link "+R+" "+B;const ot=tbt(w,z),{source:ft,target:wt,sourceId:mt,targetId:ct}=vtn(_,b);Kt.debug("abc78 source and target",ft,wt),f.edges.push({id:"e"+_.start+_.end,sources:[ft],targets:[wt],sourceId:mt,targetId:ct,labelEl:ot,labels:[{width:z.width,height:z.height,orgWidth:z.width,orgHeight:z.height,text:z.label,layoutOptions:{"edgeLabels.inline":"true","edgeLabels.placement":"CENTER"}}],edgeData:z})}),f},xtn=function(i,a,f,g,w){let v="";g&&(v=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,v=v.replace(/\(/g,"\\("),v=v.replace(/\)/g,"\\)")),uzt(i,a,v,w,f)},ktn=function(i,a){return Kt.info("Extracting classes"),a.db.getClasses()},Etn=function(i){const a={parentById:{},childrenById:{}},f=i.getSubGraphs();return Kt.info("Subgraphs - ",f),f.forEach(function(g){g.nodes.forEach(function(w){a.parentById[w]=g.id,a.childrenById[g.id]===void 0&&(a.childrenById[g.id]=[]),a.childrenById[g.id].push(w)})}),f.forEach(function(g){g.id,a.parentById[g.id]!==void 0&&a.parentById[g.id]}),a},Ttn=function(i,a,f){const g=gtn(i,a,f);if(g===void 0||g==="root")return{x:0,y:0};const w=Ux[g].offset;return{x:w.posX,y:w.posY}},Ctn=function(i,a,f,g,w,v){const b=Ttn(a.sourceId,a.targetId,w),E=a.sections[0].startPoint,S=a.sections[0].endPoint,M=(a.sections[0].bendPoints?a.sections[0].bendPoints:[]).map(wt=>[wt.x+b.x,wt.y+b.y]),F=[[E.x+b.x,E.y+b.y],...M,[S.x+b.x,S.y+b.y]],{x:R,y:B}=czt(a.edgeData),z=Ax().x(R).y(B).curve(Kg),Y=i.insert("path").attr("d",z(F)).attr("class","path "+f.classes).attr("fill","none"),nt=i.insert("g").attr("class","edgeLabel"),ot=Tr(nt.node().appendChild(a.labelEl)),ft=ot.node().firstChild.getBoundingClientRect();ot.attr("width",ft.width),ot.attr("height",ft.height),nt.attr("transform",`translate(${a.labels[0].x+b.x}, ${a.labels[0].y+b.y})`),xtn(Y,f,g.type,g.arrowMarkerAbsolute,v)},AHt=(i,a)=>{i.forEach(f=>{f.children||(f.children=[]);const g=a.childrenById[f.id];g&&g.forEach(w=>{f.children.push(Ux[w])}),AHt(f.children,a)})},Stn=async function(i,a,f,g){var it;g.db.clear(),Ux={},nm={},g.db.setGen("gen-2"),g.parser.parse(i);const w=Tr("body").append("div").attr("style","height:400px").attr("id","cy");let v={id:"root",layoutOptions:{"elk.hierarchyHandling":"INCLUDE_CHILDREN","org.eclipse.elk.padding":"[top=100, left=100, bottom=110, right=110]","elk.layered.spacing.edgeNodeBetweenLayers":"30","elk.direction":"DOWN"},children:[],edges:[]};switch(Kt.info("Drawing flowchart using v3 renderer",CHt),g.db.getDirection()){case"BT":v.layoutOptions["elk.direction"]="UP";break;case"TB":v.layoutOptions["elk.direction"]="DOWN";break;case"LR":v.layoutOptions["elk.direction"]="RIGHT";break;case"RL":v.layoutOptions["elk.direction"]="LEFT";break}const{securityLevel:E,flowchart:S}=o1();let _;E==="sandbox"&&(_=Tr("#i"+a));const M=Tr(E==="sandbox"?_.nodes()[0].contentDocument.body:"body"),F=E==="sandbox"?_.nodes()[0].contentDocument:document,R=M.select(`[id="${a}"]`);jpt(R,["point","circle","cross"],g.type,a);const z=g.db.getVertices();let Y;const nt=g.db.getSubGraphs();Kt.info("Subgraphs - ",nt);for(let gt=nt.length-1;gt>=0;gt--)Y=nt[gt],g.db.addVertex(Y.id,{text:Y.title,type:Y.labelType},"group",void 0,Y.classes,Y.dir);const ot=R.insert("g").attr("class","subgraphs"),ft=Etn(g.db);v=await mtn(z,a,M,F,g,ft,v);const wt=R.insert("g").attr("class","edges edgePath"),mt=g.db.getEdges();v=ytn(mt,g,v,R),Object.keys(Ux).forEach(gt=>{const Q=Ux[gt];Q.parent||v.children.push(Q),ft.childrenById[gt]!==void 0&&(Q.labels=[{text:Q.labelText,layoutOptions:{"nodeLabels.placement":"[H_CENTER, V_TOP, INSIDE]"},width:Q.labelData.width,height:Q.labelData.height}],delete Q.x,delete Q.y,delete Q.width,delete Q.height)}),AHt(v.children,ft),Kt.info("after layout",JSON.stringify(v,null,2));const rt=await CHt.layout(v);LHt(0,0,rt.children,R,ot,g,0),Kt.info("after layout",rt),(it=rt.edges)==null||it.map(gt=>{Ctn(wt,gt,gt.edgeData,g,ft,a)}),w8({},R,S.diagramPadding,S.useMaxWidth),w.remove()},LHt=(i,a,f,g,w,v,b)=>{f.forEach(function(E){if(E)if(Ux[E.id].offset={posX:E.x+i,posY:E.y+a,x:i,y:a,depth:b,width:E.width,height:E.height},E.type==="group"){const S=w.insert("g").attr("class","subgraph");S.insert("rect").attr("class","subgraph subgraph-lvl-"+b%5+" node").attr("x",E.x+i).attr("y",E.y+a).attr("width",E.width).attr("height",E.height);const _=S.insert("g").attr("class","label"),M=o1().flowchart.htmlLabels?E.labelData.width/2:0;_.attr("transform",`translate(${E.labels[0].x+i+E.x+M}, ${E.labels[0].y+a+E.y+3})`),_.node().appendChild(E.labelData.labelNode),Kt.info("Id (UGH)= ",E.type,E.labels)}else Kt.info("Id (UGH)= ",E.id),E.el.attr("transform",`translate(${E.x+i+E.width/2}, ${E.y+a+E.height/2})`)}),f.forEach(function(E){E&&E.type==="group"&&LHt(i+E.x,a+E.y,E.children,g,w,v,b+1)})},_tn={getClasses:ktn,draw:Stn},Atn=i=>{let a="";for(let f=0;f<5;f++)a+=` + .subgraph-lvl-${f} { + fill: ${i[`surface${f}`]}; + stroke: ${i[`surfacePeer${f}`]}; + } + `;return a},Ltn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{db:wje,renderer:_tn,parser:spt,styles:i=>`.label { + font-family: ${i.fontFamily}; + color: ${i.nodeTextColor||i.textColor}; + } + .cluster-label text { + fill: ${i.titleColor}; + } + .cluster-label span { + color: ${i.titleColor}; + } + + .label text,span { + fill: ${i.nodeTextColor||i.textColor}; + color: ${i.nodeTextColor||i.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${i.mainBkg}; + stroke: ${i.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${i.arrowheadColor}; + } + + .edgePath .path { + stroke: ${i.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${i.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${i.edgeLabelBackground}; + rect { + opacity: 0.85; + background-color: ${i.edgeLabelBackground}; + fill: ${i.edgeLabelBackground}; + } + text-align: center; + } + + .cluster rect { + fill: ${i.clusterBkg}; + stroke: ${i.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${i.titleColor}; + } + + .cluster span { + color: ${i.titleColor}; + } + /* .cluster div { + color: ${i.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${i.fontFamily}; + font-size: 12px; + background: ${i.tertiaryColor}; + border: 1px solid ${i.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${i.textColor}; + } + .subgraph { + stroke-width:2; + rx:3; + } + // .subgraph-lvl-1 { + // fill:#ccc; + // // stroke:black; + // } + + .flowchart-label text { + text-anchor: middle; + } + + ${Atn(i)} +`}},Symbol.toStringTag,{value:"Module"}));var l2t=function(){var i=function(R,B,z,Y){for(z=z||{},Y=R.length;Y--;z[R[Y]]=B);return z},a=[6,8,10,11,12,14,16,17,20,21],f=[1,9],g=[1,10],w=[1,11],v=[1,12],b=[1,13],E=[1,16],S=[1,17],_={trace:function(){},yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:function(B,z,Y,nt,ot,ft,wt){var mt=ft.length-1;switch(ot){case 1:return ft[mt-1];case 2:this.$=[];break;case 3:ft[mt-1].push(ft[mt]),this.$=ft[mt-1];break;case 4:case 5:this.$=ft[mt];break;case 6:case 7:this.$=[];break;case 8:nt.getCommonDb().setDiagramTitle(ft[mt].substr(6)),this.$=ft[mt].substr(6);break;case 9:this.$=ft[mt].trim(),nt.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=ft[mt].trim(),nt.getCommonDb().setAccDescription(this.$);break;case 12:nt.addSection(ft[mt].substr(8)),this.$=ft[mt].substr(8);break;case 15:nt.addTask(ft[mt],0,""),this.$=ft[mt];break;case 16:nt.addEvent(ft[mt].substr(2)),this.$=ft[mt];break}},table:[{3:1,4:[1,2]},{1:[3]},i(a,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:f,12:g,14:w,16:v,17:b,18:14,19:15,20:E,21:S},i(a,[2,7],{1:[2,1]}),i(a,[2,3]),{9:18,11:f,12:g,14:w,16:v,17:b,18:14,19:15,20:E,21:S},i(a,[2,5]),i(a,[2,6]),i(a,[2,8]),{13:[1,19]},{15:[1,20]},i(a,[2,11]),i(a,[2,12]),i(a,[2,13]),i(a,[2,14]),i(a,[2,15]),i(a,[2,16]),i(a,[2,4]),i(a,[2,9]),i(a,[2,10])],defaultActions:{},parseError:function(B,z){if(z.recoverable)this.trace(B);else{var Y=new Error(B);throw Y.hash=z,Y}},parse:function(B){var z=this,Y=[0],nt=[],ot=[null],ft=[],wt=this.table,mt="",ct=0,rt=0,it=2,gt=1,Q=ft.slice.call(arguments,1),dt=Object.create(this.lexer),K={yy:{}};for(var yt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,yt)&&(K.yy[yt]=this.yy[yt]);dt.setInput(B,K.yy),K.yy.lexer=dt,K.yy.parser=this,typeof dt.yylloc>"u"&&(dt.yylloc={});var V=dt.yylloc;ft.push(V);var Ot=dt.options&&dt.options.ranges;typeof K.yy.parseError=="function"?this.parseError=K.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function It(){var ye;return ye=nt.pop()||dt.lex()||gt,typeof ye!="number"&&(ye instanceof Array&&(nt=ye,ye=nt.pop()),ye=z.symbols_[ye]||ye),ye}for(var jt,xt,Ft,Ct,kt={},Gt,Fe,Mt,pn;;){if(xt=Y[Y.length-1],this.defaultActions[xt]?Ft=this.defaultActions[xt]:((jt===null||typeof jt>"u")&&(jt=It()),Ft=wt[xt]&&wt[xt][jt]),typeof Ft>"u"||!Ft.length||!Ft[0]){var Ae="";pn=[];for(Gt in wt[xt])this.terminals_[Gt]&&Gt>it&&pn.push("'"+this.terminals_[Gt]+"'");dt.showPosition?Ae="Parse error on line "+(ct+1)+`: +`+dt.showPosition()+` +Expecting `+pn.join(", ")+", got '"+(this.terminals_[jt]||jt)+"'":Ae="Parse error on line "+(ct+1)+": Unexpected "+(jt==gt?"end of input":"'"+(this.terminals_[jt]||jt)+"'"),this.parseError(Ae,{text:dt.match,token:this.terminals_[jt]||jt,line:dt.yylineno,loc:V,expected:pn})}if(Ft[0]instanceof Array&&Ft.length>1)throw new Error("Parse Error: multiple actions possible at state: "+xt+", token: "+jt);switch(Ft[0]){case 1:Y.push(jt),ot.push(dt.yytext),ft.push(dt.yylloc),Y.push(Ft[1]),jt=null,rt=dt.yyleng,mt=dt.yytext,ct=dt.yylineno,V=dt.yylloc;break;case 2:if(Fe=this.productions_[Ft[1]][1],kt.$=ot[ot.length-Fe],kt._$={first_line:ft[ft.length-(Fe||1)].first_line,last_line:ft[ft.length-1].last_line,first_column:ft[ft.length-(Fe||1)].first_column,last_column:ft[ft.length-1].last_column},Ot&&(kt._$.range=[ft[ft.length-(Fe||1)].range[0],ft[ft.length-1].range[1]]),Ct=this.performAction.apply(kt,[mt,rt,ct,K.yy,Ft[1],ot,ft].concat(Q)),typeof Ct<"u")return Ct;Fe&&(Y=Y.slice(0,-1*Fe*2),ot=ot.slice(0,-1*Fe),ft=ft.slice(0,-1*Fe)),Y.push(this.productions_[Ft[1]][0]),ot.push(kt.$),ft.push(kt._$),Mt=wt[Y[Y.length-2]][Y[Y.length-1]],Y.push(Mt);break;case 3:return!0}}return!0}},M=function(){var R={EOF:1,parseError:function(z,Y){if(this.yy.parser)this.yy.parser.parseError(z,Y);else throw new Error(z)},setInput:function(B,z){return this.yy=z||this.yy||{},this._input=B,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var B=this._input[0];this.yytext+=B,this.yyleng++,this.offset++,this.match+=B,this.matched+=B;var z=B.match(/(?:\r\n?|\n).*/g);return z?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),B},unput:function(B){var z=B.length,Y=B.split(/(?:\r\n?|\n)/g);this._input=B+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-z),this.offset-=z;var nt=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Y.length-1&&(this.yylineno-=Y.length-1);var ot=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Y?(Y.length===nt.length?this.yylloc.first_column:0)+nt[nt.length-Y.length].length-Y[0].length:this.yylloc.first_column-z},this.options.ranges&&(this.yylloc.range=[ot[0],ot[0]+this.yyleng-z]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(B){this.unput(this.match.slice(B))},pastInput:function(){var B=this.matched.substr(0,this.matched.length-this.match.length);return(B.length>20?"...":"")+B.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var B=this.match;return B.length<20&&(B+=this._input.substr(0,20-B.length)),(B.substr(0,20)+(B.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var B=this.pastInput(),z=new Array(B.length+1).join("-");return B+this.upcomingInput()+` +`+z+"^"},test_match:function(B,z){var Y,nt,ot;if(this.options.backtrack_lexer&&(ot={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ot.yylloc.range=this.yylloc.range.slice(0))),nt=B[0].match(/(?:\r\n?|\n).*/g),nt&&(this.yylineno+=nt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:nt?nt[nt.length-1].length-nt[nt.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+B[0].length},this.yytext+=B[0],this.match+=B[0],this.matches=B,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(B[0].length),this.matched+=B[0],Y=this.performAction.call(this,this.yy,this,z,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Y)return Y;if(this._backtrack){for(var ft in ot)this[ft]=ot[ft];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var B,z,Y,nt;this._more||(this.yytext="",this.match="");for(var ot=this._currentRules(),ft=0;ftz[0].length)){if(z=Y,nt=ft,this.options.backtrack_lexer){if(B=this.test_match(Y,ot[ft]),B!==!1)return B;if(this._backtrack){z=!1;continue}else return!1}else if(!this.options.flex)break}return z?(B=this.test_match(z,ot[nt]),B!==!1?B:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var z=this.next();return z||this.lex()},begin:function(z){this.conditionStack.push(z)},popState:function(){var z=this.conditionStack.length-1;return z>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(z){return z=this.conditionStack.length-1-Math.abs(z||0),z>=0?this.conditionStack[z]:"INITIAL"},pushState:function(z){this.begin(z)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(z,Y,nt,ot){switch(nt){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?::\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}};return R}();_.lexer=M;function F(){this.yy={}}return F.prototype=_,_.Parser=F,new F}();l2t.parser=l2t;const Dtn=l2t;let ND="",DHt=0;const h2t=[],IX=[],PD=[],MHt=()=>uBt,IHt=function(){h2t.length=0,IX.length=0,ND="",PD.length=0,ag()},OHt=function(i){ND=i,h2t.push(i)},NHt=function(){return h2t},PHt=function(){let i=jHt();const a=100;let f=0;for(;!i&&ff.id===DHt-1).events.push(i)},RHt=function(i){const a={section:ND,type:ND,description:i,task:i,classes:[]};IX.push(a)},jHt=function(){const i=function(f){return PD[f].processed};let a=!0;for(const[f,g]of PD.entries())i(f),a=a&&g.processed;return a},Mtn=Object.freeze(Object.defineProperty({__proto__:null,addEvent:BHt,addSection:OHt,addTask:FHt,addTaskOrg:RHt,clear:IHt,default:{clear:IHt,getCommonDb:MHt,addSection:OHt,getSections:NHt,getTasks:PHt,addTask:FHt,addTaskOrg:RHt,addEvent:BHt},getCommonDb:MHt,getSections:NHt,getTasks:PHt},Symbol.toStringTag,{value:"Module"})),Itn=12,OX=function(i,a){const f=i.append("rect");return f.attr("x",a.x),f.attr("y",a.y),f.attr("fill",a.fill),f.attr("stroke",a.stroke),f.attr("width",a.width),f.attr("height",a.height),f.attr("rx",a.rx),f.attr("ry",a.ry),a.class!==void 0&&f.attr("class",a.class),f},Otn=function(i,a){const g=i.append("circle").attr("cx",a.cx).attr("cy",a.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),w=i.append("g");w.append("circle").attr("cx",a.cx-15/3).attr("cy",a.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),w.append("circle").attr("cx",a.cx+15/3).attr("cy",a.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function v(S){const _=YL().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);S.append("path").attr("class","mouth").attr("d",_).attr("transform","translate("+a.cx+","+(a.cy+2)+")")}function b(S){const _=YL().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);S.append("path").attr("class","mouth").attr("d",_).attr("transform","translate("+a.cx+","+(a.cy+7)+")")}function E(S){S.append("line").attr("class","mouth").attr("stroke",2).attr("x1",a.cx-5).attr("y1",a.cy+7).attr("x2",a.cx+5).attr("y2",a.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return a.score>3?v(w):a.score<3?b(w):E(w),g},Ntn=function(i,a){const f=i.append("circle");return f.attr("cx",a.cx),f.attr("cy",a.cy),f.attr("class","actor-"+a.pos),f.attr("fill",a.fill),f.attr("stroke",a.stroke),f.attr("r",a.r),f.class!==void 0&&f.attr("class",f.class),a.title!==void 0&&f.append("title").text(a.title),f},$Ht=function(i,a){const f=a.text.replace(//gi," "),g=i.append("text");g.attr("x",a.x),g.attr("y",a.y),g.attr("class","legend"),g.style("text-anchor",a.anchor),a.class!==void 0&&g.attr("class",a.class);const w=g.append("tspan");return w.attr("x",a.x+a.textMargin*2),w.text(f),g},Ptn=function(i,a){function f(w,v,b,E,S){return w+","+v+" "+(w+b)+","+v+" "+(w+b)+","+(v+E-S)+" "+(w+b-S*1.2)+","+(v+E)+" "+w+","+(v+E)}const g=i.append("polygon");g.attr("points",f(a.x,a.y,50,20,7)),g.attr("class","labelBox"),a.y=a.y+a.labelMargin,a.x=a.x+.5*a.labelMargin,$Ht(i,a)},Ftn=function(i,a,f){const g=i.append("g"),w=f2t();w.x=a.x,w.y=a.y,w.fill=a.fill,w.width=f.width,w.height=f.height,w.class="journey-section section-type-"+a.num,w.rx=3,w.ry=3,OX(g,w),qHt(f)(a.text,g,w.x,w.y,w.width,w.height,{class:"journey-section section-type-"+a.num},f,a.colour)};let zHt=-1;const Btn=function(i,a,f){const g=a.x+f.width/2,w=i.append("g");zHt++;const v=300+5*30;w.append("line").attr("id","task"+zHt).attr("x1",g).attr("y1",a.y).attr("x2",g).attr("y2",v).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Otn(w,{cx:g,cy:300+(5-a.score)*30,score:a.score});const b=f2t();b.x=a.x,b.y=a.y,b.fill=a.fill,b.width=f.width,b.height=f.height,b.class="task task-type-"+a.num,b.rx=3,b.ry=3,OX(w,b),a.x+14,qHt(f)(a.task,w,b.x,b.y,b.width,b.height,{class:"task"},f,a.colour)},Rtn=function(i,a){OX(i,{x:a.startx,y:a.starty,width:a.stopx-a.startx,height:a.stopy-a.starty,fill:a.fill,class:"rect"}).lower()},jtn=function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},f2t=function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},qHt=function(){function i(w,v,b,E,S,_,M,F){const R=v.append("text").attr("x",b+S/2).attr("y",E+_/2+5).style("font-color",F).style("text-anchor","middle").text(w);g(R,M)}function a(w,v,b,E,S,_,M,F,R){const{taskFontSize:B,taskFontFamily:z}=F,Y=w.split(//gi);for(let nt=0;nt)/).reverse(),w,v=[],b=1.1,E=f.attr("y"),S=parseFloat(f.attr("dy")),_=f.text(null).append("tspan").attr("x",0).attr("y",E).attr("dy",S+"em");for(let M=0;Ma||w==="
")&&(v.pop(),_.text(v.join(" ").trim()),w==="
"?v=[""]:v=[w],_=f.append("tspan").attr("x",0).attr("y",E).attr("dy",b+"em").text(w))})}const ztn=function(i,a,f,g){const w=f%Itn-1,v=i.append("g");a.section=w,v.attr("class",(a.class?a.class+" ":"")+"timeline-node "+("section-"+w));const b=v.append("g"),E=v.append("g"),_=E.append("text").text(a.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(HHt,a.width).node().getBBox(),M=g.fontSize&&g.fontSize.replace?g.fontSize.replace("px",""):g.fontSize;return a.height=_.height+M*1.1*.5+a.padding,a.height=Math.max(a.height,a.maxHeight),a.width=a.width+2*a.padding,E.attr("transform","translate("+a.width/2+", "+a.padding/2+")"),Htn(b,a,w),a},qtn=function(i,a,f){const g=i.append("g"),v=g.append("text").text(a.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(HHt,a.width).node().getBBox(),b=f.fontSize&&f.fontSize.replace?f.fontSize.replace("px",""):f.fontSize;return g.remove(),v.height+b*1.1*.5+a.padding},Htn=function(i,a,f){i.append("path").attr("id","node-"+a.id).attr("class","node-bkg node-"+a.type).attr("d",`M0 ${a.height-5} v${-a.height+2*5} q0,-5 5,-5 h${a.width-2*5} q5,0 5,5 v${a.height-5} H0 Z`),i.append("line").attr("class","node-line-"+f).attr("x1",0).attr("y1",a.height).attr("x2",a.width).attr("y2",a.height)},H9={drawRect:OX,drawCircle:Ntn,drawSection:Ftn,drawText:$Ht,drawLabel:Ptn,drawTask:Btn,drawBackgroundRect:Rtn,getTextObj:jtn,getNoteRect:f2t,initGraphics:$tn,drawNode:ztn,getVirtualNodeHeight:qtn},Vtn=function(i,a,f,g){var Q,dt;const w=Re(),v=w.leftMargin??50;Kt.debug("timeline",g.db);const b=w.securityLevel;let E;b==="sandbox"&&(E=Tr("#i"+a));const _=Tr(b==="sandbox"?E.nodes()[0].contentDocument.body:"body").select("#"+a);_.append("g");const M=g.db.getTasks(),F=g.db.getCommonDb().getDiagramTitle();Kt.debug("task",M),H9.initGraphics(_);const R=g.db.getSections();Kt.debug("sections",R);let B=0,z=0,Y=0,nt=0,ot=50+v,ft=50;nt=50;let wt=0,mt=!0;R.forEach(function(K){const yt={number:wt,descr:K,section:wt,width:150,padding:20,maxHeight:B},V=H9.getVirtualNodeHeight(_,yt,w);Kt.debug("sectionHeight before draw",V),B=Math.max(B,V+20)});let ct=0,rt=0;Kt.debug("tasks.length",M.length);for(const[K,yt]of M.entries()){const V={number:K,descr:yt,section:yt.section,width:150,padding:20,maxHeight:z},Ot=H9.getVirtualNodeHeight(_,V,w);Kt.debug("taskHeight before draw",Ot),z=Math.max(z,Ot+20),ct=Math.max(ct,yt.events.length);let It=0;for(let jt=0;jt0?R.forEach(K=>{const yt=M.filter(jt=>jt.section===K),V={number:wt,descr:K,section:wt,width:200*Math.max(yt.length,1)-50,padding:20,maxHeight:B};Kt.debug("sectionNode",V);const Ot=_.append("g"),It=H9.drawNode(Ot,V,wt,w);Kt.debug("sectionNode output",It),Ot.attr("transform",`translate(${ot}, ${nt})`),ft+=B+50,yt.length>0&&VHt(_,yt,wt,ot,ft,z,w,ct,rt,B,!1),ot+=200*Math.max(yt.length,1),ft=nt,wt++}):(mt=!1,VHt(_,M,wt,ot,ft,z,w,ct,rt,B,!0));const it=_.node().getBBox();Kt.debug("bounds",it),F&&_.append("text").text(F).attr("x",it.width/2-v).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),Y=mt?B+z+150:z+100,_.append("g").attr("class","lineWrapper").append("line").attr("x1",v).attr("y1",Y).attr("x2",it.width+3*v).attr("y2",Y).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),w8(void 0,_,((Q=w.timeline)==null?void 0:Q.padding)??50,((dt=w.timeline)==null?void 0:dt.useMaxWidth)??!1)},VHt=function(i,a,f,g,w,v,b,E,S,_,M){var F;for(const R of a){const B={descr:R.task,section:f,number:f,width:150,padding:20,maxHeight:v};Kt.debug("taskNode",B);const z=i.append("g").attr("class","taskWrapper"),nt=H9.drawNode(z,B,f,b).height;if(Kt.debug("taskHeight after draw",nt),z.attr("transform",`translate(${g}, ${w})`),v=Math.max(v,nt),R.events){const ot=i.append("g").attr("class","lineWrapper");let ft=v;w+=100,ft=ft+Utn(i,R.events,f,g,w,b),w-=100,ot.append("line").attr("x1",g+190/2).attr("y1",w+v).attr("x2",g+190/2).attr("y2",w+v+(M?v:_)+S+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}g=g+200,M&&!((F=b.timeline)!=null&&F.disableMulticolor)&&f++}w=w-10},Utn=function(i,a,f,g,w,v){let b=0;const E=w;w=w+100;for(const S of a){const _={descr:S,section:f,number:f,width:150,padding:20,maxHeight:50};Kt.debug("eventNode",_);const M=i.append("g").attr("class","eventWrapper"),R=H9.drawNode(M,_,f,v).height;b=b+R,M.attr("transform",`translate(${g}, ${w})`),w=w+10+R}return w=E,b},Gtn={setConf:()=>{},draw:Vtn},Ktn=i=>{let a="";for(let f=0;f` + .edge { + stroke-width: 3; + } + ${Ktn(i)} + .section-root rect, .section-root path, .section-root circle { + fill: ${i.git0}; + } + .section-root text { + fill: ${i.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`}},Symbol.toStringTag,{value:"Module"}));var d2t=function(){var i=function(mt,ct,rt,it){for(rt=rt||{},it=mt.length;it--;rt[mt[it]]=ct);return rt},a=[1,4],f=[1,13],g=[1,12],w=[1,15],v=[1,16],b=[1,20],E=[1,19],S=[6,7,8],_=[1,26],M=[1,24],F=[1,25],R=[6,7,11],B=[1,6,13,15,16,19,22],z=[1,33],Y=[1,34],nt=[1,6,7,11,13,15,16,19,22],ot={trace:function(){},yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:function(ct,rt,it,gt,Q,dt,K){var yt=dt.length-1;switch(Q){case 6:case 7:return gt;case 8:gt.getLogger().trace("Stop NL ");break;case 9:gt.getLogger().trace("Stop EOF ");break;case 11:gt.getLogger().trace("Stop NL2 ");break;case 12:gt.getLogger().trace("Stop EOF2 ");break;case 15:gt.getLogger().info("Node: ",dt[yt].id),gt.addNode(dt[yt-1].length,dt[yt].id,dt[yt].descr,dt[yt].type);break;case 16:gt.getLogger().trace("Icon: ",dt[yt]),gt.decorateNode({icon:dt[yt]});break;case 17:case 21:gt.decorateNode({class:dt[yt]});break;case 18:gt.getLogger().trace("SPACELIST");break;case 19:gt.getLogger().trace("Node: ",dt[yt].id),gt.addNode(0,dt[yt].id,dt[yt].descr,dt[yt].type);break;case 20:gt.decorateNode({icon:dt[yt]});break;case 25:gt.getLogger().trace("node found ..",dt[yt-2]),this.$={id:dt[yt-1],descr:dt[yt-1],type:gt.getType(dt[yt-2],dt[yt])};break;case 26:this.$={id:dt[yt],descr:dt[yt],type:gt.nodeType.DEFAULT};break;case 27:gt.getLogger().trace("node found ..",dt[yt-3]),this.$={id:dt[yt-3],descr:dt[yt-1],type:gt.getType(dt[yt-2],dt[yt])};break}},table:[{3:1,4:2,5:3,6:[1,5],8:a},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:a},{6:f,7:[1,10],9:9,12:11,13:g,14:14,15:w,16:v,17:17,18:18,19:b,22:E},i(S,[2,3]),{1:[2,2]},i(S,[2,4]),i(S,[2,5]),{1:[2,6],6:f,12:21,13:g,14:14,15:w,16:v,17:17,18:18,19:b,22:E},{6:f,9:22,12:11,13:g,14:14,15:w,16:v,17:17,18:18,19:b,22:E},{6:_,7:M,10:23,11:F},i(R,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:b,22:E}),i(R,[2,18]),i(R,[2,19]),i(R,[2,20]),i(R,[2,21]),i(R,[2,23]),i(R,[2,24]),i(R,[2,26],{19:[1,30]}),{20:[1,31]},{6:_,7:M,10:32,11:F},{1:[2,7],6:f,12:21,13:g,14:14,15:w,16:v,17:17,18:18,19:b,22:E},i(B,[2,14],{7:z,11:Y}),i(nt,[2,8]),i(nt,[2,9]),i(nt,[2,10]),i(R,[2,15]),i(R,[2,16]),i(R,[2,17]),{20:[1,35]},{21:[1,36]},i(B,[2,13],{7:z,11:Y}),i(nt,[2,11]),i(nt,[2,12]),{21:[1,37]},i(R,[2,25]),i(R,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:function(ct,rt){if(rt.recoverable)this.trace(ct);else{var it=new Error(ct);throw it.hash=rt,it}},parse:function(ct){var rt=this,it=[0],gt=[],Q=[null],dt=[],K=this.table,yt="",V=0,Ot=0,It=2,jt=1,xt=dt.slice.call(arguments,1),Ft=Object.create(this.lexer),Ct={yy:{}};for(var kt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,kt)&&(Ct.yy[kt]=this.yy[kt]);Ft.setInput(ct,Ct.yy),Ct.yy.lexer=Ft,Ct.yy.parser=this,typeof Ft.yylloc>"u"&&(Ft.yylloc={});var Gt=Ft.yylloc;dt.push(Gt);var Fe=Ft.options&&Ft.options.ranges;typeof Ct.yy.parseError=="function"?this.parseError=Ct.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Mt(){var Mn;return Mn=gt.pop()||Ft.lex()||jt,typeof Mn!="number"&&(Mn instanceof Array&&(gt=Mn,Mn=gt.pop()),Mn=rt.symbols_[Mn]||Mn),Mn}for(var pn,Ae,ye,tn,sn={},be,Ne,Xt,_e;;){if(Ae=it[it.length-1],this.defaultActions[Ae]?ye=this.defaultActions[Ae]:((pn===null||typeof pn>"u")&&(pn=Mt()),ye=K[Ae]&&K[Ae][pn]),typeof ye>"u"||!ye.length||!ye[0]){var xe="";_e=[];for(be in K[Ae])this.terminals_[be]&&be>It&&_e.push("'"+this.terminals_[be]+"'");Ft.showPosition?xe="Parse error on line "+(V+1)+`: +`+Ft.showPosition()+` +Expecting `+_e.join(", ")+", got '"+(this.terminals_[pn]||pn)+"'":xe="Parse error on line "+(V+1)+": Unexpected "+(pn==jt?"end of input":"'"+(this.terminals_[pn]||pn)+"'"),this.parseError(xe,{text:Ft.match,token:this.terminals_[pn]||pn,line:Ft.yylineno,loc:Gt,expected:_e})}if(ye[0]instanceof Array&&ye.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Ae+", token: "+pn);switch(ye[0]){case 1:it.push(pn),Q.push(Ft.yytext),dt.push(Ft.yylloc),it.push(ye[1]),pn=null,Ot=Ft.yyleng,yt=Ft.yytext,V=Ft.yylineno,Gt=Ft.yylloc;break;case 2:if(Ne=this.productions_[ye[1]][1],sn.$=Q[Q.length-Ne],sn._$={first_line:dt[dt.length-(Ne||1)].first_line,last_line:dt[dt.length-1].last_line,first_column:dt[dt.length-(Ne||1)].first_column,last_column:dt[dt.length-1].last_column},Fe&&(sn._$.range=[dt[dt.length-(Ne||1)].range[0],dt[dt.length-1].range[1]]),tn=this.performAction.apply(sn,[yt,Ot,V,Ct.yy,ye[1],Q,dt].concat(xt)),typeof tn<"u")return tn;Ne&&(it=it.slice(0,-1*Ne*2),Q=Q.slice(0,-1*Ne),dt=dt.slice(0,-1*Ne)),it.push(this.productions_[ye[1]][0]),Q.push(sn.$),dt.push(sn._$),Xt=K[it[it.length-2]][it[it.length-1]],it.push(Xt);break;case 3:return!0}}return!0}},ft=function(){var mt={EOF:1,parseError:function(rt,it){if(this.yy.parser)this.yy.parser.parseError(rt,it);else throw new Error(rt)},setInput:function(ct,rt){return this.yy=rt||this.yy||{},this._input=ct,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ct=this._input[0];this.yytext+=ct,this.yyleng++,this.offset++,this.match+=ct,this.matched+=ct;var rt=ct.match(/(?:\r\n?|\n).*/g);return rt?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ct},unput:function(ct){var rt=ct.length,it=ct.split(/(?:\r\n?|\n)/g);this._input=ct+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-rt),this.offset-=rt;var gt=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),it.length-1&&(this.yylineno-=it.length-1);var Q=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:it?(it.length===gt.length?this.yylloc.first_column:0)+gt[gt.length-it.length].length-it[0].length:this.yylloc.first_column-rt},this.options.ranges&&(this.yylloc.range=[Q[0],Q[0]+this.yyleng-rt]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(ct){this.unput(this.match.slice(ct))},pastInput:function(){var ct=this.matched.substr(0,this.matched.length-this.match.length);return(ct.length>20?"...":"")+ct.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var ct=this.match;return ct.length<20&&(ct+=this._input.substr(0,20-ct.length)),(ct.substr(0,20)+(ct.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var ct=this.pastInput(),rt=new Array(ct.length+1).join("-");return ct+this.upcomingInput()+` +`+rt+"^"},test_match:function(ct,rt){var it,gt,Q;if(this.options.backtrack_lexer&&(Q={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Q.yylloc.range=this.yylloc.range.slice(0))),gt=ct[0].match(/(?:\r\n?|\n).*/g),gt&&(this.yylineno+=gt.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:gt?gt[gt.length-1].length-gt[gt.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+ct[0].length},this.yytext+=ct[0],this.match+=ct[0],this.matches=ct,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(ct[0].length),this.matched+=ct[0],it=this.performAction.call(this,this.yy,this,rt,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),it)return it;if(this._backtrack){for(var dt in Q)this[dt]=Q[dt];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var ct,rt,it,gt;this._more||(this.yytext="",this.match="");for(var Q=this._currentRules(),dt=0;dtrt[0].length)){if(rt=it,gt=dt,this.options.backtrack_lexer){if(ct=this.test_match(it,Q[dt]),ct!==!1)return ct;if(this._backtrack){rt=!1;continue}else return!1}else if(!this.options.flex)break}return rt?(ct=this.test_match(rt,Q[gt]),ct!==!1?ct:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var rt=this.next();return rt||this.lex()},begin:function(rt){this.conditionStack.push(rt)},popState:function(){var rt=this.conditionStack.length-1;return rt>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(rt){return rt=this.conditionStack.length-1-Math.abs(rt||0),rt>=0?this.conditionStack[rt]:"INITIAL"},pushState:function(rt){this.begin(rt)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(rt,it,gt,Q){switch(gt){case 0:return rt.getLogger().trace("Found comment",it.yytext),6;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:this.popState();break;case 5:rt.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return rt.getLogger().trace("SPACELINE"),6;case 7:return 7;case 8:return 15;case 9:rt.getLogger().trace("end icon"),this.popState();break;case 10:return rt.getLogger().trace("Exploding node"),this.begin("NODE"),19;case 11:return rt.getLogger().trace("Cloud"),this.begin("NODE"),19;case 12:return rt.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;case 13:return rt.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;case 14:return this.begin("NODE"),19;case 15:return this.begin("NODE"),19;case 16:return this.begin("NODE"),19;case 17:return this.begin("NODE"),19;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 23:this.popState();break;case 24:rt.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return rt.getLogger().trace("description:",it.yytext),"NODE_DESCR";case 26:this.popState();break;case 27:return this.popState(),rt.getLogger().trace("node end ))"),"NODE_DEND";case 28:return this.popState(),rt.getLogger().trace("node end )"),"NODE_DEND";case 29:return this.popState(),rt.getLogger().trace("node end ...",it.yytext),"NODE_DEND";case 30:return this.popState(),rt.getLogger().trace("node end (("),"NODE_DEND";case 31:return this.popState(),rt.getLogger().trace("node end (-"),"NODE_DEND";case 32:return this.popState(),rt.getLogger().trace("node end (-"),"NODE_DEND";case 33:return this.popState(),rt.getLogger().trace("node end (("),"NODE_DEND";case 34:return this.popState(),rt.getLogger().trace("node end (("),"NODE_DEND";case 35:return rt.getLogger().trace("Long description:",it.yytext),20;case 36:return rt.getLogger().trace("Long description:",it.yytext),20}},rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};return mt}();ot.lexer=ft;function wt(){this.yy={}}return wt.prototype=ot,ot.Parser=wt,new wt}();d2t.parser=d2t;const Ytn=d2t;let ry=[],UHt=0,g2t={};const Xtn=()=>{ry=[],UHt=0,g2t={}},Qtn=function(i){for(let a=ry.length-1;a>=0;a--)if(ry[a].levelry.length>0?ry[0]:null,Ztn=(i,a,f,g)=>{var S,_;Kt.info("addNode",i,a,f,g);const w=Re();let v=((S=w.mindmap)==null?void 0:S.padding)??Bl.mindmap.padding;switch(g){case V1.ROUNDED_RECT:case V1.RECT:case V1.HEXAGON:v*=2}const b={id:UHt++,nodeId:Ef(a,w),level:i,descr:Ef(f,w),type:g,children:[],width:((_=w.mindmap)==null?void 0:_.maxNodeWidth)??Bl.mindmap.maxNodeWidth,padding:v},E=Qtn(i);if(E)E.children.push(b),ry.push(b);else if(ry.length===0)ry.push(b);else throw new Error('There can be only one root. No parent could be found for ("'+b.descr+'")')},V1={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},ten={clear:Xtn,addNode:Ztn,getMindmap:Jtn,nodeType:V1,getType:(i,a)=>{switch(Kt.debug("In get type",i,a),i){case"[":return V1.RECT;case"(":return a===")"?V1.ROUNDED_RECT:V1.CLOUD;case"((":return V1.CIRCLE;case")":return V1.CLOUD;case"))":return V1.BANG;case"{{":return V1.HEXAGON;default:return V1.DEFAULT}},setElementForId:(i,a)=>{g2t[i]=a},decorateNode:i=>{if(!i)return;const a=Re(),f=ry[ry.length-1];i.icon&&(f.icon=Ef(i.icon,a)),i.class&&(f.class=Ef(i.class,a))},type2Str:i=>{switch(i){case V1.DEFAULT:return"no-border";case V1.RECT:return"rect";case V1.ROUNDED_RECT:return"rounded-rect";case V1.CIRCLE:return"circle";case V1.CLOUD:return"cloud";case V1.BANG:return"bang";case V1.HEXAGON:return"hexgon";default:return"no-border"}},getLogger:()=>Kt,getElementById:i=>g2t[i]};var GHt={exports:{}};(function(i,a){(function(f,g){i.exports=g()})(Z0,function(){function f(y){"@babel/helpers - typeof";return f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(p){return typeof p}:function(p){return p&&typeof Symbol=="function"&&p.constructor===Symbol&&p!==Symbol.prototype?"symbol":typeof p},f(y)}function g(y,p){if(!(y instanceof p))throw new TypeError("Cannot call a class as a function")}function w(y,p){for(var x=0;xy.length)&&(p=y.length);for(var x=0,C=new Array(p);x"u"?null:window,z=B?B.navigator:null;B&&B.document;var Y=f(""),nt=f({}),ot=f(function(){}),ft=typeof HTMLElement>"u"?"undefined":f(HTMLElement),wt=function(p){return p&&p.instanceString&&ct(p.instanceString)?p.instanceString():null},mt=function(p){return p!=null&&f(p)==Y},ct=function(p){return p!=null&&f(p)===ot},rt=function(p){return!yt(p)&&(Array.isArray?Array.isArray(p):p!=null&&p instanceof Array)},it=function(p){return p!=null&&f(p)===nt&&!rt(p)&&p.constructor===Object},gt=function(p){return p!=null&&f(p)===nt},Q=function(p){return p!=null&&f(p)===f(1)&&!isNaN(p)},dt=function(p){return Q(p)&&Math.floor(p)===p},K=function(p){if(ft!=="undefined")return p!=null&&p instanceof HTMLElement},yt=function(p){return V(p)||Ot(p)},V=function(p){return wt(p)==="collection"&&p._private.single},Ot=function(p){return wt(p)==="collection"&&!p._private.single},It=function(p){return wt(p)==="core"},jt=function(p){return wt(p)==="stylesheet"},xt=function(p){return wt(p)==="event"},Ft=function(p){return p==null?!0:!!(p===""||p.match(/^\s+$/))},Ct=function(p){return typeof HTMLElement>"u"?!1:p instanceof HTMLElement},kt=function(p){return it(p)&&Q(p.x1)&&Q(p.x2)&&Q(p.y1)&&Q(p.y2)},Gt=function(p){return gt(p)&&ct(p.then)},Fe=function(){return z&&z.userAgent.match(/msie|trident|edge/i)},Mt=function(p,x){x||(x=function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var O=[],N=0;Nx?1:0},Br=function(p,x){return-1*ce(p,x)},we=Object.assign!=null?Object.assign.bind(Object):function(y){for(var p=arguments,x=1;x1&&(St-=1),St<1/6?pt+(_t-pt)*6*St:St<1/2?_t:St<2/3?pt+(_t-pt)*(2/3-St)*6:pt}var Z=new RegExp("^"+Xt+"$").exec(p);if(Z){if(C=parseInt(Z[1]),C<0?C=(360- -1*C%360)%360:C>360&&(C=C%360),C/=360,L=parseFloat(Z[2]),L<0||L>100||(L=L/100,O=parseFloat(Z[3]),O<0||O>100)||(O=O/100,N=Z[4],N!==void 0&&(N=parseFloat(N),N<0||N>1)))return;if(L===0)j=H=q=Math.round(O*255);else{var st=O<.5?O*(1+L):O+L-O*L,bt=2*O-st;j=Math.round(255*W(bt,st,C+1/3)),H=Math.round(255*W(bt,st,C)),q=Math.round(255*W(bt,st,C-1/3))}x=[j,H,q,N]}return x},ga=function(p){var x,C=new RegExp("^"+be+"$").exec(p);if(C){x=[];for(var L=[],O=1;O<=3;O++){var N=C[O];if(N[N.length-1]==="%"&&(L[O]=!0),N=parseFloat(N),L[O]&&(N=N/100*255),N<0||N>255)return;x.push(Math.floor(N))}var j=L[1]||L[2]||L[3],H=L[1]&&L[2]&&L[3];if(j&&!H)return;var q=C[4];if(q!==void 0){if(q=parseFloat(q),q<0||q>1)return;x.push(q)}}return x},Ss=function(p){return br[p.toLowerCase()]},za=function(p){return(rt(p)?p:null)||Ss(p)||Fi(p)||ga(p)||mi(p)},br={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},An=function(p){for(var x=p.map,C=p.keys,L=C.length,O=0;O=p||Ut<0||Z&&de>=O}function Et(){var ee=Ha();if(St(ee))return Nt(ee);j=setTimeout(Et,_t(ee))}function Nt(ee){return j=void 0,st&&C?bt(ee):(C=L=void 0,N)}function Pt(){j!==void 0&&clearTimeout(j),q=0,C=H=L=j=void 0}function qt(){return j===void 0?N:Nt(Ha())}function re(){var ee=Ha(),Ut=St(ee);if(C=arguments,L=this,H=ee,Ut){if(j===void 0)return pt(H);if(Z)return clearTimeout(j),j=setTimeout(Et,p),bt(H)}return j===void 0&&(j=setTimeout(Et,p)),N}return re.cancel=Pt,re.flush=qt,re}var pu=Ci,Le=B?B.performance:null,iy=Le&&Le.now?function(){return Le.now()}:function(){return Date.now()},$e=function(){if(B){if(B.requestAnimationFrame)return function(y){B.requestAnimationFrame(y)};if(B.mozRequestAnimationFrame)return function(y){B.mozRequestAnimationFrame(y)};if(B.webkitRequestAnimationFrame)return function(y){B.webkitRequestAnimationFrame(y)};if(B.msRequestAnimationFrame)return function(y){B.msRequestAnimationFrame(y)}}return function(y){y&&setTimeout(function(){y(iy())},1e3/60)}}(),g1=function(p){return $e(p)},ip=iy,sy=9261,D8=65599,g4=5381,th=function(p){for(var x=arguments.length>1&&arguments[1]!==void 0?arguments[1]:sy,C=x,L;L=p.next(),!L.done;)C=C*D8+L.value|0;return C},fg=function(p){var x=arguments.length>1&&arguments[1]!==void 0?arguments[1]:sy;return x*D8+p|0},O2=function(p){var x=arguments.length>1&&arguments[1]!==void 0?arguments[1]:g4;return(x<<5)+x+p|0},M8=function(p,x){return p*2097152+x},N2=function(p){return p[0]*2097152+p[1]},p4=function(p,x){return[fg(p[0],x[0]),O2(p[1],x[1])]},U1=function(p,x){var C={value:0,done:!1},L=0,O=p.length,N={next:function(){return L=0&&!(p[L]===x&&(p.splice(L,1),C));L--);},G9=function(p){p.splice(0,p.length)},OB=function(p,x){for(var C=0;C"u"?"undefined":f(Set))!==VX?Set:UX,K9=function(p,x){var C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(p===void 0||x===void 0||!It(p)){$l("An element must have a core reference and parameters set");return}var L=x.group;if(L==null&&(x.data&&x.data.source!=null&&x.data.target!=null?L="edges":L="nodes"),L!=="nodes"&&L!=="edges"){$l("An element must be of type `nodes` or `edges`; you specified `"+L+"`");return}this.length=1,this[0]=this;var O=this._private={cy:p,single:!0,data:x.data||{},position:x.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:L,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!x.selected,selectable:x.selectable===void 0?!0:!!x.selectable,locked:!!x.locked,grabbed:!1,grabbable:x.grabbable===void 0?!0:!!x.grabbable,pannable:x.pannable===void 0?L==="edges":!!x.pannable,active:!1,classes:new Wx,animation:{current:[],queue:[]},rscratch:{},scratch:x.scratch||{},edges:[],children:[],parent:x.parent&&x.parent.isNode()?x.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(O.position.x==null&&(O.position.x=0),O.position.y==null&&(O.position.y=0),x.renderedPosition){var N=x.renderedPosition,j=p.pan(),H=p.zoom();O.position={x:(N.x-j.x)/H,y:(N.y-j.y)/H}}var q=[];rt(x.classes)?q=x.classes:mt(x.classes)&&(q=x.classes.split(/\s+/));for(var W=0,Z=q.length;WNt?1:0},W=function(Et,Nt,Pt,qt,re){var ee;if(Pt==null&&(Pt=0),re==null&&(re=C),Pt<0)throw new Error("lo must be non-negative");for(qt==null&&(qt=Et.length);PtEe;0<=Ee?Yt++:Yt--)de.push(Yt);return de}).apply(this).reverse(),Ut=[],qt=0,re=ee.length;qtTe;0<=Te?++de:--de)ie.push(N(Et,Pt));return ie},_t=function(Et,Nt,Pt,qt){var re,ee,Ut;for(qt==null&&(qt=C),re=Et[Pt];Pt>Nt;){if(Ut=Pt-1>>1,ee=Et[Ut],qt(re,ee)<0){Et[Pt]=ee,Pt=Ut;continue}break}return Et[Pt]=re},St=function(Et,Nt,Pt){var qt,re,ee,Ut,de;for(Pt==null&&(Pt=C),re=Et.length,de=Nt,ee=Et[Nt],qt=2*Nt+1;qt0;){var ee=Nt.pop(),Ut=St(ee),de=ee.id();if(st[de]=Ut,Ut!==1/0)for(var Yt=ee.neighborhood().intersect(pt),Ee=0;Ee0)for(Tn.unshift(qe);Z[lr];){var Sn=Z[lr];Tn.unshift(Sn.edge),Tn.unshift(Sn.node),Xn=Sn.node,lr=Xn.id()}return j.spawn(Tn)}}}},YX={kruskal:function(p){p=p||function(Pt){return 1};for(var x=this.byGroup(),C=x.nodes,L=x.edges,O=C.length,N=new Array(O),j=C,H=function(qt){for(var re=0;re0;){if(re(),Ut++,qt===W){for(var de=[],Yt=O,Ee=W,Te=Et[Ee];de.unshift(Yt),Te!=null&&de.unshift(Te),Yt=St[Ee],Yt!=null;)Ee=Yt.id(),Te=Et[Ee];return{found:!0,distance:Z[qt],path:this.spawn(de),steps:Ut}}bt[qt]=!0;for(var ie=Pt._private.edges,ze=0;zeTe&&(pt[Ee]=Te,Nt[Ee]=Yt,Pt[Ee]=re),!O){var ie=Yt*W+de;!O&&pt[ie]>Te&&(pt[ie]=Te,Nt[ie]=de,Pt[ie]=re)}}}for(var ze=0;ze1&&arguments[1]!==void 0?arguments[1]:N,eo=Pt(as),Ta=[],pa=eo;;){if(pa==null)return x.spawn();var mo=Nt(pa),Kn=mo.edge,G=mo.pred;if(Ta.unshift(pa[0]),pa.same(Es)&&Ta.length>0)break;Kn!=null&&Ta.unshift(Kn),pa=G}return H.spawn(Ta)},ee=0;ee=0;W--){var Z=q[W],st=Z[1],bt=Z[2];(x[st]===j&&x[bt]===H||x[st]===H&&x[bt]===j)&&q.splice(W,1)}for(var pt=0;ptL;){var O=Math.floor(Math.random()*x.length);x=rQ(O,p,x),C--}return x},iQ={kargerStein:function(){var p=this,x=this.byGroup(),C=x.nodes,L=x.edges;L.unmergeBy(function(Tn){return Tn.isLoop()});var O=C.length,N=L.length,j=Math.ceil(Math.pow(Math.log(O)/Math.LN2,2)),H=Math.floor(O/nQ);if(O<2){$l("At least 2 nodes are required for Karger-Stein algorithm");return}for(var q=[],W=0;W1&&arguments[1]!==void 0?arguments[1]:0,C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:p.length,L=1/0,O=x;O1&&arguments[1]!==void 0?arguments[1]:0,C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:p.length,L=-1/0,O=x;O1&&arguments[1]!==void 0?arguments[1]:0,C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:p.length,L=0,O=0,N=x;N1&&arguments[1]!==void 0?arguments[1]:0,C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:p.length,L=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,O=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,N=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;L?p=p.slice(x,C):(C0&&p.splice(0,x));for(var j=0,H=p.length-1;H>=0;H--){var q=p[H];N?isFinite(q)||(p[H]=-1/0,j++):p.splice(H,1)}O&&p.sort(function(st,bt){return st-bt});var W=p.length,Z=Math.floor(W/2);return W%2!==0?p[Z+1+j]:(p[Z-1+j]+p[Z+j])/2},lQ=function(p){return Math.PI*p/180},Y9=function(p,x){return Math.atan2(x,p)-Math.PI/2},jD=Math.log2||function(y){return Math.log(y)/Math.log(2)},FB=function(p){return p>0?1:p<0?-1:0},w4=function(p,x){return Math.sqrt(m4(p,x))},m4=function(p,x){var C=x.x-p.x,L=x.y-p.y;return C*C+L*L},hQ=function(p){for(var x=p.length,C=0,L=0;L=p.x1&&p.y2>=p.y1)return{x1:p.x1,y1:p.y1,x2:p.x2,y2:p.y2,w:p.x2-p.x1,h:p.y2-p.y1};if(p.w!=null&&p.h!=null&&p.w>=0&&p.h>=0)return{x1:p.x1,y1:p.y1,x2:p.x1+p.w,y2:p.y1+p.h,w:p.w,h:p.h}}},dQ=function(p){return{x1:p.x1,x2:p.x2,w:p.w,y1:p.y1,y2:p.y2,h:p.h}},gQ=function(p){p.x1=1/0,p.y1=1/0,p.x2=-1/0,p.y2=-1/0,p.w=0,p.h=0},pQ=function(p,x,C){return{x1:p.x1+x,x2:p.x2+x,y1:p.y1+C,y2:p.y2+C,w:p.w,h:p.h}},BB=function(p,x){p.x1=Math.min(p.x1,x.x1),p.x2=Math.max(p.x2,x.x2),p.w=p.x2-p.x1,p.y1=Math.min(p.y1,x.y1),p.y2=Math.max(p.y2,x.y2),p.h=p.y2-p.y1},bQ=function(p,x,C){p.x1=Math.min(p.x1,x),p.x2=Math.max(p.x2,x),p.w=p.x2-p.x1,p.y1=Math.min(p.y1,C),p.y2=Math.max(p.y2,C),p.h=p.y2-p.y1},X9=function(p){var x=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return p.x1-=x,p.x2+=x,p.y1-=x,p.y2+=x,p.w=p.x2-p.x1,p.h=p.y2-p.y1,p},Q9=function(p){var x=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],C,L,O,N;if(x.length===1)C=L=O=N=x[0];else if(x.length===2)C=O=x[0],N=L=x[1];else if(x.length===4){var j=E(x,4);C=j[0],L=j[1],O=j[2],N=j[3]}return p.x1-=N,p.x2+=L,p.y1-=C,p.y2+=O,p.w=p.x2-p.x1,p.h=p.y2-p.y1,p},RB=function(p,x){p.x1=x.x1,p.y1=x.y1,p.x2=x.x2,p.y2=x.y2,p.w=p.x2-p.x1,p.h=p.y2-p.y1},$D=function(p,x){return!(p.x1>x.x2||x.x1>p.x2||p.x2x.y2||x.y1>p.y2)},Qx=function(p,x,C){return p.x1<=x&&x<=p.x2&&p.y1<=C&&C<=p.y2},wQ=function(p,x){return Qx(p,x.x,x.y)},jB=function(p,x){return Qx(p,x.x1,x.y1)&&Qx(p,x.x2,x.y2)},$B=function(p,x,C,L,O,N,j){var H=R8(O,N),q=O/2,W=N/2,Z;{var st=C-q+H-j,bt=L-W-j,pt=C+q-H+j,_t=bt;if(Z=uy(p,x,C,L,st,bt,pt,_t,!1),Z.length>0)return Z}{var St=C+q+j,Et=L-W+H-j,Nt=St,Pt=L+W-H+j;if(Z=uy(p,x,C,L,St,Et,Nt,Pt,!1),Z.length>0)return Z}{var qt=C-q+H-j,re=L+W+j,ee=C+q-H+j,Ut=re;if(Z=uy(p,x,C,L,qt,re,ee,Ut,!1),Z.length>0)return Z}{var de=C-q-j,Yt=L-W+H-j,Ee=de,Te=L+W-H+j;if(Z=uy(p,x,C,L,de,Yt,Ee,Te,!1),Z.length>0)return Z}var ie;{var ze=C-q+H,me=L-W+H;if(ie=F8(p,x,C,L,ze,me,H+j),ie.length>0&&ie[0]<=ze&&ie[1]<=me)return[ie[0],ie[1]]}{var yn=C+q-H,nn=L-W+H;if(ie=F8(p,x,C,L,yn,nn,H+j),ie.length>0&&ie[0]>=yn&&ie[1]<=nn)return[ie[0],ie[1]]}{var qe=C+q-H,Tn=L+W-H;if(ie=F8(p,x,C,L,qe,Tn,H+j),ie.length>0&&ie[0]>=qe&&ie[1]>=Tn)return[ie[0],ie[1]]}{var Xn=C-q+H,lr=L+W-H;if(ie=F8(p,x,C,L,Xn,lr,H+j),ie.length>0&&ie[0]<=Xn&&ie[1]>=lr)return[ie[0],ie[1]]}return[]},mQ=function(p,x,C,L,O,N,j){var H=j,q=Math.min(C,O),W=Math.max(C,O),Z=Math.min(L,N),st=Math.max(L,N);return q-H<=p&&p<=W+H&&Z-H<=x&&x<=st+H},vQ=function(p,x,C,L,O,N,j,H,q){var W={x1:Math.min(C,j,O)-q,x2:Math.max(C,j,O)+q,y1:Math.min(L,H,N)-q,y2:Math.max(L,H,N)+q};return!(pW.x2||xW.y2)},yQ=function(p,x,C,L){C-=L;var O=x*x-4*p*C;if(O<0)return[];var N=Math.sqrt(O),j=2*p,H=(-x+N)/j,q=(-x-N)/j;return[H,q]},xQ=function(p,x,C,L,O){var N=1e-5;p===0&&(p=N),x/=p,C/=p,L/=p;var j,H,q,W,Z,st,bt,pt;if(H=(3*C-x*x)/9,q=-(27*L)+x*(9*C-2*(x*x)),q/=54,j=H*H*H+q*q,O[1]=0,bt=x/3,j>0){Z=q+Math.sqrt(j),Z=Z<0?-Math.pow(-Z,1/3):Math.pow(Z,1/3),st=q-Math.sqrt(j),st=st<0?-Math.pow(-st,1/3):Math.pow(st,1/3),O[0]=-bt+Z+st,bt+=(Z+st)/2,O[4]=O[2]=-bt,bt=Math.sqrt(3)*(-st+Z)/2,O[3]=bt,O[5]=-bt;return}if(O[5]=O[3]=0,j===0){pt=q<0?-Math.pow(-q,1/3):Math.pow(q,1/3),O[0]=-bt+2*pt,O[4]=O[2]=-(pt+bt);return}H=-H,W=H*H*H,W=Math.acos(q/Math.sqrt(W)),pt=2*Math.sqrt(H),O[0]=-bt+pt*Math.cos(W/3),O[2]=-bt+pt*Math.cos((W+2*Math.PI)/3),O[4]=-bt+pt*Math.cos((W+4*Math.PI)/3)},kQ=function(p,x,C,L,O,N,j,H){var q=1*C*C-4*C*O+2*C*j+4*O*O-4*O*j+j*j+L*L-4*L*N+2*L*H+4*N*N-4*N*H+H*H,W=1*9*C*O-3*C*C-3*C*j-6*O*O+3*O*j+9*L*N-3*L*L-3*L*H-6*N*N+3*N*H,Z=1*3*C*C-6*C*O+C*j-C*p+2*O*O+2*O*p-j*p+3*L*L-6*L*N+L*H-L*x+2*N*N+2*N*x-H*x,st=1*C*O-C*C+C*p-O*p+L*N-L*L+L*x-N*x,bt=[];xQ(q,W,Z,st,bt);for(var pt=1e-7,_t=[],St=0;St<6;St+=2)Math.abs(bt[St+1])=0&&bt[St]<=1&&_t.push(bt[St]);_t.push(1),_t.push(0);for(var Et=-1,Nt,Pt,qt,re=0;re<_t.length;re++)Nt=Math.pow(1-_t[re],2)*C+2*(1-_t[re])*_t[re]*O+_t[re]*_t[re]*j,Pt=Math.pow(1-_t[re],2)*L+2*(1-_t[re])*_t[re]*N+_t[re]*_t[re]*H,qt=Math.pow(Nt-p,2)+Math.pow(Pt-x,2),Et>=0?qtq?(p-O)*(p-O)+(x-N)*(x-N):W-st},y0=function(p,x,C){for(var L,O,N,j,H,q=0,W=0;W=p&&p>=N||L<=p&&p<=N)H=(p-L)/(N-L)*(j-O)+O,H>x&&q++;else continue;return q%2!==0},sm=function(p,x,C,L,O,N,j,H,q){var W=new Array(C.length),Z;H[0]!=null?(Z=Math.atan(H[1]/H[0]),H[0]<0?Z=Z+Math.PI/2:Z=-Z-Math.PI/2):Z=H;for(var st=Math.cos(-Z),bt=Math.sin(-Z),pt=0;pt0){var St=Z9(W,-q);_t=J9(St)}else _t=W;return y0(p,x,_t)},TQ=function(p,x,C,L,O,N,j){for(var H=new Array(C.length),q=N/2,W=j/2,Z=HD(N,j),st=Z*Z,bt=0;bt=0&&St<=1&&Nt.push(St),Et>=0&&Et<=1&&Nt.push(Et),Nt.length===0)return[];var Pt=Nt[0]*H[0]+p,qt=Nt[0]*H[1]+x;if(Nt.length>1){if(Nt[0]==Nt[1])return[Pt,qt];var re=Nt[1]*H[0]+p,ee=Nt[1]*H[1]+x;return[Pt,qt,re,ee]}else return[Pt,qt]},zD=function(p,x,C){return x<=p&&p<=C||C<=p&&p<=x?p:p<=x&&x<=C||C<=x&&x<=p?x:C},uy=function(p,x,C,L,O,N,j,H,q){var W=p-O,Z=C-p,st=j-O,bt=x-N,pt=L-x,_t=H-N,St=st*bt-_t*W,Et=Z*bt-pt*W,Nt=_t*Z-st*pt;if(Nt!==0){var Pt=St/Nt,qt=Et/Nt,re=.001,ee=0-re,Ut=1+re;return ee<=Pt&&Pt<=Ut&&ee<=qt&&qt<=Ut?[p+Pt*Z,x+Pt*pt]:q?[p+Pt*Z,x+Pt*pt]:[]}else return St===0||Et===0?zD(p,C,j)===j?[j,H]:zD(p,C,O)===O?[O,N]:zD(O,j,C)===C?[C,L]:[]:[]},B8=function(p,x,C,L,O,N,j,H){var q=[],W,Z=new Array(C.length),st=!0;N==null&&(st=!1);var bt;if(st){for(var pt=0;pt0){var _t=Z9(Z,-H);bt=J9(_t)}else bt=Z}else bt=C;for(var St,Et,Nt,Pt,qt=0;qt2){for(var nn=[q[0],q[1]],qe=Math.pow(nn[0]-p,2)+Math.pow(nn[1]-x,2),Tn=1;TnW&&(W=qt)},get:function(Pt){return q[Pt]}},st=0;st0?nn=yn.edgesTo(me)[0]:nn=me.edgesTo(yn)[0];var qe=L(nn);me=me.id(),de[me]>de[ie]+qe&&(de[me]=de[ie]+qe,Yt.nodes.indexOf(me)<0?Yt.push(me):Yt.updateItem(me),Ut[me]=0,ee[me]=[]),de[me]==de[ie]+qe&&(Ut[me]=Ut[me]+Ut[ie],ee[me].push(ie))}else for(var Tn=0;Tn0;){for(var or=re.pop(),pr=0;pr0&&j.push(C[H]);j.length!==0&&O.push(L.collection(j))}return O},jQ=function(p,x){for(var C=0;C5&&arguments[5]!==void 0?arguments[5]:qQ,j=L,H,q,W=0;W=2?j8(p,x,C,0,XB,HQ):j8(p,x,C,0,YB)},squaredEuclidean:function(p,x,C){return j8(p,x,C,0,XB)},manhattan:function(p,x,C){return j8(p,x,C,0,YB)},max:function(p,x,C){return j8(p,x,C,-1/0,VQ)}};t6["squared-euclidean"]=t6.squaredEuclidean,t6.squaredeuclidean=t6.squaredEuclidean;function eC(y,p,x,C,L,O){var N;return ct(y)?N=y:N=t6[y]||t6.euclidean,p===0&&ct(y)?N(L,O):N(p,x,C,L,O)}var UQ=p1({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),GD=function(p){return UQ(p)},nC=function(p,x,C,L,O){var N=O!=="kMedoids",j=N?function(Z){return C[Z]}:function(Z){return L[Z](C)},H=function(st){return L[st](x)},q=C,W=x;return eC(p,L.length,j,H,q,W)},KD=function(p,x,C){for(var L=C.length,O=new Array(L),N=new Array(L),j=new Array(x),H=null,q=0;qC)return!1}return!0},WQ=function(p,x,C){for(var L=0;Lj&&(j=x[q][W],H=W);O[H].push(p[q])}for(var Z=0;Z=O.threshold||O.mode==="dendrogram"&&p.length===1)return!1;var pt=x[N],_t=x[L[N]],St;O.mode==="dendrogram"?St={left:pt,right:_t,key:pt.key}:St={value:pt.value.concat(_t.value),key:pt.key},p[pt.index]=St,p.splice(_t.index,1),x[pt.key]=St;for(var Et=0;EtC[_t.key][Nt.key]&&(H=C[_t.key][Nt.key])):O.linkage==="max"?(H=C[pt.key][Nt.key],C[pt.key][Nt.key]0&&L.push(O);return L},iR=function(p,x,C){for(var L=[],O=0;Oj&&(N=q,j=x[O*p+q])}N>0&&L.push(N)}for(var W=0;Wq&&(H=W,q=Z)}C[O]=N[H]}return L=iR(p,x,C),L},sR=function(p){for(var x=this.cy(),C=this.nodes(),L=cJ(p),O={},N=0;N=Te?(ie=Te,Te=me,ze=yn):me>ie&&(ie=me);for(var nn=0;nn0?1:0;Ut[Yt%L.minIterations*j+or]=pr,Sn+=pr}if(Sn>0&&(Yt>=L.minIterations-1||Yt==L.maxIterations-1)){for(var kr=0,wr=0;wr1||ee>1)&&(j=!0),Z[Pt]=[],Nt.outgoers().forEach(function(de){de.isEdge()&&Z[Pt].push(de.id())})}else st[Pt]=[void 0,Nt.target().id()]}):N.forEach(function(Nt){var Pt=Nt.id();if(Nt.isNode()){var qt=Nt.degree(!0);qt%2&&(H?q?j=!0:q=Pt:H=Pt),Z[Pt]=[],Nt.connectedEdges().forEach(function(re){return Z[Pt].push(re.id())})}else st[Pt]=[Nt.source().id(),Nt.target().id()]});var bt={found:!1,trail:void 0};if(j)return bt;if(q&&H)if(O){if(W&&q!=W)return bt;W=q}else{if(W&&q!=W&&H!=W)return bt;W||(W=q)}else W||(W=N[0].id());var pt=function(Pt){for(var qt=Pt,re=[Pt],ee,Ut,de;Z[qt].length;)ee=Z[qt].shift(),Ut=st[ee][0],de=st[ee][1],qt!=de?(Z[de]=Z[de].filter(function(Yt){return Yt!=ee}),qt=de):!O&&qt!=Ut&&(Z[Ut]=Z[Ut].filter(function(Yt){return Yt!=ee}),qt=Ut),re.unshift(ee),re.unshift(qt);return re},_t=[],St=[];for(St=pt(W);St.length!=1;)Z[St[0]].length==0?(_t.unshift(N.getElementById(St.shift())),_t.unshift(N.getElementById(St.shift()))):St=pt(St.shift()).concat(St);_t.unshift(N.getElementById(St.shift()));for(var Et in Z)if(Z[Et].length)return bt;return bt.found=!0,bt.trail=this.spawn(_t,!0),bt}},iC=function(){var p=this,x={},C=0,L=0,O=[],N=[],j={},H=function(st,bt){for(var pt=N.length-1,_t=[],St=p.spawn();N[pt].x!=st||N[pt].y!=bt;)_t.push(N.pop().edge),pt--;_t.push(N.pop().edge),_t.forEach(function(Et){var Nt=Et.connectedNodes().intersection(p);St.merge(Et),Nt.forEach(function(Pt){var qt=Pt.id(),re=Pt.connectedEdges().intersection(p);St.merge(Pt),x[qt].cutVertex?St.merge(re.filter(function(ee){return ee.isLoop()})):St.merge(re)})}),O.push(St)},q=function Z(st,bt,pt){st===pt&&(L+=1),x[bt]={id:C,low:C++,cutVertex:!1};var _t=p.getElementById(bt).connectedEdges().intersection(p);if(_t.size()===0)O.push(p.spawn(p.getElementById(bt)));else{var St,Et,Nt,Pt;_t.forEach(function(qt){St=qt.source().id(),Et=qt.target().id(),Nt=St===bt?Et:St,Nt!==pt&&(Pt=qt.id(),j[Pt]||(j[Pt]=!0,N.push({x:bt,y:Nt,edge:qt})),Nt in x?x[bt].low=Math.min(x[bt].low,x[Nt].id):(Z(st,Nt,bt),x[bt].low=Math.min(x[bt].low,x[Nt].low),x[bt].id<=x[Nt].low&&(x[bt].cutVertex=!0,H(bt,Nt))))})}};p.forEach(function(Z){if(Z.isNode()){var st=Z.id();st in x||(L=0,q(st,st),x[st].cutVertex=L>1)}});var W=Object.keys(x).filter(function(Z){return x[Z].cutVertex}).map(function(Z){return p.getElementById(Z)});return{cut:p.spawn(W),components:O}},bJ={hopcroftTarjanBiconnected:iC,htbc:iC,htb:iC,hopcroftTarjanBiconnectedComponents:iC},sC=function(){var p=this,x={},C=0,L=[],O=[],N=p.spawn(p),j=function H(q){O.push(q),x[q]={index:C,low:C++,explored:!1};var W=p.getElementById(q).connectedEdges().intersection(p);if(W.forEach(function(_t){var St=_t.target().id();St!==q&&(St in x||H(St),x[St].explored||(x[q].low=Math.min(x[q].low,x[St].low)))}),x[q].index===x[q].low){for(var Z=p.spawn();;){var st=O.pop();if(Z.merge(p.getElementById(st)),x[st].low=x[q].index,x[st].explored=!0,st===q)break}var bt=Z.edgesWith(Z),pt=Z.merge(bt);L.push(pt),N=N.difference(pt)}};return p.forEach(function(H){if(H.isNode()){var q=H.id();q in x||j(q)}}),{cut:N,components:L}},wJ={tarjanStronglyConnected:sC,tsc:sC,tscc:sC,tarjanStronglyConnectedComponents:sC},aR={};[O8,WX,YX,QX,ZX,eQ,iQ,LQ,Jx,Zx,UD,zQ,tJ,aJ,dJ,pJ,bJ,wJ].forEach(function(y){we(aR,y)});/*! +Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable +Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) +Licensed under The MIT License (http://opensource.org/licenses/MIT) +*/var oR=0,cR=1,uR=2,am=function y(p){if(!(this instanceof y))return new y(p);this.id="Thenable/1.0.7",this.state=oR,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},typeof p=="function"&&p.call(this,this.fulfill.bind(this),this.reject.bind(this))};am.prototype={fulfill:function(p){return lR(this,cR,"fulfillValue",p)},reject:function(p){return lR(this,uR,"rejectReason",p)},then:function(p,x){var C=this,L=new am;return C.onFulfilled.push(dR(p,L,"fulfill")),C.onRejected.push(dR(x,L,"reject")),hR(C),L.proxy}};var lR=function(p,x,C,L){return p.state===oR&&(p.state=x,p[C]=L,hR(p)),p},hR=function(p){p.state===cR?fR(p,"onFulfilled",p.fulfillValue):p.state===uR&&fR(p,"onRejected",p.rejectReason)},fR=function(p,x,C){if(p[x].length!==0){var L=p[x];p[x]=[];var O=function(){for(var j=0;j0}},clearQueue:function(){return function(){var x=this,C=x.length!==void 0,L=C?x:[x],O=this._private.cy||this;if(!O.styleEnabled())return this;for(var N=0;N-1}var mZ=wZ;function vZ(y,p){var x=this.__data__,C=cC(x,y);return C<0?(++this.size,x.push([y,p])):x[C][1]=p,this}var yZ=vZ;function r6(y){var p=-1,x=y==null?0:y.length;for(this.clear();++p-1&&y%1==0&&y0&&this.spawn(L).updateStyle().emit("class"),x},addClass:function(p){return this.toggleClass(p,!0)},hasClass:function(p){var x=this[0];return x!=null&&x._private.classes.has(p)},toggleClass:function(p,x){rt(p)||(p=p.match(/\S+/g)||[]);for(var C=this,L=x===void 0,O=[],N=0,j=C.length;N0&&this.spawn(O).updateStyle().emit("class"),C},removeClass:function(p){return this.toggleClass(p,!1)},flashClass:function(p,x){var C=this;if(x==null)x=250;else if(x===0)return C;return C.addClass(p),setTimeout(function(){C.removeClass(p)},x),C}};lC.className=lC.classNames=lC.classes;var yc={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:sn,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};yc.variable="(?:[\\w-.]|(?:\\\\"+yc.metaChar+"))+",yc.className="(?:[\\w-]|(?:\\\\"+yc.metaChar+"))+",yc.value=yc.string+"|"+yc.number,yc.id=yc.variable,function(){var y,p,x;for(y=yc.comparatorOp.split("|"),x=0;x=0)&&p!=="="&&(yc.comparatorOp+="|\\!"+p)}();var bu=function(){return{checks:[]}},Xi={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},JD=[{selector:":selected",matches:function(p){return p.selected()}},{selector:":unselected",matches:function(p){return!p.selected()}},{selector:":selectable",matches:function(p){return p.selectable()}},{selector:":unselectable",matches:function(p){return!p.selectable()}},{selector:":locked",matches:function(p){return p.locked()}},{selector:":unlocked",matches:function(p){return!p.locked()}},{selector:":visible",matches:function(p){return p.visible()}},{selector:":hidden",matches:function(p){return!p.visible()}},{selector:":transparent",matches:function(p){return p.transparent()}},{selector:":grabbed",matches:function(p){return p.grabbed()}},{selector:":free",matches:function(p){return!p.grabbed()}},{selector:":removed",matches:function(p){return p.removed()}},{selector:":inside",matches:function(p){return!p.removed()}},{selector:":grabbable",matches:function(p){return p.grabbable()}},{selector:":ungrabbable",matches:function(p){return!p.grabbable()}},{selector:":animated",matches:function(p){return p.animated()}},{selector:":unanimated",matches:function(p){return!p.animated()}},{selector:":parent",matches:function(p){return p.isParent()}},{selector:":childless",matches:function(p){return p.isChildless()}},{selector:":child",matches:function(p){return p.isChild()}},{selector:":orphan",matches:function(p){return p.isOrphan()}},{selector:":nonorphan",matches:function(p){return p.isChild()}},{selector:":compound",matches:function(p){return p.isNode()?p.isParent():p.source().isParent()||p.target().isParent()}},{selector:":loop",matches:function(p){return p.isLoop()}},{selector:":simple",matches:function(p){return p.isSimple()}},{selector:":active",matches:function(p){return p.active()}},{selector:":inactive",matches:function(p){return!p.active()}},{selector:":backgrounding",matches:function(p){return p.backgrounding()}},{selector:":nonbackgrounding",matches:function(p){return!p.backgrounding()}}].sort(function(y,p){return Br(y.selector,p.selector)}),Ett=function(){for(var y={},p,x=0;x0&&W.edgeCount>0)return Gc("The selector `"+p+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(W.edgeCount>1)return Gc("The selector `"+p+"` is invalid because it uses multiple edge selectors"),!1;W.edgeCount===1&&Gc("The selector `"+p+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},Att=function(){if(this.toStringCache!=null)return this.toStringCache;for(var p=function(W){return W??""},x=function(W){return mt(W)?'"'+W+'"':p(W)},C=function(W){return" "+W+" "},L=function(W,Z){var st=W.type,bt=W.value;switch(st){case Xi.GROUP:{var pt=p(bt);return pt.substring(0,pt.length-1)}case Xi.DATA_COMPARE:{var _t=W.field,St=W.operator;return"["+_t+C(p(St))+x(bt)+"]"}case Xi.DATA_BOOL:{var Et=W.operator,Nt=W.field;return"["+p(Et)+Nt+"]"}case Xi.DATA_EXIST:{var Pt=W.field;return"["+Pt+"]"}case Xi.META_COMPARE:{var qt=W.operator,re=W.field;return"[["+re+C(p(qt))+x(bt)+"]]"}case Xi.STATE:return bt;case Xi.ID:return"#"+bt;case Xi.CLASS:return"."+bt;case Xi.PARENT:case Xi.CHILD:return O(W.parent,Z)+C(">")+O(W.child,Z);case Xi.ANCESTOR:case Xi.DESCENDANT:return O(W.ancestor,Z)+" "+O(W.descendant,Z);case Xi.COMPOUND_SPLIT:{var ee=O(W.left,Z),Ut=O(W.subject,Z),de=O(W.right,Z);return ee+(ee.length>0?" ":"")+Ut+de}case Xi.TRUE:return""}},O=function(W,Z){return W.checks.reduce(function(st,bt,pt){return st+(Z===W&&pt===0?"$":"")+L(bt,Z)},"")},N="",j=0;j1&&j=0&&(x=x.replace("!",""),Z=!0),x.indexOf("@")>=0&&(x=x.replace("@",""),W=!0),(O||j||W)&&(H=!O&&!N?"":""+p,q=""+C),W&&(p=H=H.toLowerCase(),C=q=q.toLowerCase()),x){case"*=":L=H.indexOf(q)>=0;break;case"$=":L=H.indexOf(q,H.length-q.length)>=0;break;case"^=":L=H.indexOf(q)===0;break;case"=":L=p===C;break;case">":st=!0,L=p>C;break;case">=":st=!0,L=p>=C;break;case"<":st=!0,L=p0;){var W=L.shift();p(W),O.add(W.id()),j&&C(L,O,W)}return y}function NR(y,p,x){if(x.isParent())for(var C=x._private.children,L=0;L1&&arguments[1]!==void 0?arguments[1]:!0;return eM(this,y,p,NR)};function PR(y,p,x){if(x.isChild()){var C=x._private.parent;p.has(C.id())||y.push(C)}}a6.forEachUp=function(y){var p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return eM(this,y,p,PR)};function Ptt(y,p,x){PR(y,p,x),NR(y,p,x)}a6.forEachUpAndDown=function(y){var p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return eM(this,y,p,Ptt)},a6.ancestors=a6.parents;var G1,FR;G1=FR={data:Kc.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:Kc.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:Kc.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Kc.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:Kc.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:Kc.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var p=this[0];if(p)return p._private.data.id}},G1.attr=G1.data,G1.removeAttr=G1.removeData;var fy=FR,q8={};function nM(y){return function(p){var x=this;if(p===void 0&&(p=!0),x.length!==0)if(x.isNode()&&!x.removed()){for(var C=0,L=x[0],O=L._private.edges,N=0;Np}),minIndegree:o6("indegree",function(y,p){return yp}),minOutdegree:o6("outdegree",function(y,p){return yp})}),we(q8,{totalDegree:function(p){for(var x=0,C=this.nodes(),L=0;L0,st=Z;Z&&(W=W[0]);var bt=st?W.position():{x:0,y:0};x!==void 0?q.position(p,x+bt[p]):O!==void 0&&q.position({x:O.x+bt.x,y:O.y+bt.y})}else{var pt=C.position(),_t=j?C.parent():null,St=_t&&_t.length>0,Et=St;St&&(_t=_t[0]);var Nt=Et?_t.position():{x:0,y:0};return O={x:pt.x-Nt.x,y:pt.y-Nt.y},p===void 0?O:O[p]}else if(!N)return;return this}},db.modelPosition=db.point=db.position,db.modelPositions=db.points=db.positions,db.renderedPoint=db.renderedPosition,db.relativePoint=db.relativePosition;var Ftt=BR,c6,dy;c6=dy={},dy.renderedBoundingBox=function(y){var p=this.boundingBox(y),x=this.cy(),C=x.zoom(),L=x.pan(),O=p.x1*C+L.x,N=p.x2*C+L.x,j=p.y1*C+L.y,H=p.y2*C+L.y;return{x1:O,x2:N,y1:j,y2:H,w:N-O,h:H-j}},dy.dirtyCompoundBoundsCache=function(){var y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,p=this.cy();return!p.styleEnabled()||!p.hasCompoundNodes()?this:(this.forEachUp(function(x){if(x.isParent()){var C=x._private;C.compoundBoundsClean=!1,C.bbCache=null,y||x.emitAndNotify("bounds")}}),this)},dy.updateCompoundBounds=function(){var y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,p=this.cy();if(!p.styleEnabled()||!p.hasCompoundNodes())return this;if(!y&&p.batching())return this;function x(N){if(!N.isParent())return;var j=N._private,H=N.children(),q=N.pstyle("compound-sizing-wrt-labels").value==="include",W={width:{val:N.pstyle("min-width").pfValue,left:N.pstyle("min-width-bias-left"),right:N.pstyle("min-width-bias-right")},height:{val:N.pstyle("min-height").pfValue,top:N.pstyle("min-height-bias-top"),bottom:N.pstyle("min-height-bias-bottom")}},Z=H.boundingBox({includeLabels:q,includeOverlays:!1,useCache:!1}),st=j.position;(Z.w===0||Z.h===0)&&(Z={w:N.pstyle("width").pfValue,h:N.pstyle("height").pfValue},Z.x1=st.x-Z.w/2,Z.x2=st.x+Z.w/2,Z.y1=st.y-Z.h/2,Z.y2=st.y+Z.h/2);function bt(Yt,Ee,Te){var ie=0,ze=0,me=Ee+Te;return Yt>0&&me>0&&(ie=Ee/me*Yt,ze=Te/me*Yt),{biasDiff:ie,biasComplementDiff:ze}}function pt(Yt,Ee,Te,ie){if(Te.units==="%")switch(ie){case"width":return Yt>0?Te.pfValue*Yt:0;case"height":return Ee>0?Te.pfValue*Ee:0;case"average":return Yt>0&&Ee>0?Te.pfValue*(Yt+Ee)/2:0;case"min":return Yt>0&&Ee>0?Yt>Ee?Te.pfValue*Ee:Te.pfValue*Yt:0;case"max":return Yt>0&&Ee>0?Yt>Ee?Te.pfValue*Yt:Te.pfValue*Ee:0;default:return 0}else return Te.units==="px"?Te.pfValue:0}var _t=W.width.left.value;W.width.left.units==="px"&&W.width.val>0&&(_t=_t*100/W.width.val);var St=W.width.right.value;W.width.right.units==="px"&&W.width.val>0&&(St=St*100/W.width.val);var Et=W.height.top.value;W.height.top.units==="px"&&W.height.val>0&&(Et=Et*100/W.height.val);var Nt=W.height.bottom.value;W.height.bottom.units==="px"&&W.height.val>0&&(Nt=Nt*100/W.height.val);var Pt=bt(W.width.val-Z.w,_t,St),qt=Pt.biasDiff,re=Pt.biasComplementDiff,ee=bt(W.height.val-Z.h,Et,Nt),Ut=ee.biasDiff,de=ee.biasComplementDiff;j.autoPadding=pt(Z.w,Z.h,N.pstyle("padding"),N.pstyle("padding-relative-to").value),j.autoWidth=Math.max(Z.w,W.width.val),st.x=(-qt+Z.x1+Z.x2+re)/2,j.autoHeight=Math.max(Z.h,W.height.val),st.y=(-Ut+Z.y1+Z.y2+de)/2}for(var C=0;Cp.x2?L:p.x2,p.y1=Cp.y2?O:p.y2,p.w=p.x2-p.x1,p.h=p.y2-p.y1)},k4=function(p,x){return x==null?p:gb(p,x.x1,x.y1,x.x2,x.y2)},H8=function(p,x,C){return fb(p,x,C)},hC=function(p,x,C){if(!x.cy().headless()){var L=x._private,O=L.rstyle,N=O.arrowWidth/2,j=x.pstyle(C+"-arrow-shape").value,H,q;if(j!=="none"){C==="source"?(H=O.srcX,q=O.srcY):C==="target"?(H=O.tgtX,q=O.tgtY):(H=O.midX,q=O.midY);var W=L.arrowBounds=L.arrowBounds||{},Z=W[C]=W[C]||{};Z.x1=H-N,Z.y1=q-N,Z.x2=H+N,Z.y2=q+N,Z.w=Z.x2-Z.x1,Z.h=Z.y2-Z.y1,X9(Z,1),gb(p,Z.x1,Z.y1,Z.x2,Z.y2)}}},rM=function(p,x,C){if(!x.cy().headless()){var L;C?L=C+"-":L="";var O=x._private,N=O.rstyle,j=x.pstyle(L+"label").strValue;if(j){var H=x.pstyle("text-halign"),q=x.pstyle("text-valign"),W=H8(N,"labelWidth",C),Z=H8(N,"labelHeight",C),st=H8(N,"labelX",C),bt=H8(N,"labelY",C),pt=x.pstyle(L+"text-margin-x").pfValue,_t=x.pstyle(L+"text-margin-y").pfValue,St=x.isEdge(),Et=x.pstyle(L+"text-rotation"),Nt=x.pstyle("text-outline-width").pfValue,Pt=x.pstyle("text-border-width").pfValue,qt=Pt/2,re=x.pstyle("text-background-padding").pfValue,ee=2,Ut=Z,de=W,Yt=de/2,Ee=Ut/2,Te,ie,ze,me;if(St)Te=st-Yt,ie=st+Yt,ze=bt-Ee,me=bt+Ee;else{switch(H.value){case"left":Te=st-de,ie=st;break;case"center":Te=st-Yt,ie=st+Yt;break;case"right":Te=st,ie=st+de;break}switch(q.value){case"top":ze=bt-Ut,me=bt;break;case"center":ze=bt-Ee,me=bt+Ee;break;case"bottom":ze=bt,me=bt+Ut;break}}Te+=pt-Math.max(Nt,qt)-re-ee,ie+=pt+Math.max(Nt,qt)+re+ee,ze+=_t-Math.max(Nt,qt)-re-ee,me+=_t+Math.max(Nt,qt)+re+ee;var yn=C||"main",nn=O.labelBounds,qe=nn[yn]=nn[yn]||{};qe.x1=Te,qe.y1=ze,qe.x2=ie,qe.y2=me,qe.w=ie-Te,qe.h=me-ze;var Tn=St&&Et.strValue==="autorotate",Xn=Et.pfValue!=null&&Et.pfValue!==0;if(Tn||Xn){var lr=Tn?H8(O.rstyle,"labelAngle",C):Et.pfValue,Sn=Math.cos(lr),or=Math.sin(lr),pr=(Te+ie)/2,kr=(ze+me)/2;if(!St){switch(H.value){case"left":pr=ie;break;case"right":pr=Te;break}switch(q.value){case"top":kr=me;break;case"bottom":kr=ze;break}}var wr=function(na,vi){return na=na-pr,vi=vi-kr,{x:na*Sn-vi*or+pr,y:na*or+vi*Sn+kr}},Cr=wr(Te,ze),$n=wr(Te,me),cr=wr(ie,ze),mr=wr(ie,me);Te=Math.min(Cr.x,$n.x,cr.x,mr.x),ie=Math.max(Cr.x,$n.x,cr.x,mr.x),ze=Math.min(Cr.y,$n.y,cr.y,mr.y),me=Math.max(Cr.y,$n.y,cr.y,mr.y)}var Sr=yn+"Rot",gi=nn[Sr]=nn[Sr]||{};gi.x1=Te,gi.y1=ze,gi.x2=ie,gi.y2=me,gi.w=ie-Te,gi.h=me-ze,gb(p,Te,ze,ie,me),gb(O.labelBounds.all,Te,ze,ie,me)}return p}},Btt=function(p,x){if(!x.cy().headless()){var C=x.pstyle("outline-opacity").value,L=x.pstyle("outline-width").value;if(C>0&&L>0){var O=x.pstyle("outline-offset").value,N=x.pstyle("shape").value,j=L+O,H=(p.w+j*2)/p.w,q=(p.h+j*2)/p.h,W=0,Z=0;["diamond","pentagon","round-triangle"].includes(N)?(H=(p.w+j*2.4)/p.w,Z=-j/3.6):["concave-hexagon","rhomboid","right-rhomboid"].includes(N)?H=(p.w+j*2.4)/p.w:N==="star"?(H=(p.w+j*2.8)/p.w,q=(p.h+j*2.6)/p.h,Z=-j/3.8):N==="triangle"?(H=(p.w+j*2.8)/p.w,q=(p.h+j*2.4)/p.h,Z=-j/1.4):N==="vee"&&(H=(p.w+j*4.4)/p.w,q=(p.h+j*3.8)/p.h,Z=-j*.5);var st=p.h*q-p.h,bt=p.w*H-p.w;if(Q9(p,[Math.ceil(st/2),Math.ceil(bt/2)]),W!=0||Z!==0){var pt=pQ(p,W,Z);BB(p,pt)}}}},Rtt=function(p,x){var C=p._private.cy,L=C.styleEnabled(),O=C.headless(),N=v0(),j=p._private,H=p.isNode(),q=p.isEdge(),W,Z,st,bt,pt,_t,St=j.rstyle,Et=H&&L?p.pstyle("bounds-expansion").pfValue:[0],Nt=function(Qi){return Qi.pstyle("display").value!=="none"},Pt=!L||Nt(p)&&(!q||Nt(p.source())&&Nt(p.target()));if(Pt){var qt=0,re=0;L&&x.includeOverlays&&(qt=p.pstyle("overlay-opacity").value,qt!==0&&(re=p.pstyle("overlay-padding").value));var ee=0,Ut=0;L&&x.includeUnderlays&&(ee=p.pstyle("underlay-opacity").value,ee!==0&&(Ut=p.pstyle("underlay-padding").value));var de=Math.max(re,Ut),Yt=0,Ee=0;if(L&&(Yt=p.pstyle("width").pfValue,Ee=Yt/2),H&&x.includeNodes){var Te=p.position();pt=Te.x,_t=Te.y;var ie=p.outerWidth(),ze=ie/2,me=p.outerHeight(),yn=me/2;W=pt-ze,Z=pt+ze,st=_t-yn,bt=_t+yn,gb(N,W,st,Z,bt),L&&x.includeOutlines&&Btt(N,p)}else if(q&&x.includeEdges)if(L&&!O){var nn=p.pstyle("curve-style").strValue;if(W=Math.min(St.srcX,St.midX,St.tgtX),Z=Math.max(St.srcX,St.midX,St.tgtX),st=Math.min(St.srcY,St.midY,St.tgtY),bt=Math.max(St.srcY,St.midY,St.tgtY),W-=Ee,Z+=Ee,st-=Ee,bt+=Ee,gb(N,W,st,Z,bt),nn==="haystack"){var qe=St.haystackPts;if(qe&&qe.length===2){if(W=qe[0].x,st=qe[0].y,Z=qe[1].x,bt=qe[1].y,W>Z){var Tn=W;W=Z,Z=Tn}if(st>bt){var Xn=st;st=bt,bt=Xn}gb(N,W-Ee,st-Ee,Z+Ee,bt+Ee)}}else if(nn==="bezier"||nn==="unbundled-bezier"||nn==="segments"||nn==="taxi"){var lr;switch(nn){case"bezier":case"unbundled-bezier":lr=St.bezierPts;break;case"segments":case"taxi":lr=St.linePts;break}if(lr!=null)for(var Sn=0;SnZ){var $n=W;W=Z,Z=$n}if(st>bt){var cr=st;st=bt,bt=cr}W-=Ee,Z+=Ee,st-=Ee,bt+=Ee,gb(N,W,st,Z,bt)}if(L&&x.includeEdges&&q&&(hC(N,p,"mid-source"),hC(N,p,"mid-target"),hC(N,p,"source"),hC(N,p,"target")),L){var mr=p.pstyle("ghost").value==="yes";if(mr){var Sr=p.pstyle("ghost-offset-x").pfValue,gi=p.pstyle("ghost-offset-y").pfValue;gb(N,N.x1+Sr,N.y1+gi,N.x2+Sr,N.y2+gi)}}var ss=j.bodyBounds=j.bodyBounds||{};RB(ss,N),Q9(ss,Et),X9(ss,1),L&&(W=N.x1,Z=N.x2,st=N.y1,bt=N.y2,gb(N,W-de,st-de,Z+de,bt+de));var na=j.overlayBounds=j.overlayBounds||{};RB(na,N),Q9(na,Et),X9(na,1);var vi=j.labelBounds=j.labelBounds||{};vi.all!=null?gQ(vi.all):vi.all=v0(),L&&x.includeLabels&&(x.includeMainLabels&&rM(N,p,null),q&&(x.includeSourceLabels&&rM(N,p,"source"),x.includeTargetLabels&&rM(N,p,"target")))}return N.x1=op(N.x1),N.y1=op(N.y1),N.x2=op(N.x2),N.y2=op(N.y2),N.w=op(N.x2-N.x1),N.h=op(N.y2-N.y1),N.w>0&&N.h>0&&Pt&&(Q9(N,Et),X9(N,1)),N},$R=function(p){var x=0,C=function(N){return(N?1:0)<0&&arguments[0]!==void 0?arguments[0]:Xtt,p=arguments.length>1?arguments[1]:void 0,x=0;x=0;j--)N(j);return this},pb.removeAllListeners=function(){return this.removeListener("*")},pb.emit=pb.trigger=function(y,p,x){var C=this.listeners,L=C.length;return this.emitting++,rt(p)||(p=[p]),gC(this,function(O,N){x!=null&&(C=[{event:N.event,type:N.type,namespace:N.namespace,callback:x}],L=C.length);for(var j=function(W){var Z=C[W];if(Z.type===N.type&&(!Z.namespace||Z.namespace===N.namespace||Z.namespace===Ytt)&&O.eventMatches(O.context,Z,N)){var st=[N];p!=null&&OB(st,p),O.beforeEmit(O.context,Z,N),Z.conf&&Z.conf.one&&(O.listeners=O.listeners.filter(function(_t){return _t!==Z}));var bt=O.callbackContext(O.context,Z,N),pt=Z.callback.apply(bt,st);O.afterEmit(O.context,Z,N),pt===!1&&(N.stopPropagation(),N.preventDefault())}},H=0;H1&&!N){var j=this.length-1,H=this[j],q=H._private.data.id;this[j]=void 0,this[p]=H,O.set(q,{ele:H,index:p})}return this.length--,this},unmergeOne:function(p){p=p[0];var x=this._private,C=p._private.data.id,L=x.map,O=L.get(C);if(!O)return this;var N=O.index;return this.unmergeAt(N),this},unmerge:function(p){var x=this._private.cy;if(!p)return this;if(p&&mt(p)){var C=p;p=x.mutableElements().filter(C)}for(var L=0;L=0;x--){var C=this[x];p(C)&&this.unmergeAt(x)}return this},map:function(p,x){for(var C=[],L=this,O=0;OC&&(C=H,L=j)}return{value:C,ele:L}},min:function(p,x){for(var C=1/0,L,O=this,N=0;N=0&&O"u"?"undefined":f(Symbol))!=p&&f(Symbol.iterator)!=p;x&&(pC[Symbol.iterator]=function(){var C=this,L={value:void 0,done:!1},O=0,N=this.length;return b({next:function(){return O1&&arguments[1]!==void 0?arguments[1]:!0,C=this[0],L=C.cy();if(L.styleEnabled()&&C){this.cleanStyle();var O=C._private.style[p];return O??(x?L.style().getDefaultProperty(p):null)}},numericStyle:function(p){var x=this[0];if(x.cy().styleEnabled()&&x){var C=x.pstyle(p);return C.pfValue!==void 0?C.pfValue:C.value}},numericStyleUnits:function(p){var x=this[0];if(x.cy().styleEnabled()&&x)return x.pstyle(p).units},renderedStyle:function(p){var x=this.cy();if(!x.styleEnabled())return this;var C=this[0];if(C)return x.style().getRenderedStyle(C,p)},style:function(p,x){var C=this.cy();if(!C.styleEnabled())return this;var L=!1,O=C.style();if(it(p)){var N=p;O.applyBypass(this,N,L),this.emitAndNotify("style")}else if(mt(p))if(x===void 0){var j=this[0];return j?O.getStylePropertyValue(j,p):void 0}else O.applyBypass(this,p,x,L),this.emitAndNotify("style");else if(p===void 0){var H=this[0];return H?O.getRawStyle(H):void 0}return this},removeStyle:function(p){var x=this.cy();if(!x.styleEnabled())return this;var C=!1,L=x.style(),O=this;if(p===void 0)for(var N=0;N0&&p.push(W[0]),p.push(j[0])}return this.spawn(p,!0).filter(y)},"neighborhood"),closedNeighborhood:function(p){return this.neighborhood().add(this).filter(p)},openNeighborhood:function(p){return this.neighborhood(p)}}),K1.neighbourhood=K1.neighborhood,K1.closedNeighbourhood=K1.closedNeighborhood,K1.openNeighbourhood=K1.openNeighborhood,we(K1,{source:ap(function(p){var x=this[0],C;return x&&(C=x._private.source||x.cy().collection()),C&&p?C.filter(p):C},"source"),target:ap(function(p){var x=this[0],C;return x&&(C=x._private.target||x.cy().collection()),C&&p?C.filter(p):C},"target"),sources:ej({attr:"source"}),targets:ej({attr:"target"})});function ej(y){return function(x){for(var C=[],L=0;L0);return N},component:function(){var p=this[0];return p.cy().mutableElements().components(p)[0]}}),K1.componentsOf=K1.components;var w1=function(p,x){var C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,L=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(p===void 0){$l("A collection must have a reference to the core");return}var O=new F2,N=!1;if(!x)x=[];else if(x.length>0&&it(x[0])&&!V(x[0])){N=!0;for(var j=[],H=new Wx,q=0,W=x.length;q0&&arguments[0]!==void 0?arguments[0]:!0,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,x=this,C=x.cy(),L=C._private,O=[],N=[],j,H=0,q=x.length;H0){for(var Xn=j.length===x.length?x:new w1(C,j),lr=0;lr0&&arguments[0]!==void 0?arguments[0]:!0,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,x=this,C=[],L={},O=x._private.cy;function N(me){for(var yn=me._private.edges,nn=0;nn0&&(y?Te.emitAndNotify("remove"):p&&Te.emit("remove"));for(var ie=0;ie0?ie=me:Te=me;while(Math.abs(ze)>N&&++yn=O?Nt(Ee,yn):nn===0?yn:qt(Ee,Te,Te+q)}var ee=!1;function Ut(){ee=!0,(y!==p||x!==C)&&Pt()}var de=function(Te){return ee||Ut(),y===p&&x===C?Te:Te===0?0:Te===1?1:St(re(Te),p,C)};de.getControlPoints=function(){return[{x:y,y:p},{x,y:C}]};var Yt="generateBezier("+[y,p,x,C]+")";return de.toString=function(){return Yt},de}/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */var oet=function(){function y(C){return-C.tension*C.x-C.friction*C.v}function p(C,L,O){var N={x:C.x+O.dx*L,v:C.v+O.dv*L,tension:C.tension,friction:C.friction};return{dx:N.v,dv:y(N)}}function x(C,L){var O={dx:C.v,dv:y(C)},N=p(C,L*.5,O),j=p(C,L*.5,N),H=p(C,L,j),q=1/6*(O.dx+2*(N.dx+j.dx)+H.dx),W=1/6*(O.dv+2*(N.dv+j.dv)+H.dv);return C.x=C.x+q*L,C.v=C.v+W*L,C}return function C(L,O,N){var j={x:-1,v:0,tension:null,friction:null},H=[0],q=0,W=1/1e4,Z=16/1e3,st,bt,pt;for(L=parseFloat(L)||500,O=parseFloat(O)||20,N=N||null,j.tension=L,j.friction=O,st=N!==null,st?(q=C(L,O),bt=q/N*Z):bt=Z;pt=x(pt||j,bt),H.push(1+pt.x),q+=16,Math.abs(pt.x)>W&&Math.abs(pt.v)>W;);return st?function(_t){return H[_t*(H.length-1)|0]}:q}}(),Ru=function(p,x,C,L){var O=aet(p,x,C,L);return function(N,j,H){return N+(j-N)*O(H)}},yC={linear:function(p,x,C){return p+(x-p)*C},ease:Ru(.25,.1,.25,1),"ease-in":Ru(.42,0,1,1),"ease-out":Ru(0,0,.58,1),"ease-in-out":Ru(.42,0,.58,1),"ease-in-sine":Ru(.47,0,.745,.715),"ease-out-sine":Ru(.39,.575,.565,1),"ease-in-out-sine":Ru(.445,.05,.55,.95),"ease-in-quad":Ru(.55,.085,.68,.53),"ease-out-quad":Ru(.25,.46,.45,.94),"ease-in-out-quad":Ru(.455,.03,.515,.955),"ease-in-cubic":Ru(.55,.055,.675,.19),"ease-out-cubic":Ru(.215,.61,.355,1),"ease-in-out-cubic":Ru(.645,.045,.355,1),"ease-in-quart":Ru(.895,.03,.685,.22),"ease-out-quart":Ru(.165,.84,.44,1),"ease-in-out-quart":Ru(.77,0,.175,1),"ease-in-quint":Ru(.755,.05,.855,.06),"ease-out-quint":Ru(.23,1,.32,1),"ease-in-out-quint":Ru(.86,0,.07,1),"ease-in-expo":Ru(.95,.05,.795,.035),"ease-out-expo":Ru(.19,1,.22,1),"ease-in-out-expo":Ru(1,0,0,1),"ease-in-circ":Ru(.6,.04,.98,.335),"ease-out-circ":Ru(.075,.82,.165,1),"ease-in-out-circ":Ru(.785,.135,.15,.86),spring:function(p,x,C){if(C===0)return yC.linear;var L=oet(p,x,C);return function(O,N,j){return O+(N-O)*L(j)}},"cubic-bezier":Ru};function ij(y,p,x,C,L){if(C===1||p===x)return x;var O=L(p,x,C);return y==null||((y.roundValue||y.color)&&(O=Math.round(O)),y.min!==void 0&&(O=Math.max(O,y.min)),y.max!==void 0&&(O=Math.min(O,y.max))),O}function sj(y,p){return y.pfValue!=null||y.value!=null?y.pfValue!=null&&(p==null||p.type.units!=="%")?y.pfValue:y.value:y}function h6(y,p,x,C,L){var O=L!=null?L.type:null;x<0?x=0:x>1&&(x=1);var N=sj(y,L),j=sj(p,L);if(Q(N)&&Q(j))return ij(O,N,j,x,C);if(rt(N)&&rt(j)){for(var H=[],q=0;q0?(bt==="spring"&&pt.push(N.duration),N.easingImpl=yC[bt].apply(null,pt)):N.easingImpl=yC[bt]}var _t=N.easingImpl,St;if(N.duration===0?St=1:St=(x-H)/N.duration,N.applying&&(St=N.progress),St<0?St=0:St>1&&(St=1),N.delay==null){var Et=N.startPosition,Nt=N.position;if(Nt&&L&&!y.locked()){var Pt={};X8(Et.x,Nt.x)&&(Pt.x=h6(Et.x,Nt.x,St,_t)),X8(Et.y,Nt.y)&&(Pt.y=h6(Et.y,Nt.y,St,_t)),y.position(Pt)}var qt=N.startPan,re=N.pan,ee=O.pan,Ut=re!=null&&C;Ut&&(X8(qt.x,re.x)&&(ee.x=h6(qt.x,re.x,St,_t)),X8(qt.y,re.y)&&(ee.y=h6(qt.y,re.y,St,_t)),y.emit("pan"));var de=N.startZoom,Yt=N.zoom,Ee=Yt!=null&&C;Ee&&(X8(de,Yt)&&(O.zoom=P8(O.minZoom,h6(de,Yt,St,_t),O.maxZoom)),y.emit("zoom")),(Ut||Ee)&&y.emit("viewport");var Te=N.style;if(Te&&Te.length>0&&L){for(var ie=0;ie=0;Ut--){var de=ee[Ut];de()}ee.splice(0,ee.length)},Nt=bt.length-1;Nt>=0;Nt--){var Pt=bt[Nt],qt=Pt._private;if(qt.stopped){bt.splice(Nt,1),qt.hooked=!1,qt.playing=!1,qt.started=!1,Et(qt.frames);continue}!qt.playing&&!qt.applying||(qt.playing&&qt.applying&&(qt.applying=!1),qt.started||uet(W,Pt,y),cet(W,Pt,y,Z),qt.applying&&(qt.applying=!1),Et(qt.frames),qt.step!=null&&qt.step(y),Pt.completed()&&(bt.splice(Nt,1),qt.hooked=!1,qt.playing=!1,qt.started=!1,Et(qt.completes)),_t=!0)}return!Z&&bt.length===0&&pt.length===0&&C.push(W),_t}for(var O=!1,N=0;N0?p.notify("draw",x):p.notify("draw")),x.unmerge(C),p.emit("step")}var het={animate:Kc.animate(),animation:Kc.animation(),animated:Kc.animated(),clearQueue:Kc.clearQueue(),delay:Kc.delay(),delayAnimation:Kc.delayAnimation(),stop:Kc.stop(),addToAnimationPool:function(p){var x=this;x.styleEnabled()&&x._private.aniEles.merge(p)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var p=this;if(p._private.animationsRunning=!0,!p.styleEnabled())return;function x(){p._private.animationsRunning&&g1(function(O){aj(O,p),x()})}var C=p.renderer();C&&C.beforeRender?C.beforeRender(function(O,N){aj(N,p)},C.beforeRenderPriorities.animations):x()}},fet={qualifierCompare:function(p,x){return p==null||x==null?p==null&&x==null:p.sameText(x)},eventMatches:function(p,x,C){var L=x.qualifier;return L!=null?p!==C.target&&V(C.target)&&L.matches(C.target):!0},addEventFields:function(p,x){x.cy=p,x.target=p},callbackContext:function(p,x,C){return x.qualifier!=null?C.target:p}},xC=function(p){return mt(p)?new ly(p):p},oj={createEmitter:function(){var p=this._private;return p.emitter||(p.emitter=new dC(fet,this)),this},emitter:function(){return this._private.emitter},on:function(p,x,C){return this.emitter().on(p,xC(x),C),this},removeListener:function(p,x,C){return this.emitter().removeListener(p,xC(x),C),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(p,x,C){return this.emitter().one(p,xC(x),C),this},once:function(p,x,C){return this.emitter().one(p,xC(x),C),this},emit:function(p,x){return this.emitter().emit(p,x),this},emitAndNotify:function(p,x){return this.emit(p),this.notify(p,x),this}};Kc.eventAliasesOn(oj);var hM={png:function(p){var x=this._private.renderer;return p=p||{},x.png(p)},jpg:function(p){var x=this._private.renderer;return p=p||{},p.bg=p.bg||"#fff",x.jpg(p)}};hM.jpeg=hM.jpg;var kC={layout:function(p){var x=this;if(p==null){$l("Layout options must be specified to make a layout");return}if(p.name==null){$l("A `name` must be specified to make a layout");return}var C=p.name,L=x.extension("layout",C);if(L==null){$l("No such layout `"+C+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var O;mt(p.eles)?O=x.$(p.eles):O=p.eles!=null?p.eles:x.$();var N=new L(we({},p,{cy:x,eles:O}));return N}};kC.createLayout=kC.makeLayout=kC.layout;var det={notify:function(p,x){var C=this._private;if(this.batching()){C.batchNotifications=C.batchNotifications||{};var L=C.batchNotifications[p]=C.batchNotifications[p]||this.collection();x!=null&&L.merge(x);return}if(C.notificationsEnabled){var O=this.renderer();this.destroyed()||!O||O.notify(p,x)}},notifications:function(p){var x=this._private;return p===void 0?x.notificationsEnabled:(x.notificationsEnabled=!!p,this)},noNotifications:function(p){this.notifications(!1),p(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var p=this._private;return p.batchCount==null&&(p.batchCount=0),p.batchCount===0&&(p.batchStyleEles=this.collection(),p.batchNotifications={}),p.batchCount++,this},endBatch:function(){var p=this._private;if(p.batchCount===0)return this;if(p.batchCount--,p.batchCount===0){p.batchStyleEles.updateStyle();var x=this.renderer();Object.keys(p.batchNotifications).forEach(function(C){var L=p.batchNotifications[C];L.empty()?x.notify(C):x.notify(C,L)})}return this},batch:function(p){return this.startBatch(),p(),this.endBatch(),this},batchData:function(p){var x=this;return this.batch(function(){for(var C=Object.keys(p),L=0;L0;)x.removeChild(x.childNodes[0]);p._private.renderer=null,p.mutableElements().forEach(function(C){var L=C._private;L.rscratch={},L.rstyle={},L.animation.current=[],L.animation.queue=[]})},onRender:function(p){return this.on("render",p)},offRender:function(p){return this.off("render",p)}};fM.invalidateDimensions=fM.resize;var EC={collection:function(p,x){return mt(p)?this.$(p):yt(p)?p.collection():rt(p)?(x||(x={}),new w1(this,p,x.unique,x.removed)):new w1(this)},nodes:function(p){var x=this.$(function(C){return C.isNode()});return p?x.filter(p):x},edges:function(p){var x=this.$(function(C){return C.isEdge()});return p?x.filter(p):x},$:function(p){var x=this._private.elements;return p?x.filter(p):x.spawnSelf()},mutableElements:function(){return this._private.elements}};EC.elements=EC.filter=EC.$;var W1={},Q8="t",pet="f";W1.apply=function(y){for(var p=this,x=p._private,C=x.cy,L=C.collection(),O=0;O0;if(st||Z&&bt){var pt=void 0;st&&bt||st?pt=q.properties:bt&&(pt=q.mappedProperties);for(var _t=0;_t1&&(qt=1),j.color){var ee=C.valueMin[0],Ut=C.valueMax[0],de=C.valueMin[1],Yt=C.valueMax[1],Ee=C.valueMin[2],Te=C.valueMax[2],ie=C.valueMin[3]==null?1:C.valueMin[3],ze=C.valueMax[3]==null?1:C.valueMax[3],me=[Math.round(ee+(Ut-ee)*qt),Math.round(de+(Yt-de)*qt),Math.round(Ee+(Te-Ee)*qt),Math.round(ie+(ze-ie)*qt)];O={bypass:C.bypass,name:C.name,value:me,strValue:"rgb("+me[0]+", "+me[1]+", "+me[2]+")"}}else if(j.number){var yn=C.valueMin+(C.valueMax-C.valueMin)*qt;O=this.parse(C.name,yn,C.bypass,st)}else return!1;if(!O)return _t(),!1;O.mapping=C,C=O;break}case N.data:{for(var nn=C.field.split("."),qe=Z.data,Tn=0;Tn0&&O>0){for(var j={},H=!1,q=0;q0?y.delayAnimation(N).play().promise().then(Pt):Pt()}).then(function(){return y.animation({style:j,duration:O,easing:y.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){x.removeBypasses(y,L),y.emitAndNotify("style"),C.transitioning=!1})}else C.transitioning&&(this.removeBypasses(y,L),y.emitAndNotify("style"),C.transitioning=!1)},W1.checkTrigger=function(y,p,x,C,L,O){var N=this.properties[p],j=L(N);j!=null&&j(x,C)&&O(N)},W1.checkZOrderTrigger=function(y,p,x,C){var L=this;this.checkTrigger(y,p,x,C,function(O){return O.triggersZOrder},function(){L._private.cy.notify("zorder",y)})},W1.checkBoundsTrigger=function(y,p,x,C){this.checkTrigger(y,p,x,C,function(L){return L.triggersBounds},function(L){y.dirtyCompoundBoundsCache(),y.dirtyBoundingBoxCache(),L.triggersBoundsOfParallelBeziers&&p==="curve-style"&&(x==="bezier"||C==="bezier")&&y.parallelEdges().forEach(function(O){O.isBundledBezier()&&O.dirtyBoundingBoxCache()}),L.triggersBoundsOfConnectedEdges&&p==="display"&&(x==="none"||C==="none")&&y.connectedEdges().forEach(function(O){O.dirtyBoundingBoxCache()})})},W1.checkTriggers=function(y,p,x,C){y.dirtyStyleCache(),this.checkZOrderTrigger(y,p,x,C),this.checkBoundsTrigger(y,p,x,C)};var J8={};J8.applyBypass=function(y,p,x,C){var L=this,O=[],N=!0;if(p==="*"||p==="**"){if(x!==void 0)for(var j=0;jL.length?C=C.substr(L.length):C=""}function H(){O.length>N.length?O=O.substr(N.length):O=""}for(;;){var q=C.match(/^\s*$/);if(q)break;var W=C.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!W){Gc("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+C);break}L=W[0];var Z=W[1];if(Z!=="core"){var st=new ly(Z);if(st.invalid){Gc("Skipping parsing of block: Invalid selector found in string stylesheet: "+Z),j();continue}}var bt=W[2],pt=!1;O=bt;for(var _t=[];;){var St=O.match(/^\s*$/);if(St)break;var Et=O.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!Et){Gc("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+bt),pt=!0;break}N=Et[0];var Nt=Et[1],Pt=Et[2],qt=p.properties[Nt];if(!qt){Gc("Skipping property: Invalid property name in: "+N),H();continue}var re=x.parse(Nt,Pt);if(!re){Gc("Skipping property: Invalid property definition in: "+N),H();continue}_t.push({name:Nt,val:Pt}),H()}if(pt){j();break}x.selector(Z);for(var ee=0;ee<_t.length;ee++){var Ut=_t[ee];x.css(Ut.name,Ut.val)}j()}return x},gM.fromString=function(y){var p=this;return p.resetToDefault(),p.appendFromString(y),p};var m1={};(function(){var y=sn,p=Ne,x=_e,C=xe,L=Mn,O=function(mr){return"^"+mr+"\\s*\\(\\s*([\\w\\.]+)\\s*\\)$"},N=function(mr){var Sr=y+"|\\w+|"+p+"|"+x+"|"+C+"|"+L;return"^"+mr+"\\s*\\(([\\w\\.]+)\\s*\\,\\s*("+y+")\\s*\\,\\s*("+y+")\\s*,\\s*("+Sr+")\\s*\\,\\s*("+Sr+")\\)$"},j=[`^url\\s*\\(\\s*['"]?(.+?)['"]?\\s*\\)$`,"^(none)$","^(.+)$"];m1.types={time:{number:!0,min:0,units:"s|ms",implicitUnits:"ms"},percent:{number:!0,min:0,max:100,units:"%",implicitUnits:"%"},percentages:{number:!0,min:0,max:100,units:"%",implicitUnits:"%",multiple:!0},zeroOneNumber:{number:!0,min:0,max:1,unitless:!0},zeroOneNumbers:{number:!0,min:0,max:1,unitless:!0,multiple:!0},nOneOneNumber:{number:!0,min:-1,max:1,unitless:!0},nonNegativeInt:{number:!0,min:0,integer:!0,unitless:!0},nonNegativeNumber:{number:!0,min:0,unitless:!0},position:{enums:["parent","origin"]},nodeSize:{number:!0,min:0,enums:["label"]},number:{number:!0,unitless:!0},numbers:{number:!0,unitless:!0,multiple:!0},positiveNumber:{number:!0,unitless:!0,min:0,strictMin:!0},size:{number:!0,min:0},bidirectionalSize:{number:!0},bidirectionalSizeMaybePercent:{number:!0,allowPercent:!0},bidirectionalSizes:{number:!0,multiple:!0},sizeMaybePercent:{number:!0,min:0,allowPercent:!0},axisDirection:{enums:["horizontal","leftward","rightward","vertical","upward","downward","auto"]},paddingRelativeTo:{enums:["width","height","average","min","max"]},bgWH:{number:!0,min:0,allowPercent:!0,enums:["auto"],multiple:!0},bgPos:{number:!0,allowPercent:!0,multiple:!0},bgRelativeTo:{enums:["inner","include-padding"],multiple:!0},bgRepeat:{enums:["repeat","repeat-x","repeat-y","no-repeat"],multiple:!0},bgFit:{enums:["none","contain","cover"],multiple:!0},bgCrossOrigin:{enums:["anonymous","use-credentials","null"],multiple:!0},bgClip:{enums:["none","node"],multiple:!0},bgContainment:{enums:["inside","over"],multiple:!0},color:{color:!0},colors:{color:!0,multiple:!0},fill:{enums:["solid","linear-gradient","radial-gradient"]},bool:{enums:["yes","no"]},bools:{enums:["yes","no"],multiple:!0},lineStyle:{enums:["solid","dotted","dashed"]},lineCap:{enums:["butt","round","square"]},borderStyle:{enums:["solid","dotted","dashed","double"]},curveStyle:{enums:["bezier","unbundled-bezier","haystack","segments","straight","straight-triangle","taxi"]},fontFamily:{regex:'^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$'},fontStyle:{enums:["italic","normal","oblique"]},fontWeight:{enums:["normal","bold","bolder","lighter","100","200","300","400","500","600","800","900",100,200,300,400,500,600,700,800,900]},textDecoration:{enums:["none","underline","overline","line-through"]},textTransform:{enums:["none","uppercase","lowercase"]},textWrap:{enums:["none","wrap","ellipsis"]},textOverflowWrap:{enums:["whitespace","anywhere"]},textBackgroundShape:{enums:["rectangle","roundrectangle","round-rectangle"]},nodeShape:{enums:["rectangle","roundrectangle","round-rectangle","cutrectangle","cut-rectangle","bottomroundrectangle","bottom-round-rectangle","barrel","ellipse","triangle","round-triangle","square","pentagon","round-pentagon","hexagon","round-hexagon","concavehexagon","concave-hexagon","heptagon","round-heptagon","octagon","round-octagon","tag","round-tag","star","diamond","round-diamond","vee","rhomboid","right-rhomboid","polygon"]},overlayShape:{enums:["roundrectangle","round-rectangle","ellipse"]},compoundIncludeLabels:{enums:["include","exclude"]},arrowShape:{enums:["tee","triangle","triangle-tee","circle-triangle","triangle-cross","triangle-backcurve","vee","square","circle","diamond","chevron","none"]},arrowFill:{enums:["filled","hollow"]},arrowWidth:{number:!0,units:"%|px|em",implicitUnits:"px",enums:["match-line"]},display:{enums:["element","none"]},visibility:{enums:["hidden","visible"]},zCompoundDepth:{enums:["bottom","orphan","auto","top"]},zIndexCompare:{enums:["auto","manual"]},valign:{enums:["top","center","bottom"]},halign:{enums:["left","center","right"]},justification:{enums:["left","center","right","auto"]},text:{string:!0},data:{mapping:!0,regex:O("data")},layoutData:{mapping:!0,regex:O("layoutData")},scratch:{mapping:!0,regex:O("scratch")},mapData:{mapping:!0,regex:N("mapData")},mapLayoutData:{mapping:!0,regex:N("mapLayoutData")},mapScratch:{mapping:!0,regex:N("mapScratch")},fn:{mapping:!0,fn:!0},url:{regexes:j,singleRegexMatchValue:!0},urls:{regexes:j,singleRegexMatchValue:!0,multiple:!0},propList:{propList:!0},angle:{number:!0,units:"deg|rad",implicitUnits:"rad"},textRotation:{number:!0,units:"deg|rad",implicitUnits:"rad",enums:["none","autorotate"]},polygonPointList:{number:!0,multiple:!0,evenMultiple:!0,min:-1,max:1,unitless:!0},edgeDistances:{enums:["intersection","node-position","endpoints"]},edgeEndpoint:{number:!0,multiple:!0,units:"%|px|em|deg|rad",implicitUnits:"px",enums:["inside-to-node","outside-to-node","outside-to-node-or-label","outside-to-line","outside-to-line-or-label"],singleEnum:!0,validate:function(mr,Sr){switch(mr.length){case 2:return Sr[0]!=="deg"&&Sr[0]!=="rad"&&Sr[1]!=="deg"&&Sr[1]!=="rad";case 1:return mt(mr[0])||Sr[0]==="deg"||Sr[0]==="rad";default:return!1}}},easing:{regexes:["^(spring)\\s*\\(\\s*("+y+")\\s*,\\s*("+y+")\\s*\\)$","^(cubic-bezier)\\s*\\(\\s*("+y+")\\s*,\\s*("+y+")\\s*,\\s*("+y+")\\s*,\\s*("+y+")\\s*\\)$"],enums:["linear","ease","ease-in","ease-out","ease-in-out","ease-in-sine","ease-out-sine","ease-in-out-sine","ease-in-quad","ease-out-quad","ease-in-out-quad","ease-in-cubic","ease-out-cubic","ease-in-out-cubic","ease-in-quart","ease-out-quart","ease-in-out-quart","ease-in-quint","ease-out-quint","ease-in-out-quint","ease-in-expo","ease-out-expo","ease-in-out-expo","ease-in-circ","ease-out-circ","ease-in-out-circ"]},gradientDirection:{enums:["to-bottom","to-top","to-left","to-right","to-bottom-right","to-bottom-left","to-top-right","to-top-left","to-right-bottom","to-left-bottom","to-right-top","to-left-top"]},boundsExpansion:{number:!0,multiple:!0,min:0,validate:function(mr){var Sr=mr.length;return Sr===1||Sr===2||Sr===4}}};var H={zeroNonZero:function(mr,Sr){return(mr==null||Sr==null)&&mr!==Sr||mr==0&&Sr!=0?!0:mr!=0&&Sr==0},any:function(mr,Sr){return mr!=Sr},emptyNonEmpty:function(mr,Sr){var gi=Ft(mr),ss=Ft(Sr);return gi&&!ss||!gi&&ss}},q=m1.types,W=[{name:"label",type:q.text,triggersBounds:H.any,triggersZOrder:H.emptyNonEmpty},{name:"text-rotation",type:q.textRotation,triggersBounds:H.any},{name:"text-margin-x",type:q.bidirectionalSize,triggersBounds:H.any},{name:"text-margin-y",type:q.bidirectionalSize,triggersBounds:H.any}],Z=[{name:"source-label",type:q.text,triggersBounds:H.any},{name:"source-text-rotation",type:q.textRotation,triggersBounds:H.any},{name:"source-text-margin-x",type:q.bidirectionalSize,triggersBounds:H.any},{name:"source-text-margin-y",type:q.bidirectionalSize,triggersBounds:H.any},{name:"source-text-offset",type:q.size,triggersBounds:H.any}],st=[{name:"target-label",type:q.text,triggersBounds:H.any},{name:"target-text-rotation",type:q.textRotation,triggersBounds:H.any},{name:"target-text-margin-x",type:q.bidirectionalSize,triggersBounds:H.any},{name:"target-text-margin-y",type:q.bidirectionalSize,triggersBounds:H.any},{name:"target-text-offset",type:q.size,triggersBounds:H.any}],bt=[{name:"font-family",type:q.fontFamily,triggersBounds:H.any},{name:"font-style",type:q.fontStyle,triggersBounds:H.any},{name:"font-weight",type:q.fontWeight,triggersBounds:H.any},{name:"font-size",type:q.size,triggersBounds:H.any},{name:"text-transform",type:q.textTransform,triggersBounds:H.any},{name:"text-wrap",type:q.textWrap,triggersBounds:H.any},{name:"text-overflow-wrap",type:q.textOverflowWrap,triggersBounds:H.any},{name:"text-max-width",type:q.size,triggersBounds:H.any},{name:"text-outline-width",type:q.size,triggersBounds:H.any},{name:"line-height",type:q.positiveNumber,triggersBounds:H.any}],pt=[{name:"text-valign",type:q.valign,triggersBounds:H.any},{name:"text-halign",type:q.halign,triggersBounds:H.any},{name:"color",type:q.color},{name:"text-outline-color",type:q.color},{name:"text-outline-opacity",type:q.zeroOneNumber},{name:"text-background-color",type:q.color},{name:"text-background-opacity",type:q.zeroOneNumber},{name:"text-background-padding",type:q.size,triggersBounds:H.any},{name:"text-border-opacity",type:q.zeroOneNumber},{name:"text-border-color",type:q.color},{name:"text-border-width",type:q.size,triggersBounds:H.any},{name:"text-border-style",type:q.borderStyle,triggersBounds:H.any},{name:"text-background-shape",type:q.textBackgroundShape,triggersBounds:H.any},{name:"text-justification",type:q.justification}],_t=[{name:"events",type:q.bool,triggersZOrder:H.any},{name:"text-events",type:q.bool,triggersZOrder:H.any}],St=[{name:"display",type:q.display,triggersZOrder:H.any,triggersBounds:H.any,triggersBoundsOfConnectedEdges:!0},{name:"visibility",type:q.visibility,triggersZOrder:H.any},{name:"opacity",type:q.zeroOneNumber,triggersZOrder:H.zeroNonZero},{name:"text-opacity",type:q.zeroOneNumber},{name:"min-zoomed-font-size",type:q.size},{name:"z-compound-depth",type:q.zCompoundDepth,triggersZOrder:H.any},{name:"z-index-compare",type:q.zIndexCompare,triggersZOrder:H.any},{name:"z-index",type:q.number,triggersZOrder:H.any}],Et=[{name:"overlay-padding",type:q.size,triggersBounds:H.any},{name:"overlay-color",type:q.color},{name:"overlay-opacity",type:q.zeroOneNumber,triggersBounds:H.zeroNonZero},{name:"overlay-shape",type:q.overlayShape,triggersBounds:H.any}],Nt=[{name:"underlay-padding",type:q.size,triggersBounds:H.any},{name:"underlay-color",type:q.color},{name:"underlay-opacity",type:q.zeroOneNumber,triggersBounds:H.zeroNonZero},{name:"underlay-shape",type:q.overlayShape,triggersBounds:H.any}],Pt=[{name:"transition-property",type:q.propList},{name:"transition-duration",type:q.time},{name:"transition-delay",type:q.time},{name:"transition-timing-function",type:q.easing}],qt=function(mr,Sr){return Sr.value==="label"?-mr.poolIndex():Sr.pfValue},re=[{name:"height",type:q.nodeSize,triggersBounds:H.any,hashOverride:qt},{name:"width",type:q.nodeSize,triggersBounds:H.any,hashOverride:qt},{name:"shape",type:q.nodeShape,triggersBounds:H.any},{name:"shape-polygon-points",type:q.polygonPointList,triggersBounds:H.any},{name:"background-color",type:q.color},{name:"background-fill",type:q.fill},{name:"background-opacity",type:q.zeroOneNumber},{name:"background-blacken",type:q.nOneOneNumber},{name:"background-gradient-stop-colors",type:q.colors},{name:"background-gradient-stop-positions",type:q.percentages},{name:"background-gradient-direction",type:q.gradientDirection},{name:"padding",type:q.sizeMaybePercent,triggersBounds:H.any},{name:"padding-relative-to",type:q.paddingRelativeTo,triggersBounds:H.any},{name:"bounds-expansion",type:q.boundsExpansion,triggersBounds:H.any}],ee=[{name:"border-color",type:q.color},{name:"border-opacity",type:q.zeroOneNumber},{name:"border-width",type:q.size,triggersBounds:H.any},{name:"border-style",type:q.borderStyle}],Ut=[{name:"outline-color",type:q.color},{name:"outline-opacity",type:q.zeroOneNumber},{name:"outline-width",type:q.size,triggersBounds:H.any},{name:"outline-style",type:q.borderStyle},{name:"outline-offset",type:q.size,triggersBounds:H.any}],de=[{name:"background-image",type:q.urls},{name:"background-image-crossorigin",type:q.bgCrossOrigin},{name:"background-image-opacity",type:q.zeroOneNumbers},{name:"background-image-containment",type:q.bgContainment},{name:"background-image-smoothing",type:q.bools},{name:"background-position-x",type:q.bgPos},{name:"background-position-y",type:q.bgPos},{name:"background-width-relative-to",type:q.bgRelativeTo},{name:"background-height-relative-to",type:q.bgRelativeTo},{name:"background-repeat",type:q.bgRepeat},{name:"background-fit",type:q.bgFit},{name:"background-clip",type:q.bgClip},{name:"background-width",type:q.bgWH},{name:"background-height",type:q.bgWH},{name:"background-offset-x",type:q.bgPos},{name:"background-offset-y",type:q.bgPos}],Yt=[{name:"position",type:q.position,triggersBounds:H.any},{name:"compound-sizing-wrt-labels",type:q.compoundIncludeLabels,triggersBounds:H.any},{name:"min-width",type:q.size,triggersBounds:H.any},{name:"min-width-bias-left",type:q.sizeMaybePercent,triggersBounds:H.any},{name:"min-width-bias-right",type:q.sizeMaybePercent,triggersBounds:H.any},{name:"min-height",type:q.size,triggersBounds:H.any},{name:"min-height-bias-top",type:q.sizeMaybePercent,triggersBounds:H.any},{name:"min-height-bias-bottom",type:q.sizeMaybePercent,triggersBounds:H.any}],Ee=[{name:"line-style",type:q.lineStyle},{name:"line-color",type:q.color},{name:"line-fill",type:q.fill},{name:"line-cap",type:q.lineCap},{name:"line-opacity",type:q.zeroOneNumber},{name:"line-dash-pattern",type:q.numbers},{name:"line-dash-offset",type:q.number},{name:"line-gradient-stop-colors",type:q.colors},{name:"line-gradient-stop-positions",type:q.percentages},{name:"curve-style",type:q.curveStyle,triggersBounds:H.any,triggersBoundsOfParallelBeziers:!0},{name:"haystack-radius",type:q.zeroOneNumber,triggersBounds:H.any},{name:"source-endpoint",type:q.edgeEndpoint,triggersBounds:H.any},{name:"target-endpoint",type:q.edgeEndpoint,triggersBounds:H.any},{name:"control-point-step-size",type:q.size,triggersBounds:H.any},{name:"control-point-distances",type:q.bidirectionalSizes,triggersBounds:H.any},{name:"control-point-weights",type:q.numbers,triggersBounds:H.any},{name:"segment-distances",type:q.bidirectionalSizes,triggersBounds:H.any},{name:"segment-weights",type:q.numbers,triggersBounds:H.any},{name:"taxi-turn",type:q.bidirectionalSizeMaybePercent,triggersBounds:H.any},{name:"taxi-turn-min-distance",type:q.size,triggersBounds:H.any},{name:"taxi-direction",type:q.axisDirection,triggersBounds:H.any},{name:"edge-distances",type:q.edgeDistances,triggersBounds:H.any},{name:"arrow-scale",type:q.positiveNumber,triggersBounds:H.any},{name:"loop-direction",type:q.angle,triggersBounds:H.any},{name:"loop-sweep",type:q.angle,triggersBounds:H.any},{name:"source-distance-from-node",type:q.size,triggersBounds:H.any},{name:"target-distance-from-node",type:q.size,triggersBounds:H.any}],Te=[{name:"ghost",type:q.bool,triggersBounds:H.any},{name:"ghost-offset-x",type:q.bidirectionalSize,triggersBounds:H.any},{name:"ghost-offset-y",type:q.bidirectionalSize,triggersBounds:H.any},{name:"ghost-opacity",type:q.zeroOneNumber}],ie=[{name:"selection-box-color",type:q.color},{name:"selection-box-opacity",type:q.zeroOneNumber},{name:"selection-box-border-color",type:q.color},{name:"selection-box-border-width",type:q.size},{name:"active-bg-color",type:q.color},{name:"active-bg-opacity",type:q.zeroOneNumber},{name:"active-bg-size",type:q.size},{name:"outside-texture-bg-color",type:q.color},{name:"outside-texture-bg-opacity",type:q.zeroOneNumber}],ze=[];m1.pieBackgroundN=16,ze.push({name:"pie-size",type:q.sizeMaybePercent});for(var me=1;me<=m1.pieBackgroundN;me++)ze.push({name:"pie-"+me+"-background-color",type:q.color}),ze.push({name:"pie-"+me+"-background-size",type:q.percent}),ze.push({name:"pie-"+me+"-background-opacity",type:q.zeroOneNumber});var yn=[],nn=m1.arrowPrefixes=["source","mid-source","target","mid-target"];[{name:"arrow-shape",type:q.arrowShape,triggersBounds:H.any},{name:"arrow-color",type:q.color},{name:"arrow-fill",type:q.arrowFill},{name:"arrow-width",type:q.arrowWidth}].forEach(function(cr){nn.forEach(function(mr){var Sr=mr+"-"+cr.name,gi=cr.type,ss=cr.triggersBounds;yn.push({name:Sr,type:gi,triggersBounds:ss})})},{});var qe=m1.properties=[].concat(_t,Pt,St,Et,Nt,Te,pt,bt,W,Z,st,re,ee,Ut,de,ze,Yt,Ee,yn,ie),Tn=m1.propertyGroups={behavior:_t,transition:Pt,visibility:St,overlay:Et,underlay:Nt,ghost:Te,commonLabel:pt,labelDimensions:bt,mainLabel:W,sourceLabel:Z,targetLabel:st,nodeBody:re,nodeBorder:ee,nodeOutline:Ut,backgroundImage:de,pie:ze,compound:Yt,edgeLine:Ee,edgeArrow:yn,core:ie},Xn=m1.propertyGroupNames={},lr=m1.propertyGroupKeys=Object.keys(Tn);lr.forEach(function(cr){Xn[cr]=Tn[cr].map(function(mr){return mr.name}),Tn[cr].forEach(function(mr){return mr.groupKey=cr})});var Sn=m1.aliases=[{name:"content",pointsTo:"label"},{name:"control-point-distance",pointsTo:"control-point-distances"},{name:"control-point-weight",pointsTo:"control-point-weights"},{name:"edge-text-rotation",pointsTo:"text-rotation"},{name:"padding-left",pointsTo:"padding"},{name:"padding-right",pointsTo:"padding"},{name:"padding-top",pointsTo:"padding"},{name:"padding-bottom",pointsTo:"padding"}];m1.propertyNames=qe.map(function(cr){return cr.name});for(var or=0;or=7&&p[0]==="d"&&(W=new RegExp(j.data.regex).exec(p))){if(x)return!1;var st=j.data;return{name:y,value:W,strValue:""+p,mapped:st,field:W[1],bypass:x}}else if(p.length>=10&&p[0]==="m"&&(Z=new RegExp(j.mapData.regex).exec(p))){if(x||q.multiple)return!1;var bt=j.mapData;if(!(q.color||q.number))return!1;var pt=this.parse(y,Z[4]);if(!pt||pt.mapped)return!1;var _t=this.parse(y,Z[5]);if(!_t||_t.mapped)return!1;if(pt.pfValue===_t.pfValue||pt.strValue===_t.strValue)return Gc("`"+y+": "+p+"` is not a valid mapper because the output range is zero; converting to `"+y+": "+pt.strValue+"`"),this.parse(y,pt.strValue);if(q.color){var St=pt.value,Et=_t.value,Nt=St[0]===Et[0]&&St[1]===Et[1]&&St[2]===Et[2]&&(St[3]===Et[3]||(St[3]==null||St[3]===1)&&(Et[3]==null||Et[3]===1));if(Nt)return!1}return{name:y,value:Z,strValue:""+p,mapped:bt,field:Z[1],fieldMin:parseFloat(Z[2]),fieldMax:parseFloat(Z[3]),valueMin:pt.value,valueMax:_t.value,bypass:x}}}if(q.multiple&&C!=="multiple"){var Pt;if(H?Pt=p.split(/\s+/):rt(p)?Pt=p:Pt=[p],q.evenMultiple&&Pt.length%2!==0)return null;for(var qt=[],re=[],ee=[],Ut="",de=!1,Yt=0;Yt0?" ":"")+Ee.strValue}return q.validate&&!q.validate(qt,re)?null:q.singleEnum&&de?qt.length===1&&mt(qt[0])?{name:y,value:qt[0],strValue:qt[0],bypass:x}:null:{name:y,value:qt,pfValue:ee,strValue:Ut,bypass:x,units:re}}var Te=function(){for(var mr=0;mrq.max||q.strictMax&&p===q.max))return null;var nn={name:y,value:p,strValue:""+p+(ie||""),units:ie,bypass:x};return q.unitless||ie!=="px"&&ie!=="em"?nn.pfValue=p:nn.pfValue=ie==="px"||!ie?p:this.getEmSizeInPixels()*p,(ie==="ms"||ie==="s")&&(nn.pfValue=ie==="ms"?p:1e3*p),(ie==="deg"||ie==="rad")&&(nn.pfValue=ie==="rad"?p:lQ(p)),ie==="%"&&(nn.pfValue=p/100),nn}else if(q.propList){var qe=[],Tn=""+p;if(Tn!=="none"){for(var Xn=Tn.split(/\s*,\s*|\s+/),lr=0;lr0&&j>0&&!isNaN(C.w)&&!isNaN(C.h)&&C.w>0&&C.h>0){H=Math.min((N-2*x)/C.w,(j-2*x)/C.h),H=H>this._private.maxZoom?this._private.maxZoom:H,H=H=C.minZoom&&(C.maxZoom=x),this},minZoom:function(p){return p===void 0?this._private.minZoom:this.zoomRange({min:p})},maxZoom:function(p){return p===void 0?this._private.maxZoom:this.zoomRange({max:p})},getZoomedViewport:function(p){var x=this._private,C=x.pan,L=x.zoom,O,N,j=!1;if(x.zoomingEnabled||(j=!0),Q(p)?N=p:it(p)&&(N=p.level,p.position!=null?O=W9(p.position,L,C):p.renderedPosition!=null&&(O=p.renderedPosition),O!=null&&!x.panningEnabled&&(j=!0)),N=N>x.maxZoom?x.maxZoom:N,N=Nx.maxZoom||!x.zoomingEnabled?N=!0:(x.zoom=H,O.push("zoom"))}if(L&&(!N||!p.cancelOnFailedZoom)&&x.panningEnabled){var q=p.pan;Q(q.x)&&(x.pan.x=q.x,j=!1),Q(q.y)&&(x.pan.y=q.y,j=!1),j||O.push("pan")}return O.length>0&&(O.push("viewport"),this.emit(O.join(" ")),this.notify("viewport")),this},center:function(p){var x=this.getCenterPan(p);return x&&(this._private.pan=x,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(p,x){if(this._private.panningEnabled){if(mt(p)){var C=p;p=this.mutableElements().filter(C)}else yt(p)||(p=this.mutableElements());if(p.length!==0){var L=p.boundingBox(),O=this.width(),N=this.height();x=x===void 0?this._private.zoom:x;var j={x:(O-x*(L.x1+L.x2))/2,y:(N-x*(L.y1+L.y2))/2};return j}}},reset:function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},invalidateSize:function(){this._private.sizeCache=null},size:function(){var p=this._private,x=p.container,C=this;return p.sizeCache=p.sizeCache||(x?function(){var L=C.window().getComputedStyle(x),O=function(j){return parseFloat(L.getPropertyValue(j))};return{width:x.clientWidth-O("padding-left")-O("padding-right"),height:x.clientHeight-O("padding-top")-O("padding-bottom")}}():{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var p=this._private.pan,x=this._private.zoom,C=this.renderedExtent(),L={x1:(C.x1-p.x)/x,x2:(C.x2-p.x)/x,y1:(C.y1-p.y)/x,y2:(C.y2-p.y)/x};return L.w=L.x2-L.x1,L.h=L.y2-L.y1,L},renderedExtent:function(){var p=this.width(),x=this.height();return{x1:0,y1:0,x2:p,y2:x,w:p,h:x}},multiClickDebounceTime:function(p){if(p)this._private.multiClickDebounceTime=p;else return this._private.multiClickDebounceTime;return this}};T4.centre=T4.center,T4.autolockNodes=T4.autolock,T4.autoungrabifyNodes=T4.autoungrabify;var Z8={data:Kc.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:Kc.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:Kc.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Kc.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Z8.attr=Z8.data,Z8.removeAttr=Z8.removeData;var tE=function(p){var x=this;p=we({},p);var C=p.container;C&&!K(C)&&K(C[0])&&(C=C[0]);var L=C?C._cyreg:null;L=L||{},L&&L.cy&&(L.cy.destroy(),L={});var O=L.readies=L.readies||[];C&&(C._cyreg=L),L.cy=x;var N=B!==void 0&&C!==void 0&&!p.headless,j=p;j.layout=we({name:N?"grid":"null"},j.layout),j.renderer=we({name:N?"canvas":"null"},j.renderer);var H=function(pt,_t,St){return _t!==void 0?_t:St!==void 0?St:pt},q=this._private={container:C,ready:!1,options:j,elements:new w1(this),listeners:[],aniEles:new w1(this),data:j.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:H(!0,j.zoomingEnabled),userZoomingEnabled:H(!0,j.userZoomingEnabled),panningEnabled:H(!0,j.panningEnabled),userPanningEnabled:H(!0,j.userPanningEnabled),boxSelectionEnabled:H(!0,j.boxSelectionEnabled),autolock:H(!1,j.autolock,j.autolockNodes),autoungrabify:H(!1,j.autoungrabify,j.autoungrabifyNodes),autounselectify:H(!1,j.autounselectify),styleEnabled:j.styleEnabled===void 0?N:j.styleEnabled,zoom:Q(j.zoom)?j.zoom:1,pan:{x:it(j.pan)&&Q(j.pan.x)?j.pan.x:0,y:it(j.pan)&&Q(j.pan.y)?j.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:H(250,j.multiClickDebounceTime)};this.createEmitter(),this.selectionType(j.selectionType),this.zoomRange({min:j.minZoom,max:j.maxZoom});var W=function(pt,_t){var St=pt.some(Gt);if(St)return e6.all(pt).then(_t);_t(pt)};q.styleEnabled&&x.setStyle([]);var Z=we({},j,j.renderer);x.initRenderer(Z);var st=function(pt,_t,St){x.notifications(!1);var Et=x.mutableElements();Et.length>0&&Et.remove(),pt!=null&&(it(pt)||rt(pt))&&x.add(pt),x.one("layoutready",function(Pt){x.notifications(!0),x.emit(Pt),x.one("load",_t),x.emitAndNotify("load")}).one("layoutstop",function(){x.one("done",St),x.emit("done")});var Nt=we({},x._private.options.layout);Nt.eles=x.elements(),x.layout(Nt).run()};W([j.style,j.elements],function(bt){var pt=bt[0],_t=bt[1];q.styleEnabled&&x.style().append(pt),st(_t,function(){x.startAnimationLoop(),q.ready=!0,ct(j.ready)&&x.on("ready",j.ready);for(var St=0;St0,H=v0(p.boundingBox?p.boundingBox:{x1:0,y1:0,w:x.width(),h:x.height()}),q;if(yt(p.roots))q=p.roots;else if(rt(p.roots)){for(var W=[],Z=0;Z0;){var yn=me(),nn=Ee(yn,ie);if(nn)yn.outgoers().filter(function(vi){return vi.isNode()&&C.has(vi)}).forEach(ze);else if(nn===null){Gc("Detected double maximal shift for node `"+yn.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}Yt();var qe=0;if(p.avoidOverlap)for(var Tn=0;Tn0&&Et[0].length<=3?pa/2:0),G=2*Math.PI/Et[ks].length*as;return ks===0&&Et[0].length===1&&(Kn=1),{x:gi.x+Kn*Math.cos(G),y:gi.y+Kn*Math.sin(G)}}else{var mo={x:gi.x+(as+1-(Es+1)/2)*eo,y:(ks+1)*Ta};return mo}};return C.nodes().layoutPositions(this,p,na),this};var yet={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(p,x){return!0},ready:void 0,stop:void 0,transform:function(p,x){return x}};function lj(y){this.options=we({},yet,y)}lj.prototype.run=function(){var y=this.options,p=y,x=y.cy,C=p.eles,L=p.counterclockwise!==void 0?!p.counterclockwise:p.clockwise,O=C.nodes().not(":parent");p.sort&&(O=O.sort(p.sort));for(var N=v0(p.boundingBox?p.boundingBox:{x1:0,y1:0,w:x.width(),h:x.height()}),j={x:N.x1+N.w/2,y:N.y1+N.h/2},H=p.sweep===void 0?2*Math.PI-2*Math.PI/O.length:p.sweep,q=H/Math.max(1,O.length-1),W,Z=0,st=0;st1&&p.avoidOverlap){Z*=1.75;var Et=Math.cos(q)-Math.cos(0),Nt=Math.sin(q)-Math.sin(0),Pt=Math.sqrt(Z*Z/(Et*Et+Nt*Nt));W=Math.max(Pt,W)}var qt=function(ee,Ut){var de=p.startAngle+Ut*q*(L?1:-1),Yt=W*Math.cos(de),Ee=W*Math.sin(de),Te={x:j.x+Yt,y:j.y+Ee};return Te};return C.nodes().layoutPositions(this,p,qt),this};var xet={fit:!0,padding:30,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(p){return p.degree()},levelWidth:function(p){return p.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(p,x){return!0},ready:void 0,stop:void 0,transform:function(p,x){return x}};function hj(y){this.options=we({},xet,y)}hj.prototype.run=function(){for(var y=this.options,p=y,x=p.counterclockwise!==void 0?!p.counterclockwise:p.clockwise,C=y.cy,L=p.eles,O=L.nodes().not(":parent"),N=v0(p.boundingBox?p.boundingBox:{x1:0,y1:0,w:C.width(),h:C.height()}),j={x:N.x1+N.w/2,y:N.y1+N.h/2},H=[],q=0,W=0;W0){var re=Math.abs(Nt[0].value-qt.value);re>=St&&(Nt=[],Et.push(Nt))}Nt.push(qt)}var ee=q+p.minNodeSpacing;if(!p.avoidOverlap){var Ut=Et.length>0&&Et[0].length>1,de=Math.min(N.w,N.h)/2-ee,Yt=de/(Et.length+Ut?1:0);ee=Math.min(ee,Yt)}for(var Ee=0,Te=0;Te1&&p.avoidOverlap){var yn=Math.cos(me)-Math.cos(0),nn=Math.sin(me)-Math.sin(0),qe=Math.sqrt(ee*ee/(yn*yn+nn*nn));Ee=Math.max(qe,Ee)}ie.r=Ee,Ee+=ee}if(p.equidistant){for(var Tn=0,Xn=0,lr=0;lr=y.numIter||(Det(C,y),C.temperature=C.temperature*y.coolingFactor,C.temperature=y.animationThreshold&&O(),g1(Z)}};W()}else{for(;q;)q=N(H),H++;gj(C,y),j()}return this},_C.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},_C.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var Eet=function(p,x,C){for(var L=C.eles.edges(),O=C.eles.nodes(),N=v0(C.boundingBox?C.boundingBox:{x1:0,y1:0,w:p.width(),h:p.height()}),j={isCompound:p.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:O.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:L.size(),temperature:C.initialTemp,clientWidth:N.w,clientHeight:N.h,boundingBox:N},H=C.eles.components(),q={},W=0;W0){j.graphSet.push(de);for(var W=0;WL.count?0:L.graph},Cet=function y(p,x,C,L){var O=L.graphSet[C];if(-10)var Z=L.nodeOverlap*W,st=Math.sqrt(j*j+H*H),bt=Z*j/st,pt=Z*H/st;else var _t=AC(p,j,H),St=AC(x,-1*j,-1*H),Et=St.x-_t.x,Nt=St.y-_t.y,Pt=Et*Et+Nt*Nt,st=Math.sqrt(Pt),Z=(p.nodeRepulsion+x.nodeRepulsion)/Pt,bt=Z*Et/st,pt=Z*Nt/st;p.isLocked||(p.offsetX-=bt,p.offsetY-=pt),x.isLocked||(x.offsetX+=bt,x.offsetY+=pt)}},Oet=function(p,x,C,L){if(C>0)var O=p.maxX-x.minX;else var O=x.maxX-p.minX;if(L>0)var N=p.maxY-x.minY;else var N=x.maxY-p.minY;return O>=0&&N>=0?Math.sqrt(O*O+N*N):0},AC=function(p,x,C){var L=p.positionX,O=p.positionY,N=p.height||1,j=p.width||1,H=C/x,q=N/j,W={};return x===0&&0C?(W.x=L,W.y=O+N/2,W):0x&&-1*q<=H&&H<=q?(W.x=L-j/2,W.y=O-j*C/2/x,W):0=q)?(W.x=L+N*x/2/C,W.y=O+N/2,W):(0>C&&(H<=-1*q||H>=q)&&(W.x=L-N*x/2/C,W.y=O-N/2),W)},Net=function(p,x){for(var C=0;CC){var St=x.gravity*bt/_t,Et=x.gravity*pt/_t;st.offsetX+=St,st.offsetY+=Et}}}}},Fet=function(p,x){var C=[],L=0,O=-1;for(C.push.apply(C,p.graphSet[0]),O+=p.graphSet[0].length;L<=O;){var N=C[L++],j=p.idToIndex[N],H=p.layoutNodes[j],q=H.children;if(0C)var O={x:C*p/L,y:C*x/L};else var O={x:p,y:x};return O},jet=function y(p,x){var C=p.parentId;if(C!=null){var L=x.layoutNodes[x.idToIndex[C]],O=!1;if((L.maxX==null||p.maxX+L.padRight>L.maxX)&&(L.maxX=p.maxX+L.padRight,O=!0),(L.minX==null||p.minX-L.padLeftL.maxY)&&(L.maxY=p.maxY+L.padBottom,O=!0),(L.minY==null||p.minY-L.padTopEt&&(pt+=St+x.componentSpacing,bt=0,_t=0,St=0)}}},$et={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(p){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(p,x){return!0},ready:void 0,stop:void 0,transform:function(p,x){return x}};function pj(y){this.options=we({},$et,y)}pj.prototype.run=function(){var y=this.options,p=y,x=y.cy,C=p.eles,L=C.nodes().not(":parent");p.sort&&(L=L.sort(p.sort));var O=v0(p.boundingBox?p.boundingBox:{x1:0,y1:0,w:x.width(),h:x.height()});if(O.h===0||O.w===0)C.nodes().layoutPositions(this,p,function(pr){return{x:O.x1,y:O.y1}});else{var N=L.size(),j=Math.sqrt(N*O.h/O.w),H=Math.round(j),q=Math.round(O.w/O.h*j),W=function(kr){if(kr==null)return Math.min(H,q);var wr=Math.min(H,q);wr==H?H=kr:q=kr},Z=function(kr){if(kr==null)return Math.max(H,q);var wr=Math.max(H,q);wr==H?H=kr:q=kr},st=p.rows,bt=p.cols!=null?p.cols:p.columns;if(st!=null&&bt!=null)H=st,q=bt;else if(st!=null&&bt==null)H=st,q=Math.ceil(N/H);else if(st==null&&bt!=null)q=bt,H=Math.ceil(N/q);else if(q*H>N){var pt=W(),_t=Z();(pt-1)*_t>=N?W(pt-1):(_t-1)*pt>=N&&Z(_t-1)}else for(;q*H=N?Z(Et+1):W(St+1)}var Nt=O.w/q,Pt=O.h/H;if(p.condense&&(Nt=0,Pt=0),p.avoidOverlap)for(var qt=0;qt=q&&(yn=0,me++)},qe={},Tn=0;Tn(yn=EQ(y,p,nn[qe],nn[qe+1],nn[qe+2],nn[qe+3])))return St(Ut,yn),!0}else if(Yt.edgeType==="bezier"||Yt.edgeType==="multibezier"||Yt.edgeType==="self"||Yt.edgeType==="compound"){for(var nn=Yt.allpts,qe=0;qe+5(yn=kQ(y,p,nn[qe],nn[qe+1],nn[qe+2],nn[qe+3],nn[qe+4],nn[qe+5])))return St(Ut,yn),!0}for(var Tn=Tn||de.source,Xn=Xn||de.target,lr=L.getArrowWidth(Ee,Te),Sn=[{name:"source",x:Yt.arrowStartX,y:Yt.arrowStartY,angle:Yt.srcArrowAngle},{name:"target",x:Yt.arrowEndX,y:Yt.arrowEndY,angle:Yt.tgtArrowAngle},{name:"mid-source",x:Yt.midX,y:Yt.midY,angle:Yt.midsrcArrowAngle},{name:"mid-target",x:Yt.midX,y:Yt.midY,angle:Yt.midtgtArrowAngle}],qe=0;qe0&&(Et(Tn),Et(Xn))}function Pt(Ut,de,Yt){return fb(Ut,de,Yt)}function qt(Ut,de){var Yt=Ut._private,Ee=st,Te;de?Te=de+"-":Te="",Ut.boundingBox();var ie=Yt.labelBounds[de||"main"],ze=Ut.pstyle(Te+"label").value,me=Ut.pstyle("text-events").strValue==="yes";if(!(!me||!ze)){var yn=Pt(Yt.rscratch,"labelX",de),nn=Pt(Yt.rscratch,"labelY",de),qe=Pt(Yt.rscratch,"labelAngle",de),Tn=Ut.pstyle(Te+"text-margin-x").pfValue,Xn=Ut.pstyle(Te+"text-margin-y").pfValue,lr=ie.x1-Ee-Tn,Sn=ie.x2+Ee-Tn,or=ie.y1-Ee-Xn,pr=ie.y2+Ee-Xn;if(qe){var kr=Math.cos(qe),wr=Math.sin(qe),Cr=function(na,vi){return na=na-yn,vi=vi-nn,{x:na*kr-vi*wr+yn,y:na*wr+vi*kr+nn}},$n=Cr(lr,or),cr=Cr(lr,pr),mr=Cr(Sn,or),Sr=Cr(Sn,pr),gi=[$n.x+Tn,$n.y+Xn,mr.x+Tn,mr.y+Xn,Sr.x+Tn,Sr.y+Xn,cr.x+Tn,cr.y+Xn];if(y0(y,p,gi))return St(Ut),!0}else if(Qx(ie,y,p))return St(Ut),!0}}for(var re=N.length-1;re>=0;re--){var ee=N[re];ee.isNode()?Et(ee)||qt(ee):Nt(ee)||qt(ee)||qt(ee,"source")||qt(ee,"target")}return j},C4.getAllInBox=function(y,p,x,C){var L=this.getCachedZSortedEles().interactive,O=[],N=Math.min(y,x),j=Math.max(y,x),H=Math.min(p,C),q=Math.max(p,C);y=N,x=j,p=H,C=q;for(var W=v0({x1:y,y1:p,x2:x,y2:C}),Z=0;Z0?Math.max(hr-us,0):Math.min(hr+us,0)},ze=ie(Ee,de),me=ie(Te,Yt),yn=!1;Nt===q?Et=Math.abs(ze)>Math.abs(me)?L:C:Nt===H||Nt===j?(Et=C,yn=!0):(Nt===O||Nt===N)&&(Et=L,yn=!0);var nn=Et===C,qe=nn?me:ze,Tn=nn?Te:Ee,Xn=FB(Tn),lr=!1;!(yn&&(qt||ee))&&(Nt===j&&Tn<0||Nt===H&&Tn>0||Nt===O&&Tn>0||Nt===N&&Tn<0)&&(Xn*=-1,qe=Xn*Math.abs(qe),lr=!0);var Sn;if(qt){var or=re<0?1+re:re;Sn=or*qe}else{var pr=re<0?qe:0;Sn=pr+re*Xn}var kr=function(hr){return Math.abs(hr)=Math.abs(qe)},wr=kr(Sn),Cr=kr(Math.abs(qe)-Math.abs(Sn)),$n=wr||Cr;if($n&&!lr)if(nn){var cr=Math.abs(Tn)<=st/2,mr=Math.abs(Ee)<=bt/2;if(cr){var Sr=(W.x1+W.x2)/2,gi=W.y1,ss=W.y2;x.segpts=[Sr,gi,Sr,ss]}else if(mr){var na=(W.y1+W.y2)/2,vi=W.x1,si=W.x2;x.segpts=[vi,na,si,na]}else x.segpts=[W.x1,W.y2]}else{var Qi=Math.abs(Tn)<=Z/2,ks=Math.abs(Te)<=pt/2;if(Qi){var as=(W.y1+W.y2)/2,Es=W.x1,eo=W.x2;x.segpts=[Es,as,eo,as]}else if(ks){var Ta=(W.x1+W.x2)/2,pa=W.y1,mo=W.y2;x.segpts=[Ta,pa,Ta,mo]}else x.segpts=[W.x2,W.y1]}else if(nn){var Kn=W.y1+Sn+(St?st/2*Xn:0),G=W.x1,Vn=W.x2;x.segpts=[G,Kn,Vn,Kn]}else{var gr=W.x1+Sn+(St?Z/2*Xn:0),nr=W.y1,Be=W.y2;x.segpts=[gr,nr,gr,Be]}},Q1.tryToCorrectInvalidPoints=function(y,p){var x=y._private.rscratch;if(x.edgeType==="bezier"){var C=p.srcPos,L=p.tgtPos,O=p.srcW,N=p.srcH,j=p.tgtW,H=p.tgtH,q=p.srcShape,W=p.tgtShape,Z=!Q(x.startX)||!Q(x.startY),st=!Q(x.arrowStartX)||!Q(x.arrowStartY),bt=!Q(x.endX)||!Q(x.endY),pt=!Q(x.arrowEndX)||!Q(x.arrowEndY),_t=3,St=this.getArrowWidth(y.pstyle("width").pfValue,y.pstyle("arrow-scale").value)*this.arrowShapeWidth,Et=_t*St,Nt=w4({x:x.ctrlpts[0],y:x.ctrlpts[1]},{x:x.startX,y:x.startY}),Pt=Ntme.poolIndex()){var yn=ze;ze=me,me=yn}var nn=Yt.srcPos=ze.position(),qe=Yt.tgtPos=me.position(),Tn=Yt.srcW=ze.outerWidth(),Xn=Yt.srcH=ze.outerHeight(),lr=Yt.tgtW=me.outerWidth(),Sn=Yt.tgtH=me.outerHeight(),or=Yt.srcShape=x.nodeShapes[p.getNodeShape(ze)],pr=Yt.tgtShape=x.nodeShapes[p.getNodeShape(me)];Yt.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var kr=0;kr0){var cr=O,mr=m4(cr,Yx(x)),Sr=m4(cr,Yx($n)),gi=mr;if(Sr2){var ss=m4(cr,{x:$n[2],y:$n[3]});ss0){var G=N,Vn=m4(G,Yx(x)),gr=m4(G,Yx(Kn)),nr=Vn;if(gr2){var Be=m4(G,{x:Kn[2],y:Kn[3]});Be=pt||Ut){St={cp:qt,segment:ee};break}}if(St)break}var de=St.cp,Yt=St.segment,Ee=(pt-Et)/Yt.length,Te=Yt.t1-Yt.t0,ie=bt?Yt.t0+Te*Ee:Yt.t1-Te*Ee;ie=P8(0,ie,1),p=Xx(de.p0,de.p1,de.p2,ie),st=Uet(de.p0,de.p1,de.p2,ie);break}case"straight":case"segments":case"haystack":{for(var ze=0,me,yn,nn,qe,Tn=C.allpts.length,Xn=0;Xn+3=pt));Xn+=2);var lr=pt-yn,Sn=lr/me;Sn=P8(0,Sn,1),p=fQ(nn,qe,Sn),st=DC(nn,qe);break}}N("labelX",Z,p.x),N("labelY",Z,p.y),N("labelAutoAngle",Z,st)}};q("source"),q("target"),this.applyLabelDimensions(y)}},j2.applyLabelDimensions=function(y){this.applyPrefixedLabelDimensions(y),y.isEdge()&&(this.applyPrefixedLabelDimensions(y,"source"),this.applyPrefixedLabelDimensions(y,"target"))},j2.applyPrefixedLabelDimensions=function(y,p){var x=y._private,C=this.getLabelText(y,p),L=this.calculateLabelDimensions(y,C),O=y.pstyle("line-height").pfValue,N=y.pstyle("text-wrap").strValue,j=fb(x.rscratch,"labelWrapCachedLines",p)||[],H=N!=="wrap"?1:Math.max(j.length,1),q=L.height/H,W=q*O,Z=L.width,st=L.height+(H-1)*(O-1)*q;cy(x.rstyle,"labelWidth",p,Z),cy(x.rscratch,"labelWidth",p,Z),cy(x.rstyle,"labelHeight",p,st),cy(x.rscratch,"labelHeight",p,st),cy(x.rscratch,"labelLineHeight",p,W)},j2.getLabelText=function(y,p){var x=y._private,C=p?p+"-":"",L=y.pstyle(C+"label").strValue,O=y.pstyle("text-transform").value,N=function(lr,Sn){return Sn?(cy(x.rscratch,lr,p,Sn),Sn):fb(x.rscratch,lr,p)};if(!L)return"";O=="none"||(O=="uppercase"?L=L.toUpperCase():O=="lowercase"&&(L=L.toLowerCase()));var j=y.pstyle("text-wrap").value;if(j==="wrap"){var H=N("labelKey");if(H!=null&&N("labelWrapKey")===H)return N("labelWrapCachedText");for(var q="​",W=L.split(` +`),Z=y.pstyle("text-max-width").pfValue,st=y.pstyle("text-overflow-wrap").value,bt=st==="anywhere",pt=[],_t=/[\s\u200b]+/,St=bt?"":" ",Et=0;EtZ){for(var ee=Nt.split(_t),Ut="",de=0;deze)break;me+=L[qe],qe===L.length-1&&(nn=!0)}return nn||(me+=yn),me}return L},j2.getLabelJustification=function(y){var p=y.pstyle("text-justification").strValue,x=y.pstyle("text-halign").strValue;if(p==="auto")if(y.isNode())switch(x){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return p},j2.calculateLabelDimensions=function(y,p){var x=this,C=Nd(p,y._private.labelDimsKey),L=x.labelDimCache||(x.labelDimCache=[]),O=L[C];if(O!=null)return O;var N=0,j=y.pstyle("font-style").strValue,H=y.pstyle("font-size").pfValue,q=y.pstyle("font-family").strValue,W=y.pstyle("font-weight").strValue,Z=this.labelCalcCanvas,st=this.labelCalcCanvasContext;if(!Z){Z=this.labelCalcCanvas=document.createElement("canvas"),st=this.labelCalcCanvasContext=Z.getContext("2d");var bt=Z.style;bt.position="absolute",bt.left="-9999px",bt.top="-9999px",bt.zIndex="-1",bt.visibility="hidden",bt.pointerEvents="none"}st.font="".concat(j," ").concat(W," ").concat(H,"px ").concat(q);for(var pt=0,_t=0,St=p.split(` +`),Et=0;Et1&&arguments[1]!==void 0?arguments[1]:!0;if(p.merge(N),j)for(var H=0;H=y.desktopTapThreshold2}var cm=L(G);Sl&&(y.hoverData.tapholdCancelled=!0);var py=function(){var $2=y.hoverData.dragDelta=y.hoverData.dragDelta||[];$2.length===0?($2.push(no[0]),$2.push(no[1])):($2[0]+=no[0],$2[1]+=no[1])};gr=!0,C(Ca,["mousemove","vmousemove","tapdrag"],G,{x:hr[0],y:hr[1]});var y6=function(){y.data.bgActivePosistion=void 0,y.hoverData.selecting||nr.emit({originalEvent:G,type:"boxstart",position:{x:hr[0],y:hr[1]}}),kc[4]=1,y.hoverData.selecting=!0,y.redrawHint("select",!0),y.redraw()};if(y.hoverData.which===3){if(Sl){var _4={originalEvent:G,type:"cxtdrag",position:{x:hr[0],y:hr[1]}};ra?ra.emit(_4):nr.emit(_4),y.hoverData.cxtDragged=!0,(!y.hoverData.cxtOver||Ca!==y.hoverData.cxtOver)&&(y.hoverData.cxtOver&&y.hoverData.cxtOver.emit({originalEvent:G,type:"cxtdragout",position:{x:hr[0],y:hr[1]}}),y.hoverData.cxtOver=Ca,Ca&&Ca.emit({originalEvent:G,type:"cxtdragover",position:{x:hr[0],y:hr[1]}}))}}else if(y.hoverData.dragging){if(gr=!0,nr.panningEnabled()&&nr.userPanningEnabled()){var x6;if(y.hoverData.justStartedPan){var BC=y.hoverData.mdownPos;x6={x:(hr[0]-BC[0])*Be,y:(hr[1]-BC[1])*Be},y.hoverData.justStartedPan=!1}else x6={x:no[0]*Be,y:no[1]*Be};nr.panBy(x6),nr.emit("dragpan"),y.hoverData.dragged=!0}hr=y.projectIntoViewport(G.clientX,G.clientY)}else if(kc[4]==1&&(ra==null||ra.pannable())){if(Sl){if(!y.hoverData.dragging&&nr.boxSelectionEnabled()&&(cm||!nr.panningEnabled()||!nr.userPanningEnabled()))y6();else if(!y.hoverData.selecting&&nr.panningEnabled()&&nr.userPanningEnabled()){var A4=O(ra,y.hoverData.downs);A4&&(y.hoverData.dragging=!0,y.hoverData.justStartedPan=!0,kc[4]=0,y.data.bgActivePosistion=Yx(us),y.redrawHint("select",!0),y.redraw())}ra&&ra.pannable()&&ra.active()&&ra.unactivate()}}else{if(ra&&ra.pannable()&&ra.active()&&ra.unactivate(),(!ra||!ra.grabbed())&&Ca!=oc&&(oc&&C(oc,["mouseout","tapdragout"],G,{x:hr[0],y:hr[1]}),Ca&&C(Ca,["mouseover","tapdragover"],G,{x:hr[0],y:hr[1]}),y.hoverData.last=Ca),ra)if(Sl){if(nr.boxSelectionEnabled()&&cm)ra&&ra.grabbed()&&(St(ql),ra.emit("freeon"),ql.emit("free"),y.dragData.didDrag&&(ra.emit("dragfreeon"),ql.emit("dragfree"))),y6();else if(ra&&ra.grabbed()&&y.nodeIsDraggable(ra)){var k0=!y.dragData.didDrag;k0&&y.redrawHint("eles",!0),y.dragData.didDrag=!0,y.hoverData.draggingEles||pt(ql,{inDragLayer:!0});var J1={x:0,y:0};if(Q(no[0])&&Q(no[1])&&(J1.x+=no[0],J1.y+=no[1],k0)){var E0=y.hoverData.dragDelta;E0&&Q(E0[0])&&Q(E0[1])&&(J1.x+=E0[0],J1.y+=E0[1])}y.hoverData.draggingEles=!0,ql.silentShift(J1).emit("position drag"),y.redrawHint("drag",!0),y.redraw()}}else py();gr=!0}if(kc[2]=hr[0],kc[3]=hr[1],gr)return G.stopPropagation&&G.stopPropagation(),G.preventDefault&&G.preventDefault(),!1}},!1);var Ee,Te,ie;y.registerBinding(p,"mouseup",function(G){var Vn=y.hoverData.capture;if(Vn){y.hoverData.capture=!1;var gr=y.cy,nr=y.projectIntoViewport(G.clientX,G.clientY),Be=y.selection,Ls=y.findNearestElement(nr[0],nr[1],!0,!1),hr=y.dragData.possibleDragElements,us=y.hoverData.down,Ya=L(G);if(y.data.bgActivePosistion&&(y.redrawHint("select",!0),y.redraw()),y.hoverData.tapholdCancelled=!0,y.data.bgActivePosistion=void 0,us&&us.unactivate(),y.hoverData.which===3){var kc={originalEvent:G,type:"cxttapend",position:{x:nr[0],y:nr[1]}};if(us?us.emit(kc):gr.emit(kc),!y.hoverData.cxtDragged){var Ca={originalEvent:G,type:"cxttap",position:{x:nr[0],y:nr[1]}};us?us.emit(Ca):gr.emit(Ca)}y.hoverData.cxtDragged=!1,y.hoverData.which=null}else if(y.hoverData.which===1){if(C(Ls,["mouseup","tapend","vmouseup"],G,{x:nr[0],y:nr[1]}),!y.dragData.didDrag&&!y.hoverData.dragged&&!y.hoverData.selecting&&!y.hoverData.isOverThresholdDrag&&(C(us,["click","tap","vclick"],G,{x:nr[0],y:nr[1]}),Te=!1,G.timeStamp-ie<=gr.multiClickDebounceTime()?(Ee&&clearTimeout(Ee),Te=!0,ie=null,C(us,["dblclick","dbltap","vdblclick"],G,{x:nr[0],y:nr[1]})):(Ee=setTimeout(function(){Te||C(us,["oneclick","onetap","voneclick"],G,{x:nr[0],y:nr[1]})},gr.multiClickDebounceTime()),ie=G.timeStamp)),us==null&&!y.dragData.didDrag&&!y.hoverData.selecting&&!y.hoverData.dragged&&!L(G)&&(gr.$(x).unselect(["tapunselect"]),hr.length>0&&y.redrawHint("eles",!0),y.dragData.possibleDragElements=hr=gr.collection()),Ls==us&&!y.dragData.didDrag&&!y.hoverData.selecting&&Ls!=null&&Ls._private.selectable&&(y.hoverData.dragging||(gr.selectionType()==="additive"||Ya?Ls.selected()?Ls.unselect(["tapunselect"]):Ls.select(["tapselect"]):Ya||(gr.$(x).unmerge(Ls).unselect(["tapunselect"]),Ls.select(["tapselect"]))),y.redrawHint("eles",!0)),y.hoverData.selecting){var oc=gr.collection(y.getAllInBox(Be[0],Be[1],Be[2],Be[3]));y.redrawHint("select",!0),oc.length>0&&y.redrawHint("eles",!0),gr.emit({type:"boxend",originalEvent:G,position:{x:nr[0],y:nr[1]}});var ra=function(Sl){return Sl.selectable()&&!Sl.selected()};gr.selectionType()==="additive"||Ya||gr.$(x).unmerge(oc).unselect(),oc.emit("box").stdFilter(ra).select().emit("boxselect"),y.redraw()}if(y.hoverData.dragging&&(y.hoverData.dragging=!1,y.redrawHint("select",!0),y.redrawHint("eles",!0),y.redraw()),!Be[4]){y.redrawHint("drag",!0),y.redrawHint("eles",!0);var no=us&&us.grabbed();St(hr),no&&(us.emit("freeon"),hr.emit("free"),y.dragData.didDrag&&(us.emit("dragfreeon"),hr.emit("dragfree")))}}Be[4]=0,y.hoverData.down=null,y.hoverData.cxtStarted=!1,y.hoverData.draggingEles=!1,y.hoverData.selecting=!1,y.hoverData.isOverThresholdDrag=!1,y.dragData.didDrag=!1,y.hoverData.dragged=!1,y.hoverData.dragDelta=[],y.hoverData.mdownPos=null,y.hoverData.mdownGPos=null}},!1);var ze=function(G){if(!y.scrollingPage){var Vn=y.cy,gr=Vn.zoom(),nr=Vn.pan(),Be=y.projectIntoViewport(G.clientX,G.clientY),Ls=[Be[0]*gr+nr.x,Be[1]*gr+nr.y];if(y.hoverData.draggingEles||y.hoverData.dragging||y.hoverData.cxtStarted||de()){G.preventDefault();return}if(Vn.panningEnabled()&&Vn.userPanningEnabled()&&Vn.zoomingEnabled()&&Vn.userZoomingEnabled()){G.preventDefault(),y.data.wheelZooming=!0,clearTimeout(y.data.wheelTimeout),y.data.wheelTimeout=setTimeout(function(){y.data.wheelZooming=!1,y.redrawHint("eles",!0),y.redraw()},150);var hr;G.deltaY!=null?hr=G.deltaY/-250:G.wheelDeltaY!=null?hr=G.wheelDeltaY/1e3:hr=G.wheelDelta/1e3,hr=hr*y.wheelSensitivity;var us=G.deltaMode===1;us&&(hr*=33);var Ya=Vn.zoom()*Math.pow(10,hr);G.type==="gesturechange"&&(Ya=y.gestureStartZoom*G.scale),Vn.zoom({level:Ya,renderedPosition:{x:Ls[0],y:Ls[1]}}),Vn.emit(G.type==="gesturechange"?"pinchzoom":"scrollzoom")}}};y.registerBinding(y.container,"wheel",ze,!0),y.registerBinding(p,"scroll",function(G){y.scrollingPage=!0,clearTimeout(y.scrollingPageTimeout),y.scrollingPageTimeout=setTimeout(function(){y.scrollingPage=!1},250)},!0),y.registerBinding(y.container,"gesturestart",function(G){y.gestureStartZoom=y.cy.zoom(),y.hasTouchStarted||G.preventDefault()},!0),y.registerBinding(y.container,"gesturechange",function(Kn){y.hasTouchStarted||ze(Kn)},!0),y.registerBinding(y.container,"mouseout",function(G){var Vn=y.projectIntoViewport(G.clientX,G.clientY);y.cy.emit({originalEvent:G,type:"mouseout",position:{x:Vn[0],y:Vn[1]}})},!1),y.registerBinding(y.container,"mouseover",function(G){var Vn=y.projectIntoViewport(G.clientX,G.clientY);y.cy.emit({originalEvent:G,type:"mouseover",position:{x:Vn[0],y:Vn[1]}})},!1);var me,yn,nn,qe,Tn,Xn,lr,Sn,or,pr,kr,wr,Cr,$n=function(G,Vn,gr,nr){return Math.sqrt((gr-G)*(gr-G)+(nr-Vn)*(nr-Vn))},cr=function(G,Vn,gr,nr){return(gr-G)*(gr-G)+(nr-Vn)*(nr-Vn)},mr;y.registerBinding(y.container,"touchstart",mr=function(G){if(y.hasTouchStarted=!0,!!Yt(G)){Nt(),y.touchData.capture=!0,y.data.bgActivePosistion=void 0;var Vn=y.cy,gr=y.touchData.now,nr=y.touchData.earlier;if(G.touches[0]){var Be=y.projectIntoViewport(G.touches[0].clientX,G.touches[0].clientY);gr[0]=Be[0],gr[1]=Be[1]}if(G.touches[1]){var Be=y.projectIntoViewport(G.touches[1].clientX,G.touches[1].clientY);gr[2]=Be[0],gr[3]=Be[1]}if(G.touches[2]){var Be=y.projectIntoViewport(G.touches[2].clientX,G.touches[2].clientY);gr[4]=Be[0],gr[5]=Be[1]}if(G.touches[1]){y.touchData.singleTouchMoved=!0,St(y.dragData.touchDragEles);var Ls=y.findContainerClientCoords();or=Ls[0],pr=Ls[1],kr=Ls[2],wr=Ls[3],me=G.touches[0].clientX-or,yn=G.touches[0].clientY-pr,nn=G.touches[1].clientX-or,qe=G.touches[1].clientY-pr,Cr=0<=me&&me<=kr&&0<=nn&&nn<=kr&&0<=yn&&yn<=wr&&0<=qe&&qe<=wr;var hr=Vn.pan(),us=Vn.zoom();Tn=$n(me,yn,nn,qe),Xn=cr(me,yn,nn,qe),lr=[(me+nn)/2,(yn+qe)/2],Sn=[(lr[0]-hr.x)/us,(lr[1]-hr.y)/us];var Ya=200,kc=Ya*Ya;if(Xn=1){for(var vb=y.touchData.startPosition=[null,null,null,null,null,null],v1=0;v1=y.touchTapThreshold2}if(Vn&&y.touchData.cxt){G.preventDefault();var vb=G.touches[0].clientX-or,v1=G.touches[0].clientY-pr,up=G.touches[1].clientX-or,Bd=G.touches[1].clientY-pr,cm=cr(vb,v1,up,Bd),py=cm/Xn,y6=150,_4=y6*y6,x6=1.5,BC=x6*x6;if(py>=BC||cm>=_4){y.touchData.cxt=!1,y.data.bgActivePosistion=void 0,y.redrawHint("select",!0);var A4={originalEvent:G,type:"cxttapend",position:{x:Be[0],y:Be[1]}};y.touchData.start?(y.touchData.start.unactivate().emit(A4),y.touchData.start=null):nr.emit(A4)}}if(Vn&&y.touchData.cxt){var A4={originalEvent:G,type:"cxtdrag",position:{x:Be[0],y:Be[1]}};y.data.bgActivePosistion=void 0,y.redrawHint("select",!0),y.touchData.start?y.touchData.start.emit(A4):nr.emit(A4),y.touchData.start&&(y.touchData.start._private.grabbed=!1),y.touchData.cxtDragged=!0;var k0=y.findNearestElement(Be[0],Be[1],!0,!0);(!y.touchData.cxtOver||k0!==y.touchData.cxtOver)&&(y.touchData.cxtOver&&y.touchData.cxtOver.emit({originalEvent:G,type:"cxtdragout",position:{x:Be[0],y:Be[1]}}),y.touchData.cxtOver=k0,k0&&k0.emit({originalEvent:G,type:"cxtdragover",position:{x:Be[0],y:Be[1]}}))}else if(Vn&&G.touches[2]&&nr.boxSelectionEnabled())G.preventDefault(),y.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,y.touchData.selecting||nr.emit({originalEvent:G,type:"boxstart",position:{x:Be[0],y:Be[1]}}),y.touchData.selecting=!0,y.touchData.didSelect=!0,gr[4]=1,!gr||gr.length===0||gr[0]===void 0?(gr[0]=(Be[0]+Be[2]+Be[4])/3,gr[1]=(Be[1]+Be[3]+Be[5])/3,gr[2]=(Be[0]+Be[2]+Be[4])/3+1,gr[3]=(Be[1]+Be[3]+Be[5])/3+1):(gr[2]=(Be[0]+Be[2]+Be[4])/3,gr[3]=(Be[1]+Be[3]+Be[5])/3),y.redrawHint("select",!0),y.redraw();else if(Vn&&G.touches[1]&&!y.touchData.didSelect&&nr.zoomingEnabled()&&nr.panningEnabled()&&nr.userZoomingEnabled()&&nr.userPanningEnabled()){G.preventDefault(),y.data.bgActivePosistion=void 0,y.redrawHint("select",!0);var J1=y.dragData.touchDragEles;if(J1){y.redrawHint("drag",!0);for(var E0=0;E00&&!y.hoverData.draggingEles&&!y.swipePanning&&y.data.bgActivePosistion!=null&&(y.data.bgActivePosistion=void 0,y.redrawHint("select",!0),y.redraw())}},!1);var gi;y.registerBinding(p,"touchcancel",gi=function(G){var Vn=y.touchData.start;y.touchData.capture=!1,Vn&&Vn.unactivate()});var ss,na,vi,si;if(y.registerBinding(p,"touchend",ss=function(G){var Vn=y.touchData.start,gr=y.touchData.capture;if(gr)G.touches.length===0&&(y.touchData.capture=!1),G.preventDefault();else return;var nr=y.selection;y.swipePanning=!1,y.hoverData.draggingEles=!1;var Be=y.cy,Ls=Be.zoom(),hr=y.touchData.now,us=y.touchData.earlier;if(G.touches[0]){var Ya=y.projectIntoViewport(G.touches[0].clientX,G.touches[0].clientY);hr[0]=Ya[0],hr[1]=Ya[1]}if(G.touches[1]){var Ya=y.projectIntoViewport(G.touches[1].clientX,G.touches[1].clientY);hr[2]=Ya[0],hr[3]=Ya[1]}if(G.touches[2]){var Ya=y.projectIntoViewport(G.touches[2].clientX,G.touches[2].clientY);hr[4]=Ya[0],hr[5]=Ya[1]}Vn&&Vn.unactivate();var kc;if(y.touchData.cxt){if(kc={originalEvent:G,type:"cxttapend",position:{x:hr[0],y:hr[1]}},Vn?Vn.emit(kc):Be.emit(kc),!y.touchData.cxtDragged){var Ca={originalEvent:G,type:"cxttap",position:{x:hr[0],y:hr[1]}};Vn?Vn.emit(Ca):Be.emit(Ca)}y.touchData.start&&(y.touchData.start._private.grabbed=!1),y.touchData.cxt=!1,y.touchData.start=null,y.redraw();return}if(!G.touches[2]&&Be.boxSelectionEnabled()&&y.touchData.selecting){y.touchData.selecting=!1;var oc=Be.collection(y.getAllInBox(nr[0],nr[1],nr[2],nr[3]));nr[0]=void 0,nr[1]=void 0,nr[2]=void 0,nr[3]=void 0,nr[4]=0,y.redrawHint("select",!0),Be.emit({type:"boxend",originalEvent:G,position:{x:hr[0],y:hr[1]}});var ra=function(_4){return _4.selectable()&&!_4.selected()};oc.emit("box").stdFilter(ra).select().emit("boxselect"),oc.nonempty()&&y.redrawHint("eles",!0),y.redraw()}if(Vn!=null&&Vn.unactivate(),G.touches[2])y.data.bgActivePosistion=void 0,y.redrawHint("select",!0);else if(!G.touches[1]){if(!G.touches[0]){if(!G.touches[0]){y.data.bgActivePosistion=void 0,y.redrawHint("select",!0);var no=y.dragData.touchDragEles;if(Vn!=null){var ql=Vn._private.grabbed;St(no),y.redrawHint("drag",!0),y.redrawHint("eles",!0),ql&&(Vn.emit("freeon"),no.emit("free"),y.dragData.didDrag&&(Vn.emit("dragfreeon"),no.emit("dragfree"))),C(Vn,["touchend","tapend","vmouseup","tapdragout"],G,{x:hr[0],y:hr[1]}),Vn.unactivate(),y.touchData.start=null}else{var Sl=y.findNearestElement(hr[0],hr[1],!0,!0);C(Sl,["touchend","tapend","vmouseup","tapdragout"],G,{x:hr[0],y:hr[1]})}var mb=y.touchData.startPosition[0]-hr[0],vb=mb*mb,v1=y.touchData.startPosition[1]-hr[1],up=v1*v1,Bd=vb+up,cm=Bd*Ls*Ls;y.touchData.singleTouchMoved||(Vn||Be.$(":selected").unselect(["tapunselect"]),C(Vn,["tap","vclick"],G,{x:hr[0],y:hr[1]}),na=!1,G.timeStamp-si<=Be.multiClickDebounceTime()?(vi&&clearTimeout(vi),na=!0,si=null,C(Vn,["dbltap","vdblclick"],G,{x:hr[0],y:hr[1]})):(vi=setTimeout(function(){na||C(Vn,["onetap","voneclick"],G,{x:hr[0],y:hr[1]})},Be.multiClickDebounceTime()),si=G.timeStamp)),Vn!=null&&!y.dragData.didDrag&&Vn._private.selectable&&cm"u"){var Qi=[],ks=function(G){return{clientX:G.clientX,clientY:G.clientY,force:1,identifier:G.pointerId,pageX:G.pageX,pageY:G.pageY,radiusX:G.width/2,radiusY:G.height/2,screenX:G.screenX,screenY:G.screenY,target:G.target}},as=function(G){return{event:G,touch:ks(G)}},Es=function(G){Qi.push(as(G))},eo=function(G){for(var Vn=0;Vn0)return Sn[0]}return null},bt=Object.keys(Z),pt=0;pt0?st:$B(O,N,p,x,C,L,j)},checkPoint:function(p,x,C,L,O,N,j){var H=R8(L,O),q=2*H;if(sm(p,x,this.points,N,j,L,O-q,[0,-1],C)||sm(p,x,this.points,N,j,L-q,O,[0,-1],C))return!0;var W=L/2+2*C,Z=O/2+2*C,st=[N-W,j-Z,N-W,j,N+W,j,N+W,j-Z];return!!(y0(p,x,st)||v4(p,x,q,q,N+L/2-H,j+O/2-H,C)||v4(p,x,q,q,N-L/2+H,j+O/2-H,C))}}},om.registerNodeShapes=function(){var y=this.nodeShapes={},p=this;this.generateEllipse(),this.generatePolygon("triangle",Fd(3,0)),this.generateRoundPolygon("round-triangle",Fd(3,0)),this.generatePolygon("rectangle",Fd(4,0)),y.square=y.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var x=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",x),this.generateRoundPolygon("round-diamond",x)}this.generatePolygon("pentagon",Fd(5,0)),this.generateRoundPolygon("round-pentagon",Fd(5,0)),this.generatePolygon("hexagon",Fd(6,0)),this.generateRoundPolygon("round-hexagon",Fd(6,0)),this.generatePolygon("heptagon",Fd(7,0)),this.generateRoundPolygon("round-heptagon",Fd(7,0)),this.generatePolygon("octagon",Fd(8,0)),this.generateRoundPolygon("round-octagon",Fd(8,0));var C=new Array(20);{var L=qD(5,0),O=qD(5,Math.PI/5),N=.5*(3-Math.sqrt(5));N*=1.57;for(var j=0;j=p.deqFastCost*qt)break}else if(q){if(Nt>=p.deqCost*bt||Nt>=p.deqAvgCost*st)break}else if(Pt>=p.deqNoDrawCost*vM)break;var re=p.deq(C,St,_t);if(re.length>0)for(var ee=0;ee0&&(p.onDeqd(C,pt),!q&&p.shouldRedraw(C,pt,St,_t)&&O())},j=p.priority||BD;L.beforeRender(N,j(C))}}}},Ket=function(){function y(p){var x=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ay;g(this,y),this.idsByKey=new F2,this.keyForId=new F2,this.cachesByLvl=new F2,this.lvls=[],this.getKey=p,this.doesEleInvalidateKey=x}return v(y,[{key:"getIdsFor",value:function(x){x==null&&$l("Can not get id list for null key");var C=this.idsByKey,L=this.idsByKey.get(x);return L||(L=new Wx,C.set(x,L)),L}},{key:"addIdForKey",value:function(x,C){x!=null&&this.getIdsFor(x).add(C)}},{key:"deleteIdForKey",value:function(x,C){x!=null&&this.getIdsFor(x).delete(C)}},{key:"getNumberOfIdsForKey",value:function(x){return x==null?0:this.getIdsFor(x).size}},{key:"updateKeyMappingFor",value:function(x){var C=x.id(),L=this.keyForId.get(C),O=this.getKey(x);this.deleteIdForKey(L,C),this.addIdForKey(O,C),this.keyForId.set(C,O)}},{key:"deleteKeyMappingFor",value:function(x){var C=x.id(),L=this.keyForId.get(C);this.deleteIdForKey(L,C),this.keyForId.delete(C)}},{key:"keyHasChangedFor",value:function(x){var C=x.id(),L=this.keyForId.get(C),O=this.getKey(x);return L!==O}},{key:"isInvalid",value:function(x){return this.keyHasChangedFor(x)||this.doesEleInvalidateKey(x)}},{key:"getCachesAt",value:function(x){var C=this.cachesByLvl,L=this.lvls,O=C.get(x);return O||(O=new F2,C.set(x,O),L.push(x)),O}},{key:"getCache",value:function(x,C){return this.getCachesAt(C).get(x)}},{key:"get",value:function(x,C){var L=this.getKey(x),O=this.getCache(L,C);return O!=null&&this.updateKeyMappingFor(x),O}},{key:"getForCachedKey",value:function(x,C){var L=this.keyForId.get(x.id()),O=this.getCache(L,C);return O}},{key:"hasCache",value:function(x,C){return this.getCachesAt(C).has(x)}},{key:"has",value:function(x,C){var L=this.getKey(x);return this.hasCache(L,C)}},{key:"setCache",value:function(x,C,L){L.key=x,this.getCachesAt(C).set(x,L)}},{key:"set",value:function(x,C,L){var O=this.getKey(x);this.setCache(O,C,L),this.updateKeyMappingFor(x)}},{key:"deleteCache",value:function(x,C){this.getCachesAt(C).delete(x)}},{key:"delete",value:function(x,C){var L=this.getKey(x);this.deleteCache(L,C)}},{key:"invalidateKey",value:function(x){var C=this;this.lvls.forEach(function(L){return C.deleteCache(x,L)})}},{key:"invalidate",value:function(x){var C=x.id(),L=this.keyForId.get(C);this.deleteKeyMappingFor(x);var O=this.doesEleInvalidateKey(x);return O&&this.invalidateKey(L),O||this.getNumberOfIdsForKey(L)===0}}]),y}(),Ij=25,OC=50,NC=-4,yM=3,Wet=7.99,Yet=8,Xet=1024,Qet=1024,Jet=1024,Zet=.2,tnt=.8,ent=10,nnt=.15,rnt=.1,int=.9,snt=.9,ant=100,ont=1,p6={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},cnt=p1({getKey:null,doesEleInvalidateKey:ay,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:b4,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),rE=function(p,x){var C=this;C.renderer=p,C.onDequeues=[];var L=cnt(x);we(C,L),C.lookup=new Ket(L.getKey,L.doesEleInvalidateKey),C.setupDequeueing()},Jh=rE.prototype;Jh.reasons=p6,Jh.getTextureQueue=function(y){var p=this;return p.eleImgCaches=p.eleImgCaches||{},p.eleImgCaches[y]=p.eleImgCaches[y]||[]},Jh.getRetiredTextureQueue=function(y){var p=this,x=p.eleImgCaches.retired=p.eleImgCaches.retired||{},C=x[y]=x[y]||[];return C},Jh.getElementQueue=function(){var y=this,p=y.eleCacheQueue=y.eleCacheQueue||new N8(function(x,C){return C.reqs-x.reqs});return p},Jh.getElementKeyToQueue=function(){var y=this,p=y.eleKeyToCacheQueue=y.eleKeyToCacheQueue||{};return p},Jh.getElement=function(y,p,x,C,L){var O=this,N=this.renderer,j=N.cy.zoom(),H=this.lookup;if(!p||p.w===0||p.h===0||isNaN(p.w)||isNaN(p.h)||!y.visible()||y.removed()||!O.allowEdgeTxrCaching&&y.isEdge()||!O.allowParentTxrCaching&&y.isParent())return null;if(C==null&&(C=Math.ceil(jD(j*x))),C=Wet||C>yM)return null;var q=Math.pow(2,C),W=p.h*q,Z=p.w*q,st=N.eleTextBiggerThanMin(y,q);if(!this.isVisible(y,st))return null;var bt=H.get(y,C);if(bt&&bt.invalidated&&(bt.invalidated=!1,bt.texture.invalidatedWidth-=bt.width),bt)return bt;var pt;if(W<=Ij?pt=Ij:W<=OC?pt=OC:pt=Math.ceil(W/OC)*OC,W>Jet||Z>Qet)return null;var _t=O.getTextureQueue(pt),St=_t[_t.length-2],Et=function(){return O.recycleTexture(pt,Z)||O.addTexture(pt,Z)};St||(St=_t[_t.length-1]),St||(St=Et()),St.width-St.usedWidthC;Te--)Yt=O.getElement(y,p,x,Te,p6.downscale);Ee()}else return O.queueElement(y,ee.level-1),ee;else{var ie;if(!Pt&&!qt&&!re)for(var ze=C-1;ze>=NC;ze--){var me=H.get(y,ze);if(me){ie=me;break}}if(Nt(ie))return O.queueElement(y,C),ie;St.context.translate(St.usedWidth,0),St.context.scale(q,q),this.drawElement(St.context,y,p,st,!1),St.context.scale(1/q,1/q),St.context.translate(-St.usedWidth,0)}return bt={x:St.usedWidth,texture:St,level:C,scale:q,width:Z,height:W,scaledLabelShown:st},St.usedWidth+=Math.ceil(Z+Yet),St.eleCaches.push(bt),H.set(y,C,bt),O.checkTextureFullness(St),bt},Jh.invalidateElements=function(y){for(var p=0;p=Zet*y.width&&this.retireTexture(y)},Jh.checkTextureFullness=function(y){var p=this,x=p.getTextureQueue(y.height);y.usedWidth/y.width>tnt&&y.fullnessChecks>=ent?oy(x,y):y.fullnessChecks++},Jh.retireTexture=function(y){var p=this,x=y.height,C=p.getTextureQueue(x),L=this.lookup;oy(C,y),y.retired=!0;for(var O=y.eleCaches,N=0;N=p)return N.retired=!1,N.usedWidth=0,N.invalidatedWidth=0,N.fullnessChecks=0,G9(N.eleCaches),N.context.setTransform(1,0,0,1,0,0),N.context.clearRect(0,0,N.width,N.height),oy(L,N),C.push(N),N}},Jh.queueElement=function(y,p){var x=this,C=x.getElementQueue(),L=x.getElementKeyToQueue(),O=this.getKey(y),N=L[O];if(N)N.level=Math.max(N.level,p),N.eles.merge(y),N.reqs++,C.updateItem(N);else{var j={eles:y.spawn().merge(y),level:p,reqs:1,key:O};C.push(j),L[O]=j}},Jh.dequeue=function(y){for(var p=this,x=p.getElementQueue(),C=p.getElementKeyToQueue(),L=[],O=p.lookup,N=0;N0;N++){var j=x.pop(),H=j.key,q=j.eles[0],W=O.hasCache(q,j.level);if(C[H]=null,W)continue;L.push(j);var Z=p.getBoundingBox(q);p.getElement(q,Z,y,j.level,p6.dequeue)}return L},Jh.removeFromQueue=function(y){var p=this,x=p.getElementQueue(),C=p.getElementKeyToQueue(),L=this.getKey(y),O=C[L];O!=null&&(O.eles.length===1?(O.reqs=Kx,x.updateItem(O),x.pop(),C[L]=null):O.eles.unmerge(y))},Jh.onDequeue=function(y){this.onDequeues.push(y)},Jh.offDequeue=function(y){oy(this.onDequeues,y)},Jh.setupDequeueing=Mj.setupDequeueing({deqRedrawThreshold:ant,deqCost:nnt,deqAvgCost:rnt,deqNoDrawCost:int,deqFastCost:snt,deq:function(p,x,C){return p.dequeue(x,C)},onDeqd:function(p,x){for(var C=0;C=lnt||x>PC)return null}C.validateLayersElesOrdering(x,y);var H=C.layersByLevel,q=Math.pow(2,x),W=H[x]=H[x]||[],Z,st=C.levelIsComplete(x,y),bt,pt=function(){var Ee=function(yn){if(C.validateLayersElesOrdering(yn,y),C.levelIsComplete(yn,y))return bt=H[yn],!0},Te=function(yn){if(!bt)for(var nn=x+yn;iE<=nn&&nn<=PC&&!Ee(nn);nn+=yn);};Te(1),Te(-1);for(var ie=W.length-1;ie>=0;ie--){var ze=W[ie];ze.invalid&&oy(W,ze)}};if(!st)pt();else return W;var _t=function(){if(!Z){Z=v0();for(var Ee=0;EePj)return null;var ze=C.makeLayer(Z,x);if(Te!=null){var me=W.indexOf(Te)+1;W.splice(me,0,ze)}else(Ee.insert===void 0||Ee.insert)&&W.unshift(ze);return ze};if(C.skipping&&!j)return null;for(var Et=null,Nt=y.length/unt,Pt=!j,qt=0;qt=Nt||!jB(Et.bb,re.boundingBox()))&&(Et=St({insert:!0,after:Et}),!Et))return null;bt||Pt?C.queueLayer(Et,re):C.drawEleInLayer(Et,re,x,p),Et.eles.push(re),Ut[x]=Et}return bt||(Pt?null:W)},Df.getEleLevelForLayerLevel=function(y,p){return y},Df.drawEleInLayer=function(y,p,x,C){var L=this,O=this.renderer,N=y.context,j=p.boundingBox();j.w===0||j.h===0||!p.visible()||(x=L.getEleLevelForLayerLevel(x,C),O.setImgSmoothing(N,!1),O.drawCachedElement(N,p,null,null,x,Fj),O.setImgSmoothing(N,!0))},Df.levelIsComplete=function(y,p){var x=this,C=x.layersByLevel[y];if(!C||C.length===0)return!1;for(var L=0,O=0;O0||N.invalid)return!1;L+=N.eles.length}return L===p.length},Df.validateLayersElesOrdering=function(y,p){var x=this.layersByLevel[y];if(x)for(var C=0;C0){p=!0;break}}return p},Df.invalidateElements=function(y){var p=this;y.length!==0&&(p.lastInvalidationTime=ip(),!(y.length===0||!p.haveLayers())&&p.updateElementsInLayers(y,function(C,L,O){p.invalidateLayer(C)}))},Df.invalidateLayer=function(y){if(this.lastInvalidationTime=ip(),!y.invalid){var p=y.level,x=y.eles,C=this.layersByLevel[p];oy(C,y),y.elesQueue=[],y.invalid=!0,y.replacement&&(y.replacement.invalid=!0);for(var L=0;L3&&arguments[3]!==void 0?arguments[3]:!0,L=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,O=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,N=this,j=p._private.rscratch;if(!(O&&!p.visible())&&!(j.badLine||j.allpts==null||isNaN(j.allpts[0]))){var H;x&&(H=x,y.translate(-H.x1,-H.y1));var q=O?p.pstyle("opacity").value:1,W=O?p.pstyle("line-opacity").value:1,Z=p.pstyle("curve-style").value,st=p.pstyle("line-style").value,bt=p.pstyle("width").pfValue,pt=p.pstyle("line-cap").value,_t=q*W,St=q*W,Et=function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:_t;Z==="straight-triangle"?(N.eleStrokeStyle(y,p,ie),N.drawEdgeTrianglePath(p,y,j.allpts)):(y.lineWidth=bt,y.lineCap=pt,N.eleStrokeStyle(y,p,ie),N.drawEdgePath(p,y,j.allpts,st),y.lineCap="butt")},Nt=function(){L&&N.drawEdgeOverlay(y,p)},Pt=function(){L&&N.drawEdgeUnderlay(y,p)},qt=function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:St;N.drawArrowheads(y,p,ie)},re=function(){N.drawElementText(y,p,null,C)};y.lineJoin="round";var ee=p.pstyle("ghost").value==="yes";if(ee){var Ut=p.pstyle("ghost-offset-x").pfValue,de=p.pstyle("ghost-offset-y").pfValue,Yt=p.pstyle("ghost-opacity").value,Ee=_t*Yt;y.translate(Ut,de),Et(Ee),qt(Ee),y.translate(-Ut,-de)}Pt(),Et(),qt(),Nt(),re(),x&&y.translate(H.x1,H.y1)}};var Hj=function(p){if(!["overlay","underlay"].includes(p))throw new Error("Invalid state");return function(x,C){if(C.visible()){var L=C.pstyle("".concat(p,"-opacity")).value;if(L!==0){var O=this,N=O.usePaths(),j=C._private.rscratch,H=C.pstyle("".concat(p,"-padding")).pfValue,q=2*H,W=C.pstyle("".concat(p,"-color")).value;x.lineWidth=q,j.edgeType==="self"&&!N?x.lineCap="butt":x.lineCap="round",O.colorStrokeStyle(x,W[0],W[1],W[2],L),O.drawEdgePath(C,x,j.allpts,"solid")}}}};wb.drawEdgeOverlay=Hj("overlay"),wb.drawEdgeUnderlay=Hj("underlay"),wb.drawEdgePath=function(y,p,x,C){var L=y._private.rscratch,O=p,N,j=!1,H=this.usePaths(),q=y.pstyle("line-dash-pattern").pfValue,W=y.pstyle("line-dash-offset").pfValue;if(H){var Z=x.join("$"),st=L.pathCacheKey&&L.pathCacheKey===Z;st?(N=p=L.pathCache,j=!0):(N=p=new Path2D,L.pathCacheKey=Z,L.pathCache=N)}if(O.setLineDash)switch(C){case"dotted":O.setLineDash([1,1]);break;case"dashed":O.setLineDash(q),O.lineDashOffset=W;break;case"solid":O.setLineDash([]);break}if(!j&&!L.badLine)switch(p.beginPath&&p.beginPath(),p.moveTo(x[0],x[1]),L.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var bt=2;bt+35&&arguments[5]!==void 0?arguments[5]:!0,N=this;if(C==null){if(O&&!N.eleTextBiggerThanMin(p))return}else if(C===!1)return;if(p.isNode()){var j=p.pstyle("label");if(!j||!j.value)return;var H=N.getLabelJustification(p);y.textAlign=H,y.textBaseline="bottom"}else{var q=p.element()._private.rscratch.badLine,W=p.pstyle("label"),Z=p.pstyle("source-label"),st=p.pstyle("target-label");if(q||(!W||!W.value)&&(!Z||!Z.value)&&(!st||!st.value))return;y.textAlign="center",y.textBaseline="bottom"}var bt=!x,pt;x&&(pt=x,y.translate(-pt.x1,-pt.y1)),L==null?(N.drawText(y,p,null,bt,O),p.isEdge()&&(N.drawText(y,p,"source",bt,O),N.drawText(y,p,"target",bt,O))):N.drawText(y,p,L,bt,O),x&&y.translate(pt.x1,pt.y1)},S4.getFontCache=function(y){var p;this.fontCaches=this.fontCaches||[];for(var x=0;x2&&arguments[2]!==void 0?arguments[2]:!0,C=p.pstyle("font-style").strValue,L=p.pstyle("font-size").pfValue+"px",O=p.pstyle("font-family").strValue,N=p.pstyle("font-weight").strValue,j=x?p.effectiveOpacity()*p.pstyle("text-opacity").value:1,H=p.pstyle("text-outline-opacity").value*j,q=p.pstyle("color").value,W=p.pstyle("text-outline-color").value;y.font=C+" "+N+" "+L+" "+O,y.lineJoin="round",this.colorFillStyle(y,q[0],q[1],q[2],j),this.colorStrokeStyle(y,W[0],W[1],W[2],H)};function kM(y,p,x,C,L){var O=arguments.length>5&&arguments[5]!==void 0?arguments[5]:5,N=arguments.length>6?arguments[6]:void 0;y.beginPath(),y.moveTo(p+O,x),y.lineTo(p+C-O,x),y.quadraticCurveTo(p+C,x,p+C,x+O),y.lineTo(p+C,x+L-O),y.quadraticCurveTo(p+C,x+L,p+C-O,x+L),y.lineTo(p+O,x+L),y.quadraticCurveTo(p,x+L,p,x+L-O),y.lineTo(p,x+O),y.quadraticCurveTo(p,x,p+O,x),y.closePath(),N?y.stroke():y.fill()}S4.getTextAngle=function(y,p){var x,C=y._private,L=C.rscratch,O=p?p+"-":"",N=y.pstyle(O+"text-rotation"),j=fb(L,"labelAngle",p);return N.strValue==="autorotate"?x=y.isEdge()?j:0:N.strValue==="none"?x=0:x=N.pfValue,x},S4.drawText=function(y,p,x){var C=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,L=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,O=p._private,N=O.rscratch,j=L?p.effectiveOpacity():1;if(!(L&&(j===0||p.pstyle("text-opacity").value===0))){x==="main"&&(x=null);var H=fb(N,"labelX",x),q=fb(N,"labelY",x),W,Z,st=this.getLabelText(p,x);if(st!=null&&st!==""&&!isNaN(H)&&!isNaN(q)){this.setupTextStyle(y,p,L);var bt=x?x+"-":"",pt=fb(N,"labelWidth",x),_t=fb(N,"labelHeight",x),St=p.pstyle(bt+"text-margin-x").pfValue,Et=p.pstyle(bt+"text-margin-y").pfValue,Nt=p.isEdge(),Pt=p.pstyle("text-halign").value,qt=p.pstyle("text-valign").value;Nt&&(Pt="center",qt="center"),H+=St,q+=Et;var re;switch(C?re=this.getTextAngle(p,x):re=0,re!==0&&(W=H,Z=q,y.translate(W,Z),y.rotate(re),H=0,q=0),qt){case"top":break;case"center":q+=_t/2;break;case"bottom":q+=_t;break}var ee=p.pstyle("text-background-opacity").value,Ut=p.pstyle("text-border-opacity").value,de=p.pstyle("text-border-width").pfValue,Yt=p.pstyle("text-background-padding").pfValue,Ee=p.pstyle("text-background-shape").strValue,Te=Ee.indexOf("round")===0,ie=2;if(ee>0||de>0&&Ut>0){var ze=H-Yt;switch(Pt){case"left":ze-=pt;break;case"center":ze-=pt/2;break}var me=q-_t-Yt,yn=pt+2*Yt,nn=_t+2*Yt;if(ee>0){var qe=y.fillStyle,Tn=p.pstyle("text-background-color").value;y.fillStyle="rgba("+Tn[0]+","+Tn[1]+","+Tn[2]+","+ee*j+")",Te?kM(y,ze,me,yn,nn,ie):y.fillRect(ze,me,yn,nn),y.fillStyle=qe}if(de>0&&Ut>0){var Xn=y.strokeStyle,lr=y.lineWidth,Sn=p.pstyle("text-border-color").value,or=p.pstyle("text-border-style").value;if(y.strokeStyle="rgba("+Sn[0]+","+Sn[1]+","+Sn[2]+","+Ut*j+")",y.lineWidth=de,y.setLineDash)switch(or){case"dotted":y.setLineDash([1,1]);break;case"dashed":y.setLineDash([4,2]);break;case"double":y.lineWidth=de/4,y.setLineDash([]);break;case"solid":y.setLineDash([]);break}if(Te?kM(y,ze,me,yn,nn,ie,"stroke"):y.strokeRect(ze,me,yn,nn),or==="double"){var pr=de/2;Te?kM(y,ze+pr,me+pr,yn-pr*2,nn-pr*2,ie,"stroke"):y.strokeRect(ze+pr,me+pr,yn-pr*2,nn-pr*2)}y.setLineDash&&y.setLineDash([]),y.lineWidth=lr,y.strokeStyle=Xn}}var kr=2*p.pstyle("text-outline-width").pfValue;if(kr>0&&(y.lineWidth=kr),p.pstyle("text-wrap").value==="wrap"){var wr=fb(N,"labelWrapCachedLines",x),Cr=fb(N,"labelLineHeight",x),$n=pt/2,cr=this.getLabelJustification(p);switch(cr==="auto"||(Pt==="left"?cr==="left"?H+=-pt:cr==="center"&&(H+=-$n):Pt==="center"?cr==="left"?H+=-$n:cr==="right"&&(H+=$n):Pt==="right"&&(cr==="center"?H+=$n:cr==="right"&&(H+=pt))),qt){case"top":q-=(wr.length-1)*Cr;break;case"center":case"bottom":q-=(wr.length-1)*Cr;break}for(var mr=0;mr0&&y.strokeText(wr[mr],H,q),y.fillText(wr[mr],H,q),q+=Cr}else kr>0&&y.strokeText(st,H,q),y.fillText(st,H,q);re!==0&&(y.rotate(-re),y.translate(-W,-Z))}}};var b6={};b6.drawNode=function(y,p,x){var C=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,L=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,O=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,N=this,j,H,q=p._private,W=q.rscratch,Z=p.position();if(!(!Q(Z.x)||!Q(Z.y))&&!(O&&!p.visible())){var st=O?p.effectiveOpacity():1,bt=N.usePaths(),pt,_t=!1,St=p.padding();j=p.width()+2*St,H=p.height()+2*St;var Et;x&&(Et=x,y.translate(-Et.x1,-Et.y1));for(var Nt=p.pstyle("background-image"),Pt=Nt.value,qt=new Array(Pt.length),re=new Array(Pt.length),ee=0,Ut=0;Ut0&&arguments[0]!==void 0?arguments[0]:ze;N.eleFillStyle(y,p,Kn)},pr=function(){var Kn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:nn;N.colorStrokeStyle(y,me[0],me[1],me[2],Kn)},kr=function(){var Kn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:lr;N.colorStrokeStyle(y,Tn[0],Tn[1],Tn[2],Kn)},wr=function(Kn,G,Vn,gr){var nr=N.nodePathCache=N.nodePathCache||[],Be=Pd(Vn==="polygon"?Vn+","+gr.join(","):Vn,""+G,""+Kn),Ls=nr[Be],hr,us=!1;return Ls!=null?(hr=Ls,us=!0,W.pathCache=hr):(hr=new Path2D,nr[Be]=W.pathCache=hr),{path:hr,cacheHit:us}},Cr=p.pstyle("shape").strValue,$n=p.pstyle("shape-polygon-points").pfValue;if(bt){y.translate(Z.x,Z.y);var cr=wr(j,H,Cr,$n);pt=cr.path,_t=cr.cacheHit}var mr=function(){if(!_t){var Kn=Z;bt&&(Kn={x:0,y:0}),N.nodeShapes[N.getNodeShape(p)].draw(pt||y,Kn.x,Kn.y,j,H)}bt?y.fill(pt):y.fill()},Sr=function(){for(var Kn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:st,G=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,Vn=q.backgrounding,gr=0,nr=0;nr0&&arguments[0]!==void 0?arguments[0]:!1,G=arguments.length>1&&arguments[1]!==void 0?arguments[1]:st;N.hasPie(p)&&(N.drawPie(y,p,G),Kn&&(bt||N.nodeShapes[N.getNodeShape(p)].draw(y,Z.x,Z.y,j,H)))},ss=function(){var Kn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:st,G=(Te>0?Te:-Te)*Kn,Vn=Te>0?0:255;Te!==0&&(N.colorFillStyle(y,Vn,Vn,Vn,G),bt?y.fill(pt):y.fill())},na=function(){if(ie>0){if(y.lineWidth=ie,y.lineCap="butt",y.setLineDash)switch(yn){case"dotted":y.setLineDash([1,1]);break;case"dashed":y.setLineDash([4,2]);break;case"solid":case"double":y.setLineDash([]);break}if(bt?y.stroke(pt):y.stroke(),yn==="double"){y.lineWidth=ie/3;var Kn=y.globalCompositeOperation;y.globalCompositeOperation="destination-out",bt?y.stroke(pt):y.stroke(),y.globalCompositeOperation=Kn}y.setLineDash&&y.setLineDash([])}},vi=function(){if(qe>0){if(y.lineWidth=qe,y.lineCap="butt",y.setLineDash)switch(Xn){case"dotted":y.setLineDash([1,1]);break;case"dashed":y.setLineDash([4,2]);break;case"solid":case"double":y.setLineDash([]);break}var Kn=Z;bt&&(Kn={x:0,y:0});var G=N.getNodeShape(p),Vn=(j+ie+(qe+Sn))/j,gr=(H+ie+(qe+Sn))/H,nr=j*Vn,Be=H*gr,Ls=N.nodeShapes[G].points,hr;if(bt){var us=wr(nr,Be,G,Ls);hr=us.path}if(G==="ellipse")N.drawEllipsePath(hr||y,Kn.x,Kn.y,nr,Be);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(G)){var Ya=0,kc=0,Ca=0;G==="round-diamond"?Ya=(ie+Sn+qe)*1.4:G==="round-heptagon"?(Ya=(ie+Sn+qe)*1.075,Ca=-(ie/2+Sn+qe)/35):G==="round-hexagon"?Ya=(ie+Sn+qe)*1.12:G==="round-pentagon"?(Ya=(ie+Sn+qe)*1.13,Ca=-(ie/2+Sn+qe)/15):G==="round-tag"?(Ya=(ie+Sn+qe)*1.12,kc=(ie/2+qe+Sn)*.07):G==="round-triangle"&&(Ya=(ie+Sn+qe)*(Math.PI/2),Ca=-(ie+Sn/2+qe)/Math.PI),Ya!==0&&(Vn=(j+Ya)/j,gr=(H+Ya)/H),N.drawRoundPolygonPath(hr||y,Kn.x+kc,Kn.y+Ca,j*Vn,H*gr,Ls)}else if(["roundrectangle","round-rectangle"].includes(G))N.drawRoundRectanglePath(hr||y,Kn.x,Kn.y,nr,Be);else if(["cutrectangle","cut-rectangle"].includes(G))N.drawCutRectanglePath(hr||y,Kn.x,Kn.y,nr,Be);else if(["bottomroundrectangle","bottom-round-rectangle"].includes(G))N.drawBottomRoundRectanglePath(hr||y,Kn.x,Kn.y,nr,Be);else if(G==="barrel")N.drawBarrelPath(hr||y,Kn.x,Kn.y,nr,Be);else if(G.startsWith("polygon")||["rhomboid","right-rhomboid","round-tag","tag","vee"].includes(G)){var oc=(ie+qe+Sn)/j;Ls=J9(Z9(Ls,oc)),N.drawPolygonPath(hr||y,Kn.x,Kn.y,j,H,Ls)}else{var ra=(ie+qe+Sn)/j;Ls=J9(Z9(Ls,-ra)),N.drawPolygonPath(hr||y,Kn.x,Kn.y,j,H,Ls)}if(bt?y.stroke(hr):y.stroke(),Xn==="double"){y.lineWidth=ie/3;var no=y.globalCompositeOperation;y.globalCompositeOperation="destination-out",bt?y.stroke(hr):y.stroke(),y.globalCompositeOperation=no}y.setLineDash&&y.setLineDash([])}},si=function(){L&&N.drawNodeOverlay(y,p,Z,j,H)},Qi=function(){L&&N.drawNodeUnderlay(y,p,Z,j,H)},ks=function(){N.drawElementText(y,p,null,C)},as=p.pstyle("ghost").value==="yes";if(as){var Es=p.pstyle("ghost-offset-x").pfValue,eo=p.pstyle("ghost-offset-y").pfValue,Ta=p.pstyle("ghost-opacity").value,pa=Ta*st;y.translate(Es,eo),kr(),vi(),or(Ta*ze),mr(),Sr(pa,!0),pr(Ta*nn),na(),gi(Te!==0||ie!==0),Sr(pa,!1),ss(pa),y.translate(-Es,-eo)}bt&&y.translate(-Z.x,-Z.y),Qi(),bt&&y.translate(Z.x,Z.y),kr(),vi(),or(),mr(),Sr(st,!0),pr(),na(),gi(Te!==0||ie!==0),Sr(st,!1),ss(),bt&&y.translate(-Z.x,-Z.y),ks(),si(),x&&y.translate(Et.x1,Et.y1)}};var EM=function(p){if(!["overlay","underlay"].includes(p))throw new Error("Invalid state");return function(x,C,L,O,N){var j=this;if(C.visible()){var H=C.pstyle("".concat(p,"-padding")).pfValue,q=C.pstyle("".concat(p,"-opacity")).value,W=C.pstyle("".concat(p,"-color")).value,Z=C.pstyle("".concat(p,"-shape")).value;if(q>0){if(L=L||C.position(),O==null||N==null){var st=C.padding();O=C.width()+2*st,N=C.height()+2*st}j.colorFillStyle(x,W[0],W[1],W[2],q),j.nodeShapes[Z].draw(x,L.x,L.y,O+H*2,N+H*2),x.fill()}}}};b6.drawNodeOverlay=EM("overlay"),b6.drawNodeUnderlay=EM("underlay"),b6.hasPie=function(y){return y=y[0],y._private.hasPie},b6.drawPie=function(y,p,x,C){p=p[0],C=C||p.position();var L=p.cy().style(),O=p.pstyle("pie-size"),N=C.x,j=C.y,H=p.width(),q=p.height(),W=Math.min(H,q)/2,Z=0,st=this.usePaths();st&&(N=0,j=0),O.units==="%"?W=W*O.pfValue:O.pfValue!==void 0&&(W=O.pfValue/2);for(var bt=1;bt<=L.pieBackgroundN;bt++){var pt=p.pstyle("pie-"+bt+"-background-size").value,_t=p.pstyle("pie-"+bt+"-background-color").value,St=p.pstyle("pie-"+bt+"-background-opacity").value*x,Et=pt/100;Et+Z>1&&(Et=1-Z);var Nt=1.5*Math.PI+2*Math.PI*Z,Pt=2*Math.PI*Et,qt=Nt+Pt;pt===0||Z>=1||Z+Et>1||(y.beginPath(),y.moveTo(N,j),y.arc(N,j,W,Nt,qt),y.closePath(),this.colorFillStyle(y,_t[0],_t[1],_t[2],St),y.fill(),Z+=Et)}};var dg={},Ent=100;dg.getPixelRatio=function(){var y=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var p=y.backingStorePixelRatio||y.webkitBackingStorePixelRatio||y.mozBackingStorePixelRatio||y.msBackingStorePixelRatio||y.oBackingStorePixelRatio||y.backingStorePixelRatio||1;return(window.devicePixelRatio||1)/p},dg.paintCache=function(y){for(var p=this.paintCaches=this.paintCaches||[],x=!0,C,L=0;LN.minMbLowQualFrames&&(N.motionBlurPxRatio=N.mbPxRBlurry)),N.clearingMotionBlur&&(N.motionBlurPxRatio=1),N.textureDrawLastFrame&&!Z&&(W[N.NODE]=!0,W[N.SELECT_BOX]=!0);var Nt=H.style(),Pt=H.zoom(),qt=L!==void 0?L:Pt,re=H.pan(),ee={x:re.x,y:re.y},Ut={zoom:Pt,pan:{x:re.x,y:re.y}},de=N.prevViewport,Yt=de===void 0||Ut.zoom!==de.zoom||Ut.pan.x!==de.pan.x||Ut.pan.y!==de.pan.y;!Yt&&!(_t&&!pt)&&(N.motionBlurPxRatio=1),O&&(ee=O),qt*=j,ee.x*=j,ee.y*=j;var Ee=N.getCachedZSortedEles();function Te(vi,si,Qi,ks,as){var Es=vi.globalCompositeOperation;vi.globalCompositeOperation="destination-out",N.colorFillStyle(vi,255,255,255,N.motionBlurTransparency),vi.fillRect(si,Qi,ks,as),vi.globalCompositeOperation=Es}function ie(vi,si){var Qi,ks,as,Es;!N.clearingMotionBlur&&(vi===q.bufferContexts[N.MOTIONBLUR_BUFFER_NODE]||vi===q.bufferContexts[N.MOTIONBLUR_BUFFER_DRAG])?(Qi={x:re.x*bt,y:re.y*bt},ks=Pt*bt,as=N.canvasWidth*bt,Es=N.canvasHeight*bt):(Qi=ee,ks=qt,as=N.canvasWidth,Es=N.canvasHeight),vi.setTransform(1,0,0,1,0,0),si==="motionBlur"?Te(vi,0,0,as,Es):!p&&(si===void 0||si)&&vi.clearRect(0,0,as,Es),x||(vi.translate(Qi.x,Qi.y),vi.scale(ks,ks)),O&&vi.translate(O.x,O.y),L&&vi.scale(L,L)}if(Z||(N.textureDrawLastFrame=!1),Z){if(N.textureDrawLastFrame=!0,!N.textureCache){N.textureCache={},N.textureCache.bb=H.mutableElements().boundingBox(),N.textureCache.texture=N.data.bufferCanvases[N.TEXTURE_BUFFER];var ze=N.data.bufferContexts[N.TEXTURE_BUFFER];ze.setTransform(1,0,0,1,0,0),ze.clearRect(0,0,N.canvasWidth*N.textureMult,N.canvasHeight*N.textureMult),N.render({forcedContext:ze,drawOnlyNodeLayer:!0,forcedPxRatio:j*N.textureMult});var Ut=N.textureCache.viewport={zoom:H.zoom(),pan:H.pan(),width:N.canvasWidth,height:N.canvasHeight};Ut.mpan={x:(0-Ut.pan.x)/Ut.zoom,y:(0-Ut.pan.y)/Ut.zoom}}W[N.DRAG]=!1,W[N.NODE]=!1;var me=q.contexts[N.NODE],yn=N.textureCache.texture,Ut=N.textureCache.viewport;me.setTransform(1,0,0,1,0,0),st?Te(me,0,0,Ut.width,Ut.height):me.clearRect(0,0,Ut.width,Ut.height);var nn=Nt.core("outside-texture-bg-color").value,qe=Nt.core("outside-texture-bg-opacity").value;N.colorFillStyle(me,nn[0],nn[1],nn[2],qe),me.fillRect(0,0,Ut.width,Ut.height);var Pt=H.zoom();ie(me,!1),me.clearRect(Ut.mpan.x,Ut.mpan.y,Ut.width/Ut.zoom/j,Ut.height/Ut.zoom/j),me.drawImage(yn,Ut.mpan.x,Ut.mpan.y,Ut.width/Ut.zoom/j,Ut.height/Ut.zoom/j)}else N.textureOnViewport&&!p&&(N.textureCache=null);var Tn=H.extent(),Xn=N.pinching||N.hoverData.dragging||N.swipePanning||N.data.wheelZooming||N.hoverData.draggingEles||N.cy.animated(),lr=N.hideEdgesOnViewport&&Xn,Sn=[];if(Sn[N.NODE]=!W[N.NODE]&&st&&!N.clearedForMotionBlur[N.NODE]||N.clearingMotionBlur,Sn[N.NODE]&&(N.clearedForMotionBlur[N.NODE]=!0),Sn[N.DRAG]=!W[N.DRAG]&&st&&!N.clearedForMotionBlur[N.DRAG]||N.clearingMotionBlur,Sn[N.DRAG]&&(N.clearedForMotionBlur[N.DRAG]=!0),W[N.NODE]||x||C||Sn[N.NODE]){var or=st&&!Sn[N.NODE]&&bt!==1,me=p||(or?N.data.bufferContexts[N.MOTIONBLUR_BUFFER_NODE]:q.contexts[N.NODE]),pr=st&&!or?"motionBlur":void 0;ie(me,pr),lr?N.drawCachedNodes(me,Ee.nondrag,j,Tn):N.drawLayeredElements(me,Ee.nondrag,j,Tn),N.debug&&N.drawDebugPoints(me,Ee.nondrag),!x&&!st&&(W[N.NODE]=!1)}if(!C&&(W[N.DRAG]||x||Sn[N.DRAG])){var or=st&&!Sn[N.DRAG]&&bt!==1,me=p||(or?N.data.bufferContexts[N.MOTIONBLUR_BUFFER_DRAG]:q.contexts[N.DRAG]);ie(me,st&&!or?"motionBlur":void 0),lr?N.drawCachedNodes(me,Ee.drag,j,Tn):N.drawCachedElements(me,Ee.drag,j,Tn),N.debug&&N.drawDebugPoints(me,Ee.drag),!x&&!st&&(W[N.DRAG]=!1)}if(N.showFps||!C&&W[N.SELECT_BOX]&&!x){var me=p||q.contexts[N.SELECT_BOX];if(ie(me),N.selection[4]==1&&(N.hoverData.selecting||N.touchData.selecting)){var Pt=N.cy.zoom(),kr=Nt.core("selection-box-border-width").value/Pt;me.lineWidth=kr,me.fillStyle="rgba("+Nt.core("selection-box-color").value[0]+","+Nt.core("selection-box-color").value[1]+","+Nt.core("selection-box-color").value[2]+","+Nt.core("selection-box-opacity").value+")",me.fillRect(N.selection[0],N.selection[1],N.selection[2]-N.selection[0],N.selection[3]-N.selection[1]),kr>0&&(me.strokeStyle="rgba("+Nt.core("selection-box-border-color").value[0]+","+Nt.core("selection-box-border-color").value[1]+","+Nt.core("selection-box-border-color").value[2]+","+Nt.core("selection-box-opacity").value+")",me.strokeRect(N.selection[0],N.selection[1],N.selection[2]-N.selection[0],N.selection[3]-N.selection[1]))}if(q.bgActivePosistion&&!N.hoverData.selecting){var Pt=N.cy.zoom(),wr=q.bgActivePosistion;me.fillStyle="rgba("+Nt.core("active-bg-color").value[0]+","+Nt.core("active-bg-color").value[1]+","+Nt.core("active-bg-color").value[2]+","+Nt.core("active-bg-opacity").value+")",me.beginPath(),me.arc(wr.x,wr.y,Nt.core("active-bg-size").pfValue/Pt,0,2*Math.PI),me.fill()}var Cr=N.lastRedrawTime;if(N.showFps&&Cr){Cr=Math.round(Cr);var $n=Math.round(1e3/Cr);me.setTransform(1,0,0,1,0,0),me.fillStyle="rgba(255, 0, 0, 0.75)",me.strokeStyle="rgba(255, 0, 0, 0.75)",me.lineWidth=1,me.fillText("1 frame = "+Cr+" ms = "+$n+" fps",0,20);var cr=60;me.strokeRect(0,30,250,20),me.fillRect(0,30,250*Math.min($n/cr,1),20)}x||(W[N.SELECT_BOX]=!1)}if(st&&bt!==1){var mr=q.contexts[N.NODE],Sr=N.data.bufferCanvases[N.MOTIONBLUR_BUFFER_NODE],gi=q.contexts[N.DRAG],ss=N.data.bufferCanvases[N.MOTIONBLUR_BUFFER_DRAG],na=function(si,Qi,ks){si.setTransform(1,0,0,1,0,0),ks||!Et?si.clearRect(0,0,N.canvasWidth,N.canvasHeight):Te(si,0,0,N.canvasWidth,N.canvasHeight);var as=bt;si.drawImage(Qi,0,0,N.canvasWidth*as,N.canvasHeight*as,0,0,N.canvasWidth,N.canvasHeight)};(W[N.NODE]||Sn[N.NODE])&&(na(mr,Sr,Sn[N.NODE]),W[N.NODE]=!1),(W[N.DRAG]||Sn[N.DRAG])&&(na(gi,ss,Sn[N.DRAG]),W[N.DRAG]=!1)}N.prevViewport=Ut,N.clearingMotionBlur&&(N.clearingMotionBlur=!1,N.motionBlurCleared=!0,N.motionBlur=!0),st&&(N.motionBlurTimeout=setTimeout(function(){N.motionBlurTimeout=null,N.clearedForMotionBlur[N.NODE]=!1,N.clearedForMotionBlur[N.DRAG]=!1,N.motionBlur=!1,N.clearingMotionBlur=!Z,N.mbFrames=0,W[N.NODE]=!0,W[N.DRAG]=!0,N.redraw()},Ent)),p||H.emit("render")};var gy={};gy.drawPolygonPath=function(y,p,x,C,L,O){var N=C/2,j=L/2;y.beginPath&&y.beginPath(),y.moveTo(p+N*O[0],x+j*O[1]);for(var H=1;H0&&N>0){bt.clearRect(0,0,O,N),bt.globalCompositeOperation="source-over";var pt=this.getCachedZSortedEles();if(y.full)bt.translate(-C.x1*q,-C.y1*q),bt.scale(q,q),this.drawElements(bt,pt),bt.scale(1/q,1/q),bt.translate(C.x1*q,C.y1*q);else{var _t=p.pan(),St={x:_t.x*q,y:_t.y*q};q*=p.zoom(),bt.translate(St.x,St.y),bt.scale(q,q),this.drawElements(bt,pt),bt.scale(1/q,1/q),bt.translate(-St.x,-St.y)}y.bg&&(bt.globalCompositeOperation="destination-over",bt.fillStyle=y.bg,bt.rect(0,0,O,N),bt.fill())}return st};function Tnt(y,p){for(var x=atob(y),C=new ArrayBuffer(x.length),L=new Uint8Array(C),O=0;O"u"?"undefined":f(OffscreenCanvas))!=="undefined"?x=new OffscreenCanvas(y,p):(x=document.createElement("canvas"),x.width=y,x.height=p),x},[jj,bb,wb,aE,S4,b6,dg,gy,oE,Yj].forEach(function(y){we(xc,y)});var cp=[{name:"null",impl:mj},{name:"base",impl:Dj},{name:"canvas",impl:Xj}],Cnt=[{type:"layout",extensions:Vet},{type:"renderer",extensions:cp}],Snt={},_nt={};function Ant(y,p,x){var C=x,L=function(de){Gc("Can not register `"+p+"` for `"+y+"` since `"+de+"` already exists in the prototype and can not be overridden")};if(y==="core"){if(tE.prototype[p])return L(p);tE.prototype[p]=x}else if(y==="collection"){if(w1.prototype[p])return L(p);w1.prototype[p]=x}else if(y==="layout"){for(var O=function(de){this.options=de,x.call(this,de),it(this._private)||(this._private={}),this._private.cy=de.cy,this._private.listeners=[],this.createEmitter()},N=O.prototype=Object.create(x.prototype),j=[],H=0;Hz&&(this.rect.x-=(this.labelWidth-z)/2,this.setWidth(this.labelWidth)),this.labelHeight>Y&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-Y)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-Y),this.setHeight(this.labelHeight))}}},F.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==b.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},F.prototype.transform=function(B){var z=this.rect.x;z>S.WORLD_BOUNDARY?z=S.WORLD_BOUNDARY:z<-S.WORLD_BOUNDARY&&(z=-S.WORLD_BOUNDARY);var Y=this.rect.y;Y>S.WORLD_BOUNDARY?Y=S.WORLD_BOUNDARY:Y<-S.WORLD_BOUNDARY&&(Y=-S.WORLD_BOUNDARY);var nt=new M(z,Y),ot=B.inverseTransformPoint(nt);this.setLocation(ot.x,ot.y)},F.prototype.getLeft=function(){return this.rect.x},F.prototype.getRight=function(){return this.rect.x+this.rect.width},F.prototype.getTop=function(){return this.rect.y},F.prototype.getBottom=function(){return this.rect.y+this.rect.height},F.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},f.exports=F},function(f,g,w){function v(b,E){b==null&&E==null?(this.x=0,this.y=0):(this.x=b,this.y=E)}v.prototype.getX=function(){return this.x},v.prototype.getY=function(){return this.y},v.prototype.setX=function(b){this.x=b},v.prototype.setY=function(b){this.y=b},v.prototype.getDifference=function(b){return new DimensionD(this.x-b.x,this.y-b.y)},v.prototype.getCopy=function(){return new v(this.x,this.y)},v.prototype.translate=function(b){return this.x+=b.width,this.y+=b.height,this},f.exports=v},function(f,g,w){var v=w(2),b=w(10),E=w(0),S=w(6),_=w(3),M=w(1),F=w(13),R=w(12),B=w(11);function z(nt,ot,ft){v.call(this,ft),this.estimatedSize=b.MIN_VALUE,this.margin=E.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=nt,ot!=null&&ot instanceof S?this.graphManager=ot:ot!=null&&ot instanceof Layout&&(this.graphManager=ot.graphManager)}z.prototype=Object.create(v.prototype);for(var Y in v)z[Y]=v[Y];z.prototype.getNodes=function(){return this.nodes},z.prototype.getEdges=function(){return this.edges},z.prototype.getGraphManager=function(){return this.graphManager},z.prototype.getParent=function(){return this.parent},z.prototype.getLeft=function(){return this.left},z.prototype.getRight=function(){return this.right},z.prototype.getTop=function(){return this.top},z.prototype.getBottom=function(){return this.bottom},z.prototype.isConnected=function(){return this.isConnected},z.prototype.add=function(nt,ot,ft){if(ot==null&&ft==null){var wt=nt;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(wt)>-1)throw"Node already in graph!";return wt.owner=this,this.getNodes().push(wt),wt}else{var mt=nt;if(!(this.getNodes().indexOf(ot)>-1&&this.getNodes().indexOf(ft)>-1))throw"Source or target not in graph!";if(!(ot.owner==ft.owner&&ot.owner==this))throw"Both owners must be this graph!";return ot.owner!=ft.owner?null:(mt.source=ot,mt.target=ft,mt.isInterGraph=!1,this.getEdges().push(mt),ot.edges.push(mt),ft!=ot&&ft.edges.push(mt),mt)}},z.prototype.remove=function(nt){var ot=nt;if(nt instanceof _){if(ot==null)throw"Node is null!";if(!(ot.owner!=null&&ot.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var ft=ot.edges.slice(),wt,mt=ft.length,ct=0;ct-1&>>-1))throw"Source and/or target doesn't know this edge!";wt.source.edges.splice(it,1),wt.target!=wt.source&&wt.target.edges.splice(gt,1);var rt=wt.source.owner.getEdges().indexOf(wt);if(rt==-1)throw"Not in owner's edge list!";wt.source.owner.getEdges().splice(rt,1)}},z.prototype.updateLeftTop=function(){for(var nt=b.MAX_VALUE,ot=b.MAX_VALUE,ft,wt,mt,ct=this.getNodes(),rt=ct.length,it=0;itft&&(nt=ft),ot>wt&&(ot=wt)}return nt==b.MAX_VALUE?null:(ct[0].getParent().paddingLeft!=null?mt=ct[0].getParent().paddingLeft:mt=this.margin,this.left=ot-mt,this.top=nt-mt,new R(this.left,this.top))},z.prototype.updateBounds=function(nt){for(var ot=b.MAX_VALUE,ft=-b.MAX_VALUE,wt=b.MAX_VALUE,mt=-b.MAX_VALUE,ct,rt,it,gt,Q,dt=this.nodes,K=dt.length,yt=0;ytct&&(ot=ct),ftit&&(wt=it),mtct&&(ot=ct),ftit&&(wt=it),mt=this.nodes.length){var K=0;ft.forEach(function(yt){yt.owner==nt&&K++}),K==this.nodes.length&&(this.isConnected=!0)}},f.exports=z},function(f,g,w){var v,b=w(1);function E(S){v=w(5),this.layout=S,this.graphs=[],this.edges=[]}E.prototype.addRoot=function(){var S=this.layout.newGraph(),_=this.layout.newNode(null),M=this.add(S,_);return this.setRootGraph(M),this.rootGraph},E.prototype.add=function(S,_,M,F,R){if(M==null&&F==null&&R==null){if(S==null)throw"Graph is null!";if(_==null)throw"Parent node is null!";if(this.graphs.indexOf(S)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(S),S.parent!=null)throw"Already has a parent!";if(_.child!=null)throw"Already has a child!";return S.parent=_,_.child=S,S}else{R=M,F=_,M=S;var B=F.getOwner(),z=R.getOwner();if(!(B!=null&&B.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(z!=null&&z.getGraphManager()==this))throw"Target not in this graph mgr!";if(B==z)return M.isInterGraph=!1,B.add(M,F,R);if(M.isInterGraph=!0,M.source=F,M.target=R,this.edges.indexOf(M)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(M),!(M.source!=null&&M.target!=null))throw"Edge source and/or target is null!";if(!(M.source.edges.indexOf(M)==-1&&M.target.edges.indexOf(M)==-1))throw"Edge already in source and/or target incidency list!";return M.source.edges.push(M),M.target.edges.push(M),M}},E.prototype.remove=function(S){if(S instanceof v){var _=S;if(_.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(_==this.rootGraph||_.parent!=null&&_.parent.graphManager==this))throw"Invalid parent node!";var M=[];M=M.concat(_.getEdges());for(var F,R=M.length,B=0;B=S.getRight()?_[0]+=Math.min(S.getX()-E.getX(),E.getRight()-S.getRight()):S.getX()<=E.getX()&&S.getRight()>=E.getRight()&&(_[0]+=Math.min(E.getX()-S.getX(),S.getRight()-E.getRight())),E.getY()<=S.getY()&&E.getBottom()>=S.getBottom()?_[1]+=Math.min(S.getY()-E.getY(),E.getBottom()-S.getBottom()):S.getY()<=E.getY()&&S.getBottom()>=E.getBottom()&&(_[1]+=Math.min(E.getY()-S.getY(),S.getBottom()-E.getBottom()));var R=Math.abs((S.getCenterY()-E.getCenterY())/(S.getCenterX()-E.getCenterX()));S.getCenterY()===E.getCenterY()&&S.getCenterX()===E.getCenterX()&&(R=1);var B=R*_[0],z=_[1]/R;_[0]B)return _[0]=M,_[1]=Y,_[2]=R,_[3]=dt,!1;if(FR)return _[0]=z,_[1]=F,_[2]=gt,_[3]=B,!1;if(MR?(_[0]=ot,_[1]=ft,Ot=!0):(_[0]=nt,_[1]=Y,Ot=!0):jt===Ft&&(M>R?(_[0]=z,_[1]=Y,Ot=!0):(_[0]=wt,_[1]=ft,Ot=!0)),-xt===Ft?R>M?(_[2]=Q,_[3]=dt,It=!0):(_[2]=gt,_[3]=it,It=!0):xt===Ft&&(R>M?(_[2]=rt,_[3]=it,It=!0):(_[2]=K,_[3]=dt,It=!0)),Ot&&It)return!1;if(M>R?F>B?(Ct=this.getCardinalDirection(jt,Ft,4),kt=this.getCardinalDirection(xt,Ft,2)):(Ct=this.getCardinalDirection(-jt,Ft,3),kt=this.getCardinalDirection(-xt,Ft,1)):F>B?(Ct=this.getCardinalDirection(-jt,Ft,1),kt=this.getCardinalDirection(-xt,Ft,3)):(Ct=this.getCardinalDirection(jt,Ft,2),kt=this.getCardinalDirection(xt,Ft,4)),!Ot)switch(Ct){case 1:Fe=Y,Gt=M+-ct/Ft,_[0]=Gt,_[1]=Fe;break;case 2:Gt=wt,Fe=F+mt*Ft,_[0]=Gt,_[1]=Fe;break;case 3:Fe=ft,Gt=M+ct/Ft,_[0]=Gt,_[1]=Fe;break;case 4:Gt=ot,Fe=F+-mt*Ft,_[0]=Gt,_[1]=Fe;break}if(!It)switch(kt){case 1:pn=it,Mt=R+-V/Ft,_[2]=Mt,_[3]=pn;break;case 2:Mt=K,pn=B+yt*Ft,_[2]=Mt,_[3]=pn;break;case 3:pn=dt,Mt=R+V/Ft,_[2]=Mt,_[3]=pn;break;case 4:Mt=Q,pn=B+-yt*Ft,_[2]=Mt,_[3]=pn;break}}return!1},b.getCardinalDirection=function(E,S,_){return E>S?_:1+_%4},b.getIntersection=function(E,S,_,M){if(M==null)return this.getIntersection2(E,S,_);var F=E.x,R=E.y,B=S.x,z=S.y,Y=_.x,nt=_.y,ot=M.x,ft=M.y,wt=void 0,mt=void 0,ct=void 0,rt=void 0,it=void 0,gt=void 0,Q=void 0,dt=void 0,K=void 0;return ct=z-R,it=F-B,Q=B*R-F*z,rt=ft-nt,gt=Y-ot,dt=ot*nt-Y*ft,K=ct*gt-rt*it,K===0?null:(wt=(it*dt-gt*Q)/K,mt=(rt*Q-ct*dt)/K,new v(wt,mt))},b.angleOfVector=function(E,S,_,M){var F=void 0;return E!==_?(F=Math.atan((M-S)/(_-E)),_0?1:b<0?-1:0},v.floor=function(b){return b<0?Math.ceil(b):Math.floor(b)},v.ceil=function(b){return b<0?Math.floor(b):Math.ceil(b)},f.exports=v},function(f,g,w){function v(){}v.MAX_VALUE=2147483647,v.MIN_VALUE=-2147483648,f.exports=v},function(f,g,w){var v=function(){function F(R,B){for(var z=0;z"u"?"undefined":v(E);return E==null||S!="object"&&S!="function"},f.exports=b},function(f,g,w){function v(Y){if(Array.isArray(Y)){for(var nt=0,ot=Array(Y.length);nt0&&nt;){for(ct.push(it[0]);ct.length>0&&nt;){var gt=ct[0];ct.splice(0,1),mt.add(gt);for(var Q=gt.getEdges(),wt=0;wt-1&&it.splice(V,1)}mt=new Set,rt=new Map}}return Y},z.prototype.createDummyNodesForBendpoints=function(Y){for(var nt=[],ot=Y.source,ft=this.graphManager.calcLowestCommonAncestor(Y.source,Y.target),wt=0;wt0){for(var ft=this.edgeToDummyNodes.get(ot),wt=0;wt=0&&nt.splice(dt,1);var K=rt.getNeighborsList();K.forEach(function(Ot){if(ot.indexOf(Ot)<0){var It=ft.get(Ot),jt=It-1;jt==1&>.push(Ot),ft.set(Ot,jt)}})}ot=ot.concat(gt),(nt.length==1||nt.length==2)&&(wt=!0,mt=nt[0])}return mt},z.prototype.setGraphManager=function(Y){this.graphManager=Y},f.exports=z},function(f,g,w){function v(){}v.seed=1,v.x=0,v.nextDouble=function(){return v.x=Math.sin(v.seed++)*1e4,v.x-Math.floor(v.x)},f.exports=v},function(f,g,w){var v=w(4);function b(E,S){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}b.prototype.getWorldOrgX=function(){return this.lworldOrgX},b.prototype.setWorldOrgX=function(E){this.lworldOrgX=E},b.prototype.getWorldOrgY=function(){return this.lworldOrgY},b.prototype.setWorldOrgY=function(E){this.lworldOrgY=E},b.prototype.getWorldExtX=function(){return this.lworldExtX},b.prototype.setWorldExtX=function(E){this.lworldExtX=E},b.prototype.getWorldExtY=function(){return this.lworldExtY},b.prototype.setWorldExtY=function(E){this.lworldExtY=E},b.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},b.prototype.setDeviceOrgX=function(E){this.ldeviceOrgX=E},b.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},b.prototype.setDeviceOrgY=function(E){this.ldeviceOrgY=E},b.prototype.getDeviceExtX=function(){return this.ldeviceExtX},b.prototype.setDeviceExtX=function(E){this.ldeviceExtX=E},b.prototype.getDeviceExtY=function(){return this.ldeviceExtY},b.prototype.setDeviceExtY=function(E){this.ldeviceExtY=E},b.prototype.transformX=function(E){var S=0,_=this.lworldExtX;return _!=0&&(S=this.ldeviceOrgX+(E-this.lworldOrgX)*this.ldeviceExtX/_),S},b.prototype.transformY=function(E){var S=0,_=this.lworldExtY;return _!=0&&(S=this.ldeviceOrgY+(E-this.lworldOrgY)*this.ldeviceExtY/_),S},b.prototype.inverseTransformX=function(E){var S=0,_=this.ldeviceExtX;return _!=0&&(S=this.lworldOrgX+(E-this.ldeviceOrgX)*this.lworldExtX/_),S},b.prototype.inverseTransformY=function(E){var S=0,_=this.ldeviceExtY;return _!=0&&(S=this.lworldOrgY+(E-this.ldeviceOrgY)*this.lworldExtY/_),S},b.prototype.inverseTransformPoint=function(E){var S=new v(this.inverseTransformX(E.x),this.inverseTransformY(E.y));return S},f.exports=b},function(f,g,w){function v(B){if(Array.isArray(B)){for(var z=0,Y=Array(B.length);zE.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*E.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(B-E.ADAPTATION_LOWER_NODE_LIMIT)/(E.ADAPTATION_UPPER_NODE_LIMIT-E.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-E.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=E.MAX_NODE_DISPLACEMENT_INCREMENTAL):(B>E.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(E.COOLING_ADAPTATION_FACTOR,1-(B-E.ADAPTATION_LOWER_NODE_LIMIT)/(E.ADAPTATION_UPPER_NODE_LIMIT-E.ADAPTATION_LOWER_NODE_LIMIT)*(1-E.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=E.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},F.prototype.calcSpringForces=function(){for(var B=this.getAllEdges(),z,Y=0;Y0&&arguments[0]!==void 0?arguments[0]:!0,z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,Y,nt,ot,ft,wt=this.getAllNodes(),mt;if(this.useFRGridVariant)for(this.totalIterations%E.GRID_CALCULATION_CHECK_PERIOD==1&&B&&this.updateGrid(),mt=new Set,Y=0;Yct||mt>ct)&&(B.gravitationForceX=-this.gravityConstant*ot,B.gravitationForceY=-this.gravityConstant*ft)):(ct=z.getEstimatedSize()*this.compoundGravityRangeFactor,(wt>ct||mt>ct)&&(B.gravitationForceX=-this.gravityConstant*ot*this.compoundGravityConstant,B.gravitationForceY=-this.gravityConstant*ft*this.compoundGravityConstant))},F.prototype.isConverged=function(){var B,z=!1;return this.totalIterations>this.maxIterations/3&&(z=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),B=this.totalDisplacement=wt.length||ct>=wt[0].length)){for(var rt=0;rtF}}]),_}();f.exports=S},function(f,g,w){var v=function(){function S(_,M){for(var F=0;F2&&arguments[2]!==void 0?arguments[2]:1,R=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,B=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;b(this,S),this.sequence1=_,this.sequence2=M,this.match_score=F,this.mismatch_penalty=R,this.gap_penalty=B,this.iMax=_.length+1,this.jMax=M.length+1,this.grid=new Array(this.iMax);for(var z=0;z=0;_--){var M=this.listeners[_];M.event===E&&M.callback===S&&this.listeners.splice(_,1)}},b.emit=function(E,S){for(var _=0;_M.coolingFactor*M.maxNodeDisplacement&&(this.displacementX=M.coolingFactor*M.maxNodeDisplacement*E.sign(this.displacementX)),Math.abs(this.displacementY)>M.coolingFactor*M.maxNodeDisplacement&&(this.displacementY=M.coolingFactor*M.maxNodeDisplacement*E.sign(this.displacementY)),this.child==null?this.moveBy(this.displacementX,this.displacementY):this.child.getNodes().length==0?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),M.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},S.prototype.propogateDisplacementToChildren=function(M,F){for(var R=this.getChild().getNodes(),B,z=0;z0)this.positionNodesRadially(it);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var gt=new Set(this.getAllNodes()),Q=this.nodesWithGravity.filter(function(dt){return gt.has(dt)});this.graphManager.setAllNodesToApplyGravitation(Q),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},ct.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%R.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var it=new Set(this.getAllNodes()),gt=this.nodesWithGravity.filter(function(K){return it.has(K)});this.graphManager.setAllNodesToApplyGravitation(gt),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=R.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=R.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var Q=!this.isTreeGrowing&&!this.isGrowthFinished,dt=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(Q,dt),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},ct.prototype.getPositionsData=function(){for(var it=this.graphManager.getAllNodes(),gt={},Q=0;Q1){var Ot;for(Ot=0;Otdt&&(dt=Math.floor(V.y)),yt=Math.floor(V.x+F.DEFAULT_COMPONENT_SEPERATION)}this.transform(new Y(B.WORLD_CENTER_X-V.x/2,B.WORLD_CENTER_Y-V.y/2))},ct.radialLayout=function(it,gt,Q){var dt=Math.max(this.maxDiagonalInTree(it),F.DEFAULT_RADIAL_SEPARATION);ct.branchRadialLayout(gt,null,0,359,0,dt);var K=wt.calculateBounds(it),yt=new mt;yt.setDeviceOrgX(K.getMinX()),yt.setDeviceOrgY(K.getMinY()),yt.setWorldOrgX(Q.x),yt.setWorldOrgY(Q.y);for(var V=0;V1;){var pn=Mt[0];Mt.splice(0,1);var Ae=Ft.indexOf(pn);Ae>=0&&Ft.splice(Ae,1),Gt--,Ct--}gt!=null?Fe=(Ft.indexOf(Mt[0])+1)%Gt:Fe=0;for(var ye=Math.abs(dt-Q)/Ct,tn=Fe;kt!=Ct;tn=++tn%Gt){var sn=Ft[tn].getOtherEnd(it);if(sn!=gt){var be=(Q+kt*ye)%360,Ne=(be+ye)%360;ct.branchRadialLayout(sn,it,be,Ne,K+yt,yt),kt++}}},ct.maxDiagonalInTree=function(it){for(var gt=ot.MIN_VALUE,Q=0;Qgt&&(gt=K)}return gt},ct.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},ct.prototype.groupZeroDegreeMembers=function(){var it=this,gt={};this.memberGroups={},this.idToDummyNode={};for(var Q=[],dt=this.graphManager.getAllNodes(),K=0;K"u"&&(gt[Ot]=[]),gt[Ot]=gt[Ot].concat(yt)}Object.keys(gt).forEach(function(It){if(gt[It].length>1){var jt="DummyCompound_"+It;it.memberGroups[jt]=gt[It];var xt=gt[It][0].getParent(),Ft=new _(it.graphManager);Ft.id=jt,Ft.paddingLeft=xt.paddingLeft||0,Ft.paddingRight=xt.paddingRight||0,Ft.paddingBottom=xt.paddingBottom||0,Ft.paddingTop=xt.paddingTop||0,it.idToDummyNode[jt]=Ft;var Ct=it.getGraphManager().add(it.newGraph(),Ft),kt=xt.getChild();kt.add(Ft);for(var Gt=0;Gt=0;it--){var gt=this.compoundOrder[it],Q=gt.id,dt=gt.paddingLeft,K=gt.paddingTop;this.adjustLocations(this.tiledMemberPack[Q],gt.rect.x,gt.rect.y,dt,K)}},ct.prototype.repopulateZeroDegreeMembers=function(){var it=this,gt=this.tiledZeroDegreePack;Object.keys(gt).forEach(function(Q){var dt=it.idToDummyNode[Q],K=dt.paddingLeft,yt=dt.paddingTop;it.adjustLocations(gt[Q],dt.rect.x,dt.rect.y,K,yt)})},ct.prototype.getToBeTiled=function(it){var gt=it.id;if(this.toBeTiled[gt]!=null)return this.toBeTiled[gt];var Q=it.getChild();if(Q==null)return this.toBeTiled[gt]=!1,!1;for(var dt=Q.getNodes(),K=0;K0)return this.toBeTiled[gt]=!1,!1;if(yt.getChild()==null){this.toBeTiled[yt.id]=!1;continue}if(!this.getToBeTiled(yt))return this.toBeTiled[gt]=!1,!1}return this.toBeTiled[gt]=!0,!0},ct.prototype.getNodeDegree=function(it){it.id;for(var gt=it.getEdges(),Q=0,dt=0;dtIt&&(It=xt.rect.height)}Q+=It+it.verticalPadding}},ct.prototype.tileCompoundMembers=function(it,gt){var Q=this;this.tiledMemberPack=[],Object.keys(it).forEach(function(dt){var K=gt[dt];Q.tiledMemberPack[dt]=Q.tileNodes(it[dt],K.paddingLeft+K.paddingRight),K.rect.width=Q.tiledMemberPack[dt].width,K.rect.height=Q.tiledMemberPack[dt].height})},ct.prototype.tileNodes=function(it,gt){var Q=F.TILING_PADDING_VERTICAL,dt=F.TILING_PADDING_HORIZONTAL,K={rows:[],rowWidth:[],rowHeight:[],width:0,height:gt,verticalPadding:Q,horizontalPadding:dt};it.sort(function(Ot,It){return Ot.rect.width*Ot.rect.height>It.rect.width*It.rect.height?-1:Ot.rect.width*Ot.rect.height0&&(V+=it.horizontalPadding),it.rowWidth[Q]=V,it.width0&&(Ot+=it.verticalPadding);var It=0;Ot>it.rowHeight[Q]&&(It=it.rowHeight[Q],it.rowHeight[Q]=Ot,It=it.rowHeight[Q]-It),it.height+=It,it.rows[Q].push(gt)},ct.prototype.getShortestRowIndex=function(it){for(var gt=-1,Q=Number.MAX_VALUE,dt=0;dtQ&&(gt=dt,Q=it.rowWidth[dt]);return gt},ct.prototype.canAddHorizontal=function(it,gt,Q){var dt=this.getShortestRowIndex(it);if(dt<0)return!0;var K=it.rowWidth[dt];if(K+it.horizontalPadding+gt<=it.width)return!0;var yt=0;it.rowHeight[dt]0&&(yt=Q+it.verticalPadding-it.rowHeight[dt]);var V;it.width-K>=gt+it.horizontalPadding?V=(it.height+yt)/(K+gt+it.horizontalPadding):V=(it.height+yt)/it.width,yt=Q+it.verticalPadding;var Ot;return it.widthyt&>!=Q){dt.splice(-1,1),it.rows[Q].push(K),it.rowWidth[gt]=it.rowWidth[gt]-yt,it.rowWidth[Q]=it.rowWidth[Q]+yt,it.width=it.rowWidth[instance.getLongestRowIndex(it)];for(var V=Number.MIN_VALUE,Ot=0;OtV&&(V=dt[Ot].height);gt>0&&(V+=it.verticalPadding);var It=it.rowHeight[gt]+it.rowHeight[Q];it.rowHeight[gt]=V,it.rowHeight[Q]0)for(var kt=K;kt<=yt;kt++)Ct[0]+=this.grid[kt][V-1].length+this.grid[kt][V].length-1;if(yt0)for(var kt=V;kt<=Ot;kt++)Ct[3]+=this.grid[K-1][kt].length+this.grid[K][kt].length-1;for(var Gt=ot.MAX_VALUE,Fe,Mt,pn=0;pn0){var Ot;Ot=mt.getGraphManager().add(mt.newGraph(),Q),this.processChildrenList(Ot,gt,mt)}}},Y.prototype.stop=function(){return this.stopped=!0,this};var ot=function(wt){wt("layout","cose-bilkent",Y)};typeof cytoscape<"u"&&ot(cytoscape),g.exports=ot}])})})(WHt);var ien=WHt.exports;const sen=e9(ien),aen=12,oen=function(i,a,f,g){a.append("path").attr("id","node-"+f.id).attr("class","node-bkg node-"+i.type2Str(f.type)).attr("d",`M0 ${f.height-5} v${-f.height+2*5} q0,-5 5,-5 h${f.width-2*5} q5,0 5,5 v${f.height-5} H0 Z`),a.append("line").attr("class","node-line-"+g).attr("x1",0).attr("y1",f.height).attr("x2",f.width).attr("y2",f.height)},cen=function(i,a,f){a.append("rect").attr("id","node-"+f.id).attr("class","node-bkg node-"+i.type2Str(f.type)).attr("height",f.height).attr("width",f.width)},uen=function(i,a,f){const g=f.width,w=f.height,v=.15*g,b=.25*g,E=.35*g,S=.2*g;a.append("path").attr("id","node-"+f.id).attr("class","node-bkg node-"+i.type2Str(f.type)).attr("d",`M0 0 a${v},${v} 0 0,1 ${g*.25},${-1*g*.1} + a${E},${E} 1 0,1 ${g*.4},${-1*g*.1} + a${b},${b} 1 0,1 ${g*.35},${1*g*.2} + + a${v},${v} 1 0,1 ${g*.15},${1*w*.35} + a${S},${S} 1 0,1 ${-1*g*.15},${1*w*.65} + + a${b},${v} 1 0,1 ${-1*g*.25},${g*.15} + a${E},${E} 1 0,1 ${-1*g*.5},0 + a${v},${v} 1 0,1 ${-1*g*.25},${-1*g*.15} + + a${v},${v} 1 0,1 ${-1*g*.1},${-1*w*.35} + a${S},${S} 1 0,1 ${g*.1},${-1*w*.65} + + H0 V0 Z`)},len=function(i,a,f){const g=f.width,w=f.height,v=.15*g;a.append("path").attr("id","node-"+f.id).attr("class","node-bkg node-"+i.type2Str(f.type)).attr("d",`M0 0 a${v},${v} 1 0,0 ${g*.25},${-1*w*.1} + a${v},${v} 1 0,0 ${g*.25},0 + a${v},${v} 1 0,0 ${g*.25},0 + a${v},${v} 1 0,0 ${g*.25},${1*w*.1} + + a${v},${v} 1 0,0 ${g*.15},${1*w*.33} + a${v*.8},${v*.8} 1 0,0 0,${1*w*.34} + a${v},${v} 1 0,0 ${-1*g*.15},${1*w*.33} + + a${v},${v} 1 0,0 ${-1*g*.25},${w*.15} + a${v},${v} 1 0,0 ${-1*g*.25},0 + a${v},${v} 1 0,0 ${-1*g*.25},0 + a${v},${v} 1 0,0 ${-1*g*.25},${-1*w*.15} + + a${v},${v} 1 0,0 ${-1*g*.1},${-1*w*.33} + a${v*.8},${v*.8} 1 0,0 0,${-1*w*.34} + a${v},${v} 1 0,0 ${g*.1},${-1*w*.33} + + H0 V0 Z`)},hen=function(i,a,f){a.append("circle").attr("id","node-"+f.id).attr("class","node-bkg node-"+i.type2Str(f.type)).attr("r",f.width/2)};function fen(i,a,f,g,w){return i.insert("polygon",":first-child").attr("points",g.map(function(v){return v.x+","+v.y}).join(" ")).attr("transform","translate("+(w.width-a)/2+", "+f+")")}const den=function(i,a,f){const g=f.height,v=g/4,b=f.width-f.padding+2*v,E=[{x:v,y:0},{x:b-v,y:0},{x:b,y:-g/2},{x:b-v,y:-g},{x:v,y:-g},{x:0,y:-g/2}];fen(a,b,g,E,f)},gen=function(i,a,f){a.append("rect").attr("id","node-"+f.id).attr("class","node-bkg node-"+i.type2Str(f.type)).attr("height",f.height).attr("rx",f.padding).attr("ry",f.padding).attr("width",f.width)},pen=function(i,a,f,g,w){const v=w.htmlLabels,b=g%(aen-1),E=a.append("g");f.section=b;let S="section-"+b;b<0&&(S+=" section-root"),E.attr("class",(f.class?f.class+" ":"")+"mindmap-node "+S);const _=E.append("g"),M=E.append("g"),F=f.descr.replace(/()/g,` +`);ZY(M,F,{useHtmlLabels:v,width:f.width,classes:"mindmap-node-label"}),v||M.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");const R=M.node().getBBox(),[B]=k9(w.fontSize);if(f.height=R.height+B*1.1*.5+f.padding,f.width=R.width+2*f.padding,f.icon)if(f.type===i.nodeType.CIRCLE)f.height+=50,f.width+=50,E.append("foreignObject").attr("height","50px").attr("width",f.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+b+" "+f.icon),M.attr("transform","translate("+f.width/2+", "+(f.height/2-1.5*f.padding)+")");else{f.width+=50;const z=f.height;f.height=Math.max(z,60);const Y=Math.abs(f.height-z);E.append("foreignObject").attr("width","60px").attr("height",f.height).attr("style","text-align: center;margin-top:"+Y/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+b+" "+f.icon),M.attr("transform","translate("+(25+f.width/2)+", "+(Y/2+f.padding/2)+")")}else if(v){const z=(f.width-R.width)/2,Y=(f.height-R.height)/2;M.attr("transform","translate("+z+", "+Y+")")}else{const z=f.width/2,Y=f.padding/2;M.attr("transform","translate("+z+", "+Y+")")}switch(f.type){case i.nodeType.DEFAULT:oen(i,_,f,b);break;case i.nodeType.ROUNDED_RECT:gen(i,_,f);break;case i.nodeType.RECT:cen(i,_,f);break;case i.nodeType.CIRCLE:_.attr("transform","translate("+f.width/2+", "+ +f.height/2+")"),hen(i,_,f);break;case i.nodeType.CLOUD:uen(i,_,f);break;case i.nodeType.BANG:len(i,_,f);break;case i.nodeType.HEXAGON:den(i,_,f);break}return i.setElementForId(f.id,E),f.height},ben=function(i,a){const f=i.getElementById(a.id),g=a.x||0,w=a.y||0;f.attr("transform","translate("+g+","+w+")")};KHt.use(sen);function QHt(i,a,f,g,w){pen(i,a,f,g,w),f.children&&f.children.forEach((v,b)=>{QHt(i,a,v,g<0?b:g,w)})}function wen(i,a){a.edges().map((f,g)=>{const w=f.data();if(f[0]._private.bodyBounds){const v=f[0]._private.rscratch;Kt.trace("Edge: ",g,w),i.insert("path").attr("d",`M ${v.startX},${v.startY} L ${v.midX},${v.midY} L${v.endX},${v.endY} `).attr("class","edge section-edge-"+w.section+" edge-depth-"+w.depth)}})}function JHt(i,a,f,g){a.add({group:"nodes",data:{id:i.id.toString(),labelText:i.descr,height:i.height,width:i.width,level:g,nodeId:i.id,padding:i.padding,type:i.type},position:{x:i.x,y:i.y}}),i.children&&i.children.forEach(w=>{JHt(w,a,f,g+1),a.add({group:"edges",data:{id:`${i.id}_${w.id}`,source:i.id,target:w.id,depth:g,section:w.section}})})}function men(i,a){return new Promise(f=>{const g=Tr("body").append("div").attr("id","cy").attr("style","display:none"),w=KHt({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});g.remove(),JHt(i,w,a,0),w.nodes().forEach(function(v){v.layoutDimensions=()=>{const b=v.data();return{w:b.width,h:b.height}}}),w.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),w.ready(v=>{Kt.info("Ready",v),f(w)})})}function ven(i,a){a.nodes().map((f,g)=>{const w=f.data();w.x=f.position().x,w.y=f.position().y,ben(i,w);const v=i.getElementById(w.nodeId);Kt.info("Id:",g,"Position: (",f.position().x,", ",f.position().y,")",w),v.attr("transform",`translate(${f.position().x-w.width/2}, ${f.position().y-w.height/2})`),v.attr("attr",`apa-${g})`)})}const yen={draw:async(i,a,f,g)=>{var F,R;Kt.debug(`Rendering mindmap diagram +`+i);const w=g.db,v=w.getMindmap();if(!v)return;const b=Re();b.htmlLabels=!1;const E=FF(a),S=E.append("g");S.attr("class","mindmap-edges");const _=E.append("g");_.attr("class","mindmap-nodes"),QHt(w,_,v,-1,b);const M=await men(v,b);wen(S,M),ven(w,M),w8(void 0,E,((F=b.mindmap)==null?void 0:F.padding)??Bl.mindmap.padding,((R=b.mindmap)==null?void 0:R.useMaxWidth)??Bl.mindmap.useMaxWidth)}},xen=i=>{let a="";for(let f=0;f` + .edge { + stroke-width: 3; + } + ${xen(i)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${i.git0}; + } + .section-root text { + fill: ${i.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .mindmap-node-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } +`}},Symbol.toStringTag,{value:"Module"}));var w2t=function(){var i=function(E,S,_,M){for(_=_||{},M=E.length;M--;_[E[M]]=S);return _},a=[1,9],f=[1,10],g=[1,5,10,12],w={trace:function(){},yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:function(S,_,M,F,R,B,z){var Y=B.length-1;switch(R){case 7:const nt=F.findOrCreateNode(B[Y-4].trim().replaceAll('""','"')),ot=F.findOrCreateNode(B[Y-2].trim().replaceAll('""','"')),ft=parseFloat(B[Y].trim());F.addLink(nt,ot,ft);break;case 8:case 9:case 11:this.$=B[Y];break;case 10:this.$=B[Y-1];break}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:a,20:f},{1:[2,6],7:11,10:[1,12]},i(f,[2,4],{9:13,5:[1,14]}),{12:[1,15]},i(g,[2,8]),i(g,[2,9]),{19:[1,16]},i(g,[2,11]),{1:[2,1]},{1:[2,5]},i(f,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:a,20:f},{15:18,16:7,17:8,18:a,20:f},{18:[1,19]},i(f,[2,3]),{12:[1,20]},i(g,[2,10]),{15:21,16:7,17:8,18:a,20:f},i([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:function(S,_){if(_.recoverable)this.trace(S);else{var M=new Error(S);throw M.hash=_,M}},parse:function(S){var _=this,M=[0],F=[],R=[null],B=[],z=this.table,Y="",nt=0,ot=0,ft=2,wt=1,mt=B.slice.call(arguments,1),ct=Object.create(this.lexer),rt={yy:{}};for(var it in this.yy)Object.prototype.hasOwnProperty.call(this.yy,it)&&(rt.yy[it]=this.yy[it]);ct.setInput(S,rt.yy),rt.yy.lexer=ct,rt.yy.parser=this,typeof ct.yylloc>"u"&&(ct.yylloc={});var gt=ct.yylloc;B.push(gt);var Q=ct.options&&ct.options.ranges;typeof rt.yy.parseError=="function"?this.parseError=rt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function dt(){var Gt;return Gt=F.pop()||ct.lex()||wt,typeof Gt!="number"&&(Gt instanceof Array&&(F=Gt,Gt=F.pop()),Gt=_.symbols_[Gt]||Gt),Gt}for(var K,yt,V,Ot,It={},jt,xt,Ft,Ct;;){if(yt=M[M.length-1],this.defaultActions[yt]?V=this.defaultActions[yt]:((K===null||typeof K>"u")&&(K=dt()),V=z[yt]&&z[yt][K]),typeof V>"u"||!V.length||!V[0]){var kt="";Ct=[];for(jt in z[yt])this.terminals_[jt]&&jt>ft&&Ct.push("'"+this.terminals_[jt]+"'");ct.showPosition?kt="Parse error on line "+(nt+1)+`: +`+ct.showPosition()+` +Expecting `+Ct.join(", ")+", got '"+(this.terminals_[K]||K)+"'":kt="Parse error on line "+(nt+1)+": Unexpected "+(K==wt?"end of input":"'"+(this.terminals_[K]||K)+"'"),this.parseError(kt,{text:ct.match,token:this.terminals_[K]||K,line:ct.yylineno,loc:gt,expected:Ct})}if(V[0]instanceof Array&&V.length>1)throw new Error("Parse Error: multiple actions possible at state: "+yt+", token: "+K);switch(V[0]){case 1:M.push(K),R.push(ct.yytext),B.push(ct.yylloc),M.push(V[1]),K=null,ot=ct.yyleng,Y=ct.yytext,nt=ct.yylineno,gt=ct.yylloc;break;case 2:if(xt=this.productions_[V[1]][1],It.$=R[R.length-xt],It._$={first_line:B[B.length-(xt||1)].first_line,last_line:B[B.length-1].last_line,first_column:B[B.length-(xt||1)].first_column,last_column:B[B.length-1].last_column},Q&&(It._$.range=[B[B.length-(xt||1)].range[0],B[B.length-1].range[1]]),Ot=this.performAction.apply(It,[Y,ot,nt,rt.yy,V[1],R,B].concat(mt)),typeof Ot<"u")return Ot;xt&&(M=M.slice(0,-1*xt*2),R=R.slice(0,-1*xt),B=B.slice(0,-1*xt)),M.push(this.productions_[V[1]][0]),R.push(It.$),B.push(It._$),Ft=z[M[M.length-2]][M[M.length-1]],M.push(Ft);break;case 3:return!0}}return!0}},v=function(){var E={EOF:1,parseError:function(_,M){if(this.yy.parser)this.yy.parser.parseError(_,M);else throw new Error(_)},setInput:function(S,_){return this.yy=_||this.yy||{},this._input=S,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var S=this._input[0];this.yytext+=S,this.yyleng++,this.offset++,this.match+=S,this.matched+=S;var _=S.match(/(?:\r\n?|\n).*/g);return _?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),S},unput:function(S){var _=S.length,M=S.split(/(?:\r\n?|\n)/g);this._input=S+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-_),this.offset-=_;var F=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),M.length-1&&(this.yylineno-=M.length-1);var R=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:M?(M.length===F.length?this.yylloc.first_column:0)+F[F.length-M.length].length-M[0].length:this.yylloc.first_column-_},this.options.ranges&&(this.yylloc.range=[R[0],R[0]+this.yyleng-_]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(S){this.unput(this.match.slice(S))},pastInput:function(){var S=this.matched.substr(0,this.matched.length-this.match.length);return(S.length>20?"...":"")+S.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var S=this.match;return S.length<20&&(S+=this._input.substr(0,20-S.length)),(S.substr(0,20)+(S.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var S=this.pastInput(),_=new Array(S.length+1).join("-");return S+this.upcomingInput()+` +`+_+"^"},test_match:function(S,_){var M,F,R;if(this.options.backtrack_lexer&&(R={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(R.yylloc.range=this.yylloc.range.slice(0))),F=S[0].match(/(?:\r\n?|\n).*/g),F&&(this.yylineno+=F.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:F?F[F.length-1].length-F[F.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+S[0].length},this.yytext+=S[0],this.match+=S[0],this.matches=S,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(S[0].length),this.matched+=S[0],M=this.performAction.call(this,this.yy,this,_,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),M)return M;if(this._backtrack){for(var B in R)this[B]=R[B];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var S,_,M,F;this._more||(this.yytext="",this.match="");for(var R=this._currentRules(),B=0;B_[0].length)){if(_=M,F=B,this.options.backtrack_lexer){if(S=this.test_match(M,R[B]),S!==!1)return S;if(this._backtrack){_=!1;continue}else return!1}else if(!this.options.flex)break}return _?(S=this.test_match(_,R[F]),S!==!1?S:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var _=this.next();return _||this.lex()},begin:function(_){this.conditionStack.push(_)},popState:function(){var _=this.conditionStack.length-1;return _>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(_){return _=this.conditionStack.length-1-Math.abs(_||0),_>=0?this.conditionStack[_]:"INITIAL"},pushState:function(_){this.begin(_)},stateStackSize:function(){return this.conditionStack.length},options:{easy_keword_rules:!0},performAction:function(_,M,F,R){switch(F){case 0:return this.pushState("csv"),4;case 1:return 10;case 2:return 5;case 3:return 12;case 4:return this.pushState("escaped_text"),18;case 5:return 20;case 6:return this.popState("escaped_text"),18;case 7:return 19}},rules:[/^(?:sankey-beta\b)/,/^(?:$)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:(\u002C))/,/^(?:(\u0022))/,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/,/^(?:(\u0022)(?!(\u0022)))/,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:!1},escaped_text:{rules:[6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};return E}();w.lexer=v;function b(){this.yy={}}return b.prototype=w,w.Parser=b,new b}();w2t.parser=w2t;const NX=w2t;let PX=[],FX=[],FD={};const Een=()=>{PX=[],FX=[],FD={},ag()};class Ten{constructor(a,f,g=0){this.source=a,this.target=f,this.value=g}}const Cen=(i,a,f)=>{PX.push(new Ten(i,a,f))};class Sen{constructor(a){this.ID=a}}const _en={nodesMap:FD,getConfig:()=>Re().sankey,getNodes:()=>FX,getLinks:()=>PX,getGraph:()=>({nodes:FX.map(i=>({id:i.ID})),links:PX.map(i=>({source:i.source.ID,target:i.target.ID,value:i.value}))}),addLink:Cen,findOrCreateNode:i=>(i=ei.sanitizeText(i,Re()),FD[i]||(FD[i]=new Sen(i),FX.push(FD[i])),FD[i]),getAccTitle:Xg,setAccTitle:og,getAccDescription:Jg,setAccDescription:Qg,getDiagramTitle:Zg,setDiagramTitle:S2,clear:Een};function ZHt(i,a){let f;if(a===void 0)for(const g of i)g!=null&&(f=g)&&(f=g);else{let g=-1;for(let w of i)(w=a(w,++g,i))!=null&&(f=w)&&(f=w)}return f}function tVt(i,a){let f;if(a===void 0)for(const g of i)g!=null&&(f>g||f===void 0&&g>=g)&&(f=g);else{let g=-1;for(let w of i)(w=a(w,++g,i))!=null&&(f>w||f===void 0&&w>=w)&&(f=w)}return f}function m2t(i,a){let f=0;if(a===void 0)for(let g of i)(g=+g)&&(f+=g);else{let g=-1;for(let w of i)(w=+a(w,++g,i))&&(f+=w)}return f}function Aen(i){return i.target.depth}function Len(i){return i.depth}function Den(i,a){return a-1-i.height}function eVt(i,a){return i.sourceLinks.length?i.depth:a-1}function Men(i){return i.targetLinks.length?i.depth:i.sourceLinks.length?tVt(i.sourceLinks,Aen)-1:0}function BX(i){return function(){return i}}function nVt(i,a){return RX(i.source,a.source)||i.index-a.index}function rVt(i,a){return RX(i.target,a.target)||i.index-a.index}function RX(i,a){return i.y0-a.y0}function v2t(i){return i.value}function Ien(i){return i.index}function Oen(i){return i.nodes}function Nen(i){return i.links}function iVt(i,a){const f=i.get(a);if(!f)throw new Error("missing: "+a);return f}function sVt({nodes:i}){for(const a of i){let f=a.y0,g=f;for(const w of a.sourceLinks)w.y0=f+w.width/2,f+=w.width;for(const w of a.targetLinks)w.y1=g+w.width/2,g+=w.width}}function Pen(){let i=0,a=0,f=1,g=1,w=24,v=8,b,E=Ien,S=eVt,_,M,F=Oen,R=Nen,B=6;function z(){const It={nodes:F.apply(null,arguments),links:R.apply(null,arguments)};return Y(It),nt(It),ot(It),ft(It),ct(It),sVt(It),It}z.update=function(It){return sVt(It),It},z.nodeId=function(It){return arguments.length?(E=typeof It=="function"?It:BX(It),z):E},z.nodeAlign=function(It){return arguments.length?(S=typeof It=="function"?It:BX(It),z):S},z.nodeSort=function(It){return arguments.length?(_=It,z):_},z.nodeWidth=function(It){return arguments.length?(w=+It,z):w},z.nodePadding=function(It){return arguments.length?(v=b=+It,z):v},z.nodes=function(It){return arguments.length?(F=typeof It=="function"?It:BX(It),z):F},z.links=function(It){return arguments.length?(R=typeof It=="function"?It:BX(It),z):R},z.linkSort=function(It){return arguments.length?(M=It,z):M},z.size=function(It){return arguments.length?(i=a=0,f=+It[0],g=+It[1],z):[f-i,g-a]},z.extent=function(It){return arguments.length?(i=+It[0][0],f=+It[1][0],a=+It[0][1],g=+It[1][1],z):[[i,a],[f,g]]},z.iterations=function(It){return arguments.length?(B=+It,z):B};function Y({nodes:It,links:jt}){for(const[Ft,Ct]of It.entries())Ct.index=Ft,Ct.sourceLinks=[],Ct.targetLinks=[];const xt=new Map(It.map((Ft,Ct)=>[E(Ft,Ct,It),Ft]));for(const[Ft,Ct]of jt.entries()){Ct.index=Ft;let{source:kt,target:Gt}=Ct;typeof kt!="object"&&(kt=Ct.source=iVt(xt,kt)),typeof Gt!="object"&&(Gt=Ct.target=iVt(xt,Gt)),kt.sourceLinks.push(Ct),Gt.targetLinks.push(Ct)}if(M!=null)for(const{sourceLinks:Ft,targetLinks:Ct}of It)Ft.sort(M),Ct.sort(M)}function nt({nodes:It}){for(const jt of It)jt.value=jt.fixedValue===void 0?Math.max(m2t(jt.sourceLinks,v2t),m2t(jt.targetLinks,v2t)):jt.fixedValue}function ot({nodes:It}){const jt=It.length;let xt=new Set(It),Ft=new Set,Ct=0;for(;xt.size;){for(const kt of xt){kt.depth=Ct;for(const{target:Gt}of kt.sourceLinks)Ft.add(Gt)}if(++Ct>jt)throw new Error("circular link");xt=Ft,Ft=new Set}}function ft({nodes:It}){const jt=It.length;let xt=new Set(It),Ft=new Set,Ct=0;for(;xt.size;){for(const kt of xt){kt.height=Ct;for(const{source:Gt}of kt.targetLinks)Ft.add(Gt)}if(++Ct>jt)throw new Error("circular link");xt=Ft,Ft=new Set}}function wt({nodes:It}){const jt=ZHt(It,Ct=>Ct.depth)+1,xt=(f-i-w)/(jt-1),Ft=new Array(jt);for(const Ct of It){const kt=Math.max(0,Math.min(jt-1,Math.floor(S.call(null,Ct,jt))));Ct.layer=kt,Ct.x0=i+kt*xt,Ct.x1=Ct.x0+w,Ft[kt]?Ft[kt].push(Ct):Ft[kt]=[Ct]}if(_)for(const Ct of Ft)Ct.sort(_);return Ft}function mt(It){const jt=tVt(It,xt=>(g-a-(xt.length-1)*b)/m2t(xt,v2t));for(const xt of It){let Ft=a;for(const Ct of xt){Ct.y0=Ft,Ct.y1=Ft+Ct.value*jt,Ft=Ct.y1+b;for(const kt of Ct.sourceLinks)kt.width=kt.value*jt}Ft=(g-Ft+b)/(xt.length+1);for(let Ct=0;Ctxt.length)-1)),mt(jt);for(let xt=0;xt0))continue;let pn=(Fe/Mt-Gt.y0)*jt;Gt.y0+=pn,Gt.y1+=pn,K(Gt)}_===void 0&&kt.sort(RX),gt(kt,xt)}}function it(It,jt,xt){for(let Ft=It.length,Ct=Ft-2;Ct>=0;--Ct){const kt=It[Ct];for(const Gt of kt){let Fe=0,Mt=0;for(const{target:Ae,value:ye}of Gt.sourceLinks){let tn=ye*(Ae.layer-Gt.layer);Fe+=Ot(Gt,Ae)*tn,Mt+=tn}if(!(Mt>0))continue;let pn=(Fe/Mt-Gt.y0)*jt;Gt.y0+=pn,Gt.y1+=pn,K(Gt)}_===void 0&&kt.sort(RX),gt(kt,xt)}}function gt(It,jt){const xt=It.length>>1,Ft=It[xt];dt(It,Ft.y0-b,xt-1,jt),Q(It,Ft.y1+b,xt+1,jt),dt(It,g,It.length-1,jt),Q(It,a,0,jt)}function Q(It,jt,xt,Ft){for(;xt1e-6&&(Ct.y0+=kt,Ct.y1+=kt),jt=Ct.y1+b}}function dt(It,jt,xt,Ft){for(;xt>=0;--xt){const Ct=It[xt],kt=(Ct.y1-jt)*Ft;kt>1e-6&&(Ct.y0-=kt,Ct.y1-=kt),jt=Ct.y0-b}}function K({sourceLinks:It,targetLinks:jt}){if(M===void 0){for(const{source:{sourceLinks:xt}}of jt)xt.sort(rVt);for(const{target:{targetLinks:xt}}of It)xt.sort(nVt)}}function yt(It){if(M===void 0)for(const{sourceLinks:jt,targetLinks:xt}of It)jt.sort(rVt),xt.sort(nVt)}function V(It,jt){let xt=It.y0-(It.sourceLinks.length-1)*b/2;for(const{target:Ft,width:Ct}of It.sourceLinks){if(Ft===jt)break;xt+=Ct+b}for(const{source:Ft,width:Ct}of jt.targetLinks){if(Ft===It)break;xt-=Ct}return xt}function Ot(It,jt){let xt=jt.y0-(jt.targetLinks.length-1)*b/2;for(const{source:Ft,width:Ct}of jt.targetLinks){if(Ft===It)break;xt+=Ct+b}for(const{target:Ft,width:Ct}of It.sourceLinks){if(Ft===jt)break;xt-=Ct}return xt}return z}var y2t=Math.PI,x2t=2*y2t,V9=1e-6,Fen=x2t-V9;function k2t(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function aVt(){return new k2t}k2t.prototype=aVt.prototype={constructor:k2t,moveTo:function(i,a){this._+="M"+(this._x0=this._x1=+i)+","+(this._y0=this._y1=+a)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(i,a){this._+="L"+(this._x1=+i)+","+(this._y1=+a)},quadraticCurveTo:function(i,a,f,g){this._+="Q"+ +i+","+ +a+","+(this._x1=+f)+","+(this._y1=+g)},bezierCurveTo:function(i,a,f,g,w,v){this._+="C"+ +i+","+ +a+","+ +f+","+ +g+","+(this._x1=+w)+","+(this._y1=+v)},arcTo:function(i,a,f,g,w){i=+i,a=+a,f=+f,g=+g,w=+w;var v=this._x1,b=this._y1,E=f-i,S=g-a,_=v-i,M=b-a,F=_*_+M*M;if(w<0)throw new Error("negative radius: "+w);if(this._x1===null)this._+="M"+(this._x1=i)+","+(this._y1=a);else if(F>V9)if(!(Math.abs(M*E-S*_)>V9)||!w)this._+="L"+(this._x1=i)+","+(this._y1=a);else{var R=f-v,B=g-b,z=E*E+S*S,Y=R*R+B*B,nt=Math.sqrt(z),ot=Math.sqrt(F),ft=w*Math.tan((y2t-Math.acos((z+F-Y)/(2*nt*ot)))/2),wt=ft/ot,mt=ft/nt;Math.abs(wt-1)>V9&&(this._+="L"+(i+wt*_)+","+(a+wt*M)),this._+="A"+w+","+w+",0,0,"+ +(M*R>_*B)+","+(this._x1=i+mt*E)+","+(this._y1=a+mt*S)}},arc:function(i,a,f,g,w,v){i=+i,a=+a,f=+f,v=!!v;var b=f*Math.cos(g),E=f*Math.sin(g),S=i+b,_=a+E,M=1^v,F=v?g-w:w-g;if(f<0)throw new Error("negative radius: "+f);this._x1===null?this._+="M"+S+","+_:(Math.abs(this._x1-S)>V9||Math.abs(this._y1-_)>V9)&&(this._+="L"+S+","+_),f&&(F<0&&(F=F%x2t+x2t),F>Fen?this._+="A"+f+","+f+",0,1,"+M+","+(i-b)+","+(a-E)+"A"+f+","+f+",0,1,"+M+","+(this._x1=S)+","+(this._y1=_):F>V9&&(this._+="A"+f+","+f+",0,"+ +(F>=y2t)+","+M+","+(this._x1=i+f*Math.cos(w))+","+(this._y1=a+f*Math.sin(w))))},rect:function(i,a,f,g){this._+="M"+(this._x0=this._x1=+i)+","+(this._y0=this._y1=+a)+"h"+ +f+"v"+ +g+"h"+-f+"Z"},toString:function(){return this._}};function oVt(i){return function(){return i}}function Ben(i){return i[0]}function Ren(i){return i[1]}var jen=Array.prototype.slice;function $en(i){return i.source}function zen(i){return i.target}function qen(i){var a=$en,f=zen,g=Ben,w=Ren,v=null;function b(){var E,S=jen.call(arguments),_=a.apply(this,S),M=f.apply(this,S);if(v||(v=E=aVt()),i(v,+g.apply(this,(S[0]=_,S)),+w.apply(this,S),+g.apply(this,(S[0]=M,S)),+w.apply(this,S)),E)return v=null,E+""||null}return b.source=function(E){return arguments.length?(a=E,b):a},b.target=function(E){return arguments.length?(f=E,b):f},b.x=function(E){return arguments.length?(g=typeof E=="function"?E:oVt(+E),b):g},b.y=function(E){return arguments.length?(w=typeof E=="function"?E:oVt(+E),b):w},b.context=function(E){return arguments.length?(v=E??null,b):v},b}function Hen(i,a,f,g,w){i.moveTo(a,f),i.bezierCurveTo(a=(a+g)/2,f,a,w,g,w)}function Ven(){return qen(Hen)}function Uen(i){return[i.source.x1,i.y0]}function Gen(i){return[i.target.x0,i.y1]}function Ken(){return Ven().source(Uen).target(Gen)}const cVt=class vOt{static next(a){return new vOt(a+ ++vOt.count)}constructor(a){this.id=a,this.href=`#${a}`}toString(){return"url("+this.href+")"}};cVt.count=0;let uVt=cVt;const Wen={left:Len,right:Den,center:Men,justify:eVt},Yen={draw:function(i,a,f,g){const{securityLevel:w,sankey:v}=Re(),b=lBt.sankey;let E;w==="sandbox"&&(E=Tr("#i"+a));const S=Tr(w==="sandbox"?E.nodes()[0].contentDocument.body:"body"),_=w==="sandbox"?S.select(`[id="${a}"]`):Tr(`[id="${a}"]`),M=(v==null?void 0:v.width)??b.width,F=(v==null?void 0:v.height)??b.width,R=(v==null?void 0:v.useMaxWidth)??b.useMaxWidth,B=(v==null?void 0:v.nodeAlignment)??b.nodeAlignment,z=(v==null?void 0:v.prefix)??b.prefix,Y=(v==null?void 0:v.suffix)??b.suffix,nt=(v==null?void 0:v.showValues)??b.showValues,ot=g.db.getGraph(),ft=Wen[B],wt=10;Pen().nodeId(dt=>dt.id).nodeWidth(wt).nodePadding(10+(nt?15:0)).nodeAlign(ft).extent([[0,0],[M,F]])(ot);const ct=oF(tPt);_.append("g").attr("class","nodes").selectAll(".node").data(ot.nodes).join("g").attr("class","node").attr("id",dt=>(dt.uid=uVt.next("node-")).id).attr("transform",function(dt){return"translate("+dt.x0+","+dt.y0+")"}).attr("x",dt=>dt.x0).attr("y",dt=>dt.y0).append("rect").attr("height",dt=>dt.y1-dt.y0).attr("width",dt=>dt.x1-dt.x0).attr("fill",dt=>ct(dt.id));const rt=({id:dt,value:K})=>nt?`${dt} +${z}${Math.round(K*100)/100}${Y}`:dt;_.append("g").attr("class","node-labels").attr("font-family","sans-serif").attr("font-size",14).selectAll("text").data(ot.nodes).join("text").attr("x",dt=>dt.x0(dt.y1+dt.y0)/2).attr("dy",`${nt?"0":"0.35"}em`).attr("text-anchor",dt=>dt.x0(K.uid=uVt.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",K=>K.source.x1).attr("x2",K=>K.target.x0);dt.append("stop").attr("offset","0%").attr("stop-color",K=>ct(K.source.id)),dt.append("stop").attr("offset","100%").attr("stop-color",K=>ct(K.target.id))}let Q;switch(gt){case"gradient":Q=dt=>dt.uid;break;case"source":Q=dt=>ct(dt.source.id);break;case"target":Q=dt=>ct(dt.target.id);break;default:Q=gt}it.append("path").attr("d",Ken()).attr("stroke",Q).attr("stroke-width",dt=>Math.max(1,dt.width)),w8(void 0,_,0,R)}},Xen=i=>i.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,` +`).trim(),Qen=NX.parse.bind(NX);NX.parse=i=>Qen(Xen(i));const Jen=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:NX,db:_en,renderer:Yen}},Symbol.toStringTag,{value:"Module"}));var E2t=function(){var i=function(wt,mt,ct,rt){for(ct=ct||{},rt=wt.length;rt--;ct[wt[rt]]=mt);return ct},a=[1,7],f=[1,13],g=[1,14],w=[1,15],v=[1,19],b=[1,16],E=[1,17],S=[1,18],_=[8,30],M=[8,21,28,29,30,31,32,40,44,47],F=[1,23],R=[1,24],B=[8,15,16,21,28,29,30,31,32,40,44,47],z=[8,15,16,21,27,28,29,30,31,32,40,44,47],Y=[1,49],nt={trace:function(){},yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,seperator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,block:31,NODE_ID:32,nodeShapeNLabel:33,dirList:34,DIR:35,NODE_DSTART:36,NODE_DEND:37,BLOCK_ARROW_START:38,BLOCK_ARROW_END:39,classDef:40,CLASSDEF_ID:41,CLASSDEF_STYLEOPTS:42,DEFAULT:43,class:44,CLASSENTITY_IDS:45,STYLECLASS:46,style:47,STYLE_ENTITY_IDS:48,STYLE_DEFINITION_DATA:49,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"block",32:"NODE_ID",35:"DIR",36:"NODE_DSTART",37:"NODE_DEND",38:"BLOCK_ARROW_START",39:"BLOCK_ARROW_END",40:"classDef",41:"CLASSDEF_ID",42:"CLASSDEF_STYLEOPTS",43:"DEFAULT",44:"class",45:"CLASSENTITY_IDS",46:"STYLECLASS",47:"style",48:"STYLE_ENTITY_IDS",49:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[34,1],[34,2],[33,3],[33,4],[23,3],[23,3],[24,3],[25,3]],performAction:function(mt,ct,rt,it,gt,Q,dt){var K=Q.length-1;switch(gt){case 4:it.getLogger().debug("Rule: seperator (NL) ");break;case 5:it.getLogger().debug("Rule: seperator (Space) ");break;case 6:it.getLogger().debug("Rule: seperator (EOF) ");break;case 7:it.getLogger().debug("Rule: hierarchy: ",Q[K-1]),it.setHierarchy(Q[K-1]);break;case 8:it.getLogger().debug("Stop NL ");break;case 9:it.getLogger().debug("Stop EOF ");break;case 10:it.getLogger().debug("Stop NL2 ");break;case 11:it.getLogger().debug("Stop EOF2 ");break;case 12:it.getLogger().debug("Rule: statement: ",Q[K]),typeof Q[K].length=="number"?this.$=Q[K]:this.$=[Q[K]];break;case 13:it.getLogger().debug("Rule: statement #2: ",Q[K-1]),this.$=[Q[K-1]].concat(Q[K]);break;case 14:it.getLogger().debug("Rule: link: ",Q[K],mt),this.$={edgeTypeStr:Q[K],label:""};break;case 15:it.getLogger().debug("Rule: LABEL link: ",Q[K-3],Q[K-1],Q[K]),this.$={edgeTypeStr:Q[K],label:Q[K-1]};break;case 18:const yt=parseInt(Q[K]),V=it.generateId();this.$={id:V,type:"space",label:"",width:yt,children:[]};break;case 23:it.getLogger().debug("Rule: (nodeStatement link node) ",Q[K-2],Q[K-1],Q[K]," typestr: ",Q[K-1].edgeTypeStr);const Ot=it.edgeStrToEdgeData(Q[K-1].edgeTypeStr);this.$=[{id:Q[K-2].id,label:Q[K-2].label,type:Q[K-2].type,directions:Q[K-2].directions},{id:Q[K-2].id+"-"+Q[K].id,start:Q[K-2].id,end:Q[K].id,label:Q[K-1].label,type:"edge",directions:Q[K].directions,arrowTypeEnd:Ot,arrowTypeStart:"arrow_open"},{id:Q[K].id,label:Q[K].label,type:it.typeStr2Type(Q[K].typeStr),directions:Q[K].directions}];break;case 24:it.getLogger().debug("Rule: nodeStatement (abc88 node size) ",Q[K-1],Q[K]),this.$={id:Q[K-1].id,label:Q[K-1].label,type:it.typeStr2Type(Q[K-1].typeStr),directions:Q[K-1].directions,widthInColumns:parseInt(Q[K],10)};break;case 25:it.getLogger().debug("Rule: nodeStatement (node) ",Q[K]),this.$={id:Q[K].id,label:Q[K].label,type:it.typeStr2Type(Q[K].typeStr),directions:Q[K].directions,widthInColumns:1};break;case 26:it.getLogger().debug("APA123",this?this:"na"),it.getLogger().debug("COLUMNS: ",Q[K]),this.$={type:"column-setting",columns:Q[K]==="auto"?-1:parseInt(Q[K])};break;case 27:it.getLogger().debug("Rule: id-block statement : ",Q[K-2],Q[K-1]),it.generateId(),this.$={...Q[K-2],type:"composite",children:Q[K-1]};break;case 28:it.getLogger().debug("Rule: blockStatement : ",Q[K-2],Q[K-1],Q[K]);const It=it.generateId();this.$={id:It,type:"composite",label:"",children:Q[K-1]};break;case 29:it.getLogger().debug("Rule: node (NODE_ID seperator): ",Q[K]),this.$={id:Q[K]};break;case 30:it.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel seperator): ",Q[K-1],Q[K]),this.$={id:Q[K-1],label:Q[K].label,typeStr:Q[K].typeStr,directions:Q[K].directions};break;case 31:it.getLogger().debug("Rule: dirList: ",Q[K]),this.$=[Q[K]];break;case 32:it.getLogger().debug("Rule: dirList: ",Q[K-1],Q[K]),this.$=[Q[K-1]].concat(Q[K]);break;case 33:it.getLogger().debug("Rule: nodeShapeNLabel: ",Q[K-2],Q[K-1],Q[K]),this.$={typeStr:Q[K-2]+Q[K],label:Q[K-1]};break;case 34:it.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",Q[K-3],Q[K-2]," #3:",Q[K-1],Q[K]),this.$={typeStr:Q[K-3]+Q[K],label:Q[K-2],directions:Q[K-1]};break;case 35:case 36:this.$={type:"classDef",id:Q[K-1].trim(),css:Q[K].trim()};break;case 37:this.$={type:"applyClass",id:Q[K-1].trim(),styleClass:Q[K].trim()};break;case 38:this.$={type:"applyStyles",id:Q[K-1].trim(),stylesStr:Q[K].trim()};break}},table:[{9:1,10:[1,2]},{1:[3]},{11:3,13:4,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:f,29:g,31:w,32:v,40:b,44:E,47:S},{8:[1,20]},i(_,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,21:a,28:f,29:g,31:w,32:v,40:b,44:E,47:S}),i(M,[2,16],{14:22,15:F,16:R}),i(M,[2,17]),i(M,[2,18]),i(M,[2,19]),i(M,[2,20]),i(M,[2,21]),i(M,[2,22]),i(B,[2,25],{27:[1,25]}),i(M,[2,26]),{19:26,26:12,32:v},{11:27,13:4,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:f,29:g,31:w,32:v,40:b,44:E,47:S},{41:[1,28],43:[1,29]},{45:[1,30]},{48:[1,31]},i(z,[2,29],{33:32,36:[1,33],38:[1,34]}),{1:[2,7]},i(_,[2,13]),{26:35,32:v},{32:[2,14]},{17:[1,36]},i(B,[2,24]),{11:37,13:4,14:22,15:F,16:R,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:f,29:g,31:w,32:v,40:b,44:E,47:S},{30:[1,38]},{42:[1,39]},{42:[1,40]},{46:[1,41]},{49:[1,42]},i(z,[2,30]),{18:[1,43]},{18:[1,44]},i(B,[2,23]),{18:[1,45]},{30:[1,46]},i(M,[2,28]),i(M,[2,35]),i(M,[2,36]),i(M,[2,37]),i(M,[2,38]),{37:[1,47]},{34:48,35:Y},{15:[1,50]},i(M,[2,27]),i(z,[2,33]),{39:[1,51]},{34:52,35:Y,39:[2,31]},{32:[2,15]},i(z,[2,34]),{39:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:function(mt,ct){if(ct.recoverable)this.trace(mt);else{var rt=new Error(mt);throw rt.hash=ct,rt}},parse:function(mt){var ct=this,rt=[0],it=[],gt=[null],Q=[],dt=this.table,K="",yt=0,V=0,Ot=2,It=1,jt=Q.slice.call(arguments,1),xt=Object.create(this.lexer),Ft={yy:{}};for(var Ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ct)&&(Ft.yy[Ct]=this.yy[Ct]);xt.setInput(mt,Ft.yy),Ft.yy.lexer=xt,Ft.yy.parser=this,typeof xt.yylloc>"u"&&(xt.yylloc={});var kt=xt.yylloc;Q.push(kt);var Gt=xt.options&&xt.options.ranges;typeof Ft.yy.parseError=="function"?this.parseError=Ft.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Fe(){var xe;return xe=it.pop()||xt.lex()||It,typeof xe!="number"&&(xe instanceof Array&&(it=xe,xe=it.pop()),xe=ct.symbols_[xe]||xe),xe}for(var Mt,pn,Ae,ye,tn={},sn,be,Ne,Xt;;){if(pn=rt[rt.length-1],this.defaultActions[pn]?Ae=this.defaultActions[pn]:((Mt===null||typeof Mt>"u")&&(Mt=Fe()),Ae=dt[pn]&&dt[pn][Mt]),typeof Ae>"u"||!Ae.length||!Ae[0]){var _e="";Xt=[];for(sn in dt[pn])this.terminals_[sn]&&sn>Ot&&Xt.push("'"+this.terminals_[sn]+"'");xt.showPosition?_e="Parse error on line "+(yt+1)+`: +`+xt.showPosition()+` +Expecting `+Xt.join(", ")+", got '"+(this.terminals_[Mt]||Mt)+"'":_e="Parse error on line "+(yt+1)+": Unexpected "+(Mt==It?"end of input":"'"+(this.terminals_[Mt]||Mt)+"'"),this.parseError(_e,{text:xt.match,token:this.terminals_[Mt]||Mt,line:xt.yylineno,loc:kt,expected:Xt})}if(Ae[0]instanceof Array&&Ae.length>1)throw new Error("Parse Error: multiple actions possible at state: "+pn+", token: "+Mt);switch(Ae[0]){case 1:rt.push(Mt),gt.push(xt.yytext),Q.push(xt.yylloc),rt.push(Ae[1]),Mt=null,V=xt.yyleng,K=xt.yytext,yt=xt.yylineno,kt=xt.yylloc;break;case 2:if(be=this.productions_[Ae[1]][1],tn.$=gt[gt.length-be],tn._$={first_line:Q[Q.length-(be||1)].first_line,last_line:Q[Q.length-1].last_line,first_column:Q[Q.length-(be||1)].first_column,last_column:Q[Q.length-1].last_column},Gt&&(tn._$.range=[Q[Q.length-(be||1)].range[0],Q[Q.length-1].range[1]]),ye=this.performAction.apply(tn,[K,V,yt,Ft.yy,Ae[1],gt,Q].concat(jt)),typeof ye<"u")return ye;be&&(rt=rt.slice(0,-1*be*2),gt=gt.slice(0,-1*be),Q=Q.slice(0,-1*be)),rt.push(this.productions_[Ae[1]][0]),gt.push(tn.$),Q.push(tn._$),Ne=dt[rt[rt.length-2]][rt[rt.length-1]],rt.push(Ne);break;case 3:return!0}}return!0}},ot=function(){var wt={EOF:1,parseError:function(ct,rt){if(this.yy.parser)this.yy.parser.parseError(ct,rt);else throw new Error(ct)},setInput:function(mt,ct){return this.yy=ct||this.yy||{},this._input=mt,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var mt=this._input[0];this.yytext+=mt,this.yyleng++,this.offset++,this.match+=mt,this.matched+=mt;var ct=mt.match(/(?:\r\n?|\n).*/g);return ct?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),mt},unput:function(mt){var ct=mt.length,rt=mt.split(/(?:\r\n?|\n)/g);this._input=mt+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ct),this.offset-=ct;var it=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),rt.length-1&&(this.yylineno-=rt.length-1);var gt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:rt?(rt.length===it.length?this.yylloc.first_column:0)+it[it.length-rt.length].length-rt[0].length:this.yylloc.first_column-ct},this.options.ranges&&(this.yylloc.range=[gt[0],gt[0]+this.yyleng-ct]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(mt){this.unput(this.match.slice(mt))},pastInput:function(){var mt=this.matched.substr(0,this.matched.length-this.match.length);return(mt.length>20?"...":"")+mt.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var mt=this.match;return mt.length<20&&(mt+=this._input.substr(0,20-mt.length)),(mt.substr(0,20)+(mt.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var mt=this.pastInput(),ct=new Array(mt.length+1).join("-");return mt+this.upcomingInput()+` +`+ct+"^"},test_match:function(mt,ct){var rt,it,gt;if(this.options.backtrack_lexer&&(gt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(gt.yylloc.range=this.yylloc.range.slice(0))),it=mt[0].match(/(?:\r\n?|\n).*/g),it&&(this.yylineno+=it.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:it?it[it.length-1].length-it[it.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+mt[0].length},this.yytext+=mt[0],this.match+=mt[0],this.matches=mt,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(mt[0].length),this.matched+=mt[0],rt=this.performAction.call(this,this.yy,this,ct,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),rt)return rt;if(this._backtrack){for(var Q in gt)this[Q]=gt[Q];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var mt,ct,rt,it;this._more||(this.yytext="",this.match="");for(var gt=this._currentRules(),Q=0;Qct[0].length)){if(ct=rt,it=Q,this.options.backtrack_lexer){if(mt=this.test_match(rt,gt[Q]),mt!==!1)return mt;if(this._backtrack){ct=!1;continue}else return!1}else if(!this.options.flex)break}return ct?(mt=this.test_match(ct,gt[it]),mt!==!1?mt:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var ct=this.next();return ct||this.lex()},begin:function(ct){this.conditionStack.push(ct)},popState:function(){var ct=this.conditionStack.length-1;return ct>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(ct){return ct=this.conditionStack.length-1-Math.abs(ct||0),ct>=0?this.conditionStack[ct]:"INITIAL"},pushState:function(ct){this.begin(ct)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(ct,rt,it,gt){switch(it){case 0:return 10;case 1:return ct.getLogger().debug("Found space-block"),31;case 2:return ct.getLogger().debug("Found nl-block"),31;case 3:return ct.getLogger().debug("Found space-block"),29;case 4:ct.getLogger().debug(".",rt.yytext);break;case 5:ct.getLogger().debug("_",rt.yytext);break;case 6:return 5;case 7:return rt.yytext=-1,28;case 8:return rt.yytext=rt.yytext.replace(/columns\s+/,""),ct.getLogger().debug("COLUMNS (LEX)",rt.yytext),28;case 9:this.pushState("md_string");break;case 10:return"MD_STR";case 11:this.popState();break;case 12:this.pushState("string");break;case 13:ct.getLogger().debug("LEX: POPPING STR:",rt.yytext),this.popState();break;case 14:return ct.getLogger().debug("LEX: STR end:",rt.yytext),"STR";case 15:return rt.yytext=rt.yytext.replace(/space\:/,""),ct.getLogger().debug("SPACE NUM (LEX)",rt.yytext),21;case 16:return rt.yytext="1",ct.getLogger().debug("COLUMNS (LEX)",rt.yytext),21;case 17:return 43;case 18:return"LINKSTYLE";case 19:return"INTERPOLATE";case 20:return this.pushState("CLASSDEF"),40;case 21:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 22:return this.popState(),this.pushState("CLASSDEFID"),41;case 23:return this.popState(),42;case 24:return this.pushState("CLASS"),44;case 25:return this.popState(),this.pushState("CLASS_STYLE"),45;case 26:return this.popState(),46;case 27:return this.pushState("STYLE_STMNT"),47;case 28:return this.popState(),this.pushState("STYLE_DEFINITION"),48;case 29:return this.popState(),49;case 30:return this.pushState("acc_title"),"acc_title";case 31:return this.popState(),"acc_title_value";case 32:return this.pushState("acc_descr"),"acc_descr";case 33:return this.popState(),"acc_descr_value";case 34:this.pushState("acc_descr_multiline");break;case 35:this.popState();break;case 36:return"acc_descr_multiline_value";case 37:return 30;case 38:return this.popState(),ct.getLogger().debug("Lex: (("),"NODE_DEND";case 39:return this.popState(),ct.getLogger().debug("Lex: (("),"NODE_DEND";case 40:return this.popState(),ct.getLogger().debug("Lex: ))"),"NODE_DEND";case 41:return this.popState(),ct.getLogger().debug("Lex: (("),"NODE_DEND";case 42:return this.popState(),ct.getLogger().debug("Lex: (("),"NODE_DEND";case 43:return this.popState(),ct.getLogger().debug("Lex: (-"),"NODE_DEND";case 44:return this.popState(),ct.getLogger().debug("Lex: -)"),"NODE_DEND";case 45:return this.popState(),ct.getLogger().debug("Lex: (("),"NODE_DEND";case 46:return this.popState(),ct.getLogger().debug("Lex: ]]"),"NODE_DEND";case 47:return this.popState(),ct.getLogger().debug("Lex: ("),"NODE_DEND";case 48:return this.popState(),ct.getLogger().debug("Lex: ])"),"NODE_DEND";case 49:return this.popState(),ct.getLogger().debug("Lex: /]"),"NODE_DEND";case 50:return this.popState(),ct.getLogger().debug("Lex: /]"),"NODE_DEND";case 51:return this.popState(),ct.getLogger().debug("Lex: )]"),"NODE_DEND";case 52:return this.popState(),ct.getLogger().debug("Lex: )"),"NODE_DEND";case 53:return this.popState(),ct.getLogger().debug("Lex: ]>"),"NODE_DEND";case 54:return this.popState(),ct.getLogger().debug("Lex: ]"),"NODE_DEND";case 55:return ct.getLogger().debug("Lexa: -)"),this.pushState("NODE"),36;case 56:return ct.getLogger().debug("Lexa: (-"),this.pushState("NODE"),36;case 57:return ct.getLogger().debug("Lexa: ))"),this.pushState("NODE"),36;case 58:return ct.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 59:return ct.getLogger().debug("Lex: ((("),this.pushState("NODE"),36;case 60:return ct.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 61:return ct.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 62:return ct.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 63:return ct.getLogger().debug("Lexc: >"),this.pushState("NODE"),36;case 64:return ct.getLogger().debug("Lexa: (["),this.pushState("NODE"),36;case 65:return ct.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 66:return this.pushState("NODE"),36;case 67:return this.pushState("NODE"),36;case 68:return this.pushState("NODE"),36;case 69:return this.pushState("NODE"),36;case 70:return this.pushState("NODE"),36;case 71:return this.pushState("NODE"),36;case 72:return this.pushState("NODE"),36;case 73:return ct.getLogger().debug("Lexa: ["),this.pushState("NODE"),36;case 74:return this.pushState("BLOCK_ARROW"),ct.getLogger().debug("LEX ARR START"),38;case 75:return ct.getLogger().debug("Lex: NODE_ID",rt.yytext),32;case 76:return ct.getLogger().debug("Lex: EOF",rt.yytext),8;case 77:this.pushState("md_string");break;case 78:this.pushState("md_string");break;case 79:return"NODE_DESCR";case 80:this.popState();break;case 81:ct.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 82:ct.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 83:return ct.getLogger().debug("LEX: NODE_DESCR:",rt.yytext),"NODE_DESCR";case 84:ct.getLogger().debug("LEX POPPING"),this.popState();break;case 85:ct.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 86:return rt.yytext=rt.yytext.replace(/^,\s*/,""),ct.getLogger().debug("Lex (right): dir:",rt.yytext),"DIR";case 87:return rt.yytext=rt.yytext.replace(/^,\s*/,""),ct.getLogger().debug("Lex (left):",rt.yytext),"DIR";case 88:return rt.yytext=rt.yytext.replace(/^,\s*/,""),ct.getLogger().debug("Lex (x):",rt.yytext),"DIR";case 89:return rt.yytext=rt.yytext.replace(/^,\s*/,""),ct.getLogger().debug("Lex (y):",rt.yytext),"DIR";case 90:return rt.yytext=rt.yytext.replace(/^,\s*/,""),ct.getLogger().debug("Lex (up):",rt.yytext),"DIR";case 91:return rt.yytext=rt.yytext.replace(/^,\s*/,""),ct.getLogger().debug("Lex (down):",rt.yytext),"DIR";case 92:return rt.yytext="]>",ct.getLogger().debug("Lex (ARROW_DIR end):",rt.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";case 93:return ct.getLogger().debug("Lex: LINK","#"+rt.yytext+"#"),15;case 94:return ct.getLogger().debug("Lex: LINK",rt.yytext),15;case 95:return ct.getLogger().debug("Lex: LINK",rt.yytext),15;case 96:return ct.getLogger().debug("Lex: LINK",rt.yytext),15;case 97:return ct.getLogger().debug("Lex: START_LINK",rt.yytext),this.pushState("LLABEL"),16;case 98:return ct.getLogger().debug("Lex: START_LINK",rt.yytext),this.pushState("LLABEL"),16;case 99:return ct.getLogger().debug("Lex: START_LINK",rt.yytext),this.pushState("LLABEL"),16;case 100:this.pushState("md_string");break;case 101:return ct.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";case 102:return this.popState(),ct.getLogger().debug("Lex: LINK","#"+rt.yytext+"#"),15;case 103:return this.popState(),ct.getLogger().debug("Lex: LINK",rt.yytext),15;case 104:return this.popState(),ct.getLogger().debug("Lex: LINK",rt.yytext),15;case 105:return ct.getLogger().debug("Lex: COLON",rt.yytext),rt.yytext=rt.yytext.slice(1),27}},rules:[/^(?:block-beta\b)/,/^(?:block\s+)/,/^(?:block\n+)/,/^(?:block:)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[29],inclusive:!1},STYLE_STMNT:{rules:[28],inclusive:!1},CLASSDEFID:{rules:[23],inclusive:!1},CLASSDEF:{rules:[21,22],inclusive:!1},CLASS_STYLE:{rules:[26],inclusive:!1},CLASS:{rules:[25],inclusive:!1},LLABEL:{rules:[100,101,102,103,104],inclusive:!1},ARROW_DIR:{rules:[86,87,88,89,90,91,92],inclusive:!1},BLOCK_ARROW:{rules:[77,82,85],inclusive:!1},NODE:{rules:[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,78,81],inclusive:!1},md_string:{rules:[10,11,79,80],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[13,14,83,84],inclusive:!1},acc_descr_multiline:{rules:[35,36],inclusive:!1},acc_descr:{rules:[33],inclusive:!1},acc_title:{rules:[31],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,24,27,30,32,34,37,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,93,94,95,96,97,98,99,105],inclusive:!0}}};return wt}();nt.lexer=ot;function ft(){this.yy={}}return ft.prototype=nt,nt.Parser=ft,new ft}();E2t.parser=E2t;const Zen=E2t;let lb={},T2t=[],AB={};const lVt="color",hVt="fill",tnn="bgFill",fVt=",";let LB={};const enn=function(i,a=""){LB[i]===void 0&&(LB[i]={id:i,styles:[],textStyles:[]});const f=LB[i];a!=null&&a.split(fVt).forEach(g=>{const w=g.replace(/([^;]*);/,"$1").trim();if(g.match(lVt)){const b=w.replace(hVt,tnn).replace(lVt,hVt);f.textStyles.push(b)}f.styles.push(w)})},nnn=function(i,a=""){const f=lb[i];a!=null&&(f.styles=a.split(fVt))},rnn=function(i,a){i.split(",").forEach(function(f){let g=lb[f];if(g===void 0){const w=f.trim();lb[w]={id:w,type:"na",children:[]},g=lb[w]}g.classes||(g.classes=[]),g.classes.push(a)})},dVt=(i,a)=>{const f=i.flat(),g=[];for(const w of f){if(w.type==="classDef"){enn(w.id,w.css);continue}if(w.type==="applyClass"){rnn(w.id,(w==null?void 0:w.styleClass)||"");continue}if(w.type==="applyStyles"){w!=null&&w.stylesStr&&nnn(w.id,w==null?void 0:w.stylesStr);continue}if(w.type==="column-setting")a.columns=w.columns||-1;else if(w.type==="edge")AB[w.id]?AB[w.id]++:AB[w.id]=1,w.id=AB[w.id]+"-"+w.id,T2t.push(w);else{w.label||(w.type==="composite"?w.label="":w.label=w.id);const v=!lb[w.id];if(v?lb[w.id]=w:(w.type!=="na"&&(lb[w.id].type=w.type),w.label!==w.id&&(lb[w.id].label=w.label)),w.children&&dVt(w.children,w),w.type==="space"){const b=w.width||1;for(let E=0;E{Kt.debug("Clear called"),ag(),DB={id:"root",type:"composite",children:[],columns:-1},lb={root:DB},C2t=[],LB={},T2t=[],AB={}};function snn(i){switch(Kt.debug("typeStr2Type",i),i){case"[]":return"square";case"()":return Kt.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function ann(i){switch(Kt.debug("typeStr2Type",i),i){case"==":return"thick";default:return"normal"}}function onn(i){switch(i.trim()){case"--x":return"arrow_cross";case"--o":return"arrow_circle";default:return"arrow_point"}}let gVt=0;const cnn={getConfig:()=>o1().block,typeStr2Type:snn,edgeTypeStr2Type:ann,edgeStrToEdgeData:onn,getLogger:()=>console,getBlocksFlat:()=>[...Object.values(lb)],getBlocks:()=>C2t||[],getEdges:()=>T2t,setHierarchy:i=>{DB.children=i,dVt(i,DB),C2t=DB.children},getBlock:i=>lb[i],setBlock:i=>{lb[i.id]=i},getColumns:i=>{const a=lb[i];return a?a.columns?a.columns:a.children?a.children.length:-1:-1},getClasses:function(){return LB},clear:inn,generateId:()=>(gVt++,"id-"+Math.random().toString(36).substr(2,12)+"-"+gVt)},jX=(i,a)=>{const f=jPt,g=f(i,"r"),w=f(i,"g"),v=f(i,"b");return g9(g,w,v,a)},unn=i=>`.label { + font-family: ${i.fontFamily}; + color: ${i.nodeTextColor||i.textColor}; + } + .cluster-label text { + fill: ${i.titleColor}; + } + .cluster-label span,p { + color: ${i.titleColor}; + } + + + + .label text,span,p { + fill: ${i.nodeTextColor||i.textColor}; + color: ${i.nodeTextColor||i.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${i.mainBkg}; + stroke: ${i.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${i.arrowheadColor}; + } + + .edgePath .path { + stroke: ${i.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${i.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${i.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${i.edgeLabelBackground}; + fill: ${i.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${jX(i.edgeLabelBackground,.5)}; + // background-color: + } + + .node .cluster { + // fill: ${jX(i.mainBkg,.5)}; + fill: ${jX(i.clusterBkg,.5)}; + stroke: ${jX(i.clusterBorder,.2)}; + box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; + stroke-width: 1px; + } + + .cluster text { + fill: ${i.titleColor}; + } + + .cluster span,p { + color: ${i.titleColor}; + } + /* .cluster div { + color: ${i.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${i.fontFamily}; + font-size: 12px; + background: ${i.tertiaryColor}; + border: 1px solid ${i.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${i.textColor}; + } +`;function pVt(i,a,f=!1){var R,B,z;const g=i;let w="default";(((R=g==null?void 0:g.classes)==null?void 0:R.length)||0)>0&&(w=((g==null?void 0:g.classes)||[]).join(" ")),w=w+" flowchart-label";let v=0,b="",E;switch(g.type){case"round":v=5,b="rect";break;case"composite":v=0,b="composite",E=0;break;case"square":b="rect";break;case"diamond":b="question";break;case"hexagon":b="hexagon";break;case"block_arrow":b="block_arrow";break;case"odd":b="rect_left_inv_arrow";break;case"lean_right":b="lean_right";break;case"lean_left":b="lean_left";break;case"trapezoid":b="trapezoid";break;case"inv_trapezoid":b="inv_trapezoid";break;case"rect_left_inv_arrow":b="rect_left_inv_arrow";break;case"circle":b="circle";break;case"ellipse":b="ellipse";break;case"stadium":b="stadium";break;case"subroutine":b="subroutine";break;case"cylinder":b="cylinder";break;case"group":b="rect";break;case"doublecircle":b="doublecircle";break;default:b="rect"}const S=C2((g==null?void 0:g.styles)||[]),_=g.label,M=g.size||{width:0,height:0,x:0,y:0};return{labelStyle:S.labelStyle,shape:b,labelText:_,rx:v,ry:v,class:w,style:S.style,id:g.id,directions:g.directions,width:M.width,height:M.height,x:M.x,y:M.y,positioned:f,intersect:void 0,type:g.type,padding:E??(((z=(B=o1())==null?void 0:B.block)==null?void 0:z.padding)||0)}}async function lnn(i,a,f){const g=pVt(a,f,!1);if(g.type==="group")return;const w=await nX(i,g),v=w.node().getBBox(),b=f.getBlock(g.id);b.size={width:v.width,height:v.height,x:0,y:0,node:w},f.setBlock(b),w.remove()}async function hnn(i,a,f){const g=pVt(a,f,!0);f.getBlock(g.id).type!=="space"&&(await nX(i,g),a.intersect=g==null?void 0:g.intersect,Zpt(g))}async function S2t(i,a,f,g){for(const w of a)await g(i,w,f),w.children&&await S2t(i,w.children,f,g)}async function fnn(i,a,f){await S2t(i,a,f,lnn)}async function dnn(i,a,f){await S2t(i,a,f,hnn)}async function gnn(i,a,f,g,w){const v=new l1({multigraph:!0,compound:!0});v.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(const b of f)b.size&&v.setNode(b.id,{width:b.size.width,height:b.size.height,intersect:b.intersect});for(const b of a)if(b.start&&b.end){const E=g.getBlock(b.start),S=g.getBlock(b.end);if(E!=null&&E.size&&(S!=null&&S.size)){const _=E.size,M=S.size,F=[{x:_.x,y:_.y},{x:_.x+(M.x-_.x)/2,y:_.y+(M.y-_.y)/2},{x:M.x,y:M.y}];await dzt(i,{v:b.start,w:b.end,name:b.id},{...b,arrowTypeEnd:b.arrowTypeEnd,arrowTypeStart:b.arrowTypeStart,points:F,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",v,w),b.label&&(await tbt(i,{...b,label:b.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:b.arrowTypeEnd,arrowTypeStart:b.arrowTypeStart,points:F,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),await hzt({...b,x:F[1].x,y:F[1].y},{originalPath:F}))}}}const Af=((vVt=(mVt=Re())==null?void 0:mVt.block)==null?void 0:vVt.padding)||8;function pnn(i,a){if(i===0||!Number.isInteger(i))throw new Error("Columns must be an integer !== 0.");if(a<0||!Number.isInteger(a))throw new Error("Position must be a non-negative integer."+a);if(i<0)return{px:a,py:0};if(i===1)return{px:0,py:a};const f=a%i,g=Math.floor(a/i);return{px:f,py:g}}const bnn=i=>{let a=0,f=0;for(const g of i.children){const{width:w,height:v,x:b,y:E}=g.size||{width:0,height:0,x:0,y:0};Kt.debug("getMaxChildSize abc95 child:",g.id,"width:",w,"height:",v,"x:",b,"y:",E,g.type),g.type!=="space"&&(w>a&&(a=w/(i.widthInColumns||1)),v>f&&(f=v))}return{width:a,height:f}};function _2t(i,a,f=0,g=0){var b,E,S,_,M,F,R,B,z,Y,nt;Kt.debug("setBlockSizes abc95 (start)",i.id,(b=i==null?void 0:i.size)==null?void 0:b.x,"block width =",i==null?void 0:i.size,"sieblingWidth",f),(E=i==null?void 0:i.size)!=null&&E.width||(i.size={width:f,height:g,x:0,y:0});let w=0,v=0;if(((S=i.children)==null?void 0:S.length)>0){for(const gt of i.children)_2t(gt,a);const ot=bnn(i);w=ot.width,v=ot.height,Kt.debug("setBlockSizes abc95 maxWidth of",i.id,":s children is ",w,v);for(const gt of i.children)gt.size&&(Kt.debug(`abc95 Setting size of children of ${i.id} id=${gt.id} ${w} ${v} ${gt.size}`),gt.size.width=w*(gt.widthInColumns||1)+Af*((gt.widthInColumns||1)-1),gt.size.height=v,gt.size.x=0,gt.size.y=0,Kt.debug(`abc95 updating size of ${i.id} children child:${gt.id} maxWidth:${w} maxHeight:${v}`));for(const gt of i.children)_2t(gt,a,w,v);const ft=i.columns||-1;let wt=0;for(const gt of i.children)wt+=gt.widthInColumns||1;let mt=i.children.length;ft>0&&ft0?Math.min(i.children.length,ft):i.children.length;if(gt>0){const Q=(rt-gt*Af-Af)/gt;Kt.debug("abc95 (growing to fit) width",i.id,rt,(R=i.size)==null?void 0:R.width,Q);for(const dt of i.children)dt.size&&(dt.size.width=Q)}}i.size={width:rt,height:it,x:0,y:0}}Kt.debug("setBlockSizes abc94 (done)",i.id,(B=i==null?void 0:i.size)==null?void 0:B.x,(z=i==null?void 0:i.size)==null?void 0:z.width,(Y=i==null?void 0:i.size)==null?void 0:Y.y,(nt=i==null?void 0:i.size)==null?void 0:nt.height)}function bVt(i,a){var g,w,v,b,E,S,_,M,F,R,B,z,Y,nt,ot,ft,wt;Kt.debug(`abc85 layout blocks (=>layoutBlocks) ${i.id} x: ${(g=i==null?void 0:i.size)==null?void 0:g.x} y: ${(w=i==null?void 0:i.size)==null?void 0:w.y} width: ${(v=i==null?void 0:i.size)==null?void 0:v.width}`);const f=i.columns||-1;if(Kt.debug("layoutBlocks columns abc95",i.id,"=>",f,i),i.children&&i.children.length>0){const mt=((E=(b=i==null?void 0:i.children[0])==null?void 0:b.size)==null?void 0:E.width)||0,ct=i.children.length*mt+(i.children.length-1)*Af;Kt.debug("widthOfChildren 88",ct,"posX");let rt=0;Kt.debug("abc91 block?.size?.x",i.id,(S=i==null?void 0:i.size)==null?void 0:S.x);let it=(_=i==null?void 0:i.size)!=null&&_.x?((M=i==null?void 0:i.size)==null?void 0:M.x)+(-((F=i==null?void 0:i.size)==null?void 0:F.width)/2||0):-Af,gt=0;for(const Q of i.children){const dt=i;if(!Q.size)continue;const{width:K,height:yt}=Q.size,{px:V,py:Ot}=pnn(f,rt);if(Ot!=gt&&(gt=Ot,it=(R=i==null?void 0:i.size)!=null&&R.x?((B=i==null?void 0:i.size)==null?void 0:B.x)+(-((z=i==null?void 0:i.size)==null?void 0:z.width)/2||0):-Af,Kt.debug("New row in layout for block",i.id," and child ",Q.id,gt)),Kt.debug(`abc89 layout blocks (child) id: ${Q.id} Pos: ${rt} (px, py) ${V},${Ot} (${(Y=dt==null?void 0:dt.size)==null?void 0:Y.x},${(nt=dt==null?void 0:dt.size)==null?void 0:nt.y}) parent: ${dt.id} width: ${K}${Af}`),dt.size){const It=K/2;Q.size.x=it+Af+It,Kt.debug(`abc91 layout blocks (calc) px, pyid:${Q.id} startingPos=X${it} new startingPosX${Q.size.x} ${It} padding=${Af} width=${K} halfWidth=${It} => x:${Q.size.x} y:${Q.size.y} ${Q.widthInColumns} (width * (child?.w || 1)) / 2 ${K*((Q==null?void 0:Q.widthInColumns)||1)/2}`),it=Q.size.x+It,Q.size.y=dt.size.y-dt.size.height/2+Ot*(yt+Af)+yt/2+Af,Kt.debug(`abc88 layout blocks (calc) px, pyid:${Q.id}startingPosX${it}${Af}${It}=>x:${Q.size.x}y:${Q.size.y}${Q.widthInColumns}(width * (child?.w || 1)) / 2${K*((Q==null?void 0:Q.widthInColumns)||1)/2}`)}Q.children&&bVt(Q),rt+=(Q==null?void 0:Q.widthInColumns)||1,Kt.debug("abc88 columnsPos",Q,rt)}}Kt.debug(`layout blocks (<==layoutBlocks) ${i.id} x: ${(ot=i==null?void 0:i.size)==null?void 0:ot.x} y: ${(ft=i==null?void 0:i.size)==null?void 0:ft.y} width: ${(wt=i==null?void 0:i.size)==null?void 0:wt.width}`)}function wVt(i,{minX:a,minY:f,maxX:g,maxY:w}={minX:0,minY:0,maxX:0,maxY:0}){if(i.size&&i.id!=="root"){const{x:v,y:b,width:E,height:S}=i.size;v-E/2g&&(g=v+E/2),b+S/2>w&&(w=b+S/2)}if(i.children)for(const v of i.children)({minX:a,minY:f,maxX:g,maxY:w}=wVt(v,{minX:a,minY:f,maxX:g,maxY:w}));return{minX:a,minY:f,maxX:g,maxY:w}}function wnn(i){const a=i.getBlock("root");if(!a)return;_2t(a,i,0,0),bVt(a),Kt.debug("getBlocks",JSON.stringify(a,null,2));const{minX:f,minY:g,maxX:w,maxY:v}=wVt(a),b=v-g,E=w-f;return{x:f,y:g,width:E,height:b}}const mnn=Object.freeze(Object.defineProperty({__proto__:null,diagram:{parser:Zen,db:cnn,renderer:{draw:async function(i,a,f,g){const{securityLevel:w,block:v}=o1(),b=g.db;let E;w==="sandbox"&&(E=Tr("#i"+a));const S=Tr(w==="sandbox"?E.nodes()[0].contentDocument.body:"body"),_=w==="sandbox"?S.select(`[id="${a}"]`):Tr(`[id="${a}"]`);jpt(_,["point","circle","cross"],g.type,a);const F=b.getBlocks(),R=b.getBlocksFlat(),B=b.getEdges(),z=_.insert("g").attr("class","block");await fnn(z,F,b);const Y=wnn(b);if(await dnn(z,F,b),await gnn(z,B,R,b,a),Y){const nt=Y,ot=Math.max(1,Math.round(.125*(nt.width/nt.height))),ft=nt.height+ot+10,wt=nt.width+10,{useMaxWidth:mt}=v;sg(_,ft,wt,!!mt),Kt.debug("Here Bounds",Y,nt),_.attr("viewBox",`${nt.x-5} ${nt.y-5} ${nt.width+10} ${nt.height+10}`)}oF(tPt)},getClasses:function(i,a){return a.db.getClasses()}},styles:unn}},Symbol.toStringTag,{value:"Module"}));return _2}); diff --git a/ig-template/package/content/diagram.bpmn b/ig-template/package/content/diagram.bpmn new file mode 100644 index 0000000..5939bfe --- /dev/null +++ b/ig-template/package/content/diagram.bpmn @@ -0,0 +1,115 @@ + + + + + + Has capacity to consent? + + + + + + + + Activity_1s5y9xm + + + Gateway_1ykpua9 + Activity_1lxn6f7 + + + Event_03tz7z4 + Activity_00yhqnr + Activity_05dlhv6 + + + + Flow_0ws129z + + + Flow_0ws129z + Flow_1ias2ec + + + Flow_1ias2ec + Flow_0c4r6vy + + + + Flow_0c4r6vy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ig-template/package/includes/fragment-footer.html b/ig-template/package/includes/fragment-footer.html index ff3313b..b1143d0 100644 --- a/ig-template/package/includes/fragment-footer.html +++ b/ig-template/package/includes/fragment-footer.html @@ -4,6 +4,6 @@ QA Report CC0
-
-
\ No newline at end of file + + diff --git a/input/fsh/examples/0003-AddConditionTransactionExample1-bundle.fsh b/input/fsh/examples/0003-AddConditionTransactionExample1-bundle.fsh index 652a987..34eb4e4 100644 --- a/input/fsh/examples/0003-AddConditionTransactionExample1-bundle.fsh +++ b/input/fsh/examples/0003-AddConditionTransactionExample1-bundle.fsh @@ -3,27 +3,27 @@ InstanceOf: Bundle Usage: #example * type = #transaction * entry[0].fullUrl = "urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" -* entry[=].resource = patient-example-1 +* entry[=].resource = PatientExample1 * entry[=].request.method = #PUT * entry[=].request.url = "Patient?identifier=9912003888" * entry[+].fullUrl = "urn:uuid:959fbc3c-0907-419e-aa3d-ab88f2d90c5e" -* entry[=].resource = consent-example-1 +* entry[=].resource = ConsentExample1 * entry[=].request.method = #PUT * entry[=].request.url = "Consent?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" * entry[+].fullUrl = "urn:uuid:41a84a93-1c95-4162-b13c-1c617509e6e2" -* entry[=].resource = condition-example-1 +* entry[=].resource = ConditionExample1 * entry[=].request.method = #PUT * entry[=].request.url = "Condition?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" * entry[+].fullUrl = "urn:uuid:fba99f70-fe1d-42e2-b77a-916e44b53c19" -* entry[=].resource = master-flag-example-1 +* entry[=].resource = MasterFlagExample1 * entry[=].request.method = #PUT * entry[=].request.url = "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" * entry[+].fullUrl = "urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85" -* entry[=].resource = condition-flag-example-1 +* entry[=].resource = ConditionFlagExample1 * entry[=].request.method = #PUT * entry[=].request.url = "Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85" -Instance: patient-example-1 +Instance: PatientExample1 InstanceOf: Patient Usage: #inline * identifier.system = "https://fhir.nhs.uk/Id/nhs-number" @@ -35,18 +35,7 @@ Usage: #inline * gender = #male * birthDate = "1970-01-01" -Instance: consent-example-1 -InstanceOf: Consent -Usage: #inline -* status = #active -* scope = $consentscope#patient-privacy -* category = RA-FlagCategory#NRAF "National Reasonable Adjustments Flag" -* provision.purpose = $sct#370856009 "Limiting access to confidential patient information" -* patient = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) -* policy.authority = "https://www.gov.uk/" -* policy.uri = "https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf" - -Instance: condition-example-1 +Instance: ConditionExample1 InstanceOf: Condition Usage: #inline * clinicalStatus = $condition-clinical#active @@ -54,7 +43,7 @@ Usage: #inline * code = RA-ConditionCode#5 "Learning or understanding or concentrating" * subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) -Instance: master-flag-example-1 +Instance: MasterFlagExample1 InstanceOf: Flag Usage: #inline * status = #active @@ -70,7 +59,7 @@ Usage: #inline * contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" * contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" -Instance: condition-flag-example-1 +Instance: ConditionFlagExample1 InstanceOf: Flag Usage: #inline * status = #active diff --git a/input/fsh/examples/0004-AddConditionTransactionExample2-bundle.fsh b/input/fsh/examples/0004-AddConditionTransactionExample2-bundle.fsh index cb03a6b..da212b8 100644 --- a/input/fsh/examples/0004-AddConditionTransactionExample2-bundle.fsh +++ b/input/fsh/examples/0004-AddConditionTransactionExample2-bundle.fsh @@ -3,35 +3,35 @@ InstanceOf: Bundle Usage: #example * type = #transaction * entry[0].fullUrl = "urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" -* entry[=].resource = patient-example-1 +* entry[=].resource = PatientExample1 * entry[=].request.method = #PUT * entry[=].request.url = "Patient?identifier=9912003888" * entry[+].fullUrl = "urn:uuid:959fbc3c-0907-419e-aa3d-ab88f2d90c5e" -* entry[=].resource = consent-example-1 +* entry[=].resource = ConsentExample1 * entry[=].request.method = #PUT * entry[=].request.url = "Consent?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" * entry[+].fullUrl = "urn:uuid:41a84a93-1c95-4162-b13c-1c617509e6e2" -* entry[=].resource = condition-example-1 +* entry[=].resource = ConditionExample1 * entry[=].request.method = #PUT * entry[=].request.url = "Condition?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" * entry[+].fullUrl = "urn:uuid:fba99f70-fe1d-42e2-b77a-916e44b53c19" -* entry[=].resource = master-flag-example-1 +* entry[=].resource = MasterFlagExample1 * entry[=].request.method = #PUT * entry[=].request.url = "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" * entry[+].fullUrl = "urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85" -* entry[=].resource = condition-flag-example-1 +* entry[=].resource = ConditionFlagExample1 * entry[=].request.method = #PUT * entry[=].request.url = "Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85" * entry[+].fullUrl = "urn:uuid:b19124e9-f742-49b4-9247-5c2d58ac1ef4" -* entry[=].resource = condition-example-2 +* entry[=].resource = ConditionExample2 * entry[=].request.method = #PUT * entry[=].request.url = "Condition/b19124e9-f742-49b4-9247-5c2d58ac1ef4" * entry[+].fullUrl = "urn:uuid:212c1018-f52a-4db7-9bc2-59a88622eb4f" -* entry[=].resource = condition-flag-example-2 +* entry[=].resource = ConditionFlagExample2 * entry[=].request.method = #PUT * entry[=].request.url = "Flag/212c1018-f52a-4db7-9bc2-59a88622eb4f" -Instance: condition-example-2 +Instance: ConditionExample2 InstanceOf: Condition Usage: #inline * clinicalStatus = $condition-clinical#active @@ -39,7 +39,7 @@ Usage: #inline * code = $sct#73618009 "Autistic spectrum disorder with isolated skills" * subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) -Instance: condition-flag-example-2 +Instance: ConditionFlagExample2 InstanceOf: Flag Usage: #inline * status = #active diff --git a/input/fsh/examples/0012-RemoveRARecordExample.fsh b/input/fsh/examples/0012-RemoveRARecordExample.fsh index 0d67c3c..5463b0f 100644 --- a/input/fsh/examples/0012-RemoveRARecordExample.fsh +++ b/input/fsh/examples/0012-RemoveRARecordExample.fsh @@ -5,6 +5,6 @@ Usage: #example * entry[0].request.method = #DELETE * entry[=].request.url = "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" * entry[+].request.method = #DELETE -* entry[=].request.url = "Consent/consent-example-1" +* entry[=].request.url = "Consent/ConsentExample1" * entry[+].request.method = #DELETE -* entry[=].request.url = "Condition/condition-example-1" +* entry[=].request.url = "Condition/ConditionExample1" diff --git a/input/fsh/examples/0013-ConsentExample1.fsh b/input/fsh/examples/0013-ConsentExample1.fsh new file mode 100644 index 0000000..add7897 --- /dev/null +++ b/input/fsh/examples/0013-ConsentExample1.fsh @@ -0,0 +1,23 @@ +Instance: ConsentExample1 +InstanceOf: Consent +Usage: #example +* extension[0].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentCreateSummary" +* extension[=].valueAnnotation.text = "Example of consent create summary extension text" +* extension[+].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentRemoveSummary" +* extension[=].valueAnnotation.text = "Example of consent remove summary extension text" +* status = #active +* scope = $consentscope#patient-privacy +* category = RA-FlagCategory#NRAF "National Reasonable Adjustments Flag" +* provision.purpose = $sct#370856009 "Limiting access to confidential patient information" +* patient = Reference(Patient/PatientExample1) +* policy.authority = "https://www.gov.uk/" +* policy.uri = "https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf" +* policyRule = RA-ProxyRole#001 +* contained.resourceType = "Provenance" +* contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $v3-DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" diff --git a/input/images-source/consent-activity.plantuml b/input/images-source/consent-activity.plantuml new file mode 100644 index 0000000..16ebb1a --- /dev/null +++ b/input/images-source/consent-activity.plantuml @@ -0,0 +1,38 @@ +@startuml + +|Practioner| +start +:Request consent; + +|#LightGray|Patient| +if (Capacity to\n consent?) is (Yes) then +:Provide consent; +else (No) + +|Patient Advocate| +:Provide consent; +endif + +|Practioner| +if (Consent given) is (Yes) then +:Record/confirm\n consent given; +else (No) +: Revoke consent\nand previous records; +endif + +|#LightGray|API| +:Update API; +note right +There are vaious +ways this can be +acheived and +examples are +provided +throughout +end note + +|Practioner| +:Confirmation; +stop + +@enduml \ No newline at end of file diff --git a/input/images-source/consent-sequence.plantuml b/input/images-source/consent-sequence.plantuml new file mode 100644 index 0000000..5c3fcf9 --- /dev/null +++ b/input/images-source/consent-sequence.plantuml @@ -0,0 +1,41 @@ +@startuml + +skinparam actorStyle hollow + +actor "Practitioner" as pra +actor "Patient" as pat +actor "Patient Advocate" as pad +participant "FHIR API" as api +entity "Consent" as con +entity "Master Flag" as mas +entity "Adjustment Flag" as adj +entity "Condition" as cod + +alt Patient provides consent + pra -> pat : Request consent + pra <-- pat : Provide consent +else Advocate provides consent + pra -> pad : Request Consent + pra <-- pad : Provide consent +end + +alt Consent has been given + pra -> api : Record consent given + api -> con : Create/update resource + con -> con : Validate + api <-- con : return + pra <-- api : OperationOutcome +else Consent has not been given/been revoked + pra -> api : Record consent was not given + api -> con : Delete adjustment consent + api <-- con : return + api -> mas : Delete adjustment master flag + api <-- mas : return + api -> adj : Delete adjustment flag(s) + api <-- adj : return + api -> cod : Delete condition flag(s) + api <-- cod : return + pra <-- api : OperationOutcome +end + +@enduml diff --git a/input/images-source/consent-usecase.plantuml b/input/images-source/consent-usecase.plantuml new file mode 100644 index 0000000..c66fe76 --- /dev/null +++ b/input/images-source/consent-usecase.plantuml @@ -0,0 +1,17 @@ +@startuml + +skinparam actorStyle awesome + +actor Practitioner as pra +package Consenter { + actor "Patient Advocate" as pad + actor Patient as pat +} + +usecase "Consent to share information" as CON + +pat -- CON +pad -- CON +pra -- CON + +@enduml diff --git a/input/images-source/data-model.plantuml b/input/images-source/data-model.plantuml new file mode 100644 index 0000000..f51c915 --- /dev/null +++ b/input/images-source/data-model.plantuml @@ -0,0 +1,50 @@ +@startuml + +skinparam linetype ortho + +entity "Patient" as pat { + *NHS Number : number <> +} + +entity "Consent" as con { + *patient : Patient + *category : CodeableConcept + *contained : Provenance +} + +entity "Condition" as cod { + *patient : Patient + *code : CodeableConcept + *category : CodeableConcept + *contained : Provenance +} + +entity "Master Flag" as mas { + *patient : Patient + *code : CodeableConcept + *category : CodeableConcept + *contained : Provenance +} + +entity "Adjustment Flag" as adj { + *patient : Patient + *code : CodeableConcept + *category : CodeableConcept + *contained : Provenance +} + +entity "Provenance" as pro { + *recorded : Date + *agent : Agent (backbone) +} + +pat ||..|| con : provides +pat ||--o{ cod : has +pat ||--o| mas : "has" +pat ||--o{ adj : has +con ||--|| pro : contains +cod ||--|| pro : contains +mas ||--|| pro : contains +adj ||--|| pro : contains + +@enduml diff --git a/input/images/consent-to-treatment.bpmn b/input/images/consent-to-treatment.bpmn new file mode 100644 index 0000000..569465d --- /dev/null +++ b/input/images/consent-to-treatment.bpmn @@ -0,0 +1,302 @@ + + + + + + Has capacity to consent? + + + + Consent given? + + + Has previously given consent? + + + + + + + + Activity_0dhbqc4 + Event_0l5456e + + + Activity_1s5y9xm + + + Gateway_1ykpua9 + Activity_1lxn6f7 + + + Event_03tz7z4 + Activity_00yhqnr + Gateway_06x87t1 + Gateway_1gtku8g + Activity_05dlhv6 + Gateway_0w5c25l + Activity_1d15nfa + Activity_141bek4 + Activity_1ssfxj7 + + + + Flow_0ws129z + + + Flow_0ws129z + Flow_1ias2ec + + + Flow_1ias2ec + Flow_0c4r6vy + Flow_08lmvoh + + + Flow_0c4r6vy + Flow_13rzwfg + + + Flow_08lmvoh + Flow_1nqzwg9 + + + + + + + + + + + + Flow_10uzgl8 + Flow_0xi6t0h + Flow_0e4ywk6 + + + Flow_0xi6t0h + Flow_0lvmstj + Flow_00d4lwg + + + Flow_0fes7ic + Flow_10uzgl8 + + + Flow_13rzwfg + Flow_1nqzwg9 + Flow_0fes7ic + + + Flow_0e4ywk6 + Flow_0wtli10 + + + + Flow_0lvmstj + Flow_0smv1s5 + + + + Flow_00d4lwg + Flow_0sscag8 + + + + + + + Flow_0wtli10 + Flow_0smv1s5 + Flow_0sscag8 + Flow_0yxt3zu + + + + Flow_0yxt3zu + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/input/images/consent-to-treatment.svg b/input/images/consent-to-treatment.svg new file mode 100644 index 0000000..19c840d --- /dev/null +++ b/input/images/consent-to-treatment.svg @@ -0,0 +1,4 @@ + + + +Consent to TreatmentPractitionerPatientPatient AdvocateAPIRequest consentRecord consentRecord consenthas been providedRecord consent has not been providedRevoke previous consent and adjustment recordsProvide consentProvide consentUpdate ResourcesConsent given?YesHas previously given consent?NoNoYesNoHas capacity toconsent? \ No newline at end of file diff --git a/input/pagecontent/consent-to-share-information.md b/input/pagecontent/consent-to-share-information.md new file mode 100644 index 0000000..509c711 --- /dev/null +++ b/input/pagecontent/consent-to-share-information.md @@ -0,0 +1,50 @@ +### Overview + +Patient consent must be established for information to be shared through the Reasonable Adjustment Flag or via a 'best interest decision' as per the [Mental Capacity Act (2005)](https://www.nhs.uk/conditions/social-care-and-support-guide/making-decisions-for-someone-else/mental-capacity-act/) – according to existing guidance and best practice. + +Any sharing of patient information must adhere to the [Caldicott Principles](https://www.gov.uk/government/publications/the-caldicott-principles) + +In some cases consent can also be obtained from a lasting power of attorney for health and welfare, or a court appointed deputy. Consent is usually obtained by a suitable member of staff discussing the Reasonable Adjustment Flag with the patient, their carer or the appropriate patient representative. The member of staff will then record the type of consent captured, along with some free text details providing more information about who provided the consent. + +As an example of best practice, existing guiduance using a 'best interest decision' can be found in the defintion for [consent to treatment](https://www.nhs.uk/conditions/consent-to-treatment). This describe cases where a patient advocate may provide consent when the patient [does not have the capacity to do so](https://www.nhs.uk/conditions/consent-to-treatment/capacity). + +### Use Case Illustration + +As capacity can sometimes change over time, it should be assessed at the time that consent is required. This will usually be done by an appropriately trained and experienced healthcare professional (i.e. Practitioner) who's either: + +* recommending the treatment or investigation +* involved in carrying it out + +If the patient does not have the capacity to consent, then a patient advocate may provide consent for them. + +
+ +{%include consent-usecase.svg%} + +
+ +### Workflow Illustration + +If consent is not given, then this will be recorded. If there was previous consent to record adjustments, but the consent is then revoked, then all adjustment records must also be removed. + +
+ Activity created in draw.io! +
+ +### System Interactions + +If consent is given either by the patient or the patient advocate, then this should be recorded. A record of who obtained the consent must also be embedded in the Consent resource. This will done using a provenance resource. If consent has not been previously given, then this means the Consent resource must be created. If consent is removed, then the Consent resource should be deleted. The absence of a Consent resource implies patient dissent. + +If consent is removed, then all previous adjustment records must be deleted, including the master flag and all adjustment flags and conditions. + +
+ +{%include consent-sequence.svg%} + +
+ +### Examples + +* [Consent is given example](Consent-ConsentExample1.html) +* Consent is not given is implied by the absence of a Consent resource +* Consent is revoked is implied by the absence of a Consent resource diff --git a/input/pagecontent/data-model.md b/input/pagecontent/data-model.md index c59546e..113972d 100644 --- a/input/pagecontent/data-model.md +++ b/input/pagecontent/data-model.md @@ -7,3 +7,23 @@ The RA record is made up of Consent, Condition, Flag and Provenances resources.
RA Record Data Model
+ +
+erDiagram + + Patient ||..|| Consent : provides + Patient ||--o{ Condition : has + Patient ||--o| "Master Flag" : "has" + Patient ||--o{ "Adjustment Flag" : has + + Consent ||--|| Provenance : contains + Condition ||--|| Provenance : contains + "Master Flag" ||--|| Provenance : contains + "Adjustment Flag" ||--|| Provenance : contains +
+ +
+ +{%include data-model.svg%} + +
\ No newline at end of file diff --git a/sushi-config.yaml b/sushi-config.yaml index bc0121d..60b8469 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -79,9 +79,10 @@ menu: Sitemap: toc.html Data Model: data-model.html Use Cases: - Add RA Record: add-ra-record.html - Retrieve RA Record: retrieve-ra-record.html - Remove RA Record: remove-ra-record.html + Consent to Share Information: consent-to-share-information.html + Add Reasonable Adjustment Record: add-ra-record.html + Retrieve Reasonable Adjustment Record: retrieve-ra-record.html + Remove Reasonable Adjustment Record: remove-ra-record.html Server Examples: server-examples.html Artifacts: artifacts.html Contact Us: todo.html From 5d5fc4f60b0d9df75bbb878d08bbb2b88546abd4 Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Wed, 6 Mar 2024 16:44:57 +0000 Subject: [PATCH 127/136] Feature/add record updates and examples (#18) * consent to treatment guidance * install graphviz in pipeline * paragraph formatting * Update consent-to-treatment.md Plantuml activity diagram example * corrections in guidance, added to example * corrections in guidance, added to example * corrections in guidance, added to example * Delete ig-template/package/content/assets/js/.index.json * delete .index.db * patient example, split flag profile * added individual examples, updated add record guidance * diagrams and scenarios for add record * change AdjustmentNotes extension to FlagNotes * update text in examples with flag notes extension * generalise master flag to patients not just ra --------- Co-authored-by: Declan Kieran --- input/fsh/aliases.fsh | 3 +- ...agCategory.fsh => PatientFlagCategory.fsh} | 12 +- ...AddConditionTransactionExample1-bundle.fsh | 54 +----- ...AddConditionTransactionExample2-bundle.fsh | 28 +--- input/fsh/examples/0013-ConsentExample1.fsh | 2 +- input/fsh/examples/0014-PatientExample1.fsh | 11 ++ .../fsh/examples/0015-MasterFlagExample1.fsh | 16 ++ .../examples/0016-AdjustmentFlagExample1.fsh | 18 ++ input/fsh/examples/0017-ConditionExample1.fsh | 15 ++ .../examples/0018-AdjustmentFlagExample2.fsh | 18 ++ input/fsh/examples/0019-ConditionExample2.fsh | 15 ++ .../extensions/Extension-AdjustmentNotes.fsh | 6 +- input/fsh/profiles/MasterFlag.fsh | 33 ++++ input/fsh/profiles/RA-AdjustmentFlag.fsh | 32 ++++ input/fsh/profiles/RA-Consent.fsh | 2 +- input/fsh/profiles/RA-Flag.fsh | 33 ---- input/fsh/profiles/RA-Provenance.fsh | 2 +- input/fsh/valuesets/PatientFlagCategory.fsh | 24 +++ input/fsh/valuesets/RA-FlagCategory.fsh | 18 -- input/fsh/valuesets/RA-ProvenanceRole.fsh | 1 - .../add-record-sequence.plantuml | 58 +++++++ .../images-source/add-record-usecase.plantuml | 21 +++ input/images/add-record-workflow.bpmn | 157 ++++++++++++++++++ input/images/add-record-workflow.svg | 4 + input/pagecontent/add-ra-record.md | 64 ------- .../add-reasonable-adjustment-record.md | 126 ++++++++++++++ .../consent-to-share-information.md | 37 ++++- input/pagecontent/server-examples.md | 4 +- sushi-config.yaml | 2 +- 29 files changed, 601 insertions(+), 215 deletions(-) rename input/fsh/codesystem/{RA-FlagCategory.fsh => PatientFlagCategory.fsh} (51%) create mode 100644 input/fsh/examples/0014-PatientExample1.fsh create mode 100644 input/fsh/examples/0015-MasterFlagExample1.fsh create mode 100644 input/fsh/examples/0016-AdjustmentFlagExample1.fsh create mode 100644 input/fsh/examples/0017-ConditionExample1.fsh create mode 100644 input/fsh/examples/0018-AdjustmentFlagExample2.fsh create mode 100644 input/fsh/examples/0019-ConditionExample2.fsh create mode 100644 input/fsh/profiles/MasterFlag.fsh create mode 100644 input/fsh/profiles/RA-AdjustmentFlag.fsh delete mode 100644 input/fsh/profiles/RA-Flag.fsh create mode 100644 input/fsh/valuesets/PatientFlagCategory.fsh delete mode 100644 input/fsh/valuesets/RA-FlagCategory.fsh create mode 100644 input/images-source/add-record-sequence.plantuml create mode 100644 input/images-source/add-record-usecase.plantuml create mode 100644 input/images/add-record-workflow.bpmn create mode 100644 input/images/add-record-workflow.svg delete mode 100644 input/pagecontent/add-ra-record.md create mode 100644 input/pagecontent/add-reasonable-adjustment-record.md diff --git a/input/fsh/aliases.fsh b/input/fsh/aliases.fsh index 944f18e..5fa43d2 100644 --- a/input/fsh/aliases.fsh +++ b/input/fsh/aliases.fsh @@ -14,7 +14,8 @@ Alias: $extra-security-role-type = http://terminology.hl7.org/CodeSystem/extra-s Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 Alias: $ValueSetRAConditionCategory = https://fhir.nhs.uk/England/ValueSet/RA-ConditionCategory Alias: $ValueSetRAConditionCode = https://fhir.nhs.uk/England/ValueSet/RA-ConditionCode -Alias: $ValueSetRAFlagCategory = https://fhir.nhs.uk/England/ValueSet/RA-FlagCategory +Alias: $ValueSetPatientFlagCategory = https://fhir.nhs.uk/England/ValueSet/PatientFlagCategory +Alias: $ValueSetRAAdjustmentCategory = https://fhir.nhs.uk/England/ValueSet/RA-AdjustmentCategory Alias: $ValueSetRAFlagCode = https://fhir.nhs.uk/England/ValueSet/RA-FlagCode Alias: $ExtensionFlagDetail = http://hl7.org/fhir/StructureDefinition/flag-detail Alias: $ValueSetRAProvenanceRole = https://fhir.nhs.uk/England/ValueSet/RA-ProvenanceRole diff --git a/input/fsh/codesystem/RA-FlagCategory.fsh b/input/fsh/codesystem/PatientFlagCategory.fsh similarity index 51% rename from input/fsh/codesystem/RA-FlagCategory.fsh rename to input/fsh/codesystem/PatientFlagCategory.fsh index af54d83..3e6843e 100644 --- a/input/fsh/codesystem/RA-FlagCategory.fsh +++ b/input/fsh/codesystem/PatientFlagCategory.fsh @@ -1,10 +1,10 @@ -CodeSystem: RA-FlagCategory -Id: RA-FlagCategory -Title: "Reasonable Adjustments Record Flag Category" +CodeSystem: PatientFlagCategory +Id: PatientFlagCategory +Title: "Patient Flag Category" Description: "A CodeSystem to identify the type/category of Flag." -* ^name = "ReasonableAdjustmentsFlagCategory" -* ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory" +* ^name = "PatientFlagCategory" +* ^url = "https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" @@ -15,3 +15,5 @@ Description: "A CodeSystem to identify the type/category of Flag." * ^caseSensitive = true * ^content = #complete * #NRAF "National Reasonable Adjustments Flag" +* #CP-IS "Child Protection - Information Sharing Flag" +* #FGM "Female Genital Mutilation Flag" diff --git a/input/fsh/examples/0003-AddConditionTransactionExample1-bundle.fsh b/input/fsh/examples/0003-AddConditionTransactionExample1-bundle.fsh index 34eb4e4..e8c9468 100644 --- a/input/fsh/examples/0003-AddConditionTransactionExample1-bundle.fsh +++ b/input/fsh/examples/0003-AddConditionTransactionExample1-bundle.fsh @@ -19,58 +19,6 @@ Usage: #example * entry[=].request.method = #PUT * entry[=].request.url = "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" * entry[+].fullUrl = "urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85" -* entry[=].resource = ConditionFlagExample1 +* entry[=].resource = AdjustmentFlagExample1 * entry[=].request.method = #PUT * entry[=].request.url = "Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85" - -Instance: PatientExample1 -InstanceOf: Patient -Usage: #inline -* identifier.system = "https://fhir.nhs.uk/Id/nhs-number" -* identifier.value = "9912003888" -* active = true -* name.use = #official -* name.family = "Duck" -* name.given = "Donald" -* gender = #male -* birthDate = "1970-01-01" - -Instance: ConditionExample1 -InstanceOf: Condition -Usage: #inline -* clinicalStatus = $condition-clinical#active -* category = RA-ConditionCategory#issue "Issue" -* code = RA-ConditionCode#5 "Learning or understanding or concentrating" -* subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) - -Instance: MasterFlagExample1 -InstanceOf: Flag -Usage: #inline -* status = #active -* code = RA-FlagCategory#NRAF "National Reasonable Adjustments Flag" -* category = RA-FlagCategory#NRAF "National Reasonable Adjustments Flag" -* subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) -* contained.resourceType = "Provenance" -* contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" -* contained.target.reference = "#" -* contained.recorded = "2024-01-01T11:00:00+00:00" -* contained.activity = $v3-DataOperation#CREATE "create" -* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" -* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" -* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" - -Instance: ConditionFlagExample1 -InstanceOf: Flag -Usage: #inline -* status = #active -* code = $sct#1082691000000101 "Requires support for expressive communication needs" -* category = RA-FlagCategory#NRAF "National Reasonable Adjustments Flag" -* subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) -* contained.resourceType = "Provenance" -* contained.id = "ddb4df1c-d15a-4d02-9346-c034732c5a37" -* contained.target.reference = "#" -* contained.recorded = "2024-01-01T11:00:00+00:00" -* contained.activity = $v3-DataOperation#CREATE "create" -* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" -* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" -* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" \ No newline at end of file diff --git a/input/fsh/examples/0004-AddConditionTransactionExample2-bundle.fsh b/input/fsh/examples/0004-AddConditionTransactionExample2-bundle.fsh index da212b8..adebf29 100644 --- a/input/fsh/examples/0004-AddConditionTransactionExample2-bundle.fsh +++ b/input/fsh/examples/0004-AddConditionTransactionExample2-bundle.fsh @@ -19,7 +19,7 @@ Usage: #example * entry[=].request.method = #PUT * entry[=].request.url = "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" * entry[+].fullUrl = "urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85" -* entry[=].resource = ConditionFlagExample1 +* entry[=].resource = AdjustmentFlagExample1 * entry[=].request.method = #PUT * entry[=].request.url = "Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85" * entry[+].fullUrl = "urn:uuid:b19124e9-f742-49b4-9247-5c2d58ac1ef4" @@ -27,30 +27,6 @@ Usage: #example * entry[=].request.method = #PUT * entry[=].request.url = "Condition/b19124e9-f742-49b4-9247-5c2d58ac1ef4" * entry[+].fullUrl = "urn:uuid:212c1018-f52a-4db7-9bc2-59a88622eb4f" -* entry[=].resource = ConditionFlagExample2 +* entry[=].resource = AdjustmentFlagExample2 * entry[=].request.method = #PUT * entry[=].request.url = "Flag/212c1018-f52a-4db7-9bc2-59a88622eb4f" - -Instance: ConditionExample2 -InstanceOf: Condition -Usage: #inline -* clinicalStatus = $condition-clinical#active -* category = RA-ConditionCategory#issue "Issue" -* code = $sct#73618009 "Autistic spectrum disorder with isolated skills" -* subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) - -Instance: ConditionFlagExample2 -InstanceOf: Flag -Usage: #inline -* status = #active -* code = RA-AdjustmentCategory#001 "Communication support" -* category = RA-FlagCategory#NRAF "National Reasonable Adjustments Flag" -* subject = Reference(urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77) -* contained.resourceType = "Provenance" -* contained.id = "55ac7111-dbd1-42f2-906c-a167b04d47ce" -* contained.target.reference = "#" -* contained.recorded = "2024-01-01T11:00:00+00:00" -* contained.activity = $v3-DataOperation#CREATE "create" -* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" -* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" -* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" \ No newline at end of file diff --git a/input/fsh/examples/0013-ConsentExample1.fsh b/input/fsh/examples/0013-ConsentExample1.fsh index add7897..847bb4b 100644 --- a/input/fsh/examples/0013-ConsentExample1.fsh +++ b/input/fsh/examples/0013-ConsentExample1.fsh @@ -7,7 +7,7 @@ Usage: #example * extension[=].valueAnnotation.text = "Example of consent remove summary extension text" * status = #active * scope = $consentscope#patient-privacy -* category = RA-FlagCategory#NRAF "National Reasonable Adjustments Flag" +* category = PatientFlagCategory#NRAF "National Reasonable Adjustments Flag" * provision.purpose = $sct#370856009 "Limiting access to confidential patient information" * patient = Reference(Patient/PatientExample1) * policy.authority = "https://www.gov.uk/" diff --git a/input/fsh/examples/0014-PatientExample1.fsh b/input/fsh/examples/0014-PatientExample1.fsh new file mode 100644 index 0000000..945d95d --- /dev/null +++ b/input/fsh/examples/0014-PatientExample1.fsh @@ -0,0 +1,11 @@ +Instance: PatientExample1 +InstanceOf: Patient +Usage: #example +* identifier.system = "https://fhir.nhs.uk/Id/nhs-number" +* identifier.value = "9912003888" +* active = true +* name.use = #official +* name.family = "Marks" +* name.given = "Sahil" +* gender = #male +* birthDate = "1970-01-01" \ No newline at end of file diff --git a/input/fsh/examples/0015-MasterFlagExample1.fsh b/input/fsh/examples/0015-MasterFlagExample1.fsh new file mode 100644 index 0000000..f7c22b5 --- /dev/null +++ b/input/fsh/examples/0015-MasterFlagExample1.fsh @@ -0,0 +1,16 @@ +Instance: MasterFlagExample1 +InstanceOf: Flag +Usage: #example +* extension[0].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes" +* extension[=].valueAnnotation.text = "Example of flag notes extension text in master flag" +* status = #active +* code = PatientFlagCategory#NRAF "National Reasonable Adjustments Flag" +* subject = Reference(Patient/PatientExample1) +* contained.resourceType = "Provenance" +* contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $v3-DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" \ No newline at end of file diff --git a/input/fsh/examples/0016-AdjustmentFlagExample1.fsh b/input/fsh/examples/0016-AdjustmentFlagExample1.fsh new file mode 100644 index 0000000..821b44f --- /dev/null +++ b/input/fsh/examples/0016-AdjustmentFlagExample1.fsh @@ -0,0 +1,18 @@ +Instance: AdjustmentFlagExample1 +InstanceOf: Flag +Usage: #example +* extension[0].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes" +* extension[=].valueAnnotation.text = "Example of flag notes extension text in adjustment flag" +* status = #active +* category[0] = PatientFlagCategory#NRAF "National Reasonable Adjustments Flag" +* category[+] = RA-AdjustmentCategory#001 "Communication support" +* code = $sct#1082681000000103 "Requires support for receptive communication needs" +* subject = Reference(Patient/PatientExample1) +* contained.resourceType = "Provenance" +* contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $v3-DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" \ No newline at end of file diff --git a/input/fsh/examples/0017-ConditionExample1.fsh b/input/fsh/examples/0017-ConditionExample1.fsh new file mode 100644 index 0000000..e86f79d --- /dev/null +++ b/input/fsh/examples/0017-ConditionExample1.fsh @@ -0,0 +1,15 @@ +Instance: ConditionExample1 +InstanceOf: Condition +Usage: #example +* clinicalStatus = $condition-clinical#active +* category = RA-ConditionCategory#issue "Issue" +* code = RA-ConditionCode#5 "Learning or understanding or concentrating" +* subject = Reference(Patient/PatientExample1) +* contained.resourceType = "Provenance" +* contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $v3-DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" \ No newline at end of file diff --git a/input/fsh/examples/0018-AdjustmentFlagExample2.fsh b/input/fsh/examples/0018-AdjustmentFlagExample2.fsh new file mode 100644 index 0000000..5d348da --- /dev/null +++ b/input/fsh/examples/0018-AdjustmentFlagExample2.fsh @@ -0,0 +1,18 @@ +Instance: AdjustmentFlagExample2 +InstanceOf: Flag +Usage: #example +* extension[0].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes" +* extension[=].valueAnnotation.text = "Example of adjustment notes extension text in adjustment flag" +* status = #active +* category[0] = PatientFlagCategory#NRAF "National Reasonable Adjustments Flag" +* category[+] = RA-AdjustmentCategory#011 "Bespoke Reasonable adjustments" +* code = $sct#73618009 "Autistic spectrum disorder with isolated skills" +* subject = Reference(Patient/PatientExample1) +* contained.resourceType = "Provenance" +* contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $v3-DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" \ No newline at end of file diff --git a/input/fsh/examples/0019-ConditionExample2.fsh b/input/fsh/examples/0019-ConditionExample2.fsh new file mode 100644 index 0000000..715b141 --- /dev/null +++ b/input/fsh/examples/0019-ConditionExample2.fsh @@ -0,0 +1,15 @@ +Instance: ConditionExample2 +InstanceOf: Condition +Usage: #example +* clinicalStatus = $condition-clinical#active +* category = RA-ConditionCategory#issue "Issue" +* code = RA-ConditionCode#9 "Social or behavioural (for example associated with autism spectrum disorder (ASD) which includes Asperger’s, or attention deficit hyperactivity disorder (ADHD))" +* subject = Reference(Patient/PatientExample1) +* contained.resourceType = "Provenance" +* contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $v3-DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" \ No newline at end of file diff --git a/input/fsh/extensions/Extension-AdjustmentNotes.fsh b/input/fsh/extensions/Extension-AdjustmentNotes.fsh index 72b52e2..483dec6 100644 --- a/input/fsh/extensions/Extension-AdjustmentNotes.fsh +++ b/input/fsh/extensions/Extension-AdjustmentNotes.fsh @@ -1,11 +1,11 @@ -Extension: Extension-AdjustmentNotes -Id: Extension-AdjustmentNotes +Extension: Extension-FlagNotes +Id: Extension-FlagNotes Title: "Extension for Flag Adjustment Notes" Description: "Captures the additional information for an Adjustment within a Reasonable Adjustment Flag." Context: Flag * ^purpose = "Additional information required to correctly or effectively interpret an Adjustment." -* ^url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-AdjustmentNotes" +* ^url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" diff --git a/input/fsh/profiles/MasterFlag.fsh b/input/fsh/profiles/MasterFlag.fsh new file mode 100644 index 0000000..78d48d3 --- /dev/null +++ b/input/fsh/profiles/MasterFlag.fsh @@ -0,0 +1,33 @@ +Profile: MasterFlag +Parent: Flag +Id: MasterFlag +Title: "Patient Master Flag Profile" +Description: "To record whether a Patient Flags exists" + +* ^name = "MasterFlag" +* ^url = "https://fhir.nhs.uk/England/StructureDefinition/MasterFlag" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" + +* insert NHSEngland-PublisherContactCopyright + +* extension contains + Extension-FlagNotes named flagNotes 0..1 and + $ExtensionFlagDetail named flagDetail 0..* + +* extension[flagNotes].value[x] only Annotation +* extension[flagNotes].valueAnnotation 1.. + +* extension[flagDetail].valueReference only Reference(RA-AdjustmentFlag or RA-Consent or RA-Provenance) + +* contained ^slicing.discriminator.type = #profile +* contained ^slicing.rules = #open +* contained ^slicing.discriminator.path = "contained" +* contained contains provenance 1..1 +* contained[provenance] only RA-Provenance + +* category 1.. MS +* category from $ValueSetPatientFlagCategory (required) +* code MS +* code from $ValueSetRAFlagCode (extensible) diff --git a/input/fsh/profiles/RA-AdjustmentFlag.fsh b/input/fsh/profiles/RA-AdjustmentFlag.fsh new file mode 100644 index 0000000..11554dd --- /dev/null +++ b/input/fsh/profiles/RA-AdjustmentFlag.fsh @@ -0,0 +1,32 @@ +Profile: RA-AdjustmentFlag +Parent: Flag +Id: RA-AdjustmentFlag +Title: "Reasonable Adjustments Flag Profile" +Description: "To (optionally) record an individual Adjustment for a Reasonable Adjustment Flag" + +* ^name = "ReasonableAdjustmentsFlag" +* ^url = "https://fhir.nhs.uk/England/StructureDefinition/RA-AdjustmentFlag" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" + +* insert NHSEngland-PublisherContactCopyright + +* extension contains + Extension-FlagNotes named flagNotes 0..1 + +* extension[flagNotes].value[x] only Annotation +* extension[flagNotes].valueAnnotation 1.. + +* category ^slicing.discriminator.type = #profile +* category ^slicing.rules = #open +* category ^slicing.discriminator.path = "system" + +* category contains masterFlag 1.. MS +* category[masterFlag] from $ValueSetPatientFlagCategory (required) + +* category contains adjustmentFlag 1.. MS +* category[adjustmentFlag] from $ValueSetRAAdjustmentCategory (required) + +* code MS +* code from $ValueSetRAFlagCode (extensible) diff --git a/input/fsh/profiles/RA-Consent.fsh b/input/fsh/profiles/RA-Consent.fsh index 7663b7c..1630be9 100644 --- a/input/fsh/profiles/RA-Consent.fsh +++ b/input/fsh/profiles/RA-Consent.fsh @@ -28,7 +28,7 @@ Description: "To record consent to capture Reasonable Adjustments and Reasons fo * contained contains provenance 1..1 * contained[provenance] only RA-Provenance -* category from $ValueSetRAFlagCategory (extensible) +* category from $ValueSetPatientFlagCategory (extensible) * policy 1..1 * policy.uri 1.. * policyRule 1.. diff --git a/input/fsh/profiles/RA-Flag.fsh b/input/fsh/profiles/RA-Flag.fsh deleted file mode 100644 index 11b16f8..0000000 --- a/input/fsh/profiles/RA-Flag.fsh +++ /dev/null @@ -1,33 +0,0 @@ -Profile: RA-Flag -Parent: Flag -Id: RA-Flag -Title: "Reasonable Adjustments Flag Profile" -Description: "To (optionally) record an individual Adjustment for a Reasonable Adjustment Flag" - -* ^name = "ReasonableAdjustmentsFlag" -* ^url = "https://fhir.nhs.uk/England/StructureDefinition/RA-Flag" -* ^version = "0.1.0" -* ^status = #draft -* ^date = "2024-02-14" - -* insert NHSEngland-PublisherContactCopyright - -* extension contains - Extension-AdjustmentNotes named adjustmentNotes 0..1 and - $ExtensionFlagDetail named flagDetail 0..* - -* extension[adjustmentNotes].value[x] only Annotation -* extension[adjustmentNotes].valueAnnotation 1.. - -* extension[flagDetail].valueReference only Reference(RA-Flag or RA-Consent or RA-Provenance) - -* contained ^slicing.discriminator.type = #profile -* contained ^slicing.rules = #open -* contained ^slicing.discriminator.path = "contained" -* contained contains provenance 1..1 -* contained[provenance] only RA-Provenance - -* category 1.. MS -* category from $ValueSetRAFlagCategory (required) -* code MS -* code from $ValueSetRAFlagCode (extensible) diff --git a/input/fsh/profiles/RA-Provenance.fsh b/input/fsh/profiles/RA-Provenance.fsh index 421e561..16cb5f0 100644 --- a/input/fsh/profiles/RA-Provenance.fsh +++ b/input/fsh/profiles/RA-Provenance.fsh @@ -12,7 +12,7 @@ Description: "To record details of the practitioner recording or removing an ind * insert NHSEngland-PublisherContactCopyright -* target only Reference(Condition or RA-Consent or RA-Flag) +* target only Reference(Condition or RA-Consent or RA-AdjustmentFlag or MasterFlag) * agent.role from $ValueSetRAProvenanceRole (extensible) * agent.who only Reference(Practitioner) * agent.onBehalfOf only Reference(Organization) diff --git a/input/fsh/valuesets/PatientFlagCategory.fsh b/input/fsh/valuesets/PatientFlagCategory.fsh new file mode 100644 index 0000000..5505565 --- /dev/null +++ b/input/fsh/valuesets/PatientFlagCategory.fsh @@ -0,0 +1,24 @@ +ValueSet: PatientFlagCategory +Id: PatientFlagCategory +Title: "PatientFlagCategory" +Description: "A ValueSet to identify the type/category of Flag." + +* ^name = "PatientFlagCategory" +* ^url = "https://fhir.nhs.uk/England/ValueSet/PatientFlagCategory" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^experimental = false + +* insert NHSEngland-PublisherContactCopyright + +* ^expansion.timestamp = "2024-02-14T12:00:00+00:00" +* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory" +* ^expansion.contains[=].code = #NRAF +* ^expansion.contains[=].display = "National Reasonable Adjustments Flag" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory" +* ^expansion.contains[=].code = #CP-IS +* ^expansion.contains[=].display = "Child Protection - Information Sharing Flag" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory" +* ^expansion.contains[=].code = #FGM +* ^expansion.contains[=].display = "Female Genital Mutilation Flag" \ No newline at end of file diff --git a/input/fsh/valuesets/RA-FlagCategory.fsh b/input/fsh/valuesets/RA-FlagCategory.fsh deleted file mode 100644 index b62ba33..0000000 --- a/input/fsh/valuesets/RA-FlagCategory.fsh +++ /dev/null @@ -1,18 +0,0 @@ -ValueSet: RA-FlagCategory -Id: RA-FlagCategory -Title: "ReasonableAdjustmentsFlagCategory" -Description: "A ValueSet to identify the type/category of Flag." - -* ^name = "ReasonableAdjustmentsFlagCategory" -* ^url = "https://fhir.nhs.uk/England/ValueSet/RA-FlagCategory" -* ^version = "0.1.0" -* ^status = #draft -* ^date = "2024-02-14" -* ^experimental = false - -* insert NHSEngland-PublisherContactCopyright - -* ^expansion.timestamp = "2024-02-14T12:00:00+00:00" -* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory" -* ^expansion.contains[=].code = #NRAF -* ^expansion.contains[=].display = "National Reasonable Adjustments Flag" \ No newline at end of file diff --git a/input/fsh/valuesets/RA-ProvenanceRole.fsh b/input/fsh/valuesets/RA-ProvenanceRole.fsh index 207b113..2d9c1ac 100644 --- a/input/fsh/valuesets/RA-ProvenanceRole.fsh +++ b/input/fsh/valuesets/RA-ProvenanceRole.fsh @@ -458,7 +458,6 @@ Description: "A ValueSet to identify the role in which someone recording provena * $ParticipationType#INF * $ParticipationType#IRCP * $ParticipationType#LA -* $ParticipationType#IRCP * $ParticipationType#TRC * $ParticipationType#WIT * DCM#110150 diff --git a/input/images-source/add-record-sequence.plantuml b/input/images-source/add-record-sequence.plantuml new file mode 100644 index 0000000..9f82521 --- /dev/null +++ b/input/images-source/add-record-sequence.plantuml @@ -0,0 +1,58 @@ +@startuml + +skinparam actorStyle hollow + +actor "Practitioner" as pra +actor "Patient" as pat +participant "FHIR API" as api +entity "Consent" as con +entity "Master Flag" as mas +entity "Adjustment Flag" as adj +entity "Condition" as cod + +pra -> pat : Examine patient +pra -> pat : Suggest adjustments +pra <-- pat : Provide consent\nto share information + +pra -> api : Record adjustment record + +api -> con : Create/update resource +con -> con : Validate +alt Validation failed +api <-- con : return +api <- api : rollback +api -> pra : OperationOutcome indicating failure +end +api <-- con : return + +api -> mas : Create/update resource +mas -> mas : Validate +alt Validation failed +api <-- mas : return +api <- api : rollback +api -> pra : OperationOutcome indicating failure +end + +api -> adj : Create/update resource +adj -> adj : Validate +alt Validation failed +api <-- adj : return +api <- api : rollback +api -> pra : OperationOutcome indicating failure +end + +alt Condition also to be recorded +api -> cod : Create/update resource +cod -> cod : Validate +alt Validation failed +api <-- cod : return +api <- api : rollback +api -> pra : OperationOutcome indicating failure +end +api <-- cod : return +pra <-- api : OperationOutcome +end + + +@enduml + diff --git a/input/images-source/add-record-usecase.plantuml b/input/images-source/add-record-usecase.plantuml new file mode 100644 index 0000000..298b107 --- /dev/null +++ b/input/images-source/add-record-usecase.plantuml @@ -0,0 +1,21 @@ +@startuml + +skinparam actorStyle awesome + +actor Practitioner as pra +package Consenter { + actor "Patient Advocate" as pad + actor Patient as pat +} + +usecase "Consent to share information" as CON +usecase "Add Reasonable Adjustment record" as ADD + +pat -- CON +pad -- CON +pra -- CON +pra -- ADD + +CON <.. ADD : include + +@enduml diff --git a/input/images/add-record-workflow.bpmn b/input/images/add-record-workflow.bpmn new file mode 100644 index 0000000..0e90358 --- /dev/null +++ b/input/images/add-record-workflow.bpmn @@ -0,0 +1,157 @@ + + + + + + Consent granted? + + + + + + + Activity_0dhbqc4 + Event_0l5456e + + + Gateway_1171opp + Event_1u82otg + Activity_1s5y9xm + + + Event_03tz7z4 + Activity_1lxn6f7 + Activity_00yhqnr + + + + Flow_0ws129z + + + + + Flow_1e2o9um + Flow_1jisczp + + + Flow_0ws129z + Flow_1y1ffd0 + + + + + + + + Flow_1y1ffd0 + Flow_1vk7ynh + + + Flow_1vk7ynh + Flow_14fqz6o + Flow_1e2o9um + + + Flow_14fqz6o + + + Flow_1jisczp + Flow_0yxt3zu + + + Flow_0yxt3zu + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/input/images/add-record-workflow.svg b/input/images/add-record-workflow.svg new file mode 100644 index 0000000..359bb05 --- /dev/null +++ b/input/images/add-record-workflow.svg @@ -0,0 +1,4 @@ + + + +Consent to TreatmentPractitionerPatientAPIRecord adjustment and/or conditionExamine patient and suggest adjustmentsUpdate ResourcesProvide consentYesNoConsent granted? \ No newline at end of file diff --git a/input/pagecontent/add-ra-record.md b/input/pagecontent/add-ra-record.md deleted file mode 100644 index fd07b6a..0000000 --- a/input/pagecontent/add-ra-record.md +++ /dev/null @@ -1,64 +0,0 @@ - -### Summary - -

Patient wishes to record Consent. Practitioner records Consent information

- -#### Workflow - -

-A patient presents to be examined by a practitioner. The practitioner performs an examination and determines that a condition and/or an adjustment should be recorded. If the patient does not consent, no details are recorded. If the patient consents, then the condition and/or the adjustment is recorded. -

- -
- Activity created in draw.io! -
- -#### Condition Recorded - -

-Pre-condition: Patient details have been retrieved/validated. -

- -

-The practioner decides to record a condition. This could be done with individual calls to the required endpoints, or can be done in a single transaction Bundle. A transaction Bundle can help with data integrity requirements and also help to reduce required http calls. -

- -
- Activity created in draw.io! -
- -#### Example 1 - -> Pre-condition: A patient has previously had a master flag associated with them, and no adjustment is to be recorded - -[Single Condition POST](todo.html) - -#### Example 2 - -

-The first example given here shows the use of a transaction to add all required resources to add a Consent, a Condition and associated adjustments (Flag) resources for a patient. - -The master Flag and condition Flag (and associated Condition) resources are included and have the Provence resource as contained resources. This example could be modified to include a new condition just by adding the new Condition and Flag resource as this transaction is fully idempotent. The next example will show this. -

- -[Example Transaction: Add condition resources in a Transaction](Bundle-AddConditionTransactionExample1.html). - -

-NOTE: TODO discuss how provenace could be added after (i.e. not contained), but not in a transaction. If provence needed to be linked to a versioned resource (seems reasonable), this isn't supported https://build.fhir.org/bundle.html#references. Also see https://chat.fhir.org/#narrow/stream/179166-implementers/topic/Provenance.20in.20a.20bundle. Using an etag would work. If the provenance was created after and took the etag of the resource from the response, which should come back for each resource in transaction, the provenance.target could then be set to a versioned url (assuming this was required). Benefits of this would be ability to expand the scope of the provenace. If it really doesn't have a lifetime outside of the resource, contained is probably tidier but definetly less flexible. More discussion here ttps://chat.fhir.org/#narrow/stream/179166-implementers/topic/Transaction.20Bundle.20with.20Provenance/near/402326516. -

- -

-The second example given here simply adds conditions to the previous transaction resource to demonstrate the ability to add new conditions to the same data structure and reply in an idempotent way. The request entry in the transaction Bundle for the second condition uses the uuid from the fullUrl on the Bundle entry to use in the URL for the PUT method. The first uses the patient uuid as a search parameter for the PUT. A uuid would be the preferred method to construct the uuid for the fullUrl in the Bundle entry, so this should be a reasonable example. This example is just to demonstrate ReSTful capabilities of the FHIR spec. -

- -[Example Transaction: Additional condition and flag added to previous Transaction](Bundle-AddConditionTransactionExample2.html). - -

-TODO: maybe cover other ways of doing this, all POST's, if-match, X-provenance, batch tranaction etc... -

- -### Relevant Documentation - -[Bundles](https://hl7.org/fhir/r4/bundle.html) -[Transactions](https://hl7.org/fhir/r4/http.html#transaction) -[Upsert](https://hl7.org/fhir/r4/http.html#upsert) diff --git a/input/pagecontent/add-reasonable-adjustment-record.md b/input/pagecontent/add-reasonable-adjustment-record.md new file mode 100644 index 0000000..b2441bd --- /dev/null +++ b/input/pagecontent/add-reasonable-adjustment-record.md @@ -0,0 +1,126 @@ +### Overview + +Patient consent must be obtained before recording any adjustment. See [Consent to Share Information](consent-to-share-information.html) for details. + +Key purposes of the Reasonable Adjustment Flag include: + +* identifying a patient may require services to be adjusted +* identifying when patients with specific impairments present for care (learning impairments, behavioural impairments or any other impairment in line with the disability protected characteristic of the [Equality Act (2010)](https://www.gov.uk/guidance/equality-act-2010-guidance)). +* ensuring the key information is shared consistently across health and care – wherever the patient is treated. +* ensuring that the information is clearly visible in clinical systems + +### Usecase + +After obtaining consent from a patient, an adjustment flag may be created. A condition may also optionally be recorded. If an adjustment flag exists, there must be an additional flag created, designated as the master flag, to indicate that there are reasonable adjustments recorded for the patient. + +
+ + {%include add-record-usecase.svg%} + +
+ +#### Scenarios + +```gherkin +Given a practitioner has received consent from a patient +And the consent is for reasonable adjustments +When a practioner adds an adjustment flag +Then an additional flag designated as a master flag will be created + +Given a practitioner has received consent from a patient +And the consent is for reasonable adjustments +When a practioner adds an master flag +Then the details of who created the master flag will be recorded +And the flag will be linked to the patient + +Given a practitioner has received consent from a patient +And the consent is for reasonable adjustments +When a practioner adds an master flag +Then the category of the flag will indicate that it is reasonable adjustments + +Given a practitioner has received consent from a patient +And the consent is for reasonable adjustments +When a practioner adds an master flag +Then the code of the flag will indicate that it is reasonable adjustments + +Given a practitioner has received consent from a patient +And the consent is for reasonable adjustments +When a practioner adds an adjustment flag +Then the details of who created the adjustment flag will be recorded +And the flag will be linked to the patient + +Given a practitioner has received consent from a patient +And the consent is for reasonable adjustments +When a practioner adds an adjustment flag +Then the category of the flag will contain a code that indicates it is reasonable adjustments +And the cateogry of the flag will contain a code that indicates which adjustment category the flag is + +Given a practitioner has received consent from a patient +And the consent is for reasonable adjustments +When a practioner adds an adjustment flag +Then the code of the flag will be a SNOMED-CT concept that provide details of the adjustment + +Given a practitioner has received consent from a patient +And the consent is for reasonable adjustments +When a practioner adds an adjustment flag +Then a condition resource may also be created +And the details of who created the condition will be recorded +And the condition will be linked to the patient + +Given a practitioner has received consent from a patient +And the consent is for reasonable adjustments +When a practioner adds an condition +Then the category of the condition will indicate which catgory the condition is + +Given a practitioner has received consent from a patient +And the consent is for reasonable adjustments +When a practioner adds an condition +Then the code of the condition will be a SNOMED-CT concept representing an impairment/condition + +Given a practitioner has received consent from a patient +And the consent is for reasonable adjustments +When a practioner adds an adjustment flag +Then a freetext note may be added to the flag +``` + +### Workflow + +A practitioner performs an examination and determines that a condition and/or an adjustment should be recorded. If the patient does not consent, no details are recorded. If the patient consents, then the adjustment is recorded, and optionally the condition as well. + +
+ +
+ +### System Interactions + +The practioner decides to record a condition with the patients consent. This could be done with individual calls to the required endpoints, or can be done in a single transaction Bundle. A transaction Bundle can help with data integrity requirements and also help to reduce required http calls. + +
+ {%include add-record-sequence.svg%} +
+ +### Examples + +* [Patient example](Patient-PatientExample1.html) + +The following set of examples constitute the individual associated resources with the intial addition of a flag for Reasonable Adjustment. This includes the Consent resource where the patient has agreed to share information. Also a master Flag resource, the adjustment Flag resource and the associated Condition resource. All resources have contained provenances. + +A transaction Bundle is also given that allows these resources (plus the patient) to be entered in an atomic traction. It uses PUTs, where in the case of an intial update, it may be done as a [conditional update](https://www.hl7.org/fhir/http.html#cond-update) + +* [Consent](Consent-ConsentExample1.html) +* [Master flag](Flag-MasterFlagExample1.html) +* [Adjustment flag 1](Flag-AdjustmentFlagExample1.html) +* [Condition 1](Condition-ConditionExample1.html) +* [Transaction Bundle 1](Bundle-AddConditionTransactionExample1.html) + +The following set of examples are for the same patient, and constitute an addition flag and condition. The transaction Bundle here illustates an idempotent update by simply adding the new resources to the first transaction Bundle. + +* [Adjustment flag 2](Flag-AdjustmentFlagExample2.html) +* [Condition 2](Condition-ConditionExample2.html) +* [Transaction Bundle 2](Bundle-AddConditionTransactionExample2.html) + +### Relevant Documentation + +[Bundles](https://hl7.org/fhir/r4/bundle.html) +[Transactions](https://hl7.org/fhir/r4/http.html#transaction) +[Upsert](https://hl7.org/fhir/r4/http.html#upsert) \ No newline at end of file diff --git a/input/pagecontent/consent-to-share-information.md b/input/pagecontent/consent-to-share-information.md index 509c711..c44c45c 100644 --- a/input/pagecontent/consent-to-share-information.md +++ b/input/pagecontent/consent-to-share-information.md @@ -8,7 +8,7 @@ In some cases consent can also be obtained from a lasting power of attorney for As an example of best practice, existing guiduance using a 'best interest decision' can be found in the defintion for [consent to treatment](https://www.nhs.uk/conditions/consent-to-treatment). This describe cases where a patient advocate may provide consent when the patient [does not have the capacity to do so](https://www.nhs.uk/conditions/consent-to-treatment/capacity). -### Use Case Illustration +### Use Case As capacity can sometimes change over time, it should be assessed at the time that consent is required. This will usually be done by an appropriately trained and experienced healthcare professional (i.e. Practitioner) who's either: @@ -18,12 +18,39 @@ As capacity can sometimes change over time, it should be assessed at the time th If the patient does not have the capacity to consent, then a patient advocate may provide consent for them.
- -{%include consent-usecase.svg%} - + {%include consent-usecase.svg%}
-### Workflow Illustration +#### Scenarios + +```gherkin +Given a practitioner has received consent from a patient +And the consent is for reasonable adjustments +When a practioner records the consent +Then details of who obtained the consent will be recorded +And the consent will be linked to the patient + +Given a patient or their advocate provides consent +And the consent is for reasonable adjustments +When a practioner records the consent +Then consent will be marked as active +And the consent will be linked to the patient + +Given a patient or their advocate does not provide consent +And the consent is for reasonable adjustments +When a practioner records the consent +Then consent will be marked as inactive +And the consent will be linked to the patient + +Given a patient or their advocate revokes consent +And the consent is for reasonable adjustments +When a practioner records the consent +Then consent will be marked as inactive +And all flags will be deleted +And all conditions will be deleted +``` + +### Workflow If consent is not given, then this will be recorded. If there was previous consent to record adjustments, but the consent is then revoked, then all adjustment records must also be removed. diff --git a/input/pagecontent/server-examples.md b/input/pagecontent/server-examples.md index e99f1c4..224a128 100644 --- a/input/pagecontent/server-examples.md +++ b/input/pagecontent/server-examples.md @@ -34,13 +34,13 @@ All examples are available in a [Postman collection](assets/postman/postman_coll ### Examples -The examples here describe the API options related to the workflow given in the use case [Add RA Record](add-ra-record.html). +The examples here describe the API options related to the workflow given in the use case [Add RA Record](add-reasonable-adjustment-record.html). See the [Data Model](data-model.html) for details on the relationships between the resources. #### Add RA Record -This section provides examples for those given in the use case [Add RA Record](add-ra-record.html). +This section provides examples for those given in the use case [Add RA Record](add-reasonable-adjustment-record.html). ##### Example 1 diff --git a/sushi-config.yaml b/sushi-config.yaml index 60b8469..e2dba0e 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -80,7 +80,7 @@ menu: Data Model: data-model.html Use Cases: Consent to Share Information: consent-to-share-information.html - Add Reasonable Adjustment Record: add-ra-record.html + Add Reasonable Adjustment Record: add-reasonable-adjustment-record.html Retrieve Reasonable Adjustment Record: retrieve-ra-record.html Remove Reasonable Adjustment Record: remove-ra-record.html Server Examples: server-examples.html From 66e68347dd6897b5e8603afe3df1aaabf2b59eca Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Tue, 12 Mar 2024 15:27:26 +0000 Subject: [PATCH 128/136] Feature/retrieve record updates and examples (#20) * generalised flag profiles * generalised flag profiles * generalised flag profiles * generalised flag profiles * generalise condition, fix refs and names * profiles generalised, apply profiles to examples * examples validating against profiles * cpis and fgm examples, all validating * addtional example pages added * fix cpis consent category example * fix flag code for cpis and fgm * added careconnect deps, tidy diagrams, include contact via yml * licence section removed, redundant if using ip-statements * slight mod to intro * update retrieve record page to follow new format * updates as per Vicky's comments * updates as per Vicky's comments --------- Co-authored-by: Declan Kieran --- ...0005-add-ra-record-transaction-example.md} | 0 ...0006-add-ra-record-transaction-example.md} | 0 ...0007-add-ra-record-transaction-example.md} | 0 input/fsh/aliases.fsh | 13 +- .../fsh/codesystem/CPIS-ConditionCategory.fsh | 17 + input/fsh/codesystem/CPIS-ConditionCode.fsh | 17 + input/fsh/codesystem/CPIS-ConsentPurpose.fsh | 17 + input/fsh/codesystem/CPIS-FlagCategory.fsh | 17 + .../fsh/codesystem/FGM-ConditionCategory.fsh | 17 + input/fsh/codesystem/FGM-ConditionCode.fsh | 17 + input/fsh/codesystem/FGM-ConsentPurpose.fsh | 17 + input/fsh/codesystem/FGM-FlagCategory.fsh | 17 + .../{RA-ProxyRole.fsh => FlagProxyRole.fsh} | 12 +- input/fsh/codesystem/PatientFlagCategory.fsh | 4 +- input/fsh/codesystem/RA-ConditionCategory.fsh | 6 +- input/fsh/codesystem/RA-ConditionCode.fsh | 4 +- input/fsh/codesystem/RA-ConsentPurpose.fsh | 6 +- ...stmentCategory.fsh => RA-FlagCategory.fsh} | 12 +- ...AddRARecordTransactionExample1-bundle.fsh} | 11 +- ...AddRARecordTransactionExample2-bundle.fsh} | 15 +- .../examples/0012-RemoveRARecordExample.fsh | 5 +- ...xample1.fsh => 0013-RAConsentExample1.fsh} | 11 +- input/fsh/examples/0014-PatientExample1.fsh | 7 +- .../examples/0015-RAPatientFlagExample1.fsh | 31 + ...agExample1.fsh => 0016-RAFlagExample1.fsh} | 11 +- ...mple1.fsh => 0017-RAConditionExample1.fsh} | 11 +- ...agExample2.fsh => 0018-RAFlagExample2.fsh} | 11 +- ...mple2.fsh => 0019-RAConditionExample2.fsh} | 13 +- .../fsh/examples/0020-CPISConsentExample.fsh | 28 + .../examples/0021-CPISPatientFlagExample1.fsh | 21 + input/fsh/examples/0022-CPISFlagExample1.fsh | 23 + .../examples/0023-CPISConditionExample1.fsh | 20 + ...ddCPISRecordTransactionExample1-bundle.fsh | 25 + input/fsh/examples/0025-FGMConsentExample.fsh | 28 + ...e1.fsh => 0026-FGMPatientFlagExample1.fsh} | 13 +- input/fsh/examples/0027-FGMFlagExample1.fsh | 23 + .../examples/0028-FGMConditionExample1.fsh | 20 + ...AddFGMRecordTransactionExample1-bundle.fsh | 25 + .../extensions/Extension-AdjustmentNotes.fsh | 2 +- .../Extension-ConsentCreateSummary.fsh | 2 +- .../Extension-RemoveCreateSummary.fsh | 2 +- input/fsh/profiles/FlagCondition.fsh | 32 + .../{RA-Consent.fsh => FlagConsent.fsh} | 21 +- input/fsh/profiles/FlagProvenance.fsh | 18 + input/fsh/profiles/MasterFlag.fsh | 33 - input/fsh/profiles/PatientFlag.fsh | 32 + input/fsh/profiles/ProgrammeFlag.fsh | 32 + input/fsh/profiles/RA-AdjustmentFlag.fsh | 32 - input/fsh/profiles/RA-Condition.fsh | 24 - input/fsh/profiles/RA-Provenance.fsh | 19 - ...Copyright.fsh => NHSEngland-Copyright.fsh} | 18 +- input/fsh/searchparameter/FlagCategory.fsh | 4 +- input/fsh/searchparameter/FlagCode.fsh | 4 +- input/fsh/searchparameter/FlagDetail.fsh | 6 +- input/fsh/valuesets/CPIS-FlagCode.fsh | 17 + input/fsh/valuesets/FGM-FlagCode.fsh | 17 + ...Category.fsh => FlagConditionCategory.fsh} | 20 +- ...onditionCode.fsh => FlagConditionCode.fsh} | 44 +- input/fsh/valuesets/FlagConsentPurpose.fsh | 26 + ...venanceRole.fsh => FlagProvenanceRole.fsh} | 12 +- .../{RA-ProxyRole.fsh => FlagProxyRole.fsh} | 20 +- input/fsh/valuesets/PatientFlagCategory.fsh | 6 +- ...Category.fsh => ProgrammeFlagCategory.fsh} | 46 +- input/fsh/valuesets/ProgrammeFlagCode.fsh | 17 + input/fsh/valuesets/RA-ConsentPurpose.fsh | 18 - input/fsh/valuesets/RA-FlagCode.fsh | 6 +- .../add-record-sequence.plantuml | 32 +- input/images-source/consent-sequence.plantuml | 11 +- input/images-source/data-model.plantuml | 14 +- .../retrieve-record-sequence.plantuml | 15 + .../retrieve-record-usecase.plantuml | 21 + input/images/add-record-workflow.bpmn | 60 +- input/images/add-record-workflow.svg | 2 +- input/images/retrieve-record-workflow.bpmn | 190 ++ input/images/retrieve-record-workflow.svg | 4 + .../add-reasonable-adjustment-record.md | 41 +- input/pagecontent/additional-examples.md | 19 + .../consent-to-share-information.md | 4 +- input/pagecontent/data-model.md | 50 +- input/pagecontent/index.md | 33 +- ...=> remove-reasonable-adjustment-record.md} | 0 input/pagecontent/retrieve-ra-record.md | 42 - .../retrieve-reasonable-adjustment-record.md | 115 ++ input/pagecontent/server-examples.md | 16 +- .../CareConnect-SDSJobRoleName-1.json | 1593 ----------------- sushi-config.yaml | 34 +- 86 files changed, 1314 insertions(+), 2057 deletions(-) rename input/ci/queries/{0005-add-condition-transaction-example.md => 0005-add-ra-record-transaction-example.md} (100%) rename input/ci/queries/{0006-add-condition-transaction-example.md => 0006-add-ra-record-transaction-example.md} (100%) rename input/ci/queries/{0007-add-condition-transaction-example.md => 0007-add-ra-record-transaction-example.md} (100%) create mode 100644 input/fsh/codesystem/CPIS-ConditionCategory.fsh create mode 100644 input/fsh/codesystem/CPIS-ConditionCode.fsh create mode 100644 input/fsh/codesystem/CPIS-ConsentPurpose.fsh create mode 100644 input/fsh/codesystem/CPIS-FlagCategory.fsh create mode 100644 input/fsh/codesystem/FGM-ConditionCategory.fsh create mode 100644 input/fsh/codesystem/FGM-ConditionCode.fsh create mode 100644 input/fsh/codesystem/FGM-ConsentPurpose.fsh create mode 100644 input/fsh/codesystem/FGM-FlagCategory.fsh rename input/fsh/codesystem/{RA-ProxyRole.fsh => FlagProxyRole.fsh} (67%) rename input/fsh/codesystem/{RA-AdjustmentCategory.fsh => RA-FlagCategory.fsh} (68%) rename input/fsh/examples/{0003-AddConditionTransactionExample1-bundle.fsh => 0003-AddRARecordTransactionExample1-bundle.fsh} (78%) rename input/fsh/examples/{0004-AddConditionTransactionExample2-bundle.fsh => 0004-AddRARecordTransactionExample2-bundle.fsh} (78%) rename input/fsh/examples/{0013-ConsentExample1.fsh => 0013-RAConsentExample1.fsh} (81%) create mode 100644 input/fsh/examples/0015-RAPatientFlagExample1.fsh rename input/fsh/examples/{0016-AdjustmentFlagExample1.fsh => 0016-RAFlagExample1.fsh} (77%) rename input/fsh/examples/{0017-ConditionExample1.fsh => 0017-RAConditionExample1.fsh} (66%) rename input/fsh/examples/{0018-AdjustmentFlagExample2.fsh => 0018-RAFlagExample2.fsh} (76%) rename input/fsh/examples/{0019-ConditionExample2.fsh => 0019-RAConditionExample2.fsh} (67%) create mode 100644 input/fsh/examples/0020-CPISConsentExample.fsh create mode 100644 input/fsh/examples/0021-CPISPatientFlagExample1.fsh create mode 100644 input/fsh/examples/0022-CPISFlagExample1.fsh create mode 100644 input/fsh/examples/0023-CPISConditionExample1.fsh create mode 100644 input/fsh/examples/0024-AddCPISRecordTransactionExample1-bundle.fsh create mode 100644 input/fsh/examples/0025-FGMConsentExample.fsh rename input/fsh/examples/{0015-MasterFlagExample1.fsh => 0026-FGMPatientFlagExample1.fsh} (69%) create mode 100644 input/fsh/examples/0027-FGMFlagExample1.fsh create mode 100644 input/fsh/examples/0028-FGMConditionExample1.fsh create mode 100644 input/fsh/examples/0029-AddFGMRecordTransactionExample1-bundle.fsh create mode 100644 input/fsh/profiles/FlagCondition.fsh rename input/fsh/profiles/{RA-Consent.fsh => FlagConsent.fsh} (62%) create mode 100644 input/fsh/profiles/FlagProvenance.fsh delete mode 100644 input/fsh/profiles/MasterFlag.fsh create mode 100644 input/fsh/profiles/PatientFlag.fsh create mode 100644 input/fsh/profiles/ProgrammeFlag.fsh delete mode 100644 input/fsh/profiles/RA-AdjustmentFlag.fsh delete mode 100644 input/fsh/profiles/RA-Condition.fsh delete mode 100644 input/fsh/profiles/RA-Provenance.fsh rename input/fsh/rulesets/{NHSEngland-PublisherContactCopyright.fsh => NHSEngland-Copyright.fsh} (52%) create mode 100644 input/fsh/valuesets/CPIS-FlagCode.fsh create mode 100644 input/fsh/valuesets/FGM-FlagCode.fsh rename input/fsh/valuesets/{RA-ConditionCategory.fsh => FlagConditionCategory.fsh} (63%) rename input/fsh/valuesets/{RA-ConditionCode.fsh => FlagConditionCode.fsh} (69%) create mode 100644 input/fsh/valuesets/FlagConsentPurpose.fsh rename input/fsh/valuesets/{RA-ProvenanceRole.fsh => FlagProvenanceRole.fsh} (99%) rename input/fsh/valuesets/{RA-ProxyRole.fsh => FlagProxyRole.fsh} (75%) rename input/fsh/valuesets/{RA-AdjustmentCategory.fsh => ProgrammeFlagCategory.fsh} (68%) create mode 100644 input/fsh/valuesets/ProgrammeFlagCode.fsh delete mode 100644 input/fsh/valuesets/RA-ConsentPurpose.fsh create mode 100644 input/images-source/retrieve-record-sequence.plantuml create mode 100644 input/images-source/retrieve-record-usecase.plantuml create mode 100644 input/images/retrieve-record-workflow.bpmn create mode 100644 input/images/retrieve-record-workflow.svg create mode 100644 input/pagecontent/additional-examples.md rename input/pagecontent/{remove-ra-record.md => remove-reasonable-adjustment-record.md} (100%) delete mode 100644 input/pagecontent/retrieve-ra-record.md create mode 100644 input/pagecontent/retrieve-reasonable-adjustment-record.md delete mode 100644 input/resources/CareConnect-SDSJobRoleName-1.json diff --git a/input/ci/queries/0005-add-condition-transaction-example.md b/input/ci/queries/0005-add-ra-record-transaction-example.md similarity index 100% rename from input/ci/queries/0005-add-condition-transaction-example.md rename to input/ci/queries/0005-add-ra-record-transaction-example.md diff --git a/input/ci/queries/0006-add-condition-transaction-example.md b/input/ci/queries/0006-add-ra-record-transaction-example.md similarity index 100% rename from input/ci/queries/0006-add-condition-transaction-example.md rename to input/ci/queries/0006-add-ra-record-transaction-example.md diff --git a/input/ci/queries/0007-add-condition-transaction-example.md b/input/ci/queries/0007-add-ra-record-transaction-example.md similarity index 100% rename from input/ci/queries/0007-add-condition-transaction-example.md rename to input/ci/queries/0007-add-ra-record-transaction-example.md diff --git a/input/fsh/aliases.fsh b/input/fsh/aliases.fsh index 5fa43d2..23d5ba5 100644 --- a/input/fsh/aliases.fsh +++ b/input/fsh/aliases.fsh @@ -12,10 +12,13 @@ Alias: $ParticipationFunction = http://terminology.hl7.org/CodeSystem/v3-Partici Alias: $ParticipationType = http://terminology.hl7.org/CodeSystem/v3-ParticipationType Alias: $extra-security-role-type = http://terminology.hl7.org/CodeSystem/extra-security-role-type Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 -Alias: $ValueSetRAConditionCategory = https://fhir.nhs.uk/England/ValueSet/RA-ConditionCategory -Alias: $ValueSetRAConditionCode = https://fhir.nhs.uk/England/ValueSet/RA-ConditionCode Alias: $ValueSetPatientFlagCategory = https://fhir.nhs.uk/England/ValueSet/PatientFlagCategory -Alias: $ValueSetRAAdjustmentCategory = https://fhir.nhs.uk/England/ValueSet/RA-AdjustmentCategory -Alias: $ValueSetRAFlagCode = https://fhir.nhs.uk/England/ValueSet/RA-FlagCode +Alias: $ValueSetProgrammeFlagCategory = https://fhir.nhs.uk/England/ValueSet/ProgrammeFlagCategory Alias: $ExtensionFlagDetail = http://hl7.org/fhir/StructureDefinition/flag-detail -Alias: $ValueSetRAProvenanceRole = https://fhir.nhs.uk/England/ValueSet/RA-ProvenanceRole +Alias: $ValueSetFlagProvenanceRole = https://fhir.nhs.uk/England/ValueSet/FlagProvenanceRole +Alias: $ValueSetRAFlagCode = https://fhir.nhs.uk/England/ValueSet/RA-FlagCode +Alias: $ValueSetCPISFlagCode = https://fhir.nhs.uk/England/ValueSet/CPIS-FlagCode +Alias: $ValueSetFGMFlagCode = https://fhir.nhs.uk/England/ValueSet/FGM-FlagCode +Alias: $ValueSetProgrammeFlagCode = https://fhir.nhs.uk/England/ValueSet/ProgrammeFlagCode +Alias: $ValueSetFlagConditionCategory = https://fhir.nhs.uk/England/ValueSet/FlagConditionCategory +Alias: $ValueSetFlagConditionCode = https://fhir.nhs.uk/England/ValueSet/FlagConditionCode \ No newline at end of file diff --git a/input/fsh/codesystem/CPIS-ConditionCategory.fsh b/input/fsh/codesystem/CPIS-ConditionCategory.fsh new file mode 100644 index 0000000..eb78b9d --- /dev/null +++ b/input/fsh/codesystem/CPIS-ConditionCategory.fsh @@ -0,0 +1,17 @@ +CodeSystem: CPIS-ConditionCategory +Id: CPIS-ConditionCategory +Title: "CPIS Condition Category" +Description: "A CodeSystem to identify the category of a condition within CPIS." + +* ^name = "CPISConditionCategory" +* ^url = "https://fhir.nhs.uk/England/CodeSystem/CPIS-ConditionCategory" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^experimental = false + +* insert NHSEngland-Copyright + +* ^caseSensitive = true +* ^content = #complete +* #cpis-example-condition-category "CPIS example condition category" \ No newline at end of file diff --git a/input/fsh/codesystem/CPIS-ConditionCode.fsh b/input/fsh/codesystem/CPIS-ConditionCode.fsh new file mode 100644 index 0000000..6755f74 --- /dev/null +++ b/input/fsh/codesystem/CPIS-ConditionCode.fsh @@ -0,0 +1,17 @@ +CodeSystem: CPIS-ConditionCode +Id: CPIS-ConditionCode +Title: "CPIS Condition Code" +Description: "A CodeSystem to identify the SNOMED-CT concept representing an Impairment recorded as part of CPIS" + +* ^name = "CPISConditionCode" +* ^url = "https://fhir.nhs.uk/England/CodeSystem/CPIS-ConditionCode" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^experimental = false + +* insert NHSEngland-Copyright + +* ^caseSensitive = true +* ^content = #complete +* #1 "CPIS example condition code" \ No newline at end of file diff --git a/input/fsh/codesystem/CPIS-ConsentPurpose.fsh b/input/fsh/codesystem/CPIS-ConsentPurpose.fsh new file mode 100644 index 0000000..f8b4601 --- /dev/null +++ b/input/fsh/codesystem/CPIS-ConsentPurpose.fsh @@ -0,0 +1,17 @@ +CodeSystem: CPIS-ConsentPurpose +Id: CPIS-ConsentPurpose +Title: "CPIS Consent Purpose" +Description: "A CodeSystem to identify the purpose of the consent given within CPIS" + +* ^name = "CPISConsentPurpose" +* ^url = "https://fhir.nhs.uk/England/CodeSystem/CPIS-ConsentPurpose" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^experimental = false + +* insert NHSEngland-Copyright + +* ^caseSensitive = true +* ^content = #complete +* #CPISCONSENT "CPIS - Consent to record CPIS flags" diff --git a/input/fsh/codesystem/CPIS-FlagCategory.fsh b/input/fsh/codesystem/CPIS-FlagCategory.fsh new file mode 100644 index 0000000..b0b475d --- /dev/null +++ b/input/fsh/codesystem/CPIS-FlagCategory.fsh @@ -0,0 +1,17 @@ +CodeSystem: CPIS-FlagCategory +Id: CPIS-FlagCategory +Title: "CPIS Flag Category" +Description: "A CodeSystem containing CPIS flag categories" + +* ^name = "CPISFlagCategory" +* ^url = "https://fhir.nhs.uk/England/CodeSystem/CPIS-FlagCategory" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^experimental = false + +* insert NHSEngland-Copyright + +* ^caseSensitive = true +* ^content = #complete +* #001 "Example CPIS category" diff --git a/input/fsh/codesystem/FGM-ConditionCategory.fsh b/input/fsh/codesystem/FGM-ConditionCategory.fsh new file mode 100644 index 0000000..fcde3b0 --- /dev/null +++ b/input/fsh/codesystem/FGM-ConditionCategory.fsh @@ -0,0 +1,17 @@ +CodeSystem: FGM-ConditionCategory +Id: FGM-ConditionCategory +Title: "FGM Condition Category" +Description: "A CodeSystem to identify the category of a condition within FGM." + +* ^name = "FGMConditionCategory" +* ^url = "https://fhir.nhs.uk/England/CodeSystem/FGM-ConditionCategory" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^experimental = false + +* insert NHSEngland-Copyright + +* ^caseSensitive = true +* ^content = #complete +* #fgm-example-condition-category "FGM example condition category" \ No newline at end of file diff --git a/input/fsh/codesystem/FGM-ConditionCode.fsh b/input/fsh/codesystem/FGM-ConditionCode.fsh new file mode 100644 index 0000000..6e635e9 --- /dev/null +++ b/input/fsh/codesystem/FGM-ConditionCode.fsh @@ -0,0 +1,17 @@ +CodeSystem: FGM-ConditionCode +Id: FGM-ConditionCode +Title: "FGM Condition Code" +Description: "A CodeSystem to identify the SNOMED-CT concept representing an Impairment recorded as part of FGM" + +* ^name = "FGMConditionCode" +* ^url = "https://fhir.nhs.uk/England/CodeSystem/FGM-ConditionCode" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^experimental = false + +* insert NHSEngland-Copyright + +* ^caseSensitive = true +* ^content = #complete +* #1 "FGM example condition code" \ No newline at end of file diff --git a/input/fsh/codesystem/FGM-ConsentPurpose.fsh b/input/fsh/codesystem/FGM-ConsentPurpose.fsh new file mode 100644 index 0000000..a0a2b94 --- /dev/null +++ b/input/fsh/codesystem/FGM-ConsentPurpose.fsh @@ -0,0 +1,17 @@ +CodeSystem: FGM-ConsentPurpose +Id: FGM-ConsentPurpose +Title: "FGM Consent Purpose" +Description: "A CodeSystem to identify the purpose of the consent given within FGM" + +* ^name = "FGMConsentPurpose" +* ^url = "https://fhir.nhs.uk/England/CodeSystem/FGM-ConsentPurpose" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^experimental = false + +* insert NHSEngland-Copyright + +* ^caseSensitive = true +* ^content = #complete +* #FGMCONSENT "FGM - Consent to record FGM flags" diff --git a/input/fsh/codesystem/FGM-FlagCategory.fsh b/input/fsh/codesystem/FGM-FlagCategory.fsh new file mode 100644 index 0000000..9bc5be6 --- /dev/null +++ b/input/fsh/codesystem/FGM-FlagCategory.fsh @@ -0,0 +1,17 @@ +CodeSystem: FGM-FlagCategory +Id: FGM-FlagCategory +Title: "FGM Flag Category" +Description: "A CodeSystem containing FGM flag categories" + +* ^name = "FGMFlagCategory" +* ^url = "https://fhir.nhs.uk/England/CodeSystem/FGM-FlagCategory" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^experimental = false + +* insert NHSEngland-Copyright + +* ^caseSensitive = true +* ^content = #complete +* #001 "Example FGM category" diff --git a/input/fsh/codesystem/RA-ProxyRole.fsh b/input/fsh/codesystem/FlagProxyRole.fsh similarity index 67% rename from input/fsh/codesystem/RA-ProxyRole.fsh rename to input/fsh/codesystem/FlagProxyRole.fsh index c7d39a7..a0a8a10 100644 --- a/input/fsh/codesystem/RA-ProxyRole.fsh +++ b/input/fsh/codesystem/FlagProxyRole.fsh @@ -1,16 +1,16 @@ -CodeSystem: RA-ProxyRole -Id: RA-ProxyRole -Title: "Reasonable Adjustments Record Proxy Role" +CodeSystem: FlagProxyRole +Id: FlagProxyRole +Title: "NHSE Flag Proxy Role" Description: "A CodeSystem to identify the type/role of the proxy involved" -* ^name = "ReasonableAdjustmentsProxyRole" -* ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-ProxyRole" +* ^name = "FlagProxyRole" +* ^url = "https://fhir.nhs.uk/England/CodeSystem/FlagProxyRole" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" * ^experimental = false -* insert NHSEngland-PublisherContactCopyright +* insert NHSEngland-Copyright * ^caseSensitive = true * ^content = #complete diff --git a/input/fsh/codesystem/PatientFlagCategory.fsh b/input/fsh/codesystem/PatientFlagCategory.fsh index 3e6843e..42f532f 100644 --- a/input/fsh/codesystem/PatientFlagCategory.fsh +++ b/input/fsh/codesystem/PatientFlagCategory.fsh @@ -1,6 +1,6 @@ CodeSystem: PatientFlagCategory Id: PatientFlagCategory -Title: "Patient Flag Category" +Title: "NHSE Patient Flag Category" Description: "A CodeSystem to identify the type/category of Flag." * ^name = "PatientFlagCategory" @@ -10,7 +10,7 @@ Description: "A CodeSystem to identify the type/category of Flag." * ^date = "2024-02-14" * ^experimental = false -* insert NHSEngland-PublisherContactCopyright +* insert NHSEngland-Copyright * ^caseSensitive = true * ^content = #complete diff --git a/input/fsh/codesystem/RA-ConditionCategory.fsh b/input/fsh/codesystem/RA-ConditionCategory.fsh index d2d033c..8138785 100644 --- a/input/fsh/codesystem/RA-ConditionCategory.fsh +++ b/input/fsh/codesystem/RA-ConditionCategory.fsh @@ -1,7 +1,7 @@ CodeSystem: RA-ConditionCategory Id: RA-ConditionCategory -Title: "Reasonable Adjustments Record Condition Category" -Description: "A CodeSystem to identify the category of a condition.." +Title: "RA Condition Category" +Description: "A CodeSystem to identify the category of a condition within Reasonable Adjustments." * ^name = "ReasonableAdjustmentsConditionCategory" * ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCategory" @@ -10,7 +10,7 @@ Description: "A CodeSystem to identify the category of a condition.." * ^date = "2024-02-14" * ^experimental = false -* insert NHSEngland-PublisherContactCopyright +* insert NHSEngland-Copyright * ^caseSensitive = true * ^content = #complete diff --git a/input/fsh/codesystem/RA-ConditionCode.fsh b/input/fsh/codesystem/RA-ConditionCode.fsh index 99cecd5..ae01516 100644 --- a/input/fsh/codesystem/RA-ConditionCode.fsh +++ b/input/fsh/codesystem/RA-ConditionCode.fsh @@ -1,6 +1,6 @@ CodeSystem: RA-ConditionCode Id: RA-ConditionCode -Title: "Reasonable Adjustments Record Condition Code" +Title: "RA Record Condition Code" Description: "A CodeSystem to identify the SNOMED-CT concept representing an Impairment recorded as part of a Reasonable Adjustment" * ^name = "ReasonableAdjustmentsConditionCode" @@ -10,7 +10,7 @@ Description: "A CodeSystem to identify the SNOMED-CT concept representing an Imp * ^date = "2024-02-14" * ^experimental = false -* insert NHSEngland-PublisherContactCopyright +* insert NHSEngland-Copyright * ^caseSensitive = true * ^content = #complete diff --git a/input/fsh/codesystem/RA-ConsentPurpose.fsh b/input/fsh/codesystem/RA-ConsentPurpose.fsh index 6886f92..3bff03b 100644 --- a/input/fsh/codesystem/RA-ConsentPurpose.fsh +++ b/input/fsh/codesystem/RA-ConsentPurpose.fsh @@ -1,7 +1,7 @@ CodeSystem: RA-ConsentPurpose Id: RA-ConsentPurpose -Title: "Reasonable Adjustments Record Consent Purpose" -Description: "A CodeSystem to identify the purpose of the consent given" +Title: "RA Record Consent Purpose" +Description: "A CodeSystem to identify the purpose of the consent given within Reasonable Adjustments" * ^name = "ReasonableAdjustmentsConsentPurpose" * ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-ConsentPurpose" @@ -10,7 +10,7 @@ Description: "A CodeSystem to identify the purpose of the consent given" * ^date = "2024-02-14" * ^experimental = false -* insert NHSEngland-PublisherContactCopyright +* insert NHSEngland-Copyright * ^caseSensitive = true * ^content = #complete diff --git a/input/fsh/codesystem/RA-AdjustmentCategory.fsh b/input/fsh/codesystem/RA-FlagCategory.fsh similarity index 68% rename from input/fsh/codesystem/RA-AdjustmentCategory.fsh rename to input/fsh/codesystem/RA-FlagCategory.fsh index 7aabecc..7c6d86e 100644 --- a/input/fsh/codesystem/RA-AdjustmentCategory.fsh +++ b/input/fsh/codesystem/RA-FlagCategory.fsh @@ -1,16 +1,16 @@ -CodeSystem: RA-AdjustmentCategory -Id: RA-AdjustmentCategory -Title: "Reasonable Adjustments Record Adjustment Category" -Description: "A CodeSystem to identify the category of the Adjustment required" +CodeSystem: RA-FlagCategory +Id: RA-FlagCategory +Title: "RA Adjustment Category" +Description: "A CodeSystem to identify the category of the adjustments required" * ^name = "ReasonableAdjustmentsCategory" -* ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^url = "https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" * ^experimental = false -* insert NHSEngland-PublisherContactCopyright +* insert NHSEngland-Copyright * ^caseSensitive = true * ^content = #complete diff --git a/input/fsh/examples/0003-AddConditionTransactionExample1-bundle.fsh b/input/fsh/examples/0003-AddRARecordTransactionExample1-bundle.fsh similarity index 78% rename from input/fsh/examples/0003-AddConditionTransactionExample1-bundle.fsh rename to input/fsh/examples/0003-AddRARecordTransactionExample1-bundle.fsh index e8c9468..1cfc9bf 100644 --- a/input/fsh/examples/0003-AddConditionTransactionExample1-bundle.fsh +++ b/input/fsh/examples/0003-AddRARecordTransactionExample1-bundle.fsh @@ -1,5 +1,6 @@ -Instance: AddConditionTransactionExample1 +Instance: AddRARecordTransactionExample1 InstanceOf: Bundle +Title: "RA Example of adding a record with a Transaction" Usage: #example * type = #transaction * entry[0].fullUrl = "urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" @@ -7,18 +8,18 @@ Usage: #example * entry[=].request.method = #PUT * entry[=].request.url = "Patient?identifier=9912003888" * entry[+].fullUrl = "urn:uuid:959fbc3c-0907-419e-aa3d-ab88f2d90c5e" -* entry[=].resource = ConsentExample1 +* entry[=].resource = RAConsentExample1 * entry[=].request.method = #PUT * entry[=].request.url = "Consent?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" * entry[+].fullUrl = "urn:uuid:41a84a93-1c95-4162-b13c-1c617509e6e2" -* entry[=].resource = ConditionExample1 +* entry[=].resource = RAConditionExample1 * entry[=].request.method = #PUT * entry[=].request.url = "Condition?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" * entry[+].fullUrl = "urn:uuid:fba99f70-fe1d-42e2-b77a-916e44b53c19" -* entry[=].resource = MasterFlagExample1 +* entry[=].resource = RAPatientFlagExample1 * entry[=].request.method = #PUT * entry[=].request.url = "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" * entry[+].fullUrl = "urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85" -* entry[=].resource = AdjustmentFlagExample1 +* entry[=].resource = RAFlagExample1 * entry[=].request.method = #PUT * entry[=].request.url = "Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85" diff --git a/input/fsh/examples/0004-AddConditionTransactionExample2-bundle.fsh b/input/fsh/examples/0004-AddRARecordTransactionExample2-bundle.fsh similarity index 78% rename from input/fsh/examples/0004-AddConditionTransactionExample2-bundle.fsh rename to input/fsh/examples/0004-AddRARecordTransactionExample2-bundle.fsh index adebf29..a00e0b5 100644 --- a/input/fsh/examples/0004-AddConditionTransactionExample2-bundle.fsh +++ b/input/fsh/examples/0004-AddRARecordTransactionExample2-bundle.fsh @@ -1,5 +1,6 @@ -Instance: AddConditionTransactionExample2 +Instance: AddRARecordTransactionExample2 InstanceOf: Bundle +Title: "RA Example of idempotent update of a record with a Transaction" Usage: #example * type = #transaction * entry[0].fullUrl = "urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" @@ -7,26 +8,26 @@ Usage: #example * entry[=].request.method = #PUT * entry[=].request.url = "Patient?identifier=9912003888" * entry[+].fullUrl = "urn:uuid:959fbc3c-0907-419e-aa3d-ab88f2d90c5e" -* entry[=].resource = ConsentExample1 +* entry[=].resource = RAConsentExample1 * entry[=].request.method = #PUT * entry[=].request.url = "Consent?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" * entry[+].fullUrl = "urn:uuid:41a84a93-1c95-4162-b13c-1c617509e6e2" -* entry[=].resource = ConditionExample1 +* entry[=].resource = RAConditionExample1 * entry[=].request.method = #PUT * entry[=].request.url = "Condition?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" * entry[+].fullUrl = "urn:uuid:fba99f70-fe1d-42e2-b77a-916e44b53c19" -* entry[=].resource = MasterFlagExample1 +* entry[=].resource = RAPatientFlagExample1 * entry[=].request.method = #PUT * entry[=].request.url = "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" * entry[+].fullUrl = "urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85" -* entry[=].resource = AdjustmentFlagExample1 +* entry[=].resource = RAFlagExample1 * entry[=].request.method = #PUT * entry[=].request.url = "Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85" * entry[+].fullUrl = "urn:uuid:b19124e9-f742-49b4-9247-5c2d58ac1ef4" -* entry[=].resource = ConditionExample2 +* entry[=].resource = RAConditionExample2 * entry[=].request.method = #PUT * entry[=].request.url = "Condition/b19124e9-f742-49b4-9247-5c2d58ac1ef4" * entry[+].fullUrl = "urn:uuid:212c1018-f52a-4db7-9bc2-59a88622eb4f" -* entry[=].resource = AdjustmentFlagExample2 +* entry[=].resource = RAFlagExample2 * entry[=].request.method = #PUT * entry[=].request.url = "Flag/212c1018-f52a-4db7-9bc2-59a88622eb4f" diff --git a/input/fsh/examples/0012-RemoveRARecordExample.fsh b/input/fsh/examples/0012-RemoveRARecordExample.fsh index 5463b0f..a0f77db 100644 --- a/input/fsh/examples/0012-RemoveRARecordExample.fsh +++ b/input/fsh/examples/0012-RemoveRARecordExample.fsh @@ -1,10 +1,11 @@ Instance: RemoveRARecordExample InstanceOf: Bundle +Title: "RA Example of deleting an RA record with a Transaction" Usage: #example * type = #transaction * entry[0].request.method = #DELETE * entry[=].request.url = "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" * entry[+].request.method = #DELETE -* entry[=].request.url = "Consent/ConsentExample1" +* entry[=].request.url = "Consent/RAConsentExample1" * entry[+].request.method = #DELETE -* entry[=].request.url = "Condition/ConditionExample1" +* entry[=].request.url = "Condition/RAConditionExample1" diff --git a/input/fsh/examples/0013-ConsentExample1.fsh b/input/fsh/examples/0013-RAConsentExample1.fsh similarity index 81% rename from input/fsh/examples/0013-ConsentExample1.fsh rename to input/fsh/examples/0013-RAConsentExample1.fsh index 847bb4b..16e0295 100644 --- a/input/fsh/examples/0013-ConsentExample1.fsh +++ b/input/fsh/examples/0013-RAConsentExample1.fsh @@ -1,18 +1,23 @@ -Instance: ConsentExample1 +Instance: RAConsentExample1 InstanceOf: Consent +Title: "RA example of Consent resource." Usage: #example +* meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/FlagConsent" + * extension[0].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentCreateSummary" * extension[=].valueAnnotation.text = "Example of consent create summary extension text" * extension[+].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentRemoveSummary" * extension[=].valueAnnotation.text = "Example of consent remove summary extension text" + * status = #active * scope = $consentscope#patient-privacy * category = PatientFlagCategory#NRAF "National Reasonable Adjustments Flag" -* provision.purpose = $sct#370856009 "Limiting access to confidential patient information" +* provision.purpose = RA-ConsentPurpose#RACONSENT "Reasonable Adjustments - Consent to record Reasonable Adjustments" * patient = Reference(Patient/PatientExample1) * policy.authority = "https://www.gov.uk/" * policy.uri = "https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf" -* policyRule = RA-ProxyRole#001 +* policyRule = FlagProxyRole#001 + * contained.resourceType = "Provenance" * contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" * contained.target.reference = "#" diff --git a/input/fsh/examples/0014-PatientExample1.fsh b/input/fsh/examples/0014-PatientExample1.fsh index 945d95d..0f6dbc7 100644 --- a/input/fsh/examples/0014-PatientExample1.fsh +++ b/input/fsh/examples/0014-PatientExample1.fsh @@ -1,11 +1,14 @@ Instance: PatientExample1 InstanceOf: Patient +Title: "UKCore patient example with very basic details." Usage: #example +* meta.profile = "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient" + * identifier.system = "https://fhir.nhs.uk/Id/nhs-number" * identifier.value = "9912003888" * active = true * name.use = #official -* name.family = "Marks" -* name.given = "Sahil" +* name.family = "Mann" +* name.given = "Alan" * gender = #male * birthDate = "1970-01-01" \ No newline at end of file diff --git a/input/fsh/examples/0015-RAPatientFlagExample1.fsh b/input/fsh/examples/0015-RAPatientFlagExample1.fsh new file mode 100644 index 0000000..6c7394c --- /dev/null +++ b/input/fsh/examples/0015-RAPatientFlagExample1.fsh @@ -0,0 +1,31 @@ +Instance: RAPatientFlagExample1 +InstanceOf: Flag +Title: "RA example of a patient Flag resource." +Usage: #example +* meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/PatientFlag" + +* extension[0].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes" +* extension[=].valueAnnotation.text = "Example of flag notes extension text in patient flag" + +* extension[+].url = "http://hl7.org/fhir/StructureDefinition/flag-detail" +* extension[=].valueReference = Reference(RAConditionExample1) +* extension[=].valueReference.type = "Condition" +* extension[+].url = "http://hl7.org/fhir/StructureDefinition/flag-detail" +* extension[=].valueReference = Reference(RAConsentExample1) +* extension[=].valueReference.type = "Consent" +* extension[+].url = "http://hl7.org/fhir/StructureDefinition/flag-detail" +* extension[=].valueReference = Reference(RAFlagExample1) +* extension[=].valueReference.type = "Flag" + +* status = #active +* code = PatientFlagCategory#NRAF "National Reasonable Adjustments Flag" +* subject = Reference(Patient/PatientExample1) + +* contained.resourceType = "Provenance" +* contained.id = "c4e2e862-3bf4-4176-a186-9f1732938260" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $v3-DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" \ No newline at end of file diff --git a/input/fsh/examples/0016-AdjustmentFlagExample1.fsh b/input/fsh/examples/0016-RAFlagExample1.fsh similarity index 77% rename from input/fsh/examples/0016-AdjustmentFlagExample1.fsh rename to input/fsh/examples/0016-RAFlagExample1.fsh index 821b44f..ec06890 100644 --- a/input/fsh/examples/0016-AdjustmentFlagExample1.fsh +++ b/input/fsh/examples/0016-RAFlagExample1.fsh @@ -1,15 +1,20 @@ -Instance: AdjustmentFlagExample1 +Instance: RAFlagExample1 InstanceOf: Flag +Title: "RA example 1 of a Flag resource." Usage: #example +* meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/ProgrammeFlag" + * extension[0].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes" * extension[=].valueAnnotation.text = "Example of flag notes extension text in adjustment flag" + * status = #active * category[0] = PatientFlagCategory#NRAF "National Reasonable Adjustments Flag" -* category[+] = RA-AdjustmentCategory#001 "Communication support" +* category[+] = RA-FlagCategory#001 "Communication support" * code = $sct#1082681000000103 "Requires support for receptive communication needs" * subject = Reference(Patient/PatientExample1) + * contained.resourceType = "Provenance" -* contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" +* contained.id = "873a38eb-0f9c-4a66-a4e9-8e4be2350d6b" * contained.target.reference = "#" * contained.recorded = "2024-01-01T11:00:00+00:00" * contained.activity = $v3-DataOperation#CREATE "create" diff --git a/input/fsh/examples/0017-ConditionExample1.fsh b/input/fsh/examples/0017-RAConditionExample1.fsh similarity index 66% rename from input/fsh/examples/0017-ConditionExample1.fsh rename to input/fsh/examples/0017-RAConditionExample1.fsh index e86f79d..212b115 100644 --- a/input/fsh/examples/0017-ConditionExample1.fsh +++ b/input/fsh/examples/0017-RAConditionExample1.fsh @@ -1,12 +1,17 @@ -Instance: ConditionExample1 +Instance: RAConditionExample1 InstanceOf: Condition +Title: "RA example 1 of a Condition resource." Usage: #example +* meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/FlagCondition" + * clinicalStatus = $condition-clinical#active -* category = RA-ConditionCategory#issue "Issue" +* category[0] = PatientFlagCategory#NRAF "National Reasonable Adjustments Flag" +* category[+] = RA-ConditionCategory#issue "Issue" * code = RA-ConditionCode#5 "Learning or understanding or concentrating" * subject = Reference(Patient/PatientExample1) + * contained.resourceType = "Provenance" -* contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" +* contained.id = "6a6b18a7-c077-49da-929f-a8dd38468f79" * contained.target.reference = "#" * contained.recorded = "2024-01-01T11:00:00+00:00" * contained.activity = $v3-DataOperation#CREATE "create" diff --git a/input/fsh/examples/0018-AdjustmentFlagExample2.fsh b/input/fsh/examples/0018-RAFlagExample2.fsh similarity index 76% rename from input/fsh/examples/0018-AdjustmentFlagExample2.fsh rename to input/fsh/examples/0018-RAFlagExample2.fsh index 5d348da..4f6bf59 100644 --- a/input/fsh/examples/0018-AdjustmentFlagExample2.fsh +++ b/input/fsh/examples/0018-RAFlagExample2.fsh @@ -1,15 +1,20 @@ -Instance: AdjustmentFlagExample2 +Instance: RAFlagExample2 InstanceOf: Flag +Title: "RA example 2 of a Flag resource." Usage: #example +* meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/ProgrammeFlag" + * extension[0].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes" * extension[=].valueAnnotation.text = "Example of adjustment notes extension text in adjustment flag" + * status = #active * category[0] = PatientFlagCategory#NRAF "National Reasonable Adjustments Flag" -* category[+] = RA-AdjustmentCategory#011 "Bespoke Reasonable adjustments" +* category[+] = RA-FlagCategory#011 "Bespoke Reasonable adjustments" * code = $sct#73618009 "Autistic spectrum disorder with isolated skills" * subject = Reference(Patient/PatientExample1) + * contained.resourceType = "Provenance" -* contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" +* contained.id = "71f8bcda-242d-4401-a59c-6924a6cb1c0e" * contained.target.reference = "#" * contained.recorded = "2024-01-01T11:00:00+00:00" * contained.activity = $v3-DataOperation#CREATE "create" diff --git a/input/fsh/examples/0019-ConditionExample2.fsh b/input/fsh/examples/0019-RAConditionExample2.fsh similarity index 67% rename from input/fsh/examples/0019-ConditionExample2.fsh rename to input/fsh/examples/0019-RAConditionExample2.fsh index 715b141..b13ff35 100644 --- a/input/fsh/examples/0019-ConditionExample2.fsh +++ b/input/fsh/examples/0019-RAConditionExample2.fsh @@ -1,12 +1,17 @@ -Instance: ConditionExample2 -InstanceOf: Condition +Instance: RAConditionExample2 +InstanceOf: FlagCondition +Title: "RA example 2 of a Condition resource." Usage: #example +* meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/FlagCondition" + * clinicalStatus = $condition-clinical#active -* category = RA-ConditionCategory#issue "Issue" +* category[0] = PatientFlagCategory#NRAF "National Reasonable Adjustments Flag" +* category[+] = RA-ConditionCategory#issue "Issue" * code = RA-ConditionCode#9 "Social or behavioural (for example associated with autism spectrum disorder (ASD) which includes Asperger’s, or attention deficit hyperactivity disorder (ADHD))" * subject = Reference(Patient/PatientExample1) + * contained.resourceType = "Provenance" -* contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" +* contained.id = "f55e1edc-8ac7-4e06-b322-25fd34e62249" * contained.target.reference = "#" * contained.recorded = "2024-01-01T11:00:00+00:00" * contained.activity = $v3-DataOperation#CREATE "create" diff --git a/input/fsh/examples/0020-CPISConsentExample.fsh b/input/fsh/examples/0020-CPISConsentExample.fsh new file mode 100644 index 0000000..ccc6db6 --- /dev/null +++ b/input/fsh/examples/0020-CPISConsentExample.fsh @@ -0,0 +1,28 @@ +Instance: CPISConsentExample1 +InstanceOf: Consent +Title: "CPIS example of Consent resource" +Usage: #example +* meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/FlagConsent" + +* extension[0].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentCreateSummary" +* extension[=].valueAnnotation.text = "Example of consent create summary extension text" +* extension[+].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentRemoveSummary" +* extension[=].valueAnnotation.text = "Example of consent remove summary extension text" + +* status = #active +* scope = $consentscope#patient-privacy +* category = PatientFlagCategory#CP-IS "Child Protection - Information Sharing Flag" +* provision.purpose = CPIS-ConsentPurpose#CPISCONSENT "CPIS - Consent to record CPIS flags" +* patient = Reference(Patient/PatientExample1) +* policy.authority = "https://www.gov.uk/" +* policy.uri = "https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf" +* policyRule = FlagProxyRole#001 + +* contained.resourceType = "Provenance" +* contained.id = "51a731b3-1c46-47ba-abad-04209bd264e6" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $v3-DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" diff --git a/input/fsh/examples/0021-CPISPatientFlagExample1.fsh b/input/fsh/examples/0021-CPISPatientFlagExample1.fsh new file mode 100644 index 0000000..968377b --- /dev/null +++ b/input/fsh/examples/0021-CPISPatientFlagExample1.fsh @@ -0,0 +1,21 @@ +Instance: CPISPatientFlagExample1 +InstanceOf: Flag +Title: "CPIS example of a patient Flag resource" +Usage: #example +* meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/PatientFlag" + +* extension[0].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes" +* extension[=].valueAnnotation.text = "Example of flag notes extension text in patient flag" + +* status = #active +* code = PatientFlagCategory#CP-IS "Child Protection - Information Sharing Flag" +* subject = Reference(Patient/PatientExample1) + +* contained.resourceType = "Provenance" +* contained.id = "42b9f285-0f1b-435a-ba6e-c72762d6502e" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $v3-DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" \ No newline at end of file diff --git a/input/fsh/examples/0022-CPISFlagExample1.fsh b/input/fsh/examples/0022-CPISFlagExample1.fsh new file mode 100644 index 0000000..db240d6 --- /dev/null +++ b/input/fsh/examples/0022-CPISFlagExample1.fsh @@ -0,0 +1,23 @@ +Instance: CPISFlagExample1 +InstanceOf: Flag +Title: "CPIS example of a Flag resource" +Usage: #example +* meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/ProgrammeFlag" + +* extension[0].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes" +* extension[=].valueAnnotation.text = "Example of flag notes extension text in adjustment flag" + +* status = #active +* category[0] = PatientFlagCategory#CP-IS "Child Protection - Information Sharing Flag" +* category[+] = CPIS-FlagCategory#001 "Example CPIS category" +* code = $sct#224353004 "Child protection finding (finding)" +* subject = Reference(Patient/PatientExample1) + +* contained.resourceType = "Provenance" +* contained.id = "ea77b434-585a-48b9-a789-eac610f0363e" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $v3-DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" \ No newline at end of file diff --git a/input/fsh/examples/0023-CPISConditionExample1.fsh b/input/fsh/examples/0023-CPISConditionExample1.fsh new file mode 100644 index 0000000..40dd175 --- /dev/null +++ b/input/fsh/examples/0023-CPISConditionExample1.fsh @@ -0,0 +1,20 @@ +Instance: CPISConditionExample1 +InstanceOf: Condition +Title: "CPIS example of a Condition resource." +Usage: #example +* meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/FlagCondition" + +* clinicalStatus = $condition-clinical#active +* category[0] = PatientFlagCategory#CP-IS "Child Protection - Information Sharing Flag" +* category[+] = CPIS-ConditionCategory#cpis-example-condition-category "CPIS example condition category" +* code = CPIS-ConditionCode#1 "CPIS example condition code" +* subject = Reference(Patient/PatientExample1) + +* contained.resourceType = "Provenance" +* contained.id = "482155c0-9ed3-4b22-b7b8-009f265606cc" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $v3-DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" \ No newline at end of file diff --git a/input/fsh/examples/0024-AddCPISRecordTransactionExample1-bundle.fsh b/input/fsh/examples/0024-AddCPISRecordTransactionExample1-bundle.fsh new file mode 100644 index 0000000..f602479 --- /dev/null +++ b/input/fsh/examples/0024-AddCPISRecordTransactionExample1-bundle.fsh @@ -0,0 +1,25 @@ +Instance: AddCPISRecordTransactionExample1 +InstanceOf: Bundle +Title: "CPIS Example of adding a record with a Transaction" +Usage: #example +* type = #transaction +* entry[0].fullUrl = "urn:uuid:f7898b1c-4314-4331-9477-cca32861e858" +* entry[=].resource = PatientExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Patient?identifier=9912003888" +* entry[+].fullUrl = "urn:uuid:921cd5d5-e1e9-4986-bf8e-5826832db2ff" +* entry[=].resource = CPISConsentExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Consent?patient=urn:uuid:f7898b1c-4314-4331-9477-cca32861e858" +* entry[+].fullUrl = "urn:uuid:7dd8fe1e-e782-42c6-9ef4-1bebce3a43cc" +* entry[=].resource = CPISConditionExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Condition?patient=urn:uuid:f7898b1c-4314-4331-9477-cca32861e858" +* entry[+].fullUrl = "urn:uuid:066fbb4b-2a8d-471e-8732-42e85ab1de1a" +* entry[=].resource = CPISPatientFlagExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/066fbb4b-2a8d-471e-8732-42e85ab1de1a" +* entry[+].fullUrl = "urn:uuid:621c9e76-19e1-4aa0-adb0-8d79979ea27c" +* entry[=].resource = CPISFlagExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/066fbb4b-2a8d-471e-8732-42e85ab1de1a" diff --git a/input/fsh/examples/0025-FGMConsentExample.fsh b/input/fsh/examples/0025-FGMConsentExample.fsh new file mode 100644 index 0000000..113ce47 --- /dev/null +++ b/input/fsh/examples/0025-FGMConsentExample.fsh @@ -0,0 +1,28 @@ +Instance: FGMConsentExample1 +InstanceOf: Consent +Title: "FGM example of Consent resource" +Usage: #example +* meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/FlagConsent" + +* extension[0].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentCreateSummary" +* extension[=].valueAnnotation.text = "Example of consent create summary extension text" +* extension[+].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentRemoveSummary" +* extension[=].valueAnnotation.text = "Example of consent remove summary extension text" + +* status = #active +* scope = $consentscope#patient-privacy +* category = PatientFlagCategory#FGM "Female Genital Mutilation Flag" +* provision.purpose = FGM-ConsentPurpose#FGMCONSENT "FGM - Consent to record FGM flags" +* patient = Reference(Patient/PatientExample1) +* policy.authority = "https://www.gov.uk/" +* policy.uri = "https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf" +* policyRule = FlagProxyRole#001 + +* contained.resourceType = "Provenance" +* contained.id = "bc0dbfb1-7432-46fa-b1b8-0e3648827754" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $v3-DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" diff --git a/input/fsh/examples/0015-MasterFlagExample1.fsh b/input/fsh/examples/0026-FGMPatientFlagExample1.fsh similarity index 69% rename from input/fsh/examples/0015-MasterFlagExample1.fsh rename to input/fsh/examples/0026-FGMPatientFlagExample1.fsh index f7c22b5..2fa4efa 100644 --- a/input/fsh/examples/0015-MasterFlagExample1.fsh +++ b/input/fsh/examples/0026-FGMPatientFlagExample1.fsh @@ -1,13 +1,18 @@ -Instance: MasterFlagExample1 +Instance: FGMPatientFlagExample1 InstanceOf: Flag +Title: "FGM example of a patient Flag resource" Usage: #example +* meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/PatientFlag" + * extension[0].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes" -* extension[=].valueAnnotation.text = "Example of flag notes extension text in master flag" +* extension[=].valueAnnotation.text = "Example of flag notes extension text in patient flag" + * status = #active -* code = PatientFlagCategory#NRAF "National Reasonable Adjustments Flag" +* code = PatientFlagCategory#FGM "Female Genital Mutilation Flag" * subject = Reference(Patient/PatientExample1) + * contained.resourceType = "Provenance" -* contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" +* contained.id = "3fc83fd8-4a6d-48e4-91ab-12bb10a4a834" * contained.target.reference = "#" * contained.recorded = "2024-01-01T11:00:00+00:00" * contained.activity = $v3-DataOperation#CREATE "create" diff --git a/input/fsh/examples/0027-FGMFlagExample1.fsh b/input/fsh/examples/0027-FGMFlagExample1.fsh new file mode 100644 index 0000000..415b0d7 --- /dev/null +++ b/input/fsh/examples/0027-FGMFlagExample1.fsh @@ -0,0 +1,23 @@ +Instance: FGMFlagExample1 +InstanceOf: Flag +Title: "FGM example of a Flag resource" +Usage: #example +* meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/ProgrammeFlag" + +* extension[0].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes" +* extension[=].valueAnnotation.text = "Example of flag notes extension text in adjustment flag" + +* status = #active +* category[0] = PatientFlagCategory#FGM "Female Genital Mutilation Flag" +* category[+] = FGM-FlagCategory#001 "Example FGM category" +* code = $sct#902961000000107 "Family history of female genital mutilation (situation)" +* subject = Reference(Patient/PatientExample1) + +* contained.resourceType = "Provenance" +* contained.id = "9b5f2d1b-8175-407f-a49d-b4f04c9d4300" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $v3-DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" \ No newline at end of file diff --git a/input/fsh/examples/0028-FGMConditionExample1.fsh b/input/fsh/examples/0028-FGMConditionExample1.fsh new file mode 100644 index 0000000..077c1dc --- /dev/null +++ b/input/fsh/examples/0028-FGMConditionExample1.fsh @@ -0,0 +1,20 @@ +Instance: FGMConditionExample1 +InstanceOf: Condition +Title: "FGM example of a Condition resource." +Usage: #example +* meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/FlagCondition" + +* clinicalStatus = $condition-clinical#active +* category[0] = PatientFlagCategory#FGM "Female Genital Mutilation Flag" +* category[+] = FGM-ConditionCategory#fgm-example-condition-category "FGM example condition category" +* code = FGM-ConditionCode#1 "FGM example condition code" +* subject = Reference(Patient/PatientExample1) + +* contained.resourceType = "Provenance" +* contained.id = "e78b78b2-31f9-453d-b278-6d5720001073" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $v3-DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" \ No newline at end of file diff --git a/input/fsh/examples/0029-AddFGMRecordTransactionExample1-bundle.fsh b/input/fsh/examples/0029-AddFGMRecordTransactionExample1-bundle.fsh new file mode 100644 index 0000000..f2eb909 --- /dev/null +++ b/input/fsh/examples/0029-AddFGMRecordTransactionExample1-bundle.fsh @@ -0,0 +1,25 @@ +Instance: AddFGMRecordTransactionExample1 +InstanceOf: Bundle +Title: "FGM Example of adding a record with a Transaction" +Usage: #example +* type = #transaction +* entry[0].fullUrl = "urn:uuid:9580a1de-f418-432b-85da-eba186b7cfa5" +* entry[=].resource = PatientExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Patient?identifier=9912003888" +* entry[+].fullUrl = "urn:uuid:cd1de51b-2007-4409-8a96-cfcc1e0a0b6b" +* entry[=].resource = FGMConsentExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Consent?patient=urn:uuid:9580a1de-f418-432b-85da-eba186b7cfa5" +* entry[+].fullUrl = "urn:uuid:7dd8fe1e-e782-42c6-9ef4-1bebce3a43cc" +* entry[=].resource = FGMConditionExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Condition?patient=urn:uuid:9580a1de-f418-432b-85da-eba186b7cfa5" +* entry[+].fullUrl = "urn:uuid:97c6d9be-1431-4112-b99c-5cecd318ede0" +* entry[=].resource = FGMPatientFlagExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/97c6d9be-1431-4112-b99c-5cecd318ede0" +* entry[+].fullUrl = "urn:uuid:38f67aa3-5ea8-4a29-9cd5-54ba7acf79a8" +* entry[=].resource = FGMFlagExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/38f67aa3-5ea8-4a29-9cd5-54ba7acf79a8" diff --git a/input/fsh/extensions/Extension-AdjustmentNotes.fsh b/input/fsh/extensions/Extension-AdjustmentNotes.fsh index 483dec6..0eb63f9 100644 --- a/input/fsh/extensions/Extension-AdjustmentNotes.fsh +++ b/input/fsh/extensions/Extension-AdjustmentNotes.fsh @@ -10,7 +10,7 @@ Context: Flag * ^status = #draft * ^date = "2024-02-14" -* insert NHSEngland-PublisherContactCopyright +* insert NHSEngland-Copyright * value[x] 1.. * value[x] only Annotation \ No newline at end of file diff --git a/input/fsh/extensions/Extension-ConsentCreateSummary.fsh b/input/fsh/extensions/Extension-ConsentCreateSummary.fsh index 0ac7feb..066fbf2 100644 --- a/input/fsh/extensions/Extension-ConsentCreateSummary.fsh +++ b/input/fsh/extensions/Extension-ConsentCreateSummary.fsh @@ -10,7 +10,7 @@ Context: Consent * ^status = #draft * ^date = "2024-02-14" -* insert NHSEngland-PublisherContactCopyright +* insert NHSEngland-Copyright * value[x] 1.. * value[x] only Annotation \ No newline at end of file diff --git a/input/fsh/extensions/Extension-RemoveCreateSummary.fsh b/input/fsh/extensions/Extension-RemoveCreateSummary.fsh index c49c48b..be3d3bd 100644 --- a/input/fsh/extensions/Extension-RemoveCreateSummary.fsh +++ b/input/fsh/extensions/Extension-RemoveCreateSummary.fsh @@ -10,7 +10,7 @@ Context: Consent * ^status = #draft * ^date = "2024-02-14" -* insert NHSEngland-PublisherContactCopyright +* insert NHSEngland-Copyright * value[x] 1.. * value[x] only Annotation \ No newline at end of file diff --git a/input/fsh/profiles/FlagCondition.fsh b/input/fsh/profiles/FlagCondition.fsh new file mode 100644 index 0000000..c3e3e35 --- /dev/null +++ b/input/fsh/profiles/FlagCondition.fsh @@ -0,0 +1,32 @@ +Profile: FlagCondition +Parent: Condition +Id: FlagCondition +Title: "NHSE Condition Profile for flags" +Description: "Record an individual condition for a flag in NHS England" + +* ^name = "FlagCondition" +* ^url = "https://fhir.nhs.uk/England/StructureDefinition/FlagCondition" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" + +* contained ^slicing.discriminator.type = #profile +* contained ^slicing.rules = #open +* contained ^slicing.discriminator.path = "contained" +* contained contains provenance 1..1 +* contained[provenance] only FlagProvenance + +* insert NHSEngland-Copyright + +* category ^slicing.discriminator.type = #pattern +* category ^slicing.rules = #open +* category ^slicing.discriminator.path = "$this" + +* category contains patientFlag 1.. MS +* category[patientFlag] from $ValueSetPatientFlagCategory (required) + +* category contains conditionCategory 1.. MS +* category[conditionCategory] from $ValueSetFlagConditionCategory (required) + +* code 1.. MS +* code from $ValueSetFlagConditionCode (extensible) \ No newline at end of file diff --git a/input/fsh/profiles/RA-Consent.fsh b/input/fsh/profiles/FlagConsent.fsh similarity index 62% rename from input/fsh/profiles/RA-Consent.fsh rename to input/fsh/profiles/FlagConsent.fsh index 1630be9..1610ab9 100644 --- a/input/fsh/profiles/RA-Consent.fsh +++ b/input/fsh/profiles/FlagConsent.fsh @@ -1,16 +1,16 @@ -Profile: RA-Consent +Profile: FlagConsent Parent: Consent -Id: RA-Consent -Title: "Reasonable Adjustments Consent Profile" -Description: "To record consent to capture Reasonable Adjustments and Reasons for Reasonable Adjustments data" +Id: FlagConsent +Title: "NHSE Flag Consent Profile" +Description: "Record consent to capture information for NHS England flags" -* ^name = "ReasonableAdjustmentsConsent" -* ^url = "https://fhir.nhs.uk/England/StructureDefinition/RA-Consent" +* ^name = "FlagConsent" +* ^url = "https://fhir.nhs.uk/England/StructureDefinition/FlagConsent" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" -* insert NHSEngland-PublisherContactCopyright +* insert NHSEngland-Copyright * extension contains Extension-ConsentCreateSummary named createSummary 0..1 and @@ -26,15 +26,14 @@ Description: "To record consent to capture Reasonable Adjustments and Reasons fo * contained ^slicing.rules = #open * contained ^slicing.discriminator.path = "contained" * contained contains provenance 1..1 -* contained[provenance] only RA-Provenance +* contained[provenance] only FlagProvenance * category from $ValueSetPatientFlagCategory (extensible) * policy 1..1 * policy.uri 1.. * policyRule 1.. -* policyRule from RA-ProxyRole (extensible) +* policyRule from FlagProxyRole (extensible) * performer ..1 * performer only Reference(Organization or Patient or Practitioner) * provision.purpose 1..1 -* provision.purpose from RA-ConsentPurpose (extensible) - +* provision.purpose from FlagConsentPurpose (extensible) diff --git a/input/fsh/profiles/FlagProvenance.fsh b/input/fsh/profiles/FlagProvenance.fsh new file mode 100644 index 0000000..20bb3ce --- /dev/null +++ b/input/fsh/profiles/FlagProvenance.fsh @@ -0,0 +1,18 @@ +Profile: FlagProvenance +Parent: Provenance +Id: FlagProvenance +Title: "NHSE Flag Provenance Profile" +Description: "Record details of the practitioner recording or removing an individual Flag." + +* ^name = "FlagProvenance" +* ^url = "https://fhir.nhs.uk/England/StructureDefinition/FlagProvenance" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" + +* insert NHSEngland-Copyright + +* target only Reference(FlagCondition or FlagConsent or ProgrammeFlag or PatientFlag) +* agent.role from $ValueSetFlagProvenanceRole (extensible) +* agent.who only Reference(Practitioner) +* agent.onBehalfOf only Reference(Organization) diff --git a/input/fsh/profiles/MasterFlag.fsh b/input/fsh/profiles/MasterFlag.fsh deleted file mode 100644 index 78d48d3..0000000 --- a/input/fsh/profiles/MasterFlag.fsh +++ /dev/null @@ -1,33 +0,0 @@ -Profile: MasterFlag -Parent: Flag -Id: MasterFlag -Title: "Patient Master Flag Profile" -Description: "To record whether a Patient Flags exists" - -* ^name = "MasterFlag" -* ^url = "https://fhir.nhs.uk/England/StructureDefinition/MasterFlag" -* ^version = "0.1.0" -* ^status = #draft -* ^date = "2024-02-14" - -* insert NHSEngland-PublisherContactCopyright - -* extension contains - Extension-FlagNotes named flagNotes 0..1 and - $ExtensionFlagDetail named flagDetail 0..* - -* extension[flagNotes].value[x] only Annotation -* extension[flagNotes].valueAnnotation 1.. - -* extension[flagDetail].valueReference only Reference(RA-AdjustmentFlag or RA-Consent or RA-Provenance) - -* contained ^slicing.discriminator.type = #profile -* contained ^slicing.rules = #open -* contained ^slicing.discriminator.path = "contained" -* contained contains provenance 1..1 -* contained[provenance] only RA-Provenance - -* category 1.. MS -* category from $ValueSetPatientFlagCategory (required) -* code MS -* code from $ValueSetRAFlagCode (extensible) diff --git a/input/fsh/profiles/PatientFlag.fsh b/input/fsh/profiles/PatientFlag.fsh new file mode 100644 index 0000000..ab61344 --- /dev/null +++ b/input/fsh/profiles/PatientFlag.fsh @@ -0,0 +1,32 @@ +Profile: PatientFlag +Parent: Flag +Id: PatientFlag +Title: "NHSE Patient Flag Profile" +Description: "Record whether a Patient Flags exists" + +* ^name = "PatientFlag" +* ^url = "https://fhir.nhs.uk/England/StructureDefinition/PatientFlag" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" + +* insert NHSEngland-Copyright + +* extension contains + Extension-FlagNotes named flagNotes 0..1 and + $ExtensionFlagDetail named flagDetail 0..* + +* extension[flagNotes].value[x] only Annotation +* extension[flagNotes].valueAnnotation 1.. + +* extension[flagDetail].valueReference only Reference(ProgrammeFlag or FlagConsent or FlagCondition or FlagProvenance) + +* contained ^slicing.discriminator.type = #profile +* contained ^slicing.rules = #open +* contained ^slicing.discriminator.path = "contained" + +* contained contains provenance 1..1 +* contained[provenance] only FlagProvenance + +* code MS +* code from $ValueSetPatientFlagCategory (required) diff --git a/input/fsh/profiles/ProgrammeFlag.fsh b/input/fsh/profiles/ProgrammeFlag.fsh new file mode 100644 index 0000000..c3a73ab --- /dev/null +++ b/input/fsh/profiles/ProgrammeFlag.fsh @@ -0,0 +1,32 @@ +Profile: ProgrammeFlag +Parent: Flag +Id: ProgrammeFlag +Title: "NHSE Programme Flag Profile" +Description: "Record an individual flag for an NHS England programme." + +* ^name = "ProgrammeFlag" +* ^url = "https://fhir.nhs.uk/England/StructureDefinition/ProgrammeFlag" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" + +* insert NHSEngland-Copyright + +* extension contains + Extension-FlagNotes named flagNotes 0..1 + +* extension[flagNotes].value[x] only Annotation +* extension[flagNotes].valueAnnotation 1.. + +* category ^slicing.discriminator.type = #pattern +* category ^slicing.rules = #open +* category ^slicing.discriminator.path = "$this" + +* category contains patientFlag 1.. MS +* category[patientFlag] from $ValueSetPatientFlagCategory (required) + +* category contains programmeFlag 1.. MS +* category[programmeFlag] from $ValueSetProgrammeFlagCategory (required) + +* code MS +* code from $ValueSetProgrammeFlagCode (extensible) diff --git a/input/fsh/profiles/RA-AdjustmentFlag.fsh b/input/fsh/profiles/RA-AdjustmentFlag.fsh deleted file mode 100644 index 11554dd..0000000 --- a/input/fsh/profiles/RA-AdjustmentFlag.fsh +++ /dev/null @@ -1,32 +0,0 @@ -Profile: RA-AdjustmentFlag -Parent: Flag -Id: RA-AdjustmentFlag -Title: "Reasonable Adjustments Flag Profile" -Description: "To (optionally) record an individual Adjustment for a Reasonable Adjustment Flag" - -* ^name = "ReasonableAdjustmentsFlag" -* ^url = "https://fhir.nhs.uk/England/StructureDefinition/RA-AdjustmentFlag" -* ^version = "0.1.0" -* ^status = #draft -* ^date = "2024-02-14" - -* insert NHSEngland-PublisherContactCopyright - -* extension contains - Extension-FlagNotes named flagNotes 0..1 - -* extension[flagNotes].value[x] only Annotation -* extension[flagNotes].valueAnnotation 1.. - -* category ^slicing.discriminator.type = #profile -* category ^slicing.rules = #open -* category ^slicing.discriminator.path = "system" - -* category contains masterFlag 1.. MS -* category[masterFlag] from $ValueSetPatientFlagCategory (required) - -* category contains adjustmentFlag 1.. MS -* category[adjustmentFlag] from $ValueSetRAAdjustmentCategory (required) - -* code MS -* code from $ValueSetRAFlagCode (extensible) diff --git a/input/fsh/profiles/RA-Condition.fsh b/input/fsh/profiles/RA-Condition.fsh deleted file mode 100644 index 8bf1e8c..0000000 --- a/input/fsh/profiles/RA-Condition.fsh +++ /dev/null @@ -1,24 +0,0 @@ -Profile: RA-Condition -Parent: Condition -Id: RA-Condition -Title: "Reasonable Adjustments Condition Profile" -Description: "To (optionally) record an individual Condition for a Reasonable Adjustment Flag" - -* ^name = "ReasonableAdjustmentsCondition" -* ^url = "https://fhir.nhs.uk/England/StructureDefinition/RA-Condition" -* ^version = "0.1.0" -* ^status = #draft -* ^date = "2024-02-14" - -* contained ^slicing.discriminator.type = #profile -* contained ^slicing.rules = #open -* contained ^slicing.discriminator.path = "contained" -* contained contains provenance 1..1 -* contained[provenance] only RA-Provenance - -* insert NHSEngland-PublisherContactCopyright - -* category 1.. MS -* category from $ValueSetRAConditionCategory (required) -* code 1.. MS -* code from $ValueSetRAConditionCode (extensible) \ No newline at end of file diff --git a/input/fsh/profiles/RA-Provenance.fsh b/input/fsh/profiles/RA-Provenance.fsh deleted file mode 100644 index 16cb5f0..0000000 --- a/input/fsh/profiles/RA-Provenance.fsh +++ /dev/null @@ -1,19 +0,0 @@ -Profile: RA-Provenance -Parent: Provenance -Id: RA-Provenance -Title: "Reasonable Adjustments Provenance Profile" -Description: "To record details of the practitioner recording or removing an individual item (Consent, Adjustment or Impairment) within a Reasonable Adjustment Flag." - -* ^name = "ReasonableAdjustmentsProvenance" -* ^url = "https://fhir.nhs.uk/England/StructureDefinition/RA-Provenance" -* ^version = "0.1.0" -* ^status = #draft -* ^date = "2024-02-14" - -* insert NHSEngland-PublisherContactCopyright - -* target only Reference(Condition or RA-Consent or RA-AdjustmentFlag or MasterFlag) -* agent.role from $ValueSetRAProvenanceRole (extensible) -* agent.who only Reference(Practitioner) -* agent.onBehalfOf only Reference(Organization) - diff --git a/input/fsh/rulesets/NHSEngland-PublisherContactCopyright.fsh b/input/fsh/rulesets/NHSEngland-Copyright.fsh similarity index 52% rename from input/fsh/rulesets/NHSEngland-PublisherContactCopyright.fsh rename to input/fsh/rulesets/NHSEngland-Copyright.fsh index 670fd0d..4934041 100644 --- a/input/fsh/rulesets/NHSEngland-PublisherContactCopyright.fsh +++ b/input/fsh/rulesets/NHSEngland-Copyright.fsh @@ -1,16 +1,2 @@ -RuleSet: NHSEngland-PublisherContactCopyright -* ^publisher = "NHS England" -* ^contact[0].name = "NHS England" -* ^contact[=].telecom[0].system = #email -* ^contact[=].telecom[=].value = "interoperabilityteam@nhs.net" -* ^contact[=].telecom[=].use = #work -* ^contact[=].telecom[=].rank = 1 -* ^copyright = "Copyright © 2023+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." - -RuleSet: NHSEngland-PublisherContactCopyright-Instance -* publisher = "NHS England" -* contact[0].name = "NHS England" -* contact[=].telecom[0].system = #email -* contact[=].telecom[=].value = "interoperabilityteam@nhs.net" -* contact[=].telecom[=].use = #work -* contact[=].telecom[=].rank = 1 +RuleSet: NHSEngland-Copyright +* ^copyright = "Copyright © 2024+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." diff --git a/input/fsh/searchparameter/FlagCategory.fsh b/input/fsh/searchparameter/FlagCategory.fsh index 741837d..bcef7e0 100644 --- a/input/fsh/searchparameter/FlagCategory.fsh +++ b/input/fsh/searchparameter/FlagCategory.fsh @@ -1,6 +1,6 @@ Instance: FlagCategory InstanceOf: SearchParameter -Title: "SearchParameter for Category in Flag" +Title: "Search for Category in Flag" Usage: #definition Description: "Search by category in the Flag resource" @@ -10,8 +10,6 @@ Description: "Search by category in the Flag resource" * status = #active * date = "2024-02-14" -* insert NHSEngland-PublisherContactCopyright-Instance - * code = #category * base = #Flag * type = #token diff --git a/input/fsh/searchparameter/FlagCode.fsh b/input/fsh/searchparameter/FlagCode.fsh index bd38fd2..32051d7 100644 --- a/input/fsh/searchparameter/FlagCode.fsh +++ b/input/fsh/searchparameter/FlagCode.fsh @@ -1,6 +1,6 @@ Instance: FlagCode InstanceOf: SearchParameter -Title: "SearchParameter for Code in Flag" +Title: "Search for Code in Flag" Usage: #definition Description: "Search by code in the Flag resource" @@ -10,8 +10,6 @@ Description: "Search by code in the Flag resource" * status = #active * date = "2024-02-14" -* insert NHSEngland-PublisherContactCopyright-Instance - * code = #code * base = #Flag * type = #token diff --git a/input/fsh/searchparameter/FlagDetail.fsh b/input/fsh/searchparameter/FlagDetail.fsh index 99966d3..106dea3 100644 --- a/input/fsh/searchparameter/FlagDetail.fsh +++ b/input/fsh/searchparameter/FlagDetail.fsh @@ -1,8 +1,8 @@ Instance: FlagDetail InstanceOf: SearchParameter -Title: "SearchParameter for Condition, Flag or Consent resources in the flag-detail extension" +Title: "Search for flag-detail extension" Usage: #definition -Description: "Search using extension for flag detail extension in Flag resource" +Description: "Search for Condition, Flag or Consent resources referenced in flag detail extension" * name = "SearchParameterFlagDetailExtension" * url = "https://fhir.nhs.uk/England/SearchParameter/FlagDetail" @@ -10,8 +10,6 @@ Description: "Search using extension for flag detail extension in Flag resource" * status = #active * date = "2024-02-14" -* insert NHSEngland-PublisherContactCopyright-Instance - * code = #detail * base = #Flag * type = #reference diff --git a/input/fsh/valuesets/CPIS-FlagCode.fsh b/input/fsh/valuesets/CPIS-FlagCode.fsh new file mode 100644 index 0000000..c36b4c5 --- /dev/null +++ b/input/fsh/valuesets/CPIS-FlagCode.fsh @@ -0,0 +1,17 @@ +ValueSet: CPIS-FlagCode +Id: CPIS-FlagCode +Title: "CPIS Flag Code" +Description: "A ValueSet containing flag codes for the Child Protection Information Sharing NHS England Programme" + +* ^name = "CPISFlagCode" +* ^url = "https://fhir.nhs.uk/England/ValueSet/CPIS-FlagCode" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^experimental = false + +* insert NHSEngland-Copyright + +* ^expansion.timestamp = "2024-02-14T12:00:00+00:00" +* ^expansion.contains[0].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #224353004 \ No newline at end of file diff --git a/input/fsh/valuesets/FGM-FlagCode.fsh b/input/fsh/valuesets/FGM-FlagCode.fsh new file mode 100644 index 0000000..f327cca --- /dev/null +++ b/input/fsh/valuesets/FGM-FlagCode.fsh @@ -0,0 +1,17 @@ +ValueSet: FGM-FlagCode +Id: FGM-FlagCode +Title: "FGM Flag Code" +Description: "A ValueSet containing flag codes for the Female Genital Mutilation NHS England Programme" + +* ^name = "FGMFlagCode" +* ^url = "https://fhir.nhs.uk/England/ValueSet/FGM-FlagCode" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^experimental = false + +* insert NHSEngland-Copyright + +* ^expansion.timestamp = "2024-02-14T12:00:00+00:00" +* ^expansion.contains[0].system = "http://snomed.info/sct" +* ^expansion.contains[=].code = #902961000000107 \ No newline at end of file diff --git a/input/fsh/valuesets/RA-ConditionCategory.fsh b/input/fsh/valuesets/FlagConditionCategory.fsh similarity index 63% rename from input/fsh/valuesets/RA-ConditionCategory.fsh rename to input/fsh/valuesets/FlagConditionCategory.fsh index eed98fe..11ddf2c 100644 --- a/input/fsh/valuesets/RA-ConditionCategory.fsh +++ b/input/fsh/valuesets/FlagConditionCategory.fsh @@ -1,16 +1,16 @@ -ValueSet: RA-ConditionCategoryy -Id: RA-ConditionCategory -Title: "Reasonable Adjustments Record Condition Category" +ValueSet: FlagConditionCategory +Id: FlagConditionCategory +Title: "NHSE Flag Condition Category" Description: "A ValueSet to identify the category of a condition." -* ^name = "ReasonableAdjustmentsConditionCategory" -* ^url = "https://fhir.nhs.uk/England/ValueSet/RA-ConditionCategory" +* ^name = "FlagConditionCategory" +* ^url = "https://fhir.nhs.uk/England/ValueSet/FlagConditionCategory" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" * ^experimental = false -* insert NHSEngland-PublisherContactCopyright +* insert NHSEngland-Copyright * ^expansion.timestamp = "2024-02-14T12:00:00+00:00" * ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCategory" @@ -28,3 +28,11 @@ Description: "A ValueSet to identify the category of a condition." * ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCategory" * ^expansion.contains[=].code = #problem-list-item * ^expansion.contains[=].display = "Problem List Item" + +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/CPIS-ConditionCategory" +* ^expansion.contains[=].code = #cpis-example-condition-category +* ^expansion.contains[=].display = "CPIS example condition category" + +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/FGM-ConditionCategory" +* ^expansion.contains[=].code = #fgm-example-condition-category +* ^expansion.contains[=].display = "FGM example condition category" diff --git a/input/fsh/valuesets/RA-ConditionCode.fsh b/input/fsh/valuesets/FlagConditionCode.fsh similarity index 69% rename from input/fsh/valuesets/RA-ConditionCode.fsh rename to input/fsh/valuesets/FlagConditionCode.fsh index 9949f1f..c7f31cf 100644 --- a/input/fsh/valuesets/RA-ConditionCode.fsh +++ b/input/fsh/valuesets/FlagConditionCode.fsh @@ -1,48 +1,56 @@ -ValueSet: RA-ConditionCode -Id: RA-ConditionCode -Title: "Reasonable Adjustments Record Condition Code" -Description: "A ValueSet to identify the SNOMED-CT concept representing an Impairment recorded as part of a Reasonable Adjustment" +ValueSet: FlagConditionCode +Id: FlagConditionCode +Title: "NHSE Flag Condition Code" +Description: "A ValueSet to identify a condition." -* ^name = "ReasonableAdjustmentsConditionCode" -* ^url = "https://fhir.nhs.uk/England/ValueSet/RA-ConditionCode" +* ^name = "FlagConditionCode" +* ^url = "https://fhir.nhs.uk/England/ValueSet/FlagConditionCode" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" * ^experimental = false -* insert NHSEngland-PublisherContactCopyright +* insert NHSEngland-Copyright * ^expansion.timestamp = "2024-02-14T12:00:00+00:00" -* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCode" * ^expansion.contains[=].code = #1 * ^expansion.contains[=].display = "Vision (for example blindness or partial sight)" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCode" * ^expansion.contains[=].code = #2 * ^expansion.contains[=].display = "Hearing (for example deafness or partial hearing)" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCode" * ^expansion.contains[=].code = #3 * ^expansion.contains[=].display = "Mobility (for example walking short distances or climbing stairs)" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCode" * ^expansion.contains[=].code = #4 * ^expansion.contains[=].display = "Dexterity (for example lifting and carrying objects, using a keyboard)" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCode" * ^expansion.contains[=].code = #5 * ^expansion.contains[=].display = "Learning or understanding or concentrating" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCode" * ^expansion.contains[=].code = #6 * ^expansion.contains[=].display = "Memory" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCode" * ^expansion.contains[=].code = #7 * ^expansion.contains[=].display = "Mental health" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCode" * ^expansion.contains[=].code = #8 * ^expansion.contains[=].display = "Stamina or breathing or fatigue" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCode" * ^expansion.contains[=].code = #9 * ^expansion.contains[=].display = "Social or behavioural (for example associated with autism spectrum disorder (ASD) which includes Asperger’s, or attention deficit hyperactivity disorder (ADHD))" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCode" * ^expansion.contains[=].code = #10 * ^expansion.contains[=].display = "Other (please specify)" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RARecord-ConditionCode" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCode" * ^expansion.contains[=].code = #12 * ^expansion.contains[=].display = "Patient would prefer not to say" + +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/CPIS-ConditionCode" +* ^expansion.contains[=].code = #1 +* ^expansion.contains[=].display = "FGM example condition code" + +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/FGM-ConditionCode" +* ^expansion.contains[=].code = #1 +* ^expansion.contains[=].display = "CPIS example condition code" diff --git a/input/fsh/valuesets/FlagConsentPurpose.fsh b/input/fsh/valuesets/FlagConsentPurpose.fsh new file mode 100644 index 0000000..b1c49f3 --- /dev/null +++ b/input/fsh/valuesets/FlagConsentPurpose.fsh @@ -0,0 +1,26 @@ +ValueSet: FlagConsentPurpose +Id: FlagConsentPurpose +Title: "NHSE Flag Consent Purpose" +Description: "A ValueSet to identify the purpose of a consent given for an NHS England flag." + +* ^name = "FlagConsentPurpose" +* ^url = "https://fhir.nhs.uk/England/ValueSet/FlagConsentPurpose" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^experimental = false + +* insert NHSEngland-Copyright + +* ^expansion.timestamp = "2024-02-14T12:00:00+00:00" +* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConsentPurpose" +* ^expansion.contains[=].code = #RACONSENT +* ^expansion.contains[=].display = "Reasonable Adjustments - Consent to record Reasonable Adjustments" + +* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/CPIS-ConsentPurpose" +* ^expansion.contains[=].code = #CPISCONSENT +* ^expansion.contains[=].display = "CPIS - Consent to record CPIS flags" + +* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/FGM-ConsentPurpose" +* ^expansion.contains[=].code = #FGMCONSENT +* ^expansion.contains[=].display = "FGM - Consent to record FGM flags" diff --git a/input/fsh/valuesets/RA-ProvenanceRole.fsh b/input/fsh/valuesets/FlagProvenanceRole.fsh similarity index 99% rename from input/fsh/valuesets/RA-ProvenanceRole.fsh rename to input/fsh/valuesets/FlagProvenanceRole.fsh index 2d9c1ac..44aaf71 100644 --- a/input/fsh/valuesets/RA-ProvenanceRole.fsh +++ b/input/fsh/valuesets/FlagProvenanceRole.fsh @@ -1,16 +1,16 @@ -ValueSet: RA-ProvenanceRole -Id: RA-ProvenanceRole -Title: "ReasonableAdjustmentsProvenanceRole" +ValueSet: FlagProvenanceRole +Id: FlagProvenanceRole +Title: "Flag Provenance Role" Description: "A ValueSet to identify the role in which someone recording provenance is acting" -* ^name = "ReasonableAdjustmentsProvenanceRole" -* ^url = "https://fhir.nhs.uk/England/ValueSet/RA-ProvenanceRole" +* ^name = "FlagProvenanceRole" +* ^url = "https://fhir.nhs.uk/England/ValueSet/FlagProvenanceRole" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" * ^experimental = false -* insert NHSEngland-PublisherContactCopyright +* insert NHSEngland-Copyright * $CareConnect-SDSJobRoleName-1#R0010 "Medical Director" * $CareConnect-SDSJobRoleName-1#R0020 "Clinical Director - Medical" diff --git a/input/fsh/valuesets/RA-ProxyRole.fsh b/input/fsh/valuesets/FlagProxyRole.fsh similarity index 75% rename from input/fsh/valuesets/RA-ProxyRole.fsh rename to input/fsh/valuesets/FlagProxyRole.fsh index aa6873c..9b422c0 100644 --- a/input/fsh/valuesets/RA-ProxyRole.fsh +++ b/input/fsh/valuesets/FlagProxyRole.fsh @@ -1,27 +1,27 @@ -ValueSet: RA-ProxyRole -Id: RA-ProxyRole -Title: "Reasonable Adjustments Record Proxy Role" +ValueSet: FlagProxyRole +Id: FlagProxyRole +Title: "NHSE Flag Proxy Role" Description: "A ValueSet to identify the type/role of the proxy involved." -* ^name = "ReasonableAdjustmentsProxyRole" -* ^url = "https://fhir.nhs.uk/England/ValueSet/RA-ProxyRole" +* ^name = "FlagProxyRole" +* ^url = "https://fhir.nhs.uk/England/ValueSet/FlagProxyRole" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" * ^experimental = false -* insert NHSEngland-PublisherContactCopyright +* insert NHSEngland-Copyright * ^expansion.timestamp = "2024-02-14T12:00:00+00:00" -* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ProxyRole" +* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/FlagProxyRole" * ^expansion.contains[=].code = #001 * ^expansion.contains[=].display = "Patient consent" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ProxyRole" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/FlagProxyRole" * ^expansion.contains[=].code = #002 * ^expansion.contains[=].display = "Best interest decision made on behalf of the patient (Mental Capacity Act 2005)" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ProxyRole" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/FlagProxyRole" * ^expansion.contains[=].code = #003 * ^expansion.contains[=].display = "Lasting power of attorney for health and welfare, or court-appointed deputy, or equivalent" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ProxyRole" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/FlagProxyRole" * ^expansion.contains[=].code = #004 * ^expansion.contains[=].display = "Other legitimate patient representative - parental responsibility" \ No newline at end of file diff --git a/input/fsh/valuesets/PatientFlagCategory.fsh b/input/fsh/valuesets/PatientFlagCategory.fsh index 5505565..16ea52a 100644 --- a/input/fsh/valuesets/PatientFlagCategory.fsh +++ b/input/fsh/valuesets/PatientFlagCategory.fsh @@ -1,7 +1,7 @@ ValueSet: PatientFlagCategory Id: PatientFlagCategory -Title: "PatientFlagCategory" -Description: "A ValueSet to identify the type/category of Flag." +Title: "NHSE Patient Flag Category" +Description: "A ValueSet to identify the type/category of a flag." * ^name = "PatientFlagCategory" * ^url = "https://fhir.nhs.uk/England/ValueSet/PatientFlagCategory" @@ -10,7 +10,7 @@ Description: "A ValueSet to identify the type/category of Flag." * ^date = "2024-02-14" * ^experimental = false -* insert NHSEngland-PublisherContactCopyright +* insert NHSEngland-Copyright * ^expansion.timestamp = "2024-02-14T12:00:00+00:00" * ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory" diff --git a/input/fsh/valuesets/RA-AdjustmentCategory.fsh b/input/fsh/valuesets/ProgrammeFlagCategory.fsh similarity index 68% rename from input/fsh/valuesets/RA-AdjustmentCategory.fsh rename to input/fsh/valuesets/ProgrammeFlagCategory.fsh index 25db3c2..c657675 100644 --- a/input/fsh/valuesets/RA-AdjustmentCategory.fsh +++ b/input/fsh/valuesets/ProgrammeFlagCategory.fsh @@ -1,48 +1,56 @@ -ValueSet: RA-AdjustmentCategory -Id: RA-AdjustmentCategory -Title: "Reasonable Adjustments Record Adjustment Category" -Description: "A ValueSet to identify the category of a Reasonable Adjustment" +ValueSet: ProgrammeFlagCategory +Id: ProgrammeFlagCategory +Title: "NHSE Programme Flag Category" +Description: "A ValueSet to identify the flag category." -* ^name = "ReasonableAdjustmentsCategory" -* ^url = "https://fhir.nhs.uk/England/ValueSet/RA-AdjustmentCategory" +* ^name = "ProgrammeFlagCategory" +* ^url = "https://fhir.nhs.uk/England/ValueSet/ProgrammeFlagCategory" * ^version = "0.1.0" * ^status = #draft * ^date = "2024-02-14" * ^experimental = false -* insert NHSEngland-PublisherContactCopyright +* insert NHSEngland-Copyright * ^expansion.timestamp = "2024-02-14T12:00:00+00:00" -* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory" * ^expansion.contains[=].code = #001 * ^expansion.contains[=].display = "Communication support" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory" * ^expansion.contains[=].code = #002 * ^expansion.contains[=].display = "Requires communication professional" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory" * ^expansion.contains[=].code = #003 * ^expansion.contains[=].display = "Requires specific contact method" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory" * ^expansion.contains[=].code = #004 * ^expansion.contains[=].display = "Requires specific information format" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory" * ^expansion.contains[=].code = #005 * ^expansion.contains[=].display = "Additional communication needs and support" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory" * ^expansion.contains[=].code = #006 * ^expansion.contains[=].display = "Community Language Support" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory" * ^expansion.contains[=].code = #007 * ^expansion.contains[=].display = "Adjustments for providing Additional Support to patients" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory" * ^expansion.contains[=].code = #008 * ^expansion.contains[=].display = "Adjustments for Individual Care Requirements" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory" * ^expansion.contains[=].code = #009 * ^expansion.contains[=].display = "Adjustments in relation to the environment of care" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory" * ^expansion.contains[=].code = #010 * ^expansion.contains[=].display = "Adjustments to support Additional needs" -* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-AdjustmentCategory" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory" * ^expansion.contains[=].code = #011 -* ^expansion.contains[=].display = "Bespoke Reasonable adjustments" \ No newline at end of file +* ^expansion.contains[=].display = "Bespoke Reasonable adjustments" + +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/CPIS-FlagCategory" +* ^expansion.contains[=].code = #001 +* ^expansion.contains[=].display = "Example CPIS category" + +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/FGM-FlagCategory" +* ^expansion.contains[=].code = #001 +* ^expansion.contains[=].display = "Example FGM category" \ No newline at end of file diff --git a/input/fsh/valuesets/ProgrammeFlagCode.fsh b/input/fsh/valuesets/ProgrammeFlagCode.fsh new file mode 100644 index 0000000..370d188 --- /dev/null +++ b/input/fsh/valuesets/ProgrammeFlagCode.fsh @@ -0,0 +1,17 @@ +ValueSet: ProgrammeFlagCode +Id: ProgrammeFlagCode +Title: "NHSE Programme Flag Code" +Description: "A ValueSet containing flag codes for the NHS England Programmes." + +* ^name = "ProgrammeFlagCode" +* ^url = "https://fhir.nhs.uk/England/ValueSet/ProgrammeFlagCode" +* ^version = "0.1.0" +* ^status = #draft +* ^date = "2024-02-14" +* ^experimental = false + +* insert NHSEngland-Copyright + +* codes from system $ValueSetRAFlagCode +* codes from system $ValueSetCPISFlagCode +* codes from system $ValueSetFGMFlagCode \ No newline at end of file diff --git a/input/fsh/valuesets/RA-ConsentPurpose.fsh b/input/fsh/valuesets/RA-ConsentPurpose.fsh deleted file mode 100644 index 6ff8eb9..0000000 --- a/input/fsh/valuesets/RA-ConsentPurpose.fsh +++ /dev/null @@ -1,18 +0,0 @@ -ValueSet: RA-ConsentPurpose -Id: RA-ConsentPurpose -Title: "Reasonable Adjustments Consent Purpose" -Description: "A ValueSet to identify the purpose of a consent given." - -* ^name = "ReasonableAdjustmentsConsentPurpose" -* ^url = "https://fhir.nhs.uk/England/ValueSet/RA-ConsentPurpose" -* ^version = "0.1.0" -* ^status = #draft -* ^date = "2024-02-14" -* ^experimental = false - -* insert NHSEngland-PublisherContactCopyright - -* ^expansion.timestamp = "2024-02-14T12:00:00+00:00" -* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/RA-ConsentPurpose" -* ^expansion.contains[=].code = #RACONSENT -* ^expansion.contains[=].display = "Reasonable Adjustments - Consent to record Reasonable Adjustments" diff --git a/input/fsh/valuesets/RA-FlagCode.fsh b/input/fsh/valuesets/RA-FlagCode.fsh index 02b7a7f..4457d7a 100644 --- a/input/fsh/valuesets/RA-FlagCode.fsh +++ b/input/fsh/valuesets/RA-FlagCode.fsh @@ -1,7 +1,7 @@ ValueSet: RA-FlagCode Id: RA-FlagCode -Title: "ReasonableAdjustmentsFlagCode" -Description: "A ValueSet to identify codes representing Adjustments required for a patient" +Title: "RA Flag Code" +Description: "A ValueSet containing flag codes for the Reasonable Adjustments NHS England Programme" * ^name = "ReasonableAdjustmentsFlagCode" * ^url = "https://fhir.nhs.uk/England/ValueSet/RA-FlagCode" @@ -10,7 +10,7 @@ Description: "A ValueSet to identify codes representing Adjustments required for * ^date = "2024-02-14" * ^experimental = false -* insert NHSEngland-PublisherContactCopyright +* insert NHSEngland-Copyright * ^expansion.timestamp = "2024-02-14T12:00:00+00:00" * ^expansion.contains[0].system = "http://snomed.info/sct" diff --git a/input/images-source/add-record-sequence.plantuml b/input/images-source/add-record-sequence.plantuml index 9f82521..c51a76a 100644 --- a/input/images-source/add-record-sequence.plantuml +++ b/input/images-source/add-record-sequence.plantuml @@ -6,7 +6,7 @@ actor "Practitioner" as pra actor "Patient" as pat participant "FHIR API" as api entity "Consent" as con -entity "Master Flag" as mas +entity "Patient Flag" as flg entity "Adjustment Flag" as adj entity "Condition" as cod @@ -14,45 +14,37 @@ pra -> pat : Examine patient pra -> pat : Suggest adjustments pra <-- pat : Provide consent\nto share information -pra -> api : Record adjustment record +pra -> api : Record adjustment record (transaction Bundle) api -> con : Create/update resource con -> con : Validate -alt Validation failed api <-- con : return -api <- api : rollback -api -> pra : OperationOutcome indicating failure +alt Validation failed + api -> api : rollback end -api <-- con : return -api -> mas : Create/update resource -mas -> mas : Validate +api -> flg : Create/update resource +flg -> flg : Validate +api <-- flg : return alt Validation failed -api <-- mas : return -api <- api : rollback -api -> pra : OperationOutcome indicating failure + api -> api : rollback end api -> adj : Create/update resource adj -> adj : Validate -alt Validation failed api <-- adj : return -api <- api : rollback -api -> pra : OperationOutcome indicating failure +alt Validation failed + api -> api : rollback end alt Condition also to be recorded api -> cod : Create/update resource cod -> cod : Validate -alt Validation failed api <-- cod : return -api <- api : rollback -api -> pra : OperationOutcome indicating failure +alt Validation failed + api -> api : rollback end -api <-- cod : return pra <-- api : OperationOutcome -end - @enduml diff --git a/input/images-source/consent-sequence.plantuml b/input/images-source/consent-sequence.plantuml index 5c3fcf9..ac68d29 100644 --- a/input/images-source/consent-sequence.plantuml +++ b/input/images-source/consent-sequence.plantuml @@ -7,7 +7,7 @@ actor "Patient" as pat actor "Patient Advocate" as pad participant "FHIR API" as api entity "Consent" as con -entity "Master Flag" as mas +entity "Patient Flag" as pfg entity "Adjustment Flag" as adj entity "Condition" as cod @@ -24,17 +24,16 @@ alt Consent has been given api -> con : Create/update resource con -> con : Validate api <-- con : return + alt Validation failed + api -> api : rollback + end pra <-- api : OperationOutcome else Consent has not been given/been revoked pra -> api : Record consent was not given api -> con : Delete adjustment consent - api <-- con : return - api -> mas : Delete adjustment master flag - api <-- mas : return + api -> pfg : Delete adjustment patient flag api -> adj : Delete adjustment flag(s) - api <-- adj : return api -> cod : Delete condition flag(s) - api <-- cod : return pra <-- api : OperationOutcome end diff --git a/input/images-source/data-model.plantuml b/input/images-source/data-model.plantuml index f51c915..0b67f6a 100644 --- a/input/images-source/data-model.plantuml +++ b/input/images-source/data-model.plantuml @@ -9,28 +9,28 @@ entity "Patient" as pat { entity "Consent" as con { *patient : Patient *category : CodeableConcept - *contained : Provenance + *contained : Provenance (Contained) } entity "Condition" as cod { *patient : Patient *code : CodeableConcept *category : CodeableConcept - *contained : Provenance + *contained : Provenance (Contained) } -entity "Master Flag" as mas { +entity "Patient Flag" as pfg { *patient : Patient *code : CodeableConcept *category : CodeableConcept - *contained : Provenance + *contained : Provenance (Contained) } entity "Adjustment Flag" as adj { *patient : Patient *code : CodeableConcept *category : CodeableConcept - *contained : Provenance + *contained : Provenance (Contained) } entity "Provenance" as pro { @@ -40,11 +40,11 @@ entity "Provenance" as pro { pat ||..|| con : provides pat ||--o{ cod : has -pat ||--o| mas : "has" +pat ||--o| pfg : "has" pat ||--o{ adj : has con ||--|| pro : contains cod ||--|| pro : contains -mas ||--|| pro : contains +pfg ||--|| pro : contains adj ||--|| pro : contains @enduml diff --git a/input/images-source/retrieve-record-sequence.plantuml b/input/images-source/retrieve-record-sequence.plantuml new file mode 100644 index 0000000..36f204d --- /dev/null +++ b/input/images-source/retrieve-record-sequence.plantuml @@ -0,0 +1,15 @@ +@startuml + +skinparam actorStyle hollow + +actor "Practitioner" as pra +actor "Patient" as pat +participant "FHIR API" as api + +pra -> pat : Request confirmation\n of consent to\n access information +pra <-- pat : Provide consent\nto share information + +pra -> api : Application GET / +pra <-- api : SearchSet Bundle + +@enduml diff --git a/input/images-source/retrieve-record-usecase.plantuml b/input/images-source/retrieve-record-usecase.plantuml new file mode 100644 index 0000000..ddefde9 --- /dev/null +++ b/input/images-source/retrieve-record-usecase.plantuml @@ -0,0 +1,21 @@ +@startuml + +skinparam actorStyle awesome + +actor Practitioner as pra +package Consenter { + actor "Patient Advocate" as pad + actor Patient as pat +} + +usecase "Consent to share information" as CON +usecase "Retrieve Reasonable Adjustment record" as RET + +pat -- CON +pad -- CON +pra -- CON +pra -- RET + +CON <.. RET : include + +@enduml diff --git a/input/images/add-record-workflow.bpmn b/input/images/add-record-workflow.bpmn index 0e90358..ae5b456 100644 --- a/input/images/add-record-workflow.bpmn +++ b/input/images/add-record-workflow.bpmn @@ -1,5 +1,5 @@ - + @@ -12,10 +12,11 @@ Activity_0dhbqc4 Event_0l5456e + Activity_1qe7rt1 + Event_0nheh7a Gateway_1171opp - Event_1u82otg Activity_1s5y9xm @@ -39,7 +40,6 @@ - @@ -48,12 +48,9 @@ Flow_1vk7ynh - Flow_14fqz6o Flow_1e2o9um + Flow_1a3rt06 - - Flow_14fqz6o - Flow_1jisczp Flow_0yxt3zu @@ -61,6 +58,15 @@ Flow_0yxt3zu + + Flow_1a3rt06 + Flow_1tggx8z + + + + + Flow_1tggx8z + @@ -91,20 +97,23 @@ + + + + + + - - - - - + + @@ -122,13 +131,6 @@ - - - - - - - @@ -141,17 +143,31 @@ - - - + + + + + + + + + + + + + + + + + diff --git a/input/images/add-record-workflow.svg b/input/images/add-record-workflow.svg index 359bb05..0f9627b 100644 --- a/input/images/add-record-workflow.svg +++ b/input/images/add-record-workflow.svg @@ -1,4 +1,4 @@ -Consent to TreatmentPractitionerPatientAPIRecord adjustment and/or conditionExamine patient and suggest adjustmentsUpdate ResourcesProvide consentYesNoConsent granted? \ No newline at end of file +Consent to TreatmentPractitionerPatientAPIRecord adjustment and/or conditionExamine patient and suggest adjustmentsProvide consentUpdate ResourcesRevoke/remove Consent & RA recordsYesConsent granted?No \ No newline at end of file diff --git a/input/images/retrieve-record-workflow.bpmn b/input/images/retrieve-record-workflow.bpmn new file mode 100644 index 0000000..c7e8077 --- /dev/null +++ b/input/images/retrieve-record-workflow.bpmn @@ -0,0 +1,190 @@ + + + + + + Consent granted? + + + + + + + Activity_0dhbqc4 + Activity_0f2zwq2 + Event_1tii599 + + + Activity_1s5y9xm + Gateway_1171opp + + + Event_03tz7z4 + Activity_1lxn6f7 + Activity_00yhqnr + Activity_11a6p73 + Event_0qlq94j + + + + Flow_0ws129z + + + + Flow_1e2o9um + Flow_1jisczp + + + Flow_0ws129z + Flow_1y1ffd0 + + + + + + + Flow_1y1ffd0 + Flow_1vk7ynh + + + Flow_1vk7ynh + Flow_1e2o9um + Flow_1cx5q9g + + + Flow_1jisczp + Flow_13blkkd + + + Flow_13blkkd + Flow_1dyrqyw + + + + Flow_1dyrqyw + + + + + + Flow_1cx5q9g + Flow_0fh1jdb + + + Flow_0fh1jdb + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/input/images/retrieve-record-workflow.svg b/input/images/retrieve-record-workflow.svg new file mode 100644 index 0000000..709b921 --- /dev/null +++ b/input/images/retrieve-record-workflow.svg @@ -0,0 +1,4 @@ + + + +Consent to TreatmentPractitionerPatientAPIQuery for Reasonable Adjustment recordsDetermine need for access to Reasonable Adjustment recordReturn recordsReview recordsConfirm/provideconsentRevoke/remove Consent & RA recordsYesConsent granted?No \ No newline at end of file diff --git a/input/pagecontent/add-reasonable-adjustment-record.md b/input/pagecontent/add-reasonable-adjustment-record.md index b2441bd..ac42c5a 100644 --- a/input/pagecontent/add-reasonable-adjustment-record.md +++ b/input/pagecontent/add-reasonable-adjustment-record.md @@ -1,17 +1,14 @@ ### Overview -Patient consent must be obtained before recording any adjustment. See [Consent to Share Information](consent-to-share-information.html) for details. +Patient consent must be obtained before recording any adjustment or impairment. See [Consent to Share Information](consent-to-share-information.html) for details of requirements around consent. -Key purposes of the Reasonable Adjustment Flag include: - -* identifying a patient may require services to be adjusted -* identifying when patients with specific impairments present for care (learning impairments, behavioural impairments or any other impairment in line with the disability protected characteristic of the [Equality Act (2010)](https://www.gov.uk/guidance/equality-act-2010-guidance)). -* ensuring the key information is shared consistently across health and care – wherever the patient is treated. -* ensuring that the information is clearly visible in clinical systems +For high level requirements, see [Key purposes of the Reasonable Adjustment Flag](index.html#key-purposes) ### Usecase -After obtaining consent from a patient, an adjustment flag may be created. A condition may also optionally be recorded. If an adjustment flag exists, there must be an additional flag created, designated as the master flag, to indicate that there are reasonable adjustments recorded for the patient. +After obtaining consent from a patient, a Reasonable Adjustment Record may be created. This consists of a Flag resource containing an adjustment and a Condition resource may also optionally be created to record the details of an impairment. + +If a Reasonable Adjustment Record exists, a Flag resource designated as the patient flag must be created to indicate that there are reasonable adjustments recorded for the patient. There is a single instance of this type of resource per patient.
@@ -25,22 +22,22 @@ After obtaining consent from a patient, an adjustment flag may be created. A co Given a practitioner has received consent from a patient And the consent is for reasonable adjustments When a practioner adds an adjustment flag -Then an additional flag designated as a master flag will be created +Then an additional flag designated as a patient flag will be created Given a practitioner has received consent from a patient And the consent is for reasonable adjustments -When a practioner adds an master flag -Then the details of who created the master flag will be recorded +When a practioner adds an patient flag +Then the details of who created the patient flag will be recorded And the flag will be linked to the patient Given a practitioner has received consent from a patient And the consent is for reasonable adjustments -When a practioner adds an master flag +When a practioner adds an patient flag Then the category of the flag will indicate that it is reasonable adjustments Given a practitioner has received consent from a patient And the consent is for reasonable adjustments -When a practioner adds an master flag +When a practioner adds an patient flag Then the code of the flag will indicate that it is reasonable adjustments Given a practitioner has received consent from a patient @@ -103,21 +100,21 @@ The practioner decides to record a condition with the patients consent. This co * [Patient example](Patient-PatientExample1.html) -The following set of examples constitute the individual associated resources with the intial addition of a flag for Reasonable Adjustment. This includes the Consent resource where the patient has agreed to share information. Also a master Flag resource, the adjustment Flag resource and the associated Condition resource. All resources have contained provenances. +The following set of examples constitute the individual associated resources with the intial addition of a flag for Reasonable Adjustment. This includes the Consent resource where the patient has agreed to share information. Also a patient Flag resource, the adjustment Flag resource and the associated Condition resource. All resources have contained provenances. A transaction Bundle is also given that allows these resources (plus the patient) to be entered in an atomic traction. It uses PUTs, where in the case of an intial update, it may be done as a [conditional update](https://www.hl7.org/fhir/http.html#cond-update) -* [Consent](Consent-ConsentExample1.html) -* [Master flag](Flag-MasterFlagExample1.html) -* [Adjustment flag 1](Flag-AdjustmentFlagExample1.html) -* [Condition 1](Condition-ConditionExample1.html) -* [Transaction Bundle 1](Bundle-AddConditionTransactionExample1.html) +* [Consent](Consent-RAConsentExample1.html) +* [Patient flag](Flag-RAPatientFlagExample1.html) +* [Reasonable Adjustment flag 1](Flag-RAFlagExample1.html) +* [Condition 1](Condition-RAConditionExample1.html) +* [Transaction Bundle 1](Bundle-AddRARecordTransactionExample1.html) The following set of examples are for the same patient, and constitute an addition flag and condition. The transaction Bundle here illustates an idempotent update by simply adding the new resources to the first transaction Bundle. -* [Adjustment flag 2](Flag-AdjustmentFlagExample2.html) -* [Condition 2](Condition-ConditionExample2.html) -* [Transaction Bundle 2](Bundle-AddConditionTransactionExample2.html) +* [Reasonable Adjustment flag 2](Flag-RAFlagExample2.html) +* [Condition 2](Condition-RAConditionExample2.html) +* [Transaction Bundle 2](Bundle-AddRARecordTransactionExample2.html) ### Relevant Documentation diff --git a/input/pagecontent/additional-examples.md b/input/pagecontent/additional-examples.md new file mode 100644 index 0000000..9e55ee1 --- /dev/null +++ b/input/pagecontent/additional-examples.md @@ -0,0 +1,19 @@ +### Overview + +Basic examples for CPIS and FGM to demo use of same profiles. + +### CPIS + +* [Consent](Consent-CPISConsentExample1.html) +* [Patient flag](Flag-CPISPatientFlagExample1.html) +* [CPIS flag](Flag-CPISFlagExample1.html) +* [Condition](Condition-CPISConditionExample1.html) +* [Transaction Bundle](Bundle-AddCPISRecordTransactionExample1.html) + +### FGM + +* [Consent](Consent-FGMConsentExample1.html) +* [Patient flag](Flag-FGMPatientFlagExample1.html) +* [FGM flag](Flag-FGMFlagExample1.html) +* [Condition](Condition-FGMConditionExample1.html) +* [Transaction Bundle](Bundle-AddFGMRecordTransactionExample1.html) \ No newline at end of file diff --git a/input/pagecontent/consent-to-share-information.md b/input/pagecontent/consent-to-share-information.md index c44c45c..c2d38cd 100644 --- a/input/pagecontent/consent-to-share-information.md +++ b/input/pagecontent/consent-to-share-information.md @@ -62,7 +62,7 @@ If consent is not given, then this will be recorded. If there was previous cons If consent is given either by the patient or the patient advocate, then this should be recorded. A record of who obtained the consent must also be embedded in the Consent resource. This will done using a provenance resource. If consent has not been previously given, then this means the Consent resource must be created. If consent is removed, then the Consent resource should be deleted. The absence of a Consent resource implies patient dissent. -If consent is removed, then all previous adjustment records must be deleted, including the master flag and all adjustment flags and conditions. +If consent is removed, then all previous adjustment records must be deleted, including the patient flag and all adjustment flags and conditions.
@@ -72,6 +72,6 @@ If consent is removed, then all previous adjustment records must be deleted, inc ### Examples -* [Consent is given example](Consent-ConsentExample1.html) +* [Consent is given example](Consent-RAConsentExample1.html) * Consent is not given is implied by the absence of a Consent resource * Consent is revoked is implied by the absence of a Consent resource diff --git a/input/pagecontent/data-model.md b/input/pagecontent/data-model.md index 113972d..272ef15 100644 --- a/input/pagecontent/data-model.md +++ b/input/pagecontent/data-model.md @@ -1,29 +1,49 @@ ### Summary -The RA record is made up of Consent, Condition, Flag and Provenances resources. The Consent, Condition and Flag resources are linked via a Patient resource. The Provenace resource is only scoped to a sinle Flag and has no lifetime outside of the Flag (specific version) resource. +The RA record is made up of Consent, Condition, Flag and Provenances resources. The Consent, Condition and Flag resources are linked via a Patient resource. Provenance of all resources that make up an RA record must be stored. This is modelled here as a contained resource, and as such has no lifetime outside of the constituent RA record resources. ### Data Model -
- RA Record Data Model -
-
erDiagram + Patient { + NHS-number identifier + } + Consent { + patient Patient + category CodeableConcept + contained Provenance + } + Condition { + patient Patient + code CodeableConcept + category CodeableConcept + contained Provenance + } + PatientFlag { + patient Patient + code CodeableConcept + category CodeableConcept + contained Provenance + } + ProgrammeFlag { + patient Patient + code CodeableConcept + category CodeableConcept + contained Provenance + } + Provenance { + recorded DateTime + agent Agent + } Patient ||..|| Consent : provides Patient ||--o{ Condition : has - Patient ||--o| "Master Flag" : "has" - Patient ||--o{ "Adjustment Flag" : has + Patient ||--o| PatientFlag : has + Patient ||--o{ ProgrammeFlag : has Consent ||--|| Provenance : contains Condition ||--|| Provenance : contains - "Master Flag" ||--|| Provenance : contains - "Adjustment Flag" ||--|| Provenance : contains -
- -
- -{%include data-model.svg%} - + PatientFlag ||--|| Provenance : contains + ProgrammeFlag ||--|| Provenance : contains
\ No newline at end of file diff --git a/input/pagecontent/index.md b/input/pagecontent/index.md index 731086a..91a7e1f 100644 --- a/input/pagecontent/index.md +++ b/input/pagecontent/index.md @@ -4,19 +4,32 @@ The FHIR® Reasonable Adjustments API has been developed by NHS England. The API The vision is to create a library of nationally defined HL7® FHIR® resources and interaction patterns that implementers can adopt to simplify integration and interoperability within UK health and social care. -Please click [here](toc.html) for conformance guidance for NHS England programmes, products and systems. - ### Programme Mission NHS England, in partnership with patient and carer groups and other key stakeholders are working to develop a national reasonable adjustment flag which will be available to organisations providing direct care to the patient. The flag will be visible from when the patient is referred, registers for care or presents in an emergency. -It will also eventually be available to screening services. It can indicate the patient’s key impairments (as defined in the Equality Act 2010) across areas including learning, mobility, mental health, social or behavioural to make receiving organisations understand that the patient should be considered for adjustments to care. The flag can also indicate key potential reasonable adjustments such as the need for accessible information, carer involvement, priority appointments or other adjustments to care. +It will also eventually be available to screening services. It can indicate the patient’s key impairments (as defined in the [Equality Act 2010](https://www.gov.uk/guidance/equality-act-2010-guidance)) across areas including learning, mobility, mental health, social or behavioural to make receiving organisations understand that the patient should be considered for adjustments to care. The flag can also indicate key potential reasonable adjustments such as the need for accessible information, carer involvement, priority appointments or other adjustments to care. + + +Key purposes of the Reasonable Adjustment Flag include: + +* identifying a patient may require services to be adjusted +* identifying when patients with specific impairments present for care (learning impairments, behavioural impairments or any other impairment in line with the disability protected characteristic of the [Equality Act (2010)](https://www.gov.uk/guidance/equality-act-2010-guidance)). +* ensuring the key information is shared consistently across health and care – wherever the patient is treated. +* ensuring that the information is clearly visible in clinical systems + +### Dependencies + +{% include dependency-table.xhtml %} + +### Cross Version Analysis + +{% include cross-version-analysis.xhtml %} + +### Global Profiles + +{% include globals-table.xhtml %} -### Licence +### IP statements - \ No newline at end of file +{% include ip-statements.xhtml %} \ No newline at end of file diff --git a/input/pagecontent/remove-ra-record.md b/input/pagecontent/remove-reasonable-adjustment-record.md similarity index 100% rename from input/pagecontent/remove-ra-record.md rename to input/pagecontent/remove-reasonable-adjustment-record.md diff --git a/input/pagecontent/retrieve-ra-record.md b/input/pagecontent/retrieve-ra-record.md deleted file mode 100644 index 1041893..0000000 --- a/input/pagecontent/retrieve-ra-record.md +++ /dev/null @@ -1,42 +0,0 @@ -### Summary - -

Practioner wishes to read/retrieve RA Record

- -#### Workflow -

-A patient presents to be examined by a practitioner. The practitioner perofrms an examination and retrieve Patient's RA Record. - -

- -
- Activity created in draw.io! -
- -##### Patient's RA Record Retrieved - -
- Patient's RA Record Retrieved -
- -#### Example - -For each transaction example provided in the previous section, the following query will performed (dynamically during the IG build) - -``` -GET /Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient -``` - -This query will return the Patient resource using the patients NHS number (TODO will be profiled to check for this, reference this later). The assocaited resources that make up the RA Record are also returned, such as -* Consent resources (maybe link to profiles here) -* Flag resources -* Condition resources -which are all returned using default Patient SearchParameters (defined in the base specification). - -First Bundle example: -* [Bundle transaction](Bundle-AddConditionTransactionExample1.html) -* [Query output](Bundle-QUERY-OUTPUT--0005-add-condition-transaction-example.html) - -Second Bundle example: -* [Bundle transaction](Bundle-AddConditionTransactionExample2.html) -* [Query output](Bundle-QUERY-OUTPUT--0006-add-condition-transaction-example.html) - diff --git a/input/pagecontent/retrieve-reasonable-adjustment-record.md b/input/pagecontent/retrieve-reasonable-adjustment-record.md new file mode 100644 index 0000000..9de73bd --- /dev/null +++ b/input/pagecontent/retrieve-reasonable-adjustment-record.md @@ -0,0 +1,115 @@ +### Overview + +Patient consent must be obtained before retrieving any adjustment or impairment. See [Consent to Share Information](consent-to-share-information.html) for details of requirements around consent. + +For high level requirements, see [Key purposes of the Reasonable Adjustment Flag](index.html#key-purposes) + +### Usecase + +After obtaining consent from a patient, a Reasonable Adjustment Record may be retrieved if it exists. It will be possible to determine that a adjustment flags exist by searching for a [Patient Flag](StructureDefinition-PatientFlag.html) with the code [NRAF](CodeSystem-PatientFlagCategory.html#PatientFlagCategory-NRAF), or [Programme Flags](StructureDefinition-ProgrammeFlag.html) with a category of [NRAF](CodeSystem-PatientFlagCategory.html#PatientFlagCategory-NRAF). + +
+ + {%include retrieve-record-usecase.svg%} + +
+ +### Workflow + +A practitioner confirms that a patient consents to share information about Reasonable Adjustment records. A patient may revoke consent to share information about Reasonable Adjustment records and if they do, all records should be removed. + +
+ Activity created in draw.io! +
+ +### System Interactions + +Using [FHIR search](https://www.hl7.org/fhir/search.html) capabilities, it is possible to retrieve the reasonable adjustment records in several ways. + +#### General query interaction + +
+ + {%include retrieve-record-usecase.svg%} + +
+ +The following queries will return all or some of the resources constituing a Reasonable Adjustments record, i.e. + +* [Flag Consent](StructureDefinition-FlagConsent.html) resource +* [Patient Flag](StructureDefinition-PatientFlag.html) resources +* [Programme Flag](StructureDefinition-ProgrammeFlag.html) resources +* [Flag Condition](StructureDefinition-FlagCondition.html) resources + +All queries rely on the [FlagCategory](SearchParameter-FlagCategory.html) and [FlagCode](SearchParameter-FlagCode.html) SearchParameters. + +#### Patient endpoint search + +This will return all resources associated flag resources for a patient + +``` +GET /Patient?identifier=9912003888&_has:Flag:patient:code=NRAF&_has:Flag:patient:category=NRAF&_revinclude=Flag:patient&_has:Consent:patient:category=NRAF&_revinclude=Consent:patient&_has:Condition:patient:category=NRAF&_revinclude=Condition:patient +``` + +This limits the search to patients thant have the identifier `9912003888` + +``` +identifier=9912003888 +``` + +This limits the search to patients that have Flag resources linked via patient and have the code NRAF, and also includes the resource in the returned searchset Bundle. + +``` +&_has:Flag:patient:code=NRAF&_revinclude=Flag:patient +``` + +This limits the search to patients that have Flag resources linked via patient and have the category NRAF, and also includes the resource in the returned searchset Bundle. + +``` +&_has:Flag:patient:category=NRAF&_revinclude=Flag:patient +``` + +This limits the search to patients that have Consent resources linked via patient and have the category NRAF, and also includes the resource in the returned searchset Bundle. + +``` +&_has:Consent:patient:category=NRAF&_revinclude=Consent:patient +``` + +This limits the search to patients that have Condition resources linked via patient and have the category NRAF, and also includes the resource in the returned searchset Bundle. + +``` +&_has:Condition:patient:category=NRAF&_revinclude=Condition:patient +``` + +#### Flag endpoint search using flag-detail extension + +If the [flag-detail extension](http://hl7.org/fhir/StructureDefinition/flag-detail) is used, then references to all Reasonable Adjustment resources can be included the [Patient Flag](StructureDefinition-PatientFlag.html) resource. + +**NOTE:** For every additional record/resource added, the flag-detail element in the Patient Flag resource will need updated. + +**TODO:** add this into the add record interaction diagram :( + +The following query relies on the [FlagDetail](SearchParameter-FlagDetail.html) SearchParameter. + +``` +http://localhost:8080/fhir/Flag?patient.identifier=9912003888&_include=Flag:detail&_include=Flag:patient +``` + +This limits the search to patients thant have the identifier `9912003888` + +``` +patient.identifier=9912003888=9912003888 +``` + +This includes all references in the flag detail extension that have been defined in the [FlagDetail](SearchParameter-FlagDetail.html) SearchParameter. + +``` +&_include=Flag:detail +``` + +This includes the associated patient resource. + +``` +&_include=Flag:patient +``` + diff --git a/input/pagecontent/server-examples.md b/input/pagecontent/server-examples.md index 224a128..9979eab 100644 --- a/input/pagecontent/server-examples.md +++ b/input/pagecontent/server-examples.md @@ -48,11 +48,11 @@ TODO ##### Example 2 -The first example [Bundle transaction](Bundle-AddConditionTransactionExample1.html) adds an RA record consisting of +The first example [Bundle transaction](Bundle-AddRARecordTransactionExample1.html) adds an RA record consisting of * a Patient resource * a Consent resource -* a (master) Flag resource (is this really needed?) +* a (patient) Flag resource (is this really needed?) * a Condition resource (associated with the following Flag) * a Flag resource (associated with the Condition) @@ -60,13 +60,13 @@ These resources are contained in a transaction Bundle, which provides atomicity Each Flag resource (TODO embed in all or make separate)has a Provenance resource embedded in it. (TODO maybe a futher discussion section somewhere on options for provenance, i.e. linking to versions, _history and transaction considerations, options to use etag or X-provenance). -Another example [Bundle transaction](Bundle-AddConditionTransactionExample2.html) modifies the first transaction by adding additional resources for another Condition and adjustment (Flag). +Another example [Bundle transaction](Bundle-AddRARecordTransactionExample2.html) modifies the first transaction by adding additional resources for another Condition and adjustment (Flag). The transactions are using PUT's to provide (upsert)[https://hl7.org/fhir/http.html#upsert] functionality. The HAPI Starter Server (provided via docker) supports this part of the specification. #### Retrieve RA Record -This section provides examples for those given in the use case [Retrieve RA Record](retrieve-ra-record.html). +This section provides examples for those given in the use case [Retrieve RA Record](retrieve-reasonable-adjustment-record.html). ##### Example 1 @@ -84,13 +84,13 @@ which are all returned using default Patient SearchParameters (defined in the ba First Bundle example: -* [Bundle transaction](Bundle-AddConditionTransactionExample1.html) -* [Query output](Bundle-QUERY-OUTPUT--0005-add-condition-transaction-example.html) +* [Bundle transaction](Bundle-AddRARecordTransactionExample1.html) +* [Query output](Bundle-QUERY-OUTPUT--0005-add-ra-record-transaction-example.html) Second Bundle example: -* [Bundle transaction](Bundle-AddConditionTransactionExample2.html) -* [Query output](Bundle-QUERY-OUTPUT--0006-add-condition-transaction-example.html) +* [Bundle transaction](Bundle-AddRARecordTransactionExample2.html) +* [Query output](Bundle-QUERY-OUTPUT--0006-add-ra-record-transaction-example.html) #### Remove RA Record diff --git a/input/resources/CareConnect-SDSJobRoleName-1.json b/input/resources/CareConnect-SDSJobRoleName-1.json deleted file mode 100644 index 48d2bc9..0000000 --- a/input/resources/CareConnect-SDSJobRoleName-1.json +++ /dev/null @@ -1,1593 +0,0 @@ -{ - "resourceType" : "CodeSystem", - "id" : "CareConnect-SDSJobRoleName-1", - "text" : { - "status" : "generated", - "div" : "

This code system https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1 defines the following codes:

CodeDisplay
R0010 Medical Director
R0020 Clinical Director - Medical
R0210 Director of Public Health
R0030 Professor
R0040 Senior Lecturer
R0050 Consultant
R0060 Special Salary Scale in Public Health Medicine
R0070 Associate Specialist
R0080 Staff Grade
R0090 Hospital Practitioner
R0100 Clinical Assistant
R0110 Specialist Registrar
R0120 Senior Registrar (Closed)
R0130 Registrar (Closed)
R0140 Senior House Officer
R0150 House Officer - Pre Registration
R0160 House Officer - Post Registration
R0170 Trust Grade Doctor - House Officer level
R0180 Trust Grade Doctor - SHO level
R0190 Trust Grade Doctor - Specialist Registrar level
R0200 Trust Grade Doctor - Career Grade level
R0260 General Medical Practitioner
R0270 Salaried General Practitioner
R1981 Psychiatrist
R1984 Health Records Administrator
R6200 GP Registrar
R6300 Sessional GP
R7140 ODP
R7150 SODP
R9100 A&E Staff Nurse (Temporary) London Cluster Only
R9101 A&E Manager (Temporary) London Cluster Only
R9102 A&E Doctor (Temporary) London Cluster only
R9103 A&E Student (Temporary) London Cluster Only
R9104 A&E Clerk (Temporary) London Cluster Only
R0215 Assistant Clinical Medical Officer
R0220 Clinical Medical Officer
R0230 Senior Clinical Medical Officer
R0240 Other Community Health Service
R0243 Other Community Health Service - Social Care Worker
R0247 Other Community Health Service - Admin Clerk
R0055 Dental Surgeon acting as Hospital Consultant
R0250 General Dental Practitioner
R0280 Regional Dental Officer
R0290 Dental Clinical Director - Dental
R0295 Dental Assistant Clinical Director
R0300 Dental Officer
R0310 Senior Dental Officer
R0320 Salaried Dental Practitioner
R0006 Student Community Practitioner
R0330 Student Nurse - Adult Branch
R0340 Student Nurse - Child Branch
R0350 Student Nurse - Mental Health Branch
R0360 Student Nurse - Learning Disabilities Branch
R0370 Student Midwife
R0380 Student Health Visitor
R0390 Student District Nurse
R0400 Student School Nurse
R0410 Student Practice Nurse
R0420 Student Occupational Health Nurse
R0430 Student Community Paediatric Nurse
R0440 Student Community Mental Health Nurse
R0450 Student Community Learning Disabilities Nurse
R0460 Student Chiropodist
R0470 Student Dietitian
R0480 Student Occupational Therapist
R0490 Student Orthoptist
R0500 Student Physiotherapist
R0510 Student Radiographer - Diagnostic
R0520 Student Radiographer - Therapeutic
R0530 Student Speech & Language Therapist
R0540 Art, Music & Drama Student
R0550 Student Psychotherapist
R6400 Medical Student
R0560 Director of Nursing
R0580 Nurse Manager
R0610 Sister/Charge Nurse
R1976 Community Team Manager
R0570 Nurse Consultant
R0600 Specialist Nurse Practitioner
R0620 Staff Nurse
R0630 Enrolled Nurse
R0690 Community Practitioner
R0700 Community Nurse
R1974 Community Learning Disabilities Nurse
R1975 Community Mental Health Nurse
R0590 Modern Matron
R1972 Clinical Team Manager
R0640 Midwife - Consultant
R0650 Midwife - Specialist Practitioner
R0660 Midwife - Manager
R0670 Midwife - Sister/Charge Nurse
R0680 Midwife
R0018 Audiologist
R0750 Chiropodist/Podiatrist
R0760 Chiropodist/Podiatrist Consultant
R0770 Chiropodist/Podiatrist Manager
R0780 Chiropodist/Podiatrist Specialist Practitioner
R0790 Dietitian
R0800 Dietitian Consultant
R0810 Dietitian Manager
R0820 Dietitian Specialist Practitioner
R0950 Occupational Therapist
R0960 Occupational Therapist Consultant
R0970 Occupational Therapist Manager
R0980 Occupational Therapy Specialist Practitioner
R0990 Orthoptist
R1000 Orthoptist Consultant
R1010 Orthoptist Manager
R1020 Orthoptist Specialist Practitioner
R1110 Physiotherapist
R1120 Physiotherapist Consultant
R1130 Physiotherapist Manager
R1140 Physiotherapist Specialist Practitioner
R1070 Paramedic
R1080 Paramedic Consultant
R1090 Paramedic Manager
R1100 Paramedic Specialist Practitioner
R0003 Clinical Application Administrator
R0012 Radiographer
R0013 Student Radiographer
R0014 Radiologist
R0015 PACS Administrator
R0016 Reporting Radiographer
R0017 Assistant Practitioner
R1190 Radiographer - Diagnostic
R1200 Radiographer - Diagnostic, Consultant
R1210 Radiographer - Diagnostic, Manager
R1220 Radiographer - Diagnostic, Specialist Practitioner
R1230 Radiographer - Therapeutic
R1240 Radiographer - Therapeutic, Consultant
R1250 Radiographer - Therapeutic, Manager
R1260 Radiographer - Therapeutic, Specialist Practitioner
R1030 Orthotist
R1040 Orthotist Consultant
R1050 Orthotist Manager
R1060 Orthotist Specialist Practitioner
R1150 Prosthetist
R1160 Prosthetist Consultant
R1170 Prosthetist Manager
R1180 Prosthetist Specialist Practitioner
R0710 Art Therapist
R0720 Art Therapist Consultant
R0730 Art Therapist Manager
R0740 Art Therapist Specialist Practitioner
R0830 Drama Therapist
R0840 Drama Therapist Consultant
R0850 Drama Therapist Manager
R0860 Drama Therapist Specialist Practitioner
R0870 Multi Therapist
R0880 Multi Therapist Consultant
R0890 Multi Therapist Manager
R0900 Multi Therapist Specialist Practitioner
R0910 Music Therapist
R0920 Music Therapist Consultant
R0930 Music Therapist Manager
R0940 Music Therapist Specialist Practitioner
R0955 Speech & Language Therapist
R0965 Speech & Language Therapist Consultant
R0975 Speech & Language Therapist Manager
R0985 Speech & Language Therapist Specialist Practitioner
R9500 Social Services Senior Management
R9505 Social Services Policy and Planning
R9510 Social Services Information Manager
R9515 Social Work Team Manager (Children)
R9520 Senior Social Worker (Children)
R9525 Social Services Care Manager (Children)
R9530 Social Work Assistant (Children)
R9535 Child Protection Worker
R9540 Family Placement Worker
R9545 Community Worker (Children)
R9550 Occupational Therapist
R9555 Occupational Therapist Assistant
R9560 Occupational Therapy Team Manager
R9565 Social Work Team Manager (Adults)
R9570 Senior Social Worker (Adults)
R9575 Social Services Care Manager (Adults)
R9580 Social Work Assistant (Adults)
R9585 Social Work Team Manager (Mental Health)
R9590 Senior Social Worker (Mental Health)
R9595 Social Services Care Manager (Mental Health)
R9600 Social Work Assistant (Mental Health)
R9605 Emergency Duty Social Worker
R9615 Social Services Driver
R9620 Home Care Organiser
R9625 Home Care Administrator
R9630 Home Help
R9635 Warden
R9640 Meals on Wheels Organiser
R9645 Meals Delivery
R9650 Day Centre Manager
R9655 Day Centre Deputy
R9660 Day Centre Officer
R9665 Day Centre Care Staff
R9670 Family Centre Manager
R9675 Family Centre Deputy
R9680 Family Centre Worker
R9685 Nursery Manager
R9690 Nursery Deputy
R9695 Nursery Worker
R9700 Playgroup Leader
R9705 Playgroup Assistant
R9710 Residential Manager
R9715 Residential Deputy
R9720 Residential Worker
R9725 Residential Care Staff
R9730 Intermediate Care Manager
R9735 Intermediate Care Deputy
R9740 Intermediate Care Worker
R9745 Intermediate Care Staff
R9750 Social Care SAP User
R9755 Social Care SAP Manager
R1270 Clinical Director
R1280 Optometrist
R1290 Pharmacist
R1979 Medical Technical Officer - Pharmacy
R1300 Psychotherapist
R1310 Clinical Psychologist
R1320 Chaplain
R1330 Social Worker
R1340 Approved Social Worker
R1350 Youth Worker
R1360 Specialist Practitioner
R1370 Practitioner
R0011 Dispenser
R1380 Technician - PS&T
R1390 Osteopath
R1400 Healthcare Scientist
R1410 Consultant Healthcare Scientist
R1420 Biomedical Scientist
R0019 Medical Technical Officer
R1430 Technician - Healthcare Scientists
R1440 Therapist
R1540 Associate Practitioner
R1543 Associate Practitioner - Nurse
R1547 Associate Practitioner - General Practitioner
R1560 Helper/Assistant
R1600 Cytoscreener
R1570 Dental Surgery Assistant
R1450 Health Care Support Worker
R1580 Medical Laboratory Assistant
R1550 Counsellor
R0002 Porter
R1690 Call Operator
R1700 Gateway Worker
R1710 Support, Time, Recovery Worker
R1480 Healthcare Assistant
R1490 Nursery Nurse
R1590 Phlebotomist
R1460 Social Care Support Worker
R1470 Home Help
R1520 Technician - Additional Clinical Services
R1530 Technical Instructor
R1980 Patient Welfare Officer
R1500 Play Therapist
R1510 Play Specialist
R1610 Student Technician
R1620 Trainee Scientist
R1630 Trainee Practitioner
R1640 Nursing Cadet
R1650 Healthcare Cadet
R1660 Pre-reg Pharmacist
R1670 Assistant Psychologist
R1680 Assistant Psychotherapist
R0007 ERS SDS Organisation Reporting Analyst
R0008 Demographic Supervisor
R0021 DSA NHS Number Manager (Temporary)
R0022 DSA National Clinical Supervisor (Temporary)
R0023 DSA National Clinical Administrator (Temporary)
R1720 Clerical Worker
R1730 Receptionist
R1740 Secretary
R1750 Personal Assistant
R1751 Demographic Administrator (Sensitive Records) Temporary
R1760 Medical Secretary
R1770 Officer
R1971 Map of Medicine Administrator
R1973 Community Administrator
R1977 ECC/CPA Administrator
R1978 Information Officer
R1985 Health Records Clerk
R1995 End Point Approver
R5010 Network Technician
R5040 Desktop Support Administrator
R5090 Registration Authority Agent
R5110 Demographic Administrator
R5120 ISP Administrator
R5130 Technical Codes Administrator
R5140 OSS Administrator
R5170 End Point Administrator
R5175 End Point Viewer
R5181 RTS Dashboard User
R5183 RTS BT Dashboard User
R5186 ERS BT Customer SLA User
R5188 ERS BT Supplier SLA User
R5189 ERS LogicaCMG SLA User
R5190 Content Creator
R5195 Content Publisher
R5210 User Details Administrator
R5250 EBS Administrator
R6010 Appointments Clerk
R6030 Ward Clerk
R6050 Clinical Coder
R6060 Medical Records Clerk
R6080 Waiting List Clerk
R7100 Trainer
R7110 Training Manager
R7120 Directory of Services Coordinator
R9756 ETP System Administrator
R1780 Manager
R1790 Senior Manager
R1910 Chair
R1920 Chief Executive
R1930 Finance Director
R1940 Other Executive Director
R1950 Board Level Director
R1960 Non Executive Director
R1970 Childcare Co-ordinator
R1982 Senior Administrator
R1983 Ward Manager
R1986 Workgroup Administrator
R1987 National RBAC Attribute Administrator
R1988 National RBAC Baseline Policy Administrator
R1989 Complaints Coordinator
R1990 Complaints Investigator
R1996 End Point DNS Administrator
R1997 End Point Spine Administrator
R1998 End Point Super User
R1999 End Point Service Administrator
R5000 Network Administrator
R5003 Cluster System Administrator
R5007 System Administrator
R5020 Helpdesk Administrator
R5060 Security Policy Controller
R5070 Senior Security Manager
R5072 Root Registration Authority Manager
R5080 Registration Authority Manager
R5100 Audit Manager
R5105 Caldicott Guardian
R5180 NASP Service Manager
R5182 ERS ETP System Administrator
R5184 ERS Spine SLA Manager
R5185 ERS BT Customer SLA Manager
R5187 ERS BT Supplier SLA Manager
R5191 ERS Support Administrator
R5192 ECS Administrator
R5300 Portal Administrator
R5310 LiquidLogic Administrator
R5320 i.EPR Administrator
R5330 Synergy Administrator
R5340 SystmOne Administrator
R6020 Outpatient Manager
R6040 Bed Manager
R6070 Medical Records Manager
R6090 Waiting List Manager
R6100 Mental Health Act Administrator
R6160 Ad-hoc Report Manager
R7130 PAS Manager
R1800 Technician - Admin & Clerical
R1810 Accountant
R1820 Librarian
R1830 Interpreter
R1840 Analyst
R1850 Adviser
R1860 Researcher
R1870 Control Assistant
R1880 Architect
R1890 Lawyer
R1900 Surveyor
R5030 Helpdesk Technician
R5050 Desktop Support Technician
R5150 System Worker
R5400 Availability Monitor
R8000 Clinical Practitioner Access Role
R8001 Nurse Access Role
R8002 Nurse Manager Access Role
R8003 Health Professional Access Role
R8004 Healthcare Student Access Role
R8016 Midwife Access Role
R8017 Midwife Manager Access Role
R8024 Bank Access Role
R8005 Biomedical Scientist Access Role
R8006 Medical Secretary Access Role
R8007 Clinical Coder Access Role
R8008 Admin/Clinical Support Access Role
R8015 Systems Support Access Role
R0001 Privacy Officer
R8009 Receptionist Access Role
R8010 Clerical Access Role
R8011 Clerical Manager Access Role
R8012 Information Officer Access Role
R8013 Health Records Manager Access Role
R8014 Social Worker Access Role
" - }, - "url" : "https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1", - "version" : "0.1.0", - "name" : "Care Connect SDS Job Role Name", - "status" : "draft", - "date" : "2018-11-01T00:00:00+00:00", - "publisher" : "Interweave Publisher", - "contact" : [{ - "name" : "Interweave Publisher", - "telecom" : [{ - "system" : "url", - "value" : "https://fhir.yhcr.nhs.uk/yhcr-publisher" - }] - }], - "description" : "A CodeSystem that identifies the job role associated with the person on the smart card. This consists of a set of Role Based Access Control (RBAC) codes. This code list is externally maintained.", - "copyright" : "Copyright © 2016 HL7 UK", - "caseSensitive" : true, - "content" : "complete", - "concept" : [{ - "code" : "R0010", - "display" : "Medical Director" - }, - { - "code" : "R0020", - "display" : "Clinical Director - Medical" - }, - { - "code" : "R0210", - "display" : "Director of Public Health" - }, - { - "code" : "R0030", - "display" : "Professor" - }, - { - "code" : "R0040", - "display" : "Senior Lecturer" - }, - { - "code" : "R0050", - "display" : "Consultant" - }, - { - "code" : "R0060", - "display" : "Special Salary Scale in Public Health Medicine" - }, - { - "code" : "R0070", - "display" : "Associate Specialist" - }, - { - "code" : "R0080", - "display" : "Staff Grade" - }, - { - "code" : "R0090", - "display" : "Hospital Practitioner" - }, - { - "code" : "R0100", - "display" : "Clinical Assistant" - }, - { - "code" : "R0110", - "display" : "Specialist Registrar" - }, - { - "code" : "R0120", - "display" : "Senior Registrar (Closed)" - }, - { - "code" : "R0130", - "display" : "Registrar (Closed)" - }, - { - "code" : "R0140", - "display" : "Senior House Officer" - }, - { - "code" : "R0150", - "display" : "House Officer - Pre Registration" - }, - { - "code" : "R0160", - "display" : "House Officer - Post Registration" - }, - { - "code" : "R0170", - "display" : "Trust Grade Doctor - House Officer level" - }, - { - "code" : "R0180", - "display" : "Trust Grade Doctor - SHO level" - }, - { - "code" : "R0190", - "display" : "Trust Grade Doctor - Specialist Registrar level" - }, - { - "code" : "R0200", - "display" : "Trust Grade Doctor - Career Grade level" - }, - { - "code" : "R0260", - "display" : "General Medical Practitioner" - }, - { - "code" : "R0270", - "display" : "Salaried General Practitioner" - }, - { - "code" : "R1981", - "display" : "Psychiatrist" - }, - { - "code" : "R1984", - "display" : "Health Records Administrator" - }, - { - "code" : "R6200", - "display" : "GP Registrar" - }, - { - "code" : "R6300", - "display" : "Sessional GP" - }, - { - "code" : "R7140", - "display" : "ODP" - }, - { - "code" : "R7150", - "display" : "SODP" - }, - { - "code" : "R9100", - "display" : "A&E Staff Nurse (Temporary) London Cluster Only" - }, - { - "code" : "R9101", - "display" : "A&E Manager (Temporary) London Cluster Only" - }, - { - "code" : "R9102", - "display" : "A&E Doctor (Temporary) London Cluster only" - }, - { - "code" : "R9103", - "display" : "A&E Student (Temporary) London Cluster Only" - }, - { - "code" : "R9104", - "display" : "A&E Clerk (Temporary) London Cluster Only" - }, - { - "code" : "R0215", - "display" : "Assistant Clinical Medical Officer" - }, - { - "code" : "R0220", - "display" : "Clinical Medical Officer" - }, - { - "code" : "R0230", - "display" : "Senior Clinical Medical Officer" - }, - { - "code" : "R0240", - "display" : "Other Community Health Service" - }, - { - "code" : "R0243", - "display" : "Other Community Health Service - Social Care Worker" - }, - { - "code" : "R0247", - "display" : "Other Community Health Service - Admin Clerk" - }, - { - "code" : "R0055", - "display" : "Dental Surgeon acting as Hospital Consultant" - }, - { - "code" : "R0250", - "display" : "General Dental Practitioner" - }, - { - "code" : "R0280", - "display" : "Regional Dental Officer" - }, - { - "code" : "R0290", - "display" : "Dental Clinical Director - Dental" - }, - { - "code" : "R0295", - "display" : "Dental Assistant Clinical Director" - }, - { - "code" : "R0300", - "display" : "Dental Officer" - }, - { - "code" : "R0310", - "display" : "Senior Dental Officer" - }, - { - "code" : "R0320", - "display" : "Salaried Dental Practitioner" - }, - { - "code" : "R0006", - "display" : "Student Community Practitioner" - }, - { - "code" : "R0330", - "display" : "Student Nurse - Adult Branch" - }, - { - "code" : "R0340", - "display" : "Student Nurse - Child Branch" - }, - { - "code" : "R0350", - "display" : "Student Nurse - Mental Health Branch" - }, - { - "code" : "R0360", - "display" : "Student Nurse - Learning Disabilities Branch" - }, - { - "code" : "R0370", - "display" : "Student Midwife" - }, - { - "code" : "R0380", - "display" : "Student Health Visitor" - }, - { - "code" : "R0390", - "display" : "Student District Nurse" - }, - { - "code" : "R0400", - "display" : "Student School Nurse" - }, - { - "code" : "R0410", - "display" : "Student Practice Nurse" - }, - { - "code" : "R0420", - "display" : "Student Occupational Health Nurse" - }, - { - "code" : "R0430", - "display" : "Student Community Paediatric Nurse" - }, - { - "code" : "R0440", - "display" : "Student Community Mental Health Nurse" - }, - { - "code" : "R0450", - "display" : "Student Community Learning Disabilities Nurse" - }, - { - "code" : "R0460", - "display" : "Student Chiropodist" - }, - { - "code" : "R0470", - "display" : "Student Dietitian" - }, - { - "code" : "R0480", - "display" : "Student Occupational Therapist" - }, - { - "code" : "R0490", - "display" : "Student Orthoptist" - }, - { - "code" : "R0500", - "display" : "Student Physiotherapist" - }, - { - "code" : "R0510", - "display" : "Student Radiographer - Diagnostic" - }, - { - "code" : "R0520", - "display" : "Student Radiographer - Therapeutic" - }, - { - "code" : "R0530", - "display" : "Student Speech & Language Therapist" - }, - { - "code" : "R0540", - "display" : "Art, Music & Drama Student" - }, - { - "code" : "R0550", - "display" : "Student Psychotherapist" - }, - { - "code" : "R6400", - "display" : "Medical Student" - }, - { - "code" : "R0560", - "display" : "Director of Nursing" - }, - { - "code" : "R0580", - "display" : "Nurse Manager" - }, - { - "code" : "R0610", - "display" : "Sister/Charge Nurse" - }, - { - "code" : "R1976", - "display" : "Community Team Manager" - }, - { - "code" : "R0570", - "display" : "Nurse Consultant" - }, - { - "code" : "R0600", - "display" : "Specialist Nurse Practitioner" - }, - { - "code" : "R0620", - "display" : "Staff Nurse" - }, - { - "code" : "R0630", - "display" : "Enrolled Nurse" - }, - { - "code" : "R0690", - "display" : "Community Practitioner" - }, - { - "code" : "R0700", - "display" : "Community Nurse" - }, - { - "code" : "R1974", - "display" : "Community Learning Disabilities Nurse" - }, - { - "code" : "R1975", - "display" : "Community Mental Health Nurse" - }, - { - "code" : "R0590", - "display" : "Modern Matron" - }, - { - "code" : "R1972", - "display" : "Clinical Team Manager" - }, - { - "code" : "R0640", - "display" : "Midwife - Consultant" - }, - { - "code" : "R0650", - "display" : "Midwife - Specialist Practitioner" - }, - { - "code" : "R0660", - "display" : "Midwife - Manager" - }, - { - "code" : "R0670", - "display" : "Midwife - Sister/Charge Nurse" - }, - { - "code" : "R0680", - "display" : "Midwife" - }, - { - "code" : "R0018", - "display" : "Audiologist" - }, - { - "code" : "R0750", - "display" : "Chiropodist/Podiatrist" - }, - { - "code" : "R0760", - "display" : "Chiropodist/Podiatrist Consultant" - }, - { - "code" : "R0770", - "display" : "Chiropodist/Podiatrist Manager" - }, - { - "code" : "R0780", - "display" : "Chiropodist/Podiatrist Specialist Practitioner" - }, - { - "code" : "R0790", - "display" : "Dietitian" - }, - { - "code" : "R0800", - "display" : "Dietitian Consultant" - }, - { - "code" : "R0810", - "display" : "Dietitian Manager" - }, - { - "code" : "R0820", - "display" : "Dietitian Specialist Practitioner" - }, - { - "code" : "R0950", - "display" : "Occupational Therapist" - }, - { - "code" : "R0960", - "display" : "Occupational Therapist Consultant" - }, - { - "code" : "R0970", - "display" : "Occupational Therapist Manager" - }, - { - "code" : "R0980", - "display" : "Occupational Therapy Specialist Practitioner" - }, - { - "code" : "R0990", - "display" : "Orthoptist" - }, - { - "code" : "R1000", - "display" : "Orthoptist Consultant" - }, - { - "code" : "R1010", - "display" : "Orthoptist Manager" - }, - { - "code" : "R1020", - "display" : "Orthoptist Specialist Practitioner" - }, - { - "code" : "R1110", - "display" : "Physiotherapist" - }, - { - "code" : "R1120", - "display" : "Physiotherapist Consultant" - }, - { - "code" : "R1130", - "display" : "Physiotherapist Manager" - }, - { - "code" : "R1140", - "display" : "Physiotherapist Specialist Practitioner" - }, - { - "code" : "R1070", - "display" : "Paramedic" - }, - { - "code" : "R1080", - "display" : "Paramedic Consultant" - }, - { - "code" : "R1090", - "display" : "Paramedic Manager" - }, - { - "code" : "R1100", - "display" : "Paramedic Specialist Practitioner" - }, - { - "code" : "R0003", - "display" : "Clinical Application Administrator" - }, - { - "code" : "R0012", - "display" : "Radiographer" - }, - { - "code" : "R0013", - "display" : "Student Radiographer" - }, - { - "code" : "R0014", - "display" : "Radiologist" - }, - { - "code" : "R0015", - "display" : "PACS Administrator" - }, - { - "code" : "R0016", - "display" : "Reporting Radiographer" - }, - { - "code" : "R0017", - "display" : "Assistant Practitioner" - }, - { - "code" : "R1190", - "display" : "Radiographer - Diagnostic" - }, - { - "code" : "R1200", - "display" : "Radiographer - Diagnostic, Consultant" - }, - { - "code" : "R1210", - "display" : "Radiographer - Diagnostic, Manager" - }, - { - "code" : "R1220", - "display" : "Radiographer - Diagnostic, Specialist Practitioner" - }, - { - "code" : "R1230", - "display" : "Radiographer - Therapeutic" - }, - { - "code" : "R1240", - "display" : "Radiographer - Therapeutic, Consultant" - }, - { - "code" : "R1250", - "display" : "Radiographer - Therapeutic, Manager" - }, - { - "code" : "R1260", - "display" : "Radiographer - Therapeutic, Specialist Practitioner" - }, - { - "code" : "R1030", - "display" : "Orthotist" - }, - { - "code" : "R1040", - "display" : "Orthotist Consultant" - }, - { - "code" : "R1050", - "display" : "Orthotist Manager" - }, - { - "code" : "R1060", - "display" : "Orthotist Specialist Practitioner" - }, - { - "code" : "R1150", - "display" : "Prosthetist" - }, - { - "code" : "R1160", - "display" : "Prosthetist Consultant" - }, - { - "code" : "R1170", - "display" : "Prosthetist Manager" - }, - { - "code" : "R1180", - "display" : "Prosthetist Specialist Practitioner" - }, - { - "code" : "R0710", - "display" : "Art Therapist" - }, - { - "code" : "R0720", - "display" : "Art Therapist Consultant" - }, - { - "code" : "R0730", - "display" : "Art Therapist Manager" - }, - { - "code" : "R0740", - "display" : "Art Therapist Specialist Practitioner" - }, - { - "code" : "R0830", - "display" : "Drama Therapist" - }, - { - "code" : "R0840", - "display" : "Drama Therapist Consultant" - }, - { - "code" : "R0850", - "display" : "Drama Therapist Manager" - }, - { - "code" : "R0860", - "display" : "Drama Therapist Specialist Practitioner" - }, - { - "code" : "R0870", - "display" : "Multi Therapist" - }, - { - "code" : "R0880", - "display" : "Multi Therapist Consultant" - }, - { - "code" : "R0890", - "display" : "Multi Therapist Manager" - }, - { - "code" : "R0900", - "display" : "Multi Therapist Specialist Practitioner" - }, - { - "code" : "R0910", - "display" : "Music Therapist" - }, - { - "code" : "R0920", - "display" : "Music Therapist Consultant" - }, - { - "code" : "R0930", - "display" : "Music Therapist Manager" - }, - { - "code" : "R0940", - "display" : "Music Therapist Specialist Practitioner" - }, - { - "code" : "R0955", - "display" : "Speech & Language Therapist" - }, - { - "code" : "R0965", - "display" : "Speech & Language Therapist Consultant" - }, - { - "code" : "R0975", - "display" : "Speech & Language Therapist Manager" - }, - { - "code" : "R0985", - "display" : "Speech & Language Therapist Specialist Practitioner" - }, - { - "code" : "R9500", - "display" : "Social Services Senior Management" - }, - { - "code" : "R9505", - "display" : "Social Services Policy and Planning" - }, - { - "code" : "R9510", - "display" : "Social Services Information Manager" - }, - { - "code" : "R9515", - "display" : "Social Work Team Manager (Children)" - }, - { - "code" : "R9520", - "display" : "Senior Social Worker (Children)" - }, - { - "code" : "R9525", - "display" : "Social Services Care Manager (Children)" - }, - { - "code" : "R9530", - "display" : "Social Work Assistant (Children)" - }, - { - "code" : "R9535", - "display" : "Child Protection Worker" - }, - { - "code" : "R9540", - "display" : "Family Placement Worker" - }, - { - "code" : "R9545", - "display" : "Community Worker (Children)" - }, - { - "code" : "R9550", - "display" : "Occupational Therapist" - }, - { - "code" : "R9555", - "display" : "Occupational Therapist Assistant" - }, - { - "code" : "R9560", - "display" : "Occupational Therapy Team Manager" - }, - { - "code" : "R9565", - "display" : "Social Work Team Manager (Adults)" - }, - { - "code" : "R9570", - "display" : "Senior Social Worker (Adults)" - }, - { - "code" : "R9575", - "display" : "Social Services Care Manager (Adults)" - }, - { - "code" : "R9580", - "display" : "Social Work Assistant (Adults)" - }, - { - "code" : "R9585", - "display" : "Social Work Team Manager (Mental Health)" - }, - { - "code" : "R9590", - "display" : "Senior Social Worker (Mental Health)" - }, - { - "code" : "R9595", - "display" : "Social Services Care Manager (Mental Health)" - }, - { - "code" : "R9600", - "display" : "Social Work Assistant (Mental Health)" - }, - { - "code" : "R9605", - "display" : "Emergency Duty Social Worker" - }, - { - "code" : "R9615", - "display" : "Social Services Driver" - }, - { - "code" : "R9620", - "display" : "Home Care Organiser" - }, - { - "code" : "R9625", - "display" : "Home Care Administrator" - }, - { - "code" : "R9630", - "display" : "Home Help" - }, - { - "code" : "R9635", - "display" : "Warden" - }, - { - "code" : "R9640", - "display" : "Meals on Wheels Organiser" - }, - { - "code" : "R9645", - "display" : "Meals Delivery" - }, - { - "code" : "R9650", - "display" : "Day Centre Manager" - }, - { - "code" : "R9655", - "display" : "Day Centre Deputy" - }, - { - "code" : "R9660", - "display" : "Day Centre Officer" - }, - { - "code" : "R9665", - "display" : "Day Centre Care Staff" - }, - { - "code" : "R9670", - "display" : "Family Centre Manager" - }, - { - "code" : "R9675", - "display" : "Family Centre Deputy" - }, - { - "code" : "R9680", - "display" : "Family Centre Worker" - }, - { - "code" : "R9685", - "display" : "Nursery Manager" - }, - { - "code" : "R9690", - "display" : "Nursery Deputy" - }, - { - "code" : "R9695", - "display" : "Nursery Worker" - }, - { - "code" : "R9700", - "display" : "Playgroup Leader" - }, - { - "code" : "R9705", - "display" : "Playgroup Assistant" - }, - { - "code" : "R9710", - "display" : "Residential Manager" - }, - { - "code" : "R9715", - "display" : "Residential Deputy" - }, - { - "code" : "R9720", - "display" : "Residential Worker" - }, - { - "code" : "R9725", - "display" : "Residential Care Staff" - }, - { - "code" : "R9730", - "display" : "Intermediate Care Manager" - }, - { - "code" : "R9735", - "display" : "Intermediate Care Deputy" - }, - { - "code" : "R9740", - "display" : "Intermediate Care Worker" - }, - { - "code" : "R9745", - "display" : "Intermediate Care Staff" - }, - { - "code" : "R9750", - "display" : "Social Care SAP User" - }, - { - "code" : "R9755", - "display" : "Social Care SAP Manager" - }, - { - "code" : "R1270", - "display" : "Clinical Director" - }, - { - "code" : "R1280", - "display" : "Optometrist" - }, - { - "code" : "R1290", - "display" : "Pharmacist" - }, - { - "code" : "R1979", - "display" : "Medical Technical Officer - Pharmacy" - }, - { - "code" : "R1300", - "display" : "Psychotherapist" - }, - { - "code" : "R1310", - "display" : "Clinical Psychologist" - }, - { - "code" : "R1320", - "display" : "Chaplain" - }, - { - "code" : "R1330", - "display" : "Social Worker" - }, - { - "code" : "R1340", - "display" : "Approved Social Worker" - }, - { - "code" : "R1350", - "display" : "Youth Worker" - }, - { - "code" : "R1360", - "display" : "Specialist Practitioner" - }, - { - "code" : "R1370", - "display" : "Practitioner" - }, - { - "code" : "R0011", - "display" : "Dispenser" - }, - { - "code" : "R1380", - "display" : "Technician - PS&T" - }, - { - "code" : "R1390", - "display" : "Osteopath" - }, - { - "code" : "R1400", - "display" : "Healthcare Scientist" - }, - { - "code" : "R1410", - "display" : "Consultant Healthcare Scientist" - }, - { - "code" : "R1420", - "display" : "Biomedical Scientist" - }, - { - "code" : "R0019", - "display" : "Medical Technical Officer" - }, - { - "code" : "R1430", - "display" : "Technician - Healthcare Scientists" - }, - { - "code" : "R1440", - "display" : "Therapist" - }, - { - "code" : "R1540", - "display" : "Associate Practitioner" - }, - { - "code" : "R1543", - "display" : "Associate Practitioner - Nurse" - }, - { - "code" : "R1547", - "display" : "Associate Practitioner - General Practitioner" - }, - { - "code" : "R1560", - "display" : "Helper/Assistant" - }, - { - "code" : "R1600", - "display" : "Cytoscreener" - }, - { - "code" : "R1570", - "display" : "Dental Surgery Assistant" - }, - { - "code" : "R1450", - "display" : "Health Care Support Worker" - }, - { - "code" : "R1580", - "display" : "Medical Laboratory Assistant" - }, - { - "code" : "R1550", - "display" : "Counsellor" - }, - { - "code" : "R0002", - "display" : "Porter" - }, - { - "code" : "R1690", - "display" : "Call Operator" - }, - { - "code" : "R1700", - "display" : "Gateway Worker" - }, - { - "code" : "R1710", - "display" : "Support, Time, Recovery Worker" - }, - { - "code" : "R1480", - "display" : "Healthcare Assistant" - }, - { - "code" : "R1490", - "display" : "Nursery Nurse" - }, - { - "code" : "R1590", - "display" : "Phlebotomist" - }, - { - "code" : "R1460", - "display" : "Social Care Support Worker" - }, - { - "code" : "R1470", - "display" : "Home Help" - }, - { - "code" : "R1520", - "display" : "Technician - Additional Clinical Services" - }, - { - "code" : "R1530", - "display" : "Technical Instructor" - }, - { - "code" : "R1980", - "display" : "Patient Welfare Officer" - }, - { - "code" : "R1500", - "display" : "Play Therapist" - }, - { - "code" : "R1510", - "display" : "Play Specialist" - }, - { - "code" : "R1610", - "display" : "Student Technician" - }, - { - "code" : "R1620", - "display" : "Trainee Scientist" - }, - { - "code" : "R1630", - "display" : "Trainee Practitioner" - }, - { - "code" : "R1640", - "display" : "Nursing Cadet" - }, - { - "code" : "R1650", - "display" : "Healthcare Cadet" - }, - { - "code" : "R1660", - "display" : "Pre-reg Pharmacist" - }, - { - "code" : "R1670", - "display" : "Assistant Psychologist" - }, - { - "code" : "R1680", - "display" : "Assistant Psychotherapist" - }, - { - "code" : "R0007", - "display" : "ERS SDS Organisation Reporting Analyst" - }, - { - "code" : "R0008", - "display" : "Demographic Supervisor" - }, - { - "code" : "R0021", - "display" : "DSA NHS Number Manager (Temporary)" - }, - { - "code" : "R0022", - "display" : "DSA National Clinical Supervisor (Temporary)" - }, - { - "code" : "R0023", - "display" : "DSA National Clinical Administrator (Temporary)" - }, - { - "code" : "R1720", - "display" : "Clerical Worker" - }, - { - "code" : "R1730", - "display" : "Receptionist" - }, - { - "code" : "R1740", - "display" : "Secretary" - }, - { - "code" : "R1750", - "display" : "Personal Assistant" - }, - { - "code" : "R1751", - "display" : "Demographic Administrator (Sensitive Records) Temporary" - }, - { - "code" : "R1760", - "display" : "Medical Secretary" - }, - { - "code" : "R1770", - "display" : "Officer" - }, - { - "code" : "R1971", - "display" : "Map of Medicine Administrator" - }, - { - "code" : "R1973", - "display" : "Community Administrator" - }, - { - "code" : "R1977", - "display" : "ECC/CPA Administrator" - }, - { - "code" : "R1978", - "display" : "Information Officer" - }, - { - "code" : "R1985", - "display" : "Health Records Clerk" - }, - { - "code" : "R1995", - "display" : "End Point Approver" - }, - { - "code" : "R5010", - "display" : "Network Technician" - }, - { - "code" : "R5040", - "display" : "Desktop Support Administrator" - }, - { - "code" : "R5090", - "display" : "Registration Authority Agent" - }, - { - "code" : "R5110", - "display" : "Demographic Administrator" - }, - { - "code" : "R5120", - "display" : "ISP Administrator" - }, - { - "code" : "R5130", - "display" : "Technical Codes Administrator" - }, - { - "code" : "R5140", - "display" : "OSS Administrator" - }, - { - "code" : "R5170", - "display" : "End Point Administrator" - }, - { - "code" : "R5175", - "display" : "End Point Viewer" - }, - { - "code" : "R5181", - "display" : "RTS Dashboard User" - }, - { - "code" : "R5183", - "display" : "RTS BT Dashboard User" - }, - { - "code" : "R5186", - "display" : "ERS BT Customer SLA User" - }, - { - "code" : "R5188", - "display" : "ERS BT Supplier SLA User" - }, - { - "code" : "R5189", - "display" : "ERS LogicaCMG SLA User" - }, - { - "code" : "R5190", - "display" : "Content Creator" - }, - { - "code" : "R5195", - "display" : "Content Publisher" - }, - { - "code" : "R5210", - "display" : "User Details Administrator" - }, - { - "code" : "R5250", - "display" : "EBS Administrator" - }, - { - "code" : "R6010", - "display" : "Appointments Clerk" - }, - { - "code" : "R6030", - "display" : "Ward Clerk" - }, - { - "code" : "R6050", - "display" : "Clinical Coder" - }, - { - "code" : "R6060", - "display" : "Medical Records Clerk" - }, - { - "code" : "R6080", - "display" : "Waiting List Clerk" - }, - { - "code" : "R7100", - "display" : "Trainer" - }, - { - "code" : "R7110", - "display" : "Training Manager" - }, - { - "code" : "R7120", - "display" : "Directory of Services Coordinator" - }, - { - "code" : "R9756", - "display" : "ETP System Administrator" - }, - { - "code" : "R1780", - "display" : "Manager" - }, - { - "code" : "R1790", - "display" : "Senior Manager" - }, - { - "code" : "R1910", - "display" : "Chair" - }, - { - "code" : "R1920", - "display" : "Chief Executive" - }, - { - "code" : "R1930", - "display" : "Finance Director" - }, - { - "code" : "R1940", - "display" : "Other Executive Director" - }, - { - "code" : "R1950", - "display" : "Board Level Director" - }, - { - "code" : "R1960", - "display" : "Non Executive Director" - }, - { - "code" : "R1970", - "display" : "Childcare Co-ordinator" - }, - { - "code" : "R1982", - "display" : "Senior Administrator" - }, - { - "code" : "R1983", - "display" : "Ward Manager" - }, - { - "code" : "R1986", - "display" : "Workgroup Administrator" - }, - { - "code" : "R1987", - "display" : "National RBAC Attribute Administrator" - }, - { - "code" : "R1988", - "display" : "National RBAC Baseline Policy Administrator" - }, - { - "code" : "R1989", - "display" : "Complaints Coordinator" - }, - { - "code" : "R1990", - "display" : "Complaints Investigator" - }, - { - "code" : "R1996", - "display" : "End Point DNS Administrator" - }, - { - "code" : "R1997", - "display" : "End Point Spine Administrator" - }, - { - "code" : "R1998", - "display" : "End Point Super User" - }, - { - "code" : "R1999", - "display" : "End Point Service Administrator" - }, - { - "code" : "R5000", - "display" : "Network Administrator" - }, - { - "code" : "R5003", - "display" : "Cluster System Administrator" - }, - { - "code" : "R5007", - "display" : "System Administrator" - }, - { - "code" : "R5020", - "display" : "Helpdesk Administrator" - }, - { - "code" : "R5060", - "display" : "Security Policy Controller" - }, - { - "code" : "R5070", - "display" : "Senior Security Manager" - }, - { - "code" : "R5072", - "display" : "Root Registration Authority Manager" - }, - { - "code" : "R5080", - "display" : "Registration Authority Manager" - }, - { - "code" : "R5100", - "display" : "Audit Manager" - }, - { - "code" : "R5105", - "display" : "Caldicott Guardian" - }, - { - "code" : "R5180", - "display" : "NASP Service Manager" - }, - { - "code" : "R5182", - "display" : "ERS ETP System Administrator" - }, - { - "code" : "R5184", - "display" : "ERS Spine SLA Manager" - }, - { - "code" : "R5185", - "display" : "ERS BT Customer SLA Manager" - }, - { - "code" : "R5187", - "display" : "ERS BT Supplier SLA Manager" - }, - { - "code" : "R5191", - "display" : "ERS Support Administrator" - }, - { - "code" : "R5192", - "display" : "ECS Administrator" - }, - { - "code" : "R5300", - "display" : "Portal Administrator" - }, - { - "code" : "R5310", - "display" : "LiquidLogic Administrator" - }, - { - "code" : "R5320", - "display" : "i.EPR Administrator" - }, - { - "code" : "R5330", - "display" : "Synergy Administrator" - }, - { - "code" : "R5340", - "display" : "SystmOne Administrator" - }, - { - "code" : "R6020", - "display" : "Outpatient Manager" - }, - { - "code" : "R6040", - "display" : "Bed Manager" - }, - { - "code" : "R6070", - "display" : "Medical Records Manager" - }, - { - "code" : "R6090", - "display" : "Waiting List Manager" - }, - { - "code" : "R6100", - "display" : "Mental Health Act Administrator" - }, - { - "code" : "R6160", - "display" : "Ad-hoc Report Manager" - }, - { - "code" : "R7130", - "display" : "PAS Manager" - }, - { - "code" : "R1800", - "display" : "Technician - Admin & Clerical" - }, - { - "code" : "R1810", - "display" : "Accountant" - }, - { - "code" : "R1820", - "display" : "Librarian" - }, - { - "code" : "R1830", - "display" : "Interpreter" - }, - { - "code" : "R1840", - "display" : "Analyst" - }, - { - "code" : "R1850", - "display" : "Adviser" - }, - { - "code" : "R1860", - "display" : "Researcher" - }, - { - "code" : "R1870", - "display" : "Control Assistant" - }, - { - "code" : "R1880", - "display" : "Architect" - }, - { - "code" : "R1890", - "display" : "Lawyer" - }, - { - "code" : "R1900", - "display" : "Surveyor" - }, - { - "code" : "R5030", - "display" : "Helpdesk Technician" - }, - { - "code" : "R5050", - "display" : "Desktop Support Technician" - }, - { - "code" : "R5150", - "display" : "System Worker" - }, - { - "code" : "R5400", - "display" : "Availability Monitor" - }, - { - "code" : "R8000", - "display" : "Clinical Practitioner Access Role" - }, - { - "code" : "R8001", - "display" : "Nurse Access Role" - }, - { - "code" : "R8002", - "display" : "Nurse Manager Access Role" - }, - { - "code" : "R8003", - "display" : "Health Professional Access Role" - }, - { - "code" : "R8004", - "display" : "Healthcare Student Access Role" - }, - { - "code" : "R8016", - "display" : "Midwife Access Role" - }, - { - "code" : "R8017", - "display" : "Midwife Manager Access Role" - }, - { - "code" : "R8024", - "display" : "Bank Access Role" - }, - { - "code" : "R8005", - "display" : "Biomedical Scientist Access Role" - }, - { - "code" : "R8006", - "display" : "Medical Secretary Access Role" - }, - { - "code" : "R8007", - "display" : "Clinical Coder Access Role" - }, - { - "code" : "R8008", - "display" : "Admin/Clinical Support Access Role" - }, - { - "code" : "R8015", - "display" : "Systems Support Access Role" - }, - { - "code" : "R0001", - "display" : "Privacy Officer" - }, - { - "code" : "R8009", - "display" : "Receptionist Access Role" - }, - { - "code" : "R8010", - "display" : "Clerical Access Role" - }, - { - "code" : "R8011", - "display" : "Clerical Manager Access Role" - }, - { - "code" : "R8012", - "display" : "Information Officer Access Role" - }, - { - "code" : "R8013", - "display" : "Health Records Manager Access Role" - }, - { - "code" : "R8014", - "display" : "Social Worker Access Role" - }] - } \ No newline at end of file diff --git a/sushi-config.yaml b/sushi-config.yaml index e2dba0e..71dfa2e 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -11,21 +11,22 @@ title: Reasonable Adjustments - NHS England - Implementation Guide STU1 status: draft # draft | active | retired | unknown version: 0.3.7 fhirVersion: 4.0.1 # https://www.hl7.org/fhir/valueset-FHIR-version.html -copyrightYear: 2024+ +copyrightYear: Copyright © 2024+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html. releaseLabel: ci-build # ci-build | draft | qa-preview | ballot | trial-use | release | update | normative+trial-use # license: CC0-1.0 # https://www.hl7.org/fhir/valueset-spdx-license.html # jurisdiction: urn:iso:std:iso:3166#US "United States of America" # https://www.hl7.org/fhir/valueset-jurisdiction.html -publisher: - name: NHS +publisher: + name: NHS England url: https://fhir.nhs.uk - # email: test@example.org + email: interoperabilityteam@nhs.net # The dependencies property corresponds to IG.dependsOn. The key is the # package id and the value is the version (or dev/current). For advanced # use cases, the value can be an object with keys for id, uri, and version. # -# dependencies: -# hl7.fhir.us.core: 3.1.0 +dependencies: + careconnect.stu3.03.00.00: 3.1.0 + fhir.r4.ukcore.stu2: 1.1.3 # hl7.fhir.us.mcode: # id: mcode # uri: http://hl7.org/fhir/us/mcode/ImplementationGuide/hl7.fhir.us.mcode @@ -76,18 +77,20 @@ publisher: # ╰────────────────────────────────────────────────────────────────────────────────────────────────╯ menu: Home: index.html - Sitemap: toc.html Data Model: data-model.html Use Cases: Consent to Share Information: consent-to-share-information.html Add Reasonable Adjustment Record: add-reasonable-adjustment-record.html - Retrieve Reasonable Adjustment Record: retrieve-ra-record.html - Remove Reasonable Adjustment Record: remove-ra-record.html - Server Examples: server-examples.html + Retrieve Reasonable Adjustment Record: retrieve-reasonable-adjustment-record.html + Remove Reasonable Adjustment Record: remove-reasonable-adjustment-record.html + Additional Examples: + CPIS/FGM demo: additional-examples.html + Server Examples: server-examples.html Artifacts: artifacts.html - Contact Us: todo.html - Downloads: todo.html - Glossary: todo.html + About: + Downloads: todo.html + Contact: todo.html + Glossary: todo.html # ╭───────────────────────────Less Common Implementation Guide Properties──────────────────────────╮ # │ Uncomment the properties below to configure additional properties on the ImplementationGuide │ @@ -99,11 +102,12 @@ menu: # ContactDetail. # # contact: -# - name: Bob Smith +# - name: NHS England # telecom: # - system: email # phone | fax | email | pager | url | sms | other -# value: bobsmith@example.org +# value: interoperabilityteam@nhs.net # use: work +# rank: 1 # # # The global property corresponds to the IG.global property, but it From 67a38c89de6fe568225b3c4b5b65c1fa83d8d26d Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Tue, 12 Mar 2024 15:32:26 +0000 Subject: [PATCH 129/136] Update FlagProvenanceRole.fsh Update title to match others --- input/fsh/valuesets/FlagProvenanceRole.fsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/input/fsh/valuesets/FlagProvenanceRole.fsh b/input/fsh/valuesets/FlagProvenanceRole.fsh index 44aaf71..84d8429 100644 --- a/input/fsh/valuesets/FlagProvenanceRole.fsh +++ b/input/fsh/valuesets/FlagProvenanceRole.fsh @@ -1,6 +1,6 @@ ValueSet: FlagProvenanceRole Id: FlagProvenanceRole -Title: "Flag Provenance Role" +Title: "NHSE Flag Provenance Role" Description: "A ValueSet to identify the role in which someone recording provenance is acting" * ^name = "FlagProvenanceRole" @@ -477,4 +477,4 @@ Description: "A ValueSet to identify the role in which someone recording provena * $RoleCode#CNRPM * $RoleCode#CPCA * $RoleCode#CRP -* $RoleCode#CRPM \ No newline at end of file +* $RoleCode#CRPM From 8f1cb9e1f0c09c0b1ad1610461ee2e9c610705ed Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Fri, 15 Mar 2024 17:36:12 +0000 Subject: [PATCH 130/136] updated ref to point to sequence instead of usecase (#22) Co-authored-by: Declan Kieran --- input/pagecontent/retrieve-reasonable-adjustment-record.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/pagecontent/retrieve-reasonable-adjustment-record.md b/input/pagecontent/retrieve-reasonable-adjustment-record.md index 9de73bd..b407242 100644 --- a/input/pagecontent/retrieve-reasonable-adjustment-record.md +++ b/input/pagecontent/retrieve-reasonable-adjustment-record.md @@ -30,7 +30,7 @@ Using [FHIR search](https://www.hl7.org/fhir/search.html) capabilities, it is po
- {%include retrieve-record-usecase.svg%} + {%include retrieve-record-sequence.svg%}
From 72a067bac27055410e5ba8e792202ecfd77855db Mon Sep 17 00:00:00 2001 From: vickyjaiswal0308 <126092393+vickyjaiswal0308@users.noreply.github.com> Date: Fri, 22 Mar 2024 00:25:00 +0000 Subject: [PATCH 131/136] IOPS-2494(Guidance for Remove Reasonable Adjustment Record) Review (#21) * Create remove-record-usecase.plantuml * Update remove-reasonable-adjustment-record.md * Add files via upload * Delete input/images/remove-record-workflow.svg * Add files via upload * Update remove-reasonable-adjustment-record.md * Delete input/images/remove-record-workflow.bpmn * Delete input/images/remove-record-workflow.svg * Add files via upload * Update remove-record-usecase.plantuml * Delete input/images/remove-record-workflow.bpmn * Delete input/images/remove-record-workflow.svg * Add files via upload * Update remove-reasonable-adjustment-record.md * Update 0012-RemoveRARecordExample.fsh * Update 0012-RemoveRARecordExample.fsh * Update remove-reasonable-adjustment-record.md * Update 0012-RemoveRARecordExample.fsh * Create remove-record-sequence.plantuml * Delete input/images/remove-record-workflow.bpmn * Delete input/images/remove-record-workflow.svg * Add files via upload * Update remove-reasonable-adjustment-record.md * Update remove-reasonable-adjustment-record.md * Update remove-record-usecase.plantuml * Update remove-record-usecase.plantuml * Update remove-reasonable-adjustment-record.md * Update remove-reasonable-adjustment-record.md * Update remove-reasonable-adjustment-record.md * Update remove-reasonable-adjustment-record.md * Update remove-reasonable-adjustment-record.md * Update remove-reasonable-adjustment-record.md * Update _updatePublisher.sh * minor format fixes * spelling fix * fix alt text on bpmn diagrams --------- Co-authored-by: Declan Kieran --- _updatePublisher.sh | 2 +- .../examples/0012-RemoveRARecordExample.fsh | 4 +- .../remove-record-sequence.plantuml | 30 ++++++ .../remove-record-usecase.plantuml | 21 ++++ input/images/remove-record-workflow.bpmn | 99 +++++++++++++++++++ input/images/remove-record-workflow.svg | 4 + .../add-reasonable-adjustment-record.md | 2 +- .../consent-to-share-information.md | 2 +- .../remove-reasonable-adjustment-record.md | 66 ++++++++++--- .../retrieve-reasonable-adjustment-record.md | 7 +- 10 files changed, 214 insertions(+), 23 deletions(-) create mode 100644 input/images-source/remove-record-sequence.plantuml create mode 100644 input/images-source/remove-record-usecase.plantuml create mode 100644 input/images/remove-record-workflow.bpmn create mode 100644 input/images/remove-record-workflow.svg diff --git a/_updatePublisher.sh b/_updatePublisher.sh index 0f9ecbe..4f2134e 100755 --- a/_updatePublisher.sh +++ b/_updatePublisher.sh @@ -31,7 +31,7 @@ while [ "$#" -gt 0 ]; do done echo "Checking internet connection" -curl -sSf tx.fhir.org > /dev/null +curl -sSf raw.githubusercontent.com > /dev/null if [ $? -ne 0 ] ; then echo "Offline (or the terminology server is down), unable to update. Exiting" diff --git a/input/fsh/examples/0012-RemoveRARecordExample.fsh b/input/fsh/examples/0012-RemoveRARecordExample.fsh index a0f77db..bec6397 100644 --- a/input/fsh/examples/0012-RemoveRARecordExample.fsh +++ b/input/fsh/examples/0012-RemoveRARecordExample.fsh @@ -3,8 +3,8 @@ InstanceOf: Bundle Title: "RA Example of deleting an RA record with a Transaction" Usage: #example * type = #transaction -* entry[0].request.method = #DELETE -* entry[=].request.url = "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" +* entry[+].request.method = #DELETE +* entry[=].request.url = "Flag/RAPatientFlagExample1" * entry[+].request.method = #DELETE * entry[=].request.url = "Consent/RAConsentExample1" * entry[+].request.method = #DELETE diff --git a/input/images-source/remove-record-sequence.plantuml b/input/images-source/remove-record-sequence.plantuml new file mode 100644 index 0000000..64a9c48 --- /dev/null +++ b/input/images-source/remove-record-sequence.plantuml @@ -0,0 +1,30 @@ +@startuml + +skinparam actorStyle hollow + +actor "Practitioner" as pra +actor "Patient" as pat +participant "FHIR API" as api +entity "Consent" as con +entity "Patient Flag" as pfg +entity "Adjustment Flag" as adj +entity "Condition" as cod + + pra -> pat : Request consent + pra <-- pat : Deny/revoke consent + + pra -> api : Record consent was not given + api -> con : Update resource + con -> con : Validate + api <-- con : return + alt Validation failed + api -> api : rollback + pra <-- api : OperationOutcome + else Validation passed + api -> pfg : Delete adjustment patient flag + api -> adj : Delete adjustment flag(s) + api -> cod : Delete condition flag(s) + pra <-- api : OperationOutcome + end + +@enduml diff --git a/input/images-source/remove-record-usecase.plantuml b/input/images-source/remove-record-usecase.plantuml new file mode 100644 index 0000000..4be45ce --- /dev/null +++ b/input/images-source/remove-record-usecase.plantuml @@ -0,0 +1,21 @@ +@startuml + +skinparam actorStyle awesome + +actor Practitioner as pra +package Consenter { + actor "Patient Advocate" as pad + actor Patient as pat +} + +usecase "Consent to share information" as CON +usecase "Remove Reasonable Adjustment record" as RET + +pat -- CON +pad -- CON +pra -- CON +pra -- RET +CON <.. RET : include + + +@enduml diff --git a/input/images/remove-record-workflow.bpmn b/input/images/remove-record-workflow.bpmn new file mode 100644 index 0000000..eb9454a --- /dev/null +++ b/input/images/remove-record-workflow.bpmn @@ -0,0 +1,99 @@ + + + + + + + + + Event_0o7dt0z + Activity_1kgwaxm + + + Activity_1s5y9xm + + + Event_03tz7z4 + Activity_00yhqnr + + + + Flow_0ws129z + + + + Flow_0ws129z + Flow_1y1ffd0 + + + + Flow_1y1ffd0 + Flow_1l3qp01 + + + + Flow_1l3qp01 + Flow_0a0e2sc + + + + Flow_0a0e2sc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/input/images/remove-record-workflow.svg b/input/images/remove-record-workflow.svg new file mode 100644 index 0000000..bf60381 --- /dev/null +++ b/input/images/remove-record-workflow.svg @@ -0,0 +1,4 @@ + + + +Consent to TreatmentPractitionerPatientAPIRequest consentDeny/revoke consentUpdate consent/remove all records \ No newline at end of file diff --git a/input/pagecontent/add-reasonable-adjustment-record.md b/input/pagecontent/add-reasonable-adjustment-record.md index ac42c5a..9fbe395 100644 --- a/input/pagecontent/add-reasonable-adjustment-record.md +++ b/input/pagecontent/add-reasonable-adjustment-record.md @@ -85,7 +85,7 @@ Then a freetext note may be added to the flag A practitioner performs an examination and determines that a condition and/or an adjustment should be recorded. If the patient does not consent, no details are recorded. If the patient consents, then the adjustment is recorded, and optionally the condition as well.
- + Add record workflow BPMN diagram.
### System Interactions diff --git a/input/pagecontent/consent-to-share-information.md b/input/pagecontent/consent-to-share-information.md index c2d38cd..f9c3bde 100644 --- a/input/pagecontent/consent-to-share-information.md +++ b/input/pagecontent/consent-to-share-information.md @@ -55,7 +55,7 @@ And all conditions will be deleted If consent is not given, then this will be recorded. If there was previous consent to record adjustments, but the consent is then revoked, then all adjustment records must also be removed.
- Activity created in draw.io! + Consent workflow BPMN diagram.
### System Interactions diff --git a/input/pagecontent/remove-reasonable-adjustment-record.md b/input/pagecontent/remove-reasonable-adjustment-record.md index e1ffd37..5c36aeb 100644 --- a/input/pagecontent/remove-reasonable-adjustment-record.md +++ b/input/pagecontent/remove-reasonable-adjustment-record.md @@ -1,33 +1,67 @@ -#### Summary +### Overview -

Practioner wishes to remove an entire RA Record

+A patient may deny or revoke their consent to share adjustment or impairment information at any point. See [Consent to Share Information](consent-to-share-information.html) for details of requirements around consent. + +For high level requirements, see [Key purposes of the Reasonable Adjustment Flag](index.html#key-purposes) + + +#### UseCase + +If a patient denys consent, then this must be recorded and all adjustment records must be removed. + +
+ + {%include remove-record-usecase.svg%} + +
+ +#### Scenarios + +```gherkin +Given a patient or their advocate revokes consent +And the consent is for reasonable adjustments +When a practioner records the consent +Then consent will be marked as inactive +And all flags will be deleted +And all conditions will be deleted +``` #### Workflow

-A patient presents to be examined by a practitioner. The practitioner performs an examination and retrieves the patients RA record. The practitioner then decides to remove an RA record for a patient. + +A patient may revoke consent to share information about Reasonable Adjustment records and if they do, all records must be removed. +

- Activity created in draw.io! + Remove record workflow BPMN diagram.
-#### Patient's RA Record Removed +### System Interactions + +In the following sequence diagram, a patient revokes consent. The Consent resource is updated to reflect the patient dissent, and all adjustment records are deleted. + +
+ + {%include remove-record-sequence.svg%} -
- Patient's RA Record Removed
-#### Example +The following resource types will be deleted from the record if consent is not granted i.e. -for the delete transaction example provided below, the following query will performed (dynamically during the IG build) +* [Patient Flag](StructureDefinition-PatientFlag.html) +* [Programme Flag](StructureDefinition-ProgrammeFlag.html) +* [Condition Flag](StructureDefinition-FlagCondition.html) -``` -POST / -``` +#### Example + +Multiple resources can be deleted using a transaction bundle. This [example delete transaction Bundle](Bundle-RemoveRARecordExample.html) demonstates deleting the following resources -This query will delete the patient's RA record, i.e. the resources contained in the transaction. +* [Patient Flag](Flag-RAPatientFlagExample1.html) example. +* [Programme Flag](Flag-RAFlagExample1.html) example. +* [Condition Flag](Condition-RAConditionExample1.html) example. -* Flag resources -* Condition resources +### Relevant Documentation -This will be the following Request body [Bundle transaction](Bundle-RemoveRARecordExample.html) +[Bundles](https://hl7.org/fhir/r4/bundle.html) +[Transactions](https://hl7.org/fhir/r4/http.html#transaction) \ No newline at end of file diff --git a/input/pagecontent/retrieve-reasonable-adjustment-record.md b/input/pagecontent/retrieve-reasonable-adjustment-record.md index b407242..a98d232 100644 --- a/input/pagecontent/retrieve-reasonable-adjustment-record.md +++ b/input/pagecontent/retrieve-reasonable-adjustment-record.md @@ -16,10 +16,10 @@ After obtaining consent from a patient, a Reasonable Adjustment Record may be re ### Workflow -A practitioner confirms that a patient consents to share information about Reasonable Adjustment records. A patient may revoke consent to share information about Reasonable Adjustment records and if they do, all records should be removed. +A practitioner confirms that a patient consents to share information about Reasonable Adjustment records. A patient may revoke consent to share information about Reasonable Adjustment records and if they do, all records must be removed.
- Activity created in draw.io! + Retrieve record workflow BPMN diagram.
### System Interactions @@ -113,3 +113,6 @@ This includes the associated patient resource. &_include=Flag:patient ``` +### Relevant Documentation + +[FHIR Search](http://www.hl7.org/fhir/R4/search.html) \ No newline at end of file From 518c60852d141f153ffcc063062b5c92993e7a87 Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Fri, 22 Mar 2024 00:46:55 +0000 Subject: [PATCH 132/136] Feature/generalise profiles (#19) * generalised flag profiles * generalised flag profiles * generalised flag profiles * generalised flag profiles * generalise condition, fix refs and names * profiles generalised, apply profiles to examples * examples validating against profiles * cpis and fgm examples, all validating * addtional example pages added * fix cpis consent category example * fix flag code for cpis and fgm * added careconnect deps, tidy diagrams, include contact via yml * licence section removed, redundant if using ip-statements * slight mod to intro --------- Co-authored-by: Declan Kieran --- input/fsh/examples/0026-FGMPatientFlagExample1.fsh | 2 +- input/pagecontent/add-reasonable-adjustment-record.md | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/input/fsh/examples/0026-FGMPatientFlagExample1.fsh b/input/fsh/examples/0026-FGMPatientFlagExample1.fsh index 2fa4efa..13e4b2a 100644 --- a/input/fsh/examples/0026-FGMPatientFlagExample1.fsh +++ b/input/fsh/examples/0026-FGMPatientFlagExample1.fsh @@ -1,5 +1,5 @@ Instance: FGMPatientFlagExample1 -InstanceOf: Flag +InstanceOf: PatientFlag Title: "FGM example of a patient Flag resource" Usage: #example * meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/PatientFlag" diff --git a/input/pagecontent/add-reasonable-adjustment-record.md b/input/pagecontent/add-reasonable-adjustment-record.md index 9fbe395..b81605a 100644 --- a/input/pagecontent/add-reasonable-adjustment-record.md +++ b/input/pagecontent/add-reasonable-adjustment-record.md @@ -5,7 +5,6 @@ Patient consent must be obtained before recording any adjustment or impairment. For high level requirements, see [Key purposes of the Reasonable Adjustment Flag](index.html#key-purposes) ### Usecase - After obtaining consent from a patient, a Reasonable Adjustment Record may be created. This consists of a Flag resource containing an adjustment and a Condition resource may also optionally be created to record the details of an impairment. If a Reasonable Adjustment Record exists, a Flag resource designated as the patient flag must be created to indicate that there are reasonable adjustments recorded for the patient. There is a single instance of this type of resource per patient. From 297acab3a419ef379873cfad6451b704f9c549ba Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Wed, 27 Mar 2024 17:27:52 +0000 Subject: [PATCH 133/136] update to maintain consent object for dissent/revoke and examples (#23) Co-authored-by: Declan Kieran --- input/fsh/codesystem/RA-ConsentPurpose.fsh | 2 ++ input/fsh/examples/0013-RAConsentExample1.fsh | 2 +- .../examples/0030-RAConsentExampleDissent.fsh | 28 +++++++++++++++++++ .../examples/0031-RAConsentExampleRevoked.fsh | 28 +++++++++++++++++++ input/images-source/consent-sequence.plantuml | 17 +++++++---- .../consent-to-share-information.md | 13 +++++---- 6 files changed, 79 insertions(+), 11 deletions(-) create mode 100644 input/fsh/examples/0030-RAConsentExampleDissent.fsh create mode 100644 input/fsh/examples/0031-RAConsentExampleRevoked.fsh diff --git a/input/fsh/codesystem/RA-ConsentPurpose.fsh b/input/fsh/codesystem/RA-ConsentPurpose.fsh index 3bff03b..01bec37 100644 --- a/input/fsh/codesystem/RA-ConsentPurpose.fsh +++ b/input/fsh/codesystem/RA-ConsentPurpose.fsh @@ -15,3 +15,5 @@ Description: "A CodeSystem to identify the purpose of the consent given within R * ^caseSensitive = true * ^content = #complete * #RACONSENT "Reasonable Adjustments - Consent to record Reasonable Adjustments" +* #RADISSENT "Reasonable Adjustments - Dissent to record Reasonable Adjustments" +* #RAREVOKED "Reasonable Adjustments - Consent revoked to record Reasonable Adjustments" diff --git a/input/fsh/examples/0013-RAConsentExample1.fsh b/input/fsh/examples/0013-RAConsentExample1.fsh index 16e0295..60098b7 100644 --- a/input/fsh/examples/0013-RAConsentExample1.fsh +++ b/input/fsh/examples/0013-RAConsentExample1.fsh @@ -1,6 +1,6 @@ Instance: RAConsentExample1 InstanceOf: Consent -Title: "RA example of Consent resource." +Title: "RA example of Consent resource where patient provides consent." Usage: #example * meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/FlagConsent" diff --git a/input/fsh/examples/0030-RAConsentExampleDissent.fsh b/input/fsh/examples/0030-RAConsentExampleDissent.fsh new file mode 100644 index 0000000..d70370b --- /dev/null +++ b/input/fsh/examples/0030-RAConsentExampleDissent.fsh @@ -0,0 +1,28 @@ +Instance: RAConsentExampleDissent +InstanceOf: Consent +Title: "RA example of Consent resource where patient dissents to share information." +Usage: #example +* meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/FlagConsent" + +* extension[0].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentCreateSummary" +* extension[=].valueAnnotation.text = "Example of consent create summary extension text" +* extension[+].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentRemoveSummary" +* extension[=].valueAnnotation.text = "Example of consent remove summary extension text" + +* status = #active +* scope = $consentscope#patient-privacy +* category = PatientFlagCategory#NRAF "National Reasonable Adjustments Flag" +* provision.purpose = RA-ConsentPurpose#RADISSENT "Reasonable Adjustments - Dissent to record Reasonable Adjustments" +* patient = Reference(Patient/PatientExample1) +* policy.authority = "https://www.gov.uk/" +* policy.uri = "https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf" +* policyRule = FlagProxyRole#001 + +* contained.resourceType = "Provenance" +* contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $v3-DataOperation#CREATE "create" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" diff --git a/input/fsh/examples/0031-RAConsentExampleRevoked.fsh b/input/fsh/examples/0031-RAConsentExampleRevoked.fsh new file mode 100644 index 0000000..bc753f6 --- /dev/null +++ b/input/fsh/examples/0031-RAConsentExampleRevoked.fsh @@ -0,0 +1,28 @@ +Instance: RAConsentExampleRevoked +InstanceOf: Consent +Title: "RA example of Consent resource where patient revokes consent." +Usage: #example +* meta.profile = "https://fhir.nhs.uk/England/StructureDefinition/FlagConsent" + +* extension[0].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentCreateSummary" +* extension[=].valueAnnotation.text = "Example of consent create summary extension text" +* extension[+].url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentRemoveSummary" +* extension[=].valueAnnotation.text = "Example of consent remove summary extension text" + +* status = #active +* scope = $consentscope#patient-privacy +* category = PatientFlagCategory#NRAF "National Reasonable Adjustments Flag" +* provision.purpose = RA-ConsentPurpose#RAREVOKED "Reasonable Adjustments - Consent revoked to record Reasonable Adjustments" +* patient = Reference(Patient/PatientExample1) +* policy.authority = "https://www.gov.uk/" +* policy.uri = "https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf" +* policyRule = FlagProxyRole#001 + +* contained.resourceType = "Provenance" +* contained.id = "4c75ce1f-1ad7-4391-b5f6-104754c7e904" +* contained.target.reference = "#" +* contained.recorded = "2024-01-01T11:00:00+00:00" +* contained.activity = $v3-DataOperation#UPDATE "revise" +* contained.agent.role = $CareConnect-SDSJobRoleName-1#R0260 "General Medical Practitioner" +* contained.agent.who.reference = "https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9" +* contained.agent.onBehalfOf.reference = "https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7" diff --git a/input/images-source/consent-sequence.plantuml b/input/images-source/consent-sequence.plantuml index ac68d29..f4df0df 100644 --- a/input/images-source/consent-sequence.plantuml +++ b/input/images-source/consent-sequence.plantuml @@ -30,11 +30,18 @@ alt Consent has been given pra <-- api : OperationOutcome else Consent has not been given/been revoked pra -> api : Record consent was not given - api -> con : Delete adjustment consent - api -> pfg : Delete adjustment patient flag - api -> adj : Delete adjustment flag(s) - api -> cod : Delete condition flag(s) + api -> con : Create/update resource + con -> con : Validate + api <-- con : return + alt Validation failed + api -> api : rollback + else + api -> con : Delete adjustment consent + api -> pfg : Delete adjustment patient flag + api -> adj : Delete adjustment flag(s) + api -> cod : Delete condition flag(s) + end pra <-- api : OperationOutcome end -@enduml +@enduml \ No newline at end of file diff --git a/input/pagecontent/consent-to-share-information.md b/input/pagecontent/consent-to-share-information.md index f9c3bde..b182e2a 100644 --- a/input/pagecontent/consent-to-share-information.md +++ b/input/pagecontent/consent-to-share-information.md @@ -52,7 +52,7 @@ And all conditions will be deleted ### Workflow -If consent is not given, then this will be recorded. If there was previous consent to record adjustments, but the consent is then revoked, then all adjustment records must also be removed. +When consent or dissent is provided by the patient or their advocate, then this will be recorded in a [Consent](https://www.hl7.org/fhir/r4/consent.html) resource. If there was previous consent to record adjustments, but the consent is then revoked, then all adjustment records must also be removed.
Consent workflow BPMN diagram. @@ -60,9 +60,9 @@ If consent is not given, then this will be recorded. If there was previous cons ### System Interactions -If consent is given either by the patient or the patient advocate, then this should be recorded. A record of who obtained the consent must also be embedded in the Consent resource. This will done using a provenance resource. If consent has not been previously given, then this means the Consent resource must be created. If consent is removed, then the Consent resource should be deleted. The absence of a Consent resource implies patient dissent. +If consent is given either by the patient or the patient advocate, then this should be recorded. A record of who obtained the consent must also be embedded in the Consent resource. This will done using a contained provenance resource. -If consent is removed, then all previous adjustment records must be deleted, including the patient flag and all adjustment flags and conditions. +If consent has not been previously given, then this means the Consent resource must be created. If consent is revoked, then the Consent resource should be updated to reflect this and marked as inactive. Any previous adjustment records that were recorded must be removed, including the patient flag and all adjustment flags and conditions.
@@ -73,5 +73,8 @@ If consent is removed, then all previous adjustment records must be deleted, inc ### Examples * [Consent is given example](Consent-RAConsentExample1.html) -* Consent is not given is implied by the absence of a Consent resource -* Consent is revoked is implied by the absence of a Consent resource + +**TODO** - *these were not previous modelled in the terminology* + +* [Consent is not given](Consent-RAConsentExampleDissent.html) +* [Consent is revoked](Consent-RAConsentExampleRevoked.html) From ede7fab66472ba49f311e9703f53a34649233889 Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Wed, 27 Mar 2024 20:36:00 +0000 Subject: [PATCH 134/136] add scenarios, tidied a few other things (#24) Co-authored-by: Declan Kieran --- input/fsh/valuesets/FlagConsentPurpose.fsh | 4 +- input/images-source/consent-sequence.plantuml | 3 +- .../retrieve-record-sequence.plantuml | 30 +++++++- .../add-reasonable-adjustment-record.md | 6 +- .../consent-to-share-information.md | 4 ++ .../remove-reasonable-adjustment-record.md | 4 +- .../retrieve-reasonable-adjustment-record.md | 69 ++++++++++++++----- 7 files changed, 89 insertions(+), 31 deletions(-) diff --git a/input/fsh/valuesets/FlagConsentPurpose.fsh b/input/fsh/valuesets/FlagConsentPurpose.fsh index b1c49f3..dada339 100644 --- a/input/fsh/valuesets/FlagConsentPurpose.fsh +++ b/input/fsh/valuesets/FlagConsentPurpose.fsh @@ -17,10 +17,10 @@ Description: "A ValueSet to identify the purpose of a consent given for an NHS E * ^expansion.contains[=].code = #RACONSENT * ^expansion.contains[=].display = "Reasonable Adjustments - Consent to record Reasonable Adjustments" -* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/CPIS-ConsentPurpose" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/CPIS-ConsentPurpose" * ^expansion.contains[=].code = #CPISCONSENT * ^expansion.contains[=].display = "CPIS - Consent to record CPIS flags" -* ^expansion.contains[0].system = "https://fhir.nhs.uk/England/CodeSystem/FGM-ConsentPurpose" +* ^expansion.contains[+].system = "https://fhir.nhs.uk/England/CodeSystem/FGM-ConsentPurpose" * ^expansion.contains[=].code = #FGMCONSENT * ^expansion.contains[=].display = "FGM - Consent to record FGM flags" diff --git a/input/images-source/consent-sequence.plantuml b/input/images-source/consent-sequence.plantuml index f4df0df..addc59a 100644 --- a/input/images-source/consent-sequence.plantuml +++ b/input/images-source/consent-sequence.plantuml @@ -35,8 +35,7 @@ else Consent has not been given/been revoked api <-- con : return alt Validation failed api -> api : rollback - else - api -> con : Delete adjustment consent + else Consent updated api -> pfg : Delete adjustment patient flag api -> adj : Delete adjustment flag(s) api -> cod : Delete condition flag(s) diff --git a/input/images-source/retrieve-record-sequence.plantuml b/input/images-source/retrieve-record-sequence.plantuml index 36f204d..74593b9 100644 --- a/input/images-source/retrieve-record-sequence.plantuml +++ b/input/images-source/retrieve-record-sequence.plantuml @@ -5,11 +5,35 @@ skinparam actorStyle hollow actor "Practitioner" as pra actor "Patient" as pat participant "FHIR API" as api +entity "Consent" as con +entity "Patient Flag" as pfg +entity "Adjustment Flag" as adj +entity "Condition" as cod pra -> pat : Request confirmation\n of consent to\n access information -pra <-- pat : Provide consent\nto share information -pra -> api : Application GET / -pra <-- api : SearchSet Bundle +alt Consent provided + pra <-- pat : Provide consent + + pra -> api : Query for records + pra <-- api : SearchSet Bundle +else Consent not provided + pra <-- pat : No consent provided +else Consent revoked + pra <-- pat : Previous consent is revoked + + pra -> api : Record consent was revoked + api -> con : Update resource + con -> con : Validate + api <-- con : return + alt Validation failed + api -> api : rollback + else Consent updated + api -> pfg : Delete adjustment patient flag + api -> adj : Delete adjustment flag(s) + api -> cod : Delete condition flag(s) + end + pra <-- api : OperationOutcome +end @enduml diff --git a/input/pagecontent/add-reasonable-adjustment-record.md b/input/pagecontent/add-reasonable-adjustment-record.md index b81605a..55c5433 100644 --- a/input/pagecontent/add-reasonable-adjustment-record.md +++ b/input/pagecontent/add-reasonable-adjustment-record.md @@ -117,6 +117,6 @@ The following set of examples are for the same patient, and constitute an additi ### Relevant Documentation -[Bundles](https://hl7.org/fhir/r4/bundle.html) -[Transactions](https://hl7.org/fhir/r4/http.html#transaction) -[Upsert](https://hl7.org/fhir/r4/http.html#upsert) \ No newline at end of file +* [Bundle](https://hl7.org/fhir/r4/bundle.html) +* [Transaction](https://hl7.org/fhir/r4/http.html#transaction) +* [Upsert](https://hl7.org/fhir/r4/http.html#upsert) \ No newline at end of file diff --git a/input/pagecontent/consent-to-share-information.md b/input/pagecontent/consent-to-share-information.md index b182e2a..f7caae4 100644 --- a/input/pagecontent/consent-to-share-information.md +++ b/input/pagecontent/consent-to-share-information.md @@ -78,3 +78,7 @@ If consent has not been previously given, then this means the Consent resource m * [Consent is not given](Consent-RAConsentExampleDissent.html) * [Consent is revoked](Consent-RAConsentExampleRevoked.html) + +### Relevant Documentation + +* FHIR [ReSTful API](https://www.hl7.org/fhir/R4/http.html) diff --git a/input/pagecontent/remove-reasonable-adjustment-record.md b/input/pagecontent/remove-reasonable-adjustment-record.md index 5c36aeb..caa704c 100644 --- a/input/pagecontent/remove-reasonable-adjustment-record.md +++ b/input/pagecontent/remove-reasonable-adjustment-record.md @@ -63,5 +63,5 @@ Multiple resources can be deleted using a transaction bundle. This [example del ### Relevant Documentation -[Bundles](https://hl7.org/fhir/r4/bundle.html) -[Transactions](https://hl7.org/fhir/r4/http.html#transaction) \ No newline at end of file +* [Bundle](https://hl7.org/fhir/r4/bundle.html) +* [Transaction](https://hl7.org/fhir/r4/http.html#transaction) \ No newline at end of file diff --git a/input/pagecontent/retrieve-reasonable-adjustment-record.md b/input/pagecontent/retrieve-reasonable-adjustment-record.md index a98d232..e1a4940 100644 --- a/input/pagecontent/retrieve-reasonable-adjustment-record.md +++ b/input/pagecontent/retrieve-reasonable-adjustment-record.md @@ -14,6 +14,25 @@ After obtaining consent from a patient, a Reasonable Adjustment Record may be re
+#### Scenarios + +```gherkin +Given a practitioner must access a patients reasonable adjustment records +And consent has been provided +When the practitioner retrieves the reasonable adjustment records +Then all resources associated with reasonable adjustment records will be returned + +Given a practitioner must access a patients reasonable adjustment records +And no consent has been provided +When the practitioner attempts to retrieve the reasonable adjustment records +Then no resources will be returned + +Given a practitioner must access a patients reasonable adjustment records +And consent is revoked +When the practitioner updates the Consent resource to revoked +Then all other resources associated with reasonable adjustment records will be removed +``` + ### Workflow A practitioner confirms that a patient consents to share information about Reasonable Adjustment records. A patient may revoke consent to share information about Reasonable Adjustment records and if they do, all records must be removed. @@ -22,11 +41,7 @@ A practitioner confirms that a patient consents to share information about Reaso Retrieve record workflow BPMN diagram.
-### System Interactions - -Using [FHIR search](https://www.hl7.org/fhir/search.html) capabilities, it is possible to retrieve the reasonable adjustment records in several ways. - -#### General query interaction +### System Interaction
@@ -34,18 +49,15 @@ Using [FHIR search](https://www.hl7.org/fhir/search.html) capabilities, it is po
-The following queries will return all or some of the resources constituing a Reasonable Adjustments record, i.e. +### Queries -* [Flag Consent](StructureDefinition-FlagConsent.html) resource -* [Patient Flag](StructureDefinition-PatientFlag.html) resources -* [Programme Flag](StructureDefinition-ProgrammeFlag.html) resources -* [Flag Condition](StructureDefinition-FlagCondition.html) resources - -All queries rely on the [FlagCategory](SearchParameter-FlagCategory.html) and [FlagCode](SearchParameter-FlagCode.html) SearchParameters. +Using [FHIR search](https://www.hl7.org/fhir/search.html) capabilities, it is possible to retrieve the reasonable adjustment records in several ways. #### Patient endpoint search -This will return all resources associated flag resources for a patient +This section describes how to query from the [Patient](http://www.hl7.org/fhir/R4/patient.html#search) endpoint using [FHIR search](https://www.hl7.org/fhir/search.html) + +This will return all associated flag resources for Reasonable Adjustments. ``` GET /Patient?identifier=9912003888&_has:Flag:patient:code=NRAF&_has:Flag:patient:category=NRAF&_revinclude=Flag:patient&_has:Consent:patient:category=NRAF&_revinclude=Consent:patient&_has:Condition:patient:category=NRAF&_revinclude=Condition:patient @@ -81,15 +93,30 @@ This limits the search to patients that have Condition resources linked via pati &_has:Condition:patient:category=NRAF&_revinclude=Condition:patient ``` -#### Flag endpoint search using flag-detail extension +The following queries will return all or some of the resources constituing a Reasonable Adjustments record, i.e. -If the [flag-detail extension](http://hl7.org/fhir/StructureDefinition/flag-detail) is used, then references to all Reasonable Adjustment resources can be included the [Patient Flag](StructureDefinition-PatientFlag.html) resource. +* [Flag Consent](StructureDefinition-FlagConsent.html) resource +* [Patient Flag](StructureDefinition-PatientFlag.html) resources +* [Programme Flag](StructureDefinition-ProgrammeFlag.html) resources +* [Flag Condition](StructureDefinition-FlagCondition.html) resources + +This query relies on the [FlagCategory](SearchParameter-FlagCategory.html) and [FlagCode](SearchParameter-FlagCode.html) SearchParameters. -**NOTE:** For every additional record/resource added, the flag-detail element in the Patient Flag resource will need updated. +#### Flag endpoint search -**TODO:** add this into the add record interaction diagram :( +This section describes how to query from the [Flag](http://www.hl7.org/fhir/R4/flag.html#search) endpoint using [FHIR search](https://www.hl7.org/fhir/search.html) -The following query relies on the [FlagDetail](SearchParameter-FlagDetail.html) SearchParameter. +**NOTE:** For every additional record/resource added, the flag-detail element in the Patient Flag resource will need updated. See **TODO -- link to add interaction diagram**. + + + +If the [flag-detail extension](http://hl7.org/fhir/StructureDefinition/flag-detail) is used, then references to all Reasonable Adjustment resources can be included the [Patient Flag](StructureDefinition-PatientFlag.html) resource. + +This will return all associated flag resources for Reasonable Adjustments. ``` http://localhost:8080/fhir/Flag?patient.identifier=9912003888&_include=Flag:detail&_include=Flag:patient @@ -113,6 +140,10 @@ This includes the associated patient resource. &_include=Flag:patient ``` +This query relies on the [FlagCategory](SearchParameter-FlagCategory.html), [FlagCode](SearchParameter-FlagCode.html) and [FlagDetail](SearchParameter-FlagDetail.html) SearchParameters. + + ### Relevant Documentation -[FHIR Search](http://www.hl7.org/fhir/R4/search.html) \ No newline at end of file +* FHIR [Search](http://www.hl7.org/fhir/R4/search.html) +* [SearchParameters](https://www.hl7.org/fhir/R4/searchparameter.html) \ No newline at end of file From 31abfab46a7975676335e2a86fe0cb55f129fd63 Mon Sep 17 00:00:00 2001 From: declankieran-nhsd <93662162+declankieran-nhsd@users.noreply.github.com> Date: Thu, 28 Mar 2024 00:53:04 +0000 Subject: [PATCH 135/136] Fix/remove experimental ci (#25) * fix references in transaction bundle in flag extension so they work with hapi starter * remove ci * tidy id's and updated postman collection * update example page * remove ci steps from pipeline --------- Co-authored-by: Declan Kieran --- .github/workflows/publish.yml | 9 - .../assets/postman/postman_collection.json | 455 ++++++++++++++++-- .../0005-add-ra-record-transaction-example.md | 1 - .../0006-add-ra-record-transaction-example.md | 1 - .../0007-add-ra-record-transaction-example.md | 1 - input/ci/queries/0008-get-all-flags.md | 1 - input/ci/queries/0009-get-flag-by-category.md | 1 - .../0010-get-flag-by-category-and-code.md | 1 - input/ci/queries/0011-delete-flag-by-id.md | 1 - ...-AddRARecordTransactionExample1-bundle.fsh | 25 - ...-AddRARecordTransactionExample2-bundle.fsh | 33 -- ...ddCPISRecordTransactionExample1-bundle.fsh | 25 - ...AddFGMRecordTransactionExample1-bundle.fsh | 25 - ...ddCPISRecordTransactionExample1-bundle.fsh | 25 + ...AddFGMRecordTransactionExample1-bundle.fsh | 25 + .../AddRARecordTransactionExample1-bundle.fsh | 25 + .../AddRARecordTransactionExample2-bundle.fsh | 33 ++ ...Example1.fsh => CPISConditionExample1.fsh} | 0 ...sentExample.fsh => CPISConsentExample.fsh} | 0 ...SFlagExample1.fsh => CPISFlagExample1.fsh} | 0 ...ample1.fsh => CPISPatientFlagExample1.fsh} | 0 ...nExample1.fsh => FGMConditionExample1.fsh} | 0 ...nsentExample.fsh => FGMConsentExample.fsh} | 0 ...GMFlagExample1.fsh => FGMFlagExample1.fsh} | 0 ...xample1.fsh => FGMPatientFlagExample1.fsh} | 0 ...atientExample1.fsh => PatientExample1.fsh} | 0 ...onExample1.fsh => RAConditionExample1.fsh} | 0 ...onExample2.fsh => RAConditionExample2.fsh} | 0 ...sentExample1.fsh => RAConsentExample1.fsh} | 0 ...issent.fsh => RAConsentExampleDissent.fsh} | 0 ...evoked.fsh => RAConsentExampleRevoked.fsh} | 0 ...-RAFlagExample1.fsh => RAFlagExample1.fsh} | 0 ...-RAFlagExample2.fsh => RAFlagExample2.fsh} | 0 ...Example1.fsh => RAPatientFlagExample1.fsh} | 0 ...dExample.fsh => RemoveRARecordExample.fsh} | 0 input/pagecontent/basic-query-examples.md | 31 ++ input/pagecontent/server-examples.md | 163 ------- scripts/run-examples.sh | 75 --- sushi-config.yaml | 2 +- 39 files changed, 560 insertions(+), 398 deletions(-) delete mode 100644 input/ci/queries/0005-add-ra-record-transaction-example.md delete mode 100644 input/ci/queries/0006-add-ra-record-transaction-example.md delete mode 100644 input/ci/queries/0007-add-ra-record-transaction-example.md delete mode 100644 input/ci/queries/0008-get-all-flags.md delete mode 100644 input/ci/queries/0009-get-flag-by-category.md delete mode 100644 input/ci/queries/0010-get-flag-by-category-and-code.md delete mode 100644 input/ci/queries/0011-delete-flag-by-id.md delete mode 100644 input/fsh/examples/0003-AddRARecordTransactionExample1-bundle.fsh delete mode 100644 input/fsh/examples/0004-AddRARecordTransactionExample2-bundle.fsh delete mode 100644 input/fsh/examples/0024-AddCPISRecordTransactionExample1-bundle.fsh delete mode 100644 input/fsh/examples/0029-AddFGMRecordTransactionExample1-bundle.fsh create mode 100644 input/fsh/examples/AddCPISRecordTransactionExample1-bundle.fsh create mode 100644 input/fsh/examples/AddFGMRecordTransactionExample1-bundle.fsh create mode 100644 input/fsh/examples/AddRARecordTransactionExample1-bundle.fsh create mode 100644 input/fsh/examples/AddRARecordTransactionExample2-bundle.fsh rename input/fsh/examples/{0023-CPISConditionExample1.fsh => CPISConditionExample1.fsh} (100%) rename input/fsh/examples/{0020-CPISConsentExample.fsh => CPISConsentExample.fsh} (100%) rename input/fsh/examples/{0022-CPISFlagExample1.fsh => CPISFlagExample1.fsh} (100%) rename input/fsh/examples/{0021-CPISPatientFlagExample1.fsh => CPISPatientFlagExample1.fsh} (100%) rename input/fsh/examples/{0028-FGMConditionExample1.fsh => FGMConditionExample1.fsh} (100%) rename input/fsh/examples/{0025-FGMConsentExample.fsh => FGMConsentExample.fsh} (100%) rename input/fsh/examples/{0027-FGMFlagExample1.fsh => FGMFlagExample1.fsh} (100%) rename input/fsh/examples/{0026-FGMPatientFlagExample1.fsh => FGMPatientFlagExample1.fsh} (100%) rename input/fsh/examples/{0014-PatientExample1.fsh => PatientExample1.fsh} (100%) rename input/fsh/examples/{0017-RAConditionExample1.fsh => RAConditionExample1.fsh} (100%) rename input/fsh/examples/{0019-RAConditionExample2.fsh => RAConditionExample2.fsh} (100%) rename input/fsh/examples/{0013-RAConsentExample1.fsh => RAConsentExample1.fsh} (100%) rename input/fsh/examples/{0030-RAConsentExampleDissent.fsh => RAConsentExampleDissent.fsh} (100%) rename input/fsh/examples/{0031-RAConsentExampleRevoked.fsh => RAConsentExampleRevoked.fsh} (100%) rename input/fsh/examples/{0016-RAFlagExample1.fsh => RAFlagExample1.fsh} (100%) rename input/fsh/examples/{0018-RAFlagExample2.fsh => RAFlagExample2.fsh} (100%) rename input/fsh/examples/{0015-RAPatientFlagExample1.fsh => RAPatientFlagExample1.fsh} (100%) rename input/fsh/examples/{0012-RemoveRARecordExample.fsh => RemoveRARecordExample.fsh} (100%) create mode 100644 input/pagecontent/basic-query-examples.md delete mode 100644 input/pagecontent/server-examples.md delete mode 100755 scripts/run-examples.sh diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 1a00ab4..44fb12c 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -37,15 +37,6 @@ jobs: - name: Install Graphvix run: sudo apt install graphviz - - name: Run FHIR server (TODO - load package from vars and validate - maybe just let the publisher handle that...) - run: docker run -d -p 8080:8080 -e hapi.fhir.daoconfig_client_id_strategy=UUID -e hapi.fhir.client_id_strategy=ANY hapiproject/hapi:latest - - - name: Sleep to give server time to start - run: sleep 90 - - - name: Convert FSH, load examples and run queries to be added to IG - run: ./scripts/run-examples.sh - - name: Build IG run: ./_genonce.sh ${{ vars.VALIDATOR_OFFLINE }} diff --git a/ig-template/package/content/assets/postman/postman_collection.json b/ig-template/package/content/assets/postman/postman_collection.json index 459cff9..c531d18 100644 --- a/ig-template/package/content/assets/postman/postman_collection.json +++ b/ig-template/package/content/assets/postman/postman_collection.json @@ -1,7 +1,7 @@ { "info": { - "_postman_id": "adb3f331-e89f-4548-b96b-b781a41eba64", - "name": "ReasonableAdjustmentsExamples", + "_postman_id": "5911c4df-e4e8-4ef1-ae75-bf22a688d9cc", + "name": "Reasonable Adjustments Examples", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "_exporter_id": "32605342" }, @@ -68,14 +68,29 @@ "response": [] }, { - "name": "Extension Flag.detail - TODO", + "name": "Extension Flag.detail", "request": { "method": "POST", "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"resourceType\": \"SearchParameter\",\n \"id\": \"FlagDetail\",\n \"url\": \"http://localhost:8080/fhir/SearchParameter/FlagDetail\",\n \"name\": \"SearchParameter for flag detail extension used in Flag\",\n \"title\": \"SearchParameter for Flag.extension where url=http://hl7.org/fhir/StructureDefinition/flag-detail\",\n \"status\": \"active\",\n \"description\": \"Search using extension for flag detail extension in Flag resource\",\n \"code\": \"detail\",\n \"base\": [\"Flag\"],\n \"type\": \"reference\",\n \"expression\": \"Flag.extension('http://hl7.org/fhir/StructureDefinition/flag-detail')\",\n \"target\": [\"Condition\", \"Flag\", \"Consent\"]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "TODO", + "raw": "http://localhost:8080/fhir/SearchParameter", + "protocol": "http", "host": [ - "TODO" + "localhost" + ], + "port": "8080", + "path": [ + "fhir", + "SearchParameter" ] } }, @@ -84,30 +99,44 @@ ] }, { - "name": "Add RA Record", + "name": "Transaction Bundles", "item": [ { - "name": "Example 1", + "name": "AddRARecordTransactionExample1", "request": { "method": "POST", "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"resourceType\": \"Bundle\",\n \"id\": \"AddRARecordTransactionExample1\",\n \"entry\": [\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Patient/PatientExample1\"\n },\n \"fullUrl\": \"Patient/PatientExample1\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"id\": \"PatientExample1\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient\"\n ]\n },\n \"identifier\": [\n {\n \"system\": \"https://fhir.nhs.uk/Id/nhs-number\",\n \"value\": \"9912003888\"\n }\n ],\n \"name\": [\n {\n \"given\": [\n \"Alan\"\n ],\n \"use\": \"official\",\n \"family\": \"Mann\"\n }\n ],\n \"active\": true,\n \"gender\": \"male\",\n \"birthDate\": \"1970-01-01\"\n }\n },\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Consent/RAConsentExample1\"\n },\n \"fullUrl\": \"Consent/RAConsentExample1\",\n \"resource\": {\n \"resourceType\": \"Consent\",\n \"id\": \"RAConsentExample1\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.nhs.uk/England/StructureDefinition/FlagConsent\"\n ]\n },\n \"extension\": [\n {\n \"valueAnnotation\": {\n \"text\": \"Example of consent create summary extension text\"\n },\n \"url\": \"https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentCreateSummary\"\n },\n {\n \"valueAnnotation\": {\n \"text\": \"Example of consent remove summary extension text\"\n },\n \"url\": \"https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentRemoveSummary\"\n }\n ],\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"provision\": {\n \"purpose\": [\n {\n \"code\": \"RACONSENT\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/RA-ConsentPurpose\",\n \"display\": \"Reasonable Adjustments - Consent to record Reasonable Adjustments\"\n }\n ]\n },\n \"policy\": [\n {\n \"authority\": \"https://www.gov.uk/\",\n \"uri\": \"https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf\"\n }\n ],\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"id\": \"4c75ce1f-1ad7-4391-b5f6-104754c7e904\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ],\n \"status\": \"active\",\n \"scope\": {\n \"coding\": [\n {\n \"code\": \"patient-privacy\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/consentscope\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/PatientExample1\"\n },\n \"policyRule\": {\n \"coding\": [\n {\n \"code\": \"001\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/FlagProxyRole\"\n }\n ]\n }\n }\n },\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Condition/RAConditionExample1\"\n },\n \"fullUrl\": \"Condition/RAConditionExample1\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"RAConditionExample1\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.nhs.uk/England/StructureDefinition/FlagCondition\"\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n },\n {\n \"coding\": [\n {\n \"code\": \"issue\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCategory\",\n \"display\": \"Issue\"\n }\n ]\n }\n ],\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"id\": \"6a6b18a7-c077-49da-929f-a8dd38468f79\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ],\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"code\": \"active\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\"\n }\n ]\n },\n \"code\": {\n \"coding\": [\n {\n \"code\": \"5\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCode\",\n \"display\": \"Learning or understanding or concentrating\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/PatientExample1\"\n }\n }\n },\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/RAPatientFlagExample1\"\n },\n \"fullUrl\": \"Flag/RAPatientFlagExample1\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"RAPatientFlagExample1\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.nhs.uk/England/StructureDefinition/PatientFlag\"\n ]\n },\n \"extension\": [\n {\n \"valueAnnotation\": {\n \"text\": \"Example of flag notes extension text in patient flag\"\n },\n \"url\": \"https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes\"\n },\n {\n \"valueReference\": {\n \"reference\": \"Condition/RAConditionExample1\",\n \"type\": \"Condition\"\n },\n \"url\": \"http://hl7.org/fhir/StructureDefinition/flag-detail\"\n },\n {\n \"valueReference\": {\n \"reference\": \"Consent/RAConsentExample1\",\n \"type\": \"Consent\"\n },\n \"url\": \"http://hl7.org/fhir/StructureDefinition/flag-detail\"\n },\n {\n \"valueReference\": {\n \"reference\": \"Flag/RAFlagExample1\",\n \"type\": \"Flag\"\n },\n \"url\": \"http://hl7.org/fhir/StructureDefinition/flag-detail\"\n }\n ],\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"id\": \"c4e2e862-3bf4-4176-a186-9f1732938260\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ],\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/PatientExample1\"\n }\n }\n },\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/RAFlagExample1\"\n },\n \"fullUrl\": \"Flag/RAFlagExample1\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"RAFlagExample1\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.nhs.uk/England/StructureDefinition/ProgrammeFlag\"\n ]\n },\n \"extension\": [\n {\n \"valueAnnotation\": {\n \"text\": \"Example of flag notes extension text in adjustment flag\"\n },\n \"url\": \"https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes\"\n }\n ],\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n },\n {\n \"coding\": [\n {\n \"code\": \"001\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory\",\n \"display\": \"Communication support\"\n }\n ]\n }\n ],\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"id\": \"873a38eb-0f9c-4a66-a4e9-8e4be2350d6b\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ],\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"1082681000000103\",\n \"system\": \"https://snomed.info/sct\",\n \"display\": \"Requires support for receptive communication needs\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/PatientExample1\"\n }\n }\n }\n ],\n \"type\": \"transaction\"\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, "url": { - "raw": "TODO", + "raw": "http://localhost:8080/fhir", + "protocol": "http", "host": [ - "TODO" + "localhost" + ], + "port": "8080", + "path": [ + "fhir" ] } }, "response": [] }, { - "name": "Example 2.1", + "name": "AddRARecordTransactionExample2", "request": { "method": "POST", "header": [], "body": { "mode": "raw", - "raw": "{\n \"resourceType\": \"Bundle\",\n \"id\": \"add-condition-transaction-example-1\",\n \"type\": \"transaction\",\n \"entry\": [\n {\n \"fullUrl\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"id\": \"patient-example-1\",\n \"identifier\": [\n {\n \"system\": \"https://fhir.nhs.uk/Id/nhs-number\",\n \"value\": \"9912003888\"\n }\n ],\n \"active\": true,\n \"name\": [\n {\n \"use\": \"official\",\n \"family\": \"Duck\",\n \"given\": [\n \"Donald\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"birthDate\": \"1970-01-01\"\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Patient?identifier=9912003888\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:959fbc3c-0907-419e-aa3d-ab88f2d90c5e\",\n \"resource\": {\n \"resourceType\": \"Consent\",\n \"id\": \"consent-example-1\",\n \"status\": \"active\",\n \"scope\": {\n \"coding\": [\n {\n \"code\": \"patient-privacy\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/consentscope\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"provision\": {\n \"purpose\": [\n {\n \"code\": \"370856009\",\n \"system\": \"https://snomed.info/sct\",\n \"display\": \"Limiting access to confidential patient information\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"policy\": [\n {\n \"authority\": \"https://www.gov.uk/\",\n \"uri\": \"https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf\"\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Consent?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:41a84a93-1c95-4162-b13c-1c617509e6e2\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"condition-example-1\",\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"code\": \"active\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"issue\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1\",\n \"display\": \"Issue\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"code\": \"5\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1\",\n \"display\": \"Learning or understanding or concentrating\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Condition?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:fba99f70-fe1d-42e2-b77a-916e44b53c19\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"master-flag-example-1\",\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://hl7.org/fhir/v3/DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"condition-flag-example-1\",\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"001\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1\",\n \"display\": \"Communication support\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://hl7.org/fhir/v3/DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85\"\n }\n }\n ]\n}", + "raw": "{\n \"resourceType\": \"Bundle\",\n \"id\": \"AddRARecordTransactionExample2\",\n \"entry\": [\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Patient/PatientExample1\"\n },\n \"fullUrl\": \"Patient/PatientExample1\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"id\": \"PatientExample1\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient\"\n ]\n },\n \"identifier\": [\n {\n \"system\": \"https://fhir.nhs.uk/Id/nhs-number\",\n \"value\": \"9912003888\"\n }\n ],\n \"name\": [\n {\n \"given\": [\n \"Alan\"\n ],\n \"use\": \"official\",\n \"family\": \"Mann\"\n }\n ],\n \"active\": true,\n \"gender\": \"male\",\n \"birthDate\": \"1970-01-01\"\n }\n },\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Consent/RAConsentExample1\"\n },\n \"fullUrl\": \"Consent/RAConsentExample1\",\n \"resource\": {\n \"resourceType\": \"Consent\",\n \"id\": \"RAConsentExample1\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.nhs.uk/England/StructureDefinition/FlagConsent\"\n ]\n },\n \"extension\": [\n {\n \"valueAnnotation\": {\n \"text\": \"Example of consent create summary extension text\"\n },\n \"url\": \"https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentCreateSummary\"\n },\n {\n \"valueAnnotation\": {\n \"text\": \"Example of consent remove summary extension text\"\n },\n \"url\": \"https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentRemoveSummary\"\n }\n ],\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"provision\": {\n \"purpose\": [\n {\n \"code\": \"RACONSENT\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/RA-ConsentPurpose\",\n \"display\": \"Reasonable Adjustments - Consent to record Reasonable Adjustments\"\n }\n ]\n },\n \"policy\": [\n {\n \"authority\": \"https://www.gov.uk/\",\n \"uri\": \"https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf\"\n }\n ],\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"id\": \"4c75ce1f-1ad7-4391-b5f6-104754c7e904\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ],\n \"status\": \"active\",\n \"scope\": {\n \"coding\": [\n {\n \"code\": \"patient-privacy\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/consentscope\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/PatientExample1\"\n },\n \"policyRule\": {\n \"coding\": [\n {\n \"code\": \"001\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/FlagProxyRole\"\n }\n ]\n }\n }\n },\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Condition/RAConditionExample1\"\n },\n \"fullUrl\": \"Condition/RAConditionExample1\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"RAConditionExample1\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.nhs.uk/England/StructureDefinition/FlagCondition\"\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n },\n {\n \"coding\": [\n {\n \"code\": \"issue\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCategory\",\n \"display\": \"Issue\"\n }\n ]\n }\n ],\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"id\": \"6a6b18a7-c077-49da-929f-a8dd38468f79\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ],\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"code\": \"active\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\"\n }\n ]\n },\n \"code\": {\n \"coding\": [\n {\n \"code\": \"5\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCode\",\n \"display\": \"Learning or understanding or concentrating\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/PatientExample1\"\n }\n }\n },\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/RAPatientFlagExample1\"\n },\n \"fullUrl\": \"Flag/RAPatientFlagExample1\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"RAPatientFlagExample1\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.nhs.uk/England/StructureDefinition/PatientFlag\"\n ]\n },\n \"extension\": [\n {\n \"valueAnnotation\": {\n \"text\": \"Example of flag notes extension text in patient flag\"\n },\n \"url\": \"https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes\"\n },\n {\n \"valueReference\": {\n \"reference\": \"Condition/RAConditionExample1\",\n \"type\": \"Condition\"\n },\n \"url\": \"http://hl7.org/fhir/StructureDefinition/flag-detail\"\n },\n {\n \"valueReference\": {\n \"reference\": \"Consent/RAConsentExample1\",\n \"type\": \"Consent\"\n },\n \"url\": \"http://hl7.org/fhir/StructureDefinition/flag-detail\"\n },\n {\n \"valueReference\": {\n \"reference\": \"Flag/RAFlagExample1\",\n \"type\": \"Flag\"\n },\n \"url\": \"http://hl7.org/fhir/StructureDefinition/flag-detail\"\n }\n ],\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"id\": \"c4e2e862-3bf4-4176-a186-9f1732938260\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ],\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/PatientExample1\"\n }\n }\n },\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/RAFlagExample1\"\n },\n \"fullUrl\": \"Flag/RAFlagExample1\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"RAFlagExample1\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.nhs.uk/England/StructureDefinition/ProgrammeFlag\"\n ]\n },\n \"extension\": [\n {\n \"valueAnnotation\": {\n \"text\": \"Example of flag notes extension text in adjustment flag\"\n },\n \"url\": \"https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes\"\n }\n ],\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n },\n {\n \"coding\": [\n {\n \"code\": \"001\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory\",\n \"display\": \"Communication support\"\n }\n ]\n }\n ],\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"id\": \"873a38eb-0f9c-4a66-a4e9-8e4be2350d6b\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ],\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"1082681000000103\",\n \"system\": \"https://snomed.info/sct\",\n \"display\": \"Requires support for receptive communication needs\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/PatientExample1\"\n }\n }\n },\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Condition/RAConditionExample2\"\n },\n \"fullUrl\": \"Condition/RAConditionExample2\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"RAConditionExample2\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.nhs.uk/England/StructureDefinition/FlagCondition\"\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n },\n {\n \"coding\": [\n {\n \"code\": \"issue\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCategory\",\n \"display\": \"Issue\"\n }\n ]\n }\n ],\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"id\": \"f55e1edc-8ac7-4e06-b322-25fd34e62249\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ],\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"code\": \"active\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\"\n }\n ]\n },\n \"code\": {\n \"coding\": [\n {\n \"code\": \"9\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/RA-ConditionCode\",\n \"display\": \"Social or behavioural (for example associated with autism spectrum disorder (ASD) which includes Asperger’s, or attention deficit hyperactivity disorder (ADHD))\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/PatientExample1\"\n }\n }\n },\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/RAFlagExample2\"\n },\n \"fullUrl\": \"Flag/RAFlagExample2\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"RAFlagExample2\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.nhs.uk/England/StructureDefinition/ProgrammeFlag\"\n ]\n },\n \"extension\": [\n {\n \"valueAnnotation\": {\n \"text\": \"Example of adjustment notes extension text in adjustment flag\"\n },\n \"url\": \"https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes\"\n }\n ],\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n },\n {\n \"coding\": [\n {\n \"code\": \"011\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/RA-FlagCategory\",\n \"display\": \"Bespoke Reasonable adjustments\"\n }\n ]\n }\n ],\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"id\": \"71f8bcda-242d-4401-a59c-6924a6cb1c0e\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ],\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"73618009\",\n \"system\": \"https://snomed.info/sct\",\n \"display\": \"Autistic spectrum disorder with isolated skills\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/PatientExample1\"\n }\n }\n }\n ],\n \"type\": \"transaction\"\n}\n", "options": { "raw": { "language": "json" @@ -129,13 +158,80 @@ "response": [] }, { - "name": "Example 2.1", + "name": "RemoveRARecordExample", "request": { "method": "POST", "header": [], "body": { "mode": "raw", - "raw": "{\n \"resourceType\": \"Bundle\",\n \"id\": \"add-condition-transaction-example-1\",\n \"type\": \"transaction\",\n \"entry\": [\n {\n \"fullUrl\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"id\": \"patient-example-1\",\n \"identifier\": [\n {\n \"system\": \"https://fhir.nhs.uk/Id/nhs-number\",\n \"value\": \"9912003888\"\n }\n ],\n \"active\": true,\n \"name\": [\n {\n \"use\": \"official\",\n \"family\": \"Duck\",\n \"given\": [\n \"Donald\"\n ]\n }\n ],\n \"gender\": \"male\",\n \"birthDate\": \"1970-01-01\"\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Patient?identifier=9912003888\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:959fbc3c-0907-419e-aa3d-ab88f2d90c5e\",\n \"resource\": {\n \"resourceType\": \"Consent\",\n \"id\": \"consent-example-1\",\n \"status\": \"active\",\n \"scope\": {\n \"coding\": [\n {\n \"code\": \"patient-privacy\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/consentscope\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"provision\": {\n \"purpose\": [\n {\n \"code\": \"370856009\",\n \"system\": \"https://snomed.info/sct\",\n \"display\": \"Limiting access to confidential patient information\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"policy\": [\n {\n \"authority\": \"https://www.gov.uk/\",\n \"uri\": \"https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf\"\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Consent?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:fba99f70-fe1d-42e2-b77a-916e44b53c19\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"master-flag-example-1\",\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://hl7.org/fhir/v3/DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:41a84a93-1c95-4162-b13c-1c617509e6e2\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"condition-example-1\",\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"code\": \"active\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"issue\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1\",\n \"display\": \"Issue\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"code\": \"5\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1\",\n \"display\": \"Learning or understanding or concentrating\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Condition?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"condition-flag-example-1\",\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"001\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1\",\n \"display\": \"Communication support\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://hl7.org/fhir/v3/DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:09264d2-3986-458b-91eb-e7482b4c3025\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"condition-example-2\",\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"code\": \"active\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"issue\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1\",\n \"display\": \"Issue\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"code\": \"73618009\",\n \"system\": \"https://snomed.info/sct\",\n \"display\": \"Autistic spectrum disorder with isolated skills\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n }\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Condition/09264d2-3986-458b-91eb-e7482b4c3025\"\n }\n },\n {\n \"fullUrl\": \"urn:uuid:212c1018-f52a-4db7-9bc2-59a88622eb4f\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"condition-flag-example-2\",\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"001\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1\",\n \"display\": \"Communication support\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"NRAF\",\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"subject\": {\n \"reference\": \"urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77\"\n },\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://hl7.org/fhir/v3/DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ]\n },\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/212c1018-f52a-4db7-9bc2-59a88622eb4f\"\n }\n }\n ]\n}", + "raw": "{\n \"resourceType\": \"Bundle\",\n \"id\": \"RemoveRARecordExample\",\n \"entry\": [\n {\n \"request\": {\n \"method\": \"DELETE\",\n \"url\": \"Flag/RAPatientFlagExample1\"\n }\n },\n {\n \"request\": {\n \"method\": \"DELETE\",\n \"url\": \"Consent/RAConsentExample1\"\n }\n },\n {\n \"request\": {\n \"method\": \"DELETE\",\n \"url\": \"Condition/RAConditionExample1\"\n }\n }\n ],\n \"type\": \"transaction\"\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:8080/fhir", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "fhir" + ] + } + }, + "response": [] + }, + { + "name": "AddCPISRecordTransactionExample1", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"resourceType\": \"Bundle\",\n \"id\": \"AddCPISRecordTransactionExample1\",\n \"entry\": [\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Patient/PatientExample1\"\n },\n \"fullUrl\": \"Patient/PatientExample1\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"id\": \"PatientExample1\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient\"\n ]\n },\n \"identifier\": [\n {\n \"system\": \"https://fhir.nhs.uk/Id/nhs-number\",\n \"value\": \"9912003888\"\n }\n ],\n \"name\": [\n {\n \"given\": [\n \"Alan\"\n ],\n \"use\": \"official\",\n \"family\": \"Mann\"\n }\n ],\n \"active\": true,\n \"gender\": \"male\",\n \"birthDate\": \"1970-01-01\"\n }\n },\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Consent/CPISConsentExample1\"\n },\n \"fullUrl\": \"Consent/CPISConsentExample1\",\n \"resource\": {\n \"resourceType\": \"Consent\",\n \"id\": \"CPISConsentExample1\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.nhs.uk/England/StructureDefinition/FlagConsent\"\n ]\n },\n \"extension\": [\n {\n \"valueAnnotation\": {\n \"text\": \"Example of consent create summary extension text\"\n },\n \"url\": \"https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentCreateSummary\"\n },\n {\n \"valueAnnotation\": {\n \"text\": \"Example of consent remove summary extension text\"\n },\n \"url\": \"https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentRemoveSummary\"\n }\n ],\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"CP-IS\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory\",\n \"display\": \"Child Protection - Information Sharing Flag\"\n }\n ]\n }\n ],\n \"provision\": {\n \"purpose\": [\n {\n \"code\": \"CPISCONSENT\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/CPIS-ConsentPurpose\",\n \"display\": \"CPIS - Consent to record CPIS flags\"\n }\n ]\n },\n \"policy\": [\n {\n \"authority\": \"https://www.gov.uk/\",\n \"uri\": \"https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf\"\n }\n ],\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"id\": \"51a731b3-1c46-47ba-abad-04209bd264e6\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ],\n \"status\": \"active\",\n \"scope\": {\n \"coding\": [\n {\n \"code\": \"patient-privacy\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/consentscope\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/PatientExample1\"\n },\n \"policyRule\": {\n \"coding\": [\n {\n \"code\": \"001\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/FlagProxyRole\"\n }\n ]\n }\n }\n },\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Condition/CPISConditionExample1\"\n },\n \"fullUrl\": \"Condition/CPISConditionExample1\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"CPISConditionExample1\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.nhs.uk/England/StructureDefinition/FlagCondition\"\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"CP-IS\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory\",\n \"display\": \"Child Protection - Information Sharing Flag\"\n }\n ]\n },\n {\n \"coding\": [\n {\n \"code\": \"cpis-example-condition-category\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/CPIS-ConditionCategory\",\n \"display\": \"CPIS example condition category\"\n }\n ]\n }\n ],\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"id\": \"482155c0-9ed3-4b22-b7b8-009f265606cc\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ],\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"code\": \"active\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\"\n }\n ]\n },\n \"code\": {\n \"coding\": [\n {\n \"code\": \"1\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/CPIS-ConditionCode\",\n \"display\": \"CPIS example condition code\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/PatientExample1\"\n }\n }\n },\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/CPISPatientFlagExample1\"\n },\n \"fullUrl\": \"Flag/CPISPatientFlagExample1\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"CPISPatientFlagExample1\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.nhs.uk/England/StructureDefinition/PatientFlag\"\n ]\n },\n \"extension\": [\n {\n \"valueAnnotation\": {\n \"text\": \"Example of flag notes extension text in patient flag\"\n },\n \"url\": \"https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes\"\n }\n ],\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"id\": \"42b9f285-0f1b-435a-ba6e-c72762d6502e\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ],\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"CP-IS\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory\",\n \"display\": \"Child Protection - Information Sharing Flag\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/PatientExample1\"\n }\n }\n },\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/CPISFlagExample1\"\n },\n \"fullUrl\": \"Flag/CPISFlagExample1\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"CPISFlagExample1\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.nhs.uk/England/StructureDefinition/ProgrammeFlag\"\n ]\n },\n \"extension\": [\n {\n \"valueAnnotation\": {\n \"text\": \"Example of flag notes extension text in adjustment flag\"\n },\n \"url\": \"https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes\"\n }\n ],\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"CP-IS\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory\",\n \"display\": \"Child Protection - Information Sharing Flag\"\n }\n ]\n },\n {\n \"coding\": [\n {\n \"code\": \"001\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/CPIS-FlagCategory\",\n \"display\": \"Example CPIS category\"\n }\n ]\n }\n ],\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"id\": \"ea77b434-585a-48b9-a789-eac610f0363e\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ],\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"224353004\",\n \"system\": \"https://snomed.info/sct\",\n \"display\": \"Child protection finding (finding)\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/PatientExample1\"\n }\n }\n }\n ],\n \"type\": \"transaction\"\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:8080/fhir/Flag?patient=patient-example-1&category=PatientFlag", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "fhir", + "Flag" + ], + "query": [ + { + "key": "patient", + "value": "patient-example-1" + }, + { + "key": "category", + "value": "PatientFlag" + } + ] + } + }, + "response": [] + }, + { + "name": "AddFGMRecordTransactionExample1", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"resourceType\": \"Bundle\",\n \"id\": \"AddFGMRecordTransactionExample1\",\n \"entry\": [\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Patient/PatientExample1\"\n },\n \"fullUrl\": \"Patient/PatientExample1\",\n \"resource\": {\n \"resourceType\": \"Patient\",\n \"id\": \"PatientExample1\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient\"\n ]\n },\n \"identifier\": [\n {\n \"system\": \"https://fhir.nhs.uk/Id/nhs-number\",\n \"value\": \"9912003888\"\n }\n ],\n \"name\": [\n {\n \"given\": [\n \"Alan\"\n ],\n \"use\": \"official\",\n \"family\": \"Mann\"\n }\n ],\n \"active\": true,\n \"gender\": \"male\",\n \"birthDate\": \"1970-01-01\"\n }\n },\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Consent/FGMConsentExample1\"\n },\n \"fullUrl\": \"Consent/FGMConsentExample1\",\n \"resource\": {\n \"resourceType\": \"Consent\",\n \"id\": \"FGMConsentExample1\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.nhs.uk/England/StructureDefinition/FlagConsent\"\n ]\n },\n \"extension\": [\n {\n \"valueAnnotation\": {\n \"text\": \"Example of consent create summary extension text\"\n },\n \"url\": \"https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentCreateSummary\"\n },\n {\n \"valueAnnotation\": {\n \"text\": \"Example of consent remove summary extension text\"\n },\n \"url\": \"https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentRemoveSummary\"\n }\n ],\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"FGM\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory\",\n \"display\": \"Female Genital Mutilation Flag\"\n }\n ]\n }\n ],\n \"provision\": {\n \"purpose\": [\n {\n \"code\": \"FGMCONSENT\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/FGM-ConsentPurpose\",\n \"display\": \"FGM - Consent to record FGM flags\"\n }\n ]\n },\n \"policy\": [\n {\n \"authority\": \"https://www.gov.uk/\",\n \"uri\": \"https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf\"\n }\n ],\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"id\": \"bc0dbfb1-7432-46fa-b1b8-0e3648827754\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ],\n \"status\": \"active\",\n \"scope\": {\n \"coding\": [\n {\n \"code\": \"patient-privacy\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/consentscope\"\n }\n ]\n },\n \"patient\": {\n \"reference\": \"Patient/PatientExample1\"\n },\n \"policyRule\": {\n \"coding\": [\n {\n \"code\": \"001\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/FlagProxyRole\"\n }\n ]\n }\n }\n },\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Condition/FGMConditionExample1\"\n },\n \"fullUrl\": \"Condition/FGMConditionExample1\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"FGMConditionExample1\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.nhs.uk/England/StructureDefinition/FlagCondition\"\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"FGM\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory\",\n \"display\": \"Female Genital Mutilation Flag\"\n }\n ]\n },\n {\n \"coding\": [\n {\n \"code\": \"fgm-example-condition-category\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/FGM-ConditionCategory\",\n \"display\": \"FGM example condition category\"\n }\n ]\n }\n ],\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"id\": \"e78b78b2-31f9-453d-b278-6d5720001073\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ],\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"code\": \"active\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\"\n }\n ]\n },\n \"code\": {\n \"coding\": [\n {\n \"code\": \"1\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/FGM-ConditionCode\",\n \"display\": \"FGM example condition code\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/PatientExample1\"\n }\n }\n },\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/FGMPatientFlagExample1\"\n },\n \"fullUrl\": \"Flag/FGMPatientFlagExample1\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"FGMPatientFlagExample1\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.nhs.uk/England/StructureDefinition/PatientFlag\"\n ]\n },\n \"extension\": [\n {\n \"valueAnnotation\": {\n \"text\": \"Example of flag notes extension text in patient flag\"\n },\n \"url\": \"https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes\"\n }\n ],\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"id\": \"3fc83fd8-4a6d-48e4-91ab-12bb10a4a834\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ],\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"FGM\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory\",\n \"display\": \"Female Genital Mutilation Flag\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/PatientExample1\"\n }\n }\n },\n {\n \"request\": {\n \"method\": \"PUT\",\n \"url\": \"Flag/FGMFlagExample1\"\n },\n \"fullUrl\": \"Flag/FGMFlagExample1\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"FGMFlagExample1\",\n \"meta\": {\n \"profile\": [\n \"https://fhir.nhs.uk/England/StructureDefinition/ProgrammeFlag\"\n ]\n },\n \"extension\": [\n {\n \"valueAnnotation\": {\n \"text\": \"Example of flag notes extension text in adjustment flag\"\n },\n \"url\": \"https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes\"\n }\n ],\n \"category\": [\n {\n \"coding\": [\n {\n \"code\": \"FGM\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory\",\n \"display\": \"Female Genital Mutilation Flag\"\n }\n ]\n },\n {\n \"coding\": [\n {\n \"code\": \"001\",\n \"system\": \"https://fhir.nhs.uk/England/CodeSystem/FGM-FlagCategory\",\n \"display\": \"Example FGM category\"\n }\n ]\n }\n ],\n \"contained\": [\n {\n \"resourceType\": \"Provenance\",\n \"id\": \"9b5f2d1b-8175-407f-a49d-b4f04c9d4300\",\n \"target\": [\n {\n \"reference\": \"#\"\n }\n ],\n \"recorded\": \"2024-01-01T11:00:00+00:00\",\n \"activity\": {\n \"coding\": [\n {\n \"code\": \"CREATE\",\n \"system\": \"http://terminology.hl7.org/CodeSystem/v3-DataOperation\",\n \"display\": \"create\"\n }\n ]\n },\n \"agent\": [\n {\n \"role\": [\n {\n \"coding\": [\n {\n \"code\": \"R0260\",\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1\",\n \"display\": \"General Medical Practitioner\"\n }\n ]\n }\n ],\n \"who\": {\n \"reference\": \"https://sds.spineservices.nhs.uk/STU3/Practitioner/2ee4tr6a9\"\n },\n \"onBehalfOf\": {\n \"reference\": \"https://directory.spineservices.nhs.uk/STU3/Organization/a3e5i7\"\n }\n }\n ]\n }\n ],\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"code\": \"902961000000107\",\n \"system\": \"https://snomed.info/sct\",\n \"display\": \"Family history of female genital mutilation (situation)\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/PatientExample1\"\n }\n }\n }\n ],\n \"type\": \"transaction\"\n}\n", "options": { "raw": { "language": "json" @@ -159,10 +255,10 @@ ] }, { - "name": "Retrieve RA Record", + "name": "Patient Endpoint Queries", "item": [ { - "name": "Example 1", + "name": "Return all NRAF associated resources for a patient", "request": { "method": "GET", "header": [], @@ -202,21 +298,324 @@ ] }, { - "name": "Remove RA Record", + "name": "Flag Endpoint Queries", "item": [ { - "name": "TODO", + "name": "Get all top level Flags (FGM, CPIS flags don't exist but would be returned if they did) (not including provenance here)", "request": { - "method": "POST", + "method": "GET", "header": [], "url": { - "raw": "TODO", + "raw": "http://localhost:8080/fhir/Flag?patient=patient-example-1&code=NRAF,FGM,CPIS", + "protocol": "http", "host": [ - "TODO" + "localhost" + ], + "port": "8080", + "path": [ + "fhir", + "Flag" + ], + "query": [ + { + "key": "patient", + "value": "patient-example-1" + }, + { + "key": "code", + "value": "NRAF,FGM,CPIS" + } ] } }, - "response": [] + "response": [ + { + "name": "New Request", + "originalRequest": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:8080/fhir/Flag?patient=patient-example-1&code=NRAF,FGM,CPIS", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "fhir", + "Flag" + ], + "query": [ + { + "key": "patient", + "value": "patient-example-1" + }, + { + "key": "code", + "value": "NRAF,FGM,CPIS" + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "X-Powered-By", + "value": "HAPI FHIR 6.10.0 REST Server (FHIR Server; FHIR 4.0.1/R4)" + }, + { + "key": "X-Request-ID", + "value": "zn9AY0CZdZGAvRFF" + }, + { + "key": "Last-Modified", + "value": "Fri, 09 Feb 2024 02:11:22 GMT" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Type", + "value": "application/fhir+json;charset=UTF-8" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Date", + "value": "Fri, 09 Feb 2024 02:11:29 GMT" + }, + { + "key": "Keep-Alive", + "value": "timeout=60" + }, + { + "key": "Connection", + "value": "keep-alive" + } + ], + "cookie": [], + "body": "{\n \"resourceType\": \"Bundle\",\n \"id\": \"79d057f0-7e1b-49db-8726-d046d4523191\",\n \"meta\": {\n \"lastUpdated\": \"2024-02-09T02:11:22.336+00:00\"\n },\n \"type\": \"searchset\",\n \"total\": 1,\n \"link\": [\n {\n \"relation\": \"self\",\n \"url\": \"http://localhost:8080/fhir/Flag?code=NRAF%2CFGM%2CCPIS&patient=patient-example-1\"\n }\n ],\n \"entry\": [\n {\n \"fullUrl\": \"http://localhost:8080/fhir/Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"fba99f70-fe1d-42e2-b77a-916e44b53c19\",\n \"meta\": {\n \"versionId\": \"1\",\n \"lastUpdated\": \"2024-02-09T02:11:07.443+00:00\",\n \"source\": \"#2BVDta2nrOmwFe3M\"\n },\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"code\": \"NRAF\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/patient-example-1\"\n }\n },\n \"search\": {\n \"mode\": \"match\"\n }\n }\n ]\n}" + } + ] + }, + { + "name": "Get all RA records (flags) for a patient (not including provenance here)", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:8080/fhir/Flag?patient=patient-example-1&_include=Flag:detail", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "fhir", + "Flag" + ], + "query": [ + { + "key": "patient", + "value": "patient-example-1" + }, + { + "key": "_include", + "value": "Flag:detail" + } + ] + } + }, + "response": [ + { + "name": "New Request", + "originalRequest": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:8080/fhir/Flag?patient=patient-example-1&_include=Flag:detail", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "fhir", + "Flag" + ], + "query": [ + { + "key": "patient", + "value": "patient-example-1" + }, + { + "key": "_include", + "value": "Flag:detail" + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "X-Powered-By", + "value": "HAPI FHIR 6.10.0 REST Server (FHIR Server; FHIR 4.0.1/R4)" + }, + { + "key": "X-Request-ID", + "value": "5tLsi8qnIw4wJJRp" + }, + { + "key": "Last-Modified", + "value": "Fri, 09 Feb 2024 02:11:41 GMT" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Type", + "value": "application/fhir+json;charset=UTF-8" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Date", + "value": "Fri, 09 Feb 2024 02:11:41 GMT" + }, + { + "key": "Keep-Alive", + "value": "timeout=60" + }, + { + "key": "Connection", + "value": "keep-alive" + } + ], + "cookie": [], + "body": "{\n \"resourceType\": \"Bundle\",\n \"id\": \"a5a39cdf-f628-4bb7-bfe8-c5c5381d0a12\",\n \"meta\": {\n \"lastUpdated\": \"2024-02-09T02:11:41.787+00:00\"\n },\n \"type\": \"searchset\",\n \"total\": 3,\n \"link\": [\n {\n \"relation\": \"self\",\n \"url\": \"http://localhost:8080/fhir/Flag?_include=Flag%3Adetail&patient=patient-example-1\"\n }\n ],\n \"entry\": [\n {\n \"fullUrl\": \"http://localhost:8080/fhir/Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"fba99f70-fe1d-42e2-b77a-916e44b53c19\",\n \"meta\": {\n \"versionId\": \"1\",\n \"lastUpdated\": \"2024-02-09T02:11:07.443+00:00\",\n \"source\": \"#2BVDta2nrOmwFe3M\"\n },\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"code\": \"NRAF\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/patient-example-1\"\n }\n },\n \"search\": {\n \"mode\": \"match\"\n }\n },\n {\n \"fullUrl\": \"http://localhost:8080/fhir/Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"04adcb5b-3de7-4f67-97f0-b2fdf941ba85\",\n \"meta\": {\n \"versionId\": \"1\",\n \"lastUpdated\": \"2024-02-09T02:11:07.443+00:00\",\n \"source\": \"#2BVDta2nrOmwFe3M\"\n },\n \"extension\": [\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/flag-detail\",\n \"valueReference\": {\n \"reference\": \"Condition/41a84a93-1c95-4162-b13c-1c617509e6e2\",\n \"type\": \"Condition\"\n }\n },\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/flag-detail\",\n \"valueReference\": {\n \"reference\": \"Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19\",\n \"type\": \"Flag\"\n }\n },\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/flag-detail\",\n \"valueReference\": {\n \"reference\": \"Consent/consent-example-1\",\n \"type\": \"Consent\"\n }\n }\n ],\n \"status\": \"active\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1\",\n \"code\": \"001\",\n \"display\": \"Communication support\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"https://snomed.info/sct\",\n \"code\": \"957371000000106\",\n \"display\": \"Requires written information in at least 28 point sans serif font\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/patient-example-1\"\n }\n },\n \"search\": {\n \"mode\": \"match\"\n }\n },\n {\n \"fullUrl\": \"http://localhost:8080/fhir/Flag/c357a25c-2282-4440-bc93-6fa7a4965d4a\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"c357a25c-2282-4440-bc93-6fa7a4965d4a\",\n \"meta\": {\n \"versionId\": \"1\",\n \"lastUpdated\": \"2024-02-09T02:11:07.443+00:00\",\n \"source\": \"#2BVDta2nrOmwFe3M\"\n },\n \"extension\": [\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/flag-detail\",\n \"valueReference\": {\n \"reference\": \"Condition/da03d375-e3c0-4856-a8b9-994cf4de4f46\",\n \"type\": \"Condition\"\n }\n },\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/flag-detail\",\n \"valueReference\": {\n \"reference\": \"Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19\",\n \"type\": \"Flag\"\n }\n },\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/flag-detail\",\n \"valueReference\": {\n \"reference\": \"Consent/consent-example-1\",\n \"type\": \"Consent\"\n }\n }\n ],\n \"status\": \"active\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1\",\n \"code\": \"010\",\n \"display\": \"Adjustments to support Additional needs\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"https://snomed.info/sct\",\n \"code\": \"225861007\",\n \"display\": \"Unsafe to be left alone\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/patient-example-1\"\n }\n },\n \"search\": {\n \"mode\": \"match\"\n }\n },\n {\n \"fullUrl\": \"http://localhost:8080/fhir/Condition/41a84a93-1c95-4162-b13c-1c617509e6e2\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"41a84a93-1c95-4162-b13c-1c617509e6e2\",\n \"meta\": {\n \"versionId\": \"1\",\n \"lastUpdated\": \"2024-02-09T02:11:07.443+00:00\",\n \"source\": \"#2BVDta2nrOmwFe3M\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1\",\n \"code\": \"issue\",\n \"display\": \"Issue\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1\",\n \"code\": \"5\",\n \"display\": \"Learning or understanding or concentrating\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/patient-example-1\"\n }\n },\n \"search\": {\n \"mode\": \"include\"\n }\n },\n {\n \"fullUrl\": \"http://localhost:8080/fhir/Condition/da03d375-e3c0-4856-a8b9-994cf4de4f46\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"da03d375-e3c0-4856-a8b9-994cf4de4f46\",\n \"meta\": {\n \"versionId\": \"1\",\n \"lastUpdated\": \"2024-02-09T02:11:07.443+00:00\",\n \"source\": \"#2BVDta2nrOmwFe3M\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1\",\n \"code\": \"issue\",\n \"display\": \"Issue\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"https://snomed.info/sct\",\n \"code\": \"73618009\",\n \"display\": \"Autistic spectrum disorder with isolated skills\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/patient-example-1\"\n }\n },\n \"search\": {\n \"mode\": \"include\"\n }\n },\n {\n \"fullUrl\": \"http://localhost:8080/fhir/Consent/consent-example-1\",\n \"resource\": {\n \"resourceType\": \"Consent\",\n \"id\": \"consent-example-1\",\n \"meta\": {\n \"versionId\": \"1\",\n \"lastUpdated\": \"2024-02-09T02:11:07.443+00:00\",\n \"source\": \"#2BVDta2nrOmwFe3M\"\n },\n \"status\": \"active\",\n \"scope\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/consentscope\",\n \"code\": \"patient-privacy\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"code\": \"NRAF\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"patient\": {\n \"reference\": \"Patient/patient-example-1\"\n },\n \"policy\": [\n {\n \"authority\": \"https://www.gov.uk/\",\n \"uri\": \"https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf\"\n }\n ],\n \"provision\": {\n \"purpose\": [\n {\n \"system\": \"https://snomed.info/sct\",\n \"code\": \"370856009\",\n \"display\": \"Limiting access to confidential patient information\"\n }\n ]\n }\n },\n \"search\": {\n \"mode\": \"include\"\n }\n }\n ]\n}" + } + ] + }, + { + "name": "Get RA record (flag) for a patient and restrict by adjustment code (not including provenance here)", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:8080/fhir/Flag?patient=patient-example-1&code=957371000000106&_include=Flag:detail", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "fhir", + "Flag" + ], + "query": [ + { + "key": "patient", + "value": "patient-example-1" + }, + { + "key": "code", + "value": "957371000000106" + }, + { + "key": "_include", + "value": "Flag:detail" + } + ] + } + }, + "response": [ + { + "name": "Get RA record (flag) for a patient based on adjustment code, i.e. Flag.code (not including provenance here)", + "originalRequest": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:8080/fhir/Flag?patient=patient-example-1&code=957371000000106&_include=Flag:detail", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "fhir", + "Flag" + ], + "query": [ + { + "key": "patient", + "value": "patient-example-1" + }, + { + "key": "code", + "value": "957371000000106" + }, + { + "key": "_include", + "value": "Flag:detail" + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "X-Powered-By", + "value": "HAPI FHIR 6.10.0 REST Server (FHIR Server; FHIR 4.0.1/R4)" + }, + { + "key": "X-Request-ID", + "value": "hn2yI8JHGdmP5ZWZ" + }, + { + "key": "Last-Modified", + "value": "Fri, 09 Feb 2024 02:11:55 GMT" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "Content-Type", + "value": "application/fhir+json;charset=UTF-8" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Date", + "value": "Fri, 09 Feb 2024 02:11:55 GMT" + }, + { + "key": "Keep-Alive", + "value": "timeout=60" + }, + { + "key": "Connection", + "value": "keep-alive" + } + ], + "cookie": [], + "body": "{\n \"resourceType\": \"Bundle\",\n \"id\": \"8612520f-fbc0-41ec-a2ac-d5938eadae68\",\n \"meta\": {\n \"lastUpdated\": \"2024-02-09T02:11:55.868+00:00\"\n },\n \"type\": \"searchset\",\n \"total\": 1,\n \"link\": [\n {\n \"relation\": \"self\",\n \"url\": \"http://localhost:8080/fhir/Flag?_include=Flag%3Adetail&code=957371000000106&patient=patient-example-1\"\n }\n ],\n \"entry\": [\n {\n \"fullUrl\": \"http://localhost:8080/fhir/Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"04adcb5b-3de7-4f67-97f0-b2fdf941ba85\",\n \"meta\": {\n \"versionId\": \"1\",\n \"lastUpdated\": \"2024-02-09T02:11:07.443+00:00\",\n \"source\": \"#2BVDta2nrOmwFe3M\"\n },\n \"extension\": [\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/flag-detail\",\n \"valueReference\": {\n \"reference\": \"Condition/41a84a93-1c95-4162-b13c-1c617509e6e2\",\n \"type\": \"Condition\"\n }\n },\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/flag-detail\",\n \"valueReference\": {\n \"reference\": \"Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19\",\n \"type\": \"Flag\"\n }\n },\n {\n \"url\": \"http://hl7.org/fhir/StructureDefinition/flag-detail\",\n \"valueReference\": {\n \"reference\": \"Consent/consent-example-1\",\n \"type\": \"Consent\"\n }\n }\n ],\n \"status\": \"active\",\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-AdjustmentCategory-1\",\n \"code\": \"001\",\n \"display\": \"Communication support\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"https://snomed.info/sct\",\n \"code\": \"957371000000106\",\n \"display\": \"Requires written information in at least 28 point sans serif font\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/patient-example-1\"\n }\n },\n \"search\": {\n \"mode\": \"match\"\n }\n },\n {\n \"fullUrl\": \"http://localhost:8080/fhir/Condition/41a84a93-1c95-4162-b13c-1c617509e6e2\",\n \"resource\": {\n \"resourceType\": \"Condition\",\n \"id\": \"41a84a93-1c95-4162-b13c-1c617509e6e2\",\n \"meta\": {\n \"versionId\": \"1\",\n \"lastUpdated\": \"2024-02-09T02:11:07.443+00:00\",\n \"source\": \"#2BVDta2nrOmwFe3M\"\n },\n \"clinicalStatus\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/condition-clinical\",\n \"code\": \"active\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-ConditionCategory-1\",\n \"code\": \"issue\",\n \"display\": \"Issue\"\n }\n ]\n }\n ],\n \"code\": {\n \"coding\": [\n {\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-ConditionCode-1\",\n \"code\": \"5\",\n \"display\": \"Learning or understanding or concentrating\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/patient-example-1\"\n }\n },\n \"search\": {\n \"mode\": \"include\"\n }\n },\n {\n \"fullUrl\": \"http://localhost:8080/fhir/Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19\",\n \"resource\": {\n \"resourceType\": \"Flag\",\n \"id\": \"fba99f70-fe1d-42e2-b77a-916e44b53c19\",\n \"meta\": {\n \"versionId\": \"1\",\n \"lastUpdated\": \"2024-02-09T02:11:07.443+00:00\",\n \"source\": \"#2BVDta2nrOmwFe3M\"\n },\n \"status\": \"active\",\n \"code\": {\n \"coding\": [\n {\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"code\": \"NRAF\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n },\n \"subject\": {\n \"reference\": \"Patient/patient-example-1\"\n }\n },\n \"search\": {\n \"mode\": \"include\"\n }\n },\n {\n \"fullUrl\": \"http://localhost:8080/fhir/Consent/consent-example-1\",\n \"resource\": {\n \"resourceType\": \"Consent\",\n \"id\": \"consent-example-1\",\n \"meta\": {\n \"versionId\": \"1\",\n \"lastUpdated\": \"2024-02-09T02:11:07.443+00:00\",\n \"source\": \"#2BVDta2nrOmwFe3M\"\n },\n \"status\": \"active\",\n \"scope\": {\n \"coding\": [\n {\n \"system\": \"http://terminology.hl7.org/CodeSystem/consentscope\",\n \"code\": \"patient-privacy\"\n }\n ]\n },\n \"category\": [\n {\n \"coding\": [\n {\n \"system\": \"https://fhir.nhs.uk/STU3/CodeSystem/RARecord-FlagCategory-1\",\n \"code\": \"NRAF\",\n \"display\": \"National Reasonable Adjustments Flag\"\n }\n ]\n }\n ],\n \"patient\": {\n \"reference\": \"Patient/patient-example-1\"\n },\n \"policy\": [\n {\n \"authority\": \"https://www.gov.uk/\",\n \"uri\": \"https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/535024/data-security-review.pdf\"\n }\n ],\n \"provision\": {\n \"purpose\": [\n {\n \"system\": \"https://snomed.info/sct\",\n \"code\": \"370856009\",\n \"display\": \"Limiting access to confidential patient information\"\n }\n ]\n }\n },\n \"search\": {\n \"mode\": \"include\"\n }\n }\n ]\n}" + } + ] } ] }, @@ -299,20 +698,6 @@ }, "response": [] }, - { - "name": "Get Flag by Category and Code and supporting resources", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "TODO", - "host": [ - "TODO" - ] - } - }, - "response": [] - }, { "name": "Delete Flag by ID", "request": { diff --git a/input/ci/queries/0005-add-ra-record-transaction-example.md b/input/ci/queries/0005-add-ra-record-transaction-example.md deleted file mode 100644 index 35ce7e1..0000000 --- a/input/ci/queries/0005-add-ra-record-transaction-example.md +++ /dev/null @@ -1 +0,0 @@ -GET /Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient diff --git a/input/ci/queries/0006-add-ra-record-transaction-example.md b/input/ci/queries/0006-add-ra-record-transaction-example.md deleted file mode 100644 index 35ce7e1..0000000 --- a/input/ci/queries/0006-add-ra-record-transaction-example.md +++ /dev/null @@ -1 +0,0 @@ -GET /Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient diff --git a/input/ci/queries/0007-add-ra-record-transaction-example.md b/input/ci/queries/0007-add-ra-record-transaction-example.md deleted file mode 100644 index ad0f11f..0000000 --- a/input/ci/queries/0007-add-ra-record-transaction-example.md +++ /dev/null @@ -1 +0,0 @@ -GET /Flag?patient:Patient.identifier=9912003888 \ No newline at end of file diff --git a/input/ci/queries/0008-get-all-flags.md b/input/ci/queries/0008-get-all-flags.md deleted file mode 100644 index 06eace2..0000000 --- a/input/ci/queries/0008-get-all-flags.md +++ /dev/null @@ -1 +0,0 @@ -GET /Flag/ \ No newline at end of file diff --git a/input/ci/queries/0009-get-flag-by-category.md b/input/ci/queries/0009-get-flag-by-category.md deleted file mode 100644 index 8cb8491..0000000 --- a/input/ci/queries/0009-get-flag-by-category.md +++ /dev/null @@ -1 +0,0 @@ -GET /Flag?category=NRAF \ No newline at end of file diff --git a/input/ci/queries/0010-get-flag-by-category-and-code.md b/input/ci/queries/0010-get-flag-by-category-and-code.md deleted file mode 100644 index ff67fc0..0000000 --- a/input/ci/queries/0010-get-flag-by-category-and-code.md +++ /dev/null @@ -1 +0,0 @@ -GET /Flag?category=NRAF&code=001 \ No newline at end of file diff --git a/input/ci/queries/0011-delete-flag-by-id.md b/input/ci/queries/0011-delete-flag-by-id.md deleted file mode 100644 index e8e2dc5..0000000 --- a/input/ci/queries/0011-delete-flag-by-id.md +++ /dev/null @@ -1 +0,0 @@ -DELETE /Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85 \ No newline at end of file diff --git a/input/fsh/examples/0003-AddRARecordTransactionExample1-bundle.fsh b/input/fsh/examples/0003-AddRARecordTransactionExample1-bundle.fsh deleted file mode 100644 index 1cfc9bf..0000000 --- a/input/fsh/examples/0003-AddRARecordTransactionExample1-bundle.fsh +++ /dev/null @@ -1,25 +0,0 @@ -Instance: AddRARecordTransactionExample1 -InstanceOf: Bundle -Title: "RA Example of adding a record with a Transaction" -Usage: #example -* type = #transaction -* entry[0].fullUrl = "urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" -* entry[=].resource = PatientExample1 -* entry[=].request.method = #PUT -* entry[=].request.url = "Patient?identifier=9912003888" -* entry[+].fullUrl = "urn:uuid:959fbc3c-0907-419e-aa3d-ab88f2d90c5e" -* entry[=].resource = RAConsentExample1 -* entry[=].request.method = #PUT -* entry[=].request.url = "Consent?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" -* entry[+].fullUrl = "urn:uuid:41a84a93-1c95-4162-b13c-1c617509e6e2" -* entry[=].resource = RAConditionExample1 -* entry[=].request.method = #PUT -* entry[=].request.url = "Condition?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" -* entry[+].fullUrl = "urn:uuid:fba99f70-fe1d-42e2-b77a-916e44b53c19" -* entry[=].resource = RAPatientFlagExample1 -* entry[=].request.method = #PUT -* entry[=].request.url = "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" -* entry[+].fullUrl = "urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85" -* entry[=].resource = RAFlagExample1 -* entry[=].request.method = #PUT -* entry[=].request.url = "Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85" diff --git a/input/fsh/examples/0004-AddRARecordTransactionExample2-bundle.fsh b/input/fsh/examples/0004-AddRARecordTransactionExample2-bundle.fsh deleted file mode 100644 index a00e0b5..0000000 --- a/input/fsh/examples/0004-AddRARecordTransactionExample2-bundle.fsh +++ /dev/null @@ -1,33 +0,0 @@ -Instance: AddRARecordTransactionExample2 -InstanceOf: Bundle -Title: "RA Example of idempotent update of a record with a Transaction" -Usage: #example -* type = #transaction -* entry[0].fullUrl = "urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" -* entry[=].resource = PatientExample1 -* entry[=].request.method = #PUT -* entry[=].request.url = "Patient?identifier=9912003888" -* entry[+].fullUrl = "urn:uuid:959fbc3c-0907-419e-aa3d-ab88f2d90c5e" -* entry[=].resource = RAConsentExample1 -* entry[=].request.method = #PUT -* entry[=].request.url = "Consent?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" -* entry[+].fullUrl = "urn:uuid:41a84a93-1c95-4162-b13c-1c617509e6e2" -* entry[=].resource = RAConditionExample1 -* entry[=].request.method = #PUT -* entry[=].request.url = "Condition?patient=urn:uuid:6253c43b-5cc8-4645-93b1-38e41be82a77" -* entry[+].fullUrl = "urn:uuid:fba99f70-fe1d-42e2-b77a-916e44b53c19" -* entry[=].resource = RAPatientFlagExample1 -* entry[=].request.method = #PUT -* entry[=].request.url = "Flag/fba99f70-fe1d-42e2-b77a-916e44b53c19" -* entry[+].fullUrl = "urn:uuid:04adcb5b-3de7-4f67-97f0-b2fdf941ba85" -* entry[=].resource = RAFlagExample1 -* entry[=].request.method = #PUT -* entry[=].request.url = "Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85" -* entry[+].fullUrl = "urn:uuid:b19124e9-f742-49b4-9247-5c2d58ac1ef4" -* entry[=].resource = RAConditionExample2 -* entry[=].request.method = #PUT -* entry[=].request.url = "Condition/b19124e9-f742-49b4-9247-5c2d58ac1ef4" -* entry[+].fullUrl = "urn:uuid:212c1018-f52a-4db7-9bc2-59a88622eb4f" -* entry[=].resource = RAFlagExample2 -* entry[=].request.method = #PUT -* entry[=].request.url = "Flag/212c1018-f52a-4db7-9bc2-59a88622eb4f" diff --git a/input/fsh/examples/0024-AddCPISRecordTransactionExample1-bundle.fsh b/input/fsh/examples/0024-AddCPISRecordTransactionExample1-bundle.fsh deleted file mode 100644 index f602479..0000000 --- a/input/fsh/examples/0024-AddCPISRecordTransactionExample1-bundle.fsh +++ /dev/null @@ -1,25 +0,0 @@ -Instance: AddCPISRecordTransactionExample1 -InstanceOf: Bundle -Title: "CPIS Example of adding a record with a Transaction" -Usage: #example -* type = #transaction -* entry[0].fullUrl = "urn:uuid:f7898b1c-4314-4331-9477-cca32861e858" -* entry[=].resource = PatientExample1 -* entry[=].request.method = #PUT -* entry[=].request.url = "Patient?identifier=9912003888" -* entry[+].fullUrl = "urn:uuid:921cd5d5-e1e9-4986-bf8e-5826832db2ff" -* entry[=].resource = CPISConsentExample1 -* entry[=].request.method = #PUT -* entry[=].request.url = "Consent?patient=urn:uuid:f7898b1c-4314-4331-9477-cca32861e858" -* entry[+].fullUrl = "urn:uuid:7dd8fe1e-e782-42c6-9ef4-1bebce3a43cc" -* entry[=].resource = CPISConditionExample1 -* entry[=].request.method = #PUT -* entry[=].request.url = "Condition?patient=urn:uuid:f7898b1c-4314-4331-9477-cca32861e858" -* entry[+].fullUrl = "urn:uuid:066fbb4b-2a8d-471e-8732-42e85ab1de1a" -* entry[=].resource = CPISPatientFlagExample1 -* entry[=].request.method = #PUT -* entry[=].request.url = "Flag/066fbb4b-2a8d-471e-8732-42e85ab1de1a" -* entry[+].fullUrl = "urn:uuid:621c9e76-19e1-4aa0-adb0-8d79979ea27c" -* entry[=].resource = CPISFlagExample1 -* entry[=].request.method = #PUT -* entry[=].request.url = "Flag/066fbb4b-2a8d-471e-8732-42e85ab1de1a" diff --git a/input/fsh/examples/0029-AddFGMRecordTransactionExample1-bundle.fsh b/input/fsh/examples/0029-AddFGMRecordTransactionExample1-bundle.fsh deleted file mode 100644 index f2eb909..0000000 --- a/input/fsh/examples/0029-AddFGMRecordTransactionExample1-bundle.fsh +++ /dev/null @@ -1,25 +0,0 @@ -Instance: AddFGMRecordTransactionExample1 -InstanceOf: Bundle -Title: "FGM Example of adding a record with a Transaction" -Usage: #example -* type = #transaction -* entry[0].fullUrl = "urn:uuid:9580a1de-f418-432b-85da-eba186b7cfa5" -* entry[=].resource = PatientExample1 -* entry[=].request.method = #PUT -* entry[=].request.url = "Patient?identifier=9912003888" -* entry[+].fullUrl = "urn:uuid:cd1de51b-2007-4409-8a96-cfcc1e0a0b6b" -* entry[=].resource = FGMConsentExample1 -* entry[=].request.method = #PUT -* entry[=].request.url = "Consent?patient=urn:uuid:9580a1de-f418-432b-85da-eba186b7cfa5" -* entry[+].fullUrl = "urn:uuid:7dd8fe1e-e782-42c6-9ef4-1bebce3a43cc" -* entry[=].resource = FGMConditionExample1 -* entry[=].request.method = #PUT -* entry[=].request.url = "Condition?patient=urn:uuid:9580a1de-f418-432b-85da-eba186b7cfa5" -* entry[+].fullUrl = "urn:uuid:97c6d9be-1431-4112-b99c-5cecd318ede0" -* entry[=].resource = FGMPatientFlagExample1 -* entry[=].request.method = #PUT -* entry[=].request.url = "Flag/97c6d9be-1431-4112-b99c-5cecd318ede0" -* entry[+].fullUrl = "urn:uuid:38f67aa3-5ea8-4a29-9cd5-54ba7acf79a8" -* entry[=].resource = FGMFlagExample1 -* entry[=].request.method = #PUT -* entry[=].request.url = "Flag/38f67aa3-5ea8-4a29-9cd5-54ba7acf79a8" diff --git a/input/fsh/examples/AddCPISRecordTransactionExample1-bundle.fsh b/input/fsh/examples/AddCPISRecordTransactionExample1-bundle.fsh new file mode 100644 index 0000000..594caf7 --- /dev/null +++ b/input/fsh/examples/AddCPISRecordTransactionExample1-bundle.fsh @@ -0,0 +1,25 @@ +Instance: AddCPISRecordTransactionExample1 +InstanceOf: Bundle +Title: "CPIS Example of adding a record with a Transaction" +Usage: #example +* type = #transaction +* entry[0].fullUrl = "Patient/PatientExample1" +* entry[=].resource = PatientExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Patient/PatientExample1" +* entry[+].fullUrl = "Consent/CPISConsentExample1" +* entry[=].resource = CPISConsentExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Consent/CPISConsentExample1" +* entry[+].fullUrl = "Condition/CPISConditionExample1" +* entry[=].resource = CPISConditionExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Condition/CPISConditionExample1" +* entry[+].fullUrl = "Flag/CPISPatientFlagExample1" +* entry[=].resource = CPISPatientFlagExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/CPISPatientFlagExample1" +* entry[+].fullUrl = "Flag/CPISFlagExample1" +* entry[=].resource = CPISFlagExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/CPISFlagExample1" diff --git a/input/fsh/examples/AddFGMRecordTransactionExample1-bundle.fsh b/input/fsh/examples/AddFGMRecordTransactionExample1-bundle.fsh new file mode 100644 index 0000000..bb4ac74 --- /dev/null +++ b/input/fsh/examples/AddFGMRecordTransactionExample1-bundle.fsh @@ -0,0 +1,25 @@ +Instance: AddFGMRecordTransactionExample1 +InstanceOf: Bundle +Title: "FGM Example of adding a record with a Transaction" +Usage: #example +* type = #transaction +* entry[0].fullUrl = "Patient/PatientExample1" +* entry[=].resource = PatientExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Patient/PatientExample1" +* entry[+].fullUrl = "Consent/FGMConsentExample1" +* entry[=].resource = FGMConsentExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Consent/FGMConsentExample1" +* entry[+].fullUrl = "Condition/FGMConditionExample1" +* entry[=].resource = FGMConditionExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Condition/FGMConditionExample1" +* entry[+].fullUrl = "Flag/FGMPatientFlagExample1" +* entry[=].resource = FGMPatientFlagExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/FGMPatientFlagExample1" +* entry[+].fullUrl = "Flag/FGMFlagExample1" +* entry[=].resource = FGMFlagExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/FGMFlagExample1" diff --git a/input/fsh/examples/AddRARecordTransactionExample1-bundle.fsh b/input/fsh/examples/AddRARecordTransactionExample1-bundle.fsh new file mode 100644 index 0000000..cd4417d --- /dev/null +++ b/input/fsh/examples/AddRARecordTransactionExample1-bundle.fsh @@ -0,0 +1,25 @@ +Instance: AddRARecordTransactionExample1 +InstanceOf: Bundle +Title: "RA Example of adding a record with a Transaction" +Usage: #example +* type = #transaction +* entry[0].fullUrl = "Patient/PatientExample1" +* entry[=].resource = PatientExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Patient/PatientExample1" +* entry[+].fullUrl = "Consent/RAConsentExample1" +* entry[=].resource = RAConsentExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Consent/RAConsentExample1" +* entry[+].fullUrl = "Condition/RAConditionExample1" +* entry[=].resource = RAConditionExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Condition/RAConditionExample1" +* entry[+].fullUrl = "Flag/RAPatientFlagExample1" +* entry[=].resource = RAPatientFlagExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/RAPatientFlagExample1" +* entry[+].fullUrl = "Flag/RAFlagExample1" +* entry[=].resource = RAFlagExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/RAFlagExample1" diff --git a/input/fsh/examples/AddRARecordTransactionExample2-bundle.fsh b/input/fsh/examples/AddRARecordTransactionExample2-bundle.fsh new file mode 100644 index 0000000..7b19165 --- /dev/null +++ b/input/fsh/examples/AddRARecordTransactionExample2-bundle.fsh @@ -0,0 +1,33 @@ +Instance: AddRARecordTransactionExample2 +InstanceOf: Bundle +Title: "RA Example of idempotent update of a record with a Transaction" +Usage: #example +* type = #transaction +* entry[0].fullUrl = "Patient/PatientExample1" +* entry[=].resource = PatientExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Patient/PatientExample1" +* entry[+].fullUrl = "Consent/RAConsentExample1" +* entry[=].resource = RAConsentExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Consent/RAConsentExample1" +* entry[+].fullUrl = "Condition/RAConditionExample1" +* entry[=].resource = RAConditionExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Condition/RAConditionExample1" +* entry[+].fullUrl = "Flag/RAPatientFlagExample1" +* entry[=].resource = RAPatientFlagExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/RAPatientFlagExample1" +* entry[+].fullUrl = "Flag/RAFlagExample1" +* entry[=].resource = RAFlagExample1 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/RAFlagExample1" +* entry[+].fullUrl = "Condition/RAConditionExample2" +* entry[=].resource = RAConditionExample2 +* entry[=].request.method = #PUT +* entry[=].request.url = "Condition/RAConditionExample2" +* entry[+].fullUrl = "Flag/RAFlagExample2" +* entry[=].resource = RAFlagExample2 +* entry[=].request.method = #PUT +* entry[=].request.url = "Flag/RAFlagExample2" diff --git a/input/fsh/examples/0023-CPISConditionExample1.fsh b/input/fsh/examples/CPISConditionExample1.fsh similarity index 100% rename from input/fsh/examples/0023-CPISConditionExample1.fsh rename to input/fsh/examples/CPISConditionExample1.fsh diff --git a/input/fsh/examples/0020-CPISConsentExample.fsh b/input/fsh/examples/CPISConsentExample.fsh similarity index 100% rename from input/fsh/examples/0020-CPISConsentExample.fsh rename to input/fsh/examples/CPISConsentExample.fsh diff --git a/input/fsh/examples/0022-CPISFlagExample1.fsh b/input/fsh/examples/CPISFlagExample1.fsh similarity index 100% rename from input/fsh/examples/0022-CPISFlagExample1.fsh rename to input/fsh/examples/CPISFlagExample1.fsh diff --git a/input/fsh/examples/0021-CPISPatientFlagExample1.fsh b/input/fsh/examples/CPISPatientFlagExample1.fsh similarity index 100% rename from input/fsh/examples/0021-CPISPatientFlagExample1.fsh rename to input/fsh/examples/CPISPatientFlagExample1.fsh diff --git a/input/fsh/examples/0028-FGMConditionExample1.fsh b/input/fsh/examples/FGMConditionExample1.fsh similarity index 100% rename from input/fsh/examples/0028-FGMConditionExample1.fsh rename to input/fsh/examples/FGMConditionExample1.fsh diff --git a/input/fsh/examples/0025-FGMConsentExample.fsh b/input/fsh/examples/FGMConsentExample.fsh similarity index 100% rename from input/fsh/examples/0025-FGMConsentExample.fsh rename to input/fsh/examples/FGMConsentExample.fsh diff --git a/input/fsh/examples/0027-FGMFlagExample1.fsh b/input/fsh/examples/FGMFlagExample1.fsh similarity index 100% rename from input/fsh/examples/0027-FGMFlagExample1.fsh rename to input/fsh/examples/FGMFlagExample1.fsh diff --git a/input/fsh/examples/0026-FGMPatientFlagExample1.fsh b/input/fsh/examples/FGMPatientFlagExample1.fsh similarity index 100% rename from input/fsh/examples/0026-FGMPatientFlagExample1.fsh rename to input/fsh/examples/FGMPatientFlagExample1.fsh diff --git a/input/fsh/examples/0014-PatientExample1.fsh b/input/fsh/examples/PatientExample1.fsh similarity index 100% rename from input/fsh/examples/0014-PatientExample1.fsh rename to input/fsh/examples/PatientExample1.fsh diff --git a/input/fsh/examples/0017-RAConditionExample1.fsh b/input/fsh/examples/RAConditionExample1.fsh similarity index 100% rename from input/fsh/examples/0017-RAConditionExample1.fsh rename to input/fsh/examples/RAConditionExample1.fsh diff --git a/input/fsh/examples/0019-RAConditionExample2.fsh b/input/fsh/examples/RAConditionExample2.fsh similarity index 100% rename from input/fsh/examples/0019-RAConditionExample2.fsh rename to input/fsh/examples/RAConditionExample2.fsh diff --git a/input/fsh/examples/0013-RAConsentExample1.fsh b/input/fsh/examples/RAConsentExample1.fsh similarity index 100% rename from input/fsh/examples/0013-RAConsentExample1.fsh rename to input/fsh/examples/RAConsentExample1.fsh diff --git a/input/fsh/examples/0030-RAConsentExampleDissent.fsh b/input/fsh/examples/RAConsentExampleDissent.fsh similarity index 100% rename from input/fsh/examples/0030-RAConsentExampleDissent.fsh rename to input/fsh/examples/RAConsentExampleDissent.fsh diff --git a/input/fsh/examples/0031-RAConsentExampleRevoked.fsh b/input/fsh/examples/RAConsentExampleRevoked.fsh similarity index 100% rename from input/fsh/examples/0031-RAConsentExampleRevoked.fsh rename to input/fsh/examples/RAConsentExampleRevoked.fsh diff --git a/input/fsh/examples/0016-RAFlagExample1.fsh b/input/fsh/examples/RAFlagExample1.fsh similarity index 100% rename from input/fsh/examples/0016-RAFlagExample1.fsh rename to input/fsh/examples/RAFlagExample1.fsh diff --git a/input/fsh/examples/0018-RAFlagExample2.fsh b/input/fsh/examples/RAFlagExample2.fsh similarity index 100% rename from input/fsh/examples/0018-RAFlagExample2.fsh rename to input/fsh/examples/RAFlagExample2.fsh diff --git a/input/fsh/examples/0015-RAPatientFlagExample1.fsh b/input/fsh/examples/RAPatientFlagExample1.fsh similarity index 100% rename from input/fsh/examples/0015-RAPatientFlagExample1.fsh rename to input/fsh/examples/RAPatientFlagExample1.fsh diff --git a/input/fsh/examples/0012-RemoveRARecordExample.fsh b/input/fsh/examples/RemoveRARecordExample.fsh similarity index 100% rename from input/fsh/examples/0012-RemoveRARecordExample.fsh rename to input/fsh/examples/RemoveRARecordExample.fsh diff --git a/input/pagecontent/basic-query-examples.md b/input/pagecontent/basic-query-examples.md new file mode 100644 index 0000000..cebbe38 --- /dev/null +++ b/input/pagecontent/basic-query-examples.md @@ -0,0 +1,31 @@ +### Summary + +The [HAPI FHIR Starter Server](https://github.com/hapifhir/hapi-fhir-jpaserver-starter) is used to demostrate some basic REST capabilities in FHIR using examples within this implementation guide. + +#### Docker invocation of the HAPI Starter Project + +This command starts the server on port 8080 and use UUID (as opposed to sequential numbers) for resource ID's. For more options see this [config](https://github.com/hapifhir/hapi-fhir-jpaserver-starter/blob/master/src/main/resources/application.yaml). + +``` +docker run -p 8080:8080 -e hapi.fhir.daoconfig_client_id_strategy=UUID -e hapi.fhir.client_id_strategy=ANY hapiproject/hapi:latest +``` + +To pull the latest image, run + +``` +docker pull hapiproject/hapi:latest +``` + +#### Swagger + +The HAPI starter project provides an OAS interface to the supported FHIR API. Assuming the above docker command is used, this would be available at + +``` +http://localhost:8080/fhir/swagger-ui/index.html +``` + +#### Postman + +Some transaction and basic query examples are available in a [Postman collection](assets/postman/postman_collection.json). + +**NOTE:** Posting the SearchParameters first to the [HAPI FHIR Starter Server](https://github.com/hapifhir/hapi-fhir-jpaserver-starter) will allow them to index/load quicker so they work in the query examples. diff --git a/input/pagecontent/server-examples.md b/input/pagecontent/server-examples.md deleted file mode 100644 index 9979eab..0000000 --- a/input/pagecontent/server-examples.md +++ /dev/null @@ -1,163 +0,0 @@ -### Summary - -The [HAPI FHIR Starter Server](https://github.com/hapifhir/hapi-fhir-jpaserver-starter) is used to demostrate some basic REST capabilities in FHIR using examples within this implementation guide. - -#### Docker invocation of the HAPI Starter Project - -This command starts the server on port 8080 and use UUID (as opposed to sequential numbers) for resource ID's. - -``` -docker run -p 8080:8080 -e hapi.fhir.daoconfig_client_id_strategy=UUID -e hapi.fhir.client_id_strategy=ANY hapiproject/hapi:latest -``` - -To pull the latest image, run - -``` -docker pull hapiproject/hapi:latest -``` - -#### Swagger - -The HAPI starter project provides an OAS interface to the supported FHIR API. Assuming the above docker command is used, this would be available at - -``` -http://localhost:8080/fhir/swagger-ui/index.html -``` - -#### CI Build - -These examples are loaded into a running FHIR server during the IG build. Some resources (queries) are dynamically generated and added to the IG at build time. (TODO add a list of dynamically generated resources somewhere). - -#### Postman - -All examples are available in a [Postman collection](assets/postman/postman_collection.json). - -### Examples - -The examples here describe the API options related to the workflow given in the use case [Add RA Record](add-reasonable-adjustment-record.html). - -See the [Data Model](data-model.html) for details on the relationships between the resources. - -#### Add RA Record - -This section provides examples for those given in the use case [Add RA Record](add-reasonable-adjustment-record.html). - -##### Example 1 - -TODO - -##### Example 2 - -The first example [Bundle transaction](Bundle-AddRARecordTransactionExample1.html) adds an RA record consisting of - -* a Patient resource -* a Consent resource -* a (patient) Flag resource (is this really needed?) -* a Condition resource (associated with the following Flag) -* a Flag resource (associated with the Condition) - -These resources are contained in a transaction Bundle, which provides atomicity as well as a more network efficent call. - -Each Flag resource (TODO embed in all or make separate)has a Provenance resource embedded in it. (TODO maybe a futher discussion section somewhere on options for provenance, i.e. linking to versions, _history and transaction considerations, options to use etag or X-provenance). - -Another example [Bundle transaction](Bundle-AddRARecordTransactionExample2.html) modifies the first transaction by adding additional resources for another Condition and adjustment (Flag). - -The transactions are using PUT's to provide (upsert)[https://hl7.org/fhir/http.html#upsert] functionality. The HAPI Starter Server (provided via docker) supports this part of the specification. - -#### Retrieve RA Record - -This section provides examples for those given in the use case [Retrieve RA Record](retrieve-reasonable-adjustment-record.html). - -##### Example 1 - -For each transaction example provided in the previous section, the following query will performed (dynamically during the IG build) - -``` -GET /Patient?identifier=9912003888&_revinclude=Consent:patient&_revinclude=Flag:patient&_revinclude=Condition:patient -``` - -This query will return the Patient resource using the patients NHS number (TODO will be profiled to check for this, reference this later). The assocaited resources that make up the RA are also returned, such as -* Consent resources (maybe link to profiles here) -* Flag resources -* Condition resources -which are all returned using default Patient SearchParameters (defined in the base specification). - -First Bundle example: - -* [Bundle transaction](Bundle-AddRARecordTransactionExample1.html) -* [Query output](Bundle-QUERY-OUTPUT--0005-add-ra-record-transaction-example.html) - -Second Bundle example: - -* [Bundle transaction](Bundle-AddRARecordTransactionExample2.html) -* [Query output](Bundle-QUERY-OUTPUT--0006-add-ra-record-transaction-example.html) - -#### Remove RA Record - -This section provides examples for those given in the use case [Remove RA Record](todo.html). - -##### Example 1 - -TODO (@vickyjaiswal0308) - -### Other Query Examples - -These queries are ran after all other write (Create, Update) examples and corresponding queries have been ran. - -#### Read all Flags - -Query: -``` -GET /Flag -``` - -* [Query output](Bundle-QUERY-OUTPUT--0008-get-all-flags.html) - -#### Get Flag by Category - -**Note:** this requires a [custom SearchParameter](SearchParameter-FlagCategory.html) - -Query: -``` -GET /Flag?category=NRAF -``` - -* [Query output](Bundle-QUERY-OUTPUT--0009-get-flag-by-category.html) - -#### Get Flag by Category and Code - -**Note:** this requires a [custom SearchParameter](SearchParameter-FlagCode.html) - -Query: -``` -GET /Flag?category=NRAF&code=001 -``` - -* [Query output](Bundle-QUERY-OUTPUT--0010-get-flag-by-category-and-code.html) - -#### Get Flag by Category and Code and supporting resources - -**Note:** this requires [an extension] to link to the supporting resources and a [custom SearchParameter](todo.html) to allow for the use of [_include parameters](https://www.hl7.org/fhir/search.html#include) - -* [Query output](todo.html) - -#### Delete Flag by ID - -Query: -``` -GET /Flag/04adcb5b-3de7-4f67-97f0-b2fdf941ba85 -``` - -* [Query output](OperationOutcome-QUERY-OUTPUT--0011-delete-flag-by-id.html) - -#### POST to /Resource - -TODO - -#### Delete supporting resource - -will be covered by remove RA record - -#### Delete a resource using it's ID - -This seems to be covered in section 'Delete Flag by ID'? \ No newline at end of file diff --git a/scripts/run-examples.sh b/scripts/run-examples.sh deleted file mode 100755 index 49d64a5..0000000 --- a/scripts/run-examples.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/bash - -# TODO Document how to organise the examples and queries in the IG -# Probably makes more sense just to describe the queries and add output in statically, rather trying to combine integrations testing -# into the build of the IG. See if it serves as a useful example... - -# TODO - Make the script runnable from any path, currently needs to be ran from root of repo -SCRIPT_ROOT=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ); - -# Use SUSHI to generate resources from fsh -sushi . - -SERVER_BASE="http://localhost:8080/fhir/" -HEADERS="Content-type:application/fhir+json;fhirVersion=4.0" - -# SearchParameters need to be loaded first, otherwise its likely they'll not have been indexed by the HAPI server -SEARCHPARAMETERS_DIR=fsh-generated/resources/SearchParameter* - -for file in $SEARCHPARAMETERS_DIR; do - curl -X POST -H $HEADERS -d @$file $SERVER_BASE/SearchParameter; -done - -# TODO Parameterise this to make it general for sushi and standalone hl7 publisher, few other things would need tweaked as well... -FSH_EXAMPLES_DIR=input/fsh/examples -FSH_GENERATED_DIR=fsh-generated/resources -QUERIES_DIR=input/ci/queries - -# Make resources folder if it doesn't already exist -mkdir -p ./input/resources - -for file in $(find {$FSH_EXAMPLES_DIR,$QUERIES_DIR} -type f | sort -t\/ -k4); do - case $(dirname $file) in - - $FSH_EXAMPLES_DIR) - # Get the example ID from the filename - EXAMPLE_ID=$(basename ${file%.*} | awk -F '-' '{print $2}'); - - # Construct path to generated JSON resource - TODO this implies the id will be unique and not a subset of another... - GENERATED=$(echo ./$FSH_GENERATED_DIR/*$EXAMPLE_ID*); - echo "---------------------"; - echo $GENERATED; - echo "---------------------"; - - # Sushi will prepend the name of the Resource, which will be used in the server calls. - RESOURCE_NAME=$(echo $GENERATED | awk -F '/' '{print $4}' | awk -F '-' '{print $1}'); - - # Assumption here that Bundle examples will be transactions, guessing it'll fail if not... - # Set RESOURCE_NAME to empty string so post is made to the base server url. - if [ "$RESOURCE_NAME" == "Bundle" ]; then - RESOURCE_NAME="" - fi; - - curl -X POST -H $HEADERS -d @$GENERATED $SERVER_BASE$RESOURCE_NAME; - ;; - - $QUERIES_DIR) - # Get HTTP verb and Query path - QUERY=$(cat $file); - - # Tokinise the query string, ReST verb and path separated by space - QUERY_TOKENS=(${QUERY// / }) - - # Strip the path and the extension - QUERY_FILE=$(basename $file | awk -F '.' '{print $1}'); - - # Run the query and output the result - curl -X ${QUERY_TOKENS[0]} $SERVER_BASE${QUERY_TOKENS[1]} | jq '.id = "QUERY-OUTPUT--'$QUERY_FILE'"' > ./input/resources/QUERY-OUTPUT--$QUERY_FILE.json - ;; - - *) - echo "Unknown directory: $(dirname $file)" - exit 1 - ;; - esac -done diff --git a/sushi-config.yaml b/sushi-config.yaml index 71dfa2e..5ef1a5f 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -85,7 +85,7 @@ menu: Remove Reasonable Adjustment Record: remove-reasonable-adjustment-record.html Additional Examples: CPIS/FGM demo: additional-examples.html - Server Examples: server-examples.html + Basic Query Examples: basic-query-examples.html Artifacts: artifacts.html About: Downloads: todo.html From cf0e0af0b564dc01c9cd7a21a4cb263b9af559e3 Mon Sep 17 00:00:00 2001 From: Declan Kieran Date: Thu, 28 Mar 2024 01:51:53 +0000 Subject: [PATCH 136/136] remove generated index file --- ig-template/package/$root/.index.json | 4 ---- ig-template/package/.index.json | 4 ---- ig-template/package/content/.index.json | 4 ---- ig-template/package/content/assets/.index.json | 4 ---- .../package/content/assets/css/.index.json | 4 ---- .../package/content/assets/ico/.index.json | 4 ---- .../package/content/assets/images/.index.json | 4 ---- .../package/content/assets/postman/.index.db | Bin 12288 -> 0 bytes .../package/content/assets/postman/.index.json | 4 ---- ig-template/package/includes/.index.json | 4 ---- ig-template/package/layouts/.index.json | 4 ---- 11 files changed, 40 deletions(-) delete mode 100644 ig-template/package/$root/.index.json delete mode 100644 ig-template/package/.index.json delete mode 100644 ig-template/package/content/.index.json delete mode 100644 ig-template/package/content/assets/.index.json delete mode 100644 ig-template/package/content/assets/css/.index.json delete mode 100644 ig-template/package/content/assets/ico/.index.json delete mode 100644 ig-template/package/content/assets/images/.index.json delete mode 100644 ig-template/package/content/assets/postman/.index.db delete mode 100644 ig-template/package/content/assets/postman/.index.json delete mode 100644 ig-template/package/includes/.index.json delete mode 100644 ig-template/package/layouts/.index.json diff --git a/ig-template/package/$root/.index.json b/ig-template/package/$root/.index.json deleted file mode 100644 index dbe759e..0000000 --- a/ig-template/package/$root/.index.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "index-version" : 2, - "files" : [] -} diff --git a/ig-template/package/.index.json b/ig-template/package/.index.json deleted file mode 100644 index dbe759e..0000000 --- a/ig-template/package/.index.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "index-version" : 2, - "files" : [] -} diff --git a/ig-template/package/content/.index.json b/ig-template/package/content/.index.json deleted file mode 100644 index dbe759e..0000000 --- a/ig-template/package/content/.index.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "index-version" : 2, - "files" : [] -} diff --git a/ig-template/package/content/assets/.index.json b/ig-template/package/content/assets/.index.json deleted file mode 100644 index dbe759e..0000000 --- a/ig-template/package/content/assets/.index.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "index-version" : 2, - "files" : [] -} diff --git a/ig-template/package/content/assets/css/.index.json b/ig-template/package/content/assets/css/.index.json deleted file mode 100644 index dbe759e..0000000 --- a/ig-template/package/content/assets/css/.index.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "index-version" : 2, - "files" : [] -} diff --git a/ig-template/package/content/assets/ico/.index.json b/ig-template/package/content/assets/ico/.index.json deleted file mode 100644 index dbe759e..0000000 --- a/ig-template/package/content/assets/ico/.index.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "index-version" : 2, - "files" : [] -} diff --git a/ig-template/package/content/assets/images/.index.json b/ig-template/package/content/assets/images/.index.json deleted file mode 100644 index dbe759e..0000000 --- a/ig-template/package/content/assets/images/.index.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "index-version" : 2, - "files" : [] -} diff --git a/ig-template/package/content/assets/postman/.index.db b/ig-template/package/content/assets/postman/.index.db deleted file mode 100644 index acb32ab9ffa9a2091936371812233345125df4a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI#(M!TW90%|_3kzZDo3HmGC`1uKy=FE+Tvl@mKFMVl4d!OIo78jA-_%?GR*&t} zqcIYndXewJHh+BYckDj%*DWgr?VCdYPf?eN&`QU2hwd z9EYD)<(m}BMN%$SzP2?WhX4d1009U<00Izz00bZaf&UbEKc@$^dYyipDE<%#SHw{w zr^4}LmHl04yLQX7nb*2K-KXc_3yYRI#3t?`}t- zO0!MfBOWATAWWX`z82D7aAjUTAK$s%o0dCfJ$uX=M!MO&C=_eGIwk48#B2N#q-XgF zPgJz5Cx%;p$H{57(&zd^{g1Nrt*UPr5P$##AOHafKmY;|fB*y_009W>sz6C^4Cnt{ c{k+&01Rwwb2tWV=5P$##AOHafKwv5G1Ay3_8~^|S diff --git a/ig-template/package/content/assets/postman/.index.json b/ig-template/package/content/assets/postman/.index.json deleted file mode 100644 index 7ee6e2c..0000000 --- a/ig-template/package/content/assets/postman/.index.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "index-version" : 2, - "files" : [] -} diff --git a/ig-template/package/includes/.index.json b/ig-template/package/includes/.index.json deleted file mode 100644 index dbe759e..0000000 --- a/ig-template/package/includes/.index.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "index-version" : 2, - "files" : [] -} diff --git a/ig-template/package/layouts/.index.json b/ig-template/package/layouts/.index.json deleted file mode 100644 index dbe759e..0000000 --- a/ig-template/package/layouts/.index.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "index-version" : 2, - "files" : [] -}