WHO SMART Guidelines - HIV
0.4.3 - ci-build

WHO SMART Guidelines - HIV - Local Development build (v0.4.3) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

: HIV.IND.40 Logic - XML Representation

Draft as of 2025-02-02

Raw xml | Download


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

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

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

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

        

        

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

        
        <tr>
            <th scope="row"><b>Experimental: </b></th>
            <td style="padding-left: 4px;">true</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/6.0.2/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;">2025-02-02 03:11:41+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>% of HIV-positive pregnant women who received ART during pregnancy and/or at labour and delivery</p>
</div></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: HIV.IND.40 Logic
 * Ref No: VER.4
 * Short Name: ART coverage in pregnant women
 *
 * Definition: % of HIV-positive pregnant women who received ART during pregnancy and/or at labour and delivery
 *
 * Numerator: Number of HIV-positive pregnant women who delivered during the reporting period and received ART during pregnancy and/or at labour and delivery
 * Numerator Calculation: COUNT of women with &quot;HIV status&quot;='HIV-positive' AND &quot;Delivery date&quot; in the reporting period AND ((&quot;On ART&quot;=True at labour and delivery) OR (&quot;On ART&quot;=True during pregnancy, for this pregnancy))
 * Numerator Exclusions: 
 *
 * Denominator: a) Programme-based/service delivery denominator | Number of HIV-positive pregnant women who delivered during the reporting period and attended ANC or had a facility-based delivery | b) Population-based denominator | Number of HIV-positive pregnant women who delivered during the reporting period
 * Denominator Calculation: Programme-based/service delivery denominator: | COUNT of women with &quot;HIV status&quot;='HIV-positive' AND &quot;Delivery date&quot; in the reporting period AND (had an &quot;ANC contact date&quot; during reporting period OR &quot;Place of delivery&quot; was a 'Health facility') |  | Population-based denominator: | *Number of HIV-positive pregnant women who delivered during the reporting period
 * Denominator Exclusions: 
 *
 * Disaggregations:
 * Numerator: 
 *  • Timing of ART initiation (1. already on ART at first ANC visit, 2. newly on ART during pregnancy, 3. newly on ART during labour and delivery, 4. on non-recommended ART regimen) 
 *   
 *  The primary indicator calculation should include ART status categories 1, 2 and 3. Removing the women in category 1 &quot;already on ART at first ANC visit&quot; from the numerator and denominator gives a measure of ART coverage among HIV-positive pregnant women newly diagnosed during ANC. Dividing category 2 by the sum of categories 2 and 3 gives the proportion of new ART initiations occurring during pregnancy rather than at delivery. Calculating the indicator with those in category 4 (non-recommended ARV regimen) included in the numerator gives a broader measure, that is, coverage of HIV-positive pregnant women receiving any ARV drug.
 *
 * Disaggregation Elements: Timing of ART initiation
 *
 * Numerator and Denominator Elements:
 * ANC contact date 
 *  Delivery date 
 *  HIV status 
 *  On ART 
 *  Place of delivery
 *
 * Reference: Consolidated guidelines on person-centred HIV strategic information: strengthening routine data for impact. Geneva: World Health Organization; 2022
 * 
 * Data Concepts:
 * HIV.B.DE115: HIV status | HIV status reported after applying the national HIV testing algorithm. No single HIV test can provide an HIV-positive diagnosis.
 * HIV.B.DE116: HIV-positive | Client is HIV-positive
 * HIV.B.DE117: HIV-negative | Client is HIV-negative
 * HIV.B.DE118: Unknown | Client has unknown HIV status
 * HIV.D.DE38: On ART | Client is currently taking ART
 * HIV.E.DE41: Timing of ART initiation | When the pregnant woman or mother initiated ART, for women living with HIV.
 * HIV.E.DE42: Already on ART at first antenatal care visit | The pregnant woman was already on antiretroviral therapy (ART) at first antenatal care visit
 * HIV.E.DE43: Newly on ART during pregnancy | The pregnant woman started ART during her pregnancy
 * HIV.E.DE44: Newly on ART during labour and delivery | The woman started ART during labour and delivery
 * HIV.E.DE46: Delivery date | Date on which the woman delivered
 * HIV.E.DE67: Place of delivery | The type of place where the woman delivered
 * HIV.E.DE68: Health facility | The woman delivered at a health facility
 * HIV.E.DE69: Home | The woman delivered at home
 * HIV.E.DE70: Other | The woman delivered at another location that is not at home or at a health facility
 * HIV.E.DE85: ANC contact date | The date and time of the client's ANC contact (in the ANC DAK this is called 'Contact date')
 * HIV.H.DE47: On ART | Client is currently taking ART 
 * HIV.SRV.DE18: ANC contact date | The date and time of the client's ANC contact (in the ANC DAK this is called 'Contact date')
 *
 * Additional Context
 * - what it measures: This indicator measures whether a recommended course of ART has been provided to HIV-positive pregnant women.
 * - rationale: • Providing ART for HIV-positive pregnant women is a critical strategy for preventing vertical transmission of HIV. | • In an era of &quot;Treat All&quot;, all HIV-positive pregnant women should be given a recommended regimen of ART as soon as possible after diagnosis, including during labour and delivery.
 * - method: a) For the numerator and programme-based/service delivery denominator: Programme records (for example, PMTCT registers, ARV registers, labour and delivery registers) |  | b) For the population-based denominator: Modelling-based estimates (for example, Spectrum AIM) |  | The recommended reporting period is 12 months.
 * 
 * Suggested Scoring Method: proportion | http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm
 */

