PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSLzE5OTkvUkVDLWh0bWw0MDEtMTk5OTEyMjQvbG9vc2UuZHRkIj4KPGh0bWw+CjxoZWFkPgo8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IS0tClREIHtmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KQk9EWSB7Zm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2E7IG1hcmdpbi10b3A6IDVwdDsgbWFyZ2luLWxlZnQ6IDBwdDsgbWFyZ2luLXJpZ2h0OiAwcHR9CkgxIHtmb250LXNpemU6IDE2cHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLEFyaWFsLEhlbHZldGljYX0KSDIge2ZvbnQtc2l6ZTogMTRwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhfQpIMyB7Zm9udC1zaXplOiAxMnB0OyBmb250LWZhbWlseTogVmVyZGFuYSxBcmlhbCxIZWx2ZXRpY2F9CkE6bGluaywgQTp2aXNpdGVkLCBBOmFjdGl2ZSB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIH0KLS0+PC9zdHlsZT4KPHRpdGxlPlVwZ3JhZGluZyAxLnggY29kZTwvdGl0bGU+CjwvaGVhZD4KPGJvZHkgYmdjb2xvcj0iIzhiNzc2NSIgdGV4dD0iIzAwMDAwMCIgbGluaz0iIzAwMDAwMCIgdmxpbms9IiMwMDAwMDAiPgo8dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIwIiBhbGlnbj0iY2VudGVyIj48dHI+Cjx0ZCB3aWR0aD0iMTgwIj4KPGEgaHJlZj0iaHR0cDovL3d3dy5nbm9tZS5vcmcvIj48aW1nIHNyYz0ic21hbGxmb290b25seS5naWYiIGFsdD0iR25vbWUgTG9nbyI+PC9hPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0YXR1cyI+PGltZyBzcmM9InczYy5wbmciIGFsdD0iVzNDIExvZ28iPjwvYT48YSBocmVmPSJodHRwOi8vd3d3LnJlZGhhdC5jb20vIj48aW1nIHNyYz0icmVkaGF0LmdpZiIgYWx0PSJSZWQgSGF0IExvZ28iPjwvYT4KPC90ZD4KPHRkPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMCIgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIiBiZ2NvbG9yPSIjZmZmYWNkIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiPgo8aDE+VGhlIFhNTCBDIGxpYnJhcnkgZm9yIEdub21lPC9oMT4KPGgyPlVwZ3JhZGluZyAxLnggY29kZTwvaDI+CjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjwvdGQ+CjwvdHI+PC90YWJsZT4KPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjQiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+PHRyPjx0ZCBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dHI+Cjx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjIwMCIgYmdjb2xvcj0iIzhiNzc2NSI+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iIzAwMDAwMCI+PHRyPjx0ZD4KPHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMyI+Cjx0cj48dGQgY29sc3Bhbj0iMSIgYmdjb2xvcj0iI2VlY2ZhMSIgYWxpZ249ImNlbnRlciI+PGNlbnRlcj48Yj5NYWluIE1lbnU8L2I+PC9jZW50ZXI+PC90ZD48L3RyPgo8dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bCBzdHlsZT0ibWFyZ2luLWxlZnQ6IC0ycHQiPgo8bGk+PGEgaHJlZj0iaW5kZXguaHRtbCI+SG9tZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iaW50cm8uaHRtbCI+SW50cm9kdWN0aW9uPC9hPjwvbGk+CjxsaT48YSBocmVmPSJGQVEuaHRtbCI+RkFRPC9hPjwvbGk+CjxsaT48YSBocmVmPSJkb2NzLmh0bWwiPkRvY3VtZW50YXRpb248L2E+PC9saT4KPGxpPjxhIGhyZWY9ImJ1Z3MuaHRtbCI+UmVwb3J0aW5nIGJ1Z3MgYW5kIGdldHRpbmcgaGVscDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iaGVscC5odG1sIj5Ib3cgdG8gaGVscDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iZG93bmxvYWRzLmh0bWwiPkRvd25sb2FkczwvYT48L2xpPgo8bGk+PGEgaHJlZj0ibmV3cy5odG1sIj5OZXdzPC9hPjwvbGk+CjxsaT48YSBocmVmPSJYTUwuaHRtbCI+WE1MPC9hPjwvbGk+CjxsaT48YSBocmVmPSJYU0xULmh0bWwiPlhTTFQ8L2E+PC9saT4KPGxpPjxhIGhyZWY9ImFyY2hpdGVjdHVyZS5odG1sIj5saWJ4bWwgYXJjaGl0ZWN0dXJlPC9hPjwvbGk+CjxsaT48YSBocmVmPSJ0cmVlLmh0bWwiPlRoZSB0cmVlIG91dHB1dDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iaW50ZXJmYWNlLmh0bWwiPlRoZSBTQVggaW50ZXJmYWNlPC9hPjwvbGk+CjxsaT48YSBocmVmPSJ4bWxkdGQuaHRtbCI+VmFsaWRhdGlvbiAmYW1wOyBEVERzPC9hPjwvbGk+CjxsaT48YSBocmVmPSJ4bWxtZW0uaHRtbCI+TWVtb3J5IE1hbmFnZW1lbnQ8L2E+PC9saT4KPGxpPjxhIGhyZWY9ImVuY29kaW5nLmh0bWwiPkVuY29kaW5ncyBzdXBwb3J0PC9hPjwvbGk+CjxsaT48YSBocmVmPSJ4bWxpby5odG1sIj5JL08gSW50ZXJmYWNlczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iY2F0YWxvZy5odG1sIj5DYXRhbG9nIHN1cHBvcnQ8L2E+PC9saT4KPGxpPjxhIGhyZWY9ImxpYnJhcnkuaHRtbCI+VGhlIHBhcnNlciBpbnRlcmZhY2VzPC9hPjwvbGk+CjxsaT48YSBocmVmPSJlbnRpdGllcy5odG1sIj5FbnRpdGllcyBvciBubyBlbnRpdGllczwvYT48L2xpPgo8bGk+PGEgaHJlZj0ibmFtZXNwYWNlcy5odG1sIj5OYW1lc3BhY2VzPC9hPjwvbGk+CjxsaT48YSBocmVmPSJ1cGdyYWRlLmh0bWwiPlVwZ3JhZGluZyAxLnggY29kZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0idGhyZWFkcy5odG1sIj5UaHJlYWQgc2FmZXR5PC9hPjwvbGk+CjxsaT48YSBocmVmPSJET00uaHRtbCI+RE9NIFByaW5jaXBsZXM8L2E+PC9saT4KPGxpPjxhIGhyZWY9ImV4YW1wbGUuaHRtbCI+QSByZWFsIGV4YW1wbGU8L2E+PC9saT4KPGxpPjxhIGhyZWY9ImNvbnRyaWJzLmh0bWwiPkNvbnRyaWJ1dGlvbnM8L2E+PC9saT4KPGxpPgo8YSBocmVmPSJ4bWwuaHRtbCI+ZmxhdCBwYWdlPC9hPiwgPGEgaHJlZj0ic2l0ZS54c2wiPnN0eWxlc2hlZXQ8L2E+CjwvbGk+CjwvdWw+PC90ZD48L3RyPgo8L3RhYmxlPgo8dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjEiIGNlbGxwYWRkaW5nPSIzIj4KPHRyPjx0ZCBjb2xzcGFuPSIxIiBiZ2NvbG9yPSIjZWVjZmExIiBhbGlnbj0iY2VudGVyIj48Y2VudGVyPjxiPlJlbGF0ZWQgbGlua3M8L2I+PC9jZW50ZXI+PC90ZD48L3RyPgo8dHI+PHRkIGJnY29sb3I9IiNmZmZhY2QiPjx1bCBzdHlsZT0ibWFyZ2luLWxlZnQ6IC0ycHQiPgo8bGk+PGEgaHJlZj0iaHR0cDovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL3htbC8iPk1haWwgYXJjaGl2ZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iaHR0cDovL3htbHNvZnQub3JnL1hTTFQvIj5YU0xUIGxpYnhzbHQ8L2E+PC9saT4KPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MudW5pYm8uaXQvfmNhc2FyaW5pL2dkb21lMi8iPkRPTSBnZG9tZTI8L2E+PC9saT4KPGxpPjxhIGhyZWY9ImZ0cDovL3htbHNvZnQub3JnLyI+RlRQPC9hPjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmZoLWZyYW5rZnVydC5kZS9+aWdvci9wcm9qZWN0cy9saWJ4bWwvIj5XaW5kb3dzIGJpbmFyaWVzPC9hPjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8vZ2FyeXBlbm5pbmd0b24ubmV0L2xpYnhtbDIvIj5Tb2xhcmlzIGJpbmFyaWVzPC9hPjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8vYnVnemlsbGEuZ25vbWUub3JnL2J1Z2xpc3QuY2dpP3Byb2R1Y3Q9bGlieG1sIj5CdWcgVHJhY2tlcjwvYT48L2xpPgo8L3VsPjwvdGQ+PC90cj4KPC90YWJsZT4KPC90ZD48L3RyPjwvdGFibGU+PC90ZD4KPHRkIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjOGI3NzY1Ij48dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiIHdpZHRoPSIxMDAlIj48dHI+PHRkPjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMSIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiMwMDAwMDAiPjx0cj48dGQ+PHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiB3aWR0aD0iMTAwJSI+PHRyPjx0ZCBiZ2NvbG9yPSIjZmZmYWNkIj4KPHA+SW5jb21wYXRpYmxlIGNoYW5nZXM6PC9wPgo8cD5WZXJzaW9uIDIgb2YgbGlieG1sIGlzIHRoZSBmaXJzdCB2ZXJzaW9uIGludHJvZHVjaW5nIHNlcmlvdXMgYmFja3dhcmQKaW5jb21wYXRpYmxlIGNoYW5nZXMuIFRoZSBtYWluIGdvYWxzIHdlcmU6PC9wPgo8dWw+CjxsaT5hIGdlbmVyYWwgY2xlYW51cC4gQSBudW1iZXIgb2YgbWlzdGFrZXMgaW5oZXJpdGVkIGZyb20gdGhlIHZlcnkgZWFybHkKICAgIHZlcnNpb25zIGNvdWxkbid0IGJlIGNoYW5nZWQgZHVlIHRvIGNvbXBhdGliaWxpdHkgY29uc3RyYWludHMuIEV4YW1wbGUKICAgIHRoZSAmcXVvdDtjaGlsZHMmcXVvdDsgZWxlbWVudCBpbiB0aGUgbm9kZXMuPC9saT4KPGxpPlVuaWZvcm1pemF0aW9uIG9mIHRoZSB2YXJpb3VzIG5vZGVzLCBhdCBsZWFzdCBmb3IgdGhlaXIgaGVhZGVyIGFuZCBsaW5rCiAgICBwYXJ0cyAoZG9jLCBwYXJlbnQsIGNoaWxkcmVuLCBwcmV2LCBuZXh0KSwgdGhlIGdvYWwgaXMgYSBzaW1wbGVyCiAgICBwcm9ncmFtbWluZyBtb2RlbCBhbmQgc2ltcGxpZnlpbmcgdGhlIHRhc2sgb2YgdGhlIERPTSBpbXBsZW1lbnRvcnMuPC9saT4KPGxpPmJldHRlciBjb25mb3JtYW5jZXMgdG8gdGhlIFhNTCBzcGVjaWZpY2F0aW9uLCBmb3IgZXhhbXBsZSB2ZXJzaW9uIDEueAogICAgaGFkIGFuIGhldXJpc3RpYyB0byB0cnkgdG8gZGV0ZWN0IGlnbm9yYWJsZSB3aGl0ZSBzcGFjZXMuIEFzIGEgcmVzdWx0IHRoZQogICAgU0FYIGV2ZW50IGdlbmVyYXRlZCB3ZXJlIGlnbm9yYWJsZVdoaXRlc3BhY2UoKSB3aGlsZSB0aGUgc3BlYyByZXF1aXJlcwogICAgY2hhcmFjdGVyKCkgaW4gdGhhdCBjYXNlLiBUaGlzIGFsc28gbWVhbiB0aGF0IGEgbnVtYmVyIG9mIERPTSBub2RlCiAgICBjb250YWluaW5nIGJsYW5rIHRleHQgbWF5IHBvcHVsYXRlIHRoZSBET00gdHJlZSB3aGljaCB3ZXJlIG5vdCBwcmVzZW50CiAgICBiZWZvcmUuPC9saT4KPC91bD4KPGgzPkhvdyB0byBmaXggbGlieG1sLTEueCBjb2RlOjwvaDM+CjxwPlNvIGNsaWVudCBjb2RlIG9mIGxpYnhtbCBkZXNpZ25lZCB0byBydW4gd2l0aCB2ZXJzaW9uIDEueCBtYXkgaGF2ZSB0byBiZQpjaGFuZ2VkIHRvIGNvbXBpbGUgYWdhaW5zdCB2ZXJzaW9uIDIueCBvZiBsaWJ4bWwuIEhlcmUgaXMgYSBsaXN0IG9mIGNoYW5nZXMKdGhhdCBJIGhhdmUgY29sbGVjdGVkLCB0aGV5IG1heSBub3QgYmUgc3VmZmljaWVudCwgc28gaW4gY2FzZSB5b3UgZmluZCBvdGhlcgpjaGFuZ2Ugd2hpY2ggYXJlIHJlcXVpcmVkLCA8YSBocmVmPSJtYWlsdG86RGFuaWVsLs9laWxsYXJkdzMub3JnIj5kcm9wIG1lIGEKbWFpbDwvYT46PC9wPgo8b2w+CjxsaT5UaGUgcGFja2FnZSBuYW1lIGhhdmUgY2hhbmdlZCBmcm9tIGxpYnhtbCB0byBsaWJ4bWwyLCB0aGUgbGlicmFyeSBuYW1lCiAgICBpcyBub3cgLWx4bWwyIC4gVGhlcmUgaXMgYSBuZXcgeG1sMi1jb25maWcgc2NyaXB0IHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvCiAgICBzZWxlY3QgdGhlIHJpZ2h0IHBhcmFtZXRlcnMgbGlieG1sMjwvbGk+CjxsaT5Ob2RlIDxzdHJvbmc+Y2hpbGRzPC9zdHJvbmc+IGZpZWxkIGhhcyBiZWVuIHJlbmFtZWQKICAgIDxzdHJvbmc+Y2hpbGRyZW48L3N0cm9uZz4gc28gcy9jaGlsZHMvY2hpbGRyZW4vZyBzaG91bGQgYmUgIGFwcGxpZWQKICAgIChwcm9iYWJsaWxpdHkgb2YgaGF2aW5nICZxdW90O2NoaWxkcyZxdW90OyBhbnl3ZXJlIGVsc2UgaXMgY2xvc2UgdG8gMCs8L2xpPgo8bGk+VGhlIGRvY3VtZW50IGRvbid0IGhhdmUgYW55bW9yZSBhIDxzdHJvbmc+cm9vdDwvc3Ryb25nPiBlbGVtZW50IGl0IGhhcwogICAgYmVlbiByZXBsYWNlZCBieSA8c3Ryb25nPmNoaWxkcmVuPC9zdHJvbmc+IGFuZCB1c3VhbGx5IHlvdSB3aWxsIGdldCBhCiAgICBsaXN0IG9mIGVsZW1lbnQgaGVyZS4gRm9yIGV4YW1wbGUgYSBEdGQgZWxlbWVudCBmb3IgdGhlIGludGVybmFsIHN1YnNldAogICAgYW5kIGl0J3MgZGVjbGFyYXRpb24gbWF5IGJlIGZvdW5kIGluIHRoYXQgbGlzdCwgYXMgd2VsbCBhcyBwcm9jZXNzaW5nCiAgICBpbnN0cnVjdGlvbnMgb3IgY29tbWVudHMgZm91bmQgYmVmb3JlIG9yIGFmdGVyIHRoZSBkb2N1bWVudCByb290IGVsZW1lbnQuCiAgICBVc2UgPHN0cm9uZz54bWxEb2NHZXRSb290RWxlbWVudChkb2MpPC9zdHJvbmc+IHRvIGdldCB0aGUgcm9vdCBlbGVtZW50IG9mCiAgICBhIGRvY3VtZW50LiBBbHRlcm5hdGl2ZWx5IGlmIHlvdSBhcmUgc3VyZSB0byBub3QgcmVmZXJlbmNlIER0ZHMgbm9yIGhhdmUKICAgIFBJcyBvciBjb21tZW50cyBiZWZvcmUgb3IgYWZ0ZXIgdGhlIHJvb3QgZWxlbWVudAogICAgcy8tJmd0O3Jvb3QvLSZndDtjaGlsZHJlbi9nIHdpbGwgcHJvYmFibHkgZG8gaXQuPC9saT4KPGxpPlRoZSB3aGl0ZSBzcGFjZSBpc3N1ZSwgdGhpcyBvbmUgaXMgbW9yZSBjb21wbGV4LCB1bmxlc3Mgc3BlY2lhbCBjYXNlIG9mCiAgICB2YWxpZGF0aW5nIHBhcnNpbmcsIHRoZSBsaW5lIGJyZWFrcyBhbmQgc3BhY2VzIHVzdWFsbHkgdXNlZCBmb3IgaW5kZW50aW5nCiAgICBhbmQgZm9ybWF0dGluZyB0aGUgZG9jdW1lbnQgY29udGVudCBiZWNvbWVzIHNpZ25pZmljYW50LiBTbyB0aGV5IGFyZQogICAgcmVwb3J0ZWQgYnkgU0FYIGFuZCBpZiB5b3VyIHVzaW5nIHRoZSBET00gdHJlZSwgY29ycmVzcG9uZGluZyBub2RlcyBhcmUKICAgIGdlbmVyYXRlZC4gVG9vIGFwcHJvYWNoIGNhbiBiZSB0YWtlbjoKICAgIDxvbD4KPGxpPmxhenkgb25lLCB1c2UgdGhlIGNvbXBhdGliaWxpdHkgY2FsbAogICAgICAgIDxzdHJvbmc+eG1sS2VlcEJsYW5rc0RlZmF1bHQoMCk8L3N0cm9uZz4gYnV0IGJlIGF3YXJlIHRoYXQgeW91IGFyZQogICAgICAgIHJlbHlpbmcgb24gYSBzcGVjaWFsIChhbmQgcG9zc2libHkgYnJva2VuKSBzZXQgb2YgaGV1cmlzdGljcyBvZgogICAgICAgIGxpYnhtbCB0byBkZXRlY3QgaWdub3JhYmxlIGJsYW5rcy4gRG9uJ3QgY29tcGxhaW4gaWYgaXQgYnJlYWtzIG9yCiAgICAgICAgbWFrZSB5b3VyIGFwcGxpY2F0aW9uIG5vdCAxMDAlIGNsZWFuIHcuci50LiB0byBpdCdzIGlucHV0LjwvbGk+CjxsaT50aGUgUmlnaHQgV2F5OiBjaGFuZ2UgeW91IGNvZGUgdG8gYWNjZXB0IHBvc3NpYmx5IHVuc2lnbmlmaWNhbnQKICAgICAgICBibGFua3MgY2hhcmFjdGVycywgb3IgaGF2ZSB5b3VyIHRyZWUgcG9wdWxhdGVkIHdpdGggd2VpcmQgYmxhbmsgdGV4dAogICAgICAgIG5vZGVzLiBZb3UgY2FuIHNwb3QgdGhlbSB1c2luZyB0aGUgY29tb2RpdHkgZnVuY3Rpb24KICAgICAgICA8c3Ryb25nPnhtbElzQmxhbmtOb2RlKG5vZGUpPC9zdHJvbmc+IHJldHVybmluZyAxIGZvciBzdWNoIGJsYW5rCiAgICAgICAgbm9kZXMuPC9saT4KPC9vbD4KPHA+Tm90ZSBhbHNvIHRoYXQgd2l0aCB0aGUgbmV3IGRlZmF1bHQgdGhlIG91dHB1dCBmdW5jdGlvbnMgZG9uJ3QgYWRkIGFueQogICAgZXh0cmEgaW5kZW50YXRpb24gd2hlbiBzYXZpbmcgYSB0cmVlIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gcm91bmQgdHJpcAogICAgKHJlYWQgYW5kIHNhdmUpIHdpdGhvdXQgaW5mbGF0aW5nIHRoZSBkb2N1bWVudCB3aXRoIGV4dHJhIGZvcm1hdHRpbmcKICAgIGNoYXJzLjwvcD4KPC9saT4KPGxpPlRoZSBpbmNsdWRlIHBhdGggaGFzIGNoYW5nZWQgdG8gJHByZWZpeC9saWJ4bWwvIGFuZCB0aGUgaW5jbHVkZXMKICAgIHRoZW1zZWx2ZXMgdXNlcyB0aGlzIG5ldyBwcmVmaXggaW4gaW5jbHVkZXMgaW5zdHJ1Y3Rpb25zLi4uIElmIHlvdSBhcmUKICAgIHVzaW5nIChhcyBleHBlY3RlZCkgdGhlCiAgICA8cHJlPnhtbDItY29uZmlnIC0tY2ZsYWdzPC9wcmU+CjxwPm91dHB1dCB0byBnZW5lcmF0ZSB5b3UgY29tcGlsZSBjb21tYW5kcyB0aGlzIHdpbGwgcHJvYmFibHkgd29yayBvdXQgb2YKICAgIHRoZSBib3g8L3A+CjwvbGk+CjxsaT54bWxEZXRlY3RDaGFyRW5jb2RpbmcgdGFrZXMgYW4gZXh0cmEgYXJndW1lbnQgaW5kaWNhdGluZyB0aGUgbGVuZ2h0IGluCiAgICBieXRlIG9mIHRoZSBoZWFkIG9mIHRoZSBkb2N1bWVudCBhdmFpbGFibGUgZm9yIGNoYXJhY3RlciBkZXRlY3Rpb24uPC9saT4KPC9vbD4KPGgzPkVuc3VyaW5nIGJvdGggbGlieG1sLTEueCBhbmQgbGlieG1sLTIueCBjb21wYXRpYmlsaXR5PC9oMz4KPHA+VHdvIG5ldyB2ZXJzaW9uIG9mIGxpYnhtbCAoMS44LjExKSBhbmQgbGlieG1sMiAoMi4zLjQpIGhhdmUgYmVlbiByZWxlYXNlZAp0byBhbGxvdyBzbW90aCB1cGdyYWRlIG9mIGV4aXN0aW5nIGxpYnhtbCB2MWNvZGUgd2hpbGUgcmV0YWluaW5nCmNvbXBhdGliaWxpdHkuIFRoZXkgb2ZmZXJzIHRoZSBmb2xsb3dpbmc6PC9wPgo8b2w+CjxsaT5zaW1pbGFyIGluY2x1ZGUgbmFtaW5nLCBvbmUgc2hvdWxkIHVzZQogICAgPHN0cm9uZz4jaW5jbHVkZSZsdDtsaWJ4bWwvLi4uJmd0Ozwvc3Ryb25nPiBpbiBib3RoIGNhc2VzLjwvbGk+CjxsaT5zaW1pbGFyIGlkZW50aWZpZXJzIGRlZmluZWQgdmlhIG1hY3JvcyBmb3IgdGhlIGNoaWxkIGFuZCByb290IGZpZWxkczoKICAgIHJlc3BlY3RpdmVseSA8c3Ryb25nPnhtbENoaWxkcmVuTm9kZTwvc3Ryb25nPiBhbmQKICAgIDxzdHJvbmc+eG1sUm9vdE5vZGU8L3N0cm9uZz4KPC9saT4KPGxpPmEgbmV3IG1hY3JvIDxzdHJvbmc+TElCWE1MX1RFU1RfVkVSU0lPTjwvc3Ryb25nPiB3aGljaCBzaG91bGQgYmUKICAgIGluc2VydGVkIG9uY2UgaW4gdGhlIGNsaWVudCBjb2RlPC9saT4KPC9vbD4KPHA+U28gdGhlIHJvYWRtYXAgdG8gdXBncmFkZSB5b3VyIGV4aXN0aW5nIGxpYnhtbCBhcHBsaWNhdGlvbnMgaXMgdGhlCmZvbGxvd2luZzo8L3A+CjxvbD4KPGxpPmluc3RhbGwgdGhlICBsaWJ4bWwtMS44LjggKGFuZCBsaWJ4bWwtZGV2ZWwtMS44LjgpIHBhY2thZ2VzPC9saT4KPGxpPmZpbmQgYWxsIG9jY3VyZW5jZXMgd2hlcmUgdGhlIHhtbERvYyA8c3Ryb25nPnJvb3Q8L3N0cm9uZz4gZmllbGQgaXMKICAgIHVzZWQgYW5kIGNoYW5nZSBpdCB0byA8c3Ryb25nPnhtbFJvb3ROb2RlPC9zdHJvbmc+CjwvbGk+CjxsaT5zaW1pbGFyeSBmaW5kIGFsbCBvY2N1cmVuY2VzIHdoZXJlIHRoZSB4bWxOb2RlIDxzdHJvbmc+Y2hpbGRzPC9zdHJvbmc+CiAgICBmaWVsZCBpcyB1c2VkIGFuZCBjaGFuZ2UgaXQgdG8gPHN0cm9uZz54bWxDaGlsZHJlbk5vZGU8L3N0cm9uZz4KPC9saT4KPGxpPmFkZCBhIDxzdHJvbmc+TElCWE1MX1RFU1RfVkVSU0lPTjwvc3Ryb25nPiBtYWNybyBzb21ld2hlcmUgaW4geW91cgogICAgPHN0cm9uZz5tYWluKCk8L3N0cm9uZz4gb3IgaW4gdGhlIGxpYnJhcnkgaW5pdCBlbnRyeSBwb2ludDwvbGk+CjxsaT5SZWNvbXBpbGUsIGNoZWNrIGNvbXBhdGliaWxpdHksIGl0IHNob3VsZCBzdGlsbCB3b3JrPC9saT4KPGxpPkNoYW5nZSB5b3VyIGNvbmZpZ3VyZSBzY3JpcHQgdG8gbG9vayBmaXJzdCBmb3IgeG1sMi1jb25maWcgYW5kIGZhbGxiYWNrCiAgICB1c2luZyB4bWwtY29uZmlnIC4gVXNlIHRoZSAtLWNmbGFncyBhbmQgLS1saWJzIG91cHR1dCBvZiB0aGUgY29tbWFuZCBhcwogICAgdGhlIEluY2x1ZGUgYW5kIExpbmtpbmcgcGFyYW1ldGVycyBuZWVkZWQgdG8gdXNlIGxpYnhtbC48L2xpPgo8bGk+aW5zdGFsbCBsaWJ4bWwyLTIuMy54IGFuZCAgbGlieG1sMi1kZXZlbC0yLjMueCAobGlieG1sLTEuOC55IGFuZAogICAgbGlieG1sLWRldmVsLTEuOC55IGNhbiBiZSBrZXB0IHNpbXVsdGFuZW91c2x5KTwvbGk+CjxsaT5yZW1vdmUgeW91ciBjb25maWcuY2FjaGUsIHJlbGF1bmNoIHlvdXIgY29uZmlndXJhdGlvbiBtZWNoYW5pc20sIGFuZAogICAgcmVjb21waWxlLCBpZiBzdGVwcyAyIGFuZCAzIHdlcmUgZG9uZSByaWdodCBpdCBzaG91bGQgY29tcGlsZSBhcy1pczwvbGk+CjxsaT5UZXN0IHRoYXQgeW91ciBhcHBsaWNhdGlvbiBpcyBzdGlsbCBydW5uaW5nIGNvcnJlY3RseSwgaWYgbm90IHRoaXMgbWF5CiAgICBiZSBkdWUgdG8gZXh0cmEgZW1wdHkgbm9kZXMgZHVlIHRvIGZvcm1hdGluZyBzcGFjZXMgYmVpbmcga2VwdCBpbiBsaWJ4bWwyCiAgICBjb250cmFyeSB0byBsaWJ4bWwxLCBpbiB0aGF0IGNhc2UgaW5zZXJ0IHhtbEtlZXBCbGFua3NEZWZhdWx0KDEpIGluIHlvdXIKICAgIGNvZGUgYmVmb3JlIGNhbGxpbmcgdGhlIHBhcnNlciAobmV4dCB0bwogICAgPHN0cm9uZz5MSUJYTUxfVEVTVF9WRVJTSU9OPC9zdHJvbmc+IGlzIGEgZmluZSBwbGFjZSkuPC9saT4KPC9vbD4KPHA+Rm9sbG93aW5nIHRob3NlIHN0ZXBzIHNob3VsZCB3b3JrLiBJdCB3b3JrZWQgZm9yIHNvbWUgb2YgbXkgb3duIGNvZGUuPC9wPgo8cD5MZXQgbWUgcHV0IHNvbWUgZW1waGFzaXMgb24gdGhlIGZhY3QgdGhhdCB0aGVyZSBpcyBmYXIgbW9yZSBjaGFuZ2VzIGZyb20KbGlieG1sIDEueCB0byAyLnggdGhhbiB0aGUgb25lcyB5b3UgbWF5IGhhdmUgdG8gcGF0Y2ggZm9yLiBUaGUgb3ZlcmFsbCBjb2RlCmhhcyBiZWVuIGNvbnNpZGVyYWJseSBjbGVhbmVkIHVwIGFuZCB0aGUgY29uZm9ybWFuY2UgdG8gdGhlIFhNTCBzcGVjaWZpY2F0aW9uCmhhcyBiZWVuIGRyYXN0aWNhbGx5IGltcHJvdmVkIHRvby4gRG9uJ3QgdGFrZSB0aG9zZSBjaGFuZ2VzIGFzIGFuIGV4Y3VzZSB0bwpub3QgdXBncmFkZSwgaXQgbWF5IGNvc3QgYSBsb3Qgb24gdGhlIGxvbmcgdGVybSAuLi48L3A+CjxwPjxhIGhyZWY9Im1haWx0bzpkYW5pZWxAdmVpbGxhcmQuY29tIj5EYW5pZWwgVmVpbGxhcmQ8L2E+PC9wPgo8L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48L3RkPgo8L3RyPjwvdGFibGU+PC90ZD48L3RyPjwvdGFibGU+CjwvYm9keT4KPC9odG1sPgo=