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

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

        
        
        <tr>
            <th scope="row"><b>Id: </b></th>
            <td style="padding-left: 4px;">IMMZD2DTTyphoidElements</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-IMMZD2DTTyphoidElements.html">IMMZD2DTTyphoidElements</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 context-independent elements for Typhoid used throughout 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-WHOConcepts.html">WHOConcepts</a></li>
                  
                    <li><a href="Library-WHOCommon.html">WHOCommon</a></li>
                  
                    <li><a href="Library-WHOElements.html">WHOElements</a></li>
                  
                    <li><a href="Library-IMMZCommon.html">IMMZCommon</a></li>
                  
                    <li><a href="Library-IMMZConcepts.html">IMMZConcepts</a></li>
                  
                    <li><a href="Library-IMMZElements.html">IMMZElements</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>Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Typhoid Doses Administered to Patient</th><th>Immunization</th><th>0</th><th>*</th><th>Out</th></tr>
              
                <tr><th>Typhoid Primary Series Doses Administered to Patient</th><th>Immunization</th><th>0</th><th>*</th><th>Out</th></tr>
              
                <tr><th>Number of Typhoid Primary Series Doses Administered</th><th>integer</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client's age is less than 6 months</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>No typhoid primary series doses were administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client's age is between 6 months and 45 years</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client's age is more than or equal to 45 years</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>One typhoid primary series dose was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client's age is less than 2 years</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client's age is more than or equal to 2 years</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Date of Latest Typhoid Dose</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>The latest typhoid dose was administered less than 3 years ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>The latest typhoid dose was administered more than 3 years ago</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client's age is less than 6 years</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client's age is more than or equal to 6 years</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Primary series is complete</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Primary series is not complete</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>No live vaccine, other than typhoid, was administered in the past 4 weeks</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Live vaccine, other than typhoid, was administered in the past 4 weeks</th><th>boolean</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: IMMZD2DTTyphoidElements
  */
library IMMZD2DTTyphoidElements

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

include WHOConcepts
include WHOCommon called WC
include WHOElements called WE

include IMMZCommon called Common
include IMMZConcepts called Concepts
include IMMZElements called Elements


context Patient

/*
@internal: Typhoid containing Doses Administered to Patient
*/
define &quot;Typhoid Doses Administered to Patient&quot;:
  Elements.&quot;Doses Administered to Patient&quot; I
  where
    I.vaccineCode in Concepts.&quot;Typhoid vaccines&quot;

/*
@internal: Typhoid containing Doses Administered to Patient that are in the Primary series
*/
define &quot;Typhoid Primary Series Doses Administered to Patient&quot;:
  &quot;Typhoid Doses Administered to Patient&quot;.seriesPrimary()

/*
@internal: Number of Typhoid Primary Series doses
*/
define &quot;Number of Typhoid Primary Series Doses Administered&quot;:
  Count(&quot;Typhoid Primary Series Doses Administered to Patient&quot;)

/*
@input: Client's age is less than 6 months
@pseudocode: Today's date − &quot;Date of birth&quot; &lt; 6 months
@code: Client's age is less than 6 months-41
@decision: IMMZ.D2.DT.Typhoid.TCV: Typhoid conjugate vaccine (TCV) schedule
*/
define &quot;Client's age is less than 6 months&quot;:
  Elements.&quot;Current Patient Age In Months&quot; &lt; 6

/*
@input: No typhoid primary series doses were administered
@pseudocode: Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 0
@code: No typhoid primary series doses were administered-116
@decision: IMMZ.D2.DT.Typhoid.TCV: Typhoid conjugate vaccine (TCV) schedule
@decision: IMMZ.D2.DT.Typhoid.ViPS: Unconjugated Vi polysaccharide (ViPS) schedule
*/
define &quot;No typhoid primary series doses were administered&quot;:
  &quot;Number of Typhoid Primary Series Doses Administered&quot; = 0

