This page is part of the US Situational Awareness Framework for Reporting (US SAFR) Implementation Guide (v1.0.0-ballot: STU 1 Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. No current official version has been published yet. For a full list of available versions, see the Directory of published versions
Page standards status: Informative |
<Library xmlns="http://hl7.org/fhir">
<id value="HRDMeasureLibrary"/>
<meta>
<profile
value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-computablelibrary|1.0.0"/>
</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;">Library - HRD Measure Example</td>
</tr>
<tr>
<th scope="row"><b>Id: </b></th>
<td style="padding-left: 4px;">HRDMeasureLibrary</td>
</tr>
<tr>
<th scope="row"><b>Version: </b></th>
<td style="padding-left: 4px;">1.0.0-ballot</td>
</tr>
<tr>
<th scope="row"><b>Url: </b></th>
<td style="padding-left: 4px;"><code>http://example.org/fhir/Library/HRDMeasureLibrary</code></td>
</tr>
<tr>
<th scope="row">
<b>
</b>
</th>
<td style="padding-left: 4px;">
<p style="margin-bottom: 5px;">
<span>urn:oid:2.16.840.1.113883.4.642.40.53.28.3</span>
</p>
</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.2.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;">2025-03-13</td>
</tr>
<tr>
<th scope="row"><b>Publisher: </b></th>
<td style="padding-left: 4px;">HL7 International / Public Health</td>
</tr>
<tr>
<th scope="row"><b>Description: </b></th>
<td style="padding-left: 4px;"><div><p>This library contains CQL logic for evaluating structural measures related to hospital respiratory disease reporting capabilities</p>
</div></td>
</tr>
<tr>
<th scope="row"><b>Use Context: </b></th>
<td style="padding-left: 4px;">
<table class="grid-dict">
<tr>
<th><b>code</b></th>
<th><b>value</b></th>
</tr>
<tr>
<td>focus</td>
<td/>
</tr>
</table>
</td>
</tr>
<tr>
<th scope="row"><b>Jurisdiction: </b></th>
<td style="padding-left: 4px;">US</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="http://fhir.org/guides/cqf/common/4.0.1/Library-FHIRHelpers.html">http://fhir.org/guides/cqf/common/Library/FHIRHelpers</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113762.1.4.1146.1123/expansion">COVID_19 (Disorders) (ICD10CM)</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.464.1003.102.12.1012/expansion">Acute Tonsillitis</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113762.1.4.1146.1124/expansion">COVID_19 (Disorders) (SNOMED)version: null20240123)</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113762.1.4.1146.1125/expansion">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1125</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.117.1.7.1.87/expansion">Discharge To Acute Care Facility</a></li>
<li><a href="https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.5.1001/expansion">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.5.1001</a></li>
<li><code>http://loinc.org|11516-2</code></li>
<li><a href="http://hl7.org/fhir/R4/valueset-communication-category.html">CommunicationCategory</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>Measurement Period</th><th>Period</th><th>1</th><th>1</th><th>In</th></tr>
</table>
</td>
</tr>
<tr>
<th scope="row"><b>Data Requirements:</b></th>
<td style="padding-left: 4px;">
<table class="grid-dict">
<tr><th><b>Type</b></th><th><b>Profile</b></th><th><b>Must Support</b></th><th><b>Code Filter</b></th></tr>
<tr>
<th>Device</th>
<th><a href="http://hl7.org/fhir/R4/device.html">Device</a></th>
<th/>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1123</span>
</span>
</th>
</tr>
<tr>
<th>Device</th>
<th><a href="http://hl7.org/fhir/R4/device.html">Device</a></th>
<th/>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1012</span>
</span>
</th>
</tr>
<tr>
<th>Device</th>
<th><a href="http://hl7.org/fhir/R4/device.html">Device</a></th>
<th/>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1124|20240123</span>
</span>
</th>
</tr>
<tr>
<th>Device</th>
<th><a href="http://hl7.org/fhir/R4/device.html">Device</a></th>
<th/>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1125</span>
</span>
</th>
</tr>
<tr>
<th>Device</th>
<th><a href="http://hl7.org/fhir/R4/device.html">Device</a></th>
<th/>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.5.1001</span>
</span>
</th>
</tr>
<tr>
<th>Location</th>
<th><a href="http://hl7.org/fhir/R4/location.html">Location</a></th>
<th/>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type</span>
</span>
<br/>
<span style="padding-left: 4px;">
<b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.87</span>
</span>
</th>
</tr>
<tr>
<th>Location</th>
<th><a href="http://hl7.org/fhir/R4/location.html">Location</a></th>
<th/>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>physicalType.coding.code</span>
</span>
<br/>
<p style="margin-bottom: 5px;">
<b>system: </b> <span><a href="http://terminology.hl7.org/6.2.0/CodeSystem-location-physical-type.html">http://terminology.hl7.org/CodeSystem/location-physical-type</a></span>
</p>
<p style="margin-bottom: 5px;">
<b>code: </b> <span>bd</span>
</p>
</th>
</tr>
<tr>
<th>DocumentReference</th>
<th><a href="http://hl7.org/fhir/R4/documentreference.html">DocumentReference</a></th>
<th/>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>type.coding.code</span>
</span>
<br/>
<p style="margin-bottom: 5px;">
<b>system: </b> <span><a href="https://loinc.org/">http://loinc.org</a></span>
</p>
<p style="margin-bottom: 5px;">
<b>code: </b> <span>11516-2</span>
</p>
</th>
</tr>
<tr>
<th>Communication</th>
<th><a href="http://hl7.org/fhir/R4/communication.html">Communication</a></th>
<th/>
<th>
<b>code filter: </b>
<br/>
<span style="padding-left: 4px;">
<b>path: </b><span>category.coding.code</span>
</span>
<br/>
<p style="margin-bottom: 5px;">
<b>system: </b> <span><a href="http://terminology.hl7.org/6.2.0/CodeSystem-communication-category.html">http://terminology.hl7.org/CodeSystem/communication-category</a></span>
</p>
<p style="margin-bottom: 5px;">
<b>code: </b> <span>notification</span>
</p>
</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 HRDMeasureStructureLibrary version '1.0.0'
using FHIR version '4.0.1'
include FHIRHelpers version '4.0.1' called FHIRHelpers
// Terminology definitions
codesystem "LOINC": 'http://loinc.org'
codesystem "SNOMED CT": 'http://snomed.info/sct&
codesystem "ICD-10-CM": 'http://hl7.org/fhir/sid/icd-10-cm'
// Value sets
valueset "Respiratory Specimen Collection Devices": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1125'
valueset "COVID-19 Tests": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1123'
valueset "Influenza Tests": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1012'
valueset "RSV Tests": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1124'
valueset "ICU Location Types": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.87'
valueset "Ventilator Device Types": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.5.1001'
// Parameter for measurement period
parameter "Measurement Period" Interval<Date>
default Interval[@2025-03-01, @2025-03-07]
context Patient
// STRUCTURE MEASURE COMPONENTS
// For a structure measure, we assess capabilities, resources and organizational structures
// 1. Test for the presence of respiratory testing capabilities
define "Has COVID-19 Testing Capability":
exists (
[Device] Device
where Device.type.coding in "COVID-19 Tests"
and Device.status = 'active'
)
define "Has Influenza Testing Capability":
exists (
[Device] Device
where Device.type.coding in "Influenza Tests"
and Device.status = 'active'
)
define "Has RSV Testing Capability":
exists (
[Device] Device
where Device.type.coding in "RSV Tests"
and Device.status = 'active'
)
define "Has Specimen Collection Capabilities":
exists (
[Device] Device
where Device.type.coding in "Respiratory Specimen Collection Devices"
and Device.status = 'active'
)
define "Has ICU Locations":
exists (
[Location] Location
where Location.type.coding in "ICU Location Types"
and Location.status = 'active'
)
define "Has Ventilator Resources":
exists (
[Device] Device
where Device.type.coding in "Ventilator Device Types"
and Device.status = 'active'
)
define "Has HRD Reporting Protocol":
exists (
[DocumentReference] D
where D.type.coding.code in {'11516-2'} // LOINC for infection control protocol
and D.status = 'current'
and D.description contains 'NHSN'
and D.description contains 'HRD'
)
// CONTINUOUS VARIABLE CALCULATIONS
// Hospital capacity metrics
define "Total Bed Capacity":
Sum(
[Location] Location
where Location.status = 'active'
and Location.physicalType.coding.code = 'bd'
return (
Location.extension E
where E.url = 'http://hl7.org/fhir/StructureDefinition/location-bed-count'
return E.valueInteger
).valueInteger
)
define "ICU Bed Capacity":
Sum(
[Location] Location
where Location.status = 'active'
and Location.type.coding in "ICU Location Types"
and Location.physicalType.coding.code = 'bd'
return (
Location.extension E
where E.url = 'http://hl7.org/fhir/StructureDefinition/location-bed-count'
return E.valueInteger
).valueInteger
)
define "Ventilator Count":
Count(
[Device] Device
where Device.type.coding in "Ventilator Device Types"
and Device.status = 'active'
)
// Weekly reporting compliance and metrics
define "Reporting Weeks in Measurement Period":
Count(
expand{2025-03-01, @2025-03-07, week}
)
define "HRD Reports Submitted During Period":
Count(
[Communication] C
where C.category.coding.code in {'notification'}
and C.topic.text contains 'NHSN'
and C.topic.text contains 'HRD'
and C.sent during "Measurement Period"
)
define "Weekly Reporting Compliance":
"HRD Reports Submitted During Period" / "Reporting Weeks in Measurement Period"
// Structural readiness scores
define "Has All Testing Capabilities":
if ("Has COVID-19 Testing Capability" and "Has Influenza Testing Capability" and "Has RSV Testing Capability")
then 1
else 0
define "Has Required Reporting Structure":
if ("Has HRD Reporting Protocol")
then 1
else 0
// Continuous variable for structural measure assessment
define "Structural Readiness Score":
("Has COVID-19 Testing Capability" as Integer +
"Has Influenza Testing Capability" as Integer +
"Has RSV Testing Capability" as Integer +
"Has Specimen Collection Capabilities" as Integer +
"Has ICU Locations" as Integer +
"Has Ventilator Resources" as Integer +
"Has HRD Reporting Protocol" as Integer) / 7.0 * 100.0
// Main measure calculation - now focusing on structural components and their ratings
define "Measure Population":
true
define "Measure Observation":
"Structural Readiness Score"</code></pre></td></tr>
</table>
</td>
</tr>
</table>
</div>
</div>
</text>
<url value="http://example.org/fhir/Library/HRDMeasureLibrary"/>
<identifier>
<system value="urn:ietf:rfc:3986"/>
<value value="urn:oid:2.16.840.1.113883.4.642.40.53.28.3"/>
</identifier>
<version value="1.0.0-ballot"/>
<name value="HRDMeasureLibrary"/>
<title value="Library - HRD Measure Example"/>
<status value="active"/>
<experimental value="false"/>
<type>
<coding>
<system value="http://terminology.hl7.org/CodeSystem/library-type"/>
<code value="logic-library"/>
</coding>
</type>
<date value="2025-03-13"/>
<publisher value="HL7 International / Public Health"/>
<contact>
<name value="HL7 International / Public Health"/>
<telecom>
<system value="url"/>
<value value="http://www.hl7.org/Special/committees/pher"/>
</telecom>
</contact>
<description
value="This library contains CQL logic for evaluating structural measures related to hospital respiratory disease reporting capabilities"/>
<useContext>
<code>
<system
value="http://terminology.hl7.org/CodeSystem/usage-context-type"/>
<code value="focus"/>
</code>
<valueCodeableConcept>
<coding>
<system value="http://snomed.info/sct"/>
<code value="64572001"/>
<display value="Disease"/>
</coding>
</valueCodeableConcept>
</useContext>
<jurisdiction>
<coding>
<system value="urn:iso:std:iso:3166"/>
<code value="US"/>
<display value="United States of America"/>
</coding>
</jurisdiction>
<relatedArtifact>
<type value="depends-on"/>
<display value="FHIR Helpers"/>
<resource value="http://fhir.org/guides/cqf/common/Library/FHIRHelpers"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="COVID-19 Tests ValueSet"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1123"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Influenza Tests ValueSet"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1012"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="RSV Tests ValueSet"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1124|20240123"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Respiratory Specimen Collection Devices ValueSet"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1125"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="ICU Location Types ValueSet"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.87"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Ventilator Device Types ValueSet"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.5.1001"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="DocumentReference Type ValueSet"/>
<resource value="http://loinc.org|11516-2"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Notification Communication Category"/>
<resource value="http://hl7.org/fhir/ValueSet/communication-category"/>
</relatedArtifact>
<parameter>
<name value="Measurement Period"/>
<use value="in"/>
<min value="1"/>
<max value="1"/>
<type value="Period"/>
</parameter>
<dataRequirement>
<type value="Device"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Device"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1123"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Device"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Device"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.102.12.1012"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Device"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Device"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1124|20240123"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Device"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Device"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1125"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Device"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Device"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.5.1001"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Location"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Location"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.87"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Location"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Location"/>
<codeFilter>
<path value="physicalType.coding.code"/>
<code>
<system
value="http://terminology.hl7.org/CodeSystem/location-physical-type"/>
<version value="2.0.1"/>
<code value="bd"/>
</code>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="DocumentReference"/>
<profile
value="http://hl7.org/fhir/StructureDefinition/DocumentReference"/>
<codeFilter>
<path value="type.coding.code"/>
<code>
<system value="http://loinc.org"/>
<code value="11516-2"/>
</code>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Communication"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Communication"/>
<codeFilter>
<path value="category.coding.code"/>
<code>
<system
value="http://terminology.hl7.org/CodeSystem/communication-category"/>
<code value="notification"/>
</code>
</codeFilter>
<dateFilter>
<searchParam value="date"/>
</dateFilter>
</dataRequirement>
<content>
<contentType value="text/cql"/>
<data
value="bGlicmFyeSBIUkRNZWFzdXJlU3RydWN0dXJlTGlicmFyeSB2ZXJzaW9uICcxLjAuMCcKCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJyBjYWxsZWQgRkhJUkhlbHBlcnMKCi8vIFRlcm1pbm9sb2d5IGRlZmluaXRpb25zCmNvZGVzeXN0ZW0gIkxPSU5DIjogJ2h0dHA6Ly9sb2luYy5vcmcnCmNvZGVzeXN0ZW0gIlNOT01FRCBDVCI6ICdodHRwOi8vc25vbWVkLmluZm8vc2N0Jgpjb2Rlc3lzdGVtICJJQ0QtMTAtQ00iOiAnaHR0cDovL2hsNy5vcmcvZmhpci9zaWQvaWNkLTEwLWNtJwoKLy8gVmFsdWUgc2V0cwp2YWx1ZXNldCAiUmVzcGlyYXRvcnkgU3BlY2ltZW4gQ29sbGVjdGlvbiBEZXZpY2VzIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTE0Ni4xMTI1Jwp2YWx1ZXNldCAiQ09WSUQtMTkgVGVzdHMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMTQ2LjExMjMnCnZhbHVlc2V0ICJJbmZsdWVuemEgVGVzdHMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAyLjEyLjEwMTInCnZhbHVlc2V0ICJSU1YgVGVzdHMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMTQ2LjExMjQnCnZhbHVlc2V0ICJJQ1UgTG9jYXRpb24gVHlwZXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjg3Jwp2YWx1ZXNldCAiVmVudGlsYXRvciBEZXZpY2UgVHlwZXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNS4xMDAxJwoKLy8gUGFyYW1ldGVyIGZvciBtZWFzdXJlbWVudCBwZXJpb2QKcGFyYW1ldGVyICJNZWFzdXJlbWVudCBQZXJpb2QiIEludGVydmFsPERhdGU+CiAgZGVmYXVsdCBJbnRlcnZhbFtAMjAyNS0wMy0wMSwgQDIwMjUtMDMtMDddCgpjb250ZXh0IFBhdGllbnQKCi8vIFNUUlVDVFVSRSBNRUFTVVJFIENPTVBPTkVOVFMKLy8gRm9yIGEgc3RydWN0dXJlIG1lYXN1cmUsIHdlIGFzc2VzcyBjYXBhYmlsaXRpZXMsIHJlc291cmNlcyBhbmQgb3JnYW5pemF0aW9uYWwgc3RydWN0dXJlcwoKLy8gMS4gVGVzdCBmb3IgdGhlIHByZXNlbmNlIG9mIHJlc3BpcmF0b3J5IHRlc3RpbmcgY2FwYWJpbGl0aWVzCmRlZmluZSAiSGFzIENPVklELTE5IFRlc3RpbmcgQ2FwYWJpbGl0eSI6CiAgZXhpc3RzICgKICAgIFtEZXZpY2VdIERldmljZQogICAgICB3aGVyZSBEZXZpY2UudHlwZS5jb2RpbmcgaW4gIkNPVklELTE5IFRlc3RzIgogICAgICAgIGFuZCBEZXZpY2Uuc3RhdHVzID0gJ2FjdGl2ZScKICApCgpkZWZpbmUgIkhhcyBJbmZsdWVuemEgVGVzdGluZyBDYXBhYmlsaXR5IjoKICBleGlzdHMgKAogICAgW0RldmljZV0gRGV2aWNlCiAgICAgIHdoZXJlIERldmljZS50eXBlLmNvZGluZyBpbiAiSW5mbHVlbnphIFRlc3RzIgogICAgICAgIGFuZCBEZXZpY2Uuc3RhdHVzID0gJ2FjdGl2ZScKICApCgpkZWZpbmUgIkhhcyBSU1YgVGVzdGluZyBDYXBhYmlsaXR5IjoKICBleGlzdHMgKAogICAgW0RldmljZV0gRGV2aWNlCiAgICAgIHdoZXJlIERldmljZS50eXBlLmNvZGluZyBpbiAiUlNWIFRlc3RzIgogICAgICAgIGFuZCBEZXZpY2Uuc3RhdHVzID0gJ2FjdGl2ZScKICApCgpkZWZpbmUgIkhhcyBTcGVjaW1lbiBDb2xsZWN0aW9uIENhcGFiaWxpdGllcyI6CiAgZXhpc3RzICgKICAgIFtEZXZpY2VdIERldmljZQogICAgICB3aGVyZSBEZXZpY2UudHlwZS5jb2RpbmcgaW4gIlJlc3BpcmF0b3J5IFNwZWNpbWVuIENvbGxlY3Rpb24gRGV2aWNlcyIKICAgICAgICBhbmQgRGV2aWNlLnN0YXR1cyA9ICdhY3RpdmUnCiAgKQoKZGVmaW5lICJIYXMgSUNVIExvY2F0aW9ucyI6CiAgZXhpc3RzICgKICAgIFtMb2NhdGlvbl0gTG9jYXRpb24KICAgICAgd2hlcmUgTG9jYXRpb24udHlwZS5jb2RpbmcgaW4gIklDVSBMb2NhdGlvbiBUeXBlcyIKICAgICAgICBhbmQgTG9jYXRpb24uc3RhdHVzID0gJ2FjdGl2ZScKICApCgpkZWZpbmUgIkhhcyBWZW50aWxhdG9yIFJlc291cmNlcyI6CiAgZXhpc3RzICgKICAgIFtEZXZpY2VdIERldmljZQogICAgICB3aGVyZSBEZXZpY2UudHlwZS5jb2RpbmcgaW4gIlZlbnRpbGF0b3IgRGV2aWNlIFR5cGVzIgogICAgICAgIGFuZCBEZXZpY2Uuc3RhdHVzID0gJ2FjdGl2ZScKICApCgpkZWZpbmUgIkhhcyBIUkQgUmVwb3J0aW5nIFByb3RvY29sIjoKICBleGlzdHMgKAogICAgW0RvY3VtZW50UmVmZXJlbmNlXSBECiAgICAgIHdoZXJlIEQudHlwZS5jb2RpbmcuY29kZSBpbiB7JzExNTE2LTInfSAvLyBMT0lOQyBmb3IgaW5mZWN0aW9uIGNvbnRyb2wgcHJvdG9jb2wKICAgICAgICBhbmQgRC5zdGF0dXMgPSAnY3VycmVudCcKICAgICAgICBhbmQgRC5kZXNjcmlwdGlvbiBjb250YWlucyAnTkhTTicKICAgICAgICBhbmQgRC5kZXNjcmlwdGlvbiBjb250YWlucyAnSFJEJwogICkKCi8vIENPTlRJTlVPVVMgVkFSSUFCTEUgQ0FMQ1VMQVRJT05TCgovLyBIb3NwaXRhbCBjYXBhY2l0eSBtZXRyaWNzCmRlZmluZSAiVG90YWwgQmVkIENhcGFjaXR5IjoKICBTdW0oCiAgICBbTG9jYXRpb25dIExvY2F0aW9uCiAgICAgIHdoZXJlIExvY2F0aW9uLnN0YXR1cyA9ICdhY3RpdmUnCiAgICAgICAgYW5kIExvY2F0aW9uLnBoeXNpY2FsVHlwZS5jb2RpbmcuY29kZSA9ICdiZCcKICAgICAgcmV0dXJuICgKICAgICAgICBMb2NhdGlvbi5leHRlbnNpb24gRQogICAgICAgICAgd2hlcmUgRS51cmwgPSAnaHR0cDovL2hsNy5vcmcvZmhpci9TdHJ1Y3R1cmVEZWZpbml0aW9uL2xvY2F0aW9uLWJlZC1jb3VudCcKICAgICAgICAgIHJldHVybiBFLnZhbHVlSW50ZWdlcgogICAgICApLnZhbHVlSW50ZWdlcgogICkKCmRlZmluZSAiSUNVIEJlZCBDYXBhY2l0eSI6CiAgU3VtKAogICAgW0xvY2F0aW9uXSBMb2NhdGlvbgogICAgICB3aGVyZSBMb2NhdGlvbi5zdGF0dXMgPSAnYWN0aXZlJwogICAgICAgIGFuZCBMb2NhdGlvbi50eXBlLmNvZGluZyBpbiAiSUNVIExvY2F0aW9uIFR5cGVzIgogICAgICAgIGFuZCBMb2NhdGlvbi5waHlzaWNhbFR5cGUuY29kaW5nLmNvZGUgPSAnYmQnCiAgICAgIHJldHVybiAoCiAgICAgICAgTG9jYXRpb24uZXh0ZW5zaW9uIEUKICAgICAgICAgIHdoZXJlIEUudXJsID0gJ2h0dHA6Ly9obDcub3JnL2ZoaXIvU3RydWN0dXJlRGVmaW5pdGlvbi9sb2NhdGlvbi1iZWQtY291bnQnCiAgICAgICAgICByZXR1cm4gRS52YWx1ZUludGVnZXIKICAgICAgKS52YWx1ZUludGVnZXIKICApCgpkZWZpbmUgIlZlbnRpbGF0b3IgQ291bnQiOgogIENvdW50KAogICAgW0RldmljZV0gRGV2aWNlCiAgICAgIHdoZXJlIERldmljZS50eXBlLmNvZGluZyBpbiAiVmVudGlsYXRvciBEZXZpY2UgVHlwZXMiCiAgICAgICAgYW5kIERldmljZS5zdGF0dXMgPSAnYWN0aXZlJwogICkKCi8vIFdlZWtseSByZXBvcnRpbmcgY29tcGxpYW5jZSBhbmQgbWV0cmljcwpkZWZpbmUgIlJlcG9ydGluZyBXZWVrcyBpbiBNZWFzdXJlbWVudCBQZXJpb2QiOgogIENvdW50KAogICAgZXhwYW5kezIwMjUtMDMtMDEsIEAyMDI1LTAzLTA3LCB3ZWVrfQogICkKCmRlZmluZSAiSFJEIFJlcG9ydHMgU3VibWl0dGVkIER1cmluZyBQZXJpb2QiOgogIENvdW50KAogICAgW0NvbW11bmljYXRpb25dIEMKICAgICAgd2hlcmUgQy5jYXRlZ29yeS5jb2RpbmcuY29kZSBpbiB7J25vdGlmaWNhdGlvbid9CiAgICAgICAgYW5kIEMudG9waWMudGV4dCBjb250YWlucyAnTkhTTicKICAgICAgICBhbmQgQy50b3BpYy50ZXh0IGNvbnRhaW5zICdIUkQnCiAgICAgICAgYW5kIEMuc2VudCBkdXJpbmcgIk1lYXN1cmVtZW50IFBlcmlvZCIKICApCgpkZWZpbmUgIldlZWtseSBSZXBvcnRpbmcgQ29tcGxpYW5jZSI6CiAgIkhSRCBSZXBvcnRzIFN1Ym1pdHRlZCBEdXJpbmcgUGVyaW9kIiAvICJSZXBvcnRpbmcgV2Vla3MgaW4gTWVhc3VyZW1lbnQgUGVyaW9kIgoKLy8gU3RydWN0dXJhbCByZWFkaW5lc3Mgc2NvcmVzCmRlZmluZSAiSGFzIEFsbCBUZXN0aW5nIENhcGFiaWxpdGllcyI6CiAgaWYgKCJIYXMgQ09WSUQtMTkgVGVzdGluZyBDYXBhYmlsaXR5IiBhbmQgIkhhcyBJbmZsdWVuemEgVGVzdGluZyBDYXBhYmlsaXR5IiBhbmQgIkhhcyBSU1YgVGVzdGluZyBDYXBhYmlsaXR5IikKICAgIHRoZW4gMQogICAgZWxzZSAwCgpkZWZpbmUgIkhhcyBSZXF1aXJlZCBSZXBvcnRpbmcgU3RydWN0dXJlIjoKICBpZiAoIkhhcyBIUkQgUmVwb3J0aW5nIFByb3RvY29sIikgCiAgICB0aGVuIDEKICAgIGVsc2UgMAoKLy8gQ29udGludW91cyB2YXJpYWJsZSBmb3Igc3RydWN0dXJhbCBtZWFzdXJlIGFzc2Vzc21lbnQKZGVmaW5lICJTdHJ1Y3R1cmFsIFJlYWRpbmVzcyBTY29yZSI6CiAgKCJIYXMgQ09WSUQtMTkgVGVzdGluZyBDYXBhYmlsaXR5IiBhcyBJbnRlZ2VyICsKICAgIkhhcyBJbmZsdWVuemEgVGVzdGluZyBDYXBhYmlsaXR5IiBhcyBJbnRlZ2VyICsKICAgIkhhcyBSU1YgVGVzdGluZyBDYXBhYmlsaXR5IiBhcyBJbnRlZ2VyICsKICAgIkhhcyBTcGVjaW1lbiBDb2xsZWN0aW9uIENhcGFiaWxpdGllcyIgYXMgSW50ZWdlciArCiAgICJIYXMgSUNVIExvY2F0aW9ucyIgYXMgSW50ZWdlciArCiAgICJIYXMgVmVudGlsYXRvciBSZXNvdXJjZXMiIGFzIEludGVnZXIgKwogICAgIkhhcyBIUkQgUmVwb3J0aW5nIFByb3RvY29sIiBhcyBJbnRlZ2VyKSAvIDcuMCAqIDEwMC4wCgovLyBNYWluIG1lYXN1cmUgY2FsY3VsYXRpb24gLSBub3cgZm9jdXNpbmcgb24gc3RydWN0dXJhbCBjb21wb25lbnRzIGFuZCB0aGVpciByYXRpbmdzCmRlZmluZSAiTWVhc3VyZSBQb3B1bGF0aW9uIjoKICB0cnVlCgpkZWZpbmUgIk1lYXN1cmUgT2JzZXJ2YXRpb24iOgogICJTdHJ1Y3R1cmFsIFJlYWRpbmVzcyBTY29yZSI="/>
</content>
</Library>