PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPjxodG1sPjxoZWFkPjx0aXRsZT5BcGFjaGUgU2FuZGVzaGEyL0MgLSBTYW5kZXNoYTIvQzogc2FuZGVzaGEyX2lubWVtb3J5X3NlcV9wcm9wZXJ0eV9tZ3IuaCBTb3VyY2UgRmlsZTwvdGl0bGU+PHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIj4KICAgICAgICAgIEBpbXBvcnQgdXJsKCIuLi8uLi9zdHlsZS9tYXZlbi1iYXNlLmNzcyIpOwogICAgICAgICAgCgkJCSAgICBAaW1wb3J0IHVybCgiLi4vLi4vc3R5bGUvbWF2ZW4tY2xhc3NpYy5jc3MiKTs8L3N0eWxlPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vc3R5bGUvcHJpbnQuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InByaW50Ij48L2xpbms+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+PC9tZXRhPjwvaGVhZD48Ym9keSBjbGFzcz0iY29tcG9zaXRlIj48ZGl2IGlkPSJiYW5uZXIiPjxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy8iIGlkPSJvcmdhbml6YXRpb25Mb2dvIj48aW1nIGFsdD0iQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24iIHNyYz0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2ltYWdlcy9hc2YtbG9nby5naWYiPjwvaW1nPjwvYT48YSBocmVmPSJodHRwOi8vd3MuYXBhY2hlLm9yZy9zYW5kZXNoYTIvYyIgaWQ9InByb2plY3RMb2dvIj48aW1nIGFsdD0iQXBhY2hlIFNhbmRlc2hhMi9DIiBzcmM9Imh0dHA6Ly93cy5hcGFjaGUub3JnL3NhbmRlc2hhMi9jL2ltYWdlcy9zYW5kZXNoYTJjX2xvZ28uanBnIj48L2ltZz48L2E+PGRpdiBjbGFzcz0iY2xlYXIiPjxocj48L2hyPjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImJyZWFkY3J1bWJzIj48ZGl2IGNsYXNzPSJ4bGVmdCI+CiAgICAgICAgICAgICAgICAJTGFzdCBwdWJsaXNoZWQ6IDA1IE9jdG9iZXIgMjAwNwogICAgICAgICAgICAgICAgICB8IERvYyBmb3IgMC45MTwvZGl2PjxkaXYgY2xhc3M9InhyaWdodCI+PC9kaXY+PGRpdiBjbGFzcz0iY2xlYXIiPjxocj48L2hyPjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImxlZnRDb2x1bW4iPjxkaXYgaWQ9Im5hdmNvbHVtbiI+PGRpdiBpZD0ibWVudUFwYWNoZV9TYW5kZXNoYTJfQyI+PGg1PkFwYWNoZSBTYW5kZXNoYTIvQzwvaDU+PHVsPjxsaSBjbGFzcz0ibm9uZSI+PGEgaHJlZj0iLi4vLi4vaW5kZXguaHRtbCI+QXBhY2hlIFNhbmRlc2hhMi9DIEhvbWU8L2E+PC9saT48bGkgY2xhc3M9ImV4cGFuZGVkIj48YSBocmVmPSIuLi8uLi9kb3dubG9hZC5jZ2kiPkRvd25sb2FkIFNhbmRlc2hhMi9DPC9hPjx1bD48bGkgY2xhc3M9Im5vbmUiPjxhIGhyZWY9Ii4uLy4uL2Rvd25sb2FkLmNnaSI+UmVsZWFzZXM8L2E+PC9saT48L3VsPjwvbGk+PGxpIGNsYXNzPSJleHBhbmRlZCI+PGEgaHJlZj0iLi4vLi4vZG9jcy9pbmRleC5odG1sIj5Eb2N1bWVudGF0aW9uPC9hPjx1bD48bGkgY2xhc3M9Im5vbmUiPjxhIGhyZWY9Ii4uLy4uL2RvY3MvaW5zdGFsbGF0aW9uZ3VpZGUuaHRtbCI+SW5zdGFsbGF0aW9uIEd1aWRlPC9hPjwvbGk+PGxpIGNsYXNzPSJub25lIj48YSBocmVmPSIuLi8uLi9kb2NzL3NhbmRlc2hhMmNfbWFudWFsLmh0bWwiPlNhbmRlc2hhMi9DIG1hbnVhbDwvYT48L2xpPjwvdWw+PC9saT48bGkgY2xhc3M9ImV4cGFuZGVkIj48YSBocmVmPSIuLi8uLi9saXN0c19pc3N1ZXMuaHRtbCI+R2V0IEludm9sdmVkPC9hPjx1bD48bGkgY2xhc3M9Im5vbmUiPjxhIGhyZWY9Ii4uLy4uL2xpc3RzX2lzc3Vlcy5odG1sIj5NYWlsaW5nIExpc3RzICZhbXA7IElzc3VlIFRyYWNraW5nPC9hPjwvbGk+PGxpIGNsYXNzPSJub25lIj48YSBocmVmPSIuLi8uLi9zdm4uaHRtbCI+Q2hlY2tvdXQgU291cmNlIENvZGU8L2E+PC9saT48L3VsPjwvbGk+PGxpIGNsYXNzPSJleHBhbmRlZCI+PGEgaHJlZj0iLi4vLi4vY29kaW5nX2NvbnZlbnRpb25zLmh0bWwiPkRldmVsb3BlciBHdWlkZWxpbmVzPC9hPjx1bD48bGkgY2xhc3M9Im5vbmUiPjxhIGhyZWY9Ii4uLy4uL2NvZGluZ19jb252ZW50aW9ucy5odG1sIj5Db2RpbmcgQ29udmVudGlvbjwvYT48L2xpPjxsaSBjbGFzcz0ibm9uZSI+PGEgaHJlZj0iLi4vLi4vdmVyc2lvbmluZy5odG1sIj5WZXJzaW9ubmluZzwvYT48L2xpPjwvdWw+PC9saT48bGkgY2xhc3M9ImV4cGFuZGVkIj48YSBocmVmPSIuLi8uLi90ZWFtLWxpc3QuaHRtbCI+UHJvamVjdCBJbmZvcm1hdGlvbjwvYT48dWw+PGxpIGNsYXNzPSJub25lIj48YSBocmVmPSIuLi8uLi90ZWFtLWxpc3QuaHRtbCI+UHJvamVjdCBUZWFtPC9hPjwvbGk+PGxpIGNsYXNzPSJub25lIj48YSBocmVmPSJodHRwOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL3dlYnNlcnZpY2VzL3NhbmRlc2hhL3RydW5rL2MvIiBjbGFzcz0iZXh0ZXJuYWxMaW5rIiB0aXRsZT0iRXh0ZXJuYWwgTGluayI+U291cmNlIENvZGU8L2E+PC9saT48L3VsPjwvbGk+PC91bD48L2Rpdj48YSBocmVmPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy8iIHRpdGxlPSJCdWlsdCBieSBNYXZlbiIgaWQ9InBvd2VyZWRCeSI+PGltZyBhbHQ9IkJ1aWx0IGJ5IE1hdmVuIiBzcmM9Ii4uLy4uL2ltYWdlcy9sb2dvcy9tYXZlbi1idXR0b24tMS5wbmciPjwvaW1nPjwvYT48L2Rpdj48L2Rpdj48ZGl2IGlkPSJib2R5Q29sdW1uIj48ZGl2IGNsYXNzPSJjb250ZW50Qm94Ij48ZGl2IGNsYXNzPSJzZWN0aW9uIj48cD4KPGRpdiBjbGFzcz0idGFicyI+CiAgPHVsPgogICAgPGxpPjxhIGhyZWY9ImluZGV4Lmh0bWwiPjxzcGFuPk1haW6gUGFnZTwvc3Bhbj48L2E+PC9saT4KICAgIDxsaT48YSBocmVmPSJtb2R1bGVzLmh0bWwiPjxzcGFuPk1vZHVsZXM8L3NwYW4+PC9hPjwvbGk+CiAgICA8bGk+PGEgaHJlZj0iYW5ub3RhdGVkLmh0bWwiPjxzcGFuPkNsYXNzZXM8L3NwYW4+PC9hPjwvbGk+CiAgICA8bGkgY2xhc3M9ImN1cnJlbnQiPjxhIGhyZWY9ImZpbGVzLmh0bWwiPjxzcGFuPkZpbGVzPC9zcGFuPjwvYT48L2xpPgogICAgPGxpPjxhIGhyZWY9ImRpcnMuaHRtbCI+PHNwYW4+RGlyZWN0b3JpZXM8L3NwYW4+PC9hPjwvbGk+CiAgPC91bD4KPC9kaXY+PGRpdiBjbGFzcz0ibmF2Ij4KPGEgY2xhc3M9ImVsIiBocmVmPSJkaXJfMTY0ODc5NTJhZGZlYWM0YjJiOWRmNzE5YjQ5ZWZkYjYuaHRtbCI+aW5jbHVkZTwvYT48L2Rpdj48L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2VjdGlvbiI+PGEgbmFtZT0ic2FuZGVzaGEyX2lubWVtb3J5X3NlcV9wcm9wZXJ0eV9tZ3JfaCI+PC9hPjxoMj5zYW5kZXNoYTJfaW5tZW1vcnlfc2VxX3Byb3BlcnR5X21nci5oPC9oMj48cD48YSBocmVmPSJzYW5kZXNoYTJfX2lubWVtb3J5X19zZXFfX3Byb3BlcnR5X19tZ3JfOGguaHRtbCI+R28gdG8gdGhlIGRvY3VtZW50YXRpb24gb2YgdGhpcyBmaWxlLjwvYT48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PHByZSBjbGFzcz0iZnJhZ21lbnQiPjxhIG5hbWU9ImwwMDAwMSI+PC9hPjAwMDAxIDxzcGFuIGNsYXNzPSJjb21tZW50Ij4vKjwvc3Bhbj4KPGEgbmFtZT0ibDAwMDAyIj48L2E+MDAwMDIgPHNwYW4gY2xhc3M9ImNvbW1lbnQiPiAqIENvcHlyaWdodCAyMDA0LDIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLjwvc3Bhbj4KPGEgbmFtZT0ibDAwMDAzIj48L2E+MDAwMDMgPHNwYW4gY2xhc3M9ImNvbW1lbnQiPiAqPC9zcGFuPgo8YSBuYW1lPSJsMDAwMDQiPjwvYT4wMDAwNCA8c3BhbiBjbGFzcz0iY29tbWVudCI+ICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7PC9zcGFuPgo8YSBuYW1lPSJsMDAwMDUiPjwvYT4wMDAwNSA8c3BhbiBjbGFzcz0iY29tbWVudCI+ICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLjwvc3Bhbj4KPGEgbmFtZT0ibDAwMDA2Ij48L2E+MDAwMDYgPHNwYW4gY2xhc3M9ImNvbW1lbnQiPiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDwvc3Bhbj4KPGEgbmFtZT0ibDAwMDA3Ij48L2E+MDAwMDcgPHNwYW4gY2xhc3M9ImNvbW1lbnQiPiAqPC9zcGFuPgo8YSBuYW1lPSJsMDAwMDgiPjwvYT4wMDAwOCA8c3BhbiBjbGFzcz0iY29tbWVudCI+ICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjA8L3NwYW4+CjxhIG5hbWU9ImwwMDAwOSI+PC9hPjAwMDA5IDxzcGFuIGNsYXNzPSJjb21tZW50Ij4gKjwvc3Bhbj4KPGEgbmFtZT0ibDAwMDEwIj48L2E+MDAwMTAgPHNwYW4gY2xhc3M9ImNvbW1lbnQiPiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmU8L3NwYW4+CjxhIG5hbWU9ImwwMDAxMSI+PC9hPjAwMDExIDxzcGFuIGNsYXNzPSJjb21tZW50Ij4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLDwvc3Bhbj4KPGEgbmFtZT0ibDAwMDEyIj48L2E+MDAwMTIgPHNwYW4gY2xhc3M9ImNvbW1lbnQiPiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLjwvc3Bhbj4KPGEgbmFtZT0ibDAwMDEzIj48L2E+MDAwMTMgPHNwYW4gY2xhc3M9ImNvbW1lbnQiPiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQ8L3NwYW4+CjxhIG5hbWU9ImwwMDAxNCI+PC9hPjAwMDE0IDxzcGFuIGNsYXNzPSJjb21tZW50Ij4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS48L3NwYW4+CjxhIG5hbWU9ImwwMDAxNSI+PC9hPjAwMDE1IDxzcGFuIGNsYXNzPSJjb21tZW50Ij4gKi88L3NwYW4+CjxhIG5hbWU9ImwwMDAxNiI+PC9hPjAwMDE2IAo8YSBuYW1lPSJsMDAwMTciPjwvYT4wMDAxNyA8c3BhbiBjbGFzcz0icHJlcHJvY2Vzc29yIj4jaWZuZGVmIFNBTkRFU0hBMl9JTk1FTU9SWV9TRVFfUFJPUEVSVFlfTUdSX0g8L3NwYW4+CjxhIG5hbWU9ImwwMDAxOCI+PC9hPjAwMDE4IDxzcGFuIGNsYXNzPSJwcmVwcm9jZXNzb3IiPjwvc3Bhbj48c3BhbiBjbGFzcz0icHJlcHJvY2Vzc29yIj4jZGVmaW5lIFNBTkRFU0hBMl9JTk1FTU9SWV9TRVFfUFJPUEVSVFlfTUdSX0g8L3NwYW4+CjxhIG5hbWU9ImwwMDAxOSI+PC9hPjAwMDE5IDxzcGFuIGNsYXNzPSJwcmVwcm9jZXNzb3IiPjwvc3Bhbj4KPGEgbmFtZT0ibDAwMDI1Ij48L2E+MDAwMjUgPHNwYW4gY2xhc3M9InByZXByb2Nlc3NvciI+I2luY2x1ZGUgJmx0O2F4dXRpbF9hbGxvY2F0b3IuaCZndDs8L3NwYW4+CjxhIG5hbWU9ImwwMDAyNiI+PC9hPjAwMDI2IDxzcGFuIGNsYXNzPSJwcmVwcm9jZXNzb3IiPiNpbmNsdWRlICZsdDtheHV0aWxfZW52LmgmZ3Q7PC9zcGFuPgo8YSBuYW1lPSJsMDAwMjciPjwvYT4wMDAyNyA8c3BhbiBjbGFzcz0icHJlcHJvY2Vzc29yIj4jaW5jbHVkZSAmbHQ7YXh1dGlsX2Vycm9yLmgmZ3Q7PC9zcGFuPgo8YSBuYW1lPSJsMDAwMjgiPjwvYT4wMDAyOCA8c3BhbiBjbGFzcz0icHJlcHJvY2Vzc29yIj4jaW5jbHVkZSAmbHQ7YXh1dGlsX3N0cmluZy5oJmd0Ozwvc3Bhbj4KPGEgbmFtZT0ibDAwMDI5Ij48L2E+MDAwMjkgPHNwYW4gY2xhc3M9InByZXByb2Nlc3NvciI+I2luY2x1ZGUgJmx0O2F4dXRpbF91dGlscy5oJmd0Ozwvc3Bhbj4KPGEgbmFtZT0ibDAwMDMwIj48L2E+MDAwMzAgCjxhIG5hbWU9ImwwMDAzMSI+PC9hPjAwMDMxIDxzcGFuIGNsYXNzPSJwcmVwcm9jZXNzb3IiPiNpZmRlZiBfX2NwbHVzcGx1czwvc3Bhbj4KPGEgbmFtZT0ibDAwMDMyIj48L2E+MDAwMzIgPHNwYW4gY2xhc3M9InByZXByb2Nlc3NvciI+PC9zcGFuPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj5leHRlcm48L3NwYW4+IDxzcGFuIGNsYXNzPSJzdHJpbmdsaXRlcmFsIj4iQyI8L3NwYW4+CjxhIG5hbWU9ImwwMDAzMyI+PC9hPjAwMDMzIHsKPGEgbmFtZT0ibDAwMDM0Ij48L2E+MDAwMzQgPHNwYW4gY2xhc3M9InByZXByb2Nlc3NvciI+I2VuZGlmPC9zcGFuPgo8YSBuYW1lPSJsMDAwMzUiPjwvYT4wMDAzNSA8c3BhbiBjbGFzcz0icHJlcHJvY2Vzc29yIj48L3NwYW4+ICAgIAo8YSBuYW1lPSJsMDAwMzYiPjwvYT4wMDAzNiA8c3BhbiBjbGFzcz0ia2V5d29yZCI+c3RydWN0IDwvc3Bhbj5zYW5kZXNoYTJfc3RvcmFnZV9tZ3I7CjxhIG5hbWU9ImwwMDAzNyI+PC9hPjAwMDM3IDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5zdHJ1Y3QgPC9zcGFuPmF4aXMyX2N0eDsKPGEgbmFtZT0ibDAwMDM4Ij48L2E+MDAwMzggCjxhIG5hbWU9ImwwMDA0NSI+PC9hPjAwMDQ1IEFYSVMyX0VYVEVSTiA8c3BhbiBjbGFzcz0ia2V5d29yZCI+c3RydWN0IDwvc3Bhbj5zYW5kZXNoYTJfc2VxX3Byb3BlcnR5X21nciAqIEFYSVMyX0NBTEwKPGEgbmFtZT0ibDAwMDQ2Ij48L2E+MDAwNDYgc2FuZGVzaGEyX2lubWVtb3J5X3NlcV9wcm9wZXJ0eV9tZ3JfY3JlYXRlKAo8YSBuYW1lPSJsMDAwNDciPjwvYT4wMDA0NyAgICAgPHNwYW4gY2xhc3M9ImtleXdvcmQiPmNvbnN0PC9zcGFuPiBheHV0aWxfZW52X3QgKmVudiwKPGEgbmFtZT0ibDAwMDQ4Ij48L2E+MDAwNDggICAgIDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5zdHJ1Y3Q8L3NwYW4+IHNhbmRlc2hhMl9zdG9yYWdlX21nciAqc3RvcmFnZV9tZ3IsCjxhIG5hbWU9ImwwMDA0OSI+PC9hPjAwMDQ5ICAgICA8c3BhbiBjbGFzcz0ia2V5d29yZCI+c3RydWN0PC9zcGFuPiBheGlzMl9jdHggKmN0eCk7CjxhIG5hbWU9ImwwMDA1MCI+PC9hPjAwMDUwIAo8YSBuYW1lPSJsMDAwNTIiPjwvYT4wMDA1MiA8c3BhbiBjbGFzcz0icHJlcHJvY2Vzc29yIj4jaWZkZWYgX19jcGx1c3BsdXM8L3NwYW4+CjxhIG5hbWU9ImwwMDA1MyI+PC9hPjAwMDUzIDxzcGFuIGNsYXNzPSJwcmVwcm9jZXNzb3IiPjwvc3Bhbj59CjxhIG5hbWU9ImwwMDA1NCI+PC9hPjAwMDU0IDxzcGFuIGNsYXNzPSJwcmVwcm9jZXNzb3IiPiNlbmRpZjwvc3Bhbj4KPGEgbmFtZT0ibDAwMDU1Ij48L2E+MDAwNTUgPHNwYW4gY2xhc3M9InByZXByb2Nlc3NvciI+PC9zcGFuPjxzcGFuIGNsYXNzPSJwcmVwcm9jZXNzb3IiPiNlbmRpZiA8L3NwYW4+PHNwYW4gY2xhc3M9ImNvbW1lbnQiPi8qIFNBTkRFU0hBMl9JTk1FTU9SWV9TRVFfUFJPUEVSVFlfTUdSX0ggKi88L3NwYW4+CjwvcHJlPjwvZGl2PjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZWN0aW9uIj48YWRkcmVzcyBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7Ij48c21hbGw+R2VuZXJhdGVkIG9uIE1vbiBPY3QgMSAxNzoxOTowMyAyMDA3IGZvciBTYW5kZXNoYTIvQyBieaAKPGEgaHJlZj0iaHR0cDovL3d3dy5kb3h5Z2VuLm9yZy9pbmRleC5odG1sIiBjbGFzcz0iZXh0ZXJuYWxMaW5rIiB0aXRsZT0iRXh0ZXJuYWwgTGluayI+CjxpbWcgc3JjPSJkb3h5Z2VuLnBuZyIgYWx0PSJkb3h5Z2VuIiBhbGlnbj0ibWlkZGxlIiBib3JkZXI9IjAiPjwvaW1nPjwvYT4gMS41LjMgPC9zbWFsbD48L2FkZHJlc3M+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY2xlYXIiPjxocj48L2hyPjwvZGl2PjxkaXYgaWQ9ImZvb3RlciI+PGRpdiBjbGFzcz0ieHJpZ2h0Ij6pIDIwMDUtMjAwNywgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb248L2Rpdj48ZGl2IGNsYXNzPSJjbGVhciI+PGhyPjwvaHI+PC9kaXY+PC9kaXY+PC9ib2R5PjwvaHRtbD4=