<?xml version="1.0" encoding="UTF-8"?>

<Library xmlns="http://hl7.org/fhir">
  <id value="IMMZD18SMumpsLogic"/>
  <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;">IMMZD18SMumpsLogic</td>
        </tr>
        

        
        
        <tr>
            <th scope="row"><b>Id: </b></th>
            <td style="padding-left: 4px;">IMMZD18SMumpsLogic</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-IMMZD18SMumpsLogic.html">IMMZD18SMumpsLogic</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.Mumps 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-IMMZD2DTMumpsEncounterElements.html">IMMZD2DTMumpsEncounterElements</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 mumps dose from the primary series was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Mumps dose 1</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Mumps dose 1 Due Date</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Mumps dose 1 Overdue</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Mumps dose 1 Create</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Mumps dose 1 Expiration</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Second mumps 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>Mumps dose 2</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Mumps dose 2 Due Date</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Mumps dose 2 Overdue</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Mumps dose 2 Create</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Mumps 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: IMMZD18SMumpsLogic (IMMZ.D18.S.Mumps schedule)
 * Schedule Table: 2-dose schedule
 */
library IMMZD18SMumpsLogic

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 IMMZD2DTMumpsEncounterElements called Encounter

parameter Today Date default Today()


context Patient


/*
@output: Mumps dose 1
@description: Provision of the mumps dose 1
@trigger: Child's birth
@pseudo: 
@triggerDate: &quot;Date of birth&quot;
*/
define &quot;Mumps dose 1&quot;:
  Encounter.&quot;No mumps primary series doses were administered&quot;
  and not &quot;First mumps dose from the primary series was administered&quot;


/*
@output: Mumps dose 1 Create
@create: The first dose of the mumps-containing vaccine (monovalent or MMR [measles, mumps and rubella]) should be given at 12–18 months of age.
*/
define &quot;Mumps dose 1 Create&quot;:
  if &quot;Mumps dose 1&quot;
  then 'The first dose of the mumps-containing vaccine (monovalent or MMR [measles, mumps and rubella]) should be given at 12–18 months of age.' + '
Due Date: ' + ToString(&quot;Mumps dose 1 Due Date&quot;) + '
Overdue: ' + ToString(&quot;Mumps dose 1 Overdue&quot;)
  else ''


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


/*
@dynamicValue: Mumps dose 1 Overdue
@pseudocode: &quot;Date of birth&quot; + 18 months
*/
define &quot;Mumps dose 1 Overdue&quot;:
  if &quot;Mumps dose 1&quot; then Patient.birthDate + 18 months
  else null


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

  
/*
@complete: First mumps dose from the primary series was administered
@pseudocode: Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Mumps-containing vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 1
*/
define &quot;First mumps dose from the primary series was administered&quot;:
  Encounter.&quot;One mumps primary series dose was administered&quot;



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


/*
@output: Mumps dose 2 Create
@create: The age of administration of the second dose may range from the second year of life to age at school entry (about 6 years of age). The minimum interval between the first and the second doses is 1 month.
*/
define &quot;Mumps dose 2 Create&quot;:
  if &quot;Mumps dose 2&quot;
  then 'The age of administration of the second dose may range from the second year of life to age at school entry (about 6 years of age). The minimum interval between the first and the second doses is 1 month.' + '
Due Date: ' + ToString(&quot;Mumps dose 2 Due Date&quot;) + '
Overdue: ' + ToString(&quot;Mumps dose 2 Overdue&quot;)
  else ''


/*
@dynamicValue: Mumps dose 2 Due Date
@pseudocode: &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Mumps-containing vaccines&quot;) + 1 month
*/
define &quot;Mumps dose 2 Due Date&quot;:
  if &quot;Mumps dose 2&quot; then Encounter.&quot;Date of Latest Mumps Dose&quot; + 1 month
  else null


