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" : "HIVIND40Logic",
"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.40 Logic</td>\n </tr>\n \n\n \n \n <tr>\n <th scope=\"row\"><b>Id: </b></th>\n <td style=\"padding-left: 4px;\">HIVIND40Logic</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-HIVIND40Logic.html\">HIV.IND.40 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 HIV-positive pregnant women who received ART during pregnancy and/or at labour and delivery</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 <tr>\n <th scope=\"row\"><b>Related Artifacts: </b></th>\n <td style=\"padding-left: 4px;\">\n \n \n \n <p><b>Dependencies</b></p>\n <ul>\n \n <li><code>http://smart.who.int/hiv/Library/HIVCommon|0.0.1</code></li>\n \n <li><a href=\"Library-WHOCommon.html\">WHOCommon</a></li>\n \n </ul>\n \n \n \n \n \n </td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Parameters: </b></th>\n <td style=\"padding-left: 4px;\">\n <table class=\"grid-dict\">\n <tr><th><b>Name</b></th><th><b>Type</b></th><th><b>Min</b></th><th><b>Max</b></th><th><b>In/Out</b></th></tr>\n \n <tr><th>Measurement Period</th><th>Period</th><th>0</th><th>1</th><th>In</th></tr>\n \n <tr><th>Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Initial Population</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Numerator</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n <tr><th>Denominator</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>\n \n </table>\n </td>\n </tr>\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.40 Logic\n * Ref No: VER.4\n * Short Name: ART coverage in pregnant women\n *\n * Definition: % of HIV-positive pregnant women who received ART during pregnancy and/or at labour and delivery\n *\n * Numerator: Number of HIV-positive pregnant women who delivered during the reporting period and received ART during pregnancy and/or at labour and delivery\n * Numerator Calculation: COUNT of women with "HIV status"='HIV-positive' AND "Delivery date" in the reporting period AND (("On ART"=True at labour and delivery) OR ("On ART"=True during pregnancy, for this pregnancy))\n * Numerator Exclusions: \n *\n * Denominator: a) Programme-based/service delivery denominator | Number of HIV-positive pregnant women who delivered during the reporting period and attended ANC or had a facility-based delivery | b) Population-based denominator | Number of HIV-positive pregnant women who delivered during the reporting period\n * Denominator Calculation: Programme-based/service delivery denominator: | COUNT of women with "HIV status"='HIV-positive' AND "Delivery date" in the reporting period AND (had an "ANC contact date" during reporting period OR "Place of delivery" was a 'Health facility') | | Population-based denominator: | *Number of HIV-positive pregnant women who delivered during the reporting period\n * Denominator Exclusions: \n *\n * Disaggregations:\n * Numerator: \n * •\u00a0Timing of ART initiation (1. already on ART at first ANC visit, 2. newly on ART during pregnancy, 3. newly on ART during labour and delivery, 4. on non-recommended ART regimen) \n * \n * The primary indicator calculation should include ART status categories 1, 2 and 3. Removing the women in category 1 "already on ART at first ANC visit" from the numerator and denominator gives a measure of ART coverage among HIV-positive pregnant women newly diagnosed during ANC. Dividing category 2 by the sum of categories 2 and 3 gives the proportion of new ART initiations occurring during pregnancy rather than at delivery. Calculating the indicator with those in category 4 (non-recommended ARV regimen) included in the numerator gives a broader measure, that is, coverage of HIV-positive pregnant women receiving any ARV drug.\n *\n * Disaggregation Elements: Timing of ART initiation\n *\n * Numerator and Denominator Elements:\n * ANC contact date \n * Delivery date \n * HIV status \n * On ART \n * Place of delivery\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.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.DE38: On ART | Client is currently taking ART\n * HIV.E.DE41: Timing of ART initiation | When the pregnant woman or mother initiated ART, for women living with HIV.\n * HIV.E.DE42: Already on ART at first antenatal care visit | The pregnant woman was already on antiretroviral therapy (ART) at first antenatal care visit\n * HIV.E.DE43: Newly on ART during pregnancy | The pregnant woman started ART during her pregnancy\n * HIV.E.DE44: Newly on ART during labour and delivery | The woman started ART during labour and delivery\n * HIV.E.DE46: Delivery date | Date on which the woman delivered\n * HIV.E.DE67: Place of delivery | The type of place where the woman delivered\n * HIV.E.DE68: Health facility | The woman delivered at a health facility\n * HIV.E.DE69: Home | The woman delivered at home\n * HIV.E.DE70: Other | The woman delivered at another location that is not at home or at a health facility\n * HIV.E.DE85: ANC contact date | The date and time of the client's ANC contact (in the ANC DAK this is called 'Contact date')\n * HIV.H.DE47: On ART | Client is currently taking ART \n * HIV.SRV.DE18: ANC contact date | The date and time of the client's ANC contact (in the ANC DAK this is called 'Contact date')\n *\n * Additional Context\n * - what it measures: This indicator measures whether a recommended course of ART has been provided to HIV-positive pregnant women.\n * - rationale: • Providing ART for HIV-positive pregnant women is a critical strategy for preventing vertical transmission of HIV. | • In an era of "Treat All", all HIV-positive pregnant women should be given a recommended regimen of ART as soon as possible after diagnosis, including during labour and delivery.\n * - method: a) For the numerator and programme-based/service delivery denominator: Programme records (for example, PMTCT registers, ARV registers, labour and delivery registers) | | b) For the population-based denominator: Modelling-based estimates (for example, Spectrum AIM) | | The recommended reporting period is 12 months.\n * \n * Suggested Scoring Method: proportion | http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm\n */\n\nlibrary HIVIND40Logic\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\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 HIV-positive pregnant women who delivered during the reporting period and received ART during pregnancy and/or at labour and delivery\n * Calculation: COUNT of women with "HIV status"='HIV-positive' AND "Delivery date" in the reporting period AND (("On ART"=True at labour and delivery) OR ("On ART"=True during pregnancy, for this pregnancy))\n */\n\ndefine "Numerator":\n true\n\n\n/**\n * Denominator\n *\n * Definition: a) Programme-based/service delivery denominator | Number of HIV-positive pregnant women who delivered during the reporting period and attended ANC or had a facility-based delivery | b) Population-based denominator | Number of HIV-positive pregnant women who delivered during the reporting period\n * Calculation: Programme-based/service delivery denominator: | COUNT of women with "HIV status"='HIV-positive' AND "Delivery date" in the reporting period AND (had an "ANC contact date" during reporting period OR "Place of delivery" was a 'Health facility') | | Population-based denominator: | *Number of HIV-positive pregnant women who delivered during the reporting period\n */\n\ndefine "Denominator":\n true\n \n\n/* end Populations */\n\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>Encoded data (16444 characters)</code></pre></td></tr>\n </table>\n </td>\n </tr>\n \n \n \n \n <tr>\n <td colspan=\"2\">\n <table>\n <tr><th><b>Content: </b> application/elm+json</th></tr>\n <tr><td><pre><code>Encoded data (21600 characters)</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/HIVIND40Logic",
"version" : "0.3.0",
"name" : "HIVIND40Logic",
"title" : "HIV.IND.40 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 HIV-positive pregnant women who received ART during pregnancy and/or at labour and delivery",
"relatedArtifact" : [
{
"type" : "depends-on",
"display" : "Library HIC",
"resource" : "http://smart.who.int/hiv/Library/HIVCommon|0.0.1"
},
{
"type" : "depends-on",
"display" : "Library WCom",
"resource" : "http://smart.who.int/hiv/Library/WHOCommon"
}
],
"parameter" : [
{
"name" : "Measurement Period",
"use" : "in",
"min" : 0,
"max" : "1",
"type" : "Period"
},
{
"name" : "Patient",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "Patient"
},
{
"name" : "Initial Population",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Numerator",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
},
{
"name" : "Denominator",
"use" : "out",
"min" : 0,
"max" : "1",
"type" : "boolean"
}
],
"content" : [
{
"contentType" : "text/cql",
"data" : "LyoqCiAqIExpYnJhcnk6IEhJVi5JTkQuNDAgTG9naWMKICogUmVmIE5vOiBWRVIuNAogKiBTaG9ydCBOYW1lOiBBUlQgY292ZXJhZ2UgaW4gcHJlZ25hbnQgd29tZW4KICoKICogRGVmaW5pdGlvbjogJSBvZiBISVYtcG9zaXRpdmUgcHJlZ25hbnQgd29tZW4gd2hvIHJlY2VpdmVkIEFSVCBkdXJpbmcgcHJlZ25hbmN5IGFuZC9vciBhdCBsYWJvdXIgYW5kIGRlbGl2ZXJ5CiAqCiAqIE51bWVyYXRvcjogTnVtYmVyIG9mIEhJVi1wb3NpdGl2ZSBwcmVnbmFudCB3b21lbiB3aG8gZGVsaXZlcmVkIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZCBhbmQgcmVjZWl2ZWQgQVJUIGR1cmluZyBwcmVnbmFuY3kgYW5kL29yIGF0IGxhYm91ciBhbmQgZGVsaXZlcnkKICogTnVtZXJhdG9yIENhbGN1bGF0aW9uOiBDT1VOVCBvZiB3b21lbiB3aXRoICJISVYgc3RhdHVzIj0nSElWLXBvc2l0aXZlJyBBTkQgIkRlbGl2ZXJ5IGRhdGUiIGluIHRoZSByZXBvcnRpbmcgcGVyaW9kIEFORCAoKCJPbiBBUlQiPVRydWUgYXQgbGFib3VyIGFuZCBkZWxpdmVyeSkgT1IgKCJPbiBBUlQiPVRydWUgZHVyaW5nIHByZWduYW5jeSwgZm9yIHRoaXMgcHJlZ25hbmN5KSkKICogTnVtZXJhdG9yIEV4Y2x1c2lvbnM6IAogKgogKiBEZW5vbWluYXRvcjogYSkgUHJvZ3JhbW1lLWJhc2VkL3NlcnZpY2UgZGVsaXZlcnkgZGVub21pbmF0b3IgfCBOdW1iZXIgb2YgSElWLXBvc2l0aXZlIHByZWduYW50IHdvbWVuIHdobyBkZWxpdmVyZWQgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kIGFuZCBhdHRlbmRlZCBBTkMgb3IgaGFkIGEgZmFjaWxpdHktYmFzZWQgZGVsaXZlcnkgfCBiKSBQb3B1bGF0aW9uLWJhc2VkIGRlbm9taW5hdG9yIHwgTnVtYmVyIG9mIEhJVi1wb3NpdGl2ZSBwcmVnbmFudCB3b21lbiB3aG8gZGVsaXZlcmVkIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKiBEZW5vbWluYXRvciBDYWxjdWxhdGlvbjogUHJvZ3JhbW1lLWJhc2VkL3NlcnZpY2UgZGVsaXZlcnkgZGVub21pbmF0b3I6IHwgQ09VTlQgb2Ygd29tZW4gd2l0aCAiSElWIHN0YXR1cyI9J0hJVi1wb3NpdGl2ZScgQU5EICJEZWxpdmVyeSBkYXRlIiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBBTkQgKGhhZCBhbiAiQU5DIGNvbnRhY3QgZGF0ZSIgZHVyaW5nIHJlcG9ydGluZyBwZXJpb2QgT1IgIlBsYWNlIG9mIGRlbGl2ZXJ5IiB3YXMgYSAnSGVhbHRoIGZhY2lsaXR5JykgfCAgfCBQb3B1bGF0aW9uLWJhc2VkIGRlbm9taW5hdG9yOiB8ICpOdW1iZXIgb2YgSElWLXBvc2l0aXZlIHByZWduYW50IHdvbWVuIHdobyBkZWxpdmVyZWQgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqIERlbm9taW5hdG9yIEV4Y2x1c2lvbnM6IAogKgogKiBEaXNhZ2dyZWdhdGlvbnM6CiAqIE51bWVyYXRvcjogCiAqICDigKLCoFRpbWluZyBvZiBBUlQgaW5pdGlhdGlvbiAoMS4gYWxyZWFkeSBvbiBBUlQgYXQgZmlyc3QgQU5DIHZpc2l0LCAyLiBuZXdseSBvbiBBUlQgZHVyaW5nIHByZWduYW5jeSwgMy4gbmV3bHkgb24gQVJUIGR1cmluZyBsYWJvdXIgYW5kIGRlbGl2ZXJ5LCA0LiBvbiBub24tcmVjb21tZW5kZWQgQVJUIHJlZ2ltZW4pIAogKiAgIAogKiAgVGhlIHByaW1hcnkgaW5kaWNhdG9yIGNhbGN1bGF0aW9uIHNob3VsZCBpbmNsdWRlIEFSVCBzdGF0dXMgY2F0ZWdvcmllcyAxLCAyIGFuZCAzLiBSZW1vdmluZyB0aGUgd29tZW4gaW4gY2F0ZWdvcnkgMSAiYWxyZWFkeSBvbiBBUlQgYXQgZmlyc3QgQU5DIHZpc2l0IiBmcm9tIHRoZSBudW1lcmF0b3IgYW5kIGRlbm9taW5hdG9yIGdpdmVzIGEgbWVhc3VyZSBvZiBBUlQgY292ZXJhZ2UgYW1vbmcgSElWLXBvc2l0aXZlIHByZWduYW50IHdvbWVuIG5ld2x5IGRpYWdub3NlZCBkdXJpbmcgQU5DLiBEaXZpZGluZyBjYXRlZ29yeSAyIGJ5IHRoZSBzdW0gb2YgY2F0ZWdvcmllcyAyIGFuZCAzIGdpdmVzIHRoZSBwcm9wb3J0aW9uIG9mIG5ldyBBUlQgaW5pdGlhdGlvbnMgb2NjdXJyaW5nIGR1cmluZyBwcmVnbmFuY3kgcmF0aGVyIHRoYW4gYXQgZGVsaXZlcnkuIENhbGN1bGF0aW5nIHRoZSBpbmRpY2F0b3Igd2l0aCB0aG9zZSBpbiBjYXRlZ29yeSA0IChub24tcmVjb21tZW5kZWQgQVJWIHJlZ2ltZW4pIGluY2x1ZGVkIGluIHRoZSBudW1lcmF0b3IgZ2l2ZXMgYSBicm9hZGVyIG1lYXN1cmUsIHRoYXQgaXMsIGNvdmVyYWdlIG9mIEhJVi1wb3NpdGl2ZSBwcmVnbmFudCB3b21lbiByZWNlaXZpbmcgYW55IEFSViBkcnVnLgogKgogKiBEaXNhZ2dyZWdhdGlvbiBFbGVtZW50czogVGltaW5nIG9mIEFSVCBpbml0aWF0aW9uCiAqCiAqIE51bWVyYXRvciBhbmQgRGVub21pbmF0b3IgRWxlbWVudHM6CiAqIEFOQyBjb250YWN0IGRhdGUgCiAqICBEZWxpdmVyeSBkYXRlIAogKiAgSElWIHN0YXR1cyAKICogIE9uIEFSVCAKICogIFBsYWNlIG9mIGRlbGl2ZXJ5CiAqCiAqIFJlZmVyZW5jZTogQ29uc29saWRhdGVkIGd1aWRlbGluZXMgb24gcGVyc29uLWNlbnRyZWQgSElWIHN0cmF0ZWdpYyBpbmZvcm1hdGlvbjogc3RyZW5ndGhlbmluZyByb3V0aW5lIGRhdGEgZm9yIGltcGFjdC4gR2VuZXZhOiBXb3JsZCBIZWFsdGggT3JnYW5pemF0aW9uOyAyMDIyCiAqIAogKiBEYXRhIENvbmNlcHRzOgogKiBISVYuQi5ERTExNTogSElWIHN0YXR1cyB8IEhJViBzdGF0dXMgcmVwb3J0ZWQgYWZ0ZXIgYXBwbHlpbmcgdGhlIG5hdGlvbmFsIEhJViB0ZXN0aW5nIGFsZ29yaXRobS4gTm8gc2luZ2xlIEhJViB0ZXN0IGNhbiBwcm92aWRlIGFuIEhJVi1wb3NpdGl2ZSBkaWFnbm9zaXMuCiAqIEhJVi5CLkRFMTE2OiBISVYtcG9zaXRpdmUgfCBDbGllbnQgaXMgSElWLXBvc2l0aXZlCiAqIEhJVi5CLkRFMTE3OiBISVYtbmVnYXRpdmUgfCBDbGllbnQgaXMgSElWLW5lZ2F0aXZlCiAqIEhJVi5CLkRFMTE4OiBVbmtub3duIHwgQ2xpZW50IGhhcyB1bmtub3duIEhJViBzdGF0dXMKICogSElWLkQuREUzODogT24gQVJUIHwgQ2xpZW50IGlzIGN1cnJlbnRseSB0YWtpbmcgQVJUCiAqIEhJVi5FLkRFNDE6IFRpbWluZyBvZiBBUlQgaW5pdGlhdGlvbiB8IFdoZW4gdGhlIHByZWduYW50IHdvbWFuIG9yIG1vdGhlciBpbml0aWF0ZWQgQVJULCBmb3Igd29tZW4gbGl2aW5nIHdpdGggSElWLgogKiBISVYuRS5ERTQyOiBBbHJlYWR5IG9uIEFSVCBhdCBmaXJzdCBhbnRlbmF0YWwgY2FyZSB2aXNpdCB8IFRoZSBwcmVnbmFudCB3b21hbiB3YXMgYWxyZWFkeSBvbiBhbnRpcmV0cm92aXJhbCB0aGVyYXB5IChBUlQpIGF0IGZpcnN0IGFudGVuYXRhbCBjYXJlIHZpc2l0CiAqIEhJVi5FLkRFNDM6IE5ld2x5IG9uIEFSVCBkdXJpbmcgcHJlZ25hbmN5IHwgVGhlIHByZWduYW50IHdvbWFuIHN0YXJ0ZWQgQVJUIGR1cmluZyBoZXIgcHJlZ25hbmN5CiAqIEhJVi5FLkRFNDQ6IE5ld2x5IG9uIEFSVCBkdXJpbmcgbGFib3VyIGFuZCBkZWxpdmVyeSB8IFRoZSB3b21hbiBzdGFydGVkIEFSVCBkdXJpbmcgbGFib3VyIGFuZCBkZWxpdmVyeQogKiBISVYuRS5ERTQ2OiBEZWxpdmVyeSBkYXRlIHwgRGF0ZSBvbiB3aGljaCB0aGUgd29tYW4gZGVsaXZlcmVkCiAqIEhJVi5FLkRFNjc6IFBsYWNlIG9mIGRlbGl2ZXJ5IHwgVGhlIHR5cGUgb2YgcGxhY2Ugd2hlcmUgdGhlIHdvbWFuIGRlbGl2ZXJlZAogKiBISVYuRS5ERTY4OiBIZWFsdGggZmFjaWxpdHkgfCBUaGUgd29tYW4gZGVsaXZlcmVkIGF0IGEgaGVhbHRoIGZhY2lsaXR5CiAqIEhJVi5FLkRFNjk6IEhvbWUgfCBUaGUgd29tYW4gZGVsaXZlcmVkIGF0IGhvbWUKICogSElWLkUuREU3MDogT3RoZXIgfCBUaGUgd29tYW4gZGVsaXZlcmVkIGF0IGFub3RoZXIgbG9jYXRpb24gdGhhdCBpcyBub3QgYXQgaG9tZSBvciBhdCBhIGhlYWx0aCBmYWNpbGl0eQogKiBISVYuRS5ERTg1OiBBTkMgY29udGFjdCBkYXRlIHwgVGhlIGRhdGUgYW5kIHRpbWUgb2YgdGhlIGNsaWVudCdzIEFOQyBjb250YWN0IChpbiB0aGUgQU5DIERBSyB0aGlzIGlzIGNhbGxlZCAnQ29udGFjdCBkYXRlJykKICogSElWLkguREU0NzogT24gQVJUIHwgQ2xpZW50IGlzIGN1cnJlbnRseSB0YWtpbmcgQVJUIAogKiBISVYuU1JWLkRFMTg6IEFOQyBjb250YWN0IGRhdGUgfCBUaGUgZGF0ZSBhbmQgdGltZSBvZiB0aGUgY2xpZW50J3MgQU5DIGNvbnRhY3QgKGluIHRoZSBBTkMgREFLIHRoaXMgaXMgY2FsbGVkICdDb250YWN0IGRhdGUnKQogKgogKiBBZGRpdGlvbmFsIENvbnRleHQKICogLSB3aGF0IGl0IG1lYXN1cmVzOiBUaGlzIGluZGljYXRvciBtZWFzdXJlcyB3aGV0aGVyIGEgcmVjb21tZW5kZWQgY291cnNlIG9mIEFSVCBoYXMgYmVlbiBwcm92aWRlZCB0byBISVYtcG9zaXRpdmUgcHJlZ25hbnQgd29tZW4uCiAqIC0gcmF0aW9uYWxlOiDigKIgUHJvdmlkaW5nIEFSVCBmb3IgSElWLXBvc2l0aXZlIHByZWduYW50IHdvbWVuIGlzIGEgY3JpdGljYWwgc3RyYXRlZ3kgZm9yIHByZXZlbnRpbmcgdmVydGljYWwgdHJhbnNtaXNzaW9uIG9mIEhJVi4gfCDigKIgSW4gYW4gZXJhIG9mICJUcmVhdCBBbGwiLCBhbGwgSElWLXBvc2l0aXZlIHByZWduYW50IHdvbWVuIHNob3VsZCBiZSBnaXZlbiBhIHJlY29tbWVuZGVkIHJlZ2ltZW4gb2YgQVJUIGFzIHNvb24gYXMgcG9zc2libGUgYWZ0ZXIgZGlhZ25vc2lzLCBpbmNsdWRpbmcgZHVyaW5nIGxhYm91ciBhbmQgZGVsaXZlcnkuCiAqIC0gbWV0aG9kOiBhKSBGb3IgdGhlIG51bWVyYXRvciBhbmQgcHJvZ3JhbW1lLWJhc2VkL3NlcnZpY2UgZGVsaXZlcnkgZGVub21pbmF0b3I6IFByb2dyYW1tZSByZWNvcmRzIChmb3IgZXhhbXBsZSwgUE1UQ1QgcmVnaXN0ZXJzLCBBUlYgcmVnaXN0ZXJzLCBsYWJvdXIgYW5kIGRlbGl2ZXJ5IHJlZ2lzdGVycykgfCAgfCBiKSBGb3IgdGhlIHBvcHVsYXRpb24tYmFzZWQgZGVub21pbmF0b3I6IE1vZGVsbGluZy1iYXNlZCBlc3RpbWF0ZXMgKGZvciBleGFtcGxlLCBTcGVjdHJ1bSBBSU0pIHwgIHwgVGhlIHJlY29tbWVuZGVkIHJlcG9ydGluZyBwZXJpb2QgaXMgMTIgbW9udGhzLgogKiAKICogU3VnZ2VzdGVkIFNjb3JpbmcgTWV0aG9kOiBwcm9wb3J0aW9uIHwgaHR0cDovL2hsNy5vcmcvZmhpci91cy9jcWZtZWFzdXJlcy9TdHJ1Y3R1cmVEZWZpbml0aW9uL3Byb3BvcnRpb24tbWVhc3VyZS1jcWZtCiAqLwoKbGlicmFyeSBISVZJTkQ0MExvZ2ljCgovLyBJbmNsdWRlZCBMaWJyYXJpZXMKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgSElWQ29tbW9uIHZlcnNpb24gJzAuMC4xJyBjYWxsZWQgSElDCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIFdIT0NvbW1vbiBjYWxsZWQgV0NvbQoKLy8gSW5kaWNhdG9yIERlZmluaXRpb24KcGFyYW1ldGVyICJNZWFzdXJlbWVudCBQZXJpb2QiIEludGVydmFsPERhdGU+IGRlZmF1bHQgSW50ZXJ2YWxbQDIwMjMtMDEtMDEsIEAyMDIzLTAxLTMwXQoKY29udGV4dCBQYXRpZW50Ci8qIFBvcHVsYXRpb25zICovCgovKgogKkluaXRpYWwgUG9wdWxhdGlvbgogKi8KCmRlZmluZSAiSW5pdGlhbCBQb3B1bGF0aW9uIjoKICB0cnVlCgovKioKICogTnVtZXJhdG9yCiAqIAogKiBEZWZpbml0aW9uOiBOdW1iZXIgb2YgSElWLXBvc2l0aXZlIHByZWduYW50IHdvbWVuIHdobyBkZWxpdmVyZWQgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kIGFuZCByZWNlaXZlZCBBUlQgZHVyaW5nIHByZWduYW5jeSBhbmQvb3IgYXQgbGFib3VyIGFuZCBkZWxpdmVyeQogKiBDYWxjdWxhdGlvbjogQ09VTlQgb2Ygd29tZW4gd2l0aCAiSElWIHN0YXR1cyI9J0hJVi1wb3NpdGl2ZScgQU5EICJEZWxpdmVyeSBkYXRlIiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBBTkQgKCgiT24gQVJUIj1UcnVlIGF0IGxhYm91ciBhbmQgZGVsaXZlcnkpIE9SICgiT24gQVJUIj1UcnVlIGR1cmluZyBwcmVnbmFuY3ksIGZvciB0aGlzIHByZWduYW5jeSkpCiAqLwoKZGVmaW5lICJOdW1lcmF0b3IiOgogIHRydWUKCgovKioKICogRGVub21pbmF0b3IKICoKICogRGVmaW5pdGlvbjogYSkgUHJvZ3JhbW1lLWJhc2VkL3NlcnZpY2UgZGVsaXZlcnkgZGVub21pbmF0b3IgfCBOdW1iZXIgb2YgSElWLXBvc2l0aXZlIHByZWduYW50IHdvbWVuIHdobyBkZWxpdmVyZWQgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kIGFuZCBhdHRlbmRlZCBBTkMgb3IgaGFkIGEgZmFjaWxpdHktYmFzZWQgZGVsaXZlcnkgfCBiKSBQb3B1bGF0aW9uLWJhc2VkIGRlbm9taW5hdG9yIHwgTnVtYmVyIG9mIEhJVi1wb3NpdGl2ZSBwcmVnbmFudCB3b21lbiB3aG8gZGVsaXZlcmVkIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKiBDYWxjdWxhdGlvbjogUHJvZ3JhbW1lLWJhc2VkL3NlcnZpY2UgZGVsaXZlcnkgZGVub21pbmF0b3I6IHwgQ09VTlQgb2Ygd29tZW4gd2l0aCAiSElWIHN0YXR1cyI9J0hJVi1wb3NpdGl2ZScgQU5EICJEZWxpdmVyeSBkYXRlIiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBBTkQgKGhhZCBhbiAiQU5DIGNvbnRhY3QgZGF0ZSIgZHVyaW5nIHJlcG9ydGluZyBwZXJpb2QgT1IgIlBsYWNlIG9mIGRlbGl2ZXJ5IiB3YXMgYSAnSGVhbHRoIGZhY2lsaXR5JykgfCAgfCBQb3B1bGF0aW9uLWJhc2VkIGRlbm9taW5hdG9yOiB8ICpOdW1iZXIgb2YgSElWLXBvc2l0aXZlIHByZWduYW50IHdvbWVuIHdobyBkZWxpdmVyZWQgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqLwoKZGVmaW5lICJEZW5vbWluYXRvciI6CiAgdHJ1ZQogICAgCgovKiBlbmQgUG9wdWxhdGlvbnMgKi8KCg=="
},
{
"contentType" : "application/elm+xml",
"data" : "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSI+CiAgIDxhbm5vdGF0aW9uIHRyYW5zbGF0b3JPcHRpb25zPSJFbmFibGVBbm5vdGF0aW9ucyxFbmFibGVMb2NhdG9ycyxEaXNhYmxlTGlzdERlbW90aW9uLERpc2FibGVMaXN0UHJvbW90aW9uIiBzaWduYXR1cmVMZXZlbD0iT3ZlcmxvYWRzIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUluZm8iLz4KICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgIDxhOnMgcj0iMTYiPgogICAgICAgICA8YTpzPi8qKgogKiBMaWJyYXJ5OiBISVYuSU5ELjQwIExvZ2ljCiAqIFJlZiBObzogVkVSLjQKICogU2hvcnQgTmFtZTogQVJUIGNvdmVyYWdlIGluIHByZWduYW50IHdvbWVuCiAqCiAqIERlZmluaXRpb246ICUgb2YgSElWLXBvc2l0aXZlIHByZWduYW50IHdvbWVuIHdobyByZWNlaXZlZCBBUlQgZHVyaW5nIHByZWduYW5jeSBhbmQvb3IgYXQgbGFib3VyIGFuZCBkZWxpdmVyeQogKgogKiBOdW1lcmF0b3I6IE51bWJlciBvZiBISVYtcG9zaXRpdmUgcHJlZ25hbnQgd29tZW4gd2hvIGRlbGl2ZXJlZCBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QgYW5kIHJlY2VpdmVkIEFSVCBkdXJpbmcgcHJlZ25hbmN5IGFuZC9vciBhdCBsYWJvdXIgYW5kIGRlbGl2ZXJ5CiAqIE51bWVyYXRvciBDYWxjdWxhdGlvbjogQ09VTlQgb2Ygd29tZW4gd2l0aCAmcXVvdDtISVYgc3RhdHVzJnF1b3Q7PSdISVYtcG9zaXRpdmUnIEFORCAmcXVvdDtEZWxpdmVyeSBkYXRlJnF1b3Q7IGluIHRoZSByZXBvcnRpbmcgcGVyaW9kIEFORCAoKCZxdW90O09uIEFSVCZxdW90Oz1UcnVlIGF0IGxhYm91ciBhbmQgZGVsaXZlcnkpIE9SICgmcXVvdDtPbiBBUlQmcXVvdDs9VHJ1ZSBkdXJpbmcgcHJlZ25hbmN5LCBmb3IgdGhpcyBwcmVnbmFuY3kpKQogKiBOdW1lcmF0b3IgRXhjbHVzaW9uczogCiAqCiAqIERlbm9taW5hdG9yOiBhKSBQcm9ncmFtbWUtYmFzZWQvc2VydmljZSBkZWxpdmVyeSBkZW5vbWluYXRvciB8IE51bWJlciBvZiBISVYtcG9zaXRpdmUgcHJlZ25hbnQgd29tZW4gd2hvIGRlbGl2ZXJlZCBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QgYW5kIGF0dGVuZGVkIEFOQyBvciBoYWQgYSBmYWNpbGl0eS1iYXNlZCBkZWxpdmVyeSB8IGIpIFBvcHVsYXRpb24tYmFzZWQgZGVub21pbmF0b3IgfCBOdW1iZXIgb2YgSElWLXBvc2l0aXZlIHByZWduYW50IHdvbWVuIHdobyBkZWxpdmVyZWQgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqIERlbm9taW5hdG9yIENhbGN1bGF0aW9uOiBQcm9ncmFtbWUtYmFzZWQvc2VydmljZSBkZWxpdmVyeSBkZW5vbWluYXRvcjogfCBDT1VOVCBvZiB3b21lbiB3aXRoICZxdW90O0hJViBzdGF0dXMmcXVvdDs9J0hJVi1wb3NpdGl2ZScgQU5EICZxdW90O0RlbGl2ZXJ5IGRhdGUmcXVvdDsgaW4gdGhlIHJlcG9ydGluZyBwZXJpb2QgQU5EIChoYWQgYW4gJnF1b3Q7QU5DIGNvbnRhY3QgZGF0ZSZxdW90OyBkdXJpbmcgcmVwb3J0aW5nIHBlcmlvZCBPUiAmcXVvdDtQbGFjZSBvZiBkZWxpdmVyeSZxdW90OyB3YXMgYSAnSGVhbHRoIGZhY2lsaXR5JykgfCAgfCBQb3B1bGF0aW9uLWJhc2VkIGRlbm9taW5hdG9yOiB8ICpOdW1iZXIgb2YgSElWLXBvc2l0aXZlIHByZWduYW50IHdvbWVuIHdobyBkZWxpdmVyZWQgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqIERlbm9taW5hdG9yIEV4Y2x1c2lvbnM6IAogKgogKiBEaXNhZ2dyZWdhdGlvbnM6CiAqIE51bWVyYXRvcjogCiAqICDigKLCoFRpbWluZyBvZiBBUlQgaW5pdGlhdGlvbiAoMS4gYWxyZWFkeSBvbiBBUlQgYXQgZmlyc3QgQU5DIHZpc2l0LCAyLiBuZXdseSBvbiBBUlQgZHVyaW5nIHByZWduYW5jeSwgMy4gbmV3bHkgb24gQVJUIGR1cmluZyBsYWJvdXIgYW5kIGRlbGl2ZXJ5LCA0LiBvbiBub24tcmVjb21tZW5kZWQgQVJUIHJlZ2ltZW4pIAogKiAgIAogKiAgVGhlIHByaW1hcnkgaW5kaWNhdG9yIGNhbGN1bGF0aW9uIHNob3VsZCBpbmNsdWRlIEFSVCBzdGF0dXMgY2F0ZWdvcmllcyAxLCAyIGFuZCAzLiBSZW1vdmluZyB0aGUgd29tZW4gaW4gY2F0ZWdvcnkgMSAmcXVvdDthbHJlYWR5IG9uIEFSVCBhdCBmaXJzdCBBTkMgdmlzaXQmcXVvdDsgZnJvbSB0aGUgbnVtZXJhdG9yIGFuZCBkZW5vbWluYXRvciBnaXZlcyBhIG1lYXN1cmUgb2YgQVJUIGNvdmVyYWdlIGFtb25nIEhJVi1wb3NpdGl2ZSBwcmVnbmFudCB3b21lbiBuZXdseSBkaWFnbm9zZWQgZHVyaW5nIEFOQy4gRGl2aWRpbmcgY2F0ZWdvcnkgMiBieSB0aGUgc3VtIG9mIGNhdGVnb3JpZXMgMiBhbmQgMyBnaXZlcyB0aGUgcHJvcG9ydGlvbiBvZiBuZXcgQVJUIGluaXRpYXRpb25zIG9jY3VycmluZyBkdXJpbmcgcHJlZ25hbmN5IHJhdGhlciB0aGFuIGF0IGRlbGl2ZXJ5LiBDYWxjdWxhdGluZyB0aGUgaW5kaWNhdG9yIHdpdGggdGhvc2UgaW4gY2F0ZWdvcnkgNCAobm9uLXJlY29tbWVuZGVkIEFSViByZWdpbWVuKSBpbmNsdWRlZCBpbiB0aGUgbnVtZXJhdG9yIGdpdmVzIGEgYnJvYWRlciBtZWFzdXJlLCB0aGF0IGlzLCBjb3ZlcmFnZSBvZiBISVYtcG9zaXRpdmUgcHJlZ25hbnQgd29tZW4gcmVjZWl2aW5nIGFueSBBUlYgZHJ1Zy4KICoKICogRGlzYWdncmVnYXRpb24gRWxlbWVudHM6IFRpbWluZyBvZiBBUlQgaW5pdGlhdGlvbgogKgogKiBOdW1lcmF0b3IgYW5kIERlbm9taW5hdG9yIEVsZW1lbnRzOgogKiBBTkMgY29udGFjdCBkYXRlIAogKiAgRGVsaXZlcnkgZGF0ZSAKICogIEhJViBzdGF0dXMgCiAqICBPbiBBUlQgCiAqICBQbGFjZSBvZiBkZWxpdmVyeQogKgogKiBSZWZlcmVuY2U6IENvbnNvbGlkYXRlZCBndWlkZWxpbmVzIG9uIHBlcnNvbi1jZW50cmVkIEhJViBzdHJhdGVnaWMgaW5mb3JtYXRpb246IHN0cmVuZ3RoZW5pbmcgcm91dGluZSBkYXRhIGZvciBpbXBhY3QuIEdlbmV2YTogV29ybGQgSGVhbHRoIE9yZ2FuaXphdGlvbjsgMjAyMgogKiAKICogRGF0YSBDb25jZXB0czoKICogSElWLkIuREUxMTU6IEhJViBzdGF0dXMgfCBISVYgc3RhdHVzIHJlcG9ydGVkIGFmdGVyIGFwcGx5aW5nIHRoZSBuYXRpb25hbCBISVYgdGVzdGluZyBhbGdvcml0aG0uIE5vIHNpbmdsZSBISVYgdGVzdCBjYW4gcHJvdmlkZSBhbiBISVYtcG9zaXRpdmUgZGlhZ25vc2lzLgogKiBISVYuQi5ERTExNjogSElWLXBvc2l0aXZlIHwgQ2xpZW50IGlzIEhJVi1wb3NpdGl2ZQogKiBISVYuQi5ERTExNzogSElWLW5lZ2F0aXZlIHwgQ2xpZW50IGlzIEhJVi1uZWdhdGl2ZQogKiBISVYuQi5ERTExODogVW5rbm93biB8IENsaWVudCBoYXMgdW5rbm93biBISVYgc3RhdHVzCiAqIEhJVi5ELkRFMzg6IE9uIEFSVCB8IENsaWVudCBpcyBjdXJyZW50bHkgdGFraW5nIEFSVAogKiBISVYuRS5ERTQxOiBUaW1pbmcgb2YgQVJUIGluaXRpYXRpb24gfCBXaGVuIHRoZSBwcmVnbmFudCB3b21hbiBvciBtb3RoZXIgaW5pdGlhdGVkIEFSVCwgZm9yIHdvbWVuIGxpdmluZyB3aXRoIEhJVi4KICogSElWLkUuREU0MjogQWxyZWFkeSBvbiBBUlQgYXQgZmlyc3QgYW50ZW5hdGFsIGNhcmUgdmlzaXQgfCBUaGUgcHJlZ25hbnQgd29tYW4gd2FzIGFscmVhZHkgb24gYW50aXJldHJvdmlyYWwgdGhlcmFweSAoQVJUKSBhdCBmaXJzdCBhbnRlbmF0YWwgY2FyZSB2aXNpdAogKiBISVYuRS5ERTQzOiBOZXdseSBvbiBBUlQgZHVyaW5nIHByZWduYW5jeSB8IFRoZSBwcmVnbmFudCB3b21hbiBzdGFydGVkIEFSVCBkdXJpbmcgaGVyIHByZWduYW5jeQogKiBISVYuRS5ERTQ0OiBOZXdseSBvbiBBUlQgZHVyaW5nIGxhYm91ciBhbmQgZGVsaXZlcnkgfCBUaGUgd29tYW4gc3RhcnRlZCBBUlQgZHVyaW5nIGxhYm91ciBhbmQgZGVsaXZlcnkKICogSElWLkUuREU0NjogRGVsaXZlcnkgZGF0ZSB8IERhdGUgb24gd2hpY2ggdGhlIHdvbWFuIGRlbGl2ZXJlZAogKiBISVYuRS5ERTY3OiBQbGFjZSBvZiBkZWxpdmVyeSB8IFRoZSB0eXBlIG9mIHBsYWNlIHdoZXJlIHRoZSB3b21hbiBkZWxpdmVyZWQKICogSElWLkUuREU2ODogSGVhbHRoIGZhY2lsaXR5IHwgVGhlIHdvbWFuIGRlbGl2ZXJlZCBhdCBhIGhlYWx0aCBmYWNpbGl0eQogKiBISVYuRS5ERTY5OiBIb21lIHwgVGhlIHdvbWFuIGRlbGl2ZXJlZCBhdCBob21lCiAqIEhJVi5FLkRFNzA6IE90aGVyIHwgVGhlIHdvbWFuIGRlbGl2ZXJlZCBhdCBhbm90aGVyIGxvY2F0aW9uIHRoYXQgaXMgbm90IGF0IGhvbWUgb3IgYXQgYSBoZWFsdGggZmFjaWxpdHkKICogSElWLkUuREU4NTogQU5DIGNvbnRhY3QgZGF0ZSB8IFRoZSBkYXRlIGFuZCB0aW1lIG9mIHRoZSBjbGllbnQncyBBTkMgY29udGFjdCAoaW4gdGhlIEFOQyBEQUsgdGhpcyBpcyBjYWxsZWQgJ0NvbnRhY3QgZGF0ZScpCiAqIEhJVi5ILkRFNDc6IE9uIEFSVCB8IENsaWVudCBpcyBjdXJyZW50bHkgdGFraW5nIEFSVCAKICogSElWLlNSVi5ERTE4OiBBTkMgY29udGFjdCBkYXRlIHwgVGhlIGRhdGUgYW5kIHRpbWUgb2YgdGhlIGNsaWVudCdzIEFOQyBjb250YWN0IChpbiB0aGUgQU5DIERBSyB0aGlzIGlzIGNhbGxlZCAnQ29udGFjdCBkYXRlJykKICoKICogQWRkaXRpb25hbCBDb250ZXh0CiAqIC0gd2hhdCBpdCBtZWFzdXJlczogVGhpcyBpbmRpY2F0b3IgbWVhc3VyZXMgd2hldGhlciBhIHJlY29tbWVuZGVkIGNvdXJzZSBvZiBBUlQgaGFzIGJlZW4gcHJvdmlkZWQgdG8gSElWLXBvc2l0aXZlIHByZWduYW50IHdvbWVuLgogKiAtIHJhdGlvbmFsZTog4oCiIFByb3ZpZGluZyBBUlQgZm9yIEhJVi1wb3NpdGl2ZSBwcmVnbmFudCB3b21lbiBpcyBhIGNyaXRpY2FsIHN0cmF0ZWd5IGZvciBwcmV2ZW50aW5nIHZlcnRpY2FsIHRyYW5zbWlzc2lvbiBvZiBISVYuIHwg4oCiIEluIGFuIGVyYSBvZiAmcXVvdDtUcmVhdCBBbGwmcXVvdDssIGFsbCBISVYtcG9zaXRpdmUgcHJlZ25hbnQgd29tZW4gc2hvdWxkIGJlIGdpdmVuIGEgcmVjb21tZW5kZWQgcmVnaW1lbiBvZiBBUlQgYXMgc29vbiBhcyBwb3NzaWJsZSBhZnRlciBkaWFnbm9zaXMsIGluY2x1ZGluZyBkdXJpbmcgbGFib3VyIGFuZCBkZWxpdmVyeS4KICogLSBtZXRob2Q6IGEpIEZvciB0aGUgbnVtZXJhdG9yIGFuZCBwcm9ncmFtbWUtYmFzZWQvc2VydmljZSBkZWxpdmVyeSBkZW5vbWluYXRvcjogUHJvZ3JhbW1lIHJlY29yZHMgKGZvciBleGFtcGxlLCBQTVRDVCByZWdpc3RlcnMsIEFSViByZWdpc3RlcnMsIGxhYm91ciBhbmQgZGVsaXZlcnkgcmVnaXN0ZXJzKSB8ICB8IGIpIEZvciB0aGUgcG9wdWxhdGlvbi1iYXNlZCBkZW5vbWluYXRvcjogTW9kZWxsaW5nLWJhc2VkIGVzdGltYXRlcyAoZm9yIGV4YW1wbGUsIFNwZWN0cnVtIEFJTSkgfCAgfCBUaGUgcmVjb21tZW5kZWQgcmVwb3J0aW5nIHBlcmlvZCBpcyAxMiBtb250aHMuCiAqIAogKiBTdWdnZXN0ZWQgU2NvcmluZyBNZXRob2Q6IHByb3BvcnRpb24gfCBodHRwOi8vaGw3Lm9yZy9maGlyL3VzL2NxZm1lYXN1cmVzL1N0cnVjdHVyZURlZmluaXRpb24vcHJvcG9ydGlvbi1tZWFzdXJlLWNxZm0KICovCgpsaWJyYXJ5IEhJVklORDQwTG9naWM8L2E6cz4KICAgICAgPC9hOnM+CiAgIDwvYW5ub3RhdGlvbj4KICAgPGlkZW50aWZpZXIgaWQ9IkhJVklORDQwTG9naWMiIHN5c3RlbT0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2Ii8+CiAgIDxzY2hlbWFJZGVudGlmaWVyIGlkPSJ1cm46aGw3LW9yZzplbG0iIHZlcnNpb249InIxIi8+CiAgIDx1c2luZ3M+CiAgICAgIDxkZWYgbG9jYWxJZGVudGlmaWVyPSJTeXN0ZW0iIHVyaT0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIi8+CiAgICAgIDxkZWYgbG9jYWxJZD0iMSIgbG9jYXRvcj0iNjM6MS02MzoyNiIgbG9jYWxJZGVudGlmaWVyPSJGSElSIiB1cmk9Imh0dHA6Ly9obDcub3JnL2ZoaXIiIHZlcnNpb249IjQuMC4xIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMSI+CiAgICAgICAgICAgICAgIDxhOnM+Ly8gSW5jbHVkZWQgTGlicmFyaWVzCnVzaW5nIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkZISVI8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IHZlcnNpb24gJzQuMC4xJzwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgPC91c2luZ3M+CiAgIDxpbmNsdWRlcz4KICAgICAgPGRlZiBsb2NhbElkPSIyIiBsb2NhdG9yPSI2NToxLTY1OjQ0IiBsb2NhbElkZW50aWZpZXI9IkhJQyIgcGF0aD0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2L0hJVkNvbW1vbiIgdmVyc2lvbj0iMC4wLjEiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIyIj4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkhJVkNvbW1vbjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gdmVyc2lvbiAnMC4wLjEnIGNhbGxlZCBISUM8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMyIgbG9jYXRvcj0iNjY6MS02NjozNSIgbG9jYWxJZGVudGlmaWVyPSJGSElSSGVscGVycyIgcGF0aD0iaHR0cDovL2hsNy5vcmcvZmhpci9GSElSSGVscGVycyIgdmVyc2lvbj0iNC4wLjEiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIzIj4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkZISVJIZWxwZXJzPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiB2ZXJzaW9uICc0LjAuMSc8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iNCIgbG9jYXRvcj0iNjg6MS02ODoyOSIgbG9jYWxJZGVudGlmaWVyPSJXQ29tIiBwYXRoPSJodHRwOi8vc21hcnQud2hvLmludC9oaXYvV0hPQ29tbW9uIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iNCI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5XSE9Db21tb248L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IGNhbGxlZCBXQ29tPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICA8L2luY2x1ZGVzPgogICA8cGFyYW1ldGVycz4KICAgICAgPGRlZiBsb2NhbElkPSIxMCIgbG9jYXRvcj0iNzE6MS03MTo4OCIgbmFtZT0iTWVhc3VyZW1lbnQgUGVyaW9kIiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMTAiPgogICAgICAgICAgICAgICA8YTpzPi8vIEluZGljYXRvciBEZWZpbml0aW9uCnBhcmFtZXRlciAmcXVvdDtNZWFzdXJlbWVudCBQZXJpb2QmcXVvdDsgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iOSI+CiAgICAgICAgICAgICAgICAgIDxhOnM+SW50ZXJ2YWwmbHQ7PC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iOCI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+RGF0ZTwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4+PC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiBkZWZhdWx0IDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjciPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjUiPkludGVydmFsW0AyMDIzLTAxLTAxLCBAMjAyMy0wMS0zMF08L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxkZWZhdWx0IGxvY2FsSWQ9IjciIGxvY2F0b3I9IjcxOjU1LTcxOjg4IiBsb3dDbG9zZWQ9InRydWUiIGhpZ2hDbG9zZWQ9InRydWUiIHhzaTp0eXBlPSJJbnRlcnZhbCI+CiAgICAgICAgICAgIDxsb3cgbG9jYWxJZD0iNSIgbG9jYXRvcj0iNzE6NjQtNzE6NzQiIHhzaTp0eXBlPSJEYXRlIj4KICAgICAgICAgICAgICAgPHllYXIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIyMDIzIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8bW9udGggdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIxIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8ZGF5IHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgPC9sb3c+CiAgICAgICAgICAgIDxoaWdoIGxvY2FsSWQ9IjYiIGxvY2F0b3I9IjcxOjc3LTcxOjg3IiB4c2k6dHlwZT0iRGF0ZSI+CiAgICAgICAgICAgICAgIDx5ZWFyIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMjAyMyIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPG1vbnRoIHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgPGRheSB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjMwIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICA8L2hpZ2g+CiAgICAgICAgIDwvZGVmYXVsdD4KICAgICAgICAgPHBhcmFtZXRlclR5cGVTcGVjaWZpZXIgbG9jYWxJZD0iOSIgbG9jYXRvcj0iNzE6MzItNzE6NDUiIHhzaTp0eXBlPSJJbnRlcnZhbFR5cGVTcGVjaWZpZXIiPgogICAgICAgICAgICA8cG9pbnRUeXBlIGxvY2FsSWQ9IjgiIGxvY2F0b3I9IjcxOjQxLTcxOjQ0IiBuYW1lPSJ0OkRhdGUiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgPC9wYXJhbWV0ZXJUeXBlU3BlY2lmaWVyPgogICAgICA8L2RlZj4KICAgPC9wYXJhbWV0ZXJzPgogICA8Y29udGV4dHM+CiAgICAgIDxkZWYgbG9jYXRvcj0iNzM6MS03MzoxNSIgbmFtZT0iUGF0aWVudCIvPgogICA8L2NvbnRleHRzPgogICA8c3RhdGVtZW50cz4KICAgICAgPGRlZiBsb2NhdG9yPSI3MzoxLTczOjE1IiBuYW1lPSJQYXRpZW50IiBjb250ZXh0PSJQYXRpZW50Ij4KICAgICAgICAgPGV4cHJlc3Npb24geHNpOnR5cGU9IlNpbmdsZXRvbkZyb20iPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhdG9yPSI3MzoxLTczOjE1IiBkYXRhVHlwZT0iZmhpcjpQYXRpZW50IiB0ZW1wbGF0ZUlkPSJodHRwOi8vaGw3Lm9yZy9maGlyL1N0cnVjdHVyZURlZmluaXRpb24vUGF0aWVudCIgeHNpOnR5cGU9IlJldHJpZXZlIi8+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMTIiIGxvY2F0b3I9IjgwOjEtODE6NiIgbmFtZT0iSW5pdGlhbCBQb3B1bGF0aW9uIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMTIiPgogICAgICAgICAgICAgICA8YTpzIHI9IjExIj4vKiBQb3B1bGF0aW9ucyAqLwoKLyoKICpJbml0aWFsIFBvcHVsYXRpb24KICovCgpkZWZpbmUgJnF1b3Q7SW5pdGlhbCBQb3B1bGF0aW9uJnF1b3Q7OgogIHRydWU8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMTEiIGxvY2F0b3I9IjgxOjMtODE6NiIgdmFsdWVUeXBlPSJ0OkJvb2xlYW4iIHZhbHVlPSJ0cnVlIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIxNCIgbG9jYXRvcj0iOTA6MS05MTo2IiBuYW1lPSJOdW1lcmF0b3IiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIxNCI+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMTMiPi8qKgogKiBOdW1lcmF0b3IKICogCiAqIERlZmluaXRpb246IE51bWJlciBvZiBISVYtcG9zaXRpdmUgcHJlZ25hbnQgd29tZW4gd2hvIGRlbGl2ZXJlZCBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QgYW5kIHJlY2VpdmVkIEFSVCBkdXJpbmcgcHJlZ25hbmN5IGFuZC9vciBhdCBsYWJvdXIgYW5kIGRlbGl2ZXJ5CiAqIENhbGN1bGF0aW9uOiBDT1VOVCBvZiB3b21lbiB3aXRoICZxdW90O0hJViBzdGF0dXMmcXVvdDs9J0hJVi1wb3NpdGl2ZScgQU5EICZxdW90O0RlbGl2ZXJ5IGRhdGUmcXVvdDsgaW4gdGhlIHJlcG9ydGluZyBwZXJpb2QgQU5EICgoJnF1b3Q7T24gQVJUJnF1b3Q7PVRydWUgYXQgbGFib3VyIGFuZCBkZWxpdmVyeSkgT1IgKCZxdW90O09uIEFSVCZxdW90Oz1UcnVlIGR1cmluZyBwcmVnbmFuY3ksIGZvciB0aGlzIHByZWduYW5jeSkpCiAqLwoKZGVmaW5lICZxdW90O051bWVyYXRvciZxdW90OzoKICB0cnVlPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjEzIiBsb2NhdG9yPSI5MTozLTkxOjYiIHZhbHVlVHlwZT0idDpCb29sZWFuIiB2YWx1ZT0idHJ1ZSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMTYiIGxvY2F0b3I9IjEwMToxLTEwMjo2IiBuYW1lPSJEZW5vbWluYXRvciIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjE2Ij4KICAgICAgICAgICAgICAgPGE6cyByPSIxNSI+LyoqCiAqIERlbm9taW5hdG9yCiAqCiAqIERlZmluaXRpb246IGEpIFByb2dyYW1tZS1iYXNlZC9zZXJ2aWNlIGRlbGl2ZXJ5IGRlbm9taW5hdG9yIHwgTnVtYmVyIG9mIEhJVi1wb3NpdGl2ZSBwcmVnbmFudCB3b21lbiB3aG8gZGVsaXZlcmVkIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZCBhbmQgYXR0ZW5kZWQgQU5DIG9yIGhhZCBhIGZhY2lsaXR5LWJhc2VkIGRlbGl2ZXJ5IHwgYikgUG9wdWxhdGlvbi1iYXNlZCBkZW5vbWluYXRvciB8IE51bWJlciBvZiBISVYtcG9zaXRpdmUgcHJlZ25hbnQgd29tZW4gd2hvIGRlbGl2ZXJlZCBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QKICogQ2FsY3VsYXRpb246IFByb2dyYW1tZS1iYXNlZC9zZXJ2aWNlIGRlbGl2ZXJ5IGRlbm9taW5hdG9yOiB8IENPVU5UIG9mIHdvbWVuIHdpdGggJnF1b3Q7SElWIHN0YXR1cyZxdW90Oz0nSElWLXBvc2l0aXZlJyBBTkQgJnF1b3Q7RGVsaXZlcnkgZGF0ZSZxdW90OyBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBBTkQgKGhhZCBhbiAmcXVvdDtBTkMgY29udGFjdCBkYXRlJnF1b3Q7IGR1cmluZyByZXBvcnRpbmcgcGVyaW9kIE9SICZxdW90O1BsYWNlIG9mIGRlbGl2ZXJ5JnF1b3Q7IHdhcyBhICdIZWFsdGggZmFjaWxpdHknKSB8ICB8IFBvcHVsYXRpb24tYmFzZWQgZGVub21pbmF0b3I6IHwgKk51bWJlciBvZiBISVYtcG9zaXRpdmUgcHJlZ25hbnQgd29tZW4gd2hvIGRlbGl2ZXJlZCBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QKICovCgpkZWZpbmUgJnF1b3Q7RGVub21pbmF0b3ImcXVvdDs6CiAgdHJ1ZTwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIxNSIgbG9jYXRvcj0iMTAyOjMtMTAyOjYiIHZhbHVlVHlwZT0idDpCb29sZWFuIiB2YWx1ZT0idHJ1ZSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgPC9kZWY+CiAgIDwvc3RhdGVtZW50cz4KPC9saWJyYXJ5Pgo="
},
{
"contentType" : "application/elm+json",
"data" : "ewogICAibGlicmFyeSIgOiB7CiAgICAgICJhbm5vdGF0aW9uIiA6IFsgewogICAgICAgICAidHJhbnNsYXRvck9wdGlvbnMiIDogIkVuYWJsZUFubm90YXRpb25zLEVuYWJsZUxvY2F0b3JzLERpc2FibGVMaXN0RGVtb3Rpb24sRGlzYWJsZUxpc3RQcm9tb3Rpb24iLAogICAgICAgICAic2lnbmF0dXJlTGV2ZWwiIDogIk92ZXJsb2FkcyIsCiAgICAgICAgICJ0eXBlIiA6ICJDcWxUb0VsbUluZm8iCiAgICAgIH0sIHsKICAgICAgICAgInR5cGUiIDogIkFubm90YXRpb24iLAogICAgICAgICAicyIgOiB7CiAgICAgICAgICAgICJyIiA6ICIxNiIsCiAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAidmFsdWUiIDogWyAiLyoqXG4gKiBMaWJyYXJ5OiBISVYuSU5ELjQwIExvZ2ljXG4gKiBSZWYgTm86IFZFUi40XG4gKiBTaG9ydCBOYW1lOiBBUlQgY292ZXJhZ2UgaW4gcHJlZ25hbnQgd29tZW5cbiAqXG4gKiBEZWZpbml0aW9uOiAlIG9mIEhJVi1wb3NpdGl2ZSBwcmVnbmFudCB3b21lbiB3aG8gcmVjZWl2ZWQgQVJUIGR1cmluZyBwcmVnbmFuY3kgYW5kL29yIGF0IGxhYm91ciBhbmQgZGVsaXZlcnlcbiAqXG4gKiBOdW1lcmF0b3I6IE51bWJlciBvZiBISVYtcG9zaXRpdmUgcHJlZ25hbnQgd29tZW4gd2hvIGRlbGl2ZXJlZCBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QgYW5kIHJlY2VpdmVkIEFSVCBkdXJpbmcgcHJlZ25hbmN5IGFuZC9vciBhdCBsYWJvdXIgYW5kIGRlbGl2ZXJ5XG4gKiBOdW1lcmF0b3IgQ2FsY3VsYXRpb246IENPVU5UIG9mIHdvbWVuIHdpdGggXCJISVYgc3RhdHVzXCI9J0hJVi1wb3NpdGl2ZScgQU5EIFwiRGVsaXZlcnkgZGF0ZVwiIGluIHRoZSByZXBvcnRpbmcgcGVyaW9kIEFORCAoKFwiT24gQVJUXCI9VHJ1ZSBhdCBsYWJvdXIgYW5kIGRlbGl2ZXJ5KSBPUiAoXCJPbiBBUlRcIj1UcnVlIGR1cmluZyBwcmVnbmFuY3ksIGZvciB0aGlzIHByZWduYW5jeSkpXG4gKiBOdW1lcmF0b3IgRXhjbHVzaW9uczogXG4gKlxuICogRGVub21pbmF0b3I6IGEpIFByb2dyYW1tZS1iYXNlZC9zZXJ2aWNlIGRlbGl2ZXJ5IGRlbm9taW5hdG9yIHwgTnVtYmVyIG9mIEhJVi1wb3NpdGl2ZSBwcmVnbmFudCB3b21lbiB3aG8gZGVsaXZlcmVkIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZCBhbmQgYXR0ZW5kZWQgQU5DIG9yIGhhZCBhIGZhY2lsaXR5LWJhc2VkIGRlbGl2ZXJ5IHwgYikgUG9wdWxhdGlvbi1iYXNlZCBkZW5vbWluYXRvciB8IE51bWJlciBvZiBISVYtcG9zaXRpdmUgcHJlZ25hbnQgd29tZW4gd2hvIGRlbGl2ZXJlZCBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2RcbiAqIERlbm9taW5hdG9yIENhbGN1bGF0aW9uOiBQcm9ncmFtbWUtYmFzZWQvc2VydmljZSBkZWxpdmVyeSBkZW5vbWluYXRvcjogfCBDT1VOVCBvZiB3b21lbiB3aXRoIFwiSElWIHN0YXR1c1wiPSdISVYtcG9zaXRpdmUnIEFORCBcIkRlbGl2ZXJ5IGRhdGVcIiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBBTkQgKGhhZCBhbiBcIkFOQyBjb250YWN0IGRhdGVcIiBkdXJpbmcgcmVwb3J0aW5nIHBlcmlvZCBPUiBcIlBsYWNlIG9mIGRlbGl2ZXJ5XCIgd2FzIGEgJ0hlYWx0aCBmYWNpbGl0eScpIHwgIHwgUG9wdWxhdGlvbi1iYXNlZCBkZW5vbWluYXRvcjogfCAqTnVtYmVyIG9mIEhJVi1wb3NpdGl2ZSBwcmVnbmFudCB3b21lbiB3aG8gZGVsaXZlcmVkIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZFxuICogRGVub21pbmF0b3IgRXhjbHVzaW9uczogXG4gKlxuICogRGlzYWdncmVnYXRpb25zOlxuICogTnVtZXJhdG9yOiBcbiAqICDigKLCoFRpbWluZyBvZiBBUlQgaW5pdGlhdGlvbiAoMS4gYWxyZWFkeSBvbiBBUlQgYXQgZmlyc3QgQU5DIHZpc2l0LCAyLiBuZXdseSBvbiBBUlQgZHVyaW5nIHByZWduYW5jeSwgMy4gbmV3bHkgb24gQVJUIGR1cmluZyBsYWJvdXIgYW5kIGRlbGl2ZXJ5LCA0LiBvbiBub24tcmVjb21tZW5kZWQgQVJUIHJlZ2ltZW4pIFxuICogICBcbiAqICBUaGUgcHJpbWFyeSBpbmRpY2F0b3IgY2FsY3VsYXRpb24gc2hvdWxkIGluY2x1ZGUgQVJUIHN0YXR1cyBjYXRlZ29yaWVzIDEsIDIgYW5kIDMuIFJlbW92aW5nIHRoZSB3b21lbiBpbiBjYXRlZ29yeSAxIFwiYWxyZWFkeSBvbiBBUlQgYXQgZmlyc3QgQU5DIHZpc2l0XCIgZnJvbSB0aGUgbnVtZXJhdG9yIGFuZCBkZW5vbWluYXRvciBnaXZlcyBhIG1lYXN1cmUgb2YgQVJUIGNvdmVyYWdlIGFtb25nIEhJVi1wb3NpdGl2ZSBwcmVnbmFudCB3b21lbiBuZXdseSBkaWFnbm9zZWQgZHVyaW5nIEFOQy4gRGl2aWRpbmcgY2F0ZWdvcnkgMiBieSB0aGUgc3VtIG9mIGNhdGVnb3JpZXMgMiBhbmQgMyBnaXZlcyB0aGUgcHJvcG9ydGlvbiBvZiBuZXcgQVJUIGluaXRpYXRpb25zIG9jY3VycmluZyBkdXJpbmcgcHJlZ25hbmN5IHJhdGhlciB0aGFuIGF0IGRlbGl2ZXJ5LiBDYWxjdWxhdGluZyB0aGUgaW5kaWNhdG9yIHdpdGggdGhvc2UgaW4gY2F0ZWdvcnkgNCAobm9uLXJlY29tbWVuZGVkIEFSViByZWdpbWVuKSBpbmNsdWRlZCBpbiB0aGUgbnVtZXJhdG9yIGdpdmVzIGEgYnJvYWRlciBtZWFzdXJlLCB0aGF0IGlzLCBjb3ZlcmFnZSBvZiBISVYtcG9zaXRpdmUgcHJlZ25hbnQgd29tZW4gcmVjZWl2aW5nIGFueSBBUlYgZHJ1Zy5cbiAqXG4gKiBEaXNhZ2dyZWdhdGlvbiBFbGVtZW50czogVGltaW5nIG9mIEFSVCBpbml0aWF0aW9uXG4gKlxuICogTnVtZXJhdG9yIGFuZCBEZW5vbWluYXRvciBFbGVtZW50czpcbiAqIEFOQyBjb250YWN0IGRhdGUgXG4gKiAgRGVsaXZlcnkgZGF0ZSBcbiAqICBISVYgc3RhdHVzIFxuICogIE9uIEFSVCBcbiAqICBQbGFjZSBvZiBkZWxpdmVyeVxuICpcbiAqIFJlZmVyZW5jZTogQ29uc29saWRhdGVkIGd1aWRlbGluZXMgb24gcGVyc29uLWNlbnRyZWQgSElWIHN0cmF0ZWdpYyBpbmZvcm1hdGlvbjogc3RyZW5ndGhlbmluZyByb3V0aW5lIGRhdGEgZm9yIGltcGFjdC4gR2VuZXZhOiBXb3JsZCBIZWFsdGggT3JnYW5pemF0aW9uOyAyMDIyXG4gKiBcbiAqIERhdGEgQ29uY2VwdHM6XG4gKiBISVYuQi5ERTExNTogSElWIHN0YXR1cyB8IEhJViBzdGF0dXMgcmVwb3J0ZWQgYWZ0ZXIgYXBwbHlpbmcgdGhlIG5hdGlvbmFsIEhJViB0ZXN0aW5nIGFsZ29yaXRobS4gTm8gc2luZ2xlIEhJViB0ZXN0IGNhbiBwcm92aWRlIGFuIEhJVi1wb3NpdGl2ZSBkaWFnbm9zaXMuXG4gKiBISVYuQi5ERTExNjogSElWLXBvc2l0aXZlIHwgQ2xpZW50IGlzIEhJVi1wb3NpdGl2ZVxuICogSElWLkIuREUxMTc6IEhJVi1uZWdhdGl2ZSB8IENsaWVudCBpcyBISVYtbmVnYXRpdmVcbiAqIEhJVi5CLkRFMTE4OiBVbmtub3duIHwgQ2xpZW50IGhhcyB1bmtub3duIEhJViBzdGF0dXNcbiAqIEhJVi5ELkRFMzg6IE9uIEFSVCB8IENsaWVudCBpcyBjdXJyZW50bHkgdGFraW5nIEFSVFxuICogSElWLkUuREU0MTogVGltaW5nIG9mIEFSVCBpbml0aWF0aW9uIHwgV2hlbiB0aGUgcHJlZ25hbnQgd29tYW4gb3IgbW90aGVyIGluaXRpYXRlZCBBUlQsIGZvciB3b21lbiBsaXZpbmcgd2l0aCBISVYuXG4gKiBISVYuRS5ERTQyOiBBbHJlYWR5IG9uIEFSVCBhdCBmaXJzdCBhbnRlbmF0YWwgY2FyZSB2aXNpdCB8IFRoZSBwcmVnbmFudCB3b21hbiB3YXMgYWxyZWFkeSBvbiBhbnRpcmV0cm92aXJhbCB0aGVyYXB5IChBUlQpIGF0IGZpcnN0IGFudGVuYXRhbCBjYXJlIHZpc2l0XG4gKiBISVYuRS5ERTQzOiBOZXdseSBvbiBBUlQgZHVyaW5nIHByZWduYW5jeSB8IFRoZSBwcmVnbmFudCB3b21hbiBzdGFydGVkIEFSVCBkdXJpbmcgaGVyIHByZWduYW5jeVxuICogSElWLkUuREU0NDogTmV3bHkgb24gQVJUIGR1cmluZyBsYWJvdXIgYW5kIGRlbGl2ZXJ5IHwgVGhlIHdvbWFuIHN0YXJ0ZWQgQVJUIGR1cmluZyBsYWJvdXIgYW5kIGRlbGl2ZXJ5XG4gKiBISVYuRS5ERTQ2OiBEZWxpdmVyeSBkYXRlIHwgRGF0ZSBvbiB3aGljaCB0aGUgd29tYW4gZGVsaXZlcmVkXG4gKiBISVYuRS5ERTY3OiBQbGFjZSBvZiBkZWxpdmVyeSB8IFRoZSB0eXBlIG9mIHBsYWNlIHdoZXJlIHRoZSB3b21hbiBkZWxpdmVyZWRcbiAqIEhJVi5FLkRFNjg6IEhlYWx0aCBmYWNpbGl0eSB8IFRoZSB3b21hbiBkZWxpdmVyZWQgYXQgYSBoZWFsdGggZmFjaWxpdHlcbiAqIEhJVi5FLkRFNjk6IEhvbWUgfCBUaGUgd29tYW4gZGVsaXZlcmVkIGF0IGhvbWVcbiAqIEhJVi5FLkRFNzA6IE90aGVyIHwgVGhlIHdvbWFuIGRlbGl2ZXJlZCBhdCBhbm90aGVyIGxvY2F0aW9uIHRoYXQgaXMgbm90IGF0IGhvbWUgb3IgYXQgYSBoZWFsdGggZmFjaWxpdHlcbiAqIEhJVi5FLkRFODU6IEFOQyBjb250YWN0IGRhdGUgfCBUaGUgZGF0ZSBhbmQgdGltZSBvZiB0aGUgY2xpZW50J3MgQU5DIGNvbnRhY3QgKGluIHRoZSBBTkMgREFLIHRoaXMgaXMgY2FsbGVkICdDb250YWN0IGRhdGUnKVxuICogSElWLkguREU0NzogT24gQVJUIHwgQ2xpZW50IGlzIGN1cnJlbnRseSB0YWtpbmcgQVJUIFxuICogSElWLlNSVi5ERTE4OiBBTkMgY29udGFjdCBkYXRlIHwgVGhlIGRhdGUgYW5kIHRpbWUgb2YgdGhlIGNsaWVudCdzIEFOQyBjb250YWN0IChpbiB0aGUgQU5DIERBSyB0aGlzIGlzIGNhbGxlZCAnQ29udGFjdCBkYXRlJylcbiAqXG4gKiBBZGRpdGlvbmFsIENvbnRleHRcbiAqIC0gd2hhdCBpdCBtZWFzdXJlczogVGhpcyBpbmRpY2F0b3IgbWVhc3VyZXMgd2hldGhlciBhIHJlY29tbWVuZGVkIGNvdXJzZSBvZiBBUlQgaGFzIGJlZW4gcHJvdmlkZWQgdG8gSElWLXBvc2l0aXZlIHByZWduYW50IHdvbWVuLlxuICogLSByYXRpb25hbGU6IOKAoiBQcm92aWRpbmcgQVJUIGZvciBISVYtcG9zaXRpdmUgcHJlZ25hbnQgd29tZW4gaXMgYSBjcml0aWNhbCBzdHJhdGVneSBmb3IgcHJldmVudGluZyB2ZXJ0aWNhbCB0cmFuc21pc3Npb24gb2YgSElWLiB8IOKAoiBJbiBhbiBlcmEgb2YgXCJUcmVhdCBBbGxcIiwgYWxsIEhJVi1wb3NpdGl2ZSBwcmVnbmFudCB3b21lbiBzaG91bGQgYmUgZ2l2ZW4gYSByZWNvbW1lbmRlZCByZWdpbWVuIG9mIEFSVCBhcyBzb29uIGFzIHBvc3NpYmxlIGFmdGVyIGRpYWdub3NpcywgaW5jbHVkaW5nIGR1cmluZyBsYWJvdXIgYW5kIGRlbGl2ZXJ5LlxuICogLSBtZXRob2Q6IGEpIEZvciB0aGUgbnVtZXJhdG9yIGFuZCBwcm9ncmFtbWUtYmFzZWQvc2VydmljZSBkZWxpdmVyeSBkZW5vbWluYXRvcjogUHJvZ3JhbW1lIHJlY29yZHMgKGZvciBleGFtcGxlLCBQTVRDVCByZWdpc3RlcnMsIEFSViByZWdpc3RlcnMsIGxhYm91ciBhbmQgZGVsaXZlcnkgcmVnaXN0ZXJzKSB8ICB8IGIpIEZvciB0aGUgcG9wdWxhdGlvbi1iYXNlZCBkZW5vbWluYXRvcjogTW9kZWxsaW5nLWJhc2VkIGVzdGltYXRlcyAoZm9yIGV4YW1wbGUsIFNwZWN0cnVtIEFJTSkgfCAgfCBUaGUgcmVjb21tZW5kZWQgcmVwb3J0aW5nIHBlcmlvZCBpcyAxMiBtb250aHMuXG4gKiBcbiAqIFN1Z2dlc3RlZCBTY29yaW5nIE1ldGhvZDogcHJvcG9ydGlvbiB8IGh0dHA6Ly9obDcub3JnL2ZoaXIvdXMvY3FmbWVhc3VyZXMvU3RydWN0dXJlRGVmaW5pdGlvbi9wcm9wb3J0aW9uLW1lYXN1cmUtY3FmbVxuICovXG5cbiIsImxpYnJhcnkgSElWSU5ENDBMb2dpYyIgXQogICAgICAgICAgICB9IF0KICAgICAgICAgfQogICAgICB9IF0sCiAgICAgICJpZGVudGlmaWVyIiA6IHsKICAgICAgICAgImlkIiA6ICJISVZJTkQ0MExvZ2ljIiwKICAgICAgICAgInN5c3RlbSIgOiAiaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2IgogICAgICB9LAogICAgICAic2NoZW1hSWRlbnRpZmllciIgOiB7CiAgICAgICAgICJpZCIgOiAidXJuOmhsNy1vcmc6ZWxtIiwKICAgICAgICAgInZlcnNpb24iIDogInIxIgogICAgICB9LAogICAgICAidXNpbmdzIiA6IHsKICAgICAgICAgImRlZiIgOiBbIHsKICAgICAgICAgICAgImxvY2FsSWRlbnRpZmllciIgOiAiU3lzdGVtIiwKICAgICAgICAgICAgInVyaSIgOiAidXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIgogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhbElkIiA6ICIxIiwKICAgICAgICAgICAgImxvY2F0b3IiIDogIjYzOjEtNjM6MjYiLAogICAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIiA6ICJGSElSIiwKICAgICAgICAgICAgInVyaSIgOiAiaHR0cDovL2hsNy5vcmcvZmhpciIsCiAgICAgICAgICAgICJ2ZXJzaW9uIiA6ICI0LjAuMSIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgewogICAgICAgICAgICAgICAidHlwZSIgOiAiQW5ub3RhdGlvbiIsCiAgICAgICAgICAgICAgICJzIiA6IHsKICAgICAgICAgICAgICAgICAgInIiIDogIjEiLAogICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIi8vIEluY2x1ZGVkIExpYnJhcmllc1xuIiwidXNpbmcgIiBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJGSElSIiBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIgdmVyc2lvbiAnNC4wLjEnIiBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gXQogICAgICAgICB9IF0KICAgICAgfSwKICAgICAgImluY2x1ZGVzIiA6IHsKICAgICAgICAgImRlZiIgOiBbIHsKICAgICAgICAgICAgImxvY2FsSWQiIDogIjIiLAogICAgICAgICAgICAibG9jYXRvciIgOiAiNjU6MS02NTo0NCIsCiAgICAgICAgICAgICJsb2NhbElkZW50aWZpZXIiIDogIkhJQyIsCiAgICAgICAgICAgICJwYXRoIiA6ICJodHRwOi8vc21hcnQud2hvLmludC9oaXYvSElWQ29tbW9uIiwKICAgICAgICAgICAgInZlcnNpb24iIDogIjAuMC4xIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyB7CiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbm5vdGF0aW9uIiwKICAgICAgICAgICAgICAgInMiIDogewogICAgICAgICAgICAgICAgICAiciIgOiAiMiIsCiAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiIiwiaW5jbHVkZSAiIF0KICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIkhJVkNvbW1vbiIgXQogICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiIHZlcnNpb24gIiwiJzAuMC4xJyIsIiBjYWxsZWQgIiwiSElDIiBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gXQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhbElkIiA6ICIzIiwKICAgICAgICAgICAgImxvY2F0b3IiIDogIjY2OjEtNjY6MzUiLAogICAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIiA6ICJGSElSSGVscGVycyIsCiAgICAgICAgICAgICJwYXRoIiA6ICJodHRwOi8vaGw3Lm9yZy9maGlyL0ZISVJIZWxwZXJzIiwKICAgICAgICAgICAgInZlcnNpb24iIDogIjQuMC4xIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyB7CiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbm5vdGF0aW9uIiwKICAgICAgICAgICAgICAgInMiIDogewogICAgICAgICAgICAgICAgICAiciIgOiAiMyIsCiAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiIiwiaW5jbHVkZSAiIF0KICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIkZISVJIZWxwZXJzIiBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIgdmVyc2lvbiAiLCInNC4wLjEnIiBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gXQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhbElkIiA6ICI0IiwKICAgICAgICAgICAgImxvY2F0b3IiIDogIjY4OjEtNjg6MjkiLAogICAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIiA6ICJXQ29tIiwKICAgICAgICAgICAgInBhdGgiIDogImh0dHA6Ly9zbWFydC53aG8uaW50L2hpdi9XSE9Db21tb24iLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIHsKICAgICAgICAgICAgICAgInR5cGUiIDogIkFubm90YXRpb24iLAogICAgICAgICAgICAgICAicyIgOiB7CiAgICAgICAgICAgICAgICAgICJyIiA6ICI0IiwKICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIiLCJpbmNsdWRlICIgXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiV0hPQ29tbW9uIiBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIgY2FsbGVkICIsIldDb20iIF0KICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBdCiAgICAgICAgIH0gXQogICAgICB9LAogICAgICAicGFyYW1ldGVycyIgOiB7CiAgICAgICAgICJkZWYiIDogWyB7CiAgICAgICAgICAgICJsb2NhbElkIiA6ICIxMCIsCiAgICAgICAgICAgICJsb2NhdG9yIiA6ICI3MToxLTcxOjg4IiwKICAgICAgICAgICAgIm5hbWUiIDogIk1lYXN1cmVtZW50IFBlcmlvZCIsCiAgICAgICAgICAgICJhY2Nlc3NMZXZlbCIgOiAiUHVibGljIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyB7CiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbm5vdGF0aW9uIiwKICAgICAgICAgICAgICAgInMiIDogewogICAgICAgICAgICAgICAgICAiciIgOiAiMTAiLAogICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIi8vIEluZGljYXRvciBEZWZpbml0aW9uXG4iLCJwYXJhbWV0ZXIgIiwiXCJNZWFzdXJlbWVudCBQZXJpb2RcIiIsIiAiIF0KICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAiciIgOiAiOSIsCiAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiSW50ZXJ2YWw8IiBdCiAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjgiLAogICAgICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIkRhdGUiIF0KICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIj4iIF0KICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIiBkZWZhdWx0ICIgXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJyIiA6ICI3IiwKICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICI1IiwKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIkludGVydmFsWyIsIkAyMDIzLTAxLTAxIiwiLCAiLCJAMjAyMy0wMS0zMCIsIl0iIF0KICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gXSwKICAgICAgICAgICAgImRlZmF1bHQiIDogewogICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiNyIsCiAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI3MTo1NS03MTo4OCIsCiAgICAgICAgICAgICAgICJsb3dDbG9zZWQiIDogdHJ1ZSwKICAgICAgICAgICAgICAgImhpZ2hDbG9zZWQiIDogdHJ1ZSwKICAgICAgICAgICAgICAgInR5cGUiIDogIkludGVydmFsIiwKICAgICAgICAgICAgICAgImxvdyIgOiB7CiAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICI1IiwKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjcxOjY0LTcxOjc0IiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkRhdGUiLAogICAgICAgICAgICAgICAgICAieWVhciIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9SW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAiMjAyMyIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIgogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAibW9udGgiIDogewogICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfUludGVnZXIiLAogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogIjEiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgImRheSIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9SW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAiMSIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIgogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICJoaWdoIiA6IHsKICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjYiLAogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiNzE6NzctNzE6ODciLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRGF0ZSIsCiAgICAgICAgICAgICAgICAgICJ5ZWFyIiA6IHsKICAgICAgICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1JbnRlZ2VyIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICIyMDIzIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxpdGVyYWwiCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJtb250aCIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9SW50ZWdlciIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAiMSIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIgogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAiZGF5IiA6IHsKICAgICAgICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1JbnRlZ2VyIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICIzMCIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIgogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgInBhcmFtZXRlclR5cGVTcGVjaWZpZXIiIDogewogICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiOSIsCiAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI3MTozMi03MTo0NSIsCiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJJbnRlcnZhbFR5cGVTcGVjaWZpZXIiLAogICAgICAgICAgICAgICAicG9pbnRUeXBlIiA6IHsKICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjgiLAogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiNzE6NDEtNzE6NDQiLAogICAgICAgICAgICAgICAgICAibmFtZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1EYXRlIiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIk5hbWVkVHlwZVNwZWNpZmllciIKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgIH0gXQogICAgICB9LAogICAgICAiY29udGV4dHMiIDogewogICAgICAgICAiZGVmIiA6IFsgewogICAgICAgICAgICAibG9jYXRvciIgOiAiNzM6MS03MzoxNSIsCiAgICAgICAgICAgICJuYW1lIiA6ICJQYXRpZW50IgogICAgICAgICB9IF0KICAgICAgfSwKICAgICAgInN0YXRlbWVudHMiIDogewogICAgICAgICAiZGVmIiA6IFsgewogICAgICAgICAgICAibG9jYXRvciIgOiAiNzM6MS03MzoxNSIsCiAgICAgICAgICAgICJuYW1lIiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiZXhwcmVzc2lvbiIgOiB7CiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJTaW5nbGV0b25Gcm9tIiwKICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiNzM6MS03MzoxNSIsCiAgICAgICAgICAgICAgICAgICJkYXRhVHlwZSIgOiAie2h0dHA6Ly9obDcub3JnL2ZoaXJ9UGF0aWVudCIsCiAgICAgICAgICAgICAgICAgICJ0ZW1wbGF0ZUlkIiA6ICJodHRwOi8vaGw3Lm9yZy9maGlyL1N0cnVjdHVyZURlZmluaXRpb24vUGF0aWVudCIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJSZXRyaWV2ZSIKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2FsSWQiIDogIjEyIiwKICAgICAgICAgICAgImxvY2F0b3IiIDogIjgwOjEtODE6NiIsCiAgICAgICAgICAgICJuYW1lIiA6ICJJbml0aWFsIFBvcHVsYXRpb24iLAogICAgICAgICAgICAiY29udGV4dCIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhY2Nlc3NMZXZlbCIgOiAiUHVibGljIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyB7CiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbm5vdGF0aW9uIiwKICAgICAgICAgICAgICAgInMiIDogewogICAgICAgICAgICAgICAgICAiciIgOiAiMTIiLAogICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgInIiIDogIjExIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIi8qIFBvcHVsYXRpb25zICovXG5cbi8qXG4gKkluaXRpYWwgUG9wdWxhdGlvblxuICovXG5cbiIsImRlZmluZSAiLCJcIkluaXRpYWwgUG9wdWxhdGlvblwiIiwiOlxuICAiLCJ0cnVlIiBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMTEiLAogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiODE6My04MTo2IiwKICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1Cb29sZWFuIiwKICAgICAgICAgICAgICAgInZhbHVlIiA6ICJ0cnVlIiwKICAgICAgICAgICAgICAgInR5cGUiIDogIkxpdGVyYWwiCiAgICAgICAgICAgIH0KICAgICAgICAgfSwgewogICAgICAgICAgICAibG9jYWxJZCIgOiAiMTQiLAogICAgICAgICAgICAibG9jYXRvciIgOiAiOTA6MS05MTo2IiwKICAgICAgICAgICAgIm5hbWUiIDogIk51bWVyYXRvciIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIHsKICAgICAgICAgICAgICAgInR5cGUiIDogIkFubm90YXRpb24iLAogICAgICAgICAgICAgICAicyIgOiB7CiAgICAgICAgICAgICAgICAgICJyIiA6ICIxNCIsCiAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAiciIgOiAiMTMiLAogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiLyoqXG4gKiBOdW1lcmF0b3JcbiAqIFxuICogRGVmaW5pdGlvbjogTnVtYmVyIG9mIEhJVi1wb3NpdGl2ZSBwcmVnbmFudCB3b21lbiB3aG8gZGVsaXZlcmVkIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZCBhbmQgcmVjZWl2ZWQgQVJUIGR1cmluZyBwcmVnbmFuY3kgYW5kL29yIGF0IGxhYm91ciBhbmQgZGVsaXZlcnlcbiAqIENhbGN1bGF0aW9uOiBDT1VOVCBvZiB3b21lbiB3aXRoIFwiSElWIHN0YXR1c1wiPSdISVYtcG9zaXRpdmUnIEFORCBcIkRlbGl2ZXJ5IGRhdGVcIiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBBTkQgKChcIk9uIEFSVFwiPVRydWUgYXQgbGFib3VyIGFuZCBkZWxpdmVyeSkgT1IgKFwiT24gQVJUXCI9VHJ1ZSBkdXJpbmcgcHJlZ25hbmN5LCBmb3IgdGhpcyBwcmVnbmFuY3kpKVxuICovXG5cbiIsImRlZmluZSAiLCJcIk51bWVyYXRvclwiIiwiOlxuICAiLCJ0cnVlIiBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMTMiLAogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiOTE6My05MTo2IiwKICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1Cb29sZWFuIiwKICAgICAgICAgICAgICAgInZhbHVlIiA6ICJ0cnVlIiwKICAgICAgICAgICAgICAgInR5cGUiIDogIkxpdGVyYWwiCiAgICAgICAgICAgIH0KICAgICAgICAgfSwgewogICAgICAgICAgICAibG9jYWxJZCIgOiAiMTYiLAogICAgICAgICAgICAibG9jYXRvciIgOiAiMTAxOjEtMTAyOjYiLAogICAgICAgICAgICAibmFtZSIgOiAiRGVub21pbmF0b3IiLAogICAgICAgICAgICAiY29udGV4dCIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhY2Nlc3NMZXZlbCIgOiAiUHVibGljIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyB7CiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbm5vdGF0aW9uIiwKICAgICAgICAgICAgICAgInMiIDogewogICAgICAgICAgICAgICAgICAiciIgOiAiMTYiLAogICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgInIiIDogIjE1IiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIi8qKlxuICogRGVub21pbmF0b3JcbiAqXG4gKiBEZWZpbml0aW9uOiBhKSBQcm9ncmFtbWUtYmFzZWQvc2VydmljZSBkZWxpdmVyeSBkZW5vbWluYXRvciB8IE51bWJlciBvZiBISVYtcG9zaXRpdmUgcHJlZ25hbnQgd29tZW4gd2hvIGRlbGl2ZXJlZCBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QgYW5kIGF0dGVuZGVkIEFOQyBvciBoYWQgYSBmYWNpbGl0eS1iYXNlZCBkZWxpdmVyeSB8IGIpIFBvcHVsYXRpb24tYmFzZWQgZGVub21pbmF0b3IgfCBOdW1iZXIgb2YgSElWLXBvc2l0aXZlIHByZWduYW50IHdvbWVuIHdobyBkZWxpdmVyZWQgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kXG4gKiBDYWxjdWxhdGlvbjogUHJvZ3JhbW1lLWJhc2VkL3NlcnZpY2UgZGVsaXZlcnkgZGVub21pbmF0b3I6IHwgQ09VTlQgb2Ygd29tZW4gd2l0aCBcIkhJViBzdGF0dXNcIj0nSElWLXBvc2l0aXZlJyBBTkQgXCJEZWxpdmVyeSBkYXRlXCIgaW4gdGhlIHJlcG9ydGluZyBwZXJpb2QgQU5EIChoYWQgYW4gXCJBTkMgY29udGFjdCBkYXRlXCIgZHVyaW5nIHJlcG9ydGluZyBwZXJpb2QgT1IgXCJQbGFjZSBvZiBkZWxpdmVyeVwiIHdhcyBhICdIZWFsdGggZmFjaWxpdHknKSB8ICB8IFBvcHVsYXRpb24tYmFzZWQgZGVub21pbmF0b3I6IHwgKk51bWJlciBvZiBISVYtcG9zaXRpdmUgcHJlZ25hbnQgd29tZW4gd2hvIGRlbGl2ZXJlZCBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2RcbiAqL1xuXG4iLCJkZWZpbmUgIiwiXCJEZW5vbWluYXRvclwiIiwiOlxuICAiLCJ0cnVlIiBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMTUiLAogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTAyOjMtMTAyOjYiLAogICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfUJvb2xlYW4iLAogICAgICAgICAgICAgICAidmFsdWUiIDogInRydWUiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIKICAgICAgICAgICAgfQogICAgICAgICB9IF0KICAgICAgfQogICB9Cn0="
}
]
}