library HIVIND40Logic

// Included Libraries
using FHIR version '4.0.1'

include HIVCommon version '0.0.1' called HIC
include FHIRHelpers version '4.0.1'

include WHOCommon called WCom

include HIVElements called HE
include HIVIndicatorElements called HIE

// Indicator Definition
parameter &quot;Measurement Period&quot; Interval&lt;Date&gt; default Interval[@2023-01-01, @2023-01-30]

context Patient
/* Populations */

/*
 *Initial Population
 */

define &quot;Initial Population&quot;:
  true

/**
 * Numerator
 * 
 * Definition: Number of HIV-positive pregnant women who delivered during the reporting period and received ART during pregnancy and/or at labour and delivery
 * Calculation: COUNT of women with &quot;HIV status&quot;='HIV-positive' AND &quot;Delivery date&quot; in the reporting period AND ((&quot;On ART&quot;=True at labour and delivery) OR (&quot;On ART&quot;=True during pregnancy, for this pregnancy))
 */


define &quot;Numerator&quot;:
  HIE.&quot;Has HIV-positive Status&quot; and
  exists(HIE.&quot;Live Birth Delivery&quot; BirthDelivery
    where BirthDelivery.effective.toInterval() during &quot;Measurement Period&quot;
  ) and 
  exists ( 
    HE.&quot;On ART D.DE38&quot; A 
    where A.effective.toInterval() during First(HIE.&quot;Live Birth Delivery&quot; BirthDelivery
    where BirthDelivery.effective.toInterval() during &quot;Measurement Period&quot;).effective.toInterval()
    or 
    A.effective.toInterval() during First(HE.&quot;Currently pregnant B.DE29&quot; C 
    where C.prevalenceInterval() during &quot;Measurement Period&quot;).prevalenceInterval()
  
  )



/**
 * Denominator
 *
 * Definition: a) Programme-based/service delivery denominator | Number of HIV-positive pregnant women who delivered during the reporting period and attended ANC or had a facility-based delivery | b) Population-based denominator | Number of HIV-positive pregnant women who delivered during the reporting period
 * Calculation: Programme-based/service delivery denominator: | COUNT of women with &quot;HIV status&quot;='HIV-positive' AND &quot;Delivery date&quot; in the reporting period AND (had an &quot;ANC contact date&quot; during reporting period OR &quot;Place of delivery&quot; was a 'Health facility') |  | Population-based denominator: | *Number of HIV-positive pregnant women who delivered during the reporting period
 */

define &quot;Denominator&quot;:
  HIE.&quot;Has HIV-positive Status&quot; and
  exists(HIE.&quot;Live Birth Delivery&quot; BirthDelivery
    where BirthDelivery.effective.toInterval() during &quot;Measurement Period&quot;
  )and 
  (First(HIE.&quot;ANC within pregnancy&quot;).period.toInterval() during &quot;Measurement Period&quot;
  or
    HIE.&quot;Has Delivery in Health Facility&quot;)
    

