{
  "resourceType" : "Library",
  "id" : "CXCAIND01Logic",
  "meta" : {
    "profile" : ["http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary",
    "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary",
    "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library",
    "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module"]
  },
  "text" : {
    "status" : "extensions",
    "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n<div>\n    <table class=\"grid dict\">\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Title: </b></th>\n            <td style=\"padding-left: 4px;\">CXCAIND01Logic</td>\n        </tr>\n        \n\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Id: </b></th>\n            <td style=\"padding-left: 4px;\">CXCAIND01Logic</td>\n        </tr>\n        \n\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Version: </b></th>\n            <td style=\"padding-left: 4px;\">0.0.1</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Url: </b></th>\n            <td style=\"padding-left: 4px;\"><a href=\"Library-CXCAIND01Logic.html\">CXCAIND01Logic</a></td>\n        </tr>\n        \n\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Status: </b></th>\n            <td style=\"padding-left: 4px;\">draft</td>\n        </tr>\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Type: </b></th>\n            <td style=\"padding-left: 4px;\">\n                \n                    \n                        \n                        <p style=\"margin-bottom: 5px;\">\n                            <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>\n                        </p>\n                        \n                        \n                        <p style=\"margin-bottom: 5px;\">\n                            <b>code: </b> <span>logic-library</span>\n                        </p>\n                        \n                        \n                    \n                \n                \n            </td>\n        </tr>\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Date: </b></th>\n            <td style=\"padding-left: 4px;\">2026-05-14 00:50:23+0000</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Publisher: </b></th>\n            <td style=\"padding-left: 4px;\">Dan Heslinga (independent contributor)</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Description: </b></th>\n            <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>\n</div></td>\n        </tr>\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        <tr>\n          <th scope=\"row\"><b>Parameters: </b></th>\n          <td style=\"padding-left: 4px;\">\n            <table class=\"grid-dict\">\n              <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>\n              \n                <tr><th>Measurement Period</th><th>Period</th><th>0</th><th>1</th><th>In</th></tr>\n              \n                <tr><th>Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Initial Population</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Denominator</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Numerator</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n            </table>\n          </td>\n        </tr>\n        \n\n        \n\n        \n        \n        <tr>\n          <td colspan=\"2\">\n            <table>\n              <tr><th><a id=\"cql-content\"><b>Content: </b></a> text/cql</th></tr>\n              <tr><td><pre><code class=\"language-cql\">/*\n * Library: CXCAIND01Logic\n * Indicator: Cervical cancer screening coverage at target age 35\n *\n * The percentage of women in the target population who received HPV high-risk\n * DNA screening during the measurement period at the binding target age of 35.\n *\n * L2 Source: A/641 (2020) Annex 2 — coverage metrics framework.\n *   The cxca DAK adapts items 6-8 (Coverage %, Screening attendance %,\n *   Target population coverage) to a per-age stratification.\n *\n * Numerator: Women aged 35 in the measurement period who received an HPV\n *   high-risk DNA screening result during the period.\n * Denominator: Women aged 35 in the measurement period (target population\n *   for HPV screening per A/641 section 2.2).\n *\n * Phase 2 vertical slice — placeholder Initial Population / Denominator /\n * Numerator definitions, mirroring IMMZ's IND12 pattern. Subsequent iterations\n * will:\n *   - Define real cohort (women alive at start of period, aged 35, in jurisdiction)\n *   - Define real numerator (Observation with HPV-screening LOINC code in period)\n *   - Add disaggregation stratifiers (administrative area, age band)\n *   - Reference shared CXCAElements layer for CDS↔eCQM harmonization\n */\n\nlibrary CXCAIND01Logic version '0.0.1'\n\nusing FHIR version '4.0.1'\n\ninclude FHIRHelpers version '4.0.1'\n\nparameter &quot;Measurement Period&quot; Interval&lt;Date&gt; default Interval[@2026-01-01, @2026-12-31]\n\ncontext Patient\n\n/*\n * @initialPopulation: Women aged 35 in the measurement period (placeholder — true for Phase 2)\n */\ndefine &quot;Initial Population&quot;:\n  true\n\n/*\n * @denominator: As defined by Member State (placeholder — true for Phase 2)\n */\ndefine &quot;Denominator&quot;:\n  true\n\n/*\n * @numerator: Women aged 35 in measurement period with HPV screening event during period (placeholder — true for Phase 2)\n */\ndefine &quot;Numerator&quot;:\n  true\n</code></pre></td></tr>\n            </table>\n          </td>\n        </tr>\n        \n        \n        \n        \n        \n        <tr>\n          <td colspan=\"2\">\n            <table>\n              <tr><th><b>Content: </b> application/elm+xml</th></tr>\n              <tr><td><pre><code>Encoded data (10352 characters)</code></pre></td></tr>\n            </table>\n          </td>\n        </tr>\n        \n        \n    </table>\n</div>\n</div>"
  },
  "extension" : [{
    "url" : "http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability",
    "valueCode" : "computable"
  }],
  "url" : "http://smart.who.int/cxca/Library/CXCAIND01Logic",
  "version" : "0.0.1",
  "name" : "CXCAIND01Logic",
  "title" : "CXCAIND01Logic",
  "status" : "draft",
  "experimental" : false,
  "type" : {
    "coding" : [{
      "system" : "http://terminology.hl7.org/CodeSystem/library-type",
      "code" : "logic-library"
    }]
  },
  "date" : "2026-05-14T00:50:23+00:00",
  "publisher" : "Dan Heslinga (independent contributor)",
  "contact" : [{
    "name" : "Dan Heslinga (independent contributor)",
    "telecom" : [{
      "system" : "url",
      "value" : "https://github.com/dhes"
    }]
  }],
  "description" : "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" : "Measurement Period",
    "use" : "in",
    "min" : 0,
    "max" : "1",
    "type" : "Period"
  },
  {
    "name" : "Patient",
    "use" : "out",
    "min" : 0,
    "max" : "1",
    "type" : "Patient"
  },
  {
    "name" : "Initial Population",
    "use" : "out",
    "min" : 0,
    "max" : "1",
    "type" : "boolean"
  },
  {
    "name" : "Denominator",
    "use" : "out",
    "min" : 0,
    "max" : "1",
    "type" : "boolean"
  },
  {
    "name" : "Numerator",
    "use" : "out",
    "min" : 0,
    "max" : "1",
    "type" : "boolean"
  }],
  "content" : [{
    "contentType" : "text/cql",
    "data" : "LyoKICogTGlicmFyeTogQ1hDQUlORDAxTG9naWMKICogSW5kaWNhdG9yOiBDZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIGNvdmVyYWdlIGF0IHRhcmdldCBhZ2UgMzUKICoKICogVGhlIHBlcmNlbnRhZ2Ugb2Ygd29tZW4gaW4gdGhlIHRhcmdldCBwb3B1bGF0aW9uIHdobyByZWNlaXZlZCBIUFYgaGlnaC1yaXNrCiAqIEROQSBzY3JlZW5pbmcgZHVyaW5nIHRoZSBtZWFzdXJlbWVudCBwZXJpb2QgYXQgdGhlIGJpbmRpbmcgdGFyZ2V0IGFnZSBvZiAzNS4KICoKICogTDIgU291cmNlOiBBLzY0MSAoMjAyMCkgQW5uZXggMiDigJQgY292ZXJhZ2UgbWV0cmljcyBmcmFtZXdvcmsuCiAqICAgVGhlIGN4Y2EgREFLIGFkYXB0cyBpdGVtcyA2LTggKENvdmVyYWdlICUsIFNjcmVlbmluZyBhdHRlbmRhbmNlICUsCiAqICAgVGFyZ2V0IHBvcHVsYXRpb24gY292ZXJhZ2UpIHRvIGEgcGVyLWFnZSBzdHJhdGlmaWNhdGlvbi4KICoKICogTnVtZXJhdG9yOiBXb21lbiBhZ2VkIDM1IGluIHRoZSBtZWFzdXJlbWVudCBwZXJpb2Qgd2hvIHJlY2VpdmVkIGFuIEhQVgogKiAgIGhpZ2gtcmlzayBETkEgc2NyZWVuaW5nIHJlc3VsdCBkdXJpbmcgdGhlIHBlcmlvZC4KICogRGVub21pbmF0b3I6IFdvbWVuIGFnZWQgMzUgaW4gdGhlIG1lYXN1cmVtZW50IHBlcmlvZCAodGFyZ2V0IHBvcHVsYXRpb24KICogICBmb3IgSFBWIHNjcmVlbmluZyBwZXIgQS82NDEgc2VjdGlvbiAyLjIpLgogKgogKiBQaGFzZSAyIHZlcnRpY2FsIHNsaWNlIOKAlCBwbGFjZWhvbGRlciBJbml0aWFsIFBvcHVsYXRpb24gLyBEZW5vbWluYXRvciAvCiAqIE51bWVyYXRvciBkZWZpbml0aW9ucywgbWlycm9yaW5nIElNTVoncyBJTkQxMiBwYXR0ZXJuLiBTdWJzZXF1ZW50IGl0ZXJhdGlvbnMKICogd2lsbDoKICogICAtIERlZmluZSByZWFsIGNvaG9ydCAod29tZW4gYWxpdmUgYXQgc3RhcnQgb2YgcGVyaW9kLCBhZ2VkIDM1LCBpbiBqdXJpc2RpY3Rpb24pCiAqICAgLSBEZWZpbmUgcmVhbCBudW1lcmF0b3IgKE9ic2VydmF0aW9uIHdpdGggSFBWLXNjcmVlbmluZyBMT0lOQyBjb2RlIGluIHBlcmlvZCkKICogICAtIEFkZCBkaXNhZ2dyZWdhdGlvbiBzdHJhdGlmaWVycyAoYWRtaW5pc3RyYXRpdmUgYXJlYSwgYWdlIGJhbmQpCiAqICAgLSBSZWZlcmVuY2Ugc2hhcmVkIENYQ0FFbGVtZW50cyBsYXllciBmb3IgQ0RT4oaUZUNRTSBoYXJtb25pemF0aW9uCiAqLwoKbGlicmFyeSBDWENBSU5EMDFMb2dpYyB2ZXJzaW9uICcwLjAuMScKCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJwoKcGFyYW1ldGVyICJNZWFzdXJlbWVudCBQZXJpb2QiIEludGVydmFsPERhdGU+IGRlZmF1bHQgSW50ZXJ2YWxbQDIwMjYtMDEtMDEsIEAyMDI2LTEyLTMxXQoKY29udGV4dCBQYXRpZW50CgovKgogKiBAaW5pdGlhbFBvcHVsYXRpb246IFdvbWVuIGFnZWQgMzUgaW4gdGhlIG1lYXN1cmVtZW50IHBlcmlvZCAocGxhY2Vob2xkZXIg4oCUIHRydWUgZm9yIFBoYXNlIDIpCiAqLwpkZWZpbmUgIkluaXRpYWwgUG9wdWxhdGlvbiI6CiAgdHJ1ZQoKLyoKICogQGRlbm9taW5hdG9yOiBBcyBkZWZpbmVkIGJ5IE1lbWJlciBTdGF0ZSAocGxhY2Vob2xkZXIg4oCUIHRydWUgZm9yIFBoYXNlIDIpCiAqLwpkZWZpbmUgIkRlbm9taW5hdG9yIjoKICB0cnVlCgovKgogKiBAbnVtZXJhdG9yOiBXb21lbiBhZ2VkIDM1IGluIG1lYXN1cmVtZW50IHBlcmlvZCB3aXRoIEhQViBzY3JlZW5pbmcgZXZlbnQgZHVyaW5nIHBlcmlvZCAocGxhY2Vob2xkZXIg4oCUIHRydWUgZm9yIFBoYXNlIDIpCiAqLwpkZWZpbmUgIk51bWVyYXRvciI6CiAgdHJ1ZQo="
  },
  {
    "contentType" : "application/elm+xml",
    "data" : "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="
  }]
}