# Name: smd_if v0.91 # Type: Client side plugin # Generic multiple if condition tests # Author: Stef Dawson # URL: http://stefdawson.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjY6InNtZF9pZiI7czo2OiJhdXRob3IiO3M6MTE6IlN0ZWYg RGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJodHRwOi8vc3RlZmRhd3Nvbi5jb20v IjtzOjc6InZlcnNpb24iO3M6NDoiMC45MSI7czoxMToiZGVzY3JpcHRpb24iO3M6MzU6Ikdl bmVyaWMgbXVsdGlwbGUgaWYgY29uZGl0aW9uIHRlc3RzIjtzOjQ6ImhlbHAiO3M6NDczNDM6 IjxkaXYgaWQ9InNtZF9oZWxwIj4KCgk8aDE+c21kX2lmPC9oMT4KCgk8cD5BIGdlbmVyaWMg JiM4MjE2O2lmIGNvbmRpdGlvbiYjODIxNzsgdGVzdGVyLiBDYW4gdGVzdCBhbnkgZmllbGQg b3IgdmFyaWFibGUgaW4gdGhlIGN1cnJlbnQgYXJ0aWNsZSwgZmlsZSwgaW1hZ2UsIGxpbmss IDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHZhciwgPGNvZGU+Jmx0O3R4cDp2YXJp YWJsZSAvJmd0OzwvY29kZT4gb3IgPHNwYW4gY2xhc3M9ImNhcHMiPlBIUDwvc3Bhbj4gY29u dGV4dCBmb3IgYSB2YXJpZXR5IG9mIGF0dHJpYnV0ZXMgYW5kIHRha2UgYWN0aW9uIGlmIDxz cGFuIGNsYXNzPSJjYXBzIj5UUlVFPC9zcGFuPiBvciA8c3BhbiBjbGFzcz0iY2FwcyI+RkFM U0U8L3NwYW4+LjwvcD4KCgk8aDI+RmVhdHVyZXM8L2gyPgoKCTx1bD4KCQk8bGk+U3VwcG9y dHMgbW9zdCBtYWpvciBhcnRpY2xlLCBmaWxlLCBpbWFnZSBhbmQgbGluayB2YXJpYWJsZXMg c3VjaCBhcyBzZWN0aW9uLCBjYXRlZ29yeSwgY3VzdG9tIGZpZWxkcywgaWQsIHF1ZXJ5IHN0 cmluZywgYXV0aG9yLCBib2R5LCBleGNlcnB0LCB5YWhkZSB5YWhkZSwgcGx1cyB1cmwgdmFy cywgc2VydmVyIHZhcnMsIHR4cCB2YXJzLCBwaHAgdmFycywgYW5kIHN1Yi1jYXRlZ29yeS9w YXJlbnQgY2hlY2tpbmc8L2xpPgoJCTxsaT5UZXN0cyBpbmNsdWRlIGVxdWFsaXR5LCBpbmVx dWFsaXR5LCBsZXNzIHRoYW4sIGdyZWF0ZXIgdGhhbiwgZGl2aXNpYmxlIGJ5LCBlbXB0eSwg dXNlZCwgZGVmaW5lZCwgYmVnaW5zLCBlbmRzLCBjb250YWlucywgaXMgbnVtZXJpYyAvIGFs cGhhIC8gYWxwaGFudW1lcmljIC8gbG93ZXJjYXNlIC8gdXBwZXJjYXNlLCBhbW9uZyBvdGhl cnM8L2xpPgoJCTxsaT5UZXN0cyBmb3IgbW9yZSB0aGFuIG9uZSBjb25kaXRpb24gYXQgb25j ZSBhbmQgYXBwbGllcyBlaXRoZXIgPHNwYW4gY2xhc3M9ImNhcHMiPkFORDwvc3Bhbj4gbG9n aWMgKGFsbCB0ZXN0cyBtdXN0IHBhc3MpIG9yIE9SIGxvZ2ljIChhbnkgdGVzdCBtdXN0IHBh c3MpPC9saT4KCQk8bGk+QWxsIHRlc3RlZCBmaWVsZHMgYW5kIHZhbHVlcyBhcmUgYXZhaWxh YmxlIHRvIHRoZSBjb250YWluZXIgc28geW91IGNhbiBkaXNwbGF5IHRoZW08L2xpPgoJCTxs aT5DdXN0b20gcmVndWxhci1leHByZXNzaW9uIGZpbHRlcnMgYXJlIGF2YWlsYWJsZSB0byBo ZWxwIHdlZWQgb3V0IGJhZCBkYXRhPC9saT4KCQk8bGk+VWdseSBhbmQgdmVyeSBkaXJ0eS4g VXNlcyA8c3BhbiBjbGFzcz0iY2FwcyI+UEhQPC9zcGFuPiYjODIxNztzIDxjb2RlPmV2YWwo KTwvY29kZT4gY29tbWFuZCB3aGljaCBtb3N0IHByb2dyYW1tZXJzIGNvbmN1ciBzaG91bGQg YmUgcmVuYW1lZCA8Y29kZT5ldmlsKCk8L2NvZGU+PC9saT4KCTwvdWw+CgoJPGgyPkluc3Rh bGxhdGlvbiAvIFVuaW5zdGFsbGF0aW9uPC9oMj4KCgk8cD5Eb3dubG9hZCB0aGUgcGx1Z2lu IGZyb20gZWl0aGVyIDxhIGhyZWY9Imh0dHA6Ly90ZXh0cGF0dGVybi5vcmcvcGx1Z2lucy85 MzAvc21kX2lmIj50ZXh0cGF0dGVybi5vcmc8L2E+LCBvciB0aGUgPGEgaHJlZj0iaHR0cDov L3N0ZWZkYXdzb24uY29tL3N3Ij5zb2Z0d2FyZSBwYWdlPC9hPiwgcGFzdGUgdGhlIGNvZGUg aW50byB0aGUgVHhwIDxlbT5BZG1pbi0mZ3Q7UGx1Z2luczwvZW0+IHBhbmUsIGluc3RhbGwg YW5kIGVuYWJsZSB0aGUgcGx1Z2luLiBWaXNpdCB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVt LnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP2lkPTI1MzU3Ij5mb3J1bSB0aHJlYWQ8 L2E+IGZvciBtb3JlIGluZm8gb3IgdG8gcmVwb3J0IG9uIHRoZSBzdWNjZXNzIG9yIG90aGVy d2lzZSBvZiB0aGUgcGx1Z2luLjwvcD4KCgk8cD5UbyB1bmluc3RhbGwsIHNpbXBseSBkZWxl dGUgZnJvbSB0aGUgPGVtPkFkbWluLSZndDtQbHVnaW5zPC9lbT4gcGFnZS48L3A+CgoJPGgy PlVzYWdlPC9oMj4KCgk8cD5Vc2UgdGhlIHRhZyBpbiBhbnkgcGFnZSwgZm9ybSBvciBhcnRp Y2xlIGNvbnRleHQuIENhbiBhbHNvIGJlIHVzZWQgaW5zaWRlIGZpbGUsIGltYWdlLCBvciBs aW5rIGxpc3RzIHRvIHRha2UgYWN0aW9uIGRlcGVuZGluZyBvbiBhdHRyaWJ1dGVzIG9mIHRo ZSBjdXJyZW50IGl0ZW0uPC9wPgoKCTxoMyBjbGFzcz0idGFnIj5zbWRfaWY8L2gzPgoKCTxw IGNsYXNzPSJ0YWctc3VtbWFyeSI+QXQgdGhlIHBsYWNlIHlvdSB3aXNoIHRvIGNvbXBhcmUg YSBmaWVsZCB3aXRoIGFub3RoZXIgdmFsdWUsIHB1dCB0aGlzIHRhZyB3aXRoIGF0IGxlYXN0 IHRoZSA8Y29kZT5maWVsZDwvY29kZT4gYXR0cmlidXRlLiBTcGVjaWZ5IGVhY2ggZmllbGQg eW91IHdpc2ggdG8gdGVzdCBhcyBhIHNlcmllcyBvZiBjb21tYS1zZXBhcmF0ZWQgaXRlbXMg JiM4MjEyOyB0aG91Z2ggdGhlIGNvbW1hIGlzIG92ZXJyaWRhYmxlIHdpdGggPGNvZGU+cGFy YW1fZGVsaW08L2NvZGU+LiBJZiB0aGUgcmVzdWx0IG9mIGFsbCB0aGUgY29tcGFyaXNvbiB0 ZXN0cyBpcyA8c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj4gdGhlIGNvbnRhaW5lZCBi bG9jayB3aWxsIGJlIGV4ZWN1dGVkLiBJZiB0aGUgcmVzdWx0IGlzIDxzcGFuIGNsYXNzPSJj YXBzIj5GQUxTRTwvc3Bhbj4sIGFueSA8Y29kZT4mbHQ7dHhwOmVsc2UgLyZndDs8L2NvZGU+ IHdpbGwgYmUgZXhlY3V0ZWQgaW5zdGVhZC4gV2l0aG91dCBhbnkgPGNvZGU+Jmx0O3R4cDpl bHNlIC8mZ3Q7PC9jb2RlPiBibG9jaywgbm90aGluZyBpcyBvdXRwdXQgaWYgdGhlIHJlc3Vs dCBpcyA8c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+LjwvcD4KCgk8cD48c3Ryb25n PkF0dHJpYnV0ZXM8L3N0cm9uZz48L3A+CgoJPGRsPgoJCTxkdD48c3BhbiBjbGFzcz0iYXRu bSBtYW5kIj5maWVsZDwvc3Bhbj48L2R0PgoJCTxkZD5Db21tYS1zZXBhcmF0ZWQgbGlzdCBv ZiA8YSBocmVmPSIjZmllbGQiPmZpZWxkczwvYT4gdG8gdGVzdC48L2RkPgoJCTxkdD48c3Bh biBjbGFzcz0iYXRubSI+b3BlcmF0b3I8L3NwYW4+PC9kdD4KCQk8ZGQ+Q29tbWEtc2VwYXJh dGVkIGxpc3Qgb2YgPGEgaHJlZj0iI29wZXJhdG9yIj5vcGVyYXRpb25zPC9hPiBmb3IgY29t cGFyaXNvbiB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGZpZWxkIChlLmcuIDxjb2RlPmVxPC9j b2RlPiwgPGNvZGU+bm90PC9jb2RlPiwgPGNvZGU+YmVnaW5zPC9jb2RlPiwgZXRjKS48L2Rk PgoJCTxkZD5EZWZhdWx0OiA8Y29kZT5lcTwvY29kZT4gZm9yIG1vc3QgdGVzdHMsIDxjb2Rl PmNvbnRhaW5zPC9jb2RlPiBmb3IgcGFyZW50IHRlc3RzPC9kZD4KCQk8ZHQ+PHNwYW4gY2xh c3M9ImF0bm0iPnZhbHVlPC9zcGFuPjwvZHQ+CgkJPGRkPkNvbW1hLXNlcGFyYXRlZCBsaXN0 IG9mIDxhIGhyZWY9IiN2YWx1ZSI+dmFsdWVzPC9hPiB3aXRoIHdoaWNoIHRvIGNvbXBhcmUg dGhlIGNvcnJlc3BvbmRpbmcgZmllbGRzLjwvZGQ+CgkJPGR0PjxzcGFuIGNsYXNzPSJhdG5t Ij5sb2dpYzwvc3Bhbj48L2R0PgoJCTxkZD5Ib3cgbXVsdGlwbGUgdGVzdHMgYXJlIGpvaW5l ZDogQ2hvb3NlIGZyb206Cgk8ZGw+CgkJPGRkPjxjb2RlPmFuZDwvY29kZT46IGFsbCBjb25k aXRpb25zIG11c3QgYmUgbWV0IGZvciBhIDxzcGFuIGNsYXNzPSJjYXBzIj5UUlVFPC9zcGFu PiByZXN1bHQuPC9kZD4KCQk8ZGQ+PGNvZGU+b3I8L2NvZGU+OiBhbnkgb2YgdGhlIGNvbmRp dGlvbnMgdGhhdCBtYXRjaCB3aWxsIGdpdmUgYSA8c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwv c3Bhbj4gcmVzdWx0LjwvZGQ+Cgk8L2RsPjwvZGQ+CgkJPGRkPkRlZmF1bHQ6IDxjb2RlPmFu ZDwvY29kZT48L2RkPgoJCTxkdD48c3BhbiBjbGFzcz0iYXRubSI+Y2FzZV9zZW5zaXRpdmU8 L3NwYW4+PC9kdD4KCQk8ZGQ+V2hldGhlciB0byBwZXJmb3JtIGNhc2Utc2Vuc2l0aXZlIGNv bXBhcmlzb25zLiBOb3RlIHRoYXQgaWYgdXNpbmcgPGNvZGU+aXNsb3dlcjwvY29kZT4gb3Ig PGNvZGU+aXN1cHBlcjwvY29kZT4gaW4gYSBjb21wYXJpc29uLCBjYXNlIHNlbnNpdGl2aXR5 IHdpbGwgYXV0b21hdGljYWxseSBiZSBzd2l0Y2hlZCBvbiB3aGlsZSB0aGUgdGVzdCBpcyB0 YWtpbmcgcGxhY2UuIFZhbHVlczoKCTxkbD4KCQk8ZGQ+MSA9IHllczwvZGQ+CgkJPGRkPjAg PSBubzwvZGQ+Cgk8L2RsPjwvZGQ+CgkJPGRkPkRlZmF1bHQ6IDA8L2RkPgoJCTxkdD48c3Bh biBjbGFzcz0iYXRubSI+ZmlsdGVyPC9zcGFuPjwvZHQ+CgkJPGRkPkxpc3Qgb2YgcmVndWxh ciBleHByZXNzaW9ucyB3aXRoIHdoaWNoIHRvIGZpbHRlciBvbmUgb3IgbW9yZSBmaWVsZHMv dmFsdWVzLiBTZWUgPGEgaHJlZj0iI2ZpbHRlcmluZyI+ZmlsdGVyaW5nPC9hPi48L2RkPgoJ CTxkdD48c3BhbiBjbGFzcz0iYXRubSI+cmVwbGFjZTwvc3Bhbj48L2R0PgoJCTxkZD5MaXN0 IG9mIGl0ZW1zIHdpdGggd2hpY2ggdG8gcmVwbGFjZSBlYWNoIG9mIHRoZSBtYXRjaGluZyBm aWx0ZXJzLjwvZGQ+CgkJPGR0PjxzcGFuIGNsYXNzPSJhdG5tIj5maWx0ZXJfdHlwZTwvc3Bh bj48L2R0PgoJCTxkZD5MaW1pdCB0aGUgZmlsdGVyIHRvIGNlcnRhaW4gdHlwZXMgb2YgdGVz dC4gQ2hvb3NlIGZyb20gYW55IG9mOgoJPGRsPgoJCTxkZD48Y29kZT5hbGw8L2NvZGU+PC9k ZD4KCQk8ZGQ+PGNvZGU+dXJsdmFyPC9jb2RlPjwvZGQ+CgkJPGRkPjxjb2RlPnBvc3R2YXI8 L2NvZGU+PC9kZD4KCQk8ZGQ+PGNvZGU+c3ZydmFyPC9jb2RlPjwvZGQ+CgkJPGRkPjxjb2Rl PnR4cHZhcjwvY29kZT48L2RkPgoJCTxkZD48Y29kZT5waHB2YXI8L2NvZGU+PC9kZD4KCQk8 ZGQ+b3IgYW55IGZpZWxkIG5hbWU8L2RkPgoJPC9kbD48L2RkPgoJCTxkZD5EZWZhdWx0OiA8 Y29kZT5hbGw8L2NvZGU+PC9kZD4KCQk8ZHQ+PHNwYW4gY2xhc3M9ImF0bm0iPmZpbHRlcl9v bjwvc3Bhbj48L2R0PgoJCTxkZD5BcHBseSB0aGUgZmlsdGVyIHRvIGVpdGhlciB0aGUgPGNv ZGU+ZmllbGQ8L2NvZGU+LCB0aGUgPGNvZGU+dmFsdWU8L2NvZGU+IG9yIGJvdGguIFBsZWFz ZSBzZWUgdGhlIDxhIGhyZWY9IiNmY2F2ZWF0Ij5maWx0ZXJpbmcgY2F2ZWF0PC9hPiBiZWxv dyBmb3IgaW1wb3J0YW50IGluZm9ybWF0aW9uIGFib3V0IHRoaXMgYXR0cmlidXRlLjwvZGQ+ CgkJPGRkPkRlZmF1bHQ6IDxjb2RlPmZpZWxkPC9jb2RlPjwvZGQ+CgkJPGR0PjxzcGFuIGNs YXNzPSJhdG5tIj5wYXJhbV9kZWxpbTwvc3Bhbj48L2R0PgoJCTxkZD5EZWxpbWl0ZXIgdXNl ZCBiZXR3ZWVuIGVhY2ggZmllbGQsIG9wZXJhdG9yIG9yIHZhbHVlIGluIGEgbXVsdGktdGVz dC4gWW91IG5vcm1hbGx5IG9ubHkgbmVlZCB0byBjaGFuZ2UgdGhpcyBpZiB5b3UgaGF2ZSB1 c2VkIHRoYXQgY2hhcmFjdGVyIGluIHRoZSBuYW1lIG9mIGEgY3VzdG9tIGZpZWxkLCBmb3Ig ZXhhbXBsZS48L2RkPgoJCTxkZD5EZWZhdWx0OiAgY29tbWEgKCwpPC9kZD4KCQk8ZHQ+PHNw YW4gY2xhc3M9ImF0bm0iPm1vZF9kZWxpbTwvc3Bhbj48L2R0PgoJCTxkZD5EZWxpbWl0ZXIg dXNlZCB3aGVuIHNwZWNpZnlpbmcgZmllbGQgb3Igb3BlcmF0b3IgbW9kaWZpZXJzIGZvcjoK CTxkbD4KCQk8ZGQ+dXJsdmFyLCBwb3N0dmFyLCBzdnJ2YXIsIHR4cHZhcjwvZGQ+CgkJPGRk PnBhcmVudCBmcm9tIDxjb2RlPkxWTDwvY29kZT4gYW5kIDxjb2RlPkNBVDwvY29kZT48L2Rk PgoJCTxkZD5zZXBhcmF0aW5nIGFuIG9wZXJhdG9yIGZyb20gdGhlIDxzcGFuIGNsYXNzPSJj YXBzIj5OVU08L3NwYW4+IG9yIDxzcGFuIGNsYXNzPSJjYXBzIj5OT1NQQUNFPC9zcGFuPiBt b2RpZmllcnM8L2RkPgoJPC9kbD48L2RkPgoJCTxkZD5EZWZhdWx0OiBjb2xvbiAoOik8L2Rk PgoJCTxkdD48c3BhbiBjbGFzcz0iYXRubSI+bGlzdF9kZWxpbTwvc3Bhbj48L2R0PgoJCTxk ZD5EZWxpbWl0ZXIgdXNlZCB3aGVuIHNwZWNpZnlpbmcgYSBsaXN0IG9mIHZhbHVlcyB0byBj aGVjayB2aWEgdGhlIDxjb2RlPmluPC9jb2RlPiwgPGNvZGU+bm90aW48L2NvZGU+LCA8Y29k ZT5iZXR3ZWVuPC9jb2RlPiBhbmQgPGNvZGU+cmFuZ2U8L2NvZGU+IG9wZXJhdG9ycy48L2Rk PgoJCTxkZD5EZWZhdWx0OiBmb3J3YXJkLXNsYXNoICgvKTwvZGQ+CgkJPGR0PjxzcGFuIGNs YXNzPSJhdG5tIj52YXJfcHJlZml4PC9zcGFuPjwvZHQ+CgkJPGRkPlByZWZpeCBhbnkgcmVw bGFjZW1lbnQgdmFyaWFibGUgbmFtZXMgd2l0aCB0aGlzIHN0cmluZy4gSWYgbmVzdGluZyBz bWRfaWYgdGFncywgeW91IHdpbGwgcHJvYmFibHkgbmVlZCB0byBzcGVjaWZ5IHRoaXMgb24g YW55IGlubmVyIHNtZF9pZiB0YWdzIHRvIHByZXZlbnQgdGhlIHtyZXBsYWNlbWVudH0gdmFy aWFibGVzIGNsYXNoaW5nLjwvZGQ+CgkJPGRkPkRlZmF1bHQ6IDxjb2RlPnNtZF9pZl88L2Nv ZGU+PC9kZD4KCTwvZGw+CgoJPHA+VGhlIGxpc3RzIGFyZSBwcm9jZXNzZWQgaW4gb3JkZXIs IGkuZS4gdGhlIDFzdCBmaWVsZCB1c2VzIHRoZSAxc3Qgb3BlcmF0b3IgaW4gdGhlIGxpc3Qg YW5kIGNvbXBhcmVzIGl0IHRvIHRoZSAxc3QgdmFsdWU7IHRoZSAybmQgZmllbGQgdXNlcyB0 aGUgMm5kIG9wZXJhdG9yIGFuZCBjb21wYXJlcyBpdCB0byB0aGUgMm5kIHZhbHVlLCBhbmQg c28gb24uIFZhbHVlcyBzaG91bGQgdXN1YWxseSBiZSBzcGVjaWZpZWQgd2l0aCBwbGFjZWhv bGRlcnMgdG8gbWFpbnRhaW4gb3JkZXI6IGUuZy4gPGNvZGU+dmFsdWU9JnF1b3Q7LCA0LCwg dG9wJnF1b3Q7PC9jb2RlPjwvcD4KCgk8cD5Ob3RlIHRoYXQsIGFsdGhvdWdoIHRoZSBmaXJz dCB0aHJlZSBhdHRyaWJ1dGVzIGFyZSB1c3VhbGx5IG1hbmRhdG9yeSwgaWYgeW91IGhhcHBl biB0byByZXF1aXJlIHRoZSBkZWZhdWx0IG9wZXJhdG9yIGZvciBhbGwgeW91ciB0ZXN0cywg eW91IGNhbiBzYWZlbHkgb21pdCA8Y29kZT5vcGVyYXRvcjwvY29kZT4uIFNpbWlsYXJseSB3 aXRoIHZhbHVlczogaWYgeW91IGFyZSBlbnRpcmVseSB0ZXN0aW5nIHRoZSBleGlzdGVuY2Ug b3IgdHlwZSBvZiB2YXJpYWJsZXMsIHlvdSBjYW4gb21pdCB0aGUgPGNvZGU+dmFsdWU8L2Nv ZGU+IHBhcmFtZXRlciBpZiB5b3Ugd2lzaC4gQW5kIGlmIHlvdSBhcmUgdGVzdGluZyB0aGUg c2FtZSA8Y29kZT5maWVsZDwvY29kZT4gYWdhaW4gYW5kIGFnYWluIGZvciBkaWZmZXJpbmcg Y29uZGl0aW9ucywgeW91IGNhbiBsaXN0IGl0IGp1c3Qgb25jZSBhcyBhIGNvbnZlbmllbnQg c2hvcnRjdXQuPC9wPgoKCTxoMyBjbGFzcz0iYXRubSAiIGlkPSJmaWVsZCI+ZmllbGQ8L2gz PgoKCTxwPkxpc3Qgb2YgZmllbGQgbG9jYXRpb25zIHRvIGxvb2sgYXQuIEEgbm9uLWV4aGF1 c3RpdmUgbGlzdCBvZiBzb21lIHVzZWZ1bCB2YWx1ZXMgYXJlOjwvcD4KCgk8dWw+CgkJPGxp Pjxjb2RlPnM8L2NvZGU+IChnbG9iYWwgc2VjdGlvbikgb3IgPGNvZGU+c2VjdGlvbjwvY29k ZT4gKGFydGljbGUgc2VjdGlvbik8L2xpPgoJCTxsaT48Y29kZT5jPC9jb2RlPiAoZ2xvYmFs IGNhdGVnb3J5KSBvciA8Y29kZT5jYXRlZ29yeTE8L2NvZGU+LCBvciA8Y29kZT5jYXRlZ29y eTI8L2NvZGU+IGlmIG9uIGFuIGFydGljbGUgcGFnZTwvbGk+CgkJPGxpPjxjb2RlPmF1dGhv cmlkPC9jb2RlPiBvciA8Y29kZT5hdXRob3I8L2NvZGU+PC9saT4KCQk8bGk+PGNvZGU+aWQ8 L2NvZGU+IChmaWxlL2xpbmsvaW1hZ2UvYXJ0aWNsZSBJRCkuIEluIGFuIGluZGl2aWR1YWwg YXJ0aWNsZSBjb250ZXh0LCB1c2UgPGNvZGU+dGhpc2lkPC9jb2RlPiBpbnN0ZWFkPC9saT4K CQk8bGk+PGNvZGU+cXVlcnk8L2NvZGU+ICh0aGUgcXVlcnkgc3RyaW5nIGZyb20gdGhlIHNl YXJjaCBmb3JtKTwvbGk+CgkJPGxpPjxjb2RlPnBnPC9jb2RlPiAodGhlIGN1cnJlbnQgcGFn ZSBudW1iZXIgaW4gbGlzdHMpPC9saT4KCQk8bGk+PGNvZGU+bW9udGg8L2NvZGU+IChjdXJy ZW50IG1vbnRoIGZpZWxkIGZyb20gdGhlIGFkZHJlc3MgYmFyKTwvbGk+CgkJPGxpPjxjb2Rl PnN0YXR1czwvY29kZT4gKGRvY3VtZW50IHN0YXR1czogMjAwLCA0MDQsIDQwMywgZXRjKTwv bGk+CgkJPGxpPjxjb2RlPnBhZ2U8L2NvZGU+ICh0aGUgVHhwIFBhZ2UgdGVtcGxhdGUgdXNl ZCBieSB0aGlzIHNlY3Rpb24pPC9saT4KCQk8bGk+PGNvZGU+bmV4dF9pZDwvY29kZT4gLyA8 Y29kZT5wcmV2X2lkPC9jb2RlPiAoSUQgb2YgbmV4dC9wcmV2IGRvY3VtZW50IGlmIG9uIGFy dGljbGUgcGFnZSk8L2xpPgoJCTxsaT48Y29kZT5uZXh0X3RpdGxlPC9jb2RlPiAvIDxjb2Rl PnByZXZfdGl0bGU8L2NvZGU+KFRpdGxlIG9mIG5leHQvcHJldiBkb2N1bWVudCBpZiBvbiBh cnRpY2xlIHBhZ2UpPC9saT4KCQk8bGk+PGNvZGU+bmV4dF91dGl0bGU8L2NvZGU+IC8gPGNv ZGU+cHJldl91dGl0bGU8L2NvZGU+ICh1cmwtdGl0bGUgb2YgbmV4dC9wcmV2IGRvY3VtZW50 IGlmIG9uIGFydGljbGUgcGFnZSk8L2xpPgoJCTxsaT48Y29kZT5wZXJtbGlua19tb2RlPC9j b2RlPiAodGFrZSBhY3Rpb24gYmFzZWQgb24gb25lIG9mIHRoZSBtZXNzeS9jbGVhbiA8c3Bh biBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBzY2hlbWVzKTwvbGk+CgkJPGxpPjxjb2RlPm90 aGVyIGFydGljbGUvZmlsZS9saW5rIGZpZWxkPC9jb2RlPiAoZS5nLiBib2R5LCBleGNlcnB0 LCBhcnRpY2xlX2ltYWdlLCBrZXl3b3JkcywgbGlua2FubWUsIGZpbGVuYW1lLCBkb3dubG9h ZHMsICYjODIzMDspPC9saT4KCQk8bGk+PGNvZGU+bXlfY3VzdG9tX2ZpZWxkX25hbWU8L2Nv ZGU+IChhbnkgY3VzdG9tIGZpZWxkcyB5b3UgaGF2ZSBkZWZpbmVkKTwvbGk+CgkJPGxpPjxj b2RlPnVybHZhcjp2YXJfbmFtZTwvY29kZT4gKGFueSB2YXJpYWJsZSBpbiB0aGUgYWRkcmVz cyBiYXIgYWZ0ZXIgdGhlIDxjb2RlPj88L2NvZGU+KTwvbGk+CgkJPGxpPjxjb2RlPnBvc3R2 YXI6dmFyX25hbWU8L2NvZGU+IChhbnkgdmFyaWFibGUgcG9zdGVkIGZyb20gYW4gPHNwYW4g Y2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+IGZvcm0pPC9saT4KCQk8bGk+PGNvZGU+c3ZydmFy OnZhcl9uYW1lPC9jb2RlPiAoYW55IHN0YW5kYXJkIHNlcnZlciB2YXJpYWJsZSwgZS5nLiA8 c3BhbiBjbGFzcz0iY2FwcyI+SFRUUDwvc3Bhbj5fVVNFUl9BR0VOVCk8L2xpPgoJCTxsaT48 Y29kZT50eHB2YXI6bXlfdmFyPC9jb2RlPiAoYW55IFRleHRwYXR0ZXJuIHZhcmlhYmxlIHNl dCB3aXRoIDxjb2RlPiZsdDt0eHA6dmFyaWFibGUgbmFtZT0mcXVvdDtteV92YXImcXVvdDsg LyZndDs8L2NvZGU+KTwvbGk+CgkJPGxpPjxjb2RlPnBocHZhcjpteV92YXI8L2NvZGU+IChh bnkgPHNwYW4gY2xhc3M9ImNhcHMiPlBIUDwvc3Bhbj4gdmFyaWFibGUgPGVtPmluIHRoZSBn bG9iYWwgc2NvcGU8L2VtPik8L2xpPgoJCTxsaT48Y29kZT5wYXJlbnQ6b3B0aW9uYWxfbW9k aWZpZXJzPC9jb2RlPiAod2hldGhlciB0aGUgZ2l2ZW4gY2F0ZWdvcnkgaXMgYSBkZXNjZW5k ZW50IG9mIGFub3RoZXIgY2F0ZWdvcnkpPC9saT4KCQk8bGk+PGNvZGU+TlVMTDwvY29kZT4g KHVzZWZ1bCB3aGVuIGNvbXBhcmluZyBhcmJpdHJhcnkgdmFsdWVzIGZvciBlbXB0aW5lc3Mp PC9saT4KCTwvdWw+CgoJPHA+SWYgeW91IHNwZWNpZnkgYSBmaWVsZCBuYW1lIHRoYXQgZG9l cyBub3QgZXhpc3QsIHRoZSB0ZXh0IHlvdSB1c2Ugd2lsbCBiZSB0YWtlbiB2ZXJiYXRpbSBp biBtb3N0IGNhc2VzLjwvcD4KCgk8cD5UbyBhdm9pZCBhbWJpZ3VpdHkgeW91IGNhbiBwcmVm aXggdGhlIGZpZWxkIG5hbWUgd2l0aCBvbmUgb2YgPGNvZGU+cHJldGV4dDwvY29kZT4sIDxj b2RlPmFydGljbGU8L2NvZGU+LCA8Y29kZT5pbWFnZTwvY29kZT4sIDxjb2RlPmxpbms8L2Nv ZGU+IG9yIDxjb2RlPmZpbGU8L2NvZGU+LCBzZXBhcmF0aW5nIGl0IGZyb20gdGhlIGZpZWxk IGJ5IDxjb2RlPnBhcmFtX2RlbGltPC9jb2RlPi48L3A+CgoJPHA+SWYgeW91IHdpc2ggdG8g Y29tcGFyZSBhIGZpZWxkIHRoYXQgbWlnaHQgY29udGFpbiA8c3BhbiBjbGFzcz0iY2FwcyI+ SFRNTDwvc3Bhbj4gKGUuZyA8Y29kZT5ib2R5PC9jb2RlPiksIGFkZCB0aGUgbW9kaWZpZXIg PGNvZGU+Ok5PVEFHUzwvY29kZT4gdG8gdGhlIGVuZCBvZiB0aGUgZmllbGQuIEl0IHdpbGwg aGF2ZSBpdHMgPHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+IGFuZCA8c3BhbiBjbGFz cz0iY2FwcyI+UEhQPC9zcGFuPiB0YWdzIHN0cmlwcGVkIGZyb20gaXQgYW5kIHdpbGwgYWxz byBiZSB0cmltbWVkIHRvIHJlbW92ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFjZXMuIFlv dSBtYXkgY2hvb3NlIHRvIHNvbGVseSByZW1vdmUgc3BhY2VzIGZyb20gYm90aCB0aGUgc3Rh cnQgYW5kIGVuZCBvZiBhbnkgZmllbGQgYnkgYWRkaW5nIDxjb2RlPjpUUklNPC9jb2RlPiB0 byB0aGUgZW5kIG9mIHRoZSBmaWVsZC48L3A+CgoJPHA+SWYgeW91IHN1c3BlY3QgYSBmaWVs ZCBtaWdodCBjb250YWluIDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPmlzaCBpbnB1 dCBsaWtlIDxjb2RlPiZsdDs8L2NvZGU+LCA8Y29kZT4mZ3Q7PC9jb2RlPiwgPGNvZGU+JmFt cDs8L2NvZGU+IG9yIHF1b3Rlcy9hcG9zdHJvcGhlcyB5b3UgY2FuIGVsZWN0IHRvIGNvbnZl cnQgdGhlbSB0byBlbnRpdGllcyBsaWtlIDxjb2RlPiZhbXA7bHQ7PC9jb2RlPiwgPGNvZGU+ JmFtcDtxdW90OzwvY29kZT4sIGV0Yy4gSnVzdCBzcGVjaWZ5IHRoZSA8Y29kZT46RVNDPC9j b2RlPiBtb2RpZmllciB0byByZXBsYWNlIGV2ZXJ5dGhpbmcgZXhjZXB0IGFwb3N0cm9waGVz IHdpdGggaXRzIGVudGl0eSBlcXVpdmFsZW50LCBvciB1c2UgPGNvZGU+OkVTQ0FMTDwvY29k ZT4gdG8gaW5jbHVkZSBhcG9zdHJvcGhlcy48L3A+CgoJPHA+VGhlIHNwZWNpYWwgZmllbGQg PGNvZGU+cGFyZW50PC9jb2RlPiBjaGVja3MgdGhlIHBhcmVudCBjYXRlZ29yeSBmb3IgYSBt YXRjaC4gVW5saWtlIHRoZSBvdGhlciBmaWVsZCB0eXBlcywgdGhlIGRlZmF1bHQgPGEgaHJl Zj0iI29wZXJhdG9yIj5vcGVyYXRvcjwvYT4gZm9yIHBhcmVudCBpcyAmIzgyMTY7Y29udGFp bnMmIzgyMTc7LiBUaGlzIGlzIGJlY2F1c2UgdGhlIGVudGlyZSB0cmVlIGlzIGNoZWNrZWQg Zm9yIGEgbWF0Y2gsIHN0YXJ0aW5nIGZyb20gdGhlIHRvcCBvZiB0aGUgdHJlZSBkb3duIHRv IHRoZSBjdXJyZW50IGNhdGVnb3J5LiBJbnRlcm5hbGx5LCB0aGUgcGx1Z2luIG1ha2VzIHVw IGEgJiM4MjIwO2JyZWFkY3J1bWIgdHJhaWwmIzgyMjE7IG9mIGNhdGVnb3JpZXMgaW4gdGhl IGN1cnJlbnQgYnJhbmNoLCBlYWNoIHNlcGFyYXRlZCBieSBhIHNwYWNlLCBzbyB0ZXN0aW5n IGZvciBlcXVhbGl0eSB3b3VsZCByZXF1aXJlIHB1dHRpbmcgdGhlbSBhbGwgaW4gdGhlIDxh IGhyZWY9IiN2YWx1ZSI+dmFsdWU8L2E+IHBhcmFtZXRlci48L3A+CgoJPHA+WW91IGFyZSBv ZiBjb3Vyc2UgZnJlZSB0byBjaG9vc2UgYW4gYWx0ZXJuYXRpdmUgb3BlcmF0b3I7IDxjb2Rl PmJlZ2luczwvY29kZT4gaXMgdmVyeSB1c2VmdWwgZm9yIHRlc3RpbmcgaWYgdGhlIHRvcCBs ZXZlbCBjYXRlZ29yeSBtYXRjaGVzIHRoZSBvbmUgZ2l2ZW4gaW4gdGhlIDxjb2RlPnZhbHVl PC9jb2RlPiBmaWVsZC48L3A+CgoJPHA+SWYgeW91IHVzZSA8Y29kZT5wYXJlbnQ6TFZMbjwv Y29kZT4sIHRoZSBjb21wYXJpc29uIHdpbGwgYmUgcmVzdHJpY3RlZCB0byB0aGF0ICYjODIy MDtsZXZlbCYjODIyMTsgb2Ygc3ViLWNhdGVnb3J5OyBMVkwxIGlzIHRoZSAmIzgyMjA7dG9w JiM4MjIxOyBsZXZlbCwgTFZMMiBpcyB0aGUgbmV4dCBzdWItY2F0ZWdvcnkgbGV2ZWwsIGFu ZCBzbyBvbi4gV2hlbiB1c2luZyB0aGVzZSBtb2RpZmllcnMsIHRoZSAmIzgyMTY7ZXEmIzgy MTc7IG9wZXJhdG9yIGJlY29tZXMgbW9yZSB1c2VmdWwgYmVjYXVzZSB5b3UgYXJlIGNvbXBh cmluZyBhIHNpbmdsZSBwYXJlbnQgY2F0ZWdvcnkuPC9wPgoKCTxwPklmIHlvdSB3aXNoIHRv IGNvbXBhcmUgYWdhaW5zdCB0aGUgY2F0ZWdvcnkmIzgyMTc7cyB0aXRsZSBpbnN0ZWFkIG9m IGl0cyBuYW1lLCBhZGQgdGhlIDxjb2RlPjpUVEw8L2NvZGU+IG1vZGlmaWVyLiBUbyB0ZXN0 IHRoZSBudW1iZXIgb2YgY2hpbGRyZW4gdGhlIGdpdmVuIGNhdGVnb3J5IGhhcywgc3BlY2lm eSA8Y29kZT46S0lEUzwvY29kZT4uIE5vdGUgdGhhdCA8c3BhbiBjbGFzcz0iY2FwcyI+VFRM PC9zcGFuPiBhbmQgPHNwYW4gY2xhc3M9ImNhcHMiPktJRFM8L3NwYW4+IGFyZSBtdXR1YWxs eSBleGNsdXNpdmUgYW5kIGlmIHRoZXkgYXJlIGJvdGggZW1wbG95ZWQsIHRoZSBsYXN0IG9u ZSB1c2VkIHRha2VzIHByaW9yaXR5LjwvcD4KCgk8cD5XaGVuIHVzaW5nIGFydGljbGVzLCB5 b3UgY2FuIGZ1cnRoZXIgbW9kaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIHBhcmVudCB1c2lu ZyB0aGUgPGNvZGU+Q0FUbjwvY29kZT4gc3ludGF4ICh3aGVyZSAmIzgyMTY7biYjODIxNzsg aXMgMSBvciAyKS4gU3BlY2lmeWluZyAmIzgyMjA7cGFyZW50JiM4MjIxOyB3aXRob3V0IDxj b2RlPkNBVG48L2NvZGU+IHdpbGwgdXNlIHRoZSBnbG9iYWwgY2F0ZWdvcnkgKDxjb2RlPj9j PTwvY29kZT4pLiBJZiB5b3UgYWRkIDxjb2RlPjpDQVRuPC9jb2RlPiBpdCB3aWxsIGluc3Rl YWQgY29tcGFyZSB0aGUgYXJ0aWNsZSYjODIxNztzIGNhdGVnb3J5MSBvciBjYXRlZ29yeTIg cmVzcGVjdGl2ZWx5LjwvcD4KCgk8cD5Zb3UgY2FuIHVzZSA8c3BhbiBjbGFzcz0iY2FwcyI+ Q0FUPC9zcGFuPiwgPHNwYW4gY2xhc3M9ImNhcHMiPkxWTDwvc3Bhbj4gYW5kIDxzcGFuIGNs YXNzPSJjYXBzIj5UVEw8L3NwYW4+L0tJRFMgaW4gY29tYmluYXRpb24sIGluZGVwZW5kZW50 bHkgb3Igbm90IGF0IGFsbC4gVGhpcyBhbGxvd3MgY29tcGFyaXNvbnMgc3VjaCBhcyAmIzgy MjA7aWYgdGhlIDJuZCBzdWItY2F0ZWdvcnkgb2YgY2F0ZWdvcnkxIGVxdWFscyBibGFoYmxh aCYjODIyMTsgb3IgJiM4MjIwO2lmIGNhdGVnb3J5MiBpcyBhIGNoaWxkIG9mIGJsYWhibGFo JiM4MjIxOy4gU2VlIDxhIGhyZWY9IiNlZzQiPkV4YW1wbGUgNDwvYT4uPC9wPgoKCTxwPk9u ZSBvdGhlciBzcGVjaWFsIGZpZWxkIGlzIDxjb2RlPk5VTEw8L2NvZGU+LiBUaGlzIGlzIGV4 YWN0bHkgd2hhdCBpdCBzYXlzIGl0IGlzOiBlbXB0eS4gVGhlIHJlYXNvbiBmb3IgaXRzIGlu Y2x1c2lvbiBpcyB0aGF0IHNvbWV0aW1lcyB5b3Ugd2lzaCB0byB0ZXN0IHNvbWV0aGluZyB0 aGF0IGlzbiYjODIxNzt0IGEgdHJ1ZSB2YXJpYWJsZSAmIzgyMTI7IGUuZy4gYSByZXBsYWNl bWVudCB2YXJpYWJsZSBmcm9tIHNtZF92YXJzIG9yIHNtZF9lYWNoICYjODIxMjsgdG8gc2Vl IGlmIGl0JiM4MjE3O3MgZW1wdHkgb3Igbm90LjwvcD4KCgk8cD5JZiB5b3Ugd2VyZSB0byBw dXQgdGhpczo8L3A+CgoJPHA+PGNvZGU+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7e3Jl c3VsdH0mcXVvdDsgb3BlcmF0b3I9JnF1b3Q7aXNlbXB0eSZxdW90OyZndDs8L2NvZGU+PC9w PgoKCTxwPnlvdSB3b3VsZCBub3QgZ2V0IHRoZSByZXN1bHQgeW91IGV4cGVjdCAoaXQmIzgy MTc7cyBwcmV0dHkgZXNvdGVyaWMgYnV0IGl0IHJldm9sdmVzIGFyb3VuZCB0aGUgZmFjdCB0 aGF0IDxjb2RlPiZxdW90OyZxdW90OzwvY29kZT4gKGFzIGEgdmFyaWFibGUgbmFtZSkgaXMg bm90IGVtcHR5LCBpdCYjODIxNztzIGludmFsaWQpLiBUbyBnZXQgcm91bmQgdGhpcyB5b3Ug bWF5IHVzZSA8c3BhbiBjbGFzcz0iY2FwcyI+TlVMTDwvc3Bhbj4gYXMgYSBwbGFjZWhvbGRl ciBhbmQgbW92ZSB0aGUgdGhpbmcgeW91IHdhbnQgdG8gY2hlY2sgaW50byB0aGUgPGNvZGU+ dmFsdWU8L2NvZGU+IGluc3RlYWQsIGUuZzo8L3A+CgoJPHA+PGNvZGU+Jmx0O3R4cDpzbWRf aWYgZmllbGQ9JnF1b3Q7TlVMTCZxdW90OyBvcGVyYXRvcj0mcXVvdDtlcSZxdW90OyB2YWx1 ZT0mcXVvdDt7cmVzdWx0fSZxdW90OyZndDs8L2NvZGU+PC9wPgoKCTxwPndpbGwgdGVzdCB0 aGUgPHNwYW4gY2xhc3M9ImNhcHMiPk5VTEw8L3NwYW4+IG9iamVjdCAoaS5lLiAmIzgyMTY7 ZW1wdGluZXNzJiM4MjE3OykgdG8gc2VlIGlmIGl0JiM4MjE3O3MgZXF1YWwgdG8gdGhlIDxj b2RlPntyZXN1bHR9PC9jb2RlPiByZXBsYWNlbWVudCB2YXJpYWJsZS4gWW91IGNhbiB1c2Ug c2ltaWxhciBsb2dpYyB0byB0ZXN0IGZvciBvcHRpb25hbCB2YXJpYWJsZXMgYnkgc3dhcHBp bmcgdGhlIGZpZWxkIGFuZCB2YWx1ZSwgbGlrZSB0aGlzOjwvcD4KCgk8cD48Y29kZT4mbHQ7 dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDs3JnF1b3Q7IG9wZXJhdG9yPSZxdW90O2d0JnF1b3Q7 IHZhbHVlPSZxdW90O3tyZXN1bHR9JnF1b3Q7Jmd0OzwvY29kZT48L3A+CgoJPHA+VGhhdCB3 b3VsZCBzZWUgaWYgdGhlIHJlcGxhY2VtZW50IHZhcmlhYmxlIDxjb2RlPntyZXN1bHR9PC9j b2RlPiB3YXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDcgKHRoYXQmIzgyMTc7cyBub3QgYSB0 eXBvLCB0aGUgbG9naWMgaXMgcmV2ZXJzZWQgaW4gdGhpcyBjYXNlOiBpdCBpcyBpbnRlcnBy ZXRlZCBhczogJiM4MjIwO2lzIDcgZ3JlYXRlciB0aGFuIHtyZXN1bHR9JiM4MjIxOywgd2hp Y2ggaXMgdGhlIHNhbWUgYXMgJiM4MjIwO2lzIHtyZXN1bHR9IGxlc3MgdGhhbiBvciBlcXVh bCB0byA3JiM4MjIxOyEpPC9wPgoKCTxoMyBjbGFzcz0iYXRubSAiIGlkPSJvcGVyYXRvciI+ b3BlcmF0b3I8L2gzPgoKCTxwPkxpc3Qgb2Ygb3BlcmF0b3JzIHRvIGFwcGx5LCBpbiBvcmRl ciwgdG8gZWFjaCBmaWVsZC4gQ2hvb3NlIGZyb206PC9wPgoKCTx1bD4KCQk8bGk+PGNvZGU+ ZXE8L2NvZGU+IEVxdWFsICh0aGUgZGVmYXVsdCBmb3IgYWxsIGV4Y2VwdCAmIzgyMTY7cGFy ZW50JiM4MjE3Oyk8L2xpPgoJCTxsaT48Y29kZT5ub3Q8L2NvZGU+IE5vdCBlcXVhbDwvbGk+ CgkJPGxpPjxjb2RlPmx0PC9jb2RlPiBMZXNzIHRoYW48L2xpPgoJCTxsaT48Y29kZT5ndDwv Y29kZT4gR3JlYXRlciB0aGFuPC9saT4KCQk8bGk+PGNvZGU+bGU8L2NvZGU+IExlc3MgdGhh biBvciBlcXVhbCB0bzwvbGk+CgkJPGxpPjxjb2RlPmdlPC9jb2RlPiBHcmVhdGVyIHRoYW4g b3IgZXF1YWwgdG88L2xpPgoJCTxsaT48Y29kZT5pbjwvY29kZT4gRmllbGQgaXMgb25lIG9m IGEgbGlzdCBvZiB2YWx1ZXMgKHVzZSA8Y29kZT5saXN0X2RlbGltPC9jb2RlPiB0byBzZXBh cmF0ZSB2YWx1ZXMpPC9saT4KCQk8bGk+PGNvZGU+bm90aW48L2NvZGU+IEZpZWxkIGlzIG5v dCBvbmUgb2YgdGhlIGdpdmVuIGxpc3Qgb2YgdmFsdWVzICh1c2UgPGNvZGU+bGlzdF9kZWxp bTwvY29kZT4gdG8gc2VwYXJhdGUgdmFsdWVzKTwvbGk+CgkJPGxpPjxjb2RlPmRpdmlzaWJs ZTwvY29kZT4gRmllbGQgaXMgZXhhY3RseSBkaXZpc2libGUgYnkgdGhlIHZhbHVlPC9saT4K CQk8bGk+PGNvZGU+YmV0d2VlbjwvY29kZT4gRmllbGQgbGllcyBiZXR3ZWVuIHRoZSBnaXZl biB2YWx1ZXMsIGV4Y2x1c2l2ZSAodXNlIDxjb2RlPmxpc3RfZGVsaW08L2NvZGU+IHRvIHNl cGFyYXRlIHZhbHVlcyk8L2xpPgoJCTxsaT48Y29kZT5yYW5nZTwvY29kZT4gRmllbGQgaXMg d2l0aGluIHRoZSByYW5nZSBvZiBnaXZlbiB2YWx1ZXMsIGluY2x1c2l2ZSAodXNlIDxjb2Rl Pmxpc3RfZGVsaW08L2NvZGU+IHRvIHNlcGFyYXRlIHZhbHVlcyk8L2xpPgoJCTxsaT48Y29k ZT5iZWdpbnM8L2NvZGU+IEZpZWxkIGJlZ2lucyB3aXRoIGEgc2VxdWVuY2Ugb2YgY2hhcmFj dGVyczwvbGk+CgkJPGxpPjxjb2RlPmNvbnRhaW5zPC9jb2RlPiBGaWVsZCBjb250YWlucyBh IHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgKGRlZmF1bHQgZm9yICYjODIxNjtwYXJlbnQmIzgy MTc7KTwvbGk+CgkJPGxpPjxjb2RlPmVuZHM8L2NvZGU+IEZpZWxkIGVuZHMgd2l0aCBhIHNl cXVlbmNlIG9mIGNoYXJhY3RlcnM8L2xpPgoJCTxsaT48Y29kZT5pc2VtcHR5PC9jb2RlPiBG aWVsZCBpcyBlbXB0eSAoY29udGFpbnMgbm90aGluZyk8L2xpPgoJCTxsaT48Y29kZT5pc3Vz ZWQ8L2NvZGU+IEZpZWxkIGhhcyBzb21lIHZhbHVlPC9saT4KCQk8bGk+PGNvZGU+ZGVmaW5l ZDwvY29kZT4gRmllbGQgaXMgc2V0ICh1c2VmdWwgd2l0aCB1cmx2YXIgdmFyaWFibGVzKTwv bGk+CgkJPGxpPjxjb2RlPnVuZGVmaW5lZDwvY29kZT4gRmllbGQgaXMgbm90IHNldCwgb3Ig bWlzc2luZyBmcm9tIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBsaW5lPC9s aT4KCQk8bGk+PGNvZGU+aXNudW08L2NvZGU+IEZpZWxkIGlzIGEgbnVtYmVyPC9saT4KCQk8 bGk+PGNvZGU+aXNhbHBoYTwvY29kZT4gRmllbGQgY29udGFpbnMgY2hhcmFjdGVycyBvbmx5 PC9saT4KCQk8bGk+PGNvZGU+aXNhbG51bTwvY29kZT4gRmllbGQgY29udGFpbnMgYWxwaGFu dW1lcmljIGNoYXJhY3RlcnMgb25seTwvbGk+CgkJPGxpPjxjb2RlPmlzbG93ZXI8L2NvZGU+ IEV2ZXJ5IGNoYXJhY3RlciBpbiB0aGUgZmllbGQgaXMgbG93ZXIgY2FzZTwvbGk+CgkJPGxp Pjxjb2RlPmlzdXBwZXI8L2NvZGU+IEV2ZXJ5IGNoYXJhY3RlciBpbiB0aGUgZmllbGQgaXMg dXBwZXIgY2FzZTwvbGk+CgkJPGxpPjxjb2RlPmlzcHVuY3Q8L2NvZGU+IEV2ZXJ5IGNoYXJh Y3RlciBpbiB0aGUgZmllbGQgaXMgc29tZSBwdW5jdHVhdGlvbiBtYXJrPC9saT4KCQk8bGk+ PGNvZGU+aXNzcGFjZTwvY29kZT4gRXZlcnkgY2hhcmFjdGVyIGluIHRoZSBmaWVsZCBpcyBh IHdoaXRlc3BhY2UgY2hhcmFjdGVyIChvciB0YWIsIG5ld2xpbmUsIGV0Yyk8L2xpPgoJPC91 bD4KCgk8cD5XaXRoIHRoZSBjb21wYXJpc29uIG9wZXJhdG9ycyAocHJpbWFyaWx5IGd0LCBs dCwgZ2UsIGxlKSB5b3UgbWF5IGZpbmQgb2RkIGJlaGF2aW91ciB3aGVuIGNvbXBhcmluZyBu dW1iZXJzLiBGb3IgZXhhbXBsZSwgPGNvZGU+dXJsdmFyOnBpYyBndCA2PC9jb2RlPiB3aWxs IHJldHVybiA8c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj4gaWYgPGNvZGU+cGljPC9j b2RlPiBpcyBzZXQgdG8gJiM4MjIwO2ZyZWQmIzgyMjE7LiBUaGlzIGlzIGJlY2F1c2UgdGhl IHdvcmQgJiM4MjIwO2ZyZWQmIzgyMjE7IChvciBhdCBsZWFzdCB0aGUgJiM4MjIwO2NoYXJh Y3RlciBmJiM4MjIxOykgaXMgZ3JlYXRlciBpbiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPkFT Q0lJPC9zcGFuPiB0YWJsZSB0aGFuIHRoZSAmIzgyMjA7Y2hhcmFjdGVyIDYmIzgyMjE7Ljwv cD4KCgk8cD5UbyBjaXJjdW12ZW50IHRoaXMgcHJvYmxlbSwgeW91IG1heSBhcHBlbmQgPGNv ZGU+Ok5VTTwvY29kZT4gdG8gdGhlIGVuZCBvZiBhbnkgb2YgdGhlc2Ugb3BlcmF0b3JzIHRv IGZvcmNlIHRoZSBwbHVnaW4gdG8gY2hlY2sgdGhhdCB0aGUgdmFsdWVzIGFyZSBpbnRlZ2Vy cy48L3A+CgoJPHA+SWYgeW91IHdpc2ggdG8gY29tcGFyZSB0aGUgbGVuZ3RoIG9mIGEgZmll bGQsIGFwcGVuZCA8Y29kZT46TEVOPC9jb2RlPiB0byBhbnkgb2YgdGhlIG51bWVyaWNhbCBj b21wYXJpc29uIG9wZXJhdG9ycy4gSXQgZG9lc24mIzgyMTc7dCBtYWtlIHNlbnNlIHRvIHVz ZSBib3RoIDxjb2RlPjpOVU08L2NvZGU+IGFuZCA8Y29kZT46TEVOPC9jb2RlPiB0b2dldGhl ciwgc28gdGhleSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLjwvcD4KCgk8cD5JZiB5b3Ugd2lz aCB0byBjb21wYXJlIHRoZSBxdWFudGl0eSAoY291bnQpIG9mIGEgbGlzdCBvZiBpdGVtcyBp biBhIGZpZWxkLCBhcHBlbmQgPGNvZGU+OkNPVU5UPC9jb2RlPiB0byBhbnkgb2YgdGhlIG51 bWVyaWNhbCBjb21wYXJpc29uIG9wZXJhdG9ycy4gQWdhaW4sIHRoaXMgb3B0aW9uIGlzIG11 dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGFsbCBvdGhlciBtb2RpZmllcnMuPC9wPgoKCTxwPlRo ZXJlIGlzIGEgc3VidGxlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgb3BlcmF0b3JzIDxjb2Rl PmJldHdlZW48L2NvZGU+IGFuZCA8Y29kZT5yYW5nZTwvY29kZT47IHRoZSBmb3JtZXIgZG9l cyBub3QgaW5jbHVkZSB0aGUgZW5kcG9pbnQgdmFsdWVzIHlvdSBzcGVjaWZ5IHdoZXJlYXMg dGhlIGxhdHRlciBkb2VzLiBGb3IgZXhhbXBsZSwgdGhlIHZhbHVlIDxjb2RlPjEwPC9jb2Rl PiBpcyBpbiB0aGUgcmFuZ2UgPGNvZGU+MTAvMjA8L2NvZGU+IGJ1dCBpdCBpcyA8ZW0+bm90 PC9lbT4gYmV0d2VlbiA8Y29kZT4xMC8yMDwvY29kZT4uIFRoZSB2YWx1ZSA8Y29kZT4xMTwv Y29kZT4sIGhvd2V2ZXIsIHNhdGlzZmllcyBib3RoLiBZb3UgY2FuIHVzZSB0aGUgPGNvZGU+ Ok5VTTwvY29kZT4gbW9kaWZpZXIgZm9yIHRoZXNlIHR3byBvcGVyYXRvcnMsIHRob3VnaCBt b3N0IHRlc3RzIHdpbGwgd29yayBmaW5lIHdpdGhvdXQgaXQsIGFuZCB5b3UgbWF5IGNoZWNr IGlmIGxpc3QgPGNvZGU+OkNPVU5UPC9jb2RlPiB2YWx1ZXMgbGllIHdpdGhpbiB0d28gZW5k cG9pbnRzLiBZb3UgY2FuIGFsc28gY29tcGFyZSBub24taW50ZWdlciB2YWx1ZXMgd2l0aCB0 aGVzZSBvcGVyYXRvcnMuPC9wPgoKCTxwPlRoZSA8Y29kZT5iZWdpbnM8L2NvZGU+LCA8Y29k ZT5lbmRzPC9jb2RlPiBhbmQgPGNvZGU+Y29udGFpbnM8L2NvZGU+IG9wZXJhdG9ycywgYWxv bmcgd2l0aCBhbnkgb2YgdGhlIDxjb2RlPmlzPC9jb2RlPiBvcGVyYXRvcnMgKGV4Y2VwdCA8 Y29kZT5pc3NwYWNlPC9jb2RlPiksIGNhbiB0YWtlIGFuIGV4dHJhIHBhcmFtZXRlciBhcyB3 ZWxsLiBTaW5jZSB0aGV5IGNvbXBhcmUgZXZlcnkgY2hhcmFjdGVyIGFnYWluc3QgdGhlIGdp dmVuIGJlaGF2aW91ciwgc3BhY2UgY2hhcmFjdGVycyBjYW4gbWVzcyB0aGluZ3MgdXAgYSBi aXQuIEZvciBleGFtcGxlIDxjb2RlPmZpZWxkPSZxdW90O2N1c3RvbTEmcXVvdDsgb3BlcmF0 b3I9JnF1b3Q7aXNsb3dlciZxdW90OzwvY29kZT4gd2lsbCBmYWlsIGlmIGN1c3RvbTEgY29u dGFpbnMgJiM4MjIwO3RoaXMgaXMgYSB0ZXN0JiM4MjIxOy4gT3IgY29tcGFyaW5nIHNvbWV0 aGluZyB0byA8Y29kZT5ib2R5PC9jb2RlPiBjYW4gZmFpbCBiZWNhdXNlIHRoZSBib2R5IG9m dGVuIHN0YXJ0cyB3aXRoIGEgbnVtYmVyIG9mIHNwYWNlIGNoYXJhY3RlcnMuIFRvIGNpcmN1 bXZlbnQgdGhpcywgYWRkIDxjb2RlPjpOT1NQQUNFPC9jb2RlPiB0byB0aGUgb3BlcmF0b3Ig d2hpY2ggd2lsbCByZW1vdmUgYWxsIHNwYWNlcyBmcm9tIHRoZSBzdHJpbmcgYmVmb3JlIHRl c3RpbmcgaXQuPC9wPgoKCTxwPk5vdGUgYWxzbyB0aGF0IHdoaWxlIDxjb2RlPmRlZmluZWQ8 L2NvZGU+IGFuZCA8Y29kZT51bmRlZmluZWQ8L2NvZGU+IGRpZmZlciBzZW1hbnRpY2FsbHkg ZnJvbSA8Y29kZT5pc3VzZWQ8L2NvZGU+IGFuZCA8Y29kZT5pc2VtcHR5PC9jb2RlPiAocmVz cGVjdGl2ZWx5KSwgdGhlIHdheSBUeHAgYXNzaWducyB2YXJpYWJsZXMgbWVhbnMgdGhhdCwg Zm9yIHRoZSBtb3N0IHBhcnQsIHRoZSB0ZXJtcyBhcmUgaW50ZXJjaGFuZ2VhYmxlLiBXaGVu IGRlYWxpbmcgd2l0aCB1cmx2YXJzLCBwb3N0dmFycyBhbmQgc3ZydmFycywgdGhlIHR3byBz ZXRzIG9mIG9wZXJhdG9ycyBiZWhhdmUgaW5kZXBlbmRlbnRseSwgYXMgeW91IHdvdWxkIGV4 cGVjdC4gU2VlIDxhIGhyZWY9IiNlZzUiPkV4YW1wbGUgNTwvYT4gZm9yIG1vcmUuIE5laXRo ZXIgPGNvZGU+ZGVmaW5lZDwvY29kZT4gbm9yIDxjb2RlPnVuZGVmaW5lZDwvY29kZT4gbWFr ZSBzZW5zZSB3aXRoIDxjb2RlPnBhcmVudDwvY29kZT4sIHNvIHRoZXkgYXJlIGZvcmJpZGRl bi48L3A+CgoJPGgzIGNsYXNzPSJhdG5tICIgaWQ9InZhbHVlIj52YWx1ZTwvaDM+CgoJPHA+ TGlzdCBvZiB2YWx1ZXMgdG8gY29tcGFyZSBlYWNoIGZpZWxkIGluIHR1cm4gdG8uIENhbiBi ZSBzdGF0aWMgdmFsdWVzL3RleHQgb3IgdGhlIG5hbWUgb2YgYW55IFR4cCBmaWVsZCwgbGlr ZSB0aG9zZSBnaXZlbiBpbiA8YSBocmVmPSIjZmllbGQiPmZpZWxkPC9hPiAoZXhjZXB0ICYj ODIyMDtwYXJlbnQmIzgyMjE7KS48L3A+CgoJPHA+VG8gZGlzdGluZ3Vpc2ggYSBUeHAgZmll bGQgZnJvbSBzdGF0aWMgdGV4dCwgcHJlZml4IHRoZSBmaWVsZCBuYW1lIHdpdGggPGNvZGU+ PzwvY29kZT4uIEZvciBleGFtcGxlOiA8Y29kZT52YWx1ZT0mcXVvdDt0aXRsZSZxdW90Ozwv Y29kZT4gd2lsbCBjb21wYXJlIHlvdXIgY2hvc2VuIGZpZWxkIGFnYWluc3QgdGhlIHdvcmQg JiM4MjIwO3RpdGxlJiM4MjIxOywgd2hlcmVhcyA8Y29kZT52YWx1ZT0mcXVvdDs/dGl0bGUm cXVvdDs8L2NvZGU+IHdpbGwgY29tcGFyZSB5b3VyIGZpZWxkIGFnYWluc3QgdGhlIGN1cnJl bnQgYXJ0aWNsZSYjODIxNztzIHRpdGxlLjwvcD4KCgk8cD5JZiB5b3Ugd2lzaCB0byBjb21w YXJlIGEgdmFsdWUgdGhhdCBtaWdodCBjb250YWluIDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1M PC9zcGFuPiAoZS5nIDxjb2RlPj9ib2R5PC9jb2RlPiksIGFkZCB0aGUgbW9kaWZpZXIgPGNv ZGU+Ok5PVEFHUzwvY29kZT4gdG8gdGhlIGVuZCBvZiB0aGUgdmFsdWUuIEl0IHdpbGwgaGF2 ZSBhbnkgPHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+IGFuZCA8c3BhbiBjbGFzcz0i Y2FwcyI+UEhQPC9zcGFuPiB0YWdzIHN0cmlwcGVkIGZyb20gaXQgYW5kIHdpbGwgYWxzbyBi ZSB0cmltbWVkIHRvIHJlbW92ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFjZXMuIFlvdSBt YXkgY2hvb3NlIHRvIHNvbGVseSByZW1vdmUgc3BhY2VzIGZyb20gYm90aCB0aGUgc3RhcnQg YW5kIGVuZCBvZiBhbnkgdmFsdWUgYnkgYWRkaW5nIDxjb2RlPjpUUklNPC9jb2RlPiB0byB0 aGUgZW5kIG9mIHRoZSB2YWx1ZS48L3A+CgoJPHA+SWYgeW91IHN1c3BlY3QgYSB2YWx1ZSBt aWdodCBjb250YWluIDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPmlzaCBpbnB1dCBs aWtlIDxjb2RlPiZsdDs8L2NvZGU+LCA8Y29kZT4mZ3Q7PC9jb2RlPiwgPGNvZGU+JmFtcDs8 L2NvZGU+IG9yIHF1b3Rlcy9hcG9zdHJvcGhlcyB5b3UgY2FuIGVsZWN0IHRvIGNvbnZlcnQg dGhlbSB0byBlbnRpdGllcyBsaWtlIDxjb2RlPiZhbXA7Z3Q7PC9jb2RlPiwgPGNvZGU+JmFt cDtxdW90OzwvY29kZT4sIGV0Yy4gSnVzdCBzcGVjaWZ5IHRoZSA8Y29kZT46RVNDPC9jb2Rl PiBtb2RpZmllciB0byByZXBsYWNlIGV2ZXJ5dGhpbmcgZXhjZXB0IGFwb3N0cm9waGVzIHdp dGggaXRzIGVudGl0eSBlcXVpdmFsZW50LCBvciB1c2UgPGNvZGU+OkVTQ0FMTDwvY29kZT4g dG8gaW5jbHVkZSBhcG9zdHJvcGhlcy48L3A+CgoJPHA+Tm90ZSB0aGF0IHlvdSBtYXkgZmlu ZCB1c2luZyBkb3VibGUtcXVvdGVzIGluIGZpZWxkcyBnaXZlcyB1bmV4cGVjdGVkIHJlc3Vs dHMuIFRoZXkgYXJlIGJlc3QgYXZvaWRlZCwgb3Igd29ya2VkIGFyb3VuZCBieSB1c2luZyA8 Y29kZT5jb250YWluczwvY29kZT4gaW5zdGVhZCBvZiA8Y29kZT5lcTwvY29kZT4uPC9wPgoK CTxoMz5SZXBsYWNlbWVudCB0YWdzPC9oMz4KCgk8cD5FdmVyeSBmaWVsZCBvciB2YWx1ZSB0 aGF0IHlvdSByZWZlciB0byBpbiB5b3VyIHNtZF9pZiB0YWcgYmVjb21lcyBhdmFpbGFibGUg d2l0aGluIHRoZSBjb250YWluaW5nIGJsb2NrIHNvIHlvdSBjYW4gZGlzcGxheSBpdHMgY29u dGVudHMgaWYgeW91IHdpc2guIE1vc3Qgb2YgdGhlIHRpbWUgdGhpcyBpcyBub3QgbXVjaCB1 c2UgYnV0IGl0IGNhbiBiZSB2ZXJ5IHVzZWZ1bCB3aXRoIHRoZSA8Y29kZT5pbjwvY29kZT4g b3BlcmF0b3Igb3IgdGhlIDxjb2RlPjpMRU48L2NvZGU+IG1vZGlmaWVyLiBGb3IgaW5zdGFu Y2UsIGlmIHlvdSBoYXZlIGFza2VkIHNtZF9pZiB0byB0ZXN0IHRoZSA8c3BhbiBjbGFzcz0i Y2FwcyI+VVJMPC9zcGFuPiB2YXJpYWJsZSBuYW1lZCAmIzgyMTY7bGV2ZWwmIzgyMTc7IGFu ZCB0b2xkIGl0IHRvIGNvbXBhcmUgaXQgdG8gdGhlIGN1c3RvbSBmaWVsZCBsYWJlbGxlZCAm IzgyMTY7YWxsb3dhYmxlX2xldmVscyYjODIxNzssIHR3byB0YWdzIGJlY29tZSBhdmFpbGFi bGUgd2hpY2ggeW91IGNhbiB1c2Ugd2l0aGluIHRoZSBjb250YWluaW5nIGJsb2NrOjwvcD4K Cgk8dWw+CgkJPGxpPjxjb2RlPntzbWRfaWZfbGV2ZWx9PC9jb2RlPiB3b3VsZCBkaXNwbGF5 IHRoZSB2YWx1ZSBvZiB0aGUgJiM4MjE2O2xldmVsJiM4MjE3OyA8c3BhbiBjbGFzcz0iY2Fw cyI+VVJMPC9zcGFuPiB2YXJpYWJsZS48L2xpPgoJCTxsaT48Y29kZT57c21kX2lmX2FsbG93 YWJsZV9sZXZlbHN9PC9jb2RlPiB3b3VsZCBkaXNwbGF5IHRoZSBjb250ZW50cyBvZiB0aGUg Y3VycmVudCBhcnRpY2xlJiM4MjE3O3MgY3VzdG9tIGZpZWxkLjwvbGk+Cgk8L3VsPgoKCTxw PkJ5IGRlZmF1bHQgdGhlIHJlcGxhY2VtZW50IHRhZ3MgYXJlIHByZWZpeGVkIHdpdGggPGNv ZGU+c21kX2lmXzwvY29kZT4gc28gdGhleSBkb24mIzgyMTc7dCBjbGFzaCB3aXRoIHRoZSBv bmVzIGluIHNtZF9nYWxsZXJ5IChmb3IgZXhhbXBsZSwgd2hlbiB1c2luZyBzbWRfaWYgaW5z aWRlIGFuIHNtZF9nYWxsZXJ5IHRhZykuIFlvdSBjYW4gY2hhbmdlIHRoaXMgcHJlZml4IHdp dGggdGhlIDxjb2RlPnZhcl9wcmVmaXg8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CgoJPHA+SWYg eW91IGFyZSBjb21wYXJpbmcgYSBmaXhlZC12YWx1ZSBmaWVsZCAoc3VjaCBhcyA8Y29kZT5m aWVsZD0mcXVvdDtOVUxMJnF1b3Q7PC9jb2RlPiBvciA8Y29kZT52YWx1ZT0mcXVvdDsxMiZx dW90OzwvY29kZT4gb3Igc21kX2dhbGxlcnkmIzgyMTc7cyA8Y29kZT52YWx1ZT0mcXVvdDt7 Y2F0ZWdvcnl9JnF1b3Q7PC9jb2RlPikgdGhlIG5hbWUgb2YgdGhlIHJlcGxhY2VtZW50IHRh Z3MgYXJlIDxjb2RlPntzbWRfaWZfZmllbGROfTwvY29kZT4gZm9yIGZpZWxkcyBhbmQgPGNv ZGU+e3NtZF9pZl92YWxOfTwvY29kZT4gZm9yIHZhbHVlcywgd2hlcmUgTiBpcyB0aGUgdGVz dCBudW1iZXIgc3RhcnRpbmcgZnJvbSAxLjwvcD4KCgk8cD5JZiB5b3UgdXNlIHRoZSBtdWx0 aXBsZSB2YWx1ZSBvcHRpb25zIHN1Y2ggYXMgPGNvZGU+aW48L2NvZGU+LCA8Y29kZT5iZXR3 ZWVuPC9jb2RlPiwgPGNvZGU+cmFuZ2U8L2NvZGU+LCBldGMgeW91IHdpbGwgYWxzbyBzZWUg cmVwbGFjZW1lbnQgdGFncyBvZiB0aGUgZm9sbG93aW5nIGZvcm1hdDogPGNvZGU+e3NtZF9p Zl92YWxOX1h9PC9jb2RlPiB3aGVyZSBOIGlzIHRoZSB2YWx1ZSBjb3VudGVyIChhcyBhYm92 ZSkgYW5kIFggaXMgYW4gaW5jcmVtZW50aW5nIG51bWJlcjsgd2l0aCBvbmUgZm9yIGVhY2gg dmFsdWUgaW4geW91ciBsaXN0LiBGb3IgZXhhbXBsZSwgPGNvZGU+dmFsdWU9JnF1b3Q7MTAv MjAvMzAmcXVvdDs8L2NvZGU+IHNldHM6PC9wPgoKCTx1bD4KCQk8bGk+PGNvZGU+eyBzbWRf aWZfdmFsMV8xIH08L2NvZGU+ID0gMTA8L2xpPgoJCTxsaT48Y29kZT57IHNtZF9pZl92YWwx XzIgfTwvY29kZT4gPSAyMDwvbGk+CgkJPGxpPjxjb2RlPnsgc21kX2lmX3ZhbDFfMyB9PC9j b2RlPiA9IDMwPC9saT4KCTwvdWw+CgoJPHA+VGhlcmUgYXJlIGFsc28gJiM4MjE2O2xlbmd0 aCYjODIxNzsgcmVwbGFjZW1lbnQgdGFncy4gRm9sbG93aW5nIGEgc2ltaWxhciBjb252ZW50 aW9uIHRvIGFib3ZlLCB0aGVzZSBhcmUgcHJlZml4ZWQgd2l0aCA8Y29kZT5zbWRfaWZfbGVu XzwvY29kZT4uIElmIHlvdSBnZXQgc3R1Y2ssIHRlbXBvcmFyaWx5IHN3aXRjaCA8Y29kZT5k ZWJ1Zz0mcXVvdDsxJnF1b3Q7PC9jb2RlPiBvbiB0byBzZWUgdGhlIHJlcGxhY2VtZW50cyBh dmFpbGFibGUgYW5kIHRoZWlyIGFzc29jaWF0ZWQgbmFtZXMvdmFsdWVzLjwvcD4KCgk8cD5T ZWUgPGEgaHJlZj0iI2VnOCI+RXhhbXBsZSA4PC9hPiBhbmQgPGEgaHJlZj0iI2VnOSI+OTwv YT4gZm9yIG1vcmUuPC9wPgoKCTxoMiBpZD0iZmlsdGVyaW5nIj5GaWx0ZXJpbmc8L2gyPgoK CTxwPkFsbCB1c2VyIGlucHV0IGlzIHRhaW50ZWQgYnkgZGVmYXVsdC48L3A+CgoJPHA+QW55 IHRpbWUgeW91IHJlbHkgb24gc29tZW9uZSB0byBlbnRlciBzb21ldGhpbmcsIGF0IGxlYXN0 IG9uZSBwZXJzb24gd2lsbCBpbnZhcmlhYmx5IGNhdGNoIHlvdSBvdXQ7IGVpdGhlciBhY2Np ZGVudGFsbHkgb3IgbWFsaWNpb3VzbHkuIEZvciB0aGlzIHJlYXNvbiwgc21kX2lmIHN1cHBv cnRzIHBvd2VyZnVsIGZpbHRlcmluZyBydWxlcyBzbyB5b3UgY2FuIHRyYXAgYW5kIHJlbW92 ZSBzdXNwZWN0IGlucHV0LiBJdCBhbHJlYWR5IGRvZXMgc29tZSBvZiB0aGlzIGZvciB5b3Ug d2l0aCB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPk5PVEFHUzwvc3Bhbj4gbW9kaWZpZXIsIGJ1 dCBmaWx0ZXJpbmcgZ2l2ZXMgYW5vdGhlciBsZXZlbCBvZiBjb250cm9sIGFib3ZlIHRoYXQu PC9wPgoKCTxwPkxldCYjODIxNztzIHNheSB5b3UgYXJlIGFza2luZyB0aGUgdXNlciB0byBl bnRlciBhIHZhbHVlIGFuZCB5b3UgbmVlZCB0byBjb21wYXJlIGl0IHRvIGEgcmFuZ2UuIFdo YXQgaWYsIGluc3RlYWQgb2YgYSBudW1iZXIsIHRoZXkgZW50ZXJlZCA8Y29kZT5mcjNkPC9j b2RlPiBvciA8Y29kZT47cm0gLXJmIDEqOzwvY29kZT4uIFRoZSBwbHVnaW4gbWlnaHQganVz dCBmYWxsIG92ZXIgKHByb2JhYmx5IHdpdGggYW4gZXJyb3IsIHdoaWNoIGlzIG5vdCB2ZXJ5 IHBsZWFzYW50IGZvciB1c2VycyksIG9yIGl0IG1pZ2h0IGNhdXNlIGhhcm0gdG8gdGhlIGZp bGVzeXN0ZW0gaWYgYSBwZXJzb24gdHJ5aW5nIHRvIGhhY2sgeW91ciBzaXRlIHdhcyBza2ls bGVkIGVub3VnaCAoaXQmIzgyMTc7cyB1bmxpa2VseSwgYnV0IHBvc3NpYmxlKS48L3A+CgoJ PHA+SW4gYm90aCBjYXNlcywgZmlsdGVyaW5nIGNvbWVzIHRvIHRoZSByZXNjdWUuIFlvdSBj YW4gc3BlY2lmeSB0aGF0IHlvdSA8ZW0+ZXhwZWN0PC9lbT4gb25seSBkaWdpdHMgZnJvbSAw IHRvIDkgaW4geW91ciBmaWVsZHMgYW5kIGNhbiB0ZWxsIHRoZSBwbHVnaW4gdG8gY2hvcCBv dXQgYW55dGhpbmcgdGhhdCBpcyBub3QgbnVtZXJpYy4gU28gaW4gdGhlIGZpcnN0IGNhc2Ug YWJvdmUsIGFsbCB5b3Ugd291bGQgc2VlIGlmIHRoZSB1c2VyIGVudGVyZWQgJiM4MjE2O2Zy M2QmIzgyMTc7IHdvdWxkIGJlICYjODIxNjszJiM4MjE3Oy48L3A+CgoJPHA+Rm9ydHVuYXRl bHkgJiM4MjEyOyBhbmQgdW5mb3J0dW5hdGVseSAmIzgyMTI7IGl0JiM4MjE3O3MgYnVpbHQg YXJvdW5kIDxhIGhyZWY9Imh0dHA6Ly93d3cucmVndWxhci1leHByZXNzaW9ucy5pbmZvLyI+ cmVndWxhciBleHByZXNzaW9uczwvYT4gd2hpY2ggYXJlIGZpZW5kaXNobHkgcG93ZXJmdWwg YnV0IGNhbiBhbHNvIGJlIGZpZW5kaXNobHkgdHJpY2t5IHRvIGxlYXJuIGlmIHlvdSBhcmUg bm90IGZhbWlsaWFyLiBUaGV5IGFyZSB3b3J0aCBsZWFybmluZy48L3A+CgoJPHA+TGV0JiM4 MjE3O3MgZGl2ZSBpbiBhdCB0aGUgZGVlcCBlbmQgYW5kIHRlbGwgdGhlIHBsdWdpbiB0aGF0 LCB1bmRlciBubyBjaXJjdW1zdGFuY2VzLCBtdXN0IHdlIGFsbG93IGFueSBpbnB1dCB0aGF0 IGlzIG5vbi1udW1lcmljOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0i YmxvY2siPiZsdDt0eHA6dmFyaWFibGUgbmFtZT0mcXVvdDtoaWdoZXN0JnF1b3Q7IHZhbHVl PSZxdW90OzEwMCZxdW90OyAvJmd0OwombHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDt1cmx2 YXI6bG93JnF1b3Q7IG9wZXJhdG9yPSZxdW90O2dlLCBsZSZxdW90OwogICAgIHZhbHVlPSZx dW90OzEsIHR4cHZhcjpoaWdoZXN0JnF1b3Q7IGZpbHRlcj0mcXVvdDsvW14wLTldKy8mcXVv dDsmZ3Q7CiAgICZsdDtwJmd0O3tzbWRfaWZfbG93fSBpcyB2YWxpZCBhbmQgaXMgYmV0d2Vl bgogICB7c21kX2lmX3ZhbDF9IGFuZCB7c21kX2lmX2hpZ2hlc3R9LiZsdDsvcCZndDsKJmx0 O3R4cDplbHNlIC8mZ3Q7CiAgICZsdDtwJmd0O1NvcnJ5LCB0aGUgdmFsdWUge3NtZF9pZl9s b3d9IGlzIG5vdCB3aXRoaW4gdGhlCiAgICAgcmFuZ2Uge3NtZF9pZl92YWwxfS17c21kX2lm X2hpZ2hlc3R9LiZsdDsvcCZndDsKJmx0Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+PC9wcmU+ CgoJPHA+WyBFYWdsZS1leWVkIHBlb3BsZSBtYXkgbm90aWNlIHRoYXQgc29tZXRoaW5nIHNp bWlsYXIgY2FuIGJlIGFjaGlldmVkIHdpdGggdGhlIDxjb2RlPjpOVU08L2NvZGU+IG1vZGlm aWVyLiBUaGUgZGlmZmVyZW5jZSBoZXJlIGlzIHRoYXQgdGhlIHJlcGxhY2VtZW50IHZhcmlh YmxlcyBhcmUgYWxzbyBmaWx0ZXJlZCwgd2hlcmVhcyB3aXRoIDxjb2RlPjpOVU08L2NvZGU+ IHRoZXkgY29udGFpbiB0aGUgb3JpZ2luYWwgKHBvc3NpYmx5IGludmFsaWQpIGlucHV0IF08 L3A+CgoJPHA+QWx0aG91Z2ggb3V0IG9mIHRoZSBzY29wZSBvZiB0aGlzIGRvY3VtZW50YXRp b24sIGl0JiM4MjE3O3Mgd29ydGgganVzdCB0YWtpbmcgYSBtb21lbnQgdG8gc2VlIHdoYXQg dGhlIGZpbHRlciBpcyBkb2luZzo8L3A+Cgo8cHJlPjxjb2RlPi9bXjAtOV0rLwo8L2NvZGU+ PC9wcmU+CgoJPHVsPgoJCTxsaT5UaGUgZm9yd2FyZCBzbGFzaGVzIGFyZSBzdGFydCBhbmQg ZW5kIGRlbGltaXRlcnMgYW5kIHNob3VsZCBhbHdheXMgYmUgcHJlc2VudCAodW5sZXNzIHlv dSBrbm93IHdoYXQgeW91JiM4MjE3O3JlIGRvaW5nISk8L2xpPgoJCTxsaT5UaGUgc3F1YXJl IGJyYWNrZXRzIDxjb2RlPltdPC9jb2RlPiBkZW5vdGUgYSBjaGFyYWN0ZXIgY2xhc3MsIG9y IGdyb3VwIG9mIGNoYXJhY3RlcnMuIEluIHRoaXMgY2FzZSB0aGV5IGNvbnRhaW4gdGhlIHJh bmdlIG9mIGRpZ2l0cyAwIHRvIDk8L2xpPgoJCTxsaT5UaGUgY2lyY3VtZmxleCA8Y29kZT5e PC9jb2RlPiBuZWdhdGVzIHRoZSBjbGFzcyAoaS5lLiBub24tZGlnaXRzKTwvbGk+CgkJPGxp PlRoZSBwbHVzIDxjb2RlPis8L2NvZGU+IG1lYW5zICYjODIxNjtvbmUgb3IgbW9yZSBvZiB0 aGUgdGhpbmdzIEkmIzgyMTc7dmUganVzdCBzZWVuJiM4MjE3OzwvbGk+Cgk8L3VsPgoKCTxw PlNvIHB1dHRpbmcgaXQgYWxsIHRvZ2V0aGVyLCBpdCByZWFkcyAmIzgyMjA7RmluZCBldmVy eSBvY2N1cnJlbmNlIG9mIG9uZSBvciBtb3JlIG5vbi1kaWdpdHMmIzgyMjE7LiBUaHVzIGl0 IGxvb2tzIGF0IGV2ZXJ5IGZpZWxkIGFuZCBmaW5kcyBhbnl0aGluZyBub24tbnVtZXJpYy4g VGhlbiBpdCByZXBsYWNlcyB3aGF0ZXZlciBpdCBmaW5kcyB3aXRoIDxjb2RlPiYjMzk7JiMz OTs8L2NvZGU+LCBpLmUuIG5vdGhpbmcsIG5hZGEsIHppcC4gRWZmZWN0aXZlbHksIGl0IGRl bGV0ZXMgd2hhdGV2ZXIgbm9uLWRpZ2l0cyBpdCBmaW5kcyBhbmQgbGVhdmVzIHRoZSBnb29k IHN0dWZmICh0aGUgbnVtYmVycykgYmVoaW5kLjwvcD4KCgk8aDMgaWQ9ImZyZXBsYWNpbmci PlJlcGxhY2luZyBiYWQgZGF0YTwvaDM+CgoJPHA+Rm9yIGVhY2ggbWF0Y2hpbmcgZmlsdGVy IHRoZXJlJiM4MjE3O3MgYW4gZXF1aXZhbGVudCA8Y29kZT5yZXBsYWNlPC9jb2RlPiBzdHJp bmcuIEJ5IGRlZmF1bHQgdGhpcyBpcyBzZXQgdG8gPGNvZGU+cmVwbGFjZT0mcXVvdDsmcXVv dDs8L2NvZGU+IHdoaWNoIG1lYW5zICYjODIyMDtyZXBsYWNlIHdoYXRldmVyIHlvdSBmaW5k IHdpdGggbm90aGluZyYjODIyMTs7IG9yIGluIG90aGVyIHdvcmRzICYjODIyMDtkZWxldGUg ZXZlcnl0aGluZyB0aGF0IG1hdGNoZXMgdGhlIGZpbHRlciYjODIyMTsuIFlvdSBtYXkgZWxl Y3QgdG8gcmVwbGFjZSB5b3VyIGZpbHRlcmVkIGRhdGEgd2l0aCBzb21ldGhpbmcgZWxzZSwg c2F5LCA8Y29kZT5yZXBsYWNlPSZxdW90O3R4cCZxdW90OzwvY29kZT4uIFNvIGlmIHNvbWVv bmUgZW50ZXJlZCAmIzgyMjA7ZnIzZCYjODIyMTsgeW91IHdvdWxkIHNlZSB0aGUgcmVwbGFj ZW1lbnQgdmFyaWFibGUgaGFzIGEgdmFsdWUgJiM4MjIwO3R4cDN0eHAmIzgyMjE7ICh0aGUg cmVhc29uIHlvdSBvbmx5IGdldCBvbmUgJiM4MjE2O3R4cCYjODIxNzsgYmVmb3JlIHRoZSBu dW1iZXIgaXMgZHVlIHRvIHRoZSBleHByZXNzaW9uIGJlaW5nIDxlbT5ncmVlZHk8L2VtPiBh bmQgZ29iYmxpbmcgdXAgYXMgbWFueSBjaGFyYWN0ZXJzIGFzIGl0IGNhbiBpbiBhIGdyb3Vw IGJlZm9yZSByZXBsYWNpbmcgdGhlbS4gU2VlIGFueSByZWdleCB0dXRvcmlhbCBmb3IgbW9y ZSBvbiB0aGlzIHRvcGljKS48L3A+CgoJPHA+VW5kZXIgbm9ybWFsIGNpcmN1bXN0YW5jZXMg eW91IHdvbiYjODIxNzt0IHdhbnQgdG8gbWVzcyB3aXRoIDxjb2RlPnJlcGxhY2U8L2NvZGU+ IGFzIGl0JiM4MjE3O2xsIGRvIHdoYXQgeW91IHdhbnQgd2l0aCB0aGUgZGVmYXVsdCAmIzgy MTY7ZGVsZXRlJiM4MjE3OyBvcGVyYXRpb24uPC9wPgoKCTxoMyBpZD0iZm9wdGlvbnMiPkZp bHRlcmluZyBvcHRpb25zPC9oMz4KCgk8cD5CeSBkZWZhdWx0LCB0aGUgcGx1Z2luIG9ubHkg bG9va3MgYXQgPGNvZGU+ZmllbGQ8L2NvZGU+IGRhdGEuIElmIHlvdSB3aXNoIHRvIGNoYW5n ZSB0aGF0LCB1c2UgdGhlIDxjb2RlPmZpbHRlcl9pbjwvY29kZT4gYXR0cmlidXRlLjwvcD4K Cgk8cD5UaGUgcGx1Z2luIGFsc28gYXBwbGllcyB0aGUgZmlsdGVyIHRvIGFsbCBmaWVsZHMg KDxjb2RlPmZpbHRlcl90eXBlPSZxdW90O2FsbCZxdW90OzwvY29kZT4pLiBZb3UgbWF5IHdp c2ggdG8gb25seSB0YXJnZXQgYSBmaWx0ZXIgYXQgdXJsIGFuZCBzZXJ2ZXIgdmFycywgaW4g d2hpY2ggY2FzZSB5b3Ugd291bGQgc3BlY2lmeSA8Y29kZT5maWx0ZXJfdHlwZT0mcXVvdDt1 cmx2YXIsIHN2cnZhciZxdW90OzwvY29kZT4uIE9yIG1heWJlIHlvdSB3aXNoIHRvIHZhbGlk YXRlIHRoZSBhcnRpY2xlIGltYWdlIGZpZWxkIGluIGNhc2Ugc29tZW9uZSBlbnRlcmVkIHNv bWUgcm9ndWUgZGF0YSB0aGVyZTogPGNvZGU+ZmlsdGVyX3R5cGU9JnF1b3Q7YXJ0aWNsZV9p bWFnZSZxdW90OzwvY29kZT4uPC9wPgoKCTxoMyBpZD0iZmNhdmVhdCI+RmlsdGVyaW5nIGNh dmVhdDwvaDM+CgoJPHA+SWYgeW91IHNwZWNpZnkgPGNvZGU+ZmlsdGVyX29uPSZxdW90O2Zp ZWxkLCB2YWx1ZSZxdW90OzwvY29kZT4gaXQgaXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0 aGUgPGVtPnNhbWUgZmlsdGVyPC9lbT4gd2lsbCBiZSBhcHBsaWVkIHRvIGVhY2ggY29ycmVz cG9uZGluZyBmaWVsZCBhbmQgdmFsdWUuIElmIHlvdXIgZmlsdGVyIGlzIHRvbyBzdHJpY3Qg dGhlcmUmIzgyMTc7cyBhIGNoYW5jZSBpdCBtYXkgZmlsdGVyIGV2ZXJ5IGNoYXJhY3RlciBv dXQgb2YgYm90aCA8Y29kZT5maWVsZDwvY29kZT4gYW5kIDxjb2RlPnZhbHVlPC9jb2RlPiwg dGh1cyBpZiB5b3VyIHRlc3Qgd2FzIGZvciBlcXVhbGl0eSB0aGUgdGVzdCB3b3VsZCByZXR1 cm4gJiM4MjE2O3RydWUmIzgyMTc7LiBIZXJlJiM4MjE3O3MgYW4gZXhhbXBsZTo8L3A+Cgo8 cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9pZiBm aWVsZD0mcXVvdDt1cmx2YXI6Y29tcDEmcXVvdDsgb3BlcmF0b3I9JnF1b3Q7ZXEmcXVvdDsK ICAgICB2YWx1ZT0mcXVvdDt1cmx2YXI6Y29tcDImcXVvdDsgZmlsdGVyPSZxdW90Oy9bXmEt ekEtWl0rLyZxdW90OwogICAgIGZpbHRlcl9vbj0mcXVvdDtmaWVsZCwgdmFsdWUmcXVvdDsm Z3Q7CiAgIC8vIEkmIzM5O20gTk9UIG5lY2Vzc2FyaWx5IHZhbGlkCiZsdDsvdHhwOnNtZF9p ZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPklmIHlvdXIgdXNlciB0eXBlZCBpbiB0aGUgPHNw YW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gPGNvZGU+c2l0ZS5jb20vYXJ0aWNsZT9jb21w MT0xMjM0NSZhbXA7Y29tcDI9Njc4OTA8L2NvZGU+IHRoZSBwbHVnaW4gd291bGQgZG8gdGhl IGZvbGxvd2luZzo8L3A+CgoJPG9sPgoJCTxsaT5GaWx0ZXIgY29tcDEgYW5kIHJlbW92ZSBh bGwgbm9uLWxldHRlciBjaGFyYWN0ZXJzPC9saT4KCQk8bGk+RmlsdGVyIGNvbXAyIGFuZCBy ZW1vdmUgYWxsIG5vbi1sZXR0ZXIgY2hhcmFjdGVyczwvbGk+CgkJPGxpPkxvb2sgYXQgY29t cDEgKHdoaWNoIGlzIG5vdyBlbXB0eSkgYW5kIGNvbXAyICh3aGljaCBpcyBhbHNvIGVtcHR5 KSwgdGhlbiBjb21wYXJlIHRoZW08L2xpPgoJPC9vbD4KCgk8cD5Zb3UgY2FuIHNlZSB3aGF0 JiM4MjE3O3MgZ29pbmcgdG8gaGFwcGVuOiB0aGUgdGVzdCByZXN1bHQgaXMgZ29pbmcgdG8g YmUgJiM4MjE2O3RydWUmIzgyMTc7IGJlY2F1c2UgJiM4MjIwO25vdGhpbmcmIzgyMjE7IGRv ZXMgaW5kZWVkIGVxdWFsICYjODIyMDtub3RoaW5nJiM4MjIxOy4gU28gdGhlIGFjdCBvZiB0 aGUgdXNlciBlbnRlcmluZyB0d28gbm9uc2Vuc2ljYWwsIGNvbXBsZXRlbHkgbnVtZXJpYyBz dHJpbmdzIG9mIGRhdGEgaGFzIGJyb2tlbiB5b3VyIGxvZ2ljLjwvcD4KCgk8cD5Gb3IgdGhp cyByZWFzb24sIGlmIHlvdSBhcmUgZmlsdGVyaW5nIG9uIGJvdGggZmllbGQgYW5kIHZhbHVl LCB5b3Ugc2hvdWxkIHBlcmZvcm0gPGVtPmFkZGl0aW9uYWw8L2VtPiB0ZXN0cyB0byBzZWUg aWYgZWl0aGVyIGZpZWxkIC8gdmFsdWUgaXMgc2V0IGF0IGFsbC4gVGhpcyBpcyBiZXR0ZXI6 PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpz bWRfaWYgZmllbGQ9JnF1b3Q7dXJsdmFyOmNvbXAxLCB1cmx2YXI6Y29tcDEsIHVybHZhcjpj b21wMiZxdW90OwogICAgIG9wZXJhdG9yPSZxdW90O2VxLCBpc3VzZWQsIGlzdXNlZCZxdW90 OyB2YWx1ZT0mcXVvdDt1cmx2YXI6Y29tcDImcXVvdDsKICAgICBmaWx0ZXI9JnF1b3Q7L1te YS16QS1aXSsvJnF1b3Q7CiAgICAgZmlsdGVyX29uPSZxdW90O2ZpZWxkLCB2YWx1ZSZxdW90 OyZndDsKICAgLy8gSSYjMzk7bSBub3cgYWN0dWFsbHkgdmFsaWQKJmx0Oy90eHA6c21kX2lm Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+U28gbm93LCBpZiB5b3VyIGZpbHRlciByZW1vdmVz IGV2ZXJ5dGhpbmcgZnJvbSBib3RoIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHZh cnMsIGl0IHN0aWxsIGZhaWxzIHRoZSAmIzgyMTY7aGFzIHRoZSB1c2VyIGVudGVyZWQgYW55 dGhpbmcgYXQgYWxsJiM4MjE3OyB0ZXN0cyBiZWNhdXNlIGFzIGZhciBhcyB0aGUgcGx1Z2lu IGlzIGNvbmNlcm5lZCwgdGhlIHZpc2l0b3IgaGFzIHN1Ym1pdHRlZCBydWJiaXNoLjwvcD4K Cgk8aDMgaWQ9ImZmdXJ0aGVyIj5Hb2luZyBmdXJ0aGVyPC9oMz4KCgk8cD5UaGUgYWJvdmUg ZXhhbXBsZXMgYWxsIHVzZSBhIHNpbmdsZSBmaWx0ZXIuIFlvdSBjYW4gc3BlY2lmeSBtb3Jl IHRoYW4gb25lIGZpbHRlciBhbmQgcmVwbGFjZW1lbnQgaWYgeW91IHdpc2gsIGp1c3QgY29t bWEtZGVsaW1pdCB0aGVtICh1bmxlc3MgeW91JiM4MjE3O3ZlIG92ZXJyaWRlbiB0aGUgPGNv ZGU+cGFyYW1fZGVsaW08L2NvZGU+IG9mIGNvdXJzZSkuPC9wPgoKCTxwPldoZW4geW91IHNw ZWNpZnkgbW9yZSB0aGFuIG9uZSBmaWx0ZXIsIHRoZXkgaWdub3JlIHRoZSA8Y29kZT5maWx0 ZXJfdHlwZTwvY29kZT4gYXR0cmlidXRlIGJlY2F1c2UgdGhlIGZpbHRlcnMgYXJlIGFwcGxp ZWQgaW4gb3JkZXI7IG9uZSBwZXIgdGVzdC4gSWYgeW91IHdpc2ggdG8gc2tpcCBhIHBhcnRp Y3VsYXIgZmllbGQgYW5kIG5vdCBhcHBseSBhIGZpbHRlciwgc2ltcGx5IGxlYXZlIGFuIGVt cHR5IGNvbW1hIGFzIGEgcGxhY2Vob2xkZXIsIGUuZy4gPGNvZGU+ZmlsdGVyPSZxdW90Oywg L1teYS16QS1aMC05XC1dKy8sICwgL1teMC05XSsvJnF1b3Q7PC9jb2RlPiB3b3VsZCBhcHBs eSB0aGUgcmVzcGVjdGl2ZSBmaWx0ZXJzIHRvIHRoZSAybmQgYW5kIDR0aCB0ZXN0cyBvbmx5 LjwvcD4KCgk8aDIgaWQ9ImVnMSI+RXhhbXBsZSAxOiBzdGFuZGFyZCBjb21wYXJpc29uPC9o Mj4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21k X2lmIGZpZWxkPSZxdW90O3NlY3Rpb24sIGlkJnF1b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7 YmVnaW5zLCBndCZxdW90OwogICAgIHZhbHVlPSZxdW90O2xpb24sIDEyJnF1b3Q7Jmd0Owog Jmx0O3AmZ3Q7VGhlIGxpb24gc2xlZXBzIHRvbmlnaHQmbHQ7L3AmZ3Q7CiZsdDt0eHA6ZWxz ZSAvJmd0OwogJmx0O3AmZ3Q7Um9vb29vYXJycnIhICpDSE9NUCombHQ7L3AmZ3Q7CiZsdDsv dHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPkNoZWNrcyBpZiB0aGUgY3VycmVu dCBzZWN0aW9uIG5hbWUgYmVnaW5zIHdpdGggdGhlIHdvcmQgJiM4MjIwO2xpb24mIzgyMjE7 IGFuZCB0aGUgYXJ0aWNsZSBJRCBpcyBncmVhdGVyIHRoYW4gMTIuIERpc3BsYXlzICYjODIy MDtUaGUgbGlvbiBzbGVlcHMgdG9uaWdodCYjODIyMTsgaWYgYm90aCBjb25kaXRpb25zIGFy ZSBtZXQgb3IgZGlzcGxheXMgdGhlIHRleHQgJiM4MjIwO1Jvb29vb2FycnJyISA8c3Ryb25n PjxzcGFuIGNsYXNzPSJjYXBzIj5DSE9NUDwvc3Bhbj48L3N0cm9uZz4mIzgyMjE7IGlmIG5v dC48L3A+CgoJPGgyIGlkPSJlZzIiPkV4YW1wbGUgMjogb3RoZXIgdHlwZXMgb2YgZmllbGQ8 L2gyPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpz bWRfaWYgZmllbGQ9JnF1b3Q7c3VtbWFyeSwgY2F0ZWdvcnkxLCB1cmx2YXI6cGljJnF1b3Q7 CiAgICAgb3BlcmF0b3I9JnF1b3Q7aXN1c2VkLCBlcSwgaXNudW0mcXVvdDsKICAgICB2YWx1 ZT0mcXVvdDssIGFuaW1hbCAsJnF1b3Q7ICZndDsKICAmbHQ7cCZndDtBbGwgbWF0Y2hlZCZs dDsvcCZndDsKJmx0O3R4cDplbHNlIC8mZ3Q7CiAmbHQ7cCZndDtNYXRjaCBmYWlsZWQmbHQ7 L3AmZ3Q7CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPkNoZWNrcyBp ZiB0aGUgY3VzdG9tIGZpZWxkIGxhYmVsbGVkICYjODIyMDtzdW1tYXJ5JiM4MjIxOyBoYXMg c29tZSBkYXRhIGluIGl0LCBjaGVja3MgaWYgY2F0ZWdvcnkxIGVxdWFscyAmIzgyMjA7YW5p bWFsJiM4MjIxOyBhbmQgdGVzdHMgaWYgdGhlIHVybHZhciA8Y29kZT5waWM8L2NvZGU+IGlz IG51bWVyaWMgKGUuZy4gPGNvZGU+P3BpYz01PC9jb2RlPikuPC9wPgoKCTxwPklmIGFsbCB0 aGVzZSBjb25kaXRpb25zIGFyZSBtZXQgdGhlICYjODIyMDtBbGwgbWF0Y2hlZCYjODIyMTsg bWVzc2FnZSBpcyBkaXNwbGF5ZWQsIGVsc2UgdGhlICYjODIyMDtNYXRjaCBmYWlsZWQmIzgy MjE7IG1lc3NhZ2UgaXMgc2hvd24uIE5vdGUgdGhhdCA8Y29kZT5pc3VzZWQ8L2NvZGU+IGFu ZCA8Y29kZT5pc251bTwvY29kZT4gZG9uJiM4MjE3O3QgdGFrZSBhcmd1bWVudHMgZm9yIDxj b2RlPnZhbHVlPC9jb2RlPiBhbmQgdGhlaXIgcG9zaXRpb25zIGFyZSBoZWxkIGJ5IGVtcHR5 IGNvbW1hcyAodGVjaG5pY2FsbHkgdGhlIGxhc3QgY29tbWEgaXNuJiM4MjE3O3QgbmVlZGVk IGJ1dCBpdCBoZWxwcyBrZWVwIGV2ZXJ5dGhpbmcgbmVhdCBpZiB5b3UgYWRkIGZ1cnRoZXIg dGVzdHMgbGF0ZXIgb24pLjwvcD4KCgk8aDIgaWQ9ImVnMyI+RXhhbXBsZSAzOiB1c2luZyAm IzgyMTY7b3ImIzgyMTc7IGxvZ2ljPC9oMj4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBj bGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O2FydGljbGVfaW1hZ2Us IHN2cnZhcjpIVFRQX1VTRVJfQUdFTlQmcXVvdDsKICAgICBvcGVyYXRvcj0mcXVvdDtlcSwg Y29udGFpbnMmcXVvdDsKICAgICB2YWx1ZT0mcXVvdDt1cmx2YXI6cGljLCBTYWZhcmkmcXVv dDsKICAgICBsb2dpYz0mcXVvdDtvciZxdW90OyZndDsKICZsdDtwJmd0O0NvbWUgaW50byBt eSBwYXJsb3VyJmx0Oy9wJmd0OwombHQ7dHhwOmVsc2UgLyZndDsKICZsdDtwJmd0O05vdCB0 b2RheSwgdGhhbmtzJmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3By ZT4KCgk8cD5Db21wYXJlcyAoZm9yIGVxdWFsaXR5KSB0aGUgY3VycmVudCBhcnRpY2xlIGlt YWdlIGlkIHdpdGggdGhlIHZhbHVlIG9mIHRoZSB1cmwgdmFyaWFibGUgPGNvZGU+cGljPC9j b2RlPiBhbmQgY2hlY2tzIGlmIHRoZSB2YWx1ZSBvZiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMi PkhUVFA8L3NwYW4+X1VTRVJfQUdFTlQgc3RyaW5nIGNvbnRhaW5zICYjODIyMDtTYWZhcmkm IzgyMjE7LiBUaGlzIGV4YW1wbGUgdXNlcyB0aGUgJiM4MjE2O29yJiM4MjE3OyBsb2dpYywg aGVuY2UgaWYgPGVtPmVpdGhlcjwvZW0+IGNvbmRpdGlvbiBpcyBtZXQgdGhlICYjODIxNjtj b21lIGludG8gbXkgcGFybG91ciYjODIxNzsgbWVzc2FnZSBpcyBzaG93biwgb3RoZXJ3aXNl IHRoZSAmIzgyMTY7bm90IHRvZGF5JiM4MjE3OyBtZXNzYWdlIGlzIGRpc3BsYXllZC48L3A+ CgoJPGgyIGlkPSJlZzQiPkV4YW1wbGUgNDogc3ViLWNhdGVnb3J5IHRlc3Rpbmc8L2gyPgoK PHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYg ZmllbGQ9JnF1b3Q7cGFyZW50OkxWTDImcXVvdDsKICAgICBvcGVyYXRvcj0mcXVvdDtlcSZx dW90OwogICAgIHZhbHVlPSZxdW90O21hbW1hbCZxdW90OyZndDsKICZsdDt0eHA6YXJ0aWNs ZSAvJmd0OwombHQ7dHhwOmVsc2UgLyZndDsKICZsdDtwJmd0O05vdCB0b2RheSwgdGhhbmtz Jmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5PbiBh IGNhdGVnb3J5IGxpc3QgcGFnZSwgdGhpcyBjaGVja3MgdGhlIDJuZCBzdWItY2F0ZWdvcnkg b2YgdGhlIHRyZWUgdG8gc2VlIGlmIGl0IGVxdWFscyAmIzgyMjA7bWFtbWFsJiM4MjIxOy4g SWYgaXQgZG9lcywgdGhlIGFydGljbGUgaXMgZGlzcGxheWVkOyBpZiBub3QsIHRoZSBtZXNz YWdlIGlzIHNob3duIGluc3RlYWQuIFJlbW92aW5nIHRoZSA8Y29kZT46TFZMMjwvY29kZT4g JiM4MjEyOyB3aGljaCBtZWFucyB5b3UgY2FuIGFsc28gcmVtb3ZlIHRoZSBvcGVyYXRvciBw YXJhbWV0ZXIgdG8gZm9yY2UgdGhlIGNvbXBhcmlzb24gdG8gYmUgdGhlIGRlZmF1bHQgJiM4 MjIwO2NvbnRhaW5zJiM4MjIxOyAmIzgyMTI7IGNoZWNrcyBpZiB0aGUgY3VycmVudCAoZ2xv YmFsKSBjYXRlZ29yeSBpcyBhIGNoaWxkIG9mICYjODIxNjttYW1tYWwmIzgyMTc7IGF0IGFu eSBuZXN0aW5nIGxldmVsLjwvcD4KCgk8cD5Nb3ZlIHRoZSBleGFtcGxlIGludG8gYW4gYXJ0 aWNsZSBvciBhcnRpY2xlIEZvcm0gYW5kIGNoYW5nZSB0aGUgZmllbGQgdG8gPGNvZGU+cGFy ZW50OkNBVDE8L2NvZGU+IHRvIHNlZSBpZiB0aGUgYXJ0aWNsZSYjODIxNztzIGNhdGVnb3J5 MSBtYXRjaGVzICYjODIxNjttYW1tYWwmIzgyMTc7IGF0IGFueSBsZXZlbCwgb3IgdXNlIDxj b2RlPmZpZWxkPSZxdW90O3BhcmVudDpDQVQxOkxWTDImcXVvdDs8L2NvZGU+IHRvIGNvbWJp bmUgdGhlIGNoZWNrcy48L3A+CgoJPGgyIGlkPSJlZzUiPkV4YW1wbGUgNTogZGVmaW5lZC91 bmRlZmluZWQvaXN1c2VkL2lzZW1wdHk8L2gyPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2Rl IGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7dXJsdmFyOnBpYywg dXJsdmFyOnBhZ2UmcXVvdDsKICAgICBvcGVyYXRvcj0mcXVvdDtndDpOVU0sIHVuZGVmaW5l ZCZxdW90OwogICAgIHZhbHVlPSZxdW90Oz9hcnRpY2xlX2ltYWdlLCZxdW90OyZndDsKICZs dDtwJmd0O1llcyBwbGVhc2UmbHQ7L3AmZ3Q7CiZsdDt0eHA6ZWxzZSAvJmd0OwogJmx0O3Am Z3Q7Tm90IHRvZGF5LCB0aGFua3MmbHQ7L3AmZ3Q7CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9j b2RlPjwvcHJlPgoKCTxwPlRlc3RzIGlmIHRoZSB1cmwgdmFyaWFibGUgPGNvZGU+cGljPC9j b2RlPiBpcyBzdHJpY3RseSBudW1lcmljYWxseSBncmVhdGVyIHRoYW4gdGhlIHZhbHVlIGlu IHRoZSBjdXJyZW50IGFydGljbGUmIzgyMTc7cyA8Y29kZT5hcnRpY2xlX2ltYWdlPC9jb2Rl PiBmaWVsZCBhbmQgdGhhdCB0aGUgdXJsIHZhcmlhYmxlIDxjb2RlPnBhZ2U8L2NvZGU+IGlz IG1pc3NpbmcgZnJvbSB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gYWRkcmVz cy4gQ29tcGFyZSB0aGUgb3V0Y29tZSBvZiB0aGlzIHRlc3Qgd2l0aCB0aGUgb3RoZXIgb3Bl cmF0b3JzIHVzaW5nIHRoZSBmb2xsb3dpbmcgdGFibGUgd2hlbiB0ZXN0aW5nIHRoZSA8Y29k ZT5wYWdlPC9jb2RlPiB1cmx2YXI6PC9wPgoKCTx0YWJsZT4KCQk8dHI+CgkJCTx0aD48c3Bh biBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiA8L3RoPgoJCQk8dGg+ZGVmaW5lZCA8L3RoPgoJ CQk8dGg+dW5kZWZpbmVkIDwvdGg+CgkJCTx0aD5pc3VzZWQgPC90aD4KCQkJPHRoPmlzZW1w dHkgPC90aD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPiBpbmRleC5waHA/cGFnIDwvdGQ+CgkJ CTx0ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPkZBTFNFPC9zcGFuPiA8L3RkPgoJCQk8dGQ+IDxz cGFuIGNsYXNzPSJjYXBzIj5UUlVFPC9zcGFuPiA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNz PSJjYXBzIj5GQUxTRTwvc3Bhbj4gPC90ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+ RkFMU0U8L3NwYW4+IDwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD4gaW5kZXgucGhwP3Bh Z2U9IDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPlRSVUU8L3NwYW4+IDwvdGQ+ CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPkZBTFNFPC9zcGFuPiA8L3RkPgoJCQk8dGQ+ IDxzcGFuIGNsYXNzPSJjYXBzIj5GQUxTRTwvc3Bhbj4gPC90ZD4KCQkJPHRkPiA8c3BhbiBj bGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj4gPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPiBp bmRleC5waHA/cGFnZT00IDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPlRSVUU8 L3NwYW4+IDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPkZBTFNFPC9zcGFuPiA8 L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj5UUlVFPC9zcGFuPiA8L3RkPgoJCQk8 dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj5GQUxTRTwvc3Bhbj4gPC90ZD4KCQk8L3RyPgoJPC90 YWJsZT4KCgk8aDIgaWQ9ImVnNiI+RXhhbXBsZSA2OiBzaG9ydCBjaXJjdWl0aW5nIHRoZSA8 Y29kZT5maWVsZDwvY29kZT48L2gyPgoKCTxwPlB1dCB0aGlzIGluc2lkZSB5b3VyIDxjb2Rl PnBsYWlubGlua3M8L2NvZGU+IGZvcm0gYW5kIGV4ZWN1dGUgYSA8Y29kZT4mbHQ7dHhwOmxp bmtsaXN0IC8mZ3Q7PC9jb2RlPiBmcm9tIGFuIGFydGljbGUgcGFnZS9mb3JtOjwvcD4KCjxw cmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2lmIGZp ZWxkPSZxdW90O2lkJnF1b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7Z2U6TlVNLCBsZTpOVU0m cXVvdDsKICAgICB2YWx1ZT0mcXVvdDt1cmx2YXI6bWluLCB1cmx2YXI6bWF4JnF1b3Q7Jmd0 OwogICZsdDt0eHA6bGlua2Rlc2N0aXRsZSAvJmd0OyZsdDticiAvJmd0OwombHQ7L3R4cDpz bWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5UaGF0IHdpbGwgbGlzdCBvbmx5IHRoZSBs aW5rcyB0aGF0IGhhdmUgSURzIGJldHdlZW4gdGhlIDxjb2RlPm1pbjwvY29kZT4gYW5kIDxj b2RlPm1heDwvY29kZT4gdmFyaWFibGVzIHNwZWNpZmllZCBvbiB0aGUgYWRkcmVzcyBiYXIu IE5vdGljZSB0aGF0IHRoZSBpZCBmaWVsZCBpcyBvbmx5IGxpc3RlZCBvbmNlIGFuZCBlYWNo IG9wZXJhdG9yIGlzIGFwcGxpZWQgdG8gaXQgaW4gdHVybi48L3A+CgoJPGgyIGlkPSJlZzci PkV4YW1wbGUgNzogYWxwaGFudW1lcmljIHRlc3Rpbmc8L2gyPgoKPHByZSBjbGFzcz0iYmxv Y2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7dXJs dmFyOnByb2R1Y3RfY29kZSZxdW90OwogICAgIG9wZXJhdG9yPSZxdW90O2lzYWxudW0mcXVv dDsmZ3Q7CiAgJmx0O3R4cDpvdXRwdXRfZm9ybSBmb3JtPSZxdW90O3Nob3dfcHJvZHVjdCZx dW90OyAvJmd0OwombHQ7dHhwOmVsc2UgLyZndDsKICZsdDtwJmd0O0ludmFsaWQgcHJvZHVj dCBjb2RlJmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8 cD5UZXN0cyB0byBzZWUgaWYgdGhlIHByb2R1Y3RfY29kZSA8c3BhbiBjbGFzcz0iY2FwcyI+ VVJMPC9zcGFuPiB2YXJpYWJsZSBpcyBhbHBoYW51bWVyaWMgYW5kIGRpc3BsYXlzIGEgZm9y bSBpZiBzby48L3A+CgoJPGgyIGlkPSJlZzgiPkV4YW1wbGUgODogZGlzcGxheWluZyB1c2Vk IHZhbHVlczwvaDI+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4m bHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDt1cmx2YXI6c29ydF9vcmRlciZxdW90OwogICAg IG9wZXJhdG9yPSZxdW90O2luJnF1b3Q7CiAgICAgdmFsdWU9JnF1b3Q7aWQvcHJpY2Uvc2l6 ZS9jb2xvdXImcXVvdDsmZ3Q7CiAgJmx0O3AmZ3Q7U29ydGluZyB2YWx1ZXMgYnkge3NtZF9p Zl9zb3J0X29yZGVyfSZsdDsvcCZndDsKICAvLyBEbyBzb21lIHN0dWZmCiZsdDt0eHA6ZWxz ZSAvJmd0OwogIC8vIFVzZSBhIGRlZmF1bHQgc29ydCwgb3Igc2hvdyBhbiBlcnJvciBoZXJl CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPkJ5IHVzaW5nIHRoZSBy ZXBsYWNlbWVudCB0YWcge3NtZF9pZl9zb3J0X29yZGVyfSB5b3UgaGF2ZSBwbHVja2VkIHRo ZSB2YWx1ZSBmcm9tIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBiYXIgYW5k IGluc2VydGVkIGl0IGludG8gdGhlIGFydGljbGUuIFVzZWZ1bCB3aGVuIHVzaW5nIHRoZSA8 Y29kZT5pbjwvY29kZT4gb3IgPGNvZGU+bm90aW48L2NvZGU+IG9wZXJhdG9ycyBiZWNhdXNl LCBhbHRob3VnaCB5b3Uga25vdyB0aGF0IHRoZSBmaWVsZCBtYXRjaGVkIG9uZSBvZiB0aGUg dmFsdWVzIGluIHlvdXIgbGlzdCwgeW91IHdvdWxkIG90aGVyd2lzZSBub3Qga25vdyB3aGlj aCBvbmUgaGFzIGJlZW4gZ2l2ZW4gb24gdGhlIGFkZHJlc3MgYmFyLiBJZiB5b3Ugc3BlY2lm eSB0aGUgPGNvZGU+ZGVidWc8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0YWdzIGxpa2UgdGhlc2Ug eW91IGNhbiBtb3JlIGVhc2lseSBzZWUgd2hhdCByZXBsYWNlbWVudHMgYXJlIGF2YWlsYWJs ZS48L3A+CgoJPGgyIGlkPSJlZzkiPkV4YW1wbGUgOTogdXNpbmcgcGhwdmFyPC9oMj4KCjxw cmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6cGhwJmd0Owpn bG9iYWwgJGJvZHlleDsKJGJvZHlleCA9IGV4Y2VycHQoYXJyYXkoKSkuYm9keShhcnJheSgp KTsKJmx0Oy90eHA6cGhwJmd0OwombHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDtwaHB2YXI6 Ym9keWV4JnF1b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7Z3Q6TEVOJnF1b3Q7CiAgICAgdmFs dWU9JnF1b3Q7MzAwJnF1b3Q7Jmd0OwogICZsdDtwJmd0O1lvdSBhcmUgYSBiaWcgYm95IGF0 IHtzbWRfaWZfbGVuX2JvZHlleH0KICAgICBjaGFyYWN0ZXJzIGxvbmchJmx0Oy9wJmd0Owom bHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5JZiBwdXQgaW4gYW4gYXJ0 aWNsZSBGb3JtICg8c3BhbiBjbGFzcz0iY2FwcyI+Tk9UPC9zcGFuPiBkaXJlY3RseSBpbiBh biBhcnRpY2xlIG9yIHlvdSYjODIxNztsbCBnZXQgYW4gb3V0IG9mIG1lbW9yeSBlcnJvciEp LCB0aGlzIGNoZWNrcyB0aGUgZXhjZXJwdCBhbmQgYm9keSBhbmQgc2hvd3MgdGhlIG1lc3Nh Z2UgaWYgdGhlIGNvbWJpbmVkIHRvdGFsIGxlbmd0aCBpcyBtb3JlIHRoYW4gMzAwIGNoYXJh Y3RlcnMuPC9wPgoKCTxoMiBpZD0iZWcxMCI+RXhhbXBsZSAxMDogPGNvZGU+YmV0d2Vlbjwv Y29kZT4gYW5kIDxjb2RlPnJhbmdlPC9jb2RlPjwvaDI+CgoJPHA+Q2hlY2sgdGhhdCB0aGUg Z2l2ZW4gPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gcGFyYW1zIDxjb2RlPmRheTwv Y29kZT4gYW5kIDxjb2RlPm1vbnRoPC9jb2RlPiBhcmUgd2l0aGluIHJlYXNvbmFibGUgdG9s ZXJhbmNlLiBOb3RlIHRoYXQgaXQmIzgyMTc7cyBzdGlsbCBwb3NzaWJsZSB0byBzcGVjaWZ5 IHRoZSAzMXN0IEZlYnJ1YXJ5IHNvIHlvdSBtYXkgcmVxdWlyZSBleHRyYSBjaGVja3MgaW4g dGhlIGNvbnRhaW5lci48L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJs b2NrIj4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDt1cmx2YXI6ZGF5LCB1cmx2YXI6bW9u dGgmcXVvdDsKICAgICBvcGVyYXRvcj0mcXVvdDtiZXR3ZWVuLCBiZXR3ZWVuJnF1b3Q7IHZh bHVlPSZxdW90OzAvMzIsIDAvMTMmcXVvdDsmZ3Q7CiAgIC8vIExpa2VseSBhIHZhbGlkIGRh dGUgc3VwcGxpZWQKJmx0Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+VGhp cyBpcyBmdW5jdGlvbmFsbHkgZXF1aXZhbGVudCwgYW5kIHByb2JhYmx5IG1vcmUgb2J2aW91 cyB0byBhbnlvbmUgZWxzZSByZWFkaW5nIHRoZSBjb2RlOjwvcD4KCjxwcmUgY2xhc3M9ImJs b2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O3Vy bHZhcjpkYXksIHVybHZhcjptb250aCZxdW90OwogICAgIG9wZXJhdG9yPSZxdW90O3Jhbmdl LCByYW5nZSZxdW90OyB2YWx1ZT0mcXVvdDsxLzMxLCAxLzEyJnF1b3Q7Jmd0OwogICAvLyBM aWtlbHkgYSB2YWxpZCBkYXRlIHN1cHBsaWVkCiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2Rl PjwvcHJlPgoKCTxwPklmIHlvdSB3YW50ZWQgdG8gZmFjdG9yIHRoZSB5ZWFyIGluIGFuZCBt YWtlIHN1cmUgdGhhdCBub2JvZHkgdXNlZCBhIHllYXIgbGVzcyB0aGFuIDE5MDAgb3IgZ3Jl YXRlciB0aGFuIHRoZSBjdXJyZW50IHllYXIsIHRyeSB0aGlzOjwvcD4KCjxwcmUgY2xhc3M9 ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6cGhwJmd0OwpnbG9iYWwgJHRo aXN5ZWFyOwokdGhpc3llYXIgPSBkYXRlKCZxdW90O1kmcXVvdDspOwombHQ7L3R4cDpwaHAm Z3Q7CiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O3VybHZhcjpkLCB1cmx2YXI6bSwgdXJs dmFyOnkmcXVvdDsKICAgICBvcGVyYXRvcj0mcXVvdDtyYW5nZSwgcmFuZ2UsIHJhbmdlJnF1 b3Q7CiAgICAgdmFsdWU9JnF1b3Q7MS8zMSwgMS8xMiwgMTkwMC9waHB2YXI6dGhpc3llYXIm cXVvdDsmZ3Q7CiAgIC8vIExpa2VseSBhIHZhbGlkIGRhdGUgc3VwcGxpZWQKJmx0Oy90eHA6 c21kX2lmJmd0Owo8L2NvZGU+PC9wcmU+CgoJPGgyIGlkPSJlZzExIj5FeGFtcGxlIDExOiBy ZWFkaW5nIG11bHRpcGxlIHZhbHVlcyBmcm9tIGRpZmZlcmVudCBwbGFjZXM8L2gyPgoKPHBy ZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDp2YXJpYWJsZSBu YW1lPSZxdW90O2x0dWFlJnF1b3Q7Jmd0OzQyJmx0Oy90eHA6dmFyaWFibGUmZ3Q7CiZsdDt0 eHA6c21kX2lmIGZpZWxkPSZxdW90O3VybHZhcjp0cmlnZ2VyJnF1b3Q7CiAgICAgb3BlcmF0 b3I9JnF1b3Q7aW4mcXVvdDsgdmFsdWU9JnF1b3Q7My8xNS8zNi90eHB2YXI6bHR1YWUvMTgw Lz9zZWNyZXQmcXVvdDsmZ3Q7CiAgICZsdDtwJmd0O1lvdSBmb3VuZCBvbmUgb2YgdGhlIG1h Z2ljIG51bWJlcnMmbHQ7L3AmZ3Q7CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJl PgoKCTxwPkZpcnN0IG9mIGFsbCB3ZSBzZXQgdXAgdGhlIFR4cCB2YXJpYWJsZSwgdGhlbiB0 ZXN0IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB2YXJpYWJsZSA8Y29kZT50 cmlnZ2VyPC9jb2RlPiBhbmQgc2VlIGlmIGl0IGlzIG9uZSBvZiB0aGUgbnVtYmVycyBsaXN0 ZWQgaW4gdGhlIDxjb2RlPnZhbHVlPC9jb2RlPiBhdHRyaWJ1dGUuIE5vdGUgdGhhdCB3ZSBo YXZlIHNwZWNpZmllZCB0aGUgVHhwIHZhcmlhYmxlIGFzIG9uZSBvZiB0aGUgbnVtYmVycywg YW5kIGFsc28gdGhlIGNvbnRlbnRzIG9mIHRoZSBjdXN0b20gZmllbGQgY2FsbGVkIDxjb2Rl PnNlY3JldDwvY29kZT4uIEVzc2VudGlhbGx5LCB0aGlzIGJ1aWxkcyB1cCB0aGUgdmFsdWUg YXR0cmlidXRlIGZyb20gYWxsIHRoZSBzb3VyY2VzIGFuZCB0ZXN0cyB0aGUgZmluYWwgcmVz dWx0LiBTbyBpZiBzZWNyZXQgaGVsZCB0aGUgbnVtYmVyIDk0LCB0aGlzIHNtZF9pZiB0YWcg Y2hlY2tzIGlmIHRyaWdnZXIgaXMgb25lIG9mIDMsIDE1LCAzNiwgNDIsIDE4MCBvciA5NCBh bmQgZGlzcGxheXMgdGhlIG1lc3NhZ2UgaWYgc28uIElmIDxjb2RlPnNlY3JldDwvY29kZT4g aW5zdGVhZCBjb250YWluZWQgPGNvZGU+OTQvMTAxLzI0ODwvY29kZT4gdGhlc2UgdGhyZWUg dmFsdWVzIHdvdWxkIGFsc28gYmUgdGVzdGVkIGFzIHBhcnQgb2YgdGhlIDxjb2RlPmluPC9j b2RlPiBvcGVyYXRvci48L3A+CgoJPGgyIGlkPSJlZzEyIj5FeGFtcGxlIDEyOiBpdGVtIGNv dW50czwvaDI+CgoJPHA+VGhpcyBjb3VudHMgdGhlIG51bWJlciBvZiBpdGVtcyBpbiA8Y29k ZT5teV9saXN0PC9jb2RlPiBhbmQgdGVzdHMgdGhlbSBhZ2FpbnN0IHRoZSA8Y29kZT52YWx1 ZTwvY29kZT4uIE5vdGUgdGhhdCA8Y29kZT5saXN0X2RlbGltPC9jb2RlPiBpcyB1c2VkIGJl dHdlZW4gbGlzdCBpdGVtcy48L3A+Cgo8cHJlPjxjb2RlPiZsdDt0eHA6dmFyaWFibGUgbmFt ZT0mcXVvdDtteV9saXN0JnF1b3Q7Jmd0OzggLyA0MiAvIDExIC8gNzUgLyAxNCZsdDsvdHhw OnZhcmlhYmxlJmd0OwombHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDt0eHB2YXI6bXlfbGlz dCZxdW90OyBvcGVyYXRvcj0mcXVvdDtndDpDT1VOVCZxdW90OyB2YWx1ZT0mcXVvdDszJnF1 b3Q7Jmd0OwogICBZZXMsIHRoZXJlIGFyZSB7c21kX2lmX3ZhbDF9IG9yIG1vcmUgdmFsdWVz CiAgIChhY3R1YWxseToge3NtZF9pZl9jb3VudF9teV9saXN0fSkKJmx0O3R4cDplbHNlIC8m Z3Q7CiAgVGhlcmUgYXJlIGZld2VyIHRoYW4ge3NtZF9pZl92YWwxfSB2YWx1ZXMgaW4gdGhl IGxpc3QuCiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxoMj5BdXRob3I8 L2gyPgoKCTxwPjxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9jb250YWN0Ij5TdGVm IERhd3NvbjwvYT4uIEJhc2VkIG9uIGFuIGlkZWEgYnJld2luZyBpbiB0aGUgYmFjayBvZiBt eSBtaW5kIHdoaWxlIGhhY2tpbmcgY2hzX2lmX3VybHZhci48L3A+CgoJPGgyIGNsYXNzPSJj aGFuZ2Vsb2ciPkNoYW5nZWxvZzwvaDI+CgoJPHVsPgoJCTxsaT4zMCBEZWMgMjAwNyB8IDAu MTAgfCBJbml0aWFsIHJlbGVhc2U8L2xpPgoJCTxsaT4zMCBEZWMgMjAwNyB8IDAuMjAgfCBB ZGRlZCBwYXJlbnQgY2F0ZWdvcnkgY2hlY2tpbmcgKHRoYW5rcyB0aGVfZ2hvc3QpPC9saT4K CQk8bGk+MDIgSmFuIDIwMDggfCAwLjMwIHwgQWRkZWQgZGVmaW5lZC91bmRlZmluZWQgYW5k IHN0cmljdCBudW1lcmljIGNvbXBhcmlzb25zPC9saT4KCQk8bGk+MDYgSmFuIDIwMDggfCAw LjQwIHwgQWRkZWQgPGNvZGU+PzwvY29kZT4gbm90YXRpb24gdG8gYWxsb3cgdGhlIHZhbHVl IHRvIHJlYWQgVHhwIGZpZWxkczsgYmV0dGVyIHF1b3RlIHN1cHBvcnQgKGJvdGggdGhhbmtz IE5laWxBKTwvbGk+CgkJPGxpPjA2IEphbiAyMDA4IHwgMC40MSB8IEZpeGVkIGxvd2VyIGNh c2UgZmllbGQgbmFtZXMgYW5kIHVuZGVmaW5lZCBpbmRleCBlcnJvciAodGhhbmtzIHBldGVy aik8L2xpPgoJCTxsaT4xNCBKYW4gMjAwOCB8IDAuNTAgfCBBZGRlZCBjYXNlX3NlbnNpdGl2 ZSBvcHRpb247IG1hZGUgJiM4MjE2O2NvbnRhaW5zJiM4MjE3OyB0aGUgZGVmYXVsdCBmb3Ig JiM4MjE2O3BhcmVudCYjODIxNzsgdGVzdHM7IGltcHJvdmVkIGhlbHAgKGFsbCB0aGFua3Mg dGhlX2dob3N0KTsgYWRkZWQgZGVsaW0gb3B0aW9uczwvbGk+CgkJPGxpPjE1IEphbiAyMDA4 IHwgMC41MSB8IEZpeGVkIGRlZmluZWQvdW5kZWZpbmVkIHN5bnRheCBlcnJvcjsgdGlnaHRl bmVkIGlzdXNlZC9pc2VtcHR5IHRvIGRpc3Rpbmd1aXNoIHRoZW0gZnJvbSBkZWZpbmVkL3Vu ZGVmaW5lZDwvbGk+CgkJPGxpPjI1IE1heSAyMDA4IHwgMC42MCB8IEZpeGVkICYjODIxNjt1 bmRlZmluZWQgaW5kZXgmIzgyMTc7IGVycm9ycyAodGhhbmtzIHJlZGJvdCBhbmQgdGhlX2do b3N0KSA7IGFkZGVkIG1vcmUgcHJldGV4dCB2YXJpYWJsZXMgOyBhZGRlZCBtb3JlIDxjb2Rl PmlzPC9jb2RlPiBjaGVja3MgKGFuZCB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPk5PU1BBQ0U8 L3NwYW4+IG1vZGlmaWVyKSA7IGFsbG93ZWQgZmlsZSBhbmQgbGluayB0ZXN0cyAoaW5jbHVk aW5nIHBhcmVudCBjYXRlZ29yaWVzKTwvbGk+CgkJPGxpPjI2IE1heSAyMDA4IHwgMC42MSB8 IEZpeGVkIHN0dXBpZCBvdmVyc2lnaHQgaW4gZmllbGQgbmFtZSBnZW5lcmF0aW9uIHRvIGFs bG93IGFyYml0cmFyeSBuYW1lcyBpbnN0ZWFkIG9mIGZvcmNpbmcgJHRoaXNhcnRpY2xlICh0 aGFua3MgdG8gSm9hbmEgQ2FydmFsaG8gZm9yIGxlYWRpbmcgbWUgdG8gdGhpcyk8L2xpPgoJ CTxsaT4xMSBKdW4gMjAwOCB8IDAuNjIgfCBGaXhlZCBpbmNvcnJlY3QgcmVzdWx0IGlmIGV2 YWwoKSBpcyBlbXB0eSA7IGFkZGVkIDxzcGFuIGNsYXNzPSJjYXBzIj5OVUxMPC9zcGFuPiBm aWVsZCBvYmplY3Q8L2xpPgoJCTxsaT4xMCBTZXAgMjAwOCB8IDAuNzAgfCBGaXhlZCB3YXJu aW5nIGlmIGVtcHR5IGN1c3RvbSBmaWVsZCBpbiB2YWx1ZSAodGhhbmtzIHZpc3VhbHBlb3Bs ZSkgOyBhZGRlZCB0eHB2YXIgc3VwcG9ydCAodGhhbmtzIHRoZV9naG9zdCkgOyBhZGRlZCB0 aGlzaW1hZ2Ugc3VwcG9ydCAoZm9yIHRoZSBmdXR1cmUpIDsgYWRkZWQgb3BlcmF0b3JzIDxj b2RlPmluPC9jb2RlPiwgPGNvZGU+bm90aW48L2NvZGU+IGFuZCB0aGUgPGNvZGU+bGlzdF9k ZWxpbTwvY29kZT4gYXR0cmlidXRlOyBlbmFibGVkIHJlcGxhY2VtZW50IHRhZ3MgZm9yIG1h dGNoZWQgdmFyaWFibGVzPC9saT4KCQk8bGk+MDEgT2N0IDIwMDggfCAwLjcxIHwgRml4ZWQg dGhlIGZpeCBmb3IgZW1wdHkgY3VzdG9tIGZpZWxkcyBpbXBsZW1lbnRlZCBpbiAwLjcgKHRo YW5rcyBtYXB1L3Zpc3VhbHBlb3BsZSk8L2xpPgoJCTxsaT4wMSBPY3QgMjAwOCB8IDAuNzIg fCBBZGRlZCA8Y29kZT46Tk9UQUdTPC9jb2RlPiAodGhhbmtzIG1hcHUpPC9saT4KCQk8bGk+ MTMgT2N0IDIwMDggfCAwLjczIHwgQWRkZWQgPGNvZGU+Ok5PU1BBQ0U8L2NvZGU+IHRvIDxj b2RlPmJlZ2luczwvY29kZT4sIDxjb2RlPmVuZHM8L2NvZGU+IGFuZCA8Y29kZT5jb250YWlu czwvY29kZT4gKHRoYW5rcyBtYXB1KSwgYWRkZWQgcGhwdmFyIHN1cHBvcnQsIDxjb2RlPjpM RU48L2NvZGU+IG1vZGlmaWVyIGFuZCBsZW5ndGggcmVwbGFjZW1lbnQgdGFncyAoYWxsIHRo YW5rcyB0aGVfZ2hvc3QpPC9saT4KCQk8bGk+MTMgT2N0IDIwMDggfCAwLjc0IHwgQnVnIGZp eCB0aGUgc21kX2lmXyBuYW1lcyBvZiB2YWxzIGFuZCBmaWVsZHMgdG8gYXZvaWQgY2xhc2hl cy4gTm93IG51bWVyaWNhbGx5IGluZGV4ZWQ8L2xpPgoJCTxsaT4wMiBEZWMgMjAwOCB8IDAu NzUgfCBBZGRlZCA8Y29kZT5kaXZpc2libGU8L2NvZGU+IG9wZXJhdG9yICh0aGFua3MgZ29t ZWRpYSkgOyBhbGxvdyBzaG9ydC1jaXJjdWl0IG9mIGZpZWxkcyAodGhhbmtzIHJlZGJvdCk8 L2xpPgoJCTxsaT4yMCBNYXIgMjAwOSB8IDAuNzYgfCBBZGRlZCA8Y29kZT5wb3N0dmFyPC9j b2RlPiBmaWVsZCB0eXBlICh0aGFua3Mga29zdGFzNDUpPC9saT4KCQk8bGk+MjIgTWFyIDIw MDkgfCAwLjc3IHwgQWRkZWQgPGNvZGU+OlRSSU08L2NvZGU+IG1vZGlmaWVyICh0aGFua3Mg Z29tZWRpYSk8L2xpPgoJCTxsaT4wNSBBcHIgMjAwOSB8IDAuODAgfCBBZGRlZCBmaWx0ZXJp bmcgY2FwYWJpbGl0eTwvbGk+CgkJPGxpPjI2IFNlcCAyMDA5IHwgMC44MSB8IEFkZGVkIHBh cmVudCA8Y29kZT5UVEw8L2NvZGU+IGFuZCA8Y29kZT5LSURTPC9jb2RlPiBtb2RpZmllcnMg KHRoYW5rcyBwaG90b25vbWFkKSA7IGltcHJvdmVkIHBhcmVudCBkZWJ1ZyBvdXRwdXQ8L2xp PgoJCTxsaT4wMiBNYXIgMjAxMCB8IDAuODIgfCBBZGRlZCA8Y29kZT5iZXR3ZWVuPC9jb2Rl PiBhbmQgPGNvZGU+cmFuZ2U8L2NvZGU+ICh0aGFua3Mgc3BlZWtlKTwvbGk+CgkJPGxpPjAy IE1hciAyMDEwIHwgMC45MCB8IEludGVybmFsIGNvZGUgcmVmYWN0b3Jpc2F0aW9uIDsgYWxs b3dlZCBtdWx0aXBsZSB2YWx1ZXMgdG8gYmUgcmVhZCBmcm9tIG11bHRpcGxlIHNvdXJjZXMg KHRoYW5rcyBzcGVla2UpIDsgZW5oYW5jZWQgcmVwbGFjZW1lbnQgdGFnczwvbGk+CgkJPGxp PjI4IEphbiAyMDEyIHwgMC45MSB8IEZpeGVkIHByZXRleHQgY2hlY2tzIGZvciBzZWN0aW9u L2NhdGVnb3J5ICh0aGFua3Mgc2FjY2FkZSkgOyBlbmFibGVkIGV4cGxpY2l0IGNoZWNrcyBm b3IgcHJldGV4dCwgZmlsZSwgbGluaywgaW1hZ2UsIGFuZCBhcnRpY2xlIDsgYWRkZWQgPGNv ZGU+dmFyX3ByZWZpeDwvY29kZT4gdG8gYWxsb3cgbmVzdGluZyBvZiBzbWRfaWYgdGFnczsg YWRkZWQgPGNvZGU+OkNPVU5UPC9jb2RlPiBtb2RpZmllciAodGhhbmtzIHRoZV9naG9zdCkg OyBhZGRlZCA8Y29kZT46RVNDPC9jb2RlPiBhbmQgPGNvZGU+OkVTQ0FMTDwvY29kZT4gbW9k aWZpZXJzIDsgZml4ZWQgY2hlY2tzIGZvciBkZWZpbmVkIC8gdW5kZWZpbmVkPC9saT4KCTwv dWw+Cgo8L2Rpdj4KPCEtLSAqKiogQkVHSU4gUExVR0lOIENTUyAqKiogLS0+CjxzdHlsZSB0 eXBlPSJ0ZXh0L2NzcyI+CiNzbWRfaGVscCB7IGxpbmUtaGVpZ2h0OjEuNSA7fQojc21kX2hl bHAgY29kZSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQ6IDEwNSUvMTMwJSAiQ291cmllciBO ZXciLCBjb3VyaWVyLCBtb25vc3BhY2U7IGJhY2tncm91bmQtY29sb3I6ICNmMGU2OGM7IGNv bG9yOiMzMzM7IH0KI3NtZF9oZWxwIGNvZGUuYmxvY2sgeyBmb250LXdlaWdodDpub3JtYWw7 IGJvcmRlcjoxcHggZG90dGVkICM5OTk7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjoxMHB4IDEw cHggMjBweDsgcGFkZGluZzoxMHB4OyB9CiNzbWRfaGVscCBoMSB7IGZvbnQ6IDIycHggR2Vv cmdpYSwgc2VyaWY7IG1hcmdpbjogMDsgdGV4dC1hbGlnbjogY2VudGVyOyB9CiNzbWRfaGVs cCBoMiB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjazsgcGFkZGluZzoxMHB4IDAg MDsgZm9udDogMThweCBHZW9yZ2lhLCBzZXJpZjsgfQojc21kX2hlbHAgaDMgeyBmb250OiBi b2xkIDEzcHggR2VvcmdpYSwgc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjog MjBweCAwIDA7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0KI3NtZF9oZWxwIGg0IHsg Zm9udDogYm9sZCAxMnB4IEdlb3JnaWEsIHNlcmlmOyBsZXR0ZXItc3BhY2luZzogMXB4OyBt YXJnaW46IDEwcHggMCAwOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9CiNzbWRfaGVs cCAuYXRubSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0KI3NtZF9oZWxwIC5tYW5kIHsgYmFja2dy b3VuZDojZWVlOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyB9CiNzbWRfaGVscCB0YWJsZSB7 IHdpZHRoOjkwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmctYm90dG9tOjFlbTsgYm9y ZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyB9CiNzbWRfaGVscCB0ZCwgI3NtZF9oZWxwIHRoIHsg Ym9yZGVyOjFweCBzb2xpZCAjOTk5OyBwYWRkaW5nOi41ZW07IH0KI3NtZF9oZWxwIHVsIHsg bGlzdC1zdHlsZS10eXBlOnNxdWFyZTsgfQojc21kX2hlbHAgLmltcG9ydGFudCB7IGNvbG9y OnJlZDsgfQojc21kX2hlbHAgbGkgeyBtYXJnaW46NXB4IDIwcHggNXB4IDMwcHg7IH0KI3Nt ZF9oZWxwIC5icmVhayB7IG1hcmdpbi10b3A6NXB4OyB9CiNzbWRfaGVscCBkbCBkZCB7IG1h cmdpbjoycHggMTVweDsgfQojc21kX2hlbHAgZGwgZGQ6YmVmb3JlIHsgY29udGVudDogIlwy MDIyXDAwYTAiOyB9CiNzbWRfaGVscCBkbCBkZCBkbCB7IHBhZGRpbmc6IDAgMTVweDsgfQo8 L3N0eWxlPgo8IS0tICoqKiBFTkQgUExVR0lOIENTUyAqKiogLS0+CiI7czo0OiJjb2RlIjtz OjE4NTY1OiIvKioNCiAqIHNtZF9pZg0KICoNCiAqIEEgVGV4dHBhdHRlcm4gQ01TIHBsdWdp biBmb3IgZXZhbHVhdGluZyBtdWx0aXBsZSBjb25kaXRpb25hbCBsb2dpYyBzdGF0ZW1lbnRz DQogKiAgLT4gVGVzdCBmb3IgKGluKWVxdWFsaXR5LCBsZXNzL2dyZWF0ZXIgdGhhbiwgZGl2 aXNpYmxlIGJ5LCBlbXB0eSwgdXNlZCwgZGVmaW5lZCwgYmVnaW5zL2VuZHMsIGNvbnRhaW5z LCBpbiBsaXN0LCB0eXBlLi4uDQogKiAgLT4gU3VwcG9ydHMgYW5kL29yIGxvZ2ljDQogKiAg LT4gRGF0YSBmaWx0cmF0aW9uIG9wdGlvbnMNCiAqDQogKiBAYXV0aG9yIFN0ZWYgRGF3c29u DQogKiBAbGluayAgIGh0dHA6Ly9zdGVmZGF3c29uLmNvbS8NCiAqLw0KDQpmdW5jdGlvbiBz bWRfaWYoJGF0dHMsJHRoaW5nKSB7DQoJZ2xvYmFsICR0aGlzYXJ0aWNsZSwgJHByZXRleHQs ICR0aGlzZmlsZSwgJHRoaXNsaW5rLCAkdGhpc2ltYWdlLCAkdmFyaWFibGU7DQoNCglleHRy YWN0KGxBdHRzKGFycmF5KA0KCQknZmllbGQnICAgICAgICAgID0+ICcnLA0KCQknb3BlcmF0 b3InICAgICAgID0+ICcnLA0KCQkndmFsdWUnICAgICAgICAgID0+ICcnLA0KCQknbG9naWMn ICAgICAgICAgID0+ICdhbmQnLA0KCQknY2FzZV9zZW5zaXRpdmUnID0+ICcwJywNCgkJJ2Zp bHRlcicgICAgICAgICA9PiAnJywNCgkJJ3JlcGxhY2UnICAgICAgICA9PiAnJywNCgkJJ2Zp bHRlcl90eXBlJyAgICA9PiAnYWxsJywNCgkJJ2ZpbHRlcl9vbicgICAgICA9PiAnZmllbGQn LA0KCQkncGFyYW1fZGVsaW0nICAgID0+ICcsJywNCgkJJ21vZF9kZWxpbScgICAgICA9PiAn OicsDQoJCSdsaXN0X2RlbGltJyAgICAgPT4gJy8nLA0KCQkndmFyX3ByZWZpeCcgICAgID0+ ICdzbWRfaWZfJywNCgkJJ2RlYnVnJyAgICAgICAgICA9PiAnMCcsDQoJKSwgJGF0dHMpKTsN Cg0KCS8vIFNwZWNpYWwgZmllbGQgbmFtZXMgdGhhdCByZWZlciB0byAkcHJldGV4dCBvciBl bHNld2hlcmUgLSBldmVyeXRoaW5nIGVsc2UgaXMgYXNzdW1lZCB0bw0KCS8vIGV4aXN0IGlu ICR0aGlzYXJ0aWNsZSBzbyBjdXN0b20gZmllbGRzIGNhbiBiZSB1c2VkDQoJJGFsbFB0eHQg PSBhcnJheSgNCgkJImlkIiAgICAgICAgICAgID0+ICckcHJldGV4dFsiaWQiXScsDQoJCSJz IiAgICAgICAgICAgICA9PiAnJHByZXRleHRbInMiXScsDQoJCSJjIiAgICAgICAgICAgICA9 PiAnJHByZXRleHRbImMiXScsDQoJCSJxdWVyeSIgICAgICAgICA9PiAnJHByZXRleHRbInEi XScsDQoJCSJwZyIgICAgICAgICAgICA9PiAnJHByZXRleHRbInBnIl0nLA0KCQkibW9udGgi ICAgICAgICAgPT4gJyRwcmV0ZXh0WyJtb250aCJdJywNCgkJImF1dGhvciIgICAgICAgID0+ ICckcHJldGV4dFsiYXV0aG9yIl0nLA0KCQkic3RhdHVzIiAgICAgICAgPT4gJyRwcmV0ZXh0 WyJzdGF0dXMiXScsDQoJCSJwYWdlIiAgICAgICAgICA9PiAnJHByZXRleHRbInBhZ2UiXScs DQoJCSJuZXh0X2lkIiAgICAgICA9PiAnJHByZXRleHRbIm5leHRfaWQiXScsDQoJCSJuZXh0 X3RpdGxlIiAgICA9PiAnJHByZXRleHRbIm5leHRfdGl0bGUiXScsDQoJCSJuZXh0X3V0aXRs ZSIgICA9PiAnJHByZXRleHRbIm5leHRfdXRpdGxlIl0nLA0KCQkicHJldl9pZCIgICAgICAg PT4gJyRwcmV0ZXh0WyJwcmV2X2lkIl0nLA0KCQkicHJldl90aXRsZSIgICAgPT4gJyRwcmV0 ZXh0WyJwcmV2X3RpdGxlIl0nLA0KCQkicHJldl91dGl0bGUiICAgPT4gJyRwcmV0ZXh0WyJw cmV2X3V0aXRsZSJdJywNCgkJInBlcm1saW5rX21vZGUiID0+ICckcHJldGV4dFsicGVybWxp bmtfbW9kZSJdJywNCgkpOw0KDQoJLy8gRWFjaCBlbnRyeSBoYXMgdGhlIG9wZXJhdGlvbiB0 byBiZSBldmFsKClkIGxhdGVyIGFuZCBhIGxpc3Qgb2YgZGlzYWxsb3dlZCBmaWVsZHMNCgkk YWxsT3BzID0gYXJyYXkoDQoJCSdlcScgICAgICAgID0+IGFycmF5KCdpc3NldChWQVJOQU1F KSAmJiBDQVNUIEZJRUxEID09PSBDQVNUIFZBTFVFJywgJycpLA0KCQknbm90JyAgICAgICA9 PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgQ0FTVCBGSUVMRCAhPT0gQ0FTVCBWQUxVRScs ICcnKSwNCgkJJ2d0JyAgICAgICAgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIENBU1Qg RklFTEQgPiBDQVNUIFZBTFVFJywgJycpLA0KCQknZ2UnICAgICAgICA9PiBhcnJheSgnaXNz ZXQoVkFSTkFNRSkgJiYgQ0FTVCBGSUVMRCA+PSBDQVNUIFZBTFVFJywgJycpLA0KCQknbHQn ICAgICAgICA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgQ0FTVCBGSUVMRCA8IENBU1Qg VkFMVUUnLCAnJyksDQoJCSdsZScgICAgICAgID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAm JiBDQVNUIEZJRUxEIDw9IENBU1QgVkFMVUUnLCAnJyksDQoJCSdiZXR3ZWVuJyAgID0+IGFy cmF5KCdpc3NldChWQVJOQU1FKSAmJiAoJHR3ZWVuPWV4cGxvZGUoIicuJGxpc3RfZGVsaW0u JyIsIFZBTFVFKSkgJiYgQ0FTVCBGSUVMRCA+ICR0d2VlblswXSAmJiBDQVNUIEZJRUxEIDwg JHR3ZWVuWzFdJywgJycpLA0KCQkncmFuZ2UnICAgICA9PiBhcnJheSgnaXNzZXQoVkFSTkFN RSkgJiYgKCRybmc9ZXhwbG9kZSgiJy4kbGlzdF9kZWxpbS4nIiwgVkFMVUUpKSAmJiBDQVNU IEZJRUxEID49ICRybmdbMF0gJiYgQ0FTVCBGSUVMRCA8PSAkcm5nWzFdJywgJycpLA0KCQkn ZGl2aXNpYmxlJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgQ0FTVCBGSUVMRCAlIENB U1QgVkFMVUUgPT09IDAnLCAnJyksDQoJCSdpbicgICAgICAgID0+IGFycmF5KCdpc3NldChW QVJOQU1FKSAmJiBpbl9hcnJheShGSUVMRCwgZXhwbG9kZSgiJy4kbGlzdF9kZWxpbS4nIiwg VkFMVUUpKSAhPT0gZmFsc2UnLCAnJyksDQoJCSdub3RpbicgICAgID0+IGFycmF5KCdpc3Nl dChWQVJOQU1FKSAmJiBpbl9hcnJheShGSUVMRCwgZXhwbG9kZSgiJy4kbGlzdF9kZWxpbS4n IiwgVkFMVUUpKSA9PT0gZmFsc2UnLCAnJyksDQoJCSdiZWdpbnMnICAgID0+IGFycmF5KCdp c3NldChWQVJOQU1FKSAmJiBzdHJwb3MoRklFTEQsIFZBTFVFKSA9PT0gMCcsICcnKSwNCgkJ J2NvbnRhaW5zJyAgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIHN0cnBvcyhGSUVMRCwg VkFMVUUpICE9PSBmYWxzZScsICcnKSwNCgkJJ2VuZHMnICAgICAgPT4gYXJyYXkoJ2lzc2V0 KFZBUk5BTUUpICYmIHN1YnN0cihGSUVMRCwgc3RybGVuKEZJRUxEKSAtIHN0cmxlbihWQUxV RSkpID09PSBWQUxVRScsICcnKSwNCgkJJ2RlZmluZWQnICAgPT4gYXJyYXkoJ2lzc2V0KFZB Uk5BTUUpJywgJ3BhcmVudCcpLA0KCQkndW5kZWZpbmVkJyA9PiBhcnJheSgnIWlzc2V0KFZB Uk5BTUUpJywgJ3BhcmVudCcpLA0KCQknaXNlbXB0eScgICA9PiBhcnJheSgnaXNzZXQoVkFS TkFNRSkgJiYgRklFTEQgPT0gIiInLCAnJyksDQoJCSdpc3VzZWQnICAgID0+IGFycmF5KCdp c3NldChWQVJOQU1FKSAmJiBGSUVMRCAhPSAiIicsICcnKSwNCgkJJ2lzbnVtJyAgICAgPT4g YXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIGN0eXBlX2RpZ2l0KChzdHJpbmcpRklFTEQpJywg JycpLA0KCQknaXNhbHBoYScgICA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVf YWxwaGEoKHN0cmluZylGSUVMRCknLCAnJyksDQoJCSdpc2FsbnVtJyAgID0+IGFycmF5KCdp c3NldChWQVJOQU1FKSAmJiBjdHlwZV9hbG51bSgoc3RyaW5nKUZJRUxEKScsICcnKSwNCgkJ J2lzbG93ZXInICAgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIGN0eXBlX2xvd2VyKChz dHJpbmcpRklFTEQpJywgJycpLA0KCQknaXN1cHBlcicgICA9PiBhcnJheSgnaXNzZXQoVkFS TkFNRSkgJiYgY3R5cGVfdXBwZXIoKHN0cmluZylGSUVMRCknLCAnJyksDQoJCSdpc3B1bmN0 JyAgID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBjdHlwZV9wdW5jdCgoc3RyaW5nKUZJ RUxEKScsICcnKSwNCgkJJ2lzc3BhY2UnICAgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYm IGN0eXBlX3NwYWNlKChzdHJpbmcpRklFTEQpJywgJycpLA0KCSk7DQoNCgkkbnVtZXJpY09w cyA9ICJndCwgZ2UsIGx0LCBsZSwgZXEsIG5vdCwgZGl2aXNpYmxlLCByYW5nZSwgYmV0d2Vl biI7DQoJJGNhc2VPcHMgPSAiaXNsb3dlciwgaXN1cHBlciI7DQoJJHNwYWNlT3BzID0gImlz bnVtLCBpc2FscGhhLCBpc2FsbnVtLCBpc2xvd2VyLCBpc3VwcGVyLCBpc3B1bmN0LCBiZWdp bnMsIGNvbnRhaW5zLCBlbmRzIjsNCgkkZmllbGRzID0gZG9fbGlzdCgkZmllbGQsICRwYXJh bV9kZWxpbSk7DQoJJG51bUZsZHMgPSBjb3VudCgkZmllbGRzKTsNCgkkb3BzID0gZG9fbGlz dCgkb3BlcmF0b3IsICRwYXJhbV9kZWxpbSk7DQoJJG51bU9wcyA9IGNvdW50KCRvcHMpOw0K CSR2YWxzID0gZG9fbGlzdCgkdmFsdWUsICRwYXJhbV9kZWxpbSk7DQoJJG51bVZhbHMgPSBj b3VudCgkdmFscyk7DQoJJHBhcmVudENhdHMgPSAnJzsgLy8gUGxhY2Vob2xkZXIgZm9yIHRo ZSBjb25jYXRlbmF0ZWQgbGlzdCBvZiBjYXRlZ29yeSBsZWFmIG5vZGVzDQoJJHJlcGxhY2Vt ZW50cyA9IGFycmF5KCk7DQoJJHR5cGUgPSAoJHRoaXNmaWxlKSA/ICJmaWxlIiA6ICgoJHRo aXNsaW5rKSA/ICJsaW5rIiA6ICgoJHRoaXNpbWFnZSkgPyAiaW1hZ2UiIDogImFydGljbGUi KSk7DQoJJG91dCA9IGFycmF5KCk7DQoJJGl0ZXJhdGlvbnMgPSAoJG51bUZsZHMgPiAkbnVt T3BzKSA/ICRudW1GbGRzIDogJG51bU9wczsNCgkkZmlsdGVyID0gKCFlbXB0eSgkZmlsdGVy KSkgPyBkb19saXN0KCRmaWx0ZXIsICRwYXJhbV9kZWxpbSkgOiBhcnJheSgpOw0KCSRyZXBs YWNlID0gKCFlbXB0eSgkcmVwbGFjZSkpID8gZG9fbGlzdCgkcmVwbGFjZSwgJHBhcmFtX2Rl bGltKSA6IGFycmF5KCk7DQoJJG51bUZpbHRlcnMgPSBjb3VudCgkZmlsdGVyKTsNCgkkbnVt UmVwbGFjZSA9IGNvdW50KCRyZXBsYWNlKTsNCgkkZmlsdGVyX29uID0gKCFlbXB0eSgkZmls dGVyX29uKSkgPyBkb19saXN0KCRmaWx0ZXJfb24sICRwYXJhbV9kZWxpbSkgOiBhcnJheSgp Ow0KCSRmaWx0ZXJfdHlwZSA9ICghZW1wdHkoJGZpbHRlcl90eXBlKSkgPyBkb19saXN0KCRm aWx0ZXJfdHlwZSwgJHBhcmFtX2RlbGltKSA6IGFycmF5KCk7DQoJaWYgKCRkZWJ1ZyA+IDEg JiYgKCRmaWx0ZXIgfHwgJHJlcGxhY2UpKSB7DQoJCWVjaG8gIisrIEZJTFRFUlMgLyBSRVBM QUNFTUVOVFMgKysiOw0KCQlkbXAoJGZpbHRlciwgJHJlcGxhY2UpOw0KCX0NCg0KCWZvciAo JGlkeCA9IDA7ICRpZHggPCAkaXRlcmF0aW9uczsgJGlkeCsrKSB7DQoJCSRmbGQgPSAoJGlk eCA8ICRudW1GbGRzKSA/ICRmaWVsZHNbJGlkeF0gOiAkZmllbGRzWzBdOyAvLyBBbGxvdyBz aG9ydC1jaXJjdWl0DQoJCSRmbGRQYXJ0cyA9IGV4cGxvZGUoJG1vZF9kZWxpbSwgJGZsZCk7 DQoJCSR2YWwgPSAoJGlkeCA8ICRudW1WYWxzKSA/ICR2YWxzWyRpZHhdIDogJyc7DQoJCSR2 YWxMaXN0ID0gZXhwbG9kZSgkbGlzdF9kZWxpbSwgJHZhbCk7DQoJCSR2YWxSZXAgPSBhcnJh eSgpOw0KCQlmb3JlYWNoICgkdmFsTGlzdCBhcyAka2R4ID0+ICR0aGV2YWwpIHsNCgkJCSR2 YWxSZXBbJGtkeF0gPSBleHBsb2RlKCRtb2RfZGVsaW0sICR0aGV2YWwpOw0KCQl9DQoNCgkJ JG9wID0gKCRpZHggPCAkbnVtT3BzICYmICRvcHNbJGlkeF0gIT0gJycpID8gJG9wc1skaWR4 XSA6ICgoJGZsZFBhcnRzWzBdPT0icGFyZW50IikgPyAiY29udGFpbnMiIDogImVxIik7DQoJ CSRvcFBhcnRzID0gZXhwbG9kZSgkbW9kX2RlbGltLCAkb3ApOw0KCQkkb3AgPSAoYXJyYXlf a2V5X2V4aXN0cygkb3BQYXJ0c1swXSwgJGFsbE9wcykpID8gJG9wUGFydHNbMF0gOiAiZXEi Ow0KCQkkY2FzdCA9ICgoY291bnQoJG9wUGFydHMpID09IDIpICYmICgkb3BQYXJ0c1sxXSA9 PT0gIk5VTSIpICYmIChpbl9saXN0KCRvcCwgJG51bWVyaWNPcHMpKSkgPyAnKGludCknIDog Jyc7DQoJCSRsZW5ndGggPSAoKGNvdW50KCRvcFBhcnRzKSA9PSAyKSAmJiAoJG9wUGFydHNb MV0gPT09ICJMRU4iKSAmJiAoaW5fbGlzdCgkb3AsICRudW1lcmljT3BzKSkpID8gJ3N0cmxl bihGSUVMRCknIDogJyc7DQoJCS8vIFRoZSBjYXN0IHRvIHN0cmluZyBpcyBuZWNlc3Nhcnkg dG8gY291bnRlcmFjdCB0aGUgPT09IGluIHRoZSBlcSBvcGVyYXRvci4NCgkJLy8gSXQgZG9l c24ndCBpbXBhY3QgYW55dGhpbmcgZWxzZSBiZWNhdXNlIHN0cmluZyBjb21wYXJpc29ucyB3 b3JrIGZhaXJseSBpbnR1aXRpdmVseSBpbiBQSFANCgkJLy8gKGUuZy4gMTkgPCAyID0gZmFs c2UgZXZlbiB0aG91Z2ggaW4gdGVybXMgb2Ygc3RyaW5nIG9yZGVyIHRoZXknZCBnbyAxOSwg MiwgMjAsIDIxLC4uLikNCgkJJGNvdW50ID0gKChjb3VudCgkb3BQYXJ0cykgPT0gMikgJiYg KCRvcFBhcnRzWzFdID09PSAiQ09VTlQiKSAmJiAoaW5fbGlzdCgkb3AsICRudW1lcmljT3Bz KSkpID8gJyhzdHJpbmcpY291bnQoZXhwbG9kZSgiJy4kbGlzdF9kZWxpbS4nIiwgRklFTEQp KScgOiAnJzsNCgkJJGtpbGxTcGFjZXMgPSAoKGNvdW50KCRvcFBhcnRzKSA9PSAyKSAmJiAo JG9wUGFydHNbMV0gPT09ICJOT1NQQUNFIikgJiYgKGluX2xpc3QoJG9wLCAkc3BhY2VPcHMp KSkgPyB0cnVlIDogZmFsc2U7DQoJCSRzdHJpcEZsZCA9ICgoY291bnQoJGZsZFBhcnRzKSA+ IDEpICYmIChpbl9hcnJheSgiTk9UQUdTIiwgJGZsZFBhcnRzKSkpID8gdHJ1ZSA6IGZhbHNl Ow0KCQkkdHJpbUZsZCA9ICgoY291bnQoJGZsZFBhcnRzKSA+IDEpICYmIChpbl9hcnJheSgi VFJJTSIsICRmbGRQYXJ0cykpKSA/IHRydWUgOiBmYWxzZTsNCgkJJGVzY2FwZUZsZCA9ICgo Y291bnQoJGZsZFBhcnRzKSA+IDEpICYmIChpbl9hcnJheSgiRVNDIiwgJGZsZFBhcnRzKSkp ID8gdHJ1ZSA6IGZhbHNlOw0KCQkkZXNjYXBlQWxsRmxkID0gKChjb3VudCgkZmxkUGFydHMp ID4gMSkgJiYgKGluX2FycmF5KCJFU0NBTEwiLCAkZmxkUGFydHMpKSkgPyB0cnVlIDogZmFs c2U7DQoJCSRjYXNlX3NlbnNpdGl2ZSA9IChpbl9saXN0KCRvcCwgJGNhc2VPcHMpKSA/IDEg OiAkY2FzZV9zZW5zaXRpdmU7DQoJCSRwYXQgPSAoJGlkeCA8ICRudW1GaWx0ZXJzKSA/ICRm aWx0ZXJbJGlkeF0gOiAoKCRmaWx0ZXIpID8gJGZpbHRlclswXSA6ICcnKTsNCgkJJHJlcCA9 ICgkaWR4IDwgJG51bVJlcGxhY2UpID8gJHJlcGxhY2VbJGlkeF0gOiAoKCRyZXBsYWNlKSA/ ICRyZXBsYWNlWzBdIDogJycpOw0KCQlpZiAoJGRlYnVnKSB7DQoJCQllY2hvICdURVNUICcu KCRpZHgrMSkubjsNCgkJCWRtcCgkZmxkUGFydHMsICRvcFBhcnRzLCAkdmFsUmVwKTsNCgkJ fQ0KCQkvLyBHZXQgdGhlIG9wZXJhdG9yIHJlcGxhY2VtZW50IGNvZGUNCgkJJGV4Y2x1ZGUg PSBkb19saXN0KCRhbGxPcHNbJG9wXVsxXSk7DQoJCSRvcCA9ICRhbGxPcHNbJG9wXVswXTsN Cg0KCQkvLyBBcyBsb25nIGFzIHRoZSBjdXJyZW50IG9wZXJhdG9yIGFsbG93cyB0aGlzIGZp ZWxkLi4uDQoJCWlmICghaW5fYXJyYXkoJGZsZFBhcnRzWzBdLCAkZXhjbHVkZSkpIHsNCgkJ CS8vIE1ha2UgdXAgdGhlIHRlc3QgZmllbGQgdmFyaWFibGUNCgkJCWlmICgkZmxkUGFydHNb MF0gPT0gJ2ZpbGUnKSB7DQoJCQkJJHJmbGQgPSAkZmxkUGFydHNbMV07DQoJCQkJJGZsZCA9 ICckdGhpc2ZpbGVbIicuJHJmbGQuJyJdJzsNCgkJCX0gZWxzZSBpZiAoaXNzZXQoJHRoaXNm aWxlWyRmbGRQYXJ0c1swXV0pKSB7DQoJCQkJJHJmbGQgPSAkZmxkUGFydHNbMF07DQoJCQkJ JGZsZCA9ICckdGhpc2ZpbGVbIicuJHJmbGQuJyJdJzsNCgkJCX0gZWxzZSBpZiAoJGZsZFBh cnRzWzBdID09ICdsaW5rJykgew0KCQkJCSRyZmxkID0gJGZsZFBhcnRzWzFdOw0KCQkJCSRm bGQgPSAnJHRoaXNsaW5rWyInLiRyZmxkLiciXSc7DQoJCQl9IGVsc2UgaWYgKGlzc2V0KCR0 aGlzbGlua1skZmxkUGFydHNbMF1dKSkgew0KCQkJCSRyZmxkID0gJGZsZFBhcnRzWzBdOw0K CQkJCSRmbGQgPSAnJHRoaXNsaW5rWyInLiRyZmxkLiciXSc7DQoJCQl9IGVsc2UgaWYgKCRm bGRQYXJ0c1swXSA9PSAnaW1hZ2UnKSB7DQoJCQkJJHJmbGQgPSAkZmxkUGFydHNbMV07DQoJ CQkJJGZsZCA9ICckdGhpc2ltYWdlWyInLiRyZmxkLiciXSc7DQoJCQl9IGVsc2UgaWYgKGlz c2V0KCR0aGlzaW1hZ2VbJGZsZFBhcnRzWzBdXSkpIHsNCgkJCQkkcmZsZCA9ICRmbGRQYXJ0 c1swXTsNCgkJCQkkZmxkID0gJyR0aGlzaW1hZ2VbIicuJHJmbGQuJyJdJzsNCgkJCX0gZWxz ZSBpZiAoJGZsZFBhcnRzWzBdID09ICdwcmV0ZXh0Jykgew0KCQkJCSRyZmxkID0gJGZsZFBh cnRzWzFdOw0KCQkJCSRmbGQgPSAnJHByZXRleHRbIicuJHJmbGQuJyJdJzsNCgkJCX0gZWxz ZSBpZiAoYXJyYXlfa2V5X2V4aXN0cygkZmxkUGFydHNbMF0sICRhbGxQdHh0KSkgew0KCQkJ CSRyZmxkID0gJGZsZFBhcnRzWzBdOw0KCQkJCSRmbGQgPSAkYWxsUHR4dFskcmZsZF07DQoJ CQl9IGVsc2UgaWYgKCRmbGRQYXJ0c1swXSA9PSAicGFyZW50Iikgew0KCQkJCSR0cmVlRmll bGQgPSAnbmFtZSc7DQoJCQkJJGxldmVsID0gJyc7DQoJCQkJZm9yZWFjaCAoJGZsZFBhcnRz IGFzICRwYXJ0KSB7DQoJCQkJCWlmICgkcGFydCA9PSAicGFyZW50Iikgew0KCQkJCQkJJHRo ZUNhdCA9ICgkdGhpc2ZpbGUpID8gJHRoaXNmaWxlWydjYXRlZ29yeSddIDogKCgkdGhpc2xp bmspID8gJHRoaXNsaW5rWydjYXRlZ29yeSddIDogKCgkdGhpc2ltYWdlKSA/ICR0aGlzaW1h Z2VbJ2NhdGVnb3J5J10gOiAkcHJldGV4dFsnYyddKSk7DQoJCQkJCX0gZWxzZSBpZiAoc3Ry cG9zKCRwYXJ0LCAiQ0FUIikgPT09IDApIHsNCgkJCQkJCSR0aGVDYXQgPSAkdGhpc2FydGlj bGVbImNhdGVnb3J5Ii5zdWJzdHIoJHBhcnQsIDMpXTsNCgkJCQkJfSBlbHNlIGlmIChzdHJw b3MoJHBhcnQsICJMVkwiKSA9PT0gMCkgew0KCQkJCQkJJGxldmVsID0gc3Vic3RyKCRwYXJ0 LCAzKTsNCgkJCQkJfSBlbHNlIGlmIChzdHJwb3MoJHBhcnQsICJUVEwiKSA9PT0gMCkgew0K CQkJCQkJJHRyZWVGaWVsZCA9ICd0aXRsZSc7DQoJCQkJCX0gZWxzZSBpZiAoc3RycG9zKCRw YXJ0LCAiS0lEUyIpID09PSAwKSB7DQoJCQkJCQkkdHJlZUZpZWxkID0gJ2NoaWxkcmVuJzsN CgkJCQkJfQ0KCQkJCX0NCg0KCQkJCSR0cmVlID0gZ2V0VHJlZVBhdGgoZG9TbGFzaCgkdGhl Q2F0KSwgJHR5cGUpOw0KCQkJCWlmICgkZGVidWcgJiYgJHRyZWUpIHsNCgkJCQkJZWNobyAi Q0FURUdPUlkgVFJFRToiOw0KCQkJCQlkbXAoJHRyZWUpOw0KCQkJCX0NCgkJCQkkaXRlbXMg PSBhcnJheSgpOw0KCQkJCWZvcmVhY2ggKCR0cmVlIGFzICRsZWFmKSB7DQoJCQkJCWlmICgk bGVhZlsnbmFtZSddID09ICJyb290IiB8fCAkbGVhZlsnbmFtZSddID09ICR0aGVDYXQpIHsN CgkJCQkJCWNvbnRpbnVlOw0KCQkJCQl9IGVsc2UgaWYgKCRsZXZlbCA9PSAnJyB8fCAkbGV2 ZWwgPT0gJGxlYWZbJ2xldmVsJ10pIHsNCgkJCQkJCSRpdGVtc1tdID0gJGxlYWZbJHRyZWVG aWVsZF07DQoJCQkJCX0NCgkJCQl9DQoJCQkJJHBhcmVudENhdHMgPSBpbXBsb2RlKCIgIiwg JGl0ZW1zKTsNCgkJCQkkcmZsZCA9IHNhbml0aXplRm9yVXJsKCRwYXJlbnRDYXRzKTsNCgkJ CQlpZiAoJGRlYnVnICYmICRwYXJlbnRDYXRzKSB7DQoJCQkJCWVjaG8gIisrIFBBUkVOVCBJ TkZPICsrIjsNCgkJCQkJZG1wKCRwYXJlbnRDYXRzKTsNCgkJCQl9DQoJCQkJJGZsZCA9ICck cGFyZW50Q2F0cyc7DQoJCQl9IGVsc2UgaWYgKCRmbGRQYXJ0c1swXSA9PSAidHhwdmFyIikg ew0KCQkJCWlmIChjb3VudCgkZmxkUGFydHMpID4gMSkgew0KCQkJCQkkcmZsZCA9ICRmbGRQ YXJ0c1sxXTsNCgkJCQkJJGZsZCA9ICckdmFyaWFibGVbIicuJHJmbGQuJyJdJzsNCgkJCQl9 DQoJCQl9IGVsc2UgaWYgKCRmbGRQYXJ0c1swXSA9PSAidXJsdmFyIikgew0KCQkJCWlmIChj b3VudCgkZmxkUGFydHMpID4gMSkgew0KCQkJCQkkcmZsZCA9ICRmbGRQYXJ0c1sxXTsNCgkJ CQkJJGZsZCA9ICckX0dFVFsiJy4kcmZsZC4nIl0nOw0KCQkJCX0NCgkJCX0gZWxzZSBpZiAo JGZsZFBhcnRzWzBdID09ICJwb3N0dmFyIikgew0KCQkJCWlmIChjb3VudCgkZmxkUGFydHMp ID4gMSkgew0KCQkJCQkkcmZsZCA9ICRmbGRQYXJ0c1sxXTsNCgkJCQkJJGZsZCA9ICckX1BP U1RbIicuJHJmbGQuJyJdJzsNCgkJCQl9DQoJCQl9IGVsc2UgaWYgKCRmbGRQYXJ0c1swXSA9 PSAic3ZydmFyIikgew0KCQkJCWlmIChjb3VudCgkZmxkUGFydHMpID4gMSkgew0KCQkJCQkk cmZsZCA9ICRmbGRQYXJ0c1sxXTsNCgkJCQkJJGZsZCA9ICckX1NFUlZFUlsiJy4kcmZsZC4n Il0nOw0KCQkJCX0NCgkJCX0gZWxzZSBpZiAoJGZsZFBhcnRzWzBdID09ICJwaHB2YXIiKSB7 DQoJCQkJaWYgKGNvdW50KCRmbGRQYXJ0cykgPiAxKSB7DQoJCQkJCSRyZmxkID0gJGZsZFBh cnRzWzFdOw0KCQkJCQkkZmxkID0gJyRHTE9CQUxTWyInLiRyZmxkLiciXSc7DQoJCQkJfQ0K CQkJfSBlbHNlIGlmICgkZmxkUGFydHNbMF0gPT0gJ2FydGljbGUnKSB7DQoJCQkJJHJmbGQg PSBzdHJ0b2xvd2VyKCRmbGRQYXJ0c1sxXSk7DQoJCQkJJGZsZCA9ICckdGhpc2FydGljbGVb IicuJHJmbGQuJyJdJzsNCgkJCX0gZWxzZSBpZiAoaXNzZXQoJHRoaXNhcnRpY2xlWyRmbGRQ YXJ0c1swXV0pKSB7DQoJCQkJJHJmbGQgPSBzdHJ0b2xvd2VyKCRmbGRQYXJ0c1swXSk7DQoJ CQkJJGZsZCA9ICckdGhpc2FydGljbGVbIicuJHJmbGQuJyJdJzsNCgkJCX0gZWxzZSBpZiAo JGZsZFBhcnRzWzBdID09ICJOVUxMIikgew0KCQkJCSRzbWRfaWZfdmFyID0gJyc7DQoJCQkJ JGZsZCA9ICckc21kX2lmX3Zhcic7DQoJCQkJJHJmbGQgPSAiTlVMTCI7DQoJCQl9IGVsc2Ug ew0KCQkJCSRzbWRfaWZfdmFyID0gJGZsZFBhcnRzWzBdOw0KCQkJCSRmbGQgPSAnJHNtZF9p Zl92YXInOw0KCQkJCSRyZmxkID0gImZpZWxkIi4oJGlkeCoxKzEpOw0KCQkJfQ0KCQkJJHJs ZmxkID0gJHZhcl9wcmVmaXguImxlbl8iLiRyZmxkOw0KCQkJJHJjZmxkID0gJHZhcl9wcmVm aXguImNvdW50XyIuJHJmbGQ7DQoJCQkkcmZsZCA9ICR2YXJfcHJlZml4LiRyZmxkOw0KDQoJ CQkvLyBUYWtlIGEgY29weSBvZiAkZmxkIHRvIHVzZSBpbiBhbnkgaXNzZXQoKSByZXF1ZXN0 cw0KCQkJJGZsZENsZWFuID0gJGZsZDsNCg0KCQkJLy8gQXBwbHkgdXNlci1kZWZpbmVkIGZp ZWxkIGZpbHRlcnMNCgkJCWlmICgka2lsbFNwYWNlcykgew0KCQkJCSRmbGQgPSAncHJlZ19y ZXBsYWNlKCIvXHMrLyIsIiIsJy4kZmxkLicpJzsNCgkJCX0NCgkJCWlmICgkc3RyaXBGbGQp IHsNCgkJCQkkZmxkID0gJ3RyaW0oc3RyaXBfdGFncygnLiRmbGQuJykpJzsNCgkJCX0NCgkJ CWlmICgkdHJpbUZsZCkgew0KCQkJCSRmbGQgPSAndHJpbSgnLiRmbGQuJyknOw0KCQkJfQ0K CQkJaWYgKCRlc2NhcGVGbGQpIHsNCgkJCQkkZmxkID0gJ2h0bWxlbnRpdGllcygnLiRmbGQu JyknOw0KCQkJfQ0KCQkJaWYgKCRlc2NhcGVBbGxGbGQpIHsNCgkJCQkkZmxkID0gJ2h0bWxl bnRpdGllcygnLiRmbGQuJywgRU5UX1FVT1RFUyknOw0KCQkJfQ0KCQkJJGRvX2ZmaWx0ID0g KCRwYXQgJiYgaW5fYXJyYXkoJ2ZpZWxkJywgJGZpbHRlcl9vbikgJiYgKGluX2FycmF5KCRm bGRQYXJ0c1swXSwgJGZpbHRlcl90eXBlKSB8fCBpbl9hcnJheSgnYWxsJywgJGZpbHRlcl90 eXBlKSkgKSA/IHRydWUgOiBmYWxzZTsNCg0KCQkJLy8gRmluZCB0aGUgcmVhbCB2YWx1ZSB0 byBjb21wYXJlIGFnYWluc3QgKG1heSBiZSBhbm90aGVyIGZpZWxkKQ0KCQkJJHZhbGNudCA9 IDE7DQoJCQkkdmZsZHMgPSBhcnJheSgpOw0KCQkJJGNvcmVfdmZsZCA9ICJ2YWwiLigoJGlk eCoxKSsxKTsNCg0KCQkJZm9yZWFjaCAoJHZhbFJlcCBhcyAkamR4ID0+ICR2YWxQYXJ0cykg ew0KCQkJCSRzdHJpcFZhbCA9ICgoY291bnQoJHZhbFBhcnRzKSA+IDEpICYmIChpbl9hcnJh eSgiTk9UQUdTIiwgJHZhbFBhcnRzKSkpID8gdHJ1ZSA6IGZhbHNlOw0KCQkJCSR0cmltVmFs ID0gKChjb3VudCgkdmFsUGFydHMpID4gMSkgJiYgKGluX2FycmF5KCJUUklNIiwgJHZhbFBh cnRzKSkpID8gdHJ1ZSA6IGZhbHNlOw0KCQkJCSRlc2NhcGVWYWwgPSAoKGNvdW50KCR2YWxQ YXJ0cykgPiAxKSAmJiAoaW5fYXJyYXkoIkVTQyIsICR2YWxQYXJ0cykpKSA/IHRydWUgOiBm YWxzZTsNCgkJCQkkZXNjYXBlQWxsVmFsID0gKChjb3VudCgkdmFsUGFydHMpID4gMSkgJiYg KGluX2FycmF5KCJFU0NBTEwiLCAkdmFsUGFydHMpKSkgPyB0cnVlIDogZmFsc2U7DQoJCQkJ JG51bVZhbFBhcnRzID0gY291bnQoJHZhbFBhcnRzKTsNCgkJCQlpZiAoJHZhbFBhcnRzWzBd ID09ICJ1cmx2YXIiKSB7DQoJCQkJCWlmICgkbnVtVmFsUGFydHMgPiAxKSB7DQoJCQkJCQkk dmZsZCA9ICR2YWxQYXJ0c1sxXTsNCgkJCQkJCSR2YWwgPSAoaXNzZXQoJF9HRVRbJHZmbGRd KSAmJiAkX0dFVFskdmZsZF0gIT0gIiIpID8gJyRfR0VUWyInLiR2ZmxkLiciXScgOiBkb1F1 b3RlKHN0cl9yZXBsYWNlKCciJywgJ1wiJywgJHZmbGQpKTsNCgkJCQkJfQ0KCQkJCX0gZWxz ZSBpZiAoJHZhbFBhcnRzWzBdID09ICJwb3N0dmFyIikgew0KCQkJCQlpZiAoJG51bVZhbFBh cnRzID4gMSkgew0KCQkJCQkJJHZmbGQgPSAkdmFsUGFydHNbMV07DQoJCQkJCQkkdmFsID0g KGlzc2V0KCRfUE9TVFskdmZsZF0pICYmICRfUE9TVFskdmZsZF0gIT0gIiIpID8gJyRfUE9T VFsiJy4kdmZsZC4nIl0nIDogZG9RdW90ZShzdHJfcmVwbGFjZSgnIicsICdcIicsICR2Zmxk KSk7DQoJCQkJCX0NCgkJCQl9IGVsc2UgaWYgKCR2YWxQYXJ0c1swXSA9PSAic3ZydmFyIikg ew0KCQkJCQlpZiAoJG51bVZhbFBhcnRzID4gMSkgew0KCQkJCQkJJHZmbGQgPSAkdmFsUGFy dHNbMV07DQoJCQkJCQkkdmFsID0gKGlzc2V0KCRfU0VSVkVSWyR2ZmxkXSkgJiYgJF9TRVJW RVJbJHZmbGRdICE9ICIiKSA/ICckX1NFUlZFUlsiJy4kdmZsZC4nIl0nIDogZG9RdW90ZShz dHJfcmVwbGFjZSgnIicsICdcIicsICR2ZmxkKSk7DQoJCQkJCX0NCgkJCQl9IGVsc2UgaWYg KCR2YWxQYXJ0c1swXSA9PSAidHhwdmFyIikgew0KCQkJCQlpZiAoJG51bVZhbFBhcnRzID4g MSkgew0KCQkJCQkJJHZmbGQgPSAkdmFsUGFydHNbMV07DQoJCQkJCQkkdmFsID0gKGlzc2V0 KCR2YXJpYWJsZVskdmZsZF0pICYmICR2YXJpYWJsZVskdmZsZF0gIT0gIiIpID8gJyR2YXJp YWJsZVsiJy4kdmZsZC4nIl0nIDogZG9RdW90ZShzdHJfcmVwbGFjZSgnIicsICdcIicsICR2 ZmxkKSk7DQoJCQkJCX0NCgkJCQl9IGVsc2UgaWYgKCR2YWxQYXJ0c1swXSA9PSAicGhwdmFy Iikgew0KCQkJCQlpZiAoJG51bVZhbFBhcnRzID4gMSkgew0KCQkJCQkJJHZmbGQgPSAkdmFs UGFydHNbMV07DQoJCQkJCQkkdmFsID0gKGlzc2V0KCRHTE9CQUxTWyR2ZmxkXSkgJiYgJEdM T0JBTFNbJHZmbGRdICE9ICIiKSA/ICckR0xPQkFMU1siJy4kdmZsZC4nIl0nIDogZG9RdW90 ZShzdHJfcmVwbGFjZSgnIicsICdcIicsICR2ZmxkKSk7DQoJCQkJCX0NCgkJCQl9IGVsc2Ug aWYgKCR2YWxQYXJ0c1swXSA9PSAiZmlsZSIpIHsNCgkJCQkJaWYgKCRudW1WYWxQYXJ0cyA+ IDEpIHsNCgkJCQkJCSR2ZmxkID0gJHZhbFBhcnRzWzFdOw0KCQkJCQkJJHZhbCA9IChpc3Nl dCgkdGhpc2ZpbGVbJHZmbGRdKSAmJiAkdGhpc2ZpbGVbJHZmbGRdICE9ICIiKSA/ICckdGhp c2ZpbGVbIicuJHZmbGQuJyJdJyA6IGRvUXVvdGUoc3RyX3JlcGxhY2UoJyInLCAnXCInLCAk dmZsZCkpOw0KCQkJCQl9DQoJCQkJfSBlbHNlIGlmICgkdmFsUGFydHNbMF0gPT0gImxpbmsi KSB7DQoJCQkJCWlmICgkbnVtVmFsUGFydHMgPiAxKSB7DQoJCQkJCQkkdmZsZCA9ICR2YWxQ YXJ0c1sxXTsNCgkJCQkJCSR2YWwgPSAoaXNzZXQoJHRoaXNsaW5rWyR2ZmxkXSkgJiYgJHRo aXNsaW5rWyR2ZmxkXSAhPSAiIikgPyAnJHRoaXNsaW5rWyInLiR2ZmxkLiciXScgOiBkb1F1 b3RlKHN0cl9yZXBsYWNlKCciJywgJ1wiJywgJHZmbGQpKTsNCgkJCQkJfQ0KCQkJCX0gZWxz ZSBpZiAoJHZhbFBhcnRzWzBdID09ICJpbWFnZSIpIHsNCgkJCQkJaWYgKCRudW1WYWxQYXJ0 cyA+IDEpIHsNCgkJCQkJCSR2ZmxkID0gJHZhbFBhcnRzWzFdOw0KCQkJCQkJJHZhbCA9IChp c3NldCgkdGhpc2ltYWdlWyR2ZmxkXSkgJiYgJHRoaXNpbWFnZVskdmZsZF0gIT0gIiIpID8g JyR0aGlzaW1hZ2VbIicuJHZmbGQuJyJdJyA6IGRvUXVvdGUoc3RyX3JlcGxhY2UoJyInLCAn XCInLCAkdmZsZCkpOw0KCQkJCQl9DQoJCQkJfSBlbHNlIGlmICgkdmFsUGFydHNbMF0gPT0g InByZXRleHQiKSB7DQoJCQkJCWlmICgkbnVtVmFsUGFydHMgPiAxKSB7DQoJCQkJCQkkdmZs ZCA9ICR2YWxQYXJ0c1sxXTsNCgkJCQkJCSR2YWwgPSAoaXNzZXQoJHByZXRleHRbJHZmbGRd KSAmJiAkcHJldGV4dFskdmZsZF0gIT0gIiIpID8gJyRwcmV0ZXh0WyInLiR2ZmxkLiciXScg OiBkb1F1b3RlKHN0cl9yZXBsYWNlKCciJywgJ1wiJywgJHZmbGQpKTsNCgkJCQkJfQ0KCQkJ CX0gZWxzZSBpZiAoJHZhbFBhcnRzWzBdID09ICJhcnRpY2xlIikgew0KCQkJCQlpZiAoJG51 bVZhbFBhcnRzID4gMSkgew0KCQkJCQkJJHZmbGQgPSAkdmFsUGFydHNbMV07DQoJCQkJCQkk dmFsID0gKGlzc2V0KCR0aGlzYXJ0aWNsZVskdmZsZF0pICYmICR0aGlzYXJ0aWNsZVskdmZs ZF0gIT0gIiIpID8gJyR0aGlzYXJ0aWNsZVsiJy4kdmZsZC4nIl0nIDogZG9RdW90ZShzdHJf cmVwbGFjZSgnIicsICdcIicsICR2ZmxkKSk7DQoJCQkJCX0NCgkJCQl9IGVsc2UgaWYgKHN0 cnBvcygkdmFsUGFydHNbMF0sICI/IikgPT09IDApIHsNCgkJCQkJJHZhbFBhcnRzWzBdID0g c3Vic3RyKHN0cnRvbG93ZXIoJHZhbFBhcnRzWzBdKSwgMSk7DQoJCQkJCSR2ZmxkID0gJHZh bFBhcnRzWzBdOw0KCQkJCQlpZiAoaXNzZXQoJHRoaXNmaWxlWyR2ZmxkXSkgJiYgJHRoaXNm aWxlWyR2ZmxkXSAhPSAiIikgew0KCQkJCQkJJHZhbCA9ICckdGhpc2ZpbGVbIicuJHZmbGQu JyJdJzsNCgkJCQkJfSBlbHNlIGlmIChpc3NldCgkdGhpc2xpbmtbJHZmbGRdKSAmJiAkdGhp c2xpbmtbJHZmbGRdICE9ICIiKSB7DQoJCQkJCQkkdmFsID0gJyR0aGlzbGlua1siJy4kdmZs ZC4nIl0nOw0KCQkJCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzaW1hZ2VbJHZmbGRdKSAmJiAk dGhpc2ltYWdlWyR2ZmxkXSAhPSAiIikgew0KCQkJCQkJJHZhbCA9ICckdGhpc2ltYWdlWyIn LiR2ZmxkLiciXSc7DQoJCQkJCX0gZWxzZSBpZiAoYXJyYXlfa2V5X2V4aXN0cygkdmZsZCwg JGFsbFB0eHQpICYmICRhbGxQdHh0WyR2ZmxkXSAhPSAiIikgew0KCQkJCQkJJHZhbCA9ICRh bGxQdHh0WyR2ZmxkXTsNCgkJCQkJfSBlbHNlIGlmIChpc3NldCgkdGhpc2FydGljbGVbJHZm bGRdKSAmJiAkdGhpc2FydGljbGVbJHZmbGRdICE9ICIiKSB7DQoJCQkJCQkkdmFsID0gJyR0 aGlzYXJ0aWNsZVsiJy4kdmZsZC4nIl0nOw0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJJHZhbCA9 IGRvUXVvdGUoc3RyX3JlcGxhY2UoJyInLCAnXCInLCAkdmZsZCkpOw0KCQkJCQl9DQoJCQkJ fSBlbHNlIHsNCgkJCQkJJHZmbGQgPSAkY29yZV92ZmxkLidfJy4kdmFsY250Ow0KCQkJCQkk dmFsID0gZG9RdW90ZShzdHJfcmVwbGFjZSgnIicsICdcIicsICR2YWxQYXJ0c1swXSkpOw0K CQkJCX0NCg0KCQkJCS8vIEFwcGx5IHVzZXItZGVmaW5lZCB2YWx1ZSBmaWx0ZXJzDQoJCQkJ aWYgKCRzdHJpcFZhbCkgew0KCQkJCQkkdmFsID0gJ3RyaW0oc3RyaXBfdGFncygnLiR2YWwu JykpJzsNCgkJCQl9DQoJCQkJaWYgKCR0cmltVmFsKSB7DQoJCQkJCSR2YWwgPSAndHJpbSgn LiR2YWwuJyknOw0KCQkJCX0NCgkJCQlpZiAoJGVzY2FwZVZhbCkgew0KCQkJCQkkdmFsID0g J2h0bWxlbnRpdGllcygnLiR2YWwuJyknOw0KCQkJCX0NCgkJCQlpZiAoJGVzY2FwZUFsbFZh bCkgew0KCQkJCQkkdmFsID0gJ2h0bWxlbnRpdGllcygnLiR2YWwuJywgRU5UX1FVT1RFUykn Ow0KCQkJCX0NCgkJCQkkZG9fdmZpbHQgPSAoJHBhdCAmJiBpbl9hcnJheSgndmFsdWUnLCAk ZmlsdGVyX29uKSAmJiAoaW5fYXJyYXkoJHZhbFBhcnRzWzBdLCAkZmlsdGVyX3R5cGUpIHx8 IGluX2FycmF5KCdhbGwnLCAkZmlsdGVyX3R5cGUpKSApID8gdHJ1ZSA6IGZhbHNlOw0KDQoJ CQkJLy8gUmVwbGFjZSB0aGUgc3RyaW5nIHBhcnRzIGJ5IGV2YWx1YXRpbmcgYW55IHZhcmlh Ymxlcy4uLg0KCQkJCSRmaWx0X2ZsZCA9ICgkZG9fZmZpbHQpID8gInByZWdfcmVwbGFjZSgn JHBhdCcsICckcmVwJywgJGZsZCkiIDogJGZsZDsNCgkJCQkkZmlsdF92YWwgPSAoJGRvX3Zm aWx0KSA/ICJwcmVnX3JlcGxhY2UoJyRwYXQnLCAnJHJlcCcsICR2YWwpIiA6ICR2YWw7DQoJ CQkJZXZhbCAoIlwkdmFsUmVwWyRqZHhdID0gIi4kZmlsdF92YWwuIjsiKTsNCg0KCQkJCS8v IE9ubHkgYWRkIHN1Yi12YWx1ZXMgdG8gdGhlIHJlcGxhY2VtZW50cyBhcnJheSBpZiB0aGVy ZSdzIG1vcmUgdGhhbiBvbmUgc3ViLXZhbHVlDQoJCQkJaWYgKGNvdW50KCR2YWxSZXApID4g MSkgew0KCQkJCQkkdmZsZHNbJHZhcl9wcmVmaXguJHZmbGRdID0gJHZhbFJlcFskamR4XTsN CgkJCQkJJHZmbGRzWyR2YXJfcHJlZml4LiJsZW5fIi4kdmZsZF0gPSBzdHJsZW4oJHZhbFJl cFskamR4XSk7DQoJCQkJfQ0KDQoJCQkJJHZhbGNudCsrOw0KCQkJfQ0KDQoJCQkkam9pbmVk VmFscyA9IGpvaW4oJGxpc3RfZGVsaW0sICR2YWxSZXApOw0KCQkJJHNtZF9wcmVmaWx0ZXIg PSBkb1F1b3RlKCRqb2luZWRWYWxzKTsNCg0KCQkJLy8gQWRkIHRoZSBjb21iaW5lZCBvcGVy YXRvciBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBwbHVnaW4gdjAuOHgNCgkJ CSR2Zmxkc1skdmFyX3ByZWZpeC4kY29yZV92ZmxkXSA9ICRqb2luZWRWYWxzOw0KCQkJJHZm bGRzWyR2YXJfcHJlZml4LiJsZW5fIi4kY29yZV92ZmxkXSA9IHN0cmxlbigkam9pbmVkVmFs cyk7DQoNCgkJCSRjbWQgPSBzdHJfcmVwbGFjZSgiQ0FTVCIsICRjYXN0LCAkb3ApOw0KCQkJ JGNtZCA9ICgkbGVuZ3RoKSA/IHN0cl9yZXBsYWNlKCJGSUVMRCIsICRsZW5ndGgsICRjbWQp IDogJGNtZDsNCgkJCSRjbWQgPSAoJGNvdW50KSA/IHN0cl9yZXBsYWNlKCJGSUVMRCIsICRj b3VudCwgJGNtZCkgOiAkY21kOw0KCQkJJGNtZCA9IHN0cl9yZXBsYWNlKCJGSUVMRCIsICgo JGNhc2Vfc2Vuc2l0aXZlKSA/ICRmaWx0X2ZsZCA6ICdzdHJ0b2xvd2VyKCcuJGZpbHRfZmxk LicpJyksICRjbWQpOw0KCQkJJGNtZCA9IHN0cl9yZXBsYWNlKCJWQVJOQU1FIiwgJGZsZENs ZWFuLCAkY21kKTsNCgkJCSRjbWQgPSBzdHJfcmVwbGFjZSgiVkFMVUUiLCAoKCRjYXNlX3Nl bnNpdGl2ZSkgPyAnVkFMVUUnIDogJ3N0cnRvbG93ZXIoVkFMVUUpJyksICRjbWQpOw0KDQoJ CQkvLyBWYWx1ZSByZXBsYWNlbWVudHMgaGF2ZSBhbHJlYWR5IGJlZW4gcnVuIHRocm91Z2gg ZXZpbCgpIHNvIHRoZXkgY2FuIGJlIGFzc2lnbmVkIGRpcmVjdGx5DQoJCQlmb3JlYWNoICgk dmZsZHMgYXMgJHZhbGl0ID0+ICR2YWx2YWwpIHsNCgkJCQkkcmVwbGFjZW1lbnRzWyd7Jy4k dmFsaXQuJ30nXSA9ICR2YWx2YWw7DQoJCQl9DQoNCgkJCS8vIEZpZWxkIHJlcGxhY2VtZW50 cyBuZWVkIHNvbWUgZXZhbCgpIGFjdGlvbi4uLg0KCQkJJGNtZCA9ICJAXCRyZXBsYWNlbWVu dHNbJ3siLiRyZmxkLiJ9J10gPSAiLiRmaWx0X2ZsZC4iOyBcbkBcJHJlcGxhY2VtZW50c1sn eyIuJHJsZmxkLiJ9J10gPSBzdHJsZW4oIi4kZmlsdF9mbGQuIik7IFxuQFwkcmVwbGFjZW1l bnRzWyd7Ii4kcmNmbGQuIn0nXSA9IGNvdW50KGV4cGxvZGUoJyIuJGxpc3RfZGVsaW0uIics ICIuJGZpbHRfZmxkLiIpKTsgXG5cJG91dFsiLiRpZHguIl0gPSAoIi5zdHJfcmVwbGFjZSgi VkFMVUUiLCAoKCRzbWRfcHJlZmlsdGVyPT09IicnIiAmJiBzdHJwb3MoJG9wLCAic3RycG9z IikgIT09IGZhbHNlKSA/ICInICciIDogJHNtZF9wcmVmaWx0ZXIpLCAkY21kKS4iKSA/ICd0 cnVlJyA6ICdmYWxzZSc7IjsNCgkJCWlmICgkZGVidWcpIHsNCgkJCQlkbXAoJGNtZCk7DQoJ CQl9DQoJCQkvLyAuLi4gYW5kIGV2YWx1YXRlIHRoZSBleHByZXNzaW9uDQoJCQlldmFsKCRj bWQpOw0KCQl9DQoJfQ0KCWlmICgkZGVidWcpIHsNCgkJZWNobyAiUkVTVUxUOiI7DQoJCWRt cCgkb3V0KTsNCgkJZWNobyAiUkVQTEFDRU1FTlRTOiI7DQoJCWRtcCgkcmVwbGFjZW1lbnRz KTsNCgl9DQoJaWYgKCRkZWJ1ZyA+IDIpIHsNCgkJZWNobyAiUFJFVEVYVDoiOw0KCQlkbXAo JHByZXRleHQpOw0KCQllY2hvICJUSElTIEFSVElDTEU6IjsNCgkJZG1wKCR0aGlzYXJ0aWNs ZSk7DQoJCWVjaG8gIlRISVMgRklMRToiOw0KCQlkbXAoJHRoaXNmaWxlKTsNCgkJZWNobyAi VEhJUyBMSU5LOiI7DQoJCWRtcCgkdGhpc2xpbmspOw0KCQllY2hvICJUSElTIElNQUdFOiI7 DQoJCWRtcCgkdGhpc2ltYWdlKTsNCgl9DQoJLy8gQ2hlY2sgbG9naWMNCgkkcmVzdWx0ID0g KCRvdXQpID8gdHJ1ZSA6IGZhbHNlOw0KCWlmIChzdHJ0b2xvd2VyKCRsb2dpYykgPT0gImFu ZCIgJiYgaW5fYXJyYXkoImZhbHNlIiwgJG91dCkpIHsNCgkJJHJlc3VsdCA9IGZhbHNlOw0K CX0NCglpZiAoc3RydG9sb3dlcigkbG9naWMpID09ICJvciIgJiYgIWluX2FycmF5KCJ0cnVl IiwgJG91dCkpIHsNCgkJJHJlc3VsdCA9IGZhbHNlOw0KCX0NCg0KCXJldHVybiBwYXJzZShF dmFsRWxzZShzdHJ0cigkdGhpbmcsICRyZXBsYWNlbWVudHMpLCAkcmVzdWx0KSk7DQp9Ijtz OjQ6InR5cGUiO3M6MToiMCI7czo1OiJmbGFncyI7czoxOiIwIjtzOjU6Im9yZGVyIjtzOjE6 IjUiO3M6MzoibWQ1IjtzOjMyOiI4MDQ1ZmI3YTYxOTc0YWNiYTliZTNmYmU4MTM0YzEwNCI7 fQ==