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

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

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

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

        
        <tr>
            <th scope="row"><b>Url: </b></th>
            <td style="padding-left: 4px;"><a href="Library-CXCAIND01Logic.html">CXCAIND01Logic</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-05-14 00:50:23+0000</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Publisher: </b></th>
            <td style="padding-left: 4px;">Dan Heslinga (independent contributor)</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Description: </b></th>
            <td style="padding-left: 4px;"><div><p>CQL logic library for the CXCA.IND.01 indicator: cervical cancer screening coverage at target age 35. Source CQL is at input/cql/CXCAIND01Logic.cql.</p>
</div></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>Measurement Period</th><th>Period</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>Initial Population</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Denominator</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Numerator</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: CXCAIND01Logic
 * Indicator: Cervical cancer screening coverage at target age 35
 *
 * The percentage of women in the target population who received HPV high-risk
 * DNA screening during the measurement period at the binding target age of 35.
 *
 * L2 Source: A/641 (2020) Annex 2 — coverage metrics framework.
 *   The cxca DAK adapts items 6-8 (Coverage %, Screening attendance %,
 *   Target population coverage) to a per-age stratification.
 *
 * Numerator: Women aged 35 in the measurement period who received an HPV
 *   high-risk DNA screening result during the period.
 * Denominator: Women aged 35 in the measurement period (target population
 *   for HPV screening per A/641 section 2.2).
 *
 * Phase 2 vertical slice — placeholder Initial Population / Denominator /
 * Numerator definitions, mirroring IMMZ's IND12 pattern. Subsequent iterations
 * will:
 *   - Define real cohort (women alive at start of period, aged 35, in jurisdiction)
 *   - Define real numerator (Observation with HPV-screening LOINC code in period)
 *   - Add disaggregation stratifiers (administrative area, age band)
 *   - Reference shared CXCAElements layer for CDS↔eCQM harmonization
 */

library CXCAIND01Logic version '0.0.1'

using FHIR version '4.0.1'

include FHIRHelpers version '4.0.1'

parameter &quot;Measurement Period&quot; Interval&lt;Date&gt; default Interval[@2026-01-01, @2026-12-31]

context Patient

/*
 * @initialPopulation: Women aged 35 in the measurement period (placeholder — true for Phase 2)
 */
define &quot;Initial Population&quot;:
  true

/*
 * @denominator: As defined by Member State (placeholder — true for Phase 2)
 */
define &quot;Denominator&quot;:
  true

/*
 * @numerator: Women aged 35 in measurement period with HPV screening event during period (placeholder — true for Phase 2)
 */
define &quot;Numerator&quot;:
  true