/*
@input: Client's age is between 6 months and 45 years
@pseudocode: 6 months ≤ Today's date − &quot;Date of birth&quot; &lt; 45 years
@code: Client's age is between 6 months and 45 years-52
@decision: IMMZ.D2.DT.Typhoid.TCV: Typhoid conjugate vaccine (TCV) schedule
*/
define &quot;Client's age is between 6 months and 45 years&quot;:
  6 &lt;= Elements.&quot;Current Patient Age In Months&quot;
  and Elements.&quot;Current Patient Age In Years&quot; &lt; 45

/*
@input: Client's age is more than or equal to 45 years
@pseudocode: Today's date − &quot;Date of birth&quot; ≥ 45 years
@code: Client's age is more than or equal to 45 years-41
@decision: IMMZ.D2.DT.Typhoid.TCV: Typhoid conjugate vaccine (TCV) schedule
*/
define &quot;Client's age is more than or equal to 45 years&quot;:
  Elements.&quot;Current Patient Age In Years&quot; &gt;= 45

/*
@input: One typhoid primary series dose was administered
@pseudocode: Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 1
@code: One typhoid primary series dose was administered-116
@decision: IMMZ.D2.DT.Typhoid.TCV: Typhoid conjugate vaccine (TCV) schedule
@decision: IMMZ.D2.DT.Typhoid.ViPS: Unconjugated Vi polysaccharide (ViPS) schedule
*/
define &quot;One typhoid primary series dose was administered&quot;:
  &quot;Number of Typhoid Primary Series Doses Administered&quot; = 1

/*
@input: Client's age is less than 2 years
@pseudocode: Today's date − &quot;Date of birth&quot; &lt; 2 years
@code: Client's age is less than 2 years-40
@decision: IMMZ.D2.DT.Typhoid.ViPS: Unconjugated Vi polysaccharide (ViPS) schedule
*/
define &quot;Client's age is less than 2 years&quot;:
  Elements.&quot;Current Patient Age In Years&quot; &lt; 2

/*
@input: Client's age is more than or equal to 2 years
@pseudocode: Today's date − &quot;Date of birth&quot; ≥ 2 years
@code: Client's age is more than or equal to 2 years-40
@decision: IMMZ.D2.DT.Typhoid.ViPS: Unconjugated Vi polysaccharide (ViPS) schedule
*/
define &quot;Client's age is more than or equal to 2 years&quot;:
  Elements.&quot;Current Patient Age In Years&quot; &gt;= 2

/*
@input: The latest typhoid dose was administered less than 3 years ago
@pseudocode: Today's date − latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot;) &lt; 3 years
@code: The latest typhoid dose was administered less than 3 years ago-106
@decision: IMMZ.D2.DT.Typhoid.ViPS: Unconjugated Vi polysaccharide (ViPS) schedule
@decision: IMMZ.D2.DT.Typhoid.Ty21a: Live attenuated Ty21a vaccine schedule
*/
define &quot;The latest typhoid dose was administered less than 3 years ago&quot;:
  &quot;Date of Latest Typhoid Dose&quot; is not null
    and duration in years between &quot;Date of Latest Typhoid Dose&quot; and Now() &lt; 3

/*
@input: The latest typhoid dose was administered more than 3 years ago
@pseudocode: Today's date − latest &quot;Date and time of vaccination&quot; (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot;) ≥ 3 years
@code: The latest typhoid dose was administered more than 3 years ago-106
@decision: IMMZ.D2.DT.Typhoid.ViPS: Unconjugated Vi polysaccharide (ViPS) schedule
@decision: IMMZ.D2.DT.Typhoid.Ty21a: Live attenuated Ty21a vaccine schedule
*/
define &quot;The latest typhoid dose was administered more than 3 years ago&quot;:
  not &quot;The latest typhoid dose was administered less than 3 years ago&quot;

/*
@input: Client's age is less than 6 years
@pseudocode: Today's date − &quot;Date of birth&quot; &lt; 6 years
@code: Client's age is less than 6 years-40
@decision: IMMZ.D2.DT.Typhoid.Ty21a: Live attenuated Ty21a vaccine schedule
*/
define &quot;Client's age is less than 6 years&quot;:
  Elements.&quot;Current Patient Age In Years&quot; &lt; 6

