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

: IMMZD18SPolioSequentialIPVbOPVLogic - XML Representation

Draft as of 2026-03-31

Raw xml | Download


<Library xmlns="http://hl7.org/fhir">
  <id value="IMMZD18SPolioSequentialIPVbOPVLogic"/>
  <meta>
    <profile
             value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"/>
    <profile
             value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"/>
    <profile
             value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"/>
    <profile
             value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module"/>
  </meta>
  <text>
    <status value="extensions"/>
    <div xmlns="http://www.w3.org/1999/xhtml">
<div>
    <table class="grid dict">
        
        
        <tr>
            <th scope="row"><b>Title: </b></th>
            <td style="padding-left: 4px;">IMMZD18SPolioSequentialIPVbOPVLogic</td>
        </tr>
        

        
        
        <tr>
            <th scope="row"><b>Id: </b></th>
            <td style="padding-left: 4px;">IMMZD18SPolioSequentialIPVbOPVLogic</td>
        </tr>
        

        
        
        <tr>
            <th scope="row"><b>Version: </b></th>
            <td style="padding-left: 4px;">1.0.0</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Url: </b></th>
            <td style="padding-left: 4px;"><a href="Library-IMMZD18SPolioSequentialIPVbOPVLogic.html">IMMZD18SPolioSequentialIPVbOPVLogic</a></td>
        </tr>
        

        

        

        
        <tr>
            <th scope="row"><b>Status: </b></th>
            <td style="padding-left: 4px;">draft</td>
        </tr>
        

        

        
        <tr>
            <th scope="row"><b>Type: </b></th>
            <td style="padding-left: 4px;">
                
                    
                        
                        <p style="margin-bottom: 5px;">
                            <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>
                        </p>
                        
                        
                        <p style="margin-bottom: 5px;">
                            <b>code: </b> <span>logic-library</span>
                        </p>
                        
                        
                    
                
                
            </td>
        </tr>
        

        

        
        <tr>
            <th scope="row"><b>Date: </b></th>
            <td style="padding-left: 4px;">2026-03-31 13:54:17+0000</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Publisher: </b></th>
            <td style="padding-left: 4px;">WHO</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Description: </b></th>
            <td style="padding-left: 4px;"><div><p>This library defines decision support logic for the IMMZ.D18.S.Polio.Sequential IPV–bOPV schedule table in the Immunization CPG</p>
</div></td>
        </tr>
        

        

        

        

        

        

        

        

        

        

        

        
        <tr>
            <th scope="row"><b>Related Artifacts: </b></th>
            <td style="padding-left: 4px;">
                
                
                
                <p><b>Dependencies</b></p>
                <ul>
                  
                    <li><a href="Library-WHOCommon.html">WHOCommon</a></li>
                  
                    <li><a href="Library-IMMZCommon.html">IMMZCommon</a></li>
                  
                    <li><a href="Library-IMMZConcepts.html">IMMZConcepts</a></li>
                  
                    <li><a href="Library-IMMZEncounterElements.html">IMMZEncounterElements</a></li>
                  
                    <li><a href="Library-IMMZD2DTPolioEncounterElements.html">IMMZD2DTPolioEncounterElements</a></li>
                  
                </ul>
                
                
                
                
                
            </td>
        </tr>
        

        
        <tr>
          <th scope="row"><b>Parameters: </b></th>
          <td style="padding-left: 4px;">
            <table class="grid-dict">
              <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>
              
                <tr><th>Today</th><th>date</th><th>0</th><th>1</th><th>In</th></tr>
              
                <tr><th>Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>First IPV dose from the primary series was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>IPV dose 1</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>IPV dose 1 Due Date</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>IPV dose 1 Create</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>IPV dose 1 Overdue</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>IPV dose 1 Expiration</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Second IPV dose from the primary series was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>IPV dose 2</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>IPV dose 2 Due Date</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>IPV dose 2 Create</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>IPV dose 2 Overdue</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>IPV dose 2 Expiration</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>First bOPV dose from the primary series was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>bOPV dose 1</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>bOPV dose 1 Due Date</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>bOPV dose 1 Create</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>bOPV dose 1 Overdue</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>bOPV dose 1 Expiration</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Second bOPV dose from the primary series was administered. The primary series has been completed</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>bOPV dose 2</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>bOPV dose 2 Due Date</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>bOPV dose 2 Create</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>bOPV dose 2 Overdue</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>bOPV dose 2 Expiration</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Test Validation</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>
              
            </table>
          </td>
        </tr>
        

        

        
        
        <tr>
          <td colspan="2">
            <table>
              <tr><th><a id="cql-content"><b>Content: </b></a> text/cql</th></tr>
              <tr><td><pre><code class="language-cql">/*
 * Library: IMMZD18SPolioSequentialIPVbOPVLogic (IMMZ.D18.S.Polio.Sequential IPV–bOPV schedule)
 * Schedule Table: Sequential bivalent oral polio vaccine (bOPV)–inactivated polio vaccine (IPV) schedule
 */
library IMMZD18SPolioSequentialIPVbOPVLogic

using FHIR version '4.0.1'
include FHIRHelpers version '4.0.1'

include WHOCommon called WC

include IMMZCommon called Common
include IMMZConcepts called Concepts

include IMMZEncounterElements called IE
include IMMZD2DTPolioEncounterElements called Encounter

parameter Today Date default Today()


context Patient


/*
@output: IPV dose 1
@description: Provision of IPV dose 1
@trigger: Child's birth
@pseudo: 
@triggerDate: &quot;Date of birth&quot;
*/
define &quot;IPV dose 1&quot;:
  not &quot;First IPV dose from the primary series was administered&quot;


