WHO Clinical Care in Crisis Implementation Guide for Children
0.1.0 - ci-build

WHO Clinical Care in Crisis Implementation Guide for Children - Local Development build (v0.1.0). See the Directory of published versions

: HeadCircumferenceForAge - JSON Representation

Active as of 2023-10-04

Raw json | Download


{
  "resourceType" : "Library",
  "id" : "HeadCircumferenceForAge",
  "text" : {
    "status" : "generated",
    "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h2>Related Artifacts</h2><table class=\"grid\"><tr><td>depends-on</td><td><a href=\"Library-anthrobase.html\">anthrobase</a></td></tr><tr><td>depends-on</td><td><code>http://fhir.org/guides/who/anc-cds/Library/FHIRHelpers</code></td></tr></table><h2>Parameters</h2><table class=\"grid\"><tr><td>zscore</td><td>in</td><td/><td/><td>decimal</td></tr><tr><td>Age</td><td>in</td><td/><td/><td>decimal</td></tr><tr><td>sex</td><td>in</td><td/><td/><td>decimal</td></tr><tr><td>generateHeadCircumferenceFromAge</td><td>out</td><td/><td/><td>decimal</td></tr><tr><td>generateZScoreHeadCircumferenceForAge</td><td>out</td><td/><td/><td>decimal</td></tr><tr><td>ZscoreHeadCircumferenceForAgetables_s</td><td>out</td><td/><td/><td>decimal</td></tr><tr><td>ZscoreHeadCircumferenceForAgetables_m</td><td>out</td><td/><td/><td>decimal</td></tr><tr><td>ZscoreHeadCircumferenceForAgetables_l</td><td>out</td><td/><td/><td>decimal</td></tr></table><h2>Data Requirements</h2><table class=\"grid\"><tr><td colspan=\"2\"><b>Type</b>: <a href=\"http://hl7.org/fhir/R4/patient.html\">Patient</a> (<a href=\"http://hl7.org/fhir/R4/patient.html\">Patient</a>)</td></tr></table><h2>Contents</h2><p><code>text/cql</code></p><pre><code class=\"language-sql\">\nlibrary HeadCircumferenceForAge version '1.0.4'\nusing FHIR version '4.0.1'\ninclude anthrobase version '1.0.4' called base\ninclude FHIRHelpers version '4.0.1' called FHIRHelpers\n\n// Antrho library for HeadCircumferenceForAge  Z-Score from the hcanthro files\ncodesystem &quot;administrative-gender&quot;: 'http://hl7.org/fhir/administrative-gender'\n//code &quot;Female&quot; : 'female' from &quot;administrative-gender&quot;  display 'Female'\n\n\ndefine HeadCircumferenceForAgeFemale:\n{\n\t{y:0.0,l:1.0,s:0.03496,m:33.8787},\n\t{y:1.0,l:1.0,s:0.03479,m:33.975},\n\t{y:2.0,l:1.0,s:0.03461,m:34.0714},\n\t{y:3.0,l:1.0,s:0.03444,m:34.1677},\n\t{y:4.0,l:1.0,s:0.03426,m:34.264},\n\t{y:5.0,l:1.0,s:0.03409,m:34.3603},\n\t{y:6.0,l:1.0,s:0.03391,m:34.4566},\n\t{y:7.0,l:1.0,s:0.03374,m:34.5529},\n\t{y:8.0,l:1.0,s:0.03356,m:34.6493},\n\t{y:9.0,l:1.0,s:0.03339,m:34.7456},\n\t{y:10.0,l:1.0,s:0.03321,m:34.8419},\n\t{y:11.0,l:1.0,s:0.03304,m:34.9382},\n\t{y:12.0,l:1.0,s:0.03286,m:35.0345},\n\t{y:13.0,l:1.0,s:0.03269,m:35.1309},\n\t{y:14.0,l:1.0,s:0.03251,m:35.2272},\n\t{y:15.0,l:1.0,s:0.03248,m:35.3211},\n\t{y:16.0,l:1.0,s:0.03245,m:35.413},\n\t{y:17.0,l:1.0,s:0.03242,m:35.5028},\n\t{y:18.0,l:1.0,s:0.03239,m:35.5906},\n\t{y:19.0,l:1.0,s:0.03236,m:35.6766},\n\t{y:20.0,l:1.0,s:0.03233,m:35.7607},\n\t{y:21.0,l:1.0,s:0.03231,m:35.843},\n\t{y:22.0,l:1.0,s:0.03228,m:35.9237},\n\t{y:23.0,l:1.0,s:0.03226,m:36.0028},\n\t{y:24.0,l:1.0,s:0.03223,m:36.0803},\n\t{y:25.0,l:1.0,s:0.03221,m:36.1563},\n\t{y:26.0,l:1.0,s:0.03219,m:36.2309},\n\t{y:27.0,l:1.0,s:0.03217,m:36.3042},\n\t{y:28.0,l:1.0,s:0.03215,m:36.3761},\n\t{y:29.0,l:1.0,s:0.03213,m:36.4468},\n\t{y:30.0,l:1.0,s:0.03211,m:36.5163},\n\t{y:31.0,l:1.0,s:0.03209,m:36.5846},\n\t{y:32.0,l:1.0,s:0.03207,m:36.6519},\n\t{y:33.0,l:1.0,s:0.03206,m:36.718},\n\t{y:34.0,l:1.0,s:0.03204,m:36.7831},\n\t{y:35.0,l:1.0,s:0.03202,m:36.8472},\n\t{y:36.0,l:1.0,s:0.032,m:36.9104},\n\t{y:37.0,l:1.0,s:0.03199,m:36.9726},\n\t{y:38.0,l:1.0,s:0.03197,m:37.034},\n\t{y:39.0,l:1.0,s:0.03196,m:37.0945},\n\t{y:40.0,l:1.0,s:0.03194,m:37.1541},\n\t{y:41.0,l:1.0,s:0.03193,m:37.213},\n\t{y:42.0,l:1.0,s:0.03191,m:37.2711},\n\t{y:43.0,l:1.0,s:0.0319,m:37.3284},\n\t{y:44.0,l:1.0,s:0.03188,m:37.3851},\n\t{y:45.0,l:1.0,s:0.03187,m:37.4411},\n\t{y:46.0,l:1.0,s:0.03186,m:37.4964},\n\t{y:47.0,l:1.0,s:0.03184,m:37.551},\n\t{y:48.0,l:1.0,s:0.03183,m:37.605},\n\t{y:49.0,l:1.0,s:0.03182,m:37.6584},\n\t{y:50.0,l:1.0,s:0.0318,m:37.7112},\n\t{y:51.0,l:1.0,s:0.03179,m:37.7635},\n\t{y:52.0,l:1.0,s:0.03178,m:37.8152},\n\t{y:53.0,l:1.0,s:0.03177,m:37.8663},\n\t{y:54.0,l:1.0,s:0.03176,m:37.9169},\n\t{y:55.0,l:1.0,s:0.03174,m:37.9671},\n\t{y:56.0,l:1.0,s:0.03173,m:38.0167},\n\t{y:57.0,l:1.0,s:0.03172,m:38.0658},\n\t{y:58.0,l:1.0,s:0.03171,m:38.1145},\n\t{y:59.0,l:1.0,s:0.0317,m:38.1628},\n\t{y:60.0,l:1.0,s:0.03169,m:38.2106},\n\t{y:63.0,l:1.0,s:0.03166,m:38.3516},\n\t{y:70.0,l:1.0,s:0.03158,m:38.6673},\n\t{y:77.0,l:1.0,s:0.03152,m:38.9661},\n\t{y:84.0,l:1.0,s:0.03146,m:39.2501},\n\t{y:91.0,l:1.0,s:0.0314,m:39.521},\n\t{y:98.0,l:1.0,s:0.03135,m:39.7802},\n\t{y:105.0,l:1.0,s:0.0313,m:40.0284},\n\t{y:112.0,l:1.0,s:0.03125,m:40.2664},\n\t{y:119.0,l:1.0,s:0.03121,m:40.4946},\n\t{y:126.0,l:1.0,s:0.03117,m:40.7136},\n\t{y:133.0,l:1.0,s:0.03112,m:40.9239},\n\t{y:140.0,l:1.0,s:0.03108,m:41.1259},\n\t{y:147.0,l:1.0,s:0.03105,m:41.32},\n\t{y:154.0,l:1.0,s:0.03101,m:41.5066},\n\t{y:161.0,l:1.0,s:0.03098,m:41.6861},\n\t{y:168.0,l:1.0,s:0.03094,m:41.8589},\n\t{y:175.0,l:1.0,s:0.03091,m:42.0253},\n\t{y:182.0,l:1.0,s:0.03088,m:42.1855},\n\t{y:197.0,l:1.0,s:0.03081,m:42.5093},\n\t{y:227.0,l:1.0,s:0.03069,m:43.0857},\n\t{y:257.0,l:1.0,s:0.03059,m:43.5808},\n\t{y:287.0,l:1.0,s:0.03049,m:44.0092},\n\t{y:317.0,l:1.0,s:0.0304,m:44.3836},\n\t{y:347.0,l:1.0,s:0.03032,m:44.7138},\n\t{y:377.0,l:1.0,s:0.03024,m:45.0077},\n\t{y:407.0,l:1.0,s:0.03017,m:45.2715},\n\t{y:437.0,l:1.0,s:0.0301,m:45.5105},\n\t{y:467.0,l:1.0,s:0.03003,m:45.729},\n\t{y:497.0,l:1.0,s:0.02997,m:45.9305},\n\t{y:527.0,l:1.0,s:0.02991,m:46.1184},\n\t{y:557.0,l:1.0,s:0.02986,m:46.2951},\n\t{y:587.0,l:1.0,s:0.0298,m:46.463},\n\t{y:617.0,l:1.0,s:0.02975,m:46.6236},\n\t{y:647.0,l:1.0,s:0.0297,m:46.7782},\n\t{y:677.0,l:1.0,s:0.02966,m:46.9276},\n\t{y:707.0,l:1.0,s:0.02961,m:47.0722},\n\t{y:737.0,l:1.0,s:0.02957,m:47.2121},\n\t{y:767.0,l:1.0,s:0.02952,m:47.3473},\n\t{y:797.0,l:1.0,s:0.02948,m:47.4777},\n\t{y:827.0,l:1.0,s:0.02944,m:47.603},\n\t{y:857.0,l:1.0,s:0.0294,m:47.7232},\n\t{y:887.0,l:1.0,s:0.02936,m:47.8381},\n\t{y:917.0,l:1.0,s:0.02933,m:47.9479},\n\t{y:947.0,l:1.0,s:0.02929,m:48.0528},\n\t{y:977.0,l:1.0,s:0.02925,m:48.153},\n\t{y:1007.0,l:1.0,s:0.02922,m:48.2489},\n\t{y:1037.0,l:1.0,s:0.02919,m:48.3407},\n\t{y:1067.0,l:1.0,s:0.02915,m:48.4288},\n\t{y:1097.0,l:1.0,s:0.02912,m:48.5134},\n\t{y:1127.0,l:1.0,s:0.02909,m:48.5948},\n\t{y:1157.0,l:1.0,s:0.02906,m:48.6732},\n\t{y:1187.0,l:1.0,s:0.02903,m:48.7487},\n\t{y:1217.0,l:1.0,s:0.029,m:48.8216},\n\t{y:1247.0,l:1.0,s:0.02897,m:48.8919},\n\t{y:1277.0,l:1.0,s:0.02894,m:48.9598},\n\t{y:1307.0,l:1.0,s:0.02891,m:49.0255},\n\t{y:1337.0,l:1.0,s:0.02889,m:49.089},\n\t{y:1367.0,l:1.0,s:0.02886,m:49.1506},\n\t{y:1397.0,l:1.0,s:0.02883,m:49.2103},\n\t{y:1427.0,l:1.0,s:0.02881,m:49.2683},\n\t{y:1457.0,l:1.0,s:0.02878,m:49.3247},\n\t{y:1487.0,l:1.0,s:0.02876,m:49.3797},\n\t{y:1517.0,l:1.0,s:0.02873,m:49.4333},\n\t{y:1547.0,l:1.0,s:0.02871,m:49.4856},\n\t{y:1577.0,l:1.0,s:0.02868,m:49.5367},\n\t{y:1607.0,l:1.0,s:0.02866,m:49.5868},\n\t{y:1637.0,l:1.0,s:0.02864,m:49.6357},\n\t{y:1667.0,l:1.0,s:0.02861,m:49.6836},\n\t{y:1697.0,l:1.0,s:0.02859,m:49.7305},\n\t{y:1727.0,l:1.0,s:0.02857,m:49.7765},\n\t{y:1757.0,l:1.0,s:0.02855,m:49.8216},\n\t{y:1787.0,l:1.0,s:0.02853,m:49.866},\n\t{y:1817.0,l:1.0,s:0.0285,m:49.9096},\n\t{y:1847.0,l:1.0,s:0.02848,m:49.9525}\n}\n\ndefine HeadCircumferenceForAgeMale:\n{\n\t{y:0.0,l:1.0,s:0.03686,m:34.4618},\n\t{y:1.0,l:1.0,s:0.03656,m:34.562},\n\t{y:2.0,l:1.0,s:0.03625,m:34.6622},\n\t{y:3.0,l:1.0,s:0.03595,m:34.7625},\n\t{y:4.0,l:1.0,s:0.03564,m:34.8627},\n\t{y:5.0,l:1.0,s:0.03533,m:34.9629},\n\t{y:6.0,l:1.0,s:0.03503,m:35.0631},\n\t{y:7.0,l:1.0,s:0.03472,m:35.1634},\n\t{y:8.0,l:1.0,s:0.03441,m:35.2636},\n\t{y:9.0,l:1.0,s:0.03411,m:35.3638},\n\t{y:10.0,l:1.0,s:0.0338,m:35.464},\n\t{y:11.0,l:1.0,s:0.0335,m:35.5643},\n\t{y:12.0,l:1.0,s:0.03319,m:35.6645},\n\t{y:13.0,l:1.0,s:0.03288,m:35.7647},\n\t{y:14.0,l:1.0,s:0.03258,m:35.8649},\n\t{y:15.0,l:1.0,s:0.03248,m:35.9652},\n\t{y:16.0,l:1.0,s:0.03239,m:36.0632},\n\t{y:17.0,l:1.0,s:0.0323,m:36.159},\n\t{y:18.0,l:1.0,s:0.03221,m:36.2526},\n\t{y:19.0,l:1.0,s:0.03213,m:36.3441},\n\t{y:20.0,l:1.0,s:0.03205,m:36.4338},\n\t{y:21.0,l:1.0,s:0.03197,m:36.5216},\n\t{y:22.0,l:1.0,s:0.03189,m:36.6078},\n\t{y:23.0,l:1.0,s:0.03182,m:36.6922},\n\t{y:24.0,l:1.0,s:0.03175,m:36.7751},\n\t{y:25.0,l:1.0,s:0.03168,m:36.8566},\n\t{y:26.0,l:1.0,s:0.03161,m:36.9366},\n\t{y:27.0,l:1.0,s:0.03154,m:37.0152},\n\t{y:28.0,l:1.0,s:0.03148,m:37.0926},\n\t{y:29.0,l:1.0,s:0.03141,m:37.1687},\n\t{y:30.0,l:1.0,s:0.03135,m:37.2435},\n\t{y:31.0,l:1.0,s:0.03129,m:37.3172},\n\t{y:32.0,l:1.0,s:0.03123,m:37.3898},\n\t{y:33.0,l:1.0,s:0.03118,m:37.4612},\n\t{y:34.0,l:1.0,s:0.03112,m:37.5316},\n\t{y:35.0,l:1.0,s:0.03107,m:37.601},\n\t{y:36.0,l:1.0,s:0.03101,m:37.6694},\n\t{y:37.0,l:1.0,s:0.03096,m:37.7368},\n\t{y:38.0,l:1.0,s:0.03091,m:37.8034},\n\t{y:39.0,l:1.0,s:0.03086,m:37.869},\n\t{y:40.0,l:1.0,s:0.03081,m:37.9338},\n\t{y:41.0,l:1.0,s:0.03076,m:37.9978},\n\t{y:42.0,l:1.0,s:0.03072,m:38.0609},\n\t{y:43.0,l:1.0,s:0.03067,m:38.1233},\n\t{y:44.0,l:1.0,s:0.03062,m:38.185},\n\t{y:45.0,l:1.0,s:0.03058,m:38.2459},\n\t{y:46.0,l:1.0,s:0.03054,m:38.3061},\n\t{y:47.0,l:1.0,s:0.03049,m:38.3655},\n\t{y:48.0,l:1.0,s:0.03045,m:38.4243},\n\t{y:49.0,l:1.0,s:0.03041,m:38.4824},\n\t{y:50.0,l:1.0,s:0.03037,m:38.5399},\n\t{y:51.0,l:1.0,s:0.03033,m:38.5968},\n\t{y:52.0,l:1.0,s:0.03029,m:38.653},\n\t{y:53.0,l:1.0,s:0.03025,m:38.7087},\n\t{y:54.0,l:1.0,s:0.03021,m:38.7638},\n\t{y:55.0,l:1.0,s:0.03018,m:38.8183},\n\t{y:56.0,l:1.0,s:0.03014,m:38.8724},\n\t{y:57.0,l:1.0,s:0.0301,m:38.9258},\n\t{y:58.0,l:1.0,s:0.03007,m:38.9788},\n\t{y:59.0,l:1.0,s:0.03003,m:39.0313},\n\t{y:60.0,l:1.0,s:0.03,m:39.0834},\n\t{y:63.0,l:1.0,s:0.0299,m:39.2368},\n\t{y:70.0,l:1.0,s:0.02969,m:39.5797},\n\t{y:77.0,l:1.0,s:0.0295,m:39.9033},\n\t{y:84.0,l:1.0,s:0.02933,m:40.2096},\n\t{y:91.0,l:1.0,s:0.02918,m:40.5008},\n\t{y:98.0,l:1.0,s:0.02905,m:40.7785},\n\t{y:105.0,l:1.0,s:0.02893,m:41.0436},\n\t{y:112.0,l:1.0,s:0.02882,m:41.297},\n\t{y:119.0,l:1.0,s:0.02872,m:41.5394},\n\t{y:126.0,l:1.0,s:0.02863,m:41.7715},\n\t{y:133.0,l:1.0,s:0.02855,m:41.9939},\n\t{y:140.0,l:1.0,s:0.02848,m:42.2071},\n\t{y:147.0,l:1.0,s:0.02841,m:42.4115},\n\t{y:154.0,l:1.0,s:0.02835,m:42.6076},\n\t{y:161.0,l:1.0,s:0.0283,m:42.7957},\n\t{y:168.0,l:1.0,s:0.02825,m:42.9762},\n\t{y:175.0,l:1.0,s:0.02821,m:43.1495},\n\t{y:182.0,l:1.0,s:0.02817,m:43.316},\n\t{y:197.0,l:1.0,s:0.0281,m:43.6513},\n\t{y:227.0,l:1.0,s:0.028,m:44.2432},\n\t{y:257.0,l:1.0,s:0.02794,m:44.7472},\n\t{y:287.0,l:1.0,s:0.02791,m:45.1809},\n\t{y:317.0,l:1.0,s:0.02789,m:45.5571},\n\t{y:347.0,l:1.0,s:0.02788,m:45.8857},\n\t{y:377.0,l:1.0,s:0.02789,m:46.1754},\n\t{y:407.0,l:1.0,s:0.0279,m:46.4335},\n\t{y:437.0,l:1.0,s:0.02791,m:46.666},\n\t{y:467.0,l:1.0,s:0.02793,m:46.8775},\n\t{y:497.0,l:1.0,s:0.02795,m:47.0719},\n\t{y:527.0,l:1.0,s:0.02798,m:47.2524},\n\t{y:557.0,l:1.0,s:0.02801,m:47.4215},\n\t{y:587.0,l:1.0,s:0.02804,m:47.5811},\n\t{y:617.0,l:1.0,s:0.02807,m:47.7329},\n\t{y:647.0,l:1.0,s:0.02811,m:47.8779},\n\t{y:677.0,l:1.0,s:0.02814,m:48.017},\n\t{y:707.0,l:1.0,s:0.02818,m:48.1505},\n\t{y:737.0,l:1.0,s:0.02822,m:48.2789},\n\t{y:767.0,l:1.0,s:0.02826,m:48.4023},\n\t{y:797.0,l:1.0,s:0.0283,m:48.5207},\n\t{y:827.0,l:1.0,s:0.02835,m:48.6344},\n\t{y:857.0,l:1.0,s:0.02839,m:48.7434},\n\t{y:887.0,l:1.0,s:0.02843,m:48.8478},\n\t{y:917.0,l:1.0,s:0.02847,m:48.9478},\n\t{y:947.0,l:1.0,s:0.02851,m:49.0435},\n\t{y:977.0,l:1.0,s:0.02855,m:49.135},\n\t{y:1007.0,l:1.0,s:0.02859,m:49.2226},\n\t{y:1037.0,l:1.0,s:0.02863,m:49.3066},\n\t{y:1067.0,l:1.0,s:0.02867,m:49.3871},\n\t{y:1097.0,l:1.0,s:0.02871,m:49.4644},\n\t{y:1127.0,l:1.0,s:0.02875,m:49.5387},\n\t{y:1157.0,l:1.0,s:0.02878,m:49.6101},\n\t{y:1187.0,l:1.0,s:0.02882,m:49.679},\n\t{y:1217.0,l:1.0,s:0.02886,m:49.7454},\n\t{y:1247.0,l:1.0,s:0.02889,m:49.8096},\n\t{y:1277.0,l:1.0,s:0.02892,m:49.8717},\n\t{y:1307.0,l:1.0,s:0.02896,m:49.9318},\n\t{y:1337.0,l:1.0,s:0.02899,m:49.99},\n\t{y:1367.0,l:1.0,s:0.02902,m:50.0463},\n\t{y:1397.0,l:1.0,s:0.02905,m:50.1008},\n\t{y:1427.0,l:1.0,s:0.02909,m:50.1536},\n\t{y:1457.0,l:1.0,s:0.02912,m:50.2048},\n\t{y:1487.0,l:1.0,s:0.02915,m:50.2545},\n\t{y:1517.0,l:1.0,s:0.02918,m:50.3028},\n\t{y:1547.0,l:1.0,s:0.0292,m:50.3497},\n\t{y:1577.0,l:1.0,s:0.02923,m:50.3953},\n\t{y:1607.0,l:1.0,s:0.02926,m:50.4398},\n\t{y:1637.0,l:1.0,s:0.02929,m:50.4832},\n\t{y:1667.0,l:1.0,s:0.02932,m:50.5255},\n\t{y:1697.0,l:1.0,s:0.02934,m:50.567},\n\t{y:1727.0,l:1.0,s:0.02937,m:50.6077},\n\t{y:1757.0,l:1.0,s:0.0294,m:50.6476},\n\t{y:1787.0,l:1.0,s:0.02942,m:50.6869},\n\t{y:1817.0,l:1.0,s:0.02945,m:50.7257},\n\t{y:1847.0,l:1.0,s:0.02947,m:50.7638}\n}\n\n\n\n\ndefine function ZscoreHeadCircumferenceForAgetables(sex String, age Decimal):\n\tif sex = 'female' then  \n        First(HeadCircumferenceForAgeFemale c where c.y = base.AgeToMini(age) )\n\telse \n        First(HeadCircumferenceForAgeMale c where  c.y = base.AgeToMini(age))\n            \ndefine function generateZScoreHeadCircumferenceForAge(sex System.String, age System.Decimal, weight  System.Decimal)  : \n\t generateZScoreHeadCircumferenceForAgedet(ZscoreHeadCircumferenceForAgetables(sex,age), weight )\n\ndefine function generateZScoreHeadCircumferenceForAgedet(row Tuple {y System.Decimal,l System.Decimal,s System.Decimal,m System.Decimal}, weight  System.Decimal):\n    if row is not null then \n        base.computeZScore(\n            weight,\n            row.m , \n            row.l ,\n            row.s \n        )\n    else null\n\n\ndefine function generateHeadCircumferenceFromAge(sex System.String, age System.Decimal, zscore  System.Decimal) : \n\t generateHeadCircumferenceFromAgedet(ZscoreHeadCircumferenceForAgetables(sex,age),zscore  )\n\ndefine function generateHeadCircumferenceFromAgedet(row Tuple {y System.Decimal,l System.Decimal,s System.Decimal,m System.Decimal},zscore  System.Decimal) : \n    if row is not null then \n        base.computeReverseZScore(\n            zscore,\n            row.m , \n            row.l ,\n            row.s \n        )\n    else null    \n\n    \n</code></pre></div>"
  },
  "url" : "https://fhir.dk.swisstph-mis.ch/matchbox/fhir/Library/HeadCircumferenceForAge",
  "version" : "0.1.0",
  "name" : "HeadCircumferenceForAge",
  "status" : "active",
  "type" : {
    "coding" : [
      {
        "system" : "http://hl7.org/fhir/ValueSet/library-type",
        "code" : "logic-library"
      }
    ]
  },
  "date" : "2023-10-04T12:32:21+00:00",
  "publisher" : "WHO",
  "contact" : [
    {
      "name" : "WHO",
      "telecom" : [
        {
          "system" : "url",
          "value" : "http://who.int"
        }
      ]
    }
  ],
  "relatedArtifact" : [
    {
      "type" : "depends-on",
      "resource" : "https://fhir.dk.swisstph-mis.ch/matchbox/fhir/Library/anthrobase"
    },
    {
      "type" : "depends-on",
      "resource" : "http://fhir.org/guides/who/anc-cds/Library/FHIRHelpers"
    }
  ],
  "parameter" : [
    {
      "name" : "zscore",
      "use" : "in",
      "type" : "decimal"
    },
    {
      "name" : "Age",
      "use" : "in",
      "type" : "decimal"
    },
    {
      "name" : "sex",
      "use" : "in",
      "type" : "decimal"
    },
    {
      "name" : "generateHeadCircumferenceFromAge",
      "use" : "out",
      "type" : "decimal"
    },
    {
      "name" : "generateZScoreHeadCircumferenceForAge",
      "use" : "out",
      "type" : "decimal"
    },
    {
      "name" : "ZscoreHeadCircumferenceForAgetables_s",
      "use" : "out",
      "type" : "decimal"
    },
    {
      "name" : "ZscoreHeadCircumferenceForAgetables_m",
      "use" : "out",
      "type" : "decimal"
    },
    {
      "name" : "ZscoreHeadCircumferenceForAgetables_l",
      "use" : "out",
      "type" : "decimal"
    }
  ],
  "dataRequirement" : [
    {
      "type" : "Patient",
      "profile" : [
        "http://hl7.org/fhir/StructureDefinition/Patient"
      ]
    }
  ],
  "content" : [
    {
      "id" : "ig-loader-HeadCircumferenceForAge.cql",
      "contentType" : "text/cql",
      "data" : "CmxpYnJhcnkgSGVhZENpcmN1bWZlcmVuY2VGb3JBZ2UgdmVyc2lvbiAnMS4wLjQnCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCmluY2x1ZGUgYW50aHJvYmFzZSB2ZXJzaW9uICcxLjAuNCcgY2FsbGVkIGJhc2UKaW5jbHVkZSBGSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScgY2FsbGVkIEZISVJIZWxwZXJzCgovLyBBbnRyaG8gbGlicmFyeSBmb3IgSGVhZENpcmN1bWZlcmVuY2VGb3JBZ2UgIFotU2NvcmUgZnJvbSB0aGUgaGNhbnRocm8gZmlsZXMKY29kZXN5c3RlbSAiYWRtaW5pc3RyYXRpdmUtZ2VuZGVyIjogJ2h0dHA6Ly9obDcub3JnL2ZoaXIvYWRtaW5pc3RyYXRpdmUtZ2VuZGVyJwovL2NvZGUgIkZlbWFsZSIgOiAnZmVtYWxlJyBmcm9tICJhZG1pbmlzdHJhdGl2ZS1nZW5kZXIiICBkaXNwbGF5ICdGZW1hbGUnCgoKZGVmaW5lIEhlYWRDaXJjdW1mZXJlbmNlRm9yQWdlRmVtYWxlOgp7Cgl7eTowLjAsbDoxLjAsczowLjAzNDk2LG06MzMuODc4N30sCgl7eToxLjAsbDoxLjAsczowLjAzNDc5LG06MzMuOTc1fSwKCXt5OjIuMCxsOjEuMCxzOjAuMDM0NjEsbTozNC4wNzE0fSwKCXt5OjMuMCxsOjEuMCxzOjAuMDM0NDQsbTozNC4xNjc3fSwKCXt5OjQuMCxsOjEuMCxzOjAuMDM0MjYsbTozNC4yNjR9LAoJe3k6NS4wLGw6MS4wLHM6MC4wMzQwOSxtOjM0LjM2MDN9LAoJe3k6Ni4wLGw6MS4wLHM6MC4wMzM5MSxtOjM0LjQ1NjZ9LAoJe3k6Ny4wLGw6MS4wLHM6MC4wMzM3NCxtOjM0LjU1Mjl9LAoJe3k6OC4wLGw6MS4wLHM6MC4wMzM1NixtOjM0LjY0OTN9LAoJe3k6OS4wLGw6MS4wLHM6MC4wMzMzOSxtOjM0Ljc0NTZ9LAoJe3k6MTAuMCxsOjEuMCxzOjAuMDMzMjEsbTozNC44NDE5fSwKCXt5OjExLjAsbDoxLjAsczowLjAzMzA0LG06MzQuOTM4Mn0sCgl7eToxMi4wLGw6MS4wLHM6MC4wMzI4NixtOjM1LjAzNDV9LAoJe3k6MTMuMCxsOjEuMCxzOjAuMDMyNjksbTozNS4xMzA5fSwKCXt5OjE0LjAsbDoxLjAsczowLjAzMjUxLG06MzUuMjI3Mn0sCgl7eToxNS4wLGw6MS4wLHM6MC4wMzI0OCxtOjM1LjMyMTF9LAoJe3k6MTYuMCxsOjEuMCxzOjAuMDMyNDUsbTozNS40MTN9LAoJe3k6MTcuMCxsOjEuMCxzOjAuMDMyNDIsbTozNS41MDI4fSwKCXt5OjE4LjAsbDoxLjAsczowLjAzMjM5LG06MzUuNTkwNn0sCgl7eToxOS4wLGw6MS4wLHM6MC4wMzIzNixtOjM1LjY3NjZ9LAoJe3k6MjAuMCxsOjEuMCxzOjAuMDMyMzMsbTozNS43NjA3fSwKCXt5OjIxLjAsbDoxLjAsczowLjAzMjMxLG06MzUuODQzfSwKCXt5OjIyLjAsbDoxLjAsczowLjAzMjI4LG06MzUuOTIzN30sCgl7eToyMy4wLGw6MS4wLHM6MC4wMzIyNixtOjM2LjAwMjh9LAoJe3k6MjQuMCxsOjEuMCxzOjAuMDMyMjMsbTozNi4wODAzfSwKCXt5OjI1LjAsbDoxLjAsczowLjAzMjIxLG06MzYuMTU2M30sCgl7eToyNi4wLGw6MS4wLHM6MC4wMzIxOSxtOjM2LjIzMDl9LAoJe3k6MjcuMCxsOjEuMCxzOjAuMDMyMTcsbTozNi4zMDQyfSwKCXt5OjI4LjAsbDoxLjAsczowLjAzMjE1LG06MzYuMzc2MX0sCgl7eToyOS4wLGw6MS4wLHM6MC4wMzIxMyxtOjM2LjQ0Njh9LAoJe3k6MzAuMCxsOjEuMCxzOjAuMDMyMTEsbTozNi41MTYzfSwKCXt5OjMxLjAsbDoxLjAsczowLjAzMjA5LG06MzYuNTg0Nn0sCgl7eTozMi4wLGw6MS4wLHM6MC4wMzIwNyxtOjM2LjY1MTl9LAoJe3k6MzMuMCxsOjEuMCxzOjAuMDMyMDYsbTozNi43MTh9LAoJe3k6MzQuMCxsOjEuMCxzOjAuMDMyMDQsbTozNi43ODMxfSwKCXt5OjM1LjAsbDoxLjAsczowLjAzMjAyLG06MzYuODQ3Mn0sCgl7eTozNi4wLGw6MS4wLHM6MC4wMzIsbTozNi45MTA0fSwKCXt5OjM3LjAsbDoxLjAsczowLjAzMTk5LG06MzYuOTcyNn0sCgl7eTozOC4wLGw6MS4wLHM6MC4wMzE5NyxtOjM3LjAzNH0sCgl7eTozOS4wLGw6MS4wLHM6MC4wMzE5NixtOjM3LjA5NDV9LAoJe3k6NDAuMCxsOjEuMCxzOjAuMDMxOTQsbTozNy4xNTQxfSwKCXt5OjQxLjAsbDoxLjAsczowLjAzMTkzLG06MzcuMjEzfSwKCXt5OjQyLjAsbDoxLjAsczowLjAzMTkxLG06MzcuMjcxMX0sCgl7eTo0My4wLGw6MS4wLHM6MC4wMzE5LG06MzcuMzI4NH0sCgl7eTo0NC4wLGw6MS4wLHM6MC4wMzE4OCxtOjM3LjM4NTF9LAoJe3k6NDUuMCxsOjEuMCxzOjAuMDMxODcsbTozNy40NDExfSwKCXt5OjQ2LjAsbDoxLjAsczowLjAzMTg2LG06MzcuNDk2NH0sCgl7eTo0Ny4wLGw6MS4wLHM6MC4wMzE4NCxtOjM3LjU1MX0sCgl7eTo0OC4wLGw6MS4wLHM6MC4wMzE4MyxtOjM3LjYwNX0sCgl7eTo0OS4wLGw6MS4wLHM6MC4wMzE4MixtOjM3LjY1ODR9LAoJe3k6NTAuMCxsOjEuMCxzOjAuMDMxOCxtOjM3LjcxMTJ9LAoJe3k6NTEuMCxsOjEuMCxzOjAuMDMxNzksbTozNy43NjM1fSwKCXt5OjUyLjAsbDoxLjAsczowLjAzMTc4LG06MzcuODE1Mn0sCgl7eTo1My4wLGw6MS4wLHM6MC4wMzE3NyxtOjM3Ljg2NjN9LAoJe3k6NTQuMCxsOjEuMCxzOjAuMDMxNzYsbTozNy45MTY5fSwKCXt5OjU1LjAsbDoxLjAsczowLjAzMTc0LG06MzcuOTY3MX0sCgl7eTo1Ni4wLGw6MS4wLHM6MC4wMzE3MyxtOjM4LjAxNjd9LAoJe3k6NTcuMCxsOjEuMCxzOjAuMDMxNzIsbTozOC4wNjU4fSwKCXt5OjU4LjAsbDoxLjAsczowLjAzMTcxLG06MzguMTE0NX0sCgl7eTo1OS4wLGw6MS4wLHM6MC4wMzE3LG06MzguMTYyOH0sCgl7eTo2MC4wLGw6MS4wLHM6MC4wMzE2OSxtOjM4LjIxMDZ9LAoJe3k6NjMuMCxsOjEuMCxzOjAuMDMxNjYsbTozOC4zNTE2fSwKCXt5OjcwLjAsbDoxLjAsczowLjAzMTU4LG06MzguNjY3M30sCgl7eTo3Ny4wLGw6MS4wLHM6MC4wMzE1MixtOjM4Ljk2NjF9LAoJe3k6ODQuMCxsOjEuMCxzOjAuMDMxNDYsbTozOS4yNTAxfSwKCXt5OjkxLjAsbDoxLjAsczowLjAzMTQsbTozOS41MjF9LAoJe3k6OTguMCxsOjEuMCxzOjAuMDMxMzUsbTozOS43ODAyfSwKCXt5OjEwNS4wLGw6MS4wLHM6MC4wMzEzLG06NDAuMDI4NH0sCgl7eToxMTIuMCxsOjEuMCxzOjAuMDMxMjUsbTo0MC4yNjY0fSwKCXt5OjExOS4wLGw6MS4wLHM6MC4wMzEyMSxtOjQwLjQ5NDZ9LAoJe3k6MTI2LjAsbDoxLjAsczowLjAzMTE3LG06NDAuNzEzNn0sCgl7eToxMzMuMCxsOjEuMCxzOjAuMDMxMTIsbTo0MC45MjM5fSwKCXt5OjE0MC4wLGw6MS4wLHM6MC4wMzEwOCxtOjQxLjEyNTl9LAoJe3k6MTQ3LjAsbDoxLjAsczowLjAzMTA1LG06NDEuMzJ9LAoJe3k6MTU0LjAsbDoxLjAsczowLjAzMTAxLG06NDEuNTA2Nn0sCgl7eToxNjEuMCxsOjEuMCxzOjAuMDMwOTgsbTo0MS42ODYxfSwKCXt5OjE2OC4wLGw6MS4wLHM6MC4wMzA5NCxtOjQxLjg1ODl9LAoJe3k6MTc1LjAsbDoxLjAsczowLjAzMDkxLG06NDIuMDI1M30sCgl7eToxODIuMCxsOjEuMCxzOjAuMDMwODgsbTo0Mi4xODU1fSwKCXt5OjE5Ny4wLGw6MS4wLHM6MC4wMzA4MSxtOjQyLjUwOTN9LAoJe3k6MjI3LjAsbDoxLjAsczowLjAzMDY5LG06NDMuMDg1N30sCgl7eToyNTcuMCxsOjEuMCxzOjAuMDMwNTksbTo0My41ODA4fSwKCXt5OjI4Ny4wLGw6MS4wLHM6MC4wMzA0OSxtOjQ0LjAwOTJ9LAoJe3k6MzE3LjAsbDoxLjAsczowLjAzMDQsbTo0NC4zODM2fSwKCXt5OjM0Ny4wLGw6MS4wLHM6MC4wMzAzMixtOjQ0LjcxMzh9LAoJe3k6Mzc3LjAsbDoxLjAsczowLjAzMDI0LG06NDUuMDA3N30sCgl7eTo0MDcuMCxsOjEuMCxzOjAuMDMwMTcsbTo0NS4yNzE1fSwKCXt5OjQzNy4wLGw6MS4wLHM6MC4wMzAxLG06NDUuNTEwNX0sCgl7eTo0NjcuMCxsOjEuMCxzOjAuMDMwMDMsbTo0NS43Mjl9LAoJe3k6NDk3LjAsbDoxLjAsczowLjAyOTk3LG06NDUuOTMwNX0sCgl7eTo1MjcuMCxsOjEuMCxzOjAuMDI5OTEsbTo0Ni4xMTg0fSwKCXt5OjU1Ny4wLGw6MS4wLHM6MC4wMjk4NixtOjQ2LjI5NTF9LAoJe3k6NTg3LjAsbDoxLjAsczowLjAyOTgsbTo0Ni40NjN9LAoJe3k6NjE3LjAsbDoxLjAsczowLjAyOTc1LG06NDYuNjIzNn0sCgl7eTo2NDcuMCxsOjEuMCxzOjAuMDI5NyxtOjQ2Ljc3ODJ9LAoJe3k6Njc3LjAsbDoxLjAsczowLjAyOTY2LG06NDYuOTI3Nn0sCgl7eTo3MDcuMCxsOjEuMCxzOjAuMDI5NjEsbTo0Ny4wNzIyfSwKCXt5OjczNy4wLGw6MS4wLHM6MC4wMjk1NyxtOjQ3LjIxMjF9LAoJe3k6NzY3LjAsbDoxLjAsczowLjAyOTUyLG06NDcuMzQ3M30sCgl7eTo3OTcuMCxsOjEuMCxzOjAuMDI5NDgsbTo0Ny40Nzc3fSwKCXt5OjgyNy4wLGw6MS4wLHM6MC4wMjk0NCxtOjQ3LjYwM30sCgl7eTo4NTcuMCxsOjEuMCxzOjAuMDI5NCxtOjQ3LjcyMzJ9LAoJe3k6ODg3LjAsbDoxLjAsczowLjAyOTM2LG06NDcuODM4MX0sCgl7eTo5MTcuMCxsOjEuMCxzOjAuMDI5MzMsbTo0Ny45NDc5fSwKCXt5Ojk0Ny4wLGw6MS4wLHM6MC4wMjkyOSxtOjQ4LjA1Mjh9LAoJe3k6OTc3LjAsbDoxLjAsczowLjAyOTI1LG06NDguMTUzfSwKCXt5OjEwMDcuMCxsOjEuMCxzOjAuMDI5MjIsbTo0OC4yNDg5fSwKCXt5OjEwMzcuMCxsOjEuMCxzOjAuMDI5MTksbTo0OC4zNDA3fSwKCXt5OjEwNjcuMCxsOjEuMCxzOjAuMDI5MTUsbTo0OC40Mjg4fSwKCXt5OjEwOTcuMCxsOjEuMCxzOjAuMDI5MTIsbTo0OC41MTM0fSwKCXt5OjExMjcuMCxsOjEuMCxzOjAuMDI5MDksbTo0OC41OTQ4fSwKCXt5OjExNTcuMCxsOjEuMCxzOjAuMDI5MDYsbTo0OC42NzMyfSwKCXt5OjExODcuMCxsOjEuMCxzOjAuMDI5MDMsbTo0OC43NDg3fSwKCXt5OjEyMTcuMCxsOjEuMCxzOjAuMDI5LG06NDguODIxNn0sCgl7eToxMjQ3LjAsbDoxLjAsczowLjAyODk3LG06NDguODkxOX0sCgl7eToxMjc3LjAsbDoxLjAsczowLjAyODk0LG06NDguOTU5OH0sCgl7eToxMzA3LjAsbDoxLjAsczowLjAyODkxLG06NDkuMDI1NX0sCgl7eToxMzM3LjAsbDoxLjAsczowLjAyODg5LG06NDkuMDg5fSwKCXt5OjEzNjcuMCxsOjEuMCxzOjAuMDI4ODYsbTo0OS4xNTA2fSwKCXt5OjEzOTcuMCxsOjEuMCxzOjAuMDI4ODMsbTo0OS4yMTAzfSwKCXt5OjE0MjcuMCxsOjEuMCxzOjAuMDI4ODEsbTo0OS4yNjgzfSwKCXt5OjE0NTcuMCxsOjEuMCxzOjAuMDI4NzgsbTo0OS4zMjQ3fSwKCXt5OjE0ODcuMCxsOjEuMCxzOjAuMDI4NzYsbTo0OS4zNzk3fSwKCXt5OjE1MTcuMCxsOjEuMCxzOjAuMDI4NzMsbTo0OS40MzMzfSwKCXt5OjE1NDcuMCxsOjEuMCxzOjAuMDI4NzEsbTo0OS40ODU2fSwKCXt5OjE1NzcuMCxsOjEuMCxzOjAuMDI4NjgsbTo0OS41MzY3fSwKCXt5OjE2MDcuMCxsOjEuMCxzOjAuMDI4NjYsbTo0OS41ODY4fSwKCXt5OjE2MzcuMCxsOjEuMCxzOjAuMDI4NjQsbTo0OS42MzU3fSwKCXt5OjE2NjcuMCxsOjEuMCxzOjAuMDI4NjEsbTo0OS42ODM2fSwKCXt5OjE2OTcuMCxsOjEuMCxzOjAuMDI4NTksbTo0OS43MzA1fSwKCXt5OjE3MjcuMCxsOjEuMCxzOjAuMDI4NTcsbTo0OS43NzY1fSwKCXt5OjE3NTcuMCxsOjEuMCxzOjAuMDI4NTUsbTo0OS44MjE2fSwKCXt5OjE3ODcuMCxsOjEuMCxzOjAuMDI4NTMsbTo0OS44NjZ9LAoJe3k6MTgxNy4wLGw6MS4wLHM6MC4wMjg1LG06NDkuOTA5Nn0sCgl7eToxODQ3LjAsbDoxLjAsczowLjAyODQ4LG06NDkuOTUyNX0KfQoKZGVmaW5lIEhlYWRDaXJjdW1mZXJlbmNlRm9yQWdlTWFsZToKewoJe3k6MC4wLGw6MS4wLHM6MC4wMzY4NixtOjM0LjQ2MTh9LAoJe3k6MS4wLGw6MS4wLHM6MC4wMzY1NixtOjM0LjU2Mn0sCgl7eToyLjAsbDoxLjAsczowLjAzNjI1LG06MzQuNjYyMn0sCgl7eTozLjAsbDoxLjAsczowLjAzNTk1LG06MzQuNzYyNX0sCgl7eTo0LjAsbDoxLjAsczowLjAzNTY0LG06MzQuODYyN30sCgl7eTo1LjAsbDoxLjAsczowLjAzNTMzLG06MzQuOTYyOX0sCgl7eTo2LjAsbDoxLjAsczowLjAzNTAzLG06MzUuMDYzMX0sCgl7eTo3LjAsbDoxLjAsczowLjAzNDcyLG06MzUuMTYzNH0sCgl7eTo4LjAsbDoxLjAsczowLjAzNDQxLG06MzUuMjYzNn0sCgl7eTo5LjAsbDoxLjAsczowLjAzNDExLG06MzUuMzYzOH0sCgl7eToxMC4wLGw6MS4wLHM6MC4wMzM4LG06MzUuNDY0fSwKCXt5OjExLjAsbDoxLjAsczowLjAzMzUsbTozNS41NjQzfSwKCXt5OjEyLjAsbDoxLjAsczowLjAzMzE5LG06MzUuNjY0NX0sCgl7eToxMy4wLGw6MS4wLHM6MC4wMzI4OCxtOjM1Ljc2NDd9LAoJe3k6MTQuMCxsOjEuMCxzOjAuMDMyNTgsbTozNS44NjQ5fSwKCXt5OjE1LjAsbDoxLjAsczowLjAzMjQ4LG06MzUuOTY1Mn0sCgl7eToxNi4wLGw6MS4wLHM6MC4wMzIzOSxtOjM2LjA2MzJ9LAoJe3k6MTcuMCxsOjEuMCxzOjAuMDMyMyxtOjM2LjE1OX0sCgl7eToxOC4wLGw6MS4wLHM6MC4wMzIyMSxtOjM2LjI1MjZ9LAoJe3k6MTkuMCxsOjEuMCxzOjAuMDMyMTMsbTozNi4zNDQxfSwKCXt5OjIwLjAsbDoxLjAsczowLjAzMjA1LG06MzYuNDMzOH0sCgl7eToyMS4wLGw6MS4wLHM6MC4wMzE5NyxtOjM2LjUyMTZ9LAoJe3k6MjIuMCxsOjEuMCxzOjAuMDMxODksbTozNi42MDc4fSwKCXt5OjIzLjAsbDoxLjAsczowLjAzMTgyLG06MzYuNjkyMn0sCgl7eToyNC4wLGw6MS4wLHM6MC4wMzE3NSxtOjM2Ljc3NTF9LAoJe3k6MjUuMCxsOjEuMCxzOjAuMDMxNjgsbTozNi44NTY2fSwKCXt5OjI2LjAsbDoxLjAsczowLjAzMTYxLG06MzYuOTM2Nn0sCgl7eToyNy4wLGw6MS4wLHM6MC4wMzE1NCxtOjM3LjAxNTJ9LAoJe3k6MjguMCxsOjEuMCxzOjAuMDMxNDgsbTozNy4wOTI2fSwKCXt5OjI5LjAsbDoxLjAsczowLjAzMTQxLG06MzcuMTY4N30sCgl7eTozMC4wLGw6MS4wLHM6MC4wMzEzNSxtOjM3LjI0MzV9LAoJe3k6MzEuMCxsOjEuMCxzOjAuMDMxMjksbTozNy4zMTcyfSwKCXt5OjMyLjAsbDoxLjAsczowLjAzMTIzLG06MzcuMzg5OH0sCgl7eTozMy4wLGw6MS4wLHM6MC4wMzExOCxtOjM3LjQ2MTJ9LAoJe3k6MzQuMCxsOjEuMCxzOjAuMDMxMTIsbTozNy41MzE2fSwKCXt5OjM1LjAsbDoxLjAsczowLjAzMTA3LG06MzcuNjAxfSwKCXt5OjM2LjAsbDoxLjAsczowLjAzMTAxLG06MzcuNjY5NH0sCgl7eTozNy4wLGw6MS4wLHM6MC4wMzA5NixtOjM3LjczNjh9LAoJe3k6MzguMCxsOjEuMCxzOjAuMDMwOTEsbTozNy44MDM0fSwKCXt5OjM5LjAsbDoxLjAsczowLjAzMDg2LG06MzcuODY5fSwKCXt5OjQwLjAsbDoxLjAsczowLjAzMDgxLG06MzcuOTMzOH0sCgl7eTo0MS4wLGw6MS4wLHM6MC4wMzA3NixtOjM3Ljk5Nzh9LAoJe3k6NDIuMCxsOjEuMCxzOjAuMDMwNzIsbTozOC4wNjA5fSwKCXt5OjQzLjAsbDoxLjAsczowLjAzMDY3LG06MzguMTIzM30sCgl7eTo0NC4wLGw6MS4wLHM6MC4wMzA2MixtOjM4LjE4NX0sCgl7eTo0NS4wLGw6MS4wLHM6MC4wMzA1OCxtOjM4LjI0NTl9LAoJe3k6NDYuMCxsOjEuMCxzOjAuMDMwNTQsbTozOC4zMDYxfSwKCXt5OjQ3LjAsbDoxLjAsczowLjAzMDQ5LG06MzguMzY1NX0sCgl7eTo0OC4wLGw6MS4wLHM6MC4wMzA0NSxtOjM4LjQyNDN9LAoJe3k6NDkuMCxsOjEuMCxzOjAuMDMwNDEsbTozOC40ODI0fSwKCXt5OjUwLjAsbDoxLjAsczowLjAzMDM3LG06MzguNTM5OX0sCgl7eTo1MS4wLGw6MS4wLHM6MC4wMzAzMyxtOjM4LjU5Njh9LAoJe3k6NTIuMCxsOjEuMCxzOjAuMDMwMjksbTozOC42NTN9LAoJe3k6NTMuMCxsOjEuMCxzOjAuMDMwMjUsbTozOC43MDg3fSwKCXt5OjU0LjAsbDoxLjAsczowLjAzMDIxLG06MzguNzYzOH0sCgl7eTo1NS4wLGw6MS4wLHM6MC4wMzAxOCxtOjM4LjgxODN9LAoJe3k6NTYuMCxsOjEuMCxzOjAuMDMwMTQsbTozOC44NzI0fSwKCXt5OjU3LjAsbDoxLjAsczowLjAzMDEsbTozOC45MjU4fSwKCXt5OjU4LjAsbDoxLjAsczowLjAzMDA3LG06MzguOTc4OH0sCgl7eTo1OS4wLGw6MS4wLHM6MC4wMzAwMyxtOjM5LjAzMTN9LAoJe3k6NjAuMCxsOjEuMCxzOjAuMDMsbTozOS4wODM0fSwKCXt5OjYzLjAsbDoxLjAsczowLjAyOTksbTozOS4yMzY4fSwKCXt5OjcwLjAsbDoxLjAsczowLjAyOTY5LG06MzkuNTc5N30sCgl7eTo3Ny4wLGw6MS4wLHM6MC4wMjk1LG06MzkuOTAzM30sCgl7eTo4NC4wLGw6MS4wLHM6MC4wMjkzMyxtOjQwLjIwOTZ9LAoJe3k6OTEuMCxsOjEuMCxzOjAuMDI5MTgsbTo0MC41MDA4fSwKCXt5Ojk4LjAsbDoxLjAsczowLjAyOTA1LG06NDAuNzc4NX0sCgl7eToxMDUuMCxsOjEuMCxzOjAuMDI4OTMsbTo0MS4wNDM2fSwKCXt5OjExMi4wLGw6MS4wLHM6MC4wMjg4MixtOjQxLjI5N30sCgl7eToxMTkuMCxsOjEuMCxzOjAuMDI4NzIsbTo0MS41Mzk0fSwKCXt5OjEyNi4wLGw6MS4wLHM6MC4wMjg2MyxtOjQxLjc3MTV9LAoJe3k6MTMzLjAsbDoxLjAsczowLjAyODU1LG06NDEuOTkzOX0sCgl7eToxNDAuMCxsOjEuMCxzOjAuMDI4NDgsbTo0Mi4yMDcxfSwKCXt5OjE0Ny4wLGw6MS4wLHM6MC4wMjg0MSxtOjQyLjQxMTV9LAoJe3k6MTU0LjAsbDoxLjAsczowLjAyODM1LG06NDIuNjA3Nn0sCgl7eToxNjEuMCxsOjEuMCxzOjAuMDI4MyxtOjQyLjc5NTd9LAoJe3k6MTY4LjAsbDoxLjAsczowLjAyODI1LG06NDIuOTc2Mn0sCgl7eToxNzUuMCxsOjEuMCxzOjAuMDI4MjEsbTo0My4xNDk1fSwKCXt5OjE4Mi4wLGw6MS4wLHM6MC4wMjgxNyxtOjQzLjMxNn0sCgl7eToxOTcuMCxsOjEuMCxzOjAuMDI4MSxtOjQzLjY1MTN9LAoJe3k6MjI3LjAsbDoxLjAsczowLjAyOCxtOjQ0LjI0MzJ9LAoJe3k6MjU3LjAsbDoxLjAsczowLjAyNzk0LG06NDQuNzQ3Mn0sCgl7eToyODcuMCxsOjEuMCxzOjAuMDI3OTEsbTo0NS4xODA5fSwKCXt5OjMxNy4wLGw6MS4wLHM6MC4wMjc4OSxtOjQ1LjU1NzF9LAoJe3k6MzQ3LjAsbDoxLjAsczowLjAyNzg4LG06NDUuODg1N30sCgl7eTozNzcuMCxsOjEuMCxzOjAuMDI3ODksbTo0Ni4xNzU0fSwKCXt5OjQwNy4wLGw6MS4wLHM6MC4wMjc5LG06NDYuNDMzNX0sCgl7eTo0MzcuMCxsOjEuMCxzOjAuMDI3OTEsbTo0Ni42NjZ9LAoJe3k6NDY3LjAsbDoxLjAsczowLjAyNzkzLG06NDYuODc3NX0sCgl7eTo0OTcuMCxsOjEuMCxzOjAuMDI3OTUsbTo0Ny4wNzE5fSwKCXt5OjUyNy4wLGw6MS4wLHM6MC4wMjc5OCxtOjQ3LjI1MjR9LAoJe3k6NTU3LjAsbDoxLjAsczowLjAyODAxLG06NDcuNDIxNX0sCgl7eTo1ODcuMCxsOjEuMCxzOjAuMDI4MDQsbTo0Ny41ODExfSwKCXt5OjYxNy4wLGw6MS4wLHM6MC4wMjgwNyxtOjQ3LjczMjl9LAoJe3k6NjQ3LjAsbDoxLjAsczowLjAyODExLG06NDcuODc3OX0sCgl7eTo2NzcuMCxsOjEuMCxzOjAuMDI4MTQsbTo0OC4wMTd9LAoJe3k6NzA3LjAsbDoxLjAsczowLjAyODE4LG06NDguMTUwNX0sCgl7eTo3MzcuMCxsOjEuMCxzOjAuMDI4MjIsbTo0OC4yNzg5fSwKCXt5Ojc2Ny4wLGw6MS4wLHM6MC4wMjgyNixtOjQ4LjQwMjN9LAoJe3k6Nzk3LjAsbDoxLjAsczowLjAyODMsbTo0OC41MjA3fSwKCXt5OjgyNy4wLGw6MS4wLHM6MC4wMjgzNSxtOjQ4LjYzNDR9LAoJe3k6ODU3LjAsbDoxLjAsczowLjAyODM5LG06NDguNzQzNH0sCgl7eTo4ODcuMCxsOjEuMCxzOjAuMDI4NDMsbTo0OC44NDc4fSwKCXt5OjkxNy4wLGw6MS4wLHM6MC4wMjg0NyxtOjQ4Ljk0Nzh9LAoJe3k6OTQ3LjAsbDoxLjAsczowLjAyODUxLG06NDkuMDQzNX0sCgl7eTo5NzcuMCxsOjEuMCxzOjAuMDI4NTUsbTo0OS4xMzV9LAoJe3k6MTAwNy4wLGw6MS4wLHM6MC4wMjg1OSxtOjQ5LjIyMjZ9LAoJe3k6MTAzNy4wLGw6MS4wLHM6MC4wMjg2MyxtOjQ5LjMwNjZ9LAoJe3k6MTA2Ny4wLGw6MS4wLHM6MC4wMjg2NyxtOjQ5LjM4NzF9LAoJe3k6MTA5Ny4wLGw6MS4wLHM6MC4wMjg3MSxtOjQ5LjQ2NDR9LAoJe3k6MTEyNy4wLGw6MS4wLHM6MC4wMjg3NSxtOjQ5LjUzODd9LAoJe3k6MTE1Ny4wLGw6MS4wLHM6MC4wMjg3OCxtOjQ5LjYxMDF9LAoJe3k6MTE4Ny4wLGw6MS4wLHM6MC4wMjg4MixtOjQ5LjY3OX0sCgl7eToxMjE3LjAsbDoxLjAsczowLjAyODg2LG06NDkuNzQ1NH0sCgl7eToxMjQ3LjAsbDoxLjAsczowLjAyODg5LG06NDkuODA5Nn0sCgl7eToxMjc3LjAsbDoxLjAsczowLjAyODkyLG06NDkuODcxN30sCgl7eToxMzA3LjAsbDoxLjAsczowLjAyODk2LG06NDkuOTMxOH0sCgl7eToxMzM3LjAsbDoxLjAsczowLjAyODk5LG06NDkuOTl9LAoJe3k6MTM2Ny4wLGw6MS4wLHM6MC4wMjkwMixtOjUwLjA0NjN9LAoJe3k6MTM5Ny4wLGw6MS4wLHM6MC4wMjkwNSxtOjUwLjEwMDh9LAoJe3k6MTQyNy4wLGw6MS4wLHM6MC4wMjkwOSxtOjUwLjE1MzZ9LAoJe3k6MTQ1Ny4wLGw6MS4wLHM6MC4wMjkxMixtOjUwLjIwNDh9LAoJe3k6MTQ4Ny4wLGw6MS4wLHM6MC4wMjkxNSxtOjUwLjI1NDV9LAoJe3k6MTUxNy4wLGw6MS4wLHM6MC4wMjkxOCxtOjUwLjMwMjh9LAoJe3k6MTU0Ny4wLGw6MS4wLHM6MC4wMjkyLG06NTAuMzQ5N30sCgl7eToxNTc3LjAsbDoxLjAsczowLjAyOTIzLG06NTAuMzk1M30sCgl7eToxNjA3LjAsbDoxLjAsczowLjAyOTI2LG06NTAuNDM5OH0sCgl7eToxNjM3LjAsbDoxLjAsczowLjAyOTI5LG06NTAuNDgzMn0sCgl7eToxNjY3LjAsbDoxLjAsczowLjAyOTMyLG06NTAuNTI1NX0sCgl7eToxNjk3LjAsbDoxLjAsczowLjAyOTM0LG06NTAuNTY3fSwKCXt5OjE3MjcuMCxsOjEuMCxzOjAuMDI5MzcsbTo1MC42MDc3fSwKCXt5OjE3NTcuMCxsOjEuMCxzOjAuMDI5NCxtOjUwLjY0NzZ9LAoJe3k6MTc4Ny4wLGw6MS4wLHM6MC4wMjk0MixtOjUwLjY4Njl9LAoJe3k6MTgxNy4wLGw6MS4wLHM6MC4wMjk0NSxtOjUwLjcyNTd9LAoJe3k6MTg0Ny4wLGw6MS4wLHM6MC4wMjk0NyxtOjUwLjc2Mzh9Cn0KCgoKCmRlZmluZSBmdW5jdGlvbiBac2NvcmVIZWFkQ2lyY3VtZmVyZW5jZUZvckFnZXRhYmxlcyhzZXggU3RyaW5nLCBhZ2UgRGVjaW1hbCk6CglpZiBzZXggPSAnZmVtYWxlJyB0aGVuICAKICAgICAgICBGaXJzdChIZWFkQ2lyY3VtZmVyZW5jZUZvckFnZUZlbWFsZSBjIHdoZXJlIGMueSA9IGJhc2UuQWdlVG9NaW5pKGFnZSkgKQoJZWxzZSAKICAgICAgICBGaXJzdChIZWFkQ2lyY3VtZmVyZW5jZUZvckFnZU1hbGUgYyB3aGVyZSAgYy55ID0gYmFzZS5BZ2VUb01pbmkoYWdlKSkKICAgICAgICAgICAgCmRlZmluZSBmdW5jdGlvbiBnZW5lcmF0ZVpTY29yZUhlYWRDaXJjdW1mZXJlbmNlRm9yQWdlKHNleCBTeXN0ZW0uU3RyaW5nLCBhZ2UgU3lzdGVtLkRlY2ltYWwsIHdlaWdodCAgU3lzdGVtLkRlY2ltYWwpICA6IAoJIGdlbmVyYXRlWlNjb3JlSGVhZENpcmN1bWZlcmVuY2VGb3JBZ2VkZXQoWnNjb3JlSGVhZENpcmN1bWZlcmVuY2VGb3JBZ2V0YWJsZXMoc2V4LGFnZSksIHdlaWdodCApCgpkZWZpbmUgZnVuY3Rpb24gZ2VuZXJhdGVaU2NvcmVIZWFkQ2lyY3VtZmVyZW5jZUZvckFnZWRldChyb3cgVHVwbGUge3kgU3lzdGVtLkRlY2ltYWwsbCBTeXN0ZW0uRGVjaW1hbCxzIFN5c3RlbS5EZWNpbWFsLG0gU3lzdGVtLkRlY2ltYWx9LCB3ZWlnaHQgIFN5c3RlbS5EZWNpbWFsKToKICAgIGlmIHJvdyBpcyBub3QgbnVsbCB0aGVuIAogICAgICAgIGJhc2UuY29tcHV0ZVpTY29yZSgKICAgICAgICAgICAgd2VpZ2h0LAogICAgICAgICAgICByb3cubSAsIAogICAgICAgICAgICByb3cubCAsCiAgICAgICAgICAgIHJvdy5zIAogICAgICAgICkKICAgIGVsc2UgbnVsbAoKCmRlZmluZSBmdW5jdGlvbiBnZW5lcmF0ZUhlYWRDaXJjdW1mZXJlbmNlRnJvbUFnZShzZXggU3lzdGVtLlN0cmluZywgYWdlIFN5c3RlbS5EZWNpbWFsLCB6c2NvcmUgIFN5c3RlbS5EZWNpbWFsKSA6IAoJIGdlbmVyYXRlSGVhZENpcmN1bWZlcmVuY2VGcm9tQWdlZGV0KFpzY29yZUhlYWRDaXJjdW1mZXJlbmNlRm9yQWdldGFibGVzKHNleCxhZ2UpLHpzY29yZSAgKQoKZGVmaW5lIGZ1bmN0aW9uIGdlbmVyYXRlSGVhZENpcmN1bWZlcmVuY2VGcm9tQWdlZGV0KHJvdyBUdXBsZSB7eSBTeXN0ZW0uRGVjaW1hbCxsIFN5c3RlbS5EZWNpbWFsLHMgU3lzdGVtLkRlY2ltYWwsbSBTeXN0ZW0uRGVjaW1hbH0senNjb3JlICBTeXN0ZW0uRGVjaW1hbCkgOiAKICAgIGlmIHJvdyBpcyBub3QgbnVsbCB0aGVuIAogICAgICAgIGJhc2UuY29tcHV0ZVJldmVyc2VaU2NvcmUoCiAgICAgICAgICAgIHpzY29yZSwKICAgICAgICAgICAgcm93Lm0gLCAKICAgICAgICAgICAgcm93LmwgLAogICAgICAgICAgICByb3cucyAKICAgICAgICApCiAgICBlbHNlIG51bGwgICAgCgogICAgCg=="
    }
  ]
}