ZGlmZiAtLWdpdCBhL21haW4uaHRtbCBiL21haW4uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzU4NTc4MC4uMDAwMDAwMAotLS0gYS9tYWluLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLTxodG1sPgotICAgPGhlYWQ+Ci0gICAgICA8bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSI1OyB1cmw9aW5kZXgucGhwIiAvPgotICAgPC9oZWFkPgotICAgPGJvZHk+Ci0gICAgICA8YSBocmVmPSJpbmRleC5waHAiPlRoaXMgcGFnZSBoYXMgbW92ZWQuIFBsZWFzZSB1cGRhdGUgeW91ciBsaW5rcyBhbmQgYm9va21hcmtzLjwvYT4KLSAgIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9uYXYuaHRtbCBiL25hdi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5Y2IzNzI0Li4wMDAwMDAwCi0tLSBhL25hdi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWwgcHVibGljICItLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvL2VuIj4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KLTx0aXRsZT5FY2xpcHNlIFRlY2hub2xvZ3kgbmF2aWdhdG9yPC90aXRsZT4KLTxiYXNlIHRhcmdldD0ibWFpbiI+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL25hdl9zdHlsZS5jc3MiIHR5cGU9InRleHQvY3NzIj4KLTwvaGVhZD4KLTxib2R5IHRleHQ9IiMwMDAwMDAiIGJnY29sb3I9IiM2Njk5Q0MiIGxpbms9IiNGRkZGQ0MiIHZsaW5rPSIjNTUxQThCIiBhbGluaz0iI0ZGMDAwMCI+Ci08dGFibGUgQk9SREVSPTAgQ0VMTFNQQUNJTkc9MCBDRUxMUEFERElORz0wIENPTFM9MSBXSURUSD0iMTAwJSIgQkdDT0xPUj0iIzkwQzhGRiIgaGVpZ2h0PSI2MyIgPgotICA8dHI+IAotICAgIDx0ZCBWQUxJR049Q0VOVEVSIEhFSUdIVD0iMjEiIEJHQ09MT1I9IiMwMDgwQzAiPiZuYnNwOzxhIGhyZWY9Ii4uL3RlY2hub2xvZ3kvaW5kZXguaHRtbCIgdGFyZ2V0PSJfdG9wIiBjbGFzcz0ibmF2aGVhZCI+ZWNsaXBzZSAKLSAgICAgIHRlY2hub2xvZ3k8L2E+PC90ZD4KLSAgPC90cj4KLSAgCi0gIDx0ciB2YWxpZ249Q0VOVEVSPiAKLSAgICA8dGQgdmFsaWduPUNFTlRFUiBoZWlnaHQ9IjIxIj4gCi0gICAgICA8cD4mbmJzcDsgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9wcm9wb3NhbHMvIiBjbGFzcz0ibmF2IiB0YXJnZXQ9Il90b3AiPlByb3Bvc2FsczwvYT48L3A+Ci0gICAgPC90ZD4KLSAgPC90cj4KLSAgPHRyPiAKLSAgICA8dGQgQkdDT0xPUj0iI0NGRkZGRiI+PGltZyBTUkM9Ii4uL3Byb2plY3RzL2ltYWdlcy9jLmdpZiIgaGVpZ2h0PTEgd2lkdGg9MT48L3RkPgotICA8L3RyPgotICAgIDx0ciB2YWxpZ249Q0VOVEVSPiAKLSAgICA8dGQgdmFsaWduPUNFTlRFUiBoZWlnaHQ9IjIxIj4gCi0gICAgICA8cD4mbmJzcDsgPGEgaHJlZj0icmVzZWFyY2guaHRtbCIgY2xhc3M9Im5hdiI+UmVzZWFyY2ggJm5ic3A7Jm5ic3A7Q29tbXVuaXR5PC9hPjwvcD4KLSAgICA8L3RkPgotICA8L3RyPgotICA8dHI+IAotICAgIDx0ZCBCR0NPTE9SPSIjQ0ZGRkZGIj48aW1nIFNSQz0iLi4vcHJvamVjdHMvaW1hZ2VzL2MuZ2lmIiBoZWlnaHQ9MSB3aWR0aD0xPjwvdGQ+Ci0gIDwvdHI+Ci08L3RhYmxlPgotPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL25ldy1yZXNlYXJjaC1jaGFydGVyLmh0bWwgYi9uZXctcmVzZWFyY2gtY2hhcnRlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYjYyNDQ5Li4wMDAwMDAwCi0tLSBhL25ldy1yZXNlYXJjaC1jaGFydGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDcgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPkVjbGlwc2UgU3RhbmRhcmQgVG9wLUxldmVsIENoYXJ0ZXIgdjEuMDwvdGl0bGU+Ci08bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIKLWh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZGVmYXVsdF9zdHlsZS5jc3MiPgotPHRpdGxlPkVjbGlwc2UgUmVzZWFyY2ggUHJvamVjdCBUb3AtTGV2ZWw8L3RpdGxlPgotPC9oZWFkPgotPGJvZHkgdGV4dD0iIzAwMDAwMCIgYmdjb2xvcj0iI2ZmZmZmZiIgbGluaz0iIzAwMDBFRSIgdmxpbms9IgotIzU1MUE4QiIgYWxpbms9IiNmZjAwMDAiPgotCi08dGFibGUgY2VsbHNwYWNpbmc9IjUiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIj4KLQotPHRib2R5PgotPHRyPgotPHRkIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCIgYmdjb2xvcj0iIzAwODBDMCIgY29sc3Bhbj0iMyI+Ci08Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTpBcmlhbDsKLW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjp3aGl0ZTttc28tYW5zaS1sYW5ndWFnZTpFTi1VUzsKLW1zby1mYXJlYXN0LWxhbmd1YWdlOktPO21zby1iaWRpLWxhbmd1YWdlOkFSLVNBIj5UaGUgRWNsaXBzZSBSZXNlYXJjaCBQcm9qZWN0IJYKLVRvcC1MZXZlbCBQcm9qZWN0IENoYXJ0ZXIgliBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uPC9zcGFuPjwvYj48L3RkPgotPC90cj4KLQotPHRyPgotPHRkIGNvbHNwYW49IjMiPgotPHA+PGI+T3ZlcnZpZXc8YnI+Ci08L2I+VGhlIEVjbGlwc2UgUmVzZWFyY2ggVG9wIExldmVsIFByb2plY3QgKHRoZSAmcXVvdDtFY2xpcHNlIFJlc2VhcmNoCi1Qcm9qZWN0JnF1b3Q7KSBpcyBhbiBvcGVuIHNvdXJjZSBzb2Z0d2FyZSByZXNlYXJjaCBwcm9qZWN0LCB3aGljaCBlbmNhcHN1bGF0ZXMKLXR3byByZWxhdGVkIGFjdGl2aXR5IHN0cmVhbXMsIGVhY2ggb2Ygd2hpY2ggaXMgYmFzZWQgb24gb3IgdXNlcyB0aGUgRWNsaXBzZQotUGxhdGZvcm0gYW5kL29yIGNvZGUgZnJvbSBvdGhlciBFY2xpcHNlIFRvcCBMaW5lIFByb2plY3RzOiZuYnNwOzwvcD4KLTxvbD4KLSAgPGxpPgotICAgIDxwPnJlc2VhcmNoIHByb2plY3RzIHNwb25zb3JlZCBieSB1bml2ZXJzaXRpZXMsIHB1YmxpYyBhbmQgcHJpdmF0ZSByZXNlYXJjaAotICAgIGluc3RpdHV0ZXMsIGFuZCBvdGhlciBleHBsb3JhdG9yeSBpbnZlc3RpZ2F0aW9ucyAoJnF1b3Q7UmVzZWFyY2gKLSAgICBTdHJlYW0mcXVvdDspOyZuYnNwOzwvcD4KLSAgPC9saT4KLSAgPGxpPgotICAgIDxwPmRldmVsb3BtZW50IG9mIGVkdWNhdGlvbmFsIG1hdGVyaWFscywgdGVhY2hpbmcgYWlkcyBhbmQgY291cnNld2FyZQotICAgICgmcXVvdDtFZHVjYXRpb24gU3RyZWFtJnF1b3Q7KTwvcD4KLSAgPC9saT4KLTwvb2w+Ci08cD48Yj5NaXNzaW9uPC9iPjxicj4KLVRoZSBtaXNzaW9uIG9mIHRoZSBFY2xpcHNlIFJlc2VhcmNoIFByb2plY3QgaXMgdG8gZm9zdGVyIGdyZWF0ZXIgY29tbXVuaXR5Ci1hd2FyZW5lc3MgYW5kIHVuZGVyc3RhbmRpbmcgb2YgRWNsaXBzZSAoRWR1Y2F0aW9uIFN0cmVhbSksIGFuZCB0byBlbmNvdXJhZ2UgdGhlCi11c2Ugb2YgRWNsaXBzZSBzb2Z0d2FyZSBhcyBhIHBsYXRmb3JtIGZvciByZXNlYXJjaCwgZXNwZWNpYWxseSBpbiBkb21haW5zIHN1Y2gKLWFzIHByb2dyYW1taW5nIGxhbmd1YWdlcywgdG9vbHMsIGFuZCBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMgdGhhdCBhcmUgcmVsZXZhbnQKLXRvIG90aGVyIEVjbGlwc2UgVG9wIExpbmUgUHJvamVjdHMgKFJlc2VhcmNoIFN0cmVhbSkuIEJ5IHNvIGRvaW5nLCB0aGUgRWNsaXBzZQotUmVzZWFyY2ggUHJvamVjdCB3aWxsIGNyZWF0ZSBvcHBvcnR1bml0aWVzIGZvciByZXNlYXJjaGVycywgYWNhZGVtaWNzLCBhbmQKLWVkdWNhdG9ycyB0byBwbGF5IGEgc2lnbmlmaWNhbnQgcm9sZSB3aXRoaW4gdGhlIEVjbGlwc2UgY29tbXVuaXR5LjwvcD4KLTxwPjxiPlNjb3BlPC9iPjxicj4KLVRoZSBzY29wZSBvZiB0aGUgRWNsaXBzZSBSZXNlYXJjaCBQcm9qZWN0IHdpbGwgZW5jb21wYXNzIGEgd2lkZSB2YXJpZXR5IG9mIHNtYWxsCi1wcm9qZWN0cywgcmF0aGVyIHRoYW4gYSBmZXcgbGFyZ2Ugb25lcy4gV2hpbGUgYW50aWNpcGF0aW5nIGVub3Jtb3VzIGRpdmVyc2l0eSBpbgotdGhlIGNvbnRlbnQgb2YgdGhlc2UgYWN0aXZpdGllcywgZnJvbSBhIHByb2Nlc3Mtb3JpZW50ZWQgdmlld3BvaW50IHRoZXkgd2lsbCBhbGwKLXNoYXJlIGltcG9ydGFudCBjb21tb24gY2hhcmFjdGVyaXN0aWNzLCB3aGljaCBhcmd1ZXMgZm9yIGEgY29tbW9uIGFwcHJvYWNoIHRvCi1tYW5hZ2VtZW50OjwvcD4KLTx1bD4KLSAgPGxpPkZvY3VzIG9uIHByZS1jb21wZXRpdGl2ZSBkZXZlbG9wbWVudCBhbmQgcmVzZWFyY2g8L2xpPgotICA8bGk+VXNlIG9mIGluZm9ybWFsIGRldmVsb3BtZW50IHByb2Nlc3NlczwvbGk+Ci0gIDxsaT5GbHVpZCBwcm9qZWN0IHRyYWNraW5nIGR1ZSB0byBmcmVxdWVudCBwbGFuIGNoYW5nZXM8L2xpPgotICA8bGk+RmxleGlibGUgbWlsZXN0b25lcyB3aGljaCBhZGFwdCBiYXNlZCBvbiBwYXJ0aWFsIHJlc3VsdHM8L2xpPgotICA8bGk+U21hbGwgdGVhbXM8L2xpPgotICA8bGk+UmVzb3VyY2UgY29tbWl0bWVudHMgdGVudGF0aXZlLCBkdWUgdG8gdm9sdW50ZWVyIGxhYm9yIG9yIGxhY2sgb2Ygc3BvbnNvcgotICAgIGZ1bmRpbmc8L2xpPgotICA8bGk+RGV2ZWxvcG1lbnQgb2Z0ZW4gY3Jvc3MtY3V0cyB0aGUgc2NvcGUgb2Ygc2V2ZXJhbCBvdGhlciBFY2xpcHNlIEZvdW5kYXRpb24KLSAgICBQcm9qZWN0czwvbGk+Ci0gIDxsaT5MaW1pdGVkIGxpZmVzcGFuIGR1ZSB0byBpbnRlbnQgdG8gZXhwbG9yZSBhbmQgdmFsaWRhdGUgYW4gaWRlYSwgdGhlbgotICAgIGdyYWR1YXRlIG9yIGRpc2JhbmQ8L2xpPgotPC91bD4KLTxwPlRoZSBFY2xpcHNlIFJlc2VhcmNoIFByb2plY3Qgc2VydmVzIGFzIGEgc2luZ2xlIHBvaW50IG9mIGZvY3VzIGZvciBzdWNoCi10ZWFtcywgYW5kIHByb3ZpZGVzIHRoZW0gd2l0aCBhIGhvbWUgd2l0aGluIHRoZSBFY2xpcHNlIGNvbW11bml0eSwgdG8gZW5jb3VyYWdlCi1jb21tdW5pY2F0aW9uLCBhbmQgd2hlcmUgYXBwcm9wcmlhdGUsIGNvbGxhYm9yYXRpb24gYW5kIGNvb3JkaW5hdGlvbi4gUHJvdmlkaW5nCi1jb21tb24gbWFuYWdlbWVudCBmb3IgdGhlc2UgUHJvamVjdHMgZmFjaWxpdGF0ZXMgbWF4aW11bSBzaGFyaW5nIGFuZCBjcmVhdGlvbiBvZgotY29tbW9uIGNvbXBvbmVudHMsIGFuZCBhdm9pZHMgcmVkdW5kYW50IGVmZm9ydHMuIEluIG1hbnkgY2FzZXMgc3VjY2Vzc2Z1bAotUmVzZWFyY2ggUHJvamVjdHMgd2lsbCBldm9sdmUgaW50byBpbmN1YmF0b3JzIGluIEVjbGlwc2UgVGVjaG5vbG9neSBQcm9qZWN0LiA8L3A+Ci08cD5UaGUgRWR1Y2F0aW9uIFN0cmVhbSBwbGF5cyBhIHZpdGFsIHJvbGUgaW4gcHJvbW90aW5nIHRoZSB1c2Ugb2YgdGhlIEVjbGlwc2UKLVBsYXRmb3JtLiBCeSBtYWtpbmcgaGlnaCBxdWFsaXR5IGVkdWNhdGlvbmFsIG1hdGVyaWFscyBmcmVlbHkgYXZhaWxhYmxlLCB3ZSBib3RoCi1lbmFibGUgc2VsZi1lZHVjYXRpb24gYnkgaW5kaXZpZHVhbCB1c2VycywgYW5kIGZhY2lsaXRhdGUgdGhlIGluY29ycG9yYXRpb24gb2YKLUVjbGlwc2UtcmVsYXRlZCBtYXRlcmlhbHMgaW50byB1bml2ZXJzaXR5IGNvdXJzZXMgYW5kIGNvbW1lcmNpYWwgZWR1Y2F0aW9uYWwKLW9mZmVyaW5ncy48L3A+Ci08cD48Yj5PdGhlciBUZXJtczxicj4KLTwvYj5UaGlzIENoYXJ0ZXIgaW5oZXJpdHMgYWxsIHRlcm1zIG5vdCBvdGhlcndpc2UgZGVmaW5lZCBoZXJlaW4gZnJvbSB0aGUgJnF1b3Q7PGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vcmcvcHJvY2Vzc2VzL0VjbGlwc2VfU3RhbmRhcmRfVG9wTGV2ZWxfQ2hhcnRlcl92MS4wLmh0bWwiPkVjbGlwc2UKLVN0YW5kYXJkIENoYXJ0ZXIgdjEuMDwvYT4mcXVvdDsuIFRoaXMgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc2VjdGlvbnMKLW9uIHRoZSBQcm9ncmFtIE1hbmFnZW1lbnQgQ29tbWl0dGVlLCBSb2xlcywgUHJvamVjdCBPcmdhbml6YXRpb24sIFRoZQotRGV2ZWxvcG1lbnQgUHJvY2VzcywgYW5kIExpY2Vuc2luZy48L3A+Ci08cD48Yj5Qcm9qZWN0IE1hbmFnZW1lbnQgQ29tbWl0dGVlIDxicj4KLTwvYj5DaGFuZ2VzIGZyb20gdGhlICZxdW90OzxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb3JnL3Byb2Nlc3Nlcy9FY2xpcHNlX1N0YW5kYXJkX1RvcExldmVsX0NoYXJ0ZXJfdjEuMC5odG1sIj5FY2xpcHNlCi1TdGFuZGFyZCBDaGFydGVyIHYxLjA8L2E+JnF1b3Q7IGFyZTo8L3A+Ci08dWw+Ci0gIDxsaT5Qcm92aWRpbmcgdGhlIGxlYWRlcnNoaXAgYW5kIHZpc2lvbiB0byBndWlkZSB0aGUgUHJvamVjdCdzIG92ZXJhbGwKLSAgICBkaXJlY3Rpb24gaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSA8c3RyaWtlPkVjbGlwc2UgRm91bmRhdGlvbgotICAgIEFyY2hpdGVjdHVyYWwgUm9hZG1hcDwvc3RyaWtlPiBFY2xpcHNlIEZvdW5kYXRpb24ncyBnb2Fscy4gPC9saT4KLTwvdWw+Ci08cD48Yj5UaGUgRGV2ZWxvcG1lbnQgUHJvY2VzcyA8YnI+Ci08L2I+Q2hhbmdlcyBmcm9tIHRoZSAmcXVvdDs8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9wcm9jZXNzZXMvRWNsaXBzZV9TdGFuZGFyZF9Ub3BMZXZlbF9DaGFydGVyX3YxLjAuaHRtbCI+RWNsaXBzZQotU3RhbmRhcmQgQ2hhcnRlciB2MS4wPC9hPiZxdW90OyBhcmU6IDwvcD4KLTxwPlJlc2VhcmNoIHByb2plY3RzIHR5cGljYWxseSBkbyBub3QgaGF2ZSBhcyB3ZWxsLWRlZmluZWQgZGV2ZWxvcG1lbnQgcGxhbnMgYXMKLXByb2R1Y3QgcHJvamVjdHMgZG8uIEhvd2V2ZXIsIGl0IGlzIHN0aWxsIGltcG9ydGFudCB0aGF0IFByb2plY3RzIHVuZGVyIHRoZQotUmVzZWFyY2ggVG9wLUxldmVsIFByb2plY3QgaGF2ZSBhIGRlZmluZWQgYW5kIHB1YmxpY2x5IGF2YWlsYWJsZSByZWxlYXNlIHBsYW4gc28KLWFzIHRvIGhlbHAgaW50ZXJlc3RlZCBwYXJ0aWVzIHRyYWNrIHRoZSBwcm9ncmVzcyBvZiB0aGUgcmVzZWFyY2guCi08L3RkPgotPC90cj4KLTwvdGJvZHk+Ci08L3RhYmxlPgotCi08L2JvZHk+Ci08L2h0bWw+Ci0KLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgpkaWZmIC0tZ2l0IGEvbmV3LXRlY2hub2xvZ3ktY2hhcnRlci5odG1sIGIvbmV3LXRlY2hub2xvZ3ktY2hhcnRlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYmI3MDFhLi4wMDAwMDAwCi0tLSBhL25ldy10ZWNobm9sb2d5LWNoYXJ0ZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg3ICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5FY2xpcHNlIFRlY2hub2xvZ3kgUHJvamVjdCBUb3AtTGV2ZWwgQ2hhcnRlcjwvdGl0bGU+Ci08bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIKLWh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZGVmYXVsdF9zdHlsZS5jc3MiPgotPHRpdGxlPkVjbGlwc2UgUmVzZWFyY2ggUHJvamVjdCBUb3AtTGV2ZWw8L3RpdGxlPgotPC9oZWFkPgotPGJvZHkgdGV4dD0iIzAwMDAwMCIgYmdjb2xvcj0iI2ZmZmZmZiIgbGluaz0iIzAwMDBFRSIgdmxpbms9IgotIzU1MUE4QiIgYWxpbms9IiNmZjAwMDAiPgotCi08dGFibGUgY2VsbHNwYWNpbmc9IjUiIGNlbGxwYWRkaW5nPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIj4KLQotPHRib2R5PgotPHRyPgotPHRkIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCIgYmdjb2xvcj0iIzAwODBDMCIgY29sc3Bhbj0iMyI+Ci08Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTpBcmlhbDsKLW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjp3aGl0ZTttc28tYW5zaS1sYW5ndWFnZTpFTi1VUzsKLW1zby1mYXJlYXN0LWxhbmd1YWdlOktPO21zby1iaWRpLWxhbmd1YWdlOkFSLVNBIj5UaGUgRWNsaXBzZSBUZWNobm9sb2d5IFByb2plY3QglgotVG9wLUxldmVsIFByb2plY3QgQ2hhcnRlciCWIFRoZSBFY2xpcHNlIEZvdW5kYXRpb248L3NwYW4+PC9iPjwvdGQ+Ci08L3RyPgotCi08dHI+Ci08dGQgY29sc3Bhbj0iMyI+Ci08cD48Yj5PdmVydmlldzxicj4KLTwvYj5UaGUgRWNsaXBzZSBUZWNobm9sb2d5IFRvcCBMZXZlbCBQcm9qZWN0ICh0aGUgJnF1b3Q7RWNsaXBzZSBUZWNobm9sb2d5Ci1Qcm9qZWN0JnF1b3Q7KSBpcyBhbiBvcGVuIHNvdXJjZSBzb2Z0d2FyZSBwcm9qZWN0IGZvciB0aGUgaW5jdWJhdGlvbiBvZgotc21hbGwtc2NhbGUsIGlubm92YXRpdmUgcGxhdGZvcm0gYW5kIHRvb2xzIHByb2plY3RzLjwvcD4KLTxwPjxiPk1pc3Npb248L2I+PGJyPgotVGhlIG1pc3Npb24gb2YgdGhlIEVjbGlwc2UgVGVjaG5vbG9neSBQcm9qZWN0IGlzIHRvIHByb3ZpZGUgYSB0ZW1wb3JhcnkgaG9tZQotd2l0aGluIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gZm9yIHNtYWxsLCBuZXdlciwgZWFybHkgYWRvcHRlci10eXBlIFByb2plY3RzCi13aGljaCBhZGQgbmV3IGNhcGFiaWxpdGllcyB0byB0aGUgRWNsaXBzZSBzb2Z0d2FyZSBiYXNlLiBUaGUgRWNsaXBzZSBUZWNobm9sb2d5Ci1Qcm9qZWN0IGlzIGludGVuZGVkIHRvIHByb3ZpZGUgdGhlIG9wZW4gc291cmNlIGNvbW11bml0eSB3aXRoIGEgbGlnaHRlciB3ZWlnaHQKLWFsdGVybmF0aXZlIHRvIHRoZSBsYXJnZXIgc2NhbGUsIG1vcmUgc3RydWN0dXJlZCBkZXZlbG9wbWVudCBhY3Rpdml0aWVzIGNhcnJpZWQKLW91dCBieSBvdGhlciBQTUNzIHVudGlsIHRoZSBuZXcgcHJvamVjdHMgYXJlIHJlYWR5IHRvIGpvaW4gdGhlaXIgZGVzdGluYXRpb24gUE1DLjwvcD4KLTxwPjxiPlNjb3BlPC9iPjxicj4KLVRoZSBzY29wZSBvZiB0aGUgRWNsaXBzZSBUZWNobm9sb2d5IFByb2plY3Qgd2lsbCBlbmNvbXBhc3MgYSB3aWRlIHZhcmlldHkgb2YKLXNtYWxsIGVhcmx5LXN0YWdlIFByb2plY3RzLCByYXRoZXIgdGhhbiBhIGZldyBsYXJnZSBvbmVzLiBXaGlsZSBhbnRpY2lwYXRpbmcKLWVub3Jtb3VzIGRpdmVyc2l0eSBpbiB0aGUgY29udGVudCBvZiB0aGVzZSBhY3Rpdml0aWVzLCBmcm9tIGEgcHJvY2Vzcy1vcmllbnRlZAotdmlld3BvaW50IHRoZXkgd2lsbCBhbGwgc2hhcmUgaW1wb3J0YW50IGNvbW1vbiBjaGFyYWN0ZXJpc3RpY3MsIHdoaWNoIGFyZ3VlcyBmb3IKLWEgY29tbW9uIG1hbmFnZW1lbnQgZW52ZWxvcGU6PC9wPgotPHVsPgotICA8bGk+VXNlIG9mIGxpZ2h0ZXIgd2VpZ2h0LCBidXQgc3RpbGwgZm9ybWFsIGRldmVsb3BtZW50IHByb2Nlc3NlcyZuYnNwOzwvbGk+Ci0gIDxsaT5GbHVpZCBQcm9qZWN0IHRyYWNraW5nIGR1ZSB0byBmcmVxdWVudCBwbGFuIGNoYW5nZXMmbmJzcDs8L2xpPgotICA8bGk+RmxleGlibGUgbWlsZXN0b25lcyB3aGljaCBhZGFwdCBiYXNlZCBvbiBwYXJ0aWFsIHJlc3VsdHMmbmJzcDs8L2xpPgotICA8bGk+U21hbGwgdGVhbXMsIHJlbGF0aXZlbHkgaW5leHBlcmllbmNlZCBpbiBvcGVuLXNvdXJjZSBzb2Z0d2FyZQotICAgIGRldmVsb3BtZW50Jm5ic3A7PC9saT4KLSAgPGxpPkRlZmluaXRpdmUgcGxhbnMgdG8gbW92ZSB0byBtYXR1cmUgdGhlIHByb2plY3QgYW5kIHRoZW4gbW92ZSBpdCB0byB0aGUKLSAgICBhcHByb3ByaWF0ZSBUb3AtTGV2ZWwgUHJvamVjdC48L2xpPgotPC91bD4KLTxwPlRoZSBFY2xpcHNlIFRlY2hub2xvZ3kgUHJvamVjdCBzZXJ2ZXMgYXMgYSBzaW5nbGUgcG9pbnQgb2YgZm9jdXMgZm9yIHN1Y2gKLXRlYW1zLCBhbmQgcHJvdmlkZXMgdGhlbSB3aXRoIGEgaG9tZSB3aXRoaW4gdGhlIEVjbGlwc2UgY29tbXVuaXR5LCB0byBlbmNvdXJhZ2UKLWNvbW11bmljYXRpb24sIGFuZCB3aGVyZSBhcHByb3ByaWF0ZSwgY29sbGFib3JhdGlvbiBhbmQgY29vcmRpbmF0aW9uLiBQcm92aWRpbmcKLWNvbW1vbiBtYW5hZ2VtZW50IGZvciB0aGVzZSBQcm9qZWN0cyBmYWNpbGl0YXRlcyBtYXhpbXVtIHNoYXJpbmcgYW5kIGNyZWF0aW9uIG9mCi1jb21tb24gY29tcG9uZW50cywgYW5kIGF2b2lkcyByZWR1bmRhbnQgZWZmb3J0cy4gVGhlIGdvYWwgb2Ygc3VjY2Vzc2Z1bCBwcm9qZWN0cwotaXMgdG8gbWlncmF0ZSB0byBvdGhlciBQTUNzLCBlaXRoZXIgYnkgbWVyZ2luZyBpbnRvIGFuIGV4aXN0aW5nIFByb2plY3QsIG9yIGJ5Ci1mb3JtaW5nIHRoZSBiYXNpcyBmb3IgYSBuZXcgb25lLjwvcD4KLTxwPjxiPk90aGVyIFRlcm1zPGJyPgotPC9iPlRoaXMgQ2hhcnRlciBpbmhlcml0cyBhbGwgdGVybXMgbm90IG90aGVyd2lzZSBkZWZpbmVkIGhlcmVpbiBmcm9tIHRoZSAmcXVvdDs8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9wcm9jZXNzZXMvRWNsaXBzZV9TdGFuZGFyZF9Ub3BMZXZlbF9DaGFydGVyX3YxLjAuaHRtbCI+RWNsaXBzZQotU3RhbmRhcmQgQ2hhcnRlciB2MS4wPC9hPiZxdW90Oy4gVGhpcyBpbmNsdWRlcywgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCBzZWN0aW9ucwotb24gdGhlIFByb2dyYW0gTWFuYWdlbWVudCBDb21taXR0ZWUsIFJvbGVzLCBQcm9qZWN0IE9yZ2FuaXphdGlvbiwgVGhlCi1EZXZlbG9wbWVudCBQcm9jZXNzLCBhbmQgTGljZW5zaW5nLjwvcD4KLTxwPjxiPlByb2plY3QgTWFuYWdlbWVudCBDb21taXR0ZWUgPGJyPgotPC9iPkNoYW5nZXMgZnJvbSB0aGUgJnF1b3Q7PGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vcmcvcHJvY2Vzc2VzL0VjbGlwc2VfU3RhbmRhcmRfVG9wTGV2ZWxfQ2hhcnRlcl92MS4wLmh0bWwiPkVjbGlwc2UKLVN0YW5kYXJkIENoYXJ0ZXIgdjEuMDwvYT4mcXVvdDsgYXJlOjwvcD4KLTx1bD4KLSAgPGxpPlByb3ZpZGluZyB0aGUgbGVhZGVyc2hpcCBhbmQgdmlzaW9uIHRvIGd1aWRlIHRoZSBQcm9qZWN0J3Mgb3ZlcmFsbAotICAgIGRpcmVjdGlvbiBpbiBhIG1hbm5lciBjb25zaXN0ZW50IHdpdGggdGhlIDxzdHJpa2U+RWNsaXBzZSBGb3VuZGF0aW9uCi0gICAgQXJjaGl0ZWN0dXJhbCBSb2FkbWFwPC9zdHJpa2U+IEVjbGlwc2UgRm91bmRhdGlvbidzIGdvYWxzLiA8L2xpPgotPC91bD4KLTxwPjxiPlByb2plY3RzIDxicj4KLTwvYj5DaGFuZ2VzIGZyb20gdGhlICZxdW90OzxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb3JnL3Byb2Nlc3Nlcy9FY2xpcHNlX1N0YW5kYXJkX1RvcExldmVsX0NoYXJ0ZXJfdjEuMC5odG1sIj5FY2xpcHNlCi1TdGFuZGFyZCBDaGFydGVyIHYxLjA8L2E+JnF1b3Q7IGFyZTogPC9wPgotPHA+VGhlIHdvcmsgdW5kZXIgdGhpcyBUb3AgTGV2ZWwgUHJvamVjdCBpcyBmdXJ0aGVyIG9yZ2FuaXplZCBpbnRvIFByb2plY3RzLiBOZXcKLVByb2plY3RzIG11c3QgYmUgY29uc2lzdGVudCB3aXRoIHRoZSBtaXNzaW9uIG9mIHRoZSBUb3AgTGV2ZWwgUHJvamVjdCwgPGI+aGF2ZQotYW4gZXhwbGljaXQgcGxhbiBmb3IgcmVhY2hpbmcgdGhlaXIgZGVzdGluYXRpb24gdG9wLWxldmVsIHByb2plY3QsIDwvYj5iZQotcmVjb21tZW5kZWQgYnkgdGhlIFBNQywgYW5kIGNvbmZpcm1lZCBieSB0aGUgRU1PLiBQcm9qZWN0cyBjYW4gYmUgZGlzY29udGludWVkCi1ieSBkZWNpc2lvbiBvZiB0aGUgQm9hcmQuCi08L3RkPgotPC90cj4KLTwvdGJvZHk+Ci08L3RhYmxlPgotCi08L2JvZHk+Ci08L2h0bWw+Ci0KLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgpkaWZmIC0tZ2l0IGEvc3RhbmRhcmQtcHJvamVjdC1uYXYuY2xhc3MucGhwIGIvc3RhbmRhcmQtcHJvamVjdC1uYXYuY2xhc3MucGhwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMWIwNDgyLi4wMDAwMDAwCi0tLSBhL3N0YW5kYXJkLXByb2plY3QtbmF2LmNsYXNzLnBocAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLTw/cGhwCi1jbGFzcyBTdGFuZGFyZFByb2plY3ROYXYgewotCS8vIEFib3V0Ci0JdmFyICRkZXNjcmlwdGlvbjsKLQl2YXIgJHByb2plY3RfcGxhbjsKLQl2YXIgJGxlYWRlcnNoaXA7Ci0JdmFyICRjb21taXR0ZXJzOwotCXZhciAkY29udHJpYnV0b3JzOwotCS8vIERvd25sb2FkcwotCXZhciAkZG93bmxvYWRzOwotCS8vIEdldHRpbmcgU3RhcnRlZAotCXZhciAkZ2V0dGluZ19zdGFydGVkOwotCS8vIERldmVsb3BtZW50Ci0JdmFyICRkZXZlbG9wbWVudF9wbGFuOwotCXZhciAkbWFpbGluZ19saXN0czsKLQl2YXIgJGN2czsKLQl2YXIgJGJ1Z3M7Ci0JCi0JZnVuY3Rpb24gZ2VuZXJhdGVfbmF2KCApIHsKLQkJLy8gbmVlZCB0byB0dXJuIG9mZiB0aGUgc3RhbmRhcmQgZm91ciBpdGVtcyB0byByZXBsYWNlIHdpdGggdGhlc2UKLQkJLy8gbmVlZCB0byBoYXZlIGJsYW5rIFVSTHMgcmVuZGVyIGluIGdyYXkKLQkJJE5hdi0+YWRkQ3VzdG9tTmF2KCJUZXN0IFRlc3QiLCAidGVzdC5odG1sIiwgIiIsIDEpOwotCQllY2hvICJpbiBnZW5lcmF0ZSBuYXYiIC4gJE5hdiAuICJuYXYiOwotCQkkTmF2LT5hZGRDdXN0b21OYXYoIkRlc2NyaXB0aW9uIiwgJGRlc2NyaXB0aW9uLCAiIiwgMSk7Ci0JCQkkTmF2LT5hZGRDdXN0b21OYXYoIlByb2plY3QgUGxhbiIsICRwcm9qZWN0X3BsYW4sICIiLCAyKTsKLQkJCSROYXYtPmFkZEN1c3RvbU5hdigiTGVhZGVyc2hpcCIsICRsZWFkZXJzaGlwLCAiIiwgMik7Ci0JCQkkTmF2LT5hZGRDdXN0b21OYXYoIkNvbW1pdHRlcnMiLCAkY29tbWl0dGVycywgIiIsIDIpOwotCQkJJE5hdi0+YWRkQ3VzdG9tTmF2KCJDb250cmlidXRvcnMiLCAkY29udHJpYnV0b3JzLCAiIiwgMik7Ci0JCSROYXYtPmFkZEN1c3RvbU5hdigiRG93bmxvYWRzIiwgJGRvd25sb2FkcywgIiIsIDEpOwotCQkkTmF2LT5hZGRDdXN0b21OYXYoIkdldHRpbmcgU3RhcnRlZCIsICRnZXR0aW5nX3N0YXJ0ZWQsICIiLCAxKTsKLQkJJE5hdi0+YWRkQ3VzdG9tTmF2KCJEZXZlbG9wbWVudCIsICRkZXZlbG9wbWVudCwgIiIsIDEpOwotCQkJJE5hdi0+YWRkQ3VzdG9tTmF2KCJQcm9qZWN0IFBsYW4iLCAkZGV2ZWxvcG1lbnRfcGxhbiwgIiIsIDIpOwotCQkJJE5hdi0+YWRkQ3VzdG9tTmF2KCJNYWlsaW5nIExpc3RzIiwgJG1haWxpbmdfbGlzdHMsICIiLCAyKTsKLQkJCSROYXYtPmFkZEN1c3RvbU5hdigiQ1ZTIiwgJGN2cywgIiIsIDIpOwotCQkJJE5hdi0+YWRkQ3VzdG9tTmF2KCJCdWdzIiwgJGJ1Z3MsICIiLCAyKTsKLQl9Ci19Ci0KLSROYXYtPmFkZEN1c3RvbU5hdigiVGVzdCBUZXN0IDMiLCAidGVzdC5odG1sIiwgIiIsIDEpOwotPz4KZGlmZiAtLWdpdCBhL3Rlc3QgYi90ZXN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTA5ZmNmLi4wMDAwMDAwCi0tLSBhL3Rlc3QKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1hc2FzYXNhc2FzZGZhc2RmYXNkZmFzZGYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==