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-11-07 |
<Library xmlns="http://hl7.org/fhir">
<id value="HIVIND14Logic"/>
<meta>
<profile
value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"/>
<profile
value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"/>
<profile
value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"/>
<profile
value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module"/>
</meta>
<text>
<status value="generated"/>
<div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: Library HIVIND14Logic</b></p><a name="HIVIND14Logic"> </a><a name="hcHIVIND14Logic"> </a><a name="HIVIND14Logic-en-US"> </a><h2>Related Artifacts</h2><table class="grid"><tr><td>Depends On</td><td>Library HIC</td><td><code>http://smart.who.int/hiv/Library/HIVCommon|0.0.1</code></td></tr><tr><td>Depends On</td><td>Library WCom</td><td><a href="Library-WHOCommon.html">WHOCommon</a></td></tr></table><h2>Parameters</h2><table class="grid"><tr><td>Measurement Period</td><td>in</td><td>0</td><td>1</td><td>Period</td></tr><tr><td>Patient</td><td>out</td><td>0</td><td>1</td><td>Patient</td></tr><tr><td>Initial Population</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr><tr><td>Numerator</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr><tr><td>Numerator Exclusions</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr><tr><td>Denominator</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr><tr><td>Denominator Exclusions</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr></table><h2>Contents</h2><p><code>text/cql</code></p><pre><code class="language-sql">/**
* Library: HIV.IND.14 Logic
* Ref No: PRV.14
* Short Name: OAMT minimum dose
*
* Definition: % of OAMT recipients receiving a maintenance dose greater than or equal to the recommended minimum dose
*
* Numerator: Number of people, at a specified date, maintained on methadone or buprenorphine receiving recommended minimum maintenance dose (WHO guidance recommends doses of ≥60 mg of methadone or ≥8 mg of buprenorphine*)
* Numerator Calculation: COUNT of clients with ("Medications prescribed"='Methadone' AND "Dose of medications prescribed" GREATER THAN OR EQUAL TO 60mg) OR ("Medications prescribed"='Buprenorphine' AND "Dose of medications prescribed" GREATER THAN OR EQUAL TO 8mg) for a specified "Reporting date"
* Numerator Exclusions: "Client being inducted on OAMT" OR "Client on reducing doses of OAMT"
*
* Denominator: Number of people receiving maintenance dose of methadone or buprenorphine at a specified date, excluding: a) individuals currently being inducted on OAMT and yet to reach the maintenance dose and b) individuals on reducing doses of OAMT.
* Denominator Calculation: COUNT of clients with "Medications prescribed" IN 'Methadone', 'Buprenorphine' for a specified "Reporting date"
* Denominator Exclusions: "Client being inducted on OAMT" OR "Client on reducing doses of OAMT"
*
* Disaggregations:
* • Gender (female, male, other**)
* • Age (15–19, 20–24, 25–49, 50+ years)
* • Provider 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)
* • Setting: facility-based service (including hospitals, health clinics, general practice offices, etc.) or community-based service (including drop-in centres, community service delivery points, mobile clinics or vans, outreach teams, community support groups, etc.)
* • Cities and other administrative regions of epidemiologic importance
*
* Disaggregation Elements: Gender | Age
*
* Numerator and Denominator Elements:
* Dose of medications prescribed
* Medications prescribed
* Reporting date
*
* Reference: Consolidated guidelines on person-centred HIV strategic information: strengthening routine data for impact. Geneva: World Health Organization; 2022
*
* Data Concepts:
* HIV.A.DE17: Age | Calculated age (number of years) of the client based on date of birth
* HIV.A.DE18: Gender* | Gender of the client*
* HIV.A.DE19: Female | Client identifies as female
* HIV.A.DE20: Male | Client identifies as male
* HIV.A.DE21: Transgender male | Client identifies as transgender male
* HIV.A.DE22: Transgender female | Client identifies as transgender female
* HIV.A.DE23: Other | Additional category
* HIV.C.DE75: Medications prescribed | Medications the client was prescribed
* HIV.C.DE76: PrEP for HIV prevention | Client was prescribed pre-exposure prophylaxis (PrEP) for HIV prevention
* HIV.C.DE77: PEP for HIV prevention | Client was prescribed post-exposure prophylaxis (PEP) for HIV prevention
* HIV.C.DE78: Other | Client was prescribed other medications
* HIV.D.DE457: Medications prescribed | Name or regimen code of all other medications prescribed during the visit
* HIV.D.DE459: Dose of medications prescribed | Number of doses (quantity taken at a single point in time) of drugs prescribed/dispensed
* HIV.Config.DE22: Reporting date | Reporting date, for surveys performed on a specific date
*
* Additional Context
* - what it measures: Measures the proportion of OAMT recipients receiving the recommended minimum maintenance dose.
* - rationale: Evidence demonstrates that maximum benefit from OAMT is gained when individuals receive at least the recommended minimum maintenance dose.
* - method: Individual-level data obtained from programme records
*
* Suggested Scoring Method: proportion | http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm
*/
library HIVIND14Logic
// Included Libraries
using FHIR version '4.0.1'
include HIVCommon version '0.0.1' called HIC
include FHIRHelpers version '4.0.1'
include WHOCommon called WCom
// Indicator Definition
parameter "Measurement Period" Interval<Date> default Interval[@2023-01-01, @2023-01-30]
context Patient
/* Populations */
/*
*Initial Population
*/
define "Initial Population":
true
/**
* Numerator
*
* Definition: Number of people, at a specified date, maintained on methadone or buprenorphine receiving recommended minimum maintenance dose (WHO guidance recommends doses of ≥60 mg of methadone or ≥8 mg of buprenorphine*)
* Calculation: COUNT of clients with ("Medications prescribed"='Methadone' AND "Dose of medications prescribed" GREATER THAN OR EQUAL TO 60mg) OR ("Medications prescribed"='Buprenorphine' AND "Dose of medications prescribed" GREATER THAN OR EQUAL TO 8mg) for a specified "Reporting date"
*/
define "Numerator":
true
/**
* Numerator Exclusions
*
* Calculation: "Client being inducted on OAMT" OR "Client on reducing doses of OAMT"
*/
define "Numerator Exclusions":
false
/**
* Denominator
*
* Definition: Number of people receiving maintenance dose of methadone or buprenorphine at a specified date, excluding: a) individuals currently being inducted on OAMT and yet to reach the maintenance dose and b) individuals on reducing doses of OAMT.
* Calculation: COUNT of clients with "Medications prescribed" IN 'Methadone', 'Buprenorphine' for a specified "Reporting date"
*/
define "Denominator":
true
/**
* Denominator Exclusions
*
* Calculation: "Client being inducted on OAMT" OR "Client on reducing doses of OAMT"
*/
define "Denominator Exclusions":
false
/* end Populations */
</code></pre><p><code>Content not shown - (</code><code>application/elm+xml</code>, size = 12Kb )</p></div>
</text>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability">
<valueCode value="computable"/>
</extension>
<url value="http://smart.who.int/hiv/Library/HIVIND14Logic"/>
<version value="0.3.0"/>
<name value="HIVIND14Logic"/>
<title value="HIV.IND.14 Logic"/>
<status value="draft"/>
<experimental value="true"/>
<type>
<coding>
<system value="http://terminology.hl7.org/CodeSystem/library-type"/>
<code value="logic-library"/>
</coding>
</type>
<date value="2024-11-07T20:59:16+00:00"/>
<publisher value="WHO"/>
<contact>
<name value="WHO"/>
<telecom>
<system value="url"/>
<value value="http://who.int"/>
</telecom>
</contact>
<description
value="% of OAMT recipients receiving a maintenance dose greater than or equal to the recommended minimum dose"/>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library HIC"/>
<resource value="http://smart.who.int/hiv/Library/HIVCommon|0.0.1"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library WCom"/>
<resource value="http://smart.who.int/hiv/Library/WHOCommon"/>
</relatedArtifact>
<parameter>
<name value="Measurement Period"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<type value="Period"/>
</parameter>
<parameter>
<name value="Patient"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="Patient"/>
</parameter>
<parameter>
<name value="Initial Population"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="Numerator"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="Numerator Exclusions"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="Denominator"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="Denominator Exclusions"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<content>
<contentType value="text/cql"/>
<data
value="LyoqCiAqIExpYnJhcnk6IEhJVi5JTkQuMTQgTG9naWMKICogUmVmIE5vOiBQUlYuMTQKICogU2hvcnQgTmFtZTogT0FNVCBtaW5pbXVtIGRvc2UKICoKICogRGVmaW5pdGlvbjogJSBvZiBPQU1UIHJlY2lwaWVudHMgcmVjZWl2aW5nIGEgbWFpbnRlbmFuY2UgZG9zZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHJlY29tbWVuZGVkIG1pbmltdW0gZG9zZQogKgogKiBOdW1lcmF0b3I6IE51bWJlciBvZiBwZW9wbGUsIGF0IGEgc3BlY2lmaWVkIGRhdGUsIG1haW50YWluZWQgb24gbWV0aGFkb25lIG9yIGJ1cHJlbm9ycGhpbmUgcmVjZWl2aW5nIHJlY29tbWVuZGVkIG1pbmltdW0gbWFpbnRlbmFuY2UgZG9zZSAoV0hPIGd1aWRhbmNlIHJlY29tbWVuZHMgZG9zZXMgb2Yg4omlNjAgbWcgb2YgbWV0aGFkb25lIG9yIOKJpTggbWcgb2YgYnVwcmVub3JwaGluZSopCiAqIE51bWVyYXRvciBDYWxjdWxhdGlvbjogQ09VTlQgb2YgY2xpZW50cyB3aXRoICgiTWVkaWNhdGlvbnMgcHJlc2NyaWJlZCI9J01ldGhhZG9uZScgQU5EICJEb3NlIG9mIG1lZGljYXRpb25zIHByZXNjcmliZWQiIEdSRUFURVIgVEhBTiBPUiBFUVVBTCBUTyA2MG1nKSBPUiAoIk1lZGljYXRpb25zIHByZXNjcmliZWQiPSdCdXByZW5vcnBoaW5lJyBBTkQgIkRvc2Ugb2YgbWVkaWNhdGlvbnMgcHJlc2NyaWJlZCIgR1JFQVRFUiBUSEFOIE9SIEVRVUFMIFRPIDhtZykgZm9yIGEgc3BlY2lmaWVkICJSZXBvcnRpbmcgZGF0ZSIKICogTnVtZXJhdG9yIEV4Y2x1c2lvbnM6ICJDbGllbnQgYmVpbmcgaW5kdWN0ZWQgb24gT0FNVCIgT1IgIkNsaWVudCBvbiByZWR1Y2luZyBkb3NlcyBvZiBPQU1UIgogKgogKiBEZW5vbWluYXRvcjogTnVtYmVyIG9mIHBlb3BsZSByZWNlaXZpbmcgbWFpbnRlbmFuY2UgZG9zZSBvZiBtZXRoYWRvbmUgb3IgYnVwcmVub3JwaGluZSBhdCBhIHNwZWNpZmllZCBkYXRlLCBleGNsdWRpbmc6IGEpIGluZGl2aWR1YWxzIGN1cnJlbnRseSBiZWluZyBpbmR1Y3RlZCBvbiBPQU1UIGFuZCB5ZXQgdG8gcmVhY2ggdGhlIG1haW50ZW5hbmNlIGRvc2UgYW5kIGIpIGluZGl2aWR1YWxzIG9uIHJlZHVjaW5nIGRvc2VzIG9mIE9BTVQuCiAqIERlbm9taW5hdG9yIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBjbGllbnRzIHdpdGggIk1lZGljYXRpb25zIHByZXNjcmliZWQiIElOICdNZXRoYWRvbmUnLCAnQnVwcmVub3JwaGluZScgZm9yIGEgc3BlY2lmaWVkICJSZXBvcnRpbmcgZGF0ZSIKICogRGVub21pbmF0b3IgRXhjbHVzaW9uczogIkNsaWVudCBiZWluZyBpbmR1Y3RlZCBvbiBPQU1UIiBPUiAiQ2xpZW50IG9uIHJlZHVjaW5nIGRvc2VzIG9mIE9BTVQiCiAqCiAqIERpc2FnZ3JlZ2F0aW9uczoKICog4oCiIEdlbmRlciAoZmVtYWxlLCBtYWxlLCBvdGhlcioqKSAKICogIOKAoiBBZ2UgKDE14oCTMTksIDIw4oCTMjQsIDI14oCTNDksIDUwKyB5ZWFycykgCiAqICDigKIgUHJvdmlkZXIgdHlwZSAoa2V5IHBvcHVsYXRpb24tbGVkIG9yIGNvbW11bml0eS1sZWQgb3JnYW5pemF0aW9uLCBwdWJsaWMgc2VjdG9yIHByb3ZpZGVyLCBvdGhlciBlbnRpdGllcyBzdWNoIGFzIHByaXZhdGUgZm9yLXByb2ZpdCBhbmQgbm90LWZvci1wcm9maXQgb3JnYW5pemF0aW9ucywgaW5jbHVkaW5nIGZhaXRoLWJhc2VkLCBpbnRlcm5hdGlvbmFsLCBub25nb3Zlcm5tZW50YWwpIAogKiAg4oCiIFNldHRpbmc6IGZhY2lsaXR5LWJhc2VkIHNlcnZpY2UgKGluY2x1ZGluZyBob3NwaXRhbHMsIGhlYWx0aCBjbGluaWNzLCBnZW5lcmFsIHByYWN0aWNlIG9mZmljZXMsIGV0Yy4pIG9yIGNvbW11bml0eS1iYXNlZCBzZXJ2aWNlIChpbmNsdWRpbmcgZHJvcC1pbiBjZW50cmVzLCBjb21tdW5pdHkgc2VydmljZSBkZWxpdmVyeSBwb2ludHMsIG1vYmlsZSBjbGluaWNzIG9yIHZhbnMsIG91dHJlYWNoIHRlYW1zLCBjb21tdW5pdHkgc3VwcG9ydCBncm91cHMsIGV0Yy4pIAogKiAg4oCiwqBDaXRpZXMgYW5kIG90aGVyIGFkbWluaXN0cmF0aXZlIHJlZ2lvbnMgb2YgZXBpZGVtaW9sb2dpYyBpbXBvcnRhbmNlCiAqCiAqIERpc2FnZ3JlZ2F0aW9uIEVsZW1lbnRzOiBHZW5kZXIgfCBBZ2UKICoKICogTnVtZXJhdG9yIGFuZCBEZW5vbWluYXRvciBFbGVtZW50czoKICogRG9zZSBvZiBtZWRpY2F0aW9ucyBwcmVzY3JpYmVkIAogKiAgTWVkaWNhdGlvbnMgcHJlc2NyaWJlZCAKICogIFJlcG9ydGluZyBkYXRlCiAqCiAqIFJlZmVyZW5jZTogQ29uc29saWRhdGVkIGd1aWRlbGluZXMgb24gcGVyc29uLWNlbnRyZWQgSElWIHN0cmF0ZWdpYyBpbmZvcm1hdGlvbjogc3RyZW5ndGhlbmluZyByb3V0aW5lIGRhdGEgZm9yIGltcGFjdC4gR2VuZXZhOiBXb3JsZCBIZWFsdGggT3JnYW5pemF0aW9uOyAyMDIyCiAqIAogKiBEYXRhIENvbmNlcHRzOgogKiBISVYuQS5ERTE3OiBBZ2UgfCBDYWxjdWxhdGVkIGFnZSAobnVtYmVyIG9mIHllYXJzKSBvZiB0aGUgY2xpZW50IGJhc2VkIG9uIGRhdGUgb2YgYmlydGgKICogSElWLkEuREUxODogR2VuZGVyKiB8IEdlbmRlciBvZiB0aGUgY2xpZW50KgogKiBISVYuQS5ERTE5OiBGZW1hbGUgfCBDbGllbnQgaWRlbnRpZmllcyBhcyBmZW1hbGUKICogSElWLkEuREUyMDogTWFsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIG1hbGUKICogSElWLkEuREUyMTogVHJhbnNnZW5kZXIgbWFsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIHRyYW5zZ2VuZGVyIG1hbGUKICogSElWLkEuREUyMjogVHJhbnNnZW5kZXIgZmVtYWxlIHwgQ2xpZW50IGlkZW50aWZpZXMgYXMgdHJhbnNnZW5kZXIgZmVtYWxlCiAqIEhJVi5BLkRFMjM6IE90aGVyIHwgQWRkaXRpb25hbCBjYXRlZ29yeQogKiBISVYuQy5ERTc1OiBNZWRpY2F0aW9ucyBwcmVzY3JpYmVkIHwgTWVkaWNhdGlvbnMgdGhlIGNsaWVudCB3YXMgcHJlc2NyaWJlZAogKiBISVYuQy5ERTc2OiBQckVQIGZvciBISVYgcHJldmVudGlvbiB8IENsaWVudCB3YXMgcHJlc2NyaWJlZCBwcmUtZXhwb3N1cmUgcHJvcGh5bGF4aXMgKFByRVApIGZvciBISVYgcHJldmVudGlvbgogKiBISVYuQy5ERTc3OiBQRVAgZm9yIEhJViBwcmV2ZW50aW9uIHwgQ2xpZW50IHdhcyBwcmVzY3JpYmVkIHBvc3QtZXhwb3N1cmUgcHJvcGh5bGF4aXMgKFBFUCkgZm9yIEhJViBwcmV2ZW50aW9uCiAqIEhJVi5DLkRFNzg6IE90aGVyIHwgQ2xpZW50IHdhcyBwcmVzY3JpYmVkIG90aGVyIG1lZGljYXRpb25zCiAqIEhJVi5ELkRFNDU3OiBNZWRpY2F0aW9ucyBwcmVzY3JpYmVkIHwgTmFtZSBvciByZWdpbWVuIGNvZGUgb2YgYWxsIG90aGVyIG1lZGljYXRpb25zIHByZXNjcmliZWQgZHVyaW5nIHRoZSB2aXNpdAogKiBISVYuRC5ERTQ1OTogRG9zZSBvZiBtZWRpY2F0aW9ucyBwcmVzY3JpYmVkIHwgTnVtYmVyIG9mIGRvc2VzIChxdWFudGl0eSB0YWtlbiBhdCBhIHNpbmdsZSBwb2ludCBpbiB0aW1lKSBvZiBkcnVncyBwcmVzY3JpYmVkL2Rpc3BlbnNlZAogKiBISVYuQ29uZmlnLkRFMjI6IFJlcG9ydGluZyBkYXRlIHwgUmVwb3J0aW5nIGRhdGUsIGZvciBzdXJ2ZXlzIHBlcmZvcm1lZCBvbiBhIHNwZWNpZmljIGRhdGUKICoKICogQWRkaXRpb25hbCBDb250ZXh0CiAqIC0gd2hhdCBpdCBtZWFzdXJlczogTWVhc3VyZXMgdGhlIHByb3BvcnRpb24gb2YgT0FNVCByZWNpcGllbnRzIHJlY2VpdmluZyB0aGUgcmVjb21tZW5kZWQgbWluaW11bSBtYWludGVuYW5jZSBkb3NlLgogKiAtIHJhdGlvbmFsZTogRXZpZGVuY2UgZGVtb25zdHJhdGVzIHRoYXQgbWF4aW11bSBiZW5lZml0IGZyb20gT0FNVCBpcyBnYWluZWQgd2hlbiBpbmRpdmlkdWFscyByZWNlaXZlIGF0IGxlYXN0IHRoZSByZWNvbW1lbmRlZCBtaW5pbXVtIG1haW50ZW5hbmNlIGRvc2UuCiAqIC0gbWV0aG9kOiBJbmRpdmlkdWFsLWxldmVsIGRhdGEgb2J0YWluZWQgZnJvbSBwcm9ncmFtbWUgcmVjb3JkcwogKiAKICogU3VnZ2VzdGVkIFNjb3JpbmcgTWV0aG9kOiBwcm9wb3J0aW9uIHwgaHR0cDovL2hsNy5vcmcvZmhpci91cy9jcWZtZWFzdXJlcy9TdHJ1Y3R1cmVEZWZpbml0aW9uL3Byb3BvcnRpb24tbWVhc3VyZS1jcWZtCiAqLwoKbGlicmFyeSBISVZJTkQxNExvZ2ljCgovLyBJbmNsdWRlZCBMaWJyYXJpZXMKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgSElWQ29tbW9uIHZlcnNpb24gJzAuMC4xJyBjYWxsZWQgSElDCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnCmluY2x1ZGUgV0hPQ29tbW9uIGNhbGxlZCBXQ29tCgovLyBJbmRpY2F0b3IgRGVmaW5pdGlvbgpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgSW50ZXJ2YWw8RGF0ZT4gZGVmYXVsdCBJbnRlcnZhbFtAMjAyMy0wMS0wMSwgQDIwMjMtMDEtMzBdCgpjb250ZXh0IFBhdGllbnQKLyogUG9wdWxhdGlvbnMgKi8KCi8qCiAqSW5pdGlhbCBQb3B1bGF0aW9uCiAqLwoKZGVmaW5lICJJbml0aWFsIFBvcHVsYXRpb24iOgogIHRydWUKCi8qKgogKiBOdW1lcmF0b3IKICogCiAqIERlZmluaXRpb246IE51bWJlciBvZiBwZW9wbGUsIGF0IGEgc3BlY2lmaWVkIGRhdGUsIG1haW50YWluZWQgb24gbWV0aGFkb25lIG9yIGJ1cHJlbm9ycGhpbmUgcmVjZWl2aW5nIHJlY29tbWVuZGVkIG1pbmltdW0gbWFpbnRlbmFuY2UgZG9zZSAoV0hPIGd1aWRhbmNlIHJlY29tbWVuZHMgZG9zZXMgb2Yg4omlNjAgbWcgb2YgbWV0aGFkb25lIG9yIOKJpTggbWcgb2YgYnVwcmVub3JwaGluZSopCiAqIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBjbGllbnRzIHdpdGggKCJNZWRpY2F0aW9ucyBwcmVzY3JpYmVkIj0nTWV0aGFkb25lJyBBTkQgIkRvc2Ugb2YgbWVkaWNhdGlvbnMgcHJlc2NyaWJlZCIgR1JFQVRFUiBUSEFOIE9SIEVRVUFMIFRPIDYwbWcpIE9SICgiTWVkaWNhdGlvbnMgcHJlc2NyaWJlZCI9J0J1cHJlbm9ycGhpbmUnIEFORCAiRG9zZSBvZiBtZWRpY2F0aW9ucyBwcmVzY3JpYmVkIiBHUkVBVEVSIFRIQU4gT1IgRVFVQUwgVE8gOG1nKSBmb3IgYSBzcGVjaWZpZWQgIlJlcG9ydGluZyBkYXRlIgogKi8KCmRlZmluZSAiTnVtZXJhdG9yIjoKICB0cnVlCgovKioKICogTnVtZXJhdG9yIEV4Y2x1c2lvbnMKICoKICogQ2FsY3VsYXRpb246ICJDbGllbnQgYmVpbmcgaW5kdWN0ZWQgb24gT0FNVCIgT1IgIkNsaWVudCBvbiByZWR1Y2luZyBkb3NlcyBvZiBPQU1UIgogKi8KICAgIApkZWZpbmUgIk51bWVyYXRvciBFeGNsdXNpb25zIjoKICBmYWxzZQoKLyoqCiAqIERlbm9taW5hdG9yCiAqCiAqIERlZmluaXRpb246IE51bWJlciBvZiBwZW9wbGUgcmVjZWl2aW5nIG1haW50ZW5hbmNlIGRvc2Ugb2YgbWV0aGFkb25lIG9yIGJ1cHJlbm9ycGhpbmUgYXQgYSBzcGVjaWZpZWQgZGF0ZSwgZXhjbHVkaW5nOiBhKSBpbmRpdmlkdWFscyBjdXJyZW50bHkgYmVpbmcgaW5kdWN0ZWQgb24gT0FNVCBhbmQgeWV0IHRvIHJlYWNoIHRoZSBtYWludGVuYW5jZSBkb3NlIGFuZCBiKSBpbmRpdmlkdWFscyBvbiByZWR1Y2luZyBkb3NlcyBvZiBPQU1ULgogKiBDYWxjdWxhdGlvbjogQ09VTlQgb2YgY2xpZW50cyB3aXRoICJNZWRpY2F0aW9ucyBwcmVzY3JpYmVkIiBJTiAnTWV0aGFkb25lJywgJ0J1cHJlbm9ycGhpbmUnIGZvciBhIHNwZWNpZmllZCAiUmVwb3J0aW5nIGRhdGUiCiAqLwoKZGVmaW5lICJEZW5vbWluYXRvciI6CiAgdHJ1ZQogICAgCi8qKgoqIERlbm9taW5hdG9yIEV4Y2x1c2lvbnMKKgoqIENhbGN1bGF0aW9uOiAiQ2xpZW50IGJlaW5nIGluZHVjdGVkIG9uIE9BTVQiIE9SICJDbGllbnQgb24gcmVkdWNpbmcgZG9zZXMgb2YgT0FNVCIKKi8KCmRlZmluZSAiRGVub21pbmF0b3IgRXhjbHVzaW9ucyI6CiAgZmFsc2UKCi8qIGVuZCBQb3B1bGF0aW9ucyAqLwoK"/>
</content>
<content>
<contentType value="application/elm+xml"/>
<data
value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSI+CiAgIDxhbm5vdGF0aW9uIHRyYW5zbGF0b3JPcHRpb25zPSJFbmFibGVBbm5vdGF0aW9ucyxFbmFibGVMb2NhdG9ycyxEaXNhYmxlTGlzdERlbW90aW9uLERpc2FibGVMaXN0UHJvbW90aW9uIiBzaWduYXR1cmVMZXZlbD0iTm9uZSIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1JbmZvIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICA8YTpzIHI9IjIwIj4KICAgICAgICAgPGE6cz4vKioKICogTGlicmFyeTogSElWLklORC4xNCBMb2dpYwogKiBSZWYgTm86IFBSVi4xNAogKiBTaG9ydCBOYW1lOiBPQU1UIG1pbmltdW0gZG9zZQogKgogKiBEZWZpbml0aW9uOiAlIG9mIE9BTVQgcmVjaXBpZW50cyByZWNlaXZpbmcgYSBtYWludGVuYW5jZSBkb3NlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgcmVjb21tZW5kZWQgbWluaW11bSBkb3NlCiAqCiAqIE51bWVyYXRvcjogTnVtYmVyIG9mIHBlb3BsZSwgYXQgYSBzcGVjaWZpZWQgZGF0ZSwgbWFpbnRhaW5lZCBvbiBtZXRoYWRvbmUgb3IgYnVwcmVub3JwaGluZSByZWNlaXZpbmcgcmVjb21tZW5kZWQgbWluaW11bSBtYWludGVuYW5jZSBkb3NlIChXSE8gZ3VpZGFuY2UgcmVjb21tZW5kcyBkb3NlcyBvZiDiiaU2MCBtZyBvZiBtZXRoYWRvbmUgb3Ig4omlOCBtZyBvZiBidXByZW5vcnBoaW5lKikKICogTnVtZXJhdG9yIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBjbGllbnRzIHdpdGggKCZxdW90O01lZGljYXRpb25zIHByZXNjcmliZWQmcXVvdDs9J01ldGhhZG9uZScgQU5EICZxdW90O0Rvc2Ugb2YgbWVkaWNhdGlvbnMgcHJlc2NyaWJlZCZxdW90OyBHUkVBVEVSIFRIQU4gT1IgRVFVQUwgVE8gNjBtZykgT1IgKCZxdW90O01lZGljYXRpb25zIHByZXNjcmliZWQmcXVvdDs9J0J1cHJlbm9ycGhpbmUnIEFORCAmcXVvdDtEb3NlIG9mIG1lZGljYXRpb25zIHByZXNjcmliZWQmcXVvdDsgR1JFQVRFUiBUSEFOIE9SIEVRVUFMIFRPIDhtZykgZm9yIGEgc3BlY2lmaWVkICZxdW90O1JlcG9ydGluZyBkYXRlJnF1b3Q7CiAqIE51bWVyYXRvciBFeGNsdXNpb25zOiAmcXVvdDtDbGllbnQgYmVpbmcgaW5kdWN0ZWQgb24gT0FNVCZxdW90OyBPUiAmcXVvdDtDbGllbnQgb24gcmVkdWNpbmcgZG9zZXMgb2YgT0FNVCZxdW90OwogKgogKiBEZW5vbWluYXRvcjogTnVtYmVyIG9mIHBlb3BsZSByZWNlaXZpbmcgbWFpbnRlbmFuY2UgZG9zZSBvZiBtZXRoYWRvbmUgb3IgYnVwcmVub3JwaGluZSBhdCBhIHNwZWNpZmllZCBkYXRlLCBleGNsdWRpbmc6IGEpIGluZGl2aWR1YWxzIGN1cnJlbnRseSBiZWluZyBpbmR1Y3RlZCBvbiBPQU1UIGFuZCB5ZXQgdG8gcmVhY2ggdGhlIG1haW50ZW5hbmNlIGRvc2UgYW5kIGIpIGluZGl2aWR1YWxzIG9uIHJlZHVjaW5nIGRvc2VzIG9mIE9BTVQuCiAqIERlbm9taW5hdG9yIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBjbGllbnRzIHdpdGggJnF1b3Q7TWVkaWNhdGlvbnMgcHJlc2NyaWJlZCZxdW90OyBJTiAnTWV0aGFkb25lJywgJ0J1cHJlbm9ycGhpbmUnIGZvciBhIHNwZWNpZmllZCAmcXVvdDtSZXBvcnRpbmcgZGF0ZSZxdW90OwogKiBEZW5vbWluYXRvciBFeGNsdXNpb25zOiAmcXVvdDtDbGllbnQgYmVpbmcgaW5kdWN0ZWQgb24gT0FNVCZxdW90OyBPUiAmcXVvdDtDbGllbnQgb24gcmVkdWNpbmcgZG9zZXMgb2YgT0FNVCZxdW90OwogKgogKiBEaXNhZ2dyZWdhdGlvbnM6CiAqIOKAoiBHZW5kZXIgKGZlbWFsZSwgbWFsZSwgb3RoZXIqKikgCiAqICDigKIgQWdlICgxNeKAkzE5LCAyMOKAkzI0LCAyNeKAkzQ5LCA1MCsgeWVhcnMpIAogKiAg4oCiIFByb3ZpZGVyIHR5cGUgKGtleSBwb3B1bGF0aW9uLWxlZCBvciBjb21tdW5pdHktbGVkIG9yZ2FuaXphdGlvbiwgcHVibGljIHNlY3RvciBwcm92aWRlciwgb3RoZXIgZW50aXRpZXMgc3VjaCBhcyBwcml2YXRlIGZvci1wcm9maXQgYW5kIG5vdC1mb3ItcHJvZml0IG9yZ2FuaXphdGlvbnMsIGluY2x1ZGluZyBmYWl0aC1iYXNlZCwgaW50ZXJuYXRpb25hbCwgbm9uZ292ZXJubWVudGFsKSAKICogIOKAoiBTZXR0aW5nOiBmYWNpbGl0eS1iYXNlZCBzZXJ2aWNlIChpbmNsdWRpbmcgaG9zcGl0YWxzLCBoZWFsdGggY2xpbmljcywgZ2VuZXJhbCBwcmFjdGljZSBvZmZpY2VzLCBldGMuKSBvciBjb21tdW5pdHktYmFzZWQgc2VydmljZSAoaW5jbHVkaW5nIGRyb3AtaW4gY2VudHJlcywgY29tbXVuaXR5IHNlcnZpY2UgZGVsaXZlcnkgcG9pbnRzLCBtb2JpbGUgY2xpbmljcyBvciB2YW5zLCBvdXRyZWFjaCB0ZWFtcywgY29tbXVuaXR5IHN1cHBvcnQgZ3JvdXBzLCBldGMuKSAKICogIOKAosKgQ2l0aWVzIGFuZCBvdGhlciBhZG1pbmlzdHJhdGl2ZSByZWdpb25zIG9mIGVwaWRlbWlvbG9naWMgaW1wb3J0YW5jZQogKgogKiBEaXNhZ2dyZWdhdGlvbiBFbGVtZW50czogR2VuZGVyIHwgQWdlCiAqCiAqIE51bWVyYXRvciBhbmQgRGVub21pbmF0b3IgRWxlbWVudHM6CiAqIERvc2Ugb2YgbWVkaWNhdGlvbnMgcHJlc2NyaWJlZCAKICogIE1lZGljYXRpb25zIHByZXNjcmliZWQgCiAqICBSZXBvcnRpbmcgZGF0ZQogKgogKiBSZWZlcmVuY2U6IENvbnNvbGlkYXRlZCBndWlkZWxpbmVzIG9uIHBlcnNvbi1jZW50cmVkIEhJViBzdHJhdGVnaWMgaW5mb3JtYXRpb246IHN0cmVuZ3RoZW5pbmcgcm91dGluZSBkYXRhIGZvciBpbXBhY3QuIEdlbmV2YTogV29ybGQgSGVhbHRoIE9yZ2FuaXphdGlvbjsgMjAyMgogKiAKICogRGF0YSBDb25jZXB0czoKICogSElWLkEuREUxNzogQWdlIHwgQ2FsY3VsYXRlZCBhZ2UgKG51bWJlciBvZiB5ZWFycykgb2YgdGhlIGNsaWVudCBiYXNlZCBvbiBkYXRlIG9mIGJpcnRoCiAqIEhJVi5BLkRFMTg6IEdlbmRlciogfCBHZW5kZXIgb2YgdGhlIGNsaWVudCoKICogSElWLkEuREUxOTogRmVtYWxlIHwgQ2xpZW50IGlkZW50aWZpZXMgYXMgZmVtYWxlCiAqIEhJVi5BLkRFMjA6IE1hbGUgfCBDbGllbnQgaWRlbnRpZmllcyBhcyBtYWxlCiAqIEhJVi5BLkRFMjE6IFRyYW5zZ2VuZGVyIG1hbGUgfCBDbGllbnQgaWRlbnRpZmllcyBhcyB0cmFuc2dlbmRlciBtYWxlCiAqIEhJVi5BLkRFMjI6IFRyYW5zZ2VuZGVyIGZlbWFsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIHRyYW5zZ2VuZGVyIGZlbWFsZQogKiBISVYuQS5ERTIzOiBPdGhlciB8IEFkZGl0aW9uYWwgY2F0ZWdvcnkKICogSElWLkMuREU3NTogTWVkaWNhdGlvbnMgcHJlc2NyaWJlZCB8IE1lZGljYXRpb25zIHRoZSBjbGllbnQgd2FzIHByZXNjcmliZWQKICogSElWLkMuREU3NjogUHJFUCBmb3IgSElWIHByZXZlbnRpb24gfCBDbGllbnQgd2FzIHByZXNjcmliZWQgcHJlLWV4cG9zdXJlIHByb3BoeWxheGlzIChQckVQKSBmb3IgSElWIHByZXZlbnRpb24KICogSElWLkMuREU3NzogUEVQIGZvciBISVYgcHJldmVudGlvbiB8IENsaWVudCB3YXMgcHJlc2NyaWJlZCBwb3N0LWV4cG9zdXJlIHByb3BoeWxheGlzIChQRVApIGZvciBISVYgcHJldmVudGlvbgogKiBISVYuQy5ERTc4OiBPdGhlciB8IENsaWVudCB3YXMgcHJlc2NyaWJlZCBvdGhlciBtZWRpY2F0aW9ucwogKiBISVYuRC5ERTQ1NzogTWVkaWNhdGlvbnMgcHJlc2NyaWJlZCB8IE5hbWUgb3IgcmVnaW1lbiBjb2RlIG9mIGFsbCBvdGhlciBtZWRpY2F0aW9ucyBwcmVzY3JpYmVkIGR1cmluZyB0aGUgdmlzaXQKICogSElWLkQuREU0NTk6IERvc2Ugb2YgbWVkaWNhdGlvbnMgcHJlc2NyaWJlZCB8IE51bWJlciBvZiBkb3NlcyAocXVhbnRpdHkgdGFrZW4gYXQgYSBzaW5nbGUgcG9pbnQgaW4gdGltZSkgb2YgZHJ1Z3MgcHJlc2NyaWJlZC9kaXNwZW5zZWQKICogSElWLkNvbmZpZy5ERTIyOiBSZXBvcnRpbmcgZGF0ZSB8IFJlcG9ydGluZyBkYXRlLCBmb3Igc3VydmV5cyBwZXJmb3JtZWQgb24gYSBzcGVjaWZpYyBkYXRlCiAqCiAqIEFkZGl0aW9uYWwgQ29udGV4dAogKiAtIHdoYXQgaXQgbWVhc3VyZXM6IE1lYXN1cmVzIHRoZSBwcm9wb3J0aW9uIG9mIE9BTVQgcmVjaXBpZW50cyByZWNlaXZpbmcgdGhlIHJlY29tbWVuZGVkIG1pbmltdW0gbWFpbnRlbmFuY2UgZG9zZS4KICogLSByYXRpb25hbGU6IEV2aWRlbmNlIGRlbW9uc3RyYXRlcyB0aGF0IG1heGltdW0gYmVuZWZpdCBmcm9tIE9BTVQgaXMgZ2FpbmVkIHdoZW4gaW5kaXZpZHVhbHMgcmVjZWl2ZSBhdCBsZWFzdCB0aGUgcmVjb21tZW5kZWQgbWluaW11bSBtYWludGVuYW5jZSBkb3NlLgogKiAtIG1ldGhvZDogSW5kaXZpZHVhbC1sZXZlbCBkYXRhIG9idGFpbmVkIGZyb20gcHJvZ3JhbW1lIHJlY29yZHMKICogCiAqIFN1Z2dlc3RlZCBTY29yaW5nIE1ldGhvZDogcHJvcG9ydGlvbiB8IGh0dHA6Ly9obDcub3JnL2ZoaXIvdXMvY3FmbWVhc3VyZXMvU3RydWN0dXJlRGVmaW5pdGlvbi9wcm9wb3J0aW9uLW1lYXN1cmUtY3FmbQogKi8KCmxpYnJhcnkgSElWSU5EMTRMb2dpYzwvYTpzPgogICAgICA8L2E6cz4KICAgPC9hbm5vdGF0aW9uPgogICA8aWRlbnRpZmllciBpZD0iSElWSU5EMTRMb2dpYyIgc3lzdGVtPSJodHRwOi8vc21hcnQud2hvLmludC9oaXYiLz4KICAgPHNjaGVtYUlkZW50aWZpZXIgaWQ9InVybjpobDctb3JnOmVsbSIgdmVyc2lvbj0icjEiLz4KICAgPHVzaW5ncz4KICAgICAgPGRlZiBsb2NhbElkZW50aWZpZXI9IlN5c3RlbSIgdXJpPSJ1cm46aGw3LW9yZzplbG0tdHlwZXM6cjEiLz4KICAgICAgPGRlZiBsb2NhbElkPSIxIiBsb2NhdG9yPSI1OToxLTU5OjI2IiBsb2NhbElkZW50aWZpZXI9IkZISVIiIHVyaT0iaHR0cDovL2hsNy5vcmcvZmhpciIgdmVyc2lvbj0iNC4wLjEiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIxIj4KICAgICAgICAgICAgICAgPGE6cz4vLyBJbmNsdWRlZCBMaWJyYXJpZXMKdXNpbmcgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+RkhJUjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gdmVyc2lvbiAnNC4wLjEnPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICA8L3VzaW5ncz4KICAgPGluY2x1ZGVzPgogICAgICA8ZGVmIGxvY2FsSWQ9IjIiIGxvY2F0b3I9IjYxOjEtNjE6NDQiIGxvY2FsSWRlbnRpZmllcj0iSElDIiBwYXRoPSJodHRwOi8vc21hcnQud2hvLmludC9oaXYvSElWQ29tbW9uIiB2ZXJzaW9uPSIwLjAuMSI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjIiPgogICAgICAgICAgICAgICA8YTpzPmluY2x1ZGUgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+SElWQ29tbW9uPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiB2ZXJzaW9uICcwLjAuMScgY2FsbGVkIEhJQzwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIzIiBsb2NhdG9yPSI2MjoxLTYyOjM1IiBsb2NhbElkZW50aWZpZXI9IkZISVJIZWxwZXJzIiBwYXRoPSJodHRwOi8vaGw3Lm9yZy9maGlyL0ZISVJIZWxwZXJzIiB2ZXJzaW9uPSI0LjAuMSI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjMiPgogICAgICAgICAgICAgICA8YTpzPmluY2x1ZGUgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+RkhJUkhlbHBlcnM8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IHZlcnNpb24gJzQuMC4xJzwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSI0IiBsb2NhdG9yPSI2MzoxLTYzOjI5IiBsb2NhbElkZW50aWZpZXI9IldDb20iIHBhdGg9Imh0dHA6Ly9zbWFydC53aG8uaW50L2hpdi9XSE9Db21tb24iPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSI0Ij4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPldIT0NvbW1vbjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gY2FsbGVkIFdDb208L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgIDwvaW5jbHVkZXM+CiAgIDxwYXJhbWV0ZXJzPgogICAgICA8ZGVmIGxvY2FsSWQ9IjEwIiBsb2NhdG9yPSI2NjoxLTY2Ojg4IiBuYW1lPSJNZWFzdXJlbWVudCBQZXJpb2QiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIxMCI+CiAgICAgICAgICAgICAgIDxhOnM+Ly8gSW5kaWNhdG9yIERlZmluaXRpb24KcGFyYW1ldGVyICZxdW90O01lYXN1cmVtZW50IFBlcmlvZCZxdW90OyA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSI5Ij4KICAgICAgICAgICAgICAgICAgPGE6cz5JbnRlcnZhbCZsdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI4Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5EYXRlPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzPj48L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IGRlZmF1bHQgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iNyI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNSI+SW50ZXJ2YWxbQDIwMjMtMDEtMDEsIEAyMDIzLTAxLTMwXTwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGRlZmF1bHQgbG9jYWxJZD0iNyIgbG9jYXRvcj0iNjY6NTUtNjY6ODgiIGxvd0Nsb3NlZD0idHJ1ZSIgaGlnaENsb3NlZD0idHJ1ZSIgeHNpOnR5cGU9IkludGVydmFsIj4KICAgICAgICAgICAgPGxvdyBsb2NhbElkPSI1IiBsb2NhdG9yPSI2Njo2NC02Njo3NCIgeHNpOnR5cGU9IkRhdGUiPgogICAgICAgICAgICAgICA8eWVhciB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjIwMjMiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDxtb250aCB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjEiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDxkYXkgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIxIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICA8L2xvdz4KICAgICAgICAgICAgPGhpZ2ggbG9jYWxJZD0iNiIgbG9jYXRvcj0iNjY6NzctNjY6ODciIHhzaTp0eXBlPSJEYXRlIj4KICAgICAgICAgICAgICAgPHllYXIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIyMDIzIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8bW9udGggdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIxIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8ZGF5IHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMzAiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgIDwvaGlnaD4KICAgICAgICAgPC9kZWZhdWx0PgogICAgICAgICA8cGFyYW1ldGVyVHlwZVNwZWNpZmllciBsb2NhbElkPSI5IiBsb2NhdG9yPSI2NjozMi02Njo0NSIgeHNpOnR5cGU9IkludGVydmFsVHlwZVNwZWNpZmllciI+CiAgICAgICAgICAgIDxwb2ludFR5cGUgbG9jYWxJZD0iOCIgbG9jYXRvcj0iNjY6NDEtNjY6NDQiIG5hbWU9InQ6RGF0ZSIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICA8L3BhcmFtZXRlclR5cGVTcGVjaWZpZXI+CiAgICAgIDwvZGVmPgogICA8L3BhcmFtZXRlcnM+CiAgIDxjb250ZXh0cz4KICAgICAgPGRlZiBsb2NhdG9yPSI2ODoxLTY4OjE1IiBuYW1lPSJQYXRpZW50Ii8+CiAgIDwvY29udGV4dHM+CiAgIDxzdGF0ZW1lbnRzPgogICAgICA8ZGVmIGxvY2F0b3I9IjY4OjEtNjg6MTUiIG5hbWU9IlBhdGllbnQiIGNvbnRleHQ9IlBhdGllbnQiPgogICAgICAgICA8ZXhwcmVzc2lvbiB4c2k6dHlwZT0iU2luZ2xldG9uRnJvbSI+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2F0b3I9IjY4OjEtNjg6MTUiIGRhdGFUeXBlPSJmaGlyOlBhdGllbnQiIHRlbXBsYXRlSWQ9Imh0dHA6Ly9obDcub3JnL2ZoaXIvU3RydWN0dXJlRGVmaW5pdGlvbi9QYXRpZW50IiB4c2k6dHlwZT0iUmV0cmlldmUiLz4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIxMiIgbG9jYXRvcj0iNzU6MS03Njo2IiBuYW1lPSJJbml0aWFsIFBvcHVsYXRpb24iIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIxMiI+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMTEiPi8qIFBvcHVsYXRpb25zICovCgovKgogKkluaXRpYWwgUG9wdWxhdGlvbgogKi8KCmRlZmluZSAmcXVvdDtJbml0aWFsIFBvcHVsYXRpb24mcXVvdDs6CiAgdHJ1ZTwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIxMSIgbG9jYXRvcj0iNzY6My03Njo2IiB2YWx1ZVR5cGU9InQ6Qm9vbGVhbiIgdmFsdWU9InRydWUiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjE0IiBsb2NhdG9yPSI4NToxLTg2OjYiIG5hbWU9Ik51bWVyYXRvciIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjE0Ij4KICAgICAgICAgICAgICAgPGE6cyByPSIxMyI+LyoqCiAqIE51bWVyYXRvcgogKiAKICogRGVmaW5pdGlvbjogTnVtYmVyIG9mIHBlb3BsZSwgYXQgYSBzcGVjaWZpZWQgZGF0ZSwgbWFpbnRhaW5lZCBvbiBtZXRoYWRvbmUgb3IgYnVwcmVub3JwaGluZSByZWNlaXZpbmcgcmVjb21tZW5kZWQgbWluaW11bSBtYWludGVuYW5jZSBkb3NlIChXSE8gZ3VpZGFuY2UgcmVjb21tZW5kcyBkb3NlcyBvZiDiiaU2MCBtZyBvZiBtZXRoYWRvbmUgb3Ig4omlOCBtZyBvZiBidXByZW5vcnBoaW5lKikKICogQ2FsY3VsYXRpb246IENPVU5UIG9mIGNsaWVudHMgd2l0aCAoJnF1b3Q7TWVkaWNhdGlvbnMgcHJlc2NyaWJlZCZxdW90Oz0nTWV0aGFkb25lJyBBTkQgJnF1b3Q7RG9zZSBvZiBtZWRpY2F0aW9ucyBwcmVzY3JpYmVkJnF1b3Q7IEdSRUFURVIgVEhBTiBPUiBFUVVBTCBUTyA2MG1nKSBPUiAoJnF1b3Q7TWVkaWNhdGlvbnMgcHJlc2NyaWJlZCZxdW90Oz0nQnVwcmVub3JwaGluZScgQU5EICZxdW90O0Rvc2Ugb2YgbWVkaWNhdGlvbnMgcHJlc2NyaWJlZCZxdW90OyBHUkVBVEVSIFRIQU4gT1IgRVFVQUwgVE8gOG1nKSBmb3IgYSBzcGVjaWZpZWQgJnF1b3Q7UmVwb3J0aW5nIGRhdGUmcXVvdDsKICovCgpkZWZpbmUgJnF1b3Q7TnVtZXJhdG9yJnF1b3Q7OgogIHRydWU8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMTMiIGxvY2F0b3I9Ijg2OjMtODY6NiIgdmFsdWVUeXBlPSJ0OkJvb2xlYW4iIHZhbHVlPSJ0cnVlIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIxNiIgbG9jYXRvcj0iOTQ6MS05NTo3IiBuYW1lPSJOdW1lcmF0b3IgRXhjbHVzaW9ucyIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjE2Ij4KICAgICAgICAgICAgICAgPGE6cyByPSIxNSI+LyoqCiAqIE51bWVyYXRvciBFeGNsdXNpb25zCiAqCiAqIENhbGN1bGF0aW9uOiAmcXVvdDtDbGllbnQgYmVpbmcgaW5kdWN0ZWQgb24gT0FNVCZxdW90OyBPUiAmcXVvdDtDbGllbnQgb24gcmVkdWNpbmcgZG9zZXMgb2YgT0FNVCZxdW90OwogKi8KICAgIApkZWZpbmUgJnF1b3Q7TnVtZXJhdG9yIEV4Y2x1c2lvbnMmcXVvdDs6CiAgZmFsc2U8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMTUiIGxvY2F0b3I9Ijk1OjMtOTU6NyIgdmFsdWVUeXBlPSJ0OkJvb2xlYW4iIHZhbHVlPSJmYWxzZSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMTgiIGxvY2F0b3I9IjEwNDoxLTEwNTo2IiBuYW1lPSJEZW5vbWluYXRvciIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjE4Ij4KICAgICAgICAgICAgICAgPGE6cyByPSIxNyI+LyoqCiAqIERlbm9taW5hdG9yCiAqCiAqIERlZmluaXRpb246IE51bWJlciBvZiBwZW9wbGUgcmVjZWl2aW5nIG1haW50ZW5hbmNlIGRvc2Ugb2YgbWV0aGFkb25lIG9yIGJ1cHJlbm9ycGhpbmUgYXQgYSBzcGVjaWZpZWQgZGF0ZSwgZXhjbHVkaW5nOiBhKSBpbmRpdmlkdWFscyBjdXJyZW50bHkgYmVpbmcgaW5kdWN0ZWQgb24gT0FNVCBhbmQgeWV0IHRvIHJlYWNoIHRoZSBtYWludGVuYW5jZSBkb3NlIGFuZCBiKSBpbmRpdmlkdWFscyBvbiByZWR1Y2luZyBkb3NlcyBvZiBPQU1ULgogKiBDYWxjdWxhdGlvbjogQ09VTlQgb2YgY2xpZW50cyB3aXRoICZxdW90O01lZGljYXRpb25zIHByZXNjcmliZWQmcXVvdDsgSU4gJ01ldGhhZG9uZScsICdCdXByZW5vcnBoaW5lJyBmb3IgYSBzcGVjaWZpZWQgJnF1b3Q7UmVwb3J0aW5nIGRhdGUmcXVvdDsKICovCgpkZWZpbmUgJnF1b3Q7RGVub21pbmF0b3ImcXVvdDs6CiAgdHJ1ZTwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIxNyIgbG9jYXRvcj0iMTA1OjMtMTA1OjYiIHZhbHVlVHlwZT0idDpCb29sZWFuIiB2YWx1ZT0idHJ1ZSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjAiIGxvY2F0b3I9IjExMzoxLTExNDo3IiBuYW1lPSJEZW5vbWluYXRvciBFeGNsdXNpb25zIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMjAiPgogICAgICAgICAgICAgICA8YTpzIHI9IjE5Ij4vKioKKiBEZW5vbWluYXRvciBFeGNsdXNpb25zCioKKiBDYWxjdWxhdGlvbjogJnF1b3Q7Q2xpZW50IGJlaW5nIGluZHVjdGVkIG9uIE9BTVQmcXVvdDsgT1IgJnF1b3Q7Q2xpZW50IG9uIHJlZHVjaW5nIGRvc2VzIG9mIE9BTVQmcXVvdDsKKi8KCmRlZmluZSAmcXVvdDtEZW5vbWluYXRvciBFeGNsdXNpb25zJnF1b3Q7OgogIGZhbHNlPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjE5IiBsb2NhdG9yPSIxMTQ6My0xMTQ6NyIgdmFsdWVUeXBlPSJ0OkJvb2xlYW4iIHZhbHVlPSJmYWxzZSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgPC9kZWY+CiAgIDwvc3RhdGVtZW50cz4KPC9saWJyYXJ5Pgo="/>
</content>
</Library>