Draft dQM CMS Content Implementation Guide
2025.1.0 - CI Build

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

: CMS137FHIRSUDTxInitEngagement - XML Representation

Draft as of 2026-09-19

Raw xml | Download


<Library xmlns="http://hl7.org/fhir">
  <id value="CMS137FHIRSUDTxInitEngagement"/>
  <text>
    <status value="extensions"/>
    <div xmlns="http://www.w3.org/1999/xhtml">
  <table class="narrative-table">
    <tbody>
<tr>


<th colspan="2" scope="row" class="row-header"><a name="metadata"> </a>Metadata</th>


</tr>







<tr>


<th scope="row" class="row-header">Version</th>



<td class="content-container">1.1.000</td>


</tr>
















<tr>


<th scope="row" class="row-header">Status</th>



<td class="content-container">Draft</td>


</tr>







































<tr>


<th scope="row" class="row-header">Type</th>



<td class="content-container">
    <a href="http://terminology.hl7.org/7.1.0/CodeSystem-library-type.html">http://terminology.hl7.org/CodeSystem/library-type</a>#logic-library


</td>


</tr>













<tr>


<th colspan="2" scope="row" class="row-header"><a name="parameters"> </a>Parameters</th>


</tr>


<tr>


<th scope="row" class="row-header">Parameter</th>



<td class="content-container">None</td>


</tr>








  <tr>


<th colspan="2" scope="row" class="row-header">Library Content</th>


</tr>
  
    
    <tr>
      <th scope="row" class="row-header">CQL Content</th>
      <td>
        <a name="cql-content"> </a>
        <pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">/*
NOTE: For use by March 2026 US Realm Connectathon participants for internal use only. Not for use or distribution in commercial products.
*/
library CMS137FHIRSUDTxInitEngagement version '1.1.000'

using USQualityCore version '0.1.0-cibuild'
using USCore version '6.1.0-derived'
using FHIR version '4.0.1'

include hl7.fhir.uv.cql.FHIRHelpers version '4.0.1' called FHIRHelpers
include hl7.fhir.uv.cql.FHIRCommon version '2.0.0' called FHIRCommon
include hl7.fhir.us.cql.CumulativeMedicationDuration version '2.0.0-ballot' called CMD
include hl7.fhir.us.cql.USCoreCommon version '2.0.0-ballot' called USCoreCommon
include hl7.fhir.us.cql.USCoreElements version '2.0.0-ballot' called USCoreElements

include Hospice version '7.1.000' called Hospice
include CQMCommon version '5.1.000' called CQMCommon
include USQualityCoreCommon version '0.1.0-cibuild' called USQualityCoreCommon
include SupplementalDataElements version '6.1.000' called SDE
include Status version '2.1.000' called Status

valueset &quot;Detoxification Visit&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1059'
valueset &quot;Discharge Services Hospital Inpatient&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1007'
valueset &quot;Discharge Services Hospital Inpatient Same Day Discharge&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1006'
valueset &quot;Emergency Department Evaluation and Management Visit&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1010'
valueset &quot;Initial Hospital Inpatient Visit&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1004'
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;Psych Visit Psychotherapy&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1496'
valueset &quot;Substance Use Disorder&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.106.12.1001'
valueset &quot;Substance Use Disorder Long Acting Medication&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1149'
valueset &quot;Substance Use Disorder Long Acting Medication Administration&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1156'
valueset &quot;Substance Use Disorder Short Acting Medication&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1150'
valueset &quot;Substance Use Disorder Short Acting Medication Administration&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1157'
valueset &quot;Substance Use Disorder Treatment&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.106.12.1005'
valueset &quot;Telephone Visits&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1080'
valueset &quot;Virtual Encounter&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1089'

parameter &quot;Measurement Period&quot; Interval&lt;DateTime&gt;
  default Interval[@2026-01-01T00:00:00.000Z, @2027-01-01T00:00:00.000Z)

context Patient

define &quot;Initial Population&quot;:
  AgeInYearsAt(date from start of &quot;Measurement Period&quot;) &gt;= 13
    and &quot;First SUD Episode During Measurement Period&quot; is not null
    and not exists &quot;History of SUD Diagnosis or Treatment&quot;

define &quot;First SUD Episode During Measurement Period&quot;:
  First((&quot;Qualifying Encounters&quot;) ValidEncounters
      with(([ConditionEncounterDiagnosis: &quot;Substance Use Disorder&quot;]).verified()) SUDDiagnosis
        such that ValidEncounters.period during &quot;Measurement Period&quot;
          and SUDDiagnosis.prevalenceInterval ( ) starts during ValidEncounters.period
          and SUDDiagnosis.prevalenceInterval ( ) starts 47 days or more before day of 
          end of &quot;Measurement Period&quot;
      return {
        ValidEncounterDate: date from start of ValidEncounters.period,
        ValidEncounter: ValidEncounters
      }
      sort by ValidEncounterDate
  ).ValidEncounter

define &quot;Qualifying Encounters&quot;:
  ( [Encounter: &quot;Office Visit&quot;]
      union [Encounter: &quot;Emergency Department Evaluation and Management Visit&quot;]
      union [Encounter: &quot;Detoxification Visit&quot;]
      union [Encounter: &quot;Initial Hospital Inpatient Visit&quot;]
      union [Encounter: &quot;Discharge Services Hospital Inpatient Same Day Discharge&quot;]
      union [Encounter: &quot;Discharge Services Hospital Inpatient&quot;]
      union [Encounter: &quot;Telephone Visits&quot;]
      union [Encounter: &quot;Virtual Encounter&quot;]
  ).isEncounterPerformed ( )