/*
@output: IPV dose 1 Create
@create: For sequential IPV– bOPV schedules, WHO recommends that the first dose of IPV be given starting from 8 weeks of age with an interval of 4–8 weeks before administration of the second IPV dose.
*/
define &quot;IPV dose 1 Create&quot;:
  if &quot;IPV dose 1&quot;
  then 'For sequential IPV– bOPV schedules, WHO recommends that the first dose of IPV be given starting from 8 weeks of age with an interval of 4–8 weeks before administration of the second IPV dose.' + '
Due Date: ' + ToString(&quot;IPV dose 1 Due Date&quot;)
  else ''


/*
@dynamicValue: IPV dose 1 Due Date
@pseudocode: &quot;Date of birth&quot; + 8 weeks
*/
define &quot;IPV dose 1 Due Date&quot;:
  if &quot;IPV dose 1&quot; then Patient.birthDate + 8 weeks
  else null


/*
@dynamicValue: IPV dose 1 Overdue
@pseudocode: To be determined by Member States; however, there is no recommended overdue date and individuals are always eligible to be vaccinated.
*/
define &quot;IPV dose 1 Overdue&quot;:
  null


/*
@dynamicValue: IPV dose 1 Expiration
@pseudocode: To be determined by Member States; however, there is no recommended overdue date and individuals are always eligible to be vaccinated.
*/
define &quot;IPV dose 1 Expiration&quot;:
  null

  
/*
@complete: First IPV dose from the primary series was administered
@pseudocode: Count of vaccines administered (where &quot;Type of poliovirus dose&quot; = &quot;IPV&quot;) = 1
*/
define &quot;First IPV dose from the primary series was administered&quot;:
  Encounter.&quot;Number of Polio IPV Primary Series Doses Administered&quot; &gt;= 1



/*
@output: IPV dose 2
@description: Provision of IPV dose 2
@trigger: First IPV dose from the primary series was administered
@pseudo: Count of vaccines administered (where &quot;Type of poliovirus dose&quot; = &quot;IPV&quot;) = 1
@triggerDate: Latest &quot;Date and time of vaccination&quot; (where &quot;Type of poliovirus dose&quot; = &quot;IPV&quot;)
*/
define &quot;IPV dose 2&quot;:
  &quot;First IPV dose from the primary series was administered&quot; and not &quot;Second IPV dose from the primary series was administered&quot;


/*
@output: IPV dose 2 Create
@create: For sequential IPV– bOPV schedules, WHO recommends that the first dose of IPV be given starting from 8 weeks of age with an interval of 4–8 weeks before administration of the second IPV dose.
*/
define &quot;IPV dose 2 Create&quot;:
  if &quot;IPV dose 2&quot;
  then 'For sequential IPV– bOPV schedules, WHO recommends that the first dose of IPV be given starting from 8 weeks of age with an interval of 4–8 weeks before administration of the second IPV dose.' + '
Due Date: ' + ToString(&quot;IPV dose 2 Due Date&quot;)
  else ''


/*
@dynamicValue: IPV dose 2 Due Date
@pseudocode: Latest &quot;Date and time of vaccination&quot; (where &quot;Type of poliovirus dose&quot; = &quot;IPV&quot;) + 4 weeks
*/
define &quot;IPV dose 2 Due Date&quot;:
  if &quot;IPV dose 2&quot; then Encounter.&quot;Date of Latest IPV Dose&quot; + 4 weeks
  else null


/*
@dynamicValue: IPV dose 2 Overdue
@pseudocode: To be determined by Member States; however, there is no recommended overdue date and individuals are always eligible to be vaccinated.
*/
define &quot;IPV dose 2 Overdue&quot;:
  null


/*
@dynamicValue: IPV dose 2 Expiration
@pseudocode: To be determined by Member States; however, there is no recommended overdue date and individuals are always eligible to be vaccinated.
*/
define &quot;IPV dose 2 Expiration&quot;:
  null

  
/*
@complete: Second IPV dose from the primary series was administered
@pseudocode: Count of vaccines administered (where &quot;Type of poliovirus dose&quot; = &quot;IPV&quot;) = 2
*/
define &quot;Second IPV dose from the primary series was administered&quot;:
  Encounter.&quot;Number of Polio IPV Primary Series Doses Administered&quot; &gt;= 2



/*
@output: bOPV dose 1
@description: Provision of bOPV dose 1
@trigger: Second IPV dose from the primary series was administered
@pseudo: Count of vaccines administered (where &quot;Type of poliovirus dose&quot; = &quot;IPV&quot;) = 2
@triggerDate: Latest &quot;Date and time of vaccination&quot; (where &quot;Type of poliovirus dose&quot; = &quot;IPV&quot;)
*/
define &quot;bOPV dose 1&quot;:
  &quot;Second IPV dose from the primary series was administered&quot; and not &quot;First bOPV dose from the primary series was administered&quot;


/*
@output: bOPV dose 1 Create
@create: Where a sequential IPV–bOPV schedule is used, the initial administration of 2 doses of IPV should be followed by ≥2 doses of bOPV separated by 4–8 weeks depending on the risk of exposure to poliovirus in early childhood.
*/
define &quot;bOPV dose 1 Create&quot;:
  if &quot;bOPV dose 1&quot;
  then 'Where a sequential IPV–bOPV schedule is used, the initial administration of 2 doses of IPV should be followed by ≥2 doses of bOPV separated by 4–8 weeks depending on the risk of exposure to poliovirus in early childhood.' + '
Due Date: ' + ToString(&quot;bOPV dose 1 Due Date&quot;)
  else ''


