eCQM QICore Content Implementation Guide
2025.0.0 - CI Build

eCQM QICore Content Implementation Guide, published by cqframework. This guide is not an authorized publication; it is the continuous build for version 2025.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/cqframework/ecqm-content-qicore-2025/ and changes regularly. See the Directory of published versions

: OncologyPainIntensityQuantifiedFHIR - XML Representation

Active as of 2025-04-16

Raw xml | Download


<Library xmlns="http://hl7.org/fhir">
  <id value="OncologyPainIntensityQuantifiedFHIR"/>
  <meta>
    <profile
             value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"/>
    <profile
             value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-computablelibrary"/>
    <profile
             value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"/>
    <profile
             value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-executablelibrary"/>
    <profile
             value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"/>
    <profile
             value="http://hl7.org/fhir/uv/cql/StructureDefinition/elm-json-library"/>
    <profile
             value="http://hl7.org/fhir/uv/cql/StructureDefinition/elm-xml-library"/>
  </meta>
  <language value="en"/>
  <text>
    <status value="extensions"/>
    <div xmlns="http://www.w3.org/1999/xhtml">
    <table class="grid dict">
        
        
        <tr>
            <th scope="row"><b>Title: </b></th>
            <td style="padding-left: 4px;">OncologyPainIntensityQuantifiedFHIR</td>
        </tr>
        

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

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

        
        <tr>
            <th scope="row"><b>Url: </b></th>
            <td style="padding-left: 4px;">https://madie.cms.gov/Library/OncologyPainIntensityQuantifiedFHIR</td>
        </tr>
        

        
        <tr>
            <th scope="row">
                <b>
                    
                        official
                    
                </b>
            </th>
            <td style="padding-left: 4px;">
                
                <p style="margin-bottom: 5px;">
                    <span>OncologyPainIntensityQuantifiedFHIR</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>http://terminology.hl7.org/CodeSystem/library-type</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-04-16T15:15:42+00:00</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Publisher: </b></th>
            <td style="padding-left: 4px;">American Society of Clinical Oncology</td>
        </tr>
        

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

        

        

        

        

        

        

        

        

        

        

        
        <tr>
            <th scope="row"><b>Related Artifacts: </b></th>
            <td style="padding-left: 4px;">
                
                
                
                <p><b>Dependencies</b></p>
                <ul>
                  
                    <li>https://madie.cms.gov/Library/QICoreCommon|4.0.000</li>
                  
                    <li>http://www.ama-assn.org/go/cpt</li>
                  
                    <li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1026</li>
                  
                    <li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1010</li>
                  
                    <li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001</li>
                  
                    <li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.1444.5.215</li>
                  
                    <li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1027</li>
                  
                    <li>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1028</li>
                  
                </ul>
                
                
                
                
                
            </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>MS</b></th><th><b>Code Filter</b></th></tr>
              
                <tr>
                  <th>Encounter</th>
                  <th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter</th>
                  <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.101.12.1001</span>
                      </span>
                      
                      
                    
                  </th>
                </tr>
              
                <tr>
                  <th>Encounter</th>
                  <th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter</th>
                  <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.1444.5.215</span>
                      </span>
                      
                      
                    
                  </th>
                </tr>
              
                <tr>
                  <th>Observation</th>
                  <th>http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observation-screening-assessment</th>
                  <th>;;;;;</th>
                  <th>
                    
                      <b>code filter: </b>
                      
                      <br/>
                      
                      
                      <span style="padding-left: 4px;">
                          <b>path: </b><span>code</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.526.3.1028</span>
                      </span>
                      
                      
                    
                  </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 OncologyPainIntensityQuantifiedFHIR version '0.3.000'

using QICore version '6.0.0'

include FHIRHelpers version '4.4.000' called FHIRHelpers
include CQMCommon version '4.0.000' called CQMCommon
include QICoreCommon version '4.0.000' called QICoreCommon
include SupplementalDataElements version '5.1.000' called SDE

codesystem &quot;CPT&quot;: 'http://www.ama-assn.org/go/cpt'

valueset &quot;Audio Visual Telehealth Encounter&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.1444.5.215'
valueset &quot;Cancer&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1010'
valueset &quot;Chemotherapy Administration&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1027'
valueset &quot;Office Visit&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001'
valueset &quot;Radiation Treatment Management&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1026'
valueset &quot;Standardized Pain Assessment Tool&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1028'

