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
| Draft as of 2026-03-31 |
{
"resourceType" : "Library",
"id" : "IMMZIND35Logic",
"meta" : {
"profile" : [
🔗 "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"🔗 ,
"http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"🔗 ,
"http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"🔗 ,
"http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module"
]
},
"text" : {
"status" : "extensions",
"div" : "<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;\">IMMZIND35Logic</td>\n </tr>\n \n\n \n \n <tr>\n <th scope=\"row\"><b>Id: </b></th>\n <td style=\"padding-left: 4px;\">IMMZIND35Logic</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-IMMZIND35Logic.html\">IMMZIND35Logic</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 population criteria logic for the IMMZ.IND.35 indicator 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><code>http://smart.who.int/immunizations/Library/IMMZIndicatorElements</code></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>Measurement Period</th><th>Period</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>Initial Population</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Denominator</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Numerator</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Stratification 1</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Stratification 2</th><th>Coding</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Stratification 3</th><th>Coding</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Stratification 4</th><th>Coding</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: IMMZ.IND.35 Logic\n * Drop-out rate of pentavalent vaccine 1st dose to pentavalent vaccine 3rd dose\n * The percentage in the target population who received a 1st dose of pentavalent vaccine but have not received the 3rd dose of pentavalent vaccine (i.e. are past due for the 3rd dose of pentavalent vaccine) during the reporting period\n * \n * Numerator: Number of clients who received a 1st dose of pentavalent vaccine during the reporting period who should have received (via scheduling logic) the 3rd dose of pentavalent vaccine during the reporting period but did not receive it\n * Numerator Computation: (COUNT of clients with an immunization event WHERE "Vaccine type" = "Pentavalent vaccines" for the 1st dose in the primary series AND "Date and time of vaccination" is during the reporting period) - (COUNT of clients with an immunization event WHERE "Vaccine type" = "Pentavalent vaccines" for the 3rd dose in the primary series AND "Date and time of vaccination" is during the reporting period)\n * Denominator: Number of clients in the target population who received dose 1 of pentavalent vaccine during the reporting period\n * Denominator Computation: Count clients with an immunization event WHERE "Vaccine type" = "pentavalent vaccines" for the 1st dose in the primary series AND "Date and time of vaccination" is during the reporting period\n * \n * Disaggregation\n * - Administrative area\n * - Sex\n * - Age in years\n * - Age group (depending on schedule)\n *\n * References: WHO Immunization facility analysis guide (5)\n * \n * Annotations: –\n */\nlibrary IMMZIND35Logic\n\nusing FHIR version '4.0.1'\n\ninclude FHIRHelpers version '4.0.1'\n\ninclude WHOCommon called WC\n\ninclude IMMZCommon called Common\ninclude IMMZConcepts called Concepts\ninclude IMMZIndicatorElements called Elements\n\n\nparameter "Measurement Period" Interval<Date> default Interval[@2025-01-01, @2025-05-31]\n\ncontext Patient\n\n/*\n * As defined by Member State\n */\ndefine "Initial Population":\n true\n\n/*\n@denominator: Number of clients in the target population who received dose 1 of pentavalent vaccine during the reporting period\n@pseudocode: Count clients with an immunization event WHERE "Vaccine type" = "pentavalent vaccines" for the 1st dose in the primary series AND "Date and time of vaccination" is during the reporting period\n@note: Updated to match the definition to only include those who are due for the 3rd dose.\n If client ever received a 2nd dose the due date is 4 weeks after that.\n If client has only received the 1st dose, the due date is 8 weeks after that.\n Only include in the denominator those who are due during the measurement period.\n*/\ndefine "Denominator":\n if exists (Elements."Pentavalent Doses Administered to Patient".getDose('2'))\n then exists( (Elements."Pentavalent Doses Administered to Patient".getDose('2')) I\n where (start of I.occurrence.toInterval() + 4 weeks) during "Measurement Period" )\n else exists( (Elements."Pentavalent Doses Administered to Patient".getDose('1')) I\n where (start of I.occurrence.toInterval() + 8 weeks) during "Measurement Period" )\n\n\n/*\n@numerator: Number of clients who received a 1st dose of pentavalent vaccine during the reporting period who should have received (via scheduling logic) the 3rd dose of pentavalent vaccine during the reporting period but did not receive it\n@pseudocode: (COUNT of clients with an immunization event WHERE "Vaccine type" = "Pentavalent vaccines" for the 1st dose in the primary series AND "Date and time of vaccination" is during the reporting period) - (COUNT of clients with an immunization event WHERE "Vaccine type" = "Pentavalent vaccines" for the 3rd dose in the primary series AND "Date and time of vaccination" is during the reporting period)\n@note: Only include those from the denominator that did not receive a 3rd dose during the measurement period.\n Those where the 3rd dose due date is during the period but have not received the 3rd dose.\n*/\ndefine "Numerator":\n "Denominator"\n and not exists( Elements."Pentavalent Doses Administered to Patient During Measurement Period".getDose('3') )\n\n/*\n@disaggregation: Administrative area\n Sex\n Age in years\n Age group (depending on schedule)\n*/\ndefine "Stratification 1":\n\tElements."By Geographic Region Stratifier"\n\ndefine "Stratification 2":\n\tElements."By Administrative Gender Stratifier"\n\ndefine "Stratification 3":\n\tElements."Age Stratifier"\n\ndefine "Stratification 4":\n\tElements."Infant By Age Stratifier"\n</code></pre></td></tr>\n </table>\n </td>\n </tr>\n \n \n \n </table>\n</div>\n</div>"
},
"extension" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability",
"valueCode" : "computable"
}
],
"url" : "http://smart.who.int/immunizations/Library/IMMZIND35Logic",
"version" : "1.0.0",
"name" : "IMMZIND35Logic",
"title" : "IMMZIND35Logic",
"status" : "draft",
"experimental" : false,
"type" : {
"coding" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/library-type",
"code" : "logic-library"
}
]
},
"date" : "2026-03-31T13:54:17+00:00",
"publisher" : "WHO",
"contact" : [
{
"name" : "WHO",
"telecom" : [
{
"system" : "url",
"value" : "http://who.int"
}
]
}
],
"description" : "This library defines population criteria logic for the IMMZ.IND.35 indicator in the Immunization CPG",
"relatedArtifact" : [
{
"type" : "depends-on",
"display" : "Library WC",
"resource" : "http://smart.who.int/immunizations/Library/WHOCommon"
},
{
"type" : "depends-on",
"display" : "Library Common",
"resource" : "http://smart.who.int/immunizations/Library/IMMZCommon"
},
{
"type" : "depends-on",
"display" : "Library Concepts",
"resource" : "http://smart.who.int/immunizations/Library/IMMZConcepts"
},
{
"type" : "depends-on",
"display" : "Library Elements",
"resource" : "http://smart.who.int/immunizations/Library/IMMZIndicatorElements"
}
],
"parameter" : [
{
"name" : "Measurement Period",
"use" : "in",
"min" : 0,
"max" : "1",
"type" : "Period"
},
{
"name" : "Patient",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "Patient"
},
{
"name" : "Initial Population",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Denominator",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Numerator",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Stratification 1",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "string"
},
{
"name" : "Stratification 2",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "Coding"
},
{
"name" : "Stratification 3",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "Coding"
},
{
"name" : "Stratification 4",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "Coding"
}
],
"content" : [
{
"contentType" : "text/cql",
"data" : "LyoKICogTGlicmFyeTogSU1NWi5JTkQuMzUgTG9naWMKICogRHJvcC1vdXQgcmF0ZSBvZiBwZW50YXZhbGVudCB2YWNjaW5lIDFzdCBkb3NlIHRvIHBlbnRhdmFsZW50IHZhY2NpbmUgM3JkIGRvc2UKICogVGhlIHBlcmNlbnRhZ2UgaW4gdGhlIHRhcmdldCBwb3B1bGF0aW9uIHdobyByZWNlaXZlZCBhIDFzdCBkb3NlIG9mIHBlbnRhdmFsZW50IHZhY2NpbmUgYnV0IGhhdmUgbm90IHJlY2VpdmVkIHRoZSAzcmQgZG9zZSBvZiBwZW50YXZhbGVudCB2YWNjaW5lIChpLmUuIGFyZSBwYXN0IGR1ZSBmb3IgdGhlIDNyZCBkb3NlIG9mIHBlbnRhdmFsZW50IHZhY2NpbmUpIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKiAKICogTnVtZXJhdG9yOiBOdW1iZXIgb2YgY2xpZW50cyB3aG8gcmVjZWl2ZWQgYSAxc3QgZG9zZSBvZiBwZW50YXZhbGVudCB2YWNjaW5lIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZCB3aG8gc2hvdWxkIGhhdmUgcmVjZWl2ZWQgKHZpYSBzY2hlZHVsaW5nIGxvZ2ljKSB0aGUgM3JkIGRvc2Ugb2YgcGVudGF2YWxlbnQgdmFjY2luZSBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QgYnV0IGRpZCBub3QgcmVjZWl2ZSBpdAogKiBOdW1lcmF0b3IgQ29tcHV0YXRpb246IChDT1VOVCBvZiBjbGllbnRzIHdpdGggYW4gaW1tdW5pemF0aW9uIGV2ZW50IFdIRVJFICJWYWNjaW5lIHR5cGUiID0gIlBlbnRhdmFsZW50IHZhY2NpbmVzIiBmb3IgdGhlIDFzdCBkb3NlIGluIHRoZSBwcmltYXJ5IHNlcmllcyBBTkQgIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iIGlzIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZCkgLSAoQ09VTlQgb2YgY2xpZW50cyB3aXRoIGFuIGltbXVuaXphdGlvbiBldmVudCBXSEVSRSAiVmFjY2luZSB0eXBlIiA9ICJQZW50YXZhbGVudCB2YWNjaW5lcyIgZm9yIHRoZSAzcmQgZG9zZSBpbiB0aGUgcHJpbWFyeSBzZXJpZXMgQU5EICJEYXRlIGFuZCB0aW1lIG9mIHZhY2NpbmF0aW9uIiBpcyBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QpCiAqIERlbm9taW5hdG9yOiBOdW1iZXIgb2YgY2xpZW50cyBpbiB0aGUgdGFyZ2V0IHBvcHVsYXRpb24gd2hvIHJlY2VpdmVkIGRvc2UgMSBvZiBwZW50YXZhbGVudCB2YWNjaW5lIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKiBEZW5vbWluYXRvciBDb21wdXRhdGlvbjogQ291bnQgY2xpZW50cyB3aXRoIGFuIGltbXVuaXphdGlvbiBldmVudCBXSEVSRSAiVmFjY2luZSB0eXBlIiA9ICJwZW50YXZhbGVudCB2YWNjaW5lcyIgZm9yIHRoZSAxc3QgZG9zZSBpbiB0aGUgcHJpbWFyeSBzZXJpZXMgQU5EICJEYXRlIGFuZCB0aW1lIG9mIHZhY2NpbmF0aW9uIiBpcyBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QKICogCiAqIERpc2FnZ3JlZ2F0aW9uCiAqICAtIEFkbWluaXN0cmF0aXZlIGFyZWEKICogIC0gU2V4CiAqICAtIEFnZSBpbiB5ZWFycwogKiAgLSBBZ2UgZ3JvdXAgKGRlcGVuZGluZyBvbiBzY2hlZHVsZSkKICoKICogUmVmZXJlbmNlczogV0hPIEltbXVuaXphdGlvbiBmYWNpbGl0eSBhbmFseXNpcyBndWlkZSAoNSkKICogCiAqIEFubm90YXRpb25zOiDigJMKICovCmxpYnJhcnkgSU1NWklORDM1TG9naWMKCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJwoKaW5jbHVkZSBXSE9Db21tb24gY2FsbGVkIFdDCgppbmNsdWRlIElNTVpDb21tb24gY2FsbGVkIENvbW1vbgppbmNsdWRlIElNTVpDb25jZXB0cyBjYWxsZWQgQ29uY2VwdHMKaW5jbHVkZSBJTU1aSW5kaWNhdG9yRWxlbWVudHMgY2FsbGVkIEVsZW1lbnRzCgoKcGFyYW1ldGVyICJNZWFzdXJlbWVudCBQZXJpb2QiIEludGVydmFsPERhdGU+IGRlZmF1bHQgSW50ZXJ2YWxbQDIwMjUtMDEtMDEsIEAyMDI1LTA1LTMxXQoKY29udGV4dCBQYXRpZW50CgovKgogKiBBcyBkZWZpbmVkIGJ5IE1lbWJlciBTdGF0ZQogKi8KZGVmaW5lICJJbml0aWFsIFBvcHVsYXRpb24iOgogIHRydWUKCi8qCkBkZW5vbWluYXRvcjogTnVtYmVyIG9mIGNsaWVudHMgaW4gdGhlIHRhcmdldCBwb3B1bGF0aW9uIHdobyByZWNlaXZlZCBkb3NlIDEgb2YgcGVudGF2YWxlbnQgdmFjY2luZSBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QKQHBzZXVkb2NvZGU6IENvdW50IGNsaWVudHMgd2l0aCBhbiBpbW11bml6YXRpb24gZXZlbnQgV0hFUkUgIlZhY2NpbmUgdHlwZSIgPSAicGVudGF2YWxlbnQgdmFjY2luZXMiIGZvciB0aGUgMXN0IGRvc2UgaW4gdGhlIHByaW1hcnkgc2VyaWVzIEFORCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgaXMgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kCkBub3RlOiBVcGRhdGVkIHRvIG1hdGNoIHRoZSBkZWZpbml0aW9uIHRvIG9ubHkgaW5jbHVkZSB0aG9zZSB3aG8gYXJlIGR1ZSBmb3IgdGhlIDNyZCBkb3NlLgogICAgICAgSWYgY2xpZW50IGV2ZXIgcmVjZWl2ZWQgYSAybmQgZG9zZSB0aGUgZHVlIGRhdGUgaXMgNCB3ZWVrcyBhZnRlciB0aGF0LgogICAgICAgSWYgY2xpZW50IGhhcyBvbmx5IHJlY2VpdmVkIHRoZSAxc3QgZG9zZSwgdGhlIGR1ZSBkYXRlIGlzIDggd2Vla3MgYWZ0ZXIgdGhhdC4KICAgICAgIE9ubHkgaW5jbHVkZSBpbiB0aGUgZGVub21pbmF0b3IgdGhvc2Ugd2hvIGFyZSBkdWUgZHVyaW5nIHRoZSBtZWFzdXJlbWVudCBwZXJpb2QuCiovCmRlZmluZSAiRGVub21pbmF0b3IiOgogIGlmIGV4aXN0cyAoRWxlbWVudHMuIlBlbnRhdmFsZW50IERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50Ii5nZXREb3NlKCcyJykpCiAgdGhlbiBleGlzdHMoIChFbGVtZW50cy4iUGVudGF2YWxlbnQgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiLmdldERvc2UoJzInKSkgSQogICAgICAgIHdoZXJlIChzdGFydCBvZiBJLm9jY3VycmVuY2UudG9JbnRlcnZhbCgpICsgNCB3ZWVrcykgZHVyaW5nICJNZWFzdXJlbWVudCBQZXJpb2QiICkKICBlbHNlIGV4aXN0cyggKEVsZW1lbnRzLiJQZW50YXZhbGVudCBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIuZ2V0RG9zZSgnMScpKSBJCiAgICAgICAgd2hlcmUgKHN0YXJ0IG9mIEkub2NjdXJyZW5jZS50b0ludGVydmFsKCkgKyA4IHdlZWtzKSBkdXJpbmcgIk1lYXN1cmVtZW50IFBlcmlvZCIgKQoKCi8qCkBudW1lcmF0b3I6IE51bWJlciBvZiBjbGllbnRzIHdobyByZWNlaXZlZCBhIDFzdCBkb3NlIG9mIHBlbnRhdmFsZW50IHZhY2NpbmUgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kIHdobyBzaG91bGQgaGF2ZSByZWNlaXZlZCAodmlhIHNjaGVkdWxpbmcgbG9naWMpIHRoZSAzcmQgZG9zZSBvZiBwZW50YXZhbGVudCB2YWNjaW5lIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZCBidXQgZGlkIG5vdCByZWNlaXZlIGl0CkBwc2V1ZG9jb2RlOiAoQ09VTlQgb2YgY2xpZW50cyB3aXRoIGFuIGltbXVuaXphdGlvbiBldmVudCBXSEVSRSAiVmFjY2luZSB0eXBlIiA9ICJQZW50YXZhbGVudCB2YWNjaW5lcyIgZm9yIHRoZSAxc3QgZG9zZSBpbiB0aGUgcHJpbWFyeSBzZXJpZXMgQU5EICJEYXRlIGFuZCB0aW1lIG9mIHZhY2NpbmF0aW9uIiBpcyBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QpIC0gKENPVU5UIG9mIGNsaWVudHMgd2l0aCBhbiBpbW11bml6YXRpb24gZXZlbnQgV0hFUkUgIlZhY2NpbmUgdHlwZSIgPSAiUGVudGF2YWxlbnQgdmFjY2luZXMiIGZvciB0aGUgM3JkIGRvc2UgaW4gdGhlIHByaW1hcnkgc2VyaWVzIEFORCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgaXMgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kKQpAbm90ZTogT25seSBpbmNsdWRlIHRob3NlIGZyb20gdGhlIGRlbm9taW5hdG9yIHRoYXQgZGlkIG5vdCByZWNlaXZlIGEgM3JkIGRvc2UgZHVyaW5nIHRoZSBtZWFzdXJlbWVudCBwZXJpb2QuCiAgICAgICAgVGhvc2Ugd2hlcmUgdGhlIDNyZCBkb3NlIGR1ZSBkYXRlIGlzIGR1cmluZyB0aGUgcGVyaW9kIGJ1dCBoYXZlIG5vdCByZWNlaXZlZCB0aGUgM3JkIGRvc2UuCiovCmRlZmluZSAiTnVtZXJhdG9yIjoKICAiRGVub21pbmF0b3IiCiAgYW5kIG5vdCBleGlzdHMoIEVsZW1lbnRzLiJQZW50YXZhbGVudCBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCBEdXJpbmcgTWVhc3VyZW1lbnQgUGVyaW9kIi5nZXREb3NlKCczJykgKQoKLyoKQGRpc2FnZ3JlZ2F0aW9uOiBBZG1pbmlzdHJhdGl2ZSBhcmVhCiAgICAgICAgICAgICAgICAgU2V4CiAgICAgICAgICAgICAgICAgQWdlIGluIHllYXJzCiAgICAgICAgICAgICAgICAgQWdlIGdyb3VwIChkZXBlbmRpbmcgb24gc2NoZWR1bGUpCiovCmRlZmluZSAiU3RyYXRpZmljYXRpb24gMSI6CglFbGVtZW50cy4iQnkgR2VvZ3JhcGhpYyBSZWdpb24gU3RyYXRpZmllciIKCmRlZmluZSAiU3RyYXRpZmljYXRpb24gMiI6CglFbGVtZW50cy4iQnkgQWRtaW5pc3RyYXRpdmUgR2VuZGVyIFN0cmF0aWZpZXIiCgpkZWZpbmUgIlN0cmF0aWZpY2F0aW9uIDMiOgoJRWxlbWVudHMuIkFnZSBTdHJhdGlmaWVyIgoKZGVmaW5lICJTdHJhdGlmaWNhdGlvbiA0IjoKCUVsZW1lbnRzLiJJbmZhbnQgQnkgQWdlIFN0cmF0aWZpZXIiCg=="
}
]
}