PGh0bWw+PCEtLQogICAgIENvcHlyaWdodCAoYykgMjAwNCBUcnVzdGVlcyBvZiBJbmRpYW5hIFVuaXZlcnNpdHkKICAgIAogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KICAgICAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQogIC0tPgo8aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj48dGl0bGU+RnVuY3Rpb24gdGVtcGxhdGUgY2lyY2xlX2dyYXBoX2xheW91dDwvdGl0bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj48dGFibGUgY2VsbHBhZGRpbmc9IjIiIHdpZHRoPSIxMDAlIj48dGQgdmFsaWduPSJ0b3AiPjxpbWcgc3JjPSIuLi8uLi8uLi9ib29zdC5wbmciIGFsdD0iYm9vc3QucG5nICg2ODk3IGJ5dGVzKSIgd2lkdGg9IjI3NyIgaGVpZ2h0PSI4NiI+PC90ZD48dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iLi4vLi4vLi4vaW5kZXguaHRtIj5Ib21lPC9hPjwvdGQ+PHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uLy4uL2xpYnJhcmllcy5odG0iPkxpYnJhcmllczwvYT48L3RkPjx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9wZW9wbGUvcGVvcGxlLmh0bSI+UGVvcGxlPC9hPjwvdGQ+PHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHA6Ly93d3cuYm9vc3Qub3JnL21vcmUvZmFxLmh0bSI+RkFRPC9hPjwvdGQ+PHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Ii4uLy4uLy4uL21vcmUvaW5kZXguaHRtIj5Nb3JlPC9hPjwvdGQ+PC90YWJsZT48aHI+PGRpdiBjbGFzcz0icmVmZW50cnkiIGxhbmc9ImVuIj48YSBuYW1lPSJpZDEwMzU2Mi1iYiI+PC9hPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InJlZm5hbWVkaXYiPjxoMj48aW1nIHNyYz0iZmlncy9weXRob24uZ2lmIiBhbHQ9IihQeXRob24pIi8+PHNwYW4gY2xhc3M9InJlZmVudHJ5dGl0bGUiPkZ1bmN0aW9uIHRlbXBsYXRlIGNpcmNsZV9ncmFwaF9sYXlvdXQ8L3NwYW4+PC9oMj48cD5ib29zdDo6Y2lyY2xlX2dyYXBoX2xheW91dCAmIzgyMTI7IExheW91dCB0aGUgZ3JhcGggd2l0aCB0aGUgdmVydGljZXMgYXQgdGhlIHBvaW50cyBvZiBhIHJlZ3VsYXIgbi1wb2x5Z29uLiA8L3A+PC9kaXY+PGgyIHhtbG5zOnJldj0iaHR0cDovL3d3dy5jcy5ycGkuZWR1L35ncmVnb2QvYm9vc3QvdG9vbHMvZG9jL3JldmlzaW9uIiBjbGFzcz0icmVmc3lub3BzaXNkaXYtdGl0bGUiPlN5bm9wc2lzPC9oMj48ZGl2IHhtbG5zOnJldj0iaHR0cDovL3d3dy5jcy5ycGkuZWR1L35ncmVnb2QvYm9vc3QvdG9vbHMvZG9jL3JldmlzaW9uIiBjbGFzcz0icmVmc3lub3BzaXNkaXYiPjxwcmUgY2xhc3M9InN5bm9wc2lzIj4KPHNwYW4gY2xhc3M9ImJvbGQiPjxiPnRlbXBsYXRlPC9iPjwvc3Bhbj4mbHQ7PHNwYW4gY2xhc3M9ImJvbGQiPjxiPnR5cGVuYW1lPC9iPjwvc3Bhbj4gVmVydGV4TGlzdEdyYXBoLCA8c3BhbiBjbGFzcz0iYm9sZCI+PGI+dHlwZW5hbWU8L2I+PC9zcGFuPiBQb3NpdGlvbk1hcCwgPHNwYW4gY2xhc3M9ImJvbGQiPjxiPnR5cGVuYW1lPC9iPjwvc3Bhbj4gUmFkaXVzJmd0OyAKoKA8c3BhbiBjbGFzcz0idHlwZSI+PHNwYW4gY2xhc3M9ImJvbGQiPjxiPnZvaWQ8L2I+PC9zcGFuPjwvc3Bhbj4gY2lyY2xlX2dyYXBoX2xheW91dCg8c3BhbiBjbGFzcz0iYm9sZCI+PGI+Y29uc3Q8L2I+PC9zcGFuPiBWZXJ0ZXhMaXN0R3JhcGggJmFtcDsgZywgUG9zaXRpb25NYXAgcG9zaXRpb24sIAqgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBSYWRpdXMgcmFkaXVzKTs8L3ByZT48L2Rpdj48ZGl2IGNsYXNzPSJyZWZzZWN0MSIgbGFuZz0iZW4iPjxhIG5hbWU9ImlkODIxNzk0Ij48L2E+PGgyPldoZXJlIERlZmluZWQ8L2gyPjxhIGhyZWY9Ii4uLy4uLy4uL2Jvb3N0L2dyYXBoL2NpcmNsZV9sYXlvdXQuaHBwIj5ib29zdC9ncmFwaC9jaXJjbGVfbGF5b3V0LmhwcDwvYT48aDI+RGVzY3JpcHRpb248L2gyPjxwPlRoZSBkaXN0YW5jZSBmcm9tIHRoZSBjZW50ZXIgb2YgdGhlIHBvbHlnb24gdG8gZWFjaCBwb2ludCBpcyBkZXRlcm1pbmVkIGJ5IHRoZSA8dHQgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij5yYWRpdXM8L3R0PiAgcGFyYW1ldGVyLiBUaGUgPHR0IGNsYXNzPSJjb21wdXRlcm91dHB1dCI+cG9zaXRpb248L3R0PiAgcGFyYW1ldGVyIG11c3QgYmUgYW4gTHZhbHVlIFByb3BlcnR5IE1hcCB3aG9zZSB2YWx1ZSB0eXBlIGlzIGEgY2xhc3MgdHlwZSBjb250YWluaW5nIDx0dCBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPng8L3R0PiAgYW5kIDx0dCBjbGFzcz0iY29tcHV0ZXJvdXRwdXQiPnk8L3R0PiAgbWVtYmVycyB0aGF0IHdpbGwgYmUgc2V0IHRvIHRoZSA8dHQgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij54PC90dD4gIGFuZCA8dHQgY2xhc3M9ImNvbXB1dGVyb3V0cHV0Ij55PC90dD4gIGNvb3JkaW5hdGVzLiAKCiAgICAgICAgICA8aDI+UGFyYW1ldGVyczwvaDI+CklOOiA8dHQ+Y29uc3QgVmVydGV4TGlzdEdyYXBoJmFtcDsgZzwvdHQ+CjxibG9ja3F1b3RlPgogIFRoZSBncmFwaCBvYmplY3Qgb24gd2hpY2ggdGhlIGFsZ29yaXRobSB3aWxsIGJlIGFwcGxpZWQuICBUaGUgdHlwZQogIDx0dD5WZXJ0ZXhMaXN0R3JhcGg8L3R0PiBtdXN0IGJlIGEgbW9kZWwgb2YgPGEKICBocmVmPSJWZXJ0ZXhMaXN0R3JhcGguaHRtbCI+VmVydGV4IExpc3QgR3JhcGg8L2E+Ljxicj4KPGI+UHl0aG9uPC9iPjogVGhlIHBhcmFtZXRlciBpcyBuYW1lZCA8dHQ+Z3JhcGg8L3R0Pi4KPC9ibG9ja3F1b3RlPgoKT1VUOiA8dHQ+UG9zaXRpb25NYXAgcG9zaXRpb248L3R0Pgo8YmxvY2txdW90ZT4KICBUaGlzIHByb3BlcnR5IG1hcCBpcyB1c2VkIHRvIHN0b3JlIHRoZSBwb3NpdGlvbiBvZiBlYWNoIHZlcnRleC4gIFRoZQogIHR5cGUgPHR0PlBvc2l0aW9uTWFwPC90dD4gbXVzdCBiZSBhIG1vZGVsIG9mIDxhCiAgaHJlZj0iLi4vLi4vcHJvcGVydHlfbWFwL2RvYy9Xcml0YWJsZVByb3BlcnR5TWFwLmh0bWwiPldyaXRhYmxlIFByb3BlcnR5CiAgTWFwPC9hPiwgd2l0aCB0aGUgZ3JhcGgncyBlZGdlIGRlc2NyaXB0b3IgdHlwZSBhcyBpdHMga2V5IHR5cGUuIFRoZQogIHZhbHVlIHR5cGUgb2YgdGhpcyBwcm9wZXJ0eSBtYXAgc2hvdWxkIGJlIGFzc2lnbmFibGUgZnJvbSB0aGUKICB0eXBlIDx0dD5SYWRpdXM8L3R0Pi4gPGJyPgoKICA8Yj5QeXRob248L2I+OiBUaGUgcG9zaXRpb24gbWFwIG11c3QgYmUgYSA8dHQ+dmVydGV4X3BvaW50MmRfbWFwPC90dD4gZm9yCiAgdGhlIGdyYXBoLjxicj4KICA8Yj5QeXRob24gZGVmYXVsdDwvYj46IDx0dD5ncmFwaC5nZXRfdmVydGV4X3BvaW50MmRfbWFwKCJwb3NpdGlvbiIpPC90dD4KPC9ibG9ja3F1b3RlPgoKSU46IDx0dD5SYWRpdXMgcmFkaXVzPC90dD4KPGJsb2NrcXVvdGU+CiAgVGhpcyBpcyB0aGUgcmFkaXVzIG9mIHRoZSBjaXJjbGUgb24gd2hpY2ggcG9pbnRzIHdpbGwgYmUgbGF5ZWQKICBvdXQuIEl0IG11c3QgYmUgY29tcGF0aWJsZSB3aXRoIDx0dD5kb3VibGU8L3R0Pi48YnI+CjwvYmxvY2txdW90ZT4KCjwvcD48L2Rpdj48L2Rpdj48dGFibGUgeG1sbnM6cmV2PSJodHRwOi8vd3d3LmNzLnJwaS5lZHUvfmdyZWdvZC9ib29zdC90b29scy9kb2MvcmV2aXNpb24iIHdpZHRoPSIxMDAlIj48dHI+PHRkIGFsaWduPSJsZWZ0Ij48L3RkPjx0ZCBhbGlnbj0icmlnaHQiPjxzbWFsbD48L3NtYWxsPjwvdGQ+PC90cj48L3RhYmxlPjxocj4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUQUJMRT4KPFRSIHZhbGlnbj10b3A+CjxURCBub3dyYXA+Q29weXJpZ2h0ICZjb3B5OyAyMDA0PC9URD48VEQ+CjxBIEhSRUY9Imh0dHA6Ly93d3cuYm9vc3Qub3JnL3Blb3BsZS9kb3VnX2dyZWdvci5odG1sIj5Eb3VnbGFzIEdyZWdvcjwvQT4sIEluZGlhbmEgVW5pdmVyc2l0eSAoZGdyZWdvciAtYXQtIGNzLmluZGlhbmEuZWR1PC9BPik8YnI+CjxBIEhSRUY9Imh0dHA6Ly93d3cub3NsLml1LmVkdS9+bHVtcyI+QW5kcmV3IEx1bXNkYWluZTwvQT4sCkluZGlhbmEgVW5pdmVyc2l0eSAobHVtcyAtYXQtIG9zbC5pdS5lZHUpCjwvVEQ+PC9UUj48L1RBQkxFPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2JvZHk+PC9odG1sPgo=