define &quot;History of SUD Diagnosis or Treatment&quot;:
  ( ( ( [Procedure: &quot;Substance Use Disorder Treatment&quot;]
        union [Procedure: &quot;Psych Visit Psychotherapy&quot;]
        union [Procedure: &quot;Substance Use Disorder Long Acting Medication Administration&quot;]
        union [Procedure: &quot;Substance Use Disorder Short Acting Medication Administration&quot;]
    ).isInterventionPerformed ( ) ) Interventions
      with &quot;First SUD Episode During Measurement Period&quot; FirstSUDEpisode
        such that Interventions.performed.toInterval ( ) starts 60 days or less before day of date from start of FirstSUDEpisode.period
  )
    union ( ( ( &quot;Qualifying Encounters&quot;
        except &quot;Emergency Department or Detoxification Visit&quot; ) QualifyingEncounter
        where QualifyingEncounter.encounterDiagnosis ( ).code in &quot;Substance Use Disorder&quot; ) SUDEncounterDx
        with &quot;First SUD Episode During Measurement Period&quot; FirstSUDEpisode
          such that SUDEncounterDx.period starts 60 days or less before day of date from start of FirstSUDEpisode.period
    )
    union ( ( ( [MedicationRequest: &quot;Substance Use Disorder Long Acting Medication&quot;]
          union [MedicationRequest: &quot;Substance Use Disorder Short Acting Medication&quot;]
      ).isMedicationOrder ( ) ) SUDMedication
        with &quot;First SUD Episode During Measurement Period&quot; FirstSUDEpisode
          such that SUDMedication.authoredOn 60 days or less before day of date from start of FirstSUDEpisode.period
    )

define &quot;Emergency Department or Detoxification Visit&quot;:
  ( [Encounter: &quot;Emergency Department Evaluation and Management Visit&quot;]
      union [Encounter: &quot;Detoxification Visit&quot;]
  ).isEncounterPerformed ( )

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

define &quot;Denominator Exclusions&quot;:
  Hospice.&quot;Has Hospice Services&quot;

define &quot;Numerator 1&quot;:
  exists &quot;Treatment Initiation With Non Medication Intervention Dates&quot;
    or exists &quot;Treatment Initiation With Medication Order Dates&quot;

define &quot;Treatment Initiation With Non Medication Intervention Dates&quot;:
  ( &quot;Psychosocial Visit&quot; PsychosocialVisitProcedure
      let treatmentDate: date from start of PsychosocialVisitProcedure.performed.toInterval ( )
      with &quot;First SUD Episode During Measurement Period&quot; FirstSUDEpisode
        such that treatmentDate during Interval[date from start of FirstSUDEpisode.period, date from start of FirstSUDEpisode.period + 14 days )
          and PsychosocialVisitProcedure.id !~ FirstSUDEpisode.id
      return all treatmentDate
  )
    union ( &quot;Psychosocial Visit&quot; PsychosocialVisitEncounter
        let treatmentDate: date from start of PsychosocialVisitEncounter.period
        with &quot;First SUD Episode During Measurement Period&quot; FirstSUDEpisode
          such that treatmentDate during Interval[date from start of FirstSUDEpisode.period, date from start of FirstSUDEpisode.period + 14 days )
            and PsychosocialVisitEncounter.id !~ FirstSUDEpisode.id
        return all treatmentDate
    )

define &quot;Psychosocial Visit&quot;:
  ( ( [Procedure: &quot;Substance Use Disorder Treatment&quot;]
        union [Procedure: &quot;Psych Visit Psychotherapy&quot;]
    ).isInterventionPerformed ( )
  )
    union ( ( [Encounter: &quot;Telephone Visits&quot;]
        union [Encounter: &quot;Virtual Encounter&quot;]
    ).isEncounterPerformed ( ) ) TelehealthEncounter
      where TelehealthEncounter.encounterDiagnosis ( ).code in &quot;Substance Use Disorder&quot;

define &quot;Treatment Initiation With Medication Order Dates&quot;:
  ( ( ( [MedicationRequest: &quot;Substance Use Disorder Short Acting Medication&quot;]
        union [MedicationRequest: &quot;Substance Use Disorder Long Acting Medication&quot;]
    ).isMedicationOrder ( ) ) SUDMedication
      let treatmentDate: date from start of SUDMedication.authoredOn.toInterval ( )
      with &quot;First SUD Episode During Measurement Period&quot; FirstSUDEpisode
        such that treatmentDate during Interval[date from start of FirstSUDEpisode.period, date from start of FirstSUDEpisode.period + 14 days )
      return all treatmentDate
  )
    union ( ( ( [Procedure: &quot;Substance Use Disorder Short Acting Medication Administration&quot;]
          union [Procedure: &quot;Substance Use Disorder Long Acting Medication Administration&quot;]
      ).isProcedurePerformed ( ) ) SUDMedAdministration
        let treatmentDate: date from start of SUDMedAdministration.performed.toInterval ( )
        with &quot;First SUD Episode During Measurement Period&quot; FirstSUDEpisode
          such that treatmentDate during Interval[date from start of FirstSUDEpisode.period, date from start of FirstSUDEpisode.period + 14 days )
        return all treatmentDate
    )

define &quot;Has Two or More Treatment Engagements With Short Acting Medication or Non Medication Intervention&quot;:
  Count(((&quot;Psychosocial Visit&quot;
        union(([Procedure: &quot;Substance Use Disorder Short Acting Medication Administration&quot;]).isProcedurePerformed())) ShortActingTreatment
        with(Min(&quot;Treatment Initiation With Non Medication Intervention Dates&quot;
            union &quot;Treatment Initiation With Medication Order Dates&quot;
        )) InitiationTreatmentDate
          such that date from start of ShortActingTreatment.performed.toInterval() 34 days or less after InitiationTreatmentDate
            or date from start of ShortActingTreatment.period 34 days or less after InitiationTreatmentDate
        return all ShortActingTreatment
    )
      union((([MedicationRequest: &quot;Substance Use Disorder Short Acting Medication&quot;]).isMedicationOrder()) ShortActingMedOrder
          with(Min(&quot;Treatment Initiation With Non Medication Intervention Dates&quot;
              union &quot;Treatment Initiation With Medication Order Dates&quot;
          )) InitiationTreatmentDate
            such that date from start of ShortActingMedOrder.authoredOn.toInterval() 34 days or less after InitiationTreatmentDate
          return all ShortActingMedOrder
      )
  ) &gt;= 2