/*
@dynamicValue: Mumps dose 2 Overdue
@pseudocode: &quot;Date of birth&quot; + 6 years
*/
define &quot;Mumps dose 2 Overdue&quot;:
  if &quot;Mumps dose 2&quot; then Patient.birthDate + 6 years
  else null


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

  
/*
@complete: Second mumps 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;Mumps-containing vaccines&quot;)&quot;
*/
define &quot;Second mumps dose from the primary series was administered. The primary series has been completed&quot;:
  Encounter.&quot;Two mumps primary series doses were administered&quot;



/*
@test: Test expected results based on example patients
*/
define &quot;Test Validation&quot;:
  case
    when Patient.id = 'Mumps08.1' then &quot;Mumps dose 1&quot;
    when Patient.id = 'Mumps09.3' then &quot;Mumps dose 1&quot;
    when Patient.id = 'Mumps10.3' then &quot;Mumps dose 1&quot;
    when Patient.id = 'Mumps11.2' then &quot;Mumps dose 2&quot;
    when Patient.id = 'Mumps12.3' then &quot;Mumps dose 2&quot;
    when Patient.id = 'Mumps13.3' then &quot;Mumps dose 2&quot;
    when Patient.id = 'Mumps14.1' then &quot;Second mumps 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/IMMZD18SMumpsLogic"/>
  <version value="1.0.0"/>
  <name value="IMMZD18SMumpsLogic"/>
  <title value="IMMZD18SMumpsLogic"/>
  <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.Mumps 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/IMMZD2DTMumpsEncounterElements"/>
  </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 mumps dose from the primary series was administered"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Mumps dose 1"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Mumps dose 1 Due Date"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="date"/>
  </parameter>
  <parameter>
    <name value="Mumps dose 1 Overdue"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="date"/>
  </parameter>
  <parameter>
    <name value="Mumps dose 1 Create"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="string"/>
  </parameter>
  <parameter>
    <name value="Mumps dose 1 Expiration"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Resource"/>
  </parameter>
  <parameter>
    <name value="Second mumps 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="Mumps dose 2"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Mumps dose 2 Due Date"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="date"/>
  </parameter>
  <parameter>
    <name value="Mumps dose 2 Overdue"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="date"/>
  </parameter>
  <parameter>
    <name value="Mumps dose 2 Create"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="string"/>
  </parameter>
  <parameter>
    <name value="Mumps 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="LyoKICogTGlicmFyeTogSU1NWkQxOFNNdW1wc0xvZ2ljIChJTU1aLkQxOC5TLk11bXBzIHNjaGVkdWxlKQogKiBTY2hlZHVsZSBUYWJsZTogMi1kb3NlIHNjaGVkdWxlCiAqLwpsaWJyYXJ5IElNTVpEMThTTXVtcHNMb2dpYwoKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKaW5jbHVkZSBGSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgV0hPQ29tbW9uIGNhbGxlZCBXQwoKaW5jbHVkZSBJTU1aQ29tbW9uIGNhbGxlZCBDb21tb24KaW5jbHVkZSBJTU1aQ29uY2VwdHMgY2FsbGVkIENvbmNlcHRzCgppbmNsdWRlIElNTVpFbmNvdW50ZXJFbGVtZW50cyBjYWxsZWQgSUUKaW5jbHVkZSBJTU1aRDJEVE11bXBzRW5jb3VudGVyRWxlbWVudHMgY2FsbGVkIEVuY291bnRlcgoKcGFyYW1ldGVyIFRvZGF5IERhdGUgZGVmYXVsdCBUb2RheSgpCgoKY29udGV4dCBQYXRpZW50CgoKLyoKQG91dHB1dDogTXVtcHMgZG9zZSAxCkBkZXNjcmlwdGlvbjogUHJvdmlzaW9uIG9mIHRoZSBtdW1wcyBkb3NlIDEKQHRyaWdnZXI6IENoaWxkJ3MgYmlydGgKQHBzZXVkbzogCkB0cmlnZ2VyRGF0ZTogIkRhdGUgb2YgYmlydGgiCiovCmRlZmluZSAiTXVtcHMgZG9zZSAxIjoKICBFbmNvdW50ZXIuIk5vIG11bXBzIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkIgogIGFuZCBub3QgIkZpcnN0IG11bXBzIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZCIKCgovKgpAb3V0cHV0OiBNdW1wcyBkb3NlIDEgQ3JlYXRlCkBjcmVhdGU6IFRoZSBmaXJzdCBkb3NlIG9mIHRoZSBtdW1wcy1jb250YWluaW5nIHZhY2NpbmUgKG1vbm92YWxlbnQgb3IgTU1SIFttZWFzbGVzLCBtdW1wcyBhbmQgcnViZWxsYV0pIHNob3VsZCBiZSBnaXZlbiBhdCAxMuKAkzE4IG1vbnRocyBvZiBhZ2UuCiovCmRlZmluZSAiTXVtcHMgZG9zZSAxIENyZWF0ZSI6CiAgaWYgIk11bXBzIGRvc2UgMSIKICB0aGVuICdUaGUgZmlyc3QgZG9zZSBvZiB0aGUgbXVtcHMtY29udGFpbmluZyB2YWNjaW5lIChtb25vdmFsZW50IG9yIE1NUiBbbWVhc2xlcywgbXVtcHMgYW5kIHJ1YmVsbGFdKSBzaG91bGQgYmUgZ2l2ZW4gYXQgMTLigJMxOCBtb250aHMgb2YgYWdlLicgKyAnCkR1ZSBEYXRlOiAnICsgVG9TdHJpbmcoIk11bXBzIGRvc2UgMSBEdWUgRGF0ZSIpICsgJwpPdmVyZHVlOiAnICsgVG9TdHJpbmcoIk11bXBzIGRvc2UgMSBPdmVyZHVlIikKICBlbHNlICcnCgoKLyoKQGR5bmFtaWNWYWx1ZTogTXVtcHMgZG9zZSAxIER1ZSBEYXRlCkBwc2V1ZG9jb2RlOiAiRGF0ZSBvZiBiaXJ0aCIgKyAxMiBtb250aHMKKi8KZGVmaW5lICJNdW1wcyBkb3NlIDEgRHVlIERhdGUiOgogIGlmICJNdW1wcyBkb3NlIDEiIHRoZW4gUGF0aWVudC5iaXJ0aERhdGUgKyAxMiBtb250aHMKICBlbHNlIG51bGwKCgovKgpAZHluYW1pY1ZhbHVlOiBNdW1wcyBkb3NlIDEgT3ZlcmR1ZQpAcHNldWRvY29kZTogIkRhdGUgb2YgYmlydGgiICsgMTggbW9udGhzCiovCmRlZmluZSAiTXVtcHMgZG9zZSAxIE92ZXJkdWUiOgogIGlmICJNdW1wcyBkb3NlIDEiIHRoZW4gUGF0aWVudC5iaXJ0aERhdGUgKyAxOCBtb250aHMKICBlbHNlIG51bGwKCgovKgpAZHluYW1pY1ZhbHVlOiBNdW1wcyBkb3NlIDEgRXhwaXJhdGlvbgpAcHNldWRvY29kZTogVG8gYmUgZGV0ZXJtaW5lZCBieSBNZW1iZXIgU3RhdGVzOyBob3dldmVyLCB0aGVyZSBpcyBubyByZWNvbW1lbmRlZCBleHBpcmF0aW9uIGRhdGUgYW5kIGluZGl2aWR1YWxzIGFyZSBhbHdheXMgZWxpZ2libGUgdG8gYmUgdmFjY2luYXRlZC4KKi8KZGVmaW5lICJNdW1wcyBkb3NlIDEgRXhwaXJhdGlvbiI6CiAgbnVsbAoKICAKLyoKQGNvbXBsZXRlOiBGaXJzdCBtdW1wcyBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiTXVtcHMtY29udGFpbmluZyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIlByaW1hcnkgc2VyaWVzIikgPSAxCiovCmRlZmluZSAiRmlyc3QgbXVtcHMgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkIjoKICBFbmNvdW50ZXIuIk9uZSBtdW1wcyBwcmltYXJ5IHNlcmllcyBkb3NlIHdhcyBhZG1pbmlzdGVyZWQiCgoKCi8qCkBvdXRwdXQ6IE11bXBzIGRvc2UgMgpAZGVzY3JpcHRpb246IFByb3Zpc2lvbiBvZiB0aGUgbXVtcHMgZG9zZSAyCkB0cmlnZ2VyOiBGaXJzdCBtdW1wcyBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQKQHBzZXVkbzogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJNdW1wcy1jb250YWluaW5nIHZhY2NpbmVzIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiUHJpbWFyeSBzZXJpZXMiKSA9IDEKQHRyaWdnZXJEYXRlOiAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIk11bXBzLWNvbnRhaW5pbmcgdmFjY2luZXMiKQoqLwpkZWZpbmUgIk11bXBzIGRvc2UgMiI6CiAgIkZpcnN0IG11bXBzIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZCIKICBhbmQgbm90ICJTZWNvbmQgbXVtcHMgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkLiBUaGUgcHJpbWFyeSBzZXJpZXMgaGFzIGJlZW4gY29tcGxldGVkIgoKCi8qCkBvdXRwdXQ6IE11bXBzIGRvc2UgMiBDcmVhdGUKQGNyZWF0ZTogVGhlIGFnZSBvZiBhZG1pbmlzdHJhdGlvbiBvZiB0aGUgc2Vjb25kIGRvc2UgbWF5IHJhbmdlIGZyb20gdGhlIHNlY29uZCB5ZWFyIG9mIGxpZmUgdG8gYWdlIGF0IHNjaG9vbCBlbnRyeSAoYWJvdXQgNiB5ZWFycyBvZiBhZ2UpLiBUaGUgbWluaW11bSBpbnRlcnZhbCBiZXR3ZWVuIHRoZSBmaXJzdCBhbmQgdGhlIHNlY29uZCBkb3NlcyBpcyAxIG1vbnRoLgoqLwpkZWZpbmUgIk11bXBzIGRvc2UgMiBDcmVhdGUiOgogIGlmICJNdW1wcyBkb3NlIDIiCiAgdGhlbiAnVGhlIGFnZSBvZiBhZG1pbmlzdHJhdGlvbiBvZiB0aGUgc2Vjb25kIGRvc2UgbWF5IHJhbmdlIGZyb20gdGhlIHNlY29uZCB5ZWFyIG9mIGxpZmUgdG8gYWdlIGF0IHNjaG9vbCBlbnRyeSAoYWJvdXQgNiB5ZWFycyBvZiBhZ2UpLiBUaGUgbWluaW11bSBpbnRlcnZhbCBiZXR3ZWVuIHRoZSBmaXJzdCBhbmQgdGhlIHNlY29uZCBkb3NlcyBpcyAxIG1vbnRoLicgKyAnCkR1ZSBEYXRlOiAnICsgVG9TdHJpbmcoIk11bXBzIGRvc2UgMiBEdWUgRGF0ZSIpICsgJwpPdmVyZHVlOiAnICsgVG9TdHJpbmcoIk11bXBzIGRvc2UgMiBPdmVyZHVlIikKICBlbHNlICcnCgoKLyoKQGR5bmFtaWNWYWx1ZTogTXVtcHMgZG9zZSAyIER1ZSBEYXRlCkBwc2V1ZG9jb2RlOiAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIk11bXBzLWNvbnRhaW5pbmcgdmFjY2luZXMiKSArIDEgbW9udGgKKi8KZGVmaW5lICJNdW1wcyBkb3NlIDIgRHVlIERhdGUiOgogIGlmICJNdW1wcyBkb3NlIDIiIHRoZW4gRW5jb3VudGVyLiJEYXRlIG9mIExhdGVzdCBNdW1wcyBEb3NlIiArIDEgbW9udGgKICBlbHNlIG51bGwKCgovKgpAZHluYW1pY1ZhbHVlOiBNdW1wcyBkb3NlIDIgT3ZlcmR1ZQpAcHNldWRvY29kZTogIkRhdGUgb2YgYmlydGgiICsgNiB5ZWFycwoqLwpkZWZpbmUgIk11bXBzIGRvc2UgMiBPdmVyZHVlIjoKICBpZiAiTXVtcHMgZG9zZSAyIiB0aGVuIFBhdGllbnQuYmlydGhEYXRlICsgNiB5ZWFycwogIGVsc2UgbnVsbAoKCi8qCkBkeW5hbWljVmFsdWU6IE11bXBzIGRvc2UgMiBFeHBpcmF0aW9uCkBwc2V1ZG9jb2RlOiBUbyBiZSBkZXRlcm1pbmVkIGJ5IE1lbWJlciBTdGF0ZXM7IGhvd2V2ZXIsIHRoZXJlIGlzIG5vIHJlY29tbWVuZGVkIGV4cGlyYXRpb24gZGF0ZSBhbmQgaW5kaXZpZHVhbHMgYXJlIGFsd2F5cyBlbGlnaWJsZSB0byBiZSB2YWNjaW5hdGVkLgoqLwpkZWZpbmUgIk11bXBzIGRvc2UgMiBFeHBpcmF0aW9uIjoKICBudWxsCgogIAovKgpAY29tcGxldGU6IFNlY29uZCBtdW1wcyBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQuIFRoZSBwcmltYXJ5IHNlcmllcyBoYXMgYmVlbiBjb21wbGV0ZWQKQHBzZXVkb2NvZGU6ICJDb21wbGV0ZWQgdGhlIHByaW1hcnkgdmFjY2luYXRpb24gc2VyaWVzIiA9IFRSVUUgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIk11bXBzLWNvbnRhaW5pbmcgdmFjY2luZXMiKSIKKi8KZGVmaW5lICJTZWNvbmQgbXVtcHMgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkLiBUaGUgcHJpbWFyeSBzZXJpZXMgaGFzIGJlZW4gY29tcGxldGVkIjoKICBFbmNvdW50ZXIuIlR3byBtdW1wcyBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZCIKCgoKLyoKQHRlc3Q6IFRlc3QgZXhwZWN0ZWQgcmVzdWx0cyBiYXNlZCBvbiBleGFtcGxlIHBhdGllbnRzCiovCmRlZmluZSAiVGVzdCBWYWxpZGF0aW9uIjoKICBjYXNlCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnTXVtcHMwOC4xJyB0aGVuICJNdW1wcyBkb3NlIDEiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnTXVtcHMwOS4zJyB0aGVuICJNdW1wcyBkb3NlIDEiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnTXVtcHMxMC4zJyB0aGVuICJNdW1wcyBkb3NlIDEiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnTXVtcHMxMS4yJyB0aGVuICJNdW1wcyBkb3NlIDIiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnTXVtcHMxMi4zJyB0aGVuICJNdW1wcyBkb3NlIDIiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnTXVtcHMxMy4zJyB0aGVuICJNdW1wcyBkb3NlIDIiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnTXVtcHMxNC4xJyB0aGVuICJTZWNvbmQgbXVtcHMgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkLiBUaGUgcHJpbWFyeSBzZXJpZXMgaGFzIGJlZW4gY29tcGxldGVkIgogICAgZWxzZSAnTm8gdGVzdCBjYXNlIHNldCcKICBlbmQK"/>
  </content>
</Library>