@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 -------------------------------------------------------------------

<http://smart.who.int/immunizations/Library/IMMZD18SDTPDelayedOrInterruptedSeriesLogic> a fhir:Library ;
  fhir:nodeRole fhir:treeRoot ;
  fhir:id [ fhir:v "IMMZD18SDTPDelayedOrInterruptedSeriesLogic"] ; # 
  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;\">IMMZD18SDTPDelayedOrInterruptedSeriesLogic</td>\n        </tr>\n        \n\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Id: </b></th>\n            <td style=\"padding-left: 4px;\">IMMZD18SDTPDelayedOrInterruptedSeriesLogic</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-IMMZD18SDTPDelayedOrInterruptedSeriesLogic.html\">IMMZD18SDTPDelayedOrInterruptedSeriesLogic</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.DTP.Delayed or interrupted 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-IMMZD2DTDTPEncounterElements.html\">IMMZD2DTDTPEncounterElements</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>DTP dose 1 (delayed start)</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>DTP dose 1 (delayed start) Due Date</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>DTP dose 1 (delayed start) Create</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>DTP dose 1 (delayed start) Overdue</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>DTP dose 1 (delayed start) Expiration</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>First DTP 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>Second DTP 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>DTP dose 2 (delayed start)</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>DTP dose 2 (delayed start) Due Date</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>DTP dose 2 (delayed start) Create</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>DTP dose 2 (delayed start) Overdue</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>DTP dose 2 (delayed start) Expiration</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Third DTP dose from the primary series was administered. The primary DTP series has been completed</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>DTP dose 3 (delayed start)</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>DTP dose 3 (delayed start) Due Date</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>DTP dose 3 (delayed start) Create</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>DTP dose 3 (delayed start) Overdue</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>DTP dose 3 (delayed start) Expiration</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start)</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start) Due Date</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start) Create</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start) Overdue</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start) Expiration</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>First tetanus and diphtheria booster dose was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Second tetanus and diphtheria booster dose was administered. Tetanus and diphtheria immunization schedule has been completed</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start)</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start) Due Date</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start) Create</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start) Overdue</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start) Expiration</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Pertussis-containing vaccine booster dose 1 (delayed start) Expiration</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Pertussis-containing booster dose was administered. Pertussis immunization schedule has been completed</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Pertussis-containing vaccine booster dose 1 (delayed start)</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Pertussis-containing vaccine booster dose 1 (delayed start) Due Date</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Pertussis-containing vaccine booster dose 1 (delayed start) Overdue</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Pertussis-containing vaccine booster dose 1 (delayed start) Create</th><th>string</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: IMMZD18SDTPDelayedOrInterruptedSeriesLogic (IMMZ.D18.S.DTP.Delayed or interrupted schedule)\n * Schedule Table: Diphtheria–tetanus–pertussis (DTP) vaccination schedule for the following groups: children ≥ 1 year of age with no previous immunization, adolescents and adults with no previous immunization (including pregnant women) and supplementary immunization activities in high-risk areas, for women of reproductive age\n */\nlibrary IMMZD18SDTPDelayedOrInterruptedSeriesLogic\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 IMMZD2DTDTPEncounterElements called Encounter\n\nparameter Today Date default Today()\n\n\ncontext Patient\n\n\n/*\n@output: DTP dose 1 (delayed start)\n@description: Provision of DTP dose 1 with a delayed start\n@trigger: No DTP doses were administered and client's age is more than 1 year\n@pseudo: Count of vaccines administered (where \"Vaccine type\" = \"DTP-containing vaccines\") = 0 AND Today's date − \"Date of birth\" &gt; 1 year\n@triggerDate: Date of birth\n*/\ndefine \"DTP dose 1 (delayed start)\":\n  Encounter.\"No DTP primary series doses were administered\"\n  and Encounter.\"Client's age is more than 1 year\"\n\n\n/*\n@output: DTP dose 1 (delayed start) Create\n@create: For children whose vaccination series has been interrupted, the series should be resumed without repeating previous doses. Children aged 1 year to under 7 years who have not previously been vaccinated should receive 3 doses of vaccine following a 0, 1, 6 month schedule.\n\nIf tetanus vaccination is started during adolescence or adulthood, a total of only 5 appropriately spaced doses are required to obtain lifelong protection.\n\nPregnant women and their newborn infants are protected from birth-associated tetanus if the mother received 5 doses if first vaccinated during adolescence/adulthood.\n*/\ndefine \"DTP dose 1 (delayed start) Create\":\n  if \"DTP dose 1 (delayed start)\"\n  then 'For children whose vaccination series has been interrupted, the series should be resumed without repeating previous doses. Children aged 1 year to under 7 years who have not previously been vaccinated should receive 3 doses of vaccine following a 0, 1, 6 month schedule.\nIf tetanus vaccination is started during adolescence or adulthood, a total of only 5 appropriately spaced doses are required to obtain lifelong protection.\nPregnant women and their newborn infants are protected from birth-associated tetanus if the mother received 5 doses if first vaccinated during adolescence/adulthood.' + '\nDue Date: ' + ToString(\"DTP dose 1 (delayed start) Due Date\")\n  else ''\n\n\n/*\n@dynamicValue: DTP dose 1 (delayed start) Due Date\n@pseudocode: As soon as possible\n*/\ndefine \"DTP dose 1 (delayed start) Due Date\":\n  if \"DTP dose 1 (delayed start)\" then Patient.birthDate + 1 year\n  else null\n\n\n/*\n@dynamicValue: DTP dose 1 (delayed start) Overdue\n@pseudocode: To be determined by Member States; however, there is no recommended overdue date.\n*/\ndefine \"DTP dose 1 (delayed start) Overdue\":\n  null\n\n\n/*\n@dynamicValue: DTP dose 1 (delayed start) Expiration\n@pseudocode: To be determined by Member States. However, there is no recommended expiration date and individuals remain eligible to be vaccinated.\n*/\ndefine \"DTP dose 1 (delayed start) Expiration\":\n  null\n\n  \n/*\n@complete: First DTP dose from the primary series was administered\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"DTP-containing vaccines\" and \"Type of dose\" = \"Primary series\") = 1\n*/\ndefine \"First DTP dose from the primary series was administered\":\n  Encounter.\"One DTP primary series dose was administered\"\n\n\n\n/*\n@output: DTP dose 2 (delayed start)\n@description: Provision of DTP dose 2 with a delayed start\n@trigger: First DTP dose from the primary series was administered\n@pseudo: Count of vaccines administered (where \"Vaccine type\" = \"DTP-containing vaccines\" and \"Type of dose\" = \"Primary series\") = 1\n@triggerDate: Latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"DTP-containing vaccines\"\n*/\ndefine \"DTP dose 2 (delayed start)\":\n  \"First DTP dose from the primary series was administered\" and\n  not \"Second DTP dose from the primary series was administered\"\n\n\n/*\n@output: DTP dose 2 (delayed start) Create\n@create: For children whose vaccination series has been interrupted, the series should be resumed without repeating previous doses. Children aged 1 year to under 7 years who have not previously been vaccinated should receive 3 doses of vaccine following a 0, 1, 6 month schedule.\n\nIf tetanus vaccination is started during adolescence or adulthood, a total of only 5 appropriately spaced doses are required to obtain lifelong protection.\n\nPregnant women and their newborn infants are protected from birth-associated tetanus if the mother received 5 doses if first vaccinated during adolescence/adulthood.\n*/\ndefine \"DTP dose 2 (delayed start) Create\":\n  if \"DTP dose 2 (delayed start)\"\n  then 'For children whose vaccination series has been interrupted, the series should be resumed without repeating previous doses. Children aged 1 year to under 7 years who have not previously been vaccinated should receive 3 doses of vaccine following a 0, 1, 6 month schedule.\nIf tetanus vaccination is started during adolescence or adulthood, a total of only 5 appropriately spaced doses are required to obtain lifelong protection.\nPregnant women and their newborn infants are protected from birth-associated tetanus if the mother received 5 doses if first vaccinated during adolescence/adulthood.' + '\nDue Date: ' + ToString(\"DTP dose 2 (delayed start) Due Date\")\n  else ''\n\n\n/*\n@dynamicValue: DTP dose 2 (delayed start) Due Date\n@pseudocode: Latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"DTP-containing vaccines\") + 4 weeks\n*/\ndefine \"DTP dose 2 (delayed start) Due Date\":\n  if \"DTP dose 2 (delayed start)\" then Encounter.\"Date of Latest DTP Dose\" + 4 weeks\n  else null\n\n\n/*\n@dynamicValue: DTP dose 2 (delayed start) Overdue\n@pseudocode: To be determined by Member States; however, there is no recommended overdue date.\n*/\ndefine \"DTP dose 2 (delayed start) Overdue\":\n  null\n\n\n/*\n@dynamicValue: DTP dose 2 (delayed start) Expiration\n@pseudocode: To be determined by Member States. However, there is no recommended expiration date and individuals remain eligible to be vaccinated.\n*/\ndefine \"DTP dose 2 (delayed start) Expiration\":\n  null\n\n  \n/*\n@complete: Second DTP dose from the primary series was administered\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"DTP-containing vaccines\" and \"Type of dose\" = \"Primary series\") = 2\n*/\ndefine \"Second DTP dose from the primary series was administered\":\n  Encounter.\"Two DTP primary series doses were administered\"\n\n\n\n/*\n@output: DTP dose 3 (delayed start)\n@description: Provision of DTP dose 3 with a delayed start\n@trigger: Second DTP dose from the primary series was administered\n@pseudo: Count of vaccines administered (where \"Vaccine type\" = \"DTP-containing vaccines\" and \"Type of dose\" = \"Primary series\") = 2\n@triggerDate: Latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"DTP-containing vaccines\"\n*/\ndefine \"DTP dose 3 (delayed start)\":\n  \"Second DTP dose from the primary series was administered\" and\n  not \"Third DTP dose from the primary series was administered. The primary DTP series has been completed\"\n\n\n/*\n@output: DTP dose 3 (delayed start) Create\n@create: For children whose vaccination series has been interrupted, the series should be resumed without repeating previous doses. Children aged 1 year to under 7 years who have not previously been vaccinated should receive 3 doses of vaccine following a 0, 1, 6 month schedule.\n\nIf tetanus vaccination is started during adolescence or adulthood, a total of only 5 appropriately spaced doses are required to obtain lifelong protection.\n\nPregnant women and their newborn infants are protected from birth-associated tetanus if the mother received 5 doses if first vaccinated during adolescence/adulthood.\n*/\ndefine \"DTP dose 3 (delayed start) Create\":\n  if \"DTP dose 3 (delayed start)\"\n  then 'For children whose vaccination series has been interrupted, the series should be resumed without repeating previous doses. Children aged 1 year to under 7 years who have not previously been vaccinated should receive 3 doses of vaccine following a 0, 1, 6 month schedule.\nIf tetanus vaccination is started during adolescence or adulthood, a total of only 5 appropriately spaced doses are required to obtain lifelong protection.\nPregnant women and their newborn infants are protected from birth-associated tetanus if the mother received 5 doses if first vaccinated during adolescence/adulthood.' + '\nDue Date: ' + ToString(\"DTP dose 3 (delayed start) Due Date\")\n  else ''\n\n\n/*\n@dynamicValue: DTP dose 3 (delayed start) Due Date\n@pseudocode: Latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"DTP-containing vaccines\") + 6 months\n*/\ndefine \"DTP dose 3 (delayed start) Due Date\":\n  if \"DTP dose 3 (delayed start)\" then Encounter.\"Date of Latest DTP Dose\" + 6 months\n  else null\n\n\n/*\n@dynamicValue: DTP dose 3 (delayed start) Overdue\n@pseudocode: To be determined by Member States; however, there is no recommended overdue date.\n*/\ndefine \"DTP dose 3 (delayed start) Overdue\":\n  null\n\n\n/*\n@dynamicValue: DTP dose 3 (delayed start) Expiration\n@pseudocode: To be determined by Member States. However, there is no recommended expiration date and individuals remain eligible to be vaccinated.\n*/\ndefine \"DTP dose 3 (delayed start) Expiration\":\n  null\n\n  \n/*\n@complete: Third DTP dose from the primary series was administered. The primary DTP series has been completed\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"DTP-containing vaccines\" and \"Type of dose\" = \"Primary series\") = 3\n\"Completed the primary vaccination series\" = TRUE (where \"Vaccine type\" = \"DTP-containing vaccines\")\n*/\ndefine \"Third DTP dose from the primary series was administered. The primary DTP series has been completed\":\n  Encounter.\"Three DTP primary series doses were administered\"\n\n\n\n/*\n@output: Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start)\n@description: Provision of tetanus and diphtheria booster dose 1\n@trigger: The primary DTP series has been completed\n@pseudo: \"Completed the primary vaccination series\" = TRUE (where \"Vaccine type\" = \"DTP-containing vaccines\")\n@triggerDate: Latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"DTP-containing vaccines\"\n*/\ndefine \"Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start)\":\n  \"Third DTP dose from the primary series was administered. The primary DTP series has been completed\" and\n  Encounter.\"No tetanus and diphtheria booster doses were administered\"\n\n\n/*\n@output: Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start) Create\n@create: Two subsequent booster doses using tetanus toxoid with reduced diphteria toxoid (Td) or Td with acellular pertussis (TdaP) combination vaccines are needed with an interval of at least 1 year between doses.\n*/\ndefine \"Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start) Create\":\n  if \"Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start)\"\n  then 'Two subsequent booster doses using tetanus toxoid with reduced diphteria toxoid (Td) or Td with acellular pertussis (TdaP) combination vaccines are needed with an interval of at least 1 year between doses.' + '\nDue Date: ' + ToString(\"Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start) Due Date\")\n  else ''\n\n\n/*\n@dynamicValue: Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start) Due Date\n@pseudocode: Latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"DTP-containing vaccines\") + 1 year\n*/\ndefine \"Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start) Due Date\":\n  if \"Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start)\" then Encounter.\"Date of Latest DTP Dose\" + 1 year\n  else null\n\n\n/*\n@dynamicValue: Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start) Overdue\n@pseudocode: To be determined by Member States; however, there is no recommended overdue date.\n*/\ndefine \"Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start) Overdue\":\n  null\n\n\n/*\n@dynamicValue: Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start) Expiration\n@pseudocode: To be determined by Member States. However, there is no recommended expiration date and individuals remain eligible to be vaccinated.\n*/\ndefine \"Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start) Expiration\":\n  null\n\n  \n/*\n@complete: First tetanus and diphtheria booster dose was administered\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"Tetanus and diphtheria-containing vaccines\" and \"Type of dose\" = \"Booster dose\") = 1\n*/\ndefine \"First tetanus and diphtheria booster dose was administered\":\n  Encounter.\"One tetanus and diphtheria booster dose was administered\"\n\n\n\n/*\n@output: Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start)\n@description: Provision of tetanus and diphtheria booster dose 2\n@trigger: First tetanus and diphtheria booster dose was administered\n@pseudo: Count of vaccines administered (where \"Vaccine type\" = \"Tetanus and diphtheria-containing vaccines\" and \"Type of dose\" = \"Booster dose\") = 1\n@triggerDate: Latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"Tetanus and diphtheria-containing vaccines\")\n*/\ndefine \"Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start)\":\n  \"First tetanus and diphtheria booster dose was administered\" and\n  not \"Second tetanus and diphtheria booster dose was administered. Tetanus and diphtheria immunization schedule has been completed\"\n\n\n/*\n@output: Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start) Create\n@create: Two subsequent booster doses using tetanus toxoid with reduced diphteria toxoid (Td) or Td with acellular pertussis (TdaP) combination vaccines are needed with an interval of at least 1 year between doses.\n*/\ndefine \"Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start) Create\":\n  if \"Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start)\"\n  then 'Two subsequent booster doses using tetanus toxoid with reduced diphteria toxoid (Td) or Td with acellular pertussis (TdaP) combination vaccines are needed with an interval of at least 1 year between doses.' + '\nDue Date: ' + ToString(\"Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start) Due Date\")\n  else ''\n\n\n/*\n@dynamicValue: Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start) Due Date\n@pseudocode: Latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"Tetanus and diphtheria-containing vaccines\") + 1 year\n*/\ndefine \"Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start) Due Date\":\n  if \"Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start)\" then Encounter.\"Date of Latest Td Dose\" + 1 year\n  else null\n\n\n/*\n@dynamicValue: Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start) Overdue\n@pseudocode: To be determined by Member States; however, there is no recommended overdue date.\n*/\ndefine \"Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start) Overdue\":\n  null\n\n\n/*\n@dynamicValue: Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start) Expiration\n@pseudocode: To be determined by Member States. However, there is no recommended expiration date and individuals remain eligible to be vaccinated.\n*/\ndefine \"Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start) Expiration\":\n  null\n\n  \n/*\n@complete: Second tetanus and diphtheria booster dose was administered. Tetanus and diphtheria immunization schedule has been completed\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"Tetanus and diphtheria-containing vaccines\" and \"Type of dose\" = \"Booster dose\") = 2\n\"Immunization recommendation status\" = \"Complete\" (where \"Vaccine type\" = \"Tetanus and diphtheria-containing vaccines\")\n*/\ndefine \"Second tetanus and diphtheria booster dose was administered. Tetanus and diphtheria immunization schedule has been completed\":\n  Encounter.\"Two tetanus and diphtheria booster doses were administered\"\n\n\n\n/*\n@output: Pertussis-containing vaccine booster dose 1 (delayed start)\n@description: Provision of the pertussis-containing booster dose 1\n@trigger: The primary DTP series has been completed and client's age is between 1 year and 6 years\n@pseudo: \"Completed the primary vaccination series\" = TRUE (where \"Vaccine type\" = \"DTP-containing vaccines\") AND 1 year ≤ Today's date − \"Date of birth\" ≤ 6 years\n@triggerDate: Latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"DTP-containing vaccines\")\n*/\ndefine \"Pertussis-containing vaccine booster dose 1 (delayed start)\":\n  \"Third DTP dose from the primary series was administered. The primary DTP series has been completed\" and\n  Encounter.\"Client's age is between 1 year and 6 years\" and\n  \"Pertussis-containing vaccine booster dose 1 (delayed start) Expiration\" after day of Today and\n  not \"Pertussis-containing booster dose was administered. Pertussis immunization schedule has been completed\"\n\n\n/*\n@output: Pertussis-containing vaccine booster dose 1 (delayed start) Create\n@create: A booster dose is recommended for children aged 1–6 years, preferably during the second year of life (≥ 6 months after last primary dose).\n*/\ndefine \"Pertussis-containing vaccine booster dose 1 (delayed start) Create\":\n  if \"Pertussis-containing vaccine booster dose 1 (delayed start)\"\n  then 'A booster dose is recommended for children aged 1–6 years, preferably during the second year of life (≥ 6 months after last primary dose).' + '\nDue Date: ' + ToString(\"Pertussis-containing vaccine booster dose 1 (delayed start) Due Date\") + '\nOverdue: ' + ToString(\"Pertussis-containing vaccine booster dose 1 (delayed start) Overdue\") + '\nExpiration: ' + ToString(\"Pertussis-containing vaccine booster dose 1 (delayed start) Expiration\")\n  else ''\n\n\n/*\n@dynamicValue: Pertussis-containing vaccine booster dose 1 (delayed start) Due Date\n@pseudocode: Latest \"Date and time of vaccination\" (where \"Vaccine type\" = \"Pertussis-containing vaccines\") + 6 months\n*/\ndefine \"Pertussis-containing vaccine booster dose 1 (delayed start) Due Date\":\n  if \"Pertussis-containing vaccine booster dose 1 (delayed start)\" then Encounter.\"Date of Latest Pertussis Dose\" + 6 months\n  else null\n\n\n/*\n@dynamicValue: Pertussis-containing vaccine booster dose 1 (delayed start) Overdue\n@pseudocode: \"Date of birth\" + 7 years\n*/\ndefine \"Pertussis-containing vaccine booster dose 1 (delayed start) Overdue\":\n  if \"Pertussis-containing vaccine booster dose 1 (delayed start)\" then Patient.birthDate + 7 years\n  else null\n\n\n/*\n@dynamicValue: Pertussis-containing vaccine booster dose 1 (delayed start) Expiration\n@pseudocode: \"Date of birth\" + 7 years\n*/\ndefine \"Pertussis-containing vaccine booster dose 1 (delayed start) Expiration\":\n  Patient.birthDate + 7 years\n\n  \n/*\n@complete: Pertussis-containing booster dose was administered. Pertussis immunization schedule has been completed\n@pseudocode: Count of vaccines administered (where \"Vaccine type\" = \"Pertussis-containing vaccines\" and \"Type of dose\" = \"Booster dose\") = 1\n\"Immunization recommendation status\" = \"Complete\" (where \"Vaccine type\" = \"Pertussis-containing vaccines\")\n*/\ndefine \"Pertussis-containing booster dose was administered. Pertussis immunization schedule has been completed\":\n  Encounter.\"One pertussis booster dose was administered\"\n\n\n\n/*\n@test: Test expected results based on example patients\n*/\ndefine \"Test Validation\":\n  case\n    when Patient.id = 'DTP33.2' then \"DTP dose 1 (delayed start)\"\n    when Patient.id = 'DTP34.2' then \"DTP dose 2 (delayed start)\"\n    when Patient.id = 'DTP35.2' then \"DTP dose 2 (delayed start)\"\n    when Patient.id = 'DTP36.2' then \"DTP dose 3 (delayed start)\"\n    when Patient.id = 'DTP37.2' then \"DTP dose 3 (delayed start)\"\n    when Patient.id = 'DTP38.3' then \"Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start)\" and \"Pertussis-containing vaccine booster dose 1 (delayed start)\"\n    when Patient.id = 'DTP39.3' then \"Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start)\" and \"Pertussis-containing vaccine booster dose 1 (delayed start)\"\n    when Patient.id = 'DTP40.3' then \"Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start)\" and \"Pertussis-containing vaccine booster dose 1 (delayed start)\"\n    when Patient.id = 'DTP41.3' then \"Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start)\" and \"Pertussis-containing vaccine booster dose 1 (delayed start)\"\n    when Patient.id = 'DTP42.2' then \"Second tetanus and diphtheria booster dose was administered. Tetanus and diphtheria immunization schedule has been completed\" and \"Pertussis-containing vaccine booster dose 1 (delayed start)\"\n    when Patient.id = 'DTP43.4' then \"Pertussis-containing vaccine booster dose 1 (delayed start)\" and \"Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start)\"\n    when Patient.id = 'DTP44.4' then \"Pertussis-containing vaccine booster dose 1 (delayed start)\" and \"Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start)\"\n    when Patient.id = 'DTP45.3' then not \"Pertussis-containing vaccine booster dose 1 (delayed start)\" and \"Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start)\"\n    when Patient.id = 'DTP46.2' then \"Pertussis-containing booster dose was administered. Pertussis immunization schedule has been completed\" and \"Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start)\"\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/IMMZD18SDTPDelayedOrInterruptedSeriesLogic"^^xsd:anyURI ;
     fhir:l <http://smart.who.int/immunizations/Library/IMMZD18SDTPDelayedOrInterruptedSeriesLogic>
  ] ; # 
  fhir:version [ fhir:v "1.0.0"] ; # 
  fhir:name [ fhir:v "IMMZD18SDTPDelayedOrInterruptedSeriesLogic"] ; # 
  fhir:title [ fhir:v "IMMZD18SDTPDelayedOrInterruptedSeriesLogic"] ; # 
  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.DTP.Delayed or interrupted 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/IMMZD2DTDTPEncounterElements"^^xsd:anyURI ;
       fhir:l <http://smart.who.int/immunizations/Library/IMMZD2DTDTPEncounterElements>
     ]
  ] ) ; # 
  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 "DTP dose 1 (delayed start)" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "DTP dose 1 (delayed start) 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 "DTP dose 1 (delayed start) 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 "DTP dose 1 (delayed start) 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 "DTP dose 1 (delayed start) 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 "First DTP 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 "Second DTP 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 "DTP dose 2 (delayed start)" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "DTP dose 2 (delayed start) 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 "DTP dose 2 (delayed start) 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 "DTP dose 2 (delayed start) 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 "DTP dose 2 (delayed start) 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 DTP dose from the primary series was administered. The primary DTP series has been completed" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "DTP dose 3 (delayed start)" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "DTP dose 3 (delayed start) 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 "DTP dose 3 (delayed start) 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 "DTP dose 3 (delayed start) 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 "DTP dose 3 (delayed start) 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 "Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start)" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start) 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 "Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start) 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 "Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start) 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 "Tetanus and diphtheria-containing vaccine booster dose 1 (delayed start) 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 "First tetanus and diphtheria booster dose 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 "Second tetanus and diphtheria booster dose was administered. Tetanus and diphtheria immunization schedule has been completed" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start)" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start) 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 "Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start) 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 "Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start) 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 "Tetanus and diphtheria-containing vaccine booster dose 2 (delayed start) 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 "Pertussis-containing vaccine booster dose 1 (delayed start) Expiration" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "date" ]
  ] [
     fhir:name [ fhir:v "Pertussis-containing booster dose was administered. Pertussis immunization schedule has been completed" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Pertussis-containing vaccine booster dose 1 (delayed start)" ] ;
     fhir:use [ fhir:v "out" ] ;
     fhir:min [ fhir:v 0 ] ;
     fhir:max [ fhir:v "1" ] ;
     fhir:type [ fhir:v "boolean" ]
  ] [
     fhir:name [ fhir:v "Pertussis-containing vaccine booster dose 1 (delayed start) 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 "Pertussis-containing vaccine booster dose 1 (delayed start) 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 "Pertussis-containing vaccine booster dose 1 (delayed start) 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 "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 "LyoKICogTGlicmFyeTogSU1NWkQxOFNEVFBEZWxheWVkT3JJbnRlcnJ1cHRlZFNlcmllc0xvZ2ljIChJTU1aLkQxOC5TLkRUUC5EZWxheWVkIG9yIGludGVycnVwdGVkIHNjaGVkdWxlKQogKiBTY2hlZHVsZSBUYWJsZTogRGlwaHRoZXJpYeKAk3RldGFudXPigJNwZXJ0dXNzaXMgKERUUCkgdmFjY2luYXRpb24gc2NoZWR1bGUgZm9yIHRoZSBmb2xsb3dpbmcgZ3JvdXBzOiBjaGlsZHJlbiDiiaUgMSB5ZWFyIG9mIGFnZSB3aXRoIG5vIHByZXZpb3VzIGltbXVuaXphdGlvbiwgYWRvbGVzY2VudHMgYW5kIGFkdWx0cyB3aXRoIG5vIHByZXZpb3VzIGltbXVuaXphdGlvbiAoaW5jbHVkaW5nIHByZWduYW50IHdvbWVuKSBhbmQgc3VwcGxlbWVudGFyeSBpbW11bml6YXRpb24gYWN0aXZpdGllcyBpbiBoaWdoLXJpc2sgYXJlYXMsIGZvciB3b21lbiBvZiByZXByb2R1Y3RpdmUgYWdlCiAqLwpsaWJyYXJ5IElNTVpEMThTRFRQRGVsYXllZE9ySW50ZXJydXB0ZWRTZXJpZXNMb2dpYwoKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKaW5jbHVkZSBGSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgV0hPQ29tbW9uIGNhbGxlZCBXQwoKaW5jbHVkZSBJTU1aQ29tbW9uIGNhbGxlZCBDb21tb24KaW5jbHVkZSBJTU1aQ29uY2VwdHMgY2FsbGVkIENvbmNlcHRzCgppbmNsdWRlIElNTVpFbmNvdW50ZXJFbGVtZW50cyBjYWxsZWQgSUUKaW5jbHVkZSBJTU1aRDJEVERUUEVuY291bnRlckVsZW1lbnRzIGNhbGxlZCBFbmNvdW50ZXIKCnBhcmFtZXRlciBUb2RheSBEYXRlIGRlZmF1bHQgVG9kYXkoKQoKCmNvbnRleHQgUGF0aWVudAoKCi8qCkBvdXRwdXQ6IERUUCBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpCkBkZXNjcmlwdGlvbjogUHJvdmlzaW9uIG9mIERUUCBkb3NlIDEgd2l0aCBhIGRlbGF5ZWQgc3RhcnQKQHRyaWdnZXI6IE5vIERUUCBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZCBhbmQgY2xpZW50J3MgYWdlIGlzIG1vcmUgdGhhbiAxIHllYXIKQHBzZXVkbzogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJEVFAtY29udGFpbmluZyB2YWNjaW5lcyIpID0gMCBBTkQgVG9kYXkncyBkYXRlIOKIkiAiRGF0ZSBvZiBiaXJ0aCIgPiAxIHllYXIKQHRyaWdnZXJEYXRlOiBEYXRlIG9mIGJpcnRoCiovCmRlZmluZSAiRFRQIGRvc2UgMSAoZGVsYXllZCBzdGFydCkiOgogIEVuY291bnRlci4iTm8gRFRQIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkIgogIGFuZCBFbmNvdW50ZXIuIkNsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gMSB5ZWFyIgoKCi8qCkBvdXRwdXQ6IERUUCBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIENyZWF0ZQpAY3JlYXRlOiBGb3IgY2hpbGRyZW4gd2hvc2UgdmFjY2luYXRpb24gc2VyaWVzIGhhcyBiZWVuIGludGVycnVwdGVkLCB0aGUgc2VyaWVzIHNob3VsZCBiZSByZXN1bWVkIHdpdGhvdXQgcmVwZWF0aW5nIHByZXZpb3VzIGRvc2VzLiBDaGlsZHJlbiBhZ2VkIDEgeWVhciB0byB1bmRlciA3IHllYXJzIHdobyBoYXZlIG5vdCBwcmV2aW91c2x5IGJlZW4gdmFjY2luYXRlZCBzaG91bGQgcmVjZWl2ZSAzIGRvc2VzIG9mIHZhY2NpbmUgZm9sbG93aW5nIGEgMCwgMSwgNiBtb250aCBzY2hlZHVsZS4KCklmIHRldGFudXMgdmFjY2luYXRpb24gaXMgc3RhcnRlZCBkdXJpbmcgYWRvbGVzY2VuY2Ugb3IgYWR1bHRob29kLCBhIHRvdGFsIG9mIG9ubHkgNSBhcHByb3ByaWF0ZWx5IHNwYWNlZCBkb3NlcyBhcmUgcmVxdWlyZWQgdG8gb2J0YWluIGxpZmVsb25nIHByb3RlY3Rpb24uCgpQcmVnbmFudCB3b21lbiBhbmQgdGhlaXIgbmV3Ym9ybiBpbmZhbnRzIGFyZSBwcm90ZWN0ZWQgZnJvbSBiaXJ0aC1hc3NvY2lhdGVkIHRldGFudXMgaWYgdGhlIG1vdGhlciByZWNlaXZlZCA1IGRvc2VzIGlmIGZpcnN0IHZhY2NpbmF0ZWQgZHVyaW5nIGFkb2xlc2NlbmNlL2FkdWx0aG9vZC4KKi8KZGVmaW5lICJEVFAgZG9zZSAxIChkZWxheWVkIHN0YXJ0KSBDcmVhdGUiOgogIGlmICJEVFAgZG9zZSAxIChkZWxheWVkIHN0YXJ0KSIKICB0aGVuICdGb3IgY2hpbGRyZW4gd2hvc2UgdmFjY2luYXRpb24gc2VyaWVzIGhhcyBiZWVuIGludGVycnVwdGVkLCB0aGUgc2VyaWVzIHNob3VsZCBiZSByZXN1bWVkIHdpdGhvdXQgcmVwZWF0aW5nIHByZXZpb3VzIGRvc2VzLiBDaGlsZHJlbiBhZ2VkIDEgeWVhciB0byB1bmRlciA3IHllYXJzIHdobyBoYXZlIG5vdCBwcmV2aW91c2x5IGJlZW4gdmFjY2luYXRlZCBzaG91bGQgcmVjZWl2ZSAzIGRvc2VzIG9mIHZhY2NpbmUgZm9sbG93aW5nIGEgMCwgMSwgNiBtb250aCBzY2hlZHVsZS4KSWYgdGV0YW51cyB2YWNjaW5hdGlvbiBpcyBzdGFydGVkIGR1cmluZyBhZG9sZXNjZW5jZSBvciBhZHVsdGhvb2QsIGEgdG90YWwgb2Ygb25seSA1IGFwcHJvcHJpYXRlbHkgc3BhY2VkIGRvc2VzIGFyZSByZXF1aXJlZCB0byBvYnRhaW4gbGlmZWxvbmcgcHJvdGVjdGlvbi4KUHJlZ25hbnQgd29tZW4gYW5kIHRoZWlyIG5ld2Jvcm4gaW5mYW50cyBhcmUgcHJvdGVjdGVkIGZyb20gYmlydGgtYXNzb2NpYXRlZCB0ZXRhbnVzIGlmIHRoZSBtb3RoZXIgcmVjZWl2ZWQgNSBkb3NlcyBpZiBmaXJzdCB2YWNjaW5hdGVkIGR1cmluZyBhZG9sZXNjZW5jZS9hZHVsdGhvb2QuJyArICcKRHVlIERhdGU6ICcgKyBUb1N0cmluZygiRFRQIGRvc2UgMSAoZGVsYXllZCBzdGFydCkgRHVlIERhdGUiKQogIGVsc2UgJycKCgovKgpAZHluYW1pY1ZhbHVlOiBEVFAgZG9zZSAxIChkZWxheWVkIHN0YXJ0KSBEdWUgRGF0ZQpAcHNldWRvY29kZTogQXMgc29vbiBhcyBwb3NzaWJsZQoqLwpkZWZpbmUgIkRUUCBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIER1ZSBEYXRlIjoKICBpZiAiRFRQIGRvc2UgMSAoZGVsYXllZCBzdGFydCkiIHRoZW4gUGF0aWVudC5iaXJ0aERhdGUgKyAxIHllYXIKICBlbHNlIG51bGwKCgovKgpAZHluYW1pY1ZhbHVlOiBEVFAgZG9zZSAxIChkZWxheWVkIHN0YXJ0KSBPdmVyZHVlCkBwc2V1ZG9jb2RlOiBUbyBiZSBkZXRlcm1pbmVkIGJ5IE1lbWJlciBTdGF0ZXM7IGhvd2V2ZXIsIHRoZXJlIGlzIG5vIHJlY29tbWVuZGVkIG92ZXJkdWUgZGF0ZS4KKi8KZGVmaW5lICJEVFAgZG9zZSAxIChkZWxheWVkIHN0YXJ0KSBPdmVyZHVlIjoKICBudWxsCgoKLyoKQGR5bmFtaWNWYWx1ZTogRFRQIGRvc2UgMSAoZGVsYXllZCBzdGFydCkgRXhwaXJhdGlvbgpAcHNldWRvY29kZTogVG8gYmUgZGV0ZXJtaW5lZCBieSBNZW1iZXIgU3RhdGVzLiBIb3dldmVyLCB0aGVyZSBpcyBubyByZWNvbW1lbmRlZCBleHBpcmF0aW9uIGRhdGUgYW5kIGluZGl2aWR1YWxzIHJlbWFpbiBlbGlnaWJsZSB0byBiZSB2YWNjaW5hdGVkLgoqLwpkZWZpbmUgIkRUUCBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIEV4cGlyYXRpb24iOgogIG51bGwKCiAgCi8qCkBjb21wbGV0ZTogRmlyc3QgRFRQIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZApAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJEVFAtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIlByaW1hcnkgc2VyaWVzIikgPSAxCiovCmRlZmluZSAiRmlyc3QgRFRQIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZCI6CiAgRW5jb3VudGVyLiJPbmUgRFRQIHByaW1hcnkgc2VyaWVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCIKCgoKLyoKQG91dHB1dDogRFRQIGRvc2UgMiAoZGVsYXllZCBzdGFydCkKQGRlc2NyaXB0aW9uOiBQcm92aXNpb24gb2YgRFRQIGRvc2UgMiB3aXRoIGEgZGVsYXllZCBzdGFydApAdHJpZ2dlcjogRmlyc3QgRFRQIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZApAcHNldWRvOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIkRUUC1jb250YWluaW5nIHZhY2NpbmVzIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiUHJpbWFyeSBzZXJpZXMiKSA9IDEKQHRyaWdnZXJEYXRlOiBMYXRlc3QgIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJEVFAtY29udGFpbmluZyB2YWNjaW5lcyIKKi8KZGVmaW5lICJEVFAgZG9zZSAyIChkZWxheWVkIHN0YXJ0KSI6CiAgIkZpcnN0IERUUCBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQiIGFuZAogIG5vdCAiU2Vjb25kIERUUCBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQiCgoKLyoKQG91dHB1dDogRFRQIGRvc2UgMiAoZGVsYXllZCBzdGFydCkgQ3JlYXRlCkBjcmVhdGU6IEZvciBjaGlsZHJlbiB3aG9zZSB2YWNjaW5hdGlvbiBzZXJpZXMgaGFzIGJlZW4gaW50ZXJydXB0ZWQsIHRoZSBzZXJpZXMgc2hvdWxkIGJlIHJlc3VtZWQgd2l0aG91dCByZXBlYXRpbmcgcHJldmlvdXMgZG9zZXMuIENoaWxkcmVuIGFnZWQgMSB5ZWFyIHRvIHVuZGVyIDcgeWVhcnMgd2hvIGhhdmUgbm90IHByZXZpb3VzbHkgYmVlbiB2YWNjaW5hdGVkIHNob3VsZCByZWNlaXZlIDMgZG9zZXMgb2YgdmFjY2luZSBmb2xsb3dpbmcgYSAwLCAxLCA2IG1vbnRoIHNjaGVkdWxlLgoKSWYgdGV0YW51cyB2YWNjaW5hdGlvbiBpcyBzdGFydGVkIGR1cmluZyBhZG9sZXNjZW5jZSBvciBhZHVsdGhvb2QsIGEgdG90YWwgb2Ygb25seSA1IGFwcHJvcHJpYXRlbHkgc3BhY2VkIGRvc2VzIGFyZSByZXF1aXJlZCB0byBvYnRhaW4gbGlmZWxvbmcgcHJvdGVjdGlvbi4KClByZWduYW50IHdvbWVuIGFuZCB0aGVpciBuZXdib3JuIGluZmFudHMgYXJlIHByb3RlY3RlZCBmcm9tIGJpcnRoLWFzc29jaWF0ZWQgdGV0YW51cyBpZiB0aGUgbW90aGVyIHJlY2VpdmVkIDUgZG9zZXMgaWYgZmlyc3QgdmFjY2luYXRlZCBkdXJpbmcgYWRvbGVzY2VuY2UvYWR1bHRob29kLgoqLwpkZWZpbmUgIkRUUCBkb3NlIDIgKGRlbGF5ZWQgc3RhcnQpIENyZWF0ZSI6CiAgaWYgIkRUUCBkb3NlIDIgKGRlbGF5ZWQgc3RhcnQpIgogIHRoZW4gJ0ZvciBjaGlsZHJlbiB3aG9zZSB2YWNjaW5hdGlvbiBzZXJpZXMgaGFzIGJlZW4gaW50ZXJydXB0ZWQsIHRoZSBzZXJpZXMgc2hvdWxkIGJlIHJlc3VtZWQgd2l0aG91dCByZXBlYXRpbmcgcHJldmlvdXMgZG9zZXMuIENoaWxkcmVuIGFnZWQgMSB5ZWFyIHRvIHVuZGVyIDcgeWVhcnMgd2hvIGhhdmUgbm90IHByZXZpb3VzbHkgYmVlbiB2YWNjaW5hdGVkIHNob3VsZCByZWNlaXZlIDMgZG9zZXMgb2YgdmFjY2luZSBmb2xsb3dpbmcgYSAwLCAxLCA2IG1vbnRoIHNjaGVkdWxlLgpJZiB0ZXRhbnVzIHZhY2NpbmF0aW9uIGlzIHN0YXJ0ZWQgZHVyaW5nIGFkb2xlc2NlbmNlIG9yIGFkdWx0aG9vZCwgYSB0b3RhbCBvZiBvbmx5IDUgYXBwcm9wcmlhdGVseSBzcGFjZWQgZG9zZXMgYXJlIHJlcXVpcmVkIHRvIG9idGFpbiBsaWZlbG9uZyBwcm90ZWN0aW9uLgpQcmVnbmFudCB3b21lbiBhbmQgdGhlaXIgbmV3Ym9ybiBpbmZhbnRzIGFyZSBwcm90ZWN0ZWQgZnJvbSBiaXJ0aC1hc3NvY2lhdGVkIHRldGFudXMgaWYgdGhlIG1vdGhlciByZWNlaXZlZCA1IGRvc2VzIGlmIGZpcnN0IHZhY2NpbmF0ZWQgZHVyaW5nIGFkb2xlc2NlbmNlL2FkdWx0aG9vZC4nICsgJwpEdWUgRGF0ZTogJyArIFRvU3RyaW5nKCJEVFAgZG9zZSAyIChkZWxheWVkIHN0YXJ0KSBEdWUgRGF0ZSIpCiAgZWxzZSAnJwoKCi8qCkBkeW5hbWljVmFsdWU6IERUUCBkb3NlIDIgKGRlbGF5ZWQgc3RhcnQpIER1ZSBEYXRlCkBwc2V1ZG9jb2RlOiBMYXRlc3QgIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJEVFAtY29udGFpbmluZyB2YWNjaW5lcyIpICsgNCB3ZWVrcwoqLwpkZWZpbmUgIkRUUCBkb3NlIDIgKGRlbGF5ZWQgc3RhcnQpIER1ZSBEYXRlIjoKICBpZiAiRFRQIGRvc2UgMiAoZGVsYXllZCBzdGFydCkiIHRoZW4gRW5jb3VudGVyLiJEYXRlIG9mIExhdGVzdCBEVFAgRG9zZSIgKyA0IHdlZWtzCiAgZWxzZSBudWxsCgoKLyoKQGR5bmFtaWNWYWx1ZTogRFRQIGRvc2UgMiAoZGVsYXllZCBzdGFydCkgT3ZlcmR1ZQpAcHNldWRvY29kZTogVG8gYmUgZGV0ZXJtaW5lZCBieSBNZW1iZXIgU3RhdGVzOyBob3dldmVyLCB0aGVyZSBpcyBubyByZWNvbW1lbmRlZCBvdmVyZHVlIGRhdGUuCiovCmRlZmluZSAiRFRQIGRvc2UgMiAoZGVsYXllZCBzdGFydCkgT3ZlcmR1ZSI6CiAgbnVsbAoKCi8qCkBkeW5hbWljVmFsdWU6IERUUCBkb3NlIDIgKGRlbGF5ZWQgc3RhcnQpIEV4cGlyYXRpb24KQHBzZXVkb2NvZGU6IFRvIGJlIGRldGVybWluZWQgYnkgTWVtYmVyIFN0YXRlcy4gSG93ZXZlciwgdGhlcmUgaXMgbm8gcmVjb21tZW5kZWQgZXhwaXJhdGlvbiBkYXRlIGFuZCBpbmRpdmlkdWFscyByZW1haW4gZWxpZ2libGUgdG8gYmUgdmFjY2luYXRlZC4KKi8KZGVmaW5lICJEVFAgZG9zZSAyIChkZWxheWVkIHN0YXJ0KSBFeHBpcmF0aW9uIjoKICBudWxsCgogIAovKgpAY29tcGxldGU6IFNlY29uZCBEVFAgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIkRUUC1jb250YWluaW5nIHZhY2NpbmVzIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiUHJpbWFyeSBzZXJpZXMiKSA9IDIKKi8KZGVmaW5lICJTZWNvbmQgRFRQIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZCI6CiAgRW5jb3VudGVyLiJUd28gRFRQIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkIgoKCgovKgpAb3V0cHV0OiBEVFAgZG9zZSAzIChkZWxheWVkIHN0YXJ0KQpAZGVzY3JpcHRpb246IFByb3Zpc2lvbiBvZiBEVFAgZG9zZSAzIHdpdGggYSBkZWxheWVkIHN0YXJ0CkB0cmlnZ2VyOiBTZWNvbmQgRFRQIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZApAcHNldWRvOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIkRUUC1jb250YWluaW5nIHZhY2NpbmVzIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiUHJpbWFyeSBzZXJpZXMiKSA9IDIKQHRyaWdnZXJEYXRlOiBMYXRlc3QgIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJEVFAtY29udGFpbmluZyB2YWNjaW5lcyIKKi8KZGVmaW5lICJEVFAgZG9zZSAzIChkZWxheWVkIHN0YXJ0KSI6CiAgIlNlY29uZCBEVFAgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkIiBhbmQKICBub3QgIlRoaXJkIERUUCBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQuIFRoZSBwcmltYXJ5IERUUCBzZXJpZXMgaGFzIGJlZW4gY29tcGxldGVkIgoKCi8qCkBvdXRwdXQ6IERUUCBkb3NlIDMgKGRlbGF5ZWQgc3RhcnQpIENyZWF0ZQpAY3JlYXRlOiBGb3IgY2hpbGRyZW4gd2hvc2UgdmFjY2luYXRpb24gc2VyaWVzIGhhcyBiZWVuIGludGVycnVwdGVkLCB0aGUgc2VyaWVzIHNob3VsZCBiZSByZXN1bWVkIHdpdGhvdXQgcmVwZWF0aW5nIHByZXZpb3VzIGRvc2VzLiBDaGlsZHJlbiBhZ2VkIDEgeWVhciB0byB1bmRlciA3IHllYXJzIHdobyBoYXZlIG5vdCBwcmV2aW91c2x5IGJlZW4gdmFjY2luYXRlZCBzaG91bGQgcmVjZWl2ZSAzIGRvc2VzIG9mIHZhY2NpbmUgZm9sbG93aW5nIGEgMCwgMSwgNiBtb250aCBzY2hlZHVsZS4KCklmIHRldGFudXMgdmFjY2luYXRpb24gaXMgc3RhcnRlZCBkdXJpbmcgYWRvbGVzY2VuY2Ugb3IgYWR1bHRob29kLCBhIHRvdGFsIG9mIG9ubHkgNSBhcHByb3ByaWF0ZWx5IHNwYWNlZCBkb3NlcyBhcmUgcmVxdWlyZWQgdG8gb2J0YWluIGxpZmVsb25nIHByb3RlY3Rpb24uCgpQcmVnbmFudCB3b21lbiBhbmQgdGhlaXIgbmV3Ym9ybiBpbmZhbnRzIGFyZSBwcm90ZWN0ZWQgZnJvbSBiaXJ0aC1hc3NvY2lhdGVkIHRldGFudXMgaWYgdGhlIG1vdGhlciByZWNlaXZlZCA1IGRvc2VzIGlmIGZpcnN0IHZhY2NpbmF0ZWQgZHVyaW5nIGFkb2xlc2NlbmNlL2FkdWx0aG9vZC4KKi8KZGVmaW5lICJEVFAgZG9zZSAzIChkZWxheWVkIHN0YXJ0KSBDcmVhdGUiOgogIGlmICJEVFAgZG9zZSAzIChkZWxheWVkIHN0YXJ0KSIKICB0aGVuICdGb3IgY2hpbGRyZW4gd2hvc2UgdmFjY2luYXRpb24gc2VyaWVzIGhhcyBiZWVuIGludGVycnVwdGVkLCB0aGUgc2VyaWVzIHNob3VsZCBiZSByZXN1bWVkIHdpdGhvdXQgcmVwZWF0aW5nIHByZXZpb3VzIGRvc2VzLiBDaGlsZHJlbiBhZ2VkIDEgeWVhciB0byB1bmRlciA3IHllYXJzIHdobyBoYXZlIG5vdCBwcmV2aW91c2x5IGJlZW4gdmFjY2luYXRlZCBzaG91bGQgcmVjZWl2ZSAzIGRvc2VzIG9mIHZhY2NpbmUgZm9sbG93aW5nIGEgMCwgMSwgNiBtb250aCBzY2hlZHVsZS4KSWYgdGV0YW51cyB2YWNjaW5hdGlvbiBpcyBzdGFydGVkIGR1cmluZyBhZG9sZXNjZW5jZSBvciBhZHVsdGhvb2QsIGEgdG90YWwgb2Ygb25seSA1IGFwcHJvcHJpYXRlbHkgc3BhY2VkIGRvc2VzIGFyZSByZXF1aXJlZCB0byBvYnRhaW4gbGlmZWxvbmcgcHJvdGVjdGlvbi4KUHJlZ25hbnQgd29tZW4gYW5kIHRoZWlyIG5ld2Jvcm4gaW5mYW50cyBhcmUgcHJvdGVjdGVkIGZyb20gYmlydGgtYXNzb2NpYXRlZCB0ZXRhbnVzIGlmIHRoZSBtb3RoZXIgcmVjZWl2ZWQgNSBkb3NlcyBpZiBmaXJzdCB2YWNjaW5hdGVkIGR1cmluZyBhZG9sZXNjZW5jZS9hZHVsdGhvb2QuJyArICcKRHVlIERhdGU6ICcgKyBUb1N0cmluZygiRFRQIGRvc2UgMyAoZGVsYXllZCBzdGFydCkgRHVlIERhdGUiKQogIGVsc2UgJycKCgovKgpAZHluYW1pY1ZhbHVlOiBEVFAgZG9zZSAzIChkZWxheWVkIHN0YXJ0KSBEdWUgRGF0ZQpAcHNldWRvY29kZTogTGF0ZXN0ICJEYXRlIGFuZCB0aW1lIG9mIHZhY2NpbmF0aW9uIiAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiRFRQLWNvbnRhaW5pbmcgdmFjY2luZXMiKSArIDYgbW9udGhzCiovCmRlZmluZSAiRFRQIGRvc2UgMyAoZGVsYXllZCBzdGFydCkgRHVlIERhdGUiOgogIGlmICJEVFAgZG9zZSAzIChkZWxheWVkIHN0YXJ0KSIgdGhlbiBFbmNvdW50ZXIuIkRhdGUgb2YgTGF0ZXN0IERUUCBEb3NlIiArIDYgbW9udGhzCiAgZWxzZSBudWxsCgoKLyoKQGR5bmFtaWNWYWx1ZTogRFRQIGRvc2UgMyAoZGVsYXllZCBzdGFydCkgT3ZlcmR1ZQpAcHNldWRvY29kZTogVG8gYmUgZGV0ZXJtaW5lZCBieSBNZW1iZXIgU3RhdGVzOyBob3dldmVyLCB0aGVyZSBpcyBubyByZWNvbW1lbmRlZCBvdmVyZHVlIGRhdGUuCiovCmRlZmluZSAiRFRQIGRvc2UgMyAoZGVsYXllZCBzdGFydCkgT3ZlcmR1ZSI6CiAgbnVsbAoKCi8qCkBkeW5hbWljVmFsdWU6IERUUCBkb3NlIDMgKGRlbGF5ZWQgc3RhcnQpIEV4cGlyYXRpb24KQHBzZXVkb2NvZGU6IFRvIGJlIGRldGVybWluZWQgYnkgTWVtYmVyIFN0YXRlcy4gSG93ZXZlciwgdGhlcmUgaXMgbm8gcmVjb21tZW5kZWQgZXhwaXJhdGlvbiBkYXRlIGFuZCBpbmRpdmlkdWFscyByZW1haW4gZWxpZ2libGUgdG8gYmUgdmFjY2luYXRlZC4KKi8KZGVmaW5lICJEVFAgZG9zZSAzIChkZWxheWVkIHN0YXJ0KSBFeHBpcmF0aW9uIjoKICBudWxsCgogIAovKgpAY29tcGxldGU6IFRoaXJkIERUUCBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQuIFRoZSBwcmltYXJ5IERUUCBzZXJpZXMgaGFzIGJlZW4gY29tcGxldGVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIkRUUC1jb250YWluaW5nIHZhY2NpbmVzIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiUHJpbWFyeSBzZXJpZXMiKSA9IDMKIkNvbXBsZXRlZCB0aGUgcHJpbWFyeSB2YWNjaW5hdGlvbiBzZXJpZXMiID0gVFJVRSAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiRFRQLWNvbnRhaW5pbmcgdmFjY2luZXMiKQoqLwpkZWZpbmUgIlRoaXJkIERUUCBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQuIFRoZSBwcmltYXJ5IERUUCBzZXJpZXMgaGFzIGJlZW4gY29tcGxldGVkIjoKICBFbmNvdW50ZXIuIlRocmVlIERUUCBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZCIKCgoKLyoKQG91dHB1dDogVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpCkBkZXNjcmlwdGlvbjogUHJvdmlzaW9uIG9mIHRldGFudXMgYW5kIGRpcGh0aGVyaWEgYm9vc3RlciBkb3NlIDEKQHRyaWdnZXI6IFRoZSBwcmltYXJ5IERUUCBzZXJpZXMgaGFzIGJlZW4gY29tcGxldGVkCkBwc2V1ZG86ICJDb21wbGV0ZWQgdGhlIHByaW1hcnkgdmFjY2luYXRpb24gc2VyaWVzIiA9IFRSVUUgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIkRUUC1jb250YWluaW5nIHZhY2NpbmVzIikKQHRyaWdnZXJEYXRlOiBMYXRlc3QgIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJEVFAtY29udGFpbmluZyB2YWNjaW5lcyIKKi8KZGVmaW5lICJUZXRhbnVzIGFuZCBkaXBodGhlcmlhLWNvbnRhaW5pbmcgdmFjY2luZSBib29zdGVyIGRvc2UgMSAoZGVsYXllZCBzdGFydCkiOgogICJUaGlyZCBEVFAgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkLiBUaGUgcHJpbWFyeSBEVFAgc2VyaWVzIGhhcyBiZWVuIGNvbXBsZXRlZCIgYW5kCiAgRW5jb3VudGVyLiJObyB0ZXRhbnVzIGFuZCBkaXBodGhlcmlhIGJvb3N0ZXIgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQiCgoKLyoKQG91dHB1dDogVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIENyZWF0ZQpAY3JlYXRlOiBUd28gc3Vic2VxdWVudCBib29zdGVyIGRvc2VzIHVzaW5nIHRldGFudXMgdG94b2lkIHdpdGggcmVkdWNlZCBkaXBodGVyaWEgdG94b2lkIChUZCkgb3IgVGQgd2l0aCBhY2VsbHVsYXIgcGVydHVzc2lzIChUZGFQKSBjb21iaW5hdGlvbiB2YWNjaW5lcyBhcmUgbmVlZGVkIHdpdGggYW4gaW50ZXJ2YWwgb2YgYXQgbGVhc3QgMSB5ZWFyIGJldHdlZW4gZG9zZXMuCiovCmRlZmluZSAiVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIENyZWF0ZSI6CiAgaWYgIlRldGFudXMgYW5kIGRpcGh0aGVyaWEtY29udGFpbmluZyB2YWNjaW5lIGJvb3N0ZXIgZG9zZSAxIChkZWxheWVkIHN0YXJ0KSIKICB0aGVuICdUd28gc3Vic2VxdWVudCBib29zdGVyIGRvc2VzIHVzaW5nIHRldGFudXMgdG94b2lkIHdpdGggcmVkdWNlZCBkaXBodGVyaWEgdG94b2lkIChUZCkgb3IgVGQgd2l0aCBhY2VsbHVsYXIgcGVydHVzc2lzIChUZGFQKSBjb21iaW5hdGlvbiB2YWNjaW5lcyBhcmUgbmVlZGVkIHdpdGggYW4gaW50ZXJ2YWwgb2YgYXQgbGVhc3QgMSB5ZWFyIGJldHdlZW4gZG9zZXMuJyArICcKRHVlIERhdGU6ICcgKyBUb1N0cmluZygiVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIER1ZSBEYXRlIikKICBlbHNlICcnCgoKLyoKQGR5bmFtaWNWYWx1ZTogVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIER1ZSBEYXRlCkBwc2V1ZG9jb2RlOiBMYXRlc3QgIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJEVFAtY29udGFpbmluZyB2YWNjaW5lcyIpICsgMSB5ZWFyCiovCmRlZmluZSAiVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIER1ZSBEYXRlIjoKICBpZiAiVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIiB0aGVuIEVuY291bnRlci4iRGF0ZSBvZiBMYXRlc3QgRFRQIERvc2UiICsgMSB5ZWFyCiAgZWxzZSBudWxsCgoKLyoKQGR5bmFtaWNWYWx1ZTogVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIE92ZXJkdWUKQHBzZXVkb2NvZGU6IFRvIGJlIGRldGVybWluZWQgYnkgTWVtYmVyIFN0YXRlczsgaG93ZXZlciwgdGhlcmUgaXMgbm8gcmVjb21tZW5kZWQgb3ZlcmR1ZSBkYXRlLgoqLwpkZWZpbmUgIlRldGFudXMgYW5kIGRpcGh0aGVyaWEtY29udGFpbmluZyB2YWNjaW5lIGJvb3N0ZXIgZG9zZSAxIChkZWxheWVkIHN0YXJ0KSBPdmVyZHVlIjoKICBudWxsCgoKLyoKQGR5bmFtaWNWYWx1ZTogVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIEV4cGlyYXRpb24KQHBzZXVkb2NvZGU6IFRvIGJlIGRldGVybWluZWQgYnkgTWVtYmVyIFN0YXRlcy4gSG93ZXZlciwgdGhlcmUgaXMgbm8gcmVjb21tZW5kZWQgZXhwaXJhdGlvbiBkYXRlIGFuZCBpbmRpdmlkdWFscyByZW1haW4gZWxpZ2libGUgdG8gYmUgdmFjY2luYXRlZC4KKi8KZGVmaW5lICJUZXRhbnVzIGFuZCBkaXBodGhlcmlhLWNvbnRhaW5pbmcgdmFjY2luZSBib29zdGVyIGRvc2UgMSAoZGVsYXllZCBzdGFydCkgRXhwaXJhdGlvbiI6CiAgbnVsbAoKICAKLyoKQGNvbXBsZXRlOiBGaXJzdCB0ZXRhbnVzIGFuZCBkaXBodGhlcmlhIGJvb3N0ZXIgZG9zZSB3YXMgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlRldGFudXMgYW5kIGRpcGh0aGVyaWEtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIkJvb3N0ZXIgZG9zZSIpID0gMQoqLwpkZWZpbmUgIkZpcnN0IHRldGFudXMgYW5kIGRpcGh0aGVyaWEgYm9vc3RlciBkb3NlIHdhcyBhZG1pbmlzdGVyZWQiOgogIEVuY291bnRlci4iT25lIHRldGFudXMgYW5kIGRpcGh0aGVyaWEgYm9vc3RlciBkb3NlIHdhcyBhZG1pbmlzdGVyZWQiCgoKCi8qCkBvdXRwdXQ6IFRldGFudXMgYW5kIGRpcGh0aGVyaWEtY29udGFpbmluZyB2YWNjaW5lIGJvb3N0ZXIgZG9zZSAyIChkZWxheWVkIHN0YXJ0KQpAZGVzY3JpcHRpb246IFByb3Zpc2lvbiBvZiB0ZXRhbnVzIGFuZCBkaXBodGhlcmlhIGJvb3N0ZXIgZG9zZSAyCkB0cmlnZ2VyOiBGaXJzdCB0ZXRhbnVzIGFuZCBkaXBodGhlcmlhIGJvb3N0ZXIgZG9zZSB3YXMgYWRtaW5pc3RlcmVkCkBwc2V1ZG86IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmVzIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiQm9vc3RlciBkb3NlIikgPSAxCkB0cmlnZ2VyRGF0ZTogTGF0ZXN0ICJEYXRlIGFuZCB0aW1lIG9mIHZhY2NpbmF0aW9uIiAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmVzIikKKi8KZGVmaW5lICJUZXRhbnVzIGFuZCBkaXBodGhlcmlhLWNvbnRhaW5pbmcgdmFjY2luZSBib29zdGVyIGRvc2UgMiAoZGVsYXllZCBzdGFydCkiOgogICJGaXJzdCB0ZXRhbnVzIGFuZCBkaXBodGhlcmlhIGJvb3N0ZXIgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIiBhbmQKICBub3QgIlNlY29uZCB0ZXRhbnVzIGFuZCBkaXBodGhlcmlhIGJvb3N0ZXIgZG9zZSB3YXMgYWRtaW5pc3RlcmVkLiBUZXRhbnVzIGFuZCBkaXBodGhlcmlhIGltbXVuaXphdGlvbiBzY2hlZHVsZSBoYXMgYmVlbiBjb21wbGV0ZWQiCgoKLyoKQG91dHB1dDogVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDIgKGRlbGF5ZWQgc3RhcnQpIENyZWF0ZQpAY3JlYXRlOiBUd28gc3Vic2VxdWVudCBib29zdGVyIGRvc2VzIHVzaW5nIHRldGFudXMgdG94b2lkIHdpdGggcmVkdWNlZCBkaXBodGVyaWEgdG94b2lkIChUZCkgb3IgVGQgd2l0aCBhY2VsbHVsYXIgcGVydHVzc2lzIChUZGFQKSBjb21iaW5hdGlvbiB2YWNjaW5lcyBhcmUgbmVlZGVkIHdpdGggYW4gaW50ZXJ2YWwgb2YgYXQgbGVhc3QgMSB5ZWFyIGJldHdlZW4gZG9zZXMuCiovCmRlZmluZSAiVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDIgKGRlbGF5ZWQgc3RhcnQpIENyZWF0ZSI6CiAgaWYgIlRldGFudXMgYW5kIGRpcGh0aGVyaWEtY29udGFpbmluZyB2YWNjaW5lIGJvb3N0ZXIgZG9zZSAyIChkZWxheWVkIHN0YXJ0KSIKICB0aGVuICdUd28gc3Vic2VxdWVudCBib29zdGVyIGRvc2VzIHVzaW5nIHRldGFudXMgdG94b2lkIHdpdGggcmVkdWNlZCBkaXBodGVyaWEgdG94b2lkIChUZCkgb3IgVGQgd2l0aCBhY2VsbHVsYXIgcGVydHVzc2lzIChUZGFQKSBjb21iaW5hdGlvbiB2YWNjaW5lcyBhcmUgbmVlZGVkIHdpdGggYW4gaW50ZXJ2YWwgb2YgYXQgbGVhc3QgMSB5ZWFyIGJldHdlZW4gZG9zZXMuJyArICcKRHVlIERhdGU6ICcgKyBUb1N0cmluZygiVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDIgKGRlbGF5ZWQgc3RhcnQpIER1ZSBEYXRlIikKICBlbHNlICcnCgoKLyoKQGR5bmFtaWNWYWx1ZTogVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDIgKGRlbGF5ZWQgc3RhcnQpIER1ZSBEYXRlCkBwc2V1ZG9jb2RlOiBMYXRlc3QgIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJUZXRhbnVzIGFuZCBkaXBodGhlcmlhLWNvbnRhaW5pbmcgdmFjY2luZXMiKSArIDEgeWVhcgoqLwpkZWZpbmUgIlRldGFudXMgYW5kIGRpcGh0aGVyaWEtY29udGFpbmluZyB2YWNjaW5lIGJvb3N0ZXIgZG9zZSAyIChkZWxheWVkIHN0YXJ0KSBEdWUgRGF0ZSI6CiAgaWYgIlRldGFudXMgYW5kIGRpcGh0aGVyaWEtY29udGFpbmluZyB2YWNjaW5lIGJvb3N0ZXIgZG9zZSAyIChkZWxheWVkIHN0YXJ0KSIgdGhlbiBFbmNvdW50ZXIuIkRhdGUgb2YgTGF0ZXN0IFRkIERvc2UiICsgMSB5ZWFyCiAgZWxzZSBudWxsCgoKLyoKQGR5bmFtaWNWYWx1ZTogVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDIgKGRlbGF5ZWQgc3RhcnQpIE92ZXJkdWUKQHBzZXVkb2NvZGU6IFRvIGJlIGRldGVybWluZWQgYnkgTWVtYmVyIFN0YXRlczsgaG93ZXZlciwgdGhlcmUgaXMgbm8gcmVjb21tZW5kZWQgb3ZlcmR1ZSBkYXRlLgoqLwpkZWZpbmUgIlRldGFudXMgYW5kIGRpcGh0aGVyaWEtY29udGFpbmluZyB2YWNjaW5lIGJvb3N0ZXIgZG9zZSAyIChkZWxheWVkIHN0YXJ0KSBPdmVyZHVlIjoKICBudWxsCgoKLyoKQGR5bmFtaWNWYWx1ZTogVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDIgKGRlbGF5ZWQgc3RhcnQpIEV4cGlyYXRpb24KQHBzZXVkb2NvZGU6IFRvIGJlIGRldGVybWluZWQgYnkgTWVtYmVyIFN0YXRlcy4gSG93ZXZlciwgdGhlcmUgaXMgbm8gcmVjb21tZW5kZWQgZXhwaXJhdGlvbiBkYXRlIGFuZCBpbmRpdmlkdWFscyByZW1haW4gZWxpZ2libGUgdG8gYmUgdmFjY2luYXRlZC4KKi8KZGVmaW5lICJUZXRhbnVzIGFuZCBkaXBodGhlcmlhLWNvbnRhaW5pbmcgdmFjY2luZSBib29zdGVyIGRvc2UgMiAoZGVsYXllZCBzdGFydCkgRXhwaXJhdGlvbiI6CiAgbnVsbAoKICAKLyoKQGNvbXBsZXRlOiBTZWNvbmQgdGV0YW51cyBhbmQgZGlwaHRoZXJpYSBib29zdGVyIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZC4gVGV0YW51cyBhbmQgZGlwaHRoZXJpYSBpbW11bml6YXRpb24gc2NoZWR1bGUgaGFzIGJlZW4gY29tcGxldGVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlRldGFudXMgYW5kIGRpcGh0aGVyaWEtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIkJvb3N0ZXIgZG9zZSIpID0gMgoiSW1tdW5pemF0aW9uIHJlY29tbWVuZGF0aW9uIHN0YXR1cyIgPSAiQ29tcGxldGUiICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJUZXRhbnVzIGFuZCBkaXBodGhlcmlhLWNvbnRhaW5pbmcgdmFjY2luZXMiKQoqLwpkZWZpbmUgIlNlY29uZCB0ZXRhbnVzIGFuZCBkaXBodGhlcmlhIGJvb3N0ZXIgZG9zZSB3YXMgYWRtaW5pc3RlcmVkLiBUZXRhbnVzIGFuZCBkaXBodGhlcmlhIGltbXVuaXphdGlvbiBzY2hlZHVsZSBoYXMgYmVlbiBjb21wbGV0ZWQiOgogIEVuY291bnRlci4iVHdvIHRldGFudXMgYW5kIGRpcGh0aGVyaWEgYm9vc3RlciBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZCIKCgoKLyoKQG91dHB1dDogUGVydHVzc2lzLWNvbnRhaW5pbmcgdmFjY2luZSBib29zdGVyIGRvc2UgMSAoZGVsYXllZCBzdGFydCkKQGRlc2NyaXB0aW9uOiBQcm92aXNpb24gb2YgdGhlIHBlcnR1c3Npcy1jb250YWluaW5nIGJvb3N0ZXIgZG9zZSAxCkB0cmlnZ2VyOiBUaGUgcHJpbWFyeSBEVFAgc2VyaWVzIGhhcyBiZWVuIGNvbXBsZXRlZCBhbmQgY2xpZW50J3MgYWdlIGlzIGJldHdlZW4gMSB5ZWFyIGFuZCA2IHllYXJzCkBwc2V1ZG86ICJDb21wbGV0ZWQgdGhlIHByaW1hcnkgdmFjY2luYXRpb24gc2VyaWVzIiA9IFRSVUUgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIkRUUC1jb250YWluaW5nIHZhY2NpbmVzIikgQU5EIDEgeWVhciDiiaQgVG9kYXkncyBkYXRlIOKIkiAiRGF0ZSBvZiBiaXJ0aCIg4omkIDYgeWVhcnMKQHRyaWdnZXJEYXRlOiBMYXRlc3QgIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJEVFAtY29udGFpbmluZyB2YWNjaW5lcyIpCiovCmRlZmluZSAiUGVydHVzc2lzLWNvbnRhaW5pbmcgdmFjY2luZSBib29zdGVyIGRvc2UgMSAoZGVsYXllZCBzdGFydCkiOgogICJUaGlyZCBEVFAgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkLiBUaGUgcHJpbWFyeSBEVFAgc2VyaWVzIGhhcyBiZWVuIGNvbXBsZXRlZCIgYW5kCiAgRW5jb3VudGVyLiJDbGllbnQncyBhZ2UgaXMgYmV0d2VlbiAxIHllYXIgYW5kIDYgeWVhcnMiIGFuZAogICJQZXJ0dXNzaXMtY29udGFpbmluZyB2YWNjaW5lIGJvb3N0ZXIgZG9zZSAxIChkZWxheWVkIHN0YXJ0KSBFeHBpcmF0aW9uIiBhZnRlciBkYXkgb2YgVG9kYXkgYW5kCiAgbm90ICJQZXJ0dXNzaXMtY29udGFpbmluZyBib29zdGVyIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZC4gUGVydHVzc2lzIGltbXVuaXphdGlvbiBzY2hlZHVsZSBoYXMgYmVlbiBjb21wbGV0ZWQiCgoKLyoKQG91dHB1dDogUGVydHVzc2lzLWNvbnRhaW5pbmcgdmFjY2luZSBib29zdGVyIGRvc2UgMSAoZGVsYXllZCBzdGFydCkgQ3JlYXRlCkBjcmVhdGU6IEEgYm9vc3RlciBkb3NlIGlzIHJlY29tbWVuZGVkIGZvciBjaGlsZHJlbiBhZ2VkIDHigJM2IHllYXJzLCBwcmVmZXJhYmx5IGR1cmluZyB0aGUgc2Vjb25kIHllYXIgb2YgbGlmZSAo4omlIDYgbW9udGhzIGFmdGVyIGxhc3QgcHJpbWFyeSBkb3NlKS4KKi8KZGVmaW5lICJQZXJ0dXNzaXMtY29udGFpbmluZyB2YWNjaW5lIGJvb3N0ZXIgZG9zZSAxIChkZWxheWVkIHN0YXJ0KSBDcmVhdGUiOgogIGlmICJQZXJ0dXNzaXMtY29udGFpbmluZyB2YWNjaW5lIGJvb3N0ZXIgZG9zZSAxIChkZWxheWVkIHN0YXJ0KSIKICB0aGVuICdBIGJvb3N0ZXIgZG9zZSBpcyByZWNvbW1lbmRlZCBmb3IgY2hpbGRyZW4gYWdlZCAx4oCTNiB5ZWFycywgcHJlZmVyYWJseSBkdXJpbmcgdGhlIHNlY29uZCB5ZWFyIG9mIGxpZmUgKOKJpSA2IG1vbnRocyBhZnRlciBsYXN0IHByaW1hcnkgZG9zZSkuJyArICcKRHVlIERhdGU6ICcgKyBUb1N0cmluZygiUGVydHVzc2lzLWNvbnRhaW5pbmcgdmFjY2luZSBib29zdGVyIGRvc2UgMSAoZGVsYXllZCBzdGFydCkgRHVlIERhdGUiKSArICcKT3ZlcmR1ZTogJyArIFRvU3RyaW5nKCJQZXJ0dXNzaXMtY29udGFpbmluZyB2YWNjaW5lIGJvb3N0ZXIgZG9zZSAxIChkZWxheWVkIHN0YXJ0KSBPdmVyZHVlIikgKyAnCkV4cGlyYXRpb246ICcgKyBUb1N0cmluZygiUGVydHVzc2lzLWNvbnRhaW5pbmcgdmFjY2luZSBib29zdGVyIGRvc2UgMSAoZGVsYXllZCBzdGFydCkgRXhwaXJhdGlvbiIpCiAgZWxzZSAnJwoKCi8qCkBkeW5hbWljVmFsdWU6IFBlcnR1c3Npcy1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIER1ZSBEYXRlCkBwc2V1ZG9jb2RlOiBMYXRlc3QgIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJQZXJ0dXNzaXMtY29udGFpbmluZyB2YWNjaW5lcyIpICsgNiBtb250aHMKKi8KZGVmaW5lICJQZXJ0dXNzaXMtY29udGFpbmluZyB2YWNjaW5lIGJvb3N0ZXIgZG9zZSAxIChkZWxheWVkIHN0YXJ0KSBEdWUgRGF0ZSI6CiAgaWYgIlBlcnR1c3Npcy1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIiB0aGVuIEVuY291bnRlci4iRGF0ZSBvZiBMYXRlc3QgUGVydHVzc2lzIERvc2UiICsgNiBtb250aHMKICBlbHNlIG51bGwKCgovKgpAZHluYW1pY1ZhbHVlOiBQZXJ0dXNzaXMtY29udGFpbmluZyB2YWNjaW5lIGJvb3N0ZXIgZG9zZSAxIChkZWxheWVkIHN0YXJ0KSBPdmVyZHVlCkBwc2V1ZG9jb2RlOiAiRGF0ZSBvZiBiaXJ0aCIgKyA3IHllYXJzCiovCmRlZmluZSAiUGVydHVzc2lzLWNvbnRhaW5pbmcgdmFjY2luZSBib29zdGVyIGRvc2UgMSAoZGVsYXllZCBzdGFydCkgT3ZlcmR1ZSI6CiAgaWYgIlBlcnR1c3Npcy1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIiB0aGVuIFBhdGllbnQuYmlydGhEYXRlICsgNyB5ZWFycwogIGVsc2UgbnVsbAoKCi8qCkBkeW5hbWljVmFsdWU6IFBlcnR1c3Npcy1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIEV4cGlyYXRpb24KQHBzZXVkb2NvZGU6ICJEYXRlIG9mIGJpcnRoIiArIDcgeWVhcnMKKi8KZGVmaW5lICJQZXJ0dXNzaXMtY29udGFpbmluZyB2YWNjaW5lIGJvb3N0ZXIgZG9zZSAxIChkZWxheWVkIHN0YXJ0KSBFeHBpcmF0aW9uIjoKICBQYXRpZW50LmJpcnRoRGF0ZSArIDcgeWVhcnMKCiAgCi8qCkBjb21wbGV0ZTogUGVydHVzc2lzLWNvbnRhaW5pbmcgYm9vc3RlciBkb3NlIHdhcyBhZG1pbmlzdGVyZWQuIFBlcnR1c3NpcyBpbW11bml6YXRpb24gc2NoZWR1bGUgaGFzIGJlZW4gY29tcGxldGVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBlcnR1c3Npcy1jb250YWluaW5nIHZhY2NpbmVzIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiQm9vc3RlciBkb3NlIikgPSAxCiJJbW11bml6YXRpb24gcmVjb21tZW5kYXRpb24gc3RhdHVzIiA9ICJDb21wbGV0ZSIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBlcnR1c3Npcy1jb250YWluaW5nIHZhY2NpbmVzIikKKi8KZGVmaW5lICJQZXJ0dXNzaXMtY29udGFpbmluZyBib29zdGVyIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZC4gUGVydHVzc2lzIGltbXVuaXphdGlvbiBzY2hlZHVsZSBoYXMgYmVlbiBjb21wbGV0ZWQiOgogIEVuY291bnRlci4iT25lIHBlcnR1c3NpcyBib29zdGVyIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCIKCgoKLyoKQHRlc3Q6IFRlc3QgZXhwZWN0ZWQgcmVzdWx0cyBiYXNlZCBvbiBleGFtcGxlIHBhdGllbnRzCiovCmRlZmluZSAiVGVzdCBWYWxpZGF0aW9uIjoKICBjYXNlCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnRFRQMzMuMicgdGhlbiAiRFRQIGRvc2UgMSAoZGVsYXllZCBzdGFydCkiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnRFRQMzQuMicgdGhlbiAiRFRQIGRvc2UgMiAoZGVsYXllZCBzdGFydCkiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnRFRQMzUuMicgdGhlbiAiRFRQIGRvc2UgMiAoZGVsYXllZCBzdGFydCkiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnRFRQMzYuMicgdGhlbiAiRFRQIGRvc2UgMyAoZGVsYXllZCBzdGFydCkiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnRFRQMzcuMicgdGhlbiAiRFRQIGRvc2UgMyAoZGVsYXllZCBzdGFydCkiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnRFRQMzguMycgdGhlbiAiVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIiBhbmQgIlBlcnR1c3Npcy1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIgogICAgd2hlbiBQYXRpZW50LmlkID0gJ0RUUDM5LjMnIHRoZW4gIlRldGFudXMgYW5kIGRpcGh0aGVyaWEtY29udGFpbmluZyB2YWNjaW5lIGJvb3N0ZXIgZG9zZSAxIChkZWxheWVkIHN0YXJ0KSIgYW5kICJQZXJ0dXNzaXMtY29udGFpbmluZyB2YWNjaW5lIGJvb3N0ZXIgZG9zZSAxIChkZWxheWVkIHN0YXJ0KSIKICAgIHdoZW4gUGF0aWVudC5pZCA9ICdEVFA0MC4zJyB0aGVuICJUZXRhbnVzIGFuZCBkaXBodGhlcmlhLWNvbnRhaW5pbmcgdmFjY2luZSBib29zdGVyIGRvc2UgMiAoZGVsYXllZCBzdGFydCkiIGFuZCAiUGVydHVzc2lzLWNvbnRhaW5pbmcgdmFjY2luZSBib29zdGVyIGRvc2UgMSAoZGVsYXllZCBzdGFydCkiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnRFRQNDEuMycgdGhlbiAiVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDIgKGRlbGF5ZWQgc3RhcnQpIiBhbmQgIlBlcnR1c3Npcy1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIgogICAgd2hlbiBQYXRpZW50LmlkID0gJ0RUUDQyLjInIHRoZW4gIlNlY29uZCB0ZXRhbnVzIGFuZCBkaXBodGhlcmlhIGJvb3N0ZXIgZG9zZSB3YXMgYWRtaW5pc3RlcmVkLiBUZXRhbnVzIGFuZCBkaXBodGhlcmlhIGltbXVuaXphdGlvbiBzY2hlZHVsZSBoYXMgYmVlbiBjb21wbGV0ZWQiIGFuZCAiUGVydHVzc2lzLWNvbnRhaW5pbmcgdmFjY2luZSBib29zdGVyIGRvc2UgMSAoZGVsYXllZCBzdGFydCkiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnRFRQNDMuNCcgdGhlbiAiUGVydHVzc2lzLWNvbnRhaW5pbmcgdmFjY2luZSBib29zdGVyIGRvc2UgMSAoZGVsYXllZCBzdGFydCkiIGFuZCAiVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIgogICAgd2hlbiBQYXRpZW50LmlkID0gJ0RUUDQ0LjQnIHRoZW4gIlBlcnR1c3Npcy1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIiBhbmQgIlRldGFudXMgYW5kIGRpcGh0aGVyaWEtY29udGFpbmluZyB2YWNjaW5lIGJvb3N0ZXIgZG9zZSAxIChkZWxheWVkIHN0YXJ0KSIKICAgIHdoZW4gUGF0aWVudC5pZCA9ICdEVFA0NS4zJyB0aGVuIG5vdCAiUGVydHVzc2lzLWNvbnRhaW5pbmcgdmFjY2luZSBib29zdGVyIGRvc2UgMSAoZGVsYXllZCBzdGFydCkiIGFuZCAiVGV0YW51cyBhbmQgZGlwaHRoZXJpYS1jb250YWluaW5nIHZhY2NpbmUgYm9vc3RlciBkb3NlIDEgKGRlbGF5ZWQgc3RhcnQpIgogICAgd2hlbiBQYXRpZW50LmlkID0gJ0RUUDQ2LjInIHRoZW4gIlBlcnR1c3Npcy1jb250YWluaW5nIGJvb3N0ZXIgZG9zZSB3YXMgYWRtaW5pc3RlcmVkLiBQZXJ0dXNzaXMgaW1tdW5pemF0aW9uIHNjaGVkdWxlIGhhcyBiZWVuIGNvbXBsZXRlZCIgYW5kICJUZXRhbnVzIGFuZCBkaXBodGhlcmlhLWNvbnRhaW5pbmcgdmFjY2luZSBib29zdGVyIGRvc2UgMSAoZGVsYXllZCBzdGFydCkiCiAgICBlbHNlICdObyB0ZXN0IGNhc2Ugc2V0JwogIGVuZAo="^^xsd:base64Binary ]
  ] ) . # 

# -------------------------------------------------------------------------------------

