Common CQL Artifacts for FHIR (US-Based)
1.0.0-ballot - STU 1 Ballot United States of America flag

Common CQL Artifacts for FHIR (US-Based), published by HL7 International / Clinical Decision Support. This guide is not an authorized publication; it is the continuous build for version 1.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/us-cql-ig/ and changes regularly. See the Directory of published versions

: Expression Library for the Medical Benefit Outpatient Drug Authorization Example - JSON Representation

Page standards status: Informative Maturity Level: 3

Raw json | Download

{
  "resourceType" : "Library",
  "id" : "MBODAInitialExpressions",
  "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;\">Expression Library for the Medical Benefit Outpatient Drug Authorization Example</td>\n        </tr>\n        \n\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Id: </b></th>\n            <td style=\"padding-left: 4px;\">MBODAInitialExpressions</td>\n        </tr>\n        \n\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Version: </b></th>\n            <td style=\"padding-left: 4px;\">1.0.0-ballot</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-MBODAInitialExpressions.html\">Expression Library for the Medical Benefit Outpatient Drug Authorization Example</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        <tr>\n            <th scope=\"row\"><b>Experimental: </b></th>\n            <td style=\"padding-left: 4px;\">true</td>\n        </tr>\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/6.5.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;\">2025-09-10 20:00:05+0000</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Publisher: </b></th>\n            <td style=\"padding-left: 4px;\">HL7 International / Clinical Decision Support</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Description: </b></th>\n            <td style=\"padding-left: 4px;\"><div><p>Initial expressions for use in populating answers to questions in the Medical Benefit Outpatient Drug Authorization example questionnaire.</p>\n</div></td>\n        </tr>\n        \n\n        \n\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Jurisdiction: </b></th>\n            <td style=\"padding-left: 4px;\">US</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        <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\">library MBODAInitialExpressions\n\nusing USCore version '7.0.0'\nusing FHIR version '4.0.1'\n\ninclude hl7.fhir.uv.cql.FHIRHelpers version '4.0.1'\ninclude USCoreCommon called UC\ninclude USCoreElements called UCE\n\n//CumulativeMedicationDuration was created as part of the US ECQM and CDC Opioid Guideline development \n//http://fhir.org/guides/cdc/opioid-mme-r4\ninclude CumulativeMedicationDuration called CMD\n\ncodesystem &quot;LOINC&quot;: 'http://loinc.org'\ncodesystem &quot;Identifier Type&quot;: 'http://terminology.hl7.org/CodeSystem/v2-0203'\ncode &quot;Body surface area&quot;: '8277-6' from &quot;LOINC&quot; display 'Intensive care unit'\ncode &quot;Member Number&quot;: 'MB' from &quot;Identifier Type&quot;\n\nparameter &quot;MedicationRequest&quot; USCore.MedicationRequestProfile\n\ncontext Patient\n\ndefine &quot;Last Name&quot;:\n  UCE.&quot;Last Name&quot;\n\ndefine &quot;First Name&quot;:\n  UCE.&quot;First Name&quot;\n\ndefine &quot;Allergies&quot;:\n  UCE.&quot;Active Confirmed Allergies and Intolerances&quot;.code.codes.display \n\ndefine &quot;Height&quot;:\n  convert (((UCE.&quot;All Body Height Measurements&quot;).mostRecent() as &quot;observation-bodyheight&quot;).value) to '[in_i]'\n\ndefine &quot;Height in [in_i]&quot;:\n  &quot;Height&quot;.value\n\ndefine &quot;Height in cm&quot;:\n  convert(&quot;Height&quot;) to 'cm'\n\ndefine &quot;Weight Most Recent&quot;:\n  (UCE.&quot;All Body Weight Measurements&quot;).mostRecent() as &quot;observation-bodyweight&quot;\n\ndefine &quot;Weight&quot;:\n  convert (((UCE.&quot;All Body Weight Measurements&quot;).mostRecent() as &quot;observation-bodyweight&quot;).value) to '[lb_av]'\n\ndefine &quot;Weight in [lb_av]&quot;:\n  &quot;Weight&quot;.value\n\ndefine &quot;Weight in kg&quot;:\n  convert(&quot;Weight&quot;) to 'kg'\n\ndefine &quot;BMI&quot;:\n  (UCE.&quot;All Body Mass Index Measurements&quot;).value\n\ndefine &quot;Most Recent BSA&quot;:\n  UCE.&quot;Most Recent BSA&quot;\n\ndefine &quot;BSA&quot;:\n  Coalesce(&quot;Most Recent BSA&quot;, &quot;Calculated BSA - Mosteller&quot;)\n\ndefine &quot;BSA in m2&quot;:\n  &quot;BSA&quot;.value\n\n// Mosteller formula using lbs and inches\ndefine &quot;Calculated BSA - Mosteller&quot;:\n  UCE.CalculateBSA('Mosteller', &quot;Height&quot;, &quot;Weight&quot;)\n  //(((&quot;Weight&quot;*&quot;Height&quot;)/3131).value)^0.5\n\ndefine &quot;Calculated BSA - DuBois and DuBois&quot;:\n  UCE.CalculateBSA('DuBois and DuBois', &quot;Height&quot;, &quot;Weight&quot;)\n\ndefine &quot;Diagnosis Codes&quot;:\n  UCE.&quot;All Conditions&quot; C\n    return C.code\n\ndefine &quot;Diagnosis Descriptions&quot;:\n  &quot;Diagnosis Codes&quot; ConceptItem\n    return Combine(((ConceptItem.codes) C return C.display), '|')\n\ndefine &quot;Medication Requested&quot;:\n  UCE.&quot;All Medications&quot; M\n    where EndsWith((&quot;Most Recent Medication Request&quot;.medication as USCore.Reference).reference, M.id)\n\ndefine &quot;Medication Name&quot;:\n  &quot;Medication Requested&quot; M\n    return M.code.display\n\ndefine &quot;Code of Requested Drug&quot;:\n  &quot;Medication Requested&quot; M\n    return M.code\n\ndefine &quot;Retrieve Medication Request test parameter&quot;:\n  // The VSCode extension doesn't support parameters\n  // When executing CQL with the VSCode extension retrieve the resource specific for the test case\n  //   the list of resource ids match the resources from the test case folders\n  singleton from ([USCore.MedicationRequestProfile] MR where MR.id in { \n    'example',\n    'example-continued-therapy',\n    'example-new-therapy',\n    'uscore-patient-1-med-request-example',\n    'uscore-patient-2-med-request-example',\n    'uscore-patient-3-med-request-example',\n    'uscore-patient-4-med-request-example'})\n\ndefine &quot;Most Recent Medication Request&quot;:\n  Coalesce(\n    MedicationRequest,\n    &quot;Retrieve Medication Request test parameter&quot;\n  )\n\ndefine &quot;Medication Request References&quot;:\n  (&quot;Most Recent Medication Request&quot;.medication as USCore.Reference).reference\n\ndefine &quot;Most Recent Medication Request dosageInstruction&quot;:\n  // TODO: should this really be a singleton?\n  singleton from &quot;Most Recent Medication Request&quot;.dosageInstruction\n\ndefine &quot;Most Recent Medication Request dosageInstruction.doseAndRate&quot;:\n  // TODO: should this really be a singleton?\n  singleton from &quot;Most Recent Medication Request dosageInstruction&quot;.doseAndRate\n\ndefine &quot;Medication Dose&quot;:\n  &quot;Most Recent Medication Request dosageInstruction.doseAndRate&quot;.dose\n\ndefine &quot;Medication Route&quot;:\n  &quot;Most Recent Medication Request dosageInstruction&quot;.route\n\ndefine &quot;Medication Frequency value&quot;:\n  &quot;Most Recent Medication Request dosageInstruction&quot;.timing.repeat.frequency\n\ndefine &quot;Medication Frequency Period&quot;:\n  if (IsNull(&quot;Most Recent Medication Request dosageInstruction&quot;.timing.repeat.period)) then \n    null\n  else\n    System.Quantity {\n      value: &quot;Most Recent Medication Request dosageInstruction&quot;.timing.repeat.period,\n      unit: &quot;Most Recent Medication Request dosageInstruction&quot;.timing.repeat.periodUnit\n    }\n\ndefine &quot;Medication Frequency&quot;: // '1x per 1d', '3x per 2wk', '1x per 1mo'\n  ToString(&quot;Medication Frequency value&quot;) + 'x' +\n  ' per ' + ToString(&quot;Medication Frequency Period&quot;.value) + \n  ' ' + &quot;Medication Frequency Period&quot;.unit\n\ndefine &quot;Quantity or Number of requested Visits&quot;:\n  &quot;Most Recent Medication Request&quot;.dispenseRequest.quantity\n\ndefine &quot;Prior Prescription&quot;:\n  &quot;Most Recent Medication Request&quot;.priorPrescription\n\ndefine &quot;New therapy&quot;:\n  IsNull(&quot;Prior Prescription&quot;)\n\ndefine &quot;New therapy code&quot;:\n  if (&quot;New therapy&quot;) then\n    System.Code { code: 'NewMedication', display: 'New Medication' }\n  else\n    System.Code { code: 'ContinuedTherapy', display: 'Continuation of therapy' }\n\n// MISSING: needs test data to validate\n//Initial date of therapy does not return correct result if there have been more than 1 prior Prescriptions - logic needs to be adapted to that case\ndefine &quot;Initial date of therapy&quot;:\n  if not &quot;New therapy&quot; then\n    UCE.&quot;All Medication Requests&quot; M\n      where EndsWith((&quot;Most Recent Medication Request&quot;.priorPrescription as USCore.Reference).reference, M.id)\n      return M.authoredOn\n  else \n    null\n\ndefine &quot;Medication Request Period&quot;:\n  CMD.&quot;MedicationRequestPeriod&quot;(&quot;Most Recent Medication Request&quot;)\n\ndefine &quot;Expected Therapy Length&quot;:\n  convert(\n    CMD.Quantity(days between start of &quot;Medication Request Period&quot; and end of &quot;Medication Request Period&quot;, 'd')\n  ) to 'd'\n\ndefine &quot;Anticipated/actual date of service&quot;:\n  start of &quot;Medication Request Period&quot;\n\n/*\n//related Procedures - Procedure is not linked to medication request - not possible to find the related procedures\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/></pre></td></tr>\n            </table>\n          </td>\n        </tr>\n        \n        \n    </table>\n</div>\n</div>"
  },
  "extension" : [
    {
      "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
      "valueInteger" : 3
    },
    {
      "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
      "valueCode" : "cds"
    },
    {
      "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
      "valueCode" : "informative"
    }
  ],
  "url" : "http://hl7.org/fhir/us/cql/Library/MBODAInitialExpressions",
  "version" : "1.0.0-ballot",
  "name" : "MBODAInitialExpressions",
  "title" : "Expression Library for the Medical Benefit Outpatient Drug Authorization Example",
  "status" : "draft",
  "experimental" : true,
  "type" : {
    "coding" : [
      {
        "system" : "http://terminology.hl7.org/CodeSystem/library-type",
        "code" : "logic-library"
      }
    ]
  },
  "date" : "2025-09-10T20:00:05+00:00",
  "publisher" : "HL7 International / Clinical Decision Support",
  "contact" : [
    {
      "telecom" : [
        {
          "system" : "url",
          "value" : "http://www.hl7.org/Special/committees/dss"
        }
      ]
    }
  ],
  "description" : "Initial expressions for use in populating answers to questions in the Medical Benefit Outpatient Drug Authorization example questionnaire.",
  "jurisdiction" : [
    {
      "coding" : [
        {
          "system" : "urn:iso:std:iso:3166",
          "code" : "US",
          "display" : "United States of America"
        }
      ]
    }
  ],
  "content" : [
    {
      "contentType" : "text/cql",
      "data" : "bGlicmFyeSBNQk9EQUluaXRpYWxFeHByZXNzaW9ucwoKdXNpbmcgVVNDb3JlIHZlcnNpb24gJzcuMC4wJwp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4xJwoKaW5jbHVkZSBobDcuZmhpci51di5jcWwuRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnCmluY2x1ZGUgVVNDb3JlQ29tbW9uIGNhbGxlZCBVQwppbmNsdWRlIFVTQ29yZUVsZW1lbnRzIGNhbGxlZCBVQ0UKCi8vQ3VtdWxhdGl2ZU1lZGljYXRpb25EdXJhdGlvbiB3YXMgY3JlYXRlZCBhcyBwYXJ0IG9mIHRoZSBVUyBFQ1FNIGFuZCBDREMgT3Bpb2lkIEd1aWRlbGluZSBkZXZlbG9wbWVudCAKLy9odHRwOi8vZmhpci5vcmcvZ3VpZGVzL2NkYy9vcGlvaWQtbW1lLXI0CmluY2x1ZGUgQ3VtdWxhdGl2ZU1lZGljYXRpb25EdXJhdGlvbiBjYWxsZWQgQ01ECgpjb2Rlc3lzdGVtICJMT0lOQyI6ICdodHRwOi8vbG9pbmMub3JnJwpjb2Rlc3lzdGVtICJJZGVudGlmaWVyIFR5cGUiOiAnaHR0cDovL3Rlcm1pbm9sb2d5LmhsNy5vcmcvQ29kZVN5c3RlbS92Mi0wMjAzJwpjb2RlICJCb2R5IHN1cmZhY2UgYXJlYSI6ICc4Mjc3LTYnIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdJbnRlbnNpdmUgY2FyZSB1bml0Jwpjb2RlICJNZW1iZXIgTnVtYmVyIjogJ01CJyBmcm9tICJJZGVudGlmaWVyIFR5cGUiCgpwYXJhbWV0ZXIgIk1lZGljYXRpb25SZXF1ZXN0IiBVU0NvcmUuTWVkaWNhdGlvblJlcXVlc3RQcm9maWxlCgpjb250ZXh0IFBhdGllbnQKCmRlZmluZSAiTGFzdCBOYW1lIjoKICBVQ0UuIkxhc3QgTmFtZSIKCmRlZmluZSAiRmlyc3QgTmFtZSI6CiAgVUNFLiJGaXJzdCBOYW1lIgoKZGVmaW5lICJBbGxlcmdpZXMiOgogIFVDRS4iQWN0aXZlIENvbmZpcm1lZCBBbGxlcmdpZXMgYW5kIEludG9sZXJhbmNlcyIuY29kZS5jb2Rlcy5kaXNwbGF5IAoKZGVmaW5lICJIZWlnaHQiOgogIGNvbnZlcnQgKCgoVUNFLiJBbGwgQm9keSBIZWlnaHQgTWVhc3VyZW1lbnRzIikubW9zdFJlY2VudCgpIGFzICJvYnNlcnZhdGlvbi1ib2R5aGVpZ2h0IikudmFsdWUpIHRvICdbaW5faV0nCgpkZWZpbmUgIkhlaWdodCBpbiBbaW5faV0iOgogICJIZWlnaHQiLnZhbHVlCgpkZWZpbmUgIkhlaWdodCBpbiBjbSI6CiAgY29udmVydCgiSGVpZ2h0IikgdG8gJ2NtJwoKZGVmaW5lICJXZWlnaHQgTW9zdCBSZWNlbnQiOgogIChVQ0UuIkFsbCBCb2R5IFdlaWdodCBNZWFzdXJlbWVudHMiKS5tb3N0UmVjZW50KCkgYXMgIm9ic2VydmF0aW9uLWJvZHl3ZWlnaHQiCgpkZWZpbmUgIldlaWdodCI6CiAgY29udmVydCAoKChVQ0UuIkFsbCBCb2R5IFdlaWdodCBNZWFzdXJlbWVudHMiKS5tb3N0UmVjZW50KCkgYXMgIm9ic2VydmF0aW9uLWJvZHl3ZWlnaHQiKS52YWx1ZSkgdG8gJ1tsYl9hdl0nCgpkZWZpbmUgIldlaWdodCBpbiBbbGJfYXZdIjoKICAiV2VpZ2h0Ii52YWx1ZQoKZGVmaW5lICJXZWlnaHQgaW4ga2ciOgogIGNvbnZlcnQoIldlaWdodCIpIHRvICdrZycKCmRlZmluZSAiQk1JIjoKICAoVUNFLiJBbGwgQm9keSBNYXNzIEluZGV4IE1lYXN1cmVtZW50cyIpLnZhbHVlCgpkZWZpbmUgIk1vc3QgUmVjZW50IEJTQSI6CiAgVUNFLiJNb3N0IFJlY2VudCBCU0EiCgpkZWZpbmUgIkJTQSI6CiAgQ29hbGVzY2UoIk1vc3QgUmVjZW50IEJTQSIsICJDYWxjdWxhdGVkIEJTQSAtIE1vc3RlbGxlciIpCgpkZWZpbmUgIkJTQSBpbiBtMiI6CiAgIkJTQSIudmFsdWUKCi8vIE1vc3RlbGxlciBmb3JtdWxhIHVzaW5nIGxicyBhbmQgaW5jaGVzCmRlZmluZSAiQ2FsY3VsYXRlZCBCU0EgLSBNb3N0ZWxsZXIiOgogIFVDRS5DYWxjdWxhdGVCU0EoJ01vc3RlbGxlcicsICJIZWlnaHQiLCAiV2VpZ2h0IikKICAvLygoKCJXZWlnaHQiKiJIZWlnaHQiKS8zMTMxKS52YWx1ZSleMC41CgpkZWZpbmUgIkNhbGN1bGF0ZWQgQlNBIC0gRHVCb2lzIGFuZCBEdUJvaXMiOgogIFVDRS5DYWxjdWxhdGVCU0EoJ0R1Qm9pcyBhbmQgRHVCb2lzJywgIkhlaWdodCIsICJXZWlnaHQiKQoKZGVmaW5lICJEaWFnbm9zaXMgQ29kZXMiOgogIFVDRS4iQWxsIENvbmRpdGlvbnMiIEMKICAgIHJldHVybiBDLmNvZGUKCmRlZmluZSAiRGlhZ25vc2lzIERlc2NyaXB0aW9ucyI6CiAgIkRpYWdub3NpcyBDb2RlcyIgQ29uY2VwdEl0ZW0KICAgIHJldHVybiBDb21iaW5lKCgoQ29uY2VwdEl0ZW0uY29kZXMpIEMgcmV0dXJuIEMuZGlzcGxheSksICd8JykKCmRlZmluZSAiTWVkaWNhdGlvbiBSZXF1ZXN0ZWQiOgogIFVDRS4iQWxsIE1lZGljYXRpb25zIiBNCiAgICB3aGVyZSBFbmRzV2l0aCgoIk1vc3QgUmVjZW50IE1lZGljYXRpb24gUmVxdWVzdCIubWVkaWNhdGlvbiBhcyBVU0NvcmUuUmVmZXJlbmNlKS5yZWZlcmVuY2UsIE0uaWQpCgpkZWZpbmUgIk1lZGljYXRpb24gTmFtZSI6CiAgIk1lZGljYXRpb24gUmVxdWVzdGVkIiBNCiAgICByZXR1cm4gTS5jb2RlLmRpc3BsYXkKCmRlZmluZSAiQ29kZSBvZiBSZXF1ZXN0ZWQgRHJ1ZyI6CiAgIk1lZGljYXRpb24gUmVxdWVzdGVkIiBNCiAgICByZXR1cm4gTS5jb2RlCgpkZWZpbmUgIlJldHJpZXZlIE1lZGljYXRpb24gUmVxdWVzdCB0ZXN0IHBhcmFtZXRlciI6CiAgLy8gVGhlIFZTQ29kZSBleHRlbnNpb24gZG9lc24ndCBzdXBwb3J0IHBhcmFtZXRlcnMKICAvLyBXaGVuIGV4ZWN1dGluZyBDUUwgd2l0aCB0aGUgVlNDb2RlIGV4dGVuc2lvbiByZXRyaWV2ZSB0aGUgcmVzb3VyY2Ugc3BlY2lmaWMgZm9yIHRoZSB0ZXN0IGNhc2UKICAvLyAgIHRoZSBsaXN0IG9mIHJlc291cmNlIGlkcyBtYXRjaCB0aGUgcmVzb3VyY2VzIGZyb20gdGhlIHRlc3QgY2FzZSBmb2xkZXJzCiAgc2luZ2xldG9uIGZyb20gKFtVU0NvcmUuTWVkaWNhdGlvblJlcXVlc3RQcm9maWxlXSBNUiB3aGVyZSBNUi5pZCBpbiB7IAogICAgJ2V4YW1wbGUnLAogICAgJ2V4YW1wbGUtY29udGludWVkLXRoZXJhcHknLAogICAgJ2V4YW1wbGUtbmV3LXRoZXJhcHknLAogICAgJ3VzY29yZS1wYXRpZW50LTEtbWVkLXJlcXVlc3QtZXhhbXBsZScsCiAgICAndXNjb3JlLXBhdGllbnQtMi1tZWQtcmVxdWVzdC1leGFtcGxlJywKICAgICd1c2NvcmUtcGF0aWVudC0zLW1lZC1yZXF1ZXN0LWV4YW1wbGUnLAogICAgJ3VzY29yZS1wYXRpZW50LTQtbWVkLXJlcXVlc3QtZXhhbXBsZSd9KQoKZGVmaW5lICJNb3N0IFJlY2VudCBNZWRpY2F0aW9uIFJlcXVlc3QiOgogIENvYWxlc2NlKAogICAgTWVkaWNhdGlvblJlcXVlc3QsCiAgICAiUmV0cmlldmUgTWVkaWNhdGlvbiBSZXF1ZXN0IHRlc3QgcGFyYW1ldGVyIgogICkKCmRlZmluZSAiTWVkaWNhdGlvbiBSZXF1ZXN0IFJlZmVyZW5jZXMiOgogICgiTW9zdCBSZWNlbnQgTWVkaWNhdGlvbiBSZXF1ZXN0Ii5tZWRpY2F0aW9uIGFzIFVTQ29yZS5SZWZlcmVuY2UpLnJlZmVyZW5jZQoKZGVmaW5lICJNb3N0IFJlY2VudCBNZWRpY2F0aW9uIFJlcXVlc3QgZG9zYWdlSW5zdHJ1Y3Rpb24iOgogIC8vIFRPRE86IHNob3VsZCB0aGlzIHJlYWxseSBiZSBhIHNpbmdsZXRvbj8KICBzaW5nbGV0b24gZnJvbSAiTW9zdCBSZWNlbnQgTWVkaWNhdGlvbiBSZXF1ZXN0Ii5kb3NhZ2VJbnN0cnVjdGlvbgoKZGVmaW5lICJNb3N0IFJlY2VudCBNZWRpY2F0aW9uIFJlcXVlc3QgZG9zYWdlSW5zdHJ1Y3Rpb24uZG9zZUFuZFJhdGUiOgogIC8vIFRPRE86IHNob3VsZCB0aGlzIHJlYWxseSBiZSBhIHNpbmdsZXRvbj8KICBzaW5nbGV0b24gZnJvbSAiTW9zdCBSZWNlbnQgTWVkaWNhdGlvbiBSZXF1ZXN0IGRvc2FnZUluc3RydWN0aW9uIi5kb3NlQW5kUmF0ZQoKZGVmaW5lICJNZWRpY2F0aW9uIERvc2UiOgogICJNb3N0IFJlY2VudCBNZWRpY2F0aW9uIFJlcXVlc3QgZG9zYWdlSW5zdHJ1Y3Rpb24uZG9zZUFuZFJhdGUiLmRvc2UKCmRlZmluZSAiTWVkaWNhdGlvbiBSb3V0ZSI6CiAgIk1vc3QgUmVjZW50IE1lZGljYXRpb24gUmVxdWVzdCBkb3NhZ2VJbnN0cnVjdGlvbiIucm91dGUKCmRlZmluZSAiTWVkaWNhdGlvbiBGcmVxdWVuY3kgdmFsdWUiOgogICJNb3N0IFJlY2VudCBNZWRpY2F0aW9uIFJlcXVlc3QgZG9zYWdlSW5zdHJ1Y3Rpb24iLnRpbWluZy5yZXBlYXQuZnJlcXVlbmN5CgpkZWZpbmUgIk1lZGljYXRpb24gRnJlcXVlbmN5IFBlcmlvZCI6CiAgaWYgKElzTnVsbCgiTW9zdCBSZWNlbnQgTWVkaWNhdGlvbiBSZXF1ZXN0IGRvc2FnZUluc3RydWN0aW9uIi50aW1pbmcucmVwZWF0LnBlcmlvZCkpIHRoZW4gCiAgICBudWxsCiAgZWxzZQogICAgU3lzdGVtLlF1YW50aXR5IHsKICAgICAgdmFsdWU6ICJNb3N0IFJlY2VudCBNZWRpY2F0aW9uIFJlcXVlc3QgZG9zYWdlSW5zdHJ1Y3Rpb24iLnRpbWluZy5yZXBlYXQucGVyaW9kLAogICAgICB1bml0OiAiTW9zdCBSZWNlbnQgTWVkaWNhdGlvbiBSZXF1ZXN0IGRvc2FnZUluc3RydWN0aW9uIi50aW1pbmcucmVwZWF0LnBlcmlvZFVuaXQKICAgIH0KCmRlZmluZSAiTWVkaWNhdGlvbiBGcmVxdWVuY3kiOiAvLyAnMXggcGVyIDFkJywgJzN4IHBlciAyd2snLCAnMXggcGVyIDFtbycKICBUb1N0cmluZygiTWVkaWNhdGlvbiBGcmVxdWVuY3kgdmFsdWUiKSArICd4JyArCiAgJyBwZXIgJyArIFRvU3RyaW5nKCJNZWRpY2F0aW9uIEZyZXF1ZW5jeSBQZXJpb2QiLnZhbHVlKSArIAogICcgJyArICJNZWRpY2F0aW9uIEZyZXF1ZW5jeSBQZXJpb2QiLnVuaXQKCmRlZmluZSAiUXVhbnRpdHkgb3IgTnVtYmVyIG9mIHJlcXVlc3RlZCBWaXNpdHMiOgogICJNb3N0IFJlY2VudCBNZWRpY2F0aW9uIFJlcXVlc3QiLmRpc3BlbnNlUmVxdWVzdC5xdWFudGl0eQoKZGVmaW5lICJQcmlvciBQcmVzY3JpcHRpb24iOgogICJNb3N0IFJlY2VudCBNZWRpY2F0aW9uIFJlcXVlc3QiLnByaW9yUHJlc2NyaXB0aW9uCgpkZWZpbmUgIk5ldyB0aGVyYXB5IjoKICBJc051bGwoIlByaW9yIFByZXNjcmlwdGlvbiIpCgpkZWZpbmUgIk5ldyB0aGVyYXB5IGNvZGUiOgogIGlmICgiTmV3IHRoZXJhcHkiKSB0aGVuCiAgICBTeXN0ZW0uQ29kZSB7IGNvZGU6ICdOZXdNZWRpY2F0aW9uJywgZGlzcGxheTogJ05ldyBNZWRpY2F0aW9uJyB9CiAgZWxzZQogICAgU3lzdGVtLkNvZGUgeyBjb2RlOiAnQ29udGludWVkVGhlcmFweScsIGRpc3BsYXk6ICdDb250aW51YXRpb24gb2YgdGhlcmFweScgfQoKLy8gTUlTU0lORzogbmVlZHMgdGVzdCBkYXRhIHRvIHZhbGlkYXRlCi8vSW5pdGlhbCBkYXRlIG9mIHRoZXJhcHkgZG9lcyBub3QgcmV0dXJuIGNvcnJlY3QgcmVzdWx0IGlmIHRoZXJlIGhhdmUgYmVlbiBtb3JlIHRoYW4gMSBwcmlvciBQcmVzY3JpcHRpb25zIC0gbG9naWMgbmVlZHMgdG8gYmUgYWRhcHRlZCB0byB0aGF0IGNhc2UKZGVmaW5lICJJbml0aWFsIGRhdGUgb2YgdGhlcmFweSI6CiAgaWYgbm90ICJOZXcgdGhlcmFweSIgdGhlbgogICAgVUNFLiJBbGwgTWVkaWNhdGlvbiBSZXF1ZXN0cyIgTQogICAgICB3aGVyZSBFbmRzV2l0aCgoIk1vc3QgUmVjZW50IE1lZGljYXRpb24gUmVxdWVzdCIucHJpb3JQcmVzY3JpcHRpb24gYXMgVVNDb3JlLlJlZmVyZW5jZSkucmVmZXJlbmNlLCBNLmlkKQogICAgICByZXR1cm4gTS5hdXRob3JlZE9uCiAgZWxzZSAKICAgIG51bGwKCmRlZmluZSAiTWVkaWNhdGlvbiBSZXF1ZXN0IFBlcmlvZCI6CiAgQ01ELiJNZWRpY2F0aW9uUmVxdWVzdFBlcmlvZCIoIk1vc3QgUmVjZW50IE1lZGljYXRpb24gUmVxdWVzdCIpCgpkZWZpbmUgIkV4cGVjdGVkIFRoZXJhcHkgTGVuZ3RoIjoKICBjb252ZXJ0KAogICAgQ01ELlF1YW50aXR5KGRheXMgYmV0d2VlbiBzdGFydCBvZiAiTWVkaWNhdGlvbiBSZXF1ZXN0IFBlcmlvZCIgYW5kIGVuZCBvZiAiTWVkaWNhdGlvbiBSZXF1ZXN0IFBlcmlvZCIsICdkJykKICApIHRvICdkJwoKZGVmaW5lICJBbnRpY2lwYXRlZC9hY3R1YWwgZGF0ZSBvZiBzZXJ2aWNlIjoKICBzdGFydCBvZiAiTWVkaWNhdGlvbiBSZXF1ZXN0IFBlcmlvZCIKCi8qCi8vcmVsYXRlZCBQcm9jZWR1cmVzIC0gUHJvY2VkdXJlIGlzIG5vdCBsaW5rZWQgdG8gbWVkaWNhdGlvbiByZXF1ZXN0IC0gbm90IHBvc3NpYmxlIHRvIGZpbmQgdGhlIHJlbGF0ZWQgcHJvY2VkdXJlcwoqLw=="
    },
    {
      "contentType" : "application/elm+xml"
    }
  ]
}