code &quot;Radiation treatment management, 5 treatments&quot;: '77427' from &quot;CPT&quot; display 'Radiation treatment management, 5 treatments'

parameter &quot;Measurement Period&quot; Interval&lt;DateTime&gt;

context Patient

define &quot;Denominator 1&quot;:
  &quot;Initial Population 1&quot;

define &quot;Denominator 2&quot;:
  &quot;Initial Population 2&quot;

define &quot;Initial Population 1&quot;:
  &quot;Face to Face or Telehealth Encounter with Ongoing Chemotherapy&quot;

define &quot;Initial Population 2&quot;:
  &quot;Radiation Treatment Management During Measurement Period with Cancer Diagnosis&quot;

define &quot;Chemotherapy Within 31 Days Prior and During Measurement Period&quot;:
  [Procedure: &quot;Chemotherapy Administration&quot;] ChemoAdministration
    where ChemoAdministration.performed.toInterval ( ) during Interval[start of &quot;Measurement Period&quot; - 31 days, end of &quot;Measurement Period&quot;]
      and ChemoAdministration.status = 'completed'

define &quot;Face to Face or Telehealth Encounter with Ongoing Chemotherapy&quot;:
  from
    ( [Encounter: &quot;Office Visit&quot;]
      union [Encounter: &quot;Audio Visual Telehealth Encounter&quot;] ) FaceToFaceOrTelehealthEncounter,
    &quot;Chemotherapy Within 31 Days Prior and During Measurement Period&quot; ChemoBeforeEncounter,
    &quot;Chemotherapy Within 31 Days Prior and During Measurement Period&quot; ChemoAfterEncounter,
    [ConditionProblemsHealthConcerns: &quot;Cancer&quot;] CancerDx
    where CancerDx.prevalenceInterval ( ) overlaps FaceToFaceOrTelehealthEncounter.period
      and ChemoBeforeEncounter.performed.toInterval ( ) starts 30 days or less on or before day of end of FaceToFaceOrTelehealthEncounter.period
      and ChemoAfterEncounter.performed.toInterval ( ) starts 30 days or less on or after day of end of FaceToFaceOrTelehealthEncounter.period
      and not ( ChemoAfterEncounter.performed.toInterval ( ) same day as ChemoBeforeEncounter.performed.toInterval ( ) )
      and FaceToFaceOrTelehealthEncounter.period during &quot;Measurement Period&quot;
      and FaceToFaceOrTelehealthEncounter.status = 'finished'
    return FaceToFaceOrTelehealthEncounter

define &quot;Numerator 1&quot;:
  &quot;Face to Face or Telehealth Encounter with Ongoing Chemotherapy&quot; FaceToFaceOrTelehealthEncounterWithChemo
    with &quot;Standard Pain Assessment with Result&quot; PainAssessed
      such that PainAssessed.effective.toInterval ( ) during FaceToFaceOrTelehealthEncounterWithChemo.period

define &quot;Radiation Treatment Management During Measurement Period with Cancer Diagnosis&quot;:
  ( [Encounter: &quot;Radiation Treatment Management&quot;] ) RadiationTreatmentManagement
    with [ConditionProblemsHealthConcerns: &quot;Cancer&quot;] CancerDx
      such that CancerDx.isActive ( )
        and CancerDx.prevalenceInterval ( ) overlaps RadiationTreatmentManagement.period
    where RadiationTreatmentManagement.period during &quot;Measurement Period&quot;
      and RadiationTreatmentManagement.status = 'finished'

define &quot;Numerator 2&quot;:
  &quot;Radiation Treatment Management During Measurement Period with Cancer Diagnosis&quot; RadiationManagementEncounter
    with &quot;Standard Pain Assessment with Result&quot; PainAssessed
      such that case
        when exists ( ( RadiationManagementEncounter.type ) RadiationManagement
            where RadiationManagement ~ &quot;Radiation treatment management, 5 treatments&quot;
        ) then PainAssessed.effective.toInterval ( ) 6 days or less on or before day of start of RadiationManagementEncounter.period 
        else PainAssessed.effective.toInterval ( ) during day of RadiationManagementEncounter.period end

define &quot;SDE Ethnicity&quot;:
  SDE.&quot;SDE Ethnicity&quot;

define &quot;SDE Payer&quot;:
  SDE.&quot;SDE Payer&quot;

define &quot;SDE Race&quot;:
  SDE.&quot;SDE Race&quot;