define &quot;Numerator 2&quot;:
  &quot;Has Treatment Engagement With Long Acting Medication&quot;
    or &quot;Has Two or More Treatment Engagements With Short Acting Medication or Non Medication Intervention&quot;

define &quot;Has Treatment Engagement With Long Acting Medication&quot;:
  exists ( ( ( ( [MedicationRequest: &quot;Substance Use Disorder Long Acting Medication&quot;] ).isMedicationOrder ( ) ) LongActingMedOrder
        with ( Min(&quot;Treatment Initiation With Non Medication Intervention Dates&quot;
            union &quot;Treatment Initiation With Medication Order Dates&quot;
        ) ) InitiationTreatmentDate
          such that date from start of LongActingMedOrder.authoredOn.toInterval ( ) 34 days or less after InitiationTreatmentDate
    )
      union ( ( ( [Procedure: &quot;Substance Use Disorder Long Acting Medication Administration&quot;] ).isProcedurePerformed ( ) ) LongActingTreatment
          with ( Min(&quot;Treatment Initiation With Non Medication Intervention Dates&quot;
              union &quot;Treatment Initiation With Medication Order Dates&quot;
          ) ) InitiationTreatmentDate
            such that date from start of LongActingTreatment.performed.toInterval ( ) 34 days or less after InitiationTreatmentDate
      )
  )

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;Stratification 1&quot;:
  AgeInYearsAt(date from start of &quot;Measurement Period&quot;) in Interval[13, 17]

define &quot;Stratification 2&quot;:
  AgeInYearsAt(date from start of &quot;Measurement Period&quot;) in Interval[18, 64]

define &quot;Stratification 3&quot;:
  AgeInYearsAt(date from start of &quot;Measurement Period&quot;) &gt;= 65</code></pre>
      </td>
    </tr>
    
  



<tr>
  <th colspan="2" scope="row" class="row-header">Generated using version 0.5.6 of the sample-content-ig Liquid templates</th>
</tr>

    </tbody>
  </table>