/*
@input: Client's age is more than or equal to 6 years
@pseudocode: Today's date − &quot;Date of birth&quot; ≥ 6 years
@code: Client's age is more than or equal to 6 years-40
@decision: IMMZ.D2.DT.Typhoid.Ty21a: Live attenuated Ty21a vaccine schedule
*/
define &quot;Client's age is more than or equal to 6 years&quot;:
  Elements.&quot;Current Patient Age In Years&quot; &gt;= 6

/*
@input: Primary series is not complete
@pseudocode: &quot;Completed the primary vaccination series&quot; (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot;) ≠ TRUE
@code: Primary series is not complete-93
@decision: IMMZ.D2.DT.Typhoid.Ty21a: Live attenuated Ty21a vaccine schedule
*/
define &quot;Primary series is not complete&quot;:
  not &quot;Primary series is complete&quot;

/*
@input: No live vaccine, other than typhoid, was administered in the past 4 weeks
@pseudocode: Today's date − latest &quot;Date and time of vaccination&quot; (where &quot;Live vaccine&quot; = TRUE AND &quot;Vaccine type&quot; ≠ &quot;Typhoid vaccines&quot;) ≥ 4 weeks
@code: No live vaccine, other than typhoid, was administered in the past 4 weeks-132
@decision: IMMZ.D2.DT.Typhoid.Ty21a: Live attenuated Ty21a vaccine schedule
*/
define &quot;No live vaccine, other than typhoid, was administered in the past 4 weeks&quot;:
  Elements.&quot;No live vaccine was administered in the last 4 weeks&quot;

/*
@input: Live vaccine, other than typhoid, was administered in the past 4 weeks
@pseudocode: Today's date − latest &quot;Date and time of vaccination&quot; (where &quot;Live vaccine&quot; = TRUE AND &quot;Vaccine type&quot; ≠ &quot;Typhoid vaccines&quot;) &lt; 4 weeks
@code: Live vaccine, other than typhoid, was administered in the past 4 weeks-132
@decision: IMMZ.D2.DT.Typhoid.Ty21a: Live attenuated Ty21a vaccine schedule
*/
define &quot;Live vaccine, other than typhoid, was administered in the past 4 weeks&quot;:
  Elements.&quot;Live vaccine was administered in the last 4 weeks&quot;

/*
@input: Primary series is complete
@pseudocode: &quot;Completed the primary vaccination series&quot; (where &quot;Vaccine type&quot; = &quot;Typhoid vaccines&quot;) = TRUE
@code: Primary series is complete-93
@decision: IMMZ.D2.DT.Typhoid.Ty21a: Live attenuated Ty21a vaccine schedule
*/
define &quot;Primary series is complete&quot;:
  &quot;One typhoid primary series dose was administered&quot;
  or Coalesce(
    &quot;Typhoid Doses Administered to Patient&quot; Dose
    aggregate Result: Elements.&quot;Completed the primary vaccination series Observation&quot;.partOf.references(Dose) or Result,
    false )

/*
@internal: Date of Latest Typhoid Dose
*/
define &quot;Date of Latest Typhoid Dose&quot;:
  date from start of &quot;Typhoid Doses Administered to Patient&quot;.mostRecent().occurrence.toInterval()