</code></pre></td></tr>
            </table>
          </td>
        </tr>
        
        
        
        
        
        <tr>
          <td colspan="2">
            <table>
              <tr><th><b>Content: </b> application/elm+xml</th></tr>
              <tr><td><pre><code>Encoded data (10352 characters)</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/cxca/Library/CXCAIND01Logic"/>
  <version value="0.0.1"/>
  <name value="CXCAIND01Logic"/>
  <title value="CXCAIND01Logic"/>
  <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-05-14T00:50:23+00:00"/>
  <publisher value="Dan Heslinga (independent contributor)"/>
  <contact>
    <name value="Dan Heslinga (independent contributor)"/>
    <telecom>
      <system value="url"/>
      <value value="https://github.com/dhes"/>
    </telecom>
  </contact>
  <description value="CQL logic library for the CXCA.IND.01 indicator: cervical cancer screening coverage at target age 35. Source CQL is at input/cql/CXCAIND01Logic.cql."/>
  <parameter>
    <name value="Measurement Period"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Period"/>
  </parameter>
  <parameter>
    <name value="Patient"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Patient"/>
  </parameter>
  <parameter>
    <name value="Initial Population"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Denominator"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Numerator"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <content>
    <contentType value="text/cql"/>
    <data value="LyoKICogTGlicmFyeTogQ1hDQUlORDAxTG9naWMKICogSW5kaWNhdG9yOiBDZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIGNvdmVyYWdlIGF0IHRhcmdldCBhZ2UgMzUKICoKICogVGhlIHBlcmNlbnRhZ2Ugb2Ygd29tZW4gaW4gdGhlIHRhcmdldCBwb3B1bGF0aW9uIHdobyByZWNlaXZlZCBIUFYgaGlnaC1yaXNrCiAqIEROQSBzY3JlZW5pbmcgZHVyaW5nIHRoZSBtZWFzdXJlbWVudCBwZXJpb2QgYXQgdGhlIGJpbmRpbmcgdGFyZ2V0IGFnZSBvZiAzNS4KICoKICogTDIgU291cmNlOiBBLzY0MSAoMjAyMCkgQW5uZXggMiDigJQgY292ZXJhZ2UgbWV0cmljcyBmcmFtZXdvcmsuCiAqICAgVGhlIGN4Y2EgREFLIGFkYXB0cyBpdGVtcyA2LTggKENvdmVyYWdlICUsIFNjcmVlbmluZyBhdHRlbmRhbmNlICUsCiAqICAgVGFyZ2V0IHBvcHVsYXRpb24gY292ZXJhZ2UpIHRvIGEgcGVyLWFnZSBzdHJhdGlmaWNhdGlvbi4KICoKICogTnVtZXJhdG9yOiBXb21lbiBhZ2VkIDM1IGluIHRoZSBtZWFzdXJlbWVudCBwZXJpb2Qgd2hvIHJlY2VpdmVkIGFuIEhQVgogKiAgIGhpZ2gtcmlzayBETkEgc2NyZWVuaW5nIHJlc3VsdCBkdXJpbmcgdGhlIHBlcmlvZC4KICogRGVub21pbmF0b3I6IFdvbWVuIGFnZWQgMzUgaW4gdGhlIG1lYXN1cmVtZW50IHBlcmlvZCAodGFyZ2V0IHBvcHVsYXRpb24KICogICBmb3IgSFBWIHNjcmVlbmluZyBwZXIgQS82NDEgc2VjdGlvbiAyLjIpLgogKgogKiBQaGFzZSAyIHZlcnRpY2FsIHNsaWNlIOKAlCBwbGFjZWhvbGRlciBJbml0aWFsIFBvcHVsYXRpb24gLyBEZW5vbWluYXRvciAvCiAqIE51bWVyYXRvciBkZWZpbml0aW9ucywgbWlycm9yaW5nIElNTVoncyBJTkQxMiBwYXR0ZXJuLiBTdWJzZXF1ZW50IGl0ZXJhdGlvbnMKICogd2lsbDoKICogICAtIERlZmluZSByZWFsIGNvaG9ydCAod29tZW4gYWxpdmUgYXQgc3RhcnQgb2YgcGVyaW9kLCBhZ2VkIDM1LCBpbiBqdXJpc2RpY3Rpb24pCiAqICAgLSBEZWZpbmUgcmVhbCBudW1lcmF0b3IgKE9ic2VydmF0aW9uIHdpdGggSFBWLXNjcmVlbmluZyBMT0lOQyBjb2RlIGluIHBlcmlvZCkKICogICAtIEFkZCBkaXNhZ2dyZWdhdGlvbiBzdHJhdGlmaWVycyAoYWRtaW5pc3RyYXRpdmUgYXJlYSwgYWdlIGJhbmQpCiAqICAgLSBSZWZlcmVuY2Ugc2hhcmVkIENYQ0FFbGVtZW50cyBsYXllciBmb3IgQ0RT4oaUZUNRTSBoYXJtb25pemF0aW9uCiAqLwoKbGlicmFyeSBDWENBSU5EMDFMb2dpYyB2ZXJzaW9uICcwLjAuMScKCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJwoKcGFyYW1ldGVyICJNZWFzdXJlbWVudCBQZXJpb2QiIEludGVydmFsPERhdGU+IGRlZmF1bHQgSW50ZXJ2YWxbQDIwMjYtMDEtMDEsIEAyMDI2LTEyLTMxXQoKY29udGV4dCBQYXRpZW50CgovKgogKiBAaW5pdGlhbFBvcHVsYXRpb246IFdvbWVuIGFnZWQgMzUgaW4gdGhlIG1lYXN1cmVtZW50IHBlcmlvZCAocGxhY2Vob2xkZXIg4oCUIHRydWUgZm9yIFBoYXNlIDIpCiAqLwpkZWZpbmUgIkluaXRpYWwgUG9wdWxhdGlvbiI6CiAgdHJ1ZQoKLyoKICogQGRlbm9taW5hdG9yOiBBcyBkZWZpbmVkIGJ5IE1lbWJlciBTdGF0ZSAocGxhY2Vob2xkZXIg4oCUIHRydWUgZm9yIFBoYXNlIDIpCiAqLwpkZWZpbmUgIkRlbm9taW5hdG9yIjoKICB0cnVlCgovKgogKiBAbnVtZXJhdG9yOiBXb21lbiBhZ2VkIDM1IGluIG1lYXN1cmVtZW50IHBlcmlvZCB3aXRoIEhQViBzY3JlZW5pbmcgZXZlbnQgZHVyaW5nIHBlcmlvZCAocGxhY2Vob2xkZXIg4oCUIHRydWUgZm9yIFBoYXNlIDIpCiAqLwpkZWZpbmUgIk51bWVyYXRvciI6CiAgdHJ1ZQo="/>
  </content>
  <content>
    <contentType value="application/elm+xml"/>
    <data value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSIgbG9jYWxJZD0iMCI+CiAgIDxhbm5vdGF0aW9uIHRyYW5zbGF0b3JPcHRpb25zPSJFbmFibGVBbm5vdGF0aW9ucyxFbmFibGVMb2NhdG9ycyxEaXNhYmxlTGlzdERlbW90aW9uLERpc2FibGVMaXN0UHJvbW90aW9uIiBzaWduYXR1cmVMZXZlbD0iT3ZlcmxvYWRzIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUluZm8iLz4KICAgPGFubm90YXRpb24gbWVzc2FnZT0iQW4gb3BlcmFuZCBpZGVudGlmaWVyIHJlZmVyZW5jZSBpcyBoaWRpbmcgYW5vdGhlciBpZGVudGlmaWVyIG9mIHRoZSBzYW1lIG5hbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IkFuIG9wZXJhbmQgaWRlbnRpZmllciByZWZlcmVuY2UgaXMgaGlkaW5nIGFub3RoZXIgaWRlbnRpZmllciBvZiB0aGUgc2FtZSBuYW1lLiIgZXJyb3JUeXBlPSJzZW1hbnRpYyIgZXJyb3JTZXZlcml0eT0id2FybmluZyIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1FcnJvciIvPgogICA8YW5ub3RhdGlvbiBtZXNzYWdlPSJBbiBvcGVyYW5kIGlkZW50aWZpZXIgcmVmZXJlbmNlIGlzIGhpZGluZyBhbm90aGVyIGlkZW50aWZpZXIgb2YgdGhlIHNhbWUgbmFtZS4iIGVycm9yVHlwZT0ic2VtYW50aWMiIGVycm9yU2V2ZXJpdHk9Indhcm5pbmciIHhzaTp0eXBlPSJhOkNxbFRvRWxtRXJyb3IiLz4KICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgIDxhOnMgcj0iMjM5Ij4KICAgICAgICAgPGE6cz4vKgogKiBMaWJyYXJ5OiBDWENBSU5EMDFMb2dpYwogKiBJbmRpY2F0b3I6IENlcnZpY2FsIGNhbmNlciBzY3JlZW5pbmcgY292ZXJhZ2UgYXQgdGFyZ2V0IGFnZSAzNQogKgogKiBUaGUgcGVyY2VudGFnZSBvZiB3b21lbiBpbiB0aGUgdGFyZ2V0IHBvcHVsYXRpb24gd2hvIHJlY2VpdmVkIEhQViBoaWdoLXJpc2sKICogRE5BIHNjcmVlbmluZyBkdXJpbmcgdGhlIG1lYXN1cmVtZW50IHBlcmlvZCBhdCB0aGUgYmluZGluZyB0YXJnZXQgYWdlIG9mIDM1LgogKgogKiBMMiBTb3VyY2U6IEEvNjQxICgyMDIwKSBBbm5leCAyIOKAlCBjb3ZlcmFnZSBtZXRyaWNzIGZyYW1ld29yay4KICogICBUaGUgY3hjYSBEQUsgYWRhcHRzIGl0ZW1zIDYtOCAoQ292ZXJhZ2UgJSwgU2NyZWVuaW5nIGF0dGVuZGFuY2UgJSwKICogICBUYXJnZXQgcG9wdWxhdGlvbiBjb3ZlcmFnZSkgdG8gYSBwZXItYWdlIHN0cmF0aWZpY2F0aW9uLgogKgogKiBOdW1lcmF0b3I6IFdvbWVuIGFnZWQgMzUgaW4gdGhlIG1lYXN1cmVtZW50IHBlcmlvZCB3aG8gcmVjZWl2ZWQgYW4gSFBWCiAqICAgaGlnaC1yaXNrIEROQSBzY3JlZW5pbmcgcmVzdWx0IGR1cmluZyB0aGUgcGVyaW9kLgogKiBEZW5vbWluYXRvcjogV29tZW4gYWdlZCAzNSBpbiB0aGUgbWVhc3VyZW1lbnQgcGVyaW9kICh0YXJnZXQgcG9wdWxhdGlvbgogKiAgIGZvciBIUFYgc2NyZWVuaW5nIHBlciBBLzY0MSBzZWN0aW9uIDIuMikuCiAqCiAqIFBoYXNlIDIgdmVydGljYWwgc2xpY2Ug4oCUIHBsYWNlaG9sZGVyIEluaXRpYWwgUG9wdWxhdGlvbiAvIERlbm9taW5hdG9yIC8KICogTnVtZXJhdG9yIGRlZmluaXRpb25zLCBtaXJyb3JpbmcgSU1NWidzIElORDEyIHBhdHRlcm4uIFN1YnNlcXVlbnQgaXRlcmF0aW9ucwogKiB3aWxsOgogKiAgIC0gRGVmaW5lIHJlYWwgY29ob3J0ICh3b21lbiBhbGl2ZSBhdCBzdGFydCBvZiBwZXJpb2QsIGFnZWQgMzUsIGluIGp1cmlzZGljdGlvbikKICogICAtIERlZmluZSByZWFsIG51bWVyYXRvciAoT2JzZXJ2YXRpb24gd2l0aCBIUFYtc2NyZWVuaW5nIExPSU5DIGNvZGUgaW4gcGVyaW9kKQogKiAgIC0gQWRkIGRpc2FnZ3JlZ2F0aW9uIHN0cmF0aWZpZXJzIChhZG1pbmlzdHJhdGl2ZSBhcmVhLCBhZ2UgYmFuZCkKICogICAtIFJlZmVyZW5jZSBzaGFyZWQgQ1hDQUVsZW1lbnRzIGxheWVyIGZvciBDRFPihpRlQ1FNIGhhcm1vbml6YXRpb24KICovCgpsaWJyYXJ5IENYQ0FJTkQwMUxvZ2ljIHZlcnNpb24gJzAuMC4xJzwvYTpzPgogICAgICA8L2E6cz4KICAgPC9hbm5vdGF0aW9uPgogICA8aWRlbnRpZmllciBpZD0iQ1hDQUlORDAxTG9naWMiIHN5c3RlbT0iaHR0cDovL3NtYXJ0Lndoby5pbnQvY3hjYSIgdmVyc2lvbj0iMC4wLjEiLz4KICAgPHNjaGVtYUlkZW50aWZpZXIgaWQ9InVybjpobDctb3JnOmVsbSIgdmVyc2lvbj0icjEiLz4KICAgPHVzaW5ncz4KICAgICAgPGRlZiBsb2NhbElkPSIxIiBsb2NhbElkZW50aWZpZXI9IlN5c3RlbSIgdXJpPSJ1cm46aGw3LW9yZzplbG0tdHlwZXM6cjEiIHZlcnNpb249IjEuMC4wIi8+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjA2IiBsb2NhdG9yPSIyODoxLTI4OjI2IiBsb2NhbElkZW50aWZpZXI9IkZISVIiIHVyaT0iaHR0cDovL2hsNy5vcmcvZmhpciIgdmVyc2lvbj0iNC4wLjEiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIyMDYiPgogICAgICAgICAgICAgICA8YTpzPnVzaW5nIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkZISVI8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IHZlcnNpb24gJzQuMC4xJzwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgPC91c2luZ3M+CiAgIDxpbmNsdWRlcz4KICAgICAgPGRlZiBsb2NhbElkPSIyMDgiIGxvY2F0b3I9IjMwOjEtMzA6MzUiIGxvY2FsSWRlbnRpZmllcj0iRkhJUkhlbHBlcnMiIHBhdGg9Imh0dHA6Ly9obDcub3JnL2ZoaXIvRkhJUkhlbHBlcnMiIHZlcnNpb249IjQuMC4xIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMjA4Ij4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkZISVJIZWxwZXJzPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiB2ZXJzaW9uICc0LjAuMSc8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgIDwvaW5jbHVkZXM+CiAgIDxwYXJhbWV0ZXJzPgogICAgICA8ZGVmIGxvY2FsSWQ9IjIxMCIgbG9jYXRvcj0iMzI6MS0zMjo4OCIgbmFtZT0iTWVhc3VyZW1lbnQgUGVyaW9kIiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMjEwIj4KICAgICAgICAgICAgICAgPGE6cz5wYXJhbWV0ZXIgJnF1b3Q7TWVhc3VyZW1lbnQgUGVyaW9kJnF1b3Q7IDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjIyMiI+CiAgICAgICAgICAgICAgICAgIDxhOnM+SW50ZXJ2YWwmbHQ7PC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjIzIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5EYXRlPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzPj48L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IGRlZmF1bHQgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMjIxIj4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIyMTUiPkludGVydmFsW0AyMDI2LTAxLTAxLCBAMjAyNi0xMi0zMV08L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxkZWZhdWx0IGxvY2FsSWQ9IjIyMSIgbG9jYXRvcj0iMzI6NTUtMzI6ODgiIGxvd0Nsb3NlZD0idHJ1ZSIgaGlnaENsb3NlZD0idHJ1ZSIgeHNpOnR5cGU9IkludGVydmFsIj4KICAgICAgICAgICAgPGxvdyBsb2NhbElkPSIyMTUiIGxvY2F0b3I9IjMyOjY0LTMyOjc0IiB4c2k6dHlwZT0iRGF0ZSI+CiAgICAgICAgICAgICAgIDx5ZWFyIGxvY2FsSWQ9IjIxMiIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIyMDI2IiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8bW9udGggbG9jYWxJZD0iMjEzIiB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjEiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDxkYXkgbG9jYWxJZD0iMjE0IiB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjEiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgIDwvbG93PgogICAgICAgICAgICA8aGlnaCBsb2NhbElkPSIyMjAiIGxvY2F0b3I9IjMyOjc3LTMyOjg3IiB4c2k6dHlwZT0iRGF0ZSI+CiAgICAgICAgICAgICAgIDx5ZWFyIGxvY2FsSWQ9IjIxNyIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIyMDI2IiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8bW9udGggbG9jYWxJZD0iMjE4IiB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjEyIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8ZGF5IGxvY2FsSWQ9IjIxOSIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIzMSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgPC9oaWdoPgogICAgICAgICA8L2RlZmF1bHQ+CiAgICAgICAgIDxwYXJhbWV0ZXJUeXBlU3BlY2lmaWVyIGxvY2FsSWQ9IjIyMiIgbG9jYXRvcj0iMzI6MzItMzI6NDUiIHhzaTp0eXBlPSJJbnRlcnZhbFR5cGVTcGVjaWZpZXIiPgogICAgICAgICAgICA8cG9pbnRUeXBlIGxvY2FsSWQ9IjIyMyIgbG9jYXRvcj0iMzI6NDEtMzI6NDQiIG5hbWU9InQ6RGF0ZSIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICA8L3BhcmFtZXRlclR5cGVTcGVjaWZpZXI+CiAgICAgIDwvZGVmPgogICA8L3BhcmFtZXRlcnM+CiAgIDxjb250ZXh0cz4KICAgICAgPGRlZiBsb2NhbElkPSIyMjgiIGxvY2F0b3I9IjM0OjEtMzQ6MTUiIG5hbWU9IlBhdGllbnQiLz4KICAgPC9jb250ZXh0cz4KICAgPHN0YXRlbWVudHM+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjI2IiBsb2NhdG9yPSIzNDoxLTM0OjE1IiBuYW1lPSJQYXRpZW50IiBjb250ZXh0PSJQYXRpZW50Ij4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMjI3IiB4c2k6dHlwZT0iU2luZ2xldG9uRnJvbSI+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjIyNSIgbG9jYXRvcj0iMzQ6MS0zNDoxNSIgZGF0YVR5cGU9ImZoaXI6UGF0aWVudCIgdGVtcGxhdGVJZD0iaHR0cDovL2hsNy5vcmcvZmhpci9TdHJ1Y3R1cmVEZWZpbml0aW9uL1BhdGllbnQiIHhzaTp0eXBlPSJSZXRyaWV2ZSIvPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjIzMSIgbG9jYXRvcj0iMzk6MS00MDo2IiBuYW1lPSJJbml0aWFsIFBvcHVsYXRpb24iIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6dCBuYW1lPSJpbml0aWFsUG9wdWxhdGlvbiIgdmFsdWU9IldvbWVuIGFnZWQgMzUgaW4gdGhlIG1lYXN1cmVtZW50IHBlcmlvZCAocGxhY2Vob2xkZXIg4oCUIHRydWUgZm9yIFBoYXNlIDIpIi8+CiAgICAgICAgICAgIDxhOnMgcj0iMjMxIj4KICAgICAgICAgICAgICAgPGE6cyByPSIyMzIiPi8qCiAqIEBpbml0aWFsUG9wdWxhdGlvbjogV29tZW4gYWdlZCAzNSBpbiB0aGUgbWVhc3VyZW1lbnQgcGVyaW9kIChwbGFjZWhvbGRlciDigJQgdHJ1ZSBmb3IgUGhhc2UgMikKICovCmRlZmluZSAmcXVvdDtJbml0aWFsIFBvcHVsYXRpb24mcXVvdDs6CiAgdHJ1ZTwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIyMzIiIGxvY2F0b3I9IjQwOjMtNDA6NiIgdmFsdWVUeXBlPSJ0OkJvb2xlYW4iIHZhbHVlPSJ0cnVlIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIyMzUiIGxvY2F0b3I9IjQ1OjEtNDY6NiIgbmFtZT0iRGVub21pbmF0b3IiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6dCBuYW1lPSJkZW5vbWluYXRvciIgdmFsdWU9IkFzIGRlZmluZWQgYnkgTWVtYmVyIFN0YXRlIChwbGFjZWhvbGRlciDigJQgdHJ1ZSBmb3IgUGhhc2UgMikiLz4KICAgICAgICAgICAgPGE6cyByPSIyMzUiPgogICAgICAgICAgICAgICA8YTpzIHI9IjIzNiI+LyoKICogQGRlbm9taW5hdG9yOiBBcyBkZWZpbmVkIGJ5IE1lbWJlciBTdGF0ZSAocGxhY2Vob2xkZXIg4oCUIHRydWUgZm9yIFBoYXNlIDIpCiAqLwpkZWZpbmUgJnF1b3Q7RGVub21pbmF0b3ImcXVvdDs6CiAgdHJ1ZTwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIyMzYiIGxvY2F0b3I9IjQ2OjMtNDY6NiIgdmFsdWVUeXBlPSJ0OkJvb2xlYW4iIHZhbHVlPSJ0cnVlIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIyMzkiIGxvY2F0b3I9IjUxOjEtNTI6NiIgbmFtZT0iTnVtZXJhdG9yIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnQgbmFtZT0ibnVtZXJhdG9yIiB2YWx1ZT0iV29tZW4gYWdlZCAzNSBpbiBtZWFzdXJlbWVudCBwZXJpb2Qgd2l0aCBIUFYgc2NyZWVuaW5nIGV2ZW50IGR1cmluZyBwZXJpb2QgKHBsYWNlaG9sZGVyIOKAlCB0cnVlIGZvciBQaGFzZSAyKSIvPgogICAgICAgICAgICA8YTpzIHI9IjIzOSI+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMjQwIj4vKgogKiBAbnVtZXJhdG9yOiBXb21lbiBhZ2VkIDM1IGluIG1lYXN1cmVtZW50IHBlcmlvZCB3aXRoIEhQViBzY3JlZW5pbmcgZXZlbnQgZHVyaW5nIHBlcmlvZCAocGxhY2Vob2xkZXIg4oCUIHRydWUgZm9yIFBoYXNlIDIpCiAqLwpkZWZpbmUgJnF1b3Q7TnVtZXJhdG9yJnF1b3Q7OgogIHRydWU8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMjQwIiBsb2NhdG9yPSI1MjozLTUyOjYiIHZhbHVlVHlwZT0idDpCb29sZWFuIiB2YWx1ZT0idHJ1ZSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgPC9kZWY+CiAgIDwvc3RhdGVtZW50cz4KPC9saWJyYXJ5Pgo="/>
  </content>
</Library>