WHO SMART Guidelines - HIV
0.3.0 - ci-build
WHO SMART Guidelines - HIV - Local Development build (v0.3.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
Draft as of 2024-12-06 |
{
"resourceType" : "Library",
"id" : "HIVIND89Logic",
"meta" : {
"profile" : [
🔗 "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"🔗 ,
"http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"🔗 ,
"http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"🔗 ,
"http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module"
]
},
"text" : {
"status" : "extensions",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n<div>\n <table class=\"grid dict\">\n \n \n <tr>\n <th scope=\"row\"><b>Title: </b></th>\n <td style=\"padding-left: 4px;\">HIV.IND.89 Logic</td>\n </tr>\n \n\n \n \n <tr>\n <th scope=\"row\"><b>Id: </b></th>\n <td style=\"padding-left: 4px;\">HIVIND89Logic</td>\n </tr>\n \n\n \n \n <tr>\n <th scope=\"row\"><b>Version: </b></th>\n <td style=\"padding-left: 4px;\">0.3.0</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-HIVIND89Logic.html\">HIV.IND.89 Logic</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://hl7.org/fhir/R4/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;\">2024-12-06 22:28:12+0000</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Publisher: </b></th>\n <td style=\"padding-left: 4px;\">WHO</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Description: </b></th>\n <td style=\"padding-left: 4px;\"><div><p>% of people living with HIV with a positive HCV test result (HCV antibody, HCV RNA (PCR) or HCV core antigen) during the reporting period</p>\n</div></td>\n </tr>\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n <tr>\n <td colspan=\"2\">\n <table>\n <tr><th><a id=\"cql-content\"><b>Content: </b></a> text/cql</th></tr>\n <tr><td><pre><code class=\"language-cql\">/**\n * Library: HIV.IND.89 Logic\n * Ref No: HEP.4B\n * Short Name: HCV positivity, HIV-positive clients\n *\n * Definition: % of people living with HIV with a positive HCV test result (HCV antibody, HCV RNA (PCR) or HCV core antigen) during the reporting period\n *\n * Numerator: Number of people living with HIV newly identified with a positive HCV test (HCV antibody, HCV RNA (PCR) or HCV core antigen) during the reporting period\n * Numerator Calculation: COUNT of clients with "HIV status"='HIV-positive' AND with "HCV test date" in the reporting period AND "HCV test result"='HCV positive'\n * Numerator Exclusions: \n *\n * Denominator: Number of people living with HIV who were tested for HCV during the reporting period\n * Denominator Calculation: COUNT of clients with "HIV status"='HIV-positive' AND with "HCV test date" in the reporting period\n * Denominator Exclusions: \n *\n * Disaggregations:\n * •\u00a0Gender (female, male, other**) \n * •\u00a0Age (15–19, 20–24, 25–29, 30–49, 50+ years) \n * •\u00a0Key populations (men who have sex with men, people living in prisons and other closed settings, people who inject drugs, sex workers, trans and gender diverse people)*** \n * •\u00a0Provider type (key population-led or community-led organization, public-sector provider, other entities such as private for-profit and not-for-profit organizations, including faith- based, international, nongovernmental) \n * •\u00a0Cities and other administrative regions of epidemiologic importance\n *\n * Disaggregation Elements: Gender | Age | HIV status | Key population member type\n *\n * Numerator and Denominator Elements:\n * HCV test date \n * HCV test result \n * HIV status\n *\n * Reference: Consolidated guidelines on person-centred HIV strategic information: strengthening routine data for impact. Geneva: World Health Organization; 2022\n * \n * Data Concepts:\n * HIV.A.DE17: Age | Calculated age (number of years) of the client based on date of birth\n * HIV.A.DE18: Gender* | Gender of the client*\n * HIV.A.DE19: Female | Client identifies as female\n * HIV.A.DE20: Male | Client identifies as male\n * HIV.A.DE21: Transgender male | Client identifies as transgender male\n * HIV.A.DE22: Transgender female | Client identifies as transgender female\n * HIV.A.DE23: Other | Additional category\n * HIV.B.DE50: Key population member type* | The type of key population that the client is included in\n * HIV.B.DE51: Sex worker | Client is a sex worker\n * HIV.B.DE52: Men who have sex with men | Client is a man who has sex with men\n * HIV.B.DE53: Trans and gender-diverse people | Client identifies as trans and gender-diverse\n * HIV.B.DE54: People who inject drugs | Client is a person who injects drugs\n * HIV.B.DE55: People living in prisons and other closed settings | Client lives in a prison or another closed setting\n * HIV.B.DE115: HIV status | HIV status reported after applying the national HIV testing algorithm. No single HIV test can provide an HIV-positive diagnosis.\n * HIV.B.DE116: HIV-positive | Client is HIV-positive\n * HIV.B.DE117: HIV-negative | Client is HIV-negative\n * HIV.B.DE118: Unknown | Client has unknown HIV status\n * HIV.D.DE169: HCV test date | Date client was tested for hepatitis C virus (HCV antibody, HCV RNA or HCV core antigen)\n * HIV.D.DE170: HCV test result | Hepatitis C virus test result (HCV antibody, HCV RNA or HCV core antigen)\n * HIV.D.DE171: Positive | HCV test result was positive\n * HIV.D.DE172: Negative | HCV test result was negative\n * HIV.D.DE173: Indeterminate | HCV test result was indeterminate\n * HIV.E.DE114: Key population member type* | The type of key population that the infant's mother is included in\n * HIV.E.DE115: Sex worker | Infant's mother is a sex worker\n * HIV.E.DE116: People who inject drugs | Infant's mother is a person who injects drugs\n * HIV.E.DE117: Trans and gender-diverse people | Infant's mother identifies as trans and gender-diverse\n * HIV.E.DE118: People living in prisons and other closed setting | Infant's mother is in a prison or closed setting\n * HIV.G.DE42: HCV test date | Date client was tested for hepatitis C virus (HCV antibody, HCV RNA or HCV core antigen)\n * HIV.G.DE43: HCV test result | Hepatitis C virus test result (HCV antibody, HCV RNA or HCV core antigen)\n * HIV.G.DE44: Positive | HCV test result was positive\n * HIV.G.DE45: Negative | HCV test result was negative\n * HIV.G.DE46: Indeterminate | HCV test result was indeterminate\n *\n * Additional Context\n * - what it measures: A: % of people attending HIV prevention services who were tested for HCV during the | reporting period (laboratory-based test or rapid test) | B: % of people living with HIV who were tested for HCV during the reporting period (laboratory-based test or rapid test)\n * - rationale: Many people living with HIV and receiving ART die from liver disease resulting from untreated HCV. Testing people living with HIV for HCV identifies HIV and HCV co-infection and allows for adaptation of treatment. Highly effective hepatitis C treatment is newly available; it has a high rate of virus clearance regardless of hepatitis C virus subtype.\n * - method: Patient monitoring tools (electronic or paper), for example, hepatitis testing and HIV service records, lab registers, logbooks and reporting forms at facility and community levels, EMR/ electronic information systems\n * \n * Suggested Scoring Method: proportion | http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm\n */\n\n /* \n * Profiles:\n * - HivHcvTest\n */\n\nlibrary HIVIND89Logic\n\n// Included Libraries\nusing FHIR version '4.0.1'\n\ninclude HIVCommon version '0.0.1' called HIC\ninclude FHIRHelpers version '4.0.1'\n\ninclude WHOCommon called WCom\ninclude HIVElements called HE\ninclude HIVIndicatorElements called HIE\ninclude HIVConfig called Config\n\n\n// Indicator Definition\nparameter "Measurement Period" Interval<Date> default Interval[@2023-01-01, @2023-01-30]\n\ncontext Patient\n/* Populations */\n\n/*\n *Initial Population\n */\n\ndefine "Initial Population":\n true\n\n/**\n * Numerator\n * \n * Definition: Number of people living with HIV newly identified with a positive HCV test (HCV antibody, HCV RNA (PCR) or HCV core antigen) during the reporting period\n * Calculation: COUNT of clients with "HIV status"='HIV-positive' AND with "HCV test date" in the reporting period AND "HCV test result"='HCV positive'\n */\n\ndefine "Numerator":\n HIE."Has HIV-positive Status" and\n exists(HIE."Positive D.DE171")\n\n/**\n * Denominator\n *\n * Definition: Number of people living with HIV who were tested for HCV during the reporting period\n * Calculation: COUNT of clients with "HIV status"='HIV-positive' AND with "HCV test date" in the reporting period\n */\n\ndefine "Denominator":\n HIE."Has HIV-positive Status" and HIE."HCV test date D.DE169"\n \n/* end Populations */\n\n\n/*\n * Disaggregators\n */\n\ndefine "Administrative Gender Stratifier":\n\tHIE."By Administrative Gender Stratifier"\n\ndefine "Age Stratifier":\n\tHIE."By Age Stratifier 2"\n\ndefine "Geographic Region Stratifier":\n\tHIE."By Geographic Region Stratifier"\n\ndefine "patientGroups Stratifier":\n\tHIE."patientGroups"\n\n\ndefine "Stratification":\n HIE."By Administrative Gender Stratifier".code \n + ':' + HIE."By Age Stratifier 2"\n+ ':' + HIE."By Geographic Region Stratifier"\n+ Combine(HIE.patientGroups, ':')\n\n//add Provider type </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/cqf-knowledgeCapability",
"valueCode" : "computable"
}
],
"url" : "http://smart.who.int/hiv/Library/HIVIND89Logic",
"version" : "0.3.0",
"name" : "HIVIND89Logic",
"title" : "HIV.IND.89 Logic",
"status" : "draft",
"experimental" : true,
"type" : {
"coding" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/library-type",
"code" : "logic-library"
}
]
},
"date" : "2024-12-06T22:28:12+00:00",
"publisher" : "WHO",
"contact" : [
{
"name" : "WHO",
"telecom" : [
{
"system" : "url",
"value" : "http://who.int"
}
]
}
],
"description" : "% of people living with HIV with a positive HCV test result (HCV antibody, HCV RNA (PCR) or HCV core antigen) during the reporting period",
"content" : [
{
"contentType" : "text/cql",
"data" : "LyoqCiAqIExpYnJhcnk6IEhJVi5JTkQuODkgTG9naWMKICogUmVmIE5vOiBIRVAuNEIKICogU2hvcnQgTmFtZTogSENWIHBvc2l0aXZpdHksIEhJVi1wb3NpdGl2ZSBjbGllbnRzCiAqCiAqIERlZmluaXRpb246ICUgb2YgcGVvcGxlIGxpdmluZyB3aXRoIEhJViB3aXRoIGEgcG9zaXRpdmUgSENWIHRlc3QgcmVzdWx0IChIQ1YgYW50aWJvZHksIEhDViBSTkEgKFBDUikgb3IgSENWIGNvcmUgYW50aWdlbikgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqCiAqIE51bWVyYXRvcjogTnVtYmVyIG9mIHBlb3BsZSBsaXZpbmcgd2l0aCBISVYgbmV3bHkgaWRlbnRpZmllZCB3aXRoIGEgcG9zaXRpdmUgSENWIHRlc3QgKEhDViBhbnRpYm9keSwgSENWIFJOQSAoUENSKSBvciBIQ1YgY29yZSBhbnRpZ2VuKSBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QKICogTnVtZXJhdG9yIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBjbGllbnRzIHdpdGggIkhJViBzdGF0dXMiPSdISVYtcG9zaXRpdmUnIEFORCB3aXRoICJIQ1YgdGVzdCBkYXRlIiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBBTkQgIkhDViB0ZXN0IHJlc3VsdCI9J0hDViBwb3NpdGl2ZScKICogTnVtZXJhdG9yIEV4Y2x1c2lvbnM6IAogKgogKiBEZW5vbWluYXRvcjogTnVtYmVyIG9mIHBlb3BsZSBsaXZpbmcgd2l0aCBISVYgd2hvIHdlcmUgdGVzdGVkIGZvciBIQ1YgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqIERlbm9taW5hdG9yIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBjbGllbnRzIHdpdGggIkhJViBzdGF0dXMiPSdISVYtcG9zaXRpdmUnIEFORCB3aXRoICJIQ1YgdGVzdCBkYXRlIiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKiBEZW5vbWluYXRvciBFeGNsdXNpb25zOiAKICoKICogRGlzYWdncmVnYXRpb25zOgogKiDigKLCoEdlbmRlciAoZmVtYWxlLCBtYWxlLCBvdGhlcioqKSAKICogIOKAosKgQWdlICgxNeKAkzE5LCAyMOKAkzI0LCAyNeKAkzI5LCAzMOKAkzQ5LCA1MCsgeWVhcnMpIAogKiAg4oCiwqBLZXkgcG9wdWxhdGlvbnMgKG1lbiB3aG8gaGF2ZSBzZXggd2l0aCBtZW4sIHBlb3BsZSBsaXZpbmcgaW4gcHJpc29ucyBhbmQgb3RoZXIgY2xvc2VkIHNldHRpbmdzLCBwZW9wbGUgd2hvIGluamVjdCBkcnVncywgc2V4IHdvcmtlcnMsIHRyYW5zIGFuZCBnZW5kZXIgZGl2ZXJzZSBwZW9wbGUpKioqIAogKiAg4oCiwqBQcm92aWRlciB0eXBlIChrZXkgcG9wdWxhdGlvbi1sZWQgb3IgY29tbXVuaXR5LWxlZCBvcmdhbml6YXRpb24sIHB1YmxpYy1zZWN0b3IgcHJvdmlkZXIsIG90aGVyIGVudGl0aWVzIHN1Y2ggYXMgcHJpdmF0ZSBmb3ItcHJvZml0IGFuZCBub3QtZm9yLXByb2ZpdCBvcmdhbml6YXRpb25zLCBpbmNsdWRpbmcgZmFpdGgtIGJhc2VkLCBpbnRlcm5hdGlvbmFsLCBub25nb3Zlcm5tZW50YWwpIAogKiAg4oCiwqBDaXRpZXMgYW5kIG90aGVyIGFkbWluaXN0cmF0aXZlIHJlZ2lvbnMgb2YgZXBpZGVtaW9sb2dpYyBpbXBvcnRhbmNlCiAqCiAqIERpc2FnZ3JlZ2F0aW9uIEVsZW1lbnRzOiBHZW5kZXIgfCBBZ2UgfCBISVYgc3RhdHVzIHwgS2V5IHBvcHVsYXRpb24gbWVtYmVyIHR5cGUKICoKICogTnVtZXJhdG9yIGFuZCBEZW5vbWluYXRvciBFbGVtZW50czoKICogSENWIHRlc3QgZGF0ZSAKICogIEhDViB0ZXN0IHJlc3VsdCAKICogIEhJViBzdGF0dXMKICoKICogUmVmZXJlbmNlOiBDb25zb2xpZGF0ZWQgZ3VpZGVsaW5lcyBvbiBwZXJzb24tY2VudHJlZCBISVYgc3RyYXRlZ2ljIGluZm9ybWF0aW9uOiBzdHJlbmd0aGVuaW5nIHJvdXRpbmUgZGF0YSBmb3IgaW1wYWN0LiBHZW5ldmE6IFdvcmxkIEhlYWx0aCBPcmdhbml6YXRpb247IDIwMjIKICogCiAqIERhdGEgQ29uY2VwdHM6CiAqIEhJVi5BLkRFMTc6IEFnZSB8IENhbGN1bGF0ZWQgYWdlIChudW1iZXIgb2YgeWVhcnMpIG9mIHRoZSBjbGllbnQgYmFzZWQgb24gZGF0ZSBvZiBiaXJ0aAogKiBISVYuQS5ERTE4OiBHZW5kZXIqIHwgR2VuZGVyIG9mIHRoZSBjbGllbnQqCiAqIEhJVi5BLkRFMTk6IEZlbWFsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIGZlbWFsZQogKiBISVYuQS5ERTIwOiBNYWxlIHwgQ2xpZW50IGlkZW50aWZpZXMgYXMgbWFsZQogKiBISVYuQS5ERTIxOiBUcmFuc2dlbmRlciBtYWxlIHwgQ2xpZW50IGlkZW50aWZpZXMgYXMgdHJhbnNnZW5kZXIgbWFsZQogKiBISVYuQS5ERTIyOiBUcmFuc2dlbmRlciBmZW1hbGUgfCBDbGllbnQgaWRlbnRpZmllcyBhcyB0cmFuc2dlbmRlciBmZW1hbGUKICogSElWLkEuREUyMzogT3RoZXIgfCBBZGRpdGlvbmFsIGNhdGVnb3J5CiAqIEhJVi5CLkRFNTA6IEtleSBwb3B1bGF0aW9uIG1lbWJlciB0eXBlKiB8IFRoZSB0eXBlIG9mIGtleSBwb3B1bGF0aW9uIHRoYXQgdGhlIGNsaWVudCBpcyBpbmNsdWRlZCBpbgogKiBISVYuQi5ERTUxOiBTZXggd29ya2VyIHwgQ2xpZW50IGlzIGEgc2V4IHdvcmtlcgogKiBISVYuQi5ERTUyOiBNZW4gd2hvIGhhdmUgc2V4IHdpdGggbWVuIHwgQ2xpZW50IGlzIGEgbWFuIHdobyBoYXMgc2V4IHdpdGggbWVuCiAqIEhJVi5CLkRFNTM6IFRyYW5zIGFuZCBnZW5kZXItZGl2ZXJzZSBwZW9wbGUgfCBDbGllbnQgaWRlbnRpZmllcyBhcyB0cmFucyBhbmQgZ2VuZGVyLWRpdmVyc2UKICogSElWLkIuREU1NDogUGVvcGxlIHdobyBpbmplY3QgZHJ1Z3MgfCBDbGllbnQgaXMgYSBwZXJzb24gd2hvIGluamVjdHMgZHJ1Z3MKICogSElWLkIuREU1NTogUGVvcGxlIGxpdmluZyBpbiBwcmlzb25zIGFuZCBvdGhlciBjbG9zZWQgc2V0dGluZ3MgfCBDbGllbnQgbGl2ZXMgaW4gYSBwcmlzb24gb3IgYW5vdGhlciBjbG9zZWQgc2V0dGluZwogKiBISVYuQi5ERTExNTogSElWIHN0YXR1cyB8IEhJViBzdGF0dXMgcmVwb3J0ZWQgYWZ0ZXIgYXBwbHlpbmcgdGhlIG5hdGlvbmFsIEhJViB0ZXN0aW5nIGFsZ29yaXRobS4gTm8gc2luZ2xlIEhJViB0ZXN0IGNhbiBwcm92aWRlIGFuIEhJVi1wb3NpdGl2ZSBkaWFnbm9zaXMuCiAqIEhJVi5CLkRFMTE2OiBISVYtcG9zaXRpdmUgfCBDbGllbnQgaXMgSElWLXBvc2l0aXZlCiAqIEhJVi5CLkRFMTE3OiBISVYtbmVnYXRpdmUgfCBDbGllbnQgaXMgSElWLW5lZ2F0aXZlCiAqIEhJVi5CLkRFMTE4OiBVbmtub3duIHwgQ2xpZW50IGhhcyB1bmtub3duIEhJViBzdGF0dXMKICogSElWLkQuREUxNjk6IEhDViB0ZXN0IGRhdGUgfCBEYXRlIGNsaWVudCB3YXMgdGVzdGVkIGZvciBoZXBhdGl0aXMgQyB2aXJ1cyAoSENWIGFudGlib2R5LCBIQ1YgUk5BIG9yIEhDViBjb3JlIGFudGlnZW4pCiAqIEhJVi5ELkRFMTcwOiBIQ1YgdGVzdCByZXN1bHQgfCBIZXBhdGl0aXMgQyB2aXJ1cyB0ZXN0IHJlc3VsdCAoSENWIGFudGlib2R5LCBIQ1YgUk5BIG9yIEhDViBjb3JlIGFudGlnZW4pCiAqIEhJVi5ELkRFMTcxOiBQb3NpdGl2ZSB8IEhDViB0ZXN0IHJlc3VsdCB3YXMgcG9zaXRpdmUKICogSElWLkQuREUxNzI6IE5lZ2F0aXZlIHwgSENWIHRlc3QgcmVzdWx0IHdhcyBuZWdhdGl2ZQogKiBISVYuRC5ERTE3MzogSW5kZXRlcm1pbmF0ZSB8IEhDViB0ZXN0IHJlc3VsdCB3YXMgaW5kZXRlcm1pbmF0ZQogKiBISVYuRS5ERTExNDogS2V5IHBvcHVsYXRpb24gbWVtYmVyIHR5cGUqIHwgVGhlIHR5cGUgb2Yga2V5IHBvcHVsYXRpb24gdGhhdCB0aGUgaW5mYW50J3MgbW90aGVyIGlzIGluY2x1ZGVkIGluCiAqIEhJVi5FLkRFMTE1OiBTZXggd29ya2VyIHwgSW5mYW50J3MgbW90aGVyIGlzIGEgc2V4IHdvcmtlcgogKiBISVYuRS5ERTExNjogUGVvcGxlIHdobyBpbmplY3QgZHJ1Z3MgfCBJbmZhbnQncyBtb3RoZXIgaXMgYSBwZXJzb24gd2hvIGluamVjdHMgZHJ1Z3MKICogSElWLkUuREUxMTc6IFRyYW5zIGFuZCBnZW5kZXItZGl2ZXJzZSBwZW9wbGUgfCBJbmZhbnQncyBtb3RoZXIgaWRlbnRpZmllcyBhcyB0cmFucyBhbmQgZ2VuZGVyLWRpdmVyc2UKICogSElWLkUuREUxMTg6IFBlb3BsZSBsaXZpbmcgaW4gcHJpc29ucyBhbmQgb3RoZXIgY2xvc2VkIHNldHRpbmcgfCBJbmZhbnQncyBtb3RoZXIgaXMgaW4gYSBwcmlzb24gb3IgY2xvc2VkIHNldHRpbmcKICogSElWLkcuREU0MjogSENWIHRlc3QgZGF0ZSB8IERhdGUgY2xpZW50IHdhcyB0ZXN0ZWQgZm9yIGhlcGF0aXRpcyBDIHZpcnVzIChIQ1YgYW50aWJvZHksIEhDViBSTkEgb3IgSENWIGNvcmUgYW50aWdlbikKICogSElWLkcuREU0MzogSENWIHRlc3QgcmVzdWx0IHwgSGVwYXRpdGlzIEMgdmlydXMgdGVzdCByZXN1bHQgKEhDViBhbnRpYm9keSwgSENWIFJOQSBvciBIQ1YgY29yZSBhbnRpZ2VuKQogKiBISVYuRy5ERTQ0OiBQb3NpdGl2ZSB8IEhDViB0ZXN0IHJlc3VsdCB3YXMgcG9zaXRpdmUKICogSElWLkcuREU0NTogTmVnYXRpdmUgfCBIQ1YgdGVzdCByZXN1bHQgd2FzIG5lZ2F0aXZlCiAqIEhJVi5HLkRFNDY6IEluZGV0ZXJtaW5hdGUgfCBIQ1YgdGVzdCByZXN1bHQgd2FzIGluZGV0ZXJtaW5hdGUKICoKICogQWRkaXRpb25hbCBDb250ZXh0CiAqIC0gd2hhdCBpdCBtZWFzdXJlczogQTogJSBvZiBwZW9wbGUgYXR0ZW5kaW5nIEhJViBwcmV2ZW50aW9uIHNlcnZpY2VzIHdobyB3ZXJlIHRlc3RlZCBmb3IgSENWIGR1cmluZyB0aGUgfCByZXBvcnRpbmcgcGVyaW9kIChsYWJvcmF0b3J5LWJhc2VkIHRlc3Qgb3IgcmFwaWQgdGVzdCkgfCBCOiAlIG9mIHBlb3BsZSBsaXZpbmcgd2l0aCBISVYgd2hvIHdlcmUgdGVzdGVkIGZvciBIQ1YgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kIChsYWJvcmF0b3J5LWJhc2VkIHRlc3Qgb3IgcmFwaWQgdGVzdCkKICogLSByYXRpb25hbGU6IE1hbnkgcGVvcGxlIGxpdmluZyB3aXRoIEhJViBhbmQgcmVjZWl2aW5nIEFSVCBkaWUgZnJvbSBsaXZlciBkaXNlYXNlIHJlc3VsdGluZyBmcm9tIHVudHJlYXRlZCBIQ1YuIFRlc3RpbmcgcGVvcGxlIGxpdmluZyB3aXRoIEhJViBmb3IgSENWIGlkZW50aWZpZXMgSElWIGFuZCBIQ1YgY28taW5mZWN0aW9uIGFuZCBhbGxvd3MgZm9yIGFkYXB0YXRpb24gb2YgdHJlYXRtZW50LiBIaWdobHkgZWZmZWN0aXZlIGhlcGF0aXRpcyBDIHRyZWF0bWVudCBpcyBuZXdseSBhdmFpbGFibGU7IGl0IGhhcyBhIGhpZ2ggcmF0ZSBvZiB2aXJ1cyBjbGVhcmFuY2UgcmVnYXJkbGVzcyBvZiBoZXBhdGl0aXMgQyB2aXJ1cyBzdWJ0eXBlLgogKiAtIG1ldGhvZDogUGF0aWVudCBtb25pdG9yaW5nIHRvb2xzIChlbGVjdHJvbmljIG9yIHBhcGVyKSwgZm9yIGV4YW1wbGUsIGhlcGF0aXRpcyB0ZXN0aW5nIGFuZCBISVYgc2VydmljZSByZWNvcmRzLCBsYWIgcmVnaXN0ZXJzLCBsb2dib29rcyBhbmQgcmVwb3J0aW5nIGZvcm1zIGF0IGZhY2lsaXR5IGFuZCBjb21tdW5pdHkgbGV2ZWxzLCBFTVIvIGVsZWN0cm9uaWMgaW5mb3JtYXRpb24gc3lzdGVtcwogKiAKICogU3VnZ2VzdGVkIFNjb3JpbmcgTWV0aG9kOiBwcm9wb3J0aW9uIHwgaHR0cDovL2hsNy5vcmcvZmhpci91cy9jcWZtZWFzdXJlcy9TdHJ1Y3R1cmVEZWZpbml0aW9uL3Byb3BvcnRpb24tbWVhc3VyZS1jcWZtCiAqLwoKIC8qIAogICogUHJvZmlsZXM6CiAgKiAtIEhpdkhjdlRlc3QKICAqLwoKbGlicmFyeSBISVZJTkQ4OUxvZ2ljCgovLyBJbmNsdWRlZCBMaWJyYXJpZXMKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgSElWQ29tbW9uIHZlcnNpb24gJzAuMC4xJyBjYWxsZWQgSElDCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIFdIT0NvbW1vbiBjYWxsZWQgV0NvbQppbmNsdWRlIEhJVkVsZW1lbnRzIGNhbGxlZCBIRQppbmNsdWRlIEhJVkluZGljYXRvckVsZW1lbnRzIGNhbGxlZCBISUUKaW5jbHVkZSBISVZDb25maWcgY2FsbGVkIENvbmZpZwoKCi8vIEluZGljYXRvciBEZWZpbml0aW9uCnBhcmFtZXRlciAiTWVhc3VyZW1lbnQgUGVyaW9kIiBJbnRlcnZhbDxEYXRlPiBkZWZhdWx0IEludGVydmFsW0AyMDIzLTAxLTAxLCBAMjAyMy0wMS0zMF0KCmNvbnRleHQgUGF0aWVudAovKiBQb3B1bGF0aW9ucyAqLwoKLyoKICpJbml0aWFsIFBvcHVsYXRpb24KICovCgpkZWZpbmUgIkluaXRpYWwgUG9wdWxhdGlvbiI6CiAgdHJ1ZQoKLyoqCiAqIE51bWVyYXRvcgogKiAKICogRGVmaW5pdGlvbjogTnVtYmVyIG9mIHBlb3BsZSBsaXZpbmcgd2l0aCBISVYgbmV3bHkgaWRlbnRpZmllZCB3aXRoIGEgcG9zaXRpdmUgSENWIHRlc3QgKEhDViBhbnRpYm9keSwgSENWIFJOQSAoUENSKSBvciBIQ1YgY29yZSBhbnRpZ2VuKSBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QKICogQ2FsY3VsYXRpb246IENPVU5UIG9mIGNsaWVudHMgd2l0aCAiSElWIHN0YXR1cyI9J0hJVi1wb3NpdGl2ZScgQU5EIHdpdGggIkhDViB0ZXN0IGRhdGUiIGluIHRoZSByZXBvcnRpbmcgcGVyaW9kIEFORCAiSENWIHRlc3QgcmVzdWx0Ij0nSENWIHBvc2l0aXZlJwogKi8KCmRlZmluZSAiTnVtZXJhdG9yIjoKICBISUUuIkhhcyBISVYtcG9zaXRpdmUgU3RhdHVzIiBhbmQKICBleGlzdHMoSElFLiJQb3NpdGl2ZSBELkRFMTcxIikKCi8qKgogKiBEZW5vbWluYXRvcgogKgogKiBEZWZpbml0aW9uOiBOdW1iZXIgb2YgcGVvcGxlIGxpdmluZyB3aXRoIEhJViB3aG8gd2VyZSB0ZXN0ZWQgZm9yIEhDViBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QKICogQ2FsY3VsYXRpb246IENPVU5UIG9mIGNsaWVudHMgd2l0aCAiSElWIHN0YXR1cyI9J0hJVi1wb3NpdGl2ZScgQU5EIHdpdGggIkhDViB0ZXN0IGRhdGUiIGluIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqLwoKZGVmaW5lICJEZW5vbWluYXRvciI6CiAgSElFLiJIYXMgSElWLXBvc2l0aXZlIFN0YXR1cyIgYW5kIEhJRS4iSENWIHRlc3QgZGF0ZSBELkRFMTY5IgogICAgCi8qIGVuZCBQb3B1bGF0aW9ucyAqLwoKCi8qCiAqIERpc2FnZ3JlZ2F0b3JzCiAqLwoKZGVmaW5lICJBZG1pbmlzdHJhdGl2ZSBHZW5kZXIgU3RyYXRpZmllciI6CglISUUuIkJ5IEFkbWluaXN0cmF0aXZlIEdlbmRlciBTdHJhdGlmaWVyIgoKZGVmaW5lICJBZ2UgU3RyYXRpZmllciI6CglISUUuIkJ5IEFnZSBTdHJhdGlmaWVyIDIiCgpkZWZpbmUgIkdlb2dyYXBoaWMgUmVnaW9uIFN0cmF0aWZpZXIiOgoJSElFLiJCeSBHZW9ncmFwaGljIFJlZ2lvbiBTdHJhdGlmaWVyIgoKZGVmaW5lICJwYXRpZW50R3JvdXBzIFN0cmF0aWZpZXIiOgoJSElFLiJwYXRpZW50R3JvdXBzIgoKCmRlZmluZSAiU3RyYXRpZmljYXRpb24iOgogSElFLiJCeSBBZG1pbmlzdHJhdGl2ZSBHZW5kZXIgU3RyYXRpZmllciIuY29kZSAKICArICc6JyArIEhJRS4iQnkgQWdlIFN0cmF0aWZpZXIgMiIKKyAnOicgKyBISUUuIkJ5IEdlb2dyYXBoaWMgUmVnaW9uIFN0cmF0aWZpZXIiCisgQ29tYmluZShISUUucGF0aWVudEdyb3VwcywgJzonKQoKLy9hZGQgUHJvdmlkZXIgdHlwZSA="
},
{
"contentType" : "application/elm+xml"
}
]
}