# ob1_pagination v2.5 # Creates a Google inspired pagination. # Henrik Jönsson # http://rise.lewander.com/ # ...................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ...................................................................... YToxMDp7czo0OiJuYW1lIjtzOjE0OiJvYjFfcGFnaW5hdGlvbiI7czo3OiJ2ZXJzaW9uIjtz OjM6IjIuNSI7czo2OiJhdXRob3IiO3M6MTU6IkhlbnJpayBKw7Zuc3NvbiI7czoxMDoiYXV0 aG9yX3VyaSI7czoyNToiaHR0cDovL3Jpc2UubGV3YW5kZXIuY29tLyI7czoxMToiZGVzY3Jp cHRpb24iO3M6Mzc6IkNyZWF0ZXMgYSBHb29nbGUgaW5zcGlyZWQgcGFnaW5hdGlvbi4iO3M6 NDoidHlwZSI7aTowO3M6MzoiY3NzIjtzOjE5NjU6IjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+ CkBtZWRpYSBhbGwgewoJI2hlbHBDb250ZW50cyAqIHsKCQlib3JkZXI6IDA7CgkJbWFyZ2lu OiAwOwoJfQoJI2hlbHBDb250ZW50cyB7CgkJZm9udC1mYW1pbHk6ICdMdWNpZGEgR3JhbmRl JyxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjsKCQlmb250LXNpemU6IDExcHg7CgkJbGlu ZS1oZWlnaHQ6MS40ZW07CgkJcGFkZGluZzoxMHB4OwoJfQoJI2hlbHBDb250ZW50cyB1bCB7 CgkJbGlzdC1zdHlsZTogc3F1YXJlOwoJfQoJI2hlbHBDb250ZW50cyBoMSxoMixoMyB7CgkJ Zm9udC13ZWlnaHQ6IGJvbGQ7CgkJZm9udC1mYW1pbHk6ICdMdWNpZGEgR3JhbmRlJyxIZWx2 ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjsKCX0KCSNoZWxwQ29udGVudHMgaDEgewoJCW1hcmdp bi1ib3R0b206IDRweDsKCX0KCSNoZWxwQ29udGVudHMgaDIgewoJCW1hcmdpbi10b3A6IDEw cHg7CgkJdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKCX0KCSNoZWxwQ29udGVudHMgaDMg ewoJCWZvbnQtc2l6ZTogMWVtOwoJCW1hcmdpbi10b3A6IDEwcHg7CgkJbWFyZ2luLWxlZnQ6 IDEwcHg7Cgl9CgkjaGVscENvbnRlbnRzIGxpIHsKCQltYXJnaW4tdG9wOiA0cHg7Cgl9Cgkj aGVscENvbnRlbnRzIHAgewoJCWZvbnQtZmFtaWx5OiAnVHJlYnVjaGV0IE1TJyxIZWx2ZXRp Y2EsQXJpYWwsc2Fucy1zZXJpZjsKCQlmb250LXNpemU6IDEuMWVtOwoJCW1hcmdpbi10b3A6 IDEwcHg7CgkJbWFyZ2luLWxlZnQ6IDIwcHg7Cgl9CgkjaGVscENvbnRlbnRzIHN0cm9uZywg I2hlbHBDb250ZW50cyBiIHsKCQlmb250LWZhbWlseTogJ1RyZWJ1Y2hldCBNUycsSGVsdmV0 aWNhLEFyaWFsLHNhbnMtc2VyaWY7CgkJZm9udC1zaXplOiAxZW07Cgl9CgkjaGVscENvbnRl bnRzIHVsLCAjaGVscENvbnRlbnRzIG9sIHsKCQltYXJnaW4tbGVmdDogMzBweDsKCX0KCSNo ZWxwQ29udGVudHMgYmxvY2txdW90ZSB7CgkJcGFkZGluZzogOHB4IDRweCA4cHggNHB4OwoJ fQp9CkBtZWRpYSBzY3JlZW4gewoJI2hlbHBDb250ZW50cyB7CgkJYmFja2dyb3VuZC1jb2xv cjogIzAwNWU3ZTsKCQlib3JkZXI6IDFweCBkb3R0ZWQgIzAwNWU3ZTsKCQl3aWR0aDogNzAw cHg7CgkJY29sb3I6ICNjM2U5ZjY7Cgl9CgkjaGVscENvbnRlbnRzIGEsICNoZWxwQ29udGVu dHMgYS52aXNpdGVkIHsKCQljb2xvcjogIzQyYjNkNzsKCQl0ZXh0LWRlY29yYXRpb246IG5v bmU7CgkJYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjNDJiM2Q3OwoJfQoJI2hlbHBDb250 ZW50cyBhW3RpdGxlPSdFeHRlcm5hbCBsaW5rJ10gewoJCWNvbG9yOiAjZGVlYmNkOwoJCWJv cmRlci1ib3R0b206IDFweCBkb3R0ZWQgI2RlZWJjZDsKCX0KCSNoZWxwQ29udGVudHMgYTpo b3ZlciB7CgkJY29sb3I6ICM2YmQ1ZmE7CgkJYm9yZGVyLWJvdHRvbTogMDsKCX0KCSNoZWxw Q29udGVudHMgYWNyb255bSB7CgkJYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAjYzNlOWY2 OwoJCWN1cnNvcjogaGVscDsKCX0KCSNoZWxwQ29udGVudHMgY29kZSwgI2hlbHBDb250ZW50 cyBibG9ja3F1b3RlIHsKCQliYWNrZ3JvdW5kLWNvbG9yOiAjNDJiM2Q3OwoJCXBhZGRpbmct bGVmdDogNHB4OwoJCXBhZGRpbmctcmlnaHQ6IDRweDsKCX0KCSNoZWxwQ29udGVudHMgYmxv Y2txdW90ZSB7CgkJbWFyZ2luLXRvcDogMTBweDsKCQlwYWRkaW5nOiA0cHg7CgkJYm9yZGVy OiAxcHggZG90dGVkICMwMDVlN2U7CgkJY29sb3I6ICMwMDVlN2U7Cgl9Cn0KQG1lZGlhIHBy aW50IHsKCSNoZWxwQ29udGVudHMgewoJCWJvcmRlcjogMXB4IGRvdHRlZCAjY2NjOwoJCWNv bG9yOiAjMDAwOwoJfQoJI2hlbHBDb250ZW50cyBhLCAjaGVscENvbnRlbnRzIGE6dmlzaXRl ZCB7CgkJY29sb3I6ICMzMzM7Cgl9CgkjaGVscENvbnRlbnRzIGRpdi5pbmRleCB1bCB7CgkJ ZGlzcGxheTogbm9uZTsKCX0KfQo8L3N0eWxlPgo8ZGl2IGlkPSJoZWxwQ29udGVudHMiPiI7 czo0OiJoZWxwIjtzOjExNTQ2OiI8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgpAbWVkaWEgYWxs IHsKCSNoZWxwQ29udGVudHMgKiB7CgkJYm9yZGVyOiAwOwoJCW1hcmdpbjogMDsKCX0KCSNo ZWxwQ29udGVudHMgewoJCWZvbnQtZmFtaWx5OiAnTHVjaWRhIEdyYW5kZScsSGVsdmV0aWNh LEFyaWFsLHNhbnMtc2VyaWY7CgkJZm9udC1zaXplOiAxMXB4OwoJCWxpbmUtaGVpZ2h0OjEu NGVtOwoJCXBhZGRpbmc6MTBweDsKCX0KCSNoZWxwQ29udGVudHMgdWwgewoJCWxpc3Qtc3R5 bGU6IHNxdWFyZTsKCX0KCSNoZWxwQ29udGVudHMgaDEsaDIsaDMgewoJCWZvbnQtd2VpZ2h0 OiBib2xkOwoJCWZvbnQtZmFtaWx5OiAnTHVjaWRhIEdyYW5kZScsSGVsdmV0aWNhLEFyaWFs LHNhbnMtc2VyaWY7Cgl9CgkjaGVscENvbnRlbnRzIGgxIHsKCQltYXJnaW4tYm90dG9tOiA0 cHg7Cgl9CgkjaGVscENvbnRlbnRzIGgyIHsKCQltYXJnaW4tdG9wOiAxMHB4OwoJCXRleHQt dHJhbnNmb3JtOiB1cHBlcmNhc2U7Cgl9CgkjaGVscENvbnRlbnRzIGgzIHsKCQlmb250LXNp emU6IDFlbTsKCQltYXJnaW4tdG9wOiAxMHB4OwoJCW1hcmdpbi1sZWZ0OiAxMHB4OwoJfQoJ I2hlbHBDb250ZW50cyBsaSB7CgkJbWFyZ2luLXRvcDogNHB4OwoJfQoJI2hlbHBDb250ZW50 cyBwIHsKCQlmb250LWZhbWlseTogJ1RyZWJ1Y2hldCBNUycsSGVsdmV0aWNhLEFyaWFsLHNh bnMtc2VyaWY7CgkJZm9udC1zaXplOiAxLjFlbTsKCQltYXJnaW4tdG9wOiAxMHB4OwoJCW1h cmdpbi1sZWZ0OiAyMHB4OwoJfQoJI2hlbHBDb250ZW50cyBzdHJvbmcsICNoZWxwQ29udGVu dHMgYiB7CgkJZm9udC1mYW1pbHk6ICdUcmVidWNoZXQgTVMnLEhlbHZldGljYSxBcmlhbCxz YW5zLXNlcmlmOwoJCWZvbnQtc2l6ZTogMWVtOwoJfQoJI2hlbHBDb250ZW50cyB1bCwgI2hl bHBDb250ZW50cyBvbCB7CgkJbWFyZ2luLWxlZnQ6IDMwcHg7Cgl9CgkjaGVscENvbnRlbnRz IGJsb2NrcXVvdGUgewoJCXBhZGRpbmc6IDhweCA0cHggOHB4IDRweDsKCX0KfQpAbWVkaWEg c2NyZWVuIHsKCSNoZWxwQ29udGVudHMgewoJCWJhY2tncm91bmQtY29sb3I6ICMwMDVlN2U7 CgkJYm9yZGVyOiAxcHggZG90dGVkICMwMDVlN2U7CgkJd2lkdGg6IDcwMHB4OwoJCWNvbG9y OiAjYzNlOWY2OwoJfQoJI2hlbHBDb250ZW50cyBhLCAjaGVscENvbnRlbnRzIGEudmlzaXRl ZCB7CgkJY29sb3I6ICM0MmIzZDc7CgkJdGV4dC1kZWNvcmF0aW9uOiBub25lOwoJCWJvcmRl ci1ib3R0b206IDFweCBkb3R0ZWQgIzQyYjNkNzsKCX0KCSNoZWxwQ29udGVudHMgYVt0aXRs ZT0nRXh0ZXJuYWwgbGluayddIHsKCQljb2xvcjogI2RlZWJjZDsKCQlib3JkZXItYm90dG9t OiAxcHggZG90dGVkICNkZWViY2Q7Cgl9CgkjaGVscENvbnRlbnRzIGE6aG92ZXIgewoJCWNv bG9yOiAjNmJkNWZhOwoJCWJvcmRlci1ib3R0b206IDA7Cgl9CgkjaGVscENvbnRlbnRzIGFj cm9ueW0gewoJCWJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgI2MzZTlmNjsKCQljdXJzb3I6 IGhlbHA7Cgl9CgkjaGVscENvbnRlbnRzIGNvZGUsICNoZWxwQ29udGVudHMgYmxvY2txdW90 ZSB7CgkJYmFja2dyb3VuZC1jb2xvcjogIzQyYjNkNzsKCQlwYWRkaW5nLWxlZnQ6IDRweDsK CQlwYWRkaW5nLXJpZ2h0OiA0cHg7Cgl9CgkjaGVscENvbnRlbnRzIGJsb2NrcXVvdGUgewoJ CW1hcmdpbi10b3A6IDEwcHg7CgkJcGFkZGluZzogNHB4OwoJCWJvcmRlcjogMXB4IGRvdHRl ZCAjMDA1ZTdlOwoJCWNvbG9yOiAjMDA1ZTdlOwoJfQp9CkBtZWRpYSBwcmludCB7CgkjaGVs cENvbnRlbnRzIHsKCQlib3JkZXI6IDFweCBkb3R0ZWQgI2NjYzsKCQljb2xvcjogIzAwMDsK CX0KCSNoZWxwQ29udGVudHMgYSwgI2hlbHBDb250ZW50cyBhOnZpc2l0ZWQgewoJCWNvbG9y OiAjMzMzOwoJfQoJI2hlbHBDb250ZW50cyBkaXYuaW5kZXggdWwgewoJCWRpc3BsYXk6IG5v bmU7Cgl9Cn0KPC9zdHlsZT4KPGRpdiBpZD0iaGVscENvbnRlbnRzIj4KCgoJPGgxPm9iMS1w YWdpbmF0aW9uIHYyLjUgWzIwMDctMTAtMTNdPC9oMT4KCjxkaXYgY2xhc3M9ImluZGV4Ij4K Cgk8dWw+CgkJPGxpPjxhIGhyZWY9IiNwbHVnaW5TdW1tYXJ5Ij5TdW1tYXJ5PC9hPjwvbGk+ CgkJPGxpPjxhIGhyZWY9IiNwbHVnaW5BdHRyaWJ1dGVzIj5BdHRyaWJ1dGVzPC9hPgoJPHVs PgoJCTxsaT48YSBocmVmPSIjcGx1Z2luTWF4aW11bVRhYnMiPm1heGltdW10YWJzPC9hPjwv bGk+CgkJPGxpPjxhIGhyZWY9IiNwbHVnaW5MaW5rQ3VycmVudCI+bGlua2N1cnJlbnQ8L2E+ PC9saT4KCQk8bGk+PGEgaHJlZj0iI3BsdWdpbk91dHB1dExhc3RGaXJzdCI+b3V0cHV0bGFz dGZpcnN0PC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNwbHVnaW5PdXRwdXROZXh0UHJldmlv dXMiPm91dHB1dG5leHRwcmV2aW91czwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjcGx1Z2lu VWxJRCI+dWxpZDwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjcGx1Z2luVWxDbGFzcyI+dWxj bGFzczwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjcGx1Z2luTGlDbGFzcyI+bGljbGFzczwv YT48L2xpPgoJCTxsaT48YSBocmVmPSIjcGx1Z2luTGlTZWxlY3RlZCI+bGlzZWxlY3RlZDwv YT48L2xpPgoJCTxsaT48YSBocmVmPSIjcGx1Z2luTGlTZWxlY3RlZFRleHQiPmxpc2VsZWN0 ZWR0ZXh0PC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNwbHVnaW5MaUVtcHR5Ij5saWVtcHR5 PC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNwbHVnaW5GaXJzdFRleHQiPmZpcnN0dGV4dDwv YT48L2xpPgoJCTxsaT48YSBocmVmPSIjcGx1Z2luRmlyc3RUZXh0VGl0bGUiPmZpcnN0dGV4 dHRpdGxlPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNwbHVnaW5QcmV2aW91c1RleHQiPnBy ZXZpb3VzdGV4dDwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjcGx1Z2luUHJldmlvdXNUZXh0 VGl0bGUiPnByZXZpb3VzdGV4dHRpdGxlPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNwbHVn aW5OZXh0VGV4dCI+bmV4dHRleHQ8L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI3BsdWdpbk5l eHRUZXh0VGl0bGUiPm5leHR0ZXh0dGl0bGU8L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI3Bs dWdpbkxhc3RUZXh0Ij5sYXN0dGV4dDwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjcGx1Z2lu TGFzdFRleHRUaXRsZSI+bGFzdHRleHR0aXRsZTwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIj cGx1Z2luUGFnZVRleHQiPnBhZ2V0ZXh0PC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNwbHVn aW5SZXZlcnNlTnVtYmVyT3JkZXIiPnJldmVyc2VudW1iZXJvcmRlcjwvYT48L2xpPgoJCTxs aT48YSBocmVmPSIjcGx1Z2luTW9yZVRhYnNEaXNwbGF5Ij5tb3JldGFic2Rpc3BsYXk8L2E+ PC9saT4KCQk8bGk+PGEgaHJlZj0iI3BsdWdpbk1vcmVUYWJzVGV4dCI+bW9yZXRhYnN0ZXh0 PC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNwbHVnaW5XcmFwVGFnIj53cmFwdGFnPC9hPjwv bGk+Cgk8L3VsPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNwbHVnaW5FeGFtcGxlcyI+RXhhbXBs ZXM8L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI3BsdWdpbkNoYW5nZUxvZyI+Q2hhbmdlbG9n PC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9Imh0dHA6Ly9yaXNlLmxld2FuZGVyLmNvbS8iIHRp dGxlPSJFeHRlcm5hbCBsaW5rIj5BdXRob3IgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bh bj48L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNv bS92aWV3dG9waWMucGhwP2lkPTM3MjQiIHRpdGxlPSJFeHRlcm5hbCBsaW5rIj48c3BhbiBj bGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBmb3J1bSB0aHJlYWQ8L2E+PC9saT4KCQk8bGk+PGEg aHJlZj0iaHR0cDovL3Jpc2UubGV3YW5kZXIuY29tL3RleHRwYXR0ZXJuL29iMS1wYWdpbmF0 aW9uIiB0aXRsZT0iRXh0ZXJuYWwgbGluayI+UGx1Z2luIDxzcGFuIGNsYXNzPSJjYXBzIj5V Ukw8L3NwYW4+PC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1v bnMub3JnL2xpY2Vuc2VzL2J5LXNhLzMuMC8iIHRpdGxlPSJFeHRlcm5hbCBsaW5rIj5MaWNl bnNlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+PC9hPjwvbGk+Cgk8L3VsPgoKPC9k aXY+CgoJPGgyIGlkPSJwbHVnaW5TdW1tYXJ5Ij5TdW1tYXJ5PC9oMj4KCgk8cD5UaGlzIHBs dWdpbiBjcmVhdGVzIGEgbmF2aWdhdGlvbiBiYXIgYXMgc2VlbiBvbiA8YSBocmVmPSJodHRw Oi8vd3d3Lmdvb2dsZS5jb20iIHRpdGxlPSJFeHRlcm5hbCBsaW5rIj5Hb29nbGU8L2E+IHdo ZW4geW91IGxpbWl0IGFydGljbGVzIG9yIHNlYXJjaCBmb3Igc29tZXRoaW5nLiBJdCBoYXMg YSB3aWRlIHZhcmlldHkgb2YgYXR0cmlidXRlcyBzbyB5b3UgYXJlIGFibGUgdG8gY3VzdG9t aXplIGl0IHVudGlsIHlvdSBkcm9wLjwvcD4KCgk8aDIgaWQ9InBsdWdpbkF0dHJpYnV0ZXMi PkF0dHJpYnV0ZXM8L2gyPgoKCTxoMyBpZD0icGx1Z2luTWF4aW11bVRhYnMiPm1heGltdW10 YWJzPC9oMz4KCgk8cD5UaGUgbWF4aW11bSBudW1iZXIgb2YgdGFicyB0byBkaXNwbGF5LiBD YW4gPGVtPm5vdDwvZW0+IGJlIHNldCB0byAxIHNpbmNlIHRoYXQga2lsbHMgdGhlIHdob2xl IGlkZWEgb2YgdGhpcyBwbHVnaW4uPC9wPgoKCTx1bD4KCQk8bGk+PGVtPjExPC9lbT4gJiM4 MjExOyBkZWZhdWx0LjwvbGk+Cgk8L3VsPgoKCTxoMyBpZD0icGx1Z2luTGlua0N1cnJlbnQi PmxpbmtjdXJyZW50PC9oMz4KCgk8cD5XaGV0ZXIgb3Igbm90IHRoZSBjdXJyZW50IHBhZ2Ug bnVtYmVyIGlzIGEgbGluayBvciBub3QuPC9wPgoKCTx1bD4KCQk8bGk+PGVtPjA8L2VtPiAm IzgyMTE7IE5vIGxpbmsgKGRlZmF1bHQpLjwvbGk+CgkJPGxpPjxlbT4xPC9lbT4gJiM4MjEx OyBMaW5rLjwvbGk+Cgk8L3VsPgoKCTxoMyBpZD0icGx1Z2luT3V0cHV0TGFzdEZpcnN0Ij5v dXRwdXRsYXN0Zmlyc3Q8L2gzPgoKCTxwPldoZXRlciBvciBub3QgdG8gb3V0cHV0IHRoZSBG aXJzdC9MYXN0IHRhYnMuPC9wPgoKCTx1bD4KCQk8bGk+PGVtPjE8L2VtPiAmIzgyMTE7IE91 dHB1dCAoZGVmYXVsdCkuPC9saT4KCQk8bGk+PGVtPjA8L2VtPiAmIzgyMTE7IERvbiYjODIx Nzt0LjwvbGk+Cgk8L3VsPgoKCTxoMyBpZD0icGx1Z2luT3V0cHV0TmV4dFByZXZpb3VzIj5v dXRwdXRuZXh0cHJldmlvdXM8L2gzPgoKCTxwPldoZXRlciBvciBub3QgdG8gb3V0cHV0IHRo ZSBOZXh0L1ByZXZpb3VzIHRhYnMuPC9wPgoKCTx1bD4KCQk8bGk+PGVtPjE8L2VtPiAmIzgy MTE7IE91dHB1dCAoZGVmYXVsdCkuPC9saT4KCQk8bGk+PGVtPjA8L2VtPiAmIzgyMTE7IERv biYjODIxNzt0LjwvbGk+Cgk8L3VsPgoKCTxoMyBpZD0icGx1Z2luVWxJRCI+dWxpZDwvaDM+ CgoJPHA+RW5hYmxlcyB5b3UgdG8gc2V0IGEgaWQgdG8gdGhlIDxjb2RlPiYjNjA7dWwmIzYy OzwvY29kZT4gdGhhdCB3cmFwcyB0aGUgb3V0cHV0LjwvcD4KCgk8aDMgaWQ9InBsdWdpblVs Q2xhc3MiPnVsY2xhc3M8L2gzPgoKCTxwPkVuYWJsZXMgeW91IHRvIHNldCBhIGNsYXNzIHRv IHRoZSA8Y29kZT4mIzYwO3VsJiM2Mjs8L2NvZGU+IHRoYXQgd3JhcHMgdGhlIG91dHB1dC48 L3A+CgoJPGgzIGlkPSJwbHVnaW5MaUNsYXNzIj5saWNsYXNzPC9oMz4KCgk8cD5TZXRzIGEg ZGVmYXVsdCBjbGFzcyB0byBhbGwgPGNvZGU+JiM2MDtsaSYjNjI7PC9jb2RlPiB0YWJzLjwv cD4KCgk8aDMgaWQ9InBsdWdpbkxpU2VsZWN0ZWQiPmxpc2VsZWN0ZWQ8L2gzPgoKCTxwPkFk ZHMgdGhpcyBjbGFzcyB0byB0aGUgY3VycmVudGx5IGFjdGl2ZSA8Y29kZT4mIzYwO2xpJiM2 Mjs8L2NvZGU+IHRhYi48L3A+CgoJPGgzIGlkPSJwbHVnaW5MaVNlbGVjdGVkVGV4dCI+bGlz ZWxlY3RlZHRleHQ8L2gzPgoKCTxwPklmIHlvdSB3YW50IHRvIGhhdmUgdGhlIHNlbGVjdGVk IHRhYiBvdXRwdXQgc29tZXRoaW5nIGVsc2UgdGhlbiB0aGUgbnVtYmVyLCBhZGQgaXQgaGVy ZS48L3A+CgoJPGgzIGlkPSJwbHVnaW5MaUVtcHR5Ij5saWVtcHR5PC9oMz4KCgk8cD5BZGRz IHRoaXMgY2xhc3MgdG8gYWxsIDxjb2RlPiYjNjA7bGkmIzYyOzwvY29kZT4gdGFicyB0aGF0 IGFyZSBlbXB0eS48L3A+CgoJPGgzIGlkPSJwbHVnaW5GaXJzdFRleHQiPmZpcnN0dGV4dDwv aDM+CgoJPHA+RW5hYmxlcyB5b3UgdG8gYWx0ZXIgdGhlIHRleHQgaW5zaWRlIHRoZSBmaXJz dCBsaW5rLjwvcD4KCgk8aDMgaWQ9InBsdWdpbkZpcnN0VGV4dFRpdGxlIj5maXJzdHRleHR0 aXRsZTwvaDM+CgoJPHA+RW5hYmxlcyB5b3UgdG8gYWx0ZXIgdGhlIHRpdGxlIG9mIHRoZSBm aXJzdCBsaW5rLjwvcD4KCgk8aDMgaWQ9InBsdWdpblByZXZpb3VzVGV4dCI+cHJldmlvdXN0 ZXh0PC9oMz4KCgk8cD5FbmFibGVzIHlvdSB0byBhbHRlciB0aGUgdGV4dCBpbnNpZGUgdGhl IHByZXZpb3VzIGxpbmsuPC9wPgoKCTxoMyBpZD0icGx1Z2luUHJldmlvdXNUZXh0VGl0bGUi PnByZXZpb3VzdGV4dHRpdGxlPC9oMz4KCgk8cD5FbmFibGVzIHlvdSB0byBhbHRlciB0aGUg dGl0bGUgb2YgdGhlIHByZXZpb3VzIGxpbmsuPC9wPgoKCTxoMyBpZD0icGx1Z2luTmV4dFRl eHQiPm5leHR0ZXh0PC9oMz4KCgk8cD5FbmFibGVzIHlvdSB0byBhbHRlciB0aGUgdGV4dCBp bnNpZGUgdGhlIG5leHQgbGluay48L3A+CgoJPGgzIGlkPSJwbHVnaW5OZXh0VGV4dFRpdGxl Ij5uZXh0dGV4dHRpdGxlPC9oMz4KCgk8cD5FbmFibGVzIHlvdSB0byBhbHRlciB0aGUgdGl0 bGUgb2YgdGhlIG5leHQgbGluay48L3A+CgoJPGgzIGlkPSJwbHVnaW5MYXN0VGV4dCI+bGFz dHRleHQ8L2gzPgoKCTxwPkVuYWJsZXMgeW91IHRvIGFsdGVyIHRoZSB0ZXh0IGluc2lkZSB0 aGUgbGFzdCBsaW5rLjwvcD4KCgk8aDMgaWQ9InBsdWdpbkxhc3RUZXh0VGl0bGUiPmxhc3R0 ZXh0dGl0bGU8L2gzPgoKCTxwPkVuYWJsZXMgeW91IHRvIGFsdGVyIHRoZSB0aXRsZSBvZiB0 aGUgbGFzdCBsaW5rLjwvcD4KCgk8aDMgaWQ9InBsdWdpblBhZ2VUZXh0Ij5wYWdldGV4dDwv aDM+CgoJPHA+RW5hYmxlcyB5b3UgdG8gYWx0ZXIgdGhlIHRleHQgaW4gdGhlIHRpdGxlcyBv ZiB0aGUgcGFnZSB0YWJzLjwvcD4KCgk8aDMgaWQ9InBsdWdpblJldmVyc2VOdW1iZXJPcmRl ciI+cmV2ZXJzZW51bWJlcm9yZGVyPC9oMz4KCgk8cD5NYWtlcyBpdCBwb3NzaWJsZSB0byBy ZXZlcnNlIHRoZSBudW1iZXJzIGluIHRoZSB0YWJzLjwvcD4KCgk8dWw+CgkJPGxpPjxlbT4w PC9lbT4gJiM4MjExOyAxLDIgYW5kIHNvIG9uIChkZWZhdWx0KS48L2xpPgoJCTxsaT48ZW0+ MTwvZW0+ICYjODIxMTsgMiwxIGFuZCBzbyBvbi48L2xpPgoJPC91bD4KCgk8aDMgaWQ9InBs dWdpbk1vcmVUYWJzRGlzcGxheSI+bW9yZXRhYnNkaXNwbGF5PC9oMz4KCgk8cD5XYW50IHRv IGdldCBhIDxjb2RlPiYjNjA7bGkmIzYyOzwvY29kZT4gdGhhdCBzdGF0ZXMgdGhhdCB0aGVy ZSBhcmUgbW9yZSB0YWJzIGJlZm9yZSBvciBhZnRlciB0aGUgb25lcyBjdXJyZW50bHkgdmll d2FibGU/IE1ha2UgdGhpcyB2YWx1ZSB0byBhIDEgdGhlbi48L3A+CgoJPGgzIGlkPSJwbHVn aW5Nb3JlVGFic1RleHQiPm1vcmV0YWJzdGV4dDwvaDM+CgoJPHA+SWYgeW91IGp1c3QgYWRk ZWQgdGhlIGF0dHJpYnV0ZSBtb3JldGFic2Rpc3BsYXkgdG8gMSwgdGhlbiB5b3UgbmVlZCB0 byBkZWZpbmUgd2hlcmUgaXQgc2hvdWxkIHNob3cuIFdhbnQgaXQgaW4gdGhlIHN0YXJ0IGlm IHRoZXJlIGFyZSBwYWdlcyBiZWxvdyB0aGUgY3VycmVudCBvbmVzPyBPciBkbyB5b3Ugd2Fu dCBpdCBhZnRlciBpZiB0aGVyZSBhcmUgbW9yZSB0YWJzIGF2YWlsYWJsZT8gWW91IGRvbiYj ODIxNzt0IG5lZWQgdG8gY2hvb3NlLCBqdXN0IGNvbW1hLXNlcGFyYXRlIHRoZSBiZWxvdyB2 YWx1ZXMgYW5kIHlvdSYjODIxNztyZSBkb25lLjwvcD4KCgk8dWw+CgkJPGxpPmJlZm9yZTwv bGk+CgkJPGxpPmFmdGVyPC9saT4KCTwvdWw+CgoJPGgzIGlkPSJwbHVnaW5XcmFwVGFnIj53 cmFwdGFnPC9oMz4KCgk8cD5ObyBicmFpbmVyLiBEb2VzIHdoYXQgaXQgdXN1YWxseSBkb2Vz IGluIDxhY3JvbnltIHRpdGxlPSJUZXh0cGF0dGVybiI+PHNwYW4gY2xhc3M9ImNhcHMiPlRY UDwvc3Bhbj48L2Fjcm9ueW0+LiBXcmFwcyB0aGUgdGFnIHNwZWNpZmllZCBhcm91bmQgdGhl IG91dHB1dC48L3A+CgoJPGgyIGlkPSJwbHVnaW5FeGFtcGxlcyI+RXhhbXBsZXM8L2gyPgoK PGJsb2NrcXVvdGU+PGNvZGU+JiM2MDt0eHA6b2IxX2dvb2dsZW5hdiBmaXJzdHRleHQ9JiMz NDtGaXJzdCYjMzQ7IHByZXZpb3VzdGV4dD0mIzM0O1ByZXZpb3VzJiMzNDsgbmV4dHRleHQ9 JiMzNDtOZXh0JiMzNDsgbGFzdHRleHQ9JiMzNDtMYXN0JiMzNDsgLyYjNjI7PC9jb2RlPjwv YmxvY2txdW90ZT4KCgk8cD5UaGlzIG91dHB1dHMgaWYgdGhlcmUgYXJlIHRocmVlIHBhZ2Vz PC9wPgoKCTx1bD4KCQk8bGk+Rmlyc3Q8L2xpPgoJCTxsaT5QcmV2aW91czwvbGk+CgkJPGxp PjE8L2xpPgoJCTxsaT48YSBocmVmPSI/cGc9MiI+MjwvYT48L2xpPgoJCTxsaT48YSBocmVm PSI/cGc9MyI+MzwvYT48L2xpPgoJCTxsaT48YSBocmVmPSI/cGc9MiI+TmV4dDwvYT48L2xp PgoJCTxsaT48YSBocmVmPSI/cGc9MyI+TGFzdDwvYT48L2xpPgoJPC91bD4KCgk8cD48c3Ry b25nPkRvIG5vdGU8L3N0cm9uZz4gdGhhdCB0aGlzIHBsdWdpbiBjcmVhdGVzIGFuIHVub3Jk ZXJlZCBsaXN0IHRoYXQgaXMgbWVhbnQgdG8gYmUgPGVtPnN0eWxlZCBieSB5b3U8L2VtPiwg dGhyb3VnaCA8YWNyb255bSB0aXRsZT0iQ2FzY2FkaW5nIFN0eWxlU2hlZXRzIj48c3BhbiBj bGFzcz0iY2FwcyI+Q1NTPC9zcGFuPjwvYWNyb255bT4uPC9wPgoKCTxoMiBpZD0icGx1Z2lu Q2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2gyPgoKCTxoMz5WZXJzaW9uIDIuNSBbMjAwNy0xMC0x M108L2gzPgoKCTxwPjxzdHJvbmc+Q2hhbmdlZCBmZWF0dXJlczwvc3Ryb25nPjwvcD4KCgk8 dWw+CgkJPGxpPk5ldyBuYW1lIG9uIHBvcHVsYXIgZGVtYW5kOiBvYjFfZ29vZ2xlbmF2IGJl Y2FtZSBvYjFfcGFnaW5hdGlvbi48L2xpPgoJCTxsaT5SZW1vdmVkIDxjb2RlPm91dHB1dGxp bmt0YWdzPC9jb2RlPiBmZWF0dXJlLiBJbiA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFu PiA0LnggaXQmIzgyMTc7cyBoYXJkIHRvIGdldCBpdCB0byB3b3JrLiBNYXliZSB3aWxsIHJl bGVhc2UgaXQgYSBzZXBhcmF0ZSBwbHVnaW4sIHdobyBrbm93cz88L2xpPgoJPC91bD4KCgk8 cD48c3Ryb25nPk5ldyBmZWF0dXJlczwvc3Ryb25nPjwvcD4KCgk8dWw+CgkJPGxpPkF0dHJp YnV0ZSA8YSBocmVmPSIjcGx1Z2luT3V0cHV0TmV4dFByZXZpb3VzIj5vdXRwdXRuZXh0cHJl dmlvdXM8L2E+IGFkZGVkLiBEb2VzIHdoYXQgdGhlIG5hbWUgc3BlY2lmaWVzLjwvbGk+Cgk8 L3VsPgoKCTxoMz5WZXJzaW9uIDIuNCBbMjAwNy0wOS0xOF08L2gzPgoKCTxwPjxzdHJvbmc+ QnVnIGZpeGVzPC9zdHJvbmc+PC9wPgoKCTx1bD4KCQk8bGk+Tm93IHdvcmtzIHdpdGggPGFj cm9ueW0gdGl0bGU9IlRleHRwYXR0ZXJuIj48c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFu PjwvYWNyb255bT4gNCwgdGhhbmtzIHRvIDxhIGhyZWY9Imh0dHA6Ly9nZXJoYXJkbGF6dS5j b20vYmxvZy80NC9vYjFnb29nbGVuYXYtMjAtY29ycmVjdGlvbnMiIHRpdGxlPSJFeHRlcm5h bCBsaW5rIj5HZXJoYXJkPC9hPiBmb3IgYWRyZXNzaW5nIHRoZSBtb3N0IHBhcnRzIG9mIHRo aXMuIFRoaXMgaW5jbHVkZWQ6Cgk8dWw+CgkJPGxpPm1lc3N5X3VybHMgZGlkbiYjODIxNzt0 IHdvcmsgYWZ0ZXIgPGFjcm9ueW0gdGl0bGU9IlRleHRwYXR0ZXJuIj48c3BhbiBjbGFzcz0i Y2FwcyI+VFhQPC9zcGFuPjwvYWNyb255bT4gUkMzIChvciBzb21ldGhpbmcpLjwvbGk+CgkJ PGxpPmJyZWFraW5nIDxzcGFuIGNsYXNzPSJjYXBzIj5YSFRNTDwvc3Bhbj4gc2luY2UgdGhl IHVzZSBvZiAmIzM4OyBpbiB0aGUgPGFjcm9ueW0gdGl0bGU9IlVuaWZvcm0gUmVzb3VyY2Ug TG9jYXRvciI+PHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj48L2Fjcm9ueW0+cy48L2xp PgoJPC91bD48L2xpPgoJCTxsaT5BdHRyaWJ1dGUgb3V0cHV0Zmlyc3RsYXN0IGRpZG4mIzgy MTc7dCB3b3JrIHByb3Blcmx5LiBOb3cgZG9lcyB3aGF0IGl0JiM4MjE3O3Mgc3VwcG9zZWQg dG8gZG8uPC9saT4KCQk8bGk+QXR0cmlidXRlIGxpc2VsZWN0ZWQgd2FzIG5vdCBhZGRlZCBp ZiBub3QgdGhlIGF0dHJpYnV0ZSBsaW5rY3VycmVudCB3YXMgY2hvc2VuLiBGaXhlZC48L2xp PgoJPC91bD4KCgk8cD48c3Ryb25nPkNoYW5nZWQgZmVhdHVyZXM8L3N0cm9uZz48L3A+CgoJ PHVsPgoJCTxsaT5BdHRyaWJ1dGUgbWF4dGFiIGNoYW5nZWQgdG8gPGEgaHJlZj0iI3BsdWdp bk1heGltdW1UYWJzIj5tYXhpbXVtdGFiczwvYT4gZm9yIGJldHRlciBuYW1pbmcgcHJvY2Vk dXJlLiBTdGlsbCBkb2VzIHRoZSBzYW1lLjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNwbHVnaW5M aUNsYXNzIj5saWNsYXNzPC9hPiBpcyBhZGRlZCB0byBhbGwgPGNvZGU+JiM2MDtsaSYjNjI7 PC9jb2RlPi48L2xpPgoJCTxsaT48YSBocmVmPSIjcGx1Z2luTGlFbXB0eSI+bGllbXB0eTwv YT4gaXMgYWRkZWQgdG8gYWxsIGVtcHR5IDxjb2RlPiYjNjA7bGkmIzYyOzwvY29kZT4mIzgy MTc7cywgbm90IGp1c3Qgc2V0dGluZyBpdCBhcyBvbmUgYW5kIG9ubHkgY2xhc3MuPC9saT4K CQk8bGk+PGEgaHJlZj0iI3BsdWdpbkxpU2VsZWN0ZWQiPmxpc2VsZWN0ZWQ8L2E+IGlzIGFk ZGVkIHRvIHRoZSBzZWxlY3RlZCA8Y29kZT4mIzYwO2xpJiM2Mjs8L2NvZGU+IGxpa2UgPGNv ZGU+bGllbXB0eTwvY29kZT4gYWJvdmUuPC9saT4KCTwvdWw+CgoJPHA+PHN0cm9uZz5OZXcg ZmVhdHVyZXM8L3N0cm9uZz48L3A+CgoJPHVsPgoJCTxsaT5OZXcgYXR0cmlidXRlczoKCTx1 bD4KCQk8bGk+PGEgaHJlZj0iI3BsdWdpbkxpU2VsZWN0ZWRUZXh0Ij5saXNlbGVjdGVkdGV4 dDwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjcGx1Z2luUmV2ZXJzZU9yZGVyTnVtYmVyIj5y ZXZlcnNlbnVtYmVyb3JkZXI8L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI3BsdWdpbk1vcmVU YWJzRGlzcGxheSI+bW9yZXRhYnNkaXNwbGF5PC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNw bHVnaW5Nb3JlVGFic1RleHQiPm1vcmV0YWJzdGV4dDwvYT48L2xpPgoJCTxsaT48YSBocmVm PSIjcGx1Z2luV3JhcFRhZyI+d3JhcHRhZzwvYT48L2xpPgoJPC91bD48L2xpPgoJPC91bD4K Cgk8cD5SZWFkIHVwIG9uIHRoZW0gYWJvdmUuPC9wPgoKCTxoMz5PbGRlciB2ZXJzaW9uczwv aDM+CgoJPHVsPgoJCTxsaT52Mi4wICYjODIxMTsgQWRkZWQgc3VwcG9ydCBmb3IgaXQgdG8g YmUgdXNlZCB3aXRoIG15IDxhIGhyZWY9Imh0dHA6Ly9yaXNlLmxld2FuZGVyLmNvbS90ZXh0 cGF0dGVybi9vYjEtYWR2YW5jZWQtc2VhcmNoIj5vYjFfYWR2YW5jZWRfc2VhcmNoPC9hPiBw bHVnaW4uPC9saT4KCQk8bGk+djEuMSAmIzgyMTE7IEZpeGVkIHRoZSBidWcgdGhhdCBpdCBk aWQgbm90IGFkZCBhbnkgY2F0ZWdvcnkuIEFsc28gZGlkIG5vdCB3b3JrIGluIG1lc3N5IG1v ZGUuPC9saT4KCQk8bGk+djEuMCAmIzgyMTE7IEluaXRpYWwgcmVsZWFzZS48L2xpPgoJPC91 bD4KCjwvZGl2PiI7czo0OiJjb2RlIjtzOjUyNTM6IgkvKgoJCVBsdWdpbjogb2IxX3BhZ2lu YXRpb24KCQlVUkw6IGh0dHA6Ly9yaXNlLmxld2FuZGVyLmNvbS90ZXh0cGF0dGVybi9vYjEt cGFnaW5hdGlvbgoJCVJlbGVhc2VkIHVuZGVyIHRoZSBDcmVhdGl2ZSBDb21tb25zIEF0dHJp YnV0aW9uLVNoYXJlIEFsaWtlIDMuMCBVbnBvcnRlZCwgaHR0cDovL2NyZWF0aXZlY29tbW9u cy5vcmcvbGljZW5zZXMvYnktc2EvMy4wLwoJKi8KCglmdW5jdGlvbiBvYjFfcGFnaW5hdGlv bigkYXR0cykgewoJCWdsb2JhbCAkdGhpc3BhZ2UsJHEsJHByZWZzLCRwcmV0ZXh0OwoJCWV4 dHJhY3QoJHByZXRleHQpOwoJCWlmKGlzX2FycmF5KCR0aGlzcGFnZSkpIGV4dHJhY3QoJHRo aXNwYWdlKTsKCQlleHRyYWN0KCRwcmVmcyk7CgkJaWYoIWlzc2V0KCRwZykpICRwZz0xOwoJ CSRudW1iZXJPZlRhYnMgPSAoZW1wdHkoJHRoaXNwYWdlKSkgPyAxOiAkbnVtUGFnZXM7CgoJ CWV4dHJhY3QobEF0dHMoYXJyYXkoCgkJCSJtYXhpbXVtdGFicyI9PiIxMSIsICMgbWF4aW11 bSBudW1iZXIgb2YgdGFicyBkaXNwbGF5ZWQKCQkJImZpcnN0dGV4dCI9PiImIzE3MTsiLAoJ CQkiZmlyc3R0ZXh0dGl0bGUiPT4iRmlyc3QiLAoJCQkicHJldmlvdXN0ZXh0Ij0+IiYjODI0 OTsiLAoJCQkicHJldmlvdXN0ZXh0dGl0bGUiPT4iUHJldmlvdXMiLAoJCQkibGFzdHRleHQi PT4iJiMxODc7IiwKCQkJImxhc3R0ZXh0dGl0bGUiPT4iTGFzdCIsCgkJCSJuZXh0dGV4dCI9 PiImIzgyNTA7IiwKCQkJIm5leHR0ZXh0dGl0bGUiPT4iTmV4dCIsCgkJCSJwYWdldGV4dCI9 PiJQYWdlIiwKCQkJInVsaWQiPT4nJywKCQkJInVsY2xhc3MiPT4nJywKCQkJImxpY2xhc3Mi PT4nJywgIyBkZWZhdWx0IGNsYXNzLCBhZGRlZCB0byBldmVyeSA8bGk+CgkJCSJsaXNlbGVj dGVkIj0+JycsICMgc2VsZWN0ZWQgY2xhc3MsIGFkZGVkIHRvIHRoZSBjdXJyZW50IHRhYgoJ CQkibGlzZWxlY3RlZHRleHQiPT4nJywgIyBpZiB5b3Ugd2FudCB0aGUgc2VsZWN0ZWQgPGxp PiB0byBjb250YWluIHNvbWV0aGluZyBlbHNlIHRoZW4gdGhlIG51bWJlciwgYWRkIGl0IGhl cmUKCQkJImxpZW1wdHkiPT4nJywgIyBlbXB0eSBjbGFzcywgYWRkZWQgdG8gdGhlIDxsaT4g dGhhdCBkbyBub3QgaG9sZCBhbiBhbmNob3IgPGE+CgkJCSJsaW5rY3VycmVudCI9PiIwIiwK CQkJIm91dHB1dGxhc3RmaXJzdCI9PiIxIiwKCQkJIm91dHB1dG5leHRwcmV2aW91cyI9PiIx IiwKCQkJInJldmVyc2VudW1iZXJvcmRlciI9PiIwIiwgIyB3YW50IHRoZSBudW1iZXJzIHJl dmVyc2VkPyBubyBzd2VhdC4gY2hhbmdlIHRvIDEKCQkJIm1vcmV0YWJzZGlzcGxheSI9PiIi LCAjIG1heSBjb250YWluIGJlZm9yZSBvciBhZnRlciBvciBib3RoIGlmIHRoZXkncmUgY29t bWEtc2VwYXJhdGVkCgkJCSJtb3JldGFic3RleHQiPT4iLi4uIiwKCQkJIndyYXB0YWciPT4i IiwKCQkpLCRhdHRzKSk7CgoJCSR1bGlkPShlbXB0eSgkdWxpZCkpPycnOicgaWQ9IicuJHVs aWQuJyInOwoJCSR1bGNsYXNzPShlbXB0eSgkdWxjbGFzcykpPycnOicgY2xhc3M9IicuJHVs Y2xhc3MuJyInOwoKCQkkYWRkVG9VUkwgPSAoJHBlcm1saW5rX21vZGU9PSdtZXNzeScpID8g IiZhbXA7cz0kcyIgOiAiIiA7CgkJJGFkZFRvVVJMIC49ICgkYykgPyAiJmFtcDtjPSRjIiA6 ICIiOwoKCQkjIGlmIHdlIGdvdCB0YWJzLCBzdGFydCB0aGUgb3V0cHV0dGluZwoJCWlmKCRu dW1iZXJPZlRhYnM+MSl7CgkJCWlmKCRtYXhpbXVtdGFicz09MSkgJG1heGltdW10YWJzPTEx OyAjIHVzaW5nIGp1c3Qgb25lIHRhYiBpcyBmb2xseSEgZm9sbHkgaSBzYXkKCgkJCSMgdGhp cyBpcyBmb3IgdGhlIHNlYXJjaAoJCQlpZigkcSBhbmQgKGlzX2NhbGxhYmxlKEBvYjFfYWR2 YW5jZWRfc2VhcmNoKSkpewoJCQkJIyBpZiB5b3UncmUgdXNpbmcgb2IxX2FkdmFuY2VkX3Nl YXJjaCBbdjEuMGIgYW5kIGFib3ZlXSwgYWRkIHNvbWUgc3R1ZmYgdG8gdGhlIFVSTAoJCQkJ JG9iMUFTR2V0ID0gYXJyYXkoJ3JwcCcsJ3doJywnd3cnLCdvYycsJ2FkJywnc2QnLCdlZCcs J2J0cycpOwoJCQkJZm9yZWFjaCgkb2IxQVNHZXQgYXMgJHZhbCkgewoJCQkJCSQkdmFsID0g KCFlbXB0eSgkX0dFVFskdmFsXSkpID8gIiZhbXA7JHZhbD0iLnVybGVuY29kZSgkX0dFVFsk dmFsXSkgOiAnJzsKCQkJCX0KCQkJCSRhZGRUb1VSTCAuPSAiJmFtcDtxPSIudXJsZW5jb2Rl KCRxKS4kcnBwLiR3aC4kd3cuJG9jLiRhZC4kc2QuJGVkLiRidHM7CgkJCQl1bnNldCgkb2Ix QVNHZXQsJHJwcCwkd2gsJHd3LCRvYywkYWQsJHNkLCRlZCwkYnRzKTsKCQkJfWVsc2VpZigk cSl7CgkJCQkkYWRkVG9VUkwgLj0gIiZhbXA7cT0iLnVybGVuY29kZSgkcSk7CgkJCX0KCgkJ CWlmKCRudW1iZXJPZlRhYnM+JG1heGltdW10YWJzKXsKCQkJCSRsb29wU3RhcnQgPSAkcGct Zmxvb3IoJG1heGltdW10YWJzLzIpOwoJCQkJJGxvb3BFbmQgPSAkbG9vcFN0YXJ0KyRtYXhp bXVtdGFiczsKCQkJCWlmKCRsb29wU3RhcnQ8MSl7CgkJCQkJJGxvb3BTdGFydCA9IDE7CgkJ CQkJJGxvb3BFbmQgPSAkbWF4aW11bXRhYnMrMTsKCQkJCX0KCQkJCWlmKCRsb29wRW5kPiRu dW1iZXJPZlRhYnMpewoJCQkJCSRsb29wRW5kID0gJG51bWJlck9mVGFicysxOwoJCQkJCSRs b29wU3RhcnQgPSAkbG9vcEVuZCAtICRtYXhpbXVtdGFiczsKCQkJCQlpZigkbG9vcFN0YXJ0 PDEpICRsb29wU3RhcnQgPSAxOwoJCQkJfQoJCQl9ZWxzZXsKCQkJCSRsb29wU3RhcnQgPSAx OwoJCQkJJGxvb3BFbmQgPSAkbWF4aW11bXRhYnMrMTsKCQkJfQoJCQlpZigkbG9vcEVuZD4k bnVtYmVyT2ZUYWJzKXsKCQkJCSRsb29wRW5kID0gJG51bWJlck9mVGFicysxOwoJCQl9CgkJ CSRvdXQ9YXJyYXkoKTsKCQkJaWYoJHBnPjEpewoJCQkJJG91dFtdID0gKCRvdXRwdXRsYXN0 Zmlyc3QpID8gIjxsaSBjbGFzcz0nJGxpY2xhc3MnPjxhIGhyZWY9Jz9wZz0xJGFkZFRvVVJM JyB0aXRsZT0nIi4kZmlyc3R0ZXh0dGl0bGUuIic+Ii4kZmlyc3R0ZXh0LiI8L2E+PC9saT4i Lm4gOiAiIjsKCQkJCSRvdXRbXSA9ICgkb3V0cHV0bmV4dHByZXZpb3VzKSA/ICI8bGkgY2xh c3M9JyRsaWNsYXNzJz48YSBocmVmPSc/cGc9Ii4oJHBnLTEpLiIkYWRkVG9VUkwnIHRpdGxl PSciLiRwcmV2aW91c3RleHR0aXRsZS4iJz4iLiRwcmV2aW91c3RleHQuIjwvYT48L2xpPiIu biA6ICIiOwoJCQl9ZWxzZXsKCQkJCSRvdXRbXSA9ICgkb3V0cHV0bGFzdGZpcnN0KSA/ICI8 bGkgY2xhc3M9JyRsaWVtcHR5ICRsaWNsYXNzJz4iLiRmaXJzdHRleHQuIjwvbGk+Ii5uIDog IiI7CgkJCQkkb3V0W10gPSAoJG91dHB1dG5leHRwcmV2aW91cykgPyAiPGxpIGNsYXNzPSck bGllbXB0eSAkbGljbGFzcyc+Ii4kcHJldmlvdXN0ZXh0LiI8L2xpPiIubiA6ICIiOwoJCQl9 CgoJCQlpZihpbl9saXN0KCJiZWZvcmUiLCRtb3JldGFic2Rpc3BsYXkpIGFuZCAkbG9vcFN0 YXJ0PjEpewoJCQkJJG91dFtdID0gIjxsaSBjbGFzcz0nJGxpY2xhc3MgJGxpZW1wdHknPiIu JG1vcmV0YWJzdGV4dC4iPC9saT4iOwoJCQl9CgoJCQlmb3IoJGk9JGxvb3BTdGFydDskaTwk bG9vcEVuZDskaSsrKXsKCQkJCWlmKCRpPT0kcGcpewoJCQkJCSRvdXRbXSA9ICI8bGkgY2xh c3M9JyRsaXNlbGVjdGVkICRsaWNsYXNzIjsKCQkJCQkkb3V0W10gPSAoJGxpbmtjdXJyZW50 KSA/ICInPiIgOiAiICRsaWVtcHR5Jz4iOwoJCQkJCSRvdXRbXSA9ICgkbGlua2N1cnJlbnQp ID8gIjxhIGhyZWY9Jz9wZz0iLiRpLiIkYWRkVG9VUkwnIHRpdGxlPSciLiRwYWdldGV4dCA6 ICIiOwoJCQkJCWlmKCRyZXZlcnNlbnVtYmVyb3JkZXIpewoJCQkJCQkkb3V0W10gPSAoJGxp bmtjdXJyZW50KSA/ICIgIi4oJG51bWJlck9mVGFicy0kaSsxKS4iJz4iIDogJyc7CgkJCQkJ CSRvdXRbXSA9ICgkbGlzZWxlY3RlZHRleHQpID8gJGxpc2VsZWN0ZWR0ZXh0IDogKCRudW1i ZXJPZlRhYnMtJGkrMSk7CgkJCQkJfWVsc2V7CgkJCQkJCSRvdXRbXSA9ICgkbGlua2N1cnJl bnQpID8gIiAiLiRpLiInPiIgOiAnJzsKCQkJCQkJJG91dFtdID0gKCRsaXNlbGVjdGVkdGV4 dCkgPyAkbGlzZWxlY3RlZHRleHQgOiAkaTsKCQkJCQl9CgkJCQkJJG91dFtdID0gKCRsaW5r Y3VycmVudCkgPyAiPC9hPiIgOiAiIjsKCQkJCQkkb3V0W10gPSAiPC9saT4iLm47CgkJCQl9 ZWxzZXsKCQkJCQkkb3V0W10gPSAiPGxpIGNsYXNzPSckbGljbGFzcyc+PGEgaHJlZj0nP3Bn PSIuJGkuIiRhZGRUb1VSTCcgdGl0bGU9JyIuJHBhZ2V0ZXh0OwoJCQkJCSRvdXRbXSA9ICgk cmV2ZXJzZW51bWJlcm9yZGVyKSA/ICIgIi4oJG51bWJlck9mVGFicy0kaSsxKS4iJz4iLigk bnVtYmVyT2ZUYWJzLSRpKzEpIDogIiAiLiRpLiInPiIuJGkgOwoJCQkJCSRvdXRbXSA9ICI8 L2E+PC9saT4iLm47CgkJCQl9CgkJCX0KCgkJCWlmKGluX2xpc3QoImFmdGVyIiwkbW9yZXRh YnNkaXNwbGF5KSBhbmQgJGxvb3BFbmQ8PSRudW1iZXJPZlRhYnMpewoJCQkJJG91dFtdID0g IjxsaSBjbGFzcz0nJGxpY2xhc3MgJGxpZW1wdHknPiIuJG1vcmV0YWJzdGV4dC4iPC9saT4i OwoJCQl9CgoJCQlpZigkcGc9PSRudW1iZXJPZlRhYnMpewoJCQkJJG91dFtdID0gKCRvdXRw dXRuZXh0cHJldmlvdXMpID8gIjxsaSBjbGFzcz0nJGxpZW1wdHkgJGxpY2xhc3MnPiIuJG5l eHR0ZXh0LiI8L2xpPiIubiA6ICIiOwoJCQkJJG91dFtdID0gKCRvdXRwdXRsYXN0Zmlyc3Qp ID8gIjxsaSBjbGFzcz0nJGxpZW1wdHkgJGxpY2xhc3MnPiIuJGxhc3R0ZXh0LiI8L2xpPiIu biA6ICIiOwoJCQl9ZWxzZXsKCQkJCSRvdXRbXSA9ICgkb3V0cHV0bmV4dHByZXZpb3VzKSA/ ICI8bGkgY2xhc3M9JyRsaWNsYXNzJz48YSBocmVmPSc/cGc9Ii4oJHBnKzEpLiIkYWRkVG9V UkwnIHRpdGxlPSciLiRuZXh0dGV4dHRpdGxlLiInPiIuJG5leHR0ZXh0LiI8L2E+PC9saT4i Lm4gOiAiIjsKCQkJCSRvdXRbXSA9ICgkb3V0cHV0bGFzdGZpcnN0KSA/ICI8bGkgY2xhc3M9 JyRsaWNsYXNzJz48YSBocmVmPSc/cGc9Ii4kbnVtYmVyT2ZUYWJzLiIkYWRkVG9VUkwnIHRp dGxlPSciLiRsYXN0dGV4dHRpdGxlLiInPiIuJGxhc3R0ZXh0LiI8L2E+PC9saT4iLm4gOiAi IjsKCQkJfQoJCQlyZXR1cm4gKCR3cmFwdGFnKSA/IHRhZygiPHVsIi4kdWxjbGFzcy4kdWxp ZC4iPiIubi5qb2luKCIiLCAkb3V0KS4iPC91bD4iLCR3cmFwdGFnKSA6ICI8dWwiLiR1bGNs YXNzLiR1bGlkLiI+Ii5uLmpvaW4oIiIsICRvdXQpLiI8L3VsPiI7CgkJfWVsc2V7CgkJCXJl dHVybiBmYWxzZTsKCQl9Cgl9ICMgbGV0J3MgZW5kIGl0IGhlcmUgYW5kIG5vdyI7czozOiJt ZDUiO3M6MzI6ImEwZDIwMzA3M2ViMWMzMmMyOWE4YWZiZWI2ODk4ZDE2Ijt9