</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/IMMZD2DTTyphoidElements"/>
  <version value="1.0.0"/>
  <name value="IMMZD2DTTyphoidElements"/>
  <title value="IMMZD2DTTyphoidElements"/>
  <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 context-independent elements for Typhoid used throughout the Immunization CPG"/>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library WHOConcepts"/>
    <resource value="http://smart.who.int/immunizations/Library/WHOConcepts"/>
  </relatedArtifact>
  <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 WE"/>
    <resource value="http://smart.who.int/immunizations/Library/WHOElements"/>
  </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 Elements"/>
    <resource value="http://smart.who.int/immunizations/Library/IMMZElements"/>
  </relatedArtifact>
  <parameter>
    <name value="Patient"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Patient"/>
  </parameter>
  <parameter>
    <name value="Typhoid Doses Administered to Patient"/>
    <use value="out"/>
    <min value="0"/>
    <max value="*"/>
    <type value="Immunization"/>
  </parameter>
  <parameter>
    <name value="Typhoid Primary Series Doses Administered to Patient"/>
    <use value="out"/>
    <min value="0"/>
    <max value="*"/>
    <type value="Immunization"/>
  </parameter>
  <parameter>
    <name value="Number of Typhoid Primary Series Doses Administered"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="integer"/>
  </parameter>
  <parameter>
    <name value="Client's age is less than 6 months"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="No typhoid primary series doses were administered"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client's age is between 6 months and 45 years"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client's age is more than or equal to 45 years"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="One typhoid primary series dose was administered"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client's age is less than 2 years"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client's age is more than or equal to 2 years"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Date of Latest Typhoid Dose"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="date"/>
  </parameter>
  <parameter>
    <name value="The latest typhoid dose was administered less than 3 years ago"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="The latest typhoid dose was administered more than 3 years ago"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client's age is less than 6 years"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client's age is more than or equal to 6 years"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Primary series is complete"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Primary series is not complete"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="No live vaccine, other than typhoid, was administered in the past 4 weeks"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Live vaccine, other than typhoid, was administered in the past 4 weeks"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <content>
    <contentType value="text/cql"/>
    <data value="Ci8qCiAgKiBMaWJyYXJ5OiBJTU1aRDJEVFR5cGhvaWRFbGVtZW50cwogICovCmxpYnJhcnkgSU1NWkQyRFRUeXBob2lkRWxlbWVudHMKCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIFdIT0NvbmNlcHRzCmluY2x1ZGUgV0hPQ29tbW9uIGNhbGxlZCBXQwppbmNsdWRlIFdIT0VsZW1lbnRzIGNhbGxlZCBXRQoKaW5jbHVkZSBJTU1aQ29tbW9uIGNhbGxlZCBDb21tb24KaW5jbHVkZSBJTU1aQ29uY2VwdHMgY2FsbGVkIENvbmNlcHRzCmluY2x1ZGUgSU1NWkVsZW1lbnRzIGNhbGxlZCBFbGVtZW50cwoKCmNvbnRleHQgUGF0aWVudAoKLyoKQGludGVybmFsOiBUeXBob2lkIGNvbnRhaW5pbmcgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQKKi8KZGVmaW5lICJUeXBob2lkIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IjoKICBFbGVtZW50cy4iRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiIEkKICB3aGVyZQogICAgSS52YWNjaW5lQ29kZSBpbiBDb25jZXB0cy4iVHlwaG9pZCB2YWNjaW5lcyIKCi8qCkBpbnRlcm5hbDogVHlwaG9pZCBjb250YWluaW5nIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IHRoYXQgYXJlIGluIHRoZSBQcmltYXJ5IHNlcmllcwoqLwpkZWZpbmUgIlR5cGhvaWQgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiOgogICJUeXBob2lkIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50Ii5zZXJpZXNQcmltYXJ5KCkKCi8qCkBpbnRlcm5hbDogTnVtYmVyIG9mIFR5cGhvaWQgUHJpbWFyeSBTZXJpZXMgZG9zZXMKKi8KZGVmaW5lICJOdW1iZXIgb2YgVHlwaG9pZCBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiOgogIENvdW50KCJUeXBob2lkIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IikKCi8qCkBpbnB1dDogQ2xpZW50J3MgYWdlIGlzIGxlc3MgdGhhbiA2IG1vbnRocwpAcHNldWRvY29kZTogVG9kYXkncyBkYXRlIOKIkiAiRGF0ZSBvZiBiaXJ0aCIgPCA2IG1vbnRocwpAY29kZTogQ2xpZW50J3MgYWdlIGlzIGxlc3MgdGhhbiA2IG1vbnRocy00MQpAZGVjaXNpb246IElNTVouRDIuRFQuVHlwaG9pZC5UQ1Y6IFR5cGhvaWQgY29uanVnYXRlIHZhY2NpbmUgKFRDVikgc2NoZWR1bGUKKi8KZGVmaW5lICJDbGllbnQncyBhZ2UgaXMgbGVzcyB0aGFuIDYgbW9udGhzIjoKICBFbGVtZW50cy4iQ3VycmVudCBQYXRpZW50IEFnZSBJbiBNb250aHMiIDwgNgoKLyoKQGlucHV0OiBObyB0eXBob2lkIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlR5cGhvaWQgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJQcmltYXJ5IHNlcmllcyIpID0gMApAY29kZTogTm8gdHlwaG9pZCBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZC0xMTYKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlR5cGhvaWQuVENWOiBUeXBob2lkIGNvbmp1Z2F0ZSB2YWNjaW5lIChUQ1YpIHNjaGVkdWxlCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5UeXBob2lkLlZpUFM6IFVuY29uanVnYXRlZCBWaSBwb2x5c2FjY2hhcmlkZSAoVmlQUykgc2NoZWR1bGUKKi8KZGVmaW5lICJObyB0eXBob2lkIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkIjoKICAiTnVtYmVyIG9mIFR5cGhvaWQgUHJpbWFyeSBTZXJpZXMgRG9zZXMgQWRtaW5pc3RlcmVkIiA9IDAKCi8qCkBpbnB1dDogQ2xpZW50J3MgYWdlIGlzIGJldHdlZW4gNiBtb250aHMgYW5kIDQ1IHllYXJzCkBwc2V1ZG9jb2RlOiA2IG1vbnRocyDiiaQgVG9kYXkncyBkYXRlIOKIkiAiRGF0ZSBvZiBiaXJ0aCIgPCA0NSB5ZWFycwpAY29kZTogQ2xpZW50J3MgYWdlIGlzIGJldHdlZW4gNiBtb250aHMgYW5kIDQ1IHllYXJzLTUyCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5UeXBob2lkLlRDVjogVHlwaG9pZCBjb25qdWdhdGUgdmFjY2luZSAoVENWKSBzY2hlZHVsZQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBiZXR3ZWVuIDYgbW9udGhzIGFuZCA0NSB5ZWFycyI6CiAgNiA8PSBFbGVtZW50cy4iQ3VycmVudCBQYXRpZW50IEFnZSBJbiBNb250aHMiCiAgYW5kIEVsZW1lbnRzLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIFllYXJzIiA8IDQ1CgovKgpAaW5wdXQ6IENsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gNDUgeWVhcnMKQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSDiiJIgIkRhdGUgb2YgYmlydGgiIOKJpSA0NSB5ZWFycwpAY29kZTogQ2xpZW50J3MgYWdlIGlzIG1vcmUgdGhhbiBvciBlcXVhbCB0byA0NSB5ZWFycy00MQpAZGVjaXNpb246IElNTVouRDIuRFQuVHlwaG9pZC5UQ1Y6IFR5cGhvaWQgY29uanVnYXRlIHZhY2NpbmUgKFRDVikgc2NoZWR1bGUKKi8KZGVmaW5lICJDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDQ1IHllYXJzIjoKICBFbGVtZW50cy4iQ3VycmVudCBQYXRpZW50IEFnZSBJbiBZZWFycyIgPj0gNDUKCi8qCkBpbnB1dDogT25lIHR5cGhvaWQgcHJpbWFyeSBzZXJpZXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlR5cGhvaWQgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJQcmltYXJ5IHNlcmllcyIpID0gMQpAY29kZTogT25lIHR5cGhvaWQgcHJpbWFyeSBzZXJpZXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkLTExNgpAZGVjaXNpb246IElNTVouRDIuRFQuVHlwaG9pZC5UQ1Y6IFR5cGhvaWQgY29uanVnYXRlIHZhY2NpbmUgKFRDVikgc2NoZWR1bGUKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlR5cGhvaWQuVmlQUzogVW5jb25qdWdhdGVkIFZpIHBvbHlzYWNjaGFyaWRlIChWaVBTKSBzY2hlZHVsZQoqLwpkZWZpbmUgIk9uZSB0eXBob2lkIHByaW1hcnkgc2VyaWVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCI6CiAgIk51bWJlciBvZiBUeXBob2lkIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCIgPSAxCgovKgpAaW5wdXQ6IENsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gMiB5ZWFycwpAcHNldWRvY29kZTogVG9kYXkncyBkYXRlIOKIkiAiRGF0ZSBvZiBiaXJ0aCIgPCAyIHllYXJzCkBjb2RlOiBDbGllbnQncyBhZ2UgaXMgbGVzcyB0aGFuIDIgeWVhcnMtNDAKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlR5cGhvaWQuVmlQUzogVW5jb25qdWdhdGVkIFZpIHBvbHlzYWNjaGFyaWRlIChWaVBTKSBzY2hlZHVsZQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gMiB5ZWFycyI6CiAgRWxlbWVudHMuIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gWWVhcnMiIDwgMgoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDIgeWVhcnMKQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSDiiJIgIkRhdGUgb2YgYmlydGgiIOKJpSAyIHllYXJzCkBjb2RlOiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDIgeWVhcnMtNDAKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlR5cGhvaWQuVmlQUzogVW5jb25qdWdhdGVkIFZpIHBvbHlzYWNjaGFyaWRlIChWaVBTKSBzY2hlZHVsZQoqLwpkZWZpbmUgIkNsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gMiB5ZWFycyI6CiAgRWxlbWVudHMuIkN1cnJlbnQgUGF0aWVudCBBZ2UgSW4gWWVhcnMiID49IDIKCi8qCkBpbnB1dDogVGhlIGxhdGVzdCB0eXBob2lkIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gMyB5ZWFycyBhZ28KQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSDiiJIgbGF0ZXN0ICJEYXRlIGFuZCB0aW1lIG9mIHZhY2NpbmF0aW9uIiAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiVHlwaG9pZCB2YWNjaW5lcyIpIDwgMyB5ZWFycwpAY29kZTogVGhlIGxhdGVzdCB0eXBob2lkIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gMyB5ZWFycyBhZ28tMTA2CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5UeXBob2lkLlZpUFM6IFVuY29uanVnYXRlZCBWaSBwb2x5c2FjY2hhcmlkZSAoVmlQUykgc2NoZWR1bGUKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlR5cGhvaWQuVHkyMWE6IExpdmUgYXR0ZW51YXRlZCBUeTIxYSB2YWNjaW5lIHNjaGVkdWxlCiovCmRlZmluZSAiVGhlIGxhdGVzdCB0eXBob2lkIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gMyB5ZWFycyBhZ28iOgogICJEYXRlIG9mIExhdGVzdCBUeXBob2lkIERvc2UiIGlzIG5vdCBudWxsCiAgICBhbmQgZHVyYXRpb24gaW4geWVhcnMgYmV0d2VlbiAiRGF0ZSBvZiBMYXRlc3QgVHlwaG9pZCBEb3NlIiBhbmQgTm93KCkgPCAzCgovKgpAaW5wdXQ6IFRoZSBsYXRlc3QgdHlwaG9pZCBkb3NlIHdhcyBhZG1pbmlzdGVyZWQgbW9yZSB0aGFuIDMgeWVhcnMgYWdvCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUg4oiSIGxhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlR5cGhvaWQgdmFjY2luZXMiKSDiiaUgMyB5ZWFycwpAY29kZTogVGhlIGxhdGVzdCB0eXBob2lkIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gMyB5ZWFycyBhZ28tMTA2CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5UeXBob2lkLlZpUFM6IFVuY29uanVnYXRlZCBWaSBwb2x5c2FjY2hhcmlkZSAoVmlQUykgc2NoZWR1bGUKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlR5cGhvaWQuVHkyMWE6IExpdmUgYXR0ZW51YXRlZCBUeTIxYSB2YWNjaW5lIHNjaGVkdWxlCiovCmRlZmluZSAiVGhlIGxhdGVzdCB0eXBob2lkIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBtb3JlIHRoYW4gMyB5ZWFycyBhZ28iOgogIG5vdCAiVGhlIGxhdGVzdCB0eXBob2lkIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCBsZXNzIHRoYW4gMyB5ZWFycyBhZ28iCgovKgpAaW5wdXQ6IENsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gNiB5ZWFycwpAcHNldWRvY29kZTogVG9kYXkncyBkYXRlIOKIkiAiRGF0ZSBvZiBiaXJ0aCIgPCA2IHllYXJzCkBjb2RlOiBDbGllbnQncyBhZ2UgaXMgbGVzcyB0aGFuIDYgeWVhcnMtNDAKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlR5cGhvaWQuVHkyMWE6IExpdmUgYXR0ZW51YXRlZCBUeTIxYSB2YWNjaW5lIHNjaGVkdWxlCiovCmRlZmluZSAiQ2xpZW50J3MgYWdlIGlzIGxlc3MgdGhhbiA2IHllYXJzIjoKICBFbGVtZW50cy4iQ3VycmVudCBQYXRpZW50IEFnZSBJbiBZZWFycyIgPCA2CgovKgpAaW5wdXQ6IENsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gNiB5ZWFycwpAcHNldWRvY29kZTogVG9kYXkncyBkYXRlIOKIkiAiRGF0ZSBvZiBiaXJ0aCIg4omlIDYgeWVhcnMKQGNvZGU6IENsaWVudCdzIGFnZSBpcyBtb3JlIHRoYW4gb3IgZXF1YWwgdG8gNiB5ZWFycy00MApAZGVjaXNpb246IElNTVouRDIuRFQuVHlwaG9pZC5UeTIxYTogTGl2ZSBhdHRlbnVhdGVkIFR5MjFhIHZhY2NpbmUgc2NoZWR1bGUKKi8KZGVmaW5lICJDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIG9yIGVxdWFsIHRvIDYgeWVhcnMiOgogIEVsZW1lbnRzLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIFllYXJzIiA+PSA2CgovKgpAaW5wdXQ6IFByaW1hcnkgc2VyaWVzIGlzIG5vdCBjb21wbGV0ZQpAcHNldWRvY29kZTogIkNvbXBsZXRlZCB0aGUgcHJpbWFyeSB2YWNjaW5hdGlvbiBzZXJpZXMiICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJUeXBob2lkIHZhY2NpbmVzIikg4omgIFRSVUUKQGNvZGU6IFByaW1hcnkgc2VyaWVzIGlzIG5vdCBjb21wbGV0ZS05MwpAZGVjaXNpb246IElNTVouRDIuRFQuVHlwaG9pZC5UeTIxYTogTGl2ZSBhdHRlbnVhdGVkIFR5MjFhIHZhY2NpbmUgc2NoZWR1bGUKKi8KZGVmaW5lICJQcmltYXJ5IHNlcmllcyBpcyBub3QgY29tcGxldGUiOgogIG5vdCAiUHJpbWFyeSBzZXJpZXMgaXMgY29tcGxldGUiCgovKgpAaW5wdXQ6IE5vIGxpdmUgdmFjY2luZSwgb3RoZXIgdGhhbiB0eXBob2lkLCB3YXMgYWRtaW5pc3RlcmVkIGluIHRoZSBwYXN0IDQgd2Vla3MKQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSDiiJIgbGF0ZXN0ICJEYXRlIGFuZCB0aW1lIG9mIHZhY2NpbmF0aW9uIiAod2hlcmUgIkxpdmUgdmFjY2luZSIgPSBUUlVFIEFORCAiVmFjY2luZSB0eXBlIiDiiaAgIlR5cGhvaWQgdmFjY2luZXMiKSDiiaUgNCB3ZWVrcwpAY29kZTogTm8gbGl2ZSB2YWNjaW5lLCBvdGhlciB0aGFuIHR5cGhvaWQsIHdhcyBhZG1pbmlzdGVyZWQgaW4gdGhlIHBhc3QgNCB3ZWVrcy0xMzIKQGRlY2lzaW9uOiBJTU1aLkQyLkRULlR5cGhvaWQuVHkyMWE6IExpdmUgYXR0ZW51YXRlZCBUeTIxYSB2YWNjaW5lIHNjaGVkdWxlCiovCmRlZmluZSAiTm8gbGl2ZSB2YWNjaW5lLCBvdGhlciB0aGFuIHR5cGhvaWQsIHdhcyBhZG1pbmlzdGVyZWQgaW4gdGhlIHBhc3QgNCB3ZWVrcyI6CiAgRWxlbWVudHMuIk5vIGxpdmUgdmFjY2luZSB3YXMgYWRtaW5pc3RlcmVkIGluIHRoZSBsYXN0IDQgd2Vla3MiCgovKgpAaW5wdXQ6IExpdmUgdmFjY2luZSwgb3RoZXIgdGhhbiB0eXBob2lkLCB3YXMgYWRtaW5pc3RlcmVkIGluIHRoZSBwYXN0IDQgd2Vla3MKQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSDiiJIgbGF0ZXN0ICJEYXRlIGFuZCB0aW1lIG9mIHZhY2NpbmF0aW9uIiAod2hlcmUgIkxpdmUgdmFjY2luZSIgPSBUUlVFIEFORCAiVmFjY2luZSB0eXBlIiDiiaAgIlR5cGhvaWQgdmFjY2luZXMiKSA8IDQgd2Vla3MKQGNvZGU6IExpdmUgdmFjY2luZSwgb3RoZXIgdGhhbiB0eXBob2lkLCB3YXMgYWRtaW5pc3RlcmVkIGluIHRoZSBwYXN0IDQgd2Vla3MtMTMyCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5UeXBob2lkLlR5MjFhOiBMaXZlIGF0dGVudWF0ZWQgVHkyMWEgdmFjY2luZSBzY2hlZHVsZQoqLwpkZWZpbmUgIkxpdmUgdmFjY2luZSwgb3RoZXIgdGhhbiB0eXBob2lkLCB3YXMgYWRtaW5pc3RlcmVkIGluIHRoZSBwYXN0IDQgd2Vla3MiOgogIEVsZW1lbnRzLiJMaXZlIHZhY2NpbmUgd2FzIGFkbWluaXN0ZXJlZCBpbiB0aGUgbGFzdCA0IHdlZWtzIgoKLyoKQGlucHV0OiBQcmltYXJ5IHNlcmllcyBpcyBjb21wbGV0ZQpAcHNldWRvY29kZTogIkNvbXBsZXRlZCB0aGUgcHJpbWFyeSB2YWNjaW5hdGlvbiBzZXJpZXMiICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJUeXBob2lkIHZhY2NpbmVzIikgPSBUUlVFCkBjb2RlOiBQcmltYXJ5IHNlcmllcyBpcyBjb21wbGV0ZS05MwpAZGVjaXNpb246IElNTVouRDIuRFQuVHlwaG9pZC5UeTIxYTogTGl2ZSBhdHRlbnVhdGVkIFR5MjFhIHZhY2NpbmUgc2NoZWR1bGUKKi8KZGVmaW5lICJQcmltYXJ5IHNlcmllcyBpcyBjb21wbGV0ZSI6CiAgIk9uZSB0eXBob2lkIHByaW1hcnkgc2VyaWVzIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCIKICBvciBDb2FsZXNjZSgKICAgICJUeXBob2lkIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IiBEb3NlCiAgICBhZ2dyZWdhdGUgUmVzdWx0OiBFbGVtZW50cy4iQ29tcGxldGVkIHRoZSBwcmltYXJ5IHZhY2NpbmF0aW9uIHNlcmllcyBPYnNlcnZhdGlvbiIucGFydE9mLnJlZmVyZW5jZXMoRG9zZSkgb3IgUmVzdWx0LAogICAgZmFsc2UgKQoKLyoKQGludGVybmFsOiBEYXRlIG9mIExhdGVzdCBUeXBob2lkIERvc2UKKi8KZGVmaW5lICJEYXRlIG9mIExhdGVzdCBUeXBob2lkIERvc2UiOgogIGRhdGUgZnJvbSBzdGFydCBvZiAiVHlwaG9pZCBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIubW9zdFJlY2VudCgpLm9jY3VycmVuY2UudG9JbnRlcnZhbCgpCg=="/>
  </content>
</Library>