/* end Populations */

/*
 * Disaggregators
 */


define &quot;Timing of ART initiation&quot;:
  HIE.&quot;Timing of ART initiation&quot;

define &quot;Stratification&quot;:
  HIE.&quot;Timing of ART initiation&quot;.code </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/hiv/Library/HIVIND40Logic"/>
  <version value="0.4.3"/>
  <name value="HIVIND40Logic"/>
  <title value="HIV.IND.40 Logic"/>
  <status value="draft"/>
  <experimental value="true"/>
  <type>
    <coding>
      <system value="http://terminology.hl7.org/CodeSystem/library-type"/>
      <code value="logic-library"/>
    </coding>
  </type>
  <date value="2025-02-02T03:11:41+00:00"/>
  <publisher value="WHO"/>
  <contact>
    <name value="WHO"/>
    <telecom>
      <system value="url"/>
      <value value="http://who.int"/>
    </telecom>
  </contact>
  <description
               value="% of HIV-positive pregnant women who received ART during pregnancy and/or at labour and delivery"/>
  <content>
    <contentType value="text/cql"/>
    <data
          value="LyoqCiAqIExpYnJhcnk6IEhJVi5JTkQuNDAgTG9naWMKICogUmVmIE5vOiBWRVIuNAogKiBTaG9ydCBOYW1lOiBBUlQgY292ZXJhZ2UgaW4gcHJlZ25hbnQgd29tZW4KICoKICogRGVmaW5pdGlvbjogJSBvZiBISVYtcG9zaXRpdmUgcHJlZ25hbnQgd29tZW4gd2hvIHJlY2VpdmVkIEFSVCBkdXJpbmcgcHJlZ25hbmN5IGFuZC9vciBhdCBsYWJvdXIgYW5kIGRlbGl2ZXJ5CiAqCiAqIE51bWVyYXRvcjogTnVtYmVyIG9mIEhJVi1wb3NpdGl2ZSBwcmVnbmFudCB3b21lbiB3aG8gZGVsaXZlcmVkIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZCBhbmQgcmVjZWl2ZWQgQVJUIGR1cmluZyBwcmVnbmFuY3kgYW5kL29yIGF0IGxhYm91ciBhbmQgZGVsaXZlcnkKICogTnVtZXJhdG9yIENhbGN1bGF0aW9uOiBDT1VOVCBvZiB3b21lbiB3aXRoICJISVYgc3RhdHVzIj0nSElWLXBvc2l0aXZlJyBBTkQgIkRlbGl2ZXJ5IGRhdGUiIGluIHRoZSByZXBvcnRpbmcgcGVyaW9kIEFORCAoKCJPbiBBUlQiPVRydWUgYXQgbGFib3VyIGFuZCBkZWxpdmVyeSkgT1IgKCJPbiBBUlQiPVRydWUgZHVyaW5nIHByZWduYW5jeSwgZm9yIHRoaXMgcHJlZ25hbmN5KSkKICogTnVtZXJhdG9yIEV4Y2x1c2lvbnM6IAogKgogKiBEZW5vbWluYXRvcjogYSkgUHJvZ3JhbW1lLWJhc2VkL3NlcnZpY2UgZGVsaXZlcnkgZGVub21pbmF0b3IgfCBOdW1iZXIgb2YgSElWLXBvc2l0aXZlIHByZWduYW50IHdvbWVuIHdobyBkZWxpdmVyZWQgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kIGFuZCBhdHRlbmRlZCBBTkMgb3IgaGFkIGEgZmFjaWxpdHktYmFzZWQgZGVsaXZlcnkgfCBiKSBQb3B1bGF0aW9uLWJhc2VkIGRlbm9taW5hdG9yIHwgTnVtYmVyIG9mIEhJVi1wb3NpdGl2ZSBwcmVnbmFudCB3b21lbiB3aG8gZGVsaXZlcmVkIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKiBEZW5vbWluYXRvciBDYWxjdWxhdGlvbjogUHJvZ3JhbW1lLWJhc2VkL3NlcnZpY2UgZGVsaXZlcnkgZGVub21pbmF0b3I6IHwgQ09VTlQgb2Ygd29tZW4gd2l0aCAiSElWIHN0YXR1cyI9J0hJVi1wb3NpdGl2ZScgQU5EICJEZWxpdmVyeSBkYXRlIiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBBTkQgKGhhZCBhbiAiQU5DIGNvbnRhY3QgZGF0ZSIgZHVyaW5nIHJlcG9ydGluZyBwZXJpb2QgT1IgIlBsYWNlIG9mIGRlbGl2ZXJ5IiB3YXMgYSAnSGVhbHRoIGZhY2lsaXR5JykgfCAgfCBQb3B1bGF0aW9uLWJhc2VkIGRlbm9taW5hdG9yOiB8ICpOdW1iZXIgb2YgSElWLXBvc2l0aXZlIHByZWduYW50IHdvbWVuIHdobyBkZWxpdmVyZWQgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqIERlbm9taW5hdG9yIEV4Y2x1c2lvbnM6IAogKgogKiBEaXNhZ2dyZWdhdGlvbnM6CiAqIE51bWVyYXRvcjogCiAqICDigKLCoFRpbWluZyBvZiBBUlQgaW5pdGlhdGlvbiAoMS4gYWxyZWFkeSBvbiBBUlQgYXQgZmlyc3QgQU5DIHZpc2l0LCAyLiBuZXdseSBvbiBBUlQgZHVyaW5nIHByZWduYW5jeSwgMy4gbmV3bHkgb24gQVJUIGR1cmluZyBsYWJvdXIgYW5kIGRlbGl2ZXJ5LCA0LiBvbiBub24tcmVjb21tZW5kZWQgQVJUIHJlZ2ltZW4pIAogKiAgIAogKiAgVGhlIHByaW1hcnkgaW5kaWNhdG9yIGNhbGN1bGF0aW9uIHNob3VsZCBpbmNsdWRlIEFSVCBzdGF0dXMgY2F0ZWdvcmllcyAxLCAyIGFuZCAzLiBSZW1vdmluZyB0aGUgd29tZW4gaW4gY2F0ZWdvcnkgMSAiYWxyZWFkeSBvbiBBUlQgYXQgZmlyc3QgQU5DIHZpc2l0IiBmcm9tIHRoZSBudW1lcmF0b3IgYW5kIGRlbm9taW5hdG9yIGdpdmVzIGEgbWVhc3VyZSBvZiBBUlQgY292ZXJhZ2UgYW1vbmcgSElWLXBvc2l0aXZlIHByZWduYW50IHdvbWVuIG5ld2x5IGRpYWdub3NlZCBkdXJpbmcgQU5DLiBEaXZpZGluZyBjYXRlZ29yeSAyIGJ5IHRoZSBzdW0gb2YgY2F0ZWdvcmllcyAyIGFuZCAzIGdpdmVzIHRoZSBwcm9wb3J0aW9uIG9mIG5ldyBBUlQgaW5pdGlhdGlvbnMgb2NjdXJyaW5nIGR1cmluZyBwcmVnbmFuY3kgcmF0aGVyIHRoYW4gYXQgZGVsaXZlcnkuIENhbGN1bGF0aW5nIHRoZSBpbmRpY2F0b3Igd2l0aCB0aG9zZSBpbiBjYXRlZ29yeSA0IChub24tcmVjb21tZW5kZWQgQVJWIHJlZ2ltZW4pIGluY2x1ZGVkIGluIHRoZSBudW1lcmF0b3IgZ2l2ZXMgYSBicm9hZGVyIG1lYXN1cmUsIHRoYXQgaXMsIGNvdmVyYWdlIG9mIEhJVi1wb3NpdGl2ZSBwcmVnbmFudCB3b21lbiByZWNlaXZpbmcgYW55IEFSViBkcnVnLgogKgogKiBEaXNhZ2dyZWdhdGlvbiBFbGVtZW50czogVGltaW5nIG9mIEFSVCBpbml0aWF0aW9uCiAqCiAqIE51bWVyYXRvciBhbmQgRGVub21pbmF0b3IgRWxlbWVudHM6CiAqIEFOQyBjb250YWN0IGRhdGUgCiAqICBEZWxpdmVyeSBkYXRlIAogKiAgSElWIHN0YXR1cyAKICogIE9uIEFSVCAKICogIFBsYWNlIG9mIGRlbGl2ZXJ5CiAqCiAqIFJlZmVyZW5jZTogQ29uc29saWRhdGVkIGd1aWRlbGluZXMgb24gcGVyc29uLWNlbnRyZWQgSElWIHN0cmF0ZWdpYyBpbmZvcm1hdGlvbjogc3RyZW5ndGhlbmluZyByb3V0aW5lIGRhdGEgZm9yIGltcGFjdC4gR2VuZXZhOiBXb3JsZCBIZWFsdGggT3JnYW5pemF0aW9uOyAyMDIyCiAqIAogKiBEYXRhIENvbmNlcHRzOgogKiBISVYuQi5ERTExNTogSElWIHN0YXR1cyB8IEhJViBzdGF0dXMgcmVwb3J0ZWQgYWZ0ZXIgYXBwbHlpbmcgdGhlIG5hdGlvbmFsIEhJViB0ZXN0aW5nIGFsZ29yaXRobS4gTm8gc2luZ2xlIEhJViB0ZXN0IGNhbiBwcm92aWRlIGFuIEhJVi1wb3NpdGl2ZSBkaWFnbm9zaXMuCiAqIEhJVi5CLkRFMTE2OiBISVYtcG9zaXRpdmUgfCBDbGllbnQgaXMgSElWLXBvc2l0aXZlCiAqIEhJVi5CLkRFMTE3OiBISVYtbmVnYXRpdmUgfCBDbGllbnQgaXMgSElWLW5lZ2F0aXZlCiAqIEhJVi5CLkRFMTE4OiBVbmtub3duIHwgQ2xpZW50IGhhcyB1bmtub3duIEhJViBzdGF0dXMKICogSElWLkQuREUzODogT24gQVJUIHwgQ2xpZW50IGlzIGN1cnJlbnRseSB0YWtpbmcgQVJUCiAqIEhJVi5FLkRFNDE6IFRpbWluZyBvZiBBUlQgaW5pdGlhdGlvbiB8IFdoZW4gdGhlIHByZWduYW50IHdvbWFuIG9yIG1vdGhlciBpbml0aWF0ZWQgQVJULCBmb3Igd29tZW4gbGl2aW5nIHdpdGggSElWLgogKiBISVYuRS5ERTQyOiBBbHJlYWR5IG9uIEFSVCBhdCBmaXJzdCBhbnRlbmF0YWwgY2FyZSB2aXNpdCB8IFRoZSBwcmVnbmFudCB3b21hbiB3YXMgYWxyZWFkeSBvbiBhbnRpcmV0cm92aXJhbCB0aGVyYXB5IChBUlQpIGF0IGZpcnN0IGFudGVuYXRhbCBjYXJlIHZpc2l0CiAqIEhJVi5FLkRFNDM6IE5ld2x5IG9uIEFSVCBkdXJpbmcgcHJlZ25hbmN5IHwgVGhlIHByZWduYW50IHdvbWFuIHN0YXJ0ZWQgQVJUIGR1cmluZyBoZXIgcHJlZ25hbmN5CiAqIEhJVi5FLkRFNDQ6IE5ld2x5IG9uIEFSVCBkdXJpbmcgbGFib3VyIGFuZCBkZWxpdmVyeSB8IFRoZSB3b21hbiBzdGFydGVkIEFSVCBkdXJpbmcgbGFib3VyIGFuZCBkZWxpdmVyeQogKiBISVYuRS5ERTQ2OiBEZWxpdmVyeSBkYXRlIHwgRGF0ZSBvbiB3aGljaCB0aGUgd29tYW4gZGVsaXZlcmVkCiAqIEhJVi5FLkRFNjc6IFBsYWNlIG9mIGRlbGl2ZXJ5IHwgVGhlIHR5cGUgb2YgcGxhY2Ugd2hlcmUgdGhlIHdvbWFuIGRlbGl2ZXJlZAogKiBISVYuRS5ERTY4OiBIZWFsdGggZmFjaWxpdHkgfCBUaGUgd29tYW4gZGVsaXZlcmVkIGF0IGEgaGVhbHRoIGZhY2lsaXR5CiAqIEhJVi5FLkRFNjk6IEhvbWUgfCBUaGUgd29tYW4gZGVsaXZlcmVkIGF0IGhvbWUKICogSElWLkUuREU3MDogT3RoZXIgfCBUaGUgd29tYW4gZGVsaXZlcmVkIGF0IGFub3RoZXIgbG9jYXRpb24gdGhhdCBpcyBub3QgYXQgaG9tZSBvciBhdCBhIGhlYWx0aCBmYWNpbGl0eQogKiBISVYuRS5ERTg1OiBBTkMgY29udGFjdCBkYXRlIHwgVGhlIGRhdGUgYW5kIHRpbWUgb2YgdGhlIGNsaWVudCdzIEFOQyBjb250YWN0IChpbiB0aGUgQU5DIERBSyB0aGlzIGlzIGNhbGxlZCAnQ29udGFjdCBkYXRlJykKICogSElWLkguREU0NzogT24gQVJUIHwgQ2xpZW50IGlzIGN1cnJlbnRseSB0YWtpbmcgQVJUIAogKiBISVYuU1JWLkRFMTg6IEFOQyBjb250YWN0IGRhdGUgfCBUaGUgZGF0ZSBhbmQgdGltZSBvZiB0aGUgY2xpZW50J3MgQU5DIGNvbnRhY3QgKGluIHRoZSBBTkMgREFLIHRoaXMgaXMgY2FsbGVkICdDb250YWN0IGRhdGUnKQogKgogKiBBZGRpdGlvbmFsIENvbnRleHQKICogLSB3aGF0IGl0IG1lYXN1cmVzOiBUaGlzIGluZGljYXRvciBtZWFzdXJlcyB3aGV0aGVyIGEgcmVjb21tZW5kZWQgY291cnNlIG9mIEFSVCBoYXMgYmVlbiBwcm92aWRlZCB0byBISVYtcG9zaXRpdmUgcHJlZ25hbnQgd29tZW4uCiAqIC0gcmF0aW9uYWxlOiDigKIgUHJvdmlkaW5nIEFSVCBmb3IgSElWLXBvc2l0aXZlIHByZWduYW50IHdvbWVuIGlzIGEgY3JpdGljYWwgc3RyYXRlZ3kgZm9yIHByZXZlbnRpbmcgdmVydGljYWwgdHJhbnNtaXNzaW9uIG9mIEhJVi4gfCDigKIgSW4gYW4gZXJhIG9mICJUcmVhdCBBbGwiLCBhbGwgSElWLXBvc2l0aXZlIHByZWduYW50IHdvbWVuIHNob3VsZCBiZSBnaXZlbiBhIHJlY29tbWVuZGVkIHJlZ2ltZW4gb2YgQVJUIGFzIHNvb24gYXMgcG9zc2libGUgYWZ0ZXIgZGlhZ25vc2lzLCBpbmNsdWRpbmcgZHVyaW5nIGxhYm91ciBhbmQgZGVsaXZlcnkuCiAqIC0gbWV0aG9kOiBhKSBGb3IgdGhlIG51bWVyYXRvciBhbmQgcHJvZ3JhbW1lLWJhc2VkL3NlcnZpY2UgZGVsaXZlcnkgZGVub21pbmF0b3I6IFByb2dyYW1tZSByZWNvcmRzIChmb3IgZXhhbXBsZSwgUE1UQ1QgcmVnaXN0ZXJzLCBBUlYgcmVnaXN0ZXJzLCBsYWJvdXIgYW5kIGRlbGl2ZXJ5IHJlZ2lzdGVycykgfCAgfCBiKSBGb3IgdGhlIHBvcHVsYXRpb24tYmFzZWQgZGVub21pbmF0b3I6IE1vZGVsbGluZy1iYXNlZCBlc3RpbWF0ZXMgKGZvciBleGFtcGxlLCBTcGVjdHJ1bSBBSU0pIHwgIHwgVGhlIHJlY29tbWVuZGVkIHJlcG9ydGluZyBwZXJpb2QgaXMgMTIgbW9udGhzLgogKiAKICogU3VnZ2VzdGVkIFNjb3JpbmcgTWV0aG9kOiBwcm9wb3J0aW9uIHwgaHR0cDovL2hsNy5vcmcvZmhpci91cy9jcWZtZWFzdXJlcy9TdHJ1Y3R1cmVEZWZpbml0aW9uL3Byb3BvcnRpb24tbWVhc3VyZS1jcWZtCiAqLwoKbGlicmFyeSBISVZJTkQ0MExvZ2ljCgovLyBJbmNsdWRlZCBMaWJyYXJpZXMKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgSElWQ29tbW9uIHZlcnNpb24gJzAuMC4xJyBjYWxsZWQgSElDCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIFdIT0NvbW1vbiBjYWxsZWQgV0NvbQoKaW5jbHVkZSBISVZFbGVtZW50cyBjYWxsZWQgSEUKaW5jbHVkZSBISVZJbmRpY2F0b3JFbGVtZW50cyBjYWxsZWQgSElFCgovLyBJbmRpY2F0b3IgRGVmaW5pdGlvbgpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgSW50ZXJ2YWw8RGF0ZT4gZGVmYXVsdCBJbnRlcnZhbFtAMjAyMy0wMS0wMSwgQDIwMjMtMDEtMzBdCgpjb250ZXh0IFBhdGllbnQKLyogUG9wdWxhdGlvbnMgKi8KCi8qCiAqSW5pdGlhbCBQb3B1bGF0aW9uCiAqLwoKZGVmaW5lICJJbml0aWFsIFBvcHVsYXRpb24iOgogIHRydWUKCi8qKgogKiBOdW1lcmF0b3IKICogCiAqIERlZmluaXRpb246IE51bWJlciBvZiBISVYtcG9zaXRpdmUgcHJlZ25hbnQgd29tZW4gd2hvIGRlbGl2ZXJlZCBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QgYW5kIHJlY2VpdmVkIEFSVCBkdXJpbmcgcHJlZ25hbmN5IGFuZC9vciBhdCBsYWJvdXIgYW5kIGRlbGl2ZXJ5CiAqIENhbGN1bGF0aW9uOiBDT1VOVCBvZiB3b21lbiB3aXRoICJISVYgc3RhdHVzIj0nSElWLXBvc2l0aXZlJyBBTkQgIkRlbGl2ZXJ5IGRhdGUiIGluIHRoZSByZXBvcnRpbmcgcGVyaW9kIEFORCAoKCJPbiBBUlQiPVRydWUgYXQgbGFib3VyIGFuZCBkZWxpdmVyeSkgT1IgKCJPbiBBUlQiPVRydWUgZHVyaW5nIHByZWduYW5jeSwgZm9yIHRoaXMgcHJlZ25hbmN5KSkKICovCgoKZGVmaW5lICJOdW1lcmF0b3IiOgogIEhJRS4iSGFzIEhJVi1wb3NpdGl2ZSBTdGF0dXMiIGFuZAogIGV4aXN0cyhISUUuIkxpdmUgQmlydGggRGVsaXZlcnkiIEJpcnRoRGVsaXZlcnkKICAgIHdoZXJlIEJpcnRoRGVsaXZlcnkuZWZmZWN0aXZlLnRvSW50ZXJ2YWwoKSBkdXJpbmcgIk1lYXN1cmVtZW50IFBlcmlvZCIKICApIGFuZCAKICBleGlzdHMgKCAKICAgIEhFLiJPbiBBUlQgRC5ERTM4IiBBIAogICAgd2hlcmUgQS5lZmZlY3RpdmUudG9JbnRlcnZhbCgpIGR1cmluZyBGaXJzdChISUUuIkxpdmUgQmlydGggRGVsaXZlcnkiIEJpcnRoRGVsaXZlcnkKICAgIHdoZXJlIEJpcnRoRGVsaXZlcnkuZWZmZWN0aXZlLnRvSW50ZXJ2YWwoKSBkdXJpbmcgIk1lYXN1cmVtZW50IFBlcmlvZCIpLmVmZmVjdGl2ZS50b0ludGVydmFsKCkKICAgIG9yIAogICAgQS5lZmZlY3RpdmUudG9JbnRlcnZhbCgpIGR1cmluZyBGaXJzdChIRS4iQ3VycmVudGx5IHByZWduYW50IEIuREUyOSIgQyAKICAgIHdoZXJlIEMucHJldmFsZW5jZUludGVydmFsKCkgZHVyaW5nICJNZWFzdXJlbWVudCBQZXJpb2QiKS5wcmV2YWxlbmNlSW50ZXJ2YWwoKQogIAogICkKCgoKLyoqCiAqIERlbm9taW5hdG9yCiAqCiAqIERlZmluaXRpb246IGEpIFByb2dyYW1tZS1iYXNlZC9zZXJ2aWNlIGRlbGl2ZXJ5IGRlbm9taW5hdG9yIHwgTnVtYmVyIG9mIEhJVi1wb3NpdGl2ZSBwcmVnbmFudCB3b21lbiB3aG8gZGVsaXZlcmVkIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZCBhbmQgYXR0ZW5kZWQgQU5DIG9yIGhhZCBhIGZhY2lsaXR5LWJhc2VkIGRlbGl2ZXJ5IHwgYikgUG9wdWxhdGlvbi1iYXNlZCBkZW5vbWluYXRvciB8IE51bWJlciBvZiBISVYtcG9zaXRpdmUgcHJlZ25hbnQgd29tZW4gd2hvIGRlbGl2ZXJlZCBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QKICogQ2FsY3VsYXRpb246IFByb2dyYW1tZS1iYXNlZC9zZXJ2aWNlIGRlbGl2ZXJ5IGRlbm9taW5hdG9yOiB8IENPVU5UIG9mIHdvbWVuIHdpdGggIkhJViBzdGF0dXMiPSdISVYtcG9zaXRpdmUnIEFORCAiRGVsaXZlcnkgZGF0ZSIgaW4gdGhlIHJlcG9ydGluZyBwZXJpb2QgQU5EIChoYWQgYW4gIkFOQyBjb250YWN0IGRhdGUiIGR1cmluZyByZXBvcnRpbmcgcGVyaW9kIE9SICJQbGFjZSBvZiBkZWxpdmVyeSIgd2FzIGEgJ0hlYWx0aCBmYWNpbGl0eScpIHwgIHwgUG9wdWxhdGlvbi1iYXNlZCBkZW5vbWluYXRvcjogfCAqTnVtYmVyIG9mIEhJVi1wb3NpdGl2ZSBwcmVnbmFudCB3b21lbiB3aG8gZGVsaXZlcmVkIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKi8KCmRlZmluZSAiRGVub21pbmF0b3IiOgogIEhJRS4iSGFzIEhJVi1wb3NpdGl2ZSBTdGF0dXMiIGFuZAogIGV4aXN0cyhISUUuIkxpdmUgQmlydGggRGVsaXZlcnkiIEJpcnRoRGVsaXZlcnkKICAgIHdoZXJlIEJpcnRoRGVsaXZlcnkuZWZmZWN0aXZlLnRvSW50ZXJ2YWwoKSBkdXJpbmcgIk1lYXN1cmVtZW50IFBlcmlvZCIKICApYW5kIAogIChGaXJzdChISUUuIkFOQyB3aXRoaW4gcHJlZ25hbmN5IikucGVyaW9kLnRvSW50ZXJ2YWwoKSBkdXJpbmcgIk1lYXN1cmVtZW50IFBlcmlvZCIKICBvcgogICAgSElFLiJIYXMgRGVsaXZlcnkgaW4gSGVhbHRoIEZhY2lsaXR5IikKICAgIAoKLyogZW5kIFBvcHVsYXRpb25zICovCgovKgogKiBEaXNhZ2dyZWdhdG9ycwogKi8KCgpkZWZpbmUgIlRpbWluZyBvZiBBUlQgaW5pdGlhdGlvbiI6CiAgSElFLiJUaW1pbmcgb2YgQVJUIGluaXRpYXRpb24iCgpkZWZpbmUgIlN0cmF0aWZpY2F0aW9uIjoKICBISUUuIlRpbWluZyBvZiBBUlQgaW5pdGlhdGlvbiIuY29kZSA="/>
  </content>
</Library>