define &quot;SDE Sex&quot;:
  SDE.&quot;SDE Sex&quot;

define &quot;Standard Pain Assessment with Result&quot;:
  [ObservationScreeningAssessment: &quot;Standardized Pain Assessment Tool&quot;] AssessedPain
    where AssessedPain.value is not null
      and AssessedPain.status = 'final'</code></pre></td></tr>
            </table>
          </td>
        </tr>
        
        
        
    </table>
</div>
  </text>
  <contained>
    <Parameters>
      <id value="options"/>
      <parameter>
        <name value="translatorVersion"/>
        <valueString value="3.25.0"/>
      </parameter>
      <parameter>
        <name value="option"/>
        <valueString value="EnableAnnotations"/>
      </parameter>
      <parameter>
        <name value="option"/>
        <valueString value="EnableLocators"/>
      </parameter>
      <parameter>
        <name value="option"/>
        <valueString value="DisableListDemotion"/>
      </parameter>
      <parameter>
        <name value="option"/>
        <valueString value="DisableListPromotion"/>
      </parameter>
      <parameter>
        <name value="format"/>
        <valueString value="JSON"/>
      </parameter>
      <parameter>
        <name value="format"/>
        <valueString value="XML"/>
      </parameter>
      <parameter>
        <name value="analyzeDataRequirements"/>
        <valueBoolean value="false"/>
      </parameter>
      <parameter>
        <name value="collapseDataRequirements"/>
        <valueBoolean value="false"/>
      </parameter>
      <parameter>
        <name value="compatibilityLevel"/>
        <valueString value="1.5"/>
      </parameter>
      <parameter>
        <name value="enableCqlOnly"/>
        <valueBoolean value="false"/>
      </parameter>
      <parameter>
        <name value="errorLevel"/>
        <valueString value="Info"/>
      </parameter>
      <parameter>
        <name value="signatureLevel"/>
        <valueString value="Overloads"/>
      </parameter>
      <parameter>
        <name value="validateUnits"/>
        <valueBoolean value="true"/>
      </parameter>
      <parameter>
        <name value="verifyOnly"/>
        <valueBoolean value="false"/>
      </parameter>
    </Parameters>
  </contained>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
    <valueCoding>
      <system value="http://www.ama-assn.org/go/cpt"/>
      <code value="77427"/>
      <display value="Radiation treatment management, 5 treatments"/>
    </valueCoding>
  </extension>
  <extension url="http://hl7.org/fhir/StructureDefinition/cqf-cqlOptions">
    <valueReference>
      <reference value="#options"/>
    </valueReference>
  </extension>
  <extension
             url="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-softwaresystem">
    <valueReference>
      <reference value="Device/cqf-tooling"/>
    </valueReference>
  </extension>
  <url
       value="https://madie.cms.gov/Library/OncologyPainIntensityQuantifiedFHIR"/>
  <identifier>
    <use value="official"/>
    <system value="https://madie.cms.gov/login"/>
    <value value="OncologyPainIntensityQuantifiedFHIR"/>
  </identifier>
  <version value="0.3.000"/>
  <name value="OncologyPainIntensityQuantifiedFHIR"/>
  <title value="OncologyPainIntensityQuantifiedFHIR"/>
  <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-04-16T15:15:42+00:00"/>
  <publisher value="American Society of Clinical Oncology"/>
  <description value="OncologyPainIntensityQuantifiedFHIR"/>
  <content>
    <contentType value="text/cql"/>
    <data
          value="bGlicmFyeSBPbmNvbG9neVBhaW5JbnRlbnNpdHlRdWFudGlmaWVkRkhJUiB2ZXJzaW9uICcwLjMuMDAwJw0KDQp1c2luZyBRSUNvcmUgdmVyc2lvbiAnNi4wLjAnDQoNCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC40LjAwMCcgY2FsbGVkIEZISVJIZWxwZXJzDQppbmNsdWRlIENRTUNvbW1vbiB2ZXJzaW9uICc0LjAuMDAwJyBjYWxsZWQgQ1FNQ29tbW9uDQppbmNsdWRlIFFJQ29yZUNvbW1vbiB2ZXJzaW9uICc0LjAuMDAwJyBjYWxsZWQgUUlDb3JlQ29tbW9uDQppbmNsdWRlIFN1cHBsZW1lbnRhbERhdGFFbGVtZW50cyB2ZXJzaW9uICc1LjEuMDAwJyBjYWxsZWQgU0RFDQoNCmNvZGVzeXN0ZW0gIkNQVCI6ICdodHRwOi8vd3d3LmFtYS1hc3NuLm9yZy9nby9jcHQnDQoNCnZhbHVlc2V0ICJBdWRpbyBWaXN1YWwgVGVsZWhlYWx0aCBFbmNvdW50ZXIiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTQ0NC41LjIxNScNCnZhbHVlc2V0ICJDYW5jZXIiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNTI2LjMuMTAxMCcNCnZhbHVlc2V0ICJDaGVtb3RoZXJhcHkgQWRtaW5pc3RyYXRpb24iOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNTI2LjMuMTAyNycNCnZhbHVlc2V0ICJPZmZpY2UgVmlzaXQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAxLjEyLjEwMDEnDQp2YWx1ZXNldCAiUmFkaWF0aW9uIFRyZWF0bWVudCBNYW5hZ2VtZW50IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjEwMjYnDQp2YWx1ZXNldCAiU3RhbmRhcmRpemVkIFBhaW4gQXNzZXNzbWVudCBUb29sIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjEwMjgnDQoNCmNvZGUgIlJhZGlhdGlvbiB0cmVhdG1lbnQgbWFuYWdlbWVudCwgNSB0cmVhdG1lbnRzIjogJzc3NDI3JyBmcm9tICJDUFQiIGRpc3BsYXkgJ1JhZGlhdGlvbiB0cmVhdG1lbnQgbWFuYWdlbWVudCwgNSB0cmVhdG1lbnRzJw0KDQpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgSW50ZXJ2YWw8RGF0ZVRpbWU+DQoNCmNvbnRleHQgUGF0aWVudA0KDQpkZWZpbmUgIkRlbm9taW5hdG9yIDEiOg0KICAiSW5pdGlhbCBQb3B1bGF0aW9uIDEiDQoNCmRlZmluZSAiRGVub21pbmF0b3IgMiI6DQogICJJbml0aWFsIFBvcHVsYXRpb24gMiINCg0KZGVmaW5lICJJbml0aWFsIFBvcHVsYXRpb24gMSI6DQogICJGYWNlIHRvIEZhY2Ugb3IgVGVsZWhlYWx0aCBFbmNvdW50ZXIgd2l0aCBPbmdvaW5nIENoZW1vdGhlcmFweSINCg0KZGVmaW5lICJJbml0aWFsIFBvcHVsYXRpb24gMiI6DQogICJSYWRpYXRpb24gVHJlYXRtZW50IE1hbmFnZW1lbnQgRHVyaW5nIE1lYXN1cmVtZW50IFBlcmlvZCB3aXRoIENhbmNlciBEaWFnbm9zaXMiDQoNCmRlZmluZSAiQ2hlbW90aGVyYXB5IFdpdGhpbiAzMSBEYXlzIFByaW9yIGFuZCBEdXJpbmcgTWVhc3VyZW1lbnQgUGVyaW9kIjoNCiAgW1Byb2NlZHVyZTogIkNoZW1vdGhlcmFweSBBZG1pbmlzdHJhdGlvbiJdIENoZW1vQWRtaW5pc3RyYXRpb24NCiAgICB3aGVyZSBDaGVtb0FkbWluaXN0cmF0aW9uLnBlcmZvcm1lZC50b0ludGVydmFsICggKSBkdXJpbmcgSW50ZXJ2YWxbc3RhcnQgb2YgIk1lYXN1cmVtZW50IFBlcmlvZCIgLSAzMSBkYXlzLCBlbmQgb2YgIk1lYXN1cmVtZW50IFBlcmlvZCJdDQogICAgICBhbmQgQ2hlbW9BZG1pbmlzdHJhdGlvbi5zdGF0dXMgPSAnY29tcGxldGVkJw0KDQpkZWZpbmUgIkZhY2UgdG8gRmFjZSBvciBUZWxlaGVhbHRoIEVuY291bnRlciB3aXRoIE9uZ29pbmcgQ2hlbW90aGVyYXB5IjoNCiAgZnJvbQ0KICAgICggW0VuY291bnRlcjogIk9mZmljZSBWaXNpdCJdDQogICAgICB1bmlvbiBbRW5jb3VudGVyOiAiQXVkaW8gVmlzdWFsIFRlbGVoZWFsdGggRW5jb3VudGVyIl0gKSBGYWNlVG9GYWNlT3JUZWxlaGVhbHRoRW5jb3VudGVyLA0KICAgICJDaGVtb3RoZXJhcHkgV2l0aGluIDMxIERheXMgUHJpb3IgYW5kIER1cmluZyBNZWFzdXJlbWVudCBQZXJpb2QiIENoZW1vQmVmb3JlRW5jb3VudGVyLA0KICAgICJDaGVtb3RoZXJhcHkgV2l0aGluIDMxIERheXMgUHJpb3IgYW5kIER1cmluZyBNZWFzdXJlbWVudCBQZXJpb2QiIENoZW1vQWZ0ZXJFbmNvdW50ZXIsDQogICAgW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJDYW5jZXIiXSBDYW5jZXJEeA0KICAgIHdoZXJlIENhbmNlckR4LnByZXZhbGVuY2VJbnRlcnZhbCAoICkgb3ZlcmxhcHMgRmFjZVRvRmFjZU9yVGVsZWhlYWx0aEVuY291bnRlci5wZXJpb2QNCiAgICAgIGFuZCBDaGVtb0JlZm9yZUVuY291bnRlci5wZXJmb3JtZWQudG9JbnRlcnZhbCAoICkgc3RhcnRzIDMwIGRheXMgb3IgbGVzcyBvbiBvciBiZWZvcmUgZGF5IG9mIGVuZCBvZiBGYWNlVG9GYWNlT3JUZWxlaGVhbHRoRW5jb3VudGVyLnBlcmlvZA0KICAgICAgYW5kIENoZW1vQWZ0ZXJFbmNvdW50ZXIucGVyZm9ybWVkLnRvSW50ZXJ2YWwgKCApIHN0YXJ0cyAzMCBkYXlzIG9yIGxlc3Mgb24gb3IgYWZ0ZXIgZGF5IG9mIGVuZCBvZiBGYWNlVG9GYWNlT3JUZWxlaGVhbHRoRW5jb3VudGVyLnBlcmlvZA0KICAgICAgYW5kIG5vdCAoIENoZW1vQWZ0ZXJFbmNvdW50ZXIucGVyZm9ybWVkLnRvSW50ZXJ2YWwgKCApIHNhbWUgZGF5IGFzIENoZW1vQmVmb3JlRW5jb3VudGVyLnBlcmZvcm1lZC50b0ludGVydmFsICggKSApDQogICAgICBhbmQgRmFjZVRvRmFjZU9yVGVsZWhlYWx0aEVuY291bnRlci5wZXJpb2QgZHVyaW5nICJNZWFzdXJlbWVudCBQZXJpb2QiDQogICAgICBhbmQgRmFjZVRvRmFjZU9yVGVsZWhlYWx0aEVuY291bnRlci5zdGF0dXMgPSAnZmluaXNoZWQnDQogICAgcmV0dXJuIEZhY2VUb0ZhY2VPclRlbGVoZWFsdGhFbmNvdW50ZXINCg0KZGVmaW5lICJOdW1lcmF0b3IgMSI6DQogICJGYWNlIHRvIEZhY2Ugb3IgVGVsZWhlYWx0aCBFbmNvdW50ZXIgd2l0aCBPbmdvaW5nIENoZW1vdGhlcmFweSIgRmFjZVRvRmFjZU9yVGVsZWhlYWx0aEVuY291bnRlcldpdGhDaGVtbw0KICAgIHdpdGggIlN0YW5kYXJkIFBhaW4gQXNzZXNzbWVudCB3aXRoIFJlc3VsdCIgUGFpbkFzc2Vzc2VkDQogICAgICBzdWNoIHRoYXQgUGFpbkFzc2Vzc2VkLmVmZmVjdGl2ZS50b0ludGVydmFsICggKSBkdXJpbmcgRmFjZVRvRmFjZU9yVGVsZWhlYWx0aEVuY291bnRlcldpdGhDaGVtby5wZXJpb2QNCg0KZGVmaW5lICJSYWRpYXRpb24gVHJlYXRtZW50IE1hbmFnZW1lbnQgRHVyaW5nIE1lYXN1cmVtZW50IFBlcmlvZCB3aXRoIENhbmNlciBEaWFnbm9zaXMiOg0KICAoIFtFbmNvdW50ZXI6ICJSYWRpYXRpb24gVHJlYXRtZW50IE1hbmFnZW1lbnQiXSApIFJhZGlhdGlvblRyZWF0bWVudE1hbmFnZW1lbnQNCiAgICB3aXRoIFtDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zOiAiQ2FuY2VyIl0gQ2FuY2VyRHgNCiAgICAgIHN1Y2ggdGhhdCBDYW5jZXJEeC5pc0FjdGl2ZSAoICkNCiAgICAgICAgYW5kIENhbmNlckR4LnByZXZhbGVuY2VJbnRlcnZhbCAoICkgb3ZlcmxhcHMgUmFkaWF0aW9uVHJlYXRtZW50TWFuYWdlbWVudC5wZXJpb2QNCiAgICB3aGVyZSBSYWRpYXRpb25UcmVhdG1lbnRNYW5hZ2VtZW50LnBlcmlvZCBkdXJpbmcgIk1lYXN1cmVtZW50IFBlcmlvZCINCiAgICAgIGFuZCBSYWRpYXRpb25UcmVhdG1lbnRNYW5hZ2VtZW50LnN0YXR1cyA9ICdmaW5pc2hlZCcNCg0KZGVmaW5lICJOdW1lcmF0b3IgMiI6DQogICJSYWRpYXRpb24gVHJlYXRtZW50IE1hbmFnZW1lbnQgRHVyaW5nIE1lYXN1cmVtZW50IFBlcmlvZCB3aXRoIENhbmNlciBEaWFnbm9zaXMiIFJhZGlhdGlvbk1hbmFnZW1lbnRFbmNvdW50ZXINCiAgICB3aXRoICJTdGFuZGFyZCBQYWluIEFzc2Vzc21lbnQgd2l0aCBSZXN1bHQiIFBhaW5Bc3Nlc3NlZA0KICAgICAgc3VjaCB0aGF0IGNhc2UNCiAgICAgICAgd2hlbiBleGlzdHMgKCAoIFJhZGlhdGlvbk1hbmFnZW1lbnRFbmNvdW50ZXIudHlwZSApIFJhZGlhdGlvbk1hbmFnZW1lbnQNCiAgICAgICAgICAgIHdoZXJlIFJhZGlhdGlvbk1hbmFnZW1lbnQgfiAiUmFkaWF0aW9uIHRyZWF0bWVudCBtYW5hZ2VtZW50LCA1IHRyZWF0bWVudHMiDQogICAgICAgICkgdGhlbiBQYWluQXNzZXNzZWQuZWZmZWN0aXZlLnRvSW50ZXJ2YWwgKCApIDYgZGF5cyBvciBsZXNzIG9uIG9yIGJlZm9yZSBkYXkgb2Ygc3RhcnQgb2YgUmFkaWF0aW9uTWFuYWdlbWVudEVuY291bnRlci5wZXJpb2QgDQogICAgICAgIGVsc2UgUGFpbkFzc2Vzc2VkLmVmZmVjdGl2ZS50b0ludGVydmFsICggKSBkdXJpbmcgZGF5IG9mIFJhZGlhdGlvbk1hbmFnZW1lbnRFbmNvdW50ZXIucGVyaW9kIGVuZA0KDQpkZWZpbmUgIlNERSBFdGhuaWNpdHkiOg0KICBTREUuIlNERSBFdGhuaWNpdHkiDQoNCmRlZmluZSAiU0RFIFBheWVyIjoNCiAgU0RFLiJTREUgUGF5ZXIiDQoNCmRlZmluZSAiU0RFIFJhY2UiOg0KICBTREUuIlNERSBSYWNlIg0KDQpkZWZpbmUgIlNERSBTZXgiOg0KICBTREUuIlNERSBTZXgiDQoNCmRlZmluZSAiU3RhbmRhcmQgUGFpbiBBc3Nlc3NtZW50IHdpdGggUmVzdWx0IjoNCiAgW09ic2VydmF0aW9uU2NyZWVuaW5nQXNzZXNzbWVudDogIlN0YW5kYXJkaXplZCBQYWluIEFzc2Vzc21lbnQgVG9vbCJdIEFzc2Vzc2VkUGFpbg0KICAgIHdoZXJlIEFzc2Vzc2VkUGFpbi52YWx1ZSBpcyBub3QgbnVsbA0KICAgICAgYW5kIEFzc2Vzc2VkUGFpbi5zdGF0dXMgPSAnZmluYWwn"/>
  </content>
</Library>