/*
@dynamicValue: bOPV dose 1 Due Date
@pseudocode: Latest &quot;Date and time of vaccination&quot; (where &quot;Type of poliovirus dose&quot; = &quot;IPV&quot;)
*/
define &quot;bOPV dose 1 Due Date&quot;:
  if &quot;bOPV dose 1&quot; then Encounter.&quot;Date of Latest IPV Dose&quot;
  else null


/*
@dynamicValue: bOPV dose 1 Overdue
@pseudocode: To be determined by Member States; however, there is no recommended overdue date and individuals are always eligible to be vaccinated.
*/
define &quot;bOPV dose 1 Overdue&quot;:
  null


/*
@dynamicValue: bOPV dose 1 Expiration
@pseudocode: To be determined by Member States; however, there is no recommended overdue date and individuals are always eligible to be vaccinated.
*/
define &quot;bOPV dose 1 Expiration&quot;:
  null

  
/*
@complete: First bOPV dose from the primary series was administered
@pseudocode: Count of vaccines administered (where &quot;Type of poliovirus dose&quot; = &quot;bOPV&quot;) = 1
*/
define &quot;First bOPV dose from the primary series was administered&quot;:
  Encounter.&quot;Number of Polio bOPV Primary Series Doses Administered&quot; &gt;= 1



/*
@output: bOPV dose 2
@description: Provision of bOPV dose 2
@trigger: First bOPV dose from the primary series was administered
@pseudo: Count of vaccines administered (where &quot;Type of poliovirus dose&quot; = &quot;bOPV&quot;) = 1
@triggerDate: Latest &quot;Date and time of vaccination&quot; (where &quot;Type of poliovirus dose&quot; = &quot;bOPV&quot;)
*/
define &quot;bOPV dose 2&quot;:
  &quot;First bOPV dose from the primary series was administered&quot; and not &quot;Second bOPV dose from the primary series was administered. The primary series has been completed&quot;


/*
@output: bOPV dose 2 Create
@create: Where a sequential IPV–bOPV schedule is used, the initial administration of 2 doses of IPV should be followed by ≥2 doses of bOPV separated by 4–8 weeks depending on the risk of exposure to poliovirus in early childhood.
*/
define &quot;bOPV dose 2 Create&quot;:
  if &quot;bOPV dose 2&quot;
  then 'Where a sequential IPV–bOPV schedule is used, the initial administration of 2 doses of IPV should be followed by ≥2 doses of bOPV separated by 4–8 weeks depending on the risk of exposure to poliovirus in early childhood.' + '
Due Date: ' + ToString(&quot;bOPV dose 2 Due Date&quot;)
  else ''


/*
@dynamicValue: bOPV dose 2 Due Date
@pseudocode: Latest &quot;Date and time of vaccination&quot; (where &quot;Type of poliovirus dose&quot; = &quot;bOPV&quot;) + 4 weeks
*/
define &quot;bOPV dose 2 Due Date&quot;:
  if &quot;bOPV dose 2&quot; then Encounter.&quot;Date of Latest bOPV Dose&quot; + 4 weeks
  else null


/*
@dynamicValue: bOPV dose 2 Overdue
@pseudocode: To be determined by Member States; however, there is no recommended overdue date and individuals are always eligible to be vaccinated.
*/
define &quot;bOPV dose 2 Overdue&quot;:
  null


/*
@dynamicValue: bOPV dose 2 Expiration
@pseudocode: To be determined by Member States; however, there is no recommended overdue date and individuals are always eligible to be vaccinated.
*/
define &quot;bOPV dose 2 Expiration&quot;:
  null

  
/*
@complete: Second bOPV dose from the primary series was administered. The primary series has been completed
@pseudocode: &quot;Completed the primary vaccination series&quot; = TRUE (where &quot;Vaccine type&quot; = &quot;Poliovirus-containing vaccines&quot;)
*/
define &quot;Second bOPV dose from the primary series was administered. The primary series has been completed&quot;:
  Encounter.&quot;Number of Polio bOPV Primary Series Doses Administered&quot; &gt;= 2



/*
@test: Test expected results based on example patients
*/
define &quot;Test Validation&quot;:
  case
    when Patient.id = 'Polio56.2' then &quot;IPV dose 1&quot;
    when Patient.id = 'Polio57.2' then &quot;IPV dose 1&quot;
    when Patient.id = 'Polio58.2' then &quot;IPV dose 2&quot;
    when Patient.id = 'Polio59.2' then &quot;IPV dose 2&quot;
    when Patient.id = 'Polio60.1' then &quot;bOPV dose 1&quot;
    when Patient.id = 'Polio61.2' then &quot;bOPV dose 2&quot;
    when Patient.id = 'Polio62.2' then &quot;bOPV dose 2&quot;
    when Patient.id = 'Polio63.1' then &quot;Second bOPV dose from the primary series was administered. The primary series has been completed&quot;
    else 'No test case set'
  end
</code></pre></td></tr>
            </table>
          </td>
        </tr>
        
        
        
    </table>