</div>
  </text>
  <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/CMS137FHIRSUDTxInitEngagement"/>
  <version value="1.1.000"/>
  <name value="CMS137FHIRSUDTxInitEngagement"/>
  <status value="draft"/>
  <type>
    <coding>
      <system value="http://terminology.hl7.org/CodeSystem/library-type"/>
      <code value="logic-library"/>
    </coding>
  </type>
  <date value="2026-09-19T16:31:14+00:00"/>
  <content>
    <contentType value="text/cql"/>
    <data
          value="LyoKTk9URTogRm9yIHVzZSBieSBNYXJjaCAyMDI2IFVTIFJlYWxtIENvbm5lY3RhdGhvbiBwYXJ0aWNpcGFudHMgZm9yIGludGVybmFsIHVzZSBvbmx5LiBOb3QgZm9yIHVzZSBvciBkaXN0cmlidXRpb24gaW4gY29tbWVyY2lhbCBwcm9kdWN0cy4KKi8KbGlicmFyeSBDTVMxMzdGSElSU1VEVHhJbml0RW5nYWdlbWVudCB2ZXJzaW9uICcxLjEuMDAwJwoKdXNpbmcgVVNRdWFsaXR5Q29yZSB2ZXJzaW9uICcwLjEuMC1jaWJ1aWxkJwp1c2luZyBVU0NvcmUgdmVyc2lvbiAnNi4xLjAtZGVyaXZlZCcKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgaGw3LmZoaXIudXYuY3FsLkZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJyBjYWxsZWQgRkhJUkhlbHBlcnMKaW5jbHVkZSBobDcuZmhpci51di5jcWwuRkhJUkNvbW1vbiB2ZXJzaW9uICcyLjAuMCcgY2FsbGVkIEZISVJDb21tb24KaW5jbHVkZSBobDcuZmhpci51cy5jcWwuQ3VtdWxhdGl2ZU1lZGljYXRpb25EdXJhdGlvbiB2ZXJzaW9uICcyLjAuMC1iYWxsb3QnIGNhbGxlZCBDTUQKaW5jbHVkZSBobDcuZmhpci51cy5jcWwuVVNDb3JlQ29tbW9uIHZlcnNpb24gJzIuMC4wLWJhbGxvdCcgY2FsbGVkIFVTQ29yZUNvbW1vbgppbmNsdWRlIGhsNy5maGlyLnVzLmNxbC5VU0NvcmVFbGVtZW50cyB2ZXJzaW9uICcyLjAuMC1iYWxsb3QnIGNhbGxlZCBVU0NvcmVFbGVtZW50cwoKaW5jbHVkZSBIb3NwaWNlIHZlcnNpb24gJzcuMS4wMDAnIGNhbGxlZCBIb3NwaWNlCmluY2x1ZGUgQ1FNQ29tbW9uIHZlcnNpb24gJzUuMS4wMDAnIGNhbGxlZCBDUU1Db21tb24KaW5jbHVkZSBVU1F1YWxpdHlDb3JlQ29tbW9uIHZlcnNpb24gJzAuMS4wLWNpYnVpbGQnIGNhbGxlZCBVU1F1YWxpdHlDb3JlQ29tbW9uCmluY2x1ZGUgU3VwcGxlbWVudGFsRGF0YUVsZW1lbnRzIHZlcnNpb24gJzYuMS4wMDAnIGNhbGxlZCBTREUKaW5jbHVkZSBTdGF0dXMgdmVyc2lvbiAnMi4xLjAwMCcgY2FsbGVkIFN0YXR1cwoKdmFsdWVzZXQgIkRldG94aWZpY2F0aW9uIFZpc2l0IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDU5Jwp2YWx1ZXNldCAiRGlzY2hhcmdlIFNlcnZpY2VzIEhvc3BpdGFsIElucGF0aWVudCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTAwNycKdmFsdWVzZXQgIkRpc2NoYXJnZSBTZXJ2aWNlcyBIb3NwaXRhbCBJbnBhdGllbnQgU2FtZSBEYXkgRGlzY2hhcmdlIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDA2Jwp2YWx1ZXNldCAiRW1lcmdlbmN5IERlcGFydG1lbnQgRXZhbHVhdGlvbiBhbmQgTWFuYWdlbWVudCBWaXNpdCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTAxMCcKdmFsdWVzZXQgIkluaXRpYWwgSG9zcGl0YWwgSW5wYXRpZW50IFZpc2l0IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDA0Jwp2YWx1ZXNldCAiT2ZmaWNlIFZpc2l0IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDAxJwp2YWx1ZXNldCAiUHN5Y2ggVmlzaXQgUHN5Y2hvdGhlcmFweSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy41MjYuMy4xNDk2Jwp2YWx1ZXNldCAiU3Vic3RhbmNlIFVzZSBEaXNvcmRlciI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDYuMTIuMTAwMScKdmFsdWVzZXQgIlN1YnN0YW5jZSBVc2UgRGlzb3JkZXIgTG9uZyBBY3RpbmcgTWVkaWNhdGlvbiI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMTQ5Jwp2YWx1ZXNldCAiU3Vic3RhbmNlIFVzZSBEaXNvcmRlciBMb25nIEFjdGluZyBNZWRpY2F0aW9uIEFkbWluaXN0cmF0aW9uIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExNTYnCnZhbHVlc2V0ICJTdWJzdGFuY2UgVXNlIERpc29yZGVyIFNob3J0IEFjdGluZyBNZWRpY2F0aW9uIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExNTAnCnZhbHVlc2V0ICJTdWJzdGFuY2UgVXNlIERpc29yZGVyIFNob3J0IEFjdGluZyBNZWRpY2F0aW9uIEFkbWluaXN0cmF0aW9uIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExNTcnCnZhbHVlc2V0ICJTdWJzdGFuY2UgVXNlIERpc29yZGVyIFRyZWF0bWVudCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDYuMTIuMTAwNScKdmFsdWVzZXQgIlRlbGVwaG9uZSBWaXNpdHMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAxLjEyLjEwODAnCnZhbHVlc2V0ICJWaXJ0dWFsIEVuY291bnRlciI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTA4OScKCnBhcmFtZXRlciAiTWVhc3VyZW1lbnQgUGVyaW9kIiBJbnRlcnZhbDxEYXRlVGltZT4KICBkZWZhdWx0IEludGVydmFsW0AyMDI2LTAxLTAxVDAwOjAwOjAwLjAwMFosIEAyMDI3LTAxLTAxVDAwOjAwOjAwLjAwMFopCgpjb250ZXh0IFBhdGllbnQKCmRlZmluZSAiSW5pdGlhbCBQb3B1bGF0aW9uIjoKICBBZ2VJblllYXJzQXQoZGF0ZSBmcm9tIHN0YXJ0IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiKSA+PSAxMwogICAgYW5kICJGaXJzdCBTVUQgRXBpc29kZSBEdXJpbmcgTWVhc3VyZW1lbnQgUGVyaW9kIiBpcyBub3QgbnVsbAogICAgYW5kIG5vdCBleGlzdHMgIkhpc3Rvcnkgb2YgU1VEIERpYWdub3NpcyBvciBUcmVhdG1lbnQiCgpkZWZpbmUgIkZpcnN0IFNVRCBFcGlzb2RlIER1cmluZyBNZWFzdXJlbWVudCBQZXJpb2QiOgogIEZpcnN0KCgiUXVhbGlmeWluZyBFbmNvdW50ZXJzIikgVmFsaWRFbmNvdW50ZXJzCiAgICAgIHdpdGgoKFtDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXM6ICJTdWJzdGFuY2UgVXNlIERpc29yZGVyIl0pLnZlcmlmaWVkKCkpIFNVRERpYWdub3NpcwogICAgICAgIHN1Y2ggdGhhdCBWYWxpZEVuY291bnRlcnMucGVyaW9kIGR1cmluZyAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgICAgICAgYW5kIFNVRERpYWdub3Npcy5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIHN0YXJ0cyBkdXJpbmcgVmFsaWRFbmNvdW50ZXJzLnBlcmlvZAogICAgICAgICAgYW5kIFNVRERpYWdub3Npcy5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIHN0YXJ0cyA0NyBkYXlzIG9yIG1vcmUgYmVmb3JlIGRheSBvZiAKICAgICAgICAgIGVuZCBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgICByZXR1cm4gewogICAgICAgIFZhbGlkRW5jb3VudGVyRGF0ZTogZGF0ZSBmcm9tIHN0YXJ0IG9mIFZhbGlkRW5jb3VudGVycy5wZXJpb2QsCiAgICAgICAgVmFsaWRFbmNvdW50ZXI6IFZhbGlkRW5jb3VudGVycwogICAgICB9CiAgICAgIHNvcnQgYnkgVmFsaWRFbmNvdW50ZXJEYXRlCiAgKS5WYWxpZEVuY291bnRlcgoKZGVmaW5lICJRdWFsaWZ5aW5nIEVuY291bnRlcnMiOgogICggW0VuY291bnRlcjogIk9mZmljZSBWaXNpdCJdCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJFbWVyZ2VuY3kgRGVwYXJ0bWVudCBFdmFsdWF0aW9uIGFuZCBNYW5hZ2VtZW50IFZpc2l0Il0KICAgICAgdW5pb24gW0VuY291bnRlcjogIkRldG94aWZpY2F0aW9uIFZpc2l0Il0KICAgICAgdW5pb24gW0VuY291bnRlcjogIkluaXRpYWwgSG9zcGl0YWwgSW5wYXRpZW50IFZpc2l0Il0KICAgICAgdW5pb24gW0VuY291bnRlcjogIkRpc2NoYXJnZSBTZXJ2aWNlcyBIb3NwaXRhbCBJbnBhdGllbnQgU2FtZSBEYXkgRGlzY2hhcmdlIl0KICAgICAgdW5pb24gW0VuY291bnRlcjogIkRpc2NoYXJnZSBTZXJ2aWNlcyBIb3NwaXRhbCBJbnBhdGllbnQiXQogICAgICB1bmlvbiBbRW5jb3VudGVyOiAiVGVsZXBob25lIFZpc2l0cyJdCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJWaXJ0dWFsIEVuY291bnRlciJdCiAgKS5pc0VuY291bnRlclBlcmZvcm1lZCAoICkKCmRlZmluZSAiSGlzdG9yeSBvZiBTVUQgRGlhZ25vc2lzIG9yIFRyZWF0bWVudCI6CiAgKCAoICggW1Byb2NlZHVyZTogIlN1YnN0YW5jZSBVc2UgRGlzb3JkZXIgVHJlYXRtZW50Il0KICAgICAgICB1bmlvbiBbUHJvY2VkdXJlOiAiUHN5Y2ggVmlzaXQgUHN5Y2hvdGhlcmFweSJdCiAgICAgICAgdW5pb24gW1Byb2NlZHVyZTogIlN1YnN0YW5jZSBVc2UgRGlzb3JkZXIgTG9uZyBBY3RpbmcgTWVkaWNhdGlvbiBBZG1pbmlzdHJhdGlvbiJdCiAgICAgICAgdW5pb24gW1Byb2NlZHVyZTogIlN1YnN0YW5jZSBVc2UgRGlzb3JkZXIgU2hvcnQgQWN0aW5nIE1lZGljYXRpb24gQWRtaW5pc3RyYXRpb24iXQogICAgKS5pc0ludGVydmVudGlvblBlcmZvcm1lZCAoICkgKSBJbnRlcnZlbnRpb25zCiAgICAgIHdpdGggIkZpcnN0IFNVRCBFcGlzb2RlIER1cmluZyBNZWFzdXJlbWVudCBQZXJpb2QiIEZpcnN0U1VERXBpc29kZQogICAgICAgIHN1Y2ggdGhhdCBJbnRlcnZlbnRpb25zLnBlcmZvcm1lZC50b0ludGVydmFsICggKSBzdGFydHMgNjAgZGF5cyBvciBsZXNzIGJlZm9yZSBkYXkgb2YgZGF0ZSBmcm9tIHN0YXJ0IG9mIEZpcnN0U1VERXBpc29kZS5wZXJpb2QKICApCiAgICB1bmlvbiAoICggKCAiUXVhbGlmeWluZyBFbmNvdW50ZXJzIgogICAgICAgIGV4Y2VwdCAiRW1lcmdlbmN5IERlcGFydG1lbnQgb3IgRGV0b3hpZmljYXRpb24gVmlzaXQiICkgUXVhbGlmeWluZ0VuY291bnRlcgogICAgICAgIHdoZXJlIFF1YWxpZnlpbmdFbmNvdW50ZXIuZW5jb3VudGVyRGlhZ25vc2lzICggKS5jb2RlIGluICJTdWJzdGFuY2UgVXNlIERpc29yZGVyIiApIFNVREVuY291bnRlckR4CiAgICAgICAgd2l0aCAiRmlyc3QgU1VEIEVwaXNvZGUgRHVyaW5nIE1lYXN1cmVtZW50IFBlcmlvZCIgRmlyc3RTVURFcGlzb2RlCiAgICAgICAgICBzdWNoIHRoYXQgU1VERW5jb3VudGVyRHgucGVyaW9kIHN0YXJ0cyA2MCBkYXlzIG9yIGxlc3MgYmVmb3JlIGRheSBvZiBkYXRlIGZyb20gc3RhcnQgb2YgRmlyc3RTVURFcGlzb2RlLnBlcmlvZAogICAgKQogICAgdW5pb24gKCAoICggW01lZGljYXRpb25SZXF1ZXN0OiAiU3Vic3RhbmNlIFVzZSBEaXNvcmRlciBMb25nIEFjdGluZyBNZWRpY2F0aW9uIl0KICAgICAgICAgIHVuaW9uIFtNZWRpY2F0aW9uUmVxdWVzdDogIlN1YnN0YW5jZSBVc2UgRGlzb3JkZXIgU2hvcnQgQWN0aW5nIE1lZGljYXRpb24iXQogICAgICApLmlzTWVkaWNhdGlvbk9yZGVyICggKSApIFNVRE1lZGljYXRpb24KICAgICAgICB3aXRoICJGaXJzdCBTVUQgRXBpc29kZSBEdXJpbmcgTWVhc3VyZW1lbnQgUGVyaW9kIiBGaXJzdFNVREVwaXNvZGUKICAgICAgICAgIHN1Y2ggdGhhdCBTVURNZWRpY2F0aW9uLmF1dGhvcmVkT24gNjAgZGF5cyBvciBsZXNzIGJlZm9yZSBkYXkgb2YgZGF0ZSBmcm9tIHN0YXJ0IG9mIEZpcnN0U1VERXBpc29kZS5wZXJpb2QKICAgICkKCmRlZmluZSAiRW1lcmdlbmN5IERlcGFydG1lbnQgb3IgRGV0b3hpZmljYXRpb24gVmlzaXQiOgogICggW0VuY291bnRlcjogIkVtZXJnZW5jeSBEZXBhcnRtZW50IEV2YWx1YXRpb24gYW5kIE1hbmFnZW1lbnQgVmlzaXQiXQogICAgICB1bmlvbiBbRW5jb3VudGVyOiAiRGV0b3hpZmljYXRpb24gVmlzaXQiXQogICkuaXNFbmNvdW50ZXJQZXJmb3JtZWQgKCApCgpkZWZpbmUgIkRlbm9taW5hdG9yIjoKICAiSW5pdGlhbCBQb3B1bGF0aW9uIgoKZGVmaW5lICJEZW5vbWluYXRvciBFeGNsdXNpb25zIjoKICBIb3NwaWNlLiJIYXMgSG9zcGljZSBTZXJ2aWNlcyIKCmRlZmluZSAiTnVtZXJhdG9yIDEiOgogIGV4aXN0cyAiVHJlYXRtZW50IEluaXRpYXRpb24gV2l0aCBOb24gTWVkaWNhdGlvbiBJbnRlcnZlbnRpb24gRGF0ZXMiCiAgICBvciBleGlzdHMgIlRyZWF0bWVudCBJbml0aWF0aW9uIFdpdGggTWVkaWNhdGlvbiBPcmRlciBEYXRlcyIKCmRlZmluZSAiVHJlYXRtZW50IEluaXRpYXRpb24gV2l0aCBOb24gTWVkaWNhdGlvbiBJbnRlcnZlbnRpb24gRGF0ZXMiOgogICggIlBzeWNob3NvY2lhbCBWaXNpdCIgUHN5Y2hvc29jaWFsVmlzaXRQcm9jZWR1cmUKICAgICAgbGV0IHRyZWF0bWVudERhdGU6IGRhdGUgZnJvbSBzdGFydCBvZiBQc3ljaG9zb2NpYWxWaXNpdFByb2NlZHVyZS5wZXJmb3JtZWQudG9JbnRlcnZhbCAoICkKICAgICAgd2l0aCAiRmlyc3QgU1VEIEVwaXNvZGUgRHVyaW5nIE1lYXN1cmVtZW50IFBlcmlvZCIgRmlyc3RTVURFcGlzb2RlCiAgICAgICAgc3VjaCB0aGF0IHRyZWF0bWVudERhdGUgZHVyaW5nIEludGVydmFsW2RhdGUgZnJvbSBzdGFydCBvZiBGaXJzdFNVREVwaXNvZGUucGVyaW9kLCBkYXRlIGZyb20gc3RhcnQgb2YgRmlyc3RTVURFcGlzb2RlLnBlcmlvZCArIDE0IGRheXMgKQogICAgICAgICAgYW5kIFBzeWNob3NvY2lhbFZpc2l0UHJvY2VkdXJlLmlkICF+IEZpcnN0U1VERXBpc29kZS5pZAogICAgICByZXR1cm4gYWxsIHRyZWF0bWVudERhdGUKICApCiAgICB1bmlvbiAoICJQc3ljaG9zb2NpYWwgVmlzaXQiIFBzeWNob3NvY2lhbFZpc2l0RW5jb3VudGVyCiAgICAgICAgbGV0IHRyZWF0bWVudERhdGU6IGRhdGUgZnJvbSBzdGFydCBvZiBQc3ljaG9zb2NpYWxWaXNpdEVuY291bnRlci5wZXJpb2QKICAgICAgICB3aXRoICJGaXJzdCBTVUQgRXBpc29kZSBEdXJpbmcgTWVhc3VyZW1lbnQgUGVyaW9kIiBGaXJzdFNVREVwaXNvZGUKICAgICAgICAgIHN1Y2ggdGhhdCB0cmVhdG1lbnREYXRlIGR1cmluZyBJbnRlcnZhbFtkYXRlIGZyb20gc3RhcnQgb2YgRmlyc3RTVURFcGlzb2RlLnBlcmlvZCwgZGF0ZSBmcm9tIHN0YXJ0IG9mIEZpcnN0U1VERXBpc29kZS5wZXJpb2QgKyAxNCBkYXlzICkKICAgICAgICAgICAgYW5kIFBzeWNob3NvY2lhbFZpc2l0RW5jb3VudGVyLmlkICF+IEZpcnN0U1VERXBpc29kZS5pZAogICAgICAgIHJldHVybiBhbGwgdHJlYXRtZW50RGF0ZQogICAgKQoKZGVmaW5lICJQc3ljaG9zb2NpYWwgVmlzaXQiOgogICggKCBbUHJvY2VkdXJlOiAiU3Vic3RhbmNlIFVzZSBEaXNvcmRlciBUcmVhdG1lbnQiXQogICAgICAgIHVuaW9uIFtQcm9jZWR1cmU6ICJQc3ljaCBWaXNpdCBQc3ljaG90aGVyYXB5Il0KICAgICkuaXNJbnRlcnZlbnRpb25QZXJmb3JtZWQgKCApCiAgKQogICAgdW5pb24gKCAoIFtFbmNvdW50ZXI6ICJUZWxlcGhvbmUgVmlzaXRzIl0KICAgICAgICB1bmlvbiBbRW5jb3VudGVyOiAiVmlydHVhbCBFbmNvdW50ZXIiXQogICAgKS5pc0VuY291bnRlclBlcmZvcm1lZCAoICkgKSBUZWxlaGVhbHRoRW5jb3VudGVyCiAgICAgIHdoZXJlIFRlbGVoZWFsdGhFbmNvdW50ZXIuZW5jb3VudGVyRGlhZ25vc2lzICggKS5jb2RlIGluICJTdWJzdGFuY2UgVXNlIERpc29yZGVyIgoKZGVmaW5lICJUcmVhdG1lbnQgSW5pdGlhdGlvbiBXaXRoIE1lZGljYXRpb24gT3JkZXIgRGF0ZXMiOgogICggKCAoIFtNZWRpY2F0aW9uUmVxdWVzdDogIlN1YnN0YW5jZSBVc2UgRGlzb3JkZXIgU2hvcnQgQWN0aW5nIE1lZGljYXRpb24iXQogICAgICAgIHVuaW9uIFtNZWRpY2F0aW9uUmVxdWVzdDogIlN1YnN0YW5jZSBVc2UgRGlzb3JkZXIgTG9uZyBBY3RpbmcgTWVkaWNhdGlvbiJdCiAgICApLmlzTWVkaWNhdGlvbk9yZGVyICggKSApIFNVRE1lZGljYXRpb24KICAgICAgbGV0IHRyZWF0bWVudERhdGU6IGRhdGUgZnJvbSBzdGFydCBvZiBTVURNZWRpY2F0aW9uLmF1dGhvcmVkT24udG9JbnRlcnZhbCAoICkKICAgICAgd2l0aCAiRmlyc3QgU1VEIEVwaXNvZGUgRHVyaW5nIE1lYXN1cmVtZW50IFBlcmlvZCIgRmlyc3RTVURFcGlzb2RlCiAgICAgICAgc3VjaCB0aGF0IHRyZWF0bWVudERhdGUgZHVyaW5nIEludGVydmFsW2RhdGUgZnJvbSBzdGFydCBvZiBGaXJzdFNVREVwaXNvZGUucGVyaW9kLCBkYXRlIGZyb20gc3RhcnQgb2YgRmlyc3RTVURFcGlzb2RlLnBlcmlvZCArIDE0IGRheXMgKQogICAgICByZXR1cm4gYWxsIHRyZWF0bWVudERhdGUKICApCiAgICB1bmlvbiAoICggKCBbUHJvY2VkdXJlOiAiU3Vic3RhbmNlIFVzZSBEaXNvcmRlciBTaG9ydCBBY3RpbmcgTWVkaWNhdGlvbiBBZG1pbmlzdHJhdGlvbiJdCiAgICAgICAgICB1bmlvbiBbUHJvY2VkdXJlOiAiU3Vic3RhbmNlIFVzZSBEaXNvcmRlciBMb25nIEFjdGluZyBNZWRpY2F0aW9uIEFkbWluaXN0cmF0aW9uIl0KICAgICAgKS5pc1Byb2NlZHVyZVBlcmZvcm1lZCAoICkgKSBTVURNZWRBZG1pbmlzdHJhdGlvbgogICAgICAgIGxldCB0cmVhdG1lbnREYXRlOiBkYXRlIGZyb20gc3RhcnQgb2YgU1VETWVkQWRtaW5pc3RyYXRpb24ucGVyZm9ybWVkLnRvSW50ZXJ2YWwgKCApCiAgICAgICAgd2l0aCAiRmlyc3QgU1VEIEVwaXNvZGUgRHVyaW5nIE1lYXN1cmVtZW50IFBlcmlvZCIgRmlyc3RTVURFcGlzb2RlCiAgICAgICAgICBzdWNoIHRoYXQgdHJlYXRtZW50RGF0ZSBkdXJpbmcgSW50ZXJ2YWxbZGF0ZSBmcm9tIHN0YXJ0IG9mIEZpcnN0U1VERXBpc29kZS5wZXJpb2QsIGRhdGUgZnJvbSBzdGFydCBvZiBGaXJzdFNVREVwaXNvZGUucGVyaW9kICsgMTQgZGF5cyApCiAgICAgICAgcmV0dXJuIGFsbCB0cmVhdG1lbnREYXRlCiAgICApCgpkZWZpbmUgIkhhcyBUd28gb3IgTW9yZSBUcmVhdG1lbnQgRW5nYWdlbWVudHMgV2l0aCBTaG9ydCBBY3RpbmcgTWVkaWNhdGlvbiBvciBOb24gTWVkaWNhdGlvbiBJbnRlcnZlbnRpb24iOgogIENvdW50KCgoIlBzeWNob3NvY2lhbCBWaXNpdCIKICAgICAgICB1bmlvbigoW1Byb2NlZHVyZTogIlN1YnN0YW5jZSBVc2UgRGlzb3JkZXIgU2hvcnQgQWN0aW5nIE1lZGljYXRpb24gQWRtaW5pc3RyYXRpb24iXSkuaXNQcm9jZWR1cmVQZXJmb3JtZWQoKSkpIFNob3J0QWN0aW5nVHJlYXRtZW50CiAgICAgICAgd2l0aChNaW4oIlRyZWF0bWVudCBJbml0aWF0aW9uIFdpdGggTm9uIE1lZGljYXRpb24gSW50ZXJ2ZW50aW9uIERhdGVzIgogICAgICAgICAgICB1bmlvbiAiVHJlYXRtZW50IEluaXRpYXRpb24gV2l0aCBNZWRpY2F0aW9uIE9yZGVyIERhdGVzIgogICAgICAgICkpIEluaXRpYXRpb25UcmVhdG1lbnREYXRlCiAgICAgICAgICBzdWNoIHRoYXQgZGF0ZSBmcm9tIHN0YXJ0IG9mIFNob3J0QWN0aW5nVHJlYXRtZW50LnBlcmZvcm1lZC50b0ludGVydmFsKCkgMzQgZGF5cyBvciBsZXNzIGFmdGVyIEluaXRpYXRpb25UcmVhdG1lbnREYXRlCiAgICAgICAgICAgIG9yIGRhdGUgZnJvbSBzdGFydCBvZiBTaG9ydEFjdGluZ1RyZWF0bWVudC5wZXJpb2QgMzQgZGF5cyBvciBsZXNzIGFmdGVyIEluaXRpYXRpb25UcmVhdG1lbnREYXRlCiAgICAgICAgcmV0dXJuIGFsbCBTaG9ydEFjdGluZ1RyZWF0bWVudAogICAgKQogICAgICB1bmlvbigoKFtNZWRpY2F0aW9uUmVxdWVzdDogIlN1YnN0YW5jZSBVc2UgRGlzb3JkZXIgU2hvcnQgQWN0aW5nIE1lZGljYXRpb24iXSkuaXNNZWRpY2F0aW9uT3JkZXIoKSkgU2hvcnRBY3RpbmdNZWRPcmRlcgogICAgICAgICAgd2l0aChNaW4oIlRyZWF0bWVudCBJbml0aWF0aW9uIFdpdGggTm9uIE1lZGljYXRpb24gSW50ZXJ2ZW50aW9uIERhdGVzIgogICAgICAgICAgICAgIHVuaW9uICJUcmVhdG1lbnQgSW5pdGlhdGlvbiBXaXRoIE1lZGljYXRpb24gT3JkZXIgRGF0ZXMiCiAgICAgICAgICApKSBJbml0aWF0aW9uVHJlYXRtZW50RGF0ZQogICAgICAgICAgICBzdWNoIHRoYXQgZGF0ZSBmcm9tIHN0YXJ0IG9mIFNob3J0QWN0aW5nTWVkT3JkZXIuYXV0aG9yZWRPbi50b0ludGVydmFsKCkgMzQgZGF5cyBvciBsZXNzIGFmdGVyIEluaXRpYXRpb25UcmVhdG1lbnREYXRlCiAgICAgICAgICByZXR1cm4gYWxsIFNob3J0QWN0aW5nTWVkT3JkZXIKICAgICAgKQogICkgPj0gMgoKZGVmaW5lICJOdW1lcmF0b3IgMiI6CiAgIkhhcyBUcmVhdG1lbnQgRW5nYWdlbWVudCBXaXRoIExvbmcgQWN0aW5nIE1lZGljYXRpb24iCiAgICBvciAiSGFzIFR3byBvciBNb3JlIFRyZWF0bWVudCBFbmdhZ2VtZW50cyBXaXRoIFNob3J0IEFjdGluZyBNZWRpY2F0aW9uIG9yIE5vbiBNZWRpY2F0aW9uIEludGVydmVudGlvbiIKCmRlZmluZSAiSGFzIFRyZWF0bWVudCBFbmdhZ2VtZW50IFdpdGggTG9uZyBBY3RpbmcgTWVkaWNhdGlvbiI6CiAgZXhpc3RzICggKCAoICggW01lZGljYXRpb25SZXF1ZXN0OiAiU3Vic3RhbmNlIFVzZSBEaXNvcmRlciBMb25nIEFjdGluZyBNZWRpY2F0aW9uIl0gKS5pc01lZGljYXRpb25PcmRlciAoICkgKSBMb25nQWN0aW5nTWVkT3JkZXIKICAgICAgICB3aXRoICggTWluKCJUcmVhdG1lbnQgSW5pdGlhdGlvbiBXaXRoIE5vbiBNZWRpY2F0aW9uIEludGVydmVudGlvbiBEYXRlcyIKICAgICAgICAgICAgdW5pb24gIlRyZWF0bWVudCBJbml0aWF0aW9uIFdpdGggTWVkaWNhdGlvbiBPcmRlciBEYXRlcyIKICAgICAgICApICkgSW5pdGlhdGlvblRyZWF0bWVudERhdGUKICAgICAgICAgIHN1Y2ggdGhhdCBkYXRlIGZyb20gc3RhcnQgb2YgTG9uZ0FjdGluZ01lZE9yZGVyLmF1dGhvcmVkT24udG9JbnRlcnZhbCAoICkgMzQgZGF5cyBvciBsZXNzIGFmdGVyIEluaXRpYXRpb25UcmVhdG1lbnREYXRlCiAgICApCiAgICAgIHVuaW9uICggKCAoIFtQcm9jZWR1cmU6ICJTdWJzdGFuY2UgVXNlIERpc29yZGVyIExvbmcgQWN0aW5nIE1lZGljYXRpb24gQWRtaW5pc3RyYXRpb24iXSApLmlzUHJvY2VkdXJlUGVyZm9ybWVkICggKSApIExvbmdBY3RpbmdUcmVhdG1lbnQKICAgICAgICAgIHdpdGggKCBNaW4oIlRyZWF0bWVudCBJbml0aWF0aW9uIFdpdGggTm9uIE1lZGljYXRpb24gSW50ZXJ2ZW50aW9uIERhdGVzIgogICAgICAgICAgICAgIHVuaW9uICJUcmVhdG1lbnQgSW5pdGlhdGlvbiBXaXRoIE1lZGljYXRpb24gT3JkZXIgRGF0ZXMiCiAgICAgICAgICApICkgSW5pdGlhdGlvblRyZWF0bWVudERhdGUKICAgICAgICAgICAgc3VjaCB0aGF0IGRhdGUgZnJvbSBzdGFydCBvZiBMb25nQWN0aW5nVHJlYXRtZW50LnBlcmZvcm1lZC50b0ludGVydmFsICggKSAzNCBkYXlzIG9yIGxlc3MgYWZ0ZXIgSW5pdGlhdGlvblRyZWF0bWVudERhdGUKICAgICAgKQogICkKCmRlZmluZSAiU0RFIEV0aG5pY2l0eSI6CiAgU0RFLiJTREUgRXRobmljaXR5IgoKZGVmaW5lICJTREUgUGF5ZXIiOgogIFNERS4iU0RFIFBheWVyIgoKZGVmaW5lICJTREUgUmFjZSI6CiAgU0RFLiJTREUgUmFjZSIKCmRlZmluZSAiU0RFIFNleCI6CiAgU0RFLiJTREUgU2V4IgoKZGVmaW5lICJTdHJhdGlmaWNhdGlvbiAxIjoKICBBZ2VJblllYXJzQXQoZGF0ZSBmcm9tIHN0YXJ0IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiKSBpbiBJbnRlcnZhbFsxMywgMTddCgpkZWZpbmUgIlN0cmF0aWZpY2F0aW9uIDIiOgogIEFnZUluWWVhcnNBdChkYXRlIGZyb20gc3RhcnQgb2YgIk1lYXN1cmVtZW50IFBlcmlvZCIpIGluIEludGVydmFsWzE4LCA2NF0KCmRlZmluZSAiU3RyYXRpZmljYXRpb24gMyI6CiAgQWdlSW5ZZWFyc0F0KGRhdGUgZnJvbSBzdGFydCBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIikgPj0gNjU="/>
    <url
         value="https://madie.cms.gov/Library-CMS137FHIRSUDTxInitEngagement.cql"/>
  </content>
</Library>