# Name: rah_comments v0.4 # Type: Client side plugin # Paginated comments # Author: Jukka Svahn # URL: http://rahforum.biz # 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: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjEyOiJyYWhfY29tbWVudHMiO3M6NjoiYXV0aG9yIjtzOjEx OiJKdWtrYSBTdmFobiI7czoxMDoiYXV0aG9yX3VyaSI7czoxOToiaHR0cDovL3JhaGZvcnVt LmJpeiI7czo3OiJ2ZXJzaW9uIjtzOjM6IjAuNCI7czoxMToiZGVzY3JpcHRpb24iO3M6MTg6 IlBhZ2luYXRlZCBjb21tZW50cyI7czo0OiJoZWxwIjtzOjk0OTQ6Igk8aDE+cmFoX2NvbW1l bnRzPC9oMT4KCgk8cD5BbGxvd3MgeW91IHRvIHBhZ2luYXRlIGNvbW1lbnRzIGxpa2UgYXJ0 aWNsZXMuIEluIG90aGVyIHdvcmRzLCBpdCBvdXRwdXRzIHBhZ2luYXRpb24gYW5kIHBnIG51 bWJlcnMgYmVsb3cgY29tbWVudHMuIFlvdSBjYW4gc3R5bGUgcGFnaW5hdGlvbiB3aXRoIHZh cmlvdXMgYXR0cmlidXRlcyBhbmQgb2Zjb3JzZSB3aXRoIGEgPGFiYnIgdGl0bGU9IkNhc2Nh ZGluZyBTdHlsZSBTaGVldHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+PC9hYmJy Pi1zdHlsaW5nIG1hZ2ljLjwvcD4KCgk8dWw+CgkJPGxpPlZlcnNpb246IDAuNDwvbGk+CgkJ PGxpPlVwZGF0ZWQ6IDIwMDgvMDkvMTQgNjowMCBBTSA8c3BhbiBjbGFzcz0iY2FwcyI+R01U PC9zcGFuPisyPC9saT4KCTwvdWw+CgoJPGgzPlRhYmxlIG9mIENvbnRlbnRzPC9oMz4KCgk8 dWw+CgkJPGxpPjxhIGhyZWY9IiNpbnRyby1hbmQtZGVzY3JpcHRpb24iPkludHJvIGFuZCBk ZXNjcmlwdGlvbjwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjbGlzdC1vZi1mZWF0dXJlcyI+ TGlzdCBvZiBmZWF0dXJlczwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjcmVxdWlyZW1lbnRz Ij5SZXF1aXJlbWVudHM8L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI2luc3RhbGxhdGlvbi1h bmQtdXNhZ2UiPkluc3RhbGxhdGlvbiBhbmQgdXNhZ2U8L2E+PC9saT4KCQk8bGk+PGEgaHJl Zj0iI2F0dHJpYnV0ZXMiPkF0dHJpYnV0ZXM8L2E+Cgk8dWw+CgkJPGxpPjxhIGhyZWY9IiNy YWhfY29tbWVudHMiPnJhaF9jb21tZW50czwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjcmFo X3JlY2VudF9jb21tZW50cyI+cmFoX3JlY2VudF9jb21tZW50czwvYT48L2xpPgoJPC91bD48 L2xpPgoJCTxsaT48YSBocmVmPSIjZXhhbXBsZSI+RXhhbXBsZTwvYT48L2xpPgoJCTxsaT48 YSBocmVmPSIjY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2E+PC9saT4KCTwvdWw+CgoJPGgzIGlk PSJpbnRyby1hbmQtZGVzY3JpcHRpb24iPkludHJvIGFuZCBkZXNjcmlwdGlvbjwvaDM+CgoJ PHA+VGhlIHBsdWdpbiwgcmFoX2NvbW1lbnRzLCB3b3JrcyBleGF0bHkgc2FtZSB3YXkgbGlr ZSB0aGUgaW4gYnVpbGQgY29tbWVudCBsaXN0aW5nLCB0eHA6Y29tbWVudHMsIGJ1dCB3aXRo IG9uZSBhZGRpdGlvbjogcGFnaW5hdGlvbiwgbmF2aWdhdGlvbiBhbmQgcGFnZW51bWJlcnMu IFllcywgdGhlIHBsdWdpbiBjYW4gYmUgdXNlZCB0byBwYWdpbmF0ZSBjb21tZW50cy4gWW91 IGNhbiBzdHlsZSBwYWdpbmF0aW9uIHdpdGggdmFyaW91cyBhdHRyaWJ1dGVzIGFuZCBvZmNv cnNlIHdpdGggYSA8YWJiciB0aXRsZT0iQ2FzY2FkaW5nIFN0eWxlIFNoZWV0cyI+PHNwYW4g Y2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj48L2FiYnI+LXN0eWxpbmcgbWFnaWMuIFdvcmtzIG9u bHkgaW4gaW5kaXZpZHVhbCBhcnRpY2xlIHBhZ2VzLCBub3QgaW4gYSBzZWN0aW9uLCBub3Ig YW4gYXJ0aWNsZSBsaXN0IHBhZ2VzLjwvcD4KCgk8aDMgaWQ9Imxpc3Qtb2YtZmVhdHVyZXMi Pkxpc3Qgb2YgZmVhdHVyZXM8L2gzPgoKCTx1bD4KCQk8bGk+UGFnaW5hdGVkIGNvbW1lbnQg bGlzdGluZyBmb3IgaW5kaXZpZHVhbCBhcnRpY2xlczwvbGk+CgkJPGxpPlBhZ2VudW1iZXJz IGFuZCBwcmV2ICZhbXA7IG5leHQgbGlua3M8L2xpPgoJPC91bD4KCgk8aDMgaWQ9InJlcXVp cmVtZW50cyI+UmVxdWlyZW1lbnRzPC9oMz4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJj YXBzIj5UWFA8L3NwYW4+IDQuMC42KzwvbGk+Cgk8L3VsPgoKCTxoMyBpZD0iaW5zdGFsbGF0 aW9uLWFuZC11c2FnZSI+SW5zdGFsbGF0aW9uIGFuZCB1c2FnZTwvaDM+CgoJPHA+VGhlIGJh c2ljIG1ldGhvZCBzdGFuZHM6IHBhc3RlIHBsdWdpbiBjb2RlIHRvIHRoZSBwbHVnaW4gaW5z dGFsbCB0ZXh0YXJlYSBhbmQgcnVuIHRoZSBhdXRvbWF0aWMgc2V0dXAuIEFjdGl2YXRlIHRo ZSBwbHVnaW4sIGFuZCB5b3UgYXJlIHJlYWR5IHRvIHVzZSB0aGUgbmV3IHRhZywgPGNvZGU+ Jmx0O3R4cDpyYWhfY29tbWVudHMgLyZndDs8L2NvZGU+IGxpa2Ugb3RoZXJzLjwvcD4KCgk8 cD5BZnRlciB0aGUgaW5zdGFsbGF0aW9uLCB0aGUgdGFnLCA8Y29kZT4mbHQ7dHhwOnJhaF9j b21tZW50cyAvJmd0OzwvY29kZT4sIHNob3VsZCBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIHJl Z3VsYXIgY29yZSBjb21tZW50cyB0YWcsIDxjb2RlPiZsdDt0eHA6Y29tbWVudHMgLyZndDs8 L2NvZGU+ICYjODIxMTsganVzdCByZXBsYWNlIGl0IHdpdGggPGNvZGU+Jmx0O3R4cDpyYWhf Y29tbWVudHMgLyZndDs8L2NvZGU+IHdpdGggeW91ciBkZXNpcmVkIGF0dHJpYnV0ZXMsIHN0 eWxlcyBhbmQgc28gb24uPC9wPgoKCTxoMyBpZD0iYXR0cmlidXRlcyI+QXR0cmlidXRlczwv aDM+CgoJPGg0IGlkPSJyYWhfY29tbWVudHMiPnJhaF9jb21tZW50czwvaDQ+CgoJPHA+VGhl IHRhZyBpcyA8Y29kZT4mbHQ7dHhwOnJhaF9jb21tZW50cyAvJmd0OzwvY29kZT4gYW5kIGF0 dHJpYnV0ZXMgZm9yIGl0IGZvbGxvdzo8L3A+CgoJPGg1Pk5vcm1hbCBjb21tZW50IHJlbGF0 ZWQgYXR0cmlidXRlczwvaDU+CgoJPHA+PHN0cm9uZz5mb3JtPC9zdHJvbmc+PGJyIC8+CkZv cm0gdG8gb3V0cHV0IHRoZSBjb21tZW50cy48YnIgLz4KRGVmYXVsdDogPGNvZGU+Zm9ybT0m cXVvdDtjb21tZW50cyZxdW90OzwvY29kZT4gRXhhbXBsZTogPGNvZGU+JnF1b3Q7cmFoX2Nv bW1lbnRzJnF1b3Q7PC9jb2RlPi48L3A+CgoJPHA+PHN0cm9uZz5zb3J0PC9zdHJvbmc+PGJy IC8+CkhvdyB0byBzb3J0IHRoZSByZXN1bHRpbmcgbGlzdC4gQXZhaWxhYmxlIHZhbHVlczog PGNvZGU+ZGlzY3Vzc2lkPC9jb2RlPiAoY29tbWVudCBJRCMpLCA8Y29kZT5wYXJlbnRpZDwv Y29kZT4gKGFydGljbGUgSUQjKSwgPGNvZGU+bmFtZTwvY29kZT4sIDxjb2RlPmVtYWlsPC9j b2RlPiwgPGNvZGU+d2ViPC9jb2RlPiwgPGNvZGU+aXA8L2NvZGU+IChJUCBhZGRyZXNzKSwg PGNvZGU+cG9zdGVkPC9jb2RlPiwgPGNvZGU+bWVzc2FnZTwvY29kZT4sIDxjb2RlPnJhbmQo KTwvY29kZT4gKHJhbmRvbSkuPGJyIC8+CkRlZmF1bHQ6IDxjb2RlPnNvcnQ9JnF1b3Q7cG9z dGVkIGFzYyZxdW90OzwvY29kZT4gRXhhbXBsZTogPGNvZGU+JnF1b3Q7bmFtZSBkZXNjJnF1 b3Q7PC9jb2RlPi48L3A+CgoJPHA+PHN0cm9uZz53cmFwdGFnPC9zdHJvbmc+PGJyIC8+CihY KUhUTUwgdGFnICh3aXRob3V0IGJyYWNrZXRzKSB0byB3cmFwIGFyb3VuZCB0aGUgY29tbWVu dCBsaXN0LjxiciAvPgpEZWZhdWx0OiA8Y29kZT53cmFwdGFnPSZxdW90OyZxdW90OzwvY29k ZT4gKHVuc2V0KSBFeGFtcGxlOiA8Y29kZT4mcXVvdDt1bCZxdW90OzwvY29kZT4uPC9wPgoK CTxwPjxzdHJvbmc+YnJlYWs8L3N0cm9uZz48YnIgLz4KKFgpSFRNTCB0YWcgKHdpdGhvdXQg YnJhY2tldHMpIG9yIHN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIGNvbW1lbnRzLjxiciAvPgpE ZWZhdWx0OiA8Y29kZT5icmVhaz0mcXVvdDsmcXVvdDs8L2NvZGU+ICh1bnNldCkgRXhhbXBs ZTogPGNvZGU+JnF1b3Q7bGkmcXVvdDs8L2NvZGU+LjwvcD4KCgk8cD48c3Ryb25nPmNsYXNz PC9zdHJvbmc+PGJyIC8+CihYKUhUTUwgY2xhc3MgYXR0cmlidXRlIHRvIGJlIGFwcGxpZWQg dG8gd3JhcHRhZy48YnIgLz4KRGVmYXVsdDogPGNvZGU+Y2xhc3M9JnF1b3Q7JnF1b3Q7PC9j b2RlPiBFeGFtcGxlOiA8Y29kZT4mcXVvdDtjb21tZW50JnF1b3Q7PC9jb2RlPjwvcD4KCgk8 cD48c3Ryb25nPmJyZWFrY2xhc3M8L3N0cm9uZz48YnIgLz4KKFgpSFRNTCBjbGFzcyBhdHRy aWJ1dGUgdG8gYmUgYXBwbGllZCB0byBicmVhayAod2hlbiB2YWx1ZSBzdXBwbGllZCBpcyBh IHRhZykuPGJyIC8+CkRlZmF1bHQ6IDxjb2RlPmJyZWFrY2xhc3M9JnF1b3Q7JnF1b3Q7PC9j b2RlPiAodW5zZXQpIEV4YW1wbGU6IDxjb2RlPiZxdW90O2NvbW1lbnQmcXVvdDs8L2NvZGU+ LjwvcD4KCgk8cD48c3Ryb25nPm9mZnNldDwvc3Ryb25nPjxiciAvPgpUaGUgbnVtYmVyIG9m IGNvbW1lbnRzIHRvIHNraXAgYXQgdGhlIGZpcnN0IHBhZ2UuIFNob3VsZCBhbHdheXMgYmUg emVybyAoMCkuPGJyIC8+CkRlZmF1bHQ6IDxjb2RlPm9mZnNldD0mcXVvdDswJnF1b3Q7PC9j b2RlPiBFeGFtcGxlOiA8Y29kZT4mcXVvdDs1JnF1b3Q7PC9jb2RlPi48L3A+CgoJPHA+PHN0 cm9uZz5saW1pdDwvc3Ryb25nPjxiciAvPgpUaGUgbnVtYmVyIG9mIGNvbW1lbnRzIHRvIGRp c3BsYXkgcGVyIHBhZ2UuPGJyIC8+CkRlZmF1bHQ6IDxjb2RlPmxpbWl0PSZxdW90OzEwJnF1 b3Q7PC9jb2RlPiBFeGFtcGxlOiA8Y29kZT4mcXVvdDs1JnF1b3Q7PC9jb2RlPi48L3A+CgoJ PGg1PlBhZ2luYXRpb24gcmVsYXRlZCBhdHRyaWJ1dGVzPC9oNT4KCgk8cD48c3Ryb25nPnBy ZXBlbmQ8L3N0cm9uZz48YnIgLz4KU2hvdyB0aGUgcGFnZSBhbmQgbmF2aWdhdGlvbiBsaW5r cyBiZWZvcmUgY29tbWVudHMuPGJyIC8+CkRlZmF1bHQ6IDxjb2RlPnByZXBlbmQ9JnF1b3Q7 MSZxdW90OzwvY29kZT4gKHllcykgRXhhbXBsZTogPGNvZGU+JnF1b3Q7JnF1b3Q7PC9jb2Rl PiAobm8pLjwvcD4KCgk8cD48c3Ryb25nPmFwcGVuZDwvc3Ryb25nPjxiciAvPgpTaG93IHRo ZSBwYWdlIGFuZCBuYXZpZ2F0aW9uIGxpbmtzIGFmdGVyIGNvbW1lbnQgbGlzdC48YnIgLz4K RGVmYXVsdDogPGNvZGU+YXBwZW5kPSZxdW90OzEmcXVvdDs8L2NvZGU+ICh5ZXMpIEV4YW1w bGU6IDxjb2RlPiZxdW90OyZxdW90OzwvY29kZT4gKG5vKS48L3A+CgoJPHA+PHN0cm9uZz5w Z193cmFwdGFnPC9zdHJvbmc+PGJyIC8+CihYKUhUTUwgdGFnICh3aXRob3V0IGJyYWNrZXRz KSB0byB3cmFwIGFyb3VuZCB0aGUgcGFnaW5hdGlvbiBsaW5rcyBhbmQgbnVtYmVycy4gRGVm YXVsdCBpcyB1bnNldC48YnIgLz4KRGVmYXVsdDogPGNvZGU+cGdfd3JhcHRhZz0mcXVvdDt1 bCZxdW90OzwvY29kZT4gRXhhbXBsZTogPGNvZGU+JnF1b3Q7cCZxdW90OzwvY29kZT4uPC9w PgoKCTxwPjxzdHJvbmc+cGdfYnJlYWs8L3N0cm9uZz48YnIgLz4KKFgpSFRNTCB0YWcgKHdp dGhvdXQgYnJhY2tldHMpIG9yIHN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIHBhZ2luYXRpb24g bGlua3MuIERlZmF1bHQgaXMgdW5zZXQuPGJyIC8+CkRlZmF1bHQ6IDxjb2RlPnBnX3dyYXB0 YWc9JnF1b3Q7bGkmcXVvdDs8L2NvZGU+IEV4YW1wbGU6IDxjb2RlPiZxdW90OyZxdW90Ozwv Y29kZT4uPC9wPgoKCTxwPjxzdHJvbmc+cGdfY2xhc3M8L3N0cm9uZz48YnIgLz4KKFgpSFRN TCBjbGFzcyBhdHRyaWJ1dGUgdG8gYmUgYXBwbGllZCB0byA8Y29kZT5wZ193cmFwdGFnPC9j b2RlPiBlbGVtZW50LjxiciAvPgpEZWZhdWx0OiA8Y29kZT5jbGFzcz0mcXVvdDsmcXVvdDs8 L2NvZGU+IEV4YW1wbGU6IDxjb2RlPiZxdW90O3BnLWNsYXNzJnF1b3Q7PC9jb2RlPi48L3A+ CgoJPHA+PHN0cm9uZz5wZ19icmVha2NsYXNzPC9zdHJvbmc+PGJyIC8+CihYKUhUTUwgY2xh c3MgYXR0cmlidXRlIHRvIGJlIGFwcGxpZWQgdG8gPGNvZGU+cGdfYnJlYWs8L2NvZGU+IGVs ZW1lbnQuPGJyIC8+CkRlZmF1bHQ6IDxjb2RlPmNsYXNzPSZxdW90OyZxdW90OzwvY29kZT4g RXhhbXBsZTogPGNvZGU+JnF1b3Q7bXljbGFzcyZxdW90OzwvY29kZT4uPC9wPgoKCTxwPjxz dHJvbmc+bGFiZWxfbmV4dDwvc3Ryb25nPjxiciAvPgpMYWJlbCB0ZXh0IGFwcGxpZWQgZm9y IG5leHQgbGluay48YnIgLz4KRGVmYXVsdDogPGNvZGU+bGFiZWxfbmV4dD0mcXVvdDsmZ3Q7 Jmd0OyZxdW90OzwvY29kZT4gRXhhbXBsZTogPGNvZGU+JnF1b3Q7TmV4dCBjb21tZW50cyZx dW90OzwvY29kZT4uPC9wPgoKCTxwPjxzdHJvbmc+bGFiZWxfcHJldjwvc3Ryb25nPjxiciAv PgpMYWJlbCB0ZXh0IGFwcGxpZWQgZm9yIHByZXYgbGluay48YnIgLz4KRGVmYXVsdDogPGNv ZGU+bGFiZWxfcHJldj0mcXVvdDsmbHQ7Jmx0OyZxdW90OzwvY29kZT4gRXhhbXBsZTogPGNv ZGU+JnF1b3Q7UHJldiBjb21tZW50cyZxdW90OzwvY29kZT4uPC9wPgoKCTxwPjxzdHJvbmc+ Y2xhc3NfbmV4dDwvc3Ryb25nPjxiciAvPgooWClIVE1MIGNsYXNzIGF0dHJpYnV0ZSB0byBi ZSBhcHBsaWVkIHRvIG5leHQgbGluay48YnIgLz4KRGVmYXVsdDogPGNvZGU+Y2xhc3NfbmV4 dD0mcXVvdDsmcXVvdDs8L2NvZGU+IEV4YW1wbGU6IDxjb2RlPiZxdW90O215Y2xhc3MmcXVv dDs8L2NvZGU+LjwvcD4KCgk8cD48c3Ryb25nPmNsYXNzX3ByZXY8L3N0cm9uZz48YnIgLz4K KFgpSFRNTCBjbGFzcyBhdHRyaWJ1dGUgdG8gYmUgYXBwbGllZCB0byBwcmV2IGxpbmsuPGJy IC8+CkRlZmF1bHQ6IDxjb2RlPmNsYXNzX3ByZXY9JnF1b3Q7JnF1b3Q7PC9jb2RlPiBFeGFt cGxlOiA8Y29kZT4mcXVvdDtteWNsYXNzJnF1b3Q7PC9jb2RlPi48L3A+CgoJPHA+PHN0cm9u Zz5zaG93YWx3YXlzPC9zdHJvbmc+PGJyIC8+ClNob3cgcGFnZSBudW1iZXIgbGlua3MgYWx3 YXlzLCBldmVuIGlmIHRoZXJlIGlzIG9ubHkgYSBvbmUgcGFnZS48YnIgLz4KRGVmYXVsdDog PGNvZGU+c2hvd2Fsd2F5cz0mcXVvdDsxJnF1b3Q7PC9jb2RlPiAoeWVzKSBFeGFtcGxlOiA8 Y29kZT4mcXVvdDsmcXVvdDs8L2NvZGU+IChubykuPC9wPgoKCTxoNCBpZD0icmFoX3JlY2Vu dF9jb21tZW50cyI+cmFoX3JlY2VudF9jb21tZW50czwvaDQ+CgoJPHA+T3V0cHV0cyBsaXN0 IG9mIHJlY2VudCBjb21tZW50cywgbGlrZSB0aGUgZGVmYXVsdCBpbmJ1aWxkIDxjb2RlPnJl Y2VudF9jb21tZW50czwvY29kZT4uIFRoZSB0YWcgaXMgPGNvZGU+Jmx0O3R4cDpyYWhfcmVj ZW50X2NvbW1lbnRzIC8mZ3Q7PC9jb2RlPiBhbmQgYXR0cmlidXRlcyBmb3IgaXQgZm9sbG93 OjwvcD4KCgk8cD48c3Ryb25nPmNvbW1lbnRzX2xpbWl0PC9zdHJvbmc+PGJyIC8+ClNldCB0 aGlzIHRvIGJlIHNhbWUgYXMgdGhlIDxjb2RlPmxpbWl0PC9jb2RlPi12YWx1ZSBpbiB0aGUg PGNvZGU+Jmx0O3R4cDpyYWhfY29tbWVudHMgLyZndDs8L2NvZGU+LiBUaGlzIHRlbGxzIHRv IHRoZSB0YWcgaG93IG1hbnkgY29tbWVudHMgdGhlcmUgaXMgaW4gYSBvbmUgcGFnZS48YnIg Lz4KRGVmYXVsdDogPGNvZGU+Y29tbWVudHNfbGltaXQ9JnF1b3Q7MTAmcXVvdDs8L2NvZGU+ IEV4YW1wbGU6IDxjb2RlPiZxdW90OzUmcXVvdDs8L2NvZGU+PC9wPgoKCTxwPjxzdHJvbmc+ Y29tbWVudHNfc29ydDwvc3Ryb25nPjxiciAvPgpTZXQgdGhpcyB0byBiZSBzYW1lIGFzIHRo ZSA8Y29kZT5zb3J0PC9jb2RlPi12YWx1ZSBpbiB0aGUgPGNvZGU+Jmx0O3R4cDpyYWhfY29t bWVudHMgLyZndDs8L2NvZGU+LiBUaGlzIHRlbGxzIHRvIHRoZSB0YWcgaW4gd2hpY2ggb3Jk ZXIgdGhlIGNvbW1lbnRzIGFyZS48YnIgLz4KRGVmYXVsdDogPGNvZGU+Y29tbWVudHNfc29y dD0mcXVvdDtwb3N0ZWQgYXNjJnF1b3Q7PC9jb2RlPiBFeGFtcGxlOiA8Y29kZT4mcXVvdDtw b3N0ZWQgZGVzYyZxdW90OzwvY29kZT48L3A+CgoJPHA+PHN0cm9uZz53cmFwdGFnPC9zdHJv bmc+PGJyIC8+CihYKUhUTUwgdGFnICh3aXRob3V0IGJyYWNrZXRzKSB0byB3cmFwIGFyb3Vu ZCB0aGUgY29tbWVudCBsaXN0LjxiciAvPgpEZWZhdWx0OiA8Y29kZT53cmFwdGFnPSZxdW90 OyZxdW90OzwvY29kZT4gKHVuc2V0KSBFeGFtcGxlOiA8Y29kZT4mcXVvdDt1bCZxdW90Ozwv Y29kZT4uPC9wPgoKCTxwPjxzdHJvbmc+YnJlYWs8L3N0cm9uZz48YnIgLz4KKFgpSFRNTCB0 YWcgKHdpdGhvdXQgYnJhY2tldHMpIG9yIHN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIGNvbW1l bnRzLjxiciAvPgpEZWZhdWx0OiA8Y29kZT5icmVhaz0mcXVvdDticiZxdW90OzwvY29kZT4g RXhhbXBsZTogPGNvZGU+JnF1b3Q7JnF1b3Q7PC9jb2RlPi48L3A+CgoJPHA+PHN0cm9uZz5j bGFzczwvc3Ryb25nPjxiciAvPgooWClIVE1MIGNsYXNzIGF0dHJpYnV0ZSB0byBiZSBhcHBs aWVkIHRvIHdyYXB0YWcuPGJyIC8+CkRlZmF1bHQ6IDxjb2RlPmNsYXNzPSZxdW90O3JlY2Vu dF9jb21tZW50cyZxdW90OzwvY29kZT4gRXhhbXBsZTogPGNvZGU+JnF1b3Q7Y29tbWVudCZx dW90OzwvY29kZT48L3A+CgoJPHA+PHN0cm9uZz5sYWJlbDwvc3Ryb25nPjxiciAvPgpMYWJl bCBmb3IgdGhlIHRvcCBvZiB0aGUgbGlzdC48YnIgLz4KRGVmYXVsdCA8Y29kZT5sYWJlbD0m cXVvdDsmcXVvdDs8L2NvZGU+ICh1bnNldCkgRXhhbXBsZTogPGNvZGU+JnF1b3Q7cmVjZW50 X2NvbW1lbnRzJnF1b3Q7PC9jb2RlPjwvcD4KCgk8cD48c3Ryb25nPmxhYmVsdGFnPC9zdHJv bmc+PGJyIC8+CihYKUhUTUwgdGFnICh3aXRob3V0IGJyYWNrZXRzKSB0byB3cmFwIGFyb3Vu ZCBsYWJlbC48YnIgLz4KRGVmYXVsdDogPGNvZGU+bGFiZWx0YWc9JnF1b3Q7JnF1b3Q7PC9j b2RlPiAodW5zZXQpIEV4YW1wbGU6IDxjb2RlPiZxdW90O2gzJnF1b3Q7PC9jb2RlPi48L3A+ CgoJPHA+PHN0cm9uZz5saW1pdDwvc3Ryb25nPjxiciAvPgpOdW1iZXIgb2YgY29tbWVudHMg dG8gZGlzcGxheS48YnIgLz4KRGVmYXVsdDogPGNvZGU+bGltaXQ9JnF1b3Q7MTAmcXVvdDs8 L2NvZGU+IEV4YW1wbGU6IDxjb2RlPiZxdW90OzUmcXVvdDs8L2NvZGU+LjwvcD4KCgk8aDMg aWQ9ImV4YW1wbGUiPkV4YW1wbGU8L2gzPgoKCTxwPjxjb2RlPiZsdDt0eHA6cmFoX2NvbW1l bnRzIHdyYXB0YWc9JnF1b3Q7ZGl2JnF1b3Q7IHBnX3dyYXB0YWc9JnF1b3Q7cCZxdW90OyAv Jmd0OzwvY29kZT48L3A+CgoJPGgzIGlkPSJjaGFuZ2Vsb2ciPkNoYW5nZWxvZzwvaDM+CgoJ PHA+PHN0cm9uZz5WZXJzaW9uIDAuNDwvc3Ryb25nPjwvcD4KCgk8dWw+CgkJPGxpPkFkZGVk IDxjb2RlPiZsdDt0eHA6cmFoX3JlY2VudF9jb21tZW50cyAvJmd0OzwvY29kZT4gdGFnLjwv bGk+Cgk8L3VsPgoKCTxwPjxzdHJvbmc+VmVyc2lvbiAwLjM8L3N0cm9uZz48L3A+CgoJPHVs PgoJCTxsaT5SZW1vdmVkIGF0dHJpYnV0ZXM6IDxjb2RlPmJyZWFrX25hdjwvY29kZT4gYW5k IDxjb2RlPmJyZWFrX3BhZ2VzPC9jb2RlPi48L2xpPgoJCTxsaT5GaXhlZCBtZXNzeSB1cmwg bW9kZSYjODIxNztzIGVycm9yOiBub3cgd29ya3MgZnVsbHkgb24gbWVzc3kuPC9saT4KCQk8 bGk+QWRkZWQgYXR0cmlidXRlczogPGNvZGU+cGdfYnJlYWs8L2NvZGU+LCA8Y29kZT5wZ19i cmVha19jbGFzczwvY29kZT4sIDxjb2RlPnByZXBlbmQ8L2NvZGU+IGFuZCA8Y29kZT5hcHBl bmQ8L2NvZGU+LjwvbGk+CgkJPGxpPk5vdyB3b3JrcyBpbiBhcnRpY2xlIGxpc3RzLCBzYW1l IHdheSBsaWtlIDxjb2RlPiZsdDt0eHA6Y29tbWVudHMgLyZndDs8L2NvZGU+LjwvbGk+CgkJ PGxpPkJldHRlciBkb2N1bWVudGlvbi48L2xpPgoJPC91bD4KCgk8cD48c3Ryb25nPlZlcnNp b24gMC4yPC9zdHJvbmc+PC9wPgoKCTx1bD4KCQk8bGk+U29tZSBtaW5vciBidWcgZml4ZXMu PC9saT4KCQk8bGk+UmVtb3ZlZCBzb21lIHR5cG9zIGZyb20gZG9jdW1lbnRpb24uPC9saT4K CTwvdWw+CgoJPHA+PHN0cm9uZz5WZXJzaW9uIDAuMTwvc3Ryb25nPjwvcD4KCgk8dWw+CgkJ PGxpPkZpcnN0IHJlbGVhc2UuPC9saT4KCTwvdWw+IjtzOjQ6ImNvZGUiO3M6MzQyMjoiCSMj IyMjIyMjIyMjIyMjIyMNCgkjDQoJIwlyYWhfY29tbWVudHMtcGx1Z2luIGZvciBUZXh0cGF0 dGVybg0KCSMJdmVyc2lvbiAwLjQNCgkjCWJ5IEp1a2thIFN2YWhuDQoJIwlodHRwOi8vcmFo Zm9ydW0uYml6DQoJIw0KCSMjIyMjIyMjIyMjIyMjIyMNCg0KCWZ1bmN0aW9uIHJhaF9jb21t ZW50cygkYXR0cykgew0KCQlnbG9iYWwgJHRoaXNhcnRpY2xlOw0KCQlleHRyYWN0KGxBdHRz KGFycmF5KA0KCQkJJ2Zvcm0nID0+ICdjb21tZW50cycsDQoJCQknc29ydCcgPT4gJ3Bvc3Rl ZCBhc2MnLA0KCQkJJ3dyYXB0YWcnID0+ICcnLA0KCQkJJ2JyZWFrJyA9PiAnJywNCgkJCSdj bGFzcycgPT4gJycsDQoJCQknYnJlYWtjbGFzcycgPT4gJycsDQoJCQknb2Zmc2V0JyA9PiAn JywNCgkJCSdsaW1pdCcgPT4gMTAsDQoJCQkncHJlcGVuZCcgPT4gMSwNCgkJCSdhcHBlbmQn ID0+IDEsDQoJCQkncGdfd3JhcHRhZycgPT4gJ3VsJywNCgkJCSdwZ19icmVhaycgPT4gJ2xp JywNCgkJCSdwZ19jbGFzcycgPT4gJycsDQoJCQkncGdfYnJlYWtjbGFzcycgPT4gJycsDQoJ CQknbGFiZWxfbmV4dCcgPT4gJyZndDsmZ3Q7JywNCgkJCSdsYWJlbF9wcmV2JyA9PiAnJmx0 OyZsdDsnLA0KCQkJJ2NsYXNzX25leHQnID0+ICcnLA0KCQkJJ2NsYXNzX3ByZXYnID0+ICcn LA0KCQkJJ3Nob3dhbHdheXMnID0+IDEsDQoJCSksJGF0dHMpKTsNCgkJJG51bWJlciA9IGFy cmF5KCk7DQoJCWlmKGlzX251bWVyaWMoZ3BzKCdwZycpKSkgJHBnID0gZ3BzKCdwZycpOw0K CQlpZihlbXB0eSgkcGcpKSAkcGcgPSAxOw0KCQkkaSA9IDA7DQoJCSRwcmV2cGcgPSAkcGct MTsNCgkJJG5leHRwZyA9ICRwZysxOw0KCQkkbmV4dCA9ICcnOw0KCQkkcHJldiA9ICcnOw0K CQkkdG90YWwgPSAkdGhpc2FydGljbGVbJ2NvbW1lbnRzX2NvdW50J107DQoJCSR0b3RhbHBn ID0gJHRvdGFsLyRsaW1pdDsNCgkJJHRvdGFscGcgPSBjZWlsKCR0b3RhbHBnKTsNCgkJJHNl cCA9IChzYWZlX2ZpZWxkKCd2YWwnLCd0eHBfcHJlZnMnLCJuYW1lPSdwZXJtbGlua19tb2Rl JyIpID09ICdtZXNzeScpID8gJyZhbXA7JyA6ICc/JzsNCgkJaWYoMTwkcGcgJiYgMTwkdG90 YWxwZykgJG51bWJlcltdID0gZG9UYWcoJGxhYmVsX3ByZXYsJ2EnLCRjbGFzc19wcmV2LCcg aHJlZj0iJy5wZXJtbGluayhhcnJheSgpKS4kc2VwLidwZz0nLiRwcmV2cGcuJyInKTsNCgkJ d2hpbGUgKCRpPCR0b3RhbHBnKSB7DQoJCQkkaSsrOw0KCQkJJG51bWJlcltdID0gZG9UYWco JGksJ2EnLCdwYWdlLScuJGksJyBocmVmPSInLnBlcm1saW5rKGFycmF5KCkpLiRzZXAuJ3Bn PScuJGkuJyInKTsNCgkJfQ0KCQlpZigkcGc8JHRvdGFscGcpICRudW1iZXJbXSA9IGRvVGFn KCRsYWJlbF9uZXh0LCdhJywkY2xhc3NfbmV4dCwnIGhyZWY9IicucGVybWxpbmsoYXJyYXko KSkuJHNlcC4ncGc9Jy4kbmV4dHBnLiciJyk7DQoJCSRwYWdpbmF0aW9uID0gKCRzaG93YWx3 YXlzICE9IDEgJiYgJHRvdGFscGcgPCAyKSA/ICcnIDogZG9XcmFwKCRudW1iZXIsICRwZ193 cmFwdGFnLCAkcGdfYnJlYWssICRwZ19jbGFzcywgJHBnX2JyZWFrY2xhc3MpOw0KCQlpZigx PCRwZyl7DQoJCQkkb2Zmc2V0ID0gJGxpbWl0KiRwZzsNCgkJCSRvZmZzZXQgPSAkb2Zmc2V0 LSRsaW1pdDsNCgkJfQ0KCQlyZXR1cm4gKCgkcHJlcGVuZCkgPyAkcGFnaW5hdGlvbiA6ICcn KS5jb21tZW50cyhhcnJheSgNCgkJCSdzb3J0JyA9PiAkc29ydCwNCgkJCSdmb3JtJyA9PiAk Zm9ybSwNCgkJCSd3cmFwdGFnJyA9PiAkd3JhcHRhZywNCgkJCSdicmVha2NsYXNzJyA9PiAk YnJlYWtjbGFzcywNCgkJCSdicmVhaycgPT4gJGJyZWFrLA0KCQkJJ2NsYXNzJyA9PiAkY2xh c3MsDQoJCQknb2Zmc2V0JyA9PiAkb2Zmc2V0LA0KCQkJJ2xpbWl0JyA9PiAkbGltaXQNCgkJ KSkuKCgkYXBwZW5kKSA/ICRwYWdpbmF0aW9uIDogJycpOw0KCX0NCg0KCWZ1bmN0aW9uIHJh aF9yZWNlbnRfY29tbWVudHMoJGF0dHMpIHsNCgkJZXh0cmFjdChsQXR0cyhhcnJheSgNCgkJ CSdjb21tZW50c19saW1pdCcgPT4gMTAsDQoJCQknY29tbWVudHNfc29ydCcgPT4gJ3Bvc3Rl ZCBhc2MnLA0KCQkJJ2JyZWFrJyA9PiAnYnInLA0KCQkJJ2NsYXNzJyA9PiAncmVjZW50X2Nv bW1lbnRzJywNCgkJCSdsYWJlbCcgPT4gJycsDQoJCQknbGFiZWx0YWcnID0+ICcnLA0KCQkJ J2xpbWl0JyA9PiAxMCwNCgkJCSdzb3J0JyA9PiAncG9zdGVkIGRlc2MnLA0KCQkJJ3dyYXB0 YWcnID0+ICcnDQoJCSksJGF0dHMpKTsNCg0KCQkkc2VwID0gKHNhZmVfZmllbGQoJ3ZhbCcs J3R4cF9wcmVmcycsIm5hbWU9J3Blcm1saW5rX21vZGUnIikgPT0gJ21lc3N5JykgPyAnJmFt cDsnIDogJz8nOw0KCQkkc29ydCA9IHByZWdfcmVwbGFjZSgnL1xicG9zdGVkXGIvJywgJ2Qu cG9zdGVkJywgJHNvcnQpOw0KCQkkcnMgPSBzdGFydFJvd3MoJ3NlbGVjdCBkLm5hbWUsIGQu cGFyZW50aWQsIGQuZGlzY3Vzc2lkLCB0LklEIGFzIHRoaXNpZCwgdW5peF90aW1lc3RhbXAo dC5Qb3N0ZWQpIGFzIHBvc3RlZCwgdC5UaXRsZSBhcyB0aXRsZSwgdC5TZWN0aW9uIGFzIHNl Y3Rpb24sIHQudXJsX3RpdGxlICcuJ2Zyb20gJy4gc2FmZV9wZngoJ3R4cF9kaXNjdXNzJykg LicgYXMgZCBpbm5lciBqb2luICcuIHNhZmVfcGZ4KCd0ZXh0cGF0dGVybicpIC4nIGFzIHQg b24gZC5wYXJlbnRpZCA9IHQuSUQgJy4nd2hlcmUgdC5TdGF0dXMgPj0gNCBhbmQgZC52aXNp YmxlID0gJy5WSVNJQkxFLicgb3JkZXIgYnkgJy5kb1NsYXNoKCRzb3J0KS4nIGxpbWl0IDAs Jy5pbnR2YWwoJGxpbWl0KSk7DQoNCgkJaWYgKCRycykgew0KCQkJJG91dCA9IGFycmF5KCk7 DQoJCQl3aGlsZSAoJGMgPSBuZXh0Um93KCRycykpIHsNCgkJCQkkcG9zaXRpb24gPSAwOw0K CQkJCSRwZyA9IDA7CQ0KCQkJCSRyczIgPSBzYWZlX3Jvd3Nfc3RhcnQoJ2Rpc2N1c3NpZCcs J3R4cF9kaXNjdXNzJywidmlzaWJsZSA9ICIuVklTSUJMRS4iIGFuZCBwYXJlbnRpZCA9ICIu JGNbJ3BhcmVudGlkJ10uIiBvcmRlciBieSAkY29tbWVudHNfc29ydCIpOw0KCQkJCXdoaWxl ICgkeCA9IG5leHRSb3coJHJzMikpIHsNCgkJCQkJZXh0cmFjdCgkeCk7DQoJCQkJCSRwb3Np dGlvbisrOw0KCQkJCQlpZigkZGlzY3Vzc2lkID09ICRjWydkaXNjdXNzaWQnXSkgYnJlYWs7 DQoJCQkJfQ0KCQkJCSRwZyA9IGNlaWwoJHBvc2l0aW9uLyRjb21tZW50c19saW1pdCk7DQoJ CQkJJG91dFtdID0gaHJlZigkY1snbmFtZSddLicgKCcuZXNjYXBlX3RpdGxlKCRjWyd0aXRs ZSddKS4nKScscGVybWxpbmt1cmwoJGMpLiRzZXAuJ3BnPScuJHBnLicjYycuJGNbJ2Rpc2N1 c3NpZCddKTsNCgkJCX0NCgkJCWlmICgkb3V0KSByZXR1cm4gZG9MYWJlbCgkbGFiZWwsICRs YWJlbHRhZykuZG9XcmFwKCRvdXQsICR3cmFwdGFnLCAkYnJlYWssICRjbGFzcyk7DQoJCX0N CgkJcmV0dXJuICcnOw0KCX0iO3M6NDoidHlwZSI7czoxOiIwIjtzOjU6ImZsYWdzIjtzOjE6 IjAiO3M6NToib3JkZXIiO3M6MToiNSI7czozOiJtZDUiO3M6MzI6IjE1YmY2M2IzNmM4NzE0 NmE1MTFmOTYzOGFiZWM4MjMxIjt9