</div>
</div>
  </text>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability">
    <valueCode value="computable"/>
  </extension>
  <url
       value="http://smart.who.int/immunizations/Library/IMMZD18SPolioSequentialIPVbOPVLogic"/>
  <version value="1.0.0"/>
  <name value="IMMZD18SPolioSequentialIPVbOPVLogic"/>
  <title value="IMMZD18SPolioSequentialIPVbOPVLogic"/>
  <status value="draft"/>
  <experimental value="false"/>
  <type>
    <coding>
      <system value="http://terminology.hl7.org/CodeSystem/library-type"/>
      <code value="logic-library"/>
    </coding>
  </type>
  <date value="2026-03-31T13:54:17+00:00"/>
  <publisher value="WHO"/>
  <contact>
    <name value="WHO"/>
    <telecom>
      <system value="url"/>
      <value value="http://who.int"/>
    </telecom>
  </contact>
  <description
               value="This library defines decision support logic for the IMMZ.D18.S.Polio.Sequential IPV–bOPV schedule table in the Immunization CPG"/>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library WC"/>
    <resource value="http://smart.who.int/immunizations/Library/WHOCommon"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library Common"/>
    <resource value="http://smart.who.int/immunizations/Library/IMMZCommon"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library Concepts"/>
    <resource
              value="http://smart.who.int/immunizations/Library/IMMZConcepts"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library IE"/>
    <resource
              value="http://smart.who.int/immunizations/Library/IMMZEncounterElements"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library Encounter"/>
    <resource
              value="http://smart.who.int/immunizations/Library/IMMZD2DTPolioEncounterElements"/>
  </relatedArtifact>
  <parameter>
    <name value="Today"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <type value="date"/>
  </parameter>
  <parameter>
    <name value="Patient"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Patient"/>
  </parameter>
  <parameter>
    <name value="First IPV dose from the primary series was administered"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="IPV dose 1"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="IPV dose 1 Due Date"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="date"/>
  </parameter>
  <parameter>
    <name value="IPV dose 1 Create"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="string"/>
  </parameter>
  <parameter>
    <name value="IPV dose 1 Overdue"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Resource"/>
  </parameter>
  <parameter>
    <name value="IPV dose 1 Expiration"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Resource"/>
  </parameter>
  <parameter>
    <name value="Second IPV dose from the primary series was administered"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="IPV dose 2"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="IPV dose 2 Due Date"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="date"/>
  </parameter>
  <parameter>
    <name value="IPV dose 2 Create"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="string"/>
  </parameter>
  <parameter>
    <name value="IPV dose 2 Overdue"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Resource"/>
  </parameter>
  <parameter>
    <name value="IPV dose 2 Expiration"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Resource"/>
  </parameter>
  <parameter>
    <name value="First bOPV dose from the primary series was administered"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="bOPV dose 1"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="bOPV dose 1 Due Date"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="date"/>
  </parameter>
  <parameter>
    <name value="bOPV dose 1 Create"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="string"/>
  </parameter>
  <parameter>
    <name value="bOPV dose 1 Overdue"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Resource"/>
  </parameter>
  <parameter>
    <name value="bOPV dose 1 Expiration"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Resource"/>
  </parameter>
  <parameter>
    <name
          value="Second bOPV dose from the primary series was administered. The primary series has been completed"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="bOPV dose 2"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="bOPV dose 2 Due Date"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="date"/>
  </parameter>
  <parameter>
    <name value="bOPV dose 2 Create"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="string"/>
  </parameter>
  <parameter>
    <name value="bOPV dose 2 Overdue"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Resource"/>
  </parameter>
  <parameter>
    <name value="bOPV dose 2 Expiration"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Resource"/>
  </parameter>
  <parameter>
    <name value="Test Validation"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Resource"/>
  </parameter>
  <content>
    <contentType value="text/cql"/>
    <data
          value="LyoKICogTGlicmFyeTogSU1NWkQxOFNQb2xpb1NlcXVlbnRpYWxJUFZiT1BWTG9naWMgKElNTVouRDE4LlMuUG9saW8uU2VxdWVudGlhbCBJUFbigJNiT1BWIHNjaGVkdWxlKQogKiBTY2hlZHVsZSBUYWJsZTogU2VxdWVudGlhbCBiaXZhbGVudCBvcmFsIHBvbGlvIHZhY2NpbmUgKGJPUFYp4oCTaW5hY3RpdmF0ZWQgcG9saW8gdmFjY2luZSAoSVBWKSBzY2hlZHVsZQogKi8KbGlicmFyeSBJTU1aRDE4U1BvbGlvU2VxdWVudGlhbElQVmJPUFZMb2dpYwoKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKaW5jbHVkZSBGSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgV0hPQ29tbW9uIGNhbGxlZCBXQwoKaW5jbHVkZSBJTU1aQ29tbW9uIGNhbGxlZCBDb21tb24KaW5jbHVkZSBJTU1aQ29uY2VwdHMgY2FsbGVkIENvbmNlcHRzCgppbmNsdWRlIElNTVpFbmNvdW50ZXJFbGVtZW50cyBjYWxsZWQgSUUKaW5jbHVkZSBJTU1aRDJEVFBvbGlvRW5jb3VudGVyRWxlbWVudHMgY2FsbGVkIEVuY291bnRlcgoKcGFyYW1ldGVyIFRvZGF5IERhdGUgZGVmYXVsdCBUb2RheSgpCgoKY29udGV4dCBQYXRpZW50CgoKLyoKQG91dHB1dDogSVBWIGRvc2UgMQpAZGVzY3JpcHRpb246IFByb3Zpc2lvbiBvZiBJUFYgZG9zZSAxCkB0cmlnZ2VyOiBDaGlsZCdzIGJpcnRoCkBwc2V1ZG86IApAdHJpZ2dlckRhdGU6ICJEYXRlIG9mIGJpcnRoIgoqLwpkZWZpbmUgIklQViBkb3NlIDEiOgogIG5vdCAiRmlyc3QgSVBWIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZCIKCgovKgpAb3V0cHV0OiBJUFYgZG9zZSAxIENyZWF0ZQpAY3JlYXRlOiBGb3Igc2VxdWVudGlhbCBJUFbigJMgYk9QViBzY2hlZHVsZXMsIFdITyByZWNvbW1lbmRzIHRoYXQgdGhlIGZpcnN0IGRvc2Ugb2YgSVBWIGJlIGdpdmVuIHN0YXJ0aW5nIGZyb20gOCB3ZWVrcyBvZiBhZ2Ugd2l0aCBhbiBpbnRlcnZhbCBvZiA04oCTOCB3ZWVrcyBiZWZvcmUgYWRtaW5pc3RyYXRpb24gb2YgdGhlIHNlY29uZCBJUFYgZG9zZS4KKi8KZGVmaW5lICJJUFYgZG9zZSAxIENyZWF0ZSI6CiAgaWYgIklQViBkb3NlIDEiCiAgdGhlbiAnRm9yIHNlcXVlbnRpYWwgSVBW4oCTIGJPUFYgc2NoZWR1bGVzLCBXSE8gcmVjb21tZW5kcyB0aGF0IHRoZSBmaXJzdCBkb3NlIG9mIElQViBiZSBnaXZlbiBzdGFydGluZyBmcm9tIDggd2Vla3Mgb2YgYWdlIHdpdGggYW4gaW50ZXJ2YWwgb2YgNOKAkzggd2Vla3MgYmVmb3JlIGFkbWluaXN0cmF0aW9uIG9mIHRoZSBzZWNvbmQgSVBWIGRvc2UuJyArICcKRHVlIERhdGU6ICcgKyBUb1N0cmluZygiSVBWIGRvc2UgMSBEdWUgRGF0ZSIpCiAgZWxzZSAnJwoKCi8qCkBkeW5hbWljVmFsdWU6IElQViBkb3NlIDEgRHVlIERhdGUKQHBzZXVkb2NvZGU6ICJEYXRlIG9mIGJpcnRoIiArIDggd2Vla3MKKi8KZGVmaW5lICJJUFYgZG9zZSAxIER1ZSBEYXRlIjoKICBpZiAiSVBWIGRvc2UgMSIgdGhlbiBQYXRpZW50LmJpcnRoRGF0ZSArIDggd2Vla3MKICBlbHNlIG51bGwKCgovKgpAZHluYW1pY1ZhbHVlOiBJUFYgZG9zZSAxIE92ZXJkdWUKQHBzZXVkb2NvZGU6IFRvIGJlIGRldGVybWluZWQgYnkgTWVtYmVyIFN0YXRlczsgaG93ZXZlciwgdGhlcmUgaXMgbm8gcmVjb21tZW5kZWQgb3ZlcmR1ZSBkYXRlIGFuZCBpbmRpdmlkdWFscyBhcmUgYWx3YXlzIGVsaWdpYmxlIHRvIGJlIHZhY2NpbmF0ZWQuCiovCmRlZmluZSAiSVBWIGRvc2UgMSBPdmVyZHVlIjoKICBudWxsCgoKLyoKQGR5bmFtaWNWYWx1ZTogSVBWIGRvc2UgMSBFeHBpcmF0aW9uCkBwc2V1ZG9jb2RlOiBUbyBiZSBkZXRlcm1pbmVkIGJ5IE1lbWJlciBTdGF0ZXM7IGhvd2V2ZXIsIHRoZXJlIGlzIG5vIHJlY29tbWVuZGVkIG92ZXJkdWUgZGF0ZSBhbmQgaW5kaXZpZHVhbHMgYXJlIGFsd2F5cyBlbGlnaWJsZSB0byBiZSB2YWNjaW5hdGVkLgoqLwpkZWZpbmUgIklQViBkb3NlIDEgRXhwaXJhdGlvbiI6CiAgbnVsbAoKICAKLyoKQGNvbXBsZXRlOiBGaXJzdCBJUFYgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJUeXBlIG9mIHBvbGlvdmlydXMgZG9zZSIgPSAiSVBWIikgPSAxCiovCmRlZmluZSAiRmlyc3QgSVBWIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZCI6CiAgRW5jb3VudGVyLiJOdW1iZXIgb2YgUG9saW8gSVBWIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCIgPj0gMQoKCgovKgpAb3V0cHV0OiBJUFYgZG9zZSAyCkBkZXNjcmlwdGlvbjogUHJvdmlzaW9uIG9mIElQViBkb3NlIDIKQHRyaWdnZXI6IEZpcnN0IElQViBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQKQHBzZXVkbzogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVHlwZSBvZiBwb2xpb3ZpcnVzIGRvc2UiID0gIklQViIpID0gMQpAdHJpZ2dlckRhdGU6IExhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJUeXBlIG9mIHBvbGlvdmlydXMgZG9zZSIgPSAiSVBWIikKKi8KZGVmaW5lICJJUFYgZG9zZSAyIjoKICAiRmlyc3QgSVBWIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZCIgYW5kIG5vdCAiU2Vjb25kIElQViBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQiCgoKLyoKQG91dHB1dDogSVBWIGRvc2UgMiBDcmVhdGUKQGNyZWF0ZTogRm9yIHNlcXVlbnRpYWwgSVBW4oCTIGJPUFYgc2NoZWR1bGVzLCBXSE8gcmVjb21tZW5kcyB0aGF0IHRoZSBmaXJzdCBkb3NlIG9mIElQViBiZSBnaXZlbiBzdGFydGluZyBmcm9tIDggd2Vla3Mgb2YgYWdlIHdpdGggYW4gaW50ZXJ2YWwgb2YgNOKAkzggd2Vla3MgYmVmb3JlIGFkbWluaXN0cmF0aW9uIG9mIHRoZSBzZWNvbmQgSVBWIGRvc2UuCiovCmRlZmluZSAiSVBWIGRvc2UgMiBDcmVhdGUiOgogIGlmICJJUFYgZG9zZSAyIgogIHRoZW4gJ0ZvciBzZXF1ZW50aWFsIElQVuKAkyBiT1BWIHNjaGVkdWxlcywgV0hPIHJlY29tbWVuZHMgdGhhdCB0aGUgZmlyc3QgZG9zZSBvZiBJUFYgYmUgZ2l2ZW4gc3RhcnRpbmcgZnJvbSA4IHdlZWtzIG9mIGFnZSB3aXRoIGFuIGludGVydmFsIG9mIDTigJM4IHdlZWtzIGJlZm9yZSBhZG1pbmlzdHJhdGlvbiBvZiB0aGUgc2Vjb25kIElQViBkb3NlLicgKyAnCkR1ZSBEYXRlOiAnICsgVG9TdHJpbmcoIklQViBkb3NlIDIgRHVlIERhdGUiKQogIGVsc2UgJycKCgovKgpAZHluYW1pY1ZhbHVlOiBJUFYgZG9zZSAyIER1ZSBEYXRlCkBwc2V1ZG9jb2RlOiBMYXRlc3QgIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVHlwZSBvZiBwb2xpb3ZpcnVzIGRvc2UiID0gIklQViIpICsgNCB3ZWVrcwoqLwpkZWZpbmUgIklQViBkb3NlIDIgRHVlIERhdGUiOgogIGlmICJJUFYgZG9zZSAyIiB0aGVuIEVuY291bnRlci4iRGF0ZSBvZiBMYXRlc3QgSVBWIERvc2UiICsgNCB3ZWVrcwogIGVsc2UgbnVsbAoKCi8qCkBkeW5hbWljVmFsdWU6IElQViBkb3NlIDIgT3ZlcmR1ZQpAcHNldWRvY29kZTogVG8gYmUgZGV0ZXJtaW5lZCBieSBNZW1iZXIgU3RhdGVzOyBob3dldmVyLCB0aGVyZSBpcyBubyByZWNvbW1lbmRlZCBvdmVyZHVlIGRhdGUgYW5kIGluZGl2aWR1YWxzIGFyZSBhbHdheXMgZWxpZ2libGUgdG8gYmUgdmFjY2luYXRlZC4KKi8KZGVmaW5lICJJUFYgZG9zZSAyIE92ZXJkdWUiOgogIG51bGwKCgovKgpAZHluYW1pY1ZhbHVlOiBJUFYgZG9zZSAyIEV4cGlyYXRpb24KQHBzZXVkb2NvZGU6IFRvIGJlIGRldGVybWluZWQgYnkgTWVtYmVyIFN0YXRlczsgaG93ZXZlciwgdGhlcmUgaXMgbm8gcmVjb21tZW5kZWQgb3ZlcmR1ZSBkYXRlIGFuZCBpbmRpdmlkdWFscyBhcmUgYWx3YXlzIGVsaWdpYmxlIHRvIGJlIHZhY2NpbmF0ZWQuCiovCmRlZmluZSAiSVBWIGRvc2UgMiBFeHBpcmF0aW9uIjoKICBudWxsCgogIAovKgpAY29tcGxldGU6IFNlY29uZCBJUFYgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJUeXBlIG9mIHBvbGlvdmlydXMgZG9zZSIgPSAiSVBWIikgPSAyCiovCmRlZmluZSAiU2Vjb25kIElQViBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQiOgogIEVuY291bnRlci4iTnVtYmVyIG9mIFBvbGlvIElQViBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID49IDIKCgoKLyoKQG91dHB1dDogYk9QViBkb3NlIDEKQGRlc2NyaXB0aW9uOiBQcm92aXNpb24gb2YgYk9QViBkb3NlIDEKQHRyaWdnZXI6IFNlY29uZCBJUFYgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkCkBwc2V1ZG86IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlR5cGUgb2YgcG9saW92aXJ1cyBkb3NlIiA9ICJJUFYiKSA9IDIKQHRyaWdnZXJEYXRlOiBMYXRlc3QgIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVHlwZSBvZiBwb2xpb3ZpcnVzIGRvc2UiID0gIklQViIpCiovCmRlZmluZSAiYk9QViBkb3NlIDEiOgogICJTZWNvbmQgSVBWIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZCIgYW5kIG5vdCAiRmlyc3QgYk9QViBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQiCgoKLyoKQG91dHB1dDogYk9QViBkb3NlIDEgQ3JlYXRlCkBjcmVhdGU6IFdoZXJlIGEgc2VxdWVudGlhbCBJUFbigJNiT1BWIHNjaGVkdWxlIGlzIHVzZWQsIHRoZSBpbml0aWFsIGFkbWluaXN0cmF0aW9uIG9mIDIgZG9zZXMgb2YgSVBWIHNob3VsZCBiZSBmb2xsb3dlZCBieSDiiaUyIGRvc2VzIG9mIGJPUFYgc2VwYXJhdGVkIGJ5IDTigJM4IHdlZWtzIGRlcGVuZGluZyBvbiB0aGUgcmlzayBvZiBleHBvc3VyZSB0byBwb2xpb3ZpcnVzIGluIGVhcmx5IGNoaWxkaG9vZC4KKi8KZGVmaW5lICJiT1BWIGRvc2UgMSBDcmVhdGUiOgogIGlmICJiT1BWIGRvc2UgMSIKICB0aGVuICdXaGVyZSBhIHNlcXVlbnRpYWwgSVBW4oCTYk9QViBzY2hlZHVsZSBpcyB1c2VkLCB0aGUgaW5pdGlhbCBhZG1pbmlzdHJhdGlvbiBvZiAyIGRvc2VzIG9mIElQViBzaG91bGQgYmUgZm9sbG93ZWQgYnkg4omlMiBkb3NlcyBvZiBiT1BWIHNlcGFyYXRlZCBieSA04oCTOCB3ZWVrcyBkZXBlbmRpbmcgb24gdGhlIHJpc2sgb2YgZXhwb3N1cmUgdG8gcG9saW92aXJ1cyBpbiBlYXJseSBjaGlsZGhvb2QuJyArICcKRHVlIERhdGU6ICcgKyBUb1N0cmluZygiYk9QViBkb3NlIDEgRHVlIERhdGUiKQogIGVsc2UgJycKCgovKgpAZHluYW1pY1ZhbHVlOiBiT1BWIGRvc2UgMSBEdWUgRGF0ZQpAcHNldWRvY29kZTogTGF0ZXN0ICJEYXRlIGFuZCB0aW1lIG9mIHZhY2NpbmF0aW9uIiAod2hlcmUgIlR5cGUgb2YgcG9saW92aXJ1cyBkb3NlIiA9ICJJUFYiKQoqLwpkZWZpbmUgImJPUFYgZG9zZSAxIER1ZSBEYXRlIjoKICBpZiAiYk9QViBkb3NlIDEiIHRoZW4gRW5jb3VudGVyLiJEYXRlIG9mIExhdGVzdCBJUFYgRG9zZSIKICBlbHNlIG51bGwKCgovKgpAZHluYW1pY1ZhbHVlOiBiT1BWIGRvc2UgMSBPdmVyZHVlCkBwc2V1ZG9jb2RlOiBUbyBiZSBkZXRlcm1pbmVkIGJ5IE1lbWJlciBTdGF0ZXM7IGhvd2V2ZXIsIHRoZXJlIGlzIG5vIHJlY29tbWVuZGVkIG92ZXJkdWUgZGF0ZSBhbmQgaW5kaXZpZHVhbHMgYXJlIGFsd2F5cyBlbGlnaWJsZSB0byBiZSB2YWNjaW5hdGVkLgoqLwpkZWZpbmUgImJPUFYgZG9zZSAxIE92ZXJkdWUiOgogIG51bGwKCgovKgpAZHluYW1pY1ZhbHVlOiBiT1BWIGRvc2UgMSBFeHBpcmF0aW9uCkBwc2V1ZG9jb2RlOiBUbyBiZSBkZXRlcm1pbmVkIGJ5IE1lbWJlciBTdGF0ZXM7IGhvd2V2ZXIsIHRoZXJlIGlzIG5vIHJlY29tbWVuZGVkIG92ZXJkdWUgZGF0ZSBhbmQgaW5kaXZpZHVhbHMgYXJlIGFsd2F5cyBlbGlnaWJsZSB0byBiZSB2YWNjaW5hdGVkLgoqLwpkZWZpbmUgImJPUFYgZG9zZSAxIEV4cGlyYXRpb24iOgogIG51bGwKCiAgCi8qCkBjb21wbGV0ZTogRmlyc3QgYk9QViBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlR5cGUgb2YgcG9saW92aXJ1cyBkb3NlIiA9ICJiT1BWIikgPSAxCiovCmRlZmluZSAiRmlyc3QgYk9QViBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQiOgogIEVuY291bnRlci4iTnVtYmVyIG9mIFBvbGlvIGJPUFYgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIiA+PSAxCgoKCi8qCkBvdXRwdXQ6IGJPUFYgZG9zZSAyCkBkZXNjcmlwdGlvbjogUHJvdmlzaW9uIG9mIGJPUFYgZG9zZSAyCkB0cmlnZ2VyOiBGaXJzdCBiT1BWIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZApAcHNldWRvOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJUeXBlIG9mIHBvbGlvdmlydXMgZG9zZSIgPSAiYk9QViIpID0gMQpAdHJpZ2dlckRhdGU6IExhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJUeXBlIG9mIHBvbGlvdmlydXMgZG9zZSIgPSAiYk9QViIpCiovCmRlZmluZSAiYk9QViBkb3NlIDIiOgogICJGaXJzdCBiT1BWIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZCIgYW5kIG5vdCAiU2Vjb25kIGJPUFYgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkLiBUaGUgcHJpbWFyeSBzZXJpZXMgaGFzIGJlZW4gY29tcGxldGVkIgoKCi8qCkBvdXRwdXQ6IGJPUFYgZG9zZSAyIENyZWF0ZQpAY3JlYXRlOiBXaGVyZSBhIHNlcXVlbnRpYWwgSVBW4oCTYk9QViBzY2hlZHVsZSBpcyB1c2VkLCB0aGUgaW5pdGlhbCBhZG1pbmlzdHJhdGlvbiBvZiAyIGRvc2VzIG9mIElQViBzaG91bGQgYmUgZm9sbG93ZWQgYnkg4omlMiBkb3NlcyBvZiBiT1BWIHNlcGFyYXRlZCBieSA04oCTOCB3ZWVrcyBkZXBlbmRpbmcgb24gdGhlIHJpc2sgb2YgZXhwb3N1cmUgdG8gcG9saW92aXJ1cyBpbiBlYXJseSBjaGlsZGhvb2QuCiovCmRlZmluZSAiYk9QViBkb3NlIDIgQ3JlYXRlIjoKICBpZiAiYk9QViBkb3NlIDIiCiAgdGhlbiAnV2hlcmUgYSBzZXF1ZW50aWFsIElQVuKAk2JPUFYgc2NoZWR1bGUgaXMgdXNlZCwgdGhlIGluaXRpYWwgYWRtaW5pc3RyYXRpb24gb2YgMiBkb3NlcyBvZiBJUFYgc2hvdWxkIGJlIGZvbGxvd2VkIGJ5IOKJpTIgZG9zZXMgb2YgYk9QViBzZXBhcmF0ZWQgYnkgNOKAkzggd2Vla3MgZGVwZW5kaW5nIG9uIHRoZSByaXNrIG9mIGV4cG9zdXJlIHRvIHBvbGlvdmlydXMgaW4gZWFybHkgY2hpbGRob29kLicgKyAnCkR1ZSBEYXRlOiAnICsgVG9TdHJpbmcoImJPUFYgZG9zZSAyIER1ZSBEYXRlIikKICBlbHNlICcnCgoKLyoKQGR5bmFtaWNWYWx1ZTogYk9QViBkb3NlIDIgRHVlIERhdGUKQHBzZXVkb2NvZGU6IExhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJUeXBlIG9mIHBvbGlvdmlydXMgZG9zZSIgPSAiYk9QViIpICsgNCB3ZWVrcwoqLwpkZWZpbmUgImJPUFYgZG9zZSAyIER1ZSBEYXRlIjoKICBpZiAiYk9QViBkb3NlIDIiIHRoZW4gRW5jb3VudGVyLiJEYXRlIG9mIExhdGVzdCBiT1BWIERvc2UiICsgNCB3ZWVrcwogIGVsc2UgbnVsbAoKCi8qCkBkeW5hbWljVmFsdWU6IGJPUFYgZG9zZSAyIE92ZXJkdWUKQHBzZXVkb2NvZGU6IFRvIGJlIGRldGVybWluZWQgYnkgTWVtYmVyIFN0YXRlczsgaG93ZXZlciwgdGhlcmUgaXMgbm8gcmVjb21tZW5kZWQgb3ZlcmR1ZSBkYXRlIGFuZCBpbmRpdmlkdWFscyBhcmUgYWx3YXlzIGVsaWdpYmxlIHRvIGJlIHZhY2NpbmF0ZWQuCiovCmRlZmluZSAiYk9QViBkb3NlIDIgT3ZlcmR1ZSI6CiAgbnVsbAoKCi8qCkBkeW5hbWljVmFsdWU6IGJPUFYgZG9zZSAyIEV4cGlyYXRpb24KQHBzZXVkb2NvZGU6IFRvIGJlIGRldGVybWluZWQgYnkgTWVtYmVyIFN0YXRlczsgaG93ZXZlciwgdGhlcmUgaXMgbm8gcmVjb21tZW5kZWQgb3ZlcmR1ZSBkYXRlIGFuZCBpbmRpdmlkdWFscyBhcmUgYWx3YXlzIGVsaWdpYmxlIHRvIGJlIHZhY2NpbmF0ZWQuCiovCmRlZmluZSAiYk9QViBkb3NlIDIgRXhwaXJhdGlvbiI6CiAgbnVsbAoKICAKLyoKQGNvbXBsZXRlOiBTZWNvbmQgYk9QViBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQuIFRoZSBwcmltYXJ5IHNlcmllcyBoYXMgYmVlbiBjb21wbGV0ZWQKQHBzZXVkb2NvZGU6ICJDb21wbGV0ZWQgdGhlIHByaW1hcnkgdmFjY2luYXRpb24gc2VyaWVzIiA9IFRSVUUgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlBvbGlvdmlydXMtY29udGFpbmluZyB2YWNjaW5lcyIpCiovCmRlZmluZSAiU2Vjb25kIGJPUFYgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkLiBUaGUgcHJpbWFyeSBzZXJpZXMgaGFzIGJlZW4gY29tcGxldGVkIjoKICBFbmNvdW50ZXIuIk51bWJlciBvZiBQb2xpbyBiT1BWIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCIgPj0gMgoKCgovKgpAdGVzdDogVGVzdCBleHBlY3RlZCByZXN1bHRzIGJhc2VkIG9uIGV4YW1wbGUgcGF0aWVudHMKKi8KZGVmaW5lICJUZXN0IFZhbGlkYXRpb24iOgogIGNhc2UKICAgIHdoZW4gUGF0aWVudC5pZCA9ICdQb2xpbzU2LjInIHRoZW4gIklQViBkb3NlIDEiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnUG9saW81Ny4yJyB0aGVuICJJUFYgZG9zZSAxIgogICAgd2hlbiBQYXRpZW50LmlkID0gJ1BvbGlvNTguMicgdGhlbiAiSVBWIGRvc2UgMiIKICAgIHdoZW4gUGF0aWVudC5pZCA9ICdQb2xpbzU5LjInIHRoZW4gIklQViBkb3NlIDIiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnUG9saW82MC4xJyB0aGVuICJiT1BWIGRvc2UgMSIKICAgIHdoZW4gUGF0aWVudC5pZCA9ICdQb2xpbzYxLjInIHRoZW4gImJPUFYgZG9zZSAyIgogICAgd2hlbiBQYXRpZW50LmlkID0gJ1BvbGlvNjIuMicgdGhlbiAiYk9QViBkb3NlIDIiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnUG9saW82My4xJyB0aGVuICJTZWNvbmQgYk9QViBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQuIFRoZSBwcmltYXJ5IHNlcmllcyBoYXMgYmVlbiBjb21wbGV0ZWQiCiAgICBlbHNlICdObyB0ZXN0IGNhc2Ugc2V0JwogIGVuZAo="/>
  </content>
</Library>