# cng_acronym v0.1 # Wraps common acronyms with HTML acronym tags # Chess Griffin # http://www.chessgriffin.com/ # ...................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ...................................................................... YTo5OntzOjc6InZlcnNpb24iO3M6MzoiMC4xIjtzOjY6ImF1dGhvciI7czoxMzoiQ2hlc3Mg R3JpZmZpbiI7czoxMDoiYXV0aG9yX3VyaSI7czoyODoiaHR0cDovL3d3dy5jaGVzc2dyaWZm aW4uY29tLyI7czoxMToiZGVzY3JpcHRpb24iO3M6NDQ6IldyYXBzIGNvbW1vbiBhY3Jvbnlt cyB3aXRoIEhUTUwgYWNyb255bSB0YWdzIjtzOjQ6InR5cGUiO2k6MDtzOjQ6Im5hbWUiO3M6 MTE6ImNuZ19hY3JvbnltIjtzOjQ6ImhlbHAiO3M6MzA2NToiPHA+SSBjYW5ub3QgdGFrZSBt dWNoIGNyZWRpdCBmb3IgdGhpcyBwbHVnaW4uIEpvZWwsIHdobyBraW5kbHkgcmVsZWFzZWQg aGlzIGNvZGUgdW5kZXIgdGhlIEdQTCwgZGlkIGFsbCB0aGUgaGVhdnkgbGlmdGluZy4gQWxs IEkgZGlkIHdhcyBmaWd1cmUgb3V0IGhvdyB0byBwdWxsIHRoZSBUWFAgY29udGVudCBpbnRv IHRoZSBwbHVnaW4gYW5kIGdldCBpdCBiYWNrIG91dC48L3A+Cgo8cD5UaGlzIHBsdWdpbiBp cyBpbnRlbmRlZCB0byByZXBsYWNlIHRoZSAmbHQ7dHhwOmV4Y2VycHQgLyZndDsgYW5kICZs dDt0eHA6Ym9keSAvJmd0OyB0YWdzLiBUaGUgdXNhZ2UgaXMgYXMgZm9sbG93czo8L3A+Cgo8 cD4mbHQ7dHhwOmNuZ19hY3JvbnltIGNvbnRlbnQ9JnF1b3Q7dmFsdWUmcXVvdDsgLyZndDs8 L3A+Cgo8cD5UaGUgJnF1b3Q7dmFsdWUmcXVvdDsgY2FuIGJlIGVpdGhlciAmcXVvdDtleGNl cnB0JnF1b3Q7IG9yICZxdW90O2JvZHkuJnF1b3Q7IElmIG5vICZxdW90O3ZhbHVlJnF1b3Q7 IGlzIHNwZWNpZmllZCwgaXQgZGVmYXVsdHMgdG8gJnF1b3Q7Ym9keS4mcXVvdDs8L3A+Cgo8 cD5UaGUgcGx1Z2luIHdpbGwgcHVsbCB0aGUgY29udGVudCBmcm9tIHRoZSAmcXVvdDtleGNl cnB0JnF1b3Q7IG9yICZxdW90O2JvZHksJnF1b3Q7IGRlcGVuZGluZyBvbiB3aGF0IGlzIGFz c2lnbmVkIHRvIHRoZSBjb250ZW50IHZhbHVlLCBhbmQgdGhlbiBwYXJzZSBpdCB0aHJvdWdo IHRoZSBhY3JvbnltIGFycmF5LiBJdCB3aWxsIHRoZW4gcmV0dXJuIHRoZSBlbnRpcmUgY29u dGVudCB3aXRoIHRoZSAmbHQ7YWNyb255bSZndDsmbHQ7L2Fjcm9ueW0mZ3Q7IHRhZ3Mgc3Vy cm91bmRpbmcgYW55IGZvdW5kIGFjcm9ueW1zLjwvcD4KCjxwPlNvLCBpbiB5b3VyIGFydGlj bGUgZm9ybSB3aGVyZSB5b3UgbWlnaHQgaGF2ZSB0aGUgZm9sbG93aW5nOjwvcD4KCjxjb2Rl PgombHQ7ZGl2IGNsYXNzPSZxdW90O2FydGljbGVzJnF1b3Q7Jmd0OzxiciAvPgombHQ7dHhw OmV4Y2VycHQgLyZndDs8YnIgLz4KJmx0O3R4cDpib2R5IC8mZ3Q7PGJyIC8+CiZsdDsvZGl2 Jmd0OzxiciAvPgo8L2NvZGU+Cgo8cD55b3Ugd291bGQgY2hhbmdlIGl0IHRvIHRoaXMgdG8g dXNlIHRoZSBwbHVnaW46PC9wPgoKPGNvZGU+CiZsdDtkaXYgY2xhc3M9JnF1b3Q7YXJ0aWNs ZXMmcXVvdDsmZ3Q7PGJyIC8+CiZsdDt0eHA6Y25nX2Fjcm9ueW0gY29udGVudD0mcXVvdDtl eGNlcnB0JnF1b3Q7IC8mZ3Q7PGJyIC8+CiZsdDt0eHA6Y25nX2Fjcm9ueW0gY29udGVudD0m cXVvdDtib2R5JnF1b3Q7IC8mZ3Q7PGJyIC8+CiZsdDsvZGl2Jmd0Owo8L2NvZGU+Cgo8cD5U aGUgbGlzdCBvZiBhY3JvbnltcyBpcyB3aXRoaW4gdGhlIHBsdWdpbiBhbmQgY2FuIGJlIGVk aXRlZCB0byBhZGQgb3IgZGVsZXRlIGFjcm9ueW1zLiBUaGUgY29ycmVjdCBmb3JtYXQgZm9y IHRoZSBhY3JvbnltIGxpc3QgaXMgYXMgZm9sbG93czo8L3A+Cgo8cD4mcXVvdDtBQ1JPTllN JnF1b3Q7ID0mZ3Q7ICZxdW90O0Rlc2NyaXB0aXZlIHRleHQgZ29lcyBoZXJlJnF1b3Q7LDwv cD4KCjxwPk5vdGUgdGhlIGNvbW1hIGF0IHRoZSBlbmQuIFRoZXJlIG11c3QgYmUgYSBjb21t YSBhZnRlciBlYWNoIGVudHJ5IGluIHRoZSBhY3JvbnltIGxpc3QgZXhjZXB0IGZvciB0aGUg bGFzdCBlbnRyeSwgYWZ0ZXIgd2hpY2ggdGhlcmUgc2hvdWxkIGJlIG5vIGNvbW1hLiAgVGh1 czo8L3A+Cgo8cD4mcXVvdDtGQVEmcXVvdDsgPSZndDsgJnF1b3Q7RnJlcXVlbnRseSBBc2tl ZCBRdWVzdGlvbnMmcXVvdDssPC9wPgoKPHA+d291bGQgdGhlbiB3cmFwIGFueSBmb3VuZCBp bnN0YW5jZSBvZiAmcXVvdDtGQVEmcXVvdDsgd2l0aCB0YWdzLCBlLmcuLCAmcXVvdDsmbHQ7 YWNyb255bSB0aXRsZT0mcXVvdDtGcmVxdWVudGx5IEFza2VkIFF1ZXN0aW9ucyZxdW90OyZn dDtGQVEmbHQ7L2Fjcm9ueW0mZ3Q7JnF1b3Q7LiBZb3UgY2FuIHRoZW4gYWRkIGEgQ1NTIHJ1 bGUgZm9yIHlvdXIgYWNyb255bSB0YWdzIGluIHlvdXIgc3R5bGVzaGVldCwgbGlrZSB0aGlz OjwvcD4KCjxjb2RlPgphY3JvbnltLCBhYmJyLCBzcGFuLmNhcHM8YnIgLz4KezxiciAvPgpm b250LXNpemU6IDEuMWVtOzxiciAvPgpsZXR0ZXItc3BhY2luZzogLjA3ZW07PGJyIC8+CmJv cmRlci1ib3R0b206IDFweCBkYXNoZWQgIzk5OTs8YnIgLz4KY3Vyc29yOiBoZWxwOzxiciAv Pgp9PGJyIC8+CjwvY29kZT4KCjxwPklmIHRoZXJlIGFyZSBhbnkgYWNyb255bXMgdGhhdCB5 b3UgZG8gbm90IHdpc2ggdG8gaGF2ZSB3cmFwcGVkIGluICZsdDthY3JvbnltJmd0OyZsdDsv YWNyb255bSZndDsgdGFncywgdGhlbiB3cmFwIGRvbGxhciBzaWducyBhcm91bmQgdGhlIGFj cm9ueW0sIGxpa2Ugc286PC9wPgoKPHA+JEZBUSQ8L3A+Cgo8cD5JbiB0aGlzIGNhc2UsIHRo ZSBkb2xsYXJzIHNpZ25zIHdvdWxkIGJlIHN0cmlwcGVkIGFuZCB0aGUgYWNyb255bSB3b3Vs ZCBiZSBsZWZ0IGFsb25lLjwvcD4KCjxwPkZpbmFsbHksIGluIHRoZSBwbHVnaW4gY29kZSB5 b3Ugd2lsbCBub3RlIHRoYXQgdGhlcmUgYXJlIGRpZmZlcmVudCAmcXVvdDtleHByZXNzaW9u cyZxdW90OyB0aGF0IGFyZSBhdmFpbGFibGUgaWYgb25lIGZpbmRzIHRoYXQgdGhlIHBsdWdp biBpcyBhY3Rpbmcgd29ua3kuIE9uZSBvZiB0aGVzZSB3aWxsIGFsbG93IGxvd2VyLWNhc2Ug YWNyb255bXMgdG8gYmUgd3JhcHBlZCBpbiB0aGUgdGFncy4gSWYgeW91IGRlY2lkZSB0byB0 cnkgb25lIG9mIHRoZXNlIG90aGVyIGV4cHJlc3Npb25zLCB0aGVuIGJlIHN1cmUgdG8gY29t bWVudCBvdXQgdGhlIGRlZmF1bHQgb25lIGJ5IGluc2VydGluZyB0d28gZm9yd2FyZCBzbGFz aGVzICgvLykgYXQgdGhlIHN0YXJ0IG9mIHRoZSBsaW5lIGNvbnRhaW5pbmcgdGhlIGRlZmF1 bHQgZXhwcmVzc2lvbi4gVGhlIG9yaWdpbmFsIHBsdWdpbiBhdXRob3IgYWRkZWQgc29tZSBj b21tZW50YXJ5IGFib3V0IHRoaXMgd2hpY2ggSSBoYXZlIGxlZnQgaW50YWN0LiBGb3IgbW9z dCBmb2xrcywgaG93ZXZlciwgdGhlIGRlZmF1bHRzIHdpbGwgd29yayBmaW5lLjwvcD4KCjxw PlRoYW5rcyBhbmQgZW5qb3khPC9wPgoiO3M6NDoiY29kZSI7czo3MDg3OiIKZnVuY3Rpb24g Y25nX2Fjcm9ueW0oJGF0dHMpIHsKCiAgIC8vIEZpcnN0LCB3ZSBkZWZpbmUgYWxsIHRoZSB0 aGluZ3Mgd2UncmUgZ29pbmcgdG8gcmVwbGFjZSwgd2l0aG91dCB1c2luZyBwYXJlbnRoZXNp cyBvciBwaXBlcyAofCkKICAgLy8gZWFjaCBkZWZmaW5pdGlvbiBpcyBpbiB0aGUgZm9ybTog Ly8gImFjcm9ueW0iID0+ICJkZWZmaW50aW9uIiwKICAgLy8gRVNQRUNJQUxMWSBub3RlIHRo YXQgdGhleSBhbGwgZW5kIHdpdGggY29tbWFzIEVYQ0VQVCB0aGUgbGFzdCBvbmUKCmdsb2Jh bCAkYWNyb255bV9hY3JvbnltOwpnbG9iYWwgJHRoaXNhcnRpY2xlOwpleHRyYWN0KGxBdHRz KGFycmF5KAoJCQknY29udGVudCcgID0+ICdib2R5JywKCQkpLCRhdHRzKSk7CiR0ZXh0ID0g JHRoaXNhcnRpY2xlWyIkY29udGVudCJdOwoKICAgaWYoIGVtcHR5KCRhY3JvbnltX2Fjcm9u eW0pICkgewogICAgICAkYWNyb255bV9hY3JvbnltID0gYXJyYXkoCgkiQU9MIiA9PiAiQW1l cmljYSBPbmxpbmUiLAoJIkFQSSIgPT4gIkFwcGxpY2F0aW9uIFByb2dyYW1taW5nIEludGVy ZmFjZSIsCgkiQlRXIiA9PiAiQnkgVGhlIFdheSIsCgkiQlBMIiA9PiAiQnJvYWRiYW5kIG92 ZXIgUG93ZXIgTGluZXMiLAoJIkNEIiA9PiAiQ29tcGFjdCBEaXNrIiwKCSJDR0kiID0+ICJD b21tb24gR2F0ZXdheSBJbnRlcmZhY2UiLAoJIkNMSSIgPT4gIkNvbW1vbiBMYW5ndWFnZSBJ bnRlcnByZXRlciIsCgkiQ01TIiA9PiAiQ29udGVudCBNYW5hZ2VtZW50IFN5c3RlbSIsCgki Q1NTIiA9PiAiQ2FzY2FkaW5nIFN0eWxlIFNoZWV0cyIsCgkiQ1ZTIiA9PiAiQ29uY3VycmVu dCBWZXJzaW9ucyBTeXN0ZW0iLAoJIkROUyIgPT4gIkRvbWFpbiBOYW1lIFN5c3RlbSIsCgki RE9NIiA9PiAiRG9jdW1lbnQgT2JqZWN0IE1vZGVsIiwKCSJEU0wiID0+ICJEaWdpdGFsIFN1 YnNjcmliZXIgTGluZSAoYnJvYWRiYW5kIG92ZXIgcGhvbmUgbGluZXMpIiwKCSJEVEQiID0+ ICJEb2N1bWVudCBUeXBlIERlZmluaXRpb24iLAoJIkRWRCIgPT4gIkRpZ2l0YWwgVmlkZW8g RGlzYyIsCgkiRUJJIiA9PiAiRWxpbSBCaWJsZSBJbnN0aXR1dGUgKEJpYmxlIENvbGxlZ2Ug aW4gdXBzdGF0ZSBOWSkiLAoJIkVHQyIgPT4gIkVsaW0gR29zcGVsIENodXJjaCAobXkgY2h1 cmNoKSIsCgkiRUYiID0+ICJFbGltIEZlbGxvd3NoaXAgKGFuIGFzc29jaWF0aW9uIG9mIGV2 YW5nZWxpY2FsIG1pbmlzdGVycykiLAoJIkZBUSIgPT4gIkZyZXF1ZW50bHkgQXNrZWQgUXVl c3Rpb25zIiwKCSJGQ0MiID0+ICJGZWRlcmFsIENvbW11bmljYXRpb25zIENvbW1pc3Npb24i LAoJIkZPQUYiID0+ICJGcmllbmQgT2YgQSBGcmllbmQgaXMgYSBSREYgZGlhbGVjdCBmb3Ig ZGVzY3JpYmluZyByZWxhdGlvbnNoaXBzIiwKCSJGL09TUyIgPT4gIkZyZWUgYW5kIE9wZW4g U291cmNlIFNvZnR3YXJlIiwKCSJGU0YiID0+ICJGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24i LAoJIkZUUCIgPT4gIkZpbGUgVHJhbnNmZXIgUHJvdG9jb2wiLAoJIkZUVEgiID0+ICJGaWJl ciB0byB0aGUgSG9tZSIsCgkiR0IiID0+ICJHaWdhYnl0ZSIsCgkiR0ZETCIgPT4gIkdOVSBG cmVlIERvY3VtZW50YXRpb24gTGljZW5zZSIsCgkiR05VIiA9PiAiR251J3MgTm90IFVuaXgi LAoJIkdQRyIgPT4gIkdudSBQRyAoT3BlbiBzb3VyY2UgcHVibGljIGtleSBlbmNyeXB0aW9u KSIsCgkiR1BMIiA9PiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UiLAoJIkdUSyIgPT4g IkdVSSBUb29sS2l0IC0gVGhlIEdJTVAgVG9vbCBLaXQgZm9yIGRjcmVhdGluZyB1c2VyLWlu dGVyZmFjZXMiLAoJIkdVSSIgPT4gIkdyYXBoaWNhbCBVc2VyIEludGVyZmFjZSIsCgkiSERU ViIgPT4gIkhpZ2ggRGVmaW5pdGlvbiBUZWxlVmlzaW9uIiwKCSJIVE1MIiA9PiAiSHlwZXJU ZXh0IE1hcmt1cCBMYW5ndWFnZSIsCgkiSFRUUCIgPT4gIkh5cGVyVGV4dCBUcmFuc2ZlciBQ cm90b2NvbCIsCgkiSUUiID0+ICJJbnRlcm5ldCBFeHBsb3JlciIsCgkiSUNBTk4iID0+ICJJ bnRlcm5ldCBDb3Jwb3JhdGlvbiBmb3IgQXNzaWduZWQgTmFtZXMgYW5kIE51bWJlcnMiLAoJ IklIT1AiID0+ICJJbnRlcm5hdGlvbmFsIEhvdXNlIG9mIFBhbmNha2VzIiwKCSJJSVJDIiA9 PiAiaWYgSSByZW1lbWJlciBjb3JyZWN0bHkiLAoJIklJUyIgPT4gIkludGVybmV0IEluZm9t YXRpb24gU2VydmVyIiwKCSJJTSIgPT4gIkluc3RhbnQgTWVzc2FnZSIsCgkiSU1BUCIgPT4g IkludGVybmV0IE1lc3NhZ2UgQWNjZXNzIFByb3RvY29sIiwKCSJJUCIgPT4gIkludGVybmV0 IFByb3RvY29sIiwKCSJJUkMiID0+ICJJbnRlcm5ldCBSZWxheSBDaGF0IC0gbGlrZSBJbnN0 YW50IE1lc3NhZ2luZyBmb3IgZ3JvdXBzIiwKCSJKU1AiID0+ICJKYXZhIFNlcnZlciBQYWdl cyIsCgkiS0IiID0+ICJLaWxvYnl0ZSIsCgkiS0RFIiA9PiAiSyBEZXNrdG9wIEVudmlyb25t ZW50IiwKCSJLVk0iID0+ICJLZXlib2FyZCwgVmlkZW8sIE1vdXNlIHN3aXRjaCBmb3IgY29u dHJvbGxpbmcgbXVsdGlwbGUgY29tcHV0ZXJzIiwKCSJMREFQIiA9PiAiTGlnaHR3ZWlnaHQg RGlyZWN0b3J5IEFjY2VzcyBQcm90b2NvbCIsCgkiTEdQTCIgPT4gIkdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSIsCiAJIk1BUEkiID0+ICJNYWlsIEFwcGxpY2F0aW9uIFBy b2dyYW1taW5nIEludGVyZmFjZSIsCgkiTUIiID0+ICJNZWdhYnl0ZSIsCgkiTVAzIiA9PiAi TVBFRyBMYXllciAzIC0gYSBjb21tb24gYXVkaW8gY29kZWMgZm9yIG11c2ljIGZpbGVzIiwK CSJNUyIgPT4gIk1pY3Jvc29mdCIsCgkiTVNETiIgPT4gIk1pY3Jvc29mdCBEZXZlbG9wZXIg TmV0d29yayIsCgkiTVNJRSIgPT4gIk1pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3JlciIsCgki TVNOIiA9PiAiTWljcm9zb2Z0IE5ldHdvcmsiLAoJIk5OVFAiID0+ICJOZXR3b3JrIE5ld3Mg VHJhbnNmZXIgUHJvdG9jb2wgLSB0aGUgcHJvdG9jb2wgdXNlZCBmb3IgTmV3c0dyb3VwcyIs CgkiTllDIiA9PiAiTmV3IFlvcmsgQ2l0eSIsCgkiT1BNTCIgPT4gIk91dGxpbmUgUHJvY2Vz c29yIE1hcmt1cCBMYW5ndWFnZSIsCgkiUDJQIiA9PiAiUGVlciBUbyBQZWVyIiwKCSJQQlMi ID0+ICJQdWJsaWMgQnJvYWRjYXN0aW5nIFN5c3RlbSIsCgkiUERGIiA9PiAiUG9ydGFibGUg RG9jdW1lbnQgRm9ybWF0IiwKCSJQR1AiID0+ICJQcmV0dHkgR29vZCBQcml2YWN5IChwdWJs aWMga2V5IGVuY3J5cHRpb24pIiwKCSJQSFAiID0+ICJIeXBlcnRleHQgUHJlUHJvY2Vzc2lu ZyIsCgkiUE5HIiA9PiAiUG9ydGFibGUgTmV0d29yayBHcmFwaGljcyIsCgkiUE9QIiA9PiAi U2hvcnQgZm9yIFBPUDMsIHRoZSBQb3N0IE9mZmljZSBQcm90b2NvbCBmb3IgZW1haWwiLAoJ IlBPUDMiID0+ICJQb3N0IE9mZmljZSBQcm90b2NvbCAzIChmb3IgZW1haWwpIiwKCSJSQUlE IiA9PiAiUmVkdW5kYW50IEFycmF5IG9mIEluZGVwZW5kZW50IERpc2tzIiwKCSJSREYiID0+ ICJSZXNvdXJjZSBEZXNjcmlwdGlvbiBGcmFtZXdvcmsiLAoJIlJQQyIgPT4gIlJlbW90ZSBQ cm9jZWR1cmUgQ2FsbCIsCgkiUlNTIiA9PiAiUmVhbGx5IFNpbXBsZSBTeW5kaWNhdGlvbiIs CgkiU0lHIiA9PiAiU3BlY2lhbCBJbnRlcmVzdCBHcm91cCIsCgkiU09BUCIgPT4gIlNpbXBs ZSBPYmplY3QgQWNjZXNzIFByb3RvY29sIiwKCSJTUUwiID0+ICJTdHJ1Y3R1cmVkIFF1ZXJ5 IExhbmd1YWdlIChhIGRhdGFiYXNlIHN0YW5kYXJkKSIsCgkiU1NIIiA9PiAiU2VjdXJlIFNI ZWxsIChlbmNyeXB0ZWQgcHJvdG9jb2wgcmVwbGFjZXMgdGVsbmV0IGFuZCBGVFApIiwKCSJT U04iID0+ICJTb2NpYWwgU2VjdXJpdHkgTnVtYmVyIiwKCSJTU0wiID0+ICJTZWN1cmUgU29j a2V0cyBMYXllciAoYSBzZWN1cml0eSBwcm90b2NvbCkiLAoJIlNWRyIgPT4gIlNjYWxhYmxl IFZlY3RvciBHcmFwaGljcyIsCgkiVENQIiA9PiAiVHJhbnNtaXNzaW9uIENvbnRyb2wgUHJv dG9jb2wiLAoJIlRYUCIgPT4gIlRleHRwYXR0ZXJuIiwKCSJVRFAiID0+ICJVc2VyIERhdGFn cmFtIFByb3RvY29sIiwKCSJVUkkiID0+ICJVbmlmb3JtIFJlc291cmNlIElkZW50aWZpZXIi LAoJIlVSTCIgPT4gIlVuaWZvcm0gUmVzb3VyY2UgTG9jYXRvciIsCgkiVVNCIiA9PiAiVW5p dmVyc2FsIFNlcmlhbCBCdXMiLAoJIlZCIiA9PiAiVmlzdWFsIEJhc2ljIiwKCSJWQlMiID0+ ICJWaXN1YWwgQmFzaWMgU2NyaXB0IiwKCSJWTSIgPT4gIlZpcnR1YWwgTWFjaGluZSIsCgki Vk5DIiA9PiAiVmlydHVhbCBOZXR3b3JrIENvbXB1dGluZyIsCgkiVzNDIiA9PiAiV29ybGQg V2lkZSBXZWIgQ29uc29ydGl1bSIsCgkiV0NBRyIgPT4gIldlYiBDb250ZW50IEFjY2Vzc2li aWxpdHkgR3VpZGVsaW5lcyIsCgkiV1lTSVdZRyIgPT4gIndoYXQgeW91IHNlZSBpcyB3aGF0 IHlvdSBnZXQiLAoJIlhIVE1MIiA9PiAiZVh0ZW5zaWJsZSBIeXBlclRleHQgTWFya3VwIExh bmd1YWdlIC0gSFRNTCByZWZvcm11bGF0ZWQgYXMgWE1MIiwKCSJYTUwiID0+ICJlWHRlbnNp YmxlIE1hcmt1cCBMYW5ndWFnZSIsCgkiWFNMIiA9PiAiZVh0ZW5zaWJsZSBTdHlsZXNoZWV0 IExhbmd1YWdlIiwKCSJYU0xUIiA9PiAiZVh0ZW5zaWJsZSBTdHlsZXNoZWV0IExhbmd1YWdl IFRyYW5zZm9ybWF0aW9uIiwKCSJZTU1WIiA9PiAiWW91ciBNaWxlYWdlIE1heSBWYXJ5Igog ICAgICApOwogICB9CgogICAkdGV4dCA9ICIgJHRleHQgIjsKCiAgIGZvcmVhY2goJGFjcm9u eW1fYWNyb255bSBhcyAkYWNyb255bSA9PiAkZGVzY3JpcHRpb24pIHsKCiAgICAgIC8qICAg IEZvciBhZHZhbmNlZCB1c2VycywgdGhlcmUgYXJlIHNldmVyYWwgcG9zc2libGUgcmVndWxh ciBleHByZXNzaW9ucyBoZXJlLi4uLgogICAgICAqICAgIFRoZSBzYWZlc3QsICJkZWZhdWx0 IiBvbmUgaXMgYXQgdGhlIHRvcCAuLi4KICAgICAgKiAgICBZb3UgKG9yIEkpIG1heSBjaG9v c2UgdG8gdXNlIG9uZSBvZiB0aGUgb3RoZXJzIQogICAgICAqICAgIFBpY2sgd2hpY2hldmVy IHlvdSB3YW50LCBhbmQgbWFrZSBTVVJFIHRoZXJlIGlzIG9ubHkgb25lIHRoYXQgaXNuJ3Qg cHJlY2VkZWQgYnkgc2xhc2hlczogLy8KICAgICAgKi8KCgkvLyBORVcgREVGQVVMVAoJLy8g QU5PVEhFUiBBVFRFTVBUICh2Mi44KQoKCQkkdGV4dCA9IHByZWdfcmVwbGFjZSgifCg/ITxb Xjw+XSo/KSg/PCFbPy4vJl0pXGIkYWNyb255bVxiKD8hOikoPyFbXjw+XSo/Pil8aW1zVSIs IjxhY3JvbnltIHRpdGxlPVwiJGRlc2NyaXB0aW9uXCI+JGFjcm9ueW08L2Fjcm9ueW0+IiAs ICR0ZXh0KTsKCgoJLy8gREVGQVVMVDoKCgkvLyBPTEQgREVGQVVMVDogQ09OU0VSVkFUSVZF ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCgkvLy8JJHRleHQgPSBwcmVnX3JlcGxhY2Uo InwoW1xzXD5dKSRhY3JvbnltKFtcc1w8XC4sOzpcXC9cLV0pfGltc1UiICwgIiQxPGFjcm9u eW0gdGl0bGU9XCIkZGVzY3JpcHRpb25cIj4kYWNyb255bTwvYWNyb255bT4kMiIgLCAkdGV4 dCk7CgoKCS8vIE5FVyBERUZBVUxUOiBNT1JFIERBUklORyAqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgoJLy8vCSR0ZXh0ID0gcHJlZ19yZXBsYWNlKCJ8KFteLi8/Jl1cYikkYWNyb255 bShcYlteOl0pfGltc1UiICwgIiQxPGFjcm9ueW0gdGl0bGU9XCIkZGVzY3JpcHRpb25cIj4k YWNyb255bTwvYWNyb255bT4kMiIgLCAkdGV4dCk7CgoJLy9kbyBpdCB0d2ljZSwgaW4gY2Fz ZSB0aGV5IHVzZWQgdGhlIHNhbWUgYWNyb255bSBpbiB0aGVpciB0aXRsZSBhbmQgYWx0IHRh Zy4uLgoJLy8vCSR0ZXh0ID0gcHJlZ19yZXBsYWNlKCJ8KDxbQS1aYS16XStbXj5dKik8YWNy b255bSB0aXRsZT1cIiRkZXNjcmlwdGlvblwiPiRhY3JvbnltPC9hY3JvbnltPihbXj5dKj4p fGltc1UiICwgIiQxJGFjcm9ueW0kMiIgLCAkdGV4dCk7CgkvLy8JJHRleHQgPSBwcmVnX3Jl cGxhY2UoInwoPFtBLVphLXpdK1tePl0qKTxhY3JvbnltIHRpdGxlPVwiJGRlc2NyaXB0aW9u XCI+JGFjcm9ueW08L2Fjcm9ueW0+KFtePl0qPil8aW1zVSIgLCAiJDEkYWNyb255bSQyIiAs ICR0ZXh0KTsKCS8vLwkkdGV4dCA9IHByZWdfcmVwbGFjZSgifCg8W0EtWmEtel0rW14+XSop PGFjcm9ueW0gdGl0bGU9XCIkZGVzY3JpcHRpb25cIj4kYWNyb255bTwvYWNyb255bT4oW14+ XSo+KXxpbXNVIiAsICIkMSRhY3JvbnltJDIiICwgJHRleHQpOwoKCgkvLyBTQU1FIEFTIEFC T1ZFLCBidXQgQ0FTRSBTRU5TSVRJVkUgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCS8v LwkkdGV4dCA9IHByZWdfcmVwbGFjZSgifChbXi4vXVxiKSRhY3JvbnltKFxiW146XSl8bXNV IiAsICIkMTxhY3JvbnltIHRpdGxlPVwiJGRlc2NyaXB0aW9uXCI+JGFjcm9ueW08L2Fjcm9u eW0+JDIiICwgJHRleHQpOwoJLy8vCSR0ZXh0ID0gcHJlZ19yZXBsYWNlKCJ8KDxbQS1aYS16 XSogW14+XSopPGFjcm9ueW0gdGl0bGU9XCIkZGVzY3JpcHRpb25cIj4kYWNyb255bTwvYWNy b255bT4oW148XSo+KXxtc1UiICwgIiQxJGFjcm9ueW0kMiIgLCAkdGV4dCk7CgoKCS8vIEJZ IFJFUVVFU1Q6IGlmIHlvdSBVTkNPTU1FTlQgdGhlIGxhc3QgY29tbWVudGVkIGxpbmUgaGVy ZTogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCS8vCWFjcm9ueW1zIHdyYXBwZWQgaW4g ZG9sbGFyIHNpZ25zIHdpbGwganVzdCBiZSB1bndyYXBwZWQ6CgkvLwlTbzogJEFPTCQgd2ls bCBiZWNvbWUgQU9MLCB3aXRob3V0IHRoZSA8YWNyb255bSB0aXRsZT0iQW1lcmljYSBPbmxp bmUiPkFPTDwvYWNyb255bT4KCgkJJHRleHQgPSBwcmVnX3JlcGxhY2UoInxbJF08YWNyb255 bSB0aXRsZT1cIiRkZXNjcmlwdGlvblwiPiRhY3JvbnltPC9hY3JvbnltPlskXXxpbXNVIiAs ICIkYWNyb255bSIgLCAkdGV4dCk7CgogICB9CgogICByZXR1cm4gdHJpbSggJHRleHQgKTsK Cn0KIjtzOjM6Im1kNSI7czozMjoiODJhNGY4MGJhMGNkOTA3OTQxYzk2ZGQwNGJlMGQyMGYi O30=