WHO Immunization Implementation Guide
1.0.0 - release

WHO Immunization Implementation Guide, published by WHO. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/WorldHealthOrganization/smart-immunizations/tree/132/merge and changes regularly. See the Directory of published versions

: IMMZD18SHPV2DosesLogic - TTL Representation

Draft as of 2026-03-31

Raw ttl | Download

@prefix fhir: <http://hl7.org/fhir/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# - resource -------------------------------------------------------------------

 a fhir:Library ;
  fhir:nodeRole fhir:treeRoot ;
  fhir:id [ fhir:v "IMMZD18SHPV2DosesLogic"] ; # 
  fhir:meta [
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"^^xsd:anyURI ;
fhir:l <http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary>     ] [
fhir:v "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"^^xsd:anyURI ;
fhir:l <http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary>     ] [
fhir:v "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"^^xsd:anyURI ;
fhir:l <http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library>     ] [
fhir:v "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module"^^xsd:anyURI ;
fhir:l <http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module>     ] )
  ] ; # 
  fhir:text [
fhir:status [ fhir:v "extensions" ] ;
fhir:div [ fhir:v "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n<div>\n    <table class=\"grid dict\">\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Title: </b></th>\n            <td style=\"padding-left: 4px;\">IMMZD18SHPV2DosesLogic</td>\n        </tr>\n        \n\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Id: </b></th>\n            <td style=\"padding-left: 4px;\">IMMZD18SHPV2DosesLogic</td>\n        </tr>\n        \n\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Version: </b></th>\n            <td style=\"padding-left: 4px;\">1.0.0</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Url: </b></th>\n            <td style=\"padding-left: 4px;\"><a href=\"Library-IMMZD18SHPV2DosesLogic.html\">IMMZD18SHPV2DosesLogic</a></td>\n        </tr>\n        \n\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Status: </b></th>\n            <td style=\"padding-left: 4px;\">draft</td>\n        </tr>\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Type: </b></th>\n            <td style=\"padding-left: 4px;\">\n                \n                    \n                        \n                        <p style=\"margin-bottom: 5px;\">\n                            <b>system: </b> <span><a href=\"http://terminology.hl7.org/7.1.0/CodeSystem-library-type.html\">http://terminology.hl7.org/CodeSystem/library-type</a></span>\n                        </p>\n                        \n                        \n                        <p style=\"margin-bottom: 5px;\">\n                            <b>code: </b> <span>logic-library</span>\n                        </p>\n                        \n                        \n                    \n                \n                \n            </td>\n        </tr>\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Date: </b></th>\n            <td style=\"padding-left: 4px;\">2026-03-31 13:54:17+0000</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Publisher: </b></th>\n            <td style=\"padding-left: 4px;\">WHO</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Description: </b></th>\n            <td style=\"padding-left: 4px;\"><div><p>This library defines decision support logic for the IMMZ.D18.S.HPV.2-dose schedule table in the Immunization CPG</p>\n</div></td>\n        </tr>\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Related Artifacts: </b></th>\n            <td style=\"padding-left: 4px;\">\n                \n                \n                \n                <p><b>Dependencies</b></p>\n                <ul>\n                  \n                    <li><a href=\"Library-WHOCommon.html\">WHOCommon</a></li>\n                  \n                    <li><a href=\"Library-IMMZCommon.html\">IMMZCommon</a></li>\n                  \n                    <li><a href=\"Library-IMMZConcepts.html\">IMMZConcepts</a></li>\n                  \n                    <li><a href=\"Library-IMMZEncounterElements.html\">IMMZEncounterElements</a></li>\n                  \n                    <li><a href=\"Library-IMMZD2DTHPVEncounterElements.html\">IMMZD2DTHPVEncounterElements</a></li>\n                  \n                </ul>\n                \n                \n                \n                \n                \n            </td>\n        </tr>\n        \n\n        \n        <tr>\n          <th scope=\"row\"><b>Parameters: </b></th>\n          <td style=\"padding-left: 4px;\">\n            <table class=\"grid-dict\">\n              <tr><th><b>Name</b></th><th><b>Type</b></th><th><b>Min</b></th><th><b>Max</b></th><th><b>In/Out</b></th></tr>\n              \n                <tr><th>Today</th><th>date</th><th>0</th><th>1</th><th>In</th></tr>\n              \n                <tr><th>Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>First HPV dose from the primary series was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>HPV dose 1</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>HPV dose 1 Due Date</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>HPV dose 1 Overdue</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>HPV dose 1 Create</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>HPV dose 1 Expiration</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Second HPV dose from the primary series was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>HPV dose 2</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>HPV dose 2 Due Date</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>HPV dose 2 Overdue</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>HPV dose 2 Create</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>HPV dose 2 Expiration</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Third HPV dose from the primary series was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>HPV dose 3 (immunocompromised or HIV-positive)</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>HPV dose 3 (immunocompromised or HIV-positive) Due Date</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>HPV dose 3 (immunocompromised or HIV-positive) Create</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>HPV dose 3 (immunocompromised or HIV-positive) Overdue</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>HPV dose 3 (immunocompromised or HIV-positive) Expiration</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Test Validation</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n            </table>\n          </td>\n        </tr>\n        \n\n        \n\n        \n        \n        <tr>\n          <td colspan=\"2\">\n            <table>\n              <tr><th><a id=\"cql-content\"><b>Content: </b></a> text/cql</th></tr>\n              <tr><td><pre><code class=\"language-cql\">/*\n * Library: IMMZD18SHPV2DosesLogic (IMMZ.D18.S.HPV.2-dose schedule)\n * Schedule Table: 2-dose schedule\n */\nlibrary IMMZD18SHPV2DosesLogic\n\nusing FHIR version '4.0.1'\ninclude FHIRHelpers version '4.0.1'\n\ninclude WHOCommon called WC\n\ninclude IMMZCommon called Common\ninclude IMMZConcepts called Concepts\n\ninclude IMMZEncounterElements called IE\ninclude IMMZD2DTHPVEncounterElements called Encounter\n\nparameter Today Date default Today()\n\n\ncontext Patient\n\n\n/*\n@output: HPV dose 1\n@description: Provision of the HPV dose 1\n@trigger: Child's birth when client's biological sex is female\n@pseudo: Child's birth AND \"Sex\" = \"Female\"\n@triggerDate: \"Date of birth\"\n*/\ndefine \"HPV dose 1\":\n  Encounter.\"No HPV primary series doses were administered\"\n  and not \"First HPV dose from the primary series was administered\"\n\n\n/*\n@output: HPV dose 1 Create\n@create: HPV dose 1 should be provided if the client is female and older than 9 years of age.\n*/\ndefine \"HPV dose 1 Create\":\n  if \"HPV dose 1\"\n  then 'HPV dose 1 should be provided if the client is female and older than 9 years of age.' + '\nDue Date: ' + ToString(\"HPV dose 1 Due Date\") + '\nOverdue: ' + ToString(\"HPV dose 1 Overdue\")\n  else ''\n\n\n/*\n@dynamicValue: HPV dose 1 Due Date\n@pseudocode: \"Date of birth\" + 9 years\n*/\ndefine \"HPV dose 1 Due Date\":\n  if \"HPV dose 1\" then Patient.birthDate + 9 years\n  else null\n\n\n/*\n@dynamicValue: HPV dose 1 Overdue\n@pseudocode: \"Date of birth\" + 14 years\n*/\ndefine \"HPV dose 1 Overdue\":\n  if \"HPV dose 1\" then Patient.birthDate + 14 years\n  else null\n\n\n/*\n@dynamicValue: HPV dose 1 Expiration\n@pseudocode: To be determined by Member States; however, there is no recommended expiration date.\n*/\ndefine \"HPV dose 1 Expiration\":\n  null\n\n  \n/*\n@complete: First HPV dose from the primary series was administered\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"HPV vaccines\" and \"Type of dose\" = \"Primary series\") = 1\n*/\ndefine \"First HPV dose from the primary series was administered\":\n  Encounter.\"One HPV primary series dose was administered\"\n\n\n\n/*\n@output: HPV dose 2\n@description: Provision of the HPV dose 2\n@trigger: First HPV dose from the primary series was administered\n@pseudo: Count of vaccines administered (where \"Vaccine type\" = \"HPV vaccines\" and \"Type of dose\" = \"Primary series\") = 1\n@triggerDate: \"Date and time of vaccination\" (where \"Vaccine type\" = \"HPV vaccines\")\n*/\ndefine \"HPV dose 2\":\n  \"First HPV dose from the primary series was administered\"\n  and not \"Second HPV dose from the primary series was administered\"\n\n\n/*\n@output: HPV dose 2 Create\n@create: HPV dose 2 should be provided if dose 1 was given 6 months ago.\n*/\ndefine \"HPV dose 2 Create\":\n  if \"HPV dose 2\"\n  then 'HPV dose 2 should be provided if dose 1 was given 6 months ago.' + '\nDue Date: ' + ToString(\"HPV dose 2 Due Date\") + '\nOverdue: ' + ToString(\"HPV dose 2 Overdue\")\n  else ''\n\n\n/*\n@dynamicValue: HPV dose 2 Due Date\n@pseudocode: \"Date and time of vaccination\" (where \"Vaccine type\" = \"HPV vaccines\") + 6 months\n*/\ndefine \"HPV dose 2 Due Date\":\n  if \"HPV dose 2\" then Encounter.\"Date of Latest HPV Dose\" + 6 months\n  else null\n\n\n/*\n@dynamicValue: HPV dose 2 Overdue\n@pseudocode: \"Date of birth\" + 14 years\n*/\ndefine \"HPV dose 2 Overdue\":\n  if \"HPV dose 2\" then Patient.birthDate + 14 years\n  else null\n\n\n/*\n@dynamicValue: HPV dose 2 Expiration\n@pseudocode: To be determined by Member States; however, there is no recommended expiration date.\n*/\ndefine \"HPV dose 2 Expiration\":\n  null\n\n  \n/*\n@complete: Second HPV dose from the primary series was administered\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"HPV vaccines\" and \"Type of dose\" = \"Primary series\") = 2\n*/\ndefine \"Second HPV dose from the primary series was administered\":\n  Encounter.\"Two HPV primary series doses were administered\"\n\n\n\n/*\n@output: HPV dose 3 (immunocompromised or HIV-positive)\n@description: Provision of the HPV dose 3 for individuals immunocompromised or infected with HIV\n@trigger: Second HPV dose from the primary series was administered and client's HIV status is positive or client is immunocompromised\n@pseudo: Count of vaccines administered (where \"Vaccine type\" = \"HPV vaccines\" and \"Type of dose\" = \"Primary series\") = 2 AND (\"HIV status\" = \"HIV-positive\" OR \"Immunocompromised\" = TRUE)\n@triggerDate: Latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"HPV vaccines\")\n*/\ndefine \"HPV dose 3 (immunocompromised or HIV-positive)\":\n  \"Second HPV dose from the primary series was administered\"\n  and (\n    Encounter.\"Client's HIV status is positive\"\n    or Encounter.\"Client is immunocompromised\"\n  )\n  and not \"Third HPV dose from the primary series was administered\"\n\n\n/*\n@output: HPV dose 3 (immunocompromised or HIV-positive) Create\n@create: Where possible, three HPV doses should be provided to individuals known to be immunocompromised or infected with HIV.\n*/\ndefine \"HPV dose 3 (immunocompromised or HIV-positive) Create\":\n  if \"HPV dose 3 (immunocompromised or HIV-positive)\"\n  then 'Where possible, three HPV doses should be provided to individuals known to be immunocompromised or infected with HIV.' + '\nDue Date: ' + ToString(\"HPV dose 3 (immunocompromised or HIV-positive) Due Date\")\n  else ''\n\n\n/*\n@dynamicValue: HPV dose 3 (immunocompromised or HIV-positive) Due Date\n@pseudocode: Latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"HPV vaccines\") + 6 months\n*/\ndefine \"HPV dose 3 (immunocompromised or HIV-positive) Due Date\":\n  if \"HPV dose 3 (immunocompromised or HIV-positive)\" then Encounter.\"Date of Latest HPV Dose\" + 6 months\n  else null\n\n\n/*\n@dynamicValue: HPV dose 3 (immunocompromised or HIV-positive) Overdue\n@pseudocode: To be determined by Member States; however, there is no recommended overdue date.\n*/\ndefine \"HPV dose 3 (immunocompromised or HIV-positive) Overdue\":\n  null\n\n\n/*\n@dynamicValue: HPV dose 3 (immunocompromised or HIV-positive) Expiration\n@pseudocode: To be determined by Member States; however, there is no recommended expiration date.\n*/\ndefine \"HPV dose 3 (immunocompromised or HIV-positive) Expiration\":\n  null\n\n  \n/*\n@complete: Third HPV dose from the primary series was administered\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"HPV vaccines\" and \"Type of dose\" = \"Primary series\") = 3\n*/\ndefine \"Third HPV dose from the primary series was administered\":\n  Encounter.\"Three HPV primary series doses were administered\"\n\n\n\n/*\n@test: Test expected results based on example patients\n*/\ndefine \"Test Validation\":\n  case\n    when Patient.id = 'HPV08.1' then \"HPV dose 1\"\n    when Patient.id = 'HPV09.3' then \"HPV dose 1\"\n    when Patient.id = 'HPV10.3' then \"HPV dose 1\"\n    when Patient.id = 'HPV11.2' then \"HPV dose 1\"\n    when Patient.id = 'HPV12.2' then \"HPV dose 2\"\n    when Patient.id = 'HPV13.2' then \"HPV dose 2\"\n    when Patient.id = 'HPV14.3' then \"HPV dose 3 (immunocompromised or HIV-positive)\"\n    when Patient.id = 'HPV15.3' then \"HPV dose 3 (immunocompromised or HIV-positive)\"\n    when Patient.id = 'HPV16.3' then \"HPV dose 3 (immunocompromised or HIV-positive)\"\n    when Patient.id = 'HPV17.3' then \"HPV dose 3 (immunocompromised or HIV-positive)\"\n    when Patient.id = 'HPV18.3' then \"Second HPV dose from the primary series was administered\" and not \"HPV dose 3 (immunocompromised or HIV-positive)\"\n    when Patient.id = 'HPV19.1' then \"Third HPV dose from the primary series was administered\"\n    else 'No test case set'\n  end\n</code></pre></td></tr>\n            </table>\n          </td>\n        </tr>\n        \n        \n        \n    </table>\n</div>\n</div>"^^rdf:XMLLiteral ]
  ] ; # 
  fhir:extension ( [
fhir:url [
fhir:v "http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability"^^xsd:anyURI ;
fhir:l <http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability>     ] ;
fhir:value [
a fhir:Code ;
fhir:v "computable"     ]
  ] ) ; # 
  fhir:url [
fhir:v "http://smart.who.int/immunizations/Library/IMMZD18SHPV2DosesLogic"^^xsd:anyURI ;
fhir:l <http://smart.who.int/immunizations/Library/IMMZD18SHPV2DosesLogic>
  ] ; # 
  fhir:version [ fhir:v "1.0.0"] ; # 
  fhir:name [ fhir:v "IMMZD18SHPV2DosesLogic"] ; # 
  fhir:title [ fhir:v "IMMZD18SHPV2DosesLogic"] ; # 
  fhir:status [ fhir:v "draft"] ; # 
  fhir:experimental [ fhir:v false] ; # 
  fhir:type [
    ( fhir:coding [
fhir:system [
fhir:v "http://terminology.hl7.org/CodeSystem/library-type"^^xsd:anyURI ;
fhir:l <http://terminology.hl7.org/CodeSystem/library-type>       ] ;
fhir:code [ fhir:v "logic-library" ]     ] )
  ] ; # 
  fhir:date [ fhir:v "2026-03-31T13:54:17+00:00"^^xsd:dateTime] ; # 
  fhir:publisher [ fhir:v "WHO"] ; # 
  fhir:contact ( [
fhir:name [ fhir:v "WHO" ] ;
    ( fhir:telecom [
fhir:system [ fhir:v "url" ] ;
fhir:value [ fhir:v "http://who.int" ]     ] )
  ] ) ; # 
  fhir:description [ fhir:v "This library defines decision support logic for the IMMZ.D18.S.HPV.2-dose schedule table in the Immunization CPG"] ; # 
  fhir:relatedArtifact ( [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library WC" ] ;
fhir:resource [
fhir:v "http://smart.who.int/immunizations/Library/WHOCommon"^^xsd:anyURI ;
fhir:l <http://smart.who.int/immunizations/Library/WHOCommon>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library Common" ] ;
fhir:resource [
fhir:v "http://smart.who.int/immunizations/Library/IMMZCommon"^^xsd:anyURI ;
fhir:l <http://smart.who.int/immunizations/Library/IMMZCommon>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library Concepts" ] ;
fhir:resource [
fhir:v "http://smart.who.int/immunizations/Library/IMMZConcepts"^^xsd:anyURI ;
fhir:l <http://smart.who.int/immunizations/Library/IMMZConcepts>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library IE" ] ;
fhir:resource [
fhir:v "http://smart.who.int/immunizations/Library/IMMZEncounterElements"^^xsd:anyURI ;
fhir:l <http://smart.who.int/immunizations/Library/IMMZEncounterElements>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library Encounter" ] ;
fhir:resource [
fhir:v "http://smart.who.int/immunizations/Library/IMMZD2DTHPVEncounterElements"^^xsd:anyURI ;
fhir:l <http://smart.who.int/immunizations/Library/IMMZD2DTHPVEncounterElements>     ]
  ] ) ; # 
  fhir:parameter ( [
fhir:name [ fhir:v "Today" ] ;
fhir:use [ fhir:v "in" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "date" ]
  ] [
fhir:name [ fhir:v "Patient" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "Patient" ]
  ] [
fhir:name [ fhir:v "First HPV dose from the primary series was administered" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "boolean" ]
  ] [
fhir:name [ fhir:v "HPV dose 1" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "boolean" ]
  ] [
fhir:name [ fhir:v "HPV dose 1 Due Date" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "date" ]
  ] [
fhir:name [ fhir:v "HPV dose 1 Overdue" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "date" ]
  ] [
fhir:name [ fhir:v "HPV dose 1 Create" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "string" ]
  ] [
fhir:name [ fhir:v "HPV dose 1 Expiration" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "Resource" ]
  ] [
fhir:name [ fhir:v "Second HPV dose from the primary series was administered" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "boolean" ]
  ] [
fhir:name [ fhir:v "HPV dose 2" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "boolean" ]
  ] [
fhir:name [ fhir:v "HPV dose 2 Due Date" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "date" ]
  ] [
fhir:name [ fhir:v "HPV dose 2 Overdue" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "date" ]
  ] [
fhir:name [ fhir:v "HPV dose 2 Create" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "string" ]
  ] [
fhir:name [ fhir:v "HPV dose 2 Expiration" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "Resource" ]
  ] [
fhir:name [ fhir:v "Third HPV dose from the primary series was administered" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "boolean" ]
  ] [
fhir:name [ fhir:v "HPV dose 3 (immunocompromised or HIV-positive)" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "boolean" ]
  ] [
fhir:name [ fhir:v "HPV dose 3 (immunocompromised or HIV-positive) Due Date" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "date" ]
  ] [
fhir:name [ fhir:v "HPV dose 3 (immunocompromised or HIV-positive) Create" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "string" ]
  ] [
fhir:name [ fhir:v "HPV dose 3 (immunocompromised or HIV-positive) Overdue" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "Resource" ]
  ] [
fhir:name [ fhir:v "HPV dose 3 (immunocompromised or HIV-positive) Expiration" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "Resource" ]
  ] [
fhir:name [ fhir:v "Test Validation" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v 0 ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "Resource" ]
  ] ) ; # 
  fhir:content ( [
fhir:contentType [ fhir:v "text/cql" ] ;
fhir:data [ fhir:v "LyoKICogTGlicmFyeTogSU1NWkQxOFNIUFYyRG9zZXNMb2dpYyAoSU1NWi5EMTguUy5IUFYuMi1kb3NlIHNjaGVkdWxlKQogKiBTY2hlZHVsZSBUYWJsZTogMi1kb3NlIHNjaGVkdWxlCiAqLwpsaWJyYXJ5IElNTVpEMThTSFBWMkRvc2VzTG9naWMKCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIFdIT0NvbW1vbiBjYWxsZWQgV0MKCmluY2x1ZGUgSU1NWkNvbW1vbiBjYWxsZWQgQ29tbW9uCmluY2x1ZGUgSU1NWkNvbmNlcHRzIGNhbGxlZCBDb25jZXB0cwoKaW5jbHVkZSBJTU1aRW5jb3VudGVyRWxlbWVudHMgY2FsbGVkIElFCmluY2x1ZGUgSU1NWkQyRFRIUFZFbmNvdW50ZXJFbGVtZW50cyBjYWxsZWQgRW5jb3VudGVyCgpwYXJhbWV0ZXIgVG9kYXkgRGF0ZSBkZWZhdWx0IFRvZGF5KCkKCgpjb250ZXh0IFBhdGllbnQKCgovKgpAb3V0cHV0OiBIUFYgZG9zZSAxCkBkZXNjcmlwdGlvbjogUHJvdmlzaW9uIG9mIHRoZSBIUFYgZG9zZSAxCkB0cmlnZ2VyOiBDaGlsZCdzIGJpcnRoIHdoZW4gY2xpZW50J3MgYmlvbG9naWNhbCBzZXggaXMgZmVtYWxlCkBwc2V1ZG86IENoaWxkJ3MgYmlydGggQU5EICJTZXgiID0gIkZlbWFsZSIKQHRyaWdnZXJEYXRlOiAiRGF0ZSBvZiBiaXJ0aCIKKi8KZGVmaW5lICJIUFYgZG9zZSAxIjoKICBFbmNvdW50ZXIuIk5vIEhQViBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZCIKICBhbmQgbm90ICJGaXJzdCBIUFYgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkIgoKCi8qCkBvdXRwdXQ6IEhQViBkb3NlIDEgQ3JlYXRlCkBjcmVhdGU6IEhQViBkb3NlIDEgc2hvdWxkIGJlIHByb3ZpZGVkIGlmIHRoZSBjbGllbnQgaXMgZmVtYWxlIGFuZCBvbGRlciB0aGFuIDkgeWVhcnMgb2YgYWdlLgoqLwpkZWZpbmUgIkhQViBkb3NlIDEgQ3JlYXRlIjoKICBpZiAiSFBWIGRvc2UgMSIKICB0aGVuICdIUFYgZG9zZSAxIHNob3VsZCBiZSBwcm92aWRlZCBpZiB0aGUgY2xpZW50IGlzIGZlbWFsZSBhbmQgb2xkZXIgdGhhbiA5IHllYXJzIG9mIGFnZS4nICsgJwpEdWUgRGF0ZTogJyArIFRvU3RyaW5nKCJIUFYgZG9zZSAxIER1ZSBEYXRlIikgKyAnCk92ZXJkdWU6ICcgKyBUb1N0cmluZygiSFBWIGRvc2UgMSBPdmVyZHVlIikKICBlbHNlICcnCgoKLyoKQGR5bmFtaWNWYWx1ZTogSFBWIGRvc2UgMSBEdWUgRGF0ZQpAcHNldWRvY29kZTogIkRhdGUgb2YgYmlydGgiICsgOSB5ZWFycwoqLwpkZWZpbmUgIkhQViBkb3NlIDEgRHVlIERhdGUiOgogIGlmICJIUFYgZG9zZSAxIiB0aGVuIFBhdGllbnQuYmlydGhEYXRlICsgOSB5ZWFycwogIGVsc2UgbnVsbAoKCi8qCkBkeW5hbWljVmFsdWU6IEhQViBkb3NlIDEgT3ZlcmR1ZQpAcHNldWRvY29kZTogIkRhdGUgb2YgYmlydGgiICsgMTQgeWVhcnMKKi8KZGVmaW5lICJIUFYgZG9zZSAxIE92ZXJkdWUiOgogIGlmICJIUFYgZG9zZSAxIiB0aGVuIFBhdGllbnQuYmlydGhEYXRlICsgMTQgeWVhcnMKICBlbHNlIG51bGwKCgovKgpAZHluYW1pY1ZhbHVlOiBIUFYgZG9zZSAxIEV4cGlyYXRpb24KQHBzZXVkb2NvZGU6IFRvIGJlIGRldGVybWluZWQgYnkgTWVtYmVyIFN0YXRlczsgaG93ZXZlciwgdGhlcmUgaXMgbm8gcmVjb21tZW5kZWQgZXhwaXJhdGlvbiBkYXRlLgoqLwpkZWZpbmUgIkhQViBkb3NlIDEgRXhwaXJhdGlvbiI6CiAgbnVsbAoKICAKLyoKQGNvbXBsZXRlOiBGaXJzdCBIUFYgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIkhQViB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIlByaW1hcnkgc2VyaWVzIikgPSAxCiovCmRlZmluZSAiRmlyc3QgSFBWIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZCI6CiAgRW5jb3VudGVyLiJPbmUgSFBWIHByaW1hcnkgc2VyaWVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCIKCgoKLyoKQG91dHB1dDogSFBWIGRvc2UgMgpAZGVzY3JpcHRpb246IFByb3Zpc2lvbiBvZiB0aGUgSFBWIGRvc2UgMgpAdHJpZ2dlcjogRmlyc3QgSFBWIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZApAcHNldWRvOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIkhQViB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIlByaW1hcnkgc2VyaWVzIikgPSAxCkB0cmlnZ2VyRGF0ZTogIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJIUFYgdmFjY2luZXMiKQoqLwpkZWZpbmUgIkhQViBkb3NlIDIiOgogICJGaXJzdCBIUFYgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkIgogIGFuZCBub3QgIlNlY29uZCBIUFYgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkIgoKCi8qCkBvdXRwdXQ6IEhQViBkb3NlIDIgQ3JlYXRlCkBjcmVhdGU6IEhQViBkb3NlIDIgc2hvdWxkIGJlIHByb3ZpZGVkIGlmIGRvc2UgMSB3YXMgZ2l2ZW4gNiBtb250aHMgYWdvLgoqLwpkZWZpbmUgIkhQViBkb3NlIDIgQ3JlYXRlIjoKICBpZiAiSFBWIGRvc2UgMiIKICB0aGVuICdIUFYgZG9zZSAyIHNob3VsZCBiZSBwcm92aWRlZCBpZiBkb3NlIDEgd2FzIGdpdmVuIDYgbW9udGhzIGFnby4nICsgJwpEdWUgRGF0ZTogJyArIFRvU3RyaW5nKCJIUFYgZG9zZSAyIER1ZSBEYXRlIikgKyAnCk92ZXJkdWU6ICcgKyBUb1N0cmluZygiSFBWIGRvc2UgMiBPdmVyZHVlIikKICBlbHNlICcnCgoKLyoKQGR5bmFtaWNWYWx1ZTogSFBWIGRvc2UgMiBEdWUgRGF0ZQpAcHNldWRvY29kZTogIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJIUFYgdmFjY2luZXMiKSArIDYgbW9udGhzCiovCmRlZmluZSAiSFBWIGRvc2UgMiBEdWUgRGF0ZSI6CiAgaWYgIkhQViBkb3NlIDIiIHRoZW4gRW5jb3VudGVyLiJEYXRlIG9mIExhdGVzdCBIUFYgRG9zZSIgKyA2IG1vbnRocwogIGVsc2UgbnVsbAoKCi8qCkBkeW5hbWljVmFsdWU6IEhQViBkb3NlIDIgT3ZlcmR1ZQpAcHNldWRvY29kZTogIkRhdGUgb2YgYmlydGgiICsgMTQgeWVhcnMKKi8KZGVmaW5lICJIUFYgZG9zZSAyIE92ZXJkdWUiOgogIGlmICJIUFYgZG9zZSAyIiB0aGVuIFBhdGllbnQuYmlydGhEYXRlICsgMTQgeWVhcnMKICBlbHNlIG51bGwKCgovKgpAZHluYW1pY1ZhbHVlOiBIUFYgZG9zZSAyIEV4cGlyYXRpb24KQHBzZXVkb2NvZGU6IFRvIGJlIGRldGVybWluZWQgYnkgTWVtYmVyIFN0YXRlczsgaG93ZXZlciwgdGhlcmUgaXMgbm8gcmVjb21tZW5kZWQgZXhwaXJhdGlvbiBkYXRlLgoqLwpkZWZpbmUgIkhQViBkb3NlIDIgRXhwaXJhdGlvbiI6CiAgbnVsbAoKICAKLyoKQGNvbXBsZXRlOiBTZWNvbmQgSFBWIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZApAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJIUFYgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJQcmltYXJ5IHNlcmllcyIpID0gMgoqLwpkZWZpbmUgIlNlY29uZCBIUFYgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkIjoKICBFbmNvdW50ZXIuIlR3byBIUFYgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQiCgoKCi8qCkBvdXRwdXQ6IEhQViBkb3NlIDMgKGltbXVub2NvbXByb21pc2VkIG9yIEhJVi1wb3NpdGl2ZSkKQGRlc2NyaXB0aW9uOiBQcm92aXNpb24gb2YgdGhlIEhQViBkb3NlIDMgZm9yIGluZGl2aWR1YWxzIGltbXVub2NvbXByb21pc2VkIG9yIGluZmVjdGVkIHdpdGggSElWCkB0cmlnZ2VyOiBTZWNvbmQgSFBWIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZCBhbmQgY2xpZW50J3MgSElWIHN0YXR1cyBpcyBwb3NpdGl2ZSBvciBjbGllbnQgaXMgaW1tdW5vY29tcHJvbWlzZWQKQHBzZXVkbzogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJIUFYgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJQcmltYXJ5IHNlcmllcyIpID0gMiBBTkQgKCJISVYgc3RhdHVzIiA9ICJISVYtcG9zaXRpdmUiIE9SICJJbW11bm9jb21wcm9taXNlZCIgPSBUUlVFKQpAdHJpZ2dlckRhdGU6IExhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIkhQViB2YWNjaW5lcyIpCiovCmRlZmluZSAiSFBWIGRvc2UgMyAoaW1tdW5vY29tcHJvbWlzZWQgb3IgSElWLXBvc2l0aXZlKSI6CiAgIlNlY29uZCBIUFYgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkIgogIGFuZCAoCiAgICBFbmNvdW50ZXIuIkNsaWVudCdzIEhJViBzdGF0dXMgaXMgcG9zaXRpdmUiCiAgICBvciBFbmNvdW50ZXIuIkNsaWVudCBpcyBpbW11bm9jb21wcm9taXNlZCIKICApCiAgYW5kIG5vdCAiVGhpcmQgSFBWIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZCIKCgovKgpAb3V0cHV0OiBIUFYgZG9zZSAzIChpbW11bm9jb21wcm9taXNlZCBvciBISVYtcG9zaXRpdmUpIENyZWF0ZQpAY3JlYXRlOiBXaGVyZSBwb3NzaWJsZSwgdGhyZWUgSFBWIGRvc2VzIHNob3VsZCBiZSBwcm92aWRlZCB0byBpbmRpdmlkdWFscyBrbm93biB0byBiZSBpbW11bm9jb21wcm9taXNlZCBvciBpbmZlY3RlZCB3aXRoIEhJVi4KKi8KZGVmaW5lICJIUFYgZG9zZSAzIChpbW11bm9jb21wcm9taXNlZCBvciBISVYtcG9zaXRpdmUpIENyZWF0ZSI6CiAgaWYgIkhQViBkb3NlIDMgKGltbXVub2NvbXByb21pc2VkIG9yIEhJVi1wb3NpdGl2ZSkiCiAgdGhlbiAnV2hlcmUgcG9zc2libGUsIHRocmVlIEhQViBkb3NlcyBzaG91bGQgYmUgcHJvdmlkZWQgdG8gaW5kaXZpZHVhbHMga25vd24gdG8gYmUgaW1tdW5vY29tcHJvbWlzZWQgb3IgaW5mZWN0ZWQgd2l0aCBISVYuJyArICcKRHVlIERhdGU6ICcgKyBUb1N0cmluZygiSFBWIGRvc2UgMyAoaW1tdW5vY29tcHJvbWlzZWQgb3IgSElWLXBvc2l0aXZlKSBEdWUgRGF0ZSIpCiAgZWxzZSAnJwoKCi8qCkBkeW5hbWljVmFsdWU6IEhQViBkb3NlIDMgKGltbXVub2NvbXByb21pc2VkIG9yIEhJVi1wb3NpdGl2ZSkgRHVlIERhdGUKQHBzZXVkb2NvZGU6IExhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIkhQViB2YWNjaW5lcyIpICsgNiBtb250aHMKKi8KZGVmaW5lICJIUFYgZG9zZSAzIChpbW11bm9jb21wcm9taXNlZCBvciBISVYtcG9zaXRpdmUpIER1ZSBEYXRlIjoKICBpZiAiSFBWIGRvc2UgMyAoaW1tdW5vY29tcHJvbWlzZWQgb3IgSElWLXBvc2l0aXZlKSIgdGhlbiBFbmNvdW50ZXIuIkRhdGUgb2YgTGF0ZXN0IEhQViBEb3NlIiArIDYgbW9udGhzCiAgZWxzZSBudWxsCgoKLyoKQGR5bmFtaWNWYWx1ZTogSFBWIGRvc2UgMyAoaW1tdW5vY29tcHJvbWlzZWQgb3IgSElWLXBvc2l0aXZlKSBPdmVyZHVlCkBwc2V1ZG9jb2RlOiBUbyBiZSBkZXRlcm1pbmVkIGJ5IE1lbWJlciBTdGF0ZXM7IGhvd2V2ZXIsIHRoZXJlIGlzIG5vIHJlY29tbWVuZGVkIG92ZXJkdWUgZGF0ZS4KKi8KZGVmaW5lICJIUFYgZG9zZSAzIChpbW11bm9jb21wcm9taXNlZCBvciBISVYtcG9zaXRpdmUpIE92ZXJkdWUiOgogIG51bGwKCgovKgpAZHluYW1pY1ZhbHVlOiBIUFYgZG9zZSAzIChpbW11bm9jb21wcm9taXNlZCBvciBISVYtcG9zaXRpdmUpIEV4cGlyYXRpb24KQHBzZXVkb2NvZGU6IFRvIGJlIGRldGVybWluZWQgYnkgTWVtYmVyIFN0YXRlczsgaG93ZXZlciwgdGhlcmUgaXMgbm8gcmVjb21tZW5kZWQgZXhwaXJhdGlvbiBkYXRlLgoqLwpkZWZpbmUgIkhQViBkb3NlIDMgKGltbXVub2NvbXByb21pc2VkIG9yIEhJVi1wb3NpdGl2ZSkgRXhwaXJhdGlvbiI6CiAgbnVsbAoKICAKLyoKQGNvbXBsZXRlOiBUaGlyZCBIUFYgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIkhQViB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIlByaW1hcnkgc2VyaWVzIikgPSAzCiovCmRlZmluZSAiVGhpcmQgSFBWIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZCI6CiAgRW5jb3VudGVyLiJUaHJlZSBIUFYgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQiCgoKCi8qCkB0ZXN0OiBUZXN0IGV4cGVjdGVkIHJlc3VsdHMgYmFzZWQgb24gZXhhbXBsZSBwYXRpZW50cwoqLwpkZWZpbmUgIlRlc3QgVmFsaWRhdGlvbiI6CiAgY2FzZQogICAgd2hlbiBQYXRpZW50LmlkID0gJ0hQVjA4LjEnIHRoZW4gIkhQViBkb3NlIDEiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnSFBWMDkuMycgdGhlbiAiSFBWIGRvc2UgMSIKICAgIHdoZW4gUGF0aWVudC5pZCA9ICdIUFYxMC4zJyB0aGVuICJIUFYgZG9zZSAxIgogICAgd2hlbiBQYXRpZW50LmlkID0gJ0hQVjExLjInIHRoZW4gIkhQViBkb3NlIDEiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnSFBWMTIuMicgdGhlbiAiSFBWIGRvc2UgMiIKICAgIHdoZW4gUGF0aWVudC5pZCA9ICdIUFYxMy4yJyB0aGVuICJIUFYgZG9zZSAyIgogICAgd2hlbiBQYXRpZW50LmlkID0gJ0hQVjE0LjMnIHRoZW4gIkhQViBkb3NlIDMgKGltbXVub2NvbXByb21pc2VkIG9yIEhJVi1wb3NpdGl2ZSkiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnSFBWMTUuMycgdGhlbiAiSFBWIGRvc2UgMyAoaW1tdW5vY29tcHJvbWlzZWQgb3IgSElWLXBvc2l0aXZlKSIKICAgIHdoZW4gUGF0aWVudC5pZCA9ICdIUFYxNi4zJyB0aGVuICJIUFYgZG9zZSAzIChpbW11bm9jb21wcm9taXNlZCBvciBISVYtcG9zaXRpdmUpIgogICAgd2hlbiBQYXRpZW50LmlkID0gJ0hQVjE3LjMnIHRoZW4gIkhQViBkb3NlIDMgKGltbXVub2NvbXByb21pc2VkIG9yIEhJVi1wb3NpdGl2ZSkiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnSFBWMTguMycgdGhlbiAiU2Vjb25kIEhQViBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQiIGFuZCBub3QgIkhQViBkb3NlIDMgKGltbXVub2NvbXByb21pc2VkIG9yIEhJVi1wb3NpdGl2ZSkiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnSFBWMTkuMScgdGhlbiAiVGhpcmQgSFBWIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZCIKICAgIGVsc2UgJ05vIHRlc3QgY2FzZSBzZXQnCiAgZW5kCg=="^^xsd:base64Binary ]